In-Depth

Two titans count on beans

What is real and what is fiction in enterprise component integration today? Perhaps a most telling gauge is found in the latest tools offerings of SunSoft and IBM. Today, no vendors are more prominent emissaries of object component technology.

Both closely embody industry aspirations to achieve reusable component architectures and -- not incidentally -- to present a challenge to the ActiveX-based component architecture embraced by desktop giant Microsoft. Both vendors have committed to 100% Java compatibility as well as to the Corba IIOP specifications of the Object Management Group, Framingham, Mass. Both IBM and Sun address today's standard component dilemma by promoting JavaBeans.

The companies come to the JavaBean implementation task from different perspectives and with different goals. Sun is targeting power users and creative content providers with Workshop and Studio, respectively. The Sun goal is to make Web application development via the use of component technology as commonplace as using a spreadsheet or a word processor. Meanwhile, for IBM, JavaBeans shows promise to meet the company's needs as a universal connector supporting application development within "glass house" accounts. Products that carry IBM's strategy forward include CBConnector and CBToolkit. CBToolkit extends IBM's VisualAge development environment, instituting JavaBeans as the component model.

Although still new, JavaBeans shows promise as an object component standard. Clearly, the most important function of components is that they can be used in conjunction with other components to build systems. This quality is present in any "encapsulated" object offering, but it is essential that developers understand that many encapsulated objects on the market today provide interfaces that are non-standard, rendering the components unable to interoperate with other components across systems. For IBM and Sun customers, adherence to standards may be a diminishing issue. Their commitment to JavaBean and Corba standards should help push the wares of both companies onto a short list of corporate application development efforts.

JavaBeans can be defined as a component specification for the Java language, designed to provide all the standard interfaces required for building solutions by combining and integrating existing software objects. Although the specification was originally intended for the Sun-originated Java language, IBM is committed to providing the required resources to incorporate JavaBeans technology into non-Java IBM enterprise products.

Sun and Java

In the public mind, Sun is synonymous with the term Java. Sun prefers that the general I/S populace expand their conception of Java beyond that of a programming language, and regard Java as a complete "application delivery platform." The component architecture of this platform is the JavaBean. Two of Sun's most recent efforts in this area center around the Java Workshop 2.0 -- designed to be a heavyweight "Beans builder" -- and Java Studio, which is a visual JavaBeans component assembler targeted at a more general audience. Both support the JDK 1.1.3.

Unveiled in March, Java Workshop 2.0 is billed as a complete Java development environment for the power programmer. Written entirely in Java to ensure a high level of portability, the software is currently supported on the Sparc and Intel editions of Sun's Solaris operating system, Microsoft's Windows 95 and WinNT platforms and the HP-UX Unix implementation of Hewlett-Packard Co., Palo Alto, Calif. Sun promises additional platform support will be added soon. New features in Java Workshop 2.0 include rapid application development (RAD) with the Visual Java GUI Builder, a graphical tool that enables developers to employ RAD techniques to create graphical user interfaces (GUIs) from a palette of pre-built graphical components or JavaBeans components. Java Workshop is designed to build JavaBeans, applets and applications. Java Workshop can automatically generate 100% pure Java application code. Sun has concentrated on giving the software faster development and application performance capabilities via a JIT compiler built into the Java Virtual Machine. The fast Java Compiler helps to reduce build time and improve the edit-compile-debug cycle.

Another important feature of release 2.0 is the debugging capability. Using 2.0, developers can visually debug standalone applications and applets on HTML pages, as well as applets running locally or remotely. The software is architected to give developers more precise control, and offers a variety of functions to this end including: the ability to graphically set both conditional and counted breakpoints; the ability to evaluate data values; call stack navigation; and enhanced multi-threading functionality, such as control and suspend threads and the ability to examine the current thread or other threads.

Sun's Java Studio offers a more lightweight JavaBeans development platform geared toward the non-Java programmer. The software is designed to enable Web designers and others to visually create applications without the pre-requisite of Java programming knowledge. Like Java Workshop, Java Studio is a 100% pure Java program. Studio is billed as a "robust set of components in a box." The easy-to-use program allows users to create custom solutions in Java by linking JavaBean components in a graphical environment. In effect, it takes JavaBeans and turns them into clip art. The environment requires no coding, and the user is provided with more than 50 JavaBeans to help jump-start the application assembly process.

