Call Any Web Service from the Progress 4GL

Slides:



Advertisements
Similar presentations
Oct, 26 th, 2010 OGF 30, NSI-WG: Network Service Interface working group Web Services Overview Web Services for NSI protocol implementation
Advertisements

18 Copyright © 2005, Oracle. All rights reserved. Distributing Modular Applications: Introduction to Web Services.
Web Service Architecture
Siebel Web Services Siebel Web Services March, From
Web Service Ahmed Gamal Ahmed Nile University Bioinformatics Group
General introduction to Web services and an implementation example
SOAP.
Web Services Seminar: Service Description Languages
Web Services Darshan R. Kapadia Gregor von Laszewski 1http://grid.rit.edu.
Web Services Nasrullah. Motivation about web service There are number of programms over the internet that need to communicate with other programms over.
Building and Using Web Services with ASP.NET Rob Howard Program Manager.NET Framework Team Microsoft Corp.
DEV-13: You've Got a Problem, Here’s How to Find It
Scale Up Access to your 4GL Application using Web Services
G O B E Y O N D C O N V E N T I O N WORF: Developing DB2 UDB based Web Services on a Websphere Application Server Kris Van Thillo, ABIS Training & Consulting.
1 An Introduction to Web Services. 2 Outline What is a Web service Background Standards –XML & XML Namespaces, XML Schema,WSDL, SOAP Tools & APIs –DOM/SAX,JAX-RPC/JAX-M.
Presentation 7 part 2: SOAP & WSDL. Ingeniørhøjskolen i Århus Slide 2 Outline Building blocks in Web Services SOA SOAP WSDL (UDDI)
Grid Computing, B. Wilkinson, 20043a.1 WEB SERVICES Introduction.
ΗΛΕΚΤΡΟΝΙΚΟ ΕΜΠΟΡΙΟ Web Services Overview Mary Grammatikou 9/06/2009.
WSDL Web Services Description Language Neet Wadhwani University of Colorado 3 rd October, 2001.
Processing of structured documents Spring 2003, Part 6 Helena Ahonen-Myka.
TP2653 Adv Web Programming SOAP and WSDL. SOAP Simple Object Access Protocol – Lightweight XML-based messaging protocol – A protocol for accessing a Web.
SOA-12: Integrate over the Web with OpenEdge® Web Services
T Network Application Frameworks and XML Web Services and WSDL Sasu Tarkoma Based on slides by Pekka Nikander.
Web Services (SOAP, WSDL, and UDDI)
James Holladay, Mario Sweeney, Vu Tran. Web Services Presentation Web Services Theory James Holladay Tools – Visual Studio Vu Tran Tools – Net Beans Mario.
Web Services Description Language (WSDL) Jason Glenn CDA 5937 Process Coordination in Service and Computational Grids September 30, 2002.
Web Services: WSDL. Kas ir WSDL? Pirms izmantot SOAP ar konkrēto servisu ir jāzina kādai jābūt SOAP ziņojuma struktūrai kuru protokolu izmantot (HTTP,
Dodick Zulaimi Sudirman Lecture 14 Introduction to Web Service Pengantar Teknologi Internet Introduction to Internet Technology.
I Copyright © 2004, Oracle. All rights reserved. Introduction Copyright © 2004, Oracle. All rights reserved.
Web Services Standards. Introduction A web service is a type of component that is available on the web and can be incorporated in applications or used.
1 Web Service Description Language (WSDL) 大葉大學資工系.
INT-5: Integrate over the Web with OpenEdge® Web Services
Chapter 10 Intro to SOAP and WSDL. Objectives By study in the chapter, you will be able to: Describe what is SOAP Exam the rules for creating a SOAP document.
© Drexel University Software Engineering Research Group (SERG) 1 An Introduction to Web Services.
Copyright © 2013 Curt Hill SOAP Protocol for exchanging data and Enabling Web Services.
Establishing a foundation for web services Ashraf Memon.
1 Web Services Web and Database Management System.
S imple O bject A ccess P rotocol Karthikeyan Chandrasekaran & Nandakumar Padmanabhan.
INT-9: Implementing ESB Processes with OpenEdge ® and Sonic ™ David Cleary Principal Software Engineer.
Kemal Baykal Rasim Ismayilov
What is SOAP? Luciano Piccoli. SOAP – Simple Object Access Protocol  SOAP is an XML based protocol to let software components and applications communicate.
WSDL : Web Service Definition Language Dr. Yuhong Yan NRC-IIT-Fredericton Internet logic.
Introduction to Web Services Presented by Sarath Chandra Dorbala.
1 G52IWS: Web Services Description Language (WSDL) Chris Greenhalgh
Copyright 2007, Information Builders. Slide 1 iWay Web Services and WebFOCUS Consumption Michael Florkowski Information Builders.
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved Chapter 9 Web Services: JAX-RPC,
Java Web Services Orca Knowledge Center – Web Service key concepts.
Windows Communication Foundation and Web Services
Jim Fawcett CSE681 – SW Modeling & Analysis Spring 2005
Introduction to Web Services
Sabri Kızanlık Ural Emekçi
WEB SERVICES.
T Network Application Frameworks and XML Web Services and WSDL Sasu Tarkoma Based on slides by Pekka Nikander.
DEV-25: You've Got a Problem, Here’s How to Find It
Windows Communication Foundation and Web Services
Implementing a service-oriented architecture using SOAP
WEB API.
Chapter 9 Web Services: JAX-RPC, WSDL, XML Schema, and SOAP
Web services, WSDL, SOAP and UDDI
CSSSPEC6 SOFTWARE DEVELOPMENT WITH QUALITY ASSURANCE
WEB SERVICES DAVIDE ZERBINO.
Deepak Shenoy Agni Software
Distributed System using Web Services
Distributed System using Web Services
Techniques to Invoke Web Services from SAS
SOA-09: Conducting Business with OpenEdge® and SonicMQ®
.NET Web Services by Akram Mohammed.
Presentation transcript:

Call Any Web Service from the Progress 4GL Michael Resnick Principal Software Engineer SOA-07: Call Any Web Service from the Progress 4GL Description: OpenEdge 10 supports the ability to easily invoke functionality that is exposed as a Web service.  Learn about the tools and the Progress 4GL constructs that you will use to invoke a Web service method.  learn the basic steps required to call out to a Web service from the Progress 4GL.  Start with a WSDL file - the standards-based definition for a Web service - and learn how the WSDL Analyzer  makes it simple to invoke a Web services application and how the 4GL hides the complexity of dealing with SOAP messages. You'll also learn how complex data is handled in the 4GL.  A demonstration will show a Progress 4GL program interacting with a live Web service on the Internet.

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 the information contained herein is preliminary and subject to change. Any future products we ultimately deliver may be materially different from what is described here. D I S C L A I M E R

Agenda Introduction Web Service Basics WSDL Analyzer Calling A Web Service from the 4GL Coming in 10.1A And Beyond

Web Service Client Available in OpenEdge® 10.0A AppServer not needed Client to a different application

Web Services – Why? Heterogeneous connectivity In SOA makes distributed services possible Lower common denominator than either EDI or CORBA

Web Services – Why? Web service providers available Products: OpenEdge, Oracle, IBM DB/2, SalesForce.com, etc. Services: Google, e-Bay, Commonwealth of Massachusetts, etc. Development platforms: OpenEdge, .NET™, J2EE, Apache, WebSphere.

Web Services – Why Not? May not be efficient May not be available

Web Service Basics - Where? Users Enterprise Services Presentation Layer Integration Layer Business Servicing Layer Environment Managers and Utilities Data Access Layer Managed Data Stores Unmanaged Data Stores

Agenda Introduction Web Service Basics WSDL Analyzer Calling A Web Service from the 4GL Coming in 10.1A And Beyond

Web Service Basics – SOAP Message imple O bject A ccess P rotocol Envelope Body Header Header Entry … Body Entry Header optional Entries may be SOAP Faults (errors)

Web Service Basics - WSDL escription L anguage Defines Interface Data encoding Transport Service address Contract between client and server

Anatomy of a Web Service Session WSDL Request A Web Service Provider WSDL Response OpenEdge 4GL Client SOAP Request SOAP Response SOAP Request SOAP Response

Agenda Introduction Web Service Basics WSDL Analyzer Analyzer demonstration Calling A Web Service from the 4GL Coming in 10.1A And Beyond

4GL/WSDL Dictionary 4GL WSDL AppServer™.…......…............. Web service Persistent procedure..............Port type (interface) Internal procedure..................Operation

WSDL Analyzer Command Line Generates 4GL documentation for a web service C:\temp> bprowsdldoc http://api.google.com/GoogleSearch.wsdl google Documentation written to file:///c:\temp\google\index.html C:\temp>

Anatomy of Client Design WSDL Request Web Service Provider WSDL Analyzer WSDL Response OpenEdge 4GL Client Generated Documents

Generated Documents Service Port type Data types Operation Index index connect & call Data types complex data Operation Index

Analyzer Demo Snapshots: Service Documentation

Analyzer Demo Snapshots: Service Document

Analyzer Demo Snapshots: Port Type – Connection Summary

Analyzer Demo Snapshots: Port Type – Operation Summary

Analyzer Demo Snapshots: Port Type – Operation Example

Analyzer Demo Snapshots: Port Type – Operation Parameters

Analyzer Demo Snapshots: Port Type – Complex Parameter Example

Complex Data as TEMP-TABLE addCustomers Procedure prototype PROCEDURE addCustomers: DEFINE INPUT PARAMETER TABLE FOR customerList. DEFINE OUTPUT PARAMETER TABLE FOR conflictList. END PROCEDURE.

Complex Data as TEMP-TABLE Example DEFINE TEMP-TABLE customerList NAMESPACE-URI http://mycompany.com/schemas/customerList NAMESPACE-PREFIX "cust“ FIELD CustNum AS INTEGER FIELD Name AS CHARACTER XML-NODE-TYPE "Attribute“ FIELD Country AS CHARACTER FIELD Comments AS CHARACTER INDEX CustNum IS PRIMARY UNIQUE CustNum INDEX Name Name INDEX Comments IS WORD-INDEX Comments.

Complex Data as TEMP-TABLE Parameters customerList This value is defined as a TEMP-TABLE. This value can also be expressed as a CustomerTable element in The http://mycompany.com/schemas/customerList namespace. As such, this parameter can be passed as a CHARACTER or LONGCHAR value containing an XML document. View example of XML.

Agenda Introduction Web Service Basics WSDL Analyzer Calling A Web Service from the 4GL Data type mapping Connecting and calling Demonstration Header handling Error handling Coming in 10.1A And Beyond

Simple Data Type Map XML Schema Data Type Progress 4GL Data Type string CHARACTER boolean LOGICAL decimal DECIMAL integer INTEGER float, double, duration CHARACTER and LONGCHAR can always be used For complete mappings see documentation

Complex Data Represented two ways: LONGCHAR/CHARACTER of serialized XML document ProDataSet or TEMP-TABLE when possible (10.1A) Analyzer shows examples for each.

Connecting and Calling Just Like An AppServer CREATE SERVER web-svc-handle. web-svc-handle:CONNECT(“-WSDL wsdl-url ws-connect-parms”). RUN port-type-name SET port-type-handle ON web-svc-handle. RUN operation IN port-type-handle(parameters). CREATE SERVER app-server-handle. app-server-handle:CONNECT(“appserver-connect-parms”). RUN persistent-proc PERSISTENT SET procedure-handle ON app-server-handle. RUN internal-proc IN procedure-handle(parameters).

Google Results in Browser

Selected Connection Example

Pasted Connection and Call Examples

Variable Definitions in Completed .p

Connect and Set Port in Completed .p

Call to Google in Completed .p

Search Results Using DOM

Load TEMP-TABLE with Results

4GL Client Results

… … 4GL SOAP Header Objects SOAP-HEADER Envelope Header Header Entry SOAP-HEADER-ENTRYREF … SOAP-HEADER-ENTRYREF … Body Body Entry

SOAP Headers Set a callback port-type-handle:SET-CALLBACK-PROCEDURE( “REQUEST-HEADER | RESPONSE-HEADER”,   “request-handler-name”,   web-service-handle). Write the callback PROCEDURE request-handler-name: DEFINE INPUT PARAMETER soap-header-handle AS HANDLE. DEFINE INPUT PARAMETER operation-namespace AS CHARACTER. DEFINE INPUT PARAMETER operation-local-name AS CHARACTER. END.

Anatomy Of A Web Service Error WSDL Request Web Service Provider WSDL Response OpenEdge 4GL Client SOAP Request SOAP Response (FAULT)

4GL SOAP Fault Envelope Body Body Entry fault code fault string fault actor <faultdetail>

4GL Fault Objects ERROR-STATUS SOAP-FAULT fault info SOAP-FAULT-DETAIL XML

SOAP Fault - Faultstring An error was detected while executing the Web Service request. (10893)

SOAP Fault - Detail <detail> <errorMessage> msg=The server application returned the error: Invoice not found; targetException=ERROR condition: The Server application has returned an error. (7243) (7211)] </errorMessage> <requestID> 172247e5b58beb30:5bb966:fb4fdb744a:-7fff#9 </requestID> </detail>

