Integration

advertisement
Products Under Development



This talk includes information about potential
future products and/or product enhancements.
What I am going to say reflects our current
thinking, but some information contained herein
is preliminary and subject to change. Any future
products we ultimately deliver may be materially
different from what is described here.
In other words - you can’t believe everything I’m
going to say.
D
1
I
S
C
L
A
I
M
E
R
© 2002, Progress Software Corporation
The Web Services
Development Toolkit
J. Espen Stokke
estokke@progress.com
Professional Services Manager, Norway
Agenda
Integration
Introduction OpenEdge, Web Services
WSTK Architecture
Developing & Deployment with the WSTK
Connection Management
Open Client Object Model
Demo.....
That's All Folks…
3
© 2002, Progress Software Corporation
Progress OpenEdge :
Enkelt, Integrert, Åpent
Progress Dynamics™
Actuate
WebClient
CorVu
WebSpeed Progress
Report Builder
4GL
Open Client
Query/Results
GUI/ChUI
SonicMQ • SonicXQ
FathomTM
ProVisionTM
WebSpeed Workshop
Applications
Web Services Dev. Toolkit
AppServer
WebSpeed Transaction Server
RDBMS
DataServers
4
© 2002, Progress Software Corporation
OpenEdge Integration
SonicMQ & SonicXQ
Web Services Development Toolkit
“Using Web services will help
reduce costs and improve the
efficiency of IT projects by 30
percent.”
Daryl Plummer
Sr. VP, Gartner Group
5
© 2002, Progress Software Corporation
Integration
One definition of a Web Service
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 can be described using WSDL.
“Web Services is the
telephone for applications.”
How is the weather in Bedford?
6
© 2002, Progress Software Corporation
Web Services
Integration
“Logical Model”

Service Producer (Server)
– Develops, publishes & deploys the Web Service

Service Registry
– Directory of Web Services

Service Consumer (Client)
– Locates & uses Web Services
7
© 2002, Progress Software Corporation
Integration
Web Services Standards

HTTP
Hypertext Transfer Protocol
– Protocol for sending data over the Web

XML
eXtensible Markup Language
– Standard way to represent & exchange data

SOAP
Simple Object Access Protocol
– XML based messaging protocol (eg. RPCs)
– An extensible message format

WSDL
Web Service Description Language
– XML based language
– A Service Description language

UDDI
– A standard for Web Service registries
– A way to discover Web Service providers
8
© 2002, Progress Software Corporation
Integration
HTTP
Hypertext Transfer Protocol



Stateless, connectionless, request/reply protocol
Use is ubiquitous throughout the internet
Most commonly used methods:
– GET used for most web pages

Client can send some data in URL parameters
– POST allows client to send arbitrary body of data


HTML forms are a commonly found example
Common Web Service usage:
– Request/response via POST method
– Body contains data (eg. SOAP message)

9
Can pass through most firewalls
© 2002, Progress Software Corporation
XML
Integration
eXtensible Markup Language
 Self-describing
 Easy to use
 Structured
 International
 Can be validated
– DTD, XML Schema


Many tools avail for most platforms, languages
Not inherently associated with presentation semantics
– More flexible than HTML
10
© 2002, Progress Software Corporation
XML Example
Integration
<?xml version="1.0" encoding="UTF-8"?>
<Customer type=“partner”>
<Custnum>5</Custnum>
<Name>Go Fishing Ltd</Name>
<Address2>83 Ponders End Rd</Address2>
<City>Harrow</City>
<State>Middlesex</State>
<PostalCode>HA8 3LU</PostalCode>
<Balance>14235.14</Balance>
</Customer>
11
© 2002, Progress Software Corporation
SOAP
Integration
Simple Object Access Protocol





XML based messaging
Typically used for RPCs over HTTP
Language and platform independent
Request/Response
W3C Note – defacto standard
http://www.w3.org/TR/SOAP
12
© 2002, Progress Software Corporation
SOAP
Integration
Simple Object Access Protocol


