1 / 63

Web Services Development Toolkit: Architecture Evolution and Process-Oriented Applications

This talk provides insights into the architecture transformation in OpenEdge and Web Services WSTK, focusing on developing and deploying with the WSTK, managing connections, and exploring the Open Client Object Model.

pricketts
Download Presentation

Web Services Development Toolkit: Architecture Evolution and Process-Oriented Applications

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”Technical Preview 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 Architecture Transformation 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. Architecture Transformation Distributed Client Architecture Evolution AppServer Business Process Business Process Business Process Application development and application architectures have had an interesting and sometimes painful evolution Process-OrientedApplications HostCentric ClientServer • Service-Oriented Architecture (SOA) is the next-generation interoperation methodology • Technologies such as Web services are a means to that end

  6. Development Transformation Distributed Client Interface Drives the Process AppServer Business Process Business Process Business Process • Traditional application development is from “outside in” • Integration and service orientation require process-centric logic Process-OrientedApplications HostCentric ClientCentric Process Drives the Interface • Process-centric applications require new methods of development • Processes (procedures) are services to and from any client, server, or application

  7. The Applications Business Process Business Process Business Process Coarse-grained, loosely-coupled business processes Application Module Too Large Business Process Process-OrientedApplications Just Right Data Update Logic Too Small

  8. An Application Requires Process-centric design 3 Strategic Elements Logic Platform ESBEnabled User Interface Freedom

  9. User Interface Freedom Access to applications User Interface Freedom • to deploy the interface of choice • to construct or define user interfaces • to respond to competitive pressures • to operate without a user interface! .NET Integration Web Services Open Client Tools Progress ChUI, GUI, Web

  10. ESB Enabled Application components as services OpenEdge Application J2EE Application • Support for Web Services • Support for SonicXQ • Fast Development of New Services Dynamics for SOA XQ Service Container .NET Application XML to 4GL / XML to Storage 4GL to Web Services Integration Web Services ToolKit (WSTK)

  11. Business Logic Platform Business Process Logic Transaction Logic Data Logic Faster assembly of new functionality Logic Platform Business Logic Platform Dynamic Business Logic Progress Dynamics Progress 4GL

  12. An Application Requires Process-centric design 3 Strategic Elements Logic Platform ESBEnabled User Interface Freedom

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

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

  15. One definition of a Web Service “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?

  16. Web Services “Logical Model” • Service Producer (Server) • Develops, publishes & deploys the Web Service • Service Registry • Directory of Web Services • Service Consumer (Client) • Locates & uses Web Services

  17. Web Services Standards • 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

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

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

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

  21. SOAP Example 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>

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

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

  24. 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 How is the weather in Bedford? Machine A

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

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

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

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

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

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

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

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

  33. Deploying an Application 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

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

  35. 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 • Package the AppServer application for deployment including the WSM file

  36. Web Server Site 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

  37. Deployment Site 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

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

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

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

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

  42. Stateless Connect Application Server Connect Connect WSA Application Server AppServer Web Services Client Application Broker Web Services Client

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

  44. Stateless Application Server WSA Application Server AppServer Web Services Client Application Broker Web Services Client

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

  46. Session Free Application Server WSA Application Server AppServer Web Services Client Application Broker Web Services Client

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

  48. Open 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) Application Object Procedure Object Sub- AppObject

  49. AppServer 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)

More Related