Defining a Pragmatic and Practical SOA Focused Enterprise

  • Slides: 44
Download presentation
Defining a Pragmatic and Practical SOA Focused Enterprise Architecture Asanka Abeysinghe WSO 2, Inc

Defining a Pragmatic and Practical SOA Focused Enterprise Architecture Asanka Abeysinghe WSO 2, Inc Vice President, Solutions Architecture Chintana Wilamuna WSO 2, Inc Architect, Solutions Architecture

Asanka Abeysinghe - @asankama - http: //asanka. abeysinghe. org - asankaa AT wso 2

Asanka Abeysinghe - @asankama - http: //asanka. abeysinghe. org - asankaa AT wso 2 DOT com

Chintana Wilamuna - @std_err - http: //engwar. com - chintana AT wso 2 DOT

Chintana Wilamuna - @std_err - http: //engwar. com - chintana AT wso 2 DOT com

Goals of the Day - Understand the relationship between EA and SOA** How SOA

Goals of the Day - Understand the relationship between EA and SOA** How SOA helps to resolve EA challenges ** Mapping EA patterns to SOA Identify reference architecture(s) Fill the reference architecture(s) using WSO 2 products Use a pragmatic approach to solution architecture Identify a real-world problem(s) and architect a solution from scratch ** will discuss on Thursday, Track-2, 11 AM-11: 45 “Establishing an SOA focused EA”

Agenda - Intro - Reference Architecture for EA Patterns - Gateway - Façade -

Agenda - Intro - Reference Architecture for EA Patterns - Gateway - Façade - WOA (WEB Oriented Architecture) - Reference Architecture for EA Patterns cont. . - EDA (Event Driven Architecture) - Master Data Hub (MDM, ETL) - Entitlement ----------- Break ------------ Lab exercise (Solution building)*** - Q&A *** identify your use-cases

Format - Pattern overview - Problem space - Technical Problem - Business Problem (use-cases)

Format - Pattern overview - Problem space - Technical Problem - Business Problem (use-cases) - Reference Architecture - Vendor neutral - with WSO 2 Stack

Pattern : Gateway - An architecture layer encapsulates access to internal/external systems/resources - Single

Pattern : Gateway - An architecture layer encapsulates access to internal/external systems/resources - Single interface to; - Route Validate Secure Govern Monitor messages - Related pattern – Façade

Gateway

Gateway

SOA Gateway

SOA Gateway

SOA Gateway - Extended

SOA Gateway - Extended

Gateway using WSO 2

Gateway using WSO 2

Gateway using WSO 2 cont.

Gateway using WSO 2 cont.

Gateway Implementation Patterns : Centralized

Gateway Implementation Patterns : Centralized

Gateway Implementation Patterns : Federated

Gateway Implementation Patterns : Federated

Federation and Multi-tenancy

Federation and Multi-tenancy

Gateway Implementation Patterns : Multi-tenanted

Gateway Implementation Patterns : Multi-tenanted

Gateway - sub-pattern : Façade - Service Façade - API Façade - Service Granularity

Gateway - sub-pattern : Façade - Service Façade - API Façade - Service Granularity - Fine-grained to - Coarse-grained - Binding - Industry standards

Gateway Demo : after the break

Gateway Demo : after the break

MVC (Model View Controller) - Business logic in WEB and backend layer - WEB

MVC (Model View Controller) - Business logic in WEB and backend layer - WEB layer tightcoupled with backend

WOA (Web Oriented Architecture) - Bring SOA principles to WEB programming Loosely-coupled Light-weight web

WOA (Web Oriented Architecture) - Bring SOA principles to WEB programming Loosely-coupled Light-weight web apps (zero business logic) Light-weight protocols (REST, JSON, POX, protobuf) WEB API design

WOA cont.

WOA cont.

WOA using WSO 2

WOA using WSO 2

Event Driven Architecture - EDA - Event Channel Consumer Create/emit event (emitter/agent) Transfer event

Event Driven Architecture - EDA - Event Channel Consumer Create/emit event (emitter/agent) Transfer event (HTTP, File, etc…) Consume event Patterns - Publish/Subscribe Store and forward Pont-to-point Request-reply

Traditional EDA Event Generator Channel Event Consumer

Traditional EDA Event Generator Channel Event Consumer

EDA with SOA Event Generator BAM Event Generator Message Broker CEP Event Bus /

EDA with SOA Event Generator BAM Event Generator Message Broker CEP Event Bus / Channel Event Consumer

EDA+SOA with WSO 2 Event Generator BAM Event Generator Event Bus / Channel Event

EDA+SOA with WSO 2 Event Generator BAM Event Generator Event Bus / Channel Event Consumer Message Broker CEP

Event bus / Channel - Usually an enterprise service bus Emitters and consumers connected

Event bus / Channel - Usually an enterprise service bus Emitters and consumers connected through the bus Different interfaces / message formats Generating events from the bus itself Integrating non-event based systems - WSO 2 ESB - WS-Eventing based interactions / integrations - Transforming to and from WS-Events and general triggers - Reliable delivery with a JMS broker

