SlideShare a Scribd company logo
1 of 20
(ATS3-PLAT02) Advanced SOAP and
   RESTful Services Integration
 Jason Benedict
 Sr. Architect, Platform R&D
 jason.benedict@accelrys.com
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.
Pipeline Pilot Integration Points
                                                                                                                   Client Integration
                                                                                                                   Build clients that connect to Pipeline
                                                                                                                   Pilot and run protocol services.
                                                                Web Browser
                               Run Protocol                                                          .NET Client             Java Client                 SOAP Client
 Professional Client          Command Line              Web Port         JavaScript Client
                                  Client
                                                   JavaScript Client                                 .NET Client
                                                                            REST API                                      Java Client SDK          Web Services API
                                                         SDK                                            SDK
                                                          Pipeline Pilot Enterprise Server

               Web Apps                         Web Services API                             Admin Portal                                  Help Portal
                                                                                                    Grid System Integration (optional)
                                                               Protocol Runtime Environment
  VB Script       VB Script
                                   Run                                                                  SOAP &         Telnet /                           ODBC /
    (On              (On                      Java             Perl      Python              .NET                                      SSH / SCP
                                 Program                                                                 HTTP            FTP                               JDBC
   Client)         Server)



                                   Java        Perl            .NET
   VB Script       Cmd Line
                                  Classes     Scripts         Classes



Server Integration                                                                                       REST            SOAP
                                                                                                                                       Cmd Line              DBs
Extend pipelines with new components that                                                               Service         Service

integrate your code, data and services.
Agenda
•   Intended Audience: Pipeline Pilot Protocol Authors and Component Developers
•   SOAP Services
     – SOAP Method
     – SOAP Method with WSDL Support (Queued)
     – SOAP Connector
          •   Customization of parameters and template
     – Demos
•   RESTful services
     – Reader Components
     – HTTP Connector
     – Demos
•   Advanced Results handling
     – Data from XML, Data from JSON
     – Data Tree Manipulators
     – Demos
Web Service Access


                                               Ease of Use
“Wrapped”              SOAP Connector                 HTTP Connector              Perl/Java/.NET
Component                                                                         Server Components

    • Scientific           • Expert Pipeline                 • Expert Pipeline        • Software
      Pipeline Pilot         Pilot User                        Pilot User               Developers
      User                 • Handles                         • Generic HTTP           • Complex but
    • Abstracted             Complex Web                       component                flexible
      Component              Services based                  • Great for direct       • Leverage
    • Web Service            on WSDL                           handling of              Perl/Java/.NET
      underneath                                               HTTP actions             libraries and
      handles                                                • Swiss Army               tools
      complexity                                               Knife for HTTP



                                  Complexity and Flexibility
SOAP-based Web Services
  •   SOAP Web Services
       –   Messages usually sent over HTTP
       –   Always a POST, body is XML SOAP Doc
       –   Always includes “SOAP Action” header
       –   Always set Content-Type to “text/xml”
  •   WSDL
       –   Binding defines how messages are sent
           (SOAP 1.1, 1.2, style, transport)
       –   Port Type defines operations and
           messagse
       –   XML schema defines the data types in
           messages
  •   WS-Policy
       –   Defines the Quality of Service features   * - http://www.w3.org/TR/soap12-part0/
           required by the service
       –   Security , Addressing, etc.
Accessing SOAP Services
Components                      Use When                              Don’t Use When / Caveats

SOAP Method                     • RPC-Encoded SOAP                    • Probably never

SOAP Method with WSDL Support   • RPC-Encoded SOAP                    • DOC-LIT w/ Complex Types
                                • DOC-Lit SOAP w/ Simple Type
SOAP Method with WSDL Support   • Same as above, but when threading   • Be careful with DOS attacks
(Queued)                        is needed for through-put
SOAP Connector                  • DOC-Lit SOAP w/ Complex Types       • RPC-Encoded SOAP
                                • Template flexibility is required