SOAP Envelope
SOAP Header
– Mechanism for appspecific extensions

SOAP Header
App-Specific
Header Elements
SOAP Body
– Main business
content
– Usually uses SOAP
encoding
13
SOAP Envelope
SOAP Body
App-Specific
Body Elements
© 2002, Progress Software Corporation
Integration
SOAP Example
Stock Quote Web Service – Request Message
<?xml version="1.0" encoding="utf-8"?>
<SOAP-ENV:Envelope
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Body>
<getQuote xmlns="http://some-site.com">
<symbol xsi:type="xsd:string">qadi</symbol>
</getQuote>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
14
© 2002, Progress Software Corporation
SOAP Example
Integration
Stock Quote Web Service – Reply Message
<?xml version="1.0" encoding="utf-8"?>
<SOAP-ENV:Envelope
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Body>
<getQuoteResponse "xmlns="http://www.some-site.com/">
<getQuoteResult xsi:type="xsd:float">99.8503</getQuoteResult>
</getQuoteResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
15
© 2002, Progress Software Corporation
WSDL
Integration
Web Service Description Language



16
What can it do?
How do I invoke it?
Where does it reside?
© 2002, Progress Software Corporation
WSDL
Integration
Web Service Description Language

Specifies interface
– Business methods that can be invoked
(“operations”)
– Message structure for each method

Data fields, types
– Bindings for the operations


17
eg. SOAP over HTTP
Identifies network address of Web Service
© 2002, Progress Software Corporation
Integration
Web Services
How is the weather in Bedford?
Machine A
1. Web service is built and
deployed, ready to be
published.
GetWeather
WS
2. Web service made available to public, by
publishing its WSDL to a UDDI registry
5. Client makes info
request directly to
service
UDDI Registry
CreditChk
6. Service sends
result back to client
Machine C
Client
18
Machine B
3. Client searches for available
weather services
GetWeather
4. Client finds access info
about GetWeather
© 2002, Progress Software Corporation
Agenda
Integration
Web Services
WSTK Architecture
Developing & Deployment with the WSTK
Connection Management
Open Client Object Model
That's All Folks…
19
© 2002, Progress Software Corporation
Integration
Web Services Toolkit Roadmap

Phase 1
– Web Service-enabled AppServer
– Web Service Client is another Open Client

Phase 2
– 4GL to a Web Service
– It’s just like calling another AppServer, e.g.
RUN foo on SERVER web-service-hdl.
20
© 2002, Progress Software Corporation
Web Services Toolkit
Integration
Phase 1
21

Generate a WSDL file for an AppServerbased application based on the Open
Client programming model

Runtime infrastructure so that an
AppServer can be accessed as a Web
Service
© 2002, Progress Software Corporation
Integration
Web Services Toolkit Components



22
Web Services Adapter (WSA)
WSTK enhanced ProxyGen
WSTK enhanced Progress Explorer
© 2002, Progress Software Corporation
Web Services Toolkit
Runtime Architecture
Integration
POST(Soap)
Response(Soap)
WSDL
Files
23
Web Services Adapter
Web
Service
Client
HTTP
Listener
Web Server (JSE)
AppServers
WSADs
ubroker.properties
© 2002, Progress Software Corporation
Web Services Adapter






24
Integration
Progress provided Java Servlet
Can use any Web Server and JSE that
supports the JSE V2.2 specification
Manages all communications between a
Web Service client and an AppServer
Converts a SOAP request to an AppServer
request using a Web Service Application
descriptor (WSAD)
One WSAD deployed for each application
Configured using Progress Explorer
© 2002, Progress Software Corporation
WSAD



Integration
One WSAD per application identified by
XML namespace
Conceptually similar to Open Client
proxies
Includes:
– Application service to use
– 4GL procedure to call for each SOAP
request
– Parameter and datatype information

