Consuming Web Services from RPG using HTTPAPI. Presented by. Scott Klement , Scott Klement
|
|
|
- Marylou Conley
- 10 years ago
- Views:
Transcription
1 Consuming Web Services from RPG using HTTPAPI Presented by Scott Klement , Scott Klement There are 10 types of people in the world. Those who understand binary, and those who don t. Why Web Services? A web service provides the ability to call a program (or procedure) over the Web. How is this different from the Web applications I see all the time? Couldn't I just automate those? What good is a Web service? I'll answer these questions, but first some background 2
2 Web Applications In a typical web application... A Web browser displays a web page containing input fields The user types some data or makes some selections The browser sends the data to a web server which then passes it on to a program After processing, the program spits out a new web page for the browser to display 3 Web Enabled Invoice 4
3 Web Enabled Invoice 5 An idea is born Eureka! Our company could save time! Automatically download the invoice in a program. Read the invoice from the download file, get the invoice number as a substring of the 3rd line Get the date as a substring of the 4th line Get the addresses from lines 6-9 Problem: The data is intended for people to read. Not a computer program! Data could be moved, images inserted, colors added Every vendor's invoice would be complex & different 6
4 Need to Know "What" What you want to know is what things are, rather than: Where they sit on a page. What they look like The vendor needs to send data that's "marked up." 7 "Marked Up" Data 8
5 "Marked Up" Data with XML <invoice> <remitto> <company>acme Widgets, Inc</company> </remitto> <shipto> <name>scott Klement</name> <address> <addrline1>123 Sesame St.</addrline1> <city>new York</city> <state>ny</state> <postalcode>54321</postalcode> </address> </shipto> <billto> <name>wayne Madden</name> <company>penton Media - Loveland</company> <address> <addrline1>221 E. 29th St.</addrline1> <city>loveland</city> <state>co</state> <postalcode>80538</postalcode> </address> </billto> 9 "Marked Up" Data with XML <itemlist> <item> <itemno>56071</itemno> <description>blue Widget</description> <quantity>34</quantity> <price>1.50</price> <linetotal>51.00</linetotal> </item> <item> <itemno>98402</itemno> <description>red Widget with a Hat</description> <quantity>9</quantity> <price>6.71</price> <linetotal>60.39</linetotal> </item> <item> <itemno>11011</itemno> <description>cherry Widget</description> <quantity>906</quantity> <price>0.50</price> <linetotal>453.00</linetotal> </item> </itemlist> <total>564.39</total> </invoice> 10
6 What is a Web Service? A program call (or subprocedure call) that works over the Web. Very similar in concept to the CALL command. CALL PGM(EXCHRATE) PARM( us euro &DOLLARS &EUROS) Runs over the Web, so can call programs on other computers anywhere in the world. Works on intranets as well Imagine what you can do Imagine these scenarios... Imagine some scenarios: You're writing a program that generates price quotes. Your quotes are in US dollars. Your customer is in Germany. You can call a program that's located out on the Internet somewhere to get the current exchange rate for the Euro. You're accepting credit cards for payment. After your customer keys a credit card number into your application, you call a program on your bank's computer to get the purchase approved instantly. You've accepted an order from a customer, and want to ship the goods via UPS. You can call a program running on UPS's computer system and have it calculate the cost of the shipment while you wait. Later, you can track that same shipment by calling a tracking program on UPS's system. You can have up-to-the-minute information about where the package is. These are not just dreams of the future. They are a reality today with Web services. 12
7 Examples of Web Services United Parcel Service (UPS) provides web services for: Verifying Package Delivery Viewing the signature that was put on a package Package Time-in-Transit Calculating Rates and Services Obtaining correct shipping information (zip codes, etc.) FedEx provides web services as well. United States Postal Service Amazon.com Validate Credit Cards Get Stock Quotes Check the Weather 13 How do they work? A program call over the Web. You make an XML document that specifies the program (or operation ) to call, as well as it s input parameters. You use the HTTP protocol (the one your browser uses to download web pages) to send that XML document to a Web server. The Web server runs a program on it s side, and outputs a new XML document containing the output parameters. 14
8 SOAP and WSDL Although there's a few different ways of calling web services today, things are becoming more and more standardized. The industry is standardizing on a technology called SOAP. SOAP = Simple Object Access Protocol SOAP is an XML language that describes the parameters that you pass to the programs that you call. When calling a Web service, there are two SOAP documents -- an input document that you send to the program you're calling, and an output document that gets sent back to you. The format of a SOAP message can be determined from another XML document called a WSDL (pronounced "wiz-dull") document. WSDL = Web Services Description Language A WSDL document will describe the different "programs you can call" (or "operations" you can perform), as well as the parameters that need to be passed to those operations. 15 WSDL <definitions> <types> definition of types... </types> <message> definition of a message... </message> <porttype> definition of a port... </porttype> <binding> definition of a binding... </binding> <service> a logical grouping of ports... </service> </definitions> <types> = the data types that the web service uses. <message> = the messages that are sent to and received from the web service. <porttype> = the operations (or, programs/procedures you can call for this web service. <binding> = the network protocol used. <service> = a grouping of ports. (Much like a service program contains a group of subprocedures.) 16
9 SOAP Here's the skeleton of a SOAP message: <soap:envelope xmlns:soap=" soap:encodingstyle=" > <soap:header> (optional) contains header info, like payment info or authentication info (crypto key, userid/password, etc) </soap:header> <soap:body> Contains the operation name (i.e. the "procedure to call") as well as parameter info. These are application defined. <soap:fault> (optional) error info. </soap:fault> </soap:body> </soap:envelope> 17 Sample SOAP Documents I've removed the namespace and encoding information to keep this example clear and simple. (In a real program, you'd need those to be included as well.) Input Message <?xml version="1.0"?> <SOAP:Envelope> <SOAP:Body> <ConversionRate> <FromCurrency>USD</FromCurrency> <ToCurrency>EUR</ToCurrency> </ConversionRate> </SOAP:Body> </SOAP:Envelope> Output Message <?xml version="1.0"?> <SOAP:Envelope> <SOAP:Body> <ConversionRateResponse> <ConversionRateResult>0.7207</ConversionRateResult> </ConversionRateResponse> </SOAP:Body> </SOAP:Envelope> 18
10 SoapUI (1/2) SoapUI is an open source (free of charge) program that you can use to get the SOAP messages you'll need from a WDSL document. Click File / New WSDL Project PROJECT NAME can be any name use something you'll remember. INITIAL WSDL can be either a URL on the web, or a file on your hard drive. You can use "Browse" to navigate via a standard Windows file dialog. 19 SoapUI (2/2) You can edit the SOAP and click the green arrow to give it a try. If you expand the tree on the left, and doubleclick the operation, it shows you the SOAP message. SoapAction is found in the box to the left. (Highlight the "Operation" not the request. 20
11 HTTPAPI Now that you know the XML data that needs to be sent and received, you need a method of sending that data to the server, and getting it back. Normally when we use the Web, we use a Web browser. The browser connects to a web server, issues our request, downloads the result and displays it on the screen. When making a program-to-program call, however, a browser isn't the right tool. Instead, you need a tool that knows how to send and receive data from a Web server that can be integrated right into your RPG programs. That's what HTTPAPI is for! HTTPAPI is a free (open source) tool to act like an HTTP client (the role usually played by the browser.) HTTPAPI was originally written by me (Scott Klement) to assist with a project that I had back in Since I thought it might be useful to others, I made it free and available to everyone More about HTTPAPI How did HTTPAPI come about? I needed a way to automate downloading ACS updates from the United States Postal Service A friend needed a way to track packages with UPS from his RPG software Since many people seemed to need this type of application, I decided to make it publicly available under an Open Source license 22
12 Currency Exchange Example I've shown you the sample WSDL and SOAP documents for XMethod.net's "Currency Exchange" demonstration web service. Over the next several slides, we'll look at an RPG example that uses HTTPAPI to consume this Currency Exchange Service. This type of program is often referred to as a Web Service Consumer. In business, a customer that utilizes your product is referred to as a "consumer". For example, if my company makes sausage, and you buy one from the grocery store and eat it, you're the "end consumer." This is analogous to a program that uses a web service. When the service is used, it's referred to as "consuming" the service. Therefore, a program that utilizes a Web service is a Web Service Consumer. 23 Web Service Consumer (1/4) H DFTACTGRP(*NO) BNDDIR('LIBHTTP/HTTPAPI') D EXCHRATE PR ExtPgm('EXCHRATE') D Country1 3A const D Country2 3A const D Amount 15P 5 const D EXCHRATE PI D Country1 3A const D Country2 3A const D Amount 15P 5 const /copy libhttp/qrpglesrc,httpapi_h D Incoming PR D rate 8F D depth 10I 0 value D name 1024A varying const D path 24576A varying const D value 32767A varying const D attrs * dim(32767) D const options(*varsize) A program that uses a Web Service is called a "Web Service Consumer". The act of calling a Web service is referred to as "consuming a web service." D SOAP s 32767A varying D rc s 10I 0 D rate s 8F D Result s 12P 2 D msg s 50A D wait s 1A 24
13 Web Service Consumer (2/4) Constructing the SOAP message is done with a big EVAL statement. /free SOAP = '<?xml version="1.0" encoding="iso " standalone="no"?>' +'<SOAP:Envelope' +' xmlns:soap=" +' xmlns:tns=" +'<SOAP:Body>' +' <tns:conversionrate>' +' <tns:fromcurrency>'+ %trim(country1) +'</tns:fromcurrency>' +' <tns:tocurrency>'+ %trim(country2) + '</tns:tocurrency>' +' </tns:conversionrate>' +'</SOAP:Body>' +'</SOAP:Envelope>'; This routine tells HTTPAPI to send the SOAP message to a Web server, and to parse the XML response. rc = http_url_post_xml( ' : %addr(soap) + 2 : %len(soap) As HTTPAPI receives the XML : *NULL document, it'll call the INCOMING : %paddr(incoming) subpocedure for every XML : %addr(rate) element, passing the "rate" : HTTP_TIMEOUT variable as a parameter. : HTTP_USERAGENT : 'text/xml' : ' 25 Web Service Consumer (3/4) If an error occurs, ask HTTPAPI what the error is. if (rc <> 1); msg = http_error(); else; Result = %dech(amount * rate: 12: 2); msg = 'Result = ' + %char(result); endif; dsply msg ' ' wait; *inlr = *on; /end-free Display the error or result on the screen. This is called for every XML element in the response. When the element is a "Conversion Rate Result" element, save the value, since it's the exchange rate we're looking for! P Incoming B D Incoming PI D rate 8F D depth 10I 0 value D name 1024A varying const D path 24576A varying const D value 32767A varying const D attrs * dim(32767) D const options(*varsize) /free if (name = 'ConversionRateResult'); rate = %float(value); endif; /end-free P E 26
14 Web Service Consumer (4/4) Here's a sample of the output from calling the preceding program: Command Entry Previous commands and messages: > call exchrate parm('usd' 'EUR' ) DSPLY Result = Request level: 1 Bottom Type command, press Enter. ===> F3=Exit F4=Prompt F9=Retrieve F10=Include detailed messages F11=Display full F12=Cancel F13=Information Assistant F24=More keys 27 What Just Happened? HTTPAPI does not know how to create an XML document, but it does know how to parse one. In the previous example: The SOAP document was created in a variable using a big EVAL statement. The variable that contained the SOAP document was passed to HTTPAPI and HTTPAPI sent it to the Web site. The subprocedure we called (http_url_post_xml) utilizes HTTPAPI's built-in XML parser to parse the result as it comes over the wire. As each XML element is received, the Incoming() subprocedure is called. When that subprocedure finds a <ConversionRateResult> element, it saves the element's value to the "rate" variable. When http_url_post_xml() has completed, the rate variable is set. You can multiply the input currency amount by the rate to get the output currency amount. 28
15 No! Let Me Parse It! If you don't want to use HTTPAPI's XML parser, you can call the http_url_post() API instead of http_url_post_xml(). In that situation, the result will be saved to a stream file in the IFS, and you can use another XML parser instead of the one in HTTPAPI. rc = http_url_post( ' : %addr(soap) + 2 : %len(soap) : '/tmp/currencyexchangeresult.soap' : HTTP_TIMEOUT : HTTP_USERAGENT : 'text/xml' : ' ); For example, you may want to use RPG's built in support for XML in V5R4 to parse the document rather than let HTTPAPI do it. (XML-SAX op-code) 29 Is /FREE required? In my examples so far, i've used free format RPG. It's not required, however, you can use fixed format if you prefer. Just use EVAL or CALLP statements. c eval SOAP = '<?xml version="1.0">' c + '<SOAP-ENV:Envelope.. and so on c callp http_url_post_xml( c ' + c 'CurrencyConvertor.asmx' c : %addr(soap) + 2 c : %len(soap) c : *NULL c : %paddr(incoming) c : %addr(rate) c : HTTP_TIMEOUT c : HTTP_USERAGENT c : 'text/xml' c : ' + c ConversionRate' ) 30
16 Handling Errors with HTTP API Most of the HTTPAPI routines return 1 when successful Although this allows you to detect when something has failed, it only tells you that something failed, not what failed The http_error() routine can tell you an error number, a message, or both The following is the prototype for the http_error() API D http_error PR 80A D peerrorno 10I 0 options(*nopass) The human-readable message is particularly useful for letting the user know what's going on. if ( rc <> 1 ); msg = http_error(); // you can now print this message on the screen, // or pass it back to a calling program, // or whatever you like. endif; 31 Handling Errors, continued The error number is useful when the program anticipates and tries to handle certain errors. if ( rc <> 1 ); These are constants http_error(errnum); that are defined in HTTPAPI_H (and select; included with HTTPAPI) when errnum = HTTP_NOTREG; // app needs to be registered with DCM exsr RegisterApp; when errnum = HTTP_NDAUTH; // site requires a userid/password exsr RequestAuth; other; msg = http_error(); endsl; endif; 32
17 WSDL2RPG Instead of SoapUI, you might consider using WSDL2RPG another open source project, this one from Thomas Raddatz. You give WSDL2RPG the URL or IFS path of a WSDL file, and it generates the RPG code to call HTTPAPI. WSDL2RPG URL('/home/klemscot/CurrencyConvertor.wsdl') SRCFILE(LIBSCK/QRPGLESRC) SRCMBR(CURRCONV) Then compile CURRCONV as a module, and call it with the appropriate parameters. Code is still beta, needs more work. The RPG it generates often needs to be tweaked before it'll compile. The code it generates is much more complex than what you'd use if you generated it yourself, or used SoapUI Can only do SOAP (not POX or REST) But don't be afraid to help with the project! It'll be really nice when it's perfected! 33 About SSL with HTTPAPI The next example (UPS package tracking) requires that you connect using SSL. (This is even more important when working with a bank!) HTTPAPI supports SSL when you specify " instead of " at the beginning of the URL. It uses the SSL routines in the operating system, therefore you must have all of the required software installed. IBM requires the following: Digital Certificate Manager (option 34 of IBM i, 57xx-SS1) TCP/IP Connectivity Utilities for iseries (57xx-TC1) IBM HTTP Server for iseries (57xx-DG1) IBM Developer Kit for Java (57xx-JV1) IBM Cryptographic Access Provider (5722-AC3) (pre-v5r4 only) Because of (historical) import/export laws, 5722-AC3 is not shipped with i. However, it's a no-charge item. You just have to order it separately from your business partner. It is included automatically in V5R4 and later as 57xx-NAE 34
18 UPS Example (slide 1 of 11) This demonstrates the "UPS Tracking Tool" that's part of UPS OnLine Tools. There are a few differences between this and the previous example: You have to register with UPS to use their services (but it's free) You'll be given an access key, and you'll need to send it with each request. UPS requires SSL to access their web site. UPS does not use SOAP or WSDL for their Web services but does use XML. Some folks call this "Plain Old XML" (POX). Instead of WSDL, they provide you with documentation that explains the format of the XML messages. That document will be available from their web site after you've signed up as a developer. 35 UPS Example (slide 2 of 11) 36
19 UPS Example (slide 3 of 11) 37 UPS Example (slide 4 of 11) D UPS_USERID C '<put your userid here>' D UPS_PASSWD C '<put your password here>' D UPS_LICENSE C '<put your access license here> d act s 10I 0 d activity ds qualified d dim(10) d Date 8A d Time 6A D Desc 20A D City 20A D State 2A D Status 20A D SignedBy 20A UPS provides these when you sign up as a developer. // Ask user for tracking number. exfmt TrackNo; 38
20 UPS Example (slide 5 of 11) postdata = '<?xml version="1.0"?>' + '<AccessRequest xml:lang="en-us">' + '<AccessLicenseNumber>' + UPS_LICENSE + '</AccessLicenseNumber>' + '<UserId>' + UPS_USERID + '</UserId>' + '<Password>' + UPS_PASSWD + '</Password>' + '</AccessRequest>' + '<?xml version="1.0"?>' + '<TrackRequest xml:lang="en-us">' + '<Request>' + '<TransactionReference>' + '<CustomerContext>Example 1</CustomerContext>' + '<XpciVersion>1.0001</XpciVersion>' + '</TransactionReference>' + '<RequestAction>Track</RequestAction>' + '<RequestOption>activity</RequestOption>' + '</Request>' + '<TrackingNumber>' + TrackingNo + '</TrackingNumber>' + '</TrackRequest>' ; rc = http_url_post_xml(' : %addr(postdata) + 2 : %len(postdata) if (rc <> 1); msg = http_error(); // REPORT ERROR TO USER endif; : %paddr(startofelement) : %paddr(endofelement) : *NULL ); The StartOfElement and EndOfElement routines are called while http_url_post_xml is running 39 UPS Example (slide 6 of 11) for RRN = 1 to act; monitor; tempdate = %date(activity(rrn).date: *ISO0); scdate = %char(tempdate: *USA); on-error; scdate = *blanks; endmon; monitor; temptime = %time(activity(rrn).time: *HMS0); sctime = %char(temptime: *HMS); on-error; sctime = *blanks; endmon; scdesc = activity(rrn).desc; sccity = activity(rrn).city; scstate = activity(rrn).state; scstatus = activity(rrn).status; Since the StartOfElement and EndOfElement routines read the XML data and put it in the array, when http_url_post_xml is complete, we're ready to load the array into the subfile. if (scsignedby = *blanks); scsignedby = activity(rrn).signedby; endif; write SFLREC; endfor; 40
21 UPS Example (slide 7 of 11) <?xml version="1.0"?> <TrackResponse> <Shipment> <Package> <Activity> <ActivityLocation> <Address> <City>MILWAUKEE</City> <StateProvinceCode>WI</StateProvinceCode> <PostalCode>53207</PostalCode> <CountryCode>US</CountryCode> </Address> <Code>AI</Code> <Description>DOCK</Description> <SignedForByName>DENNIS</SignedForByName> </ActivityLocation> <Status> <StatusType> <Code>D</Code> <Description>DELIVERED</Description> </StatusType> <StatusCode> <Code>KB</Code> </StatusCode> </Status> <Date> </Date> <Time>115400</Time> </Activity> This is what the response from UPS will look like. HTTPAPI will call the StartOfElement procedure for every "start" XML element. HTTPAPI will call the EndOfElement procedure for every "end" XML element. At that time, it'll also pass the value. 41 UPS Example (slide 8 of 11) <Activity> <ActivityLocation> <Address> <City>OAK CREEK</City> <StateProvinceCode>WI</StateProvinceCode> <CountryCode>US</CountryCode> </Address> </ActivityLocation> <Status> <StatusType> <Code>I</Code> <Description>OUT FOR DELIVERY</Description> </StatusType> <StatusCode> <Code>DS</Code> </StatusCode> </Status> <Date> </Date> <Time>071000</Time> </Activity> </Package> </Shipment> </TrackResponse> There are additional <Activity> sections and other XML that I omitted because it was too long for the presentation. 42
22 UPS Example (slide 9 of 11) P StartOfElement B D StartOfElement PI D UserData * value D depth 10I 0 value D name 1024A varying const D path 24576A varying const D attrs * dim(32767) D const options(*varsize) /free if path = '/TrackResponse/Shipment/Package' and name='activity'; act = act + 1; endif; /end-free P E This is called during http_url_post_xml() for each start element that UPS sends. It's used to advance to the next array entry when a new package record is received. 43 UPS Example (slide 10 of 11) D UserData P EndOfElement B D EndOfElement PI * value This is called for each ending value. We use it D depth 10I 0 value to save the returned D name 1024A varying const package information D path 24576A varying const D value 32767A varying const into an array. D attrs * dim(32767) D const options(*varsize) /free select; when path = '/TrackResponse/Shipment/Package/Activity'; select; when name = 'Date'; activity(act).date = value; when name = 'Time'; activity(act).time = value; endsl; when path = '/TrackResponse/Shipment/Package/Activity' + '/ActivityLocation'; Remember, this is select; called by when name = 'Description'; http_url_post_xml, activity(act).desc = value; when name = 'SignedForByName'; so it'll run before the activity(act).signedby = value; code that loads this endsl; array into the subfile! 44
23 UPS Example (slide 11 of 11) when path = '/TrackResponse/Shipment/Package/Activity' + '/ActivityLocation/Address'; select; when name = 'City'; activity(act).city = value; when name = 'StateProvinceCode'; activity(act).state = value; endsl; when path = '/TrackResponse/Shipment/Package/Activity' + '/Status/StatusType'; endsl; if name = 'Description'; activity(act).status = value; endif; /end-free P E 45 For More Information You can download HTTPAPI from Scott's Web site: Most of the documentation for HTTPAPI is in the source code itself. Read the comments in the HTTPAPI_H member Sample programs called EXAMPLE1 - EXAMPLE20 The best place to get help for HTTPAPI is in the mailing list. There's a link to sign up for this list on Scott's site. Info about Web Services: Web Services: The Next Big Thing by Scott N. Gerard Will Web Services Serve You? by Aaron Bartell W3 Consortium and 46
24 For More Information Web Service info, continued Consuming Web Services with HTTPAPI and SoapUI by Scott Klement Report the Weather On Your Sign-on Screen by Scott Klement Call a Web Service with WSDL2RPG SOAP Message Generator (automatically converts WSDL to SOAP): WebServiceX.net (Many demo web services) XMethods.net (More useful web services) UPS OnLine Tools SoapUI (Open Source (free) program for testing/analyzing web services and converting WSDL to SOAP) 47 This Presentation You can download a PDF copy of this presentation from: Thank you! 48
Web Services for RPGers
Web Services for RPGers Presented by Scott Klement http://www.scottklement.com 2010-2015, Scott Klement "A computer once beat me at chess, but it was no match for me at kick boxing." Emo Philips Our Agenda
Introduction to Web Programming with RPG. Presented by. Scott Klement. http://www.scottklement.com. 2006-2009, Scott Klement.
Introduction to Web Programming with RPG Presented by Scott Klement http://www.scottklement.com 2006-2009, Scott Klement Session 11C There are 10 types of people in the world. Those who understand binary,
Introduction to Web services for RPG developers
Introduction to Web services for RPG developers Claus Weiss [email protected] TUG meeting March 2011 1 Acknowledgement In parts of this presentation I am using work published by: Linda Cole, IBM Canada
Accesssing External Databases From ILE RPG (with help from Java)
Accesssing External Databases From ILE RPG (with help from Java) Presented by Scott Klement http://www.scottklement.com 2008-2015, Scott Klement There are 10 types of people in the world. Those who understand
Getting started with OWASP WebGoat 4.0 and SOAPUI.
Getting started with OWASP WebGoat 4.0 and SOAPUI. Hacking web services, an introduction. Version 1.0 by Philippe Bogaerts [email protected] www.radarhack.com Reviewed by Erwin Geirnaert
Working with JSON in RPG. (YAJL Open Source JSON Tool)
Working with JSON in RPG (YAJL Open Source JSON Tool) Presented by Scott Klement http://www.scottklement.com 2014-2016, Scott Klement "A computer once beat me at chess, but it was no match for me at kick
BusinessLink Software Support
BusinessLink Software Support V2R5 Upgrade Instructions Existing SSL Installations SSL Certificate Conversion Pre-Upgrade Table of Contents Overview... 1 Requirements For Certificate Conversion... 1 OS/400
Excel Spreadsheets from RPG With Apache's POI / HSSF
Excel Spreadsheets from RPG With Apache's POI / HSSF Presented by Scott Klement http://www.scottklement.com 2007-2012, Scott Klement There are 10 types of people in the world. Those who understand binary,
Implementing Secure Sockets Layer on iseries
Implementing Secure Sockets Layer on iseries Presented by Barbara Brown Alliance Systems & Programming, Inc. Agenda SSL Concepts Digital Certificate Manager Local Certificate Authority Server Certificates
Test Automation Integration with Test Management QAComplete
Test Automation Integration with Test Management QAComplete This User's Guide walks you through configuring and using your automated tests with QAComplete's Test Management module SmartBear Software Release
Part II of The Pattern to Good ILE. with RPG IV. Scott Klement
Part II of The Pattern to Good ILE with RPG IV Presented by Scott Klement http://www.scottklement.com 2008, Scott Klement There are 10 types of people in the world. Those who understand binary, and those
How To Insert Hyperlinks In Powerpoint Powerpoint
Lesson 5 Inserting Hyperlinks & Action Buttons Introduction A hyperlink is a graphic or piece of text that links to another web page, document, or slide. By clicking on the hyperlink will activate it and
DEVELOPING CONTRACT - DRIVEN WEB SERVICES USING JDEVELOPER. The purpose of this tutorial is to develop a java web service using a top-down approach.
DEVELOPING CONTRACT - DRIVEN WEB SERVICES USING JDEVELOPER Purpose: The purpose of this tutorial is to develop a java web service using a top-down approach. Topics: This tutorial covers the following topics:
WEB SERVICES. Revised 9/29/2015
WEB SERVICES Revised 9/29/2015 This Page Intentionally Left Blank Table of Contents Web Services using WebLogic... 1 Developing Web Services on WebSphere... 2 Developing RESTful Services in Java v1.1...
Modern XML applications
Modern XML applications XML in electronic data interchange, application integration and databases Patryk Czarnik Institute of Informatics University of Warsaw XML and Modern Techniques of Content Management
Replacements TECHNICAL REFERENCE. DTCCSOLUTIONS Dec 2009. Copyright 2009 Depository Trust Clearing Corporation. All Rights Reserved.
TECHNICAL REFERENCE Replacements Page 1 Table of Contents Table of Contents 1 Overview... 3 1.1 Replacements Features... 3 2 Roles and Responsibilities... 4 2.1 Sender (Receiving Carrier)... 4 2.2 Recipient
Introduction. Inserting Hyperlinks. PowerPoint 2010 Hyperlinks and Action Buttons. About Hyperlinks. Page 1
PowerPoint 2010 Hyperlinks and Action Buttons Introduction Page 1 Whenever you use the Web, you are using hyperlinks to navigate from one web page to another. If you want to include a web address or email
Kaseya 2. User Guide. Version 6.1
Kaseya 2 Kaseya SQL Server Reporting Services (SSRS) Configuration User Guide Version 6.1 January 28, 2011 About Kaseya Kaseya is a global provider of IT automation software for IT Solution Providers and
The presentation explains how to create and access the web services using the user interface. WebServices.ppt. Page 1 of 14
The presentation explains how to create and access the web services using the user interface. Page 1 of 14 The aim of this presentation is to familiarize you with the processes of creating and accessing
ISM/ISC Middleware Module
ISM/ISC Middleware Module Lecture 14: Web Services and Service Oriented Architecture Dr Geoff Sharman Visiting Professor in Computer Science Birkbeck College Geoff Sharman Sept 07 Lecture 14 Aims to: Introduce
Freight Tracking Web Service Implementation Guide
www.peninsulatruck.com P.O. Box 587 (98071-0587) 1010 S 336 th, Suite 202 Federal Way, Washington 98003 Office (253) 929-2000 Fax (253) 929-2041 Toll Free (800) 942-9909 Freight Tracking Web Service Implementation
Web services with WebSphere Studio: Deploy and publish
Web services with WebSphere Studio: Deploy and publish Table of Contents If you're viewing this document online, you can click any of the topics below to link directly to that section. 1. Introduction...
12Planet Chat end-user manual
12Planet Chat end-user manual Document version 1.0 12Planet 12Planet Page 2 / 13 Table of content 1 General... 4 1.1 How does the chat work?... 4 1.2 Browser Requirements... 4 1.3 Proxy / Firewall Info...
1. Tutorial Overview
RDz Web Services Tutorial 02 Web Services Abteilung Technische Informatik, Institut für Informatik, Universität Leipzig Abteilung Technische Informatik, Wilhelm Schickard Institut für Informatik, Universität
Grapevine Mail User Guide
Grapevine Mail User Guide Table of Contents Accessing Grapevine Mail...2 How to access the Mail portal... 2 How to login... 2 Grapevine Mail user guide... 5 Copying your contacts to the new Grapevine Mail
White Paper. Installation and Configuration of Fabasoft Folio IMAP Service. Fabasoft Folio 2015 Update Rollup 3
White Paper Fabasoft Folio 2015 Update Rollup 3 Copyright Fabasoft R&D GmbH, Linz, Austria, 2016. All rights reserved. All hardware and software names used are registered trade names and/or registered
WIRIS quizzes web services Getting started with PHP and Java
WIRIS quizzes web services Getting started with PHP and Java Document Release: 1.3 2011 march, Maths for More www.wiris.com Summary This document provides client examples for PHP and Java. Contents WIRIS
Integrating with BarTender Integration Builder
Integrating with BarTender Integration Builder WHITE PAPER Contents Overview 3 Understanding BarTender's Native Integration Platform 4 Integration Builder 4 Administration Console 5 BarTender Integration
The BritNed Explicit Auction Management System. Kingdom Web Services Interfaces
The BritNed Explicit Auction Management System Kingdom Web Services Interfaces Version 5.1 November 2014 Contents 1. PREFACE... 6 1.1. Purpose of the Document... 6 1.2. Document Organization... 6 2. Web
How To Test Your Web Site On Wapt On A Pc Or Mac Or Mac (Or Mac) On A Mac Or Ipad Or Ipa (Or Ipa) On Pc Or Ipam (Or Pc Or Pc) On An Ip
Load testing with WAPT: Quick Start Guide This document describes step by step how to create a simple typical test for a web application, execute it and interpret the results. A brief insight is provided
94x MeF e-file Application Guidelines
Step 1: Registration for the e-file Application Transmitters, Software Developers and Reporting Agents who have not submitted an online e-file Application must do so through e-services. Publication 3112
StreamServe Persuasion SP4 Service Broker
StreamServe Persuasion SP4 Service Broker User Guide Rev A StreamServe Persuasion SP4 Service Broker User Guide Rev A 2001-2009 STREAMSERVE, INC. ALL RIGHTS RESERVED United States patent #7,127,520 No
RPG Chart Engine. Exploit the power of open source java from RPG. Krengel Technology Inc. Leverage Java from your RPG to save time and money!
Exploit the power of open source java from RPG Leverage Java from your RPG to save time and money! RPG Chart Engine Copyright Aaron Bartell 2011 by Aaron Bartell Krengel Technology Inc. [email protected]
App Orchestration 2.5
Configuring NetScaler 10.5 Load Balancing with StoreFront 2.5.2 and NetScaler Gateway for Prepared by: James Richards Last Updated: August 20, 2014 Contents Introduction... 3 Configure the NetScaler load
Using ilove SharePoint Web Services Workflow Action
Using ilove SharePoint Web Services Workflow Action This guide describes the steps to create a workflow that will add some information to Contacts in CRM. As an example, we will use demonstration site
The Power Loader GUI
The Power Loader GUI (212) 405.1010 [email protected] Follow: @1010data www.1010data.com The Power Loader GUI Contents 2 Contents Pre-Load To-Do List... 3 Login to Power Loader... 4 Upload Data Files to
Adobe Dreamweaver - Basic Web Page Tutorial
Adobe Dreamweaver - Basic Web Page Tutorial Window Elements While Dreamweaver can look very intimidating when it is first launched it is an easy program. Dreamweaver knows that your files must be organized
EVALUATION ONLY. WA2088 WebSphere Application Server 8.5 Administration on Windows. Student Labs. Web Age Solutions Inc.
WA2088 WebSphere Application Server 8.5 Administration on Windows Student Labs Web Age Solutions Inc. Copyright 2013 Web Age Solutions Inc. 1 Table of Contents Directory Paths Used in Labs...3 Lab Notes...4
EMS E-COMMERCE GATEWAY API TECHNICAL INSTALLATION MANUAL FEBRUARY 2016
EMS E-COMMERCE GATEWAY API TECHNICAL INSTALLATION MANUAL FEBRUARY 2016 CONTENTS 1 Introduction 6 2 Artefacts You Need 7 3 How the API works 8 4 Sending transactions to the gateway 10 5 Building Transactions
What is a Web service?
What is a Web service? Many people and companies have debated the exact definition of Web services. At a minimum, however, a Web service is any piece of software that makes itself available over the Internet
WebLogic Server 6.1: How to configure SSL for PeopleSoft Application
WebLogic Server 6.1: How to configure SSL for PeopleSoft Application 1) Start WebLogic Server... 1 2) Access Web Logic s Server Certificate Request Generator page.... 1 3) Fill out the certificate request
Web Services API Developer Guide
Web Services API Developer Guide Contents 2 Contents Web Services API Developer Guide... 3 Quick Start...4 Examples of the Web Service API Implementation... 13 Exporting Warehouse Data... 14 Exporting
T320 E-business technologies: foundations and practice
T320 E-business technologies: foundations and practice Block 3 Part 6 Activity 2: Testing a web service for WS-I conformance Prepared for the course team by Neil Simpkins Introduction 1 Configuring the
Building, testing and deploying mobile apps with Jenkins & friends
Building, testing and deploying mobile apps with Jenkins & friends Christopher Orr https://chris.orr.me.uk/ This is a lightning talk which is basically described by its title, where "mobile apps" really
Building and Using Web Services With JDeveloper 11g
Building and Using Web Services With JDeveloper 11g Purpose In this tutorial, you create a series of simple web service scenarios in JDeveloper. This is intended as a light introduction to some of the
SETUP SSL IN SHAREPOINT 2013 (USING SELF-SIGNED CERTIFICATE)
12/15/2012 WALISYSTEMSINC.COM SETUP SSL IN SHAREPOINT 2013 (USING SELF-SIGNED CERTIFICATE) Setup SSL in SharePoint 2013 In the last article (link below), you learned how to setup SSL in SharePoint 2013
Enterprise Security Interests Require SSL with telnet server from outside the LAN
Create and Use an SSL on Goals Provide secure and encrypted 5250 data stream conversations with the server (including authentication) use a digital certificate we create with Digital Manager Show a client
MadCap Software. Upgrading Guide. Pulse
MadCap Software Upgrading Guide Pulse Copyright 2014 MadCap Software. All rights reserved. Information in this document is subject to change without notice. The software described in this document is furnished
Microsoft Active Directory Oracle Enterprise Gateway Integration Guide
An Oracle White Paper May 2011 Microsoft Active Directory Oracle Enterprise Gateway Integration Guide 1/33 Disclaimer The following is intended to outline our general product direction. It is intended
Populating Your Domino Directory (Or ANY Domino Database) With Tivoli Directory Integrator. Marie Scott Thomas Duffbert Duff
Populating Your Domino Directory (Or ANY Domino Database) With Tivoli Directory Integrator Marie Scott Thomas Duffbert Duff Agenda Introduction to TDI architecture/concepts Discuss TDI entitlement Examples
NetBeans IDE Field Guide
NetBeans IDE Field Guide Copyright 2005 Sun Microsystems, Inc. All rights reserved. Table of Contents Extending J2EE Applications with Web Services...1 Consuming Existing Web Services...2 Implementing
IBM Application Hosting EDI Services Expedite software adds Secure Sockets Layer TCP/IP support
Software Announcement June 1, 2004 Services Expedite software adds Secure Sockets Layer TCP/IP support Overview Services Expedite software for Microsoft Windows, AIX, and OS/400 is being enhanced to support
How to consume a Domino Web Services from Visual Studio under Security
How to consume a Domino Web Services from Visual Studio under Security Summary Authors... 2 Abstract... 2 Web Services... 3 Write a Visual Basic Consumer... 5 Authors Andrea Fontana IBM Champion for WebSphere
ERserver. iseries. Secure Sockets Layer (SSL)
ERserver iseries Secure Sockets Layer (SSL) ERserver iseries Secure Sockets Layer (SSL) Copyright International Business Machines Corporation 2000, 2002. All rights reserved. US Government Users Restricted
Middleware and the Internet
Middleware and the Internet Middleware today Designed for special purposes (e.g. DCOM) or with overloaded specification (e.g. CORBA) Specifying own protocols integration in real world network? Non-performant
Creating Mobile Applications on Top of SAP, Part 1
Creating Mobile Applications on Top of SAP, Part 1 Applies to: SAP ERP 6.0, NetWeaver > 7.10. For more information, visit the Mobile homepage. Summary This tutorial is starting point for a series of tutorials
XML in Programming 2, Web services
XML in Programming 2, Web services Patryk Czarnik XML and Applications 2013/2014 Lecture 5 4.11.2013 Features of JAXP 3 models of XML documents in Java: DOM, SAX, StAX Formally JAXB is a separate specification
Web Design. Links and Navigation
Web Design Links and Navigation Web Design Link Terms HTTP, FTP, Hyperlink, Email Links, Anchor HTTP (HyperText Transfer Protocol) - The most common link type and allows the user to connect to any page
Upgrading from Call Center Reporting to Reporting for Contact Center. BCM Contact Center
Upgrading from Call Center Reporting to Reporting for Contact Center BCM Contact Center Document Number: NN40010-400 Document Status: Standard Document Version: 02.00 Date: June 2006 Copyright Nortel Networks
JBoss SOAP Web Services User Guide. Version: 3.3.0.M5
JBoss SOAP Web Services User Guide Version: 3.3.0.M5 1. JBoss SOAP Web Services Runtime and Tools support Overview... 1 1.1. Key Features of JBossWS... 1 2. Creating a Simple Web Service... 3 2.1. Generation...
Background Information
User Guide 1 Background Information ********************************Disclaimer******************************************** This is a government system intended for official use only. Using this system
INFOPATH FORMS FOR OUTLOOK, SHAREPOINT, OR THE WEB
INFOPATH FORMS FOR OUTLOOK, SHAREPOINT, OR THE WEB GINI COURTER, TRIAD CONSULTING Like most people, you probably fill out business forms on a regular basis, including expense reports, time cards, surveys,
Mercury Users Guide Version 1.3 February 14, 2006
Mercury Users Guide Version 1.3 February 14, 2006 1 Introduction Introducing Mercury Your corporate shipping has just become easier! The satisfaction of your customers depends on the accuracy of your shipments,
Adobe Marketing Cloud Bloodhound for Mac 3.0
Adobe Marketing Cloud Bloodhound for Mac 3.0 Contents Adobe Bloodhound for Mac 3.x for OSX...3 Getting Started...4 Processing Rules Mapping...6 Enable SSL...7 View Hits...8 Save Hits into a Test...9 Compare
Security Guide. BlackBerry Enterprise Service 12. for ios, Android, and Windows Phone. Version 12.0
Security Guide BlackBerry Enterprise Service 12 for ios, Android, and Windows Phone Version 12.0 Published: 2015-02-06 SWD-20150206130210406 Contents About this guide... 6 What is BES12?... 7 Key features
000-284. Easy CramBible Lab DEMO ONLY VERSION 000-284. Test284,IBM WbS.DataPower SOA Appliances, Firmware V3.6.0
Easy CramBible Lab 000-284 Test284,IBM WbS.DataPower SOA Appliances, Firmware V3.6.0 ** Single-user License ** This copy can be only used by yourself for educational purposes Web: http://www.crambible.com/
FileMaker Server 15. Custom Web Publishing Guide
FileMaker Server 15 Custom Web Publishing Guide 2004 2016 FileMaker, Inc. All Rights Reserved. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker and FileMaker Go are trademarks
Web Services Technologies
Web Services Technologies XML and SOAP WSDL and UDDI Version 16 1 Web Services Technologies WSTech-2 A collection of XML technology standards that work together to provide Web Services capabilities We
Oracle Universal Content Management 10.1.3
Date: 2007/04/16-10.1.3 Oracle Universal Content Management 10.1.3 Document Management Quick Start Tutorial Oracle Universal Content Management 10.1.3 Document Management Quick Start Guide Page 1 Contents
Here are the steps to configure Outlook Express for use with Salmar's Zimbra server. Select "Tools" and then "Accounts from the pull down menu.
Salmar Consulting Inc. Setting up Outlook Express to use Zimbra Marcel Gagné, February 2010 Here are the steps to configure Outlook Express for use with Salmar's Zimbra server. Open Outlook Express. Select
4.2 Understand Microsoft ASP.NET Web Application Development
L E S S O N 4 4.1 Understand Web Page Development 4.2 Understand Microsoft ASP.NET Web Application Development 4.3 Understand Web Hosting 4.4 Understand Web Services MTA Software Fundamentals 4 Test L
Intelligent Event Processer (IEP) Tutorial Detection of Insider Stock Trading
Intelligent Event Processer (IEP) Tutorial Detection of Insider Stock Trading Sun Microsystems, Inc. 4150 Network Circle Santa Clara, CA 95054 U.S.A. November 2008 Page 1 of 29 Contents Setting Up the
Set up Outlook for your new student e mail with IMAP/POP3 settings
Set up Outlook for your new student e mail with IMAP/POP3 settings 1. Open Outlook. The Account Settings dialog box will open the first time you open Outlook. If the Account Settings dialog box doesn't
Google Groups: What is Google Groups? About Google Groups and Google Contacts. Using, joining, creating, and sharing content with groups
DN:GA-GG_101.01 Google Groups: Using, joining, creating, and sharing content with groups What is Google Groups? Google Groups is a feature of Google Apps that makes it easy to communicate and collaborate
NYS OCFS CMS Contractor Manual
NYS OCFS CMS Contractor Manual C O N T E N T S CHAPTER 1... 1-1 Chapter 1: Introduction to the Contract Management System... 1-2 CHAPTER 2... 2-1 Accessing the Contract Management System... 2-2 Shortcuts
Getting Started. Install the Omni Mobile Client
Getting Started This Quick Start Guide is for Windows Mobile Smart Phones (no touch-screen support) devices. There is a separate Quick Start Guide for Pocket PC and Windows Mobile touch-screen PDA and
App Orchestration 2.0
App Orchestration 2.0 Configuring NetScaler Load Balancing and NetScaler Gateway for App Orchestration Prepared by: Christian Paez Version: 1.0 Last Updated: December 13, 2013 2013 Citrix Systems, Inc.
MassTransit 6.0 Enterprise Web Configuration for Macintosh OS 10.5 Server
MassTransit 6.0 Enterprise Web Configuration for Macintosh OS 10.5 Server November 6, 2008 Group Logic, Inc. 1100 North Glebe Road, Suite 800 Arlington, VA 22201 Phone: 703-528-1555 Fax: 703-528-3296 E-mail:
Installation & Configuration Guide User Provisioning Service 2.0
Installation & Configuration Guide User Provisioning Service 2.0 NAVEX Global User Provisioning Service 2.0 Installation Guide Copyright 2015 NAVEX Global, Inc. NAVEX Global is a trademark/service mark
Making a Website with Hoolahoop
Making a Website with Hoolahoop 1) Open up your web browser and goto www.wgss.ca/admin (wgss.hoolahoop.net temporarily) and login your the username and password. (wgss.ca is for teachers ONLY, you cannot
XML Processing and Web Services. Chapter 17
XML Processing and Web Services Chapter 17 Textbook to be published by Pearson Ed 2015 in early Pearson 2014 Fundamentals of http://www.funwebdev.com Web Development Objectives 1 XML Overview 2 XML Processing
WA2087 Programming Java SOAP and REST Web Services - WebSphere 8.0 / RAD 8.0. Student Labs. Web Age Solutions Inc.
WA2087 Programming Java SOAP and REST Web Services - WebSphere 8.0 / RAD 8.0 Student Labs Web Age Solutions Inc. 1 Table of Contents Lab 1 - WebSphere Workspace Configuration...3 Lab 2 - Introduction To
Personal Secure Email Certificate
Entrust Certificate Services Personal Secure Email Certificate Enrollment Guide Date of Issue: October 2010 Copyright 2010 Entrust. All rights reserved. Entrust is a trademark or a registered trademark
Safeguard Ecommerce Integration / API
Safeguard Ecommerce Integration / API Product Manual Version 3 Revision 1.11 Table of Contents 1. INTRODUCTION... 4 1.1 Available commands... 4 2. HOW THE ADMINISTRATION SYSTEM IS EXPECTED TO BE USED OPERATIONALLY...
Web Services: The Web's next Revolution
Web Services: The Web's next Revolution Presented by developerworks, your source for great tutorials Table of Contents If you're viewing this document online, you can click any of the topics below to link
Fusion Installer Instructions
Fusion Installer Instructions This is the installation guide for the Fusion NaviLine installer. This guide provides instructions for installing, updating, and maintaining your Fusion REST web service.
Law Conferencing uses the Webinterpoint 8.2 web conferencing platform. This service is completely reservationless and available 24/7.
Law Conferencing uses the Webinterpoint 8.2 web conferencing platform. This service is completely reservationless and available 24/7. This document contains detailed instructions on all features. Table
IBM SPSS Collaboration and Deployment Services Version 6 Release 0. Single Sign-On Services Developer's Guide
IBM SPSS Collaboration and Deployment Services Version 6 Release 0 Single Sign-On Services Developer's Guide Note Before using this information and the product it supports, read the information in Notices
FileMaker Server 14. Custom Web Publishing Guide
FileMaker Server 14 Custom Web Publishing Guide 2004 2015 FileMaker, Inc. All Rights Reserved. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker and FileMaker Go are trademarks
FileMaker Server 12. Custom Web Publishing with XML
FileMaker Server 12 Custom Web Publishing with XML 2007 2012 FileMaker, Inc. All Rights Reserved. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker and Bento are trademarks
A guide to https and Secure Sockets Layer in SharePoint 2013. Release 1.0
A guide to https and Secure Sockets Layer in SharePoint 2013 Release 1.0 https / Secure Sockets Layer It has become something of a habit of mine, to jump over the tougher more difficult topics, the ones
Ensim WEBppliance 3.0 for Windows (ServerXchange) Release Notes
Ensim WEBppliance 3.0 for Windows (ServerXchange) Release Notes May 07, 2002 Thank you for choosing Ensim WEBppliance 3.0 for Windows. This document includes information about the following: About Ensim
Web Services Development using Top-down Design
Web Services Development using Top-down Design Asst. Prof. Dr. Kanda Runapongsa Saikaew ([email protected]) Mr.Pongsakorn Poosankam ([email protected]) 1 Agenda What is Top-down Web services? Benefit
ORACLE BUSINESS INTELLIGENCE WORKSHOP
ORACLE BUSINESS INTELLIGENCE WORKSHOP Integration of Oracle BI Publisher with Oracle Business Intelligence Enterprise Edition Purpose This tutorial mainly covers how Oracle BI Publisher is integrated with
PDG Shopping Cart 4.0. Quick Start Guide
PDG Shopping Cart 4.0 Quick Start Guide , Inc. 1751 Montreal Circle, Suite B Tucker, Georgia 30084-6802 Copyright 1998-2004 PDG Software, Inc.; All rights reserved. PDG Software, Inc. ("PDG Software")
Implementing Secure Sockets Layer (SSL) on i
Implementing Secure Sockets Layer (SSL) on i Presented by Barbara Brown Alliance Systems & Programming, Inc. Agenda SSL Concepts History of SSL Digital Certificate Manager Local Certificate Authority Server
SSH and Basic Commands
SSH and Basic Commands In this tutorial we'll introduce you to SSH - a tool that allows you to send remote commands to your Web server - and show you some simple UNIX commands to help you manage your website.
Human Translation Server
Human Translation Server What is HTS Key benefits Costs Getting started Quote Confirmation Delivery Testing environment FAQ Functions reference Request a quotation Confirm the order Getting project status
Module 2 Cloud Computing
1 of 9 07/07/2011 17:12 Module 2 Cloud Computing Module 2 Cloud Computing "Spending on IT cloud services will triple in the next 5 years, reaching $42 billion worlwide." In cloud computing, the word "cloud"
INTEGRATING MICROSOFT DYNAMICS CRM WITH SIMEGO DS3
INTEGRATING MICROSOFT DYNAMICS CRM WITH SIMEGO DS3 Often the most compelling way to introduce yourself to a software product is to try deliver value as soon as possible. Simego DS3 is designed to get you
