96
Wrap-Up Session Asanka Abeysinghe, Prabath Siriwardena, Ruwan Linton, Keith Chapman, Nandika Jayawardena, Milinda Pathirage.

SOA Summer School: Best of SOA Summer School – Encore Session

  • Upload
    wso2

  • View
    1.342

  • Download
    0

Embed Size (px)

DESCRIPTION

This wrap-up session of WSO2's SOA Summer School brings you the best of all sessions conducted over the past 8 weeks. Enterprise architects, developers, consultants and business analysts can now gain an overall understanding of SOA concepts and implementations of end-to-end SOA solutions.

Citation preview

Page 1: SOA Summer School: Best of SOA Summer School – Encore Session

Wrap-Up Session

Asanka Abeysinghe,Prabath Siriwardena,

Ruwan Linton,Keith Chapman,

Nandika Jayawardena,Milinda Pathirage.

Page 2: SOA Summer School: Best of SOA Summer School – Encore Session

Summer School

Page 3: SOA Summer School: Best of SOA Summer School – Encore Session

Summer School

Page 4: SOA Summer School: Best of SOA Summer School – Encore Session

Summer School

Page 5: SOA Summer School: Best of SOA Summer School – Encore Session

Summer School

Page 6: SOA Summer School: Best of SOA Summer School – Encore Session

Agenda SOA Enterprise Architecture Patterns Use-Case #1 – MDM & EDA

Scalable SOA Use-Case #2 – Service Broker Pattern, Functional

Decomposition, Secured Subsystems, Service Encapsulation,

ESB and SOA Security in SOA

Use-Case #3 – Aggregated Data Pattern and Logical Flows

Marshups for SOA BPM and SOA

Use-Case #4 – Shared Repository, Version Identification Pattern, Compatible Change Pattern

SOA Governance Use-Case #5 – Adapters and High Performance

C++ in SOA Summary

Page 7: SOA Summer School: Best of SOA Summer School – Encore Session

Patterns

A generic solution for a common recurring problem.

Used it before Error proof Catalog to pick one Feel comfortable

Page 8: SOA Summer School: Best of SOA Summer School – Encore Session

SOA Patterns

OO Patterns

EAI Patterns

EAA Patterns

SA Patterns

Other

OO - Object-OrientedSA – Software ArchitectureEAI – Ent. Application IntegrationEAA – Ent. Application Architecture

Page 9: SOA Summer School: Best of SOA Summer School – Encore Session

SOA Infrastructure

Page 10: SOA Summer School: Best of SOA Summer School – Encore Session

Solution Building Roadmap

Requirements Business PatternsIntegration Patterns

Application Patterns

Runtime Patterns

Product Mappings

Page 11: SOA Summer School: Best of SOA Summer School – Encore Session

USE-Case-1 (Business Scenario)

SOA infrastructure going to implement in an environment that contains legacy systems and legacy databases that running for a long time. Existing systems are error proof and the data is valuable to make decisions.

Throw the old sys-tems away.....

NO SOA $$$$

Data ?

Page 12: SOA Summer School: Best of SOA Summer School – Encore Session

USE-Case-1 (Pattern Mapping)

MDM (Master Data Management) Pattern

EDA (Event Driven Architecture)

Page 13: SOA Summer School: Best of SOA Summer School – Encore Session

USE-Case-1 (Implementation)

MDM

Page 14: SOA Summer School: Best of SOA Summer School – Encore Session

USE-Case-1 (Implementation) cont..

MDM

Page 15: SOA Summer School: Best of SOA Summer School – Encore Session

USE-Case-1 (Implementation) cont..

MDMEDA

Page 16: SOA Summer School: Best of SOA Summer School – Encore Session

Scalable SOA

Page 17: SOA Summer School: Best of SOA Summer School – Encore Session

Web services clustering Different servers 

providing the same service

Group communication among the servers

Shared resources for the cluster

Page 18: SOA Summer School: Best of SOA Summer School – Encore Session

Motivation for Clustering Achieving high availability and scalability Enterprise Service Buses (ESB) 

De­facto standard for integrating autonomous entities

Could become the bottleneck in the system High availability and high scalability critical

