1 Overview of WebLogic Web Services

This chapter provides an overview of WebLogic Web services.

This chapter includes the following sections:

What Are Web Services?

A Web service is a set of functions packaged into a single application that is available to other systems on a network. The network can be a corporate intranet or the Internet. Because Web services rely on basic, standard technologies which most systems provide, they are an excellent means for connecting distributed systems together. They can be shared by and used as a component of distributed Web-based applications. Other systems, such as customer relationship management systems, order-processing systems, and other existing back-end applications, can call a Web service function to request data or perform an operation.

Traditionally, software application architecture tended to fall into two categories: monolithic systems such as those that ran on mainframes or client-server applications running on desktops. Although these architectures worked well for the purpose the applications were built to address, they were closed and their functionality could not be incorporated easily into new applications.

As a result, the software industry has evolved toward loosely coupled service-oriented applications that interact dynamically over the Web. The applications break down the larger software system into smaller modular components, or shared services. These services can reside on different computers and can be implemented by vastly different technologies, but they are packaged and accessible using standard Web protocols, such as XML and HTTP, thus making them easily accessible by any user on the Web.

This concept of services is not new—RMI, COM, and CORBA are all service-oriented technologies. However, applications based on these technologies required them to use that particular technology, often from a particular vendor. This requirement typically hinders widespread integration of the application's functionality into other services on the network. To solve this problem, Web services are defined to share the following properties that make them easily accessible from heterogeneous environments:

  • Web services are accessed using widely supported Web protocols such as HTTP.

  • Web services describe themselves using an XML-based description language.

  • Web services communicate with clients (both end-user applications or other Web services) through simple XML messages that can be produced or parsed by virtually any programming environment or even by a person, if necessary.

Why Use Web Services?

Major benefits of Web services include:

  • Interoperability among distributed applications that span diverse hardware and software platforms

  • Easy, widespread access to applications through firewalls using Web protocols

  • A cross-platform, cross-language data model (XML) that facilitates developing heterogeneous distributed applications

Because you access Web services using standard Web protocols such as XML and HTTP, the diverse and heterogeneous applications on the Web (which typically already understand XML and HTTP) can automatically access Web services and communicate with each other.

These different systems can be Microsoft SOAP ToolKit clients, Java Platform, Enterprise Edition (Java EE) Version 5 applications, legacy applications, and so on. They are written in Java, C++, Perl, and other programming languages. Application interoperability is the goal of Web services and depends upon the service provider's adherence to published industry standards.

Web Service Types

This release of WebLogic Server supports the following Web service types:

  • Java API for XML-Based Web services (JAX-WS) 2.2 Web services, described at http://jcp.org/aboutJava/communityprocess/mrel/jsr224/index2.html. The JAX-WS implementation in Oracle WebLogic Server is extended from the JAX-WS Reference Implementation (RI) developed by the Glassfish Community (see https://jax-ws.dev.java.net/)

  • Java API for RESTful Web Services (JAX-RS) 1.1 Web services. WebLogic Server supports Jersey 1.9 JAX-RS Reference Implementation (RI), which is a production quality implementation of the JSR-311 JAX-RS 1.1 specification, defined at: http://jcp.org/en/jsr/summary?id=311.

  • Java API for XML-Based RPC 1.1 (JAX-RPC) Web services, described at https://jax-rpc.dev.java.net/. JAX-RPC is considered legacy and the specification is no longer evolving. JAX-RPC defines APIs and conventions for supporting XML Web services in the Java Platform as well support for the WS-I Basic Profile to improve interoperability between JAX-RPC implementations.

JAX-WS and JAX-RS are the preferred Web service types. For more information about deciding which type to develop, see How Do I Choose Between JAX-WS and JAX-RS?.

How Do I Choose Between JAX-WS and JAX-RS?

The following table provides guidelines to consider when choosing between JAX-WS and JAX-RS. See also Chapter 4, "Features and Standards Supported by WebLogic Web Services" for a comparison of the standards that are supported for JAX-WS and JAX-RS.

Table 1-1 How to Choose Between JAX-WS and JAX-RPC

Use . . . In the following scenarios . . .

JAX-WS

Use JAX-WS in enterprise application integration scenarios that:

  • Have advanced quality of service (QoS) requirements.

  • Need to call methods remotely in Java components, such as Plain Old Java Objects (POJOs) or Enterprise JavaBeans (EJBs).

JAX-WS interoperates with other standards-based SOAP Web services from Oracle or other SOAP Web service vendors.

JAX-WS supports the full set of WS-* protocols that provide standards for security, reliability, and so on, and better interoperates with other clients and servers that conform to the WS-* protocols.

JAX-RS

Use JAX-RS for integrating services over the Web when the constraints of the RESTful style are desirable. Such as separate client-server architecture, uniform interface, and so on. For a complete list of constraints of the REST architectural style, see "Introduction to the REST Architectural Style" in Developing RESTful Web Services.


Roadmap for Implementing WebLogic Web Services

The following table provides a roadmap of common tasks for creating, deploying, and invoking WebLogic Web services.

Note:

The JAX-WS implementation in Oracle WebLogic Server is extended from the JAX-WS Reference Implementation (RI) developed by the Glassfish Community (see https://jax-ws.dev.java.net/). All features defined in the JAX-WS specification (JSR-224) are fully supported by Oracle WebLogic Server.

The JAX-WS RI also contains a variety of extensions, provided by Glassfish contributors. Unless specifically documented, JAX-WS RI extensions are not supported for use in Oracle WebLogic Server.

New and Changed Features in this Release

For a comprehensive listing of the new WebLogic Server Web service features introduced in this release, see "Web Services" in What's New in Oracle WebLogic Server.