© 2002, progress software corporation 1 d i s c l a i m e r products under development n this talk...

54
© 2002, Progress Software Corporation 1 I S C L A I M E 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.

Upload: calvin-daniel

Post on 23-Dec-2015

212 views

Category:

Documents


0 download

TRANSCRIPT

© 2002, Progress Software Corporation1

D I S C L A I M E R

Products Under DevelopmentProducts 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.

The Web Services Development ToolkitThe Web Services Development Toolkit

J. Espen [email protected] Services Manager, Norway

© 2002, Progress Software Corporation3

AgendaAgenda

Introduction OpenEdge, Web Services

WSTK Architecture

Developing & Deployment with the WSTK

Connection Management

Open Client Object Model

Demo.....

That's All Folks…

Integration

© 2002, Progress Software Corporation4

Progress OpenEdge : Enkelt, Integrert, ÅpentProgress OpenEdge : Enkelt, Integrert, Åpent

Progress Dynamics™

SonicMQ • SonicXQ

Web Services Dev. Toolkit

AppServer

WebSpeed Transaction Server

RDBMSDataServers

WebClient

WebSpeed

Open ClientGUI/ChUI

Progress4GL

ActuateCorVu

Report BuilderQuery/Results

Fa

tho

mT

M

Pro

Vis

ion

TM

Web

Sp

eed

W

ork

sho

p

Applications

© 2002, Progress Software Corporation5

OpenEdge IntegrationOpenEdge 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

© 2002, Progress Software Corporation6

One definition of a Web ServiceOne 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?

Integration

© 2002, Progress Software Corporation7

Web ServicesWeb Services

Service Producer (Server)– Develops, publishes & deploys the Web Service

Service Registry – Directory of Web Services

Service Consumer (Client)– Locates & uses Web Services

“Logical Model”

Integration

© 2002, Progress Software Corporation8

Web Services StandardsWeb 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

Integration

© 2002, Progress Software Corporation9

HTTPHTTP

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)

Can pass through most firewalls

Hypertext Transfer Protocol

Integration

© 2002, Progress Software Corporation10

XMLXML

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

eXtensible Markup Language

Integration

© 2002, Progress Software Corporation11

XML ExampleXML Example

<?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>

Integration

© 2002, Progress Software Corporation12

SOAPSOAP

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

Simple Object Access Protocol

Integration

© 2002, Progress Software Corporation13

SOAPSOAP

SOAP Envelope SOAP Header

– Mechanism for app-specific extensions

SOAP Body– Main business

content– Usually uses SOAP

encoding

SOAP Envelope

SOAP Header

SOAP Body

App-SpecificBody Elements

App-SpecificHeader Elements

Simple Object Access Protocol

Integration

© 2002, Progress Software Corporation14

<?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>

SOAP ExampleSOAP ExampleStock Quote Web Service – Request Message

Integration

© 2002, Progress Software Corporation15

<?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>

SOAP ExampleSOAP ExampleStock Quote Web Service – Reply Message

Integration

© 2002, Progress Software Corporation16

WSDLWSDL

What can it do? How do I invoke it? Where does it reside?

Web Service Description Language

Integration

© 2002, Progress Software Corporation17

WSDLWSDL

Specifies interface– Business methods that can be invoked

(“operations”)

– Message structure for each method Data fields, types

– Bindings for the operations eg. SOAP over HTTP

Identifies network address of Web Service

Web Service Description Language

Integration

© 2002, Progress Software Corporation18

Machine B

CreditChk

UDDI Registry

GetWeather

2. Web service made available to public, by publishing its WSDL to a UDDI registry

Web ServicesWeb Services

How is the weather in Bedford?Machine A

GetWeatherWS

GetWeatherWS

1. Web service is built and deployed, ready to be published.

Machine C

Client

3. Client searches for available weather services

4. Client finds access info about GetWeather

5. Client makes info request directly to service

6. Service sends result back to client

Integration

© 2002, Progress Software Corporation19

AgendaAgenda

Web Services

WSTK Architecture

Developing & Deployment with the WSTK

Connection Management

Open Client Object Model

That's All Folks…