Agenda Introduction Web Service Basics WSDL Analyzer Calling A Web Service from the 4GL Coming in 10.1A And Beyond

Coming in OpenEdge 10.1A Mapping complex data to ProDataSets and TEMP-TABLEs Support for wrapped document literal Improvements in the WSDL Analyzer Facet documentation Reserved keywords

Beyond 10.1A We are considering Improving complex data support based on OO initiative SOAP 1.2, WSDL 2.0 Support Integration with new OpenEdge IDE Improved validation WS-Security

Web Service or AppServer? In Summary Calling a web service is easy Use the WSDL Analyzer OpenEdge 4GL Client Web Service or AppServer?

SOAP 1.1 Specification SOAP 1.1 Notes (submissions by member organizations) Simple Object Access Protocol (SOAP) 1.1 http://www.w3.org/TR/SOAP

SOAP 1.2 Specifications (1/4) Recommendations (standards) Base SOAP Version 1.2 Part 0: Primer http://www.w3.org/TR/soap12-part0/ SOAP Version 1.2 Part 1: Messaging Framework http://www.w3.org/TR/soap12-part1/ SOAP Version 1.2 Part 2: Adjuncts http://www.w3.org/TR/soap12-part2/ SOAP Version 1.2 Specification Assertions and Test Collection http://www.w3.org/TR/soap12-testcollection

