soa - architecture and design

44
Service Oriented Architecture Designing a SOA Solution

Upload: muthu-kumar

Post on 08-Jun-2015

392 views

Category:

Technology


2 download

DESCRIPTION

SOA Architecture and Design : presentation

TRANSCRIPT

Page 1: SOA - Architecture and Design

Service Oriented Architecture

Designing a SOA Solution

Page 2: SOA - Architecture and Design

Agenda

Software Design – An introductionPatterns, Models and Reference ArchitectureSOA Computing + SOA ClientsSaaS - a Quick IntroductionSoftware Design – ConceptsBusiness Process ModelingSample Web 2.0 Application AnalysisSoftware Design Specification – How to…Discussions

Page 3: SOA - Architecture and Design

SOA and Web 2.0•Second generation Application Development Platform for Web,

Mobile and Business Systems.

•Facilitating Communication, Information sharing, Interoperability,

User-centered design and Collaboration on the World Wide Web.

Social Networking

Hosted Services

Video SharingWikis

Blogs

Mashups-MapsPhoto Blogs

Page 4: SOA - Architecture and Design

Few Web 2.0 Applications…

Page 5: SOA - Architecture and Design

SOA Knowledge Architecture

Page 6: SOA - Architecture and Design
Page 7: SOA - Architecture and Design

Patterns

Repeatable solution to a commonly occurring problem.

Patterns can be repurposed across multiple

domains and used to solve recurring problems there within.

Example: Collaborative Tagging (Can be used for audio files,

video files, text files, binaries, people…)

Page 8: SOA - Architecture and Design

Common Web 2.0 Patterns

Page 9: SOA - Architecture and Design

Models

Definition: Abstract lexicon capturing a generalized set of

concepts and noting their purposes and relationships to each

other.

Primary Audience: Entrepreneurs, Software or Enterprise

Architects

Why:

Models guide all domains, whether explicit or implicit. They facilitate a common,

shared understanding or conceptualization of a domain.

Page 10: SOA - Architecture and Design

Model of Web 1.0 Client/Server

Client

Server

Page 11: SOA - Architecture and Design

Abstract Model for Web 2.0

SOA

Users

Client Applications / Runtimes

Connectivity

Services

Capabilities

Patterns of Interaction

Page 12: SOA - Architecture and Design

Reference Architecture

A technology component view of a generalized architecture.

NB!: Abstract of all technologies (HTTP, TCP/IP java etc) and

abstract of all applications or vendor products. Agnostic to

patterns of usage.

Primary Audience: Software or enterprise Architects, developers

Why: There is a great value in being able to communicate ideas

and functionality abstract of specific technologies protocols or

products. These become artifacts that can be applied by

architects in multiple domains.

Page 13: SOA - Architecture and Design
Page 14: SOA - Architecture and Design

Service Oriented Computing Re-purposing core functionality as service to be consumed

Page 15: SOA - Architecture and Design

Service Oriented Clients - Web 2.0 Application Architecture

Mashing up multiple formats

Using services to deliver rich user experiences

Rendering/Media engines let users control the way they use your

applications.

Are no longer standalone - use knowledge of other users applications.

Page 16: SOA - Architecture and Design

SaaS

Software Deployment Model

Service On Demand

Customized Solutions based on User

Shared License

Page 17: SOA - Architecture and Design

Fujitsu – Solution Architecture

Page 18: SOA - Architecture and Design

Fujitsu Demo

Page 19: SOA - Architecture and Design

Design Concepts

Abstraction▪ Process or result of generalization by reducing the

information content of a concept or an observable phenomenon, typically in order to retain only information which is relevant for a particular purpose.

Page 20: SOA - Architecture and Design

Design Concepts

Refinement It is the process of elaboration. A hierarchy is developed by

decomposing a macroscopic statement of function in a stepwise fashion until programming language statements are reached. In each step, one or several instructions of a given program are decomposed into more detailed instructions. Abstraction and Refinement are complementary concepts.

Page 21: SOA - Architecture and Design

Design Concepts

▪ Modules▪ Software architecture is divided into components called

modules.

Page 22: SOA - Architecture and Design

Design Concepts

Architecture▪ It refers to the overall structure of the software and the ways in

which that structure provides conceptual integrity for a system. A software architecture is the development work product that gives the highest return on investment with respect to quality, schedule and cost.

▪ Use cases▪ Logical Flow / State Diagrams▪ Activity Diagrams / Process flow ▪ Implementation / Dependencies▪ Deployment

Page 23: SOA - Architecture and Design

Business Rules…Use Case

Name:Upload new media

Created By: Loganathan Last Updated By: LoganathanDate Created: April 10 2008 Date Last

Updated:April 10 2008

Actors Mobile User, PeermetaPreconditionsWorkflow Mobile User Peermeta

Click Upload icon in the Home page Show Choose file and Upload buttonsSelect media to upload

Press Upload button Store media under user's account

Post conditions NAExtensions / Exception flow Exception capturing and displayAssumptions NA

Use Case Name:

Search media

Created By: Loganathan Last Updated By: LoganathanDate Created: April 10 2008 Date Last

Updated:April 10 2008

Actors Mobile User, PeermetaPreconditions Logged in User at Home pageWorkflow Mobile User Peermeta

Enter text in the search text box

Click the search button Show the media(s) for the given type

