Presentation is loading. Please wait.

Presentation is loading. Please wait.

Techniques to Invoke Web Services from SAS

Similar presentations


Presentation on theme: "Techniques to Invoke Web Services from SAS"— Presentation transcript:

1 Techniques to Invoke Web Services from SAS
Leveraging Web Services within your SAS Programs

2 Greg Ludwinski, Statistics Canada
Agenda Introduction to Web Services SOAP WSDL Using Services Techniques to Invoke Web Services What SAS offers Benefits and Limitations An alternative Approach Demonstration Thursday, May-30-19 Greg Ludwinski, Statistics Canada

3 Greg Ludwinski, Statistics Canada
What is a Web Service? A software application identified by a URI Defined, described and discovered as xml artifacts (WSDL). Supports direct interactions with other software agents using XML-based messages (SOAP) exchanged via standard network protocols (HTTP). Thursday, May-30-19 Greg Ludwinski, Statistics Canada

4 Greg Ludwinski, Statistics Canada
Web Services Stack UDDI Discovery & publication WSDL Service description Management QOS Security SOAP Messaging HTTP, TCP Transportation Thursday, May-30-19 Greg Ludwinski, Statistics Canada

5 Greg Ludwinski, Statistics Canada
SOAP SOAP is an XML based markup language for messaging between applications. Web Services expose functionality to users through SOAP. Transport protocol neutral Thursday, May-30-19 Greg Ludwinski, Statistics Canada

6 SOAP Message Structure
SOAP Message (an XML document) SOAP Envelope WS-Security WS-Addressing SOAP Header (optional) Header Header Request/ Response Data SOAP Body (payload) Error handling XML content SOAP Fault (optional) Allows for different encoding Attachment (optional) Thursday, May-30-19 Greg Ludwinski, Statistics Canada

7 WSDL (Web Service Description Language)
A contract between the Web service and the client who uses it. An XML document that describes the Web Service and defines the functions that are exposed. It also defines where the service is available and what communication protocol is used to talk to the service. Thursday, May-30-19 Greg Ludwinski, Statistics Canada

8 WSDL Structure Service Port Port Binding Binding Port Type Operations
Where is it and how to use it. Port (e.g. Port (eg. ftp://...) Binding (e.g. SOAP) Binding (e.g. ebXML) Interface for service operations 1 or more service operations Port Type Operations Description of inputs and outputs using types and schemas Input message Output message Abstract Interface Thursday, May-30-19 Greg Ludwinski, Statistics Canada

9 First & last name Company name
RESTful Web Services A lightweight alternative to SOAP based web services Plain XML and JSON are popular message protocols Standards are not as well defined HTTP header is used for security Thursday, May-30-19 First & last name Company name

10 Calling Web Services from SAS
RESTful Web Services Proc Http URL file reference SOAP based Web Services Proc SOAP Functions SOAPWEB, SOAPWS, The WSDL markup type dropped in 9.3 Custom Java Objects Thursday, May-30-19 Greg Ludwinski, Statistics Canada

11 Greg Ludwinski, Statistics Canada
Proc Http proc http method=<post|get> in=<fileref for request parameters(post)> out=<fileref for response> url=“<Path to service endpoint>” ; run; Thursday, May-30-19 Greg Ludwinski, Statistics Canada

12 Greg Ludwinski, Statistics Canada
Proc SOAP proc soap in=<fileref for request> out=<fileref for response> url=“<Path to service endpoint>” soapaction=“<Path to service operation>” ; run; Thursday, May-30-19 Greg Ludwinski, Statistics Canada

13 Preparing for Proc SOAP
Use a tool such as SOAPUI to create a service request template Invoke the web service to get a sample response Create an XMLMap to convert the response Determine additional requirements (Security, Timeout Settings, Timestamp) Thursday, May-30-19 Greg Ludwinski, Statistics Canada

14 Using Custom Java Objects
Why use Java? SAS uses Java (Proc SOAP) Rich class libraries available (Web Service Frameworks, Security . .. ) How? Develop a class and put it in a JAR file Update your SAS Configuration file: Add the JAR file to the Classpath Set any required JREOptions Java objects will be available in your SAS session Thursday, May-30-19 Greg Ludwinski, Statistics Canada

15 First & last name Company name
Java objects in SAS Created within a data step SAS provides methods to; Call static & non-static methods (9 types) Get/Set static & non-static fields (9 types) Detect & Clear exceptions Flush output Delete objects Thursday, May-30-19 First & last name Company name

16 First & last name Company name
Using Java Objects Data _null_; /* Declared and instantiate */ declare javaobj myJavaObject; myJavaObject = _new_ javaobj("<classname>"); /* Call static/non static methods */ myJavaObject.callVoidMethod("<methodname>", <parm1>); myJavaObject.callStringMethod("<methodname>", <parm1>, <outstringVar>); /* Object clean up */ myJavaObject.delete(); run; Thursday, May-30-19 First & last name Company name

17 First & last name Company name
Demonstration Thursday, May-30-19 First & last name Company name

18 Greg Ludwinski Statistics Canada
Comments / Questions Statistics Statistique Canada Canada Greg Ludwinski Project Leader - SAS Technology Centre System Engineering Division R.H. Coats Building, 14th Floor, Section Q Ottawa, Ontario, Canada K1A 0T6 (613) Fax (613) Canada Thursday, May-30-19 Greg Ludwinski Statistics Canada


Download ppt "Techniques to Invoke Web Services from SAS"

Similar presentations


Ads by Google