IBM's Java: The Common Language of the Coming Era
IBM aims to win the Java Wars by creating a brand of Java that plays on all its platforms and, thus, offers customers an enterprise platform more open and appealing than the one controlled by Microsoft’s Win32 and COM APIs.
IBM is getting serious about Java. According to analyst Christopher Carrigan of Summit Strategies, IBM is committing 1,200 developers, $100 million on Research and Development, and $200 million a year for future work to make Java its cross-platform enterprise programming language. Angus McIntyre, IBM’s Marketing Manager for Visual Age for Java, further maintains that incorporating Java across its product line is one of IBM’s three major software development priorities. With this kind of attention, Java might as well have been e-mail scripture sent by Providence to Sun’s Scott McNealy with a big cc to Lou Gerstner. So it’s fair to ask, what makes Java the new blood pumping through Big Blue? What Java products has IBM produced thus far? And what end game is IBM pursuing to captivate its customers with the promise of Java?
Java is an object-oriented, multi-threaded, interpreted programming language. Unlike compiled languages, with interpreted languages you write apps once to play on multiple platforms. With Java, you use a Java Virtual Machine (JVM) - software that interprets Java source code and executes Java applications — to translate Java to any computing environment. Java is the most portable programming language broadly deployed today.
Portability is important to IBM. It has the industry’s largest installed base of legacy systems running on a multitude of IBM platforms. Making those platforms compatible is the biggest challenge standing between IBM’s dominance of enterprise computing today and achieving preeminence in the next computing paradigm, electronic commerce. Java is the key to IBM cross-platform compatibility. But while open computing within its architecture is IBM’s near-term goal for Java, it’s long-term strategy is shifting the momentum of the enterprise platform wars from Microsoft’s Windows to IBM’s brand of Java.
To implement Java, vendors have to first license it from Sun. The licensing agreement allows them use of what’s known as 100 percent Pure Java and prevents them from proprietizing that base Java, though they’re free to optimize it for their own computing environments. Microsoft is the only vendor who’s licensed Java, but so radically optimized it for peak performance in Windows environments that it’s become essentially a proprietary Microsoft language. By characteristically appropriating and bastardizing Java for its own greater glory, Microsoft has sacrificed Java’s portability for improved Windows Java performance.
In the short term, Sun is competing with Microsoft in the court room — it’s suing Microsoft for violation of the Java licensing agreement. IBM, on the other hand, is focused on the long view. It’s leveraging its rich large-scale architecture, comprehensive server-side development expertise, and worldwide service infrastructure to surround the customer with limitless Java solution alternatives and gradual improved performance. Big Blue is betting the marketplace will trade the certainty of proprietary Java computing with Windows for the promise of open Java computing with IBM.
The Network Computing Framework — Blueprint for the Java Enterprise
To Java-enable all of its products, IBM has evolved what it calls the Network Computing Framework or NCF (see Table 1). NCF is a comprehensive software architecture that leverages cross-platform Java APIs customers use to access data on disparate IBM platforms and present it to powerful Web servers. These forward it to disparate Internet-enabled clients for use in e-com activities over the Net. The APIs let developers invest Java functionality enterprise-wide across multiple platforms by writing apps once to this processing layer instead of many times to each of the different legacy platforms.
Summit’s Carrigan in "IBM Goes on an Enterprise Offensive With Java," says NCF is unified by three layers of broad functionality — Clients, Services and Connectors — that link users, developers and businesses, and tie all three to data on diverse IBM legacy systems like AIX, MVS, AS/400, DB2 and OS/390.
There are two types of clients. Windows users can load a browser with a JVM to access client-side Java applets and JavaBean components. Others can use IBM Network Stations, lower-cost alternatives to PCS, which access host-based services via Java-enabled browsers or legacy data (on transaction processing servers like CICS) via middleware connectors.
IBM integrates Java into the infrastructure of its NCF Services, says Carrigan, by incorporating JVMs into its strategic operating systems — OS/390, OS/400, AIX and OS/2. Java is inherent in the foundation of NCF Services because Sun’s Java Development Kit (JDK) gives Java developers class libraries and tools for tuning and debugging Java apps, and JavaBeans provide the component architecture within which they can develop client-side applets and server-side servlets, as well as Internet applications. Carrigan includes Web Server, Database and Transaction as representative Services.
Carrigan says NCF Connectors are software agents that let Web server applications access enterprise data and apps on heterogeneous backends like IBM’s Encina transaction processing servers or DB2 databases as well as, say, Oracle databases, by using Sun’s Java DataBase Connector (JDBC). The Connectors give users and developers access to the Net and to enterprise backend data, apps and services. They are what most enable communication between the legacy backend, servers, clients and the Net.
JVMs and Java Compilers — Portability and Performance
Every vendor is building JVMs that optimize Java for their own platforms. IBM is no exception. It has JVMs that run on all IBM platforms, from OS/2 Warp to OS/390. Carrigan says IBM will soon introduce what it calls a Universal Virtual Machine (UVM) which will support, in addition to Java, other languages like Basic and Visual Age for SmallTalk across multiple IBM and non-IBM platforms — like AIX, Solaris and Windows NT.
Whereas the JVMs ensure portability across platforms, Anne Thomas, Senior Consultant in Distributed Computing, Patricia Seybold Group, says compilers enhance JVM performance by compiling Java down to hardware code unique to one platform. This improves performance, but undermines portability. If customers need portability, they can revert to 100 percent Pure Java and live with suboptimal performance. IBM’s McIntyre claims the IBM compiler improves Java performance tenfold.
Clients — Thin Is In
For e-com activity like purchasing or customer support, Paul Boulay, IBM’s Project Director of Marketing, Network Computer Division, says users don’t need numerous apps running on a PC — they need a few focused, high-powered applets that can interact with millions of customers seven days a week. Thin clients like network computers are ideal.
Seybold’s Thomas explains that NCS have no hard disk — users download a desktop interface with applications like a browser, calendar and word processor from the network server, which also manages the apps. When you exit the desktop, your work and apps are stored on the server, so you can re-access your desktop from any NC. You can also develop applets to customize your interface for your e-com role and save that interface on the server, Thomas adds. So someone doing customer support will have an interface optimized for those activities and not burdened with applets for, say, inventory control.
IBM’s NCs are called Network Stations and access data on a variety of IBM and other client/server backends like UNIX and NT or via terminal emulation, IBM and other host backends like AS400 or 3270 environments. Boulay says the three models can be loaded with eSuite Workplace, a generic end user "Webtop" environment for launching productivity applets, or eSuite Dev Pack, which supplies developers with JavaBeans to develop apps like spreadsheets to enrich the Workplace Webtop. All feature browsers and JVMs. IBM and Sun are also developing a Java OS for running applets on NCs. Users load it from the network at run-time, says Thomas, and it affords better scalability than Microsoft’s NT — with a powerful server, NCS can scale into the thousands while PCs on NT top out well under 100.
With development environment, customizable Webtop, and OS, NSes are more robust than dumb terminals, but Boulay says they’re no universal replacement for PCs. Dropping prices, increasing functionality and their multipurpose nature will preserve the PC installed base. But the advent of network-centric e -commerce will drive NC sales. And they’re overall lower cost of ownership for things like less service and fewer upgrades will lure e-com users away from PCs.
Most experts agree that the NS is the best NC on the market. All are cross-platform, and the Model 1000 is powerful enough to develop mission-critical Java apps. Sun’s Java Station only runs in Sun and Windows environments; Microsoft’s Windows Terminal Server only in NT 4.0 environments has no Java and no browser.
WebSphere — E-Com Central
IBM’s McIntyre says customers spent $1 billion last year extending their legacy apps to the Internet. IBM wants to win that business with WebSphere, its powerful Java Web server that lets customers link any client to any server. WebSphere is how the Internet shakes hands with legacy servers to seal e-com deals.
Thomas says WebSphere combines the Apache Web server with the Java Servlet Express Engine so customers can run server-side Java apps. It’s the drive-train that transfers all the power of NCF to IBM e-business apps. Using Java development tools and app frameworks (generic partially completed apps), developers can build and deploy Java apps which enable e-com transactions (commerce), leverage database connectivity for data sharing (content), and integrate with mail and groupware to promote workgroup productivity (collaboration). Because it’s integrated with the Domino Go Web server for Lotus Notes, it also empowers the huge Notes installed base.
IBM’s Enterprise Java Beans — Portable Power
The battle to dominate the e-com paradigm will be won or lost on the server. Businesses that build Web sites where customers make e-com purchases using a browser have built virtual Mom and Pop Shop storefronts — adequate for small businesses selling goods to specialty markets whose sites get, say, 100 hits a week. But a major manufacturer serving world markets using extranets to buy materials from business partners, intranets to sell wholesale to dealers and the Internet for customer support? These corporations get 1 million hits a week and need e-com integrated throughout the enterprise — from inventory control to purchasing to after-sales support. You can’t assemble such a complex, transaction-intense system with a lightweight programming language.
Java is young and lacks the umph of mature languages like C++. Because its strength is portability, it doesn’t perform as well as languages built for specific platforms like NT. IBM’s chief challenge is enhancing Java’s performance so it’s powerful enough to support millions of e-com transactions across all IBM backends. But building client/server server apps for a thin-client e-com environment is inherently different from building client/server apps. It requires a whole new breed of middleware that ties disparate legacy servers to nonstandard Web servers to clients diverse as NCS, PCS, laptops and handheld devices. To accelerate development of that middleware, IBM (with Sun’s blessing) is adopting and enhancing Sun’s standard cross-platform enterprise Java APIs called Enterprise Java Beans.
Thomas says IBM will implement EJBs in all of its app servers like DB2, Encina and Domino so IBM customers can port Java apps between IBM platforms. Using IBM’s server component model, customers deploy Java components — reusable pieces of code that behave in a standard way — in app server containers that let the platform where they’re deployed access and control their functionality. Enabling this middleware functionality is IBM’s CORBA, the Common Object Request Broker Architecture, that lets customers develop powerful and portable client/server server apps. With EJB functionality deployed according to the CORBA blueprint, IBM is evolving an open e-com computing architecture that’s a viable alternative to the Microsoft’s Win32/COM proprietary architecture that locks Java users into a Windows environment optimized for client/server computing.
The Development Environment — Applets to Platforms
To beef up that middleware, IBM created a Java development environment that ranges from client-side toolkits to development platforms that provide ready-made complex code comprising most of a mission-critical Java app.
Novices who don’t know Java can use Lotus’ Bean Machine to assemble Web page applets from Java Beans. They simply connect beans from a menu with lines to create an applet and place the applet on a Web page - Client-side app development by numbers.
Lotus e Suite for developers offers eight productivity applets like word processing and calendaring they use to customize NS Webtop apps for focused e-com activities. Thomas says e Suite is essentially a pared-down version of Smart Suite written in Java for use on Network Stations. Carrigan says e Suite gives client/server server users low-cost access to 20 percent of the functionality they use 80 percent of the time and promises to be a cheaper alternative to Microsoft’s bloated Office PC suite.
Visual Age for Java is an Integrated Development Environment (IDE) for corporate developers based on Sun’s Java Development Kit (JDK). IBM’s McIntyre claims it’s 18 percent more productive in extending Java apps than competing kits like Microsoft’s Visual J++. Thomas says it’s the best kit for large-scale team app development. With its Team Connection, she explains, developers can build what’s called a Class (core code reusable in other parts of an app or in other apps), and post it to a repository where other developers can use it. Team leaders manage app component development by delegating activities to team members like building classes for apps.
Visual Age Web Runner Toolkit, says Thomas, is a set of frameworks (code templates you customize to complete apps) and class libraries that enhance Visual Age for Java for Web apps. Carrigan says it includes a Migration Assistant for converting Microsoft ActiveX components into JavaBeans to leverage Windows code for Java uses.
Thomas describes San Francisco Frameworks as a large-scale development framework comprised of functionality classes that let VARs and vendors more rapidly re-implement much of a platform like SAP in Java. San Francisco is a three-tiered environment focused on server-side development. The Foundation tier, says Thomas, is a distributed computing infrastructure for common platform activity like transactions, communications and database control. It links to the Common Business Objects tier which contains horizontal functionality needed by most businesses and connects to the Vertical Business Domain Objects tier comprised of generic vertical apps. IBM has created three apps thus far, says McIntyre — General Accounting, Accounts Payable and Inventory Control. IBM business partners like VARs customize these templates to meet their customers’ unique requirements. San Francisco runs on all major platforms, including NT and, with EJB and WebSphere, gives customers the key materials for converting their enterprises to Java, making them compatible with other Java-enabled enterprises and tying that inter-enterprise legacy business matrix to the Net for end-to-end e Business solutions.
What’s more, in implementing Java, McIntyre stresses that IBM takes a "total solution" approach. It’s tapping a distinguished service heritage by offering in-house consulting, Global Services for creating solutions worldwide, Java courseware and certification, as well as app development mentoring for customer development teams by IBM object programming professionals. It’s also building Validation Centers worldwide where developers can verify their Java apps run successfully on various IBM platforms.
Write Once, Reclaim the Architecture
It should be obvious by now that Java is no longer just a portable specialty language for enhancing Web pages. It’s on the fast track to becoming the enabling programming language for IBM inter-enterprise electronic commerce.
But other vendors like Oracle and NetScape are also optimizing Java for their platforms so their Java brands will become less transparently portable, but more strategically powerful. Despite this trade-off, porting between these 100 percent Pure flavors of Java will still be a fairly easy task. By contrast, porting between 100 percent Pure and Windows Java will not. In Bill Gates’ Redmond laboratories, Microsoft seems bent on Frankensteining Java into a pumped-up slave of Windows. IBM, for one, sees in this scenario its greatest challenge and opportunity.
Carrigan maintains that IBM aims to win the Java Wars by creating a brand of Java that plays on all its platforms and, thus, offers customers an enterprise platform more open and appealing than the one controlled by Microsoft’s Win32 and COM APIs. To do so, it must also supercharge Java’s functionality so it’s the preferred language for middleware e-com apps, a market Microsoft is attacking with its sky fleet of desktop apps and IBM is defending with its army of entrenched servers. Finally, by offering an overwhelming multiplicity of development tools, comprehensive NCF architecture and peerless global support and services, IBM strives to become the preferred provider of Java-based enterprise solutions. In achieving that, IBM will have recouped ownership of the IT architecture.
ABOUT THE AUTHOR:
John Harney is a freelance writer based in Washington, D.C., who specializes in technology and reporting.