SOA7: Designing Sonic ESB Services and Processes for the OpenEdge Developer - PowerPoint PPT Presentation

1 / 40
About This Presentation
Title:

SOA7: Designing Sonic ESB Services and Processes for the OpenEdge Developer

Description:

SOA Development Best Practices. Sonic 7.0 and OpenEdge 10.1B ... Webex and white paper based on SOA-7 and SOA-14 in August. Relevant Exchange Sessions: ... – PowerPoint PPT presentation

Number of Views:176
Avg rating:3.0/5.0
Slides: 41
Provided by: PSC64
Category:

less

Transcript and Presenter's Notes

Title: SOA7: Designing Sonic ESB Services and Processes for the OpenEdge Developer


1
SOA-7 Designing Sonic ESB Services and
Processes for the OpenEdge Developer
David Cleary
Principal Software Engineer
2
Agenda
  • Technology Overview
  • SOA Development Best Practices
  • Sonic 7.0 and OpenEdge 10.1B

3
Under Development
  • This talk includes information about potential
    future products and/or product enhancements.
  • What I am going to say reflects our current
    thinking, but the information contained herein is
    preliminary and subject to change. Any future
    products we ultimately deliver may be materially
    different from what is described here.

4
Products and Versions Used
  • OpenEdge Architect 10.1A
  • Sonic Integration Workbench 6.1

5
Development Machine Setup
6
SOAP, WSDL, REST, and the WS-I
7
Definitions
  • Web Service
  • Software available over the Internet using an XML
    messaging system
  • Software described by WSDL and accessed via
    standards such as SOAP and HTTP
  • SOAP
  • Protocol for exchanging XML messages over a
    network

8
Definitions
  • WSDL
  • Describes a Web Service
  • Typically SOAP based
  • REST
  • Representational State Transfer
  • Plain old HTTP with plain old XML
  • Typically described by human readable
    documentation

9
Definitions
  • WS-I
  • Web Services Interoperability Organization
  • Creates profiles of standards to eliminate
    ambiguity
  • http//www.ws-i.org

10
Web Service Integration Patterns
11
Request-Response
  • In-Out and In-Optional-Out
  • Faults may be returned
  • Supported by Web Services Adapter (WSA) and ESB
    Adapter
  • Synchronous by nature

12
Fire and Forget
  • In-Only and Robust-In-Only
  • Fault may be returned for Robust
  • Empty SOAP envelope returned for Robust
  • No message returned for In-Only
  • Only Robust supported by WSA and ESB Adapter
  • Asynchronous by nature

13
Event Notification
  • Out-Only
  • Pull model
  • Polling by nature
  • Push model using JMS acceptor and OpenEdge
    Adapter for SonicMQ

14
Designing Interfaces
15
Public vs. Private Interfaces
  • Public exposed to clients
  • Private exposed to bus
  • OpenEdge Services predominantly private

16
Designing Public Interfaces
  • SOAP vs. REST
  • Use SOAP when you can leverage tools
  • Use REST for simplicity
  • Conform to the WS-I
  • Use Literal not Encoded
  • Follow WSDL guidelines in Basic Profile
  • Use Document instead of RPC for widest client
    support
  • Learn WSDL
  • Do create WSDL to conform to interface
  • Do not create interface to conform to tool

17
Designing Private Interfaces
  • Interface between Sonic and OpenEdge
  • Service is one or more related operations
  • Operations should perform a complete unit of work
  • All OpenEdge services are Request-Reply and can
    return a fault
  • RPC-Literal allows mapping of individual
    parameters
  • Document-Literal allows using transformation of
    entire message

18
Dealing With Data
19
Simple Data
  • Not all data types supported by OpenEdge
  • Be aware of string size limitations
  • Use LONGCHAR when no upper limit set
  • Restrict string length in WSDL
  • DATE, DATETIME, and DATETIME-TZ
  • No time allowed with DATE
  • Time zone info lost with DATETIME
  • Time zone info required with DATETIME-TZ

