int-5: integrate over the web with openedge ® web services matthew harrison senior software...

34
INT-5: Integrate over the Web with OpenEdge ® Web Services Matthew Harrison Senior Software Engineer, Progress OpenEdge

Upload: harold-anderson

Post on 17-Jan-2016

258 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: INT-5: Integrate over the Web with OpenEdge ® Web Services Matthew Harrison Senior Software Engineer, Progress OpenEdge

INT-5: Integrate over the Web with OpenEdge® Web Services

Matthew HarrisonSenior Software Engineer,

Progress OpenEdge

Page 2: INT-5: Integrate over the Web with OpenEdge ® Web Services Matthew Harrison Senior Software Engineer, Progress OpenEdge

© 2007 Progress Software Corporation2 INT-5: Integrate over the Web with OpenEdge® Web Services

Initial Audience Reaction

Page 3: INT-5: Integrate over the Web with OpenEdge ® Web Services Matthew Harrison Senior Software Engineer, Progress OpenEdge

© 2007 Progress Software Corporation3 INT-5: Integrate over the Web with OpenEdge® Web Services

Session Focus

Implementing OpenEdge Web Services

Understanding Web Services Identify when to use Web Services Implementing an OpenEdge service consumer Implementing an OpenEdge service provider

Page 4: INT-5: Integrate over the Web with OpenEdge ® Web Services Matthew Harrison Senior Software Engineer, Progress OpenEdge

© 2007 Progress Software Corporation4 INT-5: Integrate over the Web with OpenEdge® Web Services

Agenda

The Value of Web Services

OpenEdge Web Service Provider

ABL Client as a Consumer

Integrate over the Web with OpenEdge Web Services

Page 5: INT-5: Integrate over the Web with OpenEdge ® Web Services Matthew Harrison Senior Software Engineer, Progress OpenEdge

© 2007 Progress Software Corporation5 INT-5: Integrate over the Web with OpenEdge® Web Services

What is Web Services?

Web Services• A set of standards that comprise a platform for

building distributed, interoperable applications

OpenEdge Web Services utilizes W3C standards• Simple Object Access Protocol (SOAP)

• Web Service Definition Language (WSDL)

• XML

W3C = World Wide Web Consortium, http://www.w3.org/

Web Services is Defined by Standards

Page 6: INT-5: Integrate over the Web with OpenEdge ® Web Services Matthew Harrison Senior Software Engineer, Progress OpenEdge

© 2007 Progress Software Corporation6 INT-5: Integrate over the Web with OpenEdge® Web Services

Standards: SOAP

Protocol for message exchange XML-based Independent of encoding, transport,

language, and platform

Simple Object Access Protocol

Page 7: INT-5: Integrate over the Web with OpenEdge ® Web Services Matthew Harrison Senior Software Engineer, Progress OpenEdge

© 2007 Progress Software Corporation7 INT-5: Integrate over the Web with OpenEdge® Web Services

Standards: WSDL

Specifies the interface• Bindings for the operations

– SOAP over HTTP

• Business methods that can be invoked (“operations”)

• Message structure for each method– Data fields, types

Identifies network address of Web service

Web Services Description Language

Contract between provider and consumer

Page 8: INT-5: Integrate over the Web with OpenEdge ® Web Services Matthew Harrison Senior Software Engineer, Progress OpenEdge

© 2007 Progress Software Corporation8 INT-5: Integrate over the Web with OpenEdge® Web Services

Consumers and Providers

Web service

provider

Web service

consumer

Client

SOAP

over HTTP

Web Service Provider• Develops and deploys the Web service• Publishes the WSDL

Web Service Consumer• Writes code to access deployed services based on the

WSDL contract

Page 9: INT-5: Integrate over the Web with OpenEdge ® Web Services Matthew Harrison Senior Software Engineer, Progress OpenEdge

© 2007 Progress Software Corporation9 INT-5: Integrate over the Web with OpenEdge® Web Services

The Value of Web Services

Why to use Web Services• Heterogeneous applications

• Many valuable Services are available

• Many consumers

Why not to use Web Services• Homogenous applications

• May not be efficient enough

Why use Progress for Web Services?Progress makes it easy.

Page 10: INT-5: Integrate over the Web with OpenEdge ® Web Services Matthew Harrison Senior Software Engineer, Progress OpenEdge

© 2007 Progress Software Corporation10 INT-5: Integrate over the Web with OpenEdge® Web Services

Web Services

Heterogeneous Distributed Interoperable SOAP WSDL Consumers Providers

What are we really talking about?

Page 11: INT-5: Integrate over the Web with OpenEdge ® Web Services Matthew Harrison Senior Software Engineer, Progress OpenEdge

© 2007 Progress Software Corporation11 INT-5: Integrate over the Web with OpenEdge® Web Services

Web Services Demonstration

Page 12: INT-5: Integrate over the Web with OpenEdge ® Web Services Matthew Harrison Senior Software Engineer, Progress OpenEdge

© 2007 Progress Software Corporation12 INT-5: Integrate over the Web with OpenEdge® Web Services

