34
Connected Systems and Service Oriented Architecture Francesco Albano Enterprise Technical Evangelism Manager Developer & Platform Evangelism Division Microsoft Italy

Connected Systems and Service Oriented Architecture Francesco Albano Enterprise Technical Evangelism Manager Developer & Platform Evangelism Division Microsoft

Embed Size (px)

Citation preview

Page 1: Connected Systems and Service Oriented Architecture Francesco Albano Enterprise Technical Evangelism Manager Developer & Platform Evangelism Division Microsoft

Connected Systems and Service Oriented Architecture

Francesco AlbanoEnterprise Technical Evangelism Manager

Developer & Platform Evangelism Division

Microsoft Italy

Page 2: Connected Systems and Service Oriented Architecture Francesco Albano Enterprise Technical Evangelism Manager Developer & Platform Evangelism Division Microsoft

2

Agenda

Service Orientation

Web Services Architecture

Technology Roadmap

Page 3: Connected Systems and Service Oriented Architecture Francesco Albano Enterprise Technical Evangelism Manager Developer & Platform Evangelism Division Microsoft

3

Sound Familiar?

Current infrastructure does not have the agility to keep up with

business objectives

APPLICATIONS AND SERVICES

NETWORK AND BACK-END ELEMENTS

“… “… I need to bring 50 new I need to bring 50 new services to market in next 12-services to market in next 12-18 months”18 months”

“… “… I need to be driving $X00 I need to be driving $X00 million in revenue from new million in revenue from new services in the next two years”services in the next two years”

“… “… it costs me $2 million to it costs me $2 million to launch each service”launch each service”

“…“…It takes too much time and It takes too much time and energy to bring even a simple energy to bring even a simple service to life”service to life”

Page 4: Connected Systems and Service Oriented Architecture Francesco Albano Enterprise Technical Evangelism Manager Developer & Platform Evangelism Division Microsoft

4

What Is SOA? – Concepts

Systems built from autonomous services

A service is a program you interact with via message exchanges

Services are built to last

Availability and stability are critical

A set of deployed services is a system

An SOA is an orchestrated sequence of messaging, An SOA is an orchestrated sequence of messaging, transformation, routing and processing events in transformation, routing and processing events in which XML technologies expose the message which XML technologies expose the message content and the components that operate on content and the components that operate on the messages.the messages.

Page 5: Connected Systems and Service Oriented Architecture Francesco Albano Enterprise Technical Evangelism Manager Developer & Platform Evangelism Division Microsoft

5

Services Objects

Different deployment modelServices are hosted, rather than forward-deployed

Encapsulation at the interface, rather than the implementation

Opportunity for interception and pipeline processing

Opportunity for context- and content-sensitive routing

Integration by DesignAll platforms can consume contracts and messages

Opportunity to develop common entity model with marketplace partners

Page 6: Connected Systems and Service Oriented Architecture Francesco Albano Enterprise Technical Evangelism Manager Developer & Platform Evangelism Division Microsoft

8

Baseline Standards – Web Services 1.0

Web Services are here today!Web services core:

XML 1.0 (second edition)Base encoding for documents

SOAP 1.1Base encoding for messages

WSDL 1.1Description of web services

UDDI 2.0 (API 2.04, data structure 2.03)Directory for finding service descriptions

HTTP 1.1Message transfer

Page 7: Connected Systems and Service Oriented Architecture Francesco Albano Enterprise Technical Evangelism Manager Developer & Platform Evangelism Division Microsoft

9

Great Baseline Specification But…

Solutions have become more complex and need standards beyond this baseline

Need higher lever functionality to support Enterprise Applications

Security – Authentication and Authorization

Routing

Reliable Messaging

Transactions

Today these types of services can be implemented however they are usually some-what proprietary and often non-interoperable…

Page 8: Connected Systems and Service Oriented Architecture Francesco Albano Enterprise Technical Evangelism Manager Developer & Platform Evangelism Division Microsoft