Ability to cluster is an essential functionality for an ESB in a SOA deployment

Service hosting engines Needs to be able to plug into clusters

Page 19: SOA Summer School: Best of SOA Summer School – Encore Session

Scalability

Ability to   Handle growing amounts of work in a 

graceful mannerOr  Be readily enlarged

Page 20: SOA Summer School: Best of SOA Summer School – Encore Session

Availability

The degree to which a system, subsystem, or equipment is  Operable and in a committable state at the 

start of a mission When the mission is called for at an 

unknown

Page 21: SOA Summer School: Best of SOA Summer School – Encore Session

A Computer Cluster is...

A group of coupled computers that works closely together

As if they were a single computerh

Page 22: SOA Summer School: Best of SOA Summer School – Encore Session

State­full Session Aware Load Balancing

● Transport and SOAP session

Load Balancer

Page 23: SOA Summer School: Best of SOA Summer School – Encore Session

Fail­Over with LB

Load Balancer

Page 24: SOA Summer School: Best of SOA Summer School – Encore Session

LB and FO Groups

Load Balancer

Page 25: SOA Summer School: Best of SOA Summer School – Encore Session

Dynamic LB

Load Balancer

Page 26: SOA Summer School: Best of SOA Summer School – Encore Session

Dynamic LB (Cntd..)

Load Balancer

Page 27: SOA Summer School: Best of SOA Summer School – Encore Session

USE-Case-2 (Business Scenario)

A system has connected a service client and a service in P2P.System is running on production.Backend Service development team decided to bring bunch of changes to the backend service(s). Secure the backend service. Change the service contract. Bring multiple services instead of the single service.

Service Client/Frontend developersPMs, Financial dept, HR Dept

Change Again ?

Page 28: SOA Summer School: Best of SOA Summer School – Encore Session

USE-Case-2 (Pattern Mapping)

Service Broker Pattern with ESB Pipes and Filters

Transform Route

Trusted Subsystems Functional Decomposition Service Encapsulation

Page 29: SOA Summer School: Best of SOA Summer School – Encore Session

USE-Case-2 (Implementation)

Pipes and filtersRoute Trusted subsystems

Page 30: SOA Summer School: Best of SOA Summer School – Encore Session

USE-Case-2 (Implementation) cont..

MediationDBLookup

Pipes and filtersRoute Transform

Page 31: SOA Summer School: Best of SOA Summer School – Encore Session

USE-Case-2 (Implementation) cont..

Pipes and filtersRoute

Page 32: SOA Summer School: Best of SOA Summer School – Encore Session

USE-Case-2 (Implementation) cont..

Pipes and filtersRoute Functional decompositionService encapsulation

Page 33: SOA Summer School: Best of SOA Summer School – Encore Session

ESB and SOA

Page 34: SOA Summer School: Best of SOA Summer School – Encore Session

A common ESB definition

“Any to any data connectivity and transformation (including Web Services) built on an advanced, proven, reliable middleware infrastructure”

Page 35: SOA Summer School: Best of SOA Summer School – Encore Session

SOA can end up as spaghetti

• Too many point-to-point links• Multiple protocols, different qualities of service• No clear picture of all available services

Page 36: SOA Summer School: Best of SOA Summer School – Encore Session

An ESB can simplify SOA deployment

IntegratedRegistry/

Repository

Web-based console

VirtualizationPerf Mgmt•Load balance•ThrottleTransport matchingAccess controlMessage transformLogging and auditability

Page 37: SOA Summer School: Best of SOA Summer School – Encore Session

The Concentrator Pattern

.NET service

CRMservice

ApacheAxis2 service

C/C++service

Concentrator ESBConsistent access, security, logging, audit, monitoring

But no transformation

Data service

Mashup/Web ApplicationDashboard

Page 38: SOA Summer School: Best of SOA Summer School – Encore Session

The Federated ESB pattern

Enterprise ESBRouting, Audit

DepartmentESB

DepartmentESB

DepartmentESB

Page 39: SOA Summer School: Best of SOA Summer School – Encore Session

Anti-Patterns

Anti-Pattern #1 Implement all your business logic in the ESB Why not?

Mixing Infrastructure logic and Business Logic Maintainability Tooling and Skills

