It's finding niches as an application development environment that affect just about every area of computing and communications.
Java started out with the promise of "write once, run anywhere" applications delivered over the Internet. Web sites were to have animation and interactivity that flat HTML couldn't offer.
Because of its portability, Java was touted as the ideal platform for developing and distributing commercial applications. Some vendors jumped on the bandwagon, notably Corel, which offered a version of its office suite for Java.
This vision faded. Java is no longer widely used as a browser-end platform for applications, having been supplanted by alternatives like Flash and DHTML. And the practicalities of writing and distributing applications for Java turned out to be a bit more complicated than initially thought.
But Java hasn't gone away by any means. It's finding niches as an application development environment, particularly where businesses want to use thin-client computers rather than full desktops. Sun's extensions to Java, including Java 2 Enterprise Edition (J2EE), Enterprise JavaBeans (EJB) and Java 2 Micro Edition (J2ME), have broadened its scope.
One of the most common uses for J2EE and EJB is providing a framework for connecting legacy systems--even 30-year-old mainframes--to new Web-based applications.
Java's also finding places in set-top boxes and mobile phones. Most smart cards, such as the chips in the new generation of credit cards, and even SIM cards on mobile phones, run Java.
So let's take a look at the many different faces of Java, and all the places it's finding its niche.
Why is Java popular as an application development environment? "[Developers] are saying 'the argument about Java is over--it's happened'," says Jack Verdins, IBM's market manager for AIM (WebSphere, VisualAge, MQSeries), e-commerce software and Linux software.
The principal alternative to using Java for integration projects is COM, but Java provides portability across a range of server platforms. Furthermore, "most vendors have elected to support Java in their operating environment," he says, so there is no need to package a runtime environment with the application for distribution.
Verdins goes on to say that most Java developers are former C++ developers, largely because Java was designed to overcome the shortcomings of C++, such as the absence of a garbage collection mechanism. Furthermore, the broad adoption of Java means there are widely used class libraries to ease the programming effort.
Tim Hingeley, manager of software engineering at Mercadier, concurs with Verdins' comments about portability. Mercadier tried using the Web support built into Borland's Delphi, but encountered instability with the Microsoft components that it relied on, and was unwilling to be locked into to Microsoft servers. Instead, Mercadier chose Java and found it to be faster and more stable, as well as being portable.
According to Cortex eBusiness CEO Peter Moore, "One of the benefits of Java--and J2EE specifically--over other programming environments is that, because it is standards driven, the client can simply choose the Java programming language and worry about a deployment environment later."
"In fact, the client can easily change deployment environments if they choose to later. Although it is still relatively expensive to change direction midway through project implementation, it does guarantee less costs than other chosen environments," he added. So what have Australian companies been doing with Java?
New language, traditional application
Although Java is often associated with the Web, it can be used for traditional IT applications. Perth-based Thin Technologies has created a point-of-sale system that puts Sun Ray appliances on the counter rather than relatively expensive PCs.
These thin clients connect to a central server managed by Thin Technologies on an ASP basis. Larger retailers may prefer to run the server in-house, and that is an option. Either way, the server runs Oracle Financials, and the Java software on the Sun Rays is tightly integrated with the back end, providing real-time access to company-wide data at the counter. "The whole thing is J2EE compliant from end to end," says Thin Technologies chief executive officer Chris Singleton.
According to Singleton, the company chose a thin client and object-oriented architecture, and wanted the software to be portable. Given these requirements, the selection of Java was an obvious choice. The system was developed by Sun Professional Services for Thin in the largest project of its kind in the world. At one stage, 120 people were working on the system, and the total cost was between A$9 million (US$4.7 million) and A$10 million (US$5.2 million).
Thin has taken over the continuing development of the system, which can be customized to suit the needs of individual retailers. The first customer was horticultural retailer Waldecks, which has eight garden centers and a production nursery in Western Australia.
"The Waldecks contract will provide a superior POS solution for their retail outlets while providing Thin with valuable commercial proof of the versatility of our technology," says Singleton.
A number of potential clients are conducting pilot tests of the system. One opportunity that could be particularly lucrative is that a company in the petroleum industry in Southeast Asia is considering the software as part of its "new age forecourt" strategy.
Thin's POS system will also be available overseas through ePoint International, which will be establishing data processing centers worldwide. The deal is expected to yield Thin Technologies license revenues in excess of A$2 million dollars over the next three years, as well as a global profile. "ePoint is planning to deploy and operate data processing centers globally, with the first centre set to open in San Diego in 2002," says Singleton.
Mercadier's Mi-Trek provides a vehicle tracking system that's affordable for small fleets. Instead of the traditional approach where each customer installs its own base station, the Mi-Trek tracking modules incorporate a GSM phone that relays positional data from a GPS receiver to the company's central facility.
Customers can then access the information relating to their own vehicles via a Web browser. This scheme has several advantages, including low entry cost for the customer, no need for special software at the client end, and low support costs. The tracking unit costs around A$2,000 installed, plus A$160 for two years service. Call charges are additional.
Even though Mercadier was already using Delphi, the company examined various Java development tools before choosing Borland's due to its ease of use and potential for rapid development.
Mi-trek uses the Macromedia JRun Java application server, MapInfo MapXtreme Java Edition mapping software and Java servlets to generate maps at various scales on the fly. A small Java applet running in the browser provides the user interface and allows the selection of a specific vehicle and requests the required maps. It is possible to track a vehicle in real time, or obtain a log of movements.
The tracking device can also collect information from sensors such as a duress button (and generate SMS messages to alert the fleet operator), and it can operate onboard equipment such as immobilisers, locks and alarms. One client remotely arms truck alarms at night when high value loads are being carried rather than relying on the drivers. "It works, it eliminates costs and you can track vehicles wherever there is a recent Web browser," says Hingeley.
The unit fitted to vehicles is programmed in C, as Java is not available for the device used as its core. Hingeley has been experimenting with Java development for a Palm device as part of another project, but is not convinced that real-time communication with external devices is sufficiently reliable as yet. And although the Mi-Trek base station was developed in Delphi as an evolution of a previous system, "if we were starting again I would be looking at Java," he says.
Taking legacy systems online
A major use of Java is to Web-enable existing applications. When the NRMA wanted to provide insurance quotations via the Web, it had a head start because it had already encapsulated its back-end system using message broking software for deployment to its branch network. Java and WebSphere had already been selected as the platform and a set of frameworks developed by IBM before WorldGroup Consulting was called in to link the legacy application with the Web site.
This meant the project proceeded quickly. Design began in January, and the system entered production in May. A phased introduction over 18 months was adopted, starting with quotations because that area had the least business impact. A range of NRMA insurance products are now available for purchase online, including motor, compulsory third party and home policies.
The Java software runs in the server and generates DHTML, which is rendered by the user's browser.
"There are practical issues when you start [Web] deploying legacy systems that were oriented to individual users," says WorldGroup senior technical consultant Ken Hathaway. For example, the Web server has to emulate a number of users (in this case, 100) and so the software has to manage these sessions so the right information flows between a Web user and the simulated user of the legacy system.
Another issue was the question of auditability. A business decision was made that it was not sufficient to rely on the audit trail generated by the legacy system, but that the transaction was deemed to arrive when it reaches the Web server. Consequently, additional logging was needed in the server to meet that requirement.
Pizza Hut used Java to provide its customers with the ability to order their pizzas via the Web. Initially offered only in Sydney, this facility will be extended to the rest of the country during the year. Implemented by Multitask Consulting, this project uses IBM's WebSphere plus Enterprise Java Beans and Java Server Pages to put a Web front-end on the application used by the call centre to handle phone orders.
A similar example, also implemented by Multitask Consulting, allows the online trading of Hunter River Salinity Scheme salinity credits. This is the world's first Internet exchange established by a government for trading emissions rights. Java software was used to put a Web front-end on the New South Wales Environmental Protection Authority's internal application.
Java and high-volume sites
Some Web-related projects are carried out in Java right from the start. BPAY's new online bill presentment service, BPAY View, uses iPlanet BillerXpert as a key component of its billing hub.
BPAY View, which will commence operation in early 2002, allows users to receive and pay summary bills through their chosen Internet banking site. The hub provides the connection between billers (or more usually billing service providers, since between 80 and 90 percent of Australian bills are outsourced) and banks and other financial institutions.
BillerXpert was selected after an extensive search. "We scoured the Earth for the appropriate technology to use," says a BPAY official. The most important attributes of BillerXpert were its scalability--six million payments are made through the BPAY system each month, and the company expects BPAY View to be equally successful--and its robustness. Many competing vendors' offerings were unproven, he says.
BillerXpert is written in Java, and so were the customizations required to suit BPAY's requirements. Specific modifications included changes to accommodate multiple institutions as well as multiple billers, and the links to the existing BPAY payments system.
John Cummings, Java practice manager at Sun, says Java was an appropriate language for this type of system due to its portability, speed of implementation thanks to the application server model, and the fact that it is now a mainstream technology with J2EE being a part of many corporate standards. Assessing suitability
Java's suitability for use at the front end of a Web-based system is not dependent on having to connect to a legacy system.
Cortex eBusiness rewrote the user interface portion of 724 Solutions' LiveClips Web aggregation software entirely in Java. Designed for financial services businesses, LiveClips uses techniques such as HTML scraping to collect information such as stock quotes and news as required by users and presents it in one place with a single interface.
This approach keeps customers "inside" the company's Web site while they view "outside" information. Cortex built a reference release of the user interface for 724, and then implemented a version of it for Nomura Securities, Japan's largest brokerage. Nomura has around one million users, and a large proportion of them are expected to use this service.
Moore says Java was particularly suitable for this purpose thanks to its internationalization features, the ease with which caching can be managed, and the existence of optimized XML parsers. (LiveClips makes extensive use of XML and is itself written in Java.) s
Cortex is also responsible for the David Jones online store, which Moore believes to be the largest Enterprise JavaBeans-based site in Australia.
"It handles massive volumes," he says, "hundreds of thousands of JSP hits per day." The all-Java system is highly distributed, with separate clusters for the presentation layer and for the business logic and database. The Web store also integrates with mainframe-based systems such as the warehouse system and Oracle Financials. Close integration is essential, as the company has a policy of only selling items that are actually in the warehouse.
Cortex implemented the online store for The Spot, which was subsequently purchased by David Jones. The use of Java software running on an application server provides a considerable degree of vendor independence. Thanks to J2EE, the hardware, operating system and application server can all be changed with very few problems.
The "write once, run anywhere" claim has largely come true, Moore says.
The site also makes heavy use of taglibs (tag libraries), a JSP feature that helps bridge the gap between the people responsible for the visual design of a Web page and those who manage the code that is embedded in those pages. Taglibs are "a very nice way of managing the look and feel of a complex data-driven application," says Moore.
Looking at alternatives
There are other ways of separating content from design, and of integrating legacy systems.
Presence Online's Aptrix content management system was originally produced for Lotus Domino, but the second version was developed using Java. Aptrix combines distributed content production, personalization and rules-based delivery. A companion product, AptrixConnect, uses servlets to act as an intermediary between multiple delivery mechanisms and legacy backend systems and components on any number of platforms.
According to chief technology officer Jason Hatch, there are several reasons why Java was an appropriate technology for this project.
Two important aspects of Aptrix are that it separates Web design from content, and it implements an n-tier architecture. Java's object orientation helps maintain this separation, while J2EE makes it easier to have different programming teams with different skill sets working on various parts of the project, leading to more rapid development. By splitting the task into separate components, more work can be done in parallel.
Another issue is that legacy systems were generally not built to provide the response times needed for Internet deployment. This can be overcome by building intelligent caching into the integration software, providing varying degrees of persistence for different types of data.
In a banking system, for example, an account balance may need to be refreshed every time it is referenced, while a list of accounts can be held throughout a particular customer's session. Other types of data can be refreshed according to a schedule and the cached value delivered to any customer. Share prices might be updated once a minute, but a news feed could be refreshed hourly.
The ready availability of staff with Java expertise is another reason why Hatch favors Java. "Everyone coming out of university these days knows Java," he says, adding that almost all programmers have some knowledge of the language. Productivity is greater with Java than C++, which is an important issue when clients want results in three to six months, he says.
Toolsets are also in good supply, and Hatch highlighted Eclipse, the open-source integrated development environment that originated at IBM. "It'll be an interesting challenge to [Sun's] Forte environment," he says. Eclipse is a generic IDE that accepts plug-ins that implement specific functionality. These plug-ins are themselves written in Java, and a plug-in for Java developers is included as part of the software development kit.
Portability is another issue, and according to Hatch the 'write once, run anywhere' claim is a lot closer to the truth than it was in the early days. And Java's run-time performance is "still not up to the level of C++, but it's got a lot better."
In any case, good development practices and the use of appropriate algorithms make a bigger difference to execution speeds than the programming language used. Furthermore, Java makes it comparatively easy to focus on the performance of the objects that carry out the real processing load. That effort can have a multiplier effect, since those objects may be reused in other applications. Java doesn't always mean "thin client"
WorldGroup Consulting used the 'fat client' model when one of its customers in the distribution industry wanted to extend its contract management system to around 150 branch offices around the country.
Proprietary middleware was used to access the legacy system, but the project was carried out in the early days of Java when there was little in the way of tool or framework support. "It was a roll-your-own environment," says Hathaway, "before people like IBM came along with [tools such as] WebSphere."
Java was selected partly because of the "write once, run anywhere" promise, but also because there was a possibility of reusing the code for Internet deployment. While the project was successful, it took longer than originally planned. The lack of tools affected the design side of the project as well as the programming.
As there were no existing frameworks, it was hard to construct prototypes: "at that stage you almost had to build [the program itself]," says Hathaway. Instead, WorldGroup used a graphics program to create static mock-ups of proposed screen layouts.
But that's all changed now: "By the time we deployed, the tools were far better than when we started," says Hathaway. "With J2EE and [tools from various vendors] you can do prototyping [effectively]."
It isn't unusual for Java development tools to be created in Java. For example, Cortex has developed its own suite using Java and J2EE, thus ensuring that Cortex "eats its own cooking," says Moore. The Cortool suite comprises Cortrack (project management), Corinspect (source code review) and Cortexen (automated generation of boilerplate code).
These tools are usually deployed using the JBOSS open-source application server (itself written in Java), but it can be used with other application servers such as BEA Weblogic and Iona iPAS.
WGFrameworx is WorldGroup Consulting's J2EE development platform, as used by the company's US subsidiary in one of the world's first successful major J2EE implementations at health insurer HighMark Insurance.
Designed for developing and deploying components for transactional, Web-based business application, WGFrameworx is itself "100 percent pure Java" and the resulting applications can be deployed on any major platform and operating system. Any Java development toolset can be used alongside WGFrameworx.
"WGFrameworx gives organizations a choice in the development, deployment and management of their e-business applications, as well as the ability to craft services on demand," says Martin Folb, senior technical and business consultant.
WGFrameworx pays particular attention to eliminating network "chatter" (unnecessary round trips between the user interface and the servers involved in the process) as the company believes this is "the number one cause for poor performance in a modern Web-based application." Set-top boxes
Since Java evolved from work carried out at Sun to create a programming language for consumer electronic devices such as set-top boxes, it is very appropriate that it is being used in that way.
In Australia, SBS and Sun are working together on interactive TV applications. Multimedia Home Platform, which uses Sun's JavaTV API, has been adopted for use by terrestrial broadcasters in Australia, so the results should be usable on any set-top box sold here for free-to-air broadcasts.
Sun's position in the market means it is able to provide SBS with access to the expensive infrastructure required for iTV, and the first product of this collaboration is already on display at Sun's iForce Ready Centre in Sydney. An iTV application for the Dateline international current affairs show lets viewers watch previews of upcoming stories and future programs.
"The iTV space is very much in its infancy, creating new opportunities for developers. And the good news is that Australia is as good as any other country--indeed, this agreement provides the perfect opportunity for SBS and Sun to get a jump on the rest of the world," says Will Berryman, SBS head of new media. "We will be moving into sports and news applications, integrating content that exists on our Web site, and experimenting with multilingual and e-learning applications," he added.
John Arnold, Sun's national manager for media and entertainment, pointed out that the set-top boxes are based on J2ME, as are Java-enabled mobile phones. Although the APIs are slightly different, if you want to deliver data to different types of devices from the same servers, there's "about 60-70 percent overlap."
Although it is important to understand the difference in user interfaces between the different devices, "the [technical] skill sets are exactly the same." "If you have a service you want to deliver, you have to be able to get it to [people] wherever they happen to be," he says.
"Writing an application and being able to deliver it are two different things," says Arnold, explaining that it is important to consider the memory footprint of the application, and to remember that the available bandwidth is still relatively narrow.
Back-end integration for iTV systems becomes even more critical when t-commerce is involved, but Java technologies are in place to support it, Arnold claims. Some iTV systems in the US have 20 million subscribers, he says, proving the scalability of Java-based systems.
Delegates at a recent SAP conference saw a Nokia 9210 mobile phone connecting to the mySAP portal. Borland has partnered with Nokia, Ericsson and Siemens to provide J2ME support in its JBuilder visual development environment for Java, and JBuilder is SAP's preferred Java development environment and the one it recommends to its customers.
The demonstration featured a shopping cart application that was downloaded into the phone, which subsequently sent information back into SAP. A second demonstration showed an HP Jornada handheld PC working with the SAP CRM system.
Borland and Nokia have jointly created a training course for Java and J2ME, and it will be offered here, probably starting in January following its launch in Singapore and Malaysia in December 2001.
"People can easily develop Java applications and put them straight onto the phone," says Darren Peacock, Solution Partners Manager at Borland. He outlined a field sales scenario where a Java application could be downloaded to a salesperson's phone, along with the data relevant to that day's appointments.
Any data collected by the salesperson, including orders placed, could be uploaded immediately or in a batch at the end of the day. The selection of a standard platform (ie, J2ME) is important for future developments, especially by smaller companies, he says.
Java and JBuilder are "about reducing the development time...and [enabling] the development of n-tier applications for any type of device," added Peacock.
Borland has also announced that JBuilder will support Nokia's recently announced Series 60 Platform, a set of applications, clients and user interface elements that will run on top of Symbian OS. Nokia intends to license Series 60 to other manufacturers.
Siemens and Borland recently came to an agreement that will allow Siemens to provide its developer community with JBuilder. "By including the Borland JBuilder product family as part of our Early Bird Developer Program, we are able to offer mobile developers a comprehensive and easy-to-use Java development environment to create next-generation applications," says Bernhard Geisberger, Director Software Development Tools, Siemens IC Mobile. The tools will initially be used to create software for the Siemens SL 45i k-Java enabled mobile phone.
Java is also starting to turn up in software embedded within hardware products.
Chris Goringe, senior software specialist at Avaya Labs Australia, says the company's recently released 4630 IP screenphone runs almost entirely on Java, with the exception of some low-level functions such as the message queues that allow individual applications to communicate with each other.
In addition to the normal business phone features, the 4630 provides access to the Web and corporate LDAP directories, and integrates with certain voicemail systems.
Goringe pointed out that different types of phones would have different processing power, varying amounts of memory, and so on. The use of embedded Java means a single code base can be augmented with profiles to suit each type of device. A piece of code can be developed to a reliable state and then reused in other products, he says.
Other reasons for using embedded Java include its inherent network-centricity. IP is even built into the micro-editions of Java, he says, so "you don't have to do the mucking around that you do in other languages to get connectivity." It is a productive language, providing speed and accuracy of development, he added. "It's the right technology, it's the best technology."
Avaya has been at the leading edge of Java development for years, Goringe says, and this experience means the company is well placed to make use of J2ME, which is just taking off as J2EE did about a year ago. "[J2ME] has moved onto a more solid footing," he says.
Staff writer Stephen Withers reported from Sydney.