Web Services Architect : Articles : Web Services and Application Frameworks
Web Services Architect

Register for e-mail updates:

 

Web Services and Application Frameworks

Working Together

Gunjan Samtani and Dimple Sadhwani

Printer-friendly HTML version
Or purchase the extended PDF version of this article from our download site, or from Amazon.com.

This article discusses how providers of application frameworks (J2EE and .NET) are adopting support of Web Services standards and capabilities into their development tools, application servers, and server software. As well as looking at the key differences between the J2EE and .NET frameworks as far as their support for Web Services is concerned, we look at an example of Web Services and Application servers.

What are Application Frameworks?

Application frameworks are a holistic set of guidelines and specifications that provide platforms, tools, and programming environments for addressing the design, integration, performance, security, and reliability of distributed and multi-tiered applications. An application framework includes the presentation services, server-side processing, session management, business logic framework, application data caching, application logic, persistence, transactions, security, and logging services for applications.

Thus, an application framework provides the following things:

  • Transaction Management
  • Scalability
  • Security
  • State Management
  • Application Integration Services
  • Administration Services
  • Run-time Services
  • Connection Services
  • Messaging Services
  • Application Development, Deployment, and Execution Platform
  • Web Services
  • Business Process Management Services
  • Support various graphical user interfaces including Web-browsers and Wireless devices



Application development tools and application servers are built on top of application frameworks. The aim of the application framework is to provide a single and unified software infrastructure that reduces the number of enterprise software products to support, maintain, and integrate.

Flavors of Application Frameworks

Application frameworks for client-server and Web-based applications can broadly be classified into two distinct fundamental physical architectures and technologies - Microsoft .NET and Java 2 Platform, Enterprise Edition (J2EE).

Let's have a brief look at these two frameworks.

Microsoft .NET Framework

Microsoft .NET is a platform that comprises of servers, clients, and services. The .NET framework includes everything from basic runtime libraries to user-interface libraries - the common language runtime (CLR), the C#, C++, VB.NET, JScript.NET, and ASP.NET languages, and the .NET Framework APIs. It comprises the following:

  1. .NET Platform: This includes the tools and infrastructure to build .NET services and.NET device software.
  2. .NET Product and Services: This includes Microsoft .NET-based enterprise servers (such as BizTalk Server 2002 and SQL Server 2000, which provide support for the .NET framework), Windows.NET, Visual Studio .NET and Office.NET.
  3. Third-party (Vendor) .NET Services: Third-party (vendor) services built on .NET platform.

Java 2 Platform, Enterprise Edition (J2EE) Framework

J2EE is a set of specifications, each of which dictates how a type of functionality is to be supplied with Java technology. The J2EE platform provides a complete framework for design, development, assembly, and deployment of Java applications built on a multi-tiered distributed application model. The J2EE specification defines numerous Application Programming Interface (API) services and multiple application programming models for developing applications and integrating them with the enterprise systems.

The latest J2EE 1.3 APIs include:

  • Enterprise JavaBeans (EJB) 2.0
  • J2EE Connector Architecture1.0
  • JDBC (for database connectivity) 2.0
  • JavaServer Pages (JSP) 1.2
  • Servlet 2.3
  • Java Transaction API (JTA) 1.0.1
  • Java Messaging Service (JMS) 1.0.2 .
  • Java Name and Directory Interface (JNDI) 1.2
  • Java RMI 1.0
  • RMI/IIOP 1.0
  • Java Authentication and Authorization Service (JAAS) 1.0
  • JavaMail 1.1
  • Java API for XML Parsing (JAXP) 1.1

Differences Between J2EE and .NET Frameworks for Web Services Support

J2EE and the Microsoft .NET frameworks both hold the promise of being the predominant Web Services framework. In this section, we compare and contrast between the two frameworks, ignoring the hype associated with their marketing campaigns.

CRITERIA

J2EE FRAMEWORK

.NET FRAMEWORK

Fundamental Design and Support for Web Services

Support for Web Services is through a pack of APIs such as Java API for XML Messaging (JAXM), Java API for XML Processing (JAXP), Java API for XML Registries (JAXR), and Java API for XML-based RPC (JAX-RPC).

Web Services are built right into the platform and Microsoft .NET framework provides ready support for Web Services standards such as SOAP, WSDL, and UDDI.

Implementation

The implementation of Web Services in J2EE will typically be done through Enterprise JavaBeans (EJBs). You can, however, also have standalone Java applications providing Web Services implementation. It all depends on how the business processing and data logic layer of an application is designed and built.

The implementation of Web Services in .NET framework will typically be done in .NET managed components, including managed classes and COM/COM+ components.

Pricing

Expensive as compared to MS.NET, however, if a company already has a J2EE-based application server platform, it makes much more sense to use the existing infrastructure and assets.

Much cheaper as compared to J2EE-based application servers. J2EE, however, is still a better choice for industry-strength server side applications.

Tools and Servers

There are multiple companies that have built IDEs and application servers based on J2EE. A majority of these companies have already started supporting Web Services creation, deployment and execution within their products.

The level of sophistication and support for Web Services standards differs from product to product.

Microsoft's cornerstone development tool (IDE ? Integrated Development Environment) for Web Services is Visual Studio .NET, sure to be as popular as their robust and easy to use Visual Studio.

Web Services enabled servers from Microsoft include BizTalk 2002 and SQL Server 2000.

Promoting Companies

