Sun’s Java 2 Platform, Enterprise Edition (J2EE 1.4) provides an extensible framework for designing multi-tiered solutions. J2EE technology consists of numerous specifications rather than a downloadable set of technologies. These specifications, or contracts, define how a technology such as J2EE Connectors or the Java API for XML (JAX) functions. This applies to all J2EE technologies. For example, business partners must agree to a specified contract or specification before they can utilize a specific set of services offered by a J2EE technology.
Sun has a well-established history of reliability, maturity, and support for building server-side applications. It comes as no surprise that they spearheaded an initiative called the Java Community Process (JCP) for purposes of soliciting suggestions from major corporations to improve all Java platforms, including J2ME, J2SE, and J2EE. This applies to standardizing key Java technologies as well. Giving third-party vendors the opportunity to have input and a say on future direction and Java implementations is a wise move on Sun’s part. Rather than keeping the source code proprietary, Sun has permitted thousands of people to view the same code; consequently, all Java platforms continue to improve. Sun has a stake in bringing an improved technology to market and offering their customers better service. Community involvement encourages open source application development.
Recently, Sun included support for building XML-based web services. They have also added the Java Connector technology to their impressive array of specifications. (See Appendix A for an overview of the JCA specification.) Sun offers frequent releases of the Web Services Developers Pack (WSDP). They recognized that support for web services is fundamental to conducting cross-platform, distributed, interactive business transactions in the enterprise. One of the most important features offered by J2EE technology is the ability to compile applications only once and deploy them on any platform.
Microsoft’s .NET Framework and Visual Studio .NET’s suite of tools have generated considerable discussion and debate in both Java and Microsoft camps. Most of the discussion centers around platform maturity and stability, and capturing market share. The question most frequently asked is, “Can Java and Microsoft .NET coexist?” It is significant that while Microsoft is experiencing increasing adoption of its integrated suite of products, Sun’s added support for web services is resulting in the evolution of a fruitful development environment benefiting all developers. The Gartner group recently predicted that within the next three years, 90 percent of medium and large corporations will be leveraging the benefits of both Java and .NET. Employing a mixture of both technologies is a win-win situation for both business and consumers.
Microsoft entered the enterprise arena with Windows Server 2003, the Microsoft .NET Framework, Visual Studio .NET, and programming languages hosted by the framework. Their product suite includes Microsoft Transaction Server (MTS), COM +, their flagship SQL Server 2000 database, and the Microsoft Message Queue (MSMQ). The .NET architecture is web services–centric. This paves the way for interoperability between technologies residing within the .NET platform. Web services are the glue that binds diverse web-enabled applications. The ability to build applications utilizing any programming language targeting the Framework is a major plus for Microsoft- oriented developers. Languages include Visual Basic .NET, J# .NET, managed C++ .NET, and C# .NET. Developers can write a distributed application in the language of choice, compile it, and subsequently deploy it. Unfortunately, to date, the Microsoft .NET applications run only on the Windows platform. Let’s hope that Microsoft will soon recognize the need for modifying their servers and suite of tools for use on other platforms and operating systems.
The .NET infrastructure presents a component-based, multi-tiered approach to distributed programming, and designates Simple Object Access Protocol (SOAP) as the primary technology for supporting web services. The components consist of classes and member functions designed to modify data and provide object-oriented functionality. The .NET Framework hosts these components. In a distributed environment, it is essential to layer services. For example, it is a good idea to separate the presentation layer containing Active Server Pages from the middle tier components. These contain business logic and enforce the business model. The third tier consists of low-level components for managing and providing services such as database access, connecting to legacy applications, and so forth.
The .NET Framework uses HTTP as the communications protocol for messaging and exchanging documents via the Internet. This protocol allows any programming language, platform, or middleware to be an interactive participant in cross-platform interoperability. XML serves as a .NET architecture core component and provides the means with which to construct XML-based SOAP messages.
Increasing demands for distributed applications in the enterprise have serious implications for developers. Those who are normally accustomed to designing, building, and implementing systems for either one platform or the other, but not both, are finding it necessary to become familiar with all options and technologies available in order to service a client’s needs.
The .NET web services architecture is similar to J2EE 1.4. The .NET platform facilitates the construction of web-enabled applications for the enterprise. The web service container hosts the .NET Framework and contains .NET-managed components such as ASP.NET. One of the keys to interoperability in this environment is leveraging services provided by the Host Integration Server 2000 by facilitating legacy system integration with Microsoft’s Message Queue (MSMQ), Microsoft Application Center Services, Microsoft Transaction Server (MTS), SQL Server 2000, and other such technologies.
Various .NET Enterprise Servers do not yet have full .NET Framework integration. However, developers can still interact with them and other products using COM+ interoperability.
Client tier components include web service technologies such as SOAP, UDDI, WSDL, Disco (Microsoft’s proprietary methodology for discovering web services), and BizTalk Server. Web browsers and wireless devices access .NET-managed components via HTTP. The back-end systems include Microsoft’s flagship database, SQL Server 2000.
Significantly, the current version of SQL Server 2000 and the pending release of Yukon recognize XML as a native language to the database.
Specifically, Microsoft supplies a SQL data provider to create a new instance of the Connection object and communicate directly with the server. This eliminates the necessity for setting up a server connection through a generic ODBC driver. Clients can also leverage the numerous benefits ADO .NET offers for database operations.
Within the Microsoft environment, the .NET Framework offers a unified API between all Framework targeted languages, courtesy of the Common Language Runtime (CLR). Through this runtime service, maintainable, sophisticated server applications receive support via a robust programming environment for classes, methods, interfaces, exception handling, just-in-time compilation, and garbage collection, without compromising server process integrity. Integration enforces secure access to system resources from user code via .NET Code Access Permissions in conjunction with Windows security.