Dynamica | Microsoft
 PRISMA Microsoft Project  Minimize

PRISMA: MODEL COMPILER OF ASPECT-ORIENTED COMPONENT-BASED SOFTWARE ARCHITECTURES

 

The PRISMA model compiler is a project funded by Microsoft Research Cambridge. The main goal of this project is to develop a model compiler to generate automatically C# code from the PRISMA architectures.

The PRISMA model compiler project is divided into several phases in order to schedule the objectives of the project. These phases are presented in detail following:

 

1.- Compiling from PRISMA specifications to C#

 

2.- Graphical interface of the PRISMA model compiler

 

3.- Supporting Evolution

 

4.- Applications

logoMSR.jpg

 
 Members of the PRISMA Microsoft Project  Minimize

Project Leader:  Dr. Isidro Ramos Salavert

 Project Manager:  Mrs. Jennifer Pérez Benedí

 Assistant Professors: Dr. Jose Ángel Carsí Cubel

                                     Dr. Pedro Sánchez Palma

                                     Dr. Juan Ángel Pastor Franco

 PhD Students:  Ms. Nour  Ali Irshaid

 Programmers:  Mr. Cristóbal Costa Soria

                              Mr. Jose Manuel Cercós

                              Mr. Rafael Cabedo Archer

 
 Compiling from PRISMA specifications to C#  Minimize

The PRISMA approach

 
 PRISMANET Middleware  Minimize

The PRISMA ADL (Architecture Description Language) is a specification language independent of the development platform. For this reason, an abstract middleware that sits above the .NET platform has been developed to implement .NET PRISMA applications. This middleware is called PRISMANET, and its implementation has been carried out in C# language using the standard techniques that the .NET framework provides, that is, without extending the development platform. As a result, PRISMANET can be executed in the .NET platform without having to do anything else other than starting the execution of the middleware.

PRISMANET offers the extra functionalities and characteristics which .NET does not directly provide. It allows for the execution of aspects, the reconfiguration of software architectures (local and distributed), the load of components, the creation of execution threads, the management of the local components, the addition and removal of aspects from components at run-time, the mobility and replication, etc.

PRISMANET Architecture

The PRISMANET architecture is constituted by two modules:

  • PRISMA Server: Provides services to manage, move, maintain and evolve components.
  • PRISMA Framework: User interface that offers the user the available services of the Server module. In addition, the state messages of the middleware are displayed on this user interface.
Distribution_of_MWs.jpg

As PRISMA specifies software architectures of distributed systems, distribution needs has also been taken into account in the development of the middleware. PRISMANET has to run on each node where a PRISMA application needs to be executed. Each middleware manages the architectural elements instances that are being executed in its specific node, providing the necessary distribution, mobility, maintenance and evolution services to the instances. In order to keep the consistence of distributed software architectures and to make the instances work as if they were local instances, each middleware is able to interchange information with the other middlewares of the different nodes of a software architecture.

There are three kinds of communications concerning PRISMANET and the applications that run on it:
  • Calls from the components to the middleware to ask for mobility and replication services.
  • Communication among different components as a result of the execution of the application.
  • Communication among different middlewares to find out locations of components, to move components, to evolve the architectures, etc.
 
 A case study: the TeachMover Robot  Minimize

The PRISMA Microsoft Research Cambridge project consists of the specification of industrial systems such as the EFTCoR teleoperation system. EFTCoR is a robotic platform that cleans the hulls of ships and that has strong requirements in terms of adaptability to different devices, safety for operators, response time, etc. These systems need dynamic reconfiguration to overcome their large set of variability sources.

Before developing the software architecture of EFTCoR, we specified and implemented the PRISMA architecture of the TeachMover robot. The Teach Mover is simpler than EFTCoR, but it has the same architectural features. The next task is to implement the EFTCoR architecture reusing the implemented components of the TeachMover robot.

The TeachMover Robot

RobotTeachMover1.jpg  RobotTeachMover2-Parts.jpg

This robot is composed by a set of joints that permit its movement: Base, Shoulder, Elbow and Wrist. In addition, it has a Tool to perform different tasks. In this case study, the tool is a gripper where open and close actions allow it to pick up objects. The functionality of the TeachMover robot is to move objects from an initial position to a final one. Their movements are ordered by an operator from a computer.

The TeachMover architecture has a lot of components, connectors and attachments at different levels of abstraction. Because of its complexity, here is only shown the lowest level of the architecture. Every joint is composed by two PRISMA components: an actuator and a sensor, connected to each other by means of a PRISMA connector. On the one hand, Actuators are such elements responsible of sending instructions to the robot. On the other hand, Sensors are responsible of checking that the movement has been executed succesfully.

Single joint architecture

The complete specification of this Case Study can be found in these references:

  • Pérez J., Cabedo R., et Al. Arquitectura PRISMA para el Caso de Estudio: Brazo Robot.
    Actas del II workshop DYNAMICA – DYNamic and Aspect-Oriented Modeling for Integrated Component-based Architectures, pags. 119-127, junto a Jornadas de Ingeniería del Software y Bases de Datos (JISBD), Málaga, noviembre 2004 (Spanish)
  • Pérez J., Ali N., Carsí J.A., Ramos I.Arquitectura PRISMA para el Caso de Estudio: Robot 4U4
    Actas DSIC-II/13/04, Universidad Politécnica de Valencia, 2004(Spanish)
 
 DSL Tools GUI  Minimize

Now we are working in the development of the PRISMA compiler: from PRISMA ADL to C# Code.

DSLTools-PRISMA MetaModel DSLTools-PRISMAModel