2013 10-wso2 con-tut-t3-1330-asanka-chintana

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

Upload: asanka-abeysinghe

Post on 27-Jan-2015

103 views

Category:

Technology


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: 2013 10-wso2 con-tut-t3-1330-asanka-chintana

Defining a Pragmatic and Practical SOA Focused

Enterprise Architecture

Asanka AbeysingheWSO2, Inc

Vice President, Solutions Architecture

Chintana WilamunaWSO2, Inc

Architect, Solutions Architecture

Page 2: 2013 10-wso2 con-tut-t3-1330-asanka-chintana

Asanka Abeysinghe

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

Page 3: 2013 10-wso2 con-tut-t3-1330-asanka-chintana

Chintana Wilamuna

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

Page 4: 2013 10-wso2 con-tut-t3-1330-asanka-chintana

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”

Page 5: 2013 10-wso2 con-tut-t3-1330-asanka-chintana

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

Page 6: 2013 10-wso2 con-tut-t3-1330-asanka-chintana

Format

- Pattern overview - Problem space

- Technical Problem - Business Problem (use-cases)

- Reference Architecture- Vendor neutral - with WSO2 Stack

Page 7: 2013 10-wso2 con-tut-t3-1330-asanka-chintana

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

Page 8: 2013 10-wso2 con-tut-t3-1330-asanka-chintana

Gateway

Page 9: 2013 10-wso2 con-tut-t3-1330-asanka-chintana

SOA Gateway

Page 10: 2013 10-wso2 con-tut-t3-1330-asanka-chintana

SOA Gateway - Extended

Page 11: 2013 10-wso2 con-tut-t3-1330-asanka-chintana

Gateway using WSO2

Page 12: 2013 10-wso2 con-tut-t3-1330-asanka-chintana

Gateway using WSO2 cont.

Page 13: 2013 10-wso2 con-tut-t3-1330-asanka-chintana

Gateway Implementation Patterns : Centralized

Page 14: 2013 10-wso2 con-tut-t3-1330-asanka-chintana

Gateway Implementation Patterns : Federated

Page 15: 2013 10-wso2 con-tut-t3-1330-asanka-chintana

Federation and Multi-tenancy

Page 16: 2013 10-wso2 con-tut-t3-1330-asanka-chintana

Gateway Implementation Patterns : Multi-tenanted

Page 17: 2013 10-wso2 con-tut-t3-1330-asanka-chintana

Gateway - sub-pattern : Façade

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

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

- Binding - Industry standards

Page 18: 2013 10-wso2 con-tut-t3-1330-asanka-chintana

Gateway Demo : after the break

Page 19: 2013 10-wso2 con-tut-t3-1330-asanka-chintana

MVC (Model View Controller)

- Business logic in WEB and backend layer

- WEB layer tight-coupled with backend

Page 20: 2013 10-wso2 con-tut-t3-1330-asanka-chintana

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

Page 21: 2013 10-wso2 con-tut-t3-1330-asanka-chintana

WOA cont.

Page 22: 2013 10-wso2 con-tut-t3-1330-asanka-chintana

WOA using WSO2

Page 23: 2013 10-wso2 con-tut-t3-1330-asanka-chintana

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

Page 24: 2013 10-wso2 con-tut-t3-1330-asanka-chintana

Traditional EDA

Event Generator Event Generator Event Generator

Event Consumer Event Consumer Event Consumer

Channel

Page 25: 2013 10-wso2 con-tut-t3-1330-asanka-chintana

EDA with SOA

Event Generator Event Generator Message Broker

Event Consumer Event Consumer Event Consumer

Event Bus / ChannelBAM CEP

Page 26: 2013 10-wso2 con-tut-t3-1330-asanka-chintana

Event Bus / Channel

EDA+SOA with WSO2

Event Generator Event Generator Message Broker

Event Consumer Event Consumer

BAM CEP

Page 27: 2013 10-wso2 con-tut-t3-1330-asanka-chintana

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

Page 28: 2013 10-wso2 con-tut-t3-1330-asanka-chintana

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

Page 29: 2013 10-wso2 con-tut-t3-1330-asanka-chintana

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

Page 30: 2013 10-wso2 con-tut-t3-1330-asanka-chintana

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

Page 31: 2013 10-wso2 con-tut-t3-1330-asanka-chintana

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

Page 32: 2013 10-wso2 con-tut-t3-1330-asanka-chintana

MDM problem

DS 1

DS 2

DS 3

DS 4

System A

Legacy System

ETL Master Data

Data sources

Data sources

Page 33: 2013 10-wso2 con-tut-t3-1330-asanka-chintana

MDM architecture

Data service

Transports

Mediate Transform Filter Validate

Downstream AppsDB

MonitoringAccess API

Configuration Repository

Page 34: 2013 10-wso2 con-tut-t3-1330-asanka-chintana

MDM with WSO2

Web service

Transports

Mediate Transform Filter ValidateSOAP

Downstream AppsDB

SQL

External / Internal consumers

Page 35: 2013 10-wso2 con-tut-t3-1330-asanka-chintana

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

Page 36: 2013 10-wso2 con-tut-t3-1330-asanka-chintana

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…)

Page 37: 2013 10-wso2 con-tut-t3-1330-asanka-chintana

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

Page 38: 2013 10-wso2 con-tut-t3-1330-asanka-chintana

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

Page 39: 2013 10-wso2 con-tut-t3-1330-asanka-chintana

Entitlement architecture

Policy Decision Point

User Attribute Finder Resource Finder Policy Finder

Page 40: 2013 10-wso2 con-tut-t3-1330-asanka-chintana

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

Page 41: 2013 10-wso2 con-tut-t3-1330-asanka-chintana

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)

Page 42: 2013 10-wso2 con-tut-t3-1330-asanka-chintana

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

Page 43: 2013 10-wso2 con-tut-t3-1330-asanka-chintana

Pattern : Gateway

- Single interface to;- Route - Validate - Secure- Govern - Monitor

- Related pattern – Façade

Page 44: 2013 10-wso2 con-tut-t3-1330-asanka-chintana

Thank You