The San Francisco(TM) project establishes a new paradigm for building
business applications. The product, targeted for independent software
vendors (ISVs), provides a distributed object infrastructure (foundati
on), common business objects (CBOs), and business process components (
BPCs). Together, they provide a platform-independent business applicat
ion foundation, ready for extension by ISVs to produce end-customer, b
usiness-critical applications. The San Francisco project is written al
most entirely in Java(TM) and to our knowledge is currently the larges
t Java development effort in the world. This paper provides an overvie
w of the San Francisco project, with emphasis on the Java consideratio
ns of the product's development, the lessons learned, and our recommen
dations for future Java language maturity.