In-Depth
        
        Java Anyone?
        by Lane F. Cooper and Phil Britt<br><br>It's not just for early adopters anymore.
        
        
        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 itthey         arebut [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 upwe'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.
                         |                                |                      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.                    |  | 
      
      Object-Oriented Development
        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 stakeholdersincluding         business analysts, product marketing, developers, testers and end userscan         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 protected].