Connected Systems and Service Oriented Architecture
Francesco AlbanoEnterprise Technical Evangelism Manager
Developer & Platform Evangelism Division
Microsoft Italy
2
Agenda
Service Orientation
Web Services Architecture
Technology Roadmap
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”
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.
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
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
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…
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
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
12
Service Orientation – Core Tenets
Explicit Boundaries
Autonomous
Negotiation Via Policy
Reuse Reuse & Dynamic& Dynamic
Exposed Schema and Contract
Message Driven
MeaningfuMeaningfull
InformatioInformationn
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
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
15
Service OrientationRequired Capabilities
Security
Reliability
Transactions
Discovery
Management
Transport independence
Interoperability
Process orchestration
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
17
Unified Connectivity
Less overhead, reduced surface area
Consistent programming model
Native interoperability
YourApplication
EJBEJB
MQMQ
DCOMDCOM
ODBCODBC
18
BusinessProcesses
BusinessProcesses
YourApplication
Abstraction
Enables you to more gracefully decompose your application
Enables you to extend and optimize your processes
BusinessProcess
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
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
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 .
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?
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
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
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 !!!
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
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
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
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
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
31
One Developer Experience
Leverage existing skills
Harness the .NET framework
Build with standards
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
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
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
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
© 2004 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.