Fakultät für Informatik Institut für Software- und Multimediatechnik
RoSI Kickoff Meeting
Beyond Simple Objects
Prof. Dr. Uwe Aßmann
Institut für Software- und Multimediatechnik (SMT)
Fakultät für Informatik, TU Dresden
Fakultät für Informatik Institut für Software- und Multimediatechnik
What is RoSI?
Role-based Software-Infrastructures (RoSI)
The Simple Answer..
Fakultät für Informatik Institut für Software- und Multimediatechnik
Partitioning Objects and Types for
Separation of Concerns
Role-based Software-Infrastructures (RoSI)
Different Attributes
name = “Peter”
taxId = 0493027940
marriedTo = “Silvie”
fatherTo = “Vanessa”
employeeOf = “Folgswagen”
heart = “heart12303”
knee = “knee23”
foodInStomach = “apple”
age = “grown-up”
:Person
Role-based Software-Infrastructures (RoSI)
Different Attributes
name = “Peter”
taxId = 0493027940
marriedTo = “Silvie”
fatherTo = “Vanessa”
employeeOf = “Folgswagen”
heart = “heart12303”
knee = “knee23”
foodInStomach = “apple”
age = “grown-up”
:Person
<<core>>
<<roles>>
<<intrinsic parts>>
<<transient parts>>
<<phases>>
Role-based Software-Infrastructures (RoSI)
Cores and Mixins
(“Subobjects”, “Satellites”)
<<core>>
name = “Peter”
taxId = 0493027940
:Person
<<role>>
marriedTo = “Silvie”
fatherTo = “Vanessa”
employeeOf = “Folgswagen”
<<intrinsic part>>
heart = “heart12303”
knee = “knee23”
<<transient part>>
foodInStomach = “apple”
<<phase>>
age = “grown-up”
Role-based Software-Infrastructures (RoSI)
Separation of Concerns with Roles:
Distinguishing Life-Times
•
Roles are contextually dependent (founded)
–
Different life-time to the core
–
Memory allocation must be different
Roles can improve knowledge about life-time and co-life-time of
memory
Roles can improve knowledge about life-time and co-life-time of
memory
Role-based Software-Infrastructures (RoSI)
Role Modelling
•
Separate the
functional core
of an object of its
context-based
a
nd
fluid
features
•
Restrictions so far:
–
only used in singular fields of Computer Science
–
no cross-layer correspondance
–
no formalization
9
plays-a
Person
Employee
Employer
Company
Role-based Software-Infrastructures (RoSI)
Example: Business Objects
•
Extend behavior dynamically by
roles (context-based and fluid
Typen)
10
plays-a
Role-based Software-Infrastructures (RoSI)
Example: Business Objects
•
Extend behavior dynamically by
roles (context-based and fluid
types)
• Refinement by role inheritance
•
11
is-a
plays-a
Person
Customer
Vendor
plays-a
Company
Long - Term
Customer
Premium
Customer
Role-based Software-Infrastructures (RoSI)
Separation of Concerns with Roles:
Alias Freedom and Data Independence
•
Distinguish
–
natural memory
(core-local memory)
–
founded memory
(context-dependent memory)
–
role-shared memory
•
Core and role-local memory are alias free
–
Shared memory is still problematic (competitive writes)
Roles can improve knowledge about life-time and independence of
objects
Roles can improve knowledge about life-time and independence of
objects
Role-based Software-Infrastructures (RoSI)
Separation of Concerns with Roles:
Role-Based Contracts are Context-Based
•
Contracts describe conditions for
substitutability
•
Life-time and Alias Independence enable
–
Encapsulation
–
Less dependence between parallel processes
Roles can improve contract theory for sequential and parallel classes
Role-based Software-Infrastructures (RoSI)
RoSI Architectural Style for Parallel
Programming
•
How to find parallelism many-cores?
–
Execute all role models and all objects in parallel
Collaborations are natural parallel units with “local” memory
Role-based Software-Infrastructures (RoSI)
Role Types are Mixin Types;
Mixin Types are Metatypes
•
A metatype describes a type (is a type of a type)
–
Natural Type
–
Part Type
–
Role Type
Hypothesis:
The distinction of metatypes promotes
Separations of Concerns.
Hypothesis:
The distinction of metatypes promotes
Separations of Concerns.
Role-based Software-Infrastructures (RoSI)
Distinguishing Mixin Types (“Colors”,
“Metatypes”, “Satellite Types”)
<<natural type>>
<<sortal>>
name: String
taxId: int
Person
<<role type>>
marriedTo: Person
fatherTo: Person
employeeOf: Company
<<intrinsic part type>>
heart: Heart
knee: Knee
<<transient part type>>
foodInStomach:Food
Role-based Software-Infrastructures (RoSI)
Separation of Concerns Helps in
Parallelism
•
The distinction of mixin types (and metatypes) enables us to
identify more natural parallelism
–
because of SoC
•
And bring it to run-time: Life-time, independence, ….
•
Cross-cutting: traceability, certification,...
Roles can improve parallel programming.
Role-based Software-Infrastructures (RoSI)
The Next Steps of OO:
Three RoSI Object Models
Amoeba Objects (memory roles)
Memory-tuned Distributed Objects
Memory-autotuned Distributed Objects
2010
1990
2000
2013
Enterprise Objects
Role-based Objects
1980
Metatype-based Objects (with mixins)
of other metatypes (parts..)
2014
Cyber-Physical Objects (role contracts)
with contracts on all qualitites and metatypes
2015
2016
Role-based Software-Infrastructures (RoSI)
Separation
of Concerns
RoSI
•
Life times of complex
objects with OntoClean
metatypes
Orchestration Path
•
Distribution Tuning
•
Layout Tuning
Resilience Path
•
Imprecision contracts
for Resilience
•
SMAGs ADL and
infrastructure
HAEC
•
Quality Contracts
•
Energy Contracts
•
MQuAT
•
Quality predicate
dispatching
A Common Vision of the cfAED and
RoSI
Role-based Software-Infrastructures (RoSI)
Dijkstra on Separation of Concerns
Roles and mixins introduce separations of concerns.
Roles and mixins introduce separations of concerns.
E. W. Dijkstra “On the Role of Scientific Thought”, EWD 447 Selected Writings
on Computing: A Personal Perspective, pages 60–66, 1982.
"Let me try to explain to you, what to my taste is
characteristic for all intelligent thinking.
It is, that one is willing to study in depth an
aspect of one's
subject matter in isolation
for the sake of its own
consistency, all the time knowing that one is occupying
oneself only with one of the aspects.
Role-based Software-Infrastructures (RoSI)
Hope...