In-Depth

CORBA and EJB Team Up in Data Center

Potential conflict between CORBA standard and Enterprise JavaBeans (EJBs) de facto standard is blunted as the OMG and Sun both recommend a combination — CORBA for legacy systems and EJB for the fresh new mid-tier and front-end apps.

It would be a luxury if the only thing today's IT shops had to worry about was new code. But in the fast-paced world of Internet development, particularly in the e-commerce and business-to-business arena, integration with existing legacy, back-end databases is a growing concern.

Adding to this integration mix is the time factor — to remain competitive, e-commerce apps should have been deployed yesterday — as well as scalability and reliability. But how does a company protect its investment in existing platforms and solutions while addressing these additional issues?

A number of middleware technologies and object-oriented tools have emerged to help. Among them are CORBA, the Common Object Request Broker Architecture standard from the Object Management Group (OMG), Framingham, Mass.; and Enterprise JavaBeans (EJBs) technology, a platform-independent de facto standard that resides under the auspices of the Java Community Process (JCP).

As with any technology, CORBA and EJB are continuously evolving. Each is endowed with specific strengths for distributed computing. CORBA is a mature, language-independent, open connectivity standard that has been around for 10 years. The three-year-old EJB technology, currently in Release 1.1, is becoming increasingly popular but is relatively immature.

On the surface, this May-December marriage may seem to be a bit of a mismatch. CORBA is under the jurisdiction of the OMG and, as such, remains an open standard. Striving to prove its openness, EJB is controlled by the JCP but is still perceived as "belonging" to Sun Microsystems.

Even so, the two technologies are considered by many in the industry to be complementary. EJB components promise ease of use and fast deployment for new server-side applications, while CORBA brings an open connectivity solution to the table.

The EJB specification is targeted toward application service providers (ASPs) and development environments. The spec sets forth how the different elements should interact, and ensures that components and the programs that use them are highly portable across different servers. As such, ASPs such as Bluestone Software, Mt. Laurel, N.J., BEA Systems Inc., San Jose, Calif., and Iona Technologies Inc., Waltham, Mass., must adhere to the specification to be EJB-compliant.

These firms, along with Sun, have embraced the Java 2 Enterprise Edition (J2EE) platform, which brings together Java Servlets, Java Database Connectivity (JDBC) and Java Server Pages (JSPs). EJB technology steps in to automate management of the object life cycle, provides object persistence and object security, defines distribution by way of how remote applications can access objects, and ensures scalability.

CORBA and EJB integration

Andrew Watson, vice president and technical director at the OMG, agrees that the two technologies are complementary. "CORBA is integration technology, and integration these days is very much a watchword in the enterprise," he said.

"If you're building middle-tier, new applications, and perhaps integrating with legacy apps on the back end, EJB is a great way to go for engineering your middle-tier applications. That is, provided you can manage the communication between the middle tier and the back end," noted Watson.

But there is that proviso; while you are deploying new EJB apps, a new programming language, a new framework and getting better productivity, you still need to tie it in with legacy applications. "That's exactly where EJB and CORBA are complementary," Watson explained. "CORBA is an infrastructure for handling that communication and integration with the existing legacy systems.

"EJB is a great choice for current technology where you are building new components — then you use CORBA to integrate them into your existing infrastructure," he added. "But if you're trying to take your existing app and 'componentize' it, EJB doesn't help you because it's Java-specific."

To help address that issue the OMG has provided the CORBA Component Model (CCM), which is complementary to EJB and goes a long way toward making CORBA and EJB more compatible. The CCM is part of CORBA 3.0, and it essentially builds on the established base of CORBA use, which is linking different tiers and legacy apps.

"What we've done with the CCM is to provide an analog of EJB to people not using Java," said Watson. "This extends CORBA's server-side support in ways that are similar to the platform Sun provided with EJB, but for other languages such as C++ and so on."

But according to Watson, this does not make CORBA and EJB competitive in any way. "We didn't set out to create something that competed with EJB, nor did we set out to create anything that would create gratuitous differences with EJB," he said. "We basically took the underlying EJB design rationale in the EJB model and created an analog of it for other programming languages, including Java. CCM for Java is EJB; the specification is the same."