Learning curves

Although an interface that supports graphical linking of components is useful, it is important to note that this is not just cut-and-paste technology. Each JavaBean component in Studio has the capacity for input and output, with the output format being determined by the input content type. Using Studio, users can deploy applications, applets or JavaBeans using the on-screen palette. Any component found on the Web can be dropped into the palette and used with existing components. Database connectivity components are also available. This enables the user to access databases via JDBC. Java Studio runs on the same platforms as Java Workshop, with the exception of HP-UX. Both products are slated for Fall 1997 shipment.

The advantage of Java development with JavaBeans is the inherent benefit of components built without the overhead of a long learning curve, says Linas Raslavichius, president of Iron Wolf Software Corp., Huntington Beach, Calif. The component learning curve could be significantly longer Raslavichius indicates, in C++ environments. Raslavichius is a consultant and contractor to the aerospace, automotive and public safety industries, focusing on object technology applications. He is currently evaluating JavaWorkshop.

Platform independence, Raslavichius says, is the primary interest in evaluating Java. Java Workshop, with its incorporation of Java Development Kit (JDK) 1.1, offers a delegation-based event model. Taken together with improved visual modeling capabilities, this allows Workshop 2.0 to support easier GUI development, Raslavichius says. He compares Java Workshop favorably with visual tools like Microsoft C++ and Visual Basic.

"Java has some performance penalties as opposed to completely compiled programs," Raslavichius says, "but it is a good fit for the GUI/data entry environment, and there is a lot of that out there."

IBM's holy grail

Brought out last May, IBM's Component Broker Connector and Component Broker Toolkit (code-named BOSS) are designed to serve as the "holy grail" of universal connectivity and application development for IBM glass house accounts -- the upper echelon of IBM's customer base, which includes Fortune 500 giants that use mainframes to house mission critical applications and now want to link these systems to the new world of reusable objects and easily assembled components. Key to this IBM strategy is the use of standards and standardized interfaces.

CBConnector and CBToolkit are based on top of OMG's Corba/IIOP standards to provide common services for distributed object computing and to facilitate a highly flexible business services tier within the enterprise. Both CBConnector and CBToolkit implement currently defined Corba Common Object Services (COS), including naming, security, transactions, life cycle and concurrency. Furthermore, the services can be built to support additional abstractions as needed for messaging, publish/subscribe data delivery and systems management functionality.

CBConnector is designed to allow business components to receive and manage requests from a large number of "clients" ranging from Internet browsers and Web servers to desktop systems, thin network clients and even kiosks and Automated Teller Machines (ATMs). The components act on requests from the clients by accessing backend systems via the CB Adapter technology. These application adapters (available from IBM and other suppliers) can provide connections to a wide variety of mission critical backend software systems such as full-scale transaction processing environments like IBM's CICS and Encina, message-oriented middleware such as MQSeries, widely installed database management systems (DBMSs), and large application suites like those from SAP AG, Philadelphia, Baan Co., Menlo Park, Calif., and Peoplesoft Inc., Pleasanton, Calif. CBConnector was designed with embedded systems management functionalities, including workload balancing, operational monitoring, activity logging and other management functions, across distributed networks from a central point of control.

CBToolkit extends IBM's VisualAge application development environment and establishes JavaBeans as the standard component model. The visually enabled, open architecture can support both build and buy strategies, and allows for integration of third party components. The Construction-From-Parts development environment includes the facilities to connect to any of the aforementioned back-end systems. CBToolkit provides a consistent programming model designed to hide the complexity of application development. The initial release of CBToolkit includes VisualAge for C++ and VisualAge for Java. These can generate corresponding Java, C++ and ActiveX client components. The next release of VisualAge for Smalltalk, slated to ship early next year, will include JavaBeans. Support for RAD environments is facilitated via the VisualAge Generator product.