Anti-Pattern #2 Apply waterfall and application deployment

approaches to the ESB Long project cycles No iterative approach

Why not? Lose all flexibility and agility Once the ESB becomes a static, code-driven system

then you would be better off updating your applications

Page 40: SOA Summer School: Best of SOA Summer School – Encore Session

Anti-Pattern #3

“Big Brother” The ESB is hosted, managed and controlled by

a central IT team Because of organizational issues using the ESB

is complex: e.g.

It takes months of meetings to get access The Central IT team is trying to recoup the investment and

internally charges $000/year to use the ESB The central IT deployment model holds up users

Departments and divisions actually sneak behind the ESB

Set up peer-to-peer communications Avoid the ESB at all costs

Page 41: SOA Summer School: Best of SOA Summer School – Encore Session

The biggest Anti-Pattern of all

Use an ESB because: You heard it was a good idea The salesman told you that you need one (over a

nice dinner) You need a new TLA on your resume/CV Its an excuse to spend several months learning

and going to conferences

Page 42: SOA Summer School: Best of SOA Summer School – Encore Session

Security in SOA

Page 43: SOA Summer School: Best of SOA Summer School – Encore Session

The Concentrator Pattern

.NETservice

CRMservice

ApacheAxis2

service

C/C++service

Concentrator ESBConsistent access, security, logging, audit, monitoring

But no transformation

Dataservice

Mashup/Web ApplicationDashboard

Page 44: SOA Summer School: Best of SOA Summer School – Encore Session
Page 45: SOA Summer School: Best of SOA Summer School – Encore Session

Provides a single entry point and allows centralization of security enforcement for incoming and outgoing messages.

Helps to apply transport-level and message-level security mechanisms required for securely communicating with a Web services endpoint.

Page 46: SOA Summer School: Best of SOA Summer School – Encore Session

Message Interceptor Gateway Pattern

Page 47: SOA Summer School: Best of SOA Summer School – Encore Session

Authentication Module

Authorization Mod-ule [PEP]

Ser-vice A

Ser-vice B

Ser-vice C

LDAP

Page 48: SOA Summer School: Best of SOA Summer School – Encore Session

Authentication Module

Authorization Mod-ule [PEP]

Ser-vice A

Ser-vice B

Ser-vice C

LDAP

PDP

Page 49: SOA Summer School: Best of SOA Summer School – Encore Session

Authentication Module

Authorization Mod-ule [PEP]

Ser-vice A

Ser-vice B

Ser-vice C

LDAP

PDP

Policy Store

Page 50: SOA Summer School: Best of SOA Summer School – Encore Session

Authentication Module

Authorization Mod-ule [PEP]

Ser-vice A

Ser-vice B

Ser-vice C

LDAP

PDP

Policy Store

Page 51: SOA Summer School: Best of SOA Summer School – Encore Session

Authentication Module

Authorization Mod-ule [PEP]

Ser-vice A

Ser-vice B

Ser-vice C

LDAP

PDP

Policy Store

PAP

Page 52: SOA Summer School: Best of SOA Summer School – Encore Session

USE-Case-3 (Business Scenario)

ABC company got several development groups that use various Time tracking applications developed on SOA to track the effort putting for the tasks.Accounts department needs various reports from these different Systems as a single view. Some reports go through a validation process through some sub-systems and the management wants to monitor the process.

Page 53: SOA Summer School: Best of SOA Summer School – Encore Session

USE-Case-3 (Pattern Mapping)

Aggregated Data Pattern Logical Flows

Page 54: SOA Summer School: Best of SOA Summer School – Encore Session

Mashups in SOA

Page 55: SOA Summer School: Best of SOA Summer School – Encore Session

What is a Mashup?

A mashup is a Web site that combines content data from more than one source to create a new user expe­rience. 

Page 56: SOA Summer School: Best of SOA Summer School – Encore Session
Page 57: SOA Summer School: Best of SOA Summer School – Encore Session

Mashup Characteristics

● Situational application, consuming Web APIs

● Characteristics● Lightweight

● Customized

● Aggregates data / Composes services

● Often combines personal and public data

● Recursive?

