1 Introduction

This chapter provides an overview of Oracle WebLogic Server features and describes how you can use them to create enterprise ready-solutions. This chapter includes the following sections:

Product Overview

Oracle WebLogic Server is a scalable, enterprise-ready Java Platform, Enterprise Edition (Java EE) application server. The WebLogic Server infrastructure supports the deployment of many types of distributed applications and is an ideal foundation for building applications based on Service Oriented Architectures (SOA). SOA is a design methodology aimed at maximizing the reuse of application services. See http://www.oracle.com/technology/tech/soa/index.html.

The WebLogic Server complete implementation of the Java EE 6.0 specification provides a standard set of APIs for creating distributed Java applications that can access a wide variety of services, such as databases, messaging services, and connections to external enterprise systems. End-user clients access these applications using Web browser clients or Java clients. It also supports the Spring Framework, a programming model for Java applications which provides an alternative to aspects of the Java EE model. See Programming Models.

In addition to the Java EE implementation, WebLogic Server enables enterprises to deploy mission-critical applications in a robust, secure, highly available, and scalable environment. These features allow enterprises to configure clusters of WebLogic Server instances to distribute load, and provide extra capacity in case of hardware or other failures. New diagnostic tools allow system administrators to monitor and tune the performance of deployed applications and the WebLogic Server environment itself. You can also configure WebLogic Server to monitor and tune application throughput automatically without human intervention. Extensive security features protect access to services, keep enterprise data secure, and prevent malicious attacks.

Figure 1-1 shows how WebLogic Server fits into the overall Oracle Fusion Middleware stack.

Figure 1-1 Oracle Fusion Middleware Overview

Surrounding text describes Figure 1-1 .

Programming Models

WebLogic Server provides complete support for the Java EE 6.0 specification at http://www.oracle.com/technetwork/java/javaee/tech/index-jsp-142185.html. For more information, see the following WebLogic Server programming guides:

  • Web Applications provide the basic Java EE mechanism for deployment of dynamic Web pages based on the Java EE standards of servlets and JavaServer Pages (JSP). Web applications are also used to serve static Web content such as HTML pages and image files.

  • Web Services provide a shared set of functions that are available to other systems on a network and can be used as a component of distributed Web-based applications.

  • XML capabilities include data exchange, and a means to store content independent of its presentation, and more.

  • Java Messaging Service (JMS) enables applications to communicate with one another through the exchange of messages. A message is a request, report, and/or event that contains information needed to coordinate communication between different applications.

  • Java Database Connectivity (JDBC) provides pooled access to DBMS resources.

  • Resource Adapters provide connectivity to Enterprise Information Systems (EISes).

  • Enterprise JavaBeans (EJB) provide Java objects to encapsulate data and business logic.

  • Remote Method Invocation (RMI) is the Java standard for distributed object computing, allowing applications to invoke methods on a remote object locally.

  • Security APIs allow you to integrate authentication and authorization into your Java EE applications. You can also use the Security Provider APIs to create your own custom security providers.

  • WebLogic Tuxedo Connectivity (WTC) provides interoperability between WebLogic Server applications and Tuxedo services. WTC allows WebLogic Server clients to invoke Tuxedo services and Tuxedo clients to invoke EJBs in response to a service request.

  • Overview of WebLogic Server Application Development describes developer tools and best practices for coding WebLogic Server applications.

In addition, WebLogic Server supports applications developed using the Spring Framework, an open source application framework for the Java platform. Spring Support in Oracle WebLogic Server provides an overview of Spring and WebLogic Server support for developing and deploying Spring applications. It also gives examples of how to write Spring applications for WebLogic Server. See also SpringSource at http://www.springsource.org/.

High Availability