Agenda

The Value of Web Services

ABL Client as a Consumer

OpenEdge Web Service Provider

Integrate over the Web with OpenEdge Web Services

Page 13: INT-5: Integrate over the Web with OpenEdge ® Web Services Matthew Harrison Senior Software Engineer, Progress OpenEdge

© 2007 Progress Software Corporation13 INT-5: Integrate over the Web with OpenEdge® Web Services

Web Services ABL Client Requirements

• How to use the WSDL Analyzer• A little AppServer™ persistent procedure

syntax

What do I need to know?

That’s all!

Page 14: INT-5: Integrate over the Web with OpenEdge ® Web Services Matthew Harrison Senior Software Engineer, Progress OpenEdge

© 2007 Progress Software Corporation14 INT-5: Integrate over the Web with OpenEdge® Web Services

Web Services ABL Client Process

Obtain WSDL (or its location) Run the WSDL Analyzer on the WSDL

• Generates ABL code snippets in HTML form

Use WSDL Analyzer information to code calls to Web service

Call the Web service

Page 15: INT-5: Integrate over the Web with OpenEdge ® Web Services Matthew Harrison Senior Software Engineer, Progress OpenEdge

© 2007 Progress Software Corporation15 INT-5: Integrate over the Web with OpenEdge® Web Services

OpenEdge Client calling a Web service

Web service

consumer

Web service

provider

HTTP Client

SOAP Processor

WSDL

Request WSDL

Call Service

Service Response

1

2

4

3Client ABL Application

Code

Page 16: INT-5: Integrate over the Web with OpenEdge ® Web Services Matthew Harrison Senior Software Engineer, Progress OpenEdge

© 2007 Progress Software Corporation16 INT-5: Integrate over the Web with OpenEdge® Web Services

WSDL Analyzer (command bprowsdldoc)

Input WSDL (obtained from service provider) Output HTML documentation

• ABL code snippets and examples

• SOAP/XML samples

• Textual information about service

proenv>bprowsdldoc http://localhost:8080/wsa/wsa1/wsdl?targetURI=urn:wsProvider:Emp myOutputDocumentation written toFile:///C:\OpenEdge\WRK\myOutput\index.html

Page 17: INT-5: Integrate over the Web with OpenEdge ® Web Services Matthew Harrison Senior Software Engineer, Progress OpenEdge

© 2007 Progress Software Corporation17 INT-5: Integrate over the Web with OpenEdge® Web Services

The WSDL Analyzer

Connection information How to create a Port type (Persistent

Procedure) Lists all the Operations (Internal Procedures) How to call each Operation

• Procedure and Function syntax

Data type format

Output includes:

Port type is modeled as a persistent procedure (although it is not persistent)

Operations are modeled as internal procedures

Page 18: INT-5: Integrate over the Web with OpenEdge ® Web Services Matthew Harrison Senior Software Engineer, Progress OpenEdge

© 2007 Progress Software Corporation18 INT-5: Integrate over the Web with OpenEdge® Web Services

The WSDL Analyzer

There is no guarantee (It is a guideline) No disconnect and cleanup information:

DELETE OBJECT hPortType.hWebService:DISCONNECT().DELETE OBJECT hWebService.

Output limitations:

Page 19: INT-5: Integrate over the Web with OpenEdge ® Web Services Matthew Harrison Senior Software Engineer, Progress OpenEdge

© 2007 Progress Software Corporation19 INT-5: Integrate over the Web with OpenEdge® Web Services

Demonstration: Calling a Web service

Page 20: INT-5: Integrate over the Web with OpenEdge ® Web Services Matthew Harrison Senior Software Engineer, Progress OpenEdge

© 2007 Progress Software Corporation20 INT-5: Integrate over the Web with OpenEdge® Web Services

Agenda

The Value of Web Services

ABL Client as a Consumer

OpenEdge Web Service Provider

Integrate over the Web with OpenEdge Web Services

Page 21: INT-5: Integrate over the Web with OpenEdge ® Web Services Matthew Harrison Senior Software Engineer, Progress OpenEdge

© 2007 Progress Software Corporation21 INT-5: Integrate over the Web with OpenEdge® Web Services

OpenEdge Web Service Provider

Your Application• Broken down into services

Application Server• Hosts application code exposed as services

• Provides database access

ProxyGen• Generate intermediate file used for deployment

(includes wsdl mapping information)

Progress Explorer or wsaman• Manage Web service (deployment)

Required Components

Page 22: INT-5: Integrate over the Web with OpenEdge ® Web Services Matthew Harrison Senior Software Engineer, Progress OpenEdge

© 2007 Progress Software Corporation22 INT-5: Integrate over the Web with OpenEdge® Web Services

OpenEdge Web Service Provider

WSA Servlet • Interface between the Web Service Consumer and the

OpenEdge AppServer™

3rd Party Products• Java Servlet Engine (JSE)

– Provides environment to run WSA servlet

• Web Server– Provides HTTP support– Hosts JSE

Required Components

WSA = Web Services Adapter

