Go to primary content
Agile Product Lifecycle Management Web Services Guide
Release 9.3.6
E71166-01
  Go To Table Of Contents
Contents

Previous
Previous
 
Next
Next
 

1 Introduction to Agile PLM Web Services

A web service makes remote procedure calls across the internet using:

Web services are technologies for building distributed applications. These services, which can be made available over the Internet, use a standardized XML messaging system and are not tied to specific operating systems or programming languages. Through web services, companies can encapsulate existing business processes, publish them as services, search for and subscribe to other services, and exchange information throughout and beyond the enterprise. Web services are based on universally agreed-upon specifications for structured data exchange, messaging, discovery of services, interface description, and business process design.

Oracle's Agile PLM Web Services use industry standard core technologies.

1.1 About Service Oriented Architecture (SOA)

Service Oriented Architecture (SOA) is a business-centric IT architecture for building enterprise applications through adaptable and re-usable business processes and services. Each service implements one action such as creating a product record, viewing a BOM table, or updating the Price and Compliance data.

Leading companies are gaining operational efficiencies and business agility through adaptable, re-usable business processes and services built on truly flexible Service-Oriented Architecture (SOA) platforms.

The guiding principles of SOA are:

  • Self-contained and loosely-coupled

  • Well-defined standards-based interfaces

  • Right-sized interfaces

  • Location-independent and inter-operable in a standards-based manner

  • Implementation agnostic

One SOA implementation is the web services approach where the basic unit of communication is a message, rather than an operation. This is often referred to as ”message-oriented” services. Web services make functional building-blocks that are accessible over standard internet protocols and independent of platforms and programming languages. SOA is gaining wide customer adoption because of its reliance on standards-based protocols and enabling rapid development of applications using web services. SOA and web services are supported by most major software vendors.

1.2 Web Services - Benefits

The key benefits provided by web services are:

  • Service-Oriented Architecture (SOA) - Unlike packaged products, web services can be delivered as streams of services that allow access from any platform. Components can be isolated; only the business-level services need be exposed.

  • Interoperability - Web services ensure complete interoperability between systems.

  • Integration - Web services facilitate flexible integration solutions, particularly if you are connecting applications on different platforms or written in different languages.

  • Modularity - Web services offer a modular approach to programming. Each business function in an application can be exposed as a separate Web service. Smaller modules reduce errors and result in more reusable components.

  • Accessibility - Business services can be completely decentralized. They can be distributed over the internet and accessed by a wide variety of communications devices.

  • Efficiency- Web services constructed from applications meant for internal use can be used externally without changing code. Incremental development using web services is relatively simple because web services are declared and implemented in a human readable format.

1.2.1 Core Technologies

Each core technology listed below is explained in detail in the topics that follow.

  • Web Services Description Language

  • XML and XML Schema

  • Simple Object Access Protocol

1.2.1.1 Web Services Description Language

Web Services Description Language (WSDL) is an XML-based format for describing the interface of a Web service. A WSDL file describes the endpoints, location, protocol binding, operations, parameters, and data types of all aspects of a Web service:

  • The WSDL file that describes a Web service has the following characteristics:

    • It is published by the service provider.

    • It is used by the client to format requests and interpret responses.

    • It can be optionally submitted to a registry or service broker to advertise a service.

  • Additionally, it also describes:

    • Operations that are provided by a Web service

    • Input and output message structures for each Web service operation

    • Mechanism to contact the Web service.

1.2.1.2 XML and XML Schema

A WSDL file is published as an XML file. Document/Literal formatting is required as part of the WS-I interoperability standard. This standard sets the basis for modern Web service usage.

  • Document - The payload for an operation, however complex, must be defined in a single XML element.

  • Literal - The definition of a single XML element must be described by an XML Schema embedded in the WSDL file.

When using Document/Literal formatting, the WSDL file will contain an XML Schema definition that defines all messages and data types that are used for a particular service. The XML Schema offers an automated mechanism for validating the XML documents. The payload itself will consist entirely of XML data structures.

1.2.1.3 Simple Object Access Protocol

Simple Object Access Protocol (SOAP) is a lightweight protocol intended for exchanging structured information in a decentralized, distributed environment. SOAP uses XML to define an extensible messaging framework.