Shift To Service Orientation

Connections = cost

Function oriented

Build to last

Prolonged development

FromFrom ToTo

Connections = value

Process oriented

Build for change

Incrementally deployed

Application silos

Tightly coupled

Object oriented

Orchestrated solutions

Loosely coupled

Message oriented

Page 9: Connected Systems and Service Oriented Architecture Francesco Albano Enterprise Technical Evangelism Manager Developer & Platform Evangelism Division Microsoft

11

Service Orientation

A service oriented architecture (SOA) significantly elevates the abstraction level for code re-use

It allows applications to bind to services that evolve and improve over time without requiring modification to the applications that consume them

Evolution not revolution

Page 10: Connected Systems and Service Oriented Architecture Francesco Albano Enterprise Technical Evangelism Manager Developer & Platform Evangelism Division Microsoft

12

Service Orientation – Core Tenets

Explicit Boundaries

Autonomous

Negotiation Via Policy

Reuse Reuse & Dynamic& Dynamic

Exposed Schema and Contract

Message Driven

MeaningfuMeaningfull

InformatioInformationn

Page 11: Connected Systems and Service Oriented Architecture Francesco Albano Enterprise Technical Evangelism Manager Developer & Platform Evangelism Division Microsoft

13

ServicesServices

Message ExchangeMessage ExchangePatternPattern

describedescribe

OperationalOperationalRequirementsRequirements

enforceenforce

StateState

managemanage

ApplicationsApplications

composed ofcomposed of

MessagesMessages

exchangeexchange

is a set ofis a set ofContractsContracts

bound bybound by

containcontain SchemasSchemas define structure ofdefine structure of

governed bygoverned byPoliciesPolicies

havehave

Service Orientation – Key Concepts

Page 12: Connected Systems and Service Oriented Architecture Francesco Albano Enterprise Technical Evangelism Manager Developer & Platform Evangelism Division Microsoft

14

Service Orientation

Business Process View

BusinessBusinessComponentComponent

BusinessBusinessComponentComponent

Business Business ProcessProcess

ConsumerConsumerApplicationApplication

Finer Grained Finer Grained Internal Internal Service Service

OperationsOperations

Coarse Coarse Grained Web Grained Web

Service Service OperationsOperations

Fine Grained Fine Grained Object and Object and

database callsdatabase calls

Page 13: Connected Systems and Service Oriented Architecture Francesco Albano Enterprise Technical Evangelism Manager Developer & Platform Evangelism Division Microsoft

15

Service OrientationRequired Capabilities

Security

Reliability

Transactions

Discovery

Management

Transport independence

Interoperability

Process orchestration

Page 14: Connected Systems and Service Oriented Architecture Francesco Albano Enterprise Technical Evangelism Manager Developer & Platform Evangelism Division Microsoft

16

SOA – Current Standards

Addressing these Application Interoperability areas

WS-* Specifications

Co-authored, (inc. MS, IBM, BEA, Verisign, SAP, Tibco)

WS-Routing

WS-Referral

WS-Inspection

WS-Security

WS-Attachments

WS-Coordination

WS-Transaction

WS-SecureConversation

WS-SecurityPolicy

WS-Policy

WS-PolicyAttachment

WS-PolicyAssertions

WS-Addressing

WS-ReliableMessaging

Page 15: Connected Systems and Service Oriented Architecture Francesco Albano Enterprise Technical Evangelism Manager Developer & Platform Evangelism Division Microsoft

17

Unified Connectivity

Less overhead, reduced surface area

Consistent programming model

Native interoperability

YourApplication

EJBEJB

MQMQ

DCOMDCOM

ODBCODBC

Page 16: Connected Systems and Service Oriented Architecture Francesco Albano Enterprise Technical Evangelism Manager Developer & Platform Evangelism Division Microsoft

18

BusinessProcesses

BusinessProcesses

YourApplication

Abstraction

Enables you to more gracefully decompose your application

