service oriented architecture - download.microsoft.com · visual studio team system edition for...
TRANSCRIPT
Service Oriented Architecture:
Right on Track
Agenda
• Defining SOA – SOA, Service Orientation, Connected Systems and how they
relate
• Benefits of SOA
• M icrosoft’s vision for S O A– 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
RealityMyth
T he only w ay you can use S O A for everything is to renam e everything to ‘S O A ’Roy Schulte, Gartner
Cutting through the SOA Hype
• Service – An endpoint that reacts to messages
• Service Orientation – An architectural paradigmthat 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
• A utonom y ≠ 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
WebServices
EDI/B2B
EAI
Distributed Computing
Web Site/Portal
Messaging
Policies
Practices
Standard Protocols
Universal Support
Low Cost
Existing AssetsBest
Practice Approach
Technology Realization
Frameworks
SOA
Service Orientation Big Picture
• Business Process View
BusinessBusinessComponentComponent
BusinessBusinessComponentComponent
Business Business ProcessProcess
Composite Composite ApplicationApplication
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
Composition Platform
Composite Applications
• Applications composed of multiple service building blocks– Composed, not built– Cut across functional silos
Composite ApplicationComposite Application
Portal Devices Office Other
ExistingSystems
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
FromFrom ToTo• Connections = value• Process oriented • Build for change• Incrementally
deployed
• Application silos• Tightly coupled• Object oriented
• Orchestrated solutions• Loosely coupled• Message oriented
SOA Business BenefitsCost
• 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 BenefitsProductivity
• Increased employee productivity– Unlock data– Built on existing skills– Consolidate Duplicate Functionality
SOA Business BenefitsPartnership
• 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 BenefitsAgility
• 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 icrosoft’s SO A 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 w e started …even before w e 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
MessagingMessagingand Servicesand Services
WorkflowWorkflowand Processand Process
FederatedData
IdentityIdentityand Accessand Access
UserUserInteractionInteraction
Connected Systems
ArchitecturalArchitecturalGuidanceGuidance
SQL ServerSQL Server
MOMMOM
Visual Studio 2005Visual Studio 2005
Active Active DirectoryDirectory Windows Windows
Communication Communication FoundationFoundation
BizTalk ServerBizTalk Server Office and Office and VSTOVSTO
Microsoft SOA Enablement
Windows Communication Foundation
• U nifies today’s distributed technology stacks• Composable functionality• Appropriate for use on-machine, cross
machine, and cross Internet
Windows Communication Foundation
“The unified program m ing m odel for rapidly building service-oriented applications on the W indow s platform ”
• WS-* interoperability with applications running on other platforms
• Interoperability w ith today’s distributed stacks
• Service-oriented programming model• Supports 4 tenets of service-orientation• Maximized developer productivity
UnificationUnification
ProductiveProductiveServiceService--OrientedOriented
ProgrammingProgramming
Interoperability Interoperability & Integration& Integration
WSWS--**ProtocolsProtocols
ServiceService--OrientedOriented
ProgrammingProgrammingInteropInterop
AttributeAttribute--BasedBased
ProgrammingProgramming
MessageMessage--OrientedOriented
ProgrammingProgramming
ComposabilityComposabilityExtensibilityExtensibility
Windows CommunicationWindows CommunicationFoundation (WCF)Foundation (WCF)(formerly Indigo)(formerly Indigo)
U nion of Today’s S tacks
[ServiceContract]Class EnterpriseTradeApp {
[ServiceOperation]message ExecuteTrade ();
}
Class TradeApp Class TradeApp {{
[WebMethod][WebMethod]message ExecuteTrade();message ExecuteTrade();
}}
WCF WCF –– Windows Communication FoundationWindows Communication Foundation
Service Model LayerService Model Layer Messaging LayerMessaging Layer
BehaviorsBehaviors ChannelsChannels
Transaction Behavior
CLR Type Integration
Instancing Behavior
SecurityChannel
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
SecurityChannel
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 OverviewSecurity, Reliability, Transactions
20,379 linessecurity
5,988 linesreliable messaging
25,507 linestransactions
Total lines56,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 ProductivityUsing Visual Studio .NET 2003
Development ProductivityUsing Visual Studio .NET 2003 and WSE
10 linessecurity
1,804 linesreliable messaging
25,507 linestransactions
Total lines27,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 ProductivityUsing Visual Studio 2005 and WCF (Indigo)
1 linessecurity
1 linesreliable messaging
1 linestransactions
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 (WSContract Policy (WS--Policy)Policy)•• Requires WSRequires WS--Security, Trust, SCT Security, Trust, SCT •• Requires use of TCP SOAP bindingRequires use of TCP SOAP binding
Class MyServiceClass MyService{{
}}
int MyMethod(string arg)int MyMethod(string arg){{}}
Application CodeApplication Code What is ExposedWhat is Exposed
Nothing!Nothing!Boundaries are explicitBoundaries are explicit
[TcpTransport][TcpTransport]
[ServiceOperation][ServiceOperation]
[FederatedSecurity][FederatedSecurity][Discoverable][Discoverable]
Autonomy (WSAutonomy (WS--Security family, WSSecurity family, WS--Discovery)Discovery)•• Assume any messages received are rogueAssume any messages received are rogue•• A utom atically announces the service’s existence on A utom atically announces the service’s existence on startup, optionally to central directorystartup, optionally to central directory•• Exposes endpoint that responds to Find requestsExposes 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 SOAtenets 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 .NETRemoting extensibilitysuch 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 haven’t already, and see how
easy it is)
– http://msdn.microsoft.com/vstudio/• Visual Studio 2005 Express (CD in your bags)
• K eep up to date w ith M icrosoft’s A rchitecture Vision– http://www.architecturejournal.net/
• Sign up for the Architecture Journal