HTTP Connector                  • Need to create and POST your own
                                SOAP messages
                                • Need custom handling of outputs
                                • Need to customize HTTP settings
Java (On Server)                • WS-Policy Requirements              • Simpler methods will work
.NET (On Server)                • Attachments or MTOM                 • Generally requires package
                                • Client stubs already exist          deployment
                                • All else fails                      • HTTP Proxy settings and
                                                                      authentication will not get picked up
SOAP Service Demos

• SOAP Method with WSDL Support (Queued)
• SOAP Connector
   – Advanced XML Constructs with Amazon S3 Simulation
Debugging SOAP Problems

• 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
RESTful Web Services
•   Resources identified by URL’s
     – http://localhost:9004/zoo/animals
     – http://localhost:9004/zoo/animals/13
     – http://localhost:9004/chem/img/C1CCCCC1C(CCN)OH
•   Operations on resourced identified by VERBS:
     –   GET = get a representation of the resource
     –   PUT = 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
Accessing RESTful Web Services
Components             Use When                                Don’t Use When / Caveats

XML Reader (Generic)   • You want to GET a representation of   • You want something other than GET
JSON Reader            a HTTP-based resource                   • You want another format
Text Reader
Binary Reader
HTTP Connector         • You need to perform any operation     • You have HTTP requirements not
                       but GET                                 met by this component
                       • You need to customize settings like
                       timeout, headers or authorization
Java (On Server)       • You have special HTTP requirements    • Simpler methods will work
.NET (On Server)       • You have a pre-built client library
                       • All else fails
HTTP Connector

• Swiss army knife for all HTTP
• Sends one request per Data Record
• Can be used for any type of HTTP Verb
   – GET, POST, PUT, DELETE, HEAD, TRACE, OPTIONS, etc.
   – specialized verbs as well, such as PROPFIND and MKCOL
HTTP Connector – Internal Handling
• HTTP communications from all standard components uses
  the same library
   – HTTP 1.1
   – Basic, NTLM, and Negotiate Security
       • “Authentication Options” or username/password in URL
       • “Use Accelrys Credentials” allows single sign on from Pipeline Pilot
         Clients
   – Redirects on 300 responses
   – Works with Proxy servers (Administration Portal setup)
   – Decompress and dechunk based on Transfer and Content
     encodings
   – 100 Continue responses for requests with a body
HTTP Connector - POST

• Set Parameter names and values
   – Values are Pilotscript expressions
      • use Data Record properties
   – One HTTP request for each input data record
      • If no input, works like a Reader
   – Add additional parameters
• FormMultipart or FormURLEncoded via “HTTP Post
  Method”
HTTP Connector – Custom Options

• Add or override most HTTP request headers
   – Cookies, Content-Type, etc.
   – Cannot override “Authorization” or “Allow”
      • Can now over-ride these headers in AEP 9.0
• Custom request body
   – Disables the ability to set “Post Parameters”
• Timeout
HTTP Connector – Custom Options
• Limit size of response via “Maximum Response Size”
   – Can also stream the data via “Maximum Property Size”
   – Think of this like a “buffer” in code
   – Only Data from XML and Data from JSON components understand this
     method
• Return response headers
   – Parsing Cookies, Content-Type, etc.
• Read as binary
   – Creates a ByteArrayValue property
• Connection Options
   – Keep-Alive, Expect: 100, 403 servers as though they sent 401
   – Allow error response codes to be treated as valid
Demos

• Accessing Simple RESTful Services
• Using the HTTP Connector
HTTP Connector –Debugging Tips

• Useful browser plugins
   – Firefox: Live HTTP Headers
   – Firefox: RESTClient
   – Chrome: Advanced REST Client
• 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
Summary
• What we learned
   – Connecting to SOAP Services
       •   SOAP Method Components
       •   SOAP Connector
       •   Results Handling
       •   Debugging
   – Connecting to RESTful Services
       •   Readers
       •   HTTP Connectors
       •   Results Handling
       •   Debugging
       •   Managing Links
