united kingdom regional architect forum. connected systems microsoft’s architectural strategy mike...
DESCRIPTION
Business Collaboration is Complex Customers Suppliers Employees Partners Suppliers Employees CustomersPartnersTRANSCRIPT
United Kingdom Regional Architect Forum
Connected SystemsConnected SystemsMicrosoft’s Architectural StrategyMicrosoft’s Architectural Strategy
Mike BurnerArchitect, Platform Strategy GroupMicrosoft Corporation
Business Collaboration is ComplexBusiness Collaboration is Complex
Customers
Suppliers Employees
Partners
Suppliers
Suppliers
Employees
Customers
Partners Partners
Complexity of Value ChainsComplexity of Value Chains
Within an Organization Diverse information models Heterogeneous platforms Volatility of business processes Evolving lifecycle of enterprise information
Across Organizations (All of the above)2 + Incompatible models for authentication and
authorization Unreliable transport Unclear transaction models
Addressing Value Chain ComplexityAddressing Value Chain Complexity Common Framework
Messages to express functional requirements Protocols to support operational (non-functional)
requirements Encapsulation
Allow continuous improvement behind interface Promote centers of excellence
Flexibility Diverse and evolving business processes Diverse and evolving compliance requirements
Federation Organizations control their own assertions Trust models must support “guaranteed assertions”
1. Develop Product / Service 2. Generate Demand
5. Collaboration
3. Fulfill Demand 4. Plan & Manage Enterprise
Enterprise
3.1. Provide Service
3.2. Advanced Planning
3.3. Procurement
3.4. Produce Product
3.5. Logistics
3.3.1 Sourcing and Supplier Contract Management
3.3.3 Receiving of Indirect / Capital Goods and Services
3.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
CreatePurchase
Requisitions
Request ResourcesLevel 43. Fulfill Demand3.3 Procurement3.3.2 Purchasing- RequestResources - Create Purchase Requisitions
Capabilities Map:Capabilities Map:
A Component Model for BusinessA Component Model for Business
1. Develop Product / Service
2. Generate Demand
5. Collaboration
3. Fulfill Demand
4. Plan & Manage Enterprise
Customers
Logistics Providers
Financial Providers
Enterprise
Suppliers
Channel Partners
Governments
Processes: Traversing CapabilitiesProcesses: Traversing Capabilities
1. Develop Product / Service
2. GenerateDemand
5. Collaboration
3. Fulfill Demand
4. Plan & Manage Enterprise
Customers
Logistics Providers
Financial Providers
Enterprise
Suppliers
Channel Partners
Governments
Partner Capabilities
1. Develop Product / Service
2. GenerateDemand
5. Collaboration
3. Fulfill Demand
4. Plan & Manage Enterprise
Customers
Logistics Providers
Financial Providers
Enterprise
Suppliers
Channel Partners
Governments
3.5.1Order Fulfillment
3.5.2.3.1Shipping
2.3.3.1.1Process Order
Accessing External CapabilitiesAccessing External Capabilities
My Capabilities
Conceptual Value ChainConceptual Value Chain
Completeshared
Component ManufacturerPartialshared
Logistics Provider
Assembly Manufacturer
Wholesaler
Retailer
Collaboration over Information SetsCollaboration over Information Sets
Conceptually, a business process “completes” an information set Infoset models shared view of goods, services,
documents Infoset establishes activities to be completed Infoset models exceptions and resolutions Infoset is proof of activity completion
Process orchestration leverages resources to complete infoset Initially skeletal Each “hop” adds information
Infrastructure “hops” crucial to traceability
Service OrientationService Orientation Business collaboration mandate drives push
towards service orientation SOA is not an end in itself
Service orientation encapsulates and componentizes complex processes and systems Clear boundaries Separation of interface and implementation
Momentum of Web services crucial to success! XML + XSD + XML-infoset + Community Vendor-supplied platform more cost effective Cross-platform interoperability
Three (Compatible) Views of SOAThree (Compatible) Views of SOA
Solution view System built from autonomous services Services are built to last Systems are built to change
Portfolio view An approach to factoring and managing an
organizational application portfolio Promotes consistency of information management And agile solution development
Cross-organizational view SOA enables structured business collaboration
Contracts
Four Tenets of ServicesFour Tenets of Services Services are
autonomous units of application logic
Boundaries are explicit
Services share schema and contract, not class
Service compatibility is determined based on policy
Logic
Service
PolicyExpressing
capabilities & requirements
Message2 Message1
AgendaAgenda The Business Architecture behind SOA Patterns of Service-Oriented Solutions Challenges of Service Orientation A Platform for Connected Systems Tools for Connected Systems Call to Action
AgendaAgenda The Business Architecture behind SOA Patterns of Service-Oriented Solutions Challenges of Service Orientation A Platform for Connected Systems Tools for Connected Systems Call to Action
Key PatternKey Pattern
Information-Set CompletionInformation-Set Completion Applications model value chains Process instances “complete” a
(semi-)shared information set Service invocations encapsulate individual
capabilities Services may need to engage users
Information sets may be mined by subsequent business processes
MapProductionCapacityMapProductionCapacityArrangeShipmentArrangeShipment
Manufacturing Manufacturing PlanningPlanning
ApplicationApplication
IndustryStandardSchema
String Purchaser;String Purchaser;String Provider;String Provider;Complex ContractID;Complex ContractID;BillOfGoods Requirements;BillOfGoods Requirements;ItemizedOffer PriceQuote;ItemizedOffer PriceQuote;
Updated Contract with Manufacturer
ProcessImprovement
Study
Information-Set CompletionInformation-Set Completion
An Entity LifecycleAn Entity Lifecycle
Instance of a Purchase
Order
CircuitCityCircuitCityMicrosoftMicrosoft039474067X039474067X10,000 XBoxes, 2000 S-controllers, ...10,000 XBoxes, 2000 S-controllers, ...Prices, per existing agreementsPrices, per existing agreements
SubmitPurchaseRequestSubmitPurchaseRequestRequestShipListRequestShipList
PurchasingPurchasingApplicationApplication
CollaborativelyExtended
Schema
Distribution DList;Distribution DList;Partials ShipList;Partials ShipList;Settlements PaymentList;Settlements PaymentList;ItemIDs RFIDList;ItemIDs RFIDList;
LocallyExtended
Schema
Production RunList;Production RunList;Delivery LogisticsList;Delivery LogisticsList;
Instance of a Purchase
Order
CircuitCityCircuitCityMicrosoftMicrosoft039474067X039474067X10,000 XBoxes, 2000 S-controllers, ...10,000 XBoxes, 2000 S-controllers, ...Prices, per existing agreementsPrices, per existing agreements
HandleExceptionHandleExceptionProjectProductionImpactProjectProductionImpact
ManufacturingManufacturingManagementManagement
ApplicationApplicationGraphProcessExceptionsGraphProcessExceptionsUpdateProcessModelUpdateProcessModel
ProcessProcessModelingModeling
ApplicationApplication
Information-Set CompletionInformation-Set Completion
Service View of ProcessesService View of Processes
Entity Services
Process Services
Infrastr
ucture Servic
es
Clients and Agents
Activity Services
Key PatternKey Pattern
Information IntegrationInformation Integration Achieve consistent handling of key
organizational data Develop unified models for key real-
world entities e.g., “customer”
Establish procedures for “aggregating” entities from back-end systems for processing... ...and “disaggregating” them for
persistence
Information IntegrationInformation Integration
Create Canonical SchemasCreate Canonical Schemas Model the Entities
Create a static, canonical schema Agree on XML namespaces Only expose XSD data types Standardize on Doc/Literal Agree on naming conventions Keep it simple
Canonical Schema Represents the authoritative, common definition Other representations can be derived from this
It is not one large XML-Schema – really a bucket of schemas that collectively form the canonical schemaReutersReuters Citigroup
Citigroup
Information IntegrationInformation Integration
Schema RationalizationSchema RationalizationSQL ServerSQL Server(in house)(in house)
SiebelSiebel(commercial)(commercial)
OtherOther(J2EE based)(J2EE based)
ContactTb
PK CntctI
FK2 CompanyIFirsNameMiddleNameLastNameSpouseNameAlteranateNameSalutationHobbiesInterestFunctionsEventsKeyContactFlgDecisionMakerFlgCitivisionIDType
FK3 BusinessAddressIFK4 OtherAddressIFK5 HomeAddressIFK9 CellPhoneI
EmailEmail3Comments
FK7 LastModifiedByLastModifiedTimeDeletedFlgDeleteComment
FK6 OwnerCreationTime
FK8 CreatedByFK1 SystemI
ContactSchema
PK CntctI
KnownAsMIIndexLastAlteranateNameSalutationKeyContactFlgDecisionMakerFlgTypeBusinessAddressOtherAddressHomeAddressMobileEmailEmailOtherCommentsLastModifiedByLastModifiedTimeDeletedFlgDeleteCommentOwnerCreationTimeCreatedOwnerSiebelIndex
MyBusinessContacts
PK ContactID
FirstMiddleLastAlteranateNameSalutationBusinessAddressOtherAddressHomeAddressMobileEmailEmailOtherCommentsLastModifiedByLastModifiedTimeOwnerCreationTimePrimaryContactOpportunityIndexEmail2Email3
+Save(in overwrite : bool)
-ID : int-PrimaryCompanyI : int-FirstName : string-MiddleName : string-LastName : string-SpouseName : string-AlternateName : string-Associations : string-Salutation : string-HobbiesInterests : string-FunctionsEvents : string-KeyContact : bool-DecisionMaker : bool-WhoKnowsMe : UserCollection-Assistants : AssistantCollection-CitiVisionID : string-Attachments : AttachmentCollection-RecentMailings : AttachmentCollection-BusinessAddress : Address-OtherAddress : Address-HomeAddress : Address-CellPhone : Phone-Email : string-Email2 : string-Email3 : string-BLOBData : string
«implementation class»Contact
Key PatternKey Pattern
Integrating “Non-Service” ComponentsIntegrating “Non-Service” Components The world is full of independently
designed systems Differences happen all the way from the
hardware though the OS and middleware, up to the application semantics
Rationalizing these disparate systems is a huge challenge
Recommendation Model non-service systems according to
the business capabilities they deliver Encapsulate them behind service facades
Integrating “Non-Service” ComponentsIntegrating “Non-Service” Components
Service FacadesService Facades Simulate Request/Response or One way
Interaction over the non-service access model Transform incoming data (canonical schemas)
to a representation that non-service components can understand
Use adapters Message-based
– SAP RFC/IDOC– Queues based (MQSeries to access mainframe)– Pub/Sub based (e.g. SAP)
API-based– SAP’s DCOM Component Connector– JDE’s OneWorld API
File-based/FTP
EDI MSMQIndigo Web Services
RoleManageme
nt
ProtocolBridging
EntityAggregatio
n
Orchestration
ProcessMonitoring
EventEscalation
PolicyEnforceme
nt
Integrating “Non-Service” ComponentsIntegrating “Non-Service” Components
Enterprise Message BrokerEnterprise Message Broker
Key PatternKey Pattern
Context-Sensitive RoutingContext-Sensitive Routing Content and context of a service
request determines the “pipeline” and endpoint for the message
Enables service-level differentiation Routing policy could be based on class-of-
service attributes Enables run-time “aspect weaving”
Context-Sensitive RoutingContext-Sensitive Routing
Dynamic Endpoint SelectionDynamic Endpoint Selection
RedmondRedmond LondonLondon
File ExpensesUDDI File Expenses
VendorVendor
File Expenses
Context-Sensitive Routing Context-Sensitive Routing
Aspect-weaving withAspect-weaving with Pipelines Pipelines Address cross-cutting
concerns with interception services
May be pipelined for efficiency and manageability
Interception chain dependent on context and content, e.g., Regulatory compliance Transaction value
Service
Service
Message Processing Infrastructure
Message Processing Infrastructure
Serialize
Encrypt
Sign
Deserialize
Authenticate
AuthorizeAudit
Log
Reliablemessaging
AgendaAgenda The Business Architecture behind SOA Patterns of Service-Oriented Solutions Challenges of Service Orientation A Platform for Connected Systems Tools for Connected Systems Call to Action
Service-Oriented Analysis IssuesService-Oriented Analysis Issues Approach and
methodology Entity identification Entity factoring Service
identification Service factoring Process
specification Endpoint
identification Role mapping SLA specification …
Entity Services
Process Services
Infrastr
ucture Servi
ces
Clients and Agents
TechnologyArchitecture
InformationArchitecture
Activity Services
Service Design IssuesService Design Issues Schema definition Message definition Contract definition Message handling Process management Transaction model Operational compliance Exception handling Invocation and service
agents Message to object
mapping Interoperability …
Contracts
Service
Service
Process
DocumentA
DocumentC-1
DocumentC-2
DocumentB
EitherC-1 or C-2
Process
Service Operations IssuesService Operations Issues Policy definition Security Access control Monitoring Management QoS and SLA
enforcement Versioning Scalability Dealing with
unreliability Exception routing Caching ...
AgendaAgenda The Business Architecture behind SOA Patterns of Service-Oriented Solutions Challenges of Service Orientation A Platform for Connected Systems Tools for Connected Systems Call to Action
Web ServicesWeb ServicesIntegrationIntegration
AS400AS400
OS390OS390LinuxLinux
UnixUnix
Microsoft Integrated Microsoft Integrated PlatformPlatform
Integrated InnovationIntegrated InnovationIntegration Across PlatformsIntegration Across Platforms
Web Services ArchitectureWeb Services Architecture
Transports
XML
Messaging
Security Reliability Transactions
Met
adat
a
Management BusinessProcess ...
Application Structure
Foundation
Devices Mobile P2P EAI B2B Grid
IndigoIndigo A framework for developing connected systems
Programming model Communications infrastructure
Unifies programming and administration models for ASMX web services .NET Remoting .NET Enterprise Services
Deep support for standard protocols WS-I Profile 1 (XML, XSD, SOAP, WSDL, UDDI) WS-* protocols
Indigo ArchitectureIndigo Architecture
Connector
Communications Manager (Port)
Transport Channels(IPC, HTTP, TCP…)
Channels (Datagram, Reliable, Peer, …)
Policy Engine
MessageEncoder
ChannelSecurity
Service Model
Hosting Environments
Instance Manager
Context Manager
TypeIntegration
ServiceMethods
DeclarativeBehaviors
TransactedMethods
ASP.NET .container .exe NT Service DllHost
Messaging Services
System Services
Queuing
Routing
Eventing
…
Transaction
Federation
…
Indigo MessagingIndigo Messaging Standardized approach to reliable
messaging Bridges the gap between diverse
proprietary protocols Complex message routing
Pipelines of services Rules-based response routing
Run-time discovery Content- and context-sensitive endpoint
selection
Indigo Service ModelIndigo Service Model Manages information fundamentals
Validation against schemas Message-based security Produces trustable validated infoset
Supports contextual metadata Conversational coordination
Transactions Tunneling of ACID transactions Compensation-based transactions are a
work in progress
Indigo ConnectorsIndigo Connectors Unifies model for diverse channels
Datagram Reliable Peer-to-peer
Abstracts transport complexity Enforces channel-sensitive policy
Including transport-based security
AgendaAgenda The Business Architecture behind SOA Patterns of Service-Oriented Solutions Challenges of Service Orientation A Platform for Connected Systems Tools for Connected Systems Call to Action
A Crisis of ComplexityA Crisis of ComplexityAutomate business processesValue chains with partnersCustomer and supplier self service Improve ROI of ITLower operating costsCut time to marketService oriented architectureWeb Services, messaging, contractsSecurityCaching and state managementDeployment policies & constraintsHeterogeneous platformsApplication servers & standardsSchemas and databasesCode and attributesConfiguration filesProject structuresPhysical server configurations
?NewBusinessRequirements
NewApplicationArchitecture
EvolvingPlatformTechnology
.asmx files.asmx files .asmx code behinds.asmx code behinds source code source code Statements and Statements and attributesattributes
XML ConfigurationXML ConfigurationFiles and schemasFiles and schemas(e.g. WSDL files)(e.g. WSDL files)
Project Files and Project Files and templatestemplates
Deployment PoliciesDeployment PoliciesAnd PackagesAnd Packages
?«entity»Auction
+ categoryUid : String+ creditCardAccount : String+ creditCardExpiration : Long+ creditCardName : String+ creditCardType : String+ endTime : Long+ itemUid : String+ minimumBidIncrement : Float+ sellerUid : String+ startingPrice : Float+ startTime : Long+ status : String+ timezoneUid : String+ uid : String
+ setValues ( )+ getValues ( )
«entity»Bid
+ amount : Float+ auctionUid : String+ buyerUid : String+ cancelExplanation : String+ date : Long+ status : String+ uid : String
«entity»Seller
«entity»User
+ address : String+ city : String+ country : String+ email : String+ groupId : String+ password : String+ secretNumber : Integer+ state : String+ status : String+ uid : String+ userId : String+ zip : String
«entity»Buyer
«entity»Credit Card
+ accountNumber : String+ cardType : String+ expirationDate : Long+ nameOnCard : String+ uid : String+ userUid : String+ setValues ( )+ getValues ( )
1 1...
0..11
1..*
«derived»
0..1
1
Scattered Concepts …Scattered Concepts …
.asmx files.asmx files .asmx code behinds.asmx code behinds source code source code Statements and Statements and attributesattributes
XML ConfigurationXML ConfigurationFiles and schemasFiles and schemas(e.g. WSDL files)(e.g. WSDL files)
Project Files and Project Files and templatestemplates
Deployment PoliciesDeployment PoliciesAnd PackagesAnd Packages
……Replaced By A Holistic ViewReplaced By A Holistic View
Web Service Framework
Merc.Merc. StageStage ShuttleShuttleJobJob
CacheCache
HTTPHTTP
SQL Feed Feed StoreStore DSSDSS
FTPFTP
Dynamic Systems InitiativeDynamic Systems Initiative
ResourcesResourcesRequiredRequired
OperationalOperationalPoliciesPolicies
OperationsOperationsCapabilitiesCapabilities
Create a Create a definition of definition of
a new or a new or existing existing SystemSystem
Operate the Operate the System based System based
on its on its definitiondefinition
Automatically allocate and Automatically allocate and configure resources using its configure resources using its
definitiondefinition
STORAGESTORAGESERVERSSERVERS NETWORKINGNETWORKINGSDM DocumentSDM Document
Design for Operations
Dynamic Data
Center
System Definition Model LayersSystem Definition Model Layers
Network TopologyNetwork Topology& Operating Systems& Operating Systems
HardwareHardware
SystemSystemDefinitionDefinition
ModelModelApplicationApplication
HostsHosts
ApplicationsApplications
Whidbey DSI DesignersWhidbey DSI Designers
A logical data A logical data center designercenter designer
An applicationapplication designer
ApplicationApplicationHostsHosts
ApplicationsApplications
A system hosting designerA system hosting designer
SystemSystemDefinitionDefinition
ModelModel
AgendaAgenda The Business Architecture behind SOA Patterns of Service-Oriented Solutions Challenges of Service Orientation A Platform for Connected Systems Tools for Connected Systems Call to Action
Embracing ServicesEmbracing Services Think in terms of capabilities
CoEs own capabilities Services provide access to excellence Value chains link capabilities
Model information sets for collaboration Play your part in building the vocabulary Think about the complete information
lifecycle Embrace protocol standardization
Use extensibility mechanisms to address organization-specific needs
United Kingdom Regional Architect Forum