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.
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
Deep Dive REST and SOAP Integration
1. (ATS6-DEV09) Deep Dive into REST and
SOAP Integration for Protocol Authors
Jon Hurley
Senior Manager
Platform R&D
Jon.Hurley@accelrys.com
2. The information on the roadmap and future software development efforts are
intended to outline general product direction and should not be relied on in making
a purchasing decision.
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 Manipulators
Content
4. AEP Integration Points
DBs
Accelrys Enterprise Platform
Protocol Runtime Environment
VB
Script
(On
Client)
Run
Program
Java Perl Python
VB
Script
(On
Server)
Admin Portal Help PortalWeb Apps Web Services API
.NET
SOAP &
HTTP
Telnet /
FTP
SSH /
SCP
ODBC /
JDBC
VB
Script
Cmd
Line
Java
Classes
Perl
Scripts
.NET
Classes
REST
Service
SOAP
Service
Cmd
Line
Server Integration
Extend pipelines with new
components that integrate your
code, data and services.
Professional
Client
Run Protocol
Command Line
Client
Web Browser
Web Port
JavaScript Client SDK
JavaScript Client
.NET Client
SDK
.NET Client
Java Client
SDK
Java Client
SOAP
Client
Client Integration
Build clients that connect to Pipeline Pilot and run
protocol services.
HTTP
Client
5. “Wrapped”
Component
• Scientific
Pipeline Pilot
User
• Abstracted
Component
• Web Service
underneath
handles
complexity
SOAP Connector
• Expert Pipeline
Pilot User
• Handles
Complex Web
Services based
on WSDL
HTTP Connector
• Expert Pipeline
Pilot User
• Generic HTTP
component
• Great for direct
handling of
HTTP actions
• Swiss Army
Knife for HTTP
Perl/Java/.NET
Server Components
• Software
Developers
• Complex but
flexible
• Leverage
Perl/Java/.NET
libraries and
tools
Web Service Access
Complexity and Flexibility
Ease of Use
8. Components Uses Status in AEP 9.0 and when to use
SOAP RPC Connector
/ (Queued)
RPC-Encoded SOAP
DOC-Literal SOAP w/
Simple Types
Use only for legacy RPC-encoded SOAP
services
SOAP Connector DOC-Lit SOAP w/ Complex
Types
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 portal
Accessing SOAP Services
9. • AEP Protocol securely calling a SAML protected web
service
– Need to create our SAML Certificate used to self-sign our
outbound 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 Certificate
as the SAML Certficate
• AEP 9.0 self-signs all outbound Sender Vouches messages (does not
use an external IdP for message signing)
SAML Sender Vouches - Outbound
10. • Web Services securely calling AEP
– Need to import a certificate from the outside web
service agent so that we trust it
• Use the Security > SAML Certificate admin portal page
• Click the Import button on the Trusted Certificates grid and
paste in the server’s SAML Certificate
– Optionally specify one or more SAML Issuer Ids to restrict this
certificate to certain services
– If * specified, any service using this certificate will be supported
SAML Sender Vouches - Inbound
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. • 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 finished
Debugging SOAP Problems
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/xml
RESTful Web Services
15. Components Use When Don’t Use When / Caveats
XML Reader (Generic)
JSON Reader
Text Reader
Binary Reader
• You want to GET a representation
of a HTTP-based resource
• You want something other than
GET
• You want another format
HTTP Connector • You need to perform any operation
but GET
• You need to customize settings like
timeout, headers or authorization
• You have HTTP requirements not
met by this component
Java (On Server)
.NET (On Server)
• You have special HTTP
requirements
• You have a pre-built client library
• All else fails
• Simpler methods will work
Accessing RESTful Web Services
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 MKCOL
HTTP Connector
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.txt
Example
18. DemoRESTful Service Demo
• JSON Reader
– List of animals
• XML Reader
– Individual animal
• HTTP Connector
– Creating a new animal
20. Clever
• https://getclever.com
• “Student Information Systems integration for
Educational Applications”
• Provides an API to store and retrieve data about:
– Schools
– Teachers
– Students
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 with
AEP
Summary
24. Appendix
• Will provide access to the example package that defines
the /zoology/ RESTful endpoints