SOAP messages consist of the following:

  • An envelope for wrapping messages, including addressing and security information

  • A set of serialized rules for encoding data types in XML

  • Conventions for a procedure call and/or response.

1.2.2 Web Services Architecture

You can view Web services architecture in terms of roles and the protocol stack:

  • Web services roles:

    • Service provider - Provides the service by implementing it and making it available on the Internet.

    • Service requester - User of the service who accesses the service by opening a network connection and sends an XML request.

    • Service registry - Centralized directory of services where developers can publish new services or find existing ones.

  • Web services protocol stack:

    • Service transport layer - This layer uses the HTTP protocol to transport messages between applications.

    • XML messaging layer - This layer encodes messages in XML format using SOAP to exchange information between computers. It defines an envelope specification for encapsulated data that is transferred, the data encoding rules, and remote procedure call (RPC) conventions.

    • Service description layer - This layer describes the public interface to a specific Web service using the WSDL protocol. With WSDL, it defines an XML grammar to describe network services. The operations and messages are described abstractly, and then bound to a network protocol and message format. WSDL allows description of endpoints and their messages regardless of the message formats or network protocols that you use to communicate.

    • Service discovery layer - This layer centralizes services into a common registry using the Universal Description, Discovery, and Integration (UDDI) protocol. UDDI is a platform-independent, XML-based registry for businesses worldwide to list themselves on the Internet.

1.3 About Agile PLM Web Services

Implementation of Agile PLM Web Services adheres to the following principles:

  • Well defined standards based discoverable Interface

  • XML based Web Service Framework - JAX - WS

  • Modularized PLM Schema (XSD) and WSDL for easy maintenance

  • Standards-based WSDL to ensure compatibility across various clients (.NET, and Java, and BPEL)

  • Batch APIs wherever applicable for better performance

  • Web Service versioning for backward compatibility

Agile PLM Web Services exposes all key PLM functionalities in the following services.

  • Agile PLM Core Web Services - These services support functionalities provided by PLM solutions such as PC, PQM, PCM, PPM, PG&C. See Appendix A, "Core Operations - Agile PLM Web Services.".

  • Agile PLM EC Web Services - These services support functionalities provided by Agile PLM's Engineering Services (EC) solution.

  • For added security, the following services can now be SAML-enabled:

    AIS Web Services

    Core Web Services

    File Manager Web Services

    Variant Management Web Services

    Engineering Collaboration Web Services

    Web Service Extensions

1.3.1 Agile PLM Core Web Services

Agile PLM Core Web Services are a set of services for the following PLM functionalities:

  • Product Collaboration

  • Product Governance and Compliance

  • Project

  • User Profile

  • DocPublishing

  • Folder & Report Services

  • Business Object CRUD (Create, Read, Update, Delete) data services

  • Collaboration services

  • Meta data Services

  • Search Services

  • Attachment Services

  • Table Services

  • Engineering Collaboration Web Services

1.3.2 Agile Recipe & Material Workspace Web Services

The Recipe & Material Workspace module in Agile application caters to the needs product lifecycle management of the pharmaceutical development industry. It is made up of several dimensions such as Recipe (Instructions), Equipment, Material, Analytical (Test and Assays), Environment, Standards and People. These dimensions enable drug manufacturers to conduct the preparation, execution and analysis necessary during the scale-up life cycle of a substance across multiple pilot plants, located in disparate geographic locations. It also helps scale up material production in a systematic and reproducible manner.

The RMW Web Services are a set of business services that supplement Agile PLM's Core Web Services for Pharmaceutical industry use cases. They also offer a set of higher level BPEL orchestration services. Customers and partners can build next generation applications to perform business object processing, searches and data editing.

1.3.3 Agile PLM Web Service Authentication and Performance

In implementations where scalability is critical, a lightweight context management facility for authentication is available and its use is recommended. With this facility, authentication is managed using a combination of user credentials and a sessionID token:

  • When user credentials are presented in the HTTP header of a Web service request, formal authentication is performedbefore executing the application of the Web service operation. If the authentication succeeds, the operation proceeds and a special SessionID token are placed in the SOAP header of the Web service reply.

  • Whenever the sessionID is included by the client in subsequent Web service requests, that sessionID will be used to restore cached session information, thus bypassing the substantially more expensive process of re-executing the authentication. Note that, when presented with both the sessionID and a valid set of user credentials, an attempt will be made to use the sessionID before resorting to the user credentials and re-authentication. As expected, the session that is being tracked by the sessionID is subject to expiration and other security checks.