Integration

© 2002, Progress Software Corporation20

Web Services Toolkit RoadmapWeb 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.

Integration

© 2002, Progress Software Corporation21

Web Services ToolkitWeb Services Toolkit

Generate a WSDL file for an AppServer-based application based on the Open Client programming model

Runtime infrastructure so that an AppServer can be accessed as a Web Service

Phase 1

Integration

© 2002, Progress Software Corporation22

Web Services Toolkit ComponentsWeb Services Toolkit Components

Web Services Adapter (WSA) WSTK enhanced ProxyGen WSTK enhanced Progress Explorer

Integration

© 2002, Progress Software Corporation23

Web Services Toolkit Runtime ArchitectureWeb Services Toolkit Runtime Architecture

HT

TP

L

iste

ner

Web

Ser

vice

s A

dap

ter

Web Server (JSE)

AppServers

WSDLFiles

WSADs

ubroker.properties

POST(Soap)Web

Service Client Response(Soap)

Integration

© 2002, Progress Software Corporation24

Web Services AdapterWeb Services Adapter

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

Integration

© 2002, Progress Software Corporation25

WSADWSAD

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

Deployed to a WSA and maintained persistently

Integration

© 2002, Progress Software Corporation26

AgendaAgenda

Web Services

WSTK Architecture

Developing & Deployment with the WSTK

Connection Management

Open Client Object Model

That's All Folks…

Integration

© 2002, Progress Software Corporation27

Development Site

Deployment Site

WSM

ProxyGen

4GL

ProgressExplorer

WSM

Web Server Site

WSM

WSDLs

Web Services Adapter

WSADs

HTTP Listener

Soa

p

Req

ues

t/R

esp

onse

GE

T W

SD

L

? ?

Deploying an ApplicationDeploying an Application Integration

© 2002, Progress Software Corporation28

ProxyGen

Development Site

Business logic

Proxies

4GL .r files

Java classes

ActiveX

Web Services Mapping File

Integration

© 2002, Progress Software Corporation29

Development SiteDevelopment Site

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

Package the AppServer application for deployment including the WSM file

Step 1: Prepare Application For Deployment

Integration

© 2002, Progress Software Corporation30

Web Server SiteWeb Server Site

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

Step 2: Configure WSA for access

Integration

© 2002, Progress Software Corporation31

Deployment SiteDeployment Site

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

Step 3: Run Progress Explorer to Deploy Application

Integration

© 2002, Progress Software Corporation32

Web Services Communication ModelWeb Services Communication Model

Web Web Service Service ClientClient

BusinessBusinessLogicLogic

AppAppServersServers

Web Server

DatabaseDatabaseServerServer

.NETJavaPerl

WSADs

WS

AW

SA

HT

TP

Lis

ten

erH

TT

P L

iste

ne r

““ Op

en C

lien

t

Op

en C

lien

t

Ru

nt i

me ”

Ru

nt i

me”

WSDLs

HTTP PostHTTP Post

HTTP ResponseHTTP Response

Integration

© 2002, Progress Software Corporation33

Web Services Communication Model, cont.Web Services Communication Model, cont.

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!!

Integration

© 2002, Progress Software Corporation34

AgendaAgenda

Web Services

WSTK Architecture

Developing & Deployment with the WSTK

Connection Management

Open Client Object Model

That's All Folks…

Integration

© 2002, Progress Software Corporation35

Connection ManagementConnection Management

Session Managed– State-aware

– State-reset

– Stateless Session Free

Specified via ProxyGen

Integration

© 2002, Progress Software Corporation36

ApplicationApplicationServerServer

ApplicationApplicationServerServer

StatelessStateless

Application Application BrokerBroker

AppServer

WSAWSAWSAWSA

Web Web ServicesServices

ClientClientConnect

ConnectConnect

Web Web ServicesServices

ClientClient

Integration

© 2002, Progress Software Corporation37

ApplicationApplicationServerServer

ApplicationApplicationServerServer

StatelessStateless

Application Application BrokerBroker

AppServer

WSAWSAWSAWSA

Web Web ServicesServices

ClientClient

Web Web ServicesServices

