Consuming and Producing Web Services using OpenEdge 10'1 - PowerPoint PPT Presentation

1 / 32
About This Presentation
Title:

Consuming and Producing Web Services using OpenEdge 10'1

Description:

Generates HTML information including ABL code snippet examples ... ABL code snippets and examples. SOAP/XML samples. Textual information about service ... – PowerPoint PPT presentation

Number of Views:373
Avg rating:3.0/5.0
Slides: 33
Provided by: robin211
Category:

less

Transcript and Presenter's Notes

Title: Consuming and Producing Web Services using OpenEdge 10'1


1
Consuming and Producing Web Services using
OpenEdge 10.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

proenvgtbprowsdldoc C\temp\MyService.wsdl
or proenvgtbprowsdldoc 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. hWebServiceCONNECT("-W
SDL 'http//localhost8080/wsa/wsa1/wsdl?targetURI
urnwsProviderEmp'").
13
Calling a Web Service from the ABL
  • DEFINE VARIABLE hWebService AS HANDLE.
  • DEFINE VARIABLE hPortType AS HANDLE.
  • CREATE SERVER hWebService.
  • hWebServiceCONNECT( wsdl url ).
  • RUN portTypeName SET hPortType ON SERVER
    hWebService.
  • RUN operationName() in hPortType.
  • DELETE PROCEDURE hPortType.
  • hWebServiceDISCONNECT().
  • 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-STATUSERROR
THEN DO DO iCnt 1 TO ERROR-STATUSNUM-MESSAGE
S MESSAGE ERROR-STATUSGET-MESSAGE(iCnt)
VIEW-AS ALERT-BOX. END. IF
VALID-HANDLE(ERROR-STATUSERROR-OBJECT-DETAIL)
THEN DO MESSAGE "Fault Code"
ERROR-STATUSERROR-OBJECT-DETAILSOAP-FAULT-CODE
SKIP "Fault Actor" ERROR-STATUSERROR-OBJ
ECT-DETAILSOAP-FAULT-ACTOR SKIP "Fault
String" ERROR-STATUSERROR-OBJECT-DETAILSOAP-FAU
LT-STRING VIEW-AS ALERT-BOX. IF
VALID-HANDLE(ERROR-STATUSERROR-OBJECT-DETAILSOAP
-FAULT-DETAIL) THEN MESSAGE "Fault
Detail" ERROR-STATUSERROR-OBJECT-DETA
ILSOAP-FAULT-DETAILGET-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
Configure and Enable Web service
Generate Web servicedefinition
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
Configure and Enable Web service
Generate Web servicedefinition
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 Produced
  • Product Catalogue
  • Purchase Orders
  • PO Receipting
  • Sales Orders
  • Sales Order Dispatched
  • Stock Adjustment
  • Web Services Consumed
  • PO Received
  • Delivery Notification
  • Dispatch Notification
  • PO Receipt Notification

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
Write a Comment
User Comments (0)
About PowerShow.com