Title: 150: Integrate over the Web with OpenEdge Web Services
1150 Integrate over the Web with OpenEdge Web
Services
Richard Lausecker
Senior Solution Consultant, Progress Software
Austria
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 connectivity
- 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 snippet 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)
- How to call an Operation (Internal Procedure)
- Procedure syntax
- Function syntax
- Data type format
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)