• Recommended Sessions
   – (ATS3-DEV05) Coding up Pipeline Pilot Components
   – (ATS3-DEV07) Pipeline Pilot as a Web Service Deployment Platform
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.


For more information on the Accelrys Tech Summits and other IT & Developer information,
please visit:
https://community.accelrys.com/groups/it-dev

More Related Content

More from BIOVIA

(ATS6-PLAT05) Security enhancements in AEP 9
(ATS6-PLAT05) Security enhancements in AEP 9(ATS6-PLAT05) Security enhancements in AEP 9
(ATS6-PLAT05) Security enhancements in AEP 9BIOVIA
 
(ATS6-PLAT04) Query service
(ATS6-PLAT04) Query service (ATS6-PLAT04) Query service
(ATS6-PLAT04) Query service BIOVIA
 
(ATS6-PLAT02) Accelrys Catalog and Protocol Validation
(ATS6-PLAT02) Accelrys Catalog and Protocol Validation(ATS6-PLAT02) Accelrys Catalog and Protocol Validation
(ATS6-PLAT02) Accelrys Catalog and Protocol ValidationBIOVIA
 
(ATS6-PLAT01) Chemistry Harmonization: Bringing together the Direct 9 and Pip...
(ATS6-PLAT01) Chemistry Harmonization: Bringing together the Direct 9 and Pip...(ATS6-PLAT01) Chemistry Harmonization: Bringing together the Direct 9 and Pip...
(ATS6-PLAT01) Chemistry Harmonization: Bringing together the Direct 9 and Pip...BIOVIA
 
(ATS6-GS04) Performance Analysis of Accelrys Enterprise Platform 9.0 on IBM’s...
(ATS6-GS04) Performance Analysis of Accelrys Enterprise Platform 9.0 on IBM’s...(ATS6-GS04) Performance Analysis of Accelrys Enterprise Platform 9.0 on IBM’s...
(ATS6-GS04) Performance Analysis of Accelrys Enterprise Platform 9.0 on IBM’s...BIOVIA
 
(ATS6-GS02) Integrating Contur and HEOS
(ATS6-GS02) Integrating Contur and HEOS(ATS6-GS02) Integrating Contur and HEOS
(ATS6-GS02) Integrating Contur and HEOSBIOVIA
 
(ATS6-GS01) Welcome
(ATS6-GS01) Welcome (ATS6-GS01) Welcome
(ATS6-GS01) Welcome BIOVIA
 
(ATS6-DEV09) Deep Dive into REST and SOAP Integration for Protocol Authors
(ATS6-DEV09) Deep Dive into REST and SOAP Integration for Protocol Authors(ATS6-DEV09) Deep Dive into REST and SOAP Integration for Protocol Authors
(ATS6-DEV09) Deep Dive into REST and SOAP Integration for Protocol AuthorsBIOVIA
 
(ATS6-DEV08) Integrating Contur ELN with other systems using a RESTful API
(ATS6-DEV08) Integrating Contur ELN with other systems using a RESTful API(ATS6-DEV08) Integrating Contur ELN with other systems using a RESTful API
(ATS6-DEV08) Integrating Contur ELN with other systems using a RESTful APIBIOVIA
 
(ATS6-DEV07) Building widgets for ELN home page
(ATS6-DEV07) Building widgets for ELN home page(ATS6-DEV07) Building widgets for ELN home page
(ATS6-DEV07) Building widgets for ELN home pageBIOVIA
 
(ATS6-DEV06) Using Packages for Protocol, Component, and Application Delivery
(ATS6-DEV06) Using Packages for Protocol, Component, and Application Delivery(ATS6-DEV06) Using Packages for Protocol, Component, and Application Delivery
(ATS6-DEV06) Using Packages for Protocol, Component, and Application DeliveryBIOVIA
 
