1 / 32

Consuming and Producing Web Services using OpenEdge 10.1

Consuming and Producing Web Services using OpenEdge 10.1. Agenda. Web Services Overview Consuming External Web Service Producing ABL Web Service State Free Web Service for State Aware App Stock Distribution Application Demo. Agenda. Web Services Overview Consuming External Web Service

hastin
Download Presentation

Consuming and Producing Web Services using OpenEdge 10.1

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Consuming and Producing Web Services using OpenEdge10.1

  2. Agenda • Web Services Overview • Consuming External Web Service • Producing ABL Web Service • State Free Web Service for State Aware App • Stock Distribution Application Demo

  3. Agenda • Web Services Overview • Consuming External Web Service • Producing ABL Web Service • State Free Web Service for State Aware App • Stock Distribution Application Demo

  4. Web Service Definitions A Web Service is a software system identified by a URI, whose public interfaces and bindings are defined and described by XML. Its definition can be discovered by other software systems. These systems may then interact with the Web Service in a manner prescribed by its definition, using XML based messages conveyed by internet protocols Web Services ArchitectureW3C Working Draft 14 November 2002http://www.w3.org/TR/ws-arch/

  5. Web Service Definitions Reality today An application that can be accessed over the Web or any network from another application using RPC style calls encoded using SOAP over HTTP where the interface is described using WSDL Ken Wilner, Fellow PSC

  6. Web Services is Defined by Standards • Web Services • A set of standards that comprise a platform for building distributed, interoperable applications • OpenEdge Web Services utilizes W3C standards • WSDL 1.1 (W3C Note – de facto standard) • SOAP 1.1 HTTP Binding • 2001 XML Schema W3C = World Wide Web Consortium, http://www.w3.org/

  7. SOAP Simple Object Access Protocol • A lightweight xml-based protocol for message exchange • Supports message typing, strong typing, and structured data • Can be used in a variety of communication paradigms • Programming language and platform independent • Highly extensible • Transport independent • Encoding independent • Extra context via headers

  8. WSDL Web Service Description Language • Specifies interface, and network address • Service interface maps to business interface • Business methods (operations) that can be invoked • Message structure for each method • Data fields, types • Bindings for the operations • SOAP over HTTP • Generation approaches • WSDL generated from business interface • Business interface generated from WSDL

  9. Agenda • Web Services Overview • Consuming External Web Service • Producing ABL Web Service • State Free Web Service for State Aware App • Stock Distribution Application Demo

  10. Web Services ABL Client Overview • Obtain contract from Web service provider • i.e. WSDL and any documentation • Run the WSDL Analyzer over WSDL • Generates HTML information including ABL code snippet examples • Use WSDL Analyzer information to code calls to Web service • Call the Web service

  11. WSDL Analyzer • Input WSDL (obtained from service provider) • Output HTML documentation • ABL code snippets and examples • SOAP/XML samples • Textual information about service proenv>bprowsdldoc C:\temp\MyService.wsdl or proenv>bprowsdldoc http://server/wsa/....

  12. Connecting to a Web Service • Initial connection is made • WSDL obtained • Client holds local port • Physical connection only when calling an operation CREATE SERVER hWebService. hWebService:CONNECT("-WSDL 'http://localhost:8080/wsa/wsa1/wsdl?targetURI=urn:wsProvider:Emp'").

  13. Calling a Web Service from the ABL DEFINE VARIABLE hWebService AS HANDLE. DEFINE VARIABLE hPortType AS HANDLE. CREATE SERVER hWebService. hWebService:CONNECT( wsdl url ). RUN portTypeName SET hPortType ON SERVER hWebService. RUN operationName(…) in hPortType. DELETE PROCEDURE hPortType. hWebService:DISCONNECT(). DELETE OBJECT hWebService.

  14. Calling a Web Service from the ABL FUNCTION DynDeptEmp RETURNS CHARACTER (INPUT pcDeptName AS CHARACTER, OUTPUT TABLE-HANDLE hDeptEmp) IN hPortType. result = DynDeptEmp(pcDeptName, TABLE-HANDLE hDeptEmp). RUN DynDeptEmp IN hPortType (INPUT pcDeptName, OUTPUT result, OUTPUT TABLE-HANDLE hDeptEmp).

  15. SOAP Faults RUN operationName IN hPortType(INPUT value1, OUTPUT value2) NO-ERROR. IF ERROR-STATUS:ERROR THEN DO: DO iCnt = 1 TO ERROR-STATUS:NUM-MESSAGES: MESSAGE ERROR-STATUS:GET-MESSAGE(iCnt) VIEW-AS ALERT-BOX. END. IF VALID-HANDLE(ERROR-STATUS:ERROR-OBJECT-DETAIL) THEN DO: MESSAGE "Fault Code:" ERROR-STATUS:ERROR-OBJECT-DETAIL:SOAP-FAULT-CODE SKIP "Fault Actor:" ERROR-STATUS:ERROR-OBJECT-DETAIL:SOAP-FAULT-ACTOR SKIP "Fault String:" ERROR-STATUS:ERROR-OBJECT-DETAIL:SOAP-FAULT-STRING VIEW-AS ALERT-BOX. IF VALID-HANDLE(ERROR-STATUS:ERROR-OBJECT-DETAIL:SOAP-FAULT-DETAIL) THEN MESSAGE "Fault Detail:" ERROR-STATUS:ERROR-OBJECT-DETAIL:SOAP-FAULT-DETAIL:GET-SERIALIZED() VIEW-AS ALERT-BOX. END. END.

  16. Consuming ABL Web Service Demo • bprowsdldoc • ABL example • SOAP Faults

  17. Agenda • Web Services Overview • Consuming External Web Service • Producing ABL Web Service • State Free Web Service for State Aware App • Stock Distribution Application Demo

  18. Technologies to support exposing ABL Web services

  19. Phases to enabling an AppServer application as a Web Service Design Web service Develop DevelopAppServerapplication Generate Web servicedefinition

  20. Phases to enabling an AppServer application as a Web Service Design Web service Install/ Configure the WSA Develop DevelopAppServerapplication Deploy Web serviceto WSA Deploy/Admin Generate Web servicedefinition Configure and Enable Web service

  21. Phases to enabling an AppServer application as a Web Service Design Web service Install/ Configure the WSA DevelopTest Client Application Develop DevelopAppServerapplication Deploy Web serviceto WSA Admin Deploy/Admin Re-configure Web Service Generate Web servicedefinition Configure and Enable Web service

  22. Producing ABL Web Service Demo • Tomcat • WSA • State Free Application Server • Simple Login Web Service • Generate service definition (WSM) • Deploy and enable Web Service • Test Web Service

  23. Agenda • Web Services Overview • Consuming External Web Service • Producing ABL Web Service • State Free Web Service for State Aware App • Stock Distribution Application Demo

  24. State Free Web Service for State Aware Application State Aware Application: • Start session • Connect DB to session • Identify user • Instantiate Session State • Start support procedures • Set session variables • etc • User remains connected Time consuming expensive operations

  25. State Free Web Service for State Aware Application State Free Web Service: • Start State Free agents when broker starts • Connect DB to App Server at startup • Start support procedures • Identify user as separate Web Service call • Issue Session ID and save in DB • Save as much session state as needed with the Session ID • For each subsequent API, re-instantiate session state based on Session ID

  26. Agenda • Web Services Overview • Consuming External Web Service • Producing ABL Web Service • State Free Web Service for State Aware App • Stock Distribution Application Demo

  27. Integration Example • Web Services Consumed • PO Received • Delivery Notification • Dispatch Notification • PO Receipt Notification • Web Services Produced • Product Catalogue • Purchase Orders • PO Receipting • Sales Orders • Sales Order Dispatched • Stock Adjustment

  28. UNIBIS UNIBIS is a Financial, Distribution, Service and Manufacturing application developed over 15 years with Progress Technology, and supported by a small dynamic team out of the ComOps Melbourne Office. Our objectives are to provide solutions that allow our customers to capture data without traditional data entry. Volume and efficiency through data collaboration. Web Services are part of the strategy of using the UNIBIS ERP as a data repository . Specific processing that can easily sit on top of what are standard ERP business outcomes.

  29. Place Order

  30. Dispatch Order

  31. Integration Demo • Web Service Login to retrieve session ID • Using Excel to call ABL Web Service

  32. Thank You Robin Smith

More Related