The facility is a distinct alternative to the basic authentication standard described by WS-Security. Using the UserName token as provided in WS-Security, while fully supported as part of Agile PLM's WSI Basic Profile compliance, will not yield the same benefit as using the higher-performance session optimization facility provided by the Agile PLM implementation. It is recommended to use Basic Auth over SSL.

1.3.4 Agile PLM Extensions and Services

Agile PLM provides tools and process extensions to customize the application to meet unique user requirements, provide access to external databases, extend automation capabilities, and develop UI extensions. Listed below are tools and services; Agile PLM Web Services implementation has no impact on these capabilities; they are in addition to the existing services.

  • Agile SDK - The SDK is a set of Java APIs that enable building custom applications to access or extend the Agile PLM server functionalities. For information, refer to Agile PLM SDK Developer Guide.

  • Agile Integration Services (AIS) - AIS is a collection of predefined Web Services in the Agile Integration framework that enable communication between PLM server and disparate database. For information, refer to Agile PLM AIS Developer Guide.

  • Agile Content Services (ACS) - ACS is a process for transferring data to other Agile PLM solutions or to any other external system. For information, refer to Agile PLM ACS User Guide.

  • Process Extensions (PX) - PX is a framework for extending the functionalities of the Agile PLM application. The functionality can be server-side extensions such as custom automations, or client-side functionality such as new commands added to the Java/Web Client's Actions or Tools menus. For information, refer to Agile PLM SDK Developer Guide.

  • Web Service Extensions (WSX) - WSX is a Web service engine that enables communication between Agile PLM and internal and external systems. For information, refer to Agile PLM SDK Developer Guide.

  • Dashboard Management Extensions (DX) - Similar to PX, DX extends the functionalities of the Agile PLM application. For information, refer to Agile PLM SDK Developer Guide.

1.4 Casual User Interface Integration Examples

Agile Web Client and Agile Java Client are targeted towards those who use the more complex product lifecycle management features of Agile PLM on a daily basis to perform assigned tasks and duties. There is also another set of users who use the auxiliary capabilities of Agile PLM to perform lightweight tasks such as document management, importing compliance and price data, or approving ECO and Sales RFQ.

The tools of choice for these users are the popular desktop products provided by Microsoft Office or Adobe Acrobat, Mobile devices. They prefer simple user-friendly interfaces, like the following:

  • Microsoft Word and Acrobat for document management.

  • Microsoft Excel to import price and compliance data.

  • Oracle WebCenter and Oracle Application Development Framework (ADF) for simple document management tasks.

  • Oracle WebCenter and ADF for simple item management tasks.

  • Mobile devices to access sales RFQ.

  • Mobile devices to access ECO Approval.

  • Microsoft Sharepoint for simple document management tasks.

1.4.1 User Interface Integration - MS Word

This example demonstrates document management capabilities of PLM's Web Services. Currently, when casual users want to view or update a document in Agile PLM, they do so by logging in to the Web Client to retrieve and view the Word document. The steps are:

  1. Log in to PLM Client.

  2. Search and locate the document.

  3. Check out the document (in Word).

  4. Modify the documents (in Word).

  5. Check in the document.

  6. Log out.

Using Agile PLM's Web Services, the casual user directly accesses Agile PLM documents from MS Word. This simple UI encourages and accelerates greater user participation. Agile PLM is transparent to this class of users which eliminates training and exposure in PLM Web Client.

1.4.2 User Interface Integration - MS Excel

This is similar to MS - Word integration. In this case, the casual user is one of your partners and suppliers. Using PLM's Web Services, you can provide a simple UI in Excel template for suppliers and partners. When necessary, suppliers import information such as compliance and price data directly into PLM system from Excel. Benefits include greater and more convenient supplier participation in the PLM process with no training in Agile PLM Web Client.

1.4.3 User Interface Integration - Portals and Agile Web Client