Click the clear button Clear the entered text in the text box

Post conditions NAExtensions / Exception flow Exception capturing and displayAssumptions NA

Page 24: SOA - Architecture and Design

Use case

Page 25: SOA - Architecture and Design

Class Diagram

Page 26: SOA - Architecture and Design

Activity Diagram

Page 27: SOA - Architecture and Design

Status Diagram

Page 28: SOA - Architecture and Design

Package Diagram

Page 29: SOA - Architecture and Design

Network Diagram

Page 30: SOA - Architecture and Design

Deployment Diagram

Page 31: SOA - Architecture and Design

Design Concepts

Data structures – Databases and Query Engines It is a representation of the logical relationship among

individual elements of data.

Page 32: SOA - Architecture and Design

Business Process Modeling

Representing processes of an enterprise to analyze and

Improved process efficiency and quality

Business Process Re-engineering + Change management +

Continues Improvement (Six Sigma)

Page 33: SOA - Architecture and Design

Elements of BPM

Page 34: SOA - Architecture and Design

Elements – an introduction

Flow Objects

Events, Activities, Gateways

Connecting Objects

Sequence Flow, Message Flow, Association

Swim-lanes

Pool, Lane

Artifacts (Artefacts)

Data Object, Group, Annotation

Page 35: SOA - Architecture and Design

Events…

Start event

Acts as a trigger for the process; indicated by a single narrow border; and can

only be Catch, so is shown with an open (outline) icon.

End event

Represents the result of a process; indicated by a single thick or bold border; and

can only Throw, so is shown with a solid icon.

Intermediate event

Represents something that happens between the start and end events; is

indicated by a tramline border; and can Throw or Catch (using solid or open icons

as appropriate) - for example, a task could flow to an event that throws a

message across to another pool and a subsequent event waits to catch the

response before continuing.

Page 36: SOA - Architecture and Design

Tasks, Process and Transactions…

Task

A task represents a single unit of work that is not or cannot be broken down to a further level of

business process detail without diagramming the steps in a procedure (not the purpose of BPMN)

Sub-process

Used to hide or reveal additional levels of business process detail - when collapsed a sub-process is

indicated by a plus sign against the bottom line of the rectangle; when expanded the rounded

rectangle expands to show all flow objects, connecting objects, and artefacts.

Has its own self-contained start and end events, and sequence flows from the parent process must

not cross the boundary.

Transaction

A form of sub-process in which all contained activities must be treated as a whole, i.e., they must all

be completed to meet an objective, and if any one of them fails they must all be compensated

(undone). Transactions are differentiated from expanded sub-processes by being surrounded by a

tramline border.

Gateway

A Gateway is represented with a diamond shape and will determine forking and merging of paths

depending on the conditions expressed.

Page 37: SOA - Architecture and Design

Flow Objects…

Flow objects are connected to each other using Connecting objects, which consist of three

types (Sequences, Messages, and Associations):

Sequence Flow

A Sequence Flow is represented with a solid line and arrowhead and shows in which order the activities

will be performed. The sequence flow may be also have a symbol at its start, a small diamond indicates

one of a number of conditional flows from an activity while a diagonal slash indicates the default flow

from a decision or activity with conditional flows.

Message Flow

A Message Flow is represented with a dashed line, an open circle at the start, and an open arrowhead at

the end. It tells us what messages flow across organisational boundaries (i.e., between pools). A

message flow can never be used to connect activities or events within the same pool.

Association

An Association is represented with a dotted line. It is used to associate an Artifact or text to a Flow

Object, and can indicate some directionality using an open arrowhead (toward the artifact to represent

a result, from the artifact to represent an input, and both to indicate it is read and updated). No

directionality would be used when the Artifact or text is associated with a sequence or message flow (as

that flow already shows the direction).

Page 38: SOA - Architecture and Design

Pool and Lane

Pool

Represents major participants in a process, typically separating different

organisations. A pool contains one or more lanes (like a real swimming pool). A

pool can be open (i.e., showing internal detail) when it is depicted as a large

rectangle showing one or more lanes, or collapsed (i.e., hiding internal detail)

when it is depicted as an empty rectangle stretching the width or height of the

diagram.

Lane

Used to organise and categorise activities within a pool according to function or

role, and depicted as a rectangle stretching the width or height of the pool. A lane

contains the Flow Objects, Connecting Objects and Artifacts.

Page 39: SOA - Architecture and Design

Artifacts

Artifacts allow developers to bring some more information into the

model/diagram. In this way the model/diagram becomes more readable.

There are three pre-defined Artifacts and they are:

Data Objects

Data Objects show the reader which data is required or produced in an activity.

Group

A Group is represented with a rounded-corner rectangle and dashed lines. The

Group is used to group different activities but does not affect the flow in the

diagram.

Annotation

An Annotation is used to give the reader of the model/diagram an understandable

impression

Page 40: SOA - Architecture and Design

BPM Samples

Page 41: SOA - Architecture and Design
Page 42: SOA - Architecture and Design

BPEL Script - Business process execution language

Page 43: SOA - Architecture and Design

Sample SOA + Web 2.0 Application – Linkedin

Page 44: SOA - Architecture and Design

Thanks…Discussion on topic…

G. Muthukumar@gvmuthu – Follow me in [email protected]://office.gvmuthu.com