180 Managing Information Access to an EIS Using J2EE and Services Oriented Architecture
proxy. External services are imported into the Gateway and made available
internally to the enterprise as proxy services . Likewise, internal services are
imported into the Gateway and made available as proxy services externally.
These services are also published to the relevant UDDI directories where
required.
7.5 Quality of service for Web services
Quality of service (QOS) refers to the capability of a platform to provide a better
service to a selected application.
It is a challenge to build systems that deliver extremely high levels of service
because many variables need to be considered. The success of an application
depends on scalability, performance, availability, security, and manageability,
among other things, and all these are critical considerations if you are to avoid
failure.
In terms of Web Services, QOS covers a range of techniques that match the
needs of service requestors with those of the service provider's that are based on
the network resources that are available.
This section describes some considerations about QOS in a Web service
context. It does not discuss the scalability and availability topics, because these
issues are inherent to the underlaying middleware platform that hosts the Web
services. For details of these topics as related to the WebSphere platform see
the references in 7.6, “Further information” on page 195.
7.5.1 Performance
Often non-functional requirements are overlooked. It can happen that a project
manager faces the performance issue only in a production environment when the
performance challenge should be considered from the design phase of the
project.
One of the major drawbacks of the Web services technology is the performance
issue. The great interoperability of Web services is often paid for in terms of the
increased time for processing the message. XML parsing is always a heavy job,
even as parsers are becoming smarter.
The service designer should consider that service granularity has a significant
impact on the response time of Web services and decide on the level of
granularity of the functions to be exposed as Web services to avoid unnecessary
message exchanges across the Internet.
Chapter 7. Using Web services 181
As a performance rule, the service designer should strive to publish coarse
grained services that accept all necessary parameters and information, thereby
allowing the service provider to accomplish as much as possible on behalf of the
consuming application. The goal is to minimize the number of requests that a
consumer makes in order to accomplish a set of business tasks. A minimum
number of requests ensures minimal effects due to network latency, system I/O,
and thread or process wait states that when aggregated with multiple requests
can result in significant delays.
For example, in case of a purchase order service, it is a good idea to allow the
consumer to specify product SKU numbers, quantities, credit or debit card
information, billing and shipping address information, and discount coupons all
within a single request. The request itself may initiate multiple atomic
transactions (credit card authorization, submission of charges, inventory query
and update, and order fulfillment) at the service provider that can each be
undone or reversed if needed while supporting the overall business process.
WebSphere Application Server V5.1 has introduced many enhancements on the
performance side for the Web services so that migration to the latest release can
improve performance with a factor that can vary from two to four. It has also
added a cache capability for Web services called the
WebSphere dynamic cache
service
. For those cases where it is applicable, Web services performance using
the dynamic cache is greatly augmented.
The cache mechanism needs a unique identifier to recognize which service
requests can be served by the same reply. The tools let the user specify this
identifier from Web services specific component, s including:
򐂰 SOAP Action
򐂰 SOAP Envelope
򐂰 Servlet path (in the JSR 109 case, this refers to a port-component)
򐂰 SOAP operation (requires parsing of the SOAP message)
򐂰 SOAP operation parameters (requires parsing of SOAP message)
An essential tool is Tivoli® Performance Monitor that is packaged with
WebSphere Application Server. This tool receives performance data from the
application server and plots performance graphics at run-time (see Figure 7-7 on
page 182).

Get Managing Information Access to an Enterprise Information System Using J2EE and Services Oriented Architecture now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.