In terms of sheer size, Sun Microsystem's StarOffice, a component-based suite of office productivity applications containing 7.5 million lines of code and 20,000 files, represents "the largest open-source contribution in history," said Bill Roth, group product manager for Sun Microsystems.
Whether Sun can translate that into a marketing success of equal proportions remains to be seen, but indications are that programmers and software developers are enthusiastic about having a full-fledged office productivity suite at their disposal -- where every application, or the entire suite, can be treated as a component.
When Sun acquired StarOffice last year, they opted to restructure the productivity software around a component-based development framework called Universal Network Objects (UNO). UNO, which was developed by Sun for StarOffice, allows software developers and programmers to take advantage of the key characteristics of component technology, such as consistent interface allocation, support for important component standards, transparent localization of components, batch job capabilities, and platform independence.
"Componentizing StarOffice was our big value-add to the product," Roth said. "We decided to break apart the applications in the StarOffice suite for people who just want to add a word processor or spreadsheet to their applications."
StarOffice runs on the Unix family of operating systems, including Linux, as well as on Microsoft Windows operating systems. "Since StarOffice is cross-platform, it's an easy choice for the developer who wants to drop a word processor into an ERP system rather than trying to integrate an off-the-shelf product where the source code is not available. You get the same look and feel whether you're on Windows, or Linux or Solaris," said Phil Parkman, director of Sun's technical marketing group.
According to Roth, the componentized StarOffice suite is aimed at those C++ and Java software developers "who have always wanted to make changes to their applications, but never had the source code. With StarOffice, you get access to everything. Everybody can see everything we're doing," he remarked. StarOffice's open-source, component-based architecture "gives programmers and developers the freedom to do what they want," Roth said.
There's currently no shortage of component models jockeying for attention in the open-source community and elsewhere, but Parkman hails UNO as a sophisticated, object-oriented framework that provides a flexible, language-independent component model. "UNO does not depend on any graphical subsystem, but is heavily based on multithreading and network communication capabilities," he said.
What's more, "UNO allows for very late binding," or the process of associating one software entity with another, Parkman said. "The idea behind UNO and many other object request brokers (ORBs), is that binding occurs at run time, which means the actual connection to the other piece of code is not done until you actually execute the code, rather than when you compile it. If you're going to run something over a network, you don't know where on the network you're going to be connected until you're actually executing it -- that's why you need a late binding capability," Parkman said.
Parkman points out that the traditional shortcoming of object-oriented frameworks is that they tend to increase latency. "When you're in a personal productivity environment, latency must be reduced. People are used to direct manipulation of all the objects they're dealing with on the screen," he said. One of the key design parameters of UNO for Sun was that it had to be very fast, and provide very high performance. "I think we succeeded," Parkman said. "On a modern machine, StarOffice is quite snappy."
David Mason is director of the advanced development labs for Red Hat Inc., a North Carolina company that bundles StarOffice with its version of the Linux operating system. Members of Mason's group have been working on the GNU Network Object Model Environment (GNOME) project since its inception, and are keeping close tabs on UNO and StarOffice.
"The GNOME project has taken a look at Sun's UNO component model to see what kind of integration can occur," Mason said. He believes one major reason for Sun's move to UNO was that they needed a component system to help avoid lengthy rebuilds of the applications. "Whenever they changed the software, they'd have rebuild the whole thing. It would take the better part of a day to rebuild StarOffice. So, they moved to a component model to reduce the complexity of the application and reduce the amount of code needed to create modules and modify the application."
"UNO is interesting," Mason said. "It has a COM interface, and supports C, C++ and Java. "I'm not quite sure why they didn't chose CORBA since that's the model GNOME uses for the Bonobo component system." Bonobo is the GNOME architecture for creating reusable software components and compound documents. "I doubt very seriously that GNOME will start using UNO, but there is a project underway to map Bonobo to UNO by creating an executable that provides a CORBA/Bonobo interface to the object activation framework (OAF), which will then map a request to the functionality in UNO. Bonobo and UNO will be working together, so you can easily embed a StarOffice spreadsheet into another application," he said.
Since open-source projects typically rely on a central authority to maintain and update the code, Sun recently launched OpenOffice.org to guide the evolution of the StarOffice applications suite. OpenOffice.org provides the structured engineering process that guides the evolution of the StarOffice applications. About 150 Sun Microsystems engineers are working on StarOffice for Sun, and since the project has gone open source, approximately 1,500 technical professionals have made code contributions to OpenOffice.org. "We had people making contributions within 36 hours of when it was posted on the Web," Parkman said.
"We're looking for a number of things from the open-source community," Parkman said, including better interaction with the GNOME environment. "That's going to be our desktop environment going forward, just as it is in the Linux world ... everybody has their favorite twist or tweak when it comes to personal productivity, and we're looking forward to receiving a number of ways to improve functionality from the open-source community," Parkman said.
Red Hat's Mason observes that, "UNO will only impact Red Hat's Linux if they move OpenOffice.org to be tightly integrated with GNOME. "Then we will take a really different view of it, since it will become more of a GNOME package than it is now," he said.
Several Red Hat programmers have made independent contributions to OpenOffice.org, and Mason notes that, "we certainly are following UNO and StarOffice because it's interesting to have a full-fledged office suite that's open source. And we're quite glad that they chose the license they did."
StarOffice is available free of charge, and can be downloaded from the OpenOffice.org Web site. Users must adhere to the terms outlined in the GNU Public License (GPL). "The key thing to remember with licensing is that StarOffice is under [the GPL]," Roth said. "People can take the code and do what they want. We are not seeking license fees for the OpenOffice.org source base," he emphasized.
Roth estimates there are approximately 1,600 StarOffice users, ranging from graduate students in Estonia to major U.S. corporations, such as Boeing and Silicon Graphics Inc. (SGI). "The OpenOffice.org approach is also language-neutral, and provides a standard set of open file formats that promotes interoperability that lets people share files easily," Roth added.
The StarOffice suite includes a word processor and spreadsheet program, as well as applications for drawing, charting, and data presentation. Sun acquired StarOffice in 1999 when it purchased Star Division, a German company targeting Linux users in Europe. "The StarOffice applications were completely integrated, and it was extraordinarily price-competitive when compared to Microsoft and Corel office suites," Roth recalls.
But how does a company go up against Microsoft, which now controls 96 percent of the office productivity market? "First, we decided to make our software free, to provide more value at lower cost. Next, we decided on an open-source code approach, which lets programmers and developers to customize the software. This is in stark contrast with Microsoft's closed source philosophy," he said. To further strengthen the product offering, Sun decided to componentize the complete StarOffice suite. "People want to integrate these programs into their applications, so we started to componentize the code," Roth said.
Thanks to its component architecture, it's now possible to integrate any StarOffice application, or the entire StarOffice suite, into other programs. For example, a programmer could drop the StarOffice word processor or spreadsheet application into a customer relationship management package using them as components. "Opting for an open-source code approach and a component-based architecture allowed us to make StarOffice available to the widest possible user base, as well as make life easier for software developers and programmers who want to access the application's source code," Roth said.
Roth sees StarOffice as "leading the charge" in the trend towards using entire applications as components. "It used to be that components were small programs with limited functionality, but people today are saying, 'I want a word processor in my ERP system, so I can edit invoices and purchase orders.' The holy grail of components and a component suite like StarOffice is to allow people of all levels of ability to perform programming tasks," Roth said.
"Anytime you choose a component model, you allow programmers to build larger, more complex applications by just gluing different parts together," Mason said. "Component models are nice for the developer to have. The fact that there are tons of different component models is a bit messy, but if you're working on a single project, it's great to have a component model," Mason said. He adds that, "there's also room for something to pop up that will make all these component models work together. Hopefully, the open-source world will take care of that."