|
Wednesday March 27 2002
Web Services and Application Frameworks
Working Together
Gunjan Samtani and Dimple Sadhwani
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:
- .NET Platform: This includes the tools and
infrastructure to build .NET services and.NET device software.
- .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.
- 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:
- 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.
- 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.
- The location of and WSDL binding information for Web Services is
sent to the portal application as a SOAP-based message.
- The portal application invokes the Web Service published by the
middleware application, passing the stock symbol as a part of a
SOAP-based message.
- 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.
- The EJBs send the Web Services response to the portal application as
a SOAP-based message.
- The response is formatted in XSLT/HTML format and sent back to the
client browser-based application.
- 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. |