You are on page 1of 46

Service Oriented Architecture:

Right on Track
Agenda

Defining SOA
SOA, Service Orientation, Connected Systems and how they
relate

Benefits of SOA

M icrosofts vision for S O A


Why Microsoft provides the best platform
for building your SOA today, and in the
future
Defining SOA
Cutting through the SOA Hype

Myth Reality
SO is a technology or set of SO is an architectural paradigm for
technologies building distributed systems
SO is revolutionary SO is evolutionary
SO is the end goal SO is a means to an end
SO requires business and SO can and should be an
technology overhaul incremental process
SO is complex and requires an SO is easy and can be done in-
army of consultants house

T h e o n ly w a y yo u ca n u se S O A fo r e ve ryth in g is to re n a m e e ve ryth in g to S O A
Roy Schulte, Gartner
Services, Service Orientation and SOA

Service An endpoint that reacts to messages


Service Orientation An architectural paradigm
that employs the following four tenets:
Boundaries are explicit
Services are autonomous
Services share schema and contract, not class
Service compatibility is determined based on policy

Service Oriented Architecture (SOA) Any


architecture the adheres to the Four Tenets of Service
Orientation
Tenet 1 Boundaries are Explicit

Services interact by exchanging


messages
Each message exchange traverses
boundaries and may have costs
SO formalizes intentional, and explicit
interaction
Tenet 2 Share Schema and Contract, Not Types

Services expose schemas defining data


structures and contracts defining
available operations
Contracts and schema may be
independently versioned over time
Tenet 3 Policy defines Service Compatibility

Policy is the statement of communication


requirements necessary for service
interaction
Service capabilities and requirements are
expressed in terms of a policy expression
A policy can contain multiple assertions
Tenet 4 Services Are Autonomous

A u ton om y In d ep en d en ce
Topology of a system evolves over time
Unlike OO, services do not share
behavior
Services gracefully handle failure
Web Services and SOA
Technology
Realization
Web
Services
EAI
Messaging SOA
EDI/B2B Policies
Web Site/Portal Practices
Distributed Computing Frameworks

Standard Protocols
Universal Support
Existing Assets
Low Cost Best
Practice
Approach
Service Orientation Big
Picture

Business Process View


Coarse Finer Grained Fine Grained
Grained Web Internal Object and
Service Service database calls
Operations Operations

Business
Component

Business
Component

Composite Business
Application Process
Composite Applications

Applications composed of multiple service building blocks


Composed, not built
Cut across functional silos

Portal Devices Office Other

Composite Application

Composition Platform

Existing
Systems
Benefits of SOA
Today

Business Technical Issues


Issues Integration costs
Increased Development time
Customer Future proof against
Focus new technologies
Outdeliver the Heterogeneous
Competition environment
Get the most Support new
value for your devices
investment
Shift To Service Orientation

From To
Connections = cost Connections = value
Function oriented Process oriented
Build to last Build for change
Prolonged Incrementally
development deployed

Application silos Orchestrated solutions


Tightly coupled Loosely coupled
Object oriented Message oriented
SOA Business Benefits
Cost

Decreased cost
Reduces TCO and increase ROI on evolving
systems
Add value to core investments by
leveraging existing assets
New systems can be built faster for less
money because existing services can be
more easily reused
Built for flexibility
Long term value of interoperability
SOA Business Benefits
Productivity

Increased employee productivity


Unlock data
Built on existing skills
Consolidate Duplicate Functionality
SOA Business Benefits
Partnership

Built for partnerships


Standards based
Business relationships expressed via
service interactions
Integration is driven by what is needed,
not what is technically possible.
SOA Business Benefits
Agility

Agility - Built for change


Helps applications evolve over time and
last
Abstract the backend and replace over
time
Access to the business value, no matter
what technology delivers it.
Focusing on core-competencies
Incremental implementation approach is
supported.
Microsoft leading the way with
SOA
Microsoft and SOA

Connected Systems is the moniker we use


to describe the eco-system of SOA enabled
applications
SOA enables integration
Web Services is the messaging fabric for
SOA
.NET is the programming model for
Services
Windows and server platform is the hosting
platform for Services
Microsoft SOA Business Value