Enables you to extend and optimize your processes

BusinessProcess

Page 17: Connected Systems and Service Oriented Architecture Francesco Albano Enterprise Technical Evangelism Manager Developer & Platform Evangelism Division Microsoft

19

Dynamic

Discovery enables you to add services and consume services at “run-time”

Policy enables services to dynamically calibrate and optimize overtime

Guaranteed Guaranteed DeliveryDelivery

PKIPKI

Windows Windows CredentialsCredentials

Guaranteed Guaranteed DeliveryDelivery

Windows Windows CredentialsCredentials

Custom Custom CredentialsCredentials

Page 18: Connected Systems and Service Oriented Architecture Francesco Albano Enterprise Technical Evangelism Manager Developer & Platform Evangelism Division Microsoft

20

Resilient

Schema provides a mechanism to decouple database, programming and “wire” format – this makes your application more resilient to change

Coarse grain messaging enables loose coupling

BusinessProcess

<ORDER>…..</ORDER><ORDER>…..</ORDER> <ITEMS>…..</ITEMS><ITEMS>…..</ITEMS> 1 Shoes 12.991 Shoes 12.99

Page 19: Connected Systems and Service Oriented Architecture Francesco Albano Enterprise Technical Evangelism Manager Developer & Platform Evangelism Division Microsoft

21

Reuse

Decomposition promotes reuse and enables more dynamic business processes

Requires you to embrace a business process model

3.3. Procurement3.3. Procurement

3.3.1 Sourcing and Supplier Contract Management

3.3.3 Receiving of Indirect / Capital Goods and Services

3.3.2 Purchasing3.3.2 PurchasingRequest Resources

Acquire/Purchase Resources

CreatePurchase

Requisitions

PurchaseDirect

Materials &Supplies

PurchaseIndirect

Materials

PurchaseOutsideVendor

Services

PurchaseCapitalGoods

ConsolidateApproved

Requisitionsby Supplier

CreatePurchase

Orders

Choose orDefault

Supplier forGoods

ManageRFI/RFQ/

RFPprocess

ManageOpen to

Buy/BlanketPOs

Verify/Negotiate

Price

ManageRequisition

ApprovaProcessl

PerformEncumbrance

Check

Track OpenPOs

Manage Suppliers

ManageSupplier

Relationships

TrackSupplier

Commitments

MaintainSupplierCatalog

ManagePurchase

ItemCatalog

CreateAuction Bids

ManageAutomaticReplenish-

ment

ManagePurchasing

Methods

Approve& ValidateContract

Payments

ManageBuyer

Performance

Provide SupplierSelf-Help

000197 TBLEDIT SECTION.000197 TBLEDIT SECTION.000198******************************000198******************************000199*000199*000200 DISPLAY ROOM-TOTAL-000200 DISPLAY ROOM-TOTAL-NUM(TBL-IDX).NUM(TBL-IDX).000201 DISPLAY TBL-IDX.000201 DISPLAY TBL-IDX.000202 MOVE ROOM-TOTAL-000202 MOVE ROOM-TOTAL-NUM(TBL-IDX) TO WK-ALL.NUM(TBL-IDX) TO WK-ALL.000203 MOVE ROOM-RSV-000203 MOVE ROOM-RSV-NUM(TBL-IDX) TO WK-RSV.NUM(TBL-IDX) TO WK-RSV.000204 PERFORM RITU-COMP.000204 PERFORM RITU-COMP.000205 MOVE WK-ALL TO POW-000205 MOVE WK-ALL TO POW-0001.0001.000205 MOVE TBL-IDX TO POW-000205 MOVE TBL-IDX TO POW-0002.0002.000205 MOVE 1 TO POW-0003.000205 MOVE 1 TO POW-0003.000205 CALL 000205 CALL "_XPOWTABLESETNUMERICTO" "_XPOWTABLESETNUMERICTO" USING BY VALUE ROOMTBLUSING BY VALUE ROOMTBL000205 BY REFERENCE POW-0001 000205 BY REFERENCE POW-0001 BY VALUE POW-0002 POW-0003 .BY VALUE POW-0002 POW-0003 .

