SW Architecture Monolithic to SOA


Published on

Evolution of Software Architecture
Service Oriented Architecture -- benefits and a model procedure

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

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

SW Architecture Monolithic to SOA

  1. 1. Role of Information Technology in achieving Competitive Differentiation Raman Kannan & Scott Burrill Rosenblatt Securities Inc.
  2. 2. Agenda <ul><li>Software Architecture Evolution </li></ul><ul><li>N-tier,3-Tier, 2-Tier – what is all this? </li></ul><ul><li>What is SOA? </li></ul><ul><ul><li>How does it relate to N-tier, 3-tier etc </li></ul></ul><ul><li>What is in it for me, I am an Asset Manager </li></ul><ul><li>How can it benefit MultiAsset Manager </li></ul>
  3. 3. History: Software Evolution <ul><li>Before networks and enterprise </li></ul><ul><ul><li>Internal structure of Software was the focus </li></ul></ul><ul><ul><ul><li>Modular design </li></ul></ul></ul><ul><ul><ul><li>OO Design – class hierarchy, patterns etc </li></ul></ul></ul><ul><ul><ul><li>Related ideas of </li></ul></ul></ul><ul><ul><ul><ul><li>inheritance,polymorphism,abstraction, information hiding </li></ul></ul></ul></ul><ul><ul><ul><ul><li>coupling, cohesion etc </li></ul></ul></ul></ul><ul><li>With the advent of networks </li></ul><ul><ul><li>Internal structural merits are not sufficient </li></ul></ul><ul><ul><li>What matters is how well a software unit adopts and reacts/interacts with the external world </li></ul></ul><ul><ul><ul><li>Other systems, data sources etc </li></ul></ul></ul><ul><ul><ul><li>Software Architecture is now the focus. </li></ul></ul></ul><ul><ul><ul><ul><li>Internal structure still matters </li></ul></ul></ul></ul>
  4. 4. Common Issues <ul><li>Integration is the challenge </li></ul><ul><ul><li>Semantically and structurally </li></ul></ul><ul><li>Maintenance </li></ul><ul><ul><li>accounts for majority of the Life Cycle cost </li></ul></ul><ul><li>Design for Integration and Maintenance </li></ul><ul><ul><li>Static integration lead to frameworks </li></ul></ul><ul><ul><li>Dynamic integration is the driver for components and now the service oriented architecture. </li></ul></ul><ul><ul><li>Architecture – focus is upon </li></ul></ul><ul><ul><ul><li>external structure </li></ul></ul></ul><ul><ul><ul><li>Interaction(synchronous/asynchronous)‏ </li></ul></ul></ul><ul><ul><ul><ul><li>RPC,Messaging,and object migration </li></ul></ul></ul></ul><ul><ul><ul><li>connectivity </li></ul></ul></ul><ul><ul><ul><ul><li>P2P,Broadcast and multicast etc </li></ul></ul></ul></ul>
  5. 5. Newer Issues <ul><li>Discovery </li></ul><ul><ul><li>Requirements change </li></ul></ul><ul><ul><li>Successful Business – constantly evolving </li></ul></ul><ul><ul><li>All the components cannot be anticipated at the get go </li></ul></ul><ul><li>Security </li></ul><ul><ul><li>DoD IP Stack is weak on security </li></ul></ul><ul><ul><li>IP 6 may offer relief – 15+ years away </li></ul></ul><ul><li>Fault Tolerance </li></ul><ul><ul><li>Parts of the system can and will fail </li></ul></ul><ul><ul><li>Rest should continue to function -proportionately </li></ul></ul><ul><li>Load Balancing – Scalability </li></ul><ul><ul><li>if successful huge volume </li></ul></ul><ul><ul><li>Otherwise no volume </li></ul></ul>
  6. 6. Software Architecture The software architecture of a program or computing system is the structure or structures of the system, which comprise software components, the externally visible properties of those components, and the relationships among them. The software architecture represents the earliest software design decisions. These design decisions are the most critical to get right and the most difficult to change downstream in the system development life cycle. The software architecture is the first design artifact addressing reliability, modifiability, security, real-time performance, and interoperability goals and requirements. structural units and different structural relationships Bass, L., Clements, P., and Kazman, R . Software Architecture in Practice . Reading, Mass.: Addison Wesley, 1998.
  7. 7. Reference Architecture A reference architecture is the generalized architecture of several end systems that share one or more common domains. The reference architecture defines the infrastructure common to the end systems and the interfaces of components that will be included in the end systems. The reference architecture is then instantiated to create a software architecture of a specific system. The definition of the reference architecture facilitates deriving and extending new software architectures for classes of systems. A reference architecture, therefore, plays a dual role with regard to specific target software architectures. First, it generalizes and extracts common functions and configurations. Second, it provides a base for instantiating target systems that use that common base more reliably and cost effectively.
  8. 8. Illustration <ul><li>Tyler has integrated and customized </li></ul><ul><ul><li>OMS and EMS </li></ul></ul><ul><li>At RIM – consciously or otherwise will draw upon past experience </li></ul><ul><ul><li>The RIM implementation will not be identical </li></ul></ul><ul><ul><li>Particular OMS may vary, EMS may change </li></ul></ul><ul><ul><li>Underlying structure and information pathway will remain the same. </li></ul></ul><ul><ul><li>Simpler examples </li></ul></ul><ul><ul><ul><li>Client/server </li></ul></ul></ul><ul><ul><ul><li>3 tier architecture </li></ul></ul></ul>Software Design and Architecture is a wicked science and NOT an exact science
  9. 9. Considerations of the day <ul><li>Computers are faster and cheaper </li></ul><ul><li>Networks are faster and cheaper </li></ul><ul><li>Storage is faster and cheaper </li></ul><ul><li>Human effort is expensive </li></ul><ul><ul><li>optimizing for the engineer is the key </li></ul></ul><ul><ul><li>clever programming is out </li></ul></ul><ul><ul><li>simple/comprehensible is in </li></ul></ul><ul><ul><li>reuse is a key factor </li></ul></ul><ul><ul><ul><li>higher the level better the return </li></ul></ul></ul><ul><li>All drivers toward reusable software </li></ul><ul><ul><li>Reconfigurable and deployable in unforseen ways </li></ul></ul>
  10. 10. Simple Architectures Data + Logic Presentation Data Presentation Logic 3 Tier 2 Tier monolithic Source 1 Source n Logical Step 1 Logical Step 2 EndUser Mgr Conversion(s)
  11. 11. Need for N-Tier <ul><li>Multiple Data Sources </li></ul><ul><li>Logic can become too complex </li></ul><ul><ul><li>Difficult to maintain – too large </li></ul></ul><ul><ul><li>Decomposition </li></ul></ul><ul><ul><li>Example: At a brokerage </li></ul></ul><ul><ul><ul><li>Executions from basket trading </li></ul></ul></ul><ul><ul><ul><li>Executions from single stock trades </li></ul></ul></ul><ul><ul><ul><ul><li>Which are managed high touch </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Auto-routed low touch </li></ul></ul></ul></ul><ul><li>Presentation can vary </li></ul><ul><ul><li>mobile/web/desktop </li></ul></ul><ul><ul><li>push/pull, bcast modes of communication </li></ul></ul><ul><ul><li>intranet/extranet – security schemes </li></ul></ul><ul><li>Enterprise solution require n-tier </li></ul>N-Tier is components based
  12. 12. Scott's Layered Diagram
  13. 13. Component architecture A component is a software object, meant to interact with other components, encapsulating certain functionality or a set of functionalities. A component has a clearly defined interface and conforms to a prescribed behaviour common to all components within an architecture. http://www.w3.org/TR/2004/NOTE-ws-gloss-20040211/ <ul><li>Limitations </li></ul><ul><li>Components are written for a target architecture </li></ul><ul><ul><li>Cannot be dropped into a different architecture </li></ul></ul><ul><li>Each component is aware of other components </li></ul><ul><ul><li>Integration is still an effort </li></ul></ul><ul><li>No standard procedure to discover new components </li></ul><ul><li>Lack of a standard description </li></ul><ul><li>Management is not standardized </li></ul>
  14. 14. New Opportunities <ul><li>I am an Asset Manager – introducing derivatives into my product mix </li></ul><ul><ul><li>I have valuation engines for TSY, MBS, equities etc </li></ul></ul><ul><ul><li>How can I introduce a Swap Pricing Engine </li></ul></ul><ul><ul><li>I do not want to rewrite my tradeEntry or PositionMonitor application suite </li></ul></ul><ul><ul><li>What about CDS Engines or other new products that will be introduced </li></ul></ul><ul><ul><li>I want my traders desktop suite to evolve with new products as and when we introduce </li></ul></ul><ul><ul><li>I want the system to select appropriate pricingEngine as needed </li></ul></ul>How can IT foster new business as it evolves
  15. 15. Enter SOA <ul><li>Service Oriented Architecture </li></ul><ul><li>Built on Standards </li></ul><ul><ul><li>XML </li></ul></ul><ul><ul><ul><li>Recall processing speed is not a concern for many applications except for analytical processes </li></ul></ul></ul><ul><ul><ul><li>Information structure can change </li></ul></ul></ul><ul><ul><ul><ul><li>Amorphous structural dependency </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Not as brittle as data structure requiring recompilation </li></ul></ul></ul></ul><ul><ul><ul><ul><li>XML in combination of XSL or other transformation </li></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>Can provide for rich UI,logic and db management </li></ul></ul></ul></ul></ul><ul><ul><li>Service Definition Language -- wsdl/soap </li></ul></ul><ul><ul><li>Discovery Standard -- http://uddi.org/taxonomies/ </li></ul></ul><ul><ul><li>Management </li></ul></ul><ul><ul><li>Reference and PD implementations </li></ul></ul>
  16. 16. New Developments Stage was set for a new paradigm <ul><li>XML + XML processing?XSL </li></ul><ul><li>flexible structures/incremental compiling </li></ul><ul><li>dynamic loading + new integration techniques </li></ul><ul><li>web centric language like java </li></ul><ul><li>Directory Service/Discovery </li></ul><ul><li>WWW Infrastructures/J2EE Containers/proxy/JMS </li></ul><ul><li>SOAP, W3C Standards </li></ul><ul><li>data driven becomes content driven </li></ul><ul><li>Speed/Performance improvements </li></ul><ul><li>many dissatisfied brains around the world </li></ul><ul><li>several cottage industry solution </li></ul>
  17. 17. Web Services Architecture Stack http://www.w3.org/TR/2004/NOTE-ws-arch-20040211/#discovery_service
  18. 18. SOA is still a TLA - why? <ul><li>good decisions but numerous bad outcomes </li></ul><ul><ul><li>Excitement without conviction </li></ul></ul><ul><ul><ul><li>Impatient management </li></ul></ul></ul><ul><ul><ul><ul><li>SOA is not a 6 month effort </li></ul></ul></ul></ul><ul><ul><li>SOA without talent is lot harder </li></ul></ul><ul><ul><li>numerous flavors of resistance </li></ul></ul><ul><ul><ul><li>age old Not My Idea </li></ul></ul></ul><ul><ul><ul><li>Comfort zone – I know C++ </li></ul></ul></ul><ul><ul><ul><li>Do not like MSFT – hate dot net </li></ul></ul></ul><ul><ul><li>Still evolving </li></ul></ul><ul><ul><ul><li>Many debates going on </li></ul></ul></ul><ul><ul><ul><li>Many candidate and competing implementations </li></ul></ul></ul><ul><ul><ul><ul><li>Axis and Axis2 – apache project </li></ul></ul></ul></ul>
  19. 19. Broad Guidelines <ul><li>First understand and define the data architecture </li></ul><ul><li>Do not design the data -- based on a particular application </li></ul><ul><ul><li>Capture what is essential for the business -- firm level – design for change </li></ul></ul><ul><ul><li>Example </li></ul></ul><ul><ul><ul><li>Do not capture just basket trading data </li></ul></ul></ul><ul><ul><ul><li>What information is important for your business </li></ul></ul></ul><ul><ul><ul><li>Capture all of that </li></ul></ul></ul><ul><ul><ul><ul><li>Commission structure </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Liquidity information provider/taker </li></ul></ul></ul></ul><ul><ul><ul><li>Implement CRUD service for all the business objects </li></ul></ul></ul><ul><ul><ul><ul><li>Without regard to any particular application </li></ul></ul></ul></ul>Incremental periodic deliverables – data, presentation,business process one at a time Short term goals with long term objectives aligned with business goals
  20. 20. Security and Presentation <ul><li>Define security architecture </li></ul><ul><ul><li>Security can never be after thought </li></ul></ul><ul><li>Understand and over build for flexible presentation </li></ul><ul><ul><li>New interaction paradigm is just around the corner </li></ul></ul><ul><li>develop a team – team buy in </li></ul><ul><ul><li>Train the team, be patient </li></ul></ul><ul><ul><li>Not by decree again seek conviction </li></ul></ul><ul><ul><li>Final consensus matters, not initial resistance </li></ul></ul><ul><li>Stakeholder – must own and 100% involved </li></ul><ul><li>Go for it! </li></ul>
  21. 21. Reference Architecture CRUD Operators DBMS DB Vendor free Design for change capture all the info Transaction Services Relationship Constraint Managers Bus. Logic Workflow Objects Presentation Mediators Display Agents Composite Entity Transformations Selectors Rules/Filters Routing Agent Rich Semi/Structured Information Units Protocol Agents Proxy services change the manner in which information is presented without impact change the DB Schema without impact reroute/recombine processing elements, creating new workflows Provide information in any format as required using transforms and filters New display devices can be introduced
  22. 22. OpenTrade – FMCP -- Gary Clients Servlets AccountServlet FactorServlet TransxServlet PositionServlet SecMasterServlet AccountEngine FactorEngine TransactionEngine AssetEngine AssetService TransactionService Clients http J2EE FixService EJBs txml dbml
  23. 23. OT Lessons Learned <ul><li>Defer integration -- just-in-time integration </li></ul><ul><li>Anticipate newer forms of transport </li></ul><ul><li>Do not dictate rigid data formats </li></ul><ul><ul><li>Employ contemporary transformation techniques </li></ul></ul><ul><li>Allow entities to discover through directory service </li></ul><ul><li>Dont stuff IT conventions down business throats </li></ul><ul><ul><li>Allow multiple naming and format conventions </li></ul></ul><ul><li>Use proven design techniques – </li></ul><ul><ul><li>OO, polymorphism and inheritance, </li></ul></ul><ul><ul><li>Programming by contract – interface driven </li></ul></ul>
  24. 24. OT Lessons Learned - 2 <ul><li>Capture all the data into a database </li></ul><ul><ul><li>Transactions </li></ul></ul><ul><ul><li>Market data </li></ul></ul><ul><ul><li>Reference data </li></ul></ul><ul><ul><li>Representational data – reports </li></ul></ul><ul><ul><li>MIS data – accounts, users, entitlements </li></ul></ul><ul><li>Keep the application independent of the database </li></ul><ul><ul><li>Do not tie the logic with database using 2 tier in any shape or form </li></ul></ul><ul><li>Keep it User centric from day 1 </li></ul><ul><ul><li>Highly customizable </li></ul></ul><ul><ul><li>Interactive and ultra real time </li></ul></ul>
  25. 25. SOA works – OT is not vaporware TransactionSink FixGwyAgent ConsolidationService Source FixGwy T Direct transformation does not exist Kernel finds a transformation path Fills txml fix fix fix txml Intermediate format
  26. 26. Earned Value! TransactionSink post FixGwyAgent Source FixService Sink FixGwy T This configuration would work Just as fine by reconfiguring the service definition. Architectural Stability. Independently developed systems interact and exchange information as needed when needed. The integration is facilitated by the catalinatech Kernel. Enterprise System capabilities are reconfigurable/adaptive /reusable and very stable. fix txml fix txml
  27. 27. We done it! FixFillService TransactionSink post FixService ConsolidationService Sink Source FixGwy T T Fills fix FixGwyAgent Sink Source Fills sql txml fix fix txml
  28. 28. Recap <ul><li>Get the management/stakeholder on the same side </li></ul><ul><li>Build a team, train the team – be an evangelist </li></ul><ul><li>Charge the team </li></ul><ul><ul><li>To develop enterprise data schema </li></ul></ul><ul><ul><ul><li>Independent of applications </li></ul></ul></ul><ul><ul><li>To develop applications independent of data and presentation – adopt programming by contract </li></ul></ul><ul><ul><li>To develop presentations that are independent of applications and rich </li></ul></ul><ul><li>Be patient, anticipate hickups </li></ul><ul><ul><li>Become CPR expert, do not bail out easy </li></ul></ul><ul><li>Keep delivering value to business in small increments – no one can wait 3 years </li></ul><ul><li>SOA is a multi year commitment </li></ul><ul><ul><li>Foundation for many generations </li></ul></ul>
  29. 29. What will you gain? <ul><li>Accomplishment – euphoria </li></ul><ul><li>IT that is service oriented </li></ul><ul><ul><li>Nimble and responsive </li></ul></ul><ul><ul><ul><li>Business needs (changing and new needs)‏ </li></ul></ul></ul><ul><ul><li>IT becomes key enabler </li></ul></ul><ul><li>Deliver competitive differentiation and advantage to business units </li></ul><ul><ul><li>Deliver new critical functionality faster </li></ul></ul><ul><ul><li>At a fraction of the cost incurred using traditional methods </li></ul></ul><ul><li>Watch your IT productivity soar </li></ul><ul><li>However, it is not all about technology </li></ul><ul><ul><li>It is about people, processes besides technology </li></ul></ul>Thank you