25
Deployed to a WSA and maintained
persistently
© 2002, Progress Software Corporation
Agenda
Integration
Web Services
WSTK Architecture
Developing & Deployment with the WSTK
Connection Management
Open Client Object Model
That's All Folks…
26
© 2002, Progress Software Corporation
Integration
Deployment
Site
?
4GL
ProxyGen
WSM
?
GET WSDL
Development
Site
Soap
Request/Response
Deploying an Application
HTTP
Listener
Progress
Explorer
Web Server Site
Web
Services
Adapter
WSM
WSM
WSDLs
27
WSADs
© 2002, Progress Software Corporation
Integration
Development Site
4GL
.r files
Business logic
ProxyGen
Proxies
Web Services
Mapping File
Java classes
ActiveX
28
© 2002, Progress Software Corporation
Integration
Development Site
Step 1: Prepare Application For Deployment

Using ProxyGen
– Create ProxyObjects



AppObject (One)
SubAppObjects (Optional – many)
ProcObjects (Optional – many)
– Initiate generation of Web Service Mapping (WSM)
file
– Specify whether application is session managed or
session free – more on this later

29
Package the AppServer application for
deployment including the WSM file
© 2002, Progress Software Corporation
Web Server Site
Integration
Step 2: Configure WSA for access



Install JSE at Web Server as required
Install Web Services Adapter (WSA) within
JSE
Configure WSA by editing
ubroker.properties or using Progress
Explorer
– Log file
– URL of WSA instance
– Controlling NameServer
30
© 2002, Progress Software Corporation
Deployment Site
Integration
Step 3: Run Progress Explorer to Deploy Application
 Specify:
– WSA instance to use
– Location of WSM
– WSDL Generation Info


Target namespace
WSDL Encoding
– Application Service of corresponding AppServer

Results in:
– WSM being sent to WSA instance along with WSDL
generation info
– WSDL and WSAD being generated by WSA
instance
– WSAD being loaded so application is available for
access
31
© 2002, Progress Software Corporation
Integration
Web Services Communication Model
Web Server
Web
Service
Client
App
Servers
HTTP Post
HTTP Response
Business
Logic
.NET
Java
Perl
WSDLs
32
WSADs
Database
Server
© 2002, Progress Software Corporation
Integration
Web Services
Communication Model, cont.





33
Client sends a SOAP request to the WSA
The WSA maps the request to a procedure
on the AppServer using the WSAD
The WSA asks the AppServer to run the
procedure
The WSA creates a SOAP response or
fault and sends it to the client
Remember - No Progress code on the
client!!
© 2002, Progress Software Corporation
Agenda
Integration
Web Services
WSTK Architecture
Developing & Deployment with the WSTK
Connection Management
Open Client Object Model
That's All Folks…
34
© 2002, Progress Software Corporation
Connection Management
Integration
Specified via ProxyGen

Session Managed
– State-aware
– State-reset
– Stateless

35
Session Free
© 2002, Progress Software Corporation
Integration
Stateless
AppServer
Web
Services
Client
Connect
Connect
WSA
Web
Services
Client
36
Connect
Application
Server
Application
Broker
Application
Server
© 2002, Progress Software Corporation
Integration
Stateless
AppServer
Web
Services
Client
RUN cust
RUN cust
WSA
Web
Services
Client
37
RUN Part
RUN cust
Application
Server
Application
Broker
RUN Part
RUN Part
Application
Server
© 2002, Progress Software Corporation
Integration
Stateless
AppServer
Web
Services
Client
Application
Server
WSA
Web
Services
Client
38
Application
Broker
Application
Server
© 2002, Progress Software Corporation
Integration
Session Free
AppServer
Web
Services
Client
RUN cust
RUN cust
WSA
Web
Services
Client
39
RUN Part
RUN cust
Application
Server
Application
Broker
RUN Part
RUN Part
Application
Server
© 2002, Progress Software Corporation
Integration
Session Free
AppServer
Web
Services
Client
Application
Server
WSA
Web
Services
Client
40
Application
Broker
Application
Server
© 2002, Progress Software Corporation
Agenda
Integration
Web Services
WSTK Architecture
Deploying an Application with the WSTK
Connection Management
Open Client Object Model
That's All Folks…
41
© 2002, Progress Software Corporation
Open Client Object Model

