ca idms™ 19.0 web services for modernization
TRANSCRIPT
World®’16
CAIDMS™19.0WebServicesforModernizationDavidRoss,Sr.PrincipalProductOwnerCATechnologies
MFX102S
MAINFRAMEANDWORKLOADAUTOMATION
2 ©2016CA.ALLRIGHTSRESERVED.@CAWORLD#CAWORLD
©2016CA.Allrightsreserved.Alltrademarksreferencedhereinbelongtotheirrespectivecompanies.
Thecontentprovidedinthis CAWorld2016presentationisintendedforinformationalpurposesonlyanddoesnotformanytypeofwarranty. The informationprovidedbyaCApartnerand/orCAcustomerhasnotbeenreviewedforaccuracybyCA.
ForInformationalPurposesOnlyTermsofthisPresentation
3 ©2016CA.ALLRIGHTSRESERVED.@CAWORLD#CAWORLD
Abstract
CAIDMS™WebServicesenableuserstoleverageandextendtheirinvestmentinCAIDMSbyprovidingcallableservicesthatCAIDMSapplicationscanusetoconsumeandprovideWebServicesdirectlyfromaCAIDMSsystem.
DavidRoss
CATechnologiesSr.PrincipalProductOwner,CAIDMS
4 ©2016CA.ALLRIGHTSRESERVED.@CAWORLD#CAWORLD
Agenda
LEVERAGINGYOURINVESTMENTWITHWEBSERVICES
CAIDMSWEBSERVICES
XMLGENERATIONANDPARSING
WEBSERVICESEXAMPLEPROGRAMS
1
2
3
4
5 ©2016CA.ALLRIGHTSRESERVED.@CAWORLD#CAWORLD
CAIDMSApplicationsThen…
Batch
ENTER NEXT TASK:
CAIDMS/DC
CAIDMS/DB
8 ©2016CA.ALLRIGHTSRESERVED.@CAWORLD#CAWORLD
Howdoyoumaximizebusinessvalue?
Largeinvestmentinlegacyapplications••Costlyandriskyconversion••Hardtofindlegacyskills
LeverageandExtend••Leverageinvestment,reducecost••Preserveapplications,reducerisk••Usecurrentdeveloperskills
9 ©2016CA.ALLRIGHTSRESERVED.@CAWORLD#CAWORLD
LeveragingandExtendingCAIDMS
••Keepyourdatabaseinplace••Accessfromwebservices••Usestandardinterfaces
LeverageCAIDMSdatabases
••Reuseyourapplicationbusinesslogic••Invokewebservices••Providewebservices
ExtendCAIDMS
applications
10 ©2016CA.ALLRIGHTSRESERVED.@CAWORLD#CAWORLD
TheCAIDMSApplicationServer
CAIDMS
SQL
ODBCJDBC
WebServices
TCP/IP
11 ©2016CA.ALLRIGHTSRESERVED.@CAWORLD#CAWORLD
Whatarewebservices?
§ Remoteprocedurecalls
§ Supportbusinessprocesses
§ Invokedbyaprogram
§ Looselycoupledforinteroperability
§ Combinetobuildapplications
§ InvokedusingSOAP,XML,REST,JSON
12 ©2016CA.ALLRIGHTSRESERVED.@CAWORLD#CAWORLD
WebServicesRoles
§ Consumer– Callingprogram– Invokesservice
§ Provider– Calledprogram– Implementsservice
13 ©2016CA.ALLRIGHTSRESERVED.@CAWORLD#CAWORLD
WebServicesTerminology
§ SOAP: SimpleObjectAccessProtocol
§ WSDL: WebServicesDefinitionLanguage
§ XML: eXtensible MarkupLanguage
§ REST: RepresentationalStateTransfer
§ JSON: JavaSimpleObjectNotation
§ HTTP: HyperTextTransferProtocol– AlternativesJMS,MQ…
15 ©2016CA.ALLRIGHTSRESERVED.@CAWORLD#CAWORLD
CAIDMSWebServices
§ WebServiceConsumer
§ WebServiceProvider
§ WebServicesAPI
16 ©2016CA.ALLRIGHTSRESERVED.@CAWORLD#CAWORLD
CAIDMSCV
CAIDMSApplicationProgram
CAIDMSWebServices
XMLRequest
XMLReply
WebServiceImplementation
SOAPRequest
SOAPReply
AppServer
DatabaseorApplicationCode
CAIDMSasaWebServiceConsumer
17 ©2016CA.ALLRIGHTSRESERVED.@CAWORLD#CAWORLD
CAIDMSasaWebServiceProvider
Application
CAIDMSCV
SOAPRequest
SOAPReply
WebServiceConsumer
CAIDMSApplicationProgram
CAIDMSWebServices
XMLRequest
XMLReply
19 ©2016CA.ALLRIGHTSRESERVED.@CAWORLD#CAWORLD
WebServicesAPI
§ Welldefined,extendableinterface– Simplifiesapplicationdevelopment– Isolateusercodefromproductchanges– Provideconsistentbaseforproductenhancement
§ CAIDMSCallableService– COBOL,ADS,PL/1,Assembler
§ WSAPIFunctions– Datatransfer– Sessionmanagement– Optionmanagement
20 ©2016CA.ALLRIGHTSRESERVED.@CAWORLD#CAWORLD
WebServicesAPIFunctions
FunctionCode Description Consumer Provider
4 INITIALIZE X X
8 SETOPTION X X
12 GETOPTION X X
16 REQUEST X
20 SEND X
24 RECEIVE X
28 RELEASE X X
21 ©2016CA.ALLRIGHTSRESERVED.@CAWORLD#CAWORLD
WebServicesOptions
NumberOptionName Description
1 LOG-SERVICES Enableanddisable logging
2 LOG-PROGRAM Logaspecificprogram
3 REQUIRE-SIGNON Enforcesecurity
4 CHECK-AUTH Requireusertobeamemberoftheservicessecuritygroup
5 CONNECT-TIMEOUT Specifywaittimeforexternalservices
6 READ-WRITE-TIMEOUT Specifysocket waittime
7 XML-CODE-PAGE SetXMLcodepage
22 ©2016CA.ALLRIGHTSRESERVED.@CAWORLD#CAWORLD
UsingtheWebServicesAPIConsumer Provider
Operation API Function Operation APIFunctionInitializeEnvironment
WSINITIALIZE InitializeEnvironment
WSINITIALIZE
ManageOptions WSGETOPTIONWSSETOPTION
ManageOptions WSGETOPTIONWSSETOPTION
SendRequest
and…
WSREQUEST ReceiveRequest WSRECEIVE
ReceiveResponse SendXMLResponse WSSEND
Free Resources WSRELEASE Free Resources WSRELEASE
23 ©2016CA.ALLRIGHTSRESERVED.@CAWORLD#CAWORLD
ApplicationProgram(Consumer)
ApplicationProgram(Provider)
IDMSWSSC(ServiceConsumer)
IDMSWSI(WebServicesStub)
IDMSWSRM(RequestManager)
IDMSWSSP(ServiceProvider)
IDMSTCP/IPDriver
IDMSWSSS(SOAPServer)
WebServicesAPI
CAIDMSWebServicesInternalArchitecture
WSRequest()WSInitialize()
WSGetOption()WSSetOption()
WSRelease()
WSReceive()WSSend()
24 ©2016CA.ALLRIGHTSRESERVED.@CAWORLD#CAWORLD
CallingtheWebServicesAPI
CALL 'IDMSWSI' USING function, return-code, error-info, function-dependent-parameters, . . .
COBOL
LINK TO PROGRAM ‘IDMSWSI' USING function, return-code, error-info, function-dependent-parameter1, . . .
ADS
25 ©2016CA.ALLRIGHTSRESERVED.@CAWORLD#CAWORLD
WebServicesAPIReturnCodes
ReturnCode Severity Description
0 Success Request processedsuccessfully
4 Warning Requestprocessed,warningmessagereturned
8 Error Requestfailed,errormessagereturned
12 Terminated Requestfailed,serviceterminated
16 SystemError Request failed,allservicesterminated
26 ©2016CA.ALLRIGHTSRESERVED.@CAWORLD#CAWORLD
WebServicesAPIErrorInformation
Error Type Error Text
A API FailuretoadheretoWebServicesAPIprotocol
X XML GeneratedifXMLParsingorGenerationfails
H HTTP APIreceivesanunexpectedHTTPstatuscode
T TCPIP AnunexpectedTCPIPcodereceived
S SOAP AnunexpectedSOAPfaultcodereceived
I INTERNAL FailuresinCAIDMS/DCoperations
O OTHER Anunclassifiederroroccurred
27 ©2016CA.ALLRIGHTSRESERVED.@CAWORLD#CAWORLD
WebServicesAPI– INITIALIZE(4)
§ Allocateandinitializeservicesresources§ Usedwhenconsuminganexternalwebservice§ Parameters
– WS-INITIALIZE– return-code– error-info– request-handle– interface-version.
28 ©2016CA.ALLRIGHTSRESERVED.@CAWORLD#CAWORLD
WebServicesAPI– SETOPTION(8)
§ Setanoption§ Overridesdefaultvalue§ Parameters
– WS-GETOPTION,– return-code,– error-info,– request-handle,– option-number,– option-value.
29 ©2016CA.ALLRIGHTSRESERVED.@CAWORLD#CAWORLD
WebServicesAPI– GETOPTION(12)
§ Getsthecurrentvalueforanoption§ Parameters
– WS-GETOPTION,– return-code,– error-info,– request-handle,– option-number,– option-value.
30 ©2016CA.ALLRIGHTSRESERVED.@CAWORLD#CAWORLD
WebServicesAPI– REQUEST(16)
§ Sendservicerequesttotheprovider§ Parameters
– WS-REQUEST– return-code– error-info– request-handle– request-info– request-message-data– response-message-data
31 ©2016CA.ALLRIGHTSRESERVED.@CAWORLD#CAWORLD
WebServicesAPI– SEND(20)
§ Sendserviceresponsetotheconsumer§ Parameters
– WS-SEND– return-code– error-info– request-handle– response-message-data
32 ©2016CA.ALLRIGHTSRESERVED.@CAWORLD#CAWORLD
WebServicesAPI– RECEIVE(24)
§ Receiveservicerequestfromconsumer§ Parameters
– WS-RECEIVE– return-code– error-info– request-handle– request-message-data
33 ©2016CA.ALLRIGHTSRESERVED.@CAWORLD#CAWORLD
WebServicesAPI– RELEASE(28)
§ FreesallresourcesallocatedtoservicetheWebServicesrequest§ Parameters
– WS-RELEASE– return-code– error-info– request-handle
35 ©2016CA.ALLRIGHTSRESERVED.@CAWORLD#CAWORLD
XMLMessageContents<?xml version="1.0" encoding="utf-8"?><soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"<soap:Body>
<IDMSWSPIOperation xmlns=“http://www.IDMSWSPI.Request.com"> <InputFields>
<EmplID>0472</EmplID><dbname>EMPDEMO</dbname>
</InputFields></IDMSWSPIOperation>
</soap:Body></soap:Envelope>
36 ©2016CA.ALLRIGHTSRESERVED.@CAWORLD#CAWORLD
XMLGenerationandParsing§ XMLGeneration
– UsesinputvariablestocreateanXMLMessage
– Finalmessageincludesyourdataasthepayload
<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><IDMSWSPIOperation xmlns="http://www.IDMSWSPI.Request.com">
<InputFields><EmplID>0472</EmplID><dbname>EMPDEMO</dbname>
</InputFields></IDMSWSPIOperation></soap:Body>
</soap:Envelope>
§ XMLParsing– ExtractsthepayloadfromagivenXMLmessage
– PayloadisinterpretedasindividualvariablesforuseWebservices
§ Twomainapproaches:useofIBM’sCOBOLfunctionsoruseofbuilt-inSQL/XMLfunctions
EmplID:0472dbname:EMPDEMO
EmplID:0472dbname:EMPDEMO
Input
Output
37 ©2016CA.ALLRIGHTSRESERVED.@CAWORLD#CAWORLD
UseofSQL/XMLFunctionsforXMLGeneration0000-MAINLINE-BEG.
EXEC SQLset :DOC=xmlserialize(contentxmlelement(name "soapenv:Envelope“, xmlnamespaces(
'http://schemas.xmlsoap.org/soap/envelope/‘as "soapenv“
, default 'HTTP://CA.COM/HR/GLOBALXML'),, xmlelement(name "soapenv:Header"), xmlelement(name "soapenv:Body“, xmlelement(name “IDMSWSPIOperation“
, xmlnamespaces(‘http://www.IDMSWSPI.Request.com’, xmlconcat(xmlelement(name “InputFields”, xmlconcat(xmlelement(name “EmplID”, :EMPLID)
xmlelement(name “dbname”, :DBNAME))))))) as char(1000))
END-EXEC.
01 DOC PIC X(1000) VALUE SPACES.
COBOLparagraphname ExampleofgenerationofanXMLmessage
01 EMPLID PIC X(4).01 DBNAME PIC X(8).
38 ©2016CA.ALLRIGHTSRESERVED.@CAWORLD#CAWORLD
XMLGENERATE
§ GeneratesXMLdocumentfromCOBOLdatastructure
§ UsetoreturnCAIDMSdatainXMLformat
§ XMLGENERATEintroducedinCOBOLforz/OSV3R3– AlsosupportedforPL/1
§ CompilewithXMLSStousez/OSXMLsystemservicesparser
40 ©2016CA.ALLRIGHTSRESERVED.@CAWORLD#CAWORLD
COBOLXMLParseXMLstring
COBOLPARSEXMLstring
EvaluatethedatatagsandpopulatedataintoCOBOLdatastructure
Resultsin:WS-EMP-ID=0472
45 ©2016CA.ALLRIGHTSRESERVED.@CAWORLD#CAWORLD
RequestAPIExample§ TosendaServiceRequestfortheConsumer,theADSdialogusesthe
WebServiceRequestAPI
50 ©2016CA.ALLRIGHTSRESERVED.@CAWORLD#CAWORLD
CAIDMSWebServicesEducationandTraining
§ CAIDMSWebServices19.0Introduction
§ Webbasedtraining(WBT)
§ education.ca.com
51 ©2016CA.ALLRIGHTSRESERVED.@CAWORLD#CAWORLD
SamplesandDocSampleprograms,documentation,andwebbasedtraininghelpyougetstartedwithCAIDMSWebServices.
LeverageCAIDMSCAIDMSWebServicesenableyoutoleverageandextendyourinvestmentinCAIDMS.
WebServicesAPICAIDMSWebServicesprovidesanAPIforCAIDMSapplicationstoconsumeandprovidewebservices.
SummaryCAIDMSWebServices
52 ©2016CA.ALLRIGHTSRESERVED.@CAWORLD#CAWORLD
RecommendedSessionsSESSION# TITLE DATE/TIME
MFX100S StrategyandVisionforCAIDMS 11/16/2016at12:45pm
MFX101S LegacyisnotaDirtyWord 11/16/2016at1:45pm
MFX102S CAIDMS19.0WebServicesforModernization 11/16/2016at3:00pm
MFX103S CAIDMS19.0SQLEnhancementsforModernization 11/16/2016at3:30pm
MFX104S JavaAccesstoCA-IDMSDataatBT(BritishTelecom) 11/16/2016at4:45pm
MFX105SImplementationandUseofGenericVTAMResourceswithParallelSYSPLEXFeatures(CA andCAXIA)
11/17/2016at12:45pm
MFX106S CAIDMSBufferTuning 11/17/2016at1:45pm
MFX107S M3AServicesMonitor,Measure,ManageandAlert 11/17/2016at3:00pm
MFX108S BirdsofaFeather/StumptheTechie! 11/17/2016at3:45pm
53 ©2016CA.ALLRIGHTSRESERVED.@CAWORLD#CAWORLD
MustSeeDemos
DemoNameProductXTheater#location
DemoNameServicesYTheater#location
DemoNameSolutionYTheater#location
DemoNameProductXTheater#location