Page 58: SOA Summer School: Best of SOA Summer School – Encore Session

Metcalfe's law

Metcalfe's law states that the value of a telecommunications network is proportional to the square of the number of connected users of the sys­tem (n2).

Page 59: SOA Summer School: Best of SOA Summer School – Encore Session

Metcalfe's law

Page 60: SOA Summer School: Best of SOA Summer School – Encore Session

Metcalfe's law Adjusted...

Page 61: SOA Summer School: Best of SOA Summer School – Encore Session

Importance of Mashups in a SOA

● Helps bridge users to your SOA● Emails

● IM

● Feeds

● Create mock services● Helps create a prototypes quickly

● Improves Agility

Page 62: SOA Summer School: Best of SOA Summer School – Encore Session

BPM in SOA

Page 63: SOA Summer School: Best of SOA Summer School – Encore Session

What is a business process?

• A process you need to run your business!• Any well-defined interaction between

systems and people, triggered by events, using logical decision points, and with clearly defined flows

Page 64: SOA Summer School: Best of SOA Summer School – Encore Session

Why business process matter?

• Enterprise applications and information systems have became fundamental assets

• Enterprise information systems can improve the efficiency of businesses through automation of business processes

• To stay competitive applications must quickly and efficiently adept to changing business needs

Page 65: SOA Summer School: Best of SOA Summer School – Encore Session

Business Process Management

•Defining, Executing, and Monitoring Business Processes Typically long-running, stateful processes

Model

Monitor

BPM ExecuteInnovate

Page 66: SOA Summer School: Best of SOA Summer School – Encore Session

How does BPM fit with SOA

•Business Process Management needs to connect to ‘operations’–When processing an order, connect to the billing system and raise an invoice–When handling a problem ticket, connect to the ticket management system –Etc•These operations could be direct connection in-memory, but much more likely to be distributed•A service oriented architecture provides the best way to connect the BPM to the SOA

Page 67: SOA Summer School: Best of SOA Summer School – Encore Session

BPM and SOA

BPM

Long running co­ordination state

SOA

Stateless service interactions

Applications, Databases, Legacy

Persistent application state

Page 68: SOA Summer School: Best of SOA Summer School – Encore Session

How does BPM work?

•Model–Create a visual map of your process•Refine–Convert that visual map into an executable process•Execute–Run that process•Monitor–Use built-in capabilities of the BPM platform to monitor the state of processes

Page 69: SOA Summer School: Best of SOA Summer School – Encore Session

Executable business processes

•There are many approaches to executable business processes:–XPDL–BPML–YAWL–jBPM–WS-BPEL 1.1

BPEL 2.0The industry standard

Page 70: SOA Summer School: Best of SOA Summer School – Encore Session

WS-BPEL

• Orchestration language used to describe execution logic of Web services applications by defining their control flows and providing a way for partner services to share a common context

• With WS-BPEL, you build a business process by integrating a collection of Web services into a business process flow

Page 71: SOA Summer School: Best of SOA Summer School – Encore Session

Understanding the relationship between BPMN and BPEL•BPMN is like UML–Useful, especially as a higher level modeling approach–Allows formal modeling of processes by a business analyst–BPMN diagrams cannot be executed•BPMN 2.0 is looking to define a better path to execution•BPEL is like Java–Can be directly executed–Can be visualized using a graphical editor–Can be created using BPMN as a guide (refinement)–

Page 72: SOA Summer School: Best of SOA Summer School – Encore Session

BPEL4People model

Page 73: SOA Summer School: Best of SOA Summer School – Encore Session

Monitoring Processes

•A key benefit of BPM•Can range from:–Simple stats on processes–Inspect individual instances–View overall flows across a process map–Building custom business reports on specific measures•E.g. Sales / hour over the last week

Page 74: SOA Summer School: Best of SOA Summer School – Encore Session

USE-Case-4 (Business Scenario)

SOA development team needs to keep the metadata in a central Place, manage them version them and get ready for the changes.Same time looking to limit access to specific metadata sets.

Page 75: SOA Summer School: Best of SOA Summer School – Encore Session

USE-Case-4 (Pattern Mapping)

Shared repository Version identification Compatible change