Page 23: INT-5: Integrate over the Web with OpenEdge ® Web Services Matthew Harrison Senior Software Engineer, Progress OpenEdge

© 2007 Progress Software Corporation23 INT-5: Integrate over the Web with OpenEdge® Web Services

Deploying a OpenEdge Web Service

ProxyGen WSM

OpenEdge AppServer

OpenEdge Application

Business Logic

r-code

2

1

Web Server

WSA Servlet

Java Servlet Engine

4

WSDL WSM

3

Progress Explorer or

wsaman

Intermediate file used for Web service deployment

WSAD

Page 24: INT-5: Integrate over the Web with OpenEdge ® Web Services Matthew Harrison Senior Software Engineer, Progress OpenEdge

© 2007 Progress Software Corporation24 INT-5: Integrate over the Web with OpenEdge® Web Services

Accessing an OpenEdge Web Service

OpenEdge AppServer

ABL Business Logic

WSA Servlet

Java Servlet Engine

Web service consumer 1

Web Server

WSAD

4

HTTP Listener/Sender

SOAP Processor

2

7

5

3 6

8

Page 25: INT-5: Integrate over the Web with OpenEdge ® Web Services Matthew Harrison Senior Software Engineer, Progress OpenEdge

© 2007 Progress Software Corporation25 INT-5: Integrate over the Web with OpenEdge® Web Services

Demonstration: Deploying a Web service

Page 26: INT-5: Integrate over the Web with OpenEdge ® Web Services Matthew Harrison Senior Software Engineer, Progress OpenEdge

© 2007 Progress Software Corporation26 INT-5: Integrate over the Web with OpenEdge® Web Services

Web Services Troubleshooting

Envelope

Body

Body Entry

fault code

fault string

fault actor

<fault detail>

ABL SOAP Fault

Page 27: INT-5: Integrate over the Web with OpenEdge ® Web Services Matthew Harrison Senior Software Engineer, Progress OpenEdge

© 2007 Progress Software Corporation27 INT-5: Integrate over the Web with OpenEdge® Web Services

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

SKIP "Fault Detail:" ERROR-STATUS:ERROR-OBJECT-DETAIL:SOAP-FAULT-DETAIL

VIEW-AS ALERT-BOX. END. END.

Page 28: INT-5: Integrate over the Web with OpenEdge ® Web Services Matthew Harrison Senior Software Engineer, Progress OpenEdge

© 2007 Progress Software Corporation28 INT-5: Integrate over the Web with OpenEdge® Web Services

SOAP Viewers (prosoapview)

C:\Progress\OpenEdge\bin\prowin32.exe

-proxyhost localhost -proxyport 4444

Page 29: INT-5: Integrate over the Web with OpenEdge ® Web Services Matthew Harrison Senior Software Engineer, Progress OpenEdge

© 2007 Progress Software Corporation29 INT-5: Integrate over the Web with OpenEdge® Web Services

In Summary

Understand Web Services Identify when to use Web Services Progress makes it easy

Implementing OpenEdge Web Services

Web service

provider

Web service

consumerClient

SOAP

over HTTP

Page 30: INT-5: Integrate over the Web with OpenEdge ® Web Services Matthew Harrison Senior Software Engineer, Progress OpenEdge

© 2007 Progress Software Corporation30 INT-5: Integrate over the Web with OpenEdge® Web Services

For More Progress Information, go to…

Progress eLearning Community:• WSDL for OpenEdge Developers• Consuming Web Services from OpenEdge• Opening 4GL Applications to Web Services

Clients

Documentation:• 10.1B Web Services manual• ProxyGen Changes for Web Services in

OpenEdge 10.1A

Page 31: INT-5: Integrate over the Web with OpenEdge ® Web Services Matthew Harrison Senior Software Engineer, Progress OpenEdge

© 2007 Progress Software Corporation31 INT-5: Integrate over the Web with OpenEdge® Web Services

For More Web Services Information, go to…

The World Wide Web Consortium (W3C)• http://www.w3.org/

Web Services Interoperability Organization• http://www.ws-i.org/Default.aspx

• WS-I Basic Profile: – http://www.ws-i.org/Profiles/BasicProfile-1.0-

2004-04-16.html

W3 Schools• http://www.w3schools.com/

Page 32: INT-5: Integrate over the Web with OpenEdge ® Web Services Matthew Harrison Senior Software Engineer, Progress OpenEdge

© 2007 Progress Software Corporation32 INT-5: Integrate over the Web with OpenEdge® Web Services

Questions?

Page 33: INT-5: Integrate over the Web with OpenEdge ® Web Services Matthew Harrison Senior Software Engineer, Progress OpenEdge

© 2007 Progress Software Corporation33 INT-5: Integrate over the Web with OpenEdge® Web Services

Thank you foryour time

Page 34: INT-5: Integrate over the Web with OpenEdge ® Web Services Matthew Harrison Senior Software Engineer, Progress OpenEdge

© 2007 Progress Software Corporation34 INT-5: Integrate over the Web with OpenEdge® Web Services