Component based software development

4,019 views
3,796 views

Published on

Component based software development

Published in: Business, Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
4,019
On SlideShare
0
From Embeds
0
Number of Embeds
17
Actions
Shares
0
Downloads
162
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • 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

    ×