Don Ferguson is IBM's lead for the EJB and J2EE specification evolution. His work has focused on CORBA-based SM solutions and frameworks, and evolved into an effort to define frameworks and system structure for CORBA-based object transaction monitors. The early design and prototype of these systems produced the IBM Component Broker and WebSphere family of products. JDJ readers asked him the following questions about IBM and Java.
<eric rizzo>: Is IBM investigating the option of pushing SWT through the JCP? If so, what specifics can you give?
<don ferguson>: We don't have any plans to submit SWT to the JCP; Sun wouldn't allow this. Actually, we've positioned SWT as a technology to create advanced visual interfaces for the creation of compelling development tools. While we've seen SWT being used by some subscribers to the Eclipse toolkit, this was not our original intent.
<rizzo>: What is IBM's response to claims by Sun supporters (maybe Sun itself) that IBM is undermining their community effort around Forte/Net-Beans?
<ferguson>: There is no serious community around Forte or NetBeans. Eclipse is focused on the requirements of tool vendors to create feature-rich and visually attractive tools that are easy to integrate. The lack of an open community and framework in this space was one of the key motivating factors for creating eclipse.org. We've seen that the massive participation in eclipse.org - two million downloads, 175 tool vendors committed to creating commercial Eclipse-based tools - demonstrates that there was a compelling need for it.
<carl luongo>: What is IBM's involvement with Java and J2EE? What is the J2EE support in WebSphere? Where do you stand with J2ME?
<ferguson>: IBM was one of the principal contributors to J2EE. For example, many concepts from Component Broker manifest themselves in EJBs. Many WebSphere MQ concepts appear in JMS, and JCA is completely based on IBM's common connector framework. IBM also participates in all major J2EE specifications.
With WebSphere, IBM was the first major vendor to have a J2EE 1.3 certified product. We have an excellent development environment, based on Eclipse, that supports J2EE application development. The WebSphere platform routinely wins awards for being the best J2EE development environment. We won the JDJ Readers' Choice Award for Best J2EE IDE.
IBM supports J2ME through our application development tools. Visual-
Age Micro Edition won this year's JDJ Readers' Choice Award for Best J2ME IDE. We are also working with several mobile device vendors that embed our J2ME runtime products.
<henry roswell>: Why was IBM one of the last major vendors to license J2EE officially?
<ferguson>: IBM has not been as aggressive in delivering products certified to the latest J2EE standards because our customers demand enterprise products built with reliability, scalability, security, and support of standards. Therefore, we have focused on deployment-ready systems. By contrast, other companies shipped early releases that complied with the standards but were not suitable for deployment. When we shipped our J2EE 1.2 and J2EE 1.3 products, we passed far more tests in the CTS than any vendor. WebSphere was also the first product to successfully run ECPerf. The IBM brand stands for certain things and we support the brand through WebSphere.
We realize that customers want early access to standards for development purposes, followed by deployment-ready systems. So we have shifted our philosophy to first deliver development platforms and then the deployment systems. This is why WebSphere was the first major J2EE 1.3 certified product.
<kyle sanders>: What is IBM's support of EJBs?
<ferguson>: WebSphere supports EJB 2.0. WebSphere Studio Application Developer supports EJB 2.0. We have contributed significantly to the EJB specifications.
<jesse sinkowitz>: Can you elaborate on IBM's position on J2SE?
<ferguson>: IBM and Sun have both invested in creating a platform, J2SE, that Java applications such as J2EE can run on. IBM develops J2SE-compliant Java SDKs on a range of platforms from Intel to PowerPC to our zSeries mainframes, on operating systems ranging from Windows to Linux to zOS.
All of these platforms are built to deliver enterprise deployment characteristics.
<chris jensen>: Do you think Sun will ever donate Java to the open source community?
<ferguson>: I personally appreciate the leadership Sun has provided through the JCP. However, we hope that at some point Sun will submit Java to a bona fide standards body. Control by any one vendor - whether it's Sun or anyone else - creates problems.
<jay laurents>: I read that IBM will be coming out with a new version of WebSphere. What are some cool features for developers?
<ferguson>: There are a lot of cool new features. I'll briefly highlight five of them.
1. WebSphere Version 5 continues to place a major focus on Web services. We support a gateway for publishing applications into the Internet through Web services, with support for security and auditing. WebSphere Studio provides tools for encapsulating "legacy" applications through WSDL, and publishing J2EE artifacts (JavaBeans, EJBs, etc.) with Web services. We also provide JMS support for Web services, in addition to HTTP and RMI/IIOP.
2. WebSphere provides a workflow engine that choreographs business processes in which the activities map to J2EE Java calls or invocations of Web services. It also supports a business transaction model with automated compensation-based recovery.
3. We significantly improved our support for dynamic fragment caching of both data and *ML results. In the past, reverse proxy servers and in-network servers cached HTML result pages. In a world that relies on personalization and portal models, result pages are composites of "subelements" that the application server dynamically assembles based on request parameters, user profile, etc.
WebSphere's fragment-caching environment understands how to compute cache IDs for the subelements, and optimize construction of the composite result pages. This all works transparently to the application developer by having a deployment time specification of caching policies. Policies and an event mechanism implement cache coherency within a cluster and tie together our fragment caching, content distribution networks, and content management products.
4. We have shipped an improved version of our problem determination tools that correlates and consolidates multisystem WebSphere logs, and uses filters to report on root causes for problems and the proper corrective action.
5. We have built on EJB 2.0 to improve the development and performance of entity beans. This includes improved tooling for relational-object mapping, policy-driven optimization through prefetching, optimistic transactions, and caching. We also ship an enterprise extension that supports dynamic, SQL-based query in addition to EJB finders and select methods.
<alan brown>: I hear a lot about how the Java and CORBA specs are merging. How close are we to having a single specification for both Java and CORBA? What do you see as the benefits/drawbacks for current CORBA customers who wish to adopt or move to a J2EE architecture, or should they even be thinking of moving at all?
<ferguson>: CORBA and J2EE are already somewhat merged. The CORBA specifications define J2EE interoperability for transactions, security, and EJB remote method calls. There's also IDL bindings for EJBs to enable non-Java applications and JNDI support for CosNaming. IBM pushes hard for this convergence; for example, JSR 95 drives an Activity Service that provides Java support for the evolved CORBA OTS specifications.
Much of J2EE defines Web aspects, such as JSPs, servlets, and HTTP Session. These are not covered by CORBA. The EJB specification defines a component model between application server containers and deployed business components. There is some overlap between EJBs and CORBA components, but there seems to be little progress on convergence.
I believe that CORBA customers should move to J2EE for the "server model" for CORBA. J2EE and EJBs define an excellent endpoint/container/server model for hosting CORBA objects.
WebSphere has put several features in place to ensure interoperability between our J2EE hosting environment for EJBs and "legacy" CORBA environments.
The main disadvantage of J2EE is the exclusive focus on the Java implementation of the server business objects. I expect that application vendors will gradually and incrementally add support for non-Java languages over time.
<chester arnold>: What is IBM's stance on the Java Data Objects specification for persisting data? It seems like a useful spec that's much easier to use than the alternatives, e.g., entity beans, JDBC, etc., but no major player has adopted it other than Sun.
<ferguson>: We have no plans to support JDOs. For J2EE, we recommend EJB 2.0 support for CMP entity beans, which we believe is simpler and better. Application development tool support for JDBC also provides a better model than JDOs.
<jun kong>: Why is IBM always so slow in new J2EE technology such as EJB 2.0, etc.?
<ferguson>: Please see the response to Henry Roswell's question.
<kong>: WAS 5.0 looks like WebLogic. The significant point in WAS 5.0 is that there is no standalone console. Instead, there is a Web-based console just like WebLogic. Why?
<ferguson>: We have found that basic concepts from portals, frameworks like Struts, and JSP tag libraries provide sufficient richness for most management scenarios. This was not the case in the past.
While the console approach may be similar, the functional capabilities of WebSphere administration far surpass those of WebLogic.
<jani kavcic>: I have been looking for the JDK 1.4 (JRE 1.4) from IBM for some time, but I still didn't find it anywhere on the Web. Is it already available? If so, where?
<ferguson>: We have been delivering our SDK 1.4 and JRE 1.4 on our supported platforms since the end of the second quarter. As you know, IBM delivers JVMs on many platforms so we are actively rolling out all platforms now. By the end of the fourth quarter, we expect to have rolled out our JVMs on all our key platforms including Linux on IA-32.
Here are a few URLs detailing both GA and beta deliveries:
Linux on zSeries:
<swaroop>: How do you characterize the next-generation middleware from IBM with the WebSphere Application Server and MQSeries addressing new trends in application development for Web services, computing on demand, grids computing, etc.?
<ferguson>: For Web services, there are two fundamental concepts: the "container" and the "bus". The container is the environment in which the service actually executes, and we have put a large amount of work into WebSphere to make it the Web services container. This is also the environment that provides support for current and evolving Web services standards like BPEL4WS, WS-Coordination/WS-Transactions, etc.
We are evolving our message middleware products so that they implement a "bus" for communication between Web services. This includes support for multiple protocols and formats, interoperability, and value-added services for Web services. Examples of value-added services include support for dynamic binding, interface/format matching and transformation, pub/sub, etc.
IBM has been working to bring together the Grid, Web services, and J2EE. You can see this from our leadership on the OGSA specification, which is an extension of Web services/WSDL, and on the Globus Toolkit's move to J2EE.
IBM has spoken about projects we are working on to support "provisioning" on-demand. These products will support policy-based configuration of system images to physical systems and mapping application images to configured systems. This dynamic configuration technology together with a WSDL interface model for applications and the well-defined packaging model of J2EE form the pillars of on-demand computing.
<dan novik>: What is IBM's support for custom JSP tags in WebSphere? Are you going to provide your own taglibs like Oracle or BEA?
<ferguson>: We provide and will continue to enhance our library of JSP tags. We also support Struts in WebSphere Version 5, which comes with tag libraries. Our development tools, WebSphere Studio Application Developer, support the production of new tag libraries and the use of other tag libraries.
<andrew craig>: WAS 4.0's support of JMS is flaky at best, and WAS 5.0 seems to be pushed back more and more each time I look into it. Is there any plan to move proper MDB support into WAS 4.0 (AE) ahead of the WAS 5 release? I have used many of the workarounds, but they are only good at low loads, as they effectively serialize out the requests to one at a time!
<ferguson>: WebSphere 5 has direct support for JMS and MDBs through J2EE 1.3.
<charles simon>: What's the story on supporting Java on VM? How can I use VM as a Web services server platform? Will Java ever be supported under CMS?
<ferguson>: z/OS and Linux are the key strategic platforms for executing Java components and Web services on the zSeries server. There is some degree of support for Java on VM: the IBM Java Port for VM/ESA, Developer Release 1.1.6 is a port of Sun Microsystems' Java Development Kit (JDK) to the S/390 platform and will run on all z/VM releases and VM/ESA version 2 releases 3 and 4. You can find more information at www.vm.ibm.com/java. There are no current plans to provide a WebSphere Application Server on VM. However, VM does play a key role in this space by providing hosting services to multiple zSeries Linux guests. Running WebSphere in zSeries Linux guests under VM is a highly recommended way to consolidate workloads and leverage VM's systems management strengths against these workloads.
<bisi>: What is your advice for developers and software engineers who want to specialize in distributed component-based software development?
<ferguson>: WSDL will form the basis for the industry's distributed component model. We are working to ensure that this occurs and that OGSA comes together with WSDL. There will be multiple approaches to "implement" the WSDL components. Some components will be legacy applications encapsulated in WSDL through development tools like WebSphere Studio Integration Edition. EJBs and J2EE provide one ideal environment for implementing new components from their WSDL interface definitions.
Component assembly will become the main approach to new components. We will build new WSDL components from existing ones using languages like BPEL4WS. I also expect to see an approach to component customization that relies on components making outcalls to a policy service to tailor their behavior. We are moving our Business Rules Beans support in WebSphere in this direction in the longer term.
Brokering will also become increasingly important. Finding components will become easier, but the routing and transformation necessary to dynamically integrate components will be critical to Web services and component success. So technology like XSLT and pub/sub are areas that will grow.
Finally, I expect to see significant progress in support for XML in databases to provide a better query and persistence mechanism for components.
<martin hromek>: Is there a meaningful approach to comparing WebSphere (J2EE?) to .NET?