New Components on the Block

By Philip J. Gill



Standardized component models such as Sun's JavaBeans provide
architectures for rapid application development and deployment


The art of writing business applications hasn't changed much in 20 years-not even with the transition from mainframes to desktop PCs and, finally, to client/server computing. In the good old days, before the popularity of the Internet and World Wide Web, developers wrote business applications "like they wrote a story, with a beginning, a middle, and an end," says analyst Judith Hurwitz, president of Hurwitz Consulting in Newton, MA.

But as Hurwitz and others will tell you, the old ways of writing applications simply don't work anymore. The Web is changing everything, including the ways business application developers practice their trade. Hand-coding applications using traditional programming methods simply takes too long and costs too much for businesses to stay competitive with shrinking business cycles and rapidly-changing global business conditions. To cope, information technology (IT) organizations and business developers are increasingly looking to object-based software components to provide rapid delivery of new applications and services, particularly those delivered over the Web.

Discount brokerage house Charles Schwab & Co. is transitioning its internal software architecture from a traditional legacy environment consisting primarily of COBOL applications written for IBM MVS/CICS transaction processing systems, to a new software components model. Working jointly with IBM, the San Francisco-based firm intends to break its existing applications into smaller pieces and wrap them in Sun Microsystems Inc.'s Java technology. This will create reusable, interoperable software components that will work with each other, as well as new software components using IBM's recently-introduced Component Broker Connector (CBConnector). The Java-based middleware that supports the JavaBeans software component model "will shorten our time to market," says James Chang, Schwab's vice president of planning and architecture.

Components and Objects
A software component is not the same as an object, although components use the object programming's encapsulation capability to create self-contained units of reusable code. "The most important thing about components is that they provide the ability to reuse hunks of code," says Dave Smith, research director of Internet technologies at the Gartner Group Inc. in Stamford, CT. "A component architecture allows you to break applications into smaller pieces. These smaller pieces can be recombined to build other applications again and again."

Today, developers are likely to be aware of two software component models: JavaBeans and ActiveX. Although conceptually similar, each model has its own terminology. In ActiveX, components are often called "controls"; and in JavaBeans, they're simply called "Beans."

"Each vendor has their own lingo, [but] they all mean the same thing," says Gina Centoni, product line manager for JavaBeans at Sun Microsystems Inc.'s JavaSoft business unit in Cupertino, CA. "A JavaBean component is an object that can be visually manipulated to create a greater solution that can be aggregated, and which is reusable over and over again."

Besides terminology, the models have different origins which directly affect their capabilities. ActiveX, for instance, is an Internet-enabled version of Microsoft Corp.'s COM/DCOM model, originally a compound document architecture for Windows applications. JavaBeans, on the other hand, is a brand new model based on Java that was specifically developed for the network computing environment of the Internet and Web.

By using a software component architecture such as JavaBeans, developers expose a set of standardized interfaces to other components. This allows components to be repeatedly combined and recombined to create customized business applications. "Programmers don't have to reinvent the wheel every time," says Scott Hebner, manager of application development marketing at IBM's Software Group in Somers, NY.

A unique feature of the JavaBeans architecture is that developers can use both Java and non-Java components to build applications. Besides CBConnector, which provides middleware connectivity for disparate legacy systems and enterprise applications, components built with IBM's VisualAge for Java, Smalltalk, and C++ products also support JavaBeans interfaces. It even allows components built using other models, such as Microsoft's ActiveX, to work with JavaBeans components. "JavaBeans is the glue that provides the capability of allowing disparate systems and tools to work together," says Hebner, who notes that IBM shipped the first JavaBeans compliant integrated development environment in July.

JavaBeans Support
Although JavaBeans is a relatively new component architecture, it's gaining support rapidly in the developers' community. JavaSoft's Centoni says she's lost count: IBM alone has publicly committed to creating more than 500 JavaBeans; about 50 are currently shipping. And major Java tools vendors already include JavaBeans as standard parts of their products. For instance, Symantec Corp.'s Visual Café includes 18 JavaBeans with the standard product.

JavaBeans range from low-level components, such as widgets-a scroll bar or a sliding button-all the way up to products like Lotus Development Corp.'s Kona and Corel's Office for Java. The Web Integrator System Developer Kit (SDK) Web-to-legacy integration tool by Computer Network Technology Corp.(CNT) of Minneapolis, MN, includes three JavaBeans, dubbed "GreenBeans."

A "View" bean provides 3270 emulation to a Web client, while an "Action" bean allows developers to manipulate data inside a mainframe application. A third, called a "Data Template" bean, provides a forms-based interface to mainframe applications. When used together, the three "GreenBeans" help developers build quick, custom interfaces from Web-enabled clients to legacy systems, says CNT product manager Brian Hodgson.

With Kona, IBM's Cambridge, MA-based Lotus division is building a set of office applications, each of which are discreet beans unto themselves. These JavaBeans include a word processor, spreadsheet, charting, calendar and scheduler, graphics, project scheduler, email, JDBC access, and an underlying data exchange protocol called the InfoBus.

All Kona applets are lightweight, typically 300K to 400K bytes in size, written 100% in Java, and run on a Network Computer (NC) inside the HotJava browser, which IBM has licensed from Sun. "These applets add intelligence, programmability, and customizability to browsers," says Kona's product manager Tom Kane.

Because they conform to the JavaBeans specification, they can be mixed-and-matched with each other and with third-party beans to create custom desktop software environments, he adds. At the high-end of the JavaBeans spectrum is Corel Corp.'s forthcoming Corel Office for Java. Like Kona, it includes basic office tools and is targeted at thin-clients. Unlike Kona, however, Office for Java appears to the user as a single, monolithic, desktop application. Under the shell, however, Office for Java is a set of JavaBeans totaling 6 Megs of code. Using JavaBeans interfaces, Corel says it has been able to share components among applications, enabling it to provide the functionality of its 100Mb WordPerfect Office Suite in Office for Java.

Lotus has also come up with a unique tool that helps non-technical users build their own applications with JavaBeans. Called the BeanMachine, it was originally developed inside IBM as Applet Author. Using a visual interface, users can combine BeanMachine's own JavaBeans, as well as those created by third-party tools, to create custom applications simply by dragging them onto the palette. "It's Java for the rest of us," says Alex Niehaus, a Lotus group marketing manager. "You don't make beans with the BeanMachine, you consume them."

JavaBeans Gaining Acceptance
JavaBeans is gaining broad acceptance in the market, particularly among Internet developers. Netscape Communications Corp. recently conducted a survey of Internet sites that showed 587,000 Web sites using JavaScript, the Mountain View, CA company's scripting language for Java. In contrast, the survey found only 35,000 using ActiveX. Netscape attributes Java's lead to the fact that ActiveX is a Microsoft-specific component software model.

That momentum can be attributed in large part to JavaBeans' cross-platform capabilities. Because JavaBeans can run anywhere there's a Java Virtual Machine (JVM), it's ubiquitous. In contrast, "ActiveX has limited usefulness; ActiveX Controls are written in languages such as C++ and Visual Basic that are not portable," says Gartner's Smith.

With that kind of momentum building for JavaBeans, it's a sure bet that it will be an important platform for business application development for some time to come.



About the author: Philip J. Gill (philipgill@aol.com) is associate editor of Java™ Report and contributing editor to Object Magazine.



JavaTM is a trademark of Sun Microsystems, Inc.

Other companies, products, and service names may be trademarks or service marks of others.

Copyright    Trademark



  Java Education Java Home  
IBM HomeOrderEmployment