Service Oriented Architecture

You might also like

Download as pdf or txt
Download as pdf or txt
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
Microsofts vision for SOA
Why Microsoft provides the best platform
for building your SOA today, and in the
future
Defining SOA
SO is an architectural paradigm for
building distributed systems
SO is evolutionary
SO is a means to an end
SO can and should be an
incremental process
SO is easy and can be done in-
house
SO is a technology or set of
technologies
SO is revolutionary
SO is the end goal
SO requires business and
technology overhaul
SO is complex and requires an
army of consultants
Reality Myth
The only way you can use SOA for everything is to rename everything to SOA
Roy Schulte, Gartner
Cutting through the SOA Hype
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
Services, Service Orientation and SOA
Services interact by exchanging
messages
Each message exchange traverses
boundaries and may have costs
SO formalizes intentional, and explicit
interaction
Tenet 1 Boundaries are Explicit
Services expose schemas defining data
structures and contracts defining
available operations
Contracts and schema may be
independently versioned over time
Tenet 2 Share Schema and Contract, Not Types
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 3 Policy defines Service Compatibility
Autonomy Independence
Topology of a system evolves over time
Unlike OO, services do not share
behavior
Services gracefully handle failure
Tenet 4 Services Are Autonomous
Web Services and SOA
Web
Services
EDI/B2B
EAI
Distributed Computing
Web Site/Portal
Messaging
Policies
Practices
Standard Protocols
Universal Support
Low Cost
Existing Assets
Best
Practice
Approach
Technology
Realization
Frameworks
SOA
Service Orientation Big
Picture
Business Process View
Business Business
Component Component
Business Business
Component Component
Business Business
Process Process
Composite Composite
Application Application
Finer Grained Finer Grained
Internal Internal
Service Service
Operations Operations
Coarse Coarse
Grained Web Grained Web
Service Service
Operations Operations
Fine Grained Fine Grained
Object and Object and
database calls database calls
Composition Platform
Composite Applications
Applications composed of multiple service building blocks
Composed, not built
Cut across functional silos
Composite Application Composite Application
Portal Devices Office Other
Existing
Systems
Benefits of SOA
Today
Business
Issues
Increased
Customer
Focus
Outdeliver the
Competition
Get the most
value for your
investment
Technical Issues
Integration costs
Development time
Future proof against
new technologies
Heterogeneous
environment
Support new
devices
Shift To Service Orientation
Connections = cost
Function oriented
Build to last
Prolonged
development
From From
To To
Connections = value
Process oriented
Build for change
Incrementally
deployed
Application silos
Tightly coupled
Object oriented
Orchestrated solutions
Loosely coupled
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
Microsofts SOA Strategy
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 Perceived as leaders even before we started even before we started
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
Create
seamless, rich
user
experiences
Connect
heterogeneous
systems
Provide
seamless and
integrated
security
Compose and
integrate
business
processes
Provide
seamless
access to
multiple data
stores
Messaging Messaging
and Services and Services
Workflow Workflow
and Process and Process
Federated
Data
Identity Identity
and Access and Access
User User
Interaction Interaction
Connected Systems
Architectural Architectural
Guidance Guidance
SQL Server SQL Server
MOM MOM
Visual Studio 2005 Visual Studio 2005
Active Active
Directory Directory
Windows Windows
Communication Communication
Foundation Foundation
BizTalk Server BizTalk Server
Office and Office and
VSTO VSTO
Microsoft SOA Enablement
Windows Communication Foundation
Unifies todays distributed technology stacks
Composable functionality
Appropriate for use on-machine, cross
machine, and cross Internet
Windows Communication
Foundation
The unified programming model for rapidly building
service-oriented applications on the Windows platform
WS-* interoperability with applications running on
other platforms
Interoperability with todays distributed stacks
Service-oriented programming model
Supports 4 tenets of service-orientation
Maximized developer productivity
Unification Unification
Productive Productive
Service Service--Oriented Oriented
Programming Programming
Interoperability Interoperability
& Integration & Integration
WS WS--**
Protocols Protocols
Service Service--
Oriented Oriented
Programming Programming
Interop Interop
Attribute Attribute--
Based Based
Programming Programming
Message Message--
Oriented Oriented
Programming Programming
Composability Composability
Extensibility Extensibility
Windows Communication Windows Communication
Foundation (WCF) Foundation (WCF)
(formerly Indigo) (formerly Indigo)
Union of Todays Stacks
[ServiceContract]
Class EnterpriseTradeApp {
[ServiceOperation]
message ExecuteTrade ();
}
Class TradeApp Class TradeApp
{{
[WebMethod] [WebMethod]
message ExecuteTrade(); message ExecuteTrade();
}}
WCF WCF Windows Communication Foundation Windows Communication Foundation
Service Model Layer Service Model Layer Messaging Layer Messaging Layer
Behaviors Behaviors Channels Channels
Transaction
Behavior
CLR Type
Integration
Instancing
Behavior
Security
Channel
HTTP
Transport
Custom
Channel
Reliable
Messaging
Queue
Transport
MSMQ
Integration
TCP
Transport
Named
Pipes
Throttling
Behavior
Error
Handling
Behavior
Concurrency
Behavior
Metadata
Behavior
Custom
Behavior
HTTP
Transport
TCP
Transport
Security
Channel
Custom
Channel
Reliable
Messaging
CLR Type
Integration
Instancing
Behavior
Transaction
Behavior
Composability in Action
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
Feature Overview
Security, Reliability, Transactions
20,379 lines
security
5,988 lines
reliable messaging
25,507 lines
transactions
Total lines
56,296
4,442 lines
infrastructure
class HelloService {
[WebMethod]
public String Hello(String Greeting) {
X509CertificateCollection collection = new
X509CertificateCollection();
IntPtr blob = Marshal.AllocHGlobal(Marshal.SizeOf(
typeof(CRYPTOAPI_BLOB)));
IntPtr data = (IntPtr)((int)blob +
Marshal.SizeOf(typeof(CRYPTOAPI_BLOB)));

SeqAckRange range = new SeqAcknRange(id, low, high );


SeqAckRange[] ranges = { range };
ReliableQueue.ProcessAcks( ranges );

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

return Greeting;
}
}
Development Productivity
Using Visual Studio .NET 2003
Development Productivity
Using Visual Studio .NET 2003 and WSE
10 lines
security
1,804 lines
reliable messaging
25,507 lines
transactions
Total lines
27,321
class HelloService {
[WebMethod]
public String Hello(String Greeting) {
foreach ( SecurityToken tok in
requestContext.Security.Tokens
{
X509SecurityToken token = tok as X509SecToken
}

SeqAckRange range = new SeqAcknRange(id,low,high );


SeqAckRange[] ranges = { range };
ReliableQueue.ProcessAcks( ranges );

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

return Greeting;
}
}
Development Productivity
Using Visual Studio 2005 and WCF (Indigo)
1 lines
security
1 lines
reliable messaging
1 lines
transactions
Total lines 3
[ServiceContract(SecureChannel, SecurityMode =Windows")]
[Reliability(Guarantees.ExactlyOnce | Guarantees.InOrder)]
[ServiceContract]
class HelloService
{
[ServiceOperation(TransactionFlowAllowed = true)]
String Hello(String Greeting)
{
return Greeting;
}
Contract Policy (WS Contract Policy (WS--Policy) Policy)
Requires WS Requires WS--Security, Trust, SCT Security, Trust, SCT
Requires use of TCP SOAP binding Requires use of TCP SOAP binding
Class MyService Class MyService
{{
}}
int MyMethod(string arg) int MyMethod(string arg)
{{
}}
Application Code Application Code What is Exposed What is Exposed
Nothing! Nothing!
Boundaries are explicit Boundaries are explicit
[TcpTransport] [TcpTransport]
[ServiceOperation] [ServiceOperation]
[FederatedSecurity] [FederatedSecurity]
[Discoverable] [Discoverable]
Autonomy (WS Autonomy (WS--Security family, WS Security family, WS--Discovery) Discovery)
Assume any messages received are rogue Assume any messages received are rogue
Automatically announces the services existence on Automatically announces the services existence on
startup, optionally to central directory startup, optionally to central directory
Exposes endpoint that responds to Find requests Exposes endpoint that responds to Find requests
Nothing about implementation/platform exposed. Nothing about implementation/platform exposed.
Find and call the service using public standards with any Find and call the service using public standards with any
implementation. implementation.
[ServiceContract] [ServiceContract]
Contract Schema (WSDL + XSD) Contract Schema (WSDL + XSD)
Requires message body <arg> Requires message body <arg> string < string <arg> arg>
Service reply message body <return> Service reply message body <return> int < int <return> return>
How WCF implements the How WCF implements the
tenets of SOA tenets of SOA
Roadmap Provides Continuity
WCF will supersede existing
connected systems
technologies.
Other technologies continue
to co-exist, interoperate and
be supported via
support policy
WCF
ASMX
Enterprise Services
.NET Remoting
Com(+)
MSMQ
ASMX
WSE1
WSE2
WSE-n
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
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
Summary
CALL TO ACTION
Learn about SOA
Ask questions
http://blogs.msdn.com/pooyad
Use Visual Studio 2005
create web services (if you havent already, and see how
easy it is)
http://msdn.microsoft.com/vstudio/
Visual Studio 2005 Express (CD in your bags)
Keep up to date with Microsofts Architecture
Vision
http://www.architecturejournal.net/
Sign up for the Architecture Journal

You might also like