(ATS6-DEV09) Deep Dive into REST and SOAP Integration for Protocol Authors


Published on

Pipeline Pilot has always had a strong focus on integration to external resources. In AEP 9.0 we continue this tradition with a major overhaul of our SOAP Connector component as well as improved support for RESTful services. In this talk we will look at how to build protocols that access SOAP services especially secured services and review the approach to accessing RESTful services.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

(ATS6-DEV09) Deep Dive into REST and SOAP Integration for Protocol Authors

  1. 1. (ATS6-DEV09) Deep Dive into REST andSOAP Integration for Protocol AuthorsJon HurleySenior ManagerPlatform R&DJon.Hurley@accelrys.com
  2. 2. The information on the roadmap and future software development efforts areintended to outline general product direction and should not be relied on in makinga purchasing decision.
  3. 3. • SOAP Services– SOAP RPC Connector– SOAP Connector• RESTful services– Reader Components– HTTP Connector• Advanced Results handling– Data from XML, Data from JSON– Data Tree ManipulatorsContent
  4. 4. AEP Integration PointsDBsAccelrys Enterprise PlatformProtocol Runtime EnvironmentVBScript(OnClient)RunProgramJava Perl PythonVBScript(OnServer)Admin Portal Help PortalWeb Apps Web Services API.NETSOAP &HTTPTelnet /FTPSSH /SCPODBC /JDBCVBScriptCmdLineJavaClassesPerlScripts.NETClassesRESTServiceSOAPServiceCmdLineServer IntegrationExtend pipelines with newcomponents that integrate yourcode, data and services.ProfessionalClientRun ProtocolCommand LineClientWeb BrowserWeb PortJavaScript Client SDKJavaScript Client.NET ClientSDK.NET ClientJava ClientSDKJava ClientSOAPClientClient IntegrationBuild clients that connect to Pipeline Pilot and runprotocol services.HTTPClient
  5. 5. “Wrapped”Component• ScientificPipeline PilotUser• AbstractedComponent• Web ServiceunderneathhandlescomplexitySOAP Connector• Expert PipelinePilot User• HandlesComplex WebServices basedon WSDLHTTP Connector• Expert PipelinePilot User• Generic HTTPcomponent• Great for directhandling ofHTTP actions• Swiss ArmyKnife for HTTPPerl/Java/.NETServer Components• SoftwareDevelopers• Complex butflexible• LeveragePerl/Java/.NETlibraries andtoolsWeb Service AccessComplexity and FlexibilityEase of Use
  6. 6. SOAP Services• SOAP Method with WSDL Support• SOAP Connector
  7. 7. WSDLSchemaMessagesPortTypeBindingsServiceWS-Policy ReferencesSOAP EnvelopeSOAP Headers•WS-Security•WS-Addressing•Request HeadersSOAP Body•Request MessageWSDL + WS-Policy = SOAP Messages* - http://www.w3.org/TR/soap12-part0/
  8. 8. Components Uses Status in AEP 9.0 and when to useSOAP RPC Connector/ (Queued) RPC-Encoded SOAP DOC-Literal SOAP w/Simple Types Use only for legacy RPC-encoded SOAPservicesSOAP Connector  DOC-Lit SOAP w/ ComplexTypes Use for most modern SOAP services w/ WSDL Added WS-Policy recognition Added WS-SecurityPolicy recognition Added SAML 2.0 Sender Vouches support w/admin portalAccessing SOAP Services
  9. 9. • AEP Protocol securely calling a SAML protected webservice– Need to create our SAML Certificate used to self-sign ouroutbound SAML Sender Vouches messages– We use the AEP server’s SSL Certificate– Use the Security > SAML Certificate admin portal page– Click the Import SSL Key Pair button to store the SSL Certificateas the SAML Certficate• AEP 9.0 self-signs all outbound Sender Vouches messages (does notuse an external IdP for message signing)SAML Sender Vouches - Outbound
  10. 10. • Web Services securely calling AEP– Need to import a certificate from the outside webservice agent so that we trust it• Use the Security > SAML Certificate admin portal page• Click the Import button on the Trusted Certificates grid andpaste in the server’s SAML Certificate– Optionally specify one or more SAML Issuer Ids to restrict thiscertificate to certain services– If * specified, any service using this certificate will be supportedSAML Sender Vouches - Inbound
  11. 11. DemoSOAP Service Demos• SOAP Connector– Complex Messages with Amazon S3 Simulation– Message Customization with Parameter Metadata• SOAP Connector– WS-Policy and WS-SecurityPolicy Features– SAML 2.0 Sender Vouches Configuration
  12. 12. • Useful tools:– Capture SOAP Packets– TCPTrace.exe (http://www.pocketsoap.com/tcpTrace/)– SOAP UI (http://www.soapui.org/)• Socket debugging is available on the server– Contact support for details– Use sparingly since it very quickly creates huge log files– Turn it off as soon as you are finishedDebugging SOAP Problems
  13. 13. RESTful Services• Reader Components• HTTP Connector
  14. 14. • Resources identified by URLs– http://localhost:9014/zoology/animals/– http://localhost:9014/zoology/animals/13– http://localhost:9014/chem/img/C1CCCCC1C(CCN)OH• Operations on resourced identified by VERBS:– GET = get a representation of the resource– PUT = replace the resource given this data– PATCH = update the resource given this data– POST = create a new resource of this type with this data– DELETE = delete the resource– HEAD = get some meta-data about the resource• Representation Format– Accept: application/xml– Content-Type: application/xmlRESTful Web Services
  15. 15. Components Use When Don’t Use When / CaveatsXML Reader (Generic)JSON ReaderText ReaderBinary Reader• You want to GET a representationof a HTTP-based resource• You want something other thanGET• You want another formatHTTP Connector • You need to perform any operationbut GET• You need to customize settings liketimeout, headers or authorization• You have HTTP requirements notmet by this componentJava (On Server).NET (On Server)• You have special HTTPrequirements• You have a pre-built client library• All else fails• Simpler methods will workAccessing RESTful Web Services
  16. 16. • Swiss army knife for all HTTP needs• Sends one request per Data Record• Can be used for any type of HTTP Verb– GET, POST, PUT, PATCH, DELETE, HEAD, TRACE, OPTIONS, etc.– specialized verbs as well, such as PROPFIND and MKCOLHTTP Connector
  17. 17. • Sample package (testpkg-svc1)– Implements the zoology RESTful API– A set of rest services over a cache that contains{root}/generic/dataroot/data/Tables/zoo.txtExample
  18. 18. DemoRESTful Service Demo• JSON Reader– List of animals• XML Reader– Individual animal• HTTP Connector– Creating a new animal
  19. 19. DemoRESTful Service Demo• HTTP Connector– Specifying authentication– Providing request parameters
  20. 20. Clever• https://getclever.com• “Student Information Systems integration forEducational Applications”• Provides an API to store and retrieve data about:– Schools– Teachers– Students
  21. 21. DemoRESTful Service Demo• Access to ‘Clever’ service– Dealing with hierarchical data
  22. 22. ExampleMashing up data
  23. 23. • Improved support for REST and SOAP in AEP 9• SOAP Connector more robust and support for SAML• (ATS6-PLAT05) Security enhancements in AEP 9• (ATS6-DEV03) Building an Enterprise Web Solution withAEPSummary
  24. 24. Appendix• Will provide access to the example package that definesthe /zoology/ RESTful endpoints