(ATS6-DEV05) Building Interactive Web Applications with the Reporting Collection
(ATS6-DEV05) Building Interactive Web Applications with the Reporting Collection(ATS6-DEV05) Building Interactive Web Applications with the Reporting Collection
(ATS6-DEV05) Building Interactive Web Applications with the Reporting CollectionBIOVIA
 
(ATS6-DEV04) Building Web MashUp applications that include Accelrys Applicati...
(ATS6-DEV04) Building Web MashUp applications that include Accelrys Applicati...(ATS6-DEV04) Building Web MashUp applications that include Accelrys Applicati...
(ATS6-DEV04) Building Web MashUp applications that include Accelrys Applicati...BIOVIA
 
(ATS6-DEV03) Building an Enterprise Web Solution with AEP
(ATS6-DEV03) Building an Enterprise Web Solution with AEP(ATS6-DEV03) Building an Enterprise Web Solution with AEP
(ATS6-DEV03) Building an Enterprise Web Solution with AEPBIOVIA
 
(ATS6-DEV02) Web Application Strategies
(ATS6-DEV02) Web Application Strategies(ATS6-DEV02) Web Application Strategies
(ATS6-DEV02) Web Application StrategiesBIOVIA
 
(ATS6-DEV01) What’s new for Protocol and Component Developers in AEP 9.0
(ATS6-DEV01) What’s new for Protocol and Component Developers in AEP 9.0(ATS6-DEV01) What’s new for Protocol and Component Developers in AEP 9.0
(ATS6-DEV01) What’s new for Protocol and Component Developers in AEP 9.0BIOVIA
 
(ATS6-APP09) ELN configuration management with ADM
(ATS6-APP09) ELN configuration management with ADM(ATS6-APP09) ELN configuration management with ADM
(ATS6-APP09) ELN configuration management with ADMBIOVIA
 
(ATS6-APP07) Configuration of Accelrys ELN to Clone to the Latest Template Ve...
(ATS6-APP07) Configuration of Accelrys ELN to Clone to the Latest Template Ve...(ATS6-APP07) Configuration of Accelrys ELN to Clone to the Latest Template Ve...
(ATS6-APP07) Configuration of Accelrys ELN to Clone to the Latest Template Ve...BIOVIA
 
(ATS6-APP06) Accelrys LIMS and Accelrys ELN integration
(ATS6-APP06) Accelrys LIMS and Accelrys ELN integration    (ATS6-APP06) Accelrys LIMS and Accelrys ELN integration
(ATS6-APP06) Accelrys LIMS and Accelrys ELN integration BIOVIA
 
(ATS6-APP05) Deploying Contur ELN to large organizations
(ATS6-APP05) Deploying Contur ELN to large organizations(ATS6-APP05) Deploying Contur ELN to large organizations
(ATS6-APP05) Deploying Contur ELN to large organizationsBIOVIA
 

More from BIOVIA (20)

(ATS6-PLAT05) Security enhancements in AEP 9
(ATS6-PLAT05) Security enhancements in AEP 9(ATS6-PLAT05) Security enhancements in AEP 9
(ATS6-PLAT05) Security enhancements in AEP 9
 
(ATS6-PLAT04) Query service
(ATS6-PLAT04) Query service (ATS6-PLAT04) Query service
(ATS6-PLAT04) Query service
 
(ATS6-PLAT02) Accelrys Catalog and Protocol Validation
(ATS6-PLAT02) Accelrys Catalog and Protocol Validation(ATS6-PLAT02) Accelrys Catalog and Protocol Validation
(ATS6-PLAT02) Accelrys Catalog and Protocol Validation
 
(ATS6-PLAT01) Chemistry Harmonization: Bringing together the Direct 9 and Pip...
(ATS6-PLAT01) Chemistry Harmonization: Bringing together the Direct 9 and Pip...(ATS6-PLAT01) Chemistry Harmonization: Bringing together the Direct 9 and Pip...
(ATS6-PLAT01) Chemistry Harmonization: Bringing together the Direct 9 and Pip...
 
