Presentation is loading. Please wait.

Presentation is loading. Please wait.

MOVE-3: OpenEdge®, Sonic ESB®, and SOA: QAD's Service Interface Layer Fred Yeadon, QAD Inc.

Similar presentations


Presentation on theme: "MOVE-3: OpenEdge®, Sonic ESB®, and SOA: QAD's Service Interface Layer Fred Yeadon, QAD Inc."— Presentation transcript:

1 MOVE-3: OpenEdge®, Sonic ESB®, and SOA: QAD's Service Interface Layer Fred Yeadon, QAD Inc.

2 MOVE-3: OpenEdge, Sonic ESB, and SOA: QAD's Service Interface Layer 2 Agenda  Introduction  Use Cases and Architecture  Issues and Challenges

3 MOVE-3: OpenEdge, Sonic ESB, and SOA: QAD's Service Interface Layer 3 QAD GLOBAL FOOTPRINT NASDAQ:QADI Founded:1979 IPO:1997 FY05 Est. Revenue:$232-237 million Licensed Sites:5,200 worldwide Customer Renewals: 90%+ Offices: 26 countries Employees:1,275 worldwide Headquarters:Santa Barbara, CA Fiscal Year End:January 31 ABOUT QAD QAD COMPANY INFORMATION A leader in providing ERP and supply chain execution software applications and services to global manufacturers in target vertical markets. QAD Snapshot

4 MOVE-3: OpenEdge, Sonic ESB, and SOA: QAD's Service Interface Layer 4 Our Core Issues  Very large legacy base  Growing set of acquired/partner products  Tight UI – business logic coupling  Over 8,000 installed sites in over 26 countries.  Over 12,000 source files in MFG/PRO.  Customers resist upgrades!  Complementary add-ons.  Progress and non-Progress.  Interoperability challenges!  Difficult to place new skin on product.  Most ‘APIs’ are UI- dependent!

5 MOVE-3: OpenEdge, Sonic ESB, and SOA: QAD's Service Interface Layer 5 QAD Reference Architecture Data Access Business Services Business Entities Business Tasks StructuredUnstructured Workflow Process Orchestrations Service Interfaces Business Rules Integration Business Reports Business Intelligence Data Warehouse OLAP ESB Development & Deployment Tools Presentation WebLocal Controller Model Web Service EDI IV&I Event Pub

6 MOVE-3: OpenEdge, Sonic ESB, and SOA: QAD's Service Interface Layer 6 Service Interface: Responsibilities  Expose business services to be called by various types of clients  Dispatch incoming requests to correct local service program method  Provide local copy of a public APIs for a remote service  Must be agnostic to remote service physical location  Send outgoing requests to correct remote service program method Insulate business logic from the interfaces of all other services and their callers Business Services Business Entities Business Tasks Service Interfaces Business Rules Business Reports ESB

7 MOVE-3: OpenEdge, Sonic ESB, and SOA: QAD's Service Interface Layer 7 Foundation Technologies  Web services –Any request may be sent and processed as XML SOAP message –OpenEdge Web Services Out (WSO) used on client side –ESB Adapter, ProxyGen used on server side  ProDataSets –Used to package all application data, method signatures –XML message syntax is based on dataset structure  Sonic ESB –Transport for web-service messages –Message transformation and content-based routing –Hosts API methods as services  AppServers –Any request-reply may be executed as direct AppServer™ call

8 MOVE-3: OpenEdge, Sonic ESB, and SOA: QAD's Service Interface Layer 8 Why Web Services?  Rapidly becoming foundation/prereq technology for: –Business messaging –System-level services –SOA, in general  Strategic for major QAD technology suppliers –Progress and Sonic Software –Microsoft –IBM –Emerging SysAdmin tools (Actional, …)  Basis for new generation of interoperability standards –WS-Security, WS-Addressing, …  BUT… –It is ‘slow’ – don’t use for everything! –It is still maturing –It complicates the technology stack (for now) SOAP HTTP WS-* WSDL