Before PLM Web Services, the practice was to create custom Web applications using Agile PLM SDK with various tools and technologies. With Web Services, you can build rich Web applications in Oracle Web Center (and ADF) by taking advantage of Web 2.0 UI and mobile services.

Once you develop the custom UI Web application for casual users, you can also integrate the custom UI with Agile Web Client using Agile PLM's URL Process Extensions (refer to Agile PLM SDK Developer Guide) and Smart URL features.

1.4.4 User Interface Integration - Mobile ADF

One of the key demands in Agile PLM installations is mobile access for management and executive personnel. One such example is ECO Approval by the senior or management staff using mobile devices. PLM's Web Services enable developing simple ECO Approval applications for users of mobile devices.

1.4.5 CAD Integration through EC Services

Customers and partners can build next generation MCAD and ECAD connectors with the aid of Agile PLM Core and Engineering Collaboration Web Services. The benefits are summarized in the Appendix B, "Operations - EC Web Services."

1.5 Building Casual User Interfaces

The following paragraphs describe the tools and the steps in developing some the UI integration examples in MS Office and Oracle Web Center (and ADF) environments.

1.5.1 Developing User Interfaces for MS Office

Microsoft supports building UI integration interfaces by providing the Microsoft Office Add-in (a piece of code) for this purpose. MS Office Add-in supports integration at application level and document level.

To develop the MS Word Add-in with PLM, the following tools and applications are necessary:

  • Application software

    • Microsoft Visual Studio 2005/2008

    • Dot NET framework 3.5

    • Agile PLM (v9.3 or above) server

    • Microsoft Word 2003/2007

  • Programming languages

    • C#

    • Visual Basic for .NET

    • Microsoft Visual C++/ATL

  • Plug-in templates

    • Shared Add-in Extensibility template


Note:

Using the Shared Add-in Extensibility templates, you can deploy a single add-in onto multiple Microsoft Office applications (common add-ins across Word, Excel, and other office applications). This Add-in is always installed only at the application-level.

  • Office 2003/2007 Add-in template

Steps to develop MS Office Add-in:

  1. Evaluate Add-in type: application level versus document level.

  2. Evaluate programming language: C#, Visual Basic.

  3. Create a project in Microsoft Visual Studio 2005/2008.

  4. Generate the C#/Visual Basic Stubs from Agile WSDL.

  5. Create Windows Forms.

  6. Bind data to UI controls.

    • Populate documents with data from Agile Web Services.

  7. Build & test the Add-in.

  8. Deploy the Add-in.

  9. Extend Agile 9.3.6 samples to fit your business needs:

    • MS Word Document Management - Application Level Add-In.

    • MS Excel - Import BOM/Price/ Compliance - document Level Add-in.


    Note:

    The source code for these two MS Office Add-ins is available for download from the Oracle Technology Network (OTN) Web site http://www.oracle.com/technetwork/indexes/samplecode/agileplm-sample-520945.html. A good source of information for developing an MS Office Add-in is the MSDN forum.

1.5.2 Developing User Interfaces for Oracle WebCenter and ADF

This section provides basic information to develop the following UIs in Oracle Web Center and ADF environments.

  • Document Management UI in Oracle WebCenter (and ADF 10g).

  • Item Management UI in Oracle WebCenter (and ADF 11g).

  • Sales RFQ UI in Mobile device.

  • ECO Approval UI in Mobile device.

You need the following tools and applications to develop the Oracle WebCenter (and ADF) with PLM:

  • Software

    • Oracle jDeveloper 10g/11g.

    • Agile PLM (v9.3.6 or above) server.

  • Programming Languages.

    • Java

Steps to develop ADF applications:

  1. Create a Project in jDeveloper.

  2. Generate the Java Stubs from Agile WSDL.

  3. Map XML schema to Java Classes.

  4. Create UI forms.

  5. Create page flow.

  6. Bind data to UI controls.

  7. Build and test the applications.

  8. Deploy the applications.

  9. Extend Agile 9.3.6 samples to meet business needs:

    • Document management.

    • Item management.

    • Sales RFQ.

For information on Oracle Web Center, ADF, and jDeveloper, visit the Oracle website at: http://www.oracle.com/technology/products/webcenter/index.html and http://www.oracle.com/technology/products/adf/index.html