(ATS6-GS04) Performance Analysis of Accelrys Enterprise Platform 9.0 on IBM’s...
(ATS6-GS04) Performance Analysis of Accelrys Enterprise Platform 9.0 on IBM’s...(ATS6-GS04) Performance Analysis of Accelrys Enterprise Platform 9.0 on IBM’s...
(ATS6-GS04) Performance Analysis of Accelrys Enterprise Platform 9.0 on IBM’s...
 
(ATS6-GS02) Integrating Contur and HEOS
(ATS6-GS02) Integrating Contur and HEOS(ATS6-GS02) Integrating Contur and HEOS
(ATS6-GS02) Integrating Contur and HEOS
 
(ATS6-GS01) Welcome
(ATS6-GS01) Welcome (ATS6-GS01) Welcome
(ATS6-GS01) Welcome
 
(ATS6-DEV09) Deep Dive into REST and SOAP Integration for Protocol Authors
(ATS6-DEV09) Deep Dive into REST and SOAP Integration for Protocol Authors(ATS6-DEV09) Deep Dive into REST and SOAP Integration for Protocol Authors
(ATS6-DEV09) Deep Dive into REST and SOAP Integration for Protocol Authors
 
(ATS6-DEV08) Integrating Contur ELN with other systems using a RESTful API
(ATS6-DEV08) Integrating Contur ELN with other systems using a RESTful API(ATS6-DEV08) Integrating Contur ELN with other systems using a RESTful API
(ATS6-DEV08) Integrating Contur ELN with other systems using a RESTful API
 
(ATS6-DEV07) Building widgets for ELN home page
(ATS6-DEV07) Building widgets for ELN home page(ATS6-DEV07) Building widgets for ELN home page
(ATS6-DEV07) Building widgets for ELN home page
 
(ATS6-DEV06) Using Packages for Protocol, Component, and Application Delivery
(ATS6-DEV06) Using Packages for Protocol, Component, and Application Delivery(ATS6-DEV06) Using Packages for Protocol, Component, and Application Delivery
(ATS6-DEV06) Using Packages for Protocol, Component, and Application Delivery
 
(ATS6-DEV05) Building Interactive Web Applications with the Reporting Collection
(ATS6-DEV05) Building Interactive Web Applications with the Reporting Collection(ATS6-DEV05) Building Interactive Web Applications with the Reporting Collection
(ATS6-DEV05) Building Interactive Web Applications with the Reporting Collection
 
(ATS6-DEV04) Building Web MashUp applications that include Accelrys Applicati...
(ATS6-DEV04) Building Web MashUp applications that include Accelrys Applicati...(ATS6-DEV04) Building Web MashUp applications that include Accelrys Applicati...
(ATS6-DEV04) Building Web MashUp applications that include Accelrys Applicati...
 
(ATS6-DEV03) Building an Enterprise Web Solution with AEP
(ATS6-DEV03) Building an Enterprise Web Solution with AEP(ATS6-DEV03) Building an Enterprise Web Solution with AEP
(ATS6-DEV03) Building an Enterprise Web Solution with AEP
 
(ATS6-DEV02) Web Application Strategies
(ATS6-DEV02) Web Application Strategies(ATS6-DEV02) Web Application Strategies
(ATS6-DEV02) Web Application Strategies
 
(ATS6-DEV01) What’s new for Protocol and Component Developers in AEP 9.0
(ATS6-DEV01) What’s new for Protocol and Component Developers in AEP 9.0(ATS6-DEV01) What’s new for Protocol and Component Developers in AEP 9.0
(ATS6-DEV01) What’s new for Protocol and Component Developers in AEP 9.0
 
(ATS6-APP09) ELN configuration management with ADM
(ATS6-APP09) ELN configuration management with ADM(ATS6-APP09) ELN configuration management with ADM
(ATS6-APP09) ELN configuration management with ADM
 
