embedded systems unsuitable for object orientation
DESCRIPTION
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 - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Embedded Systems Unsuitable for Object Orientation](https://reader035.vdocuments.site/reader035/viewer/2022062314/56813fec550346895daaec96/html5/thumbnails/1.jpg)
Embedded Systems Unsuitable for Object Orientation
Maarten Boasson
Quaerendo Invenietis b.v.
Universiteit van Amsterdam
![Page 2: Embedded Systems Unsuitable for Object Orientation](https://reader035.vdocuments.site/reader035/viewer/2022062314/56813fec550346895daaec96/html5/thumbnails/2.jpg)
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 ...
![Page 3: Embedded Systems Unsuitable for Object Orientation](https://reader035.vdocuments.site/reader035/viewer/2022062314/56813fec550346895daaec96/html5/thumbnails/3.jpg)
Reactive system evolution
• Current systems:
– Very little support for decision making
– Inflexible
– Always wrong
– Very expensive
• Future systems
– All of the above inverted
functionality
cost
time
![Page 4: Embedded Systems Unsuitable for Object Orientation](https://reader035.vdocuments.site/reader035/viewer/2022062314/56813fec550346895daaec96/html5/thumbnails/4.jpg)
Object Orientationcost
time
functionality
![Page 5: Embedded Systems Unsuitable for Object Orientation](https://reader035.vdocuments.site/reader035/viewer/2022062314/56813fec550346895daaec96/html5/thumbnails/5.jpg)
ISO9000, CMM
functionality
cots
time
![Page 6: Embedded Systems Unsuitable for Object Orientation](https://reader035.vdocuments.site/reader035/viewer/2022062314/56813fec550346895daaec96/html5/thumbnails/6.jpg)
The engineering problem
connectivityconnectivity
timelinesstimeliness
availabilityavailabilityevolvabilityevolvability
performanceperformance
securitysecurity
![Page 7: Embedded Systems Unsuitable for Object Orientation](https://reader035.vdocuments.site/reader035/viewer/2022062314/56813fec550346895daaec96/html5/thumbnails/7.jpg)
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
![Page 8: Embedded Systems Unsuitable for Object Orientation](https://reader035.vdocuments.site/reader035/viewer/2022062314/56813fec550346895daaec96/html5/thumbnails/8.jpg)
Architecture
• Reduces the design freedom
in exchange for
• Guaranteed system properties
![Page 9: Embedded Systems Unsuitable for Object Orientation](https://reader035.vdocuments.site/reader035/viewer/2022062314/56813fec550346895daaec96/html5/thumbnails/9.jpg)
Architecture requirements
• Rich enough to support applications
– Functionality– Performance– Extensibility– Availability– Security– -
![Page 10: Embedded Systems Unsuitable for Object Orientation](https://reader035.vdocuments.site/reader035/viewer/2022062314/56813fec550346895daaec96/html5/thumbnails/10.jpg)
Architecture requirements
• Minimize design complexity
– Generic solutions where possible– Support where no generic solution exists
• fault-tolerance
– Enable re-use of components– Incremental development
![Page 11: Embedded Systems Unsuitable for Object Orientation](https://reader035.vdocuments.site/reader035/viewer/2022062314/56813fec550346895daaec96/html5/thumbnails/11.jpg)
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
![Page 12: Embedded Systems Unsuitable for Object Orientation](https://reader035.vdocuments.site/reader035/viewer/2022062314/56813fec550346895daaec96/html5/thumbnails/12.jpg)
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
![Page 13: Embedded Systems Unsuitable for Object Orientation](https://reader035.vdocuments.site/reader035/viewer/2022062314/56813fec550346895daaec96/html5/thumbnails/13.jpg)
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
![Page 14: Embedded Systems Unsuitable for Object Orientation](https://reader035.vdocuments.site/reader035/viewer/2022062314/56813fec550346895daaec96/html5/thumbnails/14.jpg)
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
![Page 15: Embedded Systems Unsuitable for Object Orientation](https://reader035.vdocuments.site/reader035/viewer/2022062314/56813fec550346895daaec96/html5/thumbnails/15.jpg)
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
![Page 16: Embedded Systems Unsuitable for Object Orientation](https://reader035.vdocuments.site/reader035/viewer/2022062314/56813fec550346895daaec96/html5/thumbnails/16.jpg)
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
![Page 17: Embedded Systems Unsuitable for Object Orientation](https://reader035.vdocuments.site/reader035/viewer/2022062314/56813fec550346895daaec96/html5/thumbnails/17.jpg)
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
![Page 18: Embedded Systems Unsuitable for Object Orientation](https://reader035.vdocuments.site/reader035/viewer/2022062314/56813fec550346895daaec96/html5/thumbnails/18.jpg)
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
….
![Page 19: Embedded Systems Unsuitable for Object Orientation](https://reader035.vdocuments.site/reader035/viewer/2022062314/56813fec550346895daaec96/html5/thumbnails/19.jpg)
Splice: A reactive systems’ architecture
Decoupling in space and time
Built-in capabilities:- P/S data distribution- relational data access- data persistence- dynamic (re-) configuration- quality of service- fault-tolerance- network partitioning- security...
![Page 20: Embedded Systems Unsuitable for Object Orientation](https://reader035.vdocuments.site/reader035/viewer/2022062314/56813fec550346895daaec96/html5/thumbnails/20.jpg)
Splice: A reactive systems’ architecture
Decoupling in space and time
Built-in capabilities:- P/S data distribution- relational data access- data persistence- dynamic (re-) configuration- quality of service- fault-tolerance- network partitioning- security...
![Page 21: Embedded Systems Unsuitable for Object Orientation](https://reader035.vdocuments.site/reader035/viewer/2022062314/56813fec550346895daaec96/html5/thumbnails/21.jpg)
Splice: A reactive systems’ architecture
Decoupling in space and time
Built-in capabilities:- P/S data distribution- relational data access- data persistence- dynamic (re-) configuration- quality of service- fault-tolerance- network partitioning- security...
![Page 22: Embedded Systems Unsuitable for Object Orientation](https://reader035.vdocuments.site/reader035/viewer/2022062314/56813fec550346895daaec96/html5/thumbnails/22.jpg)
Splice: A reactive systems’ architecture
Data is dynamically forwarded toall subscribing processesList of subscriptions is dynamicallymailtained
Built-in capabilities:- P/S data distribution- relational data access- data persistence- dynamic (re-) configuration- quality of service- fault-tolerance- network partitioning- security...
![Page 23: Embedded Systems Unsuitable for Object Orientation](https://reader035.vdocuments.site/reader035/viewer/2022062314/56813fec550346895daaec96/html5/thumbnails/23.jpg)
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;}
![Page 24: Embedded Systems Unsuitable for Object Orientation](https://reader035.vdocuments.site/reader035/viewer/2022062314/56813fec550346895daaec96/html5/thumbnails/24.jpg)
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...
![Page 25: Embedded Systems Unsuitable for Object Orientation](https://reader035.vdocuments.site/reader035/viewer/2022062314/56813fec550346895daaec96/html5/thumbnails/25.jpg)
Content-based subscription throughrelational views
Built-in capabilities:- P/S data distribution- relational data access- data persistence- dynamic (re-) configuration- quality of service- fault-tolerance- network partitioning- security...
Splice: A reactive systems’ architecture
![Page 26: Embedded Systems Unsuitable for Object Orientation](https://reader035.vdocuments.site/reader035/viewer/2022062314/56813fec550346895daaec96/html5/thumbnails/26.jpg)
Content-based Subscription
• Data filtering, e.g. in SQL:
• Aggregation and projection, e.g. in SQL:
select * from TrackPositionwhere position.range < 10000
select position from TrackPosition, TrackIdentitywhere TrackPosition.trackNumber = TrackIdentity.trackNumber and position.range < 10000 and identity = hostile
![Page 27: Embedded Systems Unsuitable for Object Orientation](https://reader035.vdocuments.site/reader035/viewer/2022062314/56813fec550346895daaec96/html5/thumbnails/27.jpg)
Typical Process BehaviorAnnounce publications
Define views
Subscribe to views
Define queries
Set query parameters
Select input data Wait for input data
Process data
Publish output data
![Page 28: Embedded Systems Unsuitable for Object Orientation](https://reader035.vdocuments.site/reader035/viewer/2022062314/56813fec550346895daaec96/html5/thumbnails/28.jpg)
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...
![Page 29: Embedded Systems Unsuitable for Object Orientation](https://reader035.vdocuments.site/reader035/viewer/2022062314/56813fec550346895daaec96/html5/thumbnails/29.jpg)
Persistent data remains availablefor later access
Built-in capabilities:- P/S data distribution- relational data access- data persistence- dynamic (re-) configuration- quality of service- fault-tolerance- network partitioning- security...
Splice: A reactive systems’ architecture
![Page 30: Embedded Systems Unsuitable for Object Orientation](https://reader035.vdocuments.site/reader035/viewer/2022062314/56813fec550346895daaec96/html5/thumbnails/30.jpg)
Built-in capabilities:- P/S data distribution- relational data access- data persistence- dynamic (re-) configuration- quality of service- fault-tolerance- network partitioning- security...
Splice: A reactive systems’ architecture
Persistent data remains availablefor later access
![Page 31: Embedded Systems Unsuitable for Object Orientation](https://reader035.vdocuments.site/reader035/viewer/2022062314/56813fec550346895daaec96/html5/thumbnails/31.jpg)
Processes may join or leavethe network at any time
Built-in capabilities:- P/S data distribution- relational data access- data persistence- dynamic (re-) configuration- quality of service- fault-tolerance- network partitioning- security...
Splice: A reactive systems’ architecture
![Page 32: Embedded Systems Unsuitable for Object Orientation](https://reader035.vdocuments.site/reader035/viewer/2022062314/56813fec550346895daaec96/html5/thumbnails/32.jpg)
Processes may join or leavethe network at any time
Built-in capabilities:- P/S data distribution- relational data access- data persistence- dynamic (re-) configuration- quality of service- fault-tolerance- network partitioning- security...
Splice: A reactive systems’ architecture
![Page 33: Embedded Systems Unsuitable for Object Orientation](https://reader035.vdocuments.site/reader035/viewer/2022062314/56813fec550346895daaec96/html5/thumbnails/33.jpg)
Processes may join or leavethe network at any time
Built-in capabilities:- P/S data distribution- relational data access- data persistence- dynamic (re-) configuration- quality of service- fault-tolerance- network partitioning- security...
Splice: A reactive systems’ architecture
![Page 34: Embedded Systems Unsuitable for Object Orientation](https://reader035.vdocuments.site/reader035/viewer/2022062314/56813fec550346895daaec96/html5/thumbnails/34.jpg)
Processes may join or leavethe network at any time
Built-in capabilities:- P/S data distribution- relational data access- data persistence- dynamic (re-) configuration- quality of service- fault-tolerance- network partitioning- security...
Splice: A reactive systems’ architecture
![Page 35: Embedded Systems Unsuitable for Object Orientation](https://reader035.vdocuments.site/reader035/viewer/2022062314/56813fec550346895daaec96/html5/thumbnails/35.jpg)
Processes may join or leavethe network at any time
Built-in capabilities:- P/S data distribution- relational data access- data persistence- dynamic (re-) configuration- quality of service- fault-tolerance- network partitioning- security...
Splice: A reactive systems’ architecture
![Page 36: Embedded Systems Unsuitable for Object Orientation](https://reader035.vdocuments.site/reader035/viewer/2022062314/56813fec550346895daaec96/html5/thumbnails/36.jpg)
Processes may join or leavethe network at any time
Built-in capabilities:- P/S data distribution- relational data access- data persistence- dynamic (re-) configuration- quality of service- fault-tolerance- network partitioning- security...
Splice: A reactive systems’ architecture
![Page 37: Embedded Systems Unsuitable for Object Orientation](https://reader035.vdocuments.site/reader035/viewer/2022062314/56813fec550346895daaec96/html5/thumbnails/37.jpg)
Processes may join or leavethe network at any time
Built-in capabilities:- P/S data distribution- relational data access- data persistence- dynamic (re-) configuration- quality of service- fault-tolerance- network partitioning- security...
Splice: A reactive systems’ architecture
![Page 38: Embedded Systems Unsuitable for Object Orientation](https://reader035.vdocuments.site/reader035/viewer/2022062314/56813fec550346895daaec96/html5/thumbnails/38.jpg)
Processes may join or leavethe network at any time
Built-in capabilities:- P/S data distribution- relational data access- data persistence- dynamic (re-) configuration- quality of service- fault-tolerance- network partitioning- security...
Splice: A reactive systems’ architecture
![Page 39: Embedded Systems Unsuitable for Object Orientation](https://reader035.vdocuments.site/reader035/viewer/2022062314/56813fec550346895daaec96/html5/thumbnails/39.jpg)
Processes may join or leavethe network at any time
Built-in capabilities:- P/S data distribution- relational data access- data persistence- dynamic (re-) configuration- quality of service- fault-tolerance- network partitioning- security...
Splice: A reactive systems’ architecture
![Page 40: Embedded Systems Unsuitable for Object Orientation](https://reader035.vdocuments.site/reader035/viewer/2022062314/56813fec550346895daaec96/html5/thumbnails/40.jpg)
QoS is attributed to data (staticallyor dynamically)
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
Splice: A reactive systems’ architecture
![Page 41: Embedded Systems Unsuitable for Object Orientation](https://reader035.vdocuments.site/reader035/viewer/2022062314/56813fec550346895daaec96/html5/thumbnails/41.jpg)
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
![Page 42: Embedded Systems Unsuitable for Object Orientation](https://reader035.vdocuments.site/reader035/viewer/2022062314/56813fec550346895daaec96/html5/thumbnails/42.jpg)
Data Delivery
• Various options:– no guarantees [0,)
– at least once [1, )
– at most once [0,1]
– exactly once [1,1]
![Page 43: Embedded Systems Unsuitable for Object Orientation](https://reader035.vdocuments.site/reader035/viewer/2022062314/56813fec550346895daaec96/html5/thumbnails/43.jpg)
Splice: A reactive systems’ architecture
Passive process replication
Built-in capabilities:- P/S data distribution- relational data access- data persistence- dynamic (re-) configuration- quality of service- fault-tolerance- network partitioning- security...
![Page 44: Embedded Systems Unsuitable for Object Orientation](https://reader035.vdocuments.site/reader035/viewer/2022062314/56813fec550346895daaec96/html5/thumbnails/44.jpg)
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
Splice: A reactive systems’ architecture
![Page 45: Embedded Systems Unsuitable for Object Orientation](https://reader035.vdocuments.site/reader035/viewer/2022062314/56813fec550346895daaec96/html5/thumbnails/45.jpg)
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
Splice: A reactive systems’ architecture
![Page 46: Embedded Systems Unsuitable for Object Orientation](https://reader035.vdocuments.site/reader035/viewer/2022062314/56813fec550346895daaec96/html5/thumbnails/46.jpg)
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
![Page 47: Embedded Systems Unsuitable for Object Orientation](https://reader035.vdocuments.site/reader035/viewer/2022062314/56813fec550346895daaec96/html5/thumbnails/47.jpg)
Built-in capabilities:- P/S data distribution- relational data access- data persistence- dynamic (re-) configuration- quality of service- fault-tolerance- network partitioning- security...
Splice: A reactive systems’ architecture
Semi-active process replication
![Page 48: Embedded Systems Unsuitable for Object Orientation](https://reader035.vdocuments.site/reader035/viewer/2022062314/56813fec550346895daaec96/html5/thumbnails/48.jpg)
Built-in capabilities:- P/S data distribution- relational data access- data persistence- dynamic (re-) configuration- quality of service- fault-tolerance- network partitioning- security...
Splice: A reactive systems’ architecture
Semi-active process replication
![Page 49: Embedded Systems Unsuitable for Object Orientation](https://reader035.vdocuments.site/reader035/viewer/2022062314/56813fec550346895daaec96/html5/thumbnails/49.jpg)
Built-in capabilities:- P/S data distribution- relational data access- data persistence- dynamic (re-) configuration- quality of service- fault-tolerance- network partitioning- security...
Splice: A reactive systems’ architecture
![Page 50: Embedded Systems Unsuitable for Object Orientation](https://reader035.vdocuments.site/reader035/viewer/2022062314/56813fec550346895daaec96/html5/thumbnails/50.jpg)
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
Splice: A reactive systems’ architecture
![Page 51: Embedded Systems Unsuitable for Object Orientation](https://reader035.vdocuments.site/reader035/viewer/2022062314/56813fec550346895daaec96/html5/thumbnails/51.jpg)
Built-in capabilities:- P/S data distribution- relational data access- data persistence- dynamic (re-) configuration- quality of service- fault-tolerance- network partitioning- security...
simulation data
operational data
Splice: A reactive systems’ architecture
![Page 52: Embedded Systems Unsuitable for Object Orientation](https://reader035.vdocuments.site/reader035/viewer/2022062314/56813fec550346895daaec96/html5/thumbnails/52.jpg)
Orthogonal scoping mechanism
• Scoping without interfering with type-safety• Can safely be imposed by the environment• Dynamically changing scopes possible
![Page 53: Embedded Systems Unsuitable for Object Orientation](https://reader035.vdocuments.site/reader035/viewer/2022062314/56813fec550346895daaec96/html5/thumbnails/53.jpg)
Splice: A reactive systems’ architecture
Dynamic scopes
![Page 54: Embedded Systems Unsuitable for Object Orientation](https://reader035.vdocuments.site/reader035/viewer/2022062314/56813fec550346895daaec96/html5/thumbnails/54.jpg)
Built-in capabilities:- P/S data distribution- relational data access- data persistence- dynamic (re-) configuration- quality of service- fault-tolerance- network partitioning- security...
Splice: A reactive systems’ architecture
Work in progress
![Page 55: Embedded Systems Unsuitable for Object Orientation](https://reader035.vdocuments.site/reader035/viewer/2022062314/56813fec550346895daaec96/html5/thumbnails/55.jpg)
Splice: A reactive systems’ architecture
• Mono-culture?– Yes, at the level of the architecture– No, at the level of individual application-level
components
• Object-Oriented?– Maybe, from the perspective of the middleware– No, at the level of the application
![Page 56: Embedded Systems Unsuitable for Object Orientation](https://reader035.vdocuments.site/reader035/viewer/2022062314/56813fec550346895daaec96/html5/thumbnails/56.jpg)
Realization
application
Networking (UDP/IP)
cache
real-timeinformation
broker
application
cache
real-timeinformation
broker
application
cache
real-timeinformation
broker
![Page 57: Embedded Systems Unsuitable for Object Orientation](https://reader035.vdocuments.site/reader035/viewer/2022062314/56813fec550346895daaec96/html5/thumbnails/57.jpg)
Connectivity
herald i herald j
appl appl
multicast / broadcast
shared-data space
Initial situation
![Page 58: Embedded Systems Unsuitable for Object Orientation](https://reader035.vdocuments.site/reader035/viewer/2022062314/56813fec550346895daaec96/html5/thumbnails/58.jpg)
Connectivity
herald i herald j
appl appl
publish() subscribe(,cache)
cache
shared-data space
need for data of sort “”availability of data of sort “”
Declaration of intent
![Page 59: Embedded Systems Unsuitable for Object Orientation](https://reader035.vdocuments.site/reader035/viewer/2022062314/56813fec550346895daaec96/html5/thumbnails/59.jpg)
Connectivity
herald i herald j
appl appl
publish() subscribe(,cache)
j shared-data space
need for data of sort “”availability of data of sort “”
cache
Declaration of intent
![Page 60: Embedded Systems Unsuitable for Object Orientation](https://reader035.vdocuments.site/reader035/viewer/2022062314/56813fec550346895daaec96/html5/thumbnails/60.jpg)
ConnectivityWrite operation
herald i herald j
appl appl
write(,v)
j
forward data
+v
shared-data spacetimestamp
![Page 61: Embedded Systems Unsuitable for Object Orientation](https://reader035.vdocuments.site/reader035/viewer/2022062314/56813fec550346895daaec96/html5/thumbnails/61.jpg)
Connectivity
appl appl
X = read(,q)
: j, k
V
shared-data space
herald i herald j
Read operation
![Page 62: Embedded Systems Unsuitable for Object Orientation](https://reader035.vdocuments.site/reader035/viewer/2022062314/56813fec550346895daaec96/html5/thumbnails/62.jpg)
Connectivity
write(,v)
, QoSj
forward data using specified QoS
<,v0,t0>, <,v1 ,t1 >, ..., <,vn ,tn >
t < t0 + timeoutn = buffersize
herald i
Write operation in detail
![Page 63: Embedded Systems Unsuitable for Object Orientation](https://reader035.vdocuments.site/reader035/viewer/2022062314/56813fec550346895daaec96/html5/thumbnails/63.jpg)
Fault tolerance
all state data
statedataPC
platform i platform k
statedata
all state data
![Page 64: Embedded Systems Unsuitable for Object Orientation](https://reader035.vdocuments.site/reader035/viewer/2022062314/56813fec550346895daaec96/html5/thumbnails/64.jpg)
Fault tolerance
all state data
statedata
P new C
platform i platform kplatform i
statedata
![Page 65: Embedded Systems Unsuitable for Object Orientation](https://reader035.vdocuments.site/reader035/viewer/2022062314/56813fec550346895daaec96/html5/thumbnails/65.jpg)
Fault tolerance
all state data
statedata
P new C
platform i platform kplatform iplatform i
statedata
![Page 66: Embedded Systems Unsuitable for Object Orientation](https://reader035.vdocuments.site/reader035/viewer/2022062314/56813fec550346895daaec96/html5/thumbnails/66.jpg)
Splice
• Deceptively simple, yet powerful– major shift of application complexity to middleware
– has demonstrated to greatly simplify system design
– radically changed the ratio between design and integration effortfrom 50/50 90/10
• Integration oriented– components
– legacy systems
– incremental deployment
– interoperability
– different operational modes
![Page 67: Embedded Systems Unsuitable for Object Orientation](https://reader035.vdocuments.site/reader035/viewer/2022062314/56813fec550346895daaec96/html5/thumbnails/67.jpg)
Splice
• Highly adaptive– history proof
– component re-use
– robust
– scalable
• Paradigm shift– simple concept, thus small learning effort
– bridges the gap between design and implementation
![Page 68: Embedded Systems Unsuitable for Object Orientation](https://reader035.vdocuments.site/reader035/viewer/2022062314/56813fec550346895daaec96/html5/thumbnails/68.jpg)
Splice
• Technologies used in Splice finally becoming mainstream– peer-to-peer communication
– push technology
– process autonomy
– data caching
• Concept has not changed last 25 years and needs no change ...– language independent
(imperative [C, Ada, Java, C#, …], functional, logic, …)
– HW & OS independent
![Page 69: Embedded Systems Unsuitable for Object Orientation](https://reader035.vdocuments.site/reader035/viewer/2022062314/56813fec550346895daaec96/html5/thumbnails/69.jpg)
Some statistics
• “Air-defense” system: Psplice / P corba = 50
• Reuse: about 85% of new system is old code
• New German frigateintegration of ~1000 software components (all new): 1st time right
• Cars example: one weekend / one person
• Size– per system: 64 k
(includes nameservers , persistence, standby process management)
– per node: 84 k
– per application process: 424 k + cache(excluding cached data)
![Page 70: Embedded Systems Unsuitable for Object Orientation](https://reader035.vdocuments.site/reader035/viewer/2022062314/56813fec550346895daaec96/html5/thumbnails/70.jpg)
Developments
• Mathematical foundation– formal semantics
– process algebra
allows reasoning about program behaviour
– fully transparent process replication
• Basis for research & development projects– distributed decision making (intelligent agents, NCW)
– engineering support (methods, tools)
– implementation of monotonic dataspace
– descriptive metadata (improved support for interoperability)
![Page 71: Embedded Systems Unsuitable for Object Orientation](https://reader035.vdocuments.site/reader035/viewer/2022062314/56813fec550346895daaec96/html5/thumbnails/71.jpg)
Coordination language
P ::= | a!v | a(v) | R.P | P||P | P+P | P*R ::= {a?x*}:q
empty processa!v write tuple (a,v) to dataspace
this action is non-blocking
a(v) remove arbitray many tuples (a,w): (a,w) (a,v)this action is non-blocking
{a1?x1, ..., an?xn}:q . P search sets {vi1, ..., vin}, such thatq[vi1/x1,...vin/xn] holds
this action is blockingP||Q parallel compositionP + Q non-deterministic (inclusive) choiceP* infinite (possibly parallel) repetition
![Page 72: Embedded Systems Unsuitable for Object Orientation](https://reader035.vdocuments.site/reader035/viewer/2022062314/56813fec550346895daaec96/html5/thumbnails/72.jpg)
Coordination language
commutativity: P || Q = Q || PP + Q = Q + P
associativity: (P || Q) || R = P || (Q || R)(P + Q) + R = P + (Q + R)
idempotency: P || P = PP + P = P
distributivity: a?x.P + a?x.Q = a?x.(P + Q)P || (Q + R) = (P||Q) + (P||R)
![Page 73: Embedded Systems Unsuitable for Object Orientation](https://reader035.vdocuments.site/reader035/viewer/2022062314/56813fec550346895daaec96/html5/thumbnails/73.jpg)
Coordination language
NOT given is: a?x . P || a?x . Q = a?x . (P||Q)
consider e.g.
a?x . b!v || a?x . c!w || a(u), with S = { <a,u> }
then this may result in S = { <b,v> } and no further step is possible
but in
a?x . (b!v || c!w) || a(u)
that can never occur
![Page 74: Embedded Systems Unsuitable for Object Orientation](https://reader035.vdocuments.site/reader035/viewer/2022062314/56813fec550346895daaec96/html5/thumbnails/74.jpg)
<P||P*,S> <P’,S’><P*,S> <P’,S’>
<P,S> <P’,S’><P+Q,S> <P’,S’><P+Q,S> <P’+Q,S’>
<P,S> <P’,S’><P||Q,S> <P’||Q,S’>
<P,S> <P’,S> <P,S> <P’’,S><P,S> <P’ + P’’,S>
Coordination language<a!v,S> <,S {(a,v)}><a (v),S V> < ,S> if V. (a,v)
<a?x:q. P,S> <P[v/x],S> if (a,v) S q[v/x]
![Page 75: Embedded Systems Unsuitable for Object Orientation](https://reader035.vdocuments.site/reader035/viewer/2022062314/56813fec550346895daaec96/html5/thumbnails/75.jpg)
Coordination language
A simple example:
A sensor generates position measurements (plots).The tracking problem is to correlate them.
tracker: ( {plot?p, track?t } : [correlates(p,t)] .
( track!(p,t) || plot(p) )
) *
![Page 76: Embedded Systems Unsuitable for Object Orientation](https://reader035.vdocuments.site/reader035/viewer/2022062314/56813fec550346895daaec96/html5/thumbnails/76.jpg)
Coordination language
sensor_track: (Source, Id, Vector, Int)system_track: (Id, Vector, Int)table: ((Source, Id) Int, Int)search: ({Int}, Id, Int)
main = join * || find *join = { table?(,k), sensor?(s,i,x,k)}.(update(,s,i,x,k) || table!([(s,i):=k],k+1))update(,s,i,x,k) =
system_track?(j,y,k’): decorrelates(x,y) k’ . system_track!(j,F(x,y),k)+ system_track?(j,y,k’): decorrelates(x,y) k’ . search!(ran()\{},0,k)+k’= . search!(ran()\{},0,k)
where k’=(s,i)
find = {search?(K,m,k),sensor_track?(s,i,x,k)} . let k’ = min K in K= . system_track!(m+1,x,k)+ system_track?(j,y,k’):correlates(x,y) K . system_track!(j,F(x,y),k)+ system_track?(j,y,k’): correlates(x,y) K . search!(K\{k’}, max(j,m),k)
correlate
decorrelate
![Page 77: Embedded Systems Unsuitable for Object Orientation](https://reader035.vdocuments.site/reader035/viewer/2022062314/56813fec550346895daaec96/html5/thumbnails/77.jpg)
Coordination language
main = index* || (update + decorrelate + new_sensor_track)* || (new_system_track + associate + find)*main = index* || update * || decorrelate* || new_sensor_track* || new_system_track* || associate* || find*
index = {table?(,k),sensor_track(s,i,x,k)} . table!((s,i):=k,k+1)update = {table?( ,k),sensor_track?(s,i,x,k),system_track(j,y,k’)}: decorrelates(x,y) k .
system_track!(j,F(x,y),k)where k’ = (s,i)
decorrelate = {table?( ,k),sensor_track(s,i,x,k),system_track(j,y,k’)}: decorrelates(x,y) k .search!(ran()\{},0,k)
where k’= (s,i)new_sensor_track = {table?( ,k),sensor_track(s,i,x,k)}: (s,i)= . search(ran()\{},0,k)new_system_track = {search?(K,m,k),sensor_track(s,i,x,k)}:K= . system_track!(m+1,x,k)associate = {search?(K,m,k),sensor_track?(s,i,x,k),system_track?(j,y,k’)}:correlates(x,y) K .
system_track!(j,F(x,y),k)where k’=min K
find = {search?(K,m,k),sensor_track?(s,i,x,k),system_track?(j,y,k’)}: correlates(x,y) K .search!(K\{k’},max(j,m),k)
where k’=min K