820 likes | 1.5k Views
Web Services. Bruce Armstrong TeamSybase bruce.armstrong@teamsybase.com. Agenda. • Introduction to Web Services • Creating .NET Web Services • Consuming Web Services • Web Service DataWindow • Q & A. Introduction to Web Services. Introduction to Web Services.
E N D
Web Services Bruce Armstrong TeamSybase bruce.armstrong@teamsybase.com
Agenda • • Introduction to Web Services • • Creating .NET Web Services • • Consuming Web Services • • Web Service DataWindow • • Q & A
Introduction to Web Services • Facilitate communication between systems • Different platforms • Different programming languages • Through firewalls easily • Self descriptive API • Self descriptive data
What are Web Services? • A collection of operations that can be described, published, located, and accessed over a network using standardized XML messaging • Proposed to World Wide Web Consortium (W3C) in Mar 2001 • http://www.w3c.org • Web Services utilize XML making them both platform and language independent • XML gives us a mechanism for making cross-platform and/or cross-language communications
Web Service Components • The primary components that make up Web Services are: • WSDL – Web Services Description Language • Used to describe Web services • SOAP – Simple Object Access Protocol • Used for sending and receiving messages from Web services
Describing Web Services • Why does a Web service need to be described? • Web services could be used by anyone, anywhere, using any language on any platform • A description allows a developer to know how to interact with a Web service • PowerBuilder provides tools to read and integrate WSDL • Web services are described using Web Services Description Language (WSDL) • WSDL is written in XML • Usually a developer of a Web Service does not have to manually write WSDL • PowerBuilder 11 creates the ASMX, DISCO and WSDL
PowerBuilder/.Net Web Services • PowerBuilder gives you the choice of outputting PowerScript code as an • Assembly • Web Service • The only difference PowerBuilder Web Service creation now versus back in Version 9.0 of PowerBuilder is EAServer is no longer a requirement • These Web Services are deployed to your Microsoft IIS Web Server
Web Service Virtual Directory • The wizard is virtually the same as for .NET assemblies, etc. • You must specify a virtual directory name for your Web Service however because it will live on IIS
.Net Web Service Wizard Output • PBL, Application Object, Project, NVO
Web Service Project • Wizard elections may always be changed in the Project:
Web Service Deployment Options • Directly to IIS or create an MSI install File
Web Service Specifics • You must select which methods you want to expose • You can view WSDL and test your Web Service
Viewing WSDL • Must deploy your .NET Web Service target first • Project View WSDL button OR • In a browser • http://hostname/virtdirname/service.asmx?WSDL
Global.asax file • A source file where developers can add application level logic into their Web applications • Application events such as Application_Start, Application_End, Session_Start, Session_End live here • Located at the root of a particular Web application's virtual directory tree • Automatically parsed and compiled into a dynamic .NET Framework class • The first time any resource or URL within the application namespace is activated or requested
Global.asax file • Configured to automatically reject any direct URL request so that external users cannot download or view the code within <%@ Application Codebehind="Global.asax.cs" Inherits="PBWebApp.Global" %>
DISCO Files • DISCO is a Microsoft technology for publishing and discovering Web Services • DISCO files make it possible to discover the Web Services exposed on a given server • DISCO files make it possible to discover the capabilities of each Web Service (via documentation) and how to interact with it • DISCO files live in the Web Application’s virtual root <?xml version="1.0" encoding="utf-8"?> <discovery xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/disco/"> <contractRef ref="http://localhost/webservice/n_webservice.asmx?wsdl" docRef="http://localhost/webservice/n_webservice.asmx" xmlns="http://schemas.xmlsoap.org/disco/scl/" /> </discovery>
ASPX files • ASP.NET provides support for Web Services with the.asmx file (a wrapper to your Web Service) • Similar to an .aspx files we talked about with PowerBuilder/WebForm applications • From a browser, enter the following: • http://hostname/virtdirname/service.asmx • OR use the following that was generated on deployment of the Web Service: • C:\Inetpub\wwwroot\virtdirname\TestWebService.htm • OR in the deployment project click the Run Web Service button
List of Web Service Operations • The ASMX file lists your Web Service methods • Clicking a link takes you to a test “harness” for that method
Why Did We Do This? • Interoperability • You now have a Web Service ready to be accessed from: • Java • C# • VB (VB.NET) • PowerBuilder • …
Accessing Web Services • Once you have the details and have built your web service consumer application, how do you call that web service’s methods? • Create a Simple Object Access Protocol (SOAP) message • PowerBuilder provides two options capable of reading and writing SOAP messages • “Legacy” EasySoap PBNI extension • “New” .NET Engine
SOAP • An XML-based communications protocol • “Everything is XML” • Industry standard for cross-platform distributed messaging • Defined by World Wide Web Consortium (W3C)
Web Service Consumption • Consuming a Web Service from a PowerBuilder client is very similar to using a PowerBuilder/EAServer component • A proxy is needed, but Web Services require a Web Service proxy, not an EAServer proxy • A connection is needed, but Web Services require a Soap Connection • The Web Service is similar to an NVO/Component in that it is a container of methods which could be called via SOAP messages Continued …
Web Service Consumption • Invoking Web services through SOAP requires: • Serialization and deserialization of data types • The building and parsing of XML-based SOAP messages • A PowerBuilder Web Service client proxy performs these tasks for you eliminating the need to have extensive knowledge of : • The SOAP specification and schema • The XML Schema specification • The WSDL specification and schema
.Net Web Service Engine Flow Prerequisite: .NET 2.0 Framework SDK MUST be installed on development machine. .NET 2.0 Framework (Runtime) MUST be installed on both development and deployment machine.
Specify PBL for generated proxy • It is a standard practice to store your proxies in a separate PBL in your library list
Proxy Project • Upon completion of the WSPW, the new project is visible in the System Tree, and the project will be open in the painter • Next, deploy the project
Use Proxy Servers? • If your company uses a Proxy Server to bridge between you and the Firewall, visit the Tools System Options dialog • Input the name of your Proxy Server, port, your user id and password to that proxy server • This is for design-time Internet connections only
The Web Service Proxy • System Tree (expanded), following the deploy of the proxy project • The function(s) available from the Web Service will be visible under the proxy • Be sure you understand that the proxy project is separate from the actual proxy object
Use of Aliases in Proxy • PowerBuilder is not case sensitive • XML (SOAP) and .NET are case sensitive • To get around that difference, each method in the proxy uses an alias • The string that follows “alias for” contains the case-sensitive name and the signature of the corresponding XML or SOAP method
Exported Web Service Proxy • Note the “alias for” clauses in the function or subroutine declarations
Web Service Runtime Engines • EasySoap Engine – pbsoapclient110.pbd/pbx • This engine is backward compatible with the PB9/PB10 Web Service engine • It can work on machines that don’t have the .NET framework • .NET Engine – pbwsclient110.pbd/pbx • This is new .NET SOAP engine • Both of the above define two classes: • SoapConnection • SoapException