Java Anyone? It's Not Just for Early Adopters Anymore
Enterprises may find the programming jolt they need to rewrite legacy applications and create new apps in the latest versions of Java. Is this language finally ready to hit the corporate programming world and move into the mainstream? According to experts, the answer is yes.
According to analysts at Zona Research, a principal result of the burgeoning Internet/intranet infrastructure has been the broad-scale connectivity potential of TCP/IP-based networks. This connectivity potential represents a new opportunity for access to corporate information resources, but at the same time challenges existing client/server solutions and other legacy investments within the enterprise.
The future of Java in the enterprise, say analysts, seems likely to flow from current needs to extend the function of existing applications and to develop new applications in Java for use across a variety of platforms. Due to its widespread support within the software industry, Java is in a unique position to leverage a significant segment of the installed base of applications into the value-added TCP/IP-based corporate Internet/intranet environment.
Java was designed as a network-aware language. As part of this architecture, Java supports a component-based model that permits the distribution of applets or full-blown applications seamlessly across the network. This permits the distribution of lightweight applets that can intercommunicate instead of requiring large, monolithic applications.
"In the beginning, Java was a curiosity, and people really weren't taking it seriously," says Adam Kolawa, CEO of ParaSoft Corp. "But eventually, people came to view it as more portable and stable than C++."
The language is no more portable or problem-free than C++. But it is superior to Visual Basic, so about two years ago companies that wanted to be Microsoft-independent started choosing Java as the programming language of choice, Kolawa says.
Companies are building servers using Enterprise JavaBeans for new systems, and soon will be using Java to rewrite much of the legacy software and to connect legacy systems, according to Kolawa.
The newest versions will make Java available for true enterprise applications this year for the first time, adds Sam Patterson, CEO of ComponentSource. "It's not that people aren't already building applications with it - they are - but [the new versions] add some of the features (i.e., better transaction support) programmers need to do corporate-style programming."
"The use of Java is continuing to pick up - we're moving from the early adopters to the early mainstream users," agrees Ethan Henry, product manager for Sitraka Software, a company that provides tools for Java developers. "Companies that are a little more traditional in their outlook are starting to use Java more and more."
These companies are just starting to replace legacy mission-critical systems with applications that use Java. It is a trend that makes sense, because, as the older systems age, they become more difficult and expensive to maintain, Henry explains.
"Hardware manufacturers discontinue things; software developers discontinue support; it becomes more difficult to find employees to maintain [outdated] code. So, they want to migrate the system over while disturbing it as little as possible. With Java, they can simply put a new front end on the system that makes it easier to interact with and that is cheaper to maintain and go forward with than the old system," Henry says. "As an added bonus, they will have a lower cost of maintenance going forward."
Boost From E-Commerce
Java and e-commerce are helping each other grow, Kolawa adds. Before the widespread adoption of the Internet, companies had used electronic data interchange (EDI) for several years to exchange buying, selling, ordering and other commerce information. However, EDI is a static system that, though good in its day, doesn't have all of the capabilities of eXtensible Markup Language (XML).
"Java, combined with XML, is going to slowly replace EDI," Kolawa predicts. "EDI failed because it is just too complicated for medium-sized companies to connect. It's too much of a financial burden for smaller companies to use."
Some EDI systems will remain for several years. But already, several Fortune 500 companies have changed much of their e-commerce from EDI to Java/XML systems, with others expected to follow suit.
"E-businesses are turning to Java use more and more," agrees Larry Boldt, vice president of engineering for Starbase Corp.
Microsoft is trying to answer this e-commerce challenge by providing companies with a more open system through its .Net system. Though Microsoft's .Net platform is more open than previous Microsoft offerings, Java has been more open ever since its introduction in the mid-1990s, Patterson says.
Sun is countering Microsoft's .Net strategy with its Sun One offering. Sun One provides an open architecture, roadmap and product portfolio, and an operational plan for simplifying the way open Web services are created, assembled and deployed across and beyond the Internet. Customers' resources within Sun's Service organization to support Sun One, include:
• Technology consulting
• Educational solutions
• Support services
Sun is also developing new standards for Java 2 Enterprise Edition (J2EE) [see Andy Patrizio's "J2EE on the March,"] servlets and for Enterprise JavaBeans to enable companies to meet changing business and technology requirements (see the sidebar below for some of the specifics of the updated Java technology).
"Sun is continuously working with the Java community, trying to improve things, adding in features and functionality so that every possible situation is covered by something in J2EE," Henry says, adding that there's "a huge amount of product being sold" that supports J2EE.
"This is becoming a real popular mainstream technology," Henry says. "It easily integrates with a customer's existing data sources. People don't have to give up their data to put a new front end on the system."
Microsoft's transaction server offers many of the same capabilities as J2EE, but Microsoft is the only company that sells the compatible server, and many companies don't like being tied into a lone vendor, Henry says.
Java is increasingly the programming language of choice for servers, Henry adds, while the growth of Java for client applications continues, albeit at a slower rate.
"Enterprises really like the idea of being able to standardize on a single technology, then use it in as many places as possible," Henry notes. "So, what you're seeing is that they're using Java for their desktop-based apps, their server-based apps and for their Web-based apps. It helps them leverage their investments in tools and skill sets in their employees."
J2EE is a popular way of supporting transactional applications, particularly for brokerages and financial firms, Henry says. "These guys are always pushing the edge. They have a lot of demands to get new systems built and rolled up. They understand that time equals money. J2EE lets them do that, and at the same time it lets them interoperate with the systems that they have."
There's also an increasing development of Java client-side applications for the financial industry, Henry says.
Additionally, the new JavaSpaces technology provides a simple, unified mechanism for dynamic communication, coordination and sharing of objects between Java technology-based network resources, like clients and servers. In a distributed application, JavaSpaces technology acts as a virtual space between providers and users of network resources or objects. This enables participants in a distributed environment to exchange tasks, requests and information in the form of Java technology-based objects. JavaSpaces technology provides developers with the ability to easily create and store objects.
JavaSpaces is starting to become well-known among users, so programmers are starting to build the fundamental tools that will enable it to be used within popular applications within the next year or two, predicts Mike Wynholds, co-founder of Cyber Five Inc.
"Increasingly, we are seeing project teams place greater emphasis on requirements management in developing Java-based applications," Wynholds adds. "Java developers are turning to requirements as objects because they recognize the impact of requirements management in improving cost overruns, time-to-market and quality."
Instead of collecting requirements into documents, Java developers are treating requirements as objects with specific attributes and behaviors. This approach benefits developers by providing the following:
• Visibility. Requirements can be viewed, sorted and filtered on an individual basis as opposed to being buried in a document. This approach provides a mechanism for clearer elicitation, analysis and communication of requirements.
• Reusability. Requirements can be reused from one project to the next. This approach provides for versioning of requirements within a software project that has multiple releases.
• Testability. Each requirement can have its own verification and validation criteria. This provides a high level of quality for each requirement that is propagated across the entire system development process. It also allows the testing process to be initiated earlier in the software development life cycle.
Requirements management further complements Java development by providing a collaborative environment in which all project stakeholders - including business analysts, product marketing, developers, testers and end users - can define project requirements to ensure that Java applications will meet end user needs. By tracking the life cycle of code between requirements and related development and testing tools, requirements management enables project teams to understand the impact of potential requirement changes on the Java development's project scope, schedule and budget before the changes are accepted.
Java to the Desktop
Much of the object-oriented programming today is used in HTML applications, says Alex Cone, CEO of CodeFab Inc. "The next step is trying to go back to the richer experience the user used to get from desktop-based applications. You want immediate feedback without having to make a round trip to the server. You can't get there using pure HTML," he says.
So, one of the next uses of Java will be for rich, client-side applications to be deployed directly from a Web browser or downloaded from the browser and run locally.
The Sun Java libraries have matured to the point that it's now cost-effective to build desktop applications like this, Cone explains. The middleware and back-end application pieces are getting rich enough to handle the more complex interactions that are necessary to make this happen. Desktop machines also have enough horsepower to run these applications.
Smart Appliances? Not Yet
Despite the increased use of the programming language, it has not reached as far as some proponents have predicted.
Though people have talked about smart, Java-enabled appliances for a number of years, it has yet to happen because the language itself is too large to include in refrigerators, toasters, etc., without adding several hundred dollars to the cost of those items. So, now Java developers are trying to work with the software to develop simpler applications that would need 32K or less of memory to operate, meaning Java intelligence could be included in advanced appliances, according to Wynholds.
Even if that happens, it could be several years before these smart systems are in common use. The early adopters would want to see evidence of the technology's usefulness and value before they started buying these appliances. Then, it would be a while after that before they started moving into the mass market.
Yet, experts say Java's movement into the mass market will continue to accelerate as an increasing amount of companies opt for open programming choices.
Lane F. Cooper and Phil Britt are freelance writers for the Washington News Bureau, specializing in technology reporting. They can be reached at email@example.com.
Java: A Glimpse at the Next Generation
The newest versions of Java include many operational advances. According to Sun Microsystems, the next version of the Enterprise JavaBeans includes:
• Enhancements to CMP (Container Managed Persistence) which allow for use in more situations
• Java Message Server (JMS) which allows for a new type of Enterprise JavaBean (EJB), the message-driven bean. A message-driven Enterprise JavaBean can be activated by and respond to JMS message-enabling applications deployed as EJBs to participate in asynchronous messaging networks
• Required IIOP interoperability between J2EE-compatible application servers
• Portable finder methods
• The definition of a standard query language for EJB to enhance portability of improved inter-server interoperability
• Simplified development of loosely-connected systems
JSP 1.2 and Servlet 2.3 include:
• New support for chainable filter components, for example for applying XSLT transformations to XML content, for transforming content for different clients (i.e., non-HTML) or for auditing content generation
• Enhanced reuse of components during development
• New support ("application events") for control of application lifecycle: starting, stopping and destroying sessions and application instances; implementing pooling over expensive connection resources; providing a session with a global information about all sessions (e.g., a chat application can show a list of all users and their status)
• New XML view of JSP pages for authoring tool support, automated generation and transformation of pages (e.g., for localization) and enabling of translation-time validation features
• New support for translation-time validation of JSPs to enable pre-runtime error trapping and enforcement of development methodologies; validators are customizable on a per tag library basis
• Enhancements to custom tag library APIs for easier development and better performance
• Improved localization support: application has extended control over character encodings
• Improved security features for utilizing EJBs that require authentication
Additionally, the new J2EE Connector Architecture is designed to aid enterprises by providing a standard way for back-end applications, such as enterprise resource management or customer relationship management systems to plug-in to any J2EE compatible application server. Sun officials say this provides a standard architecture for integration between an application server and other parts of an enterprise's network.
-L.F.C. and P.B.