"CCM is the OMG's specification for doing what EJB does: creating components and segmenting the plumbing away from the business implementation," said Ralph Galantine, Sun's senior product manager of CORBA technology. "CCM includes EJBs as a valid CORBA component, so it's safe for IT shops to invest in building EJBs because it is a valid piece of the spec from the OMG," he explained. "Therefore, it's safe to assume that what the OMG does will respect [what] EJB is."

For its part, Sun and the JCP have determined that CORBA is sufficiently important to the success of Java that they have made a CORBA-compliant ORB a mandatory part of all JDKs.

"The JDK 2 tells other vendors working under the Java umbrella that they must provide that CORBA ORB as part of their Java environments," said the OMG's Watson. "This ensures Java programmers that whenever they write code and wherever it gets deployed, there will always be a CORBA ORB available to help them talk from their new Java programs into their other systems."

Does this mean that Sun, the JCP and the OMG are working closely together? Not exactly. While there is no formal representation of the OMG in the JCP process, a lot of the vendors involved with JCP are also involved with the OMG. "We do see some interaction," said Sun's Galantine. "Sun is also a very active participant in the OMG, so that's another opportunity to influence EJB and CORBA to work well together. We're all working to keep standards closely aligned."

"Until recently, Sun took the attitude that Java was their technology and they would decide which way it goes," said the OMG's Watson. "Java has now become so important to so many players that the industry cannot let Sun have total control over it. Therefore, the JCP is established as an open process to make the rest of the industry feel comfortable that Sun doesn't have exclusive control over Java's future," he added. Even IBM, which has criticized Sun's role in the EJB standards process, is an active JCP member.

Collaborating on the EJB spec

The EJB spec is a collaborative effort driven by Sun with participation from every major player in the industry. "This is a benefit because customers will be able to layer EJB applications onto their existing IT infrastructure," said Ann Betser, Sun's senior product manager, EJB. "The companies can continue to use the same vendors and the same hardware and software, while enjoying the benefits EJB technology provides."

EJB separates the business logic from the complex plumbing-type services such as transaction management, security management, multithreading, load balancing, connection pooling and a long list of middleware services that can not only make an app very complicated, but lengthen development time. This makes for rapid development and deployment.

With EJB there is also a high level of portability in both operating systems and app servers, which protects a company's investments. A firm can scale up its solution, change its security issue and improve performance. Because there is no vendor lock-in, a company can maintain a flexible infrastructure as it moves forward.

EJB 1.0 went into final draft in March 1998, while Revision 1.1 came out in March 1999. The next major release, 2.0, will be one of the first specs to go through the JCP.

One of the most significant things included in Revision 1.1 is the mandatory use of Entity Beans, a type of bean that enables better connectivity between the middle tier and the database tier.

Revision 1.1 also aims to make deployment easier for the developer, so the JCP made many changes around the deployment descriptor. This enables a developer to provide an instruction book that gives the application server information about how to manage the enterprise beans. One change was in the format to support eXtensible Markup Language (XML) text.

In additional updates, the RMI over IIOP feature has gone into the recently released Java 2 SE v1.3. That allows RMI to work over CORBA, making CORBA a full citizen of Java and completely equal with Java Remote Method Protocol (JRMP). Also, a new CORBA IDL compiler is available to help make CORBA easier to use for Java programmers.

International Data Corp. (IDC), Framingham, Mass., forecasts that the EJB components market will grow at an annual compound growth rate of 175% during the next five years. "EJB is being adopted at amazing rates. This is a technology where we saw customers starting to build mission-critical applications before Version 1.0 of the spec went public," noted Sun's Betser.

It was not long before Sun's enterprise customers were in production with mission-critical applications based on EJB technology. "One key area, for obvious reasons, is e-commerce," said Betser. Customers with successful EJB implementations include DHL Worldwide Express, which used the Java platform to build an enterprise-wide airway bill imaging application that enables customer service representatives to query and access bill images through a Web browser. This provides a more streamlined and cost-effective customer service fulfillment process. The application was developed in less than one week, and is estimated to have saved DHL more than 1 million dollars per year.