XML and Web Services Built in from the ground up


Servers have had XML objects since 2000 versions
.NET Framework built for web services
More productive development environment
Fewer lines of code
Larger Ecosystem
Faster time to market
Integrated Application Environment
Developer tool built for the Framework
Framework integrated into the OS
OS services optimized for the Framework
The Application Server is built-in and evolving
M icro so fts S O A S trateg y

Leading the charge with Web Services


Building Connected Systems
Best platform to realize service orientation

Visual Studio ASMX, WSE


SQL XML
Smart Client Office, Windows Mobile
Committed to open standards, interoperability
WS-I, W3C, OASIS, HL7, AIAG, SWIFT

Perceived as leaders e ve n b e fo re w e sta rte d


Visual Studio Team System Edition for
Software Architects
Application Designer (AD)
Endpoints and Application
Prototypes

Endpoints
WebServiceEndpoint
WebContentEndpoint
GenericEndpoint

Applications
WindowsApplication
ASP.NETWebService
ASP.NETWebApplication
OfficeApplication
ExternalWebService
ExternalDatabase
BizTalkWebService
GenericApplication
Defining Web Service
Operations
Implementing the Application
Implementing the Application

Application architects and/or developers can implement one


or more of the applications on the diagram

Implementing is the process of creating the Visual Studio


projects (similar to File > New)

Generates starter source code, content, and config files


based on Visual Studio templates

Implementing requires the Team Edition for Software


Architects or Team Suite
Connected Systems

User Workflow Federated Identity Messaging


Interaction and Process Data and Access and Services

Compose and Provide Provide


Create seamless Connect
seamless, rich integrate seamless and
business access to integrated heterogeneous
user multiple data systems
experiences processes security
stores
Microsoft SOA Enablement

Visual Studio 2005

BizTalk Server Office and


VSTO

MOM
Architectural
Guidance
Active
Directory Windows SQL Server
Communication
Foundation
Windows Communication Foundation
Windows Communication
Foundation

T h e u n ified p rog ram m in g m od el fo r rap id ly b u ild in g


service-orien ted ap p lication s on th e W in d ow s p latform
U n ifie s to d a ys d istrib u te d te ch n o lo g y sta cks
Unification Composable functionality
Appropriate for use on-machine, cross
machine, and cross Internet

Interoperability WS-* interoperability with applications running on


other platforms
& Integration In te ro p e ra b ility w ith to d a ys d istrib u te d sta cks

Productive Service-oriented programming model


Service--Oriented
Service Supports 4 tenets of service-orientation
Programming Maximized developer productivity
U n io n o f T o d ays S tacks

Windows Communication
Foundation (WCF)
(formerly Indigo)

Message-
Message- Service-
Service- Attribute-
Attribute-
WS-*
WS- Composability
Oriented Oriented Based
Protocols Extensibility
Programming Programming Programming
Interop
WCF Windows Communication Foundation

Class TradeApp
{
[WebMethod]
message ExecuteTrade();
}

[ServiceContract]
Class EnterpriseTradeApp {
[ServiceOperation]
message ExecuteTrade ();
}
Composability in Action

Service Model Layer Messaging Layer


CLR Type Transaction Instancing Reliable Security HTTP
Custom
TCP
Integration Behavior Behavior Messaging Channel Transport
Channel

Behaviors Channels
Metadata Instancing Security HTTP
Behavior Behavior Channel Transport

Error
Transaction Reliable TCP
Handling
Behavior Messaging Transport
Behavior

Concurrency CLR Type MSMQ Named


Behavior Integration Integration Pipes

Custom Throttling Custom Queue


Behavior Behavior Channel Transport
Feature Overview
Security, Reliability, Transactions

End-to-end Security
Confidentiality, integrity, authentication,
authorization
X509, Username/Password, Kerberos, SAML,
custom
End-to-end Reliable messaging
In-order guarantees
Exactly once guarantees
Transactions
Guaranteed atomic success or failure across
services
Development Productivity
Using Visual Studio .NET 2003

