SOA Implementation Technologies
Web services implementation of SOA has many crucial advantages over any other implementation strategies. Presently, there are two predominant solutions that help in web services implementation of SOA: Microsoft's .NET technologies and Sun Microsystems's Java Platform Enterprise Edition10 technologies.
Microsoft's .NET Technologies
The .NET product suite from Microsoft enables enterprises to build enterprise-class web SOAs. The .NET product suite is largely a rewrite of Windows DNA,11 which constitutes Microsoft's previous platform constituents for developing enterprise applications. The new .NET Framework replaces these technologies and includes the web services layer.
The .NET Environment
The .NET technologies offer language independence and language interoperability. This is an interesting aspect of the .NET technology. Accordingly, a .NET component can be written, for example, partially in different programming languages and implemented as part of the web services solution. The .NET technology converts this composite language component into an intermediary neutral language called Microsoft Intermediate Language (MSIL). This MSIL12 code is then interpreted and compiled to a native executable file.
The .NET Framework also includes a runtime environment called the Common Language Runtime (CLR). This environment is analogous to the Sun Microsystems Java Runtime Environment (JRE).
The .NET Server Services
Microsoft has packed a number of servers as part of the .NET platform called The .NET Enterprise Servers. These servers provide vital services for hosting enterprise-class applications. Some important servers included as part of the .NET Servers are SQL Server, Exchange Server, Commerce Server, Cluster Server, Host Integration Server, and BizTalk Server.
Sun Microsystems's Java Enterprise Edition Technologies
The Java Platform, Enterprise Edition (Java EE) is a progression of the Java environment to the server side of the application software paradigm. J2EE, unlike Microsoft's .NET, could be termed a defacto industry standard and has resulted in a large industry initiative called the Java Community Process (JCP). The participants of this community include the "who's who" in the IT and related industries—IBM, Oracle, Nokia, BEA, and so on. The spirit of Java as well as the other related technologies, such as Java EE, was to free the customers from the dependency of products and tools from vendors.
The launching of Java as a programming language took the industry by storm in 1995. As previously indicated, the Java programming environment provided unique features that no other programming language provided: portability, platform independence, and so on. The core feature is the Java Runtime Environment (JRE) that can be made available on any hardware or operating environment. The application is developed using the Java programming language and compiled into platform-independent bytecodes. This bytecode can then be deployed to run on JRE that is installed on any compatible system.
Java EE is the server-side extension of Java. The applications are not just Java objects but are also appropriate server-side components. For creating web applications, components such as Java Servlets and JavaServer Pages (JSP) are used and deployed on web servers, and these web servers run on JRE. Likewise, for creating enterprise applications, components such as Enterprise JavaBeans (EJB) are developed and deployed, optionally with web applications, in application servers. Again, these application servers also run in JRE.
Web Services Using Java Enterprise Edition
The evolution of Java EE has been steady. Java EE technologies are consistently improving with each version. These improvements are essentially driven by Java Specification Requests (JSR), and once again, this is the JCP initiative. The arrival of XML and the related advanced vocabularies has resulted in immediate adoption into the Java environment. Simply put, this is because Java, as a portable programming language, and XML, as portable information, are an excellent combination for any environment. Further, the arrival of web services, in the form of SOAP, WSDL, and UDDI, has resulted in the creation of appropriate APIs.
Java EE applications can be executed on the web and on application servers. Appropriate components are developed and assembled to create enterprise applications. The Java EE servers and containers provide all the necessary "service plumbing" support for the web and application server.
Java EE architecture supports the following tiers: presentation tier, business tier, and data tier (or EAI tier). Not all of them are essential, and depending on the enterprise requirement, even one of the tiers can enable the application to be identified as a Java EE application. If the presentation tier is present, Java Servlets and JSP can be designed and deployed to create the web application. The Servlets can also be configured to be the services (or clients of) web services application. If the business tier is present, EJB can be developed and deployed as part of the enterprise application. The EJBs can be Session EJBs and Entity EJBs. Although session EJBs can handle session management, Entity EJBs address persistence activity. Alternatively, session EJBs can participate in the web services interactions. Business partners can connect with the presentation tier and business tier of J2EE applications through web services technologies.