1 / 77

Embedded Systems Unsuitable for Object Orientation

Embedded Systems Unsuitable for Object Orientation. Maarten Boasson Quaerendo Invenietis b.v. Universiteit van Amsterdam. Alternative titles. Object Orientation unsuitable for RS Object Orientation harmful for RS Monoculture detrimental to RS design Fanaticism stifling progress in software

finola
Download Presentation

Embedded Systems Unsuitable for Object Orientation

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Embedded Systems Unsuitable for Object Orientation Maarten Boasson Quaerendo Invenietis b.v. Universiteit van Amsterdam

  2. Alternative titles Object Orientation unsuitable for RS Object Orientation harmful for RS Monoculture detrimental to RS design Fanaticism stifling progress in software There is nothing new ...

  3. Reactive system evolution cost • Current systems: • Very little support for decision making • Inflexible • Always wrong • Very expensive • Future systems • All of the above inverted functionality time

  4. Object Orientation cost functionality time

  5. ISO9000, CMM cots functionality time

  6. The engineering problem connectivity security performance timeliness evolvability availability

  7. The Idea • Design principles: • Minimize dependencies between components • Share stable properties • Focus on: • Autonomous component behavior • Shared information model • Solidify knowledge and practices in terms of: • System architecture • Supporting middleware

  8. Architecture • Reduces the design freedom in exchange for • Guaranteed system properties

  9. Architecture requirements • Rich enough to support applications • Functionality • Performance • Extensibility • Availability • Security • -

  10. Architecture requirements • Minimize design complexity • Generic solutions where possible • Support where no generic solution exists • fault-tolerance • Enable re-use of components • Incremental development

  11. Architecture requirements • High performance • must transfer data as fast as possible • programs must be delayed as little as possible • must be able to handle required volume of data • must not introduce many layers of abstraction • each layer introduces delays and overheadhowever: use abstraction where useful

  12. Architecture requirements • Extensibility and growth potential • must manage relations between applications • applications must to be invariants under extensions • must provide support for system management • extending a system means new programs/processes that need to be monitored and controlled

  13. Architecture requirements • System availability • must either support hot standby • if interrupted processing not acceptable • or must support cold standbyand/or dynamic reconfiguration • choice depends on temporal properties, system configuration and fault models • must manage critical data • starting programs need to operate in the right context

  14. Architecture requirements • Design complexity • Component reuse:no built-in dependencies on other components • dependencies must be determined dynamically • Separate development of components • no built-in dependencies on other components • must be able to fully specify components

  15. Architecture requirements • Amenable to formal reasoning • Mathematical description of properties • both of infrastructure and of applications • Transformations from system requirements to software implementation • Separation of concerns • function and coordination separated

  16. Object Orientation makes life difficult • Packaging of methods and data • Method invocation • strong coupling between objects • Attempts at rectification have failed • CORBA event service • data distribution service (in progress) • OO is essentially analysis oriented

  17. Shared Data is architecture well suited • allows maximum independence between components(only data in common) • allows secure systems to be built(control of all data access) • allows standard solution to many system problems (distribution, communication, replication, extension) • "open": anybody can develop components for systems • supports multi-paradigm programming (including OO) • avoids unnecessary complexity • enables formal reasoning

  18. Towards a solution True sharing of data is impractical “The right data at the right place at the right time” Remember: No single point of failure High performance Extensible ….

  19. Splice: A reactive systems’ architecture Built-in capabilities: - P/S data distribution - relational data access - data persistence - dynamic (re-) configuration - quality of service - fault-tolerance - network partitioning - security... Decoupling in space and time

  20. Splice: A reactive systems’ architecture Built-in capabilities: - P/S data distribution - relational data access - data persistence - dynamic (re-) configuration - quality of service - fault-tolerance - network partitioning - security... Decoupling in space and time

  21. Splice: A reactive systems’ architecture Built-in capabilities: - P/S data distribution - relational data access - data persistence - dynamic (re-) configuration - quality of service - fault-tolerance - network partitioning - security... Decoupling in space and time

  22. Splice: A reactive systems’ architecture Built-in capabilities: - P/S data distribution - relational data access - data persistence - dynamic (re-) configuration - quality of service - fault-tolerance - network partitioning - security... Data is dynamically forwarded to all subscribing processes List of subscriptions is dynamically mailtained

  23. Data Definition • Processes subscribe to subjects • Each subject has an associated data type: • record structure with named, typed fields • key fields for unique identification • Example: struct TrackPosition { key int trackNumber; Point3D position; Time timestamp; } struct TrackIdentity { key int trackNumber; Identity identity; Time timestamp; }

  24. Splice: A reactive systems’ architecture Built-in capabilities: - P/S data distribution - relational data access - data persistence - dynamic (re-) configuration - quality of service - fault-tolerance - network partitioning - security...

  25. Splice: A reactive systems’ architecture Built-in capabilities: - P/S data distribution - relational data access - data persistence - dynamic (re-) configuration - quality of service - fault-tolerance - network partitioning - security... Content-based subscription through relational views

  26. Content-based Subscription • Data filtering, e.g. in SQL: • Aggregation and projection, e.g. in SQL: select * from TrackPosition where position.range < 10000 select position from TrackPosition, TrackIdentity where TrackPosition.trackNumber = TrackIdentity.trackNumber and position.range < 10000 and identity = hostile

  27. Announce publications Define views Subscribe to views Define queries Set query parameters Select input data Wait for input data Process data Publish output data Typical Process Behavior

  28. Splice: A reactive systems’ architecture Built-in capabilities: - P/S data distribution - relational data access - data persistence - dynamic (re-) configuration - quality of service - fault-tolerance - network partitioning - security...

  29. Splice: A reactive systems’ architecture Built-in capabilities: - P/S data distribution - relational data access - data persistence - dynamic (re-) configuration - quality of service - fault-tolerance - network partitioning - security... Persistent data remains available for later access

  30. Splice: A reactive systems’ architecture Built-in capabilities: - P/S data distribution - relational data access - data persistence - dynamic (re-) configuration - quality of service - fault-tolerance - network partitioning - security... Persistent data remains available for later access

  31. Splice: A reactive systems’ architecture Built-in capabilities: - P/S data distribution - relational data access - data persistence - dynamic (re-) configuration - quality of service - fault-tolerance - network partitioning - security... Processes may join or leave the network at any time

  32. Splice: A reactive systems’ architecture Built-in capabilities: - P/S data distribution - relational data access - data persistence - dynamic (re-) configuration - quality of service - fault-tolerance - network partitioning - security... Processes may join or leave the network at any time

  33. Splice: A reactive systems’ architecture Built-in capabilities: - P/S data distribution - relational data access - data persistence - dynamic (re-) configuration - quality of service - fault-tolerance - network partitioning - security... Processes may join or leave the network at any time

  34. Splice: A reactive systems’ architecture Built-in capabilities: - P/S data distribution - relational data access - data persistence - dynamic (re-) configuration - quality of service - fault-tolerance - network partitioning - security... Processes may join or leave the network at any time

  35. Splice: A reactive systems’ architecture Built-in capabilities: - P/S data distribution - relational data access - data persistence - dynamic (re-) configuration - quality of service - fault-tolerance - network partitioning - security... Processes may join or leave the network at any time

  36. Splice: A reactive systems’ architecture Built-in capabilities: - P/S data distribution - relational data access - data persistence - dynamic (re-) configuration - quality of service - fault-tolerance - network partitioning - security... Processes may join or leave the network at any time

  37. Splice: A reactive systems’ architecture Built-in capabilities: - P/S data distribution - relational data access - data persistence - dynamic (re-) configuration - quality of service - fault-tolerance - network partitioning - security... Processes may join or leave the network at any time

  38. Splice: A reactive systems’ architecture Built-in capabilities: - P/S data distribution - relational data access - data persistence - dynamic (re-) configuration - quality of service - fault-tolerance - network partitioning - security... Processes may join or leave the network at any time

  39. Splice: A reactive systems’ architecture Built-in capabilities: - P/S data distribution - relational data access - data persistence - dynamic (re-) configuration - quality of service - fault-tolerance - network partitioning - security... Processes may join or leave the network at any time

  40. Splice: A reactive systems’ architecture Built-in capabilities: - P/S data distribution - relational data access - data persistence - dynamic (re-) configuration - quality of service - fault-tolerance - network partitioning - security... - persistency - delivery - priority QoS is attributed to data (statically or dynamically)

  41. Data Persistency • Volatile data • no copies outside process space • typically measurement related data • Semi-persistent data • copies are kept on more than one host • outlives process • typically state related data • Persistent data • same as semi-persistent data, but additionally stored on disk • outlives system • typically configuration data

  42. Data Delivery • Various options: • no guarantees [0,) • at least once [1, ) • at most once [0,1] • exactly once [1,1]

  43. Splice: A reactive systems’ architecture Built-in capabilities: - P/S data distribution - relational data access - data persistence - dynamic (re-) configuration - quality of service - fault-tolerance - network partitioning - security... Passive process replication

  44. Splice: A reactive systems’ architecture Built-in capabilities: - P/S data distribution - relational data access - data persistence - dynamic (re-) configuration - quality of service - fault-tolerance - network partitioning - security... Passive process replication

  45. Splice: A reactive systems’ architecture Built-in capabilities: - P/S data distribution - relational data access - data persistence - dynamic (re-) configuration - quality of service - fault-tolerance - network partitioning - security... Passive process replication

  46. Splice: A reactive systems’ architecture Built-in capabilities: - P/S data distribution - relational data access - data persistence - dynamic (re-) configuration - quality of service - fault-tolerance - network partitioning - security... Semi-active process replication

  47. Splice: A reactive systems’ architecture Built-in capabilities: - P/S data distribution - relational data access - data persistence - dynamic (re-) configuration - quality of service - fault-tolerance - network partitioning - security... Semi-active process replication

  48. Splice: A reactive systems’ architecture Built-in capabilities: - P/S data distribution - relational data access - data persistence - dynamic (re-) configuration - quality of service - fault-tolerance - network partitioning - security... Semi-active process replication

  49. Splice: A reactive systems’ architecture Built-in capabilities: - P/S data distribution - relational data access - data persistence - dynamic (re-) configuration - quality of service - fault-tolerance - network partitioning - security...

  50. Splice: A reactive systems’ architecture Built-in capabilities: - P/S data distribution - relational data access - data persistence - dynamic (re-) configuration - quality of service - fault-tolerance - network partitioning - security... LAN WAN

More Related