The following WebLogic Server features and tools support the deployment of highly-available and scalable applications:

  • WebLogic Server clusters provide scalability and reliability for your applications by distributing the work load among multiple instances of WebLogic Server. Incoming requests can be routed to a WebLogic Server instance in the cluster based on the volume of work being processed. In case of hardware or other failures, session state is available to other cluster nodes that can resume the work of the failed node. In addition, you can implement clusters so that services may be hosted on a single machine with options to migrate the service to another node in the event of failure.

    In addition to replicating HTTP session state across servers within a cluster, WebLogic Server can also replicate HTTP session state across multiple clusters, thereby expanding availability and fault tolerance in multiple geographic regions, power grids, and Internet service providers.

  • Work Managers prioritize work based on rules you define and by monitoring actual run time performance statistics. This information is then used to optimize the performance of your application. Work Mangers may be applied globally to a WebLogic Server domain or to a specific application or component.

  • Overload protection gives WebLogic Server the ability to detect, avoid, and recover from overload conditions.

  • Network channels facilitate the effective use of network resources by segregating network traffic into channels based on the type of traffic.

  • WebLogic Server persistent store is a built-in, high-performance storage solution for WebLogic Server subsystems and services that require persistence. For example, it can store persistent JMS messages or temporarily store messages sent using the Store-and-Forward feature. The persistent store supports persistence to a file-based store or to a JDBC-enabled database.

  • Store-and-forward services enable WebLogic Server to deliver messages reliably between applications that are distributed across WebLogic Server instances. If the message destination is not available at the moment the messages are sent, either because of network problems or system failures, then the messages are saved on a local server instance and are forwarded to the remote destination once it becomes available.

  • Enterprise-ready deployment tools facilitate deployment and migration of applications from the development phase to a production environment.

  • Production redeployment enables enterprises to deploy a new version of their application without interrupting work in progress on the older version.

Diagnostic Framework

The WebLogic Diagnostic Framework is a monitoring and diagnostic service that lets you create, collect, analyze, archive, and access diagnostic data generated by a running server and its deployed applications. This data provides insight into the runtime performance of WebLogic Server instances and deployed applications and lets you isolate and diagnose faults and performance bottlenecks when they occur.

Security

The WebLogic Server security architecture provides a comprehensive, flexible security infrastructure designed to address the security challenges of making applications available on the Web. WebLogic security can be used standalone to secure WebLogic Server applications or as part of an enterprise-wide, security management system that represents a best-in-breed security management solution. See "Overview of the WebLogic Security Service."

Client Options

In addition to support for browser-based Web application clients, WebLogic Server also supports a variety of client types for creating rich GUI applications or simple command-line utilities. These client types include: RMI-IIOP, T3, Java SE clients, Java EE thin clients, CORBA/IDL clients, and C++ clients that communicate with BEA Tuxedo. See Programming Stand-alone Clients for Oracle WebLogic Server.

Integration with Oracle WebLogic Suite

WebLogic Server provides the core application server runtime within the integrated Oracle WebLogic Suite Java infrastructure. This integrated infrastructure enhances application performance, improves application availability, and enables predictable and reliable application scalability with high quality of service. WebLogic Suite includes highly productive development tools based on Oracle JDeveloper and Oracle Enterprise pack for Eclipse, and fully integrated management for large-scale administration and operations with Oracle Enterprise Manager. Taken together, the development, runtime and management capabilities of WebLogic Suite provide the foundation for implementing mission-critical enterprise applications.

