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: ... –
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)
PowerShow.com is a leading presentation sharing website. It has millions of presentations already uploaded and available with 1,000s more being uploaded by its users every day. Whatever your area of interest, here you’ll be able to find and view presentations you’ll love and possibly download. And, best of all, it is completely free and easy to use.
You might even have a presentation you’d like to share with others. If so, just upload it to PowerShow.com. We’ll convert it to an HTML5 slideshow that includes all the media types you’ve already added: audio, video, music, pictures, animations and transition effects. Then you can share it with your target audience as well as PowerShow.com’s millions of monthly visitors. And, again, it’s all free.
About the Developers
PowerShow.com is brought to you by CrystalGraphics, the award-winning developer and market-leading publisher of rich-media enhancement products for presentations. Our product offerings include millions of PowerPoint templates, diagrams, animated 3D characters and more.