Title: INT-5: Integrate over the Web with OpenEdge
1INT-5 Integrate over the Web with OpenEdge Web
Services
Matthew Harrison
Senior Software Engineer, Progress OpenEdge
2Initial Audience Reaction
3Session Focus
Implementing OpenEdge Web Services
- Understanding Web Services
- Identify when to use Web Services
- Implementing an OpenEdge service consumer
- Implementing an OpenEdge service provider
4Agenda
Integrate over the Web with OpenEdge Web Services
- The Value of Web Services
- OpenEdge Web Service Provider
- ABL Client as a Consumer
5What is Web Services?
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
- Simple Object Access Protocol (SOAP)
- Web Service Definition Language (WSDL)
- XML
W3C World Wide Web Consortium,
http//www.w3.org/
6Standards SOAP
Simple Object Access Protocol
- Protocol for message exchange
- XML-based
- Independent of encoding, transport, language, and
platform
7Standards WSDL
Web Services Description Language
- 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
Contract between provider and consumer
8Consumers and Providers
- 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
9The 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.
10Web Services
- Heterogeneous
- Distributed
- Interoperable
- SOAP
- WSDL
- Consumers
- Providers
What are we really talking about?
11Web Services Demonstration
12Agenda
Integrate over the Web with OpenEdge Web Services
- The Value of Web Services
- ABL Client as a Consumer
- OpenEdge Web Service Provider
13Web Services ABL Client Requirements
What do I need to know?
- How to use the WSDL Analyzer
- A little AppServer persistent procedure syntax
Thats all!
14Web 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
15OpenEdge Client calling a Web service
Web service consumer
Web service provider
HTTP Client
Request WSDL
Call Service
Client ABL Application Code
Service Response
16WSDL Analyzer (command bprowsdldoc)
- Input WSDL (obtained from service provider)
- Output HTML documentation
- ABL code snippets and examples
- SOAP/XML samples
- Textual information about service
proenvgtbprowsdldoc http//localhost8080/wsa/wsa1/
wsdl?targetURIurnwsProviderEmp
myOutput Documentation written to File///C\OpenE
dge\WRK\myOutput\index.html
17The WSDL Analyzer
Output includes
- 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
Port type is modeled as a persistent procedure
(although it is not persistent)
Operations are modeled as internal procedures
18The WSDL Analyzer
Output limitations
- There is no guarantee (It is a guideline)
- No disconnect and cleanup information
- DELETE OBJECT hPortType.
- hWebServiceDISCONNECT().
- DELETE OBJECT hWebService.
19Demonstration Calling a Web service
20Agenda
Integrate over the Web with OpenEdge Web Services
- The Value of Web Services
- ABL Client as a Consumer
- OpenEdge Web Service Provider
21OpenEdge Web Service Provider
Required Components
- 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)
22OpenEdge Web Service Provider
Required Components
- 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
WSA Web Services Adapter
23Deploying a OpenEdge Web Service
OpenEdge AppServer
Web Server
OpenEdge Application Business Logic
Java Servlet Engine
WSA Servlet
r-code
WSM
Progress Explorer or wsaman
ProxyGen
Intermediate file used for Web service deployment
24Accessing an OpenEdge Web Service
Web Server
HTTP Listener/Sender
Web service consumer
Java Servlet Engine
WSA Servlet
OpenEdge AppServer
ABL Business Logic
25Demonstration Deploying a Web service
26Web Services Troubleshooting
ABL SOAP Fault
27SOAP 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-OBJECT-DETAILSOAP-FAULT-ACTOR
SKIP "Fault String" ERROR-STATUSERROR-OBJ
ECT-DETAILSOAP-FAULT-STRING SKIP "Fault
Detail" ERROR-STATUSERROR-OBJECT-DETAILSOAP-FAU
LT-DETAIL VIEW-AS ALERT-BOX. END. END.
28SOAP Viewers (prosoapview)
C\Progress\OpenEdge\bin\prowin32.exe -proxyhost
localhost -proxyport 4444
29In Summary
Implementing OpenEdge Web Services
- Understand Web Services
- Identify when to use Web Services
- Progress makes it easy
30For 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
31For 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/
32Questions?
33Thank you foryour time
34(No Transcript)