1 / 54

Products Under Development

Learn about the Web Services Development Toolkit and its architecture for developing and deploying web services. Discover how to use the toolkit for connection management and open client object model.

stevenelder
Download Presentation

Products Under Development

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Products Under Development D I S C L A I M E R • 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.

  2. The Web Services Development Toolkit J. Espen Stokke estokke@progress.com Professional Services Manager, Norway

  3. Agenda Integration Introduction OpenEdge, Web Services WSTK Architecture Developing&Deployment with the WSTK Connection Management Open Client Object Model Demo..... That's All Folks…

  4. Progress OpenEdge : Enkelt, Integrert, Åpent Applications Progress Dynamics™ Actuate CorVu Report Builder Query/Results WebClientWebSpeedOpen ClientGUI/ChUI Progress4GL ProVisionTM WebSpeed Workshop FathomTM SonicMQ • SonicXQ Web Services Dev. Toolkit AppServer WebSpeed Transaction Server RDBMSDataServers

  5. 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

  6. One definition of a Web Service Integration “Web Services is the telephone for applications.” 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. How is the weather in Bedford?

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

  8. Web Services Standards Integration • HTTPHypertext Transfer Protocol • Protocol for sending data over the Web • XMLeXtensible Markup Language • Standard way to represent & exchange data • SOAPSimple Object Access Protocol • XML based messaging protocol (eg. RPCs) • An extensible message format • WSDLWeb Service Description Language • XML based language • A Service Description language • UDDI • A standard for Web Service registries • A way to discover Web Service providers

  9. HTTP Integration 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) • Can pass through most firewalls

  10. 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

  11. 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>

  12. 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

  13. SOAP SOAP Envelope SOAP Header App-Specific Header Elements SOAP Body App-Specific Body Elements Integration Simple Object Access Protocol • SOAP Envelope • SOAP Header • Mechanism for app-specific extensions • SOAP Body • Main business content • Usually uses SOAP encoding

  14. SOAP Example Integration 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>

  15. 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>

  16. WSDL Integration Web Service Description Language • What can it do? • How do I invoke it? • Where does it reside?

  17. 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 • eg. SOAP over HTTP • Identifies network address of Web Service

  18. Web Services 1. Web service is built and deployed, ready to be published. 2. Web service made available to public, by publishing its WSDL to a UDDI registry Machine B 5. Client makes info request directly to service UDDI Registry GetWeather WS CreditChk 6. Service sends result back to client 3. Client searches for available weather services Machine C GetWeather 4. Client finds access info about GetWeather Client Integration How is the weather in Bedford? Machine A

  19. Agenda Integration Web Services WSTK Architecture Developing&Deployment with the WSTK Connection Management Open Client Object Model That's All Folks…

  20. Web Services Toolkit Roadmap • RUN foo on SERVER web-service-hdl. Integration • 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.

  21. Web Services Toolkit Integration Phase 1 • 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

  22. Web Services Toolkit Components Integration • Web Services Adapter (WSA) • WSTK enhanced ProxyGen • WSTK enhanced Progress Explorer

  23. Web Services Toolkit Runtime Architecture POST(Soap) Response(Soap) Integration Web Server (JSE) Web Service Client HTTP Listener Web Services Adapter AppServers WSADs WSDLFiles ubroker.properties

  24. Web Services Adapter 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

  25. 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 • Deployed to a WSA and maintained persistently

  26. Agenda Integration Web Services WSTK Architecture Developing&Deployment with the WSTK Connection Management Open Client Object Model That's All Folks…

  27. Deploying an Application Integration Development Site Deployment Site Soap Request/Response GET WSDL ? ? 4GL WSM HTTP Listener ProgressExplorer Web Server Site ProxyGen Web Services Adapter WSM WSM WSDLs WSADs

  28. Web Services Mapping File Java classes ActiveX Integration Development Site 4GL .r files Business logic ProxyGen Proxies

  29. Development Site Integration 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 • Package the AppServer application for deployment including the WSM file

  30. 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

  31. 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

  32. Web Services Communication Model App Servers Business Logic Database Server Integration Web Server WSA Web Service Client HTTP Post “Open Client Runtime” HTTP Listener HTTP Response .NET Java Perl WSDLs WSADs

  33. Web Services Communication Model, cont. Integration • 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!!

  34. Agenda Integration Web Services WSTK Architecture Developing&Deployment with the WSTK Connection Management Open Client Object Model That's All Folks…

  35. Connection Management Integration Specified via ProxyGen • Session Managed • State-aware • State-reset • Stateless • Session Free

  36. Stateless Connect Application Server Connect Connect WSA Application Server Integration AppServer Web Services Client Application Broker Web Services Client

  37. Stateless RUN cust Application Server RUN cust RUN cust WSA Application Server RUN Part RUN Part RUN Part Integration AppServer Web Services Client Application Broker Web Services Client

  38. Stateless Application Server WSA Application Server Integration AppServer Web Services Client Application Broker Web Services Client

  39. Session Free RUN cust Application Server RUN cust RUN cust WSA Application Server RUN Part RUN Part RUN Part Integration AppServer Web Services Client Application Broker Web Services Client

  40. Session Free Application Server WSA Application Server Integration AppServer Web Services Client Application Broker Web Services Client

  41. Agenda Integration Web Services WSTK Architecture Deploying an Application with the WSTK Connection Management Open Client Object Model That's All Folks…

  42. 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 Procedure Object Sub- AppObject

  43. 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)

  44. Object Relationships at Runtime: Session Managed Integration Procedure Object Proc1 Proc2 FuncX Sub- AppObject • 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 MethodX Procedure Object Application Object Procedure Object Method1 Method2

  45. Object Relationships at Runtime: Session Free Integration Procedure Object Proc1 Proc2 FuncX Sub- AppObject • 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! MethodX Procedure Object Application Object Procedure Object Method1 Method2

  46. 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

  47. ProxyGen: Select 4GL Procedures Integration Select the 4GL procedures for each object Optionally customize the procedure definition

  48. ProxyGen: Generate Integration Select Web Services Client Select Session Model

  49. ProxyGen: Generate Integration Enter initial deployment information: • Namespace • WSA URL • SOAP Action • Test WSDL Generate the “proxy”

  50. 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

More Related