WebLogic Suite contains the following server-side components:

  • Oracle WebLogic Server

  • Oracle JRockit

    The Oracle JRockit JVM is a high performance JVM optimized for Intel architectures and developed to ensure reliability, scalability, manageability, and flexibility for Java applications. Oracle JRockit JVM optimizes performance of your Java applications on either the Windows or Linux operating system platforms with either 32-bit or 64-bit architectures. Oracle JRockit JVM is included with your WebLogic Server installation. See "Oracle JRockit JVM."

  • Oracle Coherence

    Oracle Coherence is a component of Oracle Fusion Middleware that enables organizations to predictably scale mission-critical applications by providing fast and reliable access to frequently used data. By automatically and dynamically partitioning data in memory across multiple servers, Oracle Coherence enables continuous data availability and transactional integrity, even in the event of a server failure. As a shared infrastructure, Oracle Coherence combines data locality with local processing power to perform real-time data analysis, in-memory grid computations, and parallel transaction and event processing. Oracle Coherence comes in three editions.

    For more information about Oracle Coherence see: http://www.oracle.com/technology/products/coherence/index.html

  • Oracle TopLink

    Oracle TopLink builds high-performance applications that store persistent object-oriented data in a relational database. It successfully transforms object-oriented data into either relational data or Extensible Markup Language (XML) elements.

    Oracle TopLink is an advanced, object-persistence and object-transformation framework that provides development tools and run time capabilities that reduce development and maintenance efforts, and increase enterprise application functionality.

    Oracle TopLink includes support for EJB 3.0 in Java EE and Java SE environments, as well as support for EJB 2.n container-managed persistence (CMP). You can integrate Oracle TopLink with a variety of application servers, including Oracle WebLogic Server, OC4J, SunAS, JBoss, and IBM WebSphere.

Integration with Other Systems

WebLogic Server provides a variety of tools to integrate your applications with disparate systems. These tools include Web Services, Resource Adapters, the JMS .NET client, the JMS C client, tooling for integrating JMS providers options, Advanced Queuing, and RMI.

Integration with Web Servers

Plug-ins are provided with your WebLogic Server installation that allow WebLogic Server to operate with Web servers from Apache and Microsoft. Typically, these Web servers serve static HTML content while requests for dynamic Web content such as JSPs are directed to the WebLogic Server environment. See Using Web Server Plug-Ins with WebLogic Server.

WebLogic Server API Examples and Sample Application

Code examples demonstrating Java EE APIs and other WebLogic Server features are provided with your WebLogic Server installation. To work with these examples, select the custom installation option when installing WebLogic Server, and select to install the Server Examples. To access the code examples, start the WebLogic Server Examples domain using the WebLogic Examples Server entry in the Windows Start menu, or launch the startWebLogicEx.cmd or startWebLogicEx.sh script from WL_HOME/samples/domains/wl_server, where WL_HOME is the directory where you installed WebLogic Server. As they become available, you can also download additional examples.

Along with the code examples, two versions of a complete sample application, called Avitek Medical Records (or MedRec), are installed when you install the examples, as described above.

The original MedRec (which was included in previous versions of WebLogic Server) is a WebLogic Server sample application suite that concisely demonstrates all aspects of the Java EE platform. MedRec is designed as an educational tool for all levels of Java EE developers. It showcases the use of each Java EE component and illustrates best practice design patterns for component interaction and client development. MedRec also illustrates best practices for developing applications on WebLogic Server.

The Spring version of MedRec, called MedRec-Spring is MedRec recast using the Spring Framework. If you are developing Spring applications on WebLogic Server, you should review the MedRec-Spring sample application. In order to illustrate how Spring can take advantage of the enterprise features of WebLogic Server, MedRec was rearchitected to replace core Java EE components with their Spring counterparts. The functionality in the original version of MedRec is reimplemented using Spring in MedRec-Spring. Refer to the MedRec-Spring sample for details.

To launch MedRec, select Start Medical Records Server from the Windows Start menu or run startWebLogic.cmd or startWebLogic.sh script from WL_HOME/samples/domains/medrec, where WL_HOME is the directory where you installed WebLogic Server.

To launch MedRec-Spring, select Start Medical Records Server (Spring Version) from the Windows Start menu or run the startWebLogic.cmd or startWebLogic.sh script from WL_HOME/samples/domains/medrec-spring, where WL_HOME is the directory where you installed WebLogic Server.

Upgrade

Tools and documentation are provided to help you migrate applications implemented on earlier versions of WebLogic Server to the current WebLogic Server environment. See the Upgrade Guide for Oracle WebLogic Server.