ClientClientRUN PartRUN Part RUN Part

RUN cust

RUN cust

RUN cust

Integration

© 2002, Progress Software Corporation38

ApplicationApplicationServerServer

ApplicationApplicationServerServer

StatelessStateless

Application Application BrokerBroker

AppServer

WSAWSAWSAWSA

Web Web ServicesServices

ClientClient

Web Web ServicesServices

ClientClient

Integration

© 2002, Progress Software Corporation39

ApplicationApplicationServerServer

ApplicationApplicationServerServer

Session FreeSession Free

Application Application BrokerBroker

AppServer

WSAWSAWSAWSA

Web Web ServicesServices

ClientClient

Web Web ServicesServices

ClientClientRUN PartRUN Part RUN Part

RUN cust

RUN cust

RUN cust

Integration

© 2002, Progress Software Corporation40

ApplicationApplicationServerServer

ApplicationApplicationServerServer

Session FreeSession Free

Application Application BrokerBroker

AppServer

WSAWSAWSAWSA

Web Web ServicesServices

ClientClient

Web Web ServicesServices

ClientClient

Integration

© 2002, Progress Software Corporation41

AgendaAgenda

Web Services

WSTK Architecture

Deploying an Application with the WSTK

Connection Management

Open Client Object Model

That's All Folks…

Integration

© 2002, Progress Software Corporation42

Open Client Object ModelOpen Client Object Model

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)

ApplicationApplicationObjectObject

ProcedureProcedureObjectObject

Sub-Sub-AppObjectAppObject

Integration

© 2002, Progress Software Corporation43

AppServer Session ModelAppServer Session Model

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)

Integration

© 2002, Progress Software Corporation47

Object Relationships at Runtime: Session ManagedObject Relationships at Runtime: Session Managed

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

ApplicationApplicationObjectObject

ProcedureProcedureObjectObject

ProcedureProcedureObjectObject

Sub-Sub-AppObjectAppObject

ProcedureProcedureObjectObject

Method1Method1Method2Method2Method1Method1Method2Method2

MethodXMethodXMethodXMethodX

Proc1Proc1Proc2Proc2FuncXFuncX

Proc1Proc1Proc2Proc2FuncXFuncX

Integration

© 2002, Progress Software Corporation48

Object Relationships at Runtime: Session FreeObject Relationships at Runtime: Session Free

Simply call methods on the AppObject to run non-persistent procedures

No context information for AppObject

Warning: ProcObjects and Sub-AppObjects force connection and context management – Not recommended!

ApplicationApplicationObjectObject

ProcedureProcedureObjectObject

ProcedureProcedureObjectObject

Sub-Sub-AppObjectAppObject

ProcedureProcedureObjectObject

Method1Method1Method2Method2Method1Method1Method2Method2

MethodXMethodXMethodXMethodX

Proc1Proc1Proc2Proc2FuncXFuncX

Proc1Proc1Proc2Proc2FuncXFuncX

Integration

© 2002, Progress Software Corporation49

A Look at ProxyGenA Look at ProxyGen

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

Integration

© 2002, Progress Software Corporation50

ProxyGen: Select 4GL ProceduresProxyGen: Select 4GL ProceduresSelect the 4GL

procedures for each object

Optionally customize the procedure definition

Integration

© 2002, Progress Software Corporation51

ProxyGen: GenerateProxyGen: Generate

Select Web Services Client

Select Session Model

Integration

© 2002, Progress Software Corporation52

ProxyGen: GenerateProxyGen: GenerateEnter initial

deployment information:

– Namespace– WSA URL– SOAP Action– Test WSDL

Generate the “proxy”

Integration

© 2002, Progress Software Corporation53

Required Information for Web Services GenerationRequired Information for Web Services Generation

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

Integration

© 2002, Progress Software Corporation54

Generating the “Proxy”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 WSAhttp://localhost:8080/wsa/wsa1/wsdl?targetURI=OrderService

Integration

© 2002, Progress Software Corporation55

SummarySummary

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

Web Services coming to an application

near you soon

Integration

Integration

© 2002, Progress Software Corporation57

Questions