Zdravković, M., Trajanović, M. On the Runtime Models for Complex, Distributed and Aware Systems. 5th International Conference on Information Society Technologies, Kopaonik, Serbia, March 2015
On the Runtime Models for Complex, Distributed and Aware Systems
1. 5th International Conference on Information Society and Technology (ICIST 2015), March 8-11th, 2015, Kopaonik, Serbia
On the Runtime Models for
Complex, Distributed and Aware
Systems
Milan Zdravković, Miroslav Trajanović
Laboratory for Intelligent Production Systems (LIPS),
University of Niš, Serbia
2. 5th International Conference on Information Society and Technology (ICIST 2015)
• Motivation
• Computing becomes omnipresent
• Computing platforms become too diverse, the only common feature is
that they are all identifiable (in IoT)
• Hence, the lack of interoperability between systems hosted by those platforms
• IoT becomes reality but still trapped in “application silos”
• Research question
• Could (should) we fire all developers and get rid of their (MANY
DIFFERENT) ideas on how one software should be designed (including
ideas about how much they should get payed for that) and make the
software solely driven by the models, the models we ALL can
understand?
Background
3. 5th International Conference on Information Society and Technology (ICIST 2015)
• Why modelling as a part of software engineering process does
not work sometimes?
• Because “developer implements software solutions to the problems
by using abstractions that are at a lower level than those used to
express the problem.”
• MDE shortens that gap but in fact, it does not remove it
completely.
• The solution: runtime models
Good news: Everything is model! More
or less explicit model
runyourmodel.com
4. 5th International Conference on Information Society and Technology (ICIST 2015)
• Model Driven Architecture (MDA)
• CIM, PIM, PSM
• MOF, UML, QVT
• Formal Specification Techniques (FST)
• Z, Alloy
• UML2Z, UML2Alloy
• Business logic modelling
• BPMN (?), DSM for business logic of information systems
• Runtime models
• To monitor and verify particular aspects of the runtime behavior of the information
system
• Used by the agents responsible for managing the runtime environment, and for
adapting and evolving the software during runtime
• Ontology-driven systems
• The notion of “ontology-driven information system”, as a system that make use of
formally defined ontologies, was coined by Guarino in 1998
• System becomes a tool for ontology browsing and instantiating, ontology-scaffolding
tool
Evolution of MDE towards runtime
models
5. 5th International Conference on Information Society and Technology (ICIST 2015)
• Generates
CRUD
features
based on
specified
RDF/XML
ontology.
OntoApp tool
• LAMP app, using RDF API
for PHP, Neo4J Graph
database for storing individuals (persistent neutral).
• interprets also the formal restrictions (value, cardinality) expressed as
anonymous parent concepts – necessary conditions for a given concept
6. 5th International Conference on Information Society and Technology (ICIST 2015)
Interoperability as an inherent capability
of OntoApp driven system
OntoApp1
Ontology1 (URI1)
NoSQL1
OntoApp2
Ontology2 (URI2)
Node type Concept2
NoSQL2
URI1#Concept1
URI1#Concept1=URI2
#Concept2
imports
URI2#Concept2
7. 5th International Conference on Information Society and Technology (ICIST 2015)
• App ontology
• Describe the general app
concepts, imports the formal
model and stores mappings
• Access restrictions (user, context)
• App customization (labels, views,
workflows,..)
• Business logic
• “Traditional” interoperability
• Bulk instantiation by using
Connectors to RESTful
interfaces (with mappings
between concept definition
and incoming JSON or XML
structure)
• RESTful interfaces to the data
concepts
Ongoing and future development
data-concept
=data-concept
or data-individual
or data-setdata-individual
createdAt:
dateTime{xsd}
data-set
data-action
=action
and (relatedTo
some data-
individual)
completed-
action
=action
and (carriedOutAt
exactly 1 dateTime
{xsd})
workflow-action
=action
and
(hasPrecondition
some completed-
action)
view
<data-individual
or data-set
or (viewOf exactly
1 data-concept)
action
carriedOutAt:
dateTime{xsd}
workflow
agent
user
hasPassword:
string
hasUID:string[1]
app
single-user-app
=app
and (operatedBy
exactly 1 user)
multi-user-app
=app
and (operatedBy
min 2 user)
model
<hasURI exactly 1
anyURI
data-structure
=data-concept
or data-set
hasAction
carriedOutOn
hasDataConcept 1..*ofModel
carriedOutBy 1
hasView
viewOf
hasDataIndividual
some
[1..*]
enable 1..*
operatedBy 1..*
ownModel
hasDataIndividual
dataIndividualOf
8. 5th International Conference on Information Society and Technology (ICIST 2015), March 8-11th, 2015, Kopaonik, Serbia
TYFYA
Milan Zdravković, Miroslav Trajanović
More information at http://www.masfak.ni.ac.rs/milan.zdravkovic
Editor's Notes
Today, MDE approaches and practices are commonly addressed by using a Model Driven Architecture (MDA). MDA is a framework of MDE standards, launched and maintained by Object Management Group (OMG). It distinguishes between computation independent (CIM), platform independent (PIM) and platform specific (PSM) models. Main pillars of MDA are Meta Object Facility (MOF) language for defining the abstract syntax of modeling languages, UML and Query, View, Transformation standard (QVT) for specifying PIM to PSM transformations.
One of the main problems of the current models is a lack of validation tools. Typically, the models of complex information systems are extensively large and in general, there exist no tools for querying and navigating them. More important, there exist no tools for their analysis. Thus, it becomes very difficult to maintain their consistency. This analysis can involve the consistency checking (for example, the relationships between the occurrences of the same software artifact in different viewpoints), completeness and dependability. Thus, reasoning on the formal specification of one system can be further used to prove that all actions will result in a discrete set of states, that some system properties are bounded, that error states are unreachable, etc.
FST aims at facilitating so-called transformational programming or program transformation. The latter refers to an operation which transforms one computer program to another, which is “semantically equivalent to the original, relative to a particular formal semantics”.
OntoApp interprets the formal model, expressed as RDF/XML ontology to generate CRUD functionality on the set of concepts, as specified in ontology. Based on the formal definition of each of the concepts, the form is being generated in a runtime and used to define an instance of the given concept, which is then stored in Neo4J database as a graph node, with a label corresponding to the name of the concept.
Each OntoApp system comprises of three assets, natively distributed (see Fig.3): OntoApp, ontology and NoSQL database. OntoApp execution environments (OntoApp1, OntoApp2) are installed on the different platforms. Each of the environments is driven by one of the respective ontologies (Ontology1, Ontology2) with specified Uniform Resource Identifiers (URI1, URI2). Then, the execution environments are using ontologies to create and manage graphs, stored in respective NoSQL databases (NoSQL1, NoSQL2).
When Ontology1, driving OntoApp1 environment imports Ontology2, the concepts of the latter can be instantiated (nodes created and managed) in NoSQL2, by using OntoApp1. This is possible only for concepts of Ontology2, which are annotated with the connection strings, corresponding to the location and authentication of NoSQL2 database; and defined access rights.
When logical equivalence relationship is established between the different concepts in source (Ontology1) and imported ontology, then OntoApp1 can be enabled with a centralized access to the distributed repository of information objects, thus enabling for example, integrated reporting, bulk processing, etc.
Finally, using other logical relationships to connect the different concepts from the different ontologies enables the construction and maintenance of the federated objects, whose different attributes are stored across multiple NoSQL repositories.
First, simple user administration model is being embedded, based on its formal definition in the helper ontology. It defines user instances (stored in helper ontology) and assignments of CRUD rights, on the specified concepts of the imported ontology – runtime model. Second, context restriction is being implemented. It enables restriction of CRUD rights based on the selected instances – enabling access to all instances (nodes) from or to which a graph can be traversed.
A tribute to an excessive use of acronyms in this presentation.