(ATS6-APP07) Configuration of Accelrys ELN to Clone to the Latest Template Ve...
(ATS6-APP07) Configuration of Accelrys ELN to Clone to the Latest Template Ve...(ATS6-APP07) Configuration of Accelrys ELN to Clone to the Latest Template Ve...
(ATS6-APP07) Configuration of Accelrys ELN to Clone to the Latest Template Ve...
 
(ATS6-APP06) Accelrys LIMS and Accelrys ELN integration
(ATS6-APP06) Accelrys LIMS and Accelrys ELN integration    (ATS6-APP06) Accelrys LIMS and Accelrys ELN integration
(ATS6-APP06) Accelrys LIMS and Accelrys ELN integration
 
(ATS6-APP05) Deploying Contur ELN to large organizations
(ATS6-APP05) Deploying Contur ELN to large organizations(ATS6-APP05) Deploying Contur ELN to large organizations
(ATS6-APP05) Deploying Contur ELN to large organizations
 

Recently uploaded

Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 

Recently uploaded (20)

Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 

(ATS3-PLAT02) Advanced SOAP and RESTful Services

  • 1. (ATS3-PLAT02) Advanced SOAP and RESTful Services Integration Jason Benedict Sr. Architect, Platform R&D jason.benedict@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. Pipeline Pilot Integration Points Client Integration Build clients that connect to Pipeline Pilot and run protocol services. Web Browser Run Protocol .NET Client Java Client SOAP Client Professional Client Command Line Web Port JavaScript Client Client JavaScript Client .NET Client REST API Java Client SDK Web Services API SDK SDK Pipeline Pilot Enterprise Server Web Apps Web Services API Admin Portal Help Portal Grid System Integration (optional) Protocol Runtime Environment VB Script VB Script Run SOAP & Telnet / ODBC / (On (On Java Perl Python .NET SSH / SCP Program HTTP FTP JDBC Client) Server) Java Perl .NET VB Script Cmd Line Classes Scripts Classes Server Integration REST SOAP Cmd Line DBs Extend pipelines with new components that Service Service integrate your code, data and services.
  • 4. Agenda • Intended Audience: Pipeline Pilot Protocol Authors and Component Developers • SOAP Services – SOAP Method – SOAP Method with WSDL Support (Queued) – SOAP Connector • Customization of parameters and template – Demos • RESTful services – Reader Components – HTTP Connector – Demos • Advanced Results handling – Data from XML, Data from JSON – Data Tree Manipulators – Demos
  • 5. Web Service Access Ease of Use “Wrapped” SOAP Connector HTTP Connector Perl/Java/.NET Component Server Components • Scientific • Expert Pipeline • Expert Pipeline • Software Pipeline Pilot Pilot User Pilot User Developers User • Handles • Generic HTTP • Complex but • Abstracted Complex Web component flexible Component Services based • Great for direct • Leverage • Web Service on WSDL handling of Perl/Java/.NET underneath HTTP actions libraries and handles • Swiss Army tools complexity Knife for HTTP Complexity and Flexibility
  • 6. SOAP-based Web Services • SOAP Web Services – Messages usually sent over HTTP – Always a POST, body is XML SOAP Doc – Always includes “SOAP Action” header – Always set Content-Type to “text/xml” • WSDL – Binding defines how messages are sent (SOAP 1.1, 1.2, style, transport) – Port Type defines operations and messagse – XML schema defines the data types in messages • WS-Policy – Defines the Quality of Service features * - http://www.w3.org/TR/soap12-part0/ required by the service – Security , Addressing, etc.
  • 7. Accessing SOAP Services Components Use When Don’t Use When / Caveats SOAP Method • RPC-Encoded SOAP • Probably never SOAP Method with WSDL Support • RPC-Encoded SOAP • DOC-LIT w/ Complex Types • DOC-Lit SOAP w/ Simple Type SOAP Method with WSDL Support • Same as above, but when threading • Be careful with DOS attacks (Queued) is needed for through-put SOAP Connector • DOC-Lit SOAP w/ Complex Types • RPC-Encoded SOAP • Template flexibility is required HTTP Connector • Need to create and POST your own SOAP messages • Need custom handling of outputs • Need to customize HTTP settings Java (On Server) • WS-Policy Requirements • Simpler methods will work .NET (On Server) • Attachments or MTOM • Generally requires package • Client stubs already exist deployment • All else fails • HTTP Proxy settings and authentication will not get picked up
  • 8. SOAP Service Demos • SOAP Method with WSDL Support (Queued) • SOAP Connector – Advanced XML Constructs with Amazon S3 Simulation
  • 9. Debugging SOAP Problems • 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
  • 10. RESTful Web Services • Resources identified by URL’s – http://localhost:9004/zoo/animals – http://localhost:9004/zoo/animals/13 – http://localhost:9004/chem/img/C1CCCCC1C(CCN)OH • Operations on resourced identified by VERBS: – GET = get a representation of the resource – PUT = 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
  • 11. Accessing RESTful Web Services Components Use When Don’t Use When / Caveats XML Reader (Generic) • You want to GET a representation of • You want something other than GET JSON Reader a HTTP-based resource • You want another format Text Reader Binary Reader HTTP Connector • You need to perform any operation • You have HTTP requirements not but GET met by this component • You need to customize settings like timeout, headers or authorization Java (On Server) • You have special HTTP requirements • Simpler methods will work .NET (On Server) • You have a pre-built client library • All else fails
  • 12. HTTP Connector • Swiss army knife for all HTTP • Sends one request per Data Record • Can be used for any type of HTTP Verb – GET, POST, PUT, DELETE, HEAD, TRACE, OPTIONS, etc. – specialized verbs as well, such as PROPFIND and MKCOL
  • 13. HTTP Connector – Internal Handling • HTTP communications from all standard components uses the same library – HTTP 1.1 – Basic, NTLM, and Negotiate Security • “Authentication Options” or username/password in URL • “Use Accelrys Credentials” allows single sign on from Pipeline Pilot Clients – Redirects on 300 responses – Works with Proxy servers (Administration Portal setup) – Decompress and dechunk based on Transfer and Content encodings – 100 Continue responses for requests with a body
  • 14. HTTP Connector - POST • Set Parameter names and values – Values are Pilotscript expressions • use Data Record properties – One HTTP request for each input data record • If no input, works like a Reader – Add additional parameters • FormMultipart or FormURLEncoded via “HTTP Post Method”
  • 15. HTTP Connector – Custom Options • Add or override most HTTP request headers – Cookies, Content-Type, etc. – Cannot override “Authorization” or “Allow” • Can now over-ride these headers in AEP 9.0 • Custom request body – Disables the ability to set “Post Parameters” • Timeout
  • 16. HTTP Connector – Custom Options • Limit size of response via “Maximum Response Size” – Can also stream the data via “Maximum Property Size” – Think of this like a “buffer” in code – Only Data from XML and Data from JSON components understand this method • Return response headers – Parsing Cookies, Content-Type, etc. • Read as binary – Creates a ByteArrayValue property • Connection Options – Keep-Alive, Expect: 100, 403 servers as though they sent 401 – Allow error response codes to be treated as valid
  • 17. Demos • Accessing Simple RESTful Services • Using the HTTP Connector
  • 18. HTTP Connector –Debugging Tips • Useful browser plugins – Firefox: Live HTTP Headers – Firefox: RESTClient – Chrome: Advanced REST Client • 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
  • 19. Summary • What we learned – Connecting to SOAP Services • SOAP Method Components • SOAP Connector • Results Handling • Debugging – Connecting to RESTful Services • Readers • HTTP Connectors • Results Handling • Debugging • Managing Links • Recommended Sessions – (ATS3-DEV05) Coding up Pipeline Pilot Components – (ATS3-DEV07) Pipeline Pilot as a Web Service Deployment Platform
  • 20. 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. For more information on the Accelrys Tech Summits and other IT & Developer information, please visit: https://community.accelrys.com/groups/it-dev