Multiple (independent) companies including IBM, BEA Systems, Oracle, HP, Sun Microsystems. All these companies will be providing support for Web Services in their J2EE-based development tools and application servers.

This is a comforting factor, as there are competing products in this technology, which also means that there is no monopoly of a single company.

All the tools, servers, and technology are controlled by a single company ? Microsoft.

Although there is no question about Microsoft's stability and commitment towards Web Services technology, without competition ? the technology promoted and offered may not be the best.

Maturity of Platform

J2EE has proven to be a robust, scalable and a mature platform over the last four years. Addition of support for Web Services is just another feature for this platform.

Although .NET inherits a lot of features from Windows DNA architecture, it is still relatively new and has to prove itself to be able to offer an enterprise-wide framework.

On a final comparison note on popularity, according to a poll (conducted in December 2001) of enterprise IT professionals run by ZDNet UK's Tech Update channel, the majority of implementations of Web Services will be based on Java (79%) rather than Microsoft's .NET (21%) alternative. With the February 2002 release of Visual Studio .NET, however, there may be some swing in popularity towards .NET as a platform due to Microsoft's history of producing easy to use development environments.

An Example of Application Servers and Web Services

In this example, the retail clients and in-house clients of a financial company use the portfolio management portal to monitor their investments. The front-end of the portal is built using Microsoft technology (Active Server Pages (ASPs), Internet Information Services (IIS) Web Server, and VB Script; note that although these are not .NET products, the approach is essentially the same). One of the features provided within the portal application is quote information. Using this feature, the clients can retrieve real-time quotation for any stock. When the client requests a quote for any stock, the request is sent from the browser to the Web Server.

The quote service is provided as a Web Service by a middleware application within the company to multiple clients, with our portfolio management portal being just one of those clients. Another client, as shown in the figure, is a VB application.

The information about Web Services offered by this middleware application is obtained from the private internal UDDI registry and invoked over the intranet. The implementation of the business methods exposed by the Web Service is provided by EJBs contained in another Application server.

This is a typical example of cross-platform application server integration using Web Services. The binding information for frequently used Web Services, such as those for requesting quotes, can be cached by the client application, to avoid the resource intensive and time consuming dynamic binding. In this example, Web Services loosely integrates the portfolio management (Microsoft technology-based) application with the (J2EE-based) middleware application that interfaces with the Mainframe to receive the quote.



The sequence of steps is as follows:

  1. The user requests quotes for a specific company on an Web front-end that is passed over to the portfolio management portal running within Microsoft IIS. Here for sake of simplicity it is assumed that the user has already successfully logged into the application and has a valid session established.
  2. The .NET-based portal application gets information about Web Services made available by the J2EE-based middleware application by doing a look up in the private UDDI registry.
  3. The location of and WSDL binding information for Web Services is sent to the portal application as a SOAP-based message.
  4. The portal application invokes the Web Service published by the middleware application, passing the stock symbol as a part of a SOAP-based message.
  5. The actual implementation of the Web Service is provided by EJBs running within another J2EE-based application server. The EJBs use the JDBC API to get information from the data source, which in this case is IBM's DB2.
  6. The EJBs send the Web Services response to the portal application as a SOAP-based message.
  7. The response is formatted in XSLT/HTML format and sent back to the client browser-based application.
  8. Another VB custom application within the company intranet invokes the same Web Service, thereby being another client of the quote Web Service. The communication happens based on SOAP.

Conclusion

Application frameworks provide a platform for design, development, assembly, deployment, execution, and monitoring of applications built on multi-tiered distributed application model. Leading application frameworks (Microsoft .NET and J2EE) are providing full support for Web Services and competing to become the framework of choice for Web Services initiative within companies. This enterprise war between J2EE and .NET is bound to go on for a few years. Ultimately, it is the Web Services technology that will be the winner, as these frameworks will push each other to outbid their respective competitor's support for Web Services, leading to faster adoption of Web Services standards, creation of efficient tools and robust and scalable application servers and, last but definitely not least, cheaper costs of development tools and servers.

This article is an extract from Web Services Business Strategies and Architectures. Buy the book from Amazon.com


Or purchase the extended PDF version of this article from:
our download site
Amazon.com

Adobe Acrobat format (PDF) - 249K
14 pages
Price: $5

By the same authors:
EAI and Web Services
B2B Integration and Web Services
Integration Borkers and Web Services


Gunjan Samtani is Divisional Vice President, Information Technology at UBS PaineWebber, one of the world's leading financial services firms. He has several years of experience in the management, design, architecture, and implementation of large-scale EAI and B2B integration projects. He is the primary author of the upcoming book B2B Integration - A practical guide to collaborative e-commerce.
Dimple Sadhwani is Senior Software Engineer at Island ECN based in New York. She has many years of experience working for financial and telecommunication companies on large scale trading systems, CRM applications, Internet/Intranet portals, and client/server applications. She is co-author of the book B2B Integration - A practical guide to collaborative e-commerce. She has also authored several articles in the field of Web Services.


Printer-friendly HTML version

Keep up to date with all the new articles and features on Web Services Architect:
Register for e-mail updates


How useful is this article?
What's wrong and right about it?
What are your suggestions for taking it further?
Your views keep Web Services Architect focused.

E-mail us at feedback@WebServicesArchitect.com, or complete this form.
Note: fields marked * are compulsory.

Comments *:

E-mail *:

Job title:

First name:

Last name:

Allow Web Services Architect to display all or part of this message in an online forum.
I have read and agree to the terms and conditions.