1.6 SAML Enabled Web Services

SAML (Security Assertion Markup Language) is an XML-based method for securing web services communication. It is an open standard for exchanging authentication and authorization data between security domains. It establishes the identity of the requester (authentication) and checks the access privileges of the requester (authorization), who needs access to a protected resource. For details on how to set up and configure SAML, refer to the Agile PLM Security Guide.

Updated Project web services support additional functionality, including project summary export, calendar and timesheet management.

The web services platform is replaced with Weblogic web services using JAX-WS framework. The new framework allows for web services to be deployed on Agile Application Server. For more details, see: "WSDL and XSD Changes."

1.6.1 Impact of Framework Changes

The impact of the framework changes and actions required are listed below:

  • Any Web Services Extension (WSX) needs to be updated to use JAX-WS. Code impact is limited to packaging, not the core logic of the WSX. For detailed instructions, see the Agile PLM SDK Developer Guide - Developing PLM Extensions.

  • Client samples provided now use JAX-WS. For instructions on how to build the sample web services clients with the JAX-WS framework, see "Getting Started with Agile Web Services."

  • Pre-existing clients connecting to Agile PLM Web Services will not be directly impacted by the change to the Web Services framework. Clients must uptake changes to WSDL and XSD.

  • For AXIS clients, there are WSDL changes which are not supported anymore. SAML connections require additional libraries. If you need to leverage changed functionality or SAML, it is recommended that you update clients to also leverage JAX-WS. As with WSX, changes are limited to packaging.

1.6.2 WSDL and XSD Changes

The jaxws:binding is required to control the output package of generated service interface. The enableAsyncMapping enables async method generation in the endpoint interface generated from a WSDL. If absent, the default value of enableAsyncMapping is False. The enableWrapperStyle is used to disable wrapper style Java method generation. If absent, the default value of enableWrapperStyle is True.

OOTB WSDL Module WSDL Change XML Schema Change Summary of the Changes
Core Services Yes Yes Add Embedded jaxws:binding in WSDL.

Add Embedded jaxb:binding in XSD.

Use MTOM policy in Attachment.wsdl.

EC services Yes Yes Add Embedded jaxws:binding in WSDL.

Add Embedded jaxb:binding in XSD.

AIS Yes No Soap encode is not supported.
ACS Yes No Soap encode is not supported.
AIA No No NA
V M Magmt No No NA
Reference Object No Yes NA
File Server No No NA

1.6.2.1 jaxws: binding changes

Example:

<jaxws:bindings xmlns:jaxws="http://java.sun.com/xml/ns/jaxws" >
    <jaxws:package name="com.agile.ws.service.xxxservice.v1.jaxws"/>
    <jaxws:enableWrapperStyle>true</jaxws:enableWrapperStyle>
    <jaxws:enableWrapperStyle>true</jaxws:enableWrapperStyle>
</jaxws:bindings>

Impacted WSD Files:

  • BusinessObject.wsdl

  • Search.wsdl

  • Attachment.wsdl

  • Folder.wsdl

  • PGC.wsdl

  • TableService.wsdl

  • AdminMetadataService.wsdl

  • CollaborationService.wsdl

  • ReportService.wsdl

  • DocPulishingService.wsdl

  • UserProfile.wsdl

  • Project.wsdl

  • PC.wsdl

  • ECServices.wsdl

1.6.2.2 jaxb:binding changes

Example:

<xsd:annotation>
    <xsd:appinfo>
      <jaxb:schemaBindings>
        <jaxb:package name="com.agile.ws.schema.xxxservice.v1.jaxws"/>
      </jaxb:schemaBindings>
    </xsd:appinfo>
</xsd:annotation>

Impacted XSD Files:

  • AttachmentSchema.xsd

  • BusinessObjectSchema.xsd

  • CollaborationSchema.xsd

  • AgileCommonSchema.xsd

  • DocPublishingSchema.xsd

  • ECServicesSchema.xsd

  • FolderSchema.xsd

  • AdminMetadata.xsd

  • PCSchema.xsd

  • PGCSchema.xsd

  • ProjectSchema.xsd

  • ReportSchema.xsd

  • SearchSchema.xsd

  • TableSchema.xsd

  • UserProfileSchema.xsd