"EJB enables rapid development of new apps, as well as their modification over time," said Betser. "EJB is portable across application servers, provides flexibility and choice in setting up the infrastructure for the application, and protects the application moving forward, enabling the company to scale their solution by swapping the underlying application server."

Another important piece is interoperability between different application servers, legacy applications and the existing world of CORBA. "What we've required in the spec for this version of J2EE is that application servers be able to call out to an existing CORBA service. The level of interoperability, and whether there is full transactional interoperability with existing CORBA things is a vendor thing; it's a point of differentiation between the vendors," said Betser.

Pairing app servers with EJB and CORBA

Formed in early 1999, X:drive Inc., Santa Monica, Calif., provides the consumer and business markets with an Internet hard drive. Its X:drive hosting service, free to consumer members, lets a user store files on X:drive and then access them from anywhere with Internet access.

According to Jack Crawford, CTO at X:drive, the company chose BEA WebLogic Server as the application server on which to run Java. Performance and scalability were important factors. "Our registered user base has just now topped two million, and in terms of concurrent users the site feeds about 100,000 people a day," said Crawford.

The company expects its customer base will grow to 8 million or 9 million consumer users, along with a very large complement of business users who are paying to have advanced services like security or encryption on top of X:drive. "This will be greatly supported by the underpinnings of the Java foundation," said Crawford.

According to Lucas McGregor, applications architect at X:drive, the company's offerings were originally written in Perl as the core language set. "We realized we needed to switch to a more advanced platform than those traditional languages," he said.

"We evaluated a lot of things, such as going back to C where we could get pure throughput," he added. "After analyzing languages, we realized the feature set we needed to be on the Internet was something we could only get from an advanced language like Java."

There was some initial concern at X:drive about the speed issues associated with Java, but the firm learned that Java for Web sites is not the same as the traditionally intense graphical-type computing that people originally criticized Java for.

"Instead, we would be using Java for things like network access, database access, disk access, and things like parsing and processing of input and output," said McGregor. "Java is extremely fast at these things."

In addition, X:drive has a partnership with Symantec Anti-Virus whereby X:drive users can have their files scanned before they are saved to their Internet hard drive, noted Crawford. "This app runs on four BEA WebLogic servers. It hits against the staging area where the files are initially uploaded and lets the user know whether they have a virus, then asks whether they want to correct it and so forth."

X:drive has recently rolled out its final production site completely in Java. The application runs on a distributed network of servers for a high level of scalability and stability. According to Crawford, Java has proven to be one of best languages out there in meeting the rigors of the Internet.

X:drive is now uploading nearly 100Gb of new user files per day going into storage, and is growing at just under a terabyte a week. "We believe we will handle the load without any problem, and we're looking for real performance advantages with the move to Java," said Crawford.

The role of Internet app servers

Application server software that integrates EJB and CORBA offers advanced services such as load balancing, fault tolerance and security. Sun's Betser has seen across-the-board adoption of the EJB technology. "It's become a checkpoint feature for application servers," she said.

One such application server supplier is BEA Systems. According to John Kiger, BEA's director of product marketing, BEA has had tremendous success and a large roster of reference customers with live EJB implementations. "Our view is that Java is the future for application servers and e-commerce in particular," he said. BEA Systems offers the BEA WebLogic family of application servers. The company recently announced release 5.1 of its application server family, which consists of three main products: WebLogic Express, BEA WebLogic Server 5.1 and WebLogic Enterprise 5.1.

WebLogic Express, the low-end product, is aimed at providing a Java application server for "forms-to-fields" for getting data out of databases and up to Web interfaces quickly. On the middle tier is WebLogic Server, which provides an EJB application server platform and supports enterprise Java standards, as well as all the critical J2EE standards, Servlets, JSPs, EJB, JDBC and Java Messaging Service (JMS). The Server also includes value-added capabilities such as the ability to provide clustering for high availability, failover and robustness needed for business-critical applications.