9 MOVE-3: OpenEdge, Sonic ESB, and SOA: QAD's Service Interface Layer 9 OpenEdge ProDataSets and XML Dataset SO Detail Comments............ SO Detail Ship-To Addr Sales Order XML … SO001 DEF WHQ 10-10000 45 … Package req…

10 MOVE-3: OpenEdge, Sonic ESB, and SOA: QAD's Service Interface Layer 10 Why Sonic ESB?  J2EE-based –Cross platform –Custom services built using Java™, JavaScript  Standards-compliant –Java Messaging Service (JMS) –Web services –XML, XSLT, XQuery –Java Management Extensions (JMX) APIs used for administration  Well regarded in ESB-MOM-EAI market space –ESB ‘pioneers’ and thought leaders –Used successfully in financial and other industries  Owned by Progress Software –OpenEdge ‘Sonic ESB Adapter’ provides Sonic interoperability –Less mature than OpenEdge product line

11 MOVE-3: OpenEdge, Sonic ESB, and SOA: QAD's Service Interface Layer 11 ESB.. … SO001 DEF WHQ 10- 10000 45 … Package req… Distributed Order Management MFG/PRO eB2.1 Database Router Inter-Product Messaging … … …

12 MOVE-3: OpenEdge, Sonic ESB, and SOA: QAD's Service Interface Layer 12 Key Features …  Request-reply interactions  One-way (async) request processing and acknowledgment  UI communications  Transport transparency  Location transparency  Remote session transparency  State-free/stateless operation … And Gaps!  ESB error and queue administration  Publish-subscribe  Security  API versioning  Entity state management  XML syntax inconsistent with QDoc XML

13 MOVE-3: OpenEdge, Sonic ESB, and SOA: QAD's Service Interface Layer 13 Agenda Introduction  Use Cases and Architecture  Issues and Challenges

14 MOVE-3: OpenEdge, Sonic ESB, and SOA: QAD's Service Interface Layer 14 Distributed Order Management Take an order from anywhere Source it from anywhere Maintain centralized control

15 MOVE-3: OpenEdge, Sonic ESB, and SOA: QAD's Service Interface Layer 15 Category# Entities Implemented Order – Customer – Supplier - Item 7 Common Codes13 Infrastructure5 User Interface**21 Total46 * As of initial early-adopter release Business and Service Entities in DistOM* ** Data structures and methods built to service the UI

16 MOVE-3: OpenEdge, Sonic ESB, and SOA: QAD's Service Interface Layer 16 The Global Sales Order  Customer request  Global credit check for enterprise risk  Global order line independence for ship-to address and sourcing  Split and routed to appropriate business unit (‘domain’)  Aggregate representation of executable legal orders  Orders confirmed on a business unit level

17 MOVE-3: OpenEdge, Sonic ESB, and SOA: QAD's Service Interface Layer 17 Distributed Order Management Architecture WebSpeed Agents AppServer SISI SISI SISI Web Browser DOMMFG/PRO eB2.1/eB3 (multi-domain) domain 1 domain 2 domain 4 domain 3 AppServer … … OE Clients DB MFG/PRO ChUI or Desktop DB Sonic ESB

18 MOVE-3: OpenEdge, Sonic ESB, and SOA: QAD's Service Interface Layer 18 Sales Order Processing DOM Service Interface Sonic ESB MFG/ PRO EDI ECommerce Service Interface Cache MFG/PRO data Price, total sales order Sales order (850/860) Functional acknowledgment (997 equivalent) Process acknowledgment (855/865) Propagate SO Ack to PBU Yes No Multi- level demand? SO ack for PBU (855/865) File External SO (850/860) Error?

19 MOVE-3: OpenEdge, Sonic ESB, and SOA: QAD's Service Interface Layer 19 Key Service Scenarios  Request-Reply Via AppService –Used for remote data caching, sales order pricing, credit checking.  Request-Reply Via WebService –Not currently used.  One-way Request With Acknowledgment –Used for all business document processing: orders, changes, shipment notices.

