|
...importantly, productivity businesses that depend on information technology for conducting their business. This next step forward will be enabled by e-business on demand * through more efficient utilization of computing facilities by sharing resources among many lines of business, and by interconnecting those facilities into a computing grid that will enable access to more computing capacity on demand. This potential is then extended through e-business on demand by allowing lines of business to be interconnected as a seamless flow of information and business processing and by providing concrete definitions of customer business processes so that customers can adjust those processes rapidly as business conditions change.
The role of WebSphere * Application Server (2-6) in enabling on demand computing is significant in two ways. First, it is a container for application components whose very programming model design enables a high degree of virtualization. This is achieved in the underlying information system by separating the presentation and business logic of the application from the infrastructure hosting that logic. (7) Second, the application server is a resource manager--it manages application components as resources, and manages them in the context of the computing and information resources they depend on, including the execution environment, data systems, connections, transactions, security contexts, RAS (reliability, availability, and serviceability), messaging systems, and other application components. Both of these properties form a critical backdrop to enabling on demand computing.
WebSphere Application Server supports four major models of application design: multitiered distributed business computing, Web-based computing, integrated enterprise computing, and service-oriented computing. All of these design models focus on separating the application logic from the underlying infrastructure; that is, the physical topology and explicit access to the information system is distinct from the programming model for the application. Use of underlying resources within the information system is abstracted in the programming model by high-level interfaces and logical resource references and by encouraging service processing through declarative policies in the components. The appearance of control is given but in a way that can be mapped to physical resources by the application containers in WebSphere Application Server based on its management algorithms. Exploiting the component models defined in the WebSphere Application Server programming model makes programmers more productive, but it also enables the application to be managed by WebSphere Application Server. The application components can be located within the topology as needed on the basis of the resources required by the application, as measured by the availability and capacity of the underlying computing facilities, and on the basis of the relative requirements of the application as compared to other applications in use by the enterprise.
WebSphere Application Server provides support for deploying the application, managing the resource requirements for the application, ensuring the availability, isolation, and protection of the application from other applications and their resource requirements, and monitoring and securing the application. In the following sections we will survey various aspects of WebSphere Application Server and how it enables computing for e-business on demand. Included is a discussion of how applications are managed and deployed, how the application server is monitored to determine how efficiently it is using resources and how this affects workload management, bow applications can be profiled to enable the application server to serve its resource dependencies more efficiently, the infrastructure technology the application server uses to ensure high availability and failover, how this capability extends out to the edge of the network, and finally the role the application server plays in the area of grid computing.
Other aspects of WebSphere Application Server and much of the WebSphere platform, including approaches to obtaining maximum scalability from WebSphere Application Server, (8) how to improve performance by caching, (9) information integration, (10) portals, (11) business process choreography, (12) disconnected and rich clients, (13) and connectors and adapters (14) are discussed at length throughout this issue of the IBM Systems Journal.
Application models for e-business
One major characteristic of an on demand e-business is that it is dynamic. It changes at the rate and pace of demand--demand for business services, demand for information, and demand for computing capacity. An application will survive in this sort of environment only if it is designed for change. There are many application design patterns, (15) including the principles of structured and object-oriented programming, that describe techniques for achieving high degrees of reuse and component sharing.
However, going from reuse to the kinds of dynamic rehosting that can occur as resources are shifted across a data center, or to handle the distribution of workload across application partitions, or to handle rapid changes in business processes that can occur in an on demand computing environment requires strict adherence to the best design disciplines. In an on demand computing environment, databases and legacy data systems in the Enterprise Information System (EIS) can be moved frequently to accommodate surges or drops in demand for one system or another. It may become necessary to partition workloads and route different transactions to different computers. There may be many instances of the same application in the same computer complex to serve different customers. The steps and activities that are performed for a given business situation can vary from day to day, or even for different business customers on an individual basis. Under other circumstances it would be very difficult to program an application to tolerate this kind of variability.
Letting programmers add value to their businesses by enabling them to focus their attention more on business domain concerns and less on the underlying computing infrastructure is one of the fundamental tenets of WebSphere Application Server. In addition WebSphere Application Server is a J2EE ** (Java 2 Platform, Enterprise Edition)--compliant application server supporting the entire breadth of the Java ** language and J2EE specification, including support for a Web-services-based service-oriented architecture. The J2EE programming model supported by WebSphere Application Server makes it much easier to build applications for on demand computing specifically because it separates the details from the underlying infrastructure. It does this with the component- and service-oriented programming model offered by J2EE. By leveraging that separation, WebSphere Application Server is able to offer a broad range of scaling in its application server implementation--from a single server installation all the way up to multiprocessor, multihost, and multicluster installations.
To obtain maximum advantage as an on demand business an application should follow the best-practice patterns that have been espoused for e-business computing (16)--using the J2EE and WebSphere Application Server programming model for component-based, service-oriented, distributed, and message-driven computing, and using business process choreography for composition. The patterns for e-business computing with this approach include:
* Multitiered distributed business computing
* Web-based computing
* Integrated enterprise computing
* Service-oriented computing
Multitiered distributed business computing. The value of multitiered distributed computing comes from first structuring the application with a clean separation between the logic elements (presentation, business, and data) and then leveraging the boundaries between these elements as potential distribution points in the application. This is enabled with a formal component model for business logic: Enterprise JavaBeans ** (EJB **). This component model has several key benefits for application development. Foremost, the component model provides a contract between the business logic and the underlying runtime. The runtime is able to manage the component.
The component runtime (also called the component container) ensures the optimal organization of component instances in memory, controlling the life cycle and caching of state to achieve the highest levels of efficiency and integrity, protecting access to the components, and handling the complexities of communication, distribution, and addressing. This same principle of management applies to object identity, transaction and session management, security, versioning, clustering, workload balancing and failover, and so on. Part of the EJB component model includes the idea of a single-level-store programming model, whereby the issues of when and how to load the persistent state of a component are removed from the client. (17) In many cases, the runtime has a much better understanding of what is going on in the shared system than any one application can ever have and thus can do a better job of managing the component and obtaining high performance and throughput in the information system. The runtime does this for the component developer; the programmer does not have to worry about these details.
Web-based computing. Web-based computing is, in some sense, a natural extension of the multitiered distributed computing model, whereby the presentation logic has been relocated in the middle tier of the distributed computing topology and drives the interaction with the end user through fixed-function devices in the user's presence. We refer to an in-presence, fixed-function device as a Tier-O device in the multitiered structure of the application. The most common form of a Tier-O device is the Web browser on a client desktop. Pervasive computing devices are emerging in the market in other forms as well, from personal data assistants (PDAs) and mobile phones, to intelligent refrigerators and cars (see Figure 1 ).
[FIGURE 1 OMITTED]
Web applications exploit the natural benefits of component-based programming to enable the construction of Web presentation logic that can be hosted on a server platform and to achieve richer styles of interaction than can be achieved with simple static content servers. (18) The Web application server was originally conceived to extend traditional Web servers with dynamic content; that is, page content that is derived dynamically by interacting with business logic and back-end data systems. However, in the course of developing these Web application servers, we realized that the issues of serving presentation logic are essentially the same as the issues of serving business logic. Through the use of servlets, (19) portlets, (20) and JavaServer Pages ** (JSPs **), (21) we see this model supporting both a presentation and a business logic tier in the application server layer. As with business logic, the purpose of the presentation logic server is to accommodate many clients (in this case, Tier-O clients) sharing a common implementation.
Integrated enterprise computing. Integrated enterprise computing is critical to retaining customer investments in past technologies. Few new applications can be introduced into an established enterprise without some regard as to how they will fit with existing applications (22) and, by extension, the technology and platform assumptions on which those applications have been built. A close examination of any enterprise will reveal a variety of applications built on a variety of underlying technology assumptions.
As usual, the issues of cross-technology integration are complex. In mission-critical environments, we must address concerns about data integrity, security, traceability, configuration, and a host of other administrative issues for deployment and management. However, to support the productivity requirements of developers, these complexities should be hidden. The key programming model elements provided by WebSphere Application Server for enterprise integration are offered in the form of Java 2 Connector Architecture (J2CA) (23) and the Java Messaging Service (JMS), (24) both of which are part of the J2EE specification. Figure 2 depicts this integration.
[FIGURE 2 OMITTED]
Another major advance in application integration can be realized with the use of business process choreography. Choreography is accomplished through a scripting language (the Business Process Execution Language for Web Services, or BPEL4WS (25)) that describes how to sequence a number of service activities to form a workflow definition as depicted in Figure 3. Activities can be serialized or executed in parallel. A business process instance is instantiated and forms its own state as it executes; that state can be passed between activities in the flow. A business process can be started, interrupted, resumed, and terminated.
[FIGURE 3 OMITTED]
In looking at the problem of application integration (or perhaps, more appropriately, lines-of-business integration) from the top, it is important to model business process flows in a way that allows them to be rapidly adapted to new procedures and opportunities; for example, to be able to model and then rapidly modify the order entry process to perform credit checks and to process partial orders without having to rewrite either the order entry or inventory systems. (26) Choreography lets us script the business process, which makes it very easy to modify and immediately execute changes in the implementation of the process definition. Business rules, when combined with choreography, can allow even more flexible processes to be defined.
Service-oriented computing. The service-oriented architecture (SOA) model suggests a type of application where "business services" are exposed for use both within and outside of an organization. (27) Service-oriented architectures leverage the relative cohesiveness of a given business service as the primary point of interchange between parties in the network. (28) Services can be associated with service-level policies so they can be secured, metered, monitored, and tracked. We can combine the concepts of Web services with J2EE to provide a managed component-hosting environment for these kinds of applications.
Advances in the field of service-oriented computing are heavily focused on Web services--especially on Web Services Definition Language (WSDL), on the Simple...
NOTE: All illustrations and photos
have been removed from this article.

More articles from IBM Systems Journal
Eclipse: a platform for integrating development tools., July 01, 2004 Issues in the development of transactional Web applications., July 01, 2004 Enabling distributed enterprise integration with WebSphere and DB2 Inf..., July 01, 2004 WebSphere Portal: unified user access to content, applications and ser..., July 01, 2004 WebSphere Business Integration: an architectural overview., July 01, 2004
Looking for additional articles?
Search our database of over 3 million articles.
Looking for more in-depth information on this industry?
Search our complete database of Industry & Market reports by text, subject, publication
name or publication date.
About Goliath
Whether you're looking for sales prospects, competitive information, company
analysis or best practices in managing your organization,
Goliath can help you meet your business needs.
Our extensive business information databases empower business
professionals with both the breadth and depth of credible,
authoritative information they need to support their business
goals. Whether it be strategic planning, sales prospecting,
company research or defining management best practices -
Goliath is your leading source for accurate information.
|