Java as It Is Used Today
For many application developers, Java and its promises of cross-platform interoperability and portability are the dual means by which both IT organizations and the development community at large will be freed from reliance on a single application vendor or API. In the midst of a stream of rhetoric and propaganda that often strikes revolutionary chords, IT organizations appear to be embracing Java in their enterprise development schemes, although perhaps in paradigms and development schemes somewhat different from those celebrated by Java’s most vocal proponents.
From the beginning, Java caretaker Sun Microsystems Inc. has championed Java as both an application development language and an operating system platform. It was Sun’s focus on Java development in the latter regard that drew both the attention and ire of the Microsoft Corp. Because of its promises of platform independence and application portability, Java represents a fundamental threat to Microsoft’s vision of a universal desktop environment composed of client machines running some version of a Microsoft operating system. Consequently, Microsoft has assumed a stance regarding Java that seeks to position Java only as a new, albeit exciting, application development language -- and nothing else.
If anything can safely be said about the state of enterprise Java development today, it’s that Microsoft’s view of the Java phenomenon as only a programming language seems to be holding sway, at least in most enterprise application development shops. While Sun has touted Java as the future operating system of choice in everything from network computers to embedded devices, many enterprise IT shops seem to be embracing the programming language aspect of Java as an exciting new way in which to solve real-world business problems today.
"I don’t have any problem [with Microsoft’s positioning of] using Java as an application programming language," explains Terison Gregory, director of decision support applications with telco giant Pacific Bell (PacBell, San Ramone, Calif., www.pacbell.com), although he says he thinks that Microsoft’s disregard of Java as an operating system platform seems to be a "tenuous" position. "On the other hand," he points out, "I don’t know of anyone personally that’s looking to leverage Java that way [as an operating system platform]."
Gregory and PacBell have just completed the implementation of a Java-based customer contact application using Vision Jade, a Java development tool distributed by Vision Software Tools Inc. (Oakland, Calif., www.vision-soft.com). Vision Jade allows developers to create declarative business rules that the product automatically compiles into executable Java byte code.
Gregory's experience with both Java and the Vision Jade development environment have led him to believe that the Java programming language already enjoys a maturity and robustness, at least in the area of development tools.
"We were estimating several months of development, and we really wouldn’t have been able to deliver as much functionality as quickly without using a development tool similar to the Vision product," says Gregory, who notes that developing PacBell’s customer tracking application in a language other than Java would likely have added additional months to the development cycle.
The Reality
Despite Gregory’s enthusiasm, Steve Rovell, director of business development with the Dynamic Consortium (Dyna-Con), an application development consultancy and solutions provider based in East Hanover, N.J., says that IT organizations should enter into Java development programs with an awareness of the young language’s limitations.
"Java’s probably going to become a serious language because of the object orientation and all of the mindshare that it’s got behind it," Rovell concurs. "But does it have the functionality of C++ and all of these applications written in C++? Of course not; it’s just not that mature."
For the most part, Java’s incursion into many enterprise IT departments has been limited to the role of integration with a Web browser as an application front end, usually engineered with a mind to allowing task-based workers to more easily get to data on heterogeneous systems. PacBell’s Java-based customer contact application, for example, leverages Internet Explorer and its Java Virtual Machine (JVM) on the client desktop. As Dyna-Con’s Rovell points out, such configurations are about as "mission-critical" as Java gets in the enterprise today.
After all, Rovell maintains, "it took years and years and years to get existing programs to a certain level of functionality in COBOL and C environments, so how could we do this with Java in such a short amount of time?"
PacBell’s experience with its Java-based customer tracking application is a case in point. As PacBell’s Gregory indicates, the customer tracking application is engineered for call-center usage and needs to interface with a number of heterogeneous systems, including a Windows NT application server and a legacy billing system. "It determines a prospect customer’s serviceability and tracks the result of the contact. At the same time, it interfaces with our legacy billing system, and it provides a call flow for the customer carriage and handling calls," Gregory explains.
While call centers are undoubtedly important in the day-to-day operations of many enterprises, labeling the use of Java as an application front end in this regard as "mission critical" could possibly be stretching things a bit.
Does Java in its current distillation have what it takes to be a true enterprise application development platform on its own merits? Definitely, says PacBell’s Gregory. "Based on my experience, I believe that it is there," he avers. "The future is looking brighter with more and more components readily available to integrate into your applications, and with tools such as Vision Jade you can quickly develop robust Java applications."
Andreas Overland, a system consultant with Aventura Systems ASA (Oslo, Norway), points out that Java offers a number of distinct advantages outside of its much-hyped portability trump card. According to Overland, careful application planning during the preliminary development stages can result in Java applications that are more productive than equivalent applications written in C or C++. "You always have to plan your projects -- and you have to be even more careful during the planning stages with Java -- but if you do it properly you get more from it than planning a similar C application just as well," Overland acknowledges. "Also, Java gives us some APIs that are much better that the ones we get in C."
Aventura Systems just replaced an existing CGI-based database query system with a Java-enabled approach leveraging a Web browser front end and Java servlets. "We have applications that access a lot of database files, and with the traditional CGI approach using C, we experienced a lot of strain on the server due to disk access, [because] each user connected to the application spawned one CGI process," Overland explains. "But with [Java] servlets, only one instance of the program is started, and only once. So with servlets we are able to open the databases when the whole server starts." The result, Overland maintains, is less strain on the server and more productivity for end users.
Tape library vendor ATL Products Inc. (Irvine, Calif., www.atlp.com) leverages a Java-based solution to provide administrative capabilities for users of its DLT libraries. ATL’s WebAdmin software is a package that allows remote library administration using any Java-enabled Web browser. According to Scott Harlin, a spokesperson with ATL, his company chose to develop WebAdmin in Java because customers were asking for a means of providing IT managers with administrative control over the backup and operation of libraries from any platform on both local and remote machines. With its promise of application portability and platform independence, Java emerged as a natural choice. The resulting WebAdmin allows IT managers to oversee library setup, monitoring, event logging and event notification from a Web browser interface.
Into the Enterprise
At least one IT organization has made a move to wager much of its business model on a solution that extends from a Java-based application front end through to a more conventional Oracle database tier. According to Rodney Wang, a senior programmer with application development and Web design firm Quintet Int’l Inc. (State College, Pa., www.quintet.com), State College reseller Neutron Inc. (www.neutronet.com) approached his firm seeking to revamp an existing order-entry and billing system that consisted of a home-grown database that featured business data stored primarily in clear text.
According to Wang, the explosive growth in online sales from Neutron's Web site made it imperative that Neutron centralize billing, shipping, receiving and inventory information into a consolidated system that mimicked on a smaller scale the integration and functionality commonly provided by enterprise resource planning suites. Quintet and Wang were charged with architecting a new system paradigm that would marry Neutron's existing Cold Fusion environment with an integrated order-entry, billing, shipping, receiving and inventory system.
The result was a completely Java-based client-side application environment that leverages Netscape Navigator’s JVM on the desktop and an Oracle 7.3.3 database in the back end. Order entry, shipping, receiving, billing and inventory are all handled through the Java application environment, which itself is masked behind the Netscape Web browser interface. Quintet’s Wang describes Neutron’s system -- which is still in the beta-testing stages but is being used for daily operations on a companywide basis -- as more of a work-in-progress and says that when all of the wrinkles are ironed out and the system is tweaked for performance, productivity and efficiency should be greatly augmented.
Christopher DeMarco, a former sales representative with Neutron who worked for some time with the new Java-based system prior to departing for a position as a system administrator with Quintet, agrees. "It’s slow, it’s buggy, it crashes Netscape all of the time, but it’s not yet complete," he explains. "I can see that if and when the system begins working the way it’s supposed to, productivity will go way up. Everything will ideally be automated so that crucial business mechanics are integrated into a central database."
A Pragmatic Approach
While most enterprises understandably will not want to follow the ultra-aggressive example of computer reseller Neutron, many are leveraging Java in important, if not mission-critical, roles today. According to Dyna-Con’s Rovell, many enterprises are considering development solutions that seek to implement Java in tandem with proven heterogeneous components such as existing applications written in C and C++. "If you have certain components that are already there, it makes sense economically to wrap them and use them in the short term rather than rebuilding them in Java," Rovell explains.
In the end, Dyna-Con’s Rovell doesn’t doubt for a second that Java will eventually be up to the task of running the most mission-critical of applications in any enterprise environment. "If we take the perspective that we’re going through all of this development [of the language] procedurally, there’s no doubt in my mind that it will eventually happen," he contends.