1.6.2.3 Global jaxb: binding changes

Example:

<xsd:annotation>
    <xsd:appinfo>
      <jaxb:globalBindings generateElementProperty="false"/>
      <jaxb:schemaBindings>
        <jaxb:package name="com.agile.ws.schema.common.v1.jaxws"/>
      </jaxb:schemaBindings>
    </xsd:appinfo>
</xsd:annotation>

Impacted XSD Files:

  • AgileCommonSchema.xsd

1.6.2.4 SOAP Encode not supported

Example:

<wsdl:definitions.
  targetNamespace="http://www.agile.com/ais/import".
  xmlns:ais="http://www.agile.com/ais"
   xmlns:apachesoap="http://xml.apache.org/xml-soap"
    xmlns:imp90="http://www.agile.com/2003/04/ais/import"
<schema.targetNamespace="http://www.agile.com/ais/import".xmlns="http:w3.org/2001/XMLSchema">
   <import.namespace="http://www.agile.com/2003/04/ais/import"/>
   <import.namespace="http://www.apache.org/xml-soap"/>
   <import.namespace="http://www.agile.com/ais"/>
   <import.namespace="http://www.agile.com/2004/01/ais/import"/>
   <import.namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
   <element.name="validateDataReturn".type="apachesoap:DataHandler"/>
   <element.name="importDataReturn".type="apachesoap:DataHandler"/>
   <element.name="importSupplierResponseReturn".type="apachesoap:DataHandler"/>
  </schema>

Impacted WSDL/XSD Files:

  • importer.wsdl

  • importcontent.wsdl

  • export.wsdl

  • AcsStatusService.wsdl

  • PackageService.wsdl

  • ResponseService.wsdl

1.6.2.5 MTOM Changes in WSDL

Example:

<definitions.name="AttachmentService"
             xmlns="http://schemas.xmlsoap.org/wsdl/"
             xmlns:xsd="http://www.w3.org/2001/XMLSchema"
             xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap"
             xmlns: attachment="http://xmlns.oracle.com/AgilleObjects/Core/Attachment/V1"
             xmlns:tns="http://xmlns.oracle.com/AgileServices/Core/Attachment/V1"
             targetNamespace="http://xmlns.oracle.com/AgileServices/Core/Attachment/V1"
             xmlns:wssutil="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
             xmlns:wsp="http://www.w3.org/ns/ws-policy".xmlns:wsp1_2="http://schemas.xmlsoap.org/ws/2004/09/policy">
     <wsp:UsingPolicy.wssutil:Required="true"/>
     <wsp1_2:Policy.wssutil:Id="Mtom.xml">
       <ns1:OptimizedMimeSerialization.xmlns:ns1="http://schemas.xmlsoap.org/ws/2004/09/policy/optmizedserialization"/>
     </wsp1_2:Policy>
     <wsp:Policy.wssutil:Id="AttachmentService_MTOM_Policy">
       <ns2:OptimizedMimeSerialization.xmlns:ns2="http://schemas.xmlsoap.org/ws/2004/09/policy/optmizedserialization".wsp:Optional="true"/>
     </wsp:Policy>
    <jaxws:bindings.xmlns:jaxws="http://java.sun.com/xml/ns/jaxws".
        <jaxws:package.name="com.agile.ws.service.attachment.v1.jaxws"/>
        <jaxws:enableWrapperStyle>true</jaxws:enableWrapperStyle>
        <jaxws:enableAsyncMapping>false</jaxws:enableAsyncMapping>
   </jaxws:bindings>
<documentation>Web-service.to.handle.operations.related.to.document.management</documentation>.
 
  <binding.name="Attachment Binding".type="tns:Attachment PortType">
   <wsp:PolicyReference.URI="#AttachmentService_MTOM_Policy"/>
   <wsp:PolicyReference.URI="#Mtom.xml"/>
    <soap:binding.transport="http://schemas.xmlsoap.org/soap/http".style="document"/>

Impacted WSDL Files:

  • Attachment.wsdl

  • Import.erwsdl

  • Export.wsdl

  • Package.wsdl