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.

Component based software development

5,178 views

Published on

Component based software development

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

Component based software development

  1. 1. Component based software development
  2. 2. Component based development <ul><li>Objective </li></ul><ul><li>Large distributed systems </li></ul><ul><li>Tools chain </li></ul><ul><li>Large distributed systems Architecture </li></ul><ul><ul><li>Business Model </li></ul></ul><ul><ul><li>Component Execution Model </li></ul></ul><ul><li>CCM </li></ul><ul><ul><li>Object Deployment </li></ul></ul><ul><ul><li>Container Concepts </li></ul></ul>
  3. 3. Objective <ul><li>Large distributed systems development cost reduction implies: </li></ul><ul><ul><li>Programming by assembly (manufacturing) rather than development (engineering) </li></ul></ul><ul><ul><ul><li>Reduced skills requirements </li></ul></ul></ul><ul><ul><ul><li>Focus expertise on domain problems </li></ul></ul></ul><ul><ul><ul><li>Improving software quality </li></ul></ul></ul>
  4. 4. Component based development <ul><li>Objective </li></ul><ul><li>Large distributed systems </li></ul><ul><li>Tools chain </li></ul><ul><li>Large distributed systems Architecture </li></ul><ul><ul><li>Business Model </li></ul></ul><ul><ul><li>Component Execution Model </li></ul></ul><ul><li>CCM </li></ul><ul><ul><li>Object Deployment </li></ul></ul><ul><ul><li>Container Concepts </li></ul></ul>
  5. 5. Component Based development for complex systems <ul><li>Develop large software systems like : </li></ul><ul><ul><li>Hardware </li></ul></ul><ul><ul><li>Car </li></ul></ul><ul><li>Manufacturing rather than engineering </li></ul><ul><ul><li>Product line </li></ul></ul><ul><ul><li>Assembly line </li></ul></ul><ul><ul><li>Tools chain </li></ul></ul>Development Phase Production Phase time Engineering Product line Reuse
  6. 6. Complex system : ATC centre Flight Plan Processing Supervisory Control Simulator Recording Replay controller Working Position controller Working Position Dual LAN FDDI controller Working Position controller Working Position Radar Data Processing Radar Front Processing AFTN/CIDIN ATFM ADJACENT FIR'S/TWR'S MET Centres Voice control and communications <ul><li>Intercom </li></ul><ul><li>Priority </li></ul><ul><li>Public </li></ul><ul><li>RADIO A/G </li></ul>~ 50 RADAR
  7. 7. Complex system : Combat Naval System Radar detections Tracks display Detections processed into tracks by the CMS
  8. 8. Component based development <ul><li>Objective </li></ul><ul><li>Large distributed systems </li></ul><ul><li>Tools chain </li></ul><ul><li>Large distributed systems Architecture </li></ul><ul><ul><li>Business Model </li></ul></ul><ul><ul><li>Component Execution Model </li></ul></ul><ul><li>CCM </li></ul><ul><ul><li>Object Deployment </li></ul></ul><ul><ul><li>Container Concepts </li></ul></ul>
  9. 9. Tool chain : Computer Aided System Design UML Visual Tools
  10. 10. Hardware Components Analogy Component Library Data Sheet
  11. 11. Domain Components Component Library Data Sheet CWP RDP FDP CP FPM TP RADAR ADS-B AGDC ACR ABS
  12. 12. Computer aided design for the whole process Integration Validation Operation Development Design
  13. 13. From Design, Deployment, Installation, to Validation Design Model Deployment Model System Engineer Architect Visual design Tool Simulation Tool System Integrator Visual Deployment Tool Validation Tool
  14. 14. System Design Visual Tools IDL XML System Engineer, Architect Validation patterns MOF/ XMI Simulation Tools Design Model
  15. 15. System Deployment and Integration IDL Container XML System Integrator COTS zipfile Validation patterns XMI zipfile
  16. 16. Component based development <ul><li>Objective </li></ul><ul><li>Large distributed systems </li></ul><ul><li>Tools chain </li></ul><ul><li>Large distributed systems Architecture </li></ul><ul><ul><li>Business Model </li></ul></ul><ul><ul><li>Component Execution Model </li></ul></ul><ul><li>CCM </li></ul><ul><ul><li>Object Deployment </li></ul></ul><ul><ul><li>Container Concepts </li></ul></ul>
  17. 17. Mouse Click System Development Flight Management Surveillance ODS Sup Recording Recording Surveillance ODS Sup
  18. 18. System Architecture <ul><li>A business model </li></ul><ul><ul><li>Domain engineering </li></ul></ul><ul><ul><li>Domain services specification </li></ul></ul><ul><ul><ul><li>No assumption on Execution Platform </li></ul></ul></ul><ul><ul><ul><li>(separation of concerns) </li></ul></ul></ul>
  19. 19. System Architecture <ul><li>A component execution model </li></ul><ul><ul><li>(seamless integration) </li></ul></ul><ul><ul><li>Components interconnection </li></ul></ul><ul><ul><li>CORBA component model (CCM) </li></ul></ul><ul><ul><ul><li>Container </li></ul></ul></ul><ul><li>A business model </li></ul><ul><ul><li>Domain engineering </li></ul></ul><ul><ul><li>Domain services specification </li></ul></ul><ul><ul><ul><li>No assumption on Execution Platform </li></ul></ul></ul><ul><ul><ul><li>(separation of concerns) </li></ul></ul></ul>
  20. 20. Component based development <ul><li>Objective </li></ul><ul><li>Large distributed systems </li></ul><ul><li>Tools chain </li></ul><ul><li>Large distributed systems Architecture </li></ul><ul><ul><li>Business Model </li></ul></ul><ul><ul><li>Component Execution Model </li></ul></ul><ul><li>CCM </li></ul><ul><ul><li>Object Deployment </li></ul></ul><ul><ul><li>Container Concepts </li></ul></ul>
  21. 21. A Domain Service = A CORBA Object <ul><li>A service (CORBA Object) is defined by : </li></ul><ul><ul><li>An Interface Interface </li></ul></ul><ul><ul><li>A protocol Behavior </li></ul></ul><ul><ul><ul><li>Described in UML </li></ul></ul></ul><ul><li>Without any assumptions on : Execution Platform </li></ul><ul><ul><ul><li>(separation of concerns) </li></ul></ul></ul>
  22. 22. No assumption on deployment Implementation Interface A driver doesn't care of engine's internal working. He only knows the interface
  23. 23. No assumption on deployment Implementation Interface A driver doesn't care of engine's internal working. He only knows the interface
  24. 24. Component based development <ul><li>Objective </li></ul><ul><li>Large distributed systems </li></ul><ul><li>Tools chain </li></ul><ul><li>Large distributed systems Architecture </li></ul><ul><ul><li>Business Model </li></ul></ul><ul><ul><li>Component Execution Model </li></ul></ul><ul><li>CCM </li></ul><ul><ul><li>Object Deployment </li></ul></ul><ul><ul><li>Container Concepts </li></ul></ul>
  25. 25. What We May Have : Service D Service C Service A Service B Service E
  26. 26. Spaghetti Plate Syndrome Named Pipe Reliable Multicast Spaghetti Plate System Architect System Integrator
  27. 27. What We Want ! Seamless Integration Flight Management Surveillance ODS Sup Recording Recording Surveillance ODS Sup
  28. 28. Container Model Technical Middleware (Framework) Automatically generated Container from Object IDL Object IDL Generated Typed Local Interfaces Container Container Container Container Container Spaghetti Plate
  29. 29. Component based development <ul><li>Objective </li></ul><ul><li>Large distributed systems </li></ul><ul><li>Tools chain </li></ul><ul><li>Large distributed systems Architecture </li></ul><ul><ul><li>Business Model </li></ul></ul><ul><ul><li>Component Execution Model </li></ul></ul><ul><li>CCM </li></ul><ul><ul><li>Object Deployment </li></ul></ul><ul><ul><li>Container Concepts </li></ul></ul>
  30. 30. Component and CORBA object A component is a deployable objet Client Object Provides uses As specified Object Object Object
  31. 31. Component and object A component is a deployable objet Client Object ? ? ? Provides uses As deployed
  32. 32. Object Interface (IDL CORBA 2) interfaces .. Usual CORBA object
  33. 33. Component Interface (IDL CORBA 3) Provides { interfaces .. } Usual CORBA object
  34. 34. Component Interface (IDL CORBA 3) Provides { interfaces .. } uses { interfaces .. } Connection to a Usual CORBA Object Usual CORBA object
  35. 35. Object Composition Client Server Server Server Object Provides Uses IDL IDL CORBA 2 IDL IDL CORBA 2 IDL IDL CORBA 2
  36. 36. Object Composition Client Server Server Server Provides Uses Object IDL IDL CORBA 2 IDL IDL CORBA 2 IDL IDL CORBA 2 IDL IDL CORBA 3
  37. 37. Object Composition Client Server Server Server Provides Uses Object IDL Provides { interfaces .. } uses { interfaces .. } IDL CORBA 3
  38. 38. CORBA Component Model (CCM) <ul><li>Extension to IDL (IDL2 Meta Type) </li></ul><ul><li>«packaging» language </li></ul>CCM IDL “IDL3” <ul><ul><li>Offered functionality (Server role) </li></ul></ul><ul><ul><ul><li>interfaces provided </li></ul></ul></ul><ul><ul><ul><li>events emitted </li></ul></ul></ul><ul><ul><li>Configuration attributes </li></ul></ul><ul><li>Define a component in terms of... </li></ul><ul><ul><li>Dependencies (Client role) </li></ul></ul><ul><ul><ul><li>distant interfaces required </li></ul></ul></ul><ul><ul><ul><li>events consumed </li></ul></ul></ul>
  39. 39. CCM : Code Generation <ul><li>An IDL2 interface </li></ul><ul><ul><li>Defining interface between component and container </li></ul></ul><ul><ul><li>Middleware, Framework independen t </li></ul></ul><ul><li>Container code </li></ul><ul><ul><li>Provides the glue between application and infrastructure </li></ul></ul>Compiler Idl2 Container “ IDL3” is parsed, producing : IDL3
  40. 40. CORBA Component Model IDL <ul><li>IDL3 provides : </li></ul><ul><li>logical architecture </li></ul><ul><li>logical connectivity </li></ul><ul><li>dependency visibility </li></ul>
  41. 41. CORBA Component Model (CCM) <ul><li>Container handles, </li></ul><ul><ul><li>Component interconnection </li></ul></ul><ul><ul><li>Event issues </li></ul></ul><ul><ul><li>Config / packaging issues </li></ul></ul><ul><ul><li>Other functions </li></ul></ul><ul><li>Local IDL (local service ie no IOR) </li></ul><ul><li>Component is isolated from the underlying architecture (framework). </li></ul><ul><li>This is a standard & formal way of creating wrappers. </li></ul>CCM Container
  42. 42. Component based development <ul><li>Objective </li></ul><ul><li>Large distributed systems </li></ul><ul><li>Tools chain </li></ul><ul><li>Large distributed systems Architecture </li></ul><ul><ul><li>Business Model </li></ul></ul><ul><ul><li>Component Execution Model </li></ul></ul><ul><li>CCM </li></ul><ul><ul><li>Object Deployment </li></ul></ul><ul><ul><li>Container Concepts </li></ul></ul>
  43. 43. Component based development <ul><li>Container Concepts </li></ul><ul><ul><li>Component container Interaction </li></ul></ul><ul><ul><li>Object Deployment </li></ul></ul><ul><ul><li>Separation of concerns </li></ul></ul><ul><ul><li>Container Technical Framework </li></ul></ul><ul><ul><li>Flexible Container Code Generation </li></ul></ul>
  44. 44. Component/Container interaction Container interacts with Component Component interacts with container Container interacts with other container Components exchange information
  45. 45. Container Model <ul><li>Clear separation of </li></ul><ul><ul><li>the application component </li></ul></ul><ul><ul><li>the technical middleware </li></ul></ul>container protects the component container offers simple interfaces to component Component Middleware Infrastructure container
  46. 46. Container/Infrastructure interaction Middleware (Infrastructure, Framework) Container interacts with Component Components exchange information Through Infrastructure Service Container interacts with other Container Through Infrastructure Service Component interacts with container Container interacts with other container Components exchange information Container interacts with Infrastructure Container interacts with Infrastructure
  47. 47. Component based development <ul><li>Container Concepts </li></ul><ul><ul><li>Component container Interaction </li></ul></ul><ul><ul><li>Object Deployment </li></ul></ul><ul><ul><li>Separation of concerns </li></ul></ul><ul><ul><li>Container Technical Framework </li></ul></ul><ul><ul><li>Flexible Container Code Generation </li></ul></ul>
  48. 48. Container and object deployment A component is a deployable objet Client Object Provides uses Object Object Object
  49. 49. Container and Object Deployment 03 Client Objet O1 02 Spaghetti Plate
  50. 50. Container and Object Deployment 03 O1 02 Spaghetti Plate Container Client Objet
  51. 51. Component based development <ul><li>Container Concepts </li></ul><ul><ul><li>Component container Interaction </li></ul></ul><ul><ul><li>Object Deployment </li></ul></ul><ul><ul><li>Separation of concerns </li></ul></ul><ul><ul><li>Container Technical Framework </li></ul></ul><ul><ul><li>Flexible Container Code Generation </li></ul></ul>
  52. 52. Container and separation of concerns : without container 03 Objet O1 02 Business Code Business Code Technical Code Technical Code Technical Code
  53. 53. Container and separation of concerns : with container 03 Container O1 02 Business Code Business Code Technical Code Technical Code Technical Code Object
  54. 54. Container and separation of concerns : determinism <ul><li>Simplification of business coder’s work </li></ul><ul><li>Automation of technical services: tracing, recording </li></ul><ul><li>=> Validation Determinism </li></ul>IHM Server Server HMI ??? ????? Request (Data) Reply Trace (Data) Trace (Data) Record (Data) Record (Data) Request (Data) Reply Request (Data) Reply Server Container HMI Container
  55. 55. Component based development <ul><li>Container Concepts </li></ul><ul><ul><li>Component container Interaction </li></ul></ul><ul><ul><li>Object Deployment </li></ul></ul><ul><ul><li>Separation of concerns </li></ul></ul><ul><ul><li>Container Technical Framework </li></ul></ul><ul><ul><li>Flexible Container Code Generation </li></ul></ul>
  56. 56. Enterprise computing CCM container Middleware services Event Persistence Security Transaction Container Container Business Application
  57. 57. Real Time computing CCM container Middleware services Tracing Recording Load Balancing Fault Tolerance Container Container Business Application
  58. 58. Extended Real Time computing CCM container Middleware services DDS ? ? ? Container Container Business Application
  59. 59. Component based development <ul><li>Container Concepts </li></ul><ul><ul><li>Component container Interaction </li></ul></ul><ul><ul><li>Object Deployment </li></ul></ul><ul><ul><li>Separation of concerns </li></ul></ul><ul><ul><li>Container Technical Framework </li></ul></ul><ul><ul><li>Flexible Container Code Generation </li></ul></ul>
  60. 60. Flexible Container Code Generation Compiler Idl2 Container Template IDL3 Template Driven Code generation Written By middleware Experts
  61. 61. Flexible Container Code Generation Compiler Idl2 C++ Template C++ Container IDL3
  62. 62. Flexible Container Code Generation Compiler Idl2 Ada Template Ada Container IDL3
  63. 63. Flexible Container Code Generation Compiler Idl2 Validation Template Validation Container IDL3
  64. 64. Infrastructure Interchange Validation template written by Validation experts Validation Container Validation Framework Operational Container Operational Framework
  65. 65. Infrastructure Interchange Operational template written by Validation experts Validation Container Validation Framework Operational Container Operational Framework
  66. 66. System Design and Simulated validation System Engineer, Architect MOF/ XMI Validation Pattern Simulation Tools Design Model Validation Container Operational Container
  67. 67. System Design and Simulated validation Business Model Functional Model Non Functional Model Functional Simulation Results Non Functional Simulation Results Container = = System Deployment
  68. 68. Component Based Middleware Real Time Load Balancing Events DDS Fault Tolerance Fault Tolerance Load Balancing DDS Events

×