Kiger describes WebLogic Enterprise 5.1 as a complete platform for Web-to-back-end e-commerce integration. This is important because in complete e-commerce solutions you have to think not only about the front end and how you generate Web pages that interact with the customer, but about the complete end-to-end solution with the Web front end, data access and transactions in the middle, and integration with other systems in the enterprise on the back end.

Another EJB supporter is Bluestone Software. The company offers Total-e-Server (formerly Sapphire/Web), an enterprise-class infrastructure that fully supports the latest open technology standards such as J2EE and XML.

Bluestone's Universal Business Server (UBS), a part of Total-e-Server, is a deployment engine that ensures scalability and fault tolerance through load balancing, data caching, state management and reliable transaction processing. The UBS application server products are also based on the J2EE platform. "We feel strongly that it is the platform of the future and we see very strong support of that in our customer base," said Bob Bickel, Bluestone's executive technology officer and senior vice president of products.

The Bluestone UBS incorporates the EJB container and supports other important pieces of J2EE such as JSPs, Servlets, JDBC and JMS. Services are also provided for things like security, connection pooling and state management.

Bluestone also supports CORBA and can call CORBA objects without EJBs. Clients can call the Bluestone application server as a CORBA service. With the CORBA IIOP implementation, it can be integrated with the Bluestone EJB server with RMI IIOP.

Bluestone released its EJB 1.1 server in April 2000. Bickel believes that a lot more has been solidified in the 1.1 spec and that people can implement on it. He has also noticed a growing amount of compatibility between the different EJB 1.1 servers. "We have customers who have ported from BEA WebLogic into the Bluestone EJB server and made that port happen in the course of hours," he said.

....Bluestone is not just an EJB vendor. "We support other mechanisms as well, because we don't necessarily feel EJB is appropriate for all apps," said Bickel. The final decision on what to use is left to the customer, he noted. EJB Entity Beans, for example, have some performance issues and there are still some apps where it does not necessarily make sense to use them from a performance perspective. According to Bickel, that part of the spec is getting better as time goes on.

Some users are completely sold on EJBs, while others are concerned about the newness of EJB. "An alternative is to use simple beans, and to utilize the services of the application server for doing load balancing, persistence, state and so forth," said Bickel.

EJBs in action

Favemail, New York City, has a Web site that allows people to add "Faves" — clickable graphics and text — to their E-mails. The company chose to employ Java and the Bluestone Total-e-Server infrastructure to create a content platform for Internet E-mail enhancements.

Faves do not change the way a person E-mails; they transform everyday text messages into banners with photos and links. "We call them digital bumper stickers," said Fred Kauber, vice president of technology and operations at Favemail.

The technology can also be used for Internet affiliate marketing. For example, you might go to the Favemail Web site and find a Fave for a particular book about Java at Amazon.com. If the book is of interest to your programmer friends, you can send that Fave by E-mail to those friends. If one clicks on it, goes to the site and buys the book, you would receive a commission for the referral. The platform Favemail built is very Java-centric. The company implemented Bluestone's Web application server as the heart of the infrastructure, and the platform is all Unix-based using Sun Solaris. The application was developed using JSP. Performance and scalability were concerns, however. "The more Faves that are sent out in E-mails, the more potential members we have," said Kauber. "It grows very quickly, so we've architected our platform to support millions of users and tens of millions of these transactions."

Because a very robust platform was required, Kauber went with Bluestone's app server and EJB with an Oracle database on the back end. "We looked to the promise of EJB to ensure we wouldn't tie ourselves into any proprietary technology framework. That's incredibly important, and the role of Java Server Pages and Sun's J2EE platform also speak very well to that point. You can theoretically run components you've developed on any vendor's EJB container if they comply with EJB and J2EE standards," said Kauber.

According to Kauber, when Favemail was formed a year ago, standards were still evolving, so it was a matter of being able to integrate JSP technology with the other technologies the company was working with. "Not everything was extensible via JSP, but that's changing radically, and we were able to gain all the benefits we sought, such as not being locked into a particular application platform, speed in development, and flexibility in terms of being able to update our content. We release a significant enhancement to the service about every three weeks, so it's a constant, ongoing process," he said.

