Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Soa Business And Technical Overview Presentation (Reed003707)

361 views

Published on

Published in: Technology, Business
  • Be the first to comment

  • Be the first to like this

Soa Business And Technical Overview Presentation (Reed003707)

  1. 1. Services Orientation <Presenter>
  2. 2. Goal of Today <ul><li>Discuss Strategy and build consensus </li></ul><ul><li>for the continued evolution of a flexible </li></ul><ul><li>Enterprise Architecture. </li></ul>
  3. 3. Agenda <ul><li>Flexible IT, Better Strategy </li></ul><ul><li>Designing for Business Processes </li></ul><ul><li>Developing for Business Solutions </li></ul><ul><li>Challenges Ahead </li></ul>
  4. 4. Agenda <ul><li>Flexible IT, Better Strategy </li></ul><ul><li>Designing for Business Processes </li></ul><ul><li>Developing for Business Solutions </li></ul><ul><li>Challenges Ahead </li></ul>
  5. 5. Flexible IT, Better Strategy The McKinsey Quarterly, 2003 Number 4 <ul><li>IT architecture determines the agility with which companies can carry out strategy </li></ul><ul><ul><li>The difficulty and cost of modifying today's IT architectures can be so high that some companies would rather abandon new strategic initiatives than make a single change to the applications they already have in place. </li></ul></ul><ul><ul><li>Service-Oriented Architectures promise to reduce if not remove the current obstacles. </li></ul></ul><ul><li>Information technology, far from lacking strategic worth, determines strategic value </li></ul>
  6. 6. Business Processes Rule This is the Fundamental Assumption <ul><li>Everything Enterprise IT does is in the service of some business process </li></ul><ul><li>Service-Oriented Architecture (SOA) is about making business processes: </li></ul><ul><ul><li>Better </li></ul></ul><ul><ul><li>Easier to change </li></ul></ul><ul><ul><li>Cheaper to create </li></ul></ul><ul><ul><li>Faster to Assemble </li></ul></ul>David Chappell: Service Oriented Architecture: What’s Next (www.davidchappell.com)
  7. 7. Service Oriented Architecture Defining the Term <ul><li>Flexible software providing Services leading to agile business processes. </li></ul><ul><li>Services are a technology agnostic end point that either answers a question or raises a notification when a meaningful event occurs. </li></ul>
  8. 8. What does SOA mean: <ul><li>To the CIO </li></ul><ul><ul><li>means for protecting existing IT investments without inhibiting the deployment of new capabilities. </li></ul></ul><ul><li>To the Business Analyst </li></ul><ul><ul><li>means of bringing information technology investments more in line with business strategy. </li></ul></ul><ul><li>To the Developer </li></ul><ul><ul><li>Means for creating dynamic collaborative applications. </li></ul></ul><ul><li>To the IT Manager </li></ul><ul><ul><li>means for effectively integrating the diverse systems typical of modern enterprise data centers. </li></ul></ul><ul><li>To Microsoft </li></ul><ul><ul><li>a crucial prerequisite to creating connected systems. </li></ul></ul>
  9. 9. Service Orientation Basic Consumer/Provider view Service Façade Service Consumers Service Provider How the application is constructed and hosted is independent of the service implementation SQL App Internals
  10. 10. Shift To Service Orientation <ul><li>Integrations = cost </li></ul><ul><li>Function oriented </li></ul><ul><li>Build to last </li></ul><ul><li>Prolonged development </li></ul><ul><li>Integrations = value </li></ul><ul><li>Process oriented </li></ul><ul><li>Build for change </li></ul><ul><li>Incrementally deployed </li></ul>From To <ul><li>Application silos </li></ul><ul><li>Tightly coupled </li></ul><ul><li>Object oriented </li></ul><ul><li>Orchestrated solutions </li></ul><ul><li>Loosely coupled </li></ul><ul><li>Message oriented </li></ul>
  11. 11. Enterprise Flexibility Aggregation Business Process Management Identity and Access Mgmt Web Services Management Application Monitoring Testing and Performance Presentation Services Data and Capabilities exposed as Services… … customized via shared middle-tier middleware… … are aggregated to fit user needs Process Aggregation Single Sign On Two-way integration User Specific Experiences Infrastructure Integration Management Packaged Applications Custom Applications Legacy Warehouse Operations Executive Marketing
  12. 12. Key Attributes <ul><li>Flexible Sourcing </li></ul><ul><li>Legacy Rationalization </li></ul><ul><ul><li>Hidden from users </li></ul></ul><ul><li>Service Reuse </li></ul><ul><li>Customization in Middle-Tier </li></ul><ul><ul><li>Services remain Generic </li></ul></ul><ul><li>Process and Data Integration </li></ul>
  13. 13. SOA is all about ROI Custom Apps PeopleSoft Point to Point Integrations are costly to develop and maintain … Services Integrations add Value by enabling Flexibility Billing Order Mgmt
  14. 14. Why SOA Makes Sense: Business Benefits <ul><li>Services are a Language to Discuss Business Processes </li></ul><ul><ul><li>So IT people can talk with them more easily about solutions </li></ul></ul><ul><li>Business processes become explicit </li></ul><ul><ul><li>So they can more easily be understood and improved </li></ul></ul><ul><ul><li>Applications or business processes might be more easily replaced </li></ul></ul><ul><ul><li>Because they’re well-defined and discrete </li></ul></ul>
  15. 15. Why SOA Makes Sense: Technical Benefits <ul><li>Deployment is explicit </li></ul><ul><ul><li>Bridges Infrastructure and Development </li></ul></ul><ul><li>Building business processes is faster and cheaper </li></ul><ul><ul><li>Services can more easily be reused </li></ul></ul><ul><ul><li>Applications can expose their services in a standard way </li></ul></ul><ul><li>Applications can be exposed more easily to diverse clients </li></ul><ul><ul><li>Windows clients, Web Clients, Host-based clients, External Clients, etc… </li></ul></ul>
  16. 16. Agenda <ul><li>Flexible IT, Better Strategy </li></ul><ul><li>Designing for Business Processes </li></ul><ul><li>Developing for Business Solutions </li></ul><ul><li>Challenges Ahead </li></ul>
  17. 17. Designing for Business Processes Thinking in Services Orientation <ul><li>Business Services </li></ul><ul><li>Conceptual Shifts </li></ul><ul><li>Capabilities Analysis </li></ul><ul><li>Enterprise Services Scenarios </li></ul>
  18. 18. Designing Business Processes Identify Business Services Begin Success Fail
  19. 19. Business Services Steps in the Larger Business Process <ul><li>Enterprises Need Business-Services </li></ul><ul><ul><li>Projects One or More Services to the World Outside </li></ul></ul><ul><ul><li>Business Process for a specific aspect </li></ul></ul><ul><ul><li>Encapsulates Some Database Resident Data </li></ul></ul><ul><ul><li>Implemented with Business-Logic </li></ul></ul>Data SQL Business Service Services
  20. 20. Composite Business-Services Processes define Solutions <ul><li>A Business-Service May Be Implemented by Many Business-Services </li></ul><ul><li>Must Look Like a Single Business-Service </li></ul><ul><ul><li>Can’t Tell from the Outside </li></ul></ul>Business-Service Biz-Svc Biz-Svc Biz-Svc Biz-Svc Biz-Svc Biz-Svc Biz-Svc Communication with the world outside
  21. 21. Capabilities Analysis Externalizing the Capabilities and Data Please Do this on my behalf Please provide me some data. Everyone! This data changed. OK, I’ll get back to you when it’s done. OK, here’s what I’ve got. I completed successfully SQL App Internals
  22. 22. Four Tenets of SOA Rules to Design By <ul><li>Boundaries are explicit </li></ul><ul><li>Services are autonomous </li></ul><ul><li>Services share schema and contract, not class </li></ul><ul><li>Service compatibility is determined based on policy </li></ul>
  23. 23. Conceptual Shift: Data Questions to Consider <ul><li>What system is Authoritative for this data? </li></ul><ul><ul><li>How does this version over time? </li></ul></ul><ul><ul><li>Is this data Idempotent? </li></ul></ul><ul><li>What external data is needed by which systems? </li></ul><ul><ul><li>What is the SLA for this data of this data and why? </li></ul></ul><ul><li>How often does external data change? </li></ul><ul><ul><li>What aspects of that change are meaningful? </li></ul></ul><ul><ul><li>How fresh does this need to be in other systems? </li></ul></ul><ul><ul><ul><li>At what level of detail? </li></ul></ul></ul><ul><li>What relationships exist between data? </li></ul><ul><ul><li>What happens when not everything can be changed? </li></ul></ul><ul><ul><li>What happens when changes fail? </li></ul></ul>
  24. 24. Conceptual Shift: Capabilities Questions to Consider <ul><li>What are the discrete steps that make up this Business Solution? </li></ul><ul><li>What are the most important things an application does? </li></ul><ul><li>What are the scenarios where other applications might request another app to perform an action? </li></ul><ul><li>What are the most reusable capabilities an application provides? </li></ul><ul><li>On whose behalf do these actions need to take place? </li></ul><ul><li>Why might a request be rejected? </li></ul><ul><li>What SLA is required for the activity? </li></ul>
  25. 25. Business Services Impact Enables Agility <ul><li>Solutions Focus </li></ul><ul><li>Flexible and Composable Applications </li></ul><ul><li>Ability to rapidly Adapt systems to the needs of the Business </li></ul><ul><li>Compose new ways of doing things by assembling new processes over existing services </li></ul>
  26. 26. Enterprise Services Scenarios: Integration Patterns <ul><li>Policy and Business Interest Manager </li></ul><ul><li>Business Entities and PeopleSoft </li></ul><ul><li>Policy and Business Entities </li></ul><ul><li>Publishing Endorsable Events </li></ul>
  27. 27. Policy and Business Interests Request Response Pattern <Body> <LocationList> <Location Id=‘1231’ Name = ‘HQ’ … /> <Location Id=‘5377’ Name = ‘Div’ … /> <Location Id=‘9621’ Name = ‘Site’ … /> </LocationList> </Body> Business Interest Manager A Policy A <Message id=‘ 200 ’> <Request Contract=‘ LocationList ’ Version=‘ 2.2’> <Customer Id=‘AllPeril’/> </Request> </Message> Service Manager <Message id=‘761’> <Response To=‘ 200 ’ Contract=‘ LocationList ’ Version=‘ 2.2 ’> <Customer Id=‘AllPeril’/> </Response> </Message> Stored Procedures User Interface Business Facade Business Logic Common Services Data Storage Typed Datasets
  28. 28. Business Entities and PeopleSoft Publish Subscribe Pattern PeopleSoft A BizTalk Business Entities A <Message id=‘279’> <Notify Contract=‘ContactInfo’ Version=‘ 1.7 ’> <Action Type=‘Update’ Id=‘1990124’ EntityId=‘197811’/> </Notify> <Body> <ContactInfo Type=‘Original’ Version=‘281’ …. /> <ContactInfo Type=‘New’ Version=‘282’ …. /> </Body> </Message> Other Service Other Service <Message id=‘507’> <Notify Contract=‘ContactInfo’ Version=‘ 1.2 ’> <Action Type=‘Update’ Id=‘1990124’ EntityId=‘197811’/> </Notify> <Body> <ContactInfo Type=‘Original’ Version=‘281’ …. /> <ContactInfo Type=‘New’ Version=‘282’ …. /> </Body> </Message>
  29. 29. Policy and Business Entities Notification and Conversation Pattern Policy A BizTalk Other Service Other Service Business Entities A <Message id=‘381’> <Notify Contract=‘AddressInfo’ Version=‘1.8’> <Action Type=‘Add’ Id=‘ 171021 ’ EntityId=‘ 197811 ’/> </Notify> </Message> <Message id=‘ 200 ’> <Request Contract=‘AddressInfo’ Version=‘2.2’> <EntityId=‘ 197811 ’/> <Add Id=‘ 171021 ’/> </Request> </Message> <Message id=‘761’> <Response To=‘ 200 ’ Contract=‘AddressInfo’ Version=‘2.2’> <EntityId=‘ 197811 ’/> <Add Id=‘ 171021 ’/> </Response> <Body> <AddressInfo Id=‘ 197811 ’ LocationName = ‘HQ’> <Street Id=‘5377’>201 Jones Road</Street> … . <Country Id=‘ 712 ’/> <AddressInfo/> </Body> </Message> <Message id=‘ 201 ’> <Request Contract=‘CountryInfo’ Version=‘4.5’> <CountryInfo Id=‘ 712 ’/> </Request> </Message> <Message id=‘762’> <Response To=‘ 201 ’ Contract=‘CountryInfo’ Version=‘4.5’> <CountryInfo Id=‘ 712 ’/> </Response> <Body> <CountryInfo Id=‘ 712 ’ Name = ‘<Name>’> <GPSInfo Latitude=’48.17’ Longitude=’91.44’ /> <Capital Name=‘<Name> City’ …/> </CountryInfo> </Body> </Message>
  30. 30. Publishing Endorsable Events Database Isolation Pattern RATS CSS Database Policy Service Interface Stored Procedures Data Storage Models Common Framework Commands A User Interface
  31. 31. Agenda <ul><li>Flexible IT, Better Strategy </li></ul><ul><li>Designing for Business Processes </li></ul><ul><li>Developing for Business Solutions </li></ul><ul><li>Challenges Ahead </li></ul>
  32. 32. Developing for Business Solutions <ul><li>CSS Application Architecture 1.0 </li></ul><ul><li>CSS Application Architecture 2.0 </li></ul>
  33. 33. CSS Application Architecture 1.0 <ul><li>Separated the layers of an application internally </li></ul><ul><li>Designed for potential reuse </li></ul><ul><li>Façade provides security </li></ul>Stored Procedures User Interface Business Facade Business Logic Common Services Data Storage Typed Datasets <ul><li>Dataset changes rippled through the layers </li></ul><ul><li>Significant amount of code in stored procedures </li></ul>
  34. 34. Issues with Architecture 1.0 Appropriate for your Initial Implementations <ul><li>Tight coupling across layers </li></ul><ul><ul><li>Results in brittle code that is not tolerant to data changes </li></ul></ul><ul><li>Security is Developer Dependent </li></ul><ul><li>No clear enforcement of Business Rules with Data </li></ul><ul><li>Business processes are not dynamic </li></ul><ul><li>Database-centric architecture </li></ul><ul><ul><li>Significant amount of Code inside the Database </li></ul></ul><ul><ul><li>Significant amount of SQL-oriented Code in the UI/BL </li></ul></ul><ul><li>Bound to a delivery (Web or Windows) </li></ul><ul><ul><li>Significant amount of Code in the UI </li></ul></ul><ul><li>Deployment is a complex operation </li></ul>
  35. 35. Design Principles for 2.0 Targeted at Where You are Going <ul><li>Promote Object Oriented Design Patterns </li></ul><ul><ul><li>Encapsulate Business Data within Rules </li></ul></ul><ul><ul><li>Focus on Modeling the Domain </li></ul></ul><ul><ul><li>Isolate dependencies per Layer </li></ul></ul><ul><li>Reduce Code Duplication </li></ul><ul><ul><li>Create class hierarchies with inheritance to share implementations – one place to fix </li></ul></ul><ul><ul><li>Design Interfaces for extensibility </li></ul></ul><ul><li>Integrate Infrastructure </li></ul><ul><ul><li>Build in Security, Instrumentation, Logging, etc. </li></ul></ul><ul><li>XML-centric architecture </li></ul><ul><ul><li>Allows for DataSource agnostic approach </li></ul></ul><ul><ul><li>Adds richness of Xml family (XPath, XSL, etc.) </li></ul></ul><ul><li>Design for reuse: Web, Windows, Services </li></ul><ul><li>Simplifies Packaging and Deployment </li></ul>
  36. 36. CSS Application Architecture 2.0 <ul><li>Underlying Domain Model implements the local business processes of an application </li></ul><ul><li>Designed for Reuse </li></ul><ul><li>Designed to be independent of physical storage </li></ul>Data Storage Models Common Framework Domain Models User Interface Web Framework External Services Interfaces Services Framework Models
  37. 37. Application Building Blocks
  38. 38. Models and Commands CommonFramework abstracts Storage Data Storage Models Commands Web Services MSMQ XML ICommand
  39. 39. Domain Driven Design Domain Models Persistence Models Service Models Contract Model ID Version Schema Fields Contract Model ID Version Schema Fields UI Models UI Model ID UI Fields UI Behaviors UI Model ID UI Fields UI Behaviors
  40. 40. Conceptual Shift: Developers Questions to Consider <ul><li>What Responsibilities does this application have? </li></ul><ul><li>What Entities do I need to work with? </li></ul><ul><li>How do I model these things and their relationships? </li></ul><ul><li>What Business Process is this application supporting? </li></ul><ul><ul><li>Is it a part of a larger Process? </li></ul></ul><ul><ul><li>What happens when the larger process fails? </li></ul></ul><ul><li>Design for the Business Processes </li></ul><ul><ul><li>Stop designing from the Database </li></ul></ul><ul><ul><li>Stop designing from the UI </li></ul></ul>
  41. 41. Conceptual Shift: BAs, BSLs Questions to Consider <ul><li>Why does the Business need this application? </li></ul><ul><li>Where are the Business processes evolving? </li></ul><ul><ul><li>i.e. where might change be inevitable? </li></ul></ul><ul><li>How can a Business Process be automated </li></ul><ul><ul><li>What steps to be taken? </li></ul></ul><ul><ul><li>What already exists? </li></ul></ul><ul><li>Stop recreating Screens from other Systems… </li></ul>
  42. 42. Agenda <ul><li>Flexible IT, Better Strategy </li></ul><ul><li>Designing for Business Processes </li></ul><ul><li>Developing for Business Solutions </li></ul><ul><li>Challenges Ahead </li></ul>
  43. 43. Design Artifacts High level to Low Level <ul><li>Enterprise View </li></ul><ul><li>Application View </li></ul><ul><li>Feature View </li></ul>
  44. 44. Enterprise View Overall Solution <ul><li>Analyze the impact on the Enterprise </li></ul><ul><li>What is the organizational impact of… </li></ul><ul><li>Define the steps of the Solution in an abstract manner </li></ul><ul><li>Identify the capabilities expected of each Service Provider </li></ul><ul><li>Determine failure paths </li></ul><ul><li>What are the expected inputs and outputs in each Business Process Step </li></ul>
  45. 45. Enterprise Business Process Overall Solution View Begin Success Fail
  46. 46. Application View Capabilities Definitions <ul><li>Design the local business process as series of small abstract steps </li></ul><ul><li>What is the responsibility of this application or service? </li></ul><ul><li>What features are required to process the inputs into the outputs </li></ul><ul><ul><li>Work backward from the outputs </li></ul></ul><ul><ul><li>What abstract objects (responsibilities) are required to execute this process? </li></ul></ul><ul><li>How does this fit or not fit with the overall domain model </li></ul><ul><ul><li>Focus on abstract types (Interfaces, Abstract base classes) </li></ul></ul><ul><ul><li>Identify the relationships and dependencies within the Domain and within each layer </li></ul></ul>
  47. 47. Application Level Processes Domain Models Persistence Models Service Models Contract Model ID Version Schema Fields Contract Model ID Version Schema Fields UI Models UI Model ID UI Fields UI Behaviors UI Model ID UI Fields UI Behaviors
  48. 48. Feature View Low Level Implementation Details <ul><li>Low level design of the internals of the steps of a local business process </li></ul><ul><li>Design the specifics methods and properties of the objects involved </li></ul><ul><li>Detailed definition of the Contracts required to support the services </li></ul><ul><li>Design of the concrete classes that support the abstractions </li></ul><ul><ul><li>What factories are needed? </li></ul></ul><ul><ul><li>How will a sub-type be defined? </li></ul></ul>
  49. 49. Leverage the Artifacts <ul><li>GEA Model </li></ul><ul><li>Business Process Models </li></ul><ul><ul><li>Stems from the Business Activities </li></ul></ul><ul><ul><li>Business Component Model </li></ul></ul><ul><ul><li>High level view </li></ul></ul><ul><ul><li>Take it to the next level of detail </li></ul></ul>
  50. 50. Challenges Ahead <ul><li>Aspects of Change </li></ul><ul><li>Adopting an SOA </li></ul><ul><li>Adopting the Common Framework </li></ul><ul><li>Change Issues </li></ul>
  51. 51. Aspects of Change Dimensions of Impact Process SLAs Technology Data People
  52. 52. Adopting an SOA
  53. 53. Change Issues Dialogs for moving forward
  54. 54. Summary <ul><li>Evolution of existing Architecture </li></ul><ul><li>Architectural Solution for integrating Authoritative Sources </li></ul><ul><li>Actionable patterns to move the Automation Plan forward </li></ul>

×