20 MOVE-3: OpenEdge, Sonic ESB, and SOA: QAD's Service Interface Layer 20 Request-Reply Scenario: AppServices App Service Caller Async Reply Handler Session Manager Service/ Business Entities RPC Request Service Proxies/ Adapters OE Client-Server Sync Async OE AppServer Config File Cache MFG/PRO data Price, total sales order DistOM MFG/PRO

21 MOVE-3: OpenEdge, Sonic ESB, and SOA: QAD's Service Interface Layer 21 Alternate Request-Reply: ESB Web Services WSO Web Service Caller Async Reply Handler OE AppServer Sonic ESB Container Session Manager Pre-Process Request XSLT CBR … … HTTP- SOAP Service/ Business Entities XML Request Service OE Svc ESB Adapter Service Proxies/ Adapters Post-Process Response XSLT QADServiceProxyGen.p WSDL ProxyGen WSDL CBR Reply- To? Config File DistOMMFG/PRO

22 MOVE-3: OpenEdge, Sonic ESB, and SOA: QAD's Service Interface Layer 22 Request-Reply Web Services: Long Term WSO Web Service Caller Async Reply Handler OE AppServer Container Session Manager CBR … … HTTP- SOAP OE Svc ESB Adapter Service Proxies/ Adapters WSDL ProxyGen Service/ Business Entities Reply- To? CBR Config File DistOMMFG/PRO

23 MOVE-3: OpenEdge, Sonic ESB, and SOA: QAD's Service Interface Layer 23 One-Way Request Scenario: ESB Web Services WSO Web Service Caller XML Ack Service OE AppServer Sonic ESB ContainerContainer Session Manager CBR … … HTTP- SOAP 1-Way Service/ Business Entities XML Request Service Proxies/ Adapters Post-Proc Ack XSLT Process Doc OE Svc ESB Adapter Pre-Proc Ack XSLT Post User Credentials XSLTCust Maintain Username- Password CBR Generate Ack DistOMMFG/PRO

24 MOVE-3: OpenEdge, Sonic ESB, and SOA: QAD's Service Interface Layer 24 SOAP Message Headers: Sample urn:services- qad-com:AckProc:myServiceCaller urn:messages-qad- com:myCompany:2005-11-09T100:00:00.000- 05:00:AckProc:myServiceCaller:ProcessAcknowledgmentTest.p:processAcknow ledgment:myDocument001 urn:messages-qad- com:myServiceCaller:2005-10-25T15:30:20.261- 05:00:TestService:myCompany:SvcIntTestService.p:pingMe:myDocument001

25 MOVE-3: OpenEdge, Sonic ESB, and SOA: QAD's Service Interface Layer 25 Enterprise Service Bus Web Service Caller Service Proxies XML ResponseXML Request Adapters Dataset To XML Datasets Calling Out to Other Services XML To Dataset AppService Caller <External Application AppServer> DatasetsResponseRequest Business Logic

26 MOVE-3: OpenEdge, Sonic ESB, and SOA: QAD's Service Interface Layer 26 Sample DistOM Proxy Code /* Dataset passed to-from remote service */ define dataset dsCustomerCredit for ttCustomerCredit. /* Defines standard method to retrieve API dataset */ {BusinessService.i &DATASET1=dsCustomerCredit } /* Proxy method (defined in application-specific wrapper) */ {dom/DOMServiceProxy.i &PROGRAMNAME="socustcr.p" &METHODNAME="getCreditCheckParameters" &PRIMARYBUFFER="ttCustomerCredit" &SERVICEINSTANCEFIELD="domain" &DATASETINOUT="dsCustomerCredit" }

27 MOVE-3: OpenEdge, Sonic ESB, and SOA: QAD's Service Interface Layer 27 Sample Proxy Call from DistOM Adapter /* Start the proxy service */ run dom/CreditVisibilityProxy.p persistent set hProxy ( input "WEBSERVICE", input "mfgpro", input "dom/DOMWSOConnectionTest.xml“ ). /* Get the dataset used by the service */ run getServiceDataset in hProxy ( input "dsCustomerCredit", output hdsCustomerCredit ). /* Formulate domain query */... /* Iterate across all MFG/PRO target domains */ do while not hqDomain:query-off-end: /* Map-copy the portion of the local dataset for each domain present in the data */...