J2EE and the EJB strategy

Iona Technologies also offers an EJB 1.1 application server that fully meets the requirements and functionality of J2EE 1.2. According to Simon Pepper, senior product manager of Java products at the company's worldwide headquarters in Dublin, Ireland, J2EE sets the standards for application servers going forward.

About a year-and-a-half ago, Iona acquired EJB Home, a technology company that was one of the reference implementations within the EJB 1.0 spec. Iona brought the technology in-house, but decided not to release it to the older 1.0 EJB specification. Instead, Iona worked it up to EJB 1.1.

"In the first-generation application serv- ers, there were certain scalability issues," said Pepper. "We found the more lengthy 1.1 EJB standard to be more enterprise strength with its standard deployment descriptors."

EJB is a key part of Iona's product strategy. Pepper maintains that CORBA is still important, and notes that Iona's iPortal app server is basically built on top of CORBA.

He also views CORBA and EJB as complementary technologies. "CORBA did a great job abstracting away from the infrastructure — from things like networks, sockets and RPCs, and from having to discover where your distributed application was running somewhere in the network," said Pepper.

"By harnessing the power of CORBA inside the EJB container, we're utilizing all the power of CORBA and its maturity as a standard," added Pepper. "We have it proven in many business-critical distributed object environments. Rather than throw that away and start something new, we harness the power of that infrastructure, but take it up to another layer of abstraction, where EJB is at."

At the JavaOne Conference held in San Francisco last month, Iona announced its participation in Sun's JCP Executive Committee. In addition, Iona announced enhancements to its iPortal Suite, including the iPortal Server presentation and content management component. The firm also announced Orbix 2000 Version 1.1 for Java, which provides customers with support for developing Java and C++ CORBA apps.

The future of CORBA and EJB

While the EJB specification is not quite in the public trust yet, industry observers agree that the technology has come a long way. Companies that have been working with the technology also see its potential for the future, particularly in terms of working well with CORBA. "EJB 1.1 is a very solid spec," said BEA's Kiger. "It's a terrific platform for robust enterprise apps, and we're seeing a lot of success with it."

Kiger also suggests that while the Java and CORBA convergence is quite natural, it is important to provide a platform that bridges the present with the future. "If you look at what we have with multiple platforms out there, if you're a pure Java shop then BEA's Web Server is a terrific platform. But many of our customers have different types of programmers, including C, and may have CORBA in place, which calls for a single enterprise server, such as WebLogic Enterprise," said Kiger.

Regarding any dichotomy between CORBA and EJB, Sun's Galantine notes that it is not a division nor is it a question of CORBA vs. EJB; it is more of a progression. "A lot of people who have been using CORBA are now using EJBs for new projects," he said. "The question is, when you adopt EJB, will it be on top of CORBA or on top of something else?"

"Vendors with less history in the CORBA community, but with a big history in the transaction processing community, may build EJBs on top of their TP monitors that aren't necessarily CORBA," he explained. "They can fight the wars with CORBA; but with EJBs, the systems are aligned and EJBs help fulfill the promise CORBA has had for years but has partially fulfilled."

Added Galantine, "We've gone further now to deliver ease of use, compatibility and, with the next version of the spec, interoperability based on CORBA IIOP. Our surveys show that [developers] don't find CORBA as easy as it should be or as interoperable. Our big push is to make it a lot easier so that when you get a J2EE 1.3 you know it'll interoperate with every other J2EE app server out there."

EJB as a standard is still evolving, noted FaveMail's Kauber. For example, he said his company had some issues with the security models in its adoption of JSP. "Even within the Bluestone application suite, not all the security services were extensible to that model. I think that not all the components have caught up to actual standards compliance yet, but that's the case with any emerging technology," he explained.

"I think the true value of EJB hasn't been found yet; most of what EJB offers is the promise of being able to migrate legacy applications to future platforms as long as they're EJB-compliant," said Kauber.

"The people at Sun have done a good job trying to keep a diverse vendor community happy along with trying to move the technology forward," added Bluestone's Bickel. "It's a tough position they're in, but I think they're doing a pretty respectable job."