Publication:
Diseño e implementación del kernel de xDEVS, versión distribuida

Loading...
Thumbnail Image
Official URL
Full text at PDC
Publication Date
2016
Advisors (or tutors)
Editors
Journal Title
Journal ISSN
Volume Title
Publisher
Citations
Google Scholar
Research Projects
Organizational Units
Journal Issue
Abstract
Para entender nuestro proyecto, debemos comprender DEVS. Dentro de los formalismos más populares de representación de sistemas de eventos discretos se encuentra DES. En la década de los 70, el matemático Bernard Zeigler propuso un formalismo general para la representación de dichos sistemas. Este formalismo denominado DEVS (Discrete EVent System Specification) es el formalismo más general para el tratamiento de DES. DEVS permite representar todos aquellos sistemas cuyo comportamiento pueda describirse mediante una secuencia de eventos discretos. Estos eventos se caracterizan por un tiempo base en el que solo un número de eventos finitos puede ocurrir. DEVS Modelado y Simulación tiene múltiples implementaciones en varios lenguajes de programación como por ejemplo en Java, C# o C++. Pero surge la necesidad de implementar una plataforma distribuida estable para proporcionar la mecánica de interoperabilidad e integrar modelos DEVS diversificados. En este proyecto, se nos dará como código base el core de xDEVS en java, aplicado de forma secuencial y paralelizada. Nuestro trabajo será implementar el core de manera distribuida de tal forma que se pueda dividir un sistema DEVS en diversas máquinas. Para esto hemos utilizado sockets de java para hacer la transmisión de datos lo más eficiente posible. En un principio deberemos especificar el número de máquinas que se conectarán al servidor. Una vez estas se hayan conectado se les enviará el trabajo específico que deberán simular. Cabe destacar que hay dos formas de dividir un sistema DEVS las cuales están implementadas en nuestro proyecto. La primera es dividirlo en módulos atómicos los cuales son subsistemas indivisibles en un sistema DEVS. Y la segunda es dividir las funciones de todos los subsistemas en grupos y repartirlos entre las máquinas. En resumen el funcionamiento de nuestro sistema distribuido será comenzar ejecutando el trabajo asignado al primer cliente, una vez finalizado actualizará la información del servidor y este mandara la orden al siguiente y así sucesivamente.
In order to understand our project, it is necessary to understand DEVS. DES is one of the most popular representation formalisms of discrete event systems. In the 70s, the mathematician Bernard Zeigler proposed a general formalism for the representation of such systems. This formalism called DEVS (Discrete EVent System Specification) is the most general formalism for the treatment of DES. DEVS allows to represent all those systems whose behaviour can be described by a sequence of discrete events. These events are characterized by a timebase in which only a finite number of events can occur. DEVS Modeling and Simulation has multiple implementations with several computer languages such as Java, C# or C++. Therefore emerges the need of a stable distributed platform to provide interoperability mechanics and integration of diversified DEVS models. In this project, we will be given the core of xDEVS in java as code base, applied sequentially and in a parallelized way. Our job is to implement the distributed form of the xDEVS core so that it can divide a DEVS system into different machines. For this purpose, we have used java sockets for efficient data transmission. At first we specify the number of machines that will connect to the server. Once these have been connected, the server will send them the specific work to be simulated. There are two ways of dividing a DEVS system which are implemented in our proyect. The first one is dividing into atomic modules which are indivisible subsystems. The second is to divide the functions of all subsystems in groups and spread them between machines. To summarize the operation of our distributed system will be start executing the work assigned to the first worker, once completed will update the server and these will send the order to the next and so on.
Description
Trabajo de Fin de Grado en Ingeniería de Computadores (Universidad Complutense, Facultad de Informática, curso 2015/2016)
Keywords
Citation