Both CBConnector and CBToolkit are scheduled for availability on IBM AIX and Microsoft WinNT operating systems by the end of this year. A beta version of the Component Broker for the OS/390 operating environments is slated for H1/'98 delivery, and IBM plans to release additional Unix platform versions and an OS/400 product in the latter half of 1998. IBM will offer CBConnector and CBToolkit as standalone products or as part of the IBM Transaction Series. Additionally, both will be used as components of IBM's San Francisco frameworks initiative for providing pre-fabricated component business solutions across vertical industries.

So far, IBM's targeted customer base seems open minded -- but cautious -- about Component Broker technology.

"We're going to look at it in greater detail later this year," says Julie Deak, corporate IT architect at John Hancock Financial Services. The Boston-based financial services provider runs thousands of applications company wide. Deak says IBM has the right message and the right approach to components. "I'm impressed with [IBM's] ability to do cross platform [integration], but I would like to see everything rolled out simultaneously."

Deak continued: "It's too immature for me to use right now. We want to see it work and we want to see it work on the platforms we want." Today, that translates into MVS and Solaris at John Hancock, she said. Component technology is becoming increasing important to the organization as it moves towards building browser based applications, Deak said, noting that components have to be reusable across many different business users in many different business environments.

Rob Dublin, director, technical architecture at New York City-based MetLife, concurs that a component-based infrastructure is needed. "Components can enforce the idea of good software engineering disciplines. By building with loosely coupled, standardized components, it is easier to separate the presentation logic, business logic and data access across computing tiers."

One of Dublin's main concerns with the proliferation of Corba/IIOP-compliant components is "if you can get it to work, can you support it in production?" This is the million dollar question, and an answer won't be possible until more corporate users are running the technology across distributed systems and Internet/Intranet environments.

Gold in large grains

While major players like IBM and Sun refine offerings in this market, users are proceeding cautiously. A recent Software Productivity Group (SPG) survey of more than 300 corporate I/S sites found that 35.5% of organizations are not currently using object technology at all, while 27.2% are evaluating it and 22.2% are using OO only for pilot projects. When asked how long their organizations were using OO technology, the majority fall into the "less than two years" category. (See Fig. 1.) However, SPG predicts that because of the maturation of the technology, coupled with a solidification of object standards, a "golden era" of object and component development within the enterprise will begin during 1998.

'Not at all' in lead

Object technologies are still new to many developers, a fact that vendors like Sun and IBM hope to exploit. Here, SPG asked: "How are object-oriented technologies/techniques being employed in your organization?" Respondents were asked to select "all that apply."

Fig. 1

Source: Software Productivity group

SPG analysts suggest that the optimal approach to component development lies in the support of higher order tools capable of modifying and manipulating large-grained objects used in conjunction with small grained components offering specialized functionality. (See "Component granularity influences reuse and productivity". ) SPG recommends that tool vendors take the best aspects of various component development scenarios to create a portfolio of component types. These in turn will interoperate within their development environment to provide users with a complete development solution.

Are Sun Microsystems, IBM and Microsoft on such a course? It remains to be seen over the next 12 to 24 months as products are rolled out and deployed in actual product scenarios across corporate America. The most important element for users to keep in mind is that, while technology holds great promise, the pieces are not yet totally in place. The verdict? Proceed, but proceed with caution. Users must carefully determine their I/S needs and map them with component technologies capable of delivery requirements in a timely and tested fashion.

Component granularity influences reuse and productivity

SPG defines a component market that ranges from class library functionality on one end of the spectrum to full blown application packages on the other end. Whether components are defined as C++ classes, encapsulated software modules or frameworks, they all represent software that does not have to be coded by hand, and the less code developers have to write the more productive they become. The major difference between the areas is that the framework is the bigger "chunk" of software. As one is evaluating vendor component technology, this serves as a useful reference for slotting-in products and packages, and determining how they relate to the "big picture."

How Bean strategies rate

Source: Software Productivity Group

For example, SunSoft JavaBeans technology will fall more into the left hand side of the chart with finer grained components and high reuse potential moving on towards process modeling, while the IBM JavaBeans component story attempts to cover the chart from end to end for enterprise customers looking to bridge legacy with the new world development.