Page 20: Connected Systems and Service Oriented Architecture Francesco Albano Enterprise Technical Evangelism Manager Developer & Platform Evangelism Division Microsoft

22

Design Considerations

Things we should be thinking about:SecurityTransactions and SOA

What does it mean to think about transaction in an SOA world

How do we delineate transaction boundaries What infrastructure support can we expect

Idempotency of Services Reliability issues make us assert that services should be

idempotent.Data fidelity between services

Canonical Schema … goals and challengesProcesses

The end goal are declarative processes… how do we get there?

Page 21: Connected Systems and Service Oriented Architecture Francesco Albano Enterprise Technical Evangelism Manager Developer & Platform Evangelism Division Microsoft

23

Security and SOA

Need not be part of messagePart of an infrastructure service

It means more than just authenticationAuthorization

Encryption

Standards (WS-*) are still evolving to date

Page 22: Connected Systems and Service Oriented Architecture Francesco Albano Enterprise Technical Evangelism Manager Developer & Platform Evangelism Division Microsoft

24

Transactions and SOA: Issues

Atomic transaction are singularitiesLocking makes them appear to be at a single point in timeTwo-phase commit removes distribution concerns

The new challenges happen when spreading work across space and time

Different services are in different spatial locationsWork across different messages gets processed at different times

Commutativity helps relax space and timeBy reordering with acceptable answers, it’s OK

Note that DB write is not commutative

Page 23: Connected Systems and Service Oriented Architecture Francesco Albano Enterprise Technical Evangelism Manager Developer & Platform Evangelism Division Microsoft

25

Challenges with Multiple Messages

Any request may arrive multiple times

Sometimes after quite a while

You might be a few messages farther along when an old one arrives

The combinatoric complexity can be staggering

This leads people to build very simple applications since only then can they cope with the failure complexity…

Service-A

Sender

Service-B

ReceiverABACAABC

Problem !!!

Page 24: Connected Systems and Service Oriented Architecture Francesco Albano Enterprise Technical Evangelism Manager Developer & Platform Evangelism Division Microsoft

26

Idempotence

Requests get lost…

Gotta retry them to handle lost requests

Requests arrive more than once…

Those pesky retries may actually arrive

Idempotent means it’s OK to arrive multiple times

As long as the request is processed at least once, the correct stuff occurs

In today’s internet, you must design your requests to be idempotent

NaturallyIdempotentSweeping the floor

IdempotentIf not yet withdrawal#XYZ then withdraw$1 Billion and label

as #XYZNaturally

IdempotentRead

Record X

Not IdempotentBaking a cakestarting fromingredients

IdempotentBaking a cake starting

with a shopping list(if you don’t worry

about money)

Not IdempotentWithdrawing

$1 Billion

Page 25: Connected Systems and Service Oriented Architecture Francesco Albano Enterprise Technical Evangelism Manager Developer & Platform Evangelism Division Microsoft

27

Service-Oriented Analysis Issues

Entity Identification

Entity Factoring

Service Identification

Service Factoring

Process Specification

Endpoint (Touchpoint) identification

Role Mapping

SLAs

Entity Services

Entity Services

Process Services

Process Services

Infrastr

ucture S

ervice

s

Infrastr

ucture S

ervice

s

Clients and AgentsClients and Agents

TechnologyArchitectureTechnologyArchitecture

InformationArchitectureInformationArchitecture

Activity Services

Activity Services

Page 26: Connected Systems and Service Oriented Architecture Francesco Albano Enterprise Technical Evangelism Manager Developer & Platform Evangelism Division Microsoft

28

Service-Oriented Design Issues

Schema definitionMessage definitionContract definitionMessage handlingProcess managementTransaction modelOperational complianceException handlingMessage to Object mappingRefinement of Analysis…

