defining a pragmatic and practical soa focused enterprise architecture

Post on 25-Feb-2016

65 Views

Category:

Documents

3 Downloads

Preview:

Click to see full reader

DESCRIPTION

Defining a Pragmatic and Practical SOA Focused Enterprise Architecture. Asanka Abeysinghe WSO2, Inc Vice President, Solutions Architecture . Chintana Wilamuna WSO2, Inc Architect, Solutions Architecture . Asanka Abeysinghe. @ asankama http://asanka.abeysinghe.org asankaa AT wso2 DOT com. - PowerPoint PPT Presentation

TRANSCRIPT

Defining a Pragmatic and Practical SOA Focused

Enterprise ArchitectureAsanka Abeysinghe

WSO2, IncVice President, Solutions Architecture

Chintana WilamunaWSO2, Inc

Architect, Solutions Architecture

Asanka Abeysinghe

- @asankama- http://asanka.abeysinghe.org- asankaa AT wso2 DOT com

Chintana Wilamuna

- @std_err- http://engwar.com- chintana AT wso2 DOT com

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 WSO2 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, 11AM-11:45 “Establishing an SOA focused EA”

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)

- Reference Architecture- Vendor neutral - with WSO2 Stack

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

SOA Gateway

SOA Gateway - Extended

Gateway using WSO2

Gateway using WSO2 cont.

Gateway Implementation Patterns : Centralized

Gateway Implementation Patterns : Federated

Federation and Multi-tenancy

Gateway Implementation Patterns : Multi-tenanted

Gateway - sub-pattern : Façade

- Façade- Service Façade - API Façade

- Service Granularity- Fine-grained to- Coarse-grained

- Binding - Industry standards

Gateway Demo : after the break

MVC (Model View Controller)

- Business logic in WEB and backend layer

- WEB layer tight-coupled with backend

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 using WSO2

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 Event Generator Event Generator

Event Consumer Event Consumer Event Consumer

Channel

EDA with SOA

Event Generator Event Generator Message Broker

Event Consumer Event Consumer Event Consumer

Event Bus / ChannelBAM CEP

Event Bus / Channel

EDA+SOA with WSO2

Event Generator Event Generator Message Broker

Event Consumer Event Consumer

BAM CEP

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

- WSO2 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 delivery of messages/events

- WSO2 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

- WSO2 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 these events

- WSO2 CEP- High performant event processing engine- Extensible query language, Siddhi

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

DS 1

DS 2

DS 3

DS 4

System A

Legacy System

ETL Master Data

Data sources

Data sources

MDM architecture

Data service

Transports

Mediate Transform Filter Validate

Downstream AppsDB

MonitoringAccess API

Configuration Repository

MDM with WSO2

Web service

Transports

Mediate Transform Filter ValidateSOAP

Downstream AppsDB

SQL

External / Internal consumers

MDM with WSO2

- 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 WSO2

- WSO2 ESB- Multiple protocols / SOAP, JSON, CSV, Copybook, Fixed

length- Easy extension model : transports, message builders,

custom mediators- Stream processing on large files (extract)

- WSO2 Data Services- API for data access (relational / NoSQL)- Declarative definition / Web interface / DeveloperStudio- Security (WS-Security)- QoS (caching, throttling, etc…)

MDM with WSO2

- WSO2 G-Reg- Configuration repository- Artifact governance using Governance Framework

- WSO2 API Manager- Consumer API (JSON, OAuth2, role based access)- Metered and monitored

- WSO2 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 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 with WSO2

Policy Decision Point

User Attribute Finder Resource Finder Policy Finder

Decision Cache

Attribute Cache Resource Cache Policy Cache

Policy Enforcement

Entitlement Service

Entitlement with WSO2

- 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 WSO2

- 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

- Related pattern – Façade

Thank You

top related