20
XML Data
  • String/Character ! XML
  • Disallowed characters are escaped
  • CBR and Transformation services will not work
  • Data is un-escaped in OpenEdge
  • Public interface defines XML
  • Private interface defines String

21
Complex Data
  • Temp-Tables
  • Static temp-tables defined in WSDL
  • Dynamic temp-tables require schema to accompany
    data
  • ProDataSets
  • Not supported in the WSA and ESB Adapter
  • Can use MQ Adapter to create/consume ProDataSets

22
Using the Web Service Call Composer
23
What is the Web Service Call Composer
  • Tool in Sonic Workbench for generating SOAP
    messages
  • Map input parameters from XML instance or schema
  • Output parameters can be mapped to
  • Input XML
  • JMS header properties
  • Stand-alone message part

24
Why Use It?
  • SOAP message to AppServer volatile
  • You only care about input and output data
  • XML message in the business process probably
    looks nothing like SOAP message
  • SOAP provides no benefit once you are on the bus

25
WSDL Required
  • Generated with ProxyGen or ESB Explorer Resource
    Editor
  • Use a sonic URL for the service
  • sonic///domain/servicename
  • sonic///local/QuoteService
  • Use RPC-Literal to map individual parameters
  • WSDL must be imported into Sonic directory

26
Service Configuration
  • Define entry endpoint
  • Exit endpoint is REPLY_TO
  • Associate WSDL with service

27
Content-Based Routing and Transformation Services
28
Content-Based Routing
  • Allows you to control where messages go based on
    message
  • Routing based on message properties, or message
    content using XPath
  • Rules files can be JavaScript or rules based
  • XPath requires knowledge of Saxon API

29
Transformation Services
  • Modifies XML content based on StyleSheet
  • Allows you to tailor message to target
  • Sonic extensions provide additional features
  • Generate multiple messages from single source

30
Handling Faults
31
Faults
  • Typically caused by infrastructure failures
  • AppServer not running
  • R-Code not found
  • Also caused by Application
  • RETURN ERROR error string
  • Fault returned to Exit Endpoint
  • OpenEdge has additional features
  • Route original message to Fault Endpoint
  • Route fault message to Fault Endpoint

32
Rejected Messages
  • Message not of the proper type
  • Only Text and XML messages supported
  • Exception thrown by adapter
  • Typically development issue, not business logic
    issue

33
Sonic 7.0 and OpenEdge 10.1B
  • Stylus replaced with Eclipse
  • Support for some WS- standards built in
  • Sonicfs directory store
  • WSM Editor now accessed through SMC
  • ProxyGen changes
  • Specific ESB tab
  • Generates WSM and WSDL targeted at ESB
  • Deploys artifacts to running Domain Manager

34
Advanced SOA Products
  • Sonic Orchestration Server
  • Advanced orchestration of business processes
  • Include people in workflows
  • Sonic XML Server
  • Native XML database
  • Sonic Database Service
  • SQL queries that return XML
  • Supports OpenEdge and other relational DBs

35
In Summary
  • Separate your public and private interfaces
  • Decide on REST vs. SOAP
  • Follow WS-I Recommendations
  • Stay away from Encoded
  • Avoid passing XML as a string parameter

36
For More Information, go to
  • PSDN
  • Creating Plug-n-Play Applications
  • Webex and white paper based on SOA-7 and SOA-14
    in August
  • Relevant Exchange Sessions
  • SOA-8 Tuesday 330pm
  • ARCH-10 Wednesday 1030am
  • SOA-11 Wednesday 115pm

37
Education / Documentation References
  • Sonic Software Web Based Training
    http//www.sonicsoftware.com/services/education_tr
    aining/index.ssp
  • SonicMQ System Administration
  • Service-oriented Integration with Sonic ESB
  • OpenEdge Classroom Training
  • XML Essentials
  • Whats New in OpenEdge 10.1 Sonic Integration
  • OpenEdge Development with Sonic ESB

38
Questions?
39
Thank you foryour time
40
(No Transcript)
Write a Comment
User Comments (0)
About PowerShow.com