28 MOVE-3: OpenEdge, Sonic ESB, and SOA: QAD's Service Interface Layer 28 Sample Proxy Call from DistOM Adapter (cont) if domainFound then do: /* Set domain to run method in correct session context */ run setQADContextProperty ( input “domain”, input domainID ). /* Call service method */ do on error undo, leave: run getCreditCheckParameters in hProxy ( input-output dataset-handle hdsCustomerCredit by- reference ). end.... end. /* if domainFound */ hqDomain:get-next(). end. /* do while not hqDomain:query-off-end */

29 MOVE-3: OpenEdge, Sonic ESB, and SOA: QAD's Service Interface Layer 29 Sample Web Service Request … … SO001 DEF WHQ 10-10000 45 … Package req… Message Body (Payload) SOAP Headers (used for CBR) Application Dataset Message Envelope Method Name Session Context Dataset

30 MOVE-3: OpenEdge, Sonic ESB, and SOA: QAD's Service Interface Layer 30 Service Method Signatures  Dataset dsSessionContext (I-O) –Session context properties. –Target method/program name.  Dataset dsExceptions (O) –Unhandled exceptions thrown from service. –Contains temp-table temp_err_msg.  (I)  (I-O)  (O) Up to 1 per I-O mode => 8 possible signatures Not passed to application programs

31 MOVE-3: OpenEdge, Sonic ESB, and SOA: QAD's Service Interface Layer 31 OpenEdge AppServer Enterprise Service Bus ESB OpenEdge Service XMLRequestService Service Programs/Entities Business Logic API Methods XML Request XML Response Sonic ESB Adapter Longchars and temp-tables Non- persistent gateways Session Manager Coarse-grained Fine-grained Calling In to Business Logic RPCRequestService Datasets <External Application AppServer> Datasets ResponseRequest Exception Manager State- free/ Stateless App Server

32 MOVE-3: OpenEdge, Sonic ESB, and SOA: QAD's Service Interface Layer 32 Sample Service Program Code /* Service dataset with temp-table */ {sottcrdt.i} define dataset dsCustomerCredit for ttCustomerCredit. /* Standard methods implemented by all service programs */ {bussvc.i &DATASET1 = dsCustomerCredit} procedure getCreditCheckParameters: define input-output parameter dataset for dsCustomerCredit. /* Process API request */... end procedure. /* getCreditCheckParameters */

33 MOVE-3: OpenEdge, Sonic ESB, and SOA: QAD's Service Interface Layer 33 Sample Session Context Properties … QAD sessionID mfg12345 QAD methodName getSalesOrderTotals QAD programName sototapi.p … … … Session context properties

34 MOVE-3: OpenEdge, Sonic ESB, and SOA: QAD's Service Interface Layer 34 Agenda Introduction Use Cases and Architecture  Issues and Challenges

35 MOVE-3: OpenEdge, Sonic ESB, and SOA: QAD's Service Interface Layer 35 Issues and Challenges  Retrofitting To Legacy Application  Headless Authentication and Session Management  More Complex Technology Stack  OE 10.0 Bugs in Web Services Out  Performance

36 MOVE-3: OpenEdge, Sonic ESB, and SOA: QAD's Service Interface Layer 36 Future Directions  Upgrade to OpenEdge 10.1  Enhanced security, sign-on  Bullet-proof error management  Support data caching using Sonic XML Server  Deploy with.NET User Interface

37 MOVE-3: OpenEdge, Sonic ESB, and SOA: QAD's Service Interface Layer 37 Questions?

38 MOVE-3: OpenEdge, Sonic ESB, and SOA: QAD's Service Interface Layer 38 Thank You!


Download ppt "MOVE-3: OpenEdge®, Sonic ESB®, and SOA: QAD's Service Interface Layer Fred Yeadon, QAD Inc."

Similar presentations


Ads by Google