Scale Up Access to your 4GL Application using Web Services David Lund Sr. Training Program Manager, Progress Session Focus Implementing Progress 4GL Web Services 2 Identification of the best places to use web services Choosing web service standards and technologies Sample implementation of Progress 4GL Web Service © 2005 Progress Software Corporation Progress 4GL Web Services Agenda Progress 4GL Web Services Getting started Standards Web service provider Deployment Web service consumer 3 © 2005 Progress Software Corporation Progress 4GL Web Services How Does This Relate to SOA Service Oriented Architecture (SOA) – logic concept behind the physical implementations One type of physical implementation is web services Provider Communications Service Oriented 4 © 2005 Progress Software Corporation Progress 4GL Web Services The Value of Web Services Connects applications together through agreed upon standards – Share information between applications without writing a customized interface – Application can be written in any language Provides an alternative method to access existing applications – For example: Access business logic of a client server application over the web 5 © 2005 Progress Software Corporation Progress 4GL Web Services Common Business Logic The basics OpenEdge® AppServer™ = Center of the business logic universe Ways to access business logic – – – – – – – 6 .NET™ Open Client 4GL Client Java™ Open Client Web services WebClient™ WebSpeed® OpenEdge Adapter for SonicMQ® © 2005 Progress Software Corporation Progress 4GL Web Services Configuration Server (Provider) Client/ Server Clients OpenEdge Application Server Web Service Client (Consumer) 7 © 2005 Progress Software Corporation Progress 4GL Web Services Sorting out the Acronyms Standards Provider Deployment Consumer 8 © 2005 Progress Software Corporation Progress 4GL Web Services Agenda Progress 4GL Web Services Getting started Standards Web service provider Deployment Web service consumer 9 © 2005 Progress Software Corporation Progress 4GL Web Services SOAP Protocol for message exchange – Lightweight & XML-based Independent – – – – Standards Encoding Transport Language Platform Extensible – Extra context via headers Supports – message typing – strong typing – structured data 10 © 2005 Progress Software Corporation Progress 4GL Web Services WSDL Web Service Description Language This is the service contract Standards – Data type mapping – SOAP message format – How to call the Web service XML Document Created by – Web service provider Used by – Web service consumer 11 © 2005 Progress Software Corporation Progress 4GL Web Services XML Schema Comprise of a set of agreed upon rules Standards – Structure, Content, Semantics A means for defining for XML Documents – Used to define formats for SOAP and WSDL messages Maps 4GL data types 12 © 2005 Progress Software Corporation Progress 4GL Web Services OpenEdge WSDL Style/Use RPC/Encoded Standards – Messages use remote procedure call (RPC) model – Data format uses SOAP data model Document/Literal – Messages use XML Document model Defined as complex types in Types section – Data format conforms to standard XML schema 13 © 2005 Progress Software Corporation Progress 4GL Web Services Web Services is Defined by Standards Web Services – A set of standards that comprise a platform for building distributed, interoperable applications Progress 4GL Web Services utilizes W3C standards – WSDL 1.1 (W3C Note – de facto standard) – SOAP 1.1 HTTP Binding – 2001 XML Schema 14 © 2005 Progress Software Corporation Progress 4GL Web Services Agenda Progress 4GL Web Services Getting started Standards Web service provider Deployment Web service consumer 15 © 2005 Progress Software Corporation Progress 4GL Web Services Open Client Object Model Proc Object Always one Establishes connection External procedures Provider Zero or more Shares connection Internal procedures/UDFs Zero or more Shares connection External procedures 16 © 2005 Progress Software Corporation Progress 4GL Web Services WSM Web Service Mapping File Lists Provider – Objects – Operations Identifies Session Model Initializes deployment information Created by ProxyGen 17 © 2005 Progress Software Corporation Progress 4GL Web Services ProxyGen Tool App Object Proc Object 4GL Business Logic (r-code) Project file (.xpxg) SubAppObj Web Services Mapping file (.wsm) 18 © 2005 Progress Software Corporation Web Service Description Language file (.wsdl) Log file (.log) Progress 4GL Web Services ProxyGen Tool Selecting procedures AppObj FindEmpByNum.r ListDeptEmp.r ProcObj PersistenData.r 19 © 2005 Progress Software Corporation Progress 4GL Web Services ProxyGen Tool General Tab Generation Options AppService Generated Proxy 20 © 2005 Progress Software Corporation Progress 4GL Web Services ProxyGen Tool Web Services Tab Generation Options Session Model Namespace URL Style/Use 21 © 2005 Progress Software Corporation Progress 4GL Web Services Demonstration ProxyGen 22 © 2005 Progress Software Corporation Progress 4GL Web Services Agenda Progress 4GL Web Services Getting started Standards Web service provider Deployment Web service consumer 23 © 2005 Progress Software Corporation Progress 4GL Web Services HTTP/HTTPS Deployment Communications Protocol Used to transport SOAP messages – SOAP 1.1 HTTP Binding Post/Response HTTPS – SSL – Securely send messages 24 © 2005 Progress Software Corporation Progress 4GL Web Services JSE Java Servlet Engine Third party components… Deployment Runs servlets – Progress 4GL Web Services deploys a servlet JSE’s available from 3rd party vendors – Examples use Apache Tomcat Has built in Web Server – Not recommended for production 25 © 2005 Progress Software Corporation Progress 4GL Web Services Web Server Third party components… Deployment Required Accepts HTTP/HTTPS communications Hosts JSE 26 © 2005 Progress Software Corporation Progress 4GL Web Services WSA Web Services Adapter Deployment WSA = Java™ servlet Runs in JSE Administers and provides access to deployed Progress 4GL Web services Decodes and encodes SOAP messages 27 © 2005 Progress Software Corporation Progress 4GL Web Services WSA in JSE on Web Server WSA Java Servlet 28 © 2005 Progress Software Corporation SOAP / HTTP Web Server HTTP Listener Consumer Progress 4GL Web Services Session Model Deployment Session Managed – State-aware, State-reset, Stateless – Holds resources Session Free – Does not maintain any state 29 © 2005 Progress Software Corporation Progress 4GL Web Services WSAD Web Service Application Descriptor Deployment Describes web service to the WSA Information on how to access AppServer application 30 © 2005 Progress Software Corporation Progress 4GL Web Services Deployment 31 © 2005 Progress Software Corporation Progress Explorer Demonstration Progress 4GL Web Services Agenda Progress 4GL Web Services Getting started Standards Web service provider Deployment Web service consumer 32 © 2005 Progress Software Corporation Progress 4GL Web Services Service Consumer Calls the web service Typical Scenarios Consumer – Application to Application Business to Business Background – End User Portions of application available 33 © 2005 Progress Software Corporation Progress 4GL Web Services The Client Consumer POST SOAP over HTTP Response SOAP over HTTP Java™ .NET Progress Other WSDL 34 © 2005 Progress Software Corporation Progress 4GL Web Services Putting It All Together HTTP Listener WSA Java Servlet Web Server Client (Consumer) POST SOAP over HTTP Response SOAP over HTTP Server (Provider) OpenEdge Application Server 35 © 2005 Progress Software Corporation Progress 4GL Web Services Demonstration Calling a Web Service 36 © 2005 Progress Software Corporation Server (Provider) Progress 4GL Web Services In Summary Implementing Progress 4GL Web Services Identify where to use web services solutions Choose the web service standards and technologies to suit your needs Use the examples to help in implementing your own web service solutions 37 © 2005 Progress Software Corporation Progress 4GL Web Services Documentation OpenEdge Development – Web Services – Progress 4GL Reference 38 © 2005 Progress Software Corporation Progress 4GL Web Services Questions? Server Client/ Server OpenEdge Application Server Web Service Clients Client 39 © 2005 Progress Software Corporation Progress 4GL Web Services Thank you for your time! 40 © 2005 Progress Software Corporation Progress 4GL Web Services 41 © 2005 Progress Software Corporation Progress 4GL Web Services