Three-tier architectures are a new way to do software; Internet applications are a new way to do business. Joe(tm), SunSoft's NEO(tm) product combined with Java(tm), capitalizes on both trends with a single design paradigm that unifies internal MIS/PC nets and the Internet into a corporate net. NEO software can be used for building industrial-strength middle-tier CORBA objects that are scalable, sharable, and easy to manage. The NEO Object Request Broker, running on NEO client and server machines, mediates communication between clients and objects, taking care of all network level programming and data conversion. Clients based on Joe can be deployed on the Internet as well as on internal networks, giving Internet users a rich application experience that is awkward to deliver with traditional form-based interfaces.
Java browsers are an appealing top-tier foundation, offering operating system and hardware independence, Web integration, and central administration. However, the Java language itself provides only low-level network programming facilities. Connecting an applet up to the middle tier requires socket-level programming which consumes effort that would be better spent on the application itself. Joe provides a NEO-compatible ORB, an IDL-Java compiler, and utility classes, enabling developers to focus on writing application code instead of networking code. Joe provides an ORB that enables Java applets to communicate with remote NEO objects. The ORB is a collection of Java classes which can be automatically downloaded on demand by any Java browser. Joe applets retain all the attractions of ordinary Java applets. Clients are written once and immediately usable on multiple platforms.
Joe applets are embedded in World Wide Web pages. This simple fact creates some interesting possibilities for user interfaces. An applet can be embedded in its own documentation, with training videos, developer feedback forms, and related information and applets just a click away. A table of contents page can contain links to a collection of applets. And, just as a travelling employee with dial-in access need not download Web pages before leaving on a trip, neither does he or she have to decide in advance which applets to take along. Any of them can be downloaded on demand.
The Web's publishing advantages make applet deployment significantly easier than is the case for conventional client software. Just as users don't "install" Web pages, neither do they install individual applets. To distribute a new applet, a developer simply copies its Web page and corresponding Java classes to a server and gives users the URL.
Current Internet applications often consist of an HTML form-based interface coupled to a Common Gateway Interface script. Although this approach has demonstrated the utility and attraction of Internet applications, it has shortcomings for both users and developers. HTML forms don't look or behave like applications. They are fundamentally textual and fundamentally static, restricting users to selecting items and filling in fields. There is no notion of immediately responding to user actions. User errors cannot be detected except by transmitting the form to the script. Screen updates are wholesale page replacements which destroy the user's context. In contrast, Joe-based applets enable dynamic user interfaces and flexible design.
Current trends indicate that next-generation Internet services will be based on a distributed object paradigm that provides a combination of implementation independence, power and flexibility. CORBA and IIOP provide the essential framework for interoperability, enabling platform-independent front ends such as those based on Joe to communicate transparently with multiple different back-end CORBA services.