BEA WebLogic® Server 8.1 Overview
The Foundation for Enterprise Application Infrastructure
BEA White Paper
Copyright Copyright © 2003 BEA Systems, Inc. All Rights Reserved. August 19, 2003
Restricted Rights Legend This document may not, in whole or in part, be photocopied, reproduced, translated, or reduced to any electronic medium or machine readable form without prior consent, in writing, from BEA Systems, Inc. Information in this document is subject to change without notice and does not represent a commitment on the part of BEA Systems, Inc.
Trademarks BEA, WebLogic and Tuxedo are registered trademarks, and BEA WebLogic Server, BEA WebLogic Integration, BEA WebLogic Portal and BEA WebLogic Enterprise Platform are trademarks of BEA Systems, Inc. All other company and product names are trademarks of their respective owners. CWP0309E0202-3A
BEA Systems, Inc. 2315 North First Street San Jose, CA 95131 U.S.A. Telephone: +1.408.570.8000 Facsimile: +1.408.570.8901 www.bea.com
ii BEA White Paper — BEA WebLogic Server 8.1 Overview
Contents Executive Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 BEA WebLogic Server Overview
.....................................................................................................
1
The Role of BEA WebLogic Server in the Enterprise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 The BEA WebLogic Enterprise Platform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 The Power of J2EE and a Standards-Based Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 BEA WebLogic Server Architecture
.................................................................................................
7
The Presentation Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Java Servlets and Java Server Pages
....................................................................................
9
BEA WebLogic Server Presentation Layer Value-Adds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 The Business Layer
............................................................................................................
Enterprise JavaBeans
....................................................................................................
10 10
BEA WebLogic Server Business Layer Value-Adds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 The Back-End Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Relational Database Access
.............................................................................................
12
Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 BEA WebLogic Server Services
...............................................................................................
15
Web Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Messaging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Security
..........................................................................................................................
19
Administration and Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Example of a BEA WebLogic Server Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 Building the User Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Building the Business Logic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Integrating the Back-End . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 Benefiting from Web Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 About BEA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
BEA White Paper — BEA WebLogic Server 8.1 Overview
iii3
Executive Summary BEA WebLogic Server™ continues to set the pace in making application servers the foundation for enterprise application infrastructure. As a cornerstone of the BEA WebLogic Enterprise Platform™, BEA WebLogic Server provides a rock solid foundation for building integrated, enterprise-class applications that share information, deliver services, and automate collaboration among networked companies at Internet volume and speed. BEA WebLogic Server’s fully J2EE-compliant services oriented architecture, and support for rich tool sets facilitate the separation of presentation, business logic, and data, providing the underlying core functionality necessary for the development and deployment of business-driven applications. Its comprehensive capabilities support an integrated infrastructure that can connect legacy systems, as well as the latest Web Services. And BEA WebLogic Server 8.1 brings even greater efficiency, power, and profitability to IT initiatives, as well as staying power and agility to companies riding the waves of the Internet economy.
BEA WebLogic Server Overview BEA WebLogic Server is a fully featured, standards-based application server providing the foundation on which an enterprise can build its applications. For all of the crucial tasks of application development and deployment—from integrating enterprise systems and databases to delivering services and collaborating over the Internet— the starting place is BEA WebLogic Server. With its comprehensive set of features, compliance with open standards, multi-tiered architecture, and support for component-based development, Internet-savvy businesses are choosing BEA WebLogic Server to develop and deploy best-of-breed applications.
The Role of BEA WebLogic Server in the Enterprise The application server is the “workhorse” enterprise software that provides application infrastructure for modern business systems. Application servers evolved from the need to support applications that share data and resources with other systems, and generate dynamic information for Web pages and other user interfaces. They introduced into server-side architecture, a new layer of functions and services between Web servers and underlying applications and databases.
BEA White Paper — BEA WebLogic Server 8.1 Overview
41
Figure 1 – BEA WebLogic Server as a new layer between user interfaces and underlying systems and databases.
Now, as companies deploy large applications to support secure transactions and use Web and XML protocols to move beyond Electronic Data Interchange (EDI), the growing complexity of the applications demands a managed environment for the application. Globally deployed applications with complex business logic, potentially servicing tens of thousands of concurrent users in real-time, require a scalability and reliability that makes BEA WebLogic Server a necessity. BEA WebLogic Server provides all of the essential core application server functions and services, such as: • Load balancing • Fault tolerance • Web Services • Network transparency • Legacy integration • Transaction management • Security • Messaging • Multi-threading • Persistence • Database connectivity • Resource pooling • Development, testing, and packaging facilities
25 BEA White Paper — BEA WebLogic Server 8.1 Overview
This built-in functionality speeds application development and relieves developers of the effort and expense of creating these crucial services on their own. In the end, by leveraging the application infrastructure offered by BEA WebLogic Server, applications provide more functionality, are developed faster, less costly to maintain, and provide a greater return on investment. Simple applications may run a single BEA WebLogic Server instance, while more demanding applications may run a large cluster of servers that collaborate for increased scalability and reliability, as illustrated below.
Figure 2 – Two sample deployment configurations for BEA WebLogic Server: single server and clustered ser vers.
Ultimately, BEA WebLogic Server has led the way for application servers to become the foundation on which many additional layers of software and services have been developed to enable Internet applications to support high-volume transactions on a global scale. These applications also must achieve the levels of real-time personalization, shared data resources, business collaboration, seamless integration demanded by customers and business partners.
BEA White Paper — BEA WebLogic Server 8.1 Overview
63
The BEA WebLogic Enterprise Platform BEA WebLogic Server is a cornerstone of the BEA WebLogic Enterprise Platform.
Figure 3 – The BEA WebLogic Enterprise Platform demonstrates how application servers have become a cornerstone of a multi-layered infrastructure for the support of Internet applications and services.
Designed to allow data and services to be shared across multiple applications and business functions, the BEA WebLogic Enterprise Platform is an integrated suite of application infrastructure built on open standards. BEA’s enterprise platform supports high-volume transactions, business process management, application integration, business collaboration within and across the enterprise, as well as the ability to create and maintain dynamic electronic marketplaces. The world’s #1 application infrastructure platform includes: • BEA WebLogic Server – the industry-leading Java application server, delivering the scalability, security, and reliability to power the world’s most sophisticated enterprise applications. • BEA WebLogic Workshop™ – a unified graphical development environment and run-time framework that empowers application developers—not just J2EE experts—to rapidly create, test, and deploy enterprise-class Web service applications on the BEA WebLogic Enterprise Platform.
74 BEA White Paper — BEA WebLogic Server 8.1 Overview
• BEA WebLogic Integration™ – a single solution delivering application server, application integration, business process management, and B2B integration functionality for the enterprise. • BEA WebLogic Portal™ – enables the agile enterprise by delivering a fully integrated enterprise platform including a portal framework with portal foundation services, personalization and interaction management, integration services, and intelligent administration. • BEA Liquid Data for WebLogic™ – a virtual data access and aggregation product for Information Visibility allowing a real-time unified view of disparate enterprise data. • BEA Tuxedo® – a proven platform for building rock-solid, easy-to-manage enterprise systems that enable businesses to rapidly launch new products and services to maintain their competitive advantage. • BEA WebLogic JRockit™ – a highly-optimized Java Virtual Machine that delivers superior application performance, reliability, and manageability for mission-critical Java applications running on the Intel 32 and 64 bit architecture.
The Power of J2EE and a Standards-Based Solution The need for a standards-based approach to application development and deployment is universally recognized, but not always realized. BEA WebLogic Server continues to embrace open standards, to provide robust implementations of the latest standards specifications, as well as the choice and investment protection in application development solutions. BEA WebLogic Server 8.1 is fully compliant with the industry standard, Java 2 Enterprise Edition version 1.3 (J2EE), the programming model of choice for server-side development of enterprise-class applications. J2EE-compliant applications built and deployed on BEA WebLogic Server: • are portable across a variety of hardware and operating systems, and therefore easier to integrate with applications running in the heterogeneous environments of UNIX, Linux, mainframe, and Windowsbased systems that are typical of many enterprises. • take advantage of the variety of third-party tools and components written to the J2EE APIs. Refer to the Third-Party Tools page at www.bea.com/products/weblogic/tools for a listing of application development solutions that support BEA WebLogic Server. • can draw on a large of pool of experienced Java developers familiar with J2EE standards, resources, and best practices. • can leverage pre-built applications and components that conform to J2EE standards.
BEA White Paper — BEA WebLogic Server 8.1 Overview
85
J2EE includes specifications for Java Server Pages (JSPs), Java Servlets, and Enterprise Java Beans (EJBs), which enable developers to create scalable, reusable, component-based applications. It also includes J2EE Connector Architecture (J2CA), which enables developers to connect legacy applications to the J2EE platform and to apply J2EE component models, transaction, and security infrastructures to the integration of these systems. Additionally, J2EE provides standardized database access via JDBC, messaging via Java Messaging Service (JMS), and support for managing transactions, security, and other core services. Developers can take advantage of the many third-party offerings of Java packages, database drivers, and vendor-specific application adapters, as well as develop their own custom applications. BEA WebLogic Server has implementations of the standard interfaces and supports tools to help developers customize as necessary with minimal cost and effort. In addition to J2EE, BEA WebLogic Server implements all significant programming, integration and networking standards that are the basis for building an application infrastructure, including: • Extensible Markup Language (XML) – BEA WebLogic Server implements the latest Java API for XML Processing (J AXP), and includes a built-in Apache Xerces parser and a custom high-performance XML parser specifically designed for small-to-medium XML documents. Also included is a Xalan XSL transformer, BEA XML editor, and enhanced XML Registry capabilities. • Simple Object Access Protocol (SOAP) – SOAP is the emerging standard for the exchange of information in a distributed environment. It is the communication protocol for defining the format of data for Web Services that are delivered via HTTP. • Web Services Definition Language (WSDL) – WSDL is the XML-based language used to describe a published Web Service. BEA WebLogic Server has built-in support for WSDL and generates WSDL script automatically when a Web Service is deployed on BEA WebLogic Server. • Web Services Security Specification (WS-Security) – an XML-based standard that makes it possible to secure Web Services communication by encrypting the SOAP message body according to rules specified in WSDL file. • Universal Description, Discovery and Integration (UDDI) – A UDDI registry is a distributed, Web-based information directory listing Web Services, similar to a phonebook. BEA WebLogic Server includes embedded UDDI registry and an API for searching and updating this, or any other third-party UDDI registry. • Java Management Extensions (JMX) and Simple Network Management Protocol (SNMP) – The BEA WebLogic Server distributed management infrastructure based on the open and extensible JMX standard. Also, SNMP agent is available for compatibility with SNMP -based, third-party management solutions.
69 BEA White Paper — BEA WebLogic Server 8.1 Overview
• Pluggable Security Framework with Dynamic Rules-Based Access Authorization Policy Processing – BEA WebLogic Server enables applications to incorporate best-of-breed security solutions into its pluggable security framework. System administrators can configure their application’s security policies based on access roles and govern them based on dynamically calculated rules.
As the foundation for the BEA WebLogic Enterprise Platform, BEA WebLogic Server also supports all the latest application integration, business process management, and B2B standards for integrating applications and enterprises over the Internet.
BEA WebLogic Server Architecture BEA WebLogic Server has a three-layered architecture that supports the separation of presentation, business logic, and data connectivity: • The presentation layer is responsible for managing the user interfaces of applications, including desktop applications, Web browsers, and pervasive devices • The business layer contains the business logic • The back-end layer provides connectivity with enterprise systems and databases
This multi-tier architecture supports the separation of these three layers at the development stage, as they require three very different sets of skills: • Interface designers, who deal with HTML or other presentation coding • Business analysts, who design the business processes that define transactions, services, and operations • Developers and IT staff who build, install, maintain, and customize applications
By separating these functions, BEA WebLogic Server ensures that each type of developer has the freedom and specialized tools appropriate to their respective domains, and companies can hire or contract the services of people with the relevant skill-sets. Each layer provides features for ease-of-use, as well as application development and deployment. BEA WebLogic Server enables Web designers to use their favorite Web authoring tools, while business logic developers can use their preferred programming tools and IDEs.
BEA White Paper — BEA WebLogic Server 8.1 Overview
107
The Presentation Layer The presentation layer is responsible for managing interactions with desktop applications, Web browsers, wireless devices, or other client types. BEA WebLogic Server supports all of the current mechanisms for communication between the client and the server: • Thin clients – such as Web browsers that send HTTP requests and receive HTTP responses for static HTML or dynamic Web pages built by Java Servlets and Java Server Pages (JSPs). • Thick clients – such as Java applets and applications, ActiveX controls, or Visual Basic clients that run on a desktop and communicate with BEA WebLogic Server through CORBA, Java RMI, IIOP, or COM+. • Pervasive devices – including wireless phones, PDAs, smart appliances, and other emerging remote clients that communicate with the server via specific and usually very compact protocols. For example, wireless phones can understand the Wireless Markup Language (WML), an XML-based language optimized for wireless devices. BEA WebLogic Server can generate WML pages from Servlets and JSPs. • Web Services – that connect to the system using Web Services technologies, such as SOAP, UDDI, and WSDL.
The client tier may be a Web portal deployed on a BEA WebLogic Portal. A portal is a personalized, secure Web environment that allows an organization to aggregate and share content—such as information, services and applications—with customers, partners, employees and suppliers. Because a portal provides a single, browser-based approach to finding useful information, independently of where the information comes from and how it is created, its separation from underlying business logic and data is crucial to its design. BEA WebLogic Server includes a full-functional, high-performance Web server for responding to browser HTTP requests for Web content. This Web server can run in the same process as the application server, as well as provide many performance enhancements to general Web server functionality, such as Servlet and JSP results caching and JSP tags caching, which enable the server to avoid repeated invocations for similar kinds of client requests. Closely integrated with the rest of the BEA WebLogic Server architecture, this Web server provides high-reliability, scalability, monitoring, and other features required by enterprise applications. BEA WebLogic Server also comes with plug-ins for Apache, iPlanet, and Microsoft IIS Web servers. In B2B transactions, where the clients are typically other applications, connectivity may be achieved through Electronic Data Interchange (EDI), RosettaNet, or Web Services.
811 BEA White Paper — BEA WebLogic Server 8.1 Overview
Java Servlets and Java Server Pages J2EE provides two technologies for building dynamic Web pages: Java Servlets and Java Server Pages. Java Servlets are Java classes in Web applications typically used to route HTTP requests and provide HTTP responses, thereby managing interactions between the client-side Web browser and the server-side business logic. Servlets deployed on BEA WebLogic Server can access databases, Enterprise JavaBeans, messaging APIs, HTTP sessions, and other server facilities. Although Servlets can generate HTML, it is more common to leave this task to Java Server Pages. Developers familiar with other technologies for extending the functionality of a Web server, such as CGI scripts or ISAPI extensions, should find Servlets easy to understand. Java Server Pages (JSPs) are flat files in which Java-like code can be embedded in special tags directly into the HTML script. The embedded code can access server-side resources, such as a database, and dynamically update Web pages. JSPs can use XML technology and are extensible by means of tag libraries that enable developers to write their own custom tags or take advantage of third-party offerings that provide powerful ways to further standardize and simplify development of applications. The decision whether to use Servlets, JSPs, or both, depends on the development environment and the development team. By using Servlets, JSPs, and tag libraries together, developers can craft just about any browser-based, thin-client interface to interactive applications, such as online shopping carts, financial services, and personalized content, as well as collaborative systems like online conferencing. Developers can run tests by starting the server, opening a Web browser and connecting to the first servlet in the logical flow of the application. BEA WebLogic Server then loads the presentation layer components, translates and/or compiles them as necessary, and instantiates them. The presentation layer components execute and an HTTP response is returned to the Web browser.
BEA WebLogic Server Presentation Layer Value-Adds Beyond the basic presentation layer support, BEA WebLogic Server provides the following high-end features: • Virtual hosting – BEA WebLogic Server can host multiple Web sites in a single application server. For example, companies sharing a server can have different domain names with Web servers accessible as www.company1.com and www.company2.com without requiring users to know any extra path information. • Clustering – BEA WebLogic Server can be deployed in a cluster of multiple server instances to achieve scalability and high-availability. A BEA WebLogic Server cluster appears to its clients as a single server, but is, in fact, a group of servers acting as a single “super” server. New servers can be added to the cluster dynamically on the same or other machines, and the ability to fail-over from a malfunctioning server to a functioning server insulates clients from hardware or power failures by eliminating single points of failure. BEA White Paper — BEA WebLogic Server 8.1 Overview
129
• Load balancing – Incoming requests can be distributed across multiple instances of BEA WebLogic Server by using the most commonly used load balancers or by using a Web server as a proxy. This allows the user to control the load on each specific instance of the server, as well as providing multiple algorithms for fail-over across the cluster. • Integration with third-party Web servers – BEA WebLogic Server can work in conjunction with existing Web servers. BEA provides a proxy that plugs into Apache, iPlanet, and Microsoft IIS and can dynamically load-balance requests across BEA WebLogic Web servers, resulting in increased scalability. • Integrated Web Services infrastructure and tools – BEA WebLogic Server allows exposing J2EE components as Web Services without requiring any additional programming. A comprehensive graphical environment is provided that allows enterprise developers to build their distributed applications using Web Services technologies. • High availability with transparent fail-over – The data contained in Web components can be replicated across multiple machines. In the event of a failure, current client session information is maintained. In addition to disk-based persistence, BEA WebLogic Server uses a very efficient inmemory replication of a client’s session state to achieve the highest performance, most reliable, and scalable execution environment.
The Business Layer The Business Layer contains the application’s business logic independent of the user interface, including distributed components, running in the application server environment. Within the J2EE framework these components are usually represented by Enterprise JavaBeans.
Enterprise JavaBeans Enterprise JavaBeans (EJBs) is the primary server-side, enterprise Java component architecture enabling developers to design and develop customizable, reusable business logic. BEA WebLogic Server 8.1 supports EJB 2.0, the most recent version of the specification. EJBs provide scalable, portable, server-side components for interacting with any kind of client. Developers can focus on the business purpose of the objects and methods contained in the EJBs, while BEA WebLogic Server’s built-in EJB container handles the underlying infrastructure services, such multi-threading, load balancing, clustering, object life cycle, transactions, security, messaging, and persistence. The portability of the J2EE architecture enables EJBs written in Java to be deployed on any platform and operating system supporting Java.
10 13 BEA White Paper — BEA WebLogic Server 8.1 Overview
There are three major types of enterprise beans defined in EJB 2.0: • Session Beans are business process objects that act as verbs that perform actions, such as transferring funds between two bank accounts, performing purchase order approval routing, or calculating the price of an order. • Entity Beans are data objects that act as nouns and usually represent real-life objects, such as bank accounts, purchase orders, employees, companies, and vendors. Entity beans are in-memory objects that physically map to data stored in underlying relational databases or legacy systems. Persistence can be manually performed by the developer (bean-managed persistence) or by BEA WebLogic Server (container-managed persistence). Typically, session beans “call” entity beans to achieve their desired actions, such as a purchase order approval router (session bean) that deals with purchase orders (entity beans). • Message-Driven Beans are messaging objects that are designed to receive and route messages from clients to other Enterprise Java Beans. For example, a logging service can receive logging messages and “call” a session bean to perform the actual logging.
BEA WebLogic Server Business Layer Value-Adds Beyond the basic EJB support, BEA WebLogic Server contains many high-end features that make EJB deployments robust: • Instance pooling – BEA WebLogic Server can pre-load a given number of instances and prepare them for use, thereby saving time by not having to create a new instance for each request. When a client is done with an instance, the server puts it back into the pool for future reuse. This feature also helps limit the load on the server by giving the administrator control over the maximum number of beans in the pool. • Clustering – EJBs can be deployed in a cluster of BEA WebLogic Servers, providing for an increased scalability and reliability. Each bean can be distributed across the cluster and located by means of distributed naming and directory facilities. • High availability with transparent fail-over – BEA WebLogic Server will replicate state that Enterprise JavaBeans hold across a cluster of separate physical BEA WebLogic Server processes, creating redundancy in case of failure. BEA WebLogic Server will transparently fail-over to a backup machine in the cluster in the event of a failure. • Load balancing – BEA WebLogic Server will route requests from remote clients to EJB components using a predetermined algorithm or custom- algorithm. This results in scalability beyond a single machine and can work with BEA WebLogic Server’s Web server, as well as other vendors’ Web servers by using BEA plug-ins.
BEA White Paper — BEA WebLogic Server 8.1 Overview
11 14
• EJB Caching – BEA WebLogic Server will store a configurable number of EJBs in memory to save on database access. In case another instance of the server in the cluster updates the same bean, all the cached instances of the bean cached in the cluster will be invalidated, and reloaded with the next access. This feature increases performance and reduces the load on the database.
The Back-End Layer BEA WebLogic Server’s back-end layer provides access to other enterprise systems, such as databases, ERP, CRM, mainframe or other existing applications. The back-end layer also serves as an integration layer, using messaging, e-mail, Web Services, and other technologies to connect and communicate with enterprise systems.
Relational Database Access BEA WebLogic Server supports secure connectivity to relational databases through Java Database Connectivity (JDBC). JDBC provides a set of APIs that enable Java programmers to incorporate database services into applications. It also includes specifications for database drivers, which implement the interfaces and classes of the JDBC API. Drivers hide the implementation details of a particular database from the API-level developers. The business layer sees only the standard interface and is therefore largely database independent, so that no changes to the EJBs are required when a company moves to a new database vendor. BEA WebLogic Server supports any database with a JDBC 2.0-compliant driver. Code that opens a connection to a database can be inserted into Web pages or applications in the presentation or business layer. Thick clients, such as standalone Java applications, can connect to remote databases with RMI. Thin clients can embed database connection code in Servlets and JSP tags as a quick way to prototype applications with database connections. Both EJB session beans and entity beans can also use JDBC to connect to a database. The most recommended way is to use entity beans and benefit from the underlying services provided by the BEA WebLogic Server EJB Container. With bean-managed persistence, the beans can be interlaced with the JDBC code written manually by the user. With container-managed persistence, BEA WebLogic Server generates the JDBC code based on a user’s configurable specifications. Obtaining the initial connection can be a time-intensive operation when a Web client tries to connect to a heavily used database. BEA WebLogic Server contains an advanced feature called “connection pooling” which eliminates the burden of establishing database connections, and increases the scalability of a relational database application. By using connection pooling, the server opens a specified number of connections upon start-up. The application can request a connection from the server when it needs one. When the application is finished using that connection, the server returns the connection back to the pool for another client to use, as shown in Figure 4.
15 BEA White Paper — BEA WebLogic Server 8.1 Overview 12
Figure 4 – BEA WebLogic Server’s connection pooling feature eliminates the overhead of establishing JDBC database and J2CA connections.
Integration BEA WebLogic Server provides strong support for integrating new applications with any legacy Enterprise Information System (EIS) to allow companies to leverage exiting technology investments and build on their information infrastructure. EIS integration is handled through several options: • J2EE Connector Architecture (J2CA) – BEA WebLogic Server delivers this new J2EE 1.3 standard, which defines an API, a set of contracts for transactions, security, and connection management, and Common Client Interface (CCI) for connecting any EIS to an application server. The J2EE Connector Architecture enables an EIS vendor to provide a standard resource adapter for its EIS. This resource adapter plugs into BEA WebLogic Server and provides the underlying integration between an EIS and BEA WebLogic Server. Using the J2CA removes the need for EIS vendors to customize their product for each application server or integration framework. By conforming to the J2CA, BEA WebLogic Server does not require additional custom code to extend its support connectivity to an EIS.
BEA White Paper — BEA WebLogic Server 8.1 Overview
13 16
BEA WebLogic Server also provides a number of useful features to ease J2CA programming, such as automatic pooling and reuse of connections to existing systems (as shown in Figure 4). Security is also integrated, allowing a user to perform single sign-on into a J2EE deployment, and for credentials to be automatically propagated to existing systems. In addition, transactions are fully integrated between BEA WebLogic Server and existing systems, enabling a J2EE application to involve existing systems in a larger, two-phase commit transaction. • BEA Tuxedo – BEA WebLogic Server includes a close integration with this BEA enterprise infrastructure environment for non-Java applications. The BEA WebLogic/Tuxedo Connector (WTC) is a built-in component of BEA WebLogic Server and provides bi-directional interoperability with BEA Tuxedo, complete with transaction and security integration. BEA Tuxedo enables developers to develop, manage, and deploy C/C++ or Cobol applications based on procedural, CORBA and ATMI programming models. • Web Services – BEA WebLogic Server provides support for Web Services, allowing enterprises to access and re-use Web Services-enabled functionality available from the third-party applications. Web Services support also allows enterprises to build their own loosely coupled, enterprise-wide interdepartmental applications. • CORBA – Many companies use Common Object Request Broker Architecture (CORBA) technology to integrate legacy systems that run non-Java applications, such as C++ or COBOL programs. BEA WebLogic Server supports integration with legacy systems that implement the CORBA specifications. • Java Native Interface (JNI) – The JNI standard programming interface is used to write Java native methods and embed the Java virtual machine into native applications. • COM/DCOM (COM+) – BEA WebLogic Server includes BEA WebLogic jCom, a feature that enables bi-directional interoperability with Microsoft’s COM+ distributed components architecture. With jCom, applications deployed on BEA WebLogic Server can access data in Microsoft applications, such as Excel and MSWord, and communicate with Visual Basic clients.
BEA extends the rich integration features found in the core server with BEA WebLogic Integration™. Built on BEA WebLogic Server, WebLogic Integration extends the capabilities of BEA’s enterprise platform to include a full array of solutions for enterprise application integration, B2B collaboration, and business process management.
14 17 BEA White Paper — BEA WebLogic Server 8.1 Overview
BEA WebLogic Server Services BEA WebLogic Server’s support for service-oriented architecture includes support for Web services, messaging, security, administration and management, and transactional consistency.
Web Services Web Services are modular applications that can be described, published, located, and invoked over standard Internet protocols using standardized XML messaging. Applications use the XML-based SOAP for the exchange of information in a loosely coupled, distributed environment. Applications posted to the Web are described with the WSDL and registered with a public or private service registry using the UDDI standard. Exposing EIS functions as Web Services is an alternative to B2B communication via EDI or other legacy protocols.
Figure 5 – A sample of Web Services deployment.
BEA WebLogic Server offers: • A high-performance reliable SOAP implementation • Support for WSDL and UDDI • Automatic generation of Web Services helper code
BEA White Paper — BEA WebLogic Server 8.1 Overview
18 15
• Support for the Java API for XML Parsing (JAXP), an industry-standard API for XML parsing • Support for Web Services Security standard • A set of convenient graphical tools for development, search, and composing of the Web Services
All of the Web Services implementations in BEA WebLogic Server are interoperable with the leading Web Services compliant platforms. BEA WebLogic Server provides two ways to leverage Web Services: publishing an EIS function as Web Service, or subscribing to and using existing Web Services. BEA WebLogic Server automatically wraps the business components of a new or existing J2EE application with a Web Services layer. BEA WebLogic Server easily accomplishes this by generating all the necessary SOAP coding/decoding helper code and the WSDL script to describe the new Web Service. It addition, it generates a thin client that can be used by client developers to connect to the Web Service. Once BEA WebLogic Server has completed this process, the Web Service is ready to be accessed by any SOAP request. All of the management and monitoring services needed to maintain and operate the Web Services are included with the BEA WebLogic Server Administration Console. The user can also register the new Web Service with public or private UDDI registries by using the available UDDI API. Additionally, BEA WebLogic Server can host its own UDDI registry where all the Web Services hosted on the server are registered and can be located. To consume an existing external Web Service, a user would use client code to look-up the WSDL interface in a UDDI registry, use the retrieved definition to write a client program, and have that client program call the service. Again, BEA WebLogic Server simplifies this process by automatically generating all of the code necessary for an application to connect to a remote Web Service by simply pointing to the external Web Service’s WSDL, freeing developers from all these tasks. Web Services deployed on BEA WebLogic Server can be secured just like any other deployed component. Highly sensitive data passed from service to service via the SOAP protocol can be protected by means of SSL. In addition to this, BEA is an active participant and contributor in Web Services Security (WS-Security) Organization that is developing WS-Security. BEA WebLogic Server 8.1 supports the WS-Security specification that provides SOAP message body level security and is driven by the access rules defined in WSDL. This additional level of security allows enterprises to build truly standards-based secure Web services frameworks. Reliable SOAP is an additional value-add that BEA WebLogic Server provides in the area of Web Services. SOAP by nature is not a reliable message protocol, so to help enterprises build reliable Web Services, BEA WebLogic Server provides a reliable SOAP stack based on a sequence of asynchronous SOAP communications, receipts, and notifications. With this functionality BEA WebLogic Server-based Web Services expose features usually found in reliable messaging frameworks, like guaranteed delivery, “exactly-once” delivery, ordered conversation, and more.
16 19 BEA White Paper — BEA WebLogic Server 8.1 Overview
A set of convenient GUI-based tools is provided with BEA WebLogic Server, allowing for the location of existing Web Services by querying a UDDI registry. In addition to the Core Web Services functionality, BEA WebLogic Server is also closely integrated with BEA WebLogic Workshop—a comprehensive, fully integrated graphical development environment that helps enterprise developers in building, testing, and deploying their distributed, loosely coupled applications using Web Services technology. BEA WebLogic Workshop does not require deep knowledge of Java or Web Services technology, or extensive programming experience to implement business functionality. Through a highly productive and easy to use development environment, customers design their business applications by visually building and assembling multiple J2EE, Web Services, and integration components, setting their properties, and writing the essential business code in standard procedural Java. The resulting application is then automatically deployed to BEA WebLogic Server, thus benefiting from the full scope of its value-add features, such as high performance, security, transactional consistency, and scalability.
Messaging BEA WebLogic Server includes a built-in messaging infrastructure that implements the JMS specification to provide a reliable, scalable, and high performance, standards-based, enterprise messaging solution to exchange information within or between applications. BEA WebLogic Server’s J2EE implementation includes support for many value-add JMS features, such as: • Distributed Highly Available JMS Connection Factories – Connection factories encapsulate connection configuration information and are used to create connections. BEA WebLogic Server provides a default connection factory and the capability to add or update connections during configuration. Other JMS-compliant connection factories can be used as well. Applications use the Java Naming and Directory Interface (JNDI) to look-up a connection factory and create connections to establish communication with a JMS server or a server cluster for transparent access to destinations. Users can distribute JMS connection factories by deploying the same factory on multiple servers within a cluster. A JMS client can send a message by connecting to any of the servers within a cluster that has a JMS connection factory deployed on it. • Distributed Highly Available Destinations – BEA WebLogic Server supports messaging for applications that span different operating systems and machine architectures. Using clustered BEA WebLogic Servers, users can configure multiple JMS destinations and distribute them across the cluster. Each JMS destination is available on more than one server in a cluster. This provides for highly available destinations with failover and load balancing of each destination across multiple servers in a cluster. Users can establish cluster-wide, transparent access to destinations from any server in the cluster by configuring multiple connection factories.
BEA White Paper — BEA WebLogic Server 8.1 Overview
17 20
• Durable Subscribers Management – BEA WebLogic Server can store a message in a file or database until the message has been delivered to the subscribers or has expired, even if those subscribers are not active at the time that the message is delivered. A Runtime MBean performs simple management tasks, such as monitoring, deleting, or modifying durable subscriptions, which can be administered from the BEA WebLogic Server Administration Console. • Multicasting – BEA WebLogic Server multicasting uses an IP multicast address to deliver messages to a defined group of hosts. Multicasting allows near real-time deliver y of messages to this host group and high scalability by reducing the number of messages that a JMS server is required to deliver. The JMS server forwards only a single copy of a message to each host group associated with a multicast IP address, regardless of the number of applications that have subscribed. • Redelivery Delay – BEA WebLogic Server allows applications to be configured to delay the redelivery of messages when a temporary, external condition prevents an application from handling a message properly. When a message is rolled back or recovered, the Redelivery Delay is the amount of time a message is delayed before redelivery is attempted. • Multiple Message Persistence Options – BEA WebLogic Server writes persistent messages to a persistent backing store (file or JDBC database) assigned to each JMS server during configuration. A persistent message is guaranteed to be delivered at least once, and is not considered sent until it has been safely written in the file or database. • Asynchronous Message IO – BEA WebLogic Server can store messages in a persistent storage without the sender having to wait for a successful completion of message disc IO. This optional configurable feature gives the users a choice between high delivery reliability and increased performance. Through JMS, application components can exchange data and trigger events asynchronously. A component can send requests to one or more other components without needing to wait for a response or action confirmation (even though this option exists, as well). The request can initiate processing that is performed independently of the requesting component. For example, a purchase ordering component can notify the logging component that financial adjustments need to be made to the company’s internal general ledger accounts. This adjustment can be performed independently of the purchasing order component, so that users experience no delay. JMS enables applications to exchange messages with other JMS-compliant applications whether they are running on BEA WebLogic Server, or another vendor’s server, such as MQSeries from IBM. Also, JMS can be configured to serve as a transport protocol for BEA WebLogic Web Services. In addition to HTTP protocol, JMS offers another option to choose for BEA WebLogic Server-based Web services.
21 BEA White Paper — BEA WebLogic Server 8.1 Overview 18
Security As application servers are embraced as the foundation for enterprise applications, they are increasingly expected to provide all the mission-critical systems and network security features traditionally provided in mainframe systems, and adapt to the new environments demanded to support Web Services and other emerging technologies. BEA WebLogic Security provides end-to-end Application Security, covering J2EE and non-J2EE components of your application hosted on BEA WebLogic Server. With BEA WebLogic Security Framework, • Security policies are created and managed by security administrators • Security policies are flexible, dynamic, powerful rules that can be changed without recoding or redeployment • Integration with existing security solutions is greatly simplified The BEA out-of-the-box security services include a rich, entitlement-based security authorization engine that allows business security policy to be written as plain text. For example, a policy for a banking application might be: if the user has the role “teller”, and the hours are between “9AM and 3PM”, and it’s between “Mon through Fri”, allow “access.” This business policy can be read and understood by the average business user, and can be modified by an authorized user from BEA’s web-based console (Figure 6) without having to modify code or re-deploy the application, giving a business flexibility and removing security policy from the hands of the developer. Through this separation of business logic and business security policy by offering security as a service to J2EE containers and other resources, it ensures a dynamic and flexible security environment, and still maintains a full compliance with the J2EE standard. BEA WebLogic Server supports basic HTTP authentication with Base64 encoding for services protected by firewalls, HTTPSecurity (HTTPS) for SSL implementations. It also supports the Web Services end-to-end security model for protection of highly sensitive data passed from service to service via the SOAP protocol. BEA WebLogic Server provides support for the Java Authentication and Authorization Service (JAAS), a part of J2EE 1.3 standard for creating seamless security architecture across J2EE-compliant applications.
BEA White Paper — BEA WebLogic Server 8.1 Overview
19 22
Figure 6 – BEA WebLogic Server 8.1 Security Policy Editor.
BEA WebLogic Server supports basic HTTP authentication with Base64 encoding for services protected by firewalls, HTTPSecurity (HTTPS) for SSL implementations. It also supports the Web Services end-to-end security model for protection of highly sensitive data passed from service to service via the SOAP protocol. BEA WebLogic Server provides support for the Java Authentication and Authorization Service (JAAS), a new J2EE 1.3 standard for creating seamless security architecture across J2EE-compliant applications. BEA WebLogic Server security framework goes above and beyond J2EE and provides a rich set of security functionality out of the box (Figure 7). It provides an open Security Service Provider Interface (SSPI) allowing custom-built or third party security solutions to seamlessly plug-in and provide extended security services without the need to include any security-specific or integration code into BEA WebLogic applica-
20 23 BEA White Paper — BEA WebLogic Server 8.1 Overview
tions. This way a company has the ability to create its own custom security model by exercising one or more of these options: • Deploy BEA WebLogic Server’s out-of-the-box security service providers • Develop a custom implementation of the SSPI • Use leading third-party security vendors whose products implement the SSPI
Figure 7 – BEA WebLogic Security Framework, with SSPI and built-in Service Providers.
Leading third-party security vendors have developed solutions integrated with BEA WebLogic Server that facilitate the incorporation of applications deployed on BEA WebLogic Server with enterprise-wide security management systems. Refer to the Security Center at www.bea.com/products/security for information about these partner products. With BEA WebLogic Security framework, business application developers can focus on what they do the best – implementing their enterprise’s core business functionality. They don’t have to include security code in their applications as the infrastructure provides these services to them. On the other hand, the security administrators can focus on business aspects of their application’s security, and configure security policies and user credentials through a convenient administration interface without any need for extra development or application’s downtime.
BEA White Paper — BEA WebLogic Server 8.1 Overview
24 21
Some of the major features of the BEA WebLogic Security Framework are: • Authentication determines the identity of a user—a person, an automated process, or other application—by username and password combination or digital certificate, and denies access to unwanted intruders. • Authorization specifies the application functions, services, and data resources that should be exposed to each authenticated user. • Encryption ensures privacy of communications and data transferred over a network. • Auditing provides facilities for logging all the security-related activities, like user log-on, or secured resource access attempts. • Pluggable security framework enables third-party security solutions integration allowing BEA WebLogic Server applications to leverage the full scope of functionality offered by the “best of breed” security solutions available on the market. • User and group definition provides facilities for defining application users and for combining authorized users into groups in which all members of the group share the same permissions for accessing application functions and services. • Built-in security data store retains the role, profile, and entitlement data, and is built on a highly optimized LDAP directory. • Security policy definition provides a framework and a GUI tool for configuring and maintaining dynamic, rules-based, security access criteria for a specific role and/or group of users for a set of secured resources. Entitlement rules can be based on an extensible list of operations and parameters— such as time, identity, user profiles, and invocation parameter values—and are dynamically calculated and validated at runtime. • Single Sign-On is automatically available to BEA WebLogic Server applications without any additional programming. Users do not have to re-authenticate within the boundaries of BEA WebLogic Server application. And, BEA WebLogic Server can participate in other SSO solutions with its Perimeter Authentication. As a result, applications running on BEA WebLogic Server are always “built secure”, with their business logic free from security code, with powerful and flexible administration, and simplified integration with other security products. This decreases time to market during the development phase, and lowers the total cost of ownership in production.
25 BEA White Paper — BEA WebLogic Server 8.1 Overview 22
Administration and Management By delivering powerful, easy to use, enterprise-class management and administration services and tools BEA WebLogic Server gives organizations the confidence of knowing that they can deploy mission critical projects and meet demanding service quality level. BEA WebLogic Server administration and management framework covers the entire application life cycle, from development and QA, through deployment and configuration, to monitoring production operations. Out of the box, all the essential functions are included: • Application Server Configuration Management—for setting up and managing the application environment and system resources • Application Deployment Management—for packaging and deployment of applications, and managing multiple applications in a domain • Monitoring, Fault Isolation, and Diagnostic—for test and production time monitoring and reporting to understand and optimise application performance, and diagnose problems at development, testing, and production time Configuration settings are stored in XML files that are “read-in” when the server starts up and is being initialized. For a clustered deployment, BEA WebLogic Server supports a centralized administration server that contains universal configuration settings that all other managed servers in the cluster share (as shown in Figure 8). An administrator can also control each individual server in a cluster without affecting the other servers.
Figure 8 – BEA WebLogic Server Administration Service in which the Administration Server is managing a single server 1 and a cluster consisting of servers 2 and 3.
BEA White Paper — BEA WebLogic Server 8.1 Overview
23 26
BEA WebLogic Server Administration and Management service can automatically detect and restart failed servers, and monitor the health of running servers in a cluster. This feature also enables the application to automatically monitor not just “life,” but also the “quality of life” of its servers. Additionally, a server can be suspended and removed from a cluster without disrupting clients. BEA WebLogic Server administration and management framework is built on an implementation of the Java Management Extension (JMX) standard from Sun Microsystems, an important specification for integrating systems management software with application servers. JMX provides flexible, “on-the-fly” monitoring and management of the application server by encapsulating configuration settings into Management Beans (Mbeans). These Mbeans hold the information about the resources that they manage, and through them a user can view the resource and manipulate their properties. An example would be an Mbean that provides the status for a database connection pool, or an Mbean that was deployed with and allows management of an EJB. Due to extensibility of JMX, customers can build their own MBeans to monitor specific parameters of application server or custom applications. BEA WebLogic Server also implements the Simple Network Management Protocol (SNMP), another industry-standard protocol for performing system management. SNMP enables integration of BEA WebLogic Server into an organization’s existing SNMP-compliant, enterprise-wide management console implemented by BEA partners’ products like HP OpenView or CA Unicenter. BEA WebLogic Server provides the following major facilities to achieve most administration and management goals: • Graphical Administration and Management Interface – visual, easy to use Web or desktop-based GUI tools for packaging and deployment of applications, configuring server and application environment, and accessing most of the server, environment, and application configurational and runtime information; • Command-line Interface – a simpler, yet very powerful way to access BEA WebLogic Server management subsystem from a command line, with a possibility of single command or a batch modes; • Programmatic Interface – an open API that provides access to all management functions of BEA WebLogic Server from custom applications, and allows extending the existing BEA WebLogic Server management capabilities beyond the built-in features BEA WebLogic Server’s Administration Console (shown in Figure 9) is an advanced Web-based user interface for configuring and monitoring WebLogic Server services and deployed applications. Administrators can start and stop servers, deploy and re-deploy applications and components, change parameters of deployed components (EJB, JDBC connection pools, JMS entities and others), capture statistics and audit logs, and monitor performance and resources.
27 BEA White Paper — BEA WebLogic Server 8.1 Overview 24
Figure 9 –BEA WebLogic Server 8.1 Administration Console and one of its monitoring views.
Other graphical tools available with BEA WebLogic Server out of the box are BEA Domain Configuration Wizard, and BEA WebLogic Builder. BEA Domain Configuration Wizard (shown on Figure 10) is a graphical tool that helps to configure domains, clusters, machines, node managers, and other entities that define the topology of the application environment. With BEA Domain Configuration Wizard, configuring the most complex application environment is easy and takes minutes. Not only it walks the user through the configuration process by collecting and validating the necessary information, but it also can create configuration templates that help replicating application environments across different systems.
BEA White Paper — BEA WebLogic Server 8.1 Overview
25 28
Figure 10 – BEA WebLogic Server Domain Configuration Wizard – one of the screens.
BEA WebLogic Builder (shown on Figure 11) is a J2EE application configuration, packaging, and deployment tool. It allows configuring J2EE and BEA WebLogic Server-specific application attributes while validating many of them against the running instance of BEA WebLogic Server (data sources, JMS destinations, and other), and then packaging and deploying the compiled and packaged application directly to the application environment of choice. By providing a graphical, tree-structured, intuitive and highly automated environment, BEA WebLogic Builder removes the need to edit multiple XML deployment descriptor files that contain application configuration, or do other manual tasks.
29 BEA White Paper — BEA WebLogic Server 8.1 Overview 26
Figure 11 – BEA WebLogic Builder – entering CMP EJB finder EJB QL statement.
BEA WebLogic Server command line interface provides full access to BEA WebLogic Server administration and management functionality. Available as a single command or batch modes, command line interface provides high degree of management automation. It is fully documented, complete with syntax of all commands, usage examples, and best practices. Programmatic interface allows accessing BEA WebLogic Server management and administration framework from custom applications. As a JMX-based fully documented API, it provides tremendous power for customers to extend the administration and management features of BEA WebLogic Server to their applications, and expose specific functions of their applications though BEA WebLogic Server graphical or command-line management interfaces. For example, custom applications can be exposed as a managed entity through BEA WebLogic Server Administration Console just like the native BEA WebLogic Server objects, with the specific new console pages designed according to the custom application’s specifications. Or, custom applications can monitor system resources or performance of the server (like memory, execution threads, or number of objects in pools) and adjust its behavior accordingly based on some custom algorithm.
BEA White Paper — BEA WebLogic Server 8.1 Overview
30 27
Management solution partners of BEA—including Wily Technology, Quest Software, BMC Software, Mercury Interactive, HP (OpenView), and Computer Associates (Unicenter)— all integrate with BEA WebLogic Server and provide focused tools needed to ensure peak performance and reliability of critical enterprise applications and processes. This extends the value of a customer’s BEA WebLogic Server environment through an effective, integrated management solution for cross-platform environments.
Transactions One of the most fundamental features of BEA WebLogic Server is transaction management. Transactions are a means to guarantee that database (or back-end) transactions are completed accurately and that they take on all the “ACID” properties of an enterprise transaction: • Atomicity – changes that a transaction makes to a database are made permanent, otherwise, all changes are rolled-back • Consistency – a successful transaction transforms a database from a previous valid state to a new valid state • Isolation – changes that a transaction makes to a database are not visible to other operations until the transaction completes its work • Durability – changes that a transaction makes to a database survive future system or media failures
BEA WebLogic Server protects the integrity of transactions by providing a complete infrastructure for ensuring that database updates are done accurately, even across a variety of heterogeneous components. If any one of the operations fails, the entire set of operations is rolled-back across the entire distributed application. In the event of a failure, the transaction recovery processing can be safely and reliably migrated to a working server. BEA WebLogic Server supports distributed transactions and the two-phase commit protocol. A distributed transaction is a transaction that updates multiple resource managers (such as databases) in a coordinated manner. In contrast, a local transaction begins and commits the transaction to a single resource manager that internally coordinates the transaction management on a single homogeneous system. The two-phase commit protocol is a method of coordinating a single transaction across two or more distributed systems with two or more transaction resource managers. It guarantees data integrity by ensuring that transactional updates are committed in all of the participating databases. If not, they are fully rolledback out of all the databases, reverting to the state prior to the start of the transaction. In other words, either all the participating databases are updated, or none of them are updated. BEA WebLogic Server provides full support for transactions that spawn across EJB, JMS, J2CA, JDBC, and other XA-compliant components, and implements Java Transaction API (JTA) to support its powerful transaction infrastructure. Transactions can be entirely managed by BEA WebLogic Server or can
28 31 BEA White Paper — BEA WebLogic Server 8.1 Overview
be initiated and maintained by the user code using JTA API directly. The transactional attributes of various components of the application are configured and monitored via the BEA WebLogic Server Administration Console.
Example of a BEA WebLogic Server Solution Worldwide Enterprises, Inc. is a hypothetical company that has taken advantage of BEA WebLogic Server to streamline its business operations. Worldwide Enterprises determined that one area in which it could reduce costs and increase productivity was in the ordering of office supplies, computer hardware and software, and other types of materials for the daily operations of the company. Ordering of supplies was handled manually, or on existing Enterprise Resource Planning (ERP) systems with separate installations in company locations throughout the world. Data was obtained from multiple databases through proprietary front-end software, often in the form of printed reports. Very little data was shared over the Internet. Employees communicated by email and every department had its own Web site structure with isolated processes for posting information. Dynamic Web pages were created through a variety of CGI scripts, and employees submitted requests for supplies through email, phone calls, or a variety of CGI-based online forms that submitted email to administration staff. Worldwide Enterprises wanted all of its corporate locations to use one centralized system for the purchasing of goods, and to automate the process with a self-service application for its employees worldwide. The company also needed this application to connect seamlessly to its many outside suppliers of equipment and office goods. Worldwide Enterprises’ focus was less on finding new suppliers, than on increasing the effectiveness of its business relationships with its current suppliers. Worldwide Enterprises’ key initiatives are to: • Streamline business by automating the purchasing of goods. Deploy a system that allows employees to order office supplies, computer hardware and software, and other types of materials for the daily operations of the company online, using a convenient browser-based user interface and the existing intranet infrastructure. • Leverage and reuse existing assets. An existing ERP system that manages employee information should be reused in this new solution as a cost and timesaving measure. However, the infrastructure must be in place for the future development of a single integrated solution covering all aspects of Worldwide Enterprises’ operations. • Engage multiple departments and external B2B collaborators. Worldwide Enterprises is a very large corporation with locations throughout the world. All locations should use one centralized application for ease of maintenance, while given an option to develop some specific, location-based functionality and interfaces, like local languages, currencies and taxes. Also, their suppliers, who might all use different systems, should be able to connect to Worldwide Enterprises’ system.
29 32 BEA White Paper — BEA WebLogic Server 8.1 Overview
Though the full solution for Worldwide Enterprises is the comprehensive functionality of the BEA WebLogic Enterprise Platform, the role played by BEA WebLogic Server (Fig 12) is crucial: • The new core system with a Web-based front-end is deployed on BEA WebLogic Server. • It provides the infrastructure for the IT developers to focus on developing the business functionality of the new application rather than spending their time and effort developing the lower-level infrastructure services needed to support it. • It provides the flexibility to customize the features of the new application. • Its distributed, Web-based Management Console provides convenient administration and management inter face. • Its implementation of the J2CA standard facilitates installation of an adapter to interface between the new application and the legacy ERP systems. • Its support for Web Services can be leveraged while building a relationship infrastructure between the departments, or other business entities, like partners or suppliers. • It provides a solid and well-integrated foundation for other functionality available within a framework of the extended BEA WebLogic Enterprise Platform—portal, personalization services, commerce, business process management, and integration services.
Figure 12 – Worldwide Enterprises’ end solution.
33 BEA White Paper — BEA WebLogic Server 8.1 Overview 30
The solution adheres to the separation of presentation, business logic, and data, as supported by BEA WebLogic Server architecture:
Presentation Layer • Dynamic Web pages with search forms to look up availability supplies • Online ordering form for submitting orders to department managers for approval • Online approval form for managers to submit approved orders to appropriate suppliers Business Layer
• Send search requests to various supplier catalog databases and retrieve search results • Submit requests to verify employee IDs, department codes, and funding authorizations • Submit approved requests to the appropriate supplier’s order processing system • Fulfill the requests by updating employee data, inventory, and other data processed by the application
Back-End Layer
• Communicate with the ERP system to retrieve employee records and accounting data for the corporation • Provide connection with database and logging facilities • Facilitate synchronous and asynchronous communication between the system’s components and with other applications
BEA White Paper — BEA WebLogic Server 8.1 Overview
31 34
Building the User Interface Worldwide Enterprises’ Web developers created online forms for selecting a supplier and searching that supplier’s catalog, for submitting an order for selected supplies, and other intermediate functions, like user logon and operation confirmations (as shown in Figure 13). They decided to implement this storyboard using Servlets and JSPs together in a Model-View-Controller Paradigm (as shown in Figure 14).
Figure 13 – The storyboard for Worldwide Enterprises’ user interface.
The business layer built using EJBs is the model containing the business processes and business data. The Servlet is the controller orchestrating the process and routing as necessary between the various layers. The JSPs are the view rendering the HTML forms and pages.
35 BEA White Paper — BEA WebLogic Server 8.1 Overview 32
Two important features of a standards-based solution were used: • The developers installed additional Java packages to take advantage of new capabilities for JSP sites to communicate with Servlets. The availability of these packages saved uncountable hours of independent coding. • The developers created their own JSP tag libraries to specify elements and actions of the business process keyed to the interface with the underlying purchasing application.
Figure 14 – Achieving a presentation layer’s business goals using BEA WebLogic Server.
Both the JSPs and Servlets reside on BEA WebLogic Server’s built-in Web server. The Servlet code contained standardized calls to the underlying business logic, controlled by the tag libraries.
BEA White Paper — BEA WebLogic Server 8.1 Overview
33 36
Building the Business Logic In the Worldwide Enterprises’ system, the business layer contains the logic for receiving and fulfilling purchase orders from the employees. To illustrate how to build a business layer using BEA WebLogic Server, refer to Figure 15 below which shows the J2EE components involved in facilitating the ordering of the goods.
Figure 15 – Worldwide Enterprises’ EJB object model.
34 37 BEA White Paper — BEA WebLogic Server 8.1 Overview
The beans in this system are defined as: The Purchasing Engine
A session bean that performs a business process: creating, removing, and performing approval routing of purchase orders. It connects with entity beans to achieve this goal, and uses the JavaMail API to send and receive confirmation emails. It might also collaborate with business partners to fulfill orders using Web Services technologies.
The Purchase Order
An entity bean that maps to a database, such as an Oracle or Microsoft SQL Server relational database, and models the actual order for goods from a vendor. The Purchase Order has an “N to 1” relationship with the Employee bean, meaning there are N Purchase Orders for every Employee. BEA WebLogic Server automatically manages this relationship, dealing with complex issues such as cardinality, directionality, referential integrity, and cascading deletes.
The Employee
An entity bean that maps to a legacy store, such as an ERP system or an LDAP server, where the employee records are stored.
The Logging Engine
A message-driven bean that receives messages using the Java Message Service (JMS), and performs logging in a manner that is consistent and easily audited. Messages could come from beans in the system or from external systems, such as MSMQ or MQSeries systems.
The Catalog Engine
A high-performance session bean that understands how to query databases for product data. It goes directly to the database rather than using entity beans.
BEA White Paper — BEA WebLogic Server 8.1 Overview
35 38
Integrating the Back-End In the back-end layer, the J2EE Connector Architecture is used to communicate with the existing ERP system that handles all of the employee’s records for the corporation. It accesses accounting data from the ERP system, such as if the employee’s department has funding for their order, and accounting codes against which to charge the order.
Benefiting from Web Services Worldwide Enterprises and its business partners expose various product data catalog functions as Web Services (see Figure 5). For the Worldwide Enterprises catalog and order engine, BEA WebLogic Server generates the SOAP stubs, WSDL, and the remote client to be used by business partners as part of deploying the application. Once these Web Services are in place, Worldwide Enterprises employees can use the supply-ordering Web site to access product data from Worldwide Enterprises business partners over the Internet. The interface is seamless, and the fact that the product data that displayed on a shopping cart page is actually being retrieved across firewalls from internal databases running on disparate systems within a number of different companies is completely transparent to the employees.
Conclusion BEA WebLogic Server exemplifies the comprehensive nature of the functions provided by application servers—the foundation for technologies to leverage existing systems and keep pace with evolving new Internet services. The vision of application infrastructure continues to be the development of a universal interface to which any system can connect and communicate with any other system. BEA WebLogic Server provides a managed environment for this development. From existing EIS’ and databases, to Web servers, enterprise portals, security services, and storage and integration applications, BEA WebLogic Server is the foundation for building an infrastructure of shared, reusable, component-based software, enterprise application integration, dynamic supply chain integration, and distributed Web Services. BEA WebLogic Server continues to be the essential bridge between the old and the new, preserving and evolving to meet the needs of the enterprise.
39 BEA White Paper — BEA WebLogic Server 8.1 Overview 36
Resources Resource
Description
Free Evaluation Software
commerce.bea.com
Easy Start for BEA WebLogic Starter
www.bea.com/products/weblogic/server/easystart.shtml/
J2EE Design Considerations for BEA WebLogic Server – a BEA White Paper
A reference document for anyone involved in the design and architecture of J2EE-based applications using BEA WebLogic Server
BEA WebLogic Server Clustering –
Provides a detailed overview of the clustering technology used
a BEA White Paper
by BEA WebLogic Server, and introduces the concepts of load balancing, scalability, state replication, and other features
Developing Web Services on the J2EE
Presents a conceptual overview of various Web Services
Platform – a BEA White Paper
standards and how they are used by BEA WebLogic Server
An introduction to BEA WebLogic Security – a BEA White Paper
Provides business and high technical level introduction into the new security framework of BEA WebLogic Server
\samples folder of the BEA WebLogic Server installation
Upon downloading and installing BEA WebLogic Server, you can browse through all sample applications in this folder
www.bea.com
The primary location for BEA WebLogic Server and other BEA product information, including white papers, data sheets, product briefs, and other collateral
e-docs.bea.com
This Web site contains all of the online documentation for BEA WebLogic Server; it’s a great place to start to build or deploy a BEA WebLogic Server application
newsgroups.bea.com
A place for you to ask and answer questions about BEA WebLogic Server
AskBEA
Informational Q & A service available at BEA Web site
www.componentsource.com
A market for reusable software components
EvalNet
Support available for users while evaluating BEA products
dev2dev.bea.com
BEA’s developer portal, where you can find a number of useful resources, such as tech talks, FAQs, tools, and much more
BEA White Paper — BEA WebLogic Server 8.1 Overview
37 40
About BEA BEA Systems, Inc. (Nasdaq: BEAS) is the world’s leading application infrastructure software company, providing the enterprise software foundation for more than 15,000 customers around the world, including the majority of the Fortune Global 500. BEA and its WebLogic® brand are among the most trusted names in business. Headquartered in San Jose, Calif., BEA has 77 offices in 31 countries and is on the Web at www.bea.com.
BEA Systems, Inc. 2315 North First Street San Jose, CA 95131 U.S.A. Telephone: +1.408.570.8000 Facsimile: +1.408.570.8901 www.bea.com
CWP0309E0202-3A