Page 76: SOA Summer School: Best of SOA Summer School – Encore Session

SOA Governance

Page 77: SOA Summer School: Best of SOA Summer School – Encore Session

Governance

Page 78: SOA Summer School: Best of SOA Summer School – Encore Session

Categorize 

Metadata Control

Monitor

Page 79: SOA Summer School: Best of SOA Summer School – Encore Session

Implementation

Identify the SOA architecture Identify the governance team Pick a framework, product Iterative process

Data entry, configuration, (approach) Dry run Live run Govern your SOA infrastructure

Page 80: SOA Summer School: Best of SOA Summer School – Encore Session

USE-Case-5 (Business Scenario)

A C/C++ Development team wants to implement SOA application, they Will be reusing some existing Java and .Net backend services. They are more keen about the re­usability of services and performance.

Page 81: SOA Summer School: Best of SOA Summer School – Encore Session

USE-Case-5 (Pattern Mapping)

Adapters

Page 82: SOA Summer School: Best of SOA Summer School – Encore Session

C++ in SOA

Page 83: SOA Summer School: Best of SOA Summer School – Encore Session

Why use C++

● C++ is still widely used in the industry due to● Performance advantage of the native

code● Flexibility available from object

oriented language● Tight control over memory and CPU

Page 84: SOA Summer School: Best of SOA Summer School – Encore Session

Typical applications that use C++

● Applications which require high performance and the ability to handle large volumes of data● Financial Market Applications● Large E-Commerce applications● Banking Applications● Telecommunication Systems● Data Base Systems

● Applications which require tight control over memory and CPU● Operating Systems (C/C++)● Embedded Systems

Page 85: SOA Summer School: Best of SOA Summer School – Encore Session

A Use­Case● A legacy C++ system which has been

performing useful work for a long time. This has remained isolated while all other systems in the organization evolved and connected together.

● Need to integrate this system with other applications to use its functionality in a broader perspective.

● Options● Rewrite the system ( Costly )● Integrate using EAI ● Integrate using a native Web Services Stack

Page 86: SOA Summer School: Best of SOA Summer School – Encore Session

A Use­Case

. N E T

J 2 E E

J a v aC I C S

S A P

S e c u r e ,   R e l i a b l e ,   B i n a r y  W e b   S e r v i c e s

Legacy System

Page 87: SOA Summer School: Best of SOA Summer School – Encore Session

How to adapt a C++ Application as Web Services

Page 88: SOA Summer School: Best of SOA Summer School – Encore Session

Native Web Services Stack

● What would you look from a native web services stack ?● Support for Basic Web Services Standards ● Tooling for WSDL ● Portability● Performance / Low memory foot print ● Security● Ability to handle binary data● Interoperability● Asynchronous communication

Page 89: SOA Summer School: Best of SOA Summer School – Encore Session

Portability

● My legacy application is running on platform 'X'. Does your Web Service stack run on it ?

● It can boil down to multitude of issues● Differences in operating system versions● Differences in build tool versions, compiler

versions● Dependency problems

Page 90: SOA Summer School: Best of SOA Summer School – Encore Session

Performance● Performance is a broad area. Usually

Performance means response time. In another way, how many requests can the server handle per second

● However, performance depends on the system's hardware as well as load on the system

● Does the performance stay constant or does it degrade over time

● How does the performance vary with the size of the messages, load of the system

Page 91: SOA Summer School: Best of SOA Summer School – Encore Session

Low Memory Foot Print

● Some servers take large amount of memory just to start up

● How much memory does it require to run efficiently ( Important in embedded systems)

● Does the memory usage stay constant while handling large xml messages, large binary content

Page 92: SOA Summer School: Best of SOA Summer School – Encore Session

Student Lab(Practical Sessions)

Page 93: SOA Summer School: Best of SOA Summer School – Encore Session

Student Lab

Page 94: SOA Summer School: Best of SOA Summer School – Encore Session

Student Lab

Page 95: SOA Summer School: Best of SOA Summer School – Encore Session

Contacts

Corporate web site: http://wso2.com

Developer portal: http://wso2.org

Business development team: [email protected]

Page 96: SOA Summer School: Best of SOA Summer School – Encore Session

Q & AQ & A