Contracts

Service

Service

Process

DocumentA

DocumentC-1

DocumentC-2

DocumentB

EitherC-1 or C-2

Process

Page 27: Connected Systems and Service Oriented Architecture Francesco Albano Enterprise Technical Evangelism Manager Developer & Platform Evangelism Division Microsoft

29

Service Operations Issues

Security

Access control

Monitoring

Management

QoS and SLA enforcement

Versioning

Scalability

Dealing with unreliability

Exception routing

Caching

Service

Service

Message Processing Infrastructure

Message Processing Infrastructure

Serialize

Encrypt

Sign

Deserialize

Authenticate

AuthorizeAudit

Log

Reliablemessaging

Page 28: Connected Systems and Service Oriented Architecture Francesco Albano Enterprise Technical Evangelism Manager Developer & Platform Evangelism Division Microsoft

30

Simplifying The Interaction Of Business Analysts And Developers

Developer ties processes in with Developer ties processes in with systems and other processessystems and other processes

bidirectionalbidirectional

Business analyst builds the Business analyst builds the specific business processspecific business process

collaborativecollaborative

Page 29: Connected Systems and Service Oriented Architecture Francesco Albano Enterprise Technical Evangelism Manager Developer & Platform Evangelism Division Microsoft

31

One Developer Experience

Leverage existing skills

Harness the .NET framework

Build with standards

Page 30: Connected Systems and Service Oriented Architecture Francesco Albano Enterprise Technical Evangelism Manager Developer & Platform Evangelism Division Microsoft

32

Business Rules/Policy

Use business process rules for simple cases or complete inference engine for more complex scenarios

Rules change more often than processes

Business rules provide increased flexibility

Rules are abstracted from process and user code

Page 31: Connected Systems and Service Oriented Architecture Francesco Albano Enterprise Technical Evangelism Manager Developer & Platform Evangelism Division Microsoft

33

UNIX

LDAP

RDBMS

Netware

390/AS400

Third partyManagement

Products

VPN

Firewall

WebServices

LOB Apps

WindowsClients

MobileDevices`

OtherClients

Building Connected SystemsBest Tool for Web Services Interoperability

Network Infrastructure

DataManagement

Applications

Programming Language

Legacy

SecurityIdentity

Industries

Page 32: Connected Systems and Service Oriented Architecture Francesco Albano Enterprise Technical Evangelism Manager Developer & Platform Evangelism Division Microsoft

34

Visual Studio Team System

Change Management

Work Item Tracking

Reporting

Project Site

Visual Studio

Team Foundation Integration Services

Project Management

Pro

cess

an

d A

rch

itect

ure

Pro

cess

an

d A

rch

itect

ure

G

uid

an

ceG

uid

an

ce

Dynamic Code Analyzer

Visual Studio

Team Architect

Static Code Analyzer

Code Profiler

Unit Testing

Code Coverage

Visio and UML Modeling

Team Foundation Client (includes CAL)

Visual Studio Professional Edition

Class Designer

Load Testing

Manual Testing

Test Case Management

Application Designer

Logical Infra. Designer

Deployment Designer

Visual Studio

Team DeveloperVisual Studio

Team Test

Vis

ual S

tud

io In

du

stry

V

isu

al S

tud

io In

du

stry

Part

ners

Part

ners

Big Build

Page 33: Connected Systems and Service Oriented Architecture Francesco Albano Enterprise Technical Evangelism Manager Developer & Platform Evangelism Division Microsoft

36

Closing Comments

Service-orientation allows an organization to get control of unmanageable IT assets

Once in control, you canOptimize

Orchestrate

Open access points to processes

Create agility

Top down or bottom up, SOA is a path to better alignment of business and technology

Page 34: Connected Systems and Service Oriented Architecture Francesco Albano Enterprise Technical Evangelism Manager Developer & Platform Evangelism Division Microsoft

© 2004 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.