SOAP 1.2 Specifications (2/4) Recommendations (standards) Ancillary SOAP Message Transmission Optimization Mechanism http://www.w3.org/TR/soap12-mtom/ Resource Representation SOAP Header Block http://www.w3.org/TR/soap12-rep/

SOAP 1.2 Specifications (3/4) Drafts (submitted by W3C working groups; will become recommendations) SOAP 1.2 Attachment Feature http://www.w3.org/TR/soap12-af/ SOAP Version 1.2 Message Normalization http://www.w3.org/TR/soap12-n11n/ SOAP Optimized Serialization Use Cases and Requirements http://www.w3.org/TR/soap12-os-ucr/

SOAP 1.2 Specifications (4/4) Notes (submitted by W3C working groups or member organizations) SOAP Version 1.2 Usage Scenarios http://www.w3.org/TR/xmlp-scenarios SOAP Version 1.2 Email Binding http://www.w3.org/TR/soap12-email

WSDL 1.1 Specification WSDL 1.1 Notes (submitted by member organizations) Web Services Description Language (WSDL) 1.1 http://www.w3.org/TR/wsdl

WSDL 2.0 Specifications WSDL 2.0 Drafts (submitted by W3C working group; will become standards) Web Services Description Language (WSDL) Version 2.0 Part 0: Primer http://www.w3.org/TR/wsdl20-primer Web Services Description Language (WSDL) Version 2.0 Part 1: Core Language http://www.w3.org/TR/wsdl20 Web Services Description Language (WSDL) Version 2.0 Part 3: Bindings http://www.w3.org/TR/wsdl20-bindings Web Services Description Language (WSDL) Version 2.0 Part 2: Predefined Extensions http://www.w3.org/TR/wsdl20-extensions

Google Web Service Site Google Web APIs (beta) http://www.google.com/apis

Questions?

Thank you for your time!