soa, eda, ecm and more
Post on 19-Jan-2016
Embed Size (px)
DESCRIPTIONSOA, EDA, ECM and more. Discover a pragmatic architecture for an intelligent enterprise, to maximize impact on the business Patrice Bertrand Software Architect. Agenda. Context Enterprise architectures SOA – EDA – ESB - … SOS! ECM integration Sample case Questions. The context. - PowerPoint PPT Presentation
SOA, EDA, ECM and moreDiscover a pragmatic architecture for an intelligent enterprise, to maximize impact on the business
Patrice BertrandSoftware ArchitectAgendaContextEnterprise architecturesSOA EDA ESB - SOS!ECM integrationSample caseQuestions
The contextNew IT projects rarely start in an empty context:Business applicationsCRMFile serversDatabasesWorkflow enginesWeb serversPortalOrganizations tend to change frequentlyOrganisational changesMergers & AcquisitionsOutsourcingIT evolves quicklyNew productsNew standardsNew technologies
3The proposed approachWe need an architecture which:Is capable of supporting all the required servicesIs flexible (from the IT and the organization perspective)Is scalableIs evolutive and will last!Everything can change but the architecture itself must stay!
Enterprise ArchitecturesNot all architectures are equal
N*(N-1)/2NPoint-to-point integration via flat files, databases, ftp,... Quite easy for small systems but quickly becomes unmanagable!
Hub and spoke integration: usually performed via adapters for each specific application. These adapters can be as generic as file drops and database queries or API based adapters. More loosely coupled, decreased complexity but single point of failure, scalability problems,
ESB : distributed, scalable,... Applications can connect to ESB endpoints using a variety of mechanisms including but not limited to Web Services, JMS, JCA, HTTP, email, FTP, JDBC, adapters, and many more
5SOA/EDA: definitionsService-oriented architecture (SOA) Set of design principles for design and integrationPackages functionality as a suite of interoperable servicesServices can be used within multiple separate systems from several business domains Loosely coupled Synchronous architecture (request/response style)Event-driven architecture (EDA)Software architecture patternProduction, detection, consumption of, and reaction to events. Decoupled Asynchronous (publish/subscribe style)SOA and EDA are different but complement each other...
The ESB: combining the best of both worldsThe Enterprise Service Bus typically provides:A distributed services architecture, which includes a lightweight container model for hosting integration components as remote servicesAn enterprise messaging backbone for reliable delivery of messages between applications and servicesXML data transformationService orchestration and intelligent routing of messages based on their contentA flexible security frameworkA management infrastructure that lets you configure, deploy, monitor, and manage your remote servicesEnterprise Service Bus: Theory in Practice (O'Reilly)
SOA and EDA complementaritySOA: Vertical Request/reply TransactionalEDA: Horizontal Workflow type Large processesESBIntegrating ECMIntegrating ECM into the enterprise means: Acquisition: acquire content from many sources and many modes (push, pull, scheduled) Processing: transform, aggregate, index, repurpose, replicate content Delivery: syndicate or publish in multiple formats over multiple channels Integration: integrate with other information sources to enrich content
9ECM integration possibilitiesAll major ECM products offer some SOA/EDA integration support:CMIS (REST)SOAP WebservicesJCR (JSR 170) connectorsAPIs and codingWebdav, FTP, watch folders,Check what your ECM supports
ECM, SOA and EDA: an examplePoll an external ftp or mailbox for scanned imagesPerform OCR and extract dataTransform this content into PDF/AStore PDF in the content repository for retentionSend data to a business applicationLegacy application archives the produced documents in the content repository
The compnents of the architecture are decoupled :If a component fails, messages for the component are reliably stored by the busComponents can be changed/moved/added/removed by simply reconfiguring the bus and without modifying other component
This approach combines very well with virtualization.