Message Broker - Supporting different messaging patterns - Queue based and pub/sub - Reliable

Message Broker - Supporting different messaging patterns - Queue based and pub/sub - Reliable delivery of messages/events - WSO 2 Message Broker - Scalable, distributed message storage based on Cassandra - Distributed queuing

Business Activity Monitoring - Monitoring end-to-end business message flow - Identifying/collecting/tracing business transactions -

Business Activity Monitoring - Monitoring end-to-end business message flow - Identifying/collecting/tracing business transactions - WSO 2 BAM - Scalable analytics using Hadoop - Scalable data storage model, Cassandra - Flexible deployment model (external Hadoop cluster and external Cassandra ring) - Intuitive and powerful dashboarding

Complex Event Processing - Reading multiple continuous event streams - Identify different patterns from

Complex Event Processing - Reading multiple continuous event streams - Identify different patterns from these events - WSO 2 CEP - High performant event processing engine - Extensible query language, Siddhi

Master Data Management - MDM • • ETL (extract / transform / load) Secure

Master Data Management - MDM • • ETL (extract / transform / load) Secure transmission of data Consistent updates Message transformation Aggregation/enrichment of data Data mapping Multiple protocols Multiple message formats

MDM problem System A Data sources DS 3 DS 1 ETL DS 2 Master

MDM problem System A Data sources DS 3 DS 1 ETL DS 2 Master Data DS 4 Data sources Legacy System

MDM architecture Access API Data service Configuration Repository Mediate Monitoring Transform Filter Validate Transports

MDM architecture Access API Data service Configuration Repository Mediate Monitoring Transform Filter Validate Transports DB Downstream Apps

MDM with WSO 2 External / Internal consumers Web service SOAP Mediate Transform Filter

MDM with WSO 2 External / Internal consumers Web service SOAP Mediate Transform Filter Validate Transports SQL DB Downstream Apps

MDM with WSO 2 Consistent data API to interact with master repo Streamlined integration

MDM with WSO 2 Consistent data API to interact with master repo Streamlined integration of downstream apps ETL from different sources/protocols/messages Centralized configuration repository Secured/metered/throttled API for external and internal consumers - Monitoring (ETL process, data access, API invocations etc…) - Pluggable and independently scalable components -

MDM with WSO 2 - WSO 2 ESB - Multiple protocols / SOAP, JSON,

MDM with WSO 2 - WSO 2 ESB - Multiple protocols / SOAP, JSON, CSV, Copybook, Fixed length - Easy extension model : transports, message builders, custom mediators - Stream processing on large files (extract) - WSO 2 Data Services - API for data access (relational / No. SQL) Declarative definition / Web interface / Developer. Studio Security (WS-Security) Qo. S (caching, throttling, etc…)

MDM with WSO 2 - WSO 2 G-Reg - Configuration repository - Artifact governance

MDM with WSO 2 - WSO 2 G-Reg - Configuration repository - Artifact governance using Governance Framework - WSO 2 API Manager - Consumer API (JSON, OAuth 2, role based access) - Metered and monitored - WSO 2 BAM - Monitor ETL process (# records processed, successful/failure rate) : real time alerting after CEP integration - Operational, admin, C level dashboards

Entitlement - Once users authenticate, making authorization decisions - Who can access what (based

Entitlement - Once users authenticate, making authorization decisions - Who can access what (based on the user/role) - What web service? What operation? - Typically authorization logic embedded in business functions/services - Implementing for each and every services - Policy based approach. Reusing the same authorization policy

Entitlement architecture Policy Decision Point User Attribute Finder Resource Finder Policy Finder

Entitlement architecture Policy Decision Point User Attribute Finder Resource Finder Policy Finder

Entitlement with WSO 2 Policy Enforcement Entitlement Service Policy Decision Point Decision Cache User

Entitlement with WSO 2 Policy Enforcement Entitlement Service Policy Decision Point Decision Cache User Attribute Finder Resource Finder Policy Finder Attribute Cache Resource Cache Policy Cache

Entitlement with WSO 2 - Decoupled authorization logic Fine grained authorization policies using XACML

Entitlement with WSO 2 - Decoupled authorization logic Fine grained authorization policies using XACML Authorization calls via SOAP, Thrift and WS-XACML Authorization decision caching - Attributes / Resources / Policies - Pluggable user repositories (Active Directory, LDAP, DB)

Entitlement with WSO 2 - Entitlement service (SOAP / WS-SOAP / Thrift). REST interface

Entitlement with WSO 2 - Entitlement service (SOAP / WS-SOAP / Thrift). REST interface after JACML - Pluggable PIP (policy information point) attribute finders - Default attribute finders talking to G-Reg (Policy and Resource details) and user repository for user attributes (Active Directory / LDAP etc…) - Caching for increased performance

Pattern : Gateway - Single interface to; - Route Validate Secure Govern Monitor -

Pattern : Gateway - Single interface to; - Route Validate Secure Govern Monitor - Related pattern – Façade

Thank You

Thank You