class HelloService {

[WebMethod] 20,379 lines


public String Hello(String Greeting) { security
X509CertificateCollection collection = new
X509CertificateCollection();
IntPtr blob = Marshal.AllocHGlobal(Marshal.SizeOf( 5,988 lines
typeof(CRYPTOAPI_BLOB))); reliable messaging
IntPtr data = (IntPtr)((int)blob +
Marshal.SizeOf(typeof(CRYPTOAPI_BLOB)));

25,507 lines
SeqAckRange range = new SeqAcknRange(id, low, high ); transactions
SeqAckRange[] ranges = { range };
ReliableQueue.ProcessAcks( ranges );

4,442 lines
hr = pITxDispenser->BeginTransaction (NULL, infrastructure
ISOLATIONLEVEL_SERIALIZABLE, 0, pITxOptions,
&pITransaction);

Total lines
return Greeting; 56,296
}
}
Development Productivity
Using Visual Studio .NET 2003 and WSE

class HelloService {

[WebMethod] 10 lines
public String Hello(String Greeting) { security
foreach ( SecurityToken tok in
requestContext.Security.Tokens
{

}
X509SecurityToken token = tok as X509SecToken 1,804 lines
reliable messaging

SeqAckRange range = new SeqAcknRange(id,low,high );
SeqAckRange[] ranges = { range };
ReliableQueue.ProcessAcks( ranges );
25,507 lines
hr = pITxDispenser->BeginTransaction (NULL, transactions
ISOLATIONLEVEL_SERIALIZABLE, 0, pITxOptions,
&pITransaction);

return Greeting; Total lines


} 27,321
}
Development Productivity
Using Visual Studio 2005 and WCF (Indigo)

[ServiceContract(SecureChannel, SecurityMode =Windows")]


[Reliability(Guarantees.ExactlyOnce | Guarantees.InOrder)]
[ServiceContract] 1 lines
class HelloService security
{
[ServiceOperation(TransactionFlowAllowed = true)]
String Hello(String Greeting)
{

}
return Greeting; 1 lines
reliable messaging

1 lines
transactions

Total lines 3
How WCF implements the
tenets of SOA
Application Code What is Exposed
Contract Schema (WSDL + XSD)
[FederatedSecurity] Requires message body <arg> string <arg>
<arg>
[Discoverable] Service reply message body <return> int <return>
<return>
[TcpTransport]
[ServiceContract] Autonomy (WS-
(WS-Security family, WS-
WS-Discovery)
Class MyService Assume any messagesNothing! received are rogue
{ A u tom a tica Boundaries
lly a n n ou n ces th e are explicit
services existen ce on
startup, optionally to central directory
Exposes endpoint that responds to Find requests
[ServiceOperation]
int MyMethod(string arg) Nothing about implementation/platform exposed.
{
Find and call the service using public standards with any
} implementation.

} Contract Policy (WS-


(WS-Policy)
Requires WS-
WS-Security, Trust, SCT
Requires use of TCP SOAP binding
Roadmap Provides Continuity
WSE1
WSE2

WCF will supersede existing WSE-n


connected systems
technologies.
Other technologies continue
to co-exist, interoperate and
be supported via WCF
support policy

ASMX ASMX

Enterprise Services

.NET Remoting

Com(+)

MSMQ
Designing for WCF

Build services using ASMX


Use WSE for WS-* support
Keep components within your service boundaries
Use System.Messaging for async queued
messaging
Use Enterprise Services
when transactions,
activation required
Avoid or abstract
low-level .NET
Remoting
extensibility
such as sinks,
channels
Summary

Service Orientation is an architectural paradigm,


conforming to the four tenets
Service Orientation reflects the realities of
building heterogeneous distributed systems
Service Orientation enables agility and the
ability to leverage existing assets, without
having to rip-and-replace
The Microsoft platform provides the best tools to
enable you to build Service Oriented systems
today and leads the industry in innovation for
the future
CALL TO ACTION

Learn about SOA


Ask questions
http://blogs.msdn.com/pooyad
Use Visual Studio 2005
create web services (if yo u h aven t alrea d y, an d see h o w
easy it is)
http://msdn.microsoft.com/vstudio/
Visual Studio 2005 Express (CD in your bags)

K eep u p to d ate w ith M icroso fts A rch itectu re


Vision
http://www.architecturejournal.net/
Sign up for the Architecture Journal

You might also like