1 Web Services Overview
This chapter provides introductory information about the Oracle Communications MetaSolv Solution (MSS) Web Services.
Overview
Web services support interoperable system-to-system interaction over a network. They are APIs that can be accessed over a network and run on a remote system hosting the requested services. Web services are described by the Web Service Definition Language (WSDL).
This document describes how to integrate MetaSolv Solution with other Oracle products or with external applications using web services. In this book, you can find migration information, deployment information, and a reference chapter for each web service.
About the MSS Web Services
The MSS Web Services include a group of web services that address customer, event, inventory, order, activation, and service order activation functionality. MSS Web Services replace the existing MSS XML API functionality that is deprecated. See "Migrating XML APIs to Web Services" for more information about migrating XML API's to the web services.
Customer Web Service
You can use the Customer Web Service operations to retrieve, import, and delete customer account information. The customer account contains customer information such as address, service items, along with customer service sales information. The customer account information also helps you keep track of sales performance by individual or product type. Refer to "Customer Web Service Reference" for more information about the Customer Web Service set of operations.
Event Web Service
You can use Event Web Service operations to retrieve and update gateway event details. Operations are separated for inbound and outbound gateway events. You can also use Event Web Service operations to update external system information, such as an external name and external key values. Refer to "Event Web Service Reference" for more information about the Event Web Service set of operations.
Inventory Web Service
You can use Inventory Web Service operations to retrieve, create, and update the Inventory details. For example, you can use the Inventory Web Service for the following type of operations:
-
Get DLR information
-
Create, update, and retrieve network locations
-
Create, update and retrieve end user locations
-
New inventory creation
-
Query inventory details
Refer to "Inventory Web Service Reference" for more information about the Inventory Web Service set of operations.
Order Web Service
You can use the Order Web Service operations to perform operations on orders, provisioning plans, and tasks. Order Web Service contains the objects necessary to generate information about all types of service requests, such as PSR and ISR. It also contains related provisioning objects that support work management. Refer to "Order Web Service Reference" for more information about the Order Web Service set of operations.
Activation Web Service
You can use the Activation Web Service operations to get the activation details. The Activation Web Service is called to get the activation details which are used for on-field activation. Refer to "Activation Web Service Reference" for more information about the Activation Web Service set of operations.
Service Order Activation (SOA) Web Service
You can use the SOA Web Service to enable an external system to activate services for previously placed orders in MetaSolv Solution. You can use the SOA Web Service operations for the following operations:
-
Create a service order activation message
-
Get service order activation information and defaults
-
Get service order activation telephone numbers for an order
-
Set a telephone number for service activation order completion
Refer to "SOA Web Service Reference" for more information about the SOA Web Service set of operations.
About MSS Web Service Standards and Specifications
Table 1-1 lists the standards and specifications that apply to the MSS Web Services.
Table 1-1 MSS Web Service Standards and Specifications
Standard and Specification | Version Release | Description | Compliance |
---|---|---|---|
JAXB |
2.2 |
Java Architecture for XML Binding |
Compliant. |
JAX-WS |
2.2 |
Java API for XML-based Web Services |
Compliant. |
SOAP |
1.2 |
Simple Object Access Protocol (Also referred to as Service Orientated Architecture Protocol.) |
Compliant. Uses XML/SOAP/HTTP and XML/SOAP/JMS. |
Transport Protocols |
HTTP 1.0, HTTPS 1.0 (HTTP 1.1), JMS 1.1 |
NA |
NA |
WSDL |
1.1 |
Web Service Definition Language |
Compliant. |
WS-Security |
1.1 |
Web Service Security |
Compliant. |
WS-Policy |
1.2 |
Web Service Policy Framework |
Compliant. |
XML |
1.1 |
NA |
Compliant. Uses XML/SOAP/HTTP and XML/SOAP/JMS. |
For more information, refer to the information in the "Features and Standards Supported by WebLogic Web Services" chapter in the Oracle Fusion Middleware documentation Understanding WebLogic Web Services for Oracle WebLogic Server at this website:
https://docs.oracle.com/middleware/1221/wls/WSOVR/weblogic-web-service-stand.htm
About the MSS Web Services Framework
Figure 1-1 shows the path traveled by a call originating from the web service client.
The path of the web service includes:
-
Web service client
This client represents the web service user. Web service operations are called by sending SOAP messages over HTTP or HTTPS.
-
Web service module
This module represents all the sub-modules required for implementing a web service, for instance, the web service framework, the WSDL interfaces, and the WSDL implementations. The web service module is deployed as an EAR file.
See "About the MSS Web Service Module" for more information.
-
Business logic
The business logic includes all the MSS sub-modules required for implementing business functionality.
About the MSS Web Service Module
The web service module is installed as part of the MSS installation. All web services are included in the MSS_WebService.ear file. When the MSS installer deploys the EAR file, the following modules of the MSS Web Services are automatically deployed and ready to use:
-
Customer Web Service
-
Event Web Service
-
Inventory Web Service
-
Order Web Service
-
Activation Web Service
-
Service Order Activation (SOA) Web Service
About Transaction Handling
For transactions, the MSS Web Services use Web Services Atomic Transaction (WS-AtomicTransaction). WS-AtomicTransaction is a protocol for managing atomic transactions between distributed applications, transaction managers and resource managers. An atomic transaction is a single, irreducible component of a classic transaction, such as a create or update.
Options for Transaction Management
There are two options for transaction management. You can control the transaction with the client side code or have the web service create and handle the transaction. If the client side code controls the transaction, you pass in the user transaction details to the web service with the UserTransaction interface. If the web service receives a null UserTransaction, then MSS creates and handles its own transaction. When MSS creates its own transaction it performs the following:
-
Commit on a success
-
Rollback on a failure
About the UserTransaction Interface
The UserTransaction interface defines the methods that allow an application to explicitly manage transaction boundaries. The UserTransaction.begin() method starts a global transaction and associates the transaction with the calling thread. The transaction-to-thread association is managed transparently by the transaction manager.
The UserTransaction.begin() method also can throw a NotSupportedException when the calling thread is already associated with a transaction. The transaction manager implementation does not support nested transactions.
See the following website for more information on the UserTransaction interface:
About Exception Stacktraces
Exception stacktraces are available in the WebLogic server logs. The error messages are thrown by the operation when an exception occurs. This information is available in the serverName.mss.log file where serverName is the host name of the MSS installation. This file is located in the MSS log directory.
MSS throws exceptions of type WSException_Exception from the web services. You must handle these exceptions from the client side code.
Understanding How MSS Defines Web Services
Web services are defined by WAR, WSDL, and schema files. For each web service, there is a WAR file. Each WAR file includes a single WSDL file and numerous schema files. The WSDL files contain the actual web service definitions. The schema files includes definitions of specific elements, complex types, and simple types.
The following sections provide details information about these files.
About WAR and WSDL Files
The WAR files are in the root directory of the MSS_WebService.ear file. Within each WAR file, the WSDL file is located in the WEB-INF/wsdls directory. The schemas are also available in the mss_webservice_schemas.jar file. You find this JAR file as a deliverable with the MSS installer. Table 1-2 provides the WSDL and WAR file names for each web service:
Table 1-2 WAR and WSDL Files for each Web Service
Web Service | WAR File Name | WSDL File Name |
---|---|---|
Customer Web Service |
customer.war |
CustomerAPI.wsdl |
Event Web Service |
events.war |
EventsAPI.wsdl |
Inventory Web Service |
inventory.war |
InventoryAPI.wsdl |
Order Web Service |
order.war |
OrderAPI.wsdl |
Activation Web Service |
activation.war |
ServiceActivationAPI.wsdl |
Service Order Activation (SOA) Web Service |
soa.war |
SOAAPI.wsdl |
About WSDL Definitions
The WSDL definitions at the beginning of the WSDL file define the web service as being deployed using the SOAP 1.1 protocol over HTTP.
See the following websites for more information about WSDL 1.1 and SOAP 1.1:
See "About MSS Web Service Standards and Specifications" for more information about the standards that apply to the MSS Web Services.
Example 1-1 shows the definitions section of the OrderAPI.wsdl file.
Example 1-1 WSDL Definitions Example
<wsdl:definitions xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:s0="http://www.openuri.org/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://www.openuri.org/">
About WSDL Locations
For each MSS Web Service, you can access the WSDL with a URL location.
Table 1-3 provides the URL locations where:
-
mssHost is the name of the host on which MSS is installed
-
port is the port number of the machine on which MSS is installed
Table 1-3 WSDL URL Location for each Web Service
Web Service | URL Location |
---|---|
Customer Web Service |
http://mssHost:port/MssWS/customer/CustomerAccount?WSDL |
Event Web Service |
http://mssHost:port/MssWS/events/IntegrationEvent?WSDL |
Inventory Web Service |
http://mssHost:port/MssWS/inventory/Inventory?WSDL |
Order Web Service |
http://mssHost:port/MssWS/order/Order?WSDL |
Activation Web Service |
http://mssHost:port/MssWS/activation/ServiceActivationData?WSDL |
Service Order Activation (SOA) Web Service |
http://mssHost:port/MssWS/soa/Soa?WSDL |
About WSDL Bindings
In the WSDL file, the bindings define the protocol details and message formats for the web service operations. Example 1-2 shows a portion of the WSDL file with the binding definition of the addTaskJeopardyRequest operation.
Example 1-2 OrderSoap Binding Definition Example with addTaskJeopardyRequest
<wsdl:binding name="OrderSoap" type="s0:OrderSoap"> <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/> <wsdl:operation name="addTaskJeopardyRequest"> <soap:operation soapAction="http://www.openuri.org/addTaskJeopardyRequest" style="document"/> <wsdl:input> <soap:body use="literal"/> </wsdl:input> <wsdl:output> <soap:body use="literal"/> </wsdl:output> <wsdl:fault name="WSException"> <soap:fault name="WSException" use="literal"/> </wsdl:fault> </wsdl:operation> </wsdl:binding>
About Namespaces
Each WSDL file defines a namespace to avoid naming conflicts. The namespace definition appears after the WSDL definitions section.
You use the namespace to determine the schema file location of the schema reference. Example 1-3 shows how a namespace defined in the WSDL correlates to the supporting schema files.
In this example, the Order Web Service WSDL file named OrderAPI.wsdl defines and references the ord namespace. This excerpt shows momAddTaskJeopardyRequest has a namespace designation and how the namespace is defined:
Example 1-3 OrderAPI.wsdl Namespace Example
. . . <s:schema xmlns:ord="http://xmlns.oracle.com/communications/mss/OrderManagementAPI"> <s:import namespace="http://xmlns.oracle.com/communications/mss/OrderManagementAPI" schemaLocation="../schemas/OrderManagementAPI.xsd"/> . . . <s:element name="addTaskJeopardyRequest"> <s:complexType> <s:sequence> <s:element ref="ord:momAddTaskJeopardyRequest"/> </s:sequence> </s:complexType> </s:element> . . .
The addTaskJeopardyRequest element declaration tells you that momAddTaskJeopardyRequest is defined in the schema file that supports the specified namespace. A search for the specified namespace reveals that the ord namespace represents the OrderManagementAPI schema file.
After you determine that the OrderManagementAPI.xsd schema file defines the XML structure that the WSDL file references, you can navigate through the schema files to determine child XML structures.
Refer to the following website for more information on namespaces:
https://www.w3.org/TR/REC-xml-names/
Understanding MSS WSDL Operations
The WSDL file defines the web service and its operations. It also defines the input, output and fault messages of each operation. MSS WSDL operations follow the request-response or round-trip pattern. When the client sends a request message to the web service, the operation either sends a response message back or the operation sends a fault message back to the client for an error.
In the WSDL file, each service is bound to a port. For example, in the OrderAPI.wsdl file, the Order Web Service is bound to the OrderSoap port. Example 1-4 shows the definition of the Order service and the port name.
Example 1-4 Order Service and Port Definition
<wsdl:service name="Order"> <wsdl:port name="OrderSoap" binding="s0:OrderSoap"> <soap:address location="http://localhost:7001/MssWS/order"/> </wsdl:port> </wsdl:service>
The Order service and port declaration reference the portType through the OrderSoap definition. The portType element combines multiple message elements to define the list of web service operations and their parameters.
Example 1-5 demonstrates the following aspects of the portType definition in the Order Web Service:
-
The portType element definition of the name as OrderSoap
-
The definition of addTaskJeopardyRequest as a round-trip operation
-
The declaration of the input, output and fault message types for addTaskJeopardyRequest
Example 1-5 The WSDL portType and addTaskJeopardyRequest Definition
<wsdl:portType name="OrderSoap"> <wsdl:operation name="addTaskJeopardyRequest"> <wsdl:input message="s0:addTaskJeopardyRequestSoapIn"/> <wsdl:output message="s0:addTaskJeopardyRequestSoapOut"/> <wsdl:fault message="s0:WSException" name="WSException"/> </wsdl:operation> . . . </wsdl:portType>
Message definitions determine the input and output parameters for the operation. Example 1-6 shows a WSDL excerpt with the message definitions and their respective elements.
Example 1-6 Web Service Message Definitions for addTaskJeopardyRequest Operation
<wsdl:message name="addTaskJeopardyRequestSoapIn"> <wsdl:part name="parameters" element="s0:addTaskJeopardyRequest"/> </wsdl:message> <wsdl:message name="addTaskJeopardyRequestSoapOut"> <wsdl:part name="parameters" element="s0:addTaskJeopardyRequestResponse"/> </wsdl:message> <wsdl:message name="WSException"> <wsdl:part name="fault" element="s0:WSException"/> </wsdl:message>
Table 1-4 summarizes the definitions in Example 1-5 and Example 1-6 to list the message types, messages and elements for the addTaskJeopardyRequest operation.
Table 1-4 addTaskJeopardyRequest Messages and Elements
Message Type | Message | Element |
---|---|---|
input |
addTaskJeopardyRequestSoapIn |
addTaskJeopardyRequest |
output |
addTaskJeopardyRequestSoapOut |
addTaskJeopardyRequestResponse |
fault |
WSException |
WSException |
The details of the element for each message are defined in declarations in the WSDL file. For example, the input request, output response, and exception/fault elements listed in Table 1-4 are defined by the declarations shown in Example 1-7.
Example 1-7 Element Definitions for Input, Output and Fault for addTaskJeopardyRequest
<s:element name="addTaskJeopardyRequest"> <s:complexType> <s:sequence> <s:element ref="ord:momAddTaskJeopardyRequest"/> </s:sequence> </s:complexType> </s:element> <s:element name="addTaskJeopardyRequestResponse"> <s:complexType> <s:sequence> <s:element ref="ord:addTaskJeopardyResponse"/> </s:sequence> </s:complexType> </s:element> <s:element name="WSException"> <s:complexType> <s:sequence> <s:element name="faultCode" type="s:string" minOccurs="0"/> <s:element name="faultString" type="s:string" minOccurs="0"/> </s:sequence> </s:complexType> </s:element>
The elements include references to the locations in schema files where they are fully defined. The references include namespaces that you use to locate the schema file for each element. For example, the namespace ord was defined earlier to point to the OrderManagementAPI.xsd file.
The schema files can themselves include references to other schema files.
Refer to "About Namespaces" for more information on namespaces, and "About Schema Files" for more information on schema files.
About Schema Files
Numerous schema files support the MSS Web Services. Within the WAR files, you find the schema files located in the WEB-INF/wsdls directory. The schemas are also available in the mss_webservice_schemas.jar file. You find this JAR file as a deliverable with the MSS installer.
These schemas are categorized as common schemas, entity schemas, data schemas, and API schemas. The entity, data, and API schema files are different for each web service.
Identical common schema files are included in the WAR files for all web services. The following are the common schema files:
-
Common.xsd
-
Core.xsd
-
Customer.xsd
-
DataTypes.xsd
-
Location.xsd
-
Resource.xsd
-
Service.xsd
Refer to the individual web service chapters for more information about schema files.
Getting Information about MSS WSDL Operations
This guide contains high-level documentation about each web service and its operations.
There is a reference chapter dedicated to each web service. Each web service chapter includes an overview of the web service and a section for each operation. Each operation section contains the following:
-
An overview of the operation's purpose
-
High-level schema information for the input or request message payload
-
High-level schema information for the output or response message payload
-
When applicable, a description of multiple different types of requests
-
When the operation is complex, an XML sample of a request
You use the XSD schema files as reference for field-level information such as descriptions and field formatting guidance. The field-level documentation is provided by annotations in the XSD files.
Using the Message Payload Documentation
The reference chapters for the web services include sections for the request and response documentation. For each operation's request and response, one or more tables describe the primary XSD elements and types. An operation can have multiple tables describe complex payloads.
These tables enable you to navigate the request or response in the following ways:
-
They provide an overall view of the payload.
-
They aid in locating the request or response definitions and their XSD file location.
-
They show you XSD definitions, for instance, whether they are elements or a complex types.
The table describing a request contains the following information:
-
The input request element defined in the first row.
-
A row for each element, describing how the element or complexType is defined in the XSD, its type, and the file name where it is defined.
-
A row for each type listed in the table, placed following the row in which the type is first mentioned.
Table 1-5 is an example of the request elements and complex types for the addTaskJeopardyRequest operation.
Table 1-5 Elements and Types for the Request Example
Name | Defined As | Type Description | File Name |
---|---|---|---|
addTaskJeopardyRequest |
element |
momAddTaskJeopardyRequest |
OrderAPI.wsdl |
momAddTaskJeopardyRequest |
element |
addTaskJeopardyRequestValue |
OrderManagementAPI.xsd |
addTaskJeopardyRequestValue |
element |
AddTaskJeopardyRequestValueType |
OrderManagementAPI.xsd |
AddTaskJeopardyRequestValueType |
complexType |
complexType with a list of required and optional fields |
OrderManagementData.xsd |
In this example, addTaskJeopardyRequest is the name value in first row. This addTaskJeopardyRequest element is defined as the input message element for the operation. It is defined as an element and is located in the OrderAPI.wsdl file. (See Example 1-6 for an excerpt of this input message definition.)
The type for the addTaskJeopardyRequest element is momAddTaskJeopardyRequest. This type is listed in the second row and similarly described.
This pattern continues until one of the following is true:
-
The item referenced is a core or common schema item.
-
The item referenced is a series of fields where the series contains simple types or complex types that are located in the same schema file.
To get specific information about fields, you consult the XSD schema file itself. For the AddTaskJeopardyRequestValueType, you find the field information in the OrderManagementData.xsd file. Annotations in the file describe the field details of AddTaskJeopardyRequestValueType.
Similarly, response messages are defined in tables that have the same format and layout as the request information. Optionally, the response section includes a list of error conditions that can be thrown by the operation.
Table 1-6 shows an example of the possible error messages for the addTaskJeopardyRequest operation.
Table 1-6 Error Messages for addTaskJeopardyRequest
Error Message | Cause | Resolution |
---|---|---|
The document number is not found. |
The provided document number does not exist in the database. |
Verify and pass in a valid document number. |
The jeopardy reason code is not valid. |
An invalid jeopardy reason code was provided in the request. |
Verify and provide a valid jeopardy reason code value in the request. |