1 / 14

Event-Driven SOA on Grails

Event-Driven SOA on Grails. Paul Citarella. About Me . Software Engineer Enterprise Architect IT Executive Founder Consultant. The Problem. The Solution. More Problems. Next Generation SOA. Traditional SOA isn’t without challenges Coupling (spaghetti architecture) Temporal coupling

diem
Download Presentation

Event-Driven SOA on Grails

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Event-Driven SOA on Grails Paul Citarella

  2. About Me • Software Engineer • Enterprise Architect • IT Executive • Founder • Consultant

  3. The Problem

  4. The Solution

  5. More Problems

  6. Next Generation SOA • Traditional SOA isn’t without challenges • Coupling (spaghetti architecture) • Temporal coupling • ESBs attempted to solve these problems • Implementation isn’t trivial • Proprietary development models • Event-driven SOA is a better solution • Completely eliminates both types of coupling • Message bus = Enterprise Service Bus

  7. 30K Ft View Service (Durable Subscriber) Business Process Service (Durable Subscriber) Service (Durable Subscriber) Business Process Service (Durable Subscriber) Service (Durable Subscriber) JMS (Single Pub-Sub Topic)

  8. 10K Ft View AbcProcess Service NewOrder NewXyz Order Router Service XyzProcess Service Auth Request Charge Authed Get: /orders/123 Order Service Billing Service Other Services

  9. Standard Message Format { "eventName": "NewOrder", "referenceId": "/order/1", "published": "2012-09-11T15:42:05Z" "details": { "foo": "bar" } }

  10. Correlation: PCID • Pattern: Propagating Composite Identifier eventName: NewOrder referenceId: /order:123 eventName: NewXyzOrder referenceId: /order:123/xyz eventName: AuthRequest referenceId: /order:123/xyz eventName: ChargeAuthed referenceId: /order:123/xyz/charge:789

  11. Subscription Selectors • Router eventName: NewOrder referenceId: * • XyzProcess eventName: * referenceId: ‘like %/xyz/%’ • Billing eventName: AuthRequest referenceId: *

  12. Implementation • Service = Grails app • Synchronous services are REST/JSON • Async are JMS/JSON via JMS plugin • Custom plugins for common functionality • Testing • Spock (Unit and Integration) • Geb (Functional) • Betamax • Deployed in WebLogic and Standalone w/ embedded Tomcat

  13. Proof-of-Concept Demo • Backbone • Router • Simple Order Process • Tools • Sponge (Support Console) • Harness (Testing and Respository) • Plugins • Event-Driven • Service Security UI

  14. Resources • Full POC available on GitHub • http://github.com/enterprise-grails/utopia • Enterprise Integration Patterns • http://www.eaipatterns.com • Email • paul@enterprise-grails.com

More Related