Integration
Object types:
– ApplicationObjects
(AppObjects)
– Sub-ApplicationObjects (Sub-AppObjects)
– ProcedureObjects
(ProcObjects)

Objects are used to:
– Provide access to the 4GL logic running on
the AppServer
– Provide runtime context (if necessary)
Application
Object
42
Procedure
Object
SubAppObject
© 2002, Progress Software Corporation
AppServer Session Model

Integration
Session Managed
– Connection is established by the client
– Connection is dedicated by the WSA to the
AppServer for that client
– AppServers today follow this model (state-aware,
state-reset, stateless)

Session Free
– No connection required
– Pool of network resources in the WSA shared by
all clients
– Web Services design center (state-free)
43
© 2002, Progress Software Corporation
Object Relationships at
Runtime: Session Managed
Procedure
Object
SubAppObject
Integration
Proc1
Proc2
FuncX
MethodX
Application
Object
Procedure
Object
Procedure
Object



Method1
Method2
47

Call Connect on AppObject
first to establish connection
All objects share single
connection
Context information must be
managed by client
Connection maintained until all
objects released
© 2002, Progress Software Corporation
Object Relationships at
Runtime: Session Free
Procedure
Object
SubAppObject
Integration
Proc1
Proc2
FuncX
MethodX
Application
Object
Procedure
Object
Procedure
Object



Method1
Method2
48
Simply call methods on the
AppObject to run nonpersistent procedures
No context information for
AppObject
Warning: ProcObjects and
Sub-AppObjects force
connection and context
management – Not
recommended!
© 2002, Progress Software Corporation
A Look at ProxyGen
Integration
ProxyGen works
the same for
Web Services
as it does for
Java and
ActiveX
Define the Objects
and generate
the proxy for
the client
(WSM/WSDL)
New deployment
step required
in Progress
Explorer
49
© 2002, Progress Software Corporation
Integration
ProxyGen: Select 4GL Procedures
Select the 4GL
procedures for
each object
Optionally
customize the
procedure
definition
50
© 2002, Progress Software Corporation
ProxyGen: Generate
Integration
Select Web
Services Client
Select Session
Model
51
© 2002, Progress Software Corporation
ProxyGen: Generate
Integration
Enter initial
deployment
information:
– Namespace
– WSA URL
– SOAP
Action
– Test WSDL
Generate the
“proxy”
52
© 2002, Progress Software Corporation
Required Information for
Web Services Generation

Integration
Namespace
– Unique identifier for the Web Service
– Must be unique at the WSA instance

WSA URL
– URL identifying the location of the WSA

SOAP Action
– May be blank, client may need

Test WSDL
– Supports a single style/use
53
© 2002, Progress Software Corporation
Integration
Generating the “Proxy”

Proxy Generation for Web Services
– Uses the 4GL code to generate a Web Services
Mapping (WSM) file
– Optionally generates a Test WSDL file

Deployment Phase
–
–
–
–
Done in Progress Explorer or wsaman
Converts the WSM file to a WSAD
Deployer can change ProxyGen settings
WSDL available through the WSA
http://localhost:8080/wsa/wsa1/wsdl?targetURI=OrderService
54
© 2002, Progress Software Corporation
Integration
Summary


Web Service enabled AppServer based on
Open Client model
Progress provides the technology you
need so you can focus on your business
and application requirements
Web Services
coming to an application
near you soon
55
© 2002, Progress Software Corporation
Integration
Questions
57
© 2002, Progress Software Corporation
Download