MOVICLOUD : Agent-Based 3 D Platform for the Labor Integration of Disabled People

Agent-Based Social Simulation (ABSS), used in combination with three-dimensional representation, makes it possible to do near-reality modeling and visualizations of changing and complex environments. In this paper, we describe the design and implementation of a tool that integrates these two techniques. The purpose of this tool is to assist in creating a work environment that is adapted to the needs of people with disabilities. The tool measures the degree of accessibility in the place of work and identifies the architectural barriers of the environment by considering the activities carried out by workers. Thus, thanks to the use of novel mechanisms and simulation techniques more people with disabilities will have the opportunity to work and feel comfortable in the environment. To validate the developed tool, a case study was performed in a real environment.


Introduction
According to the World Health Organization [1], around 15% of the total world population suffers from some kind of physical disability.From the total number of disabled people, 2% to 4% experience serious difficulties in performing daily activities.At present, disability is a factor that often impedes people from enjoying equal work opportunities, despite having all the necessary qualifications.This is due to the employers' negative attitudes, the lack of information and poorly adapted working environments.Statistics show that this is a serious problem, in developed countries around 50-70% of disabled people in working age are unemployed (reaching 80-90% in developing countries) [2].
Our society is becoming increasingly aware of the challenges faced by people with disabilities, including difficulties in finding employment.As a result of this collective awareness, large institutions and governments have created proposals related to the employment of people with disabilities.Many of these proposals have been put into practice, especially since the declaration of the Standard Rules on the Equalization of Opportunities for Persons with Disabilities issued by the UN [3].We can find various concrete regulatory frameworks, which aim to promote social justice and facilitate access to work for people with disabilities.Two important frameworks can be distinguished, the European Disability Strategy 2010-2020 [4] and the Americans with Disabilities Act [5].Not only governments have taken initiatives, many companies are also committed to including and promoting people with disabilities in the private sector.An example of this is the ILO Global Business & Disability Network Charter [6], signed by 11 large companies worldwide.and computational simulation.In recent times, other areas of study whose interests interact with each other have also emerged, as shown in Figure 1 [19].ABSS is a discipline that deals with the simulation of social phenomena by using multi-agent computational models.Therefore, ABSS is a combination of social sciences, agent-based computing and computational simulation.In recent times, other areas of study whose interests interact with each other have also emerged, as shown in Figure 1 [19].The use of the theory of agents in the framework of simulations is especially indicated when it is necessary to capture the different tasks, elements, objects or people of complex and dynamic environments.This is because these can be implemented without needing to have a great knowledge about the global interdependencies.Another reason is the ease they offer when building them when facing changes in the model, since generally it is only necessary to make local changes, not global [20].This paradigm is used in many disciplines; some examples can be found in the field of health [21], urbanism [22], economics [23], architecture [24], criminology [25] or biology [26] among others.
The Foundation of Intelligent Physical Agents (FIPA) is an international non-profit organization whose main objective is the development of different standards to promote the use of intelligent agents.The specifications made by FIPA have been grouped into three sets: FIPA 97, FIPA 98 and FIPA 2000.In these groups, the characteristics of agents and multi-agent systems are defined in relation to their management, communication languages, interactions between agents and human, mobility or security among others.The architecture proposed by FIPA for the development of multiagent systems is defined in terms of abstract designs, as an interface.In this way, multiple implementations of this architecture can be possible, attending to the interests of concrete developments.The pursued idea is to obtain different implementations of the same architecture, which defines common elements of the different systems, so that they operate under the same specification, in an interoperable way.There are several agent development platforms based on FIPA specifications such as Lightweight and Extensible Agent Platform (LEAP) [27], FIPA-OS [28], Reusable Task Structure-based Intelligent Network Agents (RETSINA) [29] or MOLE [30].However, the most widespread platform is JADE (Java Agent Development Environment) [31].It is a framework for the development of multi-agent systems whose objective is to simplify the development of this type of systems through a set of system services and auxiliary agents, making use of the FIPA Interaction protocols, which facilitates the communication between agents.JADE is implemented in Java and is distributed as free software with Lesser General Public License (LPGL).The communication architecture of JADE offers an efficient and flexible message communication, where the platform is responsible for creating and managing a queue of arrival Agent Communication Language (ACL) messages, which are private for each agent.
Currently, the idea of modeling systems through the iterations that occur between their agents is opening the way to a new trend: modeling the behavior of the system from an organizational point The use of the theory of agents in the framework of simulations is especially indicated when it is necessary to capture the different tasks, elements, objects or people of complex and dynamic environments.This is because these can be implemented without needing to have a great knowledge about the global interdependencies.Another reason is the ease they offer when building them when facing changes in the model, since generally it is only necessary to make local changes, not global [20].This paradigm is used in many disciplines; some examples can be found in the field of health [21], urbanism [22], economics [23], architecture [24], criminology [25] or biology [26] among others.
The Foundation of Intelligent Physical Agents (FIPA) is an international non-profit organization whose main objective is the development of different standards to promote the use of intelligent agents.The specifications made by FIPA have been grouped into three sets: FIPA 97, FIPA 98 and FIPA 2000.In these groups, the characteristics of agents and multi-agent systems are defined in relation to their management, communication languages, interactions between agents and human, mobility or security among others.The architecture proposed by FIPA for the development of multi-agent systems is defined in terms of abstract designs, as an interface.In this way, multiple implementations of this architecture can be possible, attending to the interests of concrete developments.The pursued idea is to obtain different implementations of the same architecture, which defines common elements of the different systems, so that they operate under the same specification, in an interoperable way.There are several agent development platforms based on FIPA specifications such as Lightweight and Extensible Agent Platform (LEAP) [27], FIPA-OS [28], Reusable Task Structure-based Intelligent Network Agents (RETSINA) [29] or MOLE [30].However, the most widespread platform is JADE (Java Agent Development Environment) [31].It is a framework for the development of multi-agent systems whose objective is to simplify the development of this type of systems through a set of system services and auxiliary agents, making use of the FIPA Interaction protocols, which facilitates the communication between agents.JADE is implemented in Java and is distributed as free software with Lesser General Public License (LPGL).The communication architecture of JADE offers an efficient and flexible message communication, where the platform is responsible for creating and managing a queue of arrival Agent Communication Language (ACL) messages, which are private for each agent.
Currently, the idea of modeling systems through the iterations that occur between their agents is opening the way to a new trend: modeling the behavior of the system from an organizational point of view.Following this trend, it is necessary to define concepts of rules [32], norms and institutions [33] and social structures [34], which arise from the need to have a higher level of abstraction-independent of the agent-, which explicitly defines the organization in which agents coexist.In this context, the concept of agent society emerges [35], as the set of interrelated and interacting artificial entities, which are governed by certain rules and conditions.The architectures used to model and build multi-agent systems based on organizations must support the coordination between agents, so that they can dynamically adapt to changes in their structure, objectives or interactions [36].By doing this, it is possible to allow the coexistence of agents in shared environments, in such a way that they can carry out their objectives.When an agent is part of a society of agents, it takes a collectivist vision, so it must take into account the global functioning of the system, how some agents influence others, so that he does not focus on itself.The current trend towards computer developments with collaborative work environments, distributed knowledge management, has sparked interest in virtual organizations: a set of people and institutions that need to coordinate resources and services across different institutional boundaries [37].There is a clear analogy between human societies and agents; we can define a human society as a formation or social entity with a number of members that can be specified and an internal differentiation of the functions that are performed by these members [38] and as an agent organization a collection of roles, which maintain certain relationships among themselves, and that take part in patterns of interaction with other roles in an institutionalized and systematic way [39].
On the one hand, ABSS has been applied with good results for the design of work methods [40] or training of people with disabilities [41] and on the other hand, VO have also been previously applied to similar scenarios such as the monitoring of elderly and disabled people in geriatric residences [42].However, the use of this techniques (together or separated) has not yet been applied to the integration of people with disabilities in their working place.Though, considering the current state of the art, ABSS together with the social aspects that VO provide (analogous to the human societies), are suitable techniques for modeling work environments where there are people with disabilities, since they allow modeling large and distributed problems where environments are open and dynamic and a set of actors with different roles interact.By following this kind of approach to perform simulations, it will be possible experiment on a model, which if is good enough, will respond in a similar way to the studied system.This would allow to carry out different models of experiments on multiple occasions, permitting to test and evaluate the different configurations, besides of being able to include random components.Thanks to this, it is possible to analyze the simulation context from different perspectives, obtaining much more realistic results from the analysis.In the case of the labor integration of disabled people, these techniques can be applied to the simulation of different work scenarios in order to detect, from these simulations, which are the obstacles that these people may find in their work, thus being able to take preventive actions to eliminate these limitations.
Therefore, in view of the limitations observed in the existing platforms, within the framework of this work, the MOVICLOUD platform will incorporate a novel simulation environment, based on 3D techniques that allow ABSS to be made from advanced models of physical spaces, that would allow to perform simulations in a closer way to reality.Next, the design of this platform is detailed.

MOVICLOUD Platform
Zambonelli et al. [39] introduce the idea that MAS must accept the participation of agents of all types, regardless of architectures and languages.This statement goes to the extreme in the framework of social computing, where humans and machines work collaboratively [9].However, it is necessary to determine rules or social rules for agents, since a priori their behavior is not trustful.Thus, the idea of modeling systems through iterations has evolved to the point of being necessary to perform an organizational model, where artificial societies exist [43] in which humans and machines collaborate to achieve the common objectives of the society.Following this trend, it is necessary to define concepts of rules [32], norms and institutions [33] and social structures [34], which arise from the need to have a level of abstraction, which explicitly defines the organization in which the agents they coexist.The current trend towards computer developments in collaborative work environments and with distributed knowledge management, has generated interest in VO: a group of people and institutions that need to coordinate resources and services across different institutional boundaries [37].There is a clear analogy between human and agents' societies; we can define a human society as a foundation or social entity with a certain number of members that can be specified and where an internal differentiation of the functions that are performed by these members is done [38], on the other hand, an agent organization is a collection of roles, which maintain certain relationships among themselves, and that take part in patterns of interaction with other roles in an institutionalized and systematic way [39].Thanks to these capabilities provided by the VO of agents, it is possible to model social machines, creating artificial societies of humans and machines that share tasks, objectives and norms.Human and artificial agents in a MAS try to cooperatively carry out tasks in the environment of the system to which they belong.The tasks that can be performed within the system will be established by the knowledge and skills of the agents and the restrictions imposed by the environment.
Laying on this theoretical base, the development of a tool for modeling simulations of human processes that take place in different environments in a flexible and dynamic way has been carried out.The proposed system is based on a novel approach, consisting of the use of MAS based on VO and a three-dimensional representation environment.The combination of both strategies is key to the purpose of the simulations to be carried out since on the one hand, agents can implement different tasks, objectives, purposes, etc.; while the three-dimensional environment allows the physical modeling of environments.In this work, a simulation tool oriented to model productive processes for workers in office environments is presented.Thus, this approach allows simulations to be carried out on the work environment itself, as well as the visualization of the results of the simulations.The possibility of integrating the tools for the generic construction of 3D environments into a platform is a differentiating factor with respect to platforms such as MASON [44], Repast [45], Pangea [46] or Swarm [47] that allow the visualization of the interactions between the agents themselves, as well as with the environment.These models and tools allow to model a wide variety of environments and tasks.In fact, they have even been applied in previous studies, obtaining good results [48], however, although they can be used as a basis for the construction of simulations with 3D elements, they are not specifically designed for it, so they do not offer the proper utilities that facilitate the deployment of these simulations in an agile and simple way.
The main novelties included in the developed platform are (a) the possibility to easily model 3D environments using a tool based on cloud computing; (b) the use of virtual organizations that model the behavior of people in a work environment (making use of the FIPA ACL communication mechanisms provided by JADE); (c) the design of a visualization platform in the field of office environments, which offers a vision closer to reality than other generic agent platforms.In addition, through a case study is intended to validate the use of this tool to obtain useful information to reduce accessibility barriers found by disabled people based on simulations carried out in the three-dimensional environment.
In the following Sections, the presented architecture is described in detail: in Section 3.1 an overview of the components architecture is done, Section 3.2 describes the implementation of the organizational model, Section 3.3 shows what the structure of the agents that intervene in the simulations is like and finally, Section 3.4 describes how the communication between the agent platform and the three-dimensional visualization tool takes place.

Components of the Architecture
The general architecture of the system is made up of two large blocks: a MAS and a tool for designing and visualizing three-dimensional environments.On the one hand, the MAS is composed of a set of intelligent agents that allow to perform the simulation of the desired model.For the implementation of this component, the JADE platform [31] has been used, as it will be detailed later.The developed platform is oriented towards the modeling of the MAS as a VO of agents.From this perspective, it is able to define a structure, roles, and a set of rules that regulate the interactions between agents.To do this, a higher-level layer to JADE, responsible for managing the MAS, is included in the system.Through this, it has been possible to provide the system with a set of additional functionalities that maximize the capabilities of MOVICLOUD, allowing a better interactivity and configuration on the part of human experts.These functionalities are detailed below:

•
Ability to use virtual organizations of agents, which allow agents to adopt different topologies, such as hierarchies, oligarchies, groups, congregations, etc. [49].VO allow the artificial representation of human societies in work environments.Thus, the structure of the multi-agent system in each simulation may vary, generating specific components depending on the environment to be modeled.Attending to the simulation that it is intended to be performed, is necessary that the multi-agent system would be able to adopt one of these topologies, so different types of agents must co-exist.JADE does not support the management of VO, so it has been necessary to introduce additional functionality with which to perform this task.To support this functionality, a database has been incorporated into the system in which the topology of the agents present in the system will be stored, making it possible to reuse it in the future.

•
The tasks that the agents can carry out within the artificial societies that are generated within the framework of the simulations can vary, so that the objectives of the agents can be the same, but the decision-making process to carry them out may differ depending on the kind of disability.
In this way, agents with advanced capabilities have been developed for planning the distribution of tasks according to the needs and configuration of the organizational structure.The user of the platform is responsible (through a series of functionalities implemented in the visualization tool) to model the different agents that act in representation of the elements that they want to model, thus allowing human-artificial collaborative work.For example, when defining an organization with a hierarchical structure, two kinds of agents will exist.The agents in charge of the decision-making are located at the higher level of the hierarchy-determining which tasks need to be carried out and who should carry them out-and the agents that have a more basic functionality-those in charge of carrying out the designated tasks-will be placed in the lower layers.

•
Communication with the 3D environment, so that all the changes occurred can be reported between the agent platform and the three-dimensional environment in a bidirectional way.
Figure 2 shows in detail the different components present in the multi-agent system, as well as the relationships between them.additional functionalities that maximize the capabilities of MOVICLOUD, allowing a better interactivity and configuration on the part of human experts.These functionalities are detailed below:  Ability to use virtual organizations of agents, which allow agents to adopt different topologies, such as hierarchies, oligarchies, groups, congregations, etc. [49].VO allow the artificial representation of human societies in work environments.Thus, the structure of the multi-agent system in each simulation may vary, generating specific components depending on the environment to be modeled.Attending to the simulation that it is intended to be performed, is necessary that the multi-agent system would be able to adopt one of these topologies, so different types of agents must co-exist.JADE does not support the management of VO, so it has been necessary to introduce additional functionality with which to perform this task.To support this functionality, a database has been incorporated into the system in which the topology of the agents present in the system will be stored, making it possible to reuse it in the future.


The tasks that the agents can carry out within the artificial societies that are generated within the framework of the simulations can vary, so that the objectives of the agents can be the same, but the decision-making process to carry them out may differ depending on the kind of disability.
In this way, agents with advanced capabilities have been developed for planning the distribution of tasks according to the needs and configuration of the organizational structure.
The user of the platform is responsible (through a series of functionalities implemented in the visualization tool) to model the different agents that act in representation of the elements that they want to model, thus allowing human-artificial collaborative work.For example, when defining an organization with a hierarchical structure, two kinds of agents will exist.The agents in charge of the decision-making are located at the higher level of the hierarchy-determining which tasks need to be carried out and who should carry them out-and the agents that have a more basic functionality-those in charge of carrying out the designated tasks-will be placed in the lower layers.


Communication with the 3D environment, so that all the changes occurred can be reported between the agent platform and the three-dimensional environment in a bidirectional way.
Figure 2 shows in detail the different components present in the multi-agent system, as well as the relationships between them.Finally, the 3D environment that allows real information representation collected from the simulated environment is composed of an editor and a viewer.An organization is surrounded by an environment that is constantly changing.In this case the model of the environment is determined by the design phase of the building in which the simulation is developed.This process is carried out through a tool based on Unity 3D [50].
The 3D editing environment (Figure 3) allows the modeling of virtual environments for urban areas (buildings, flats, apartments, gardens, parks, etc.) in three dimensions with a high level of Finally, the 3D environment that allows real information representation collected from the simulated environment is composed of an editor and a viewer.An organization is surrounded by an environment that is constantly changing.In this case the model of the environment is determined by the design phase of the building in which the simulation is developed.This process is carried out through a tool based on Unity 3D [50].
The 3D editing environment (Figure 3) allows the modeling of virtual environments for urban areas (buildings, flats, apartments, gardens, parks, etc.) in three dimensions with a high level of realism and quality.This tool is able to generate 3D virtual environments in scale and define elements such as floors or walls.It also includes a set of default furniture models that can help to reduce the virtual environment modeling time.This editor uses different services from a cloud computing platform [51], being the main ones (i) a repository where the different 3D objects are stored, (ii) a repository of the scenarios created by the users of the platform and a (iii) user management service.Thanks to the possibility of remotely storing of the different Unity 3D packages that contain the 3D objects and textures used in the editing tool, the editor is able to obtain these models on demand.This allows the tool to be lighter, since it is not necessary that all the models offered by the platform are previously stored in the user's computer.There is a total amount of 14 different categories of 3D resources in the platform, but it is possible to include new categories if it is required.Besides, in order to facilitate the handling of different types of objects, a classification has been established according to their placement and behavior within the 3D editor: • TYPE 0: Objects whose pivot is in the lower part of its mesh, that is, correspond to the objects that are placed at ground level.• TYPE 1: Objects whose pivot is at the top of it, such as a lamp or any other object that hangs from the ceiling.• TYPE 2: The pivot is on the side of the mesh to facilitate its placement on a wall.• TYPE 3: The pivot is in its lower part, as in the case of type 0, including the possibility of placing these objects over other objects.• TYPE 4: Objects of type 0 including an accessibility property of to them.That is, these objects will be used to perform the different interactions between avatars and furniture.• TYPE 5: Objects of type 2 including the accessibility property.• TYPE 6: Objects of type 3 including the accessibility property.
On the other hand, after completing the process of generating the virtual environments through the 3D editing tool, a json file is generated, in which all the environment characteristics are stored.By using these files, it is possible to generate the same scene in Unity, but without the need of store the unity project, (which is usually heavy in terms of storage).This lightweight file is sent to the cloud computing platform, so that, if the same scene has to be generated again, it is only necessary to download this file through the 3D editing tool or the 3D viewer, and 3D model is generated again using the 3D models that are provided by the platform, thus favoring the possible reuse of all resources by different users.The platform users can manage if the generated scenarios are public, private, or shared with certain users.To do this, thanks to the user management system, users of the platform can log into the system, accessing the list of projects for which they have access.Thanks to the use of the functionality offered by the cloud computing platform, several benefits are obtained such as a reduction in the amount of data to be stored by users, an improvement of the elasticity and scalability of the use of resources, or the dynamic adjustment to the load of the system and the needs on the part of the users of the platform.In addition, more effective use of computer resources can be made, since they can be shared among several entities.It has been necessary to add synchronization mechanisms between the 3D viewer and the agent platform, so that there is a correspondence between what happens on the agent platform and what is displayed in this tool.In addition, this platform is the main way of interaction between humans and machines, allowing experts in HR to modify the simulations based on their objectives.The operations that can be carried out are the creation and elimination of agents and assignment of tasks.As discussed in the previous chapter, all the operations requested from the 3D environment are communicated to the agent platform, which will attend these requests and confirm or not its completion in order to update the visualization status accordingly.Figure 4 shows the set of modules that make up the 3D editing environment and 3D viewer, previously explained.

Implementation of the Organizational Model
After the analysis of the current state of the art in agent specification languages, platforms and specifications for the development of agents, we consider that the standard promoted by FIPA is flexible enough to define with guarantees any type of interaction between agents, so it adapts perfectly to the requirements that were initially marked to develop the platform.Since JADE [31] is a free open source system, it is well documented, and it is the most widely used solution within the development of multi-agent systems based on the FIPA standard, it has been taken as the basis for the implementation of the MAS, adapting it to support the management of VO.Thus, for the management of the existing agents in the VO, a specially designed database is used, which allows to store the agents' characteristics: the roles which have been assigned to them, the services they offer, as well as additional features that may be presented by the agents.
The control of the information stored in the database, and therefore of the organizational models used in each simulation, is encapsulated in a JADE agent called the Database Agent (DBA).This agent The 3D viewer, which supports the representation and rendering of the environment and the features that were previously built with the 3D editor.It is also responsible for showing the different agents that are part of the system, making it possible to visualize the performance of the different activities of each agent.One of the main problems that must be faced in 3D scenes is to move one model from one point to another, so it is necessary to use an algorithm that calculates the route.In this case CritterAI [52] was used.It is a navigation system for Unity, which offers functionality related to the generation of navigation meshes, road search and movement management.This tool provides different options of the route calculation algorithm to be used: Dijsktra and A*.These algorithms are used to calculate the lowest cost path between an origin and a destination node.The nodes on which these algorithms will search for the minimum cost path will be the ones generated in the navigation mesh.
It has been necessary to add synchronization mechanisms between the 3D viewer and the agent platform, so that there is a correspondence between what happens on the agent platform and what is displayed in this tool.In addition, this platform is the main way of interaction between humans and machines, allowing experts in HR to modify the simulations based on their objectives.The operations that can be carried out are the creation and elimination of agents and assignment of tasks.As discussed in the previous chapter, all the operations requested from the 3D environment are communicated to the agent platform, which will attend these requests and confirm or not its completion in order to update the visualization status accordingly.Figure 4 shows the set of modules that make up the 3D editing environment and 3D viewer, previously explained.It has been necessary to add synchronization mechanisms between the 3D viewer and the agent platform, so that there is a correspondence between what happens on the agent platform and what is displayed in this tool.In addition, this platform is the main way of interaction between humans and machines, allowing experts in HR to modify the simulations based on their objectives.The operations that can be carried out are the creation and elimination of agents and assignment of tasks.As discussed in the previous chapter, all the operations requested from the 3D environment are communicated to the agent platform, which will attend these requests and confirm or not its completion in order to update the visualization status accordingly.Figure 4 shows the set of modules that make up the 3D editing environment and 3D viewer, previously explained.

Implementation of the Organizational Model
After the analysis of the current state of the art in agent specification languages, platforms and specifications for the development of agents, we consider that the standard promoted by FIPA is flexible enough to define with guarantees any type of interaction between agents, so it adapts perfectly to the requirements that were initially marked to develop the platform.Since JADE [31] is a

Implementation of the Organizational Model
After the analysis of the current state of the art in agent specification languages, platforms and specifications for the development of agents, we consider that the standard promoted by FIPA is flexible enough to define with guarantees any type of interaction between agents, so it adapts perfectly to the requirements that were initially marked to develop the platform.Since JADE [31] is a free open source system, it is well documented, and it is the most widely used solution within the development of multi-agent systems based on the FIPA standard, it has been taken as the basis for the implementation of the MAS, adapting it to support the management of VO.Thus, for the management of the existing agents in the VO, a specially designed database is used, which allows to store the agents' characteristics: the roles which have been assigned to them, the services they offer, as well as additional features that may be presented by the agents.
The control of the information stored in the database, and therefore of the organizational models used in each simulation, is encapsulated in a JADE agent called the Database Agent (DBA).This agent offers a set of services that facilitate all forms of access to the database, preventing inappropriate access by agents who should not be able to consult or modify the content of the database.Among the services offered by this agent, is to add agents, roles, services, etc., as well as query, modify or delete information.To access the different services, a module to check permissions is implemented, making the services accessible only to the agents that are specified.
Next, the structure of the database that will be used to store the structure of the VO is shown in Figure 5. Through a relational model, it is possible to define the different roles associated with the agents, as well as the tasks that can be carried out by an agent with a specific role.Additionally, three specific tables have been incorporated for the case study in which the proposed model will be evaluated, thus being able to define which agents intervene in each project, if they present some type of disability and associate roles with the different departments of a company.offers a set of services that facilitate all forms of access to the database, preventing inappropriate access by agents who should not be able to consult or modify the content of the database.Among the services offered by this agent, is to add agents, roles, services, etc., as well as query, modify or delete information.To access the different services, a module to check permissions is implemented, making the services accessible only to the agents that are specified.
Next, the structure of the database that will be used to store the structure of the VO is shown in Figure 5. Through a relational model, it is possible to define the different roles associated with the agents, as well as the tasks that can be carried out by an agent with a specific role.Additionally, three specific tables have been incorporated for the case study in which the proposed model will be evaluated, thus being able to define which agents intervene in each project, if they present some type of disability and associate roles with the different departments of a company.

Structure of the Agents
Figure 6 shows in detail the structure of each of the agents, which consists of three large blocks: (i) a communication module, which will allow the agent to communicate with the other agents of the platform; (ii) a reasoning module, which is detailed below; and (iii) an agent communication module with the 3D environment, formed by a sensor and an effector.

Structure of the Agents
Figure 6 shows in detail the structure of each of the agents, which consists of three large blocks: (i) a communication module, which will allow the agent to communicate with the other agents of the platform; (ii) a reasoning module, which is detailed below; and (iii) an agent communication module with the 3D environment, formed by a sensor and an effector.
Figure 6 shows in detail the structure of each of the agents, which consists of three large blocks: (i) a communication module, which will allow the agent to communicate with the other agents of the platform; (ii) a reasoning module, which is detailed below; and (iii) an agent communication module with the 3D environment, formed by a sensor and an effector.For the definition and implementation of the reasoning module of agents within the platform, the belief-desire-intention (BDI) model [26] has been selected.The behavior of the system is therefore determined by the mental attitudes of the agents.For this reason, it is fundamental to achieve a correct operation of the system when the deliberation processes are limited by the resources.
In each iteration, the interpreter first reads an event queue and generates a list of options (possible goals to be achieved).Then it selects the best of these actions and adds them to the structure of intentions.If there is any intention to perform an atomic action, the agent executes it.Events that may occur during the interpreter's execution cycle are added to the queue.Finally, the agent modifies the structures of intentions and desires by eliminating both the intentions and desires that have been successfully carried out and those that are not possible.With this model, deliberative systems are more appropriate for dynamic environments and are also more suitable for applications that work in real time.In this way, this model perfectly adapts to the requirements of the platform that is presented.
In addition to the reasoning module, it is necessary to introduce two additional modules that allow the agent to obtain information about the environment (sensor), as well as to be able to modify it (effector).It is necessary that these modules are distributed, having one component present in the agent's own implementation within the agent platform, and another component within the 3D environment.In this way, the agent is able to be aware of the state of the three-dimensional environment that has been rendered for the simulation in progress, monitoring the changes that are produced in the virtual world.
The agent model presented above is designed to represent different actors involved in the simulation in representation of elements such as human beings, or similar.However, it is also necessary to introduce another type of agents: environment agents.These agents represent elements of the environment with which the other agents can interact directly.Examples of these agents can be telephones, elevators, photocopiers, etc.These agents are not aware of the environment around them, they will only be aware of their internal state, so they will lack of sensors.Any interaction with other agents cannot be initiated by an environment agent.When an agent requests an interaction with them, it will consult their internal state, and will communicate the pertinent information to the agent who finally, will determine according to this information if they can carry out the action that has previously been assigned to them.
The communication between agents is important in order to achieve the objectives of the system, where the objectives of the individual agents coexist.There is a set of stages in which the need for the existence of communication between agents is obvious.For example, when defining the problem to be solved, as well as its decomposition and distribution among the agents that make up the system.To carry out the communication between the agents, they are equipped with a FIPA ACL communication module.Thanks to the use of JADE it has not been necessary to redefine additional functionality, since this platform facilitates a complete implementation of these interaction protocols between agents.

Comunication of the Agent Platform with the Visualization Tool
One of the essential tasks within the platform is to establish a communication between JADE and the 3D environment, so that there is a real correspondence between what happens in the agent platform and the visualization that will take place on the 3D platform.Within the agent platform, there is an agent in charge of managing communications in the JADE side.
For this purpose, the communication between the agent platform and the 3D environment is done through Transmission Control Protocol (TCP) sockets.In the Unity side, a module dedicated to the management of the requests made by the agent platform and vice versa is included.The tasks of creation, elimination and interaction between agents executed on the platform must be updated in the 3D environment, and the tasks of creation, elimination and interaction between agents executed from 3D interface, must be carried out first in the agent platform for being later updated in Unity.For the implementation of the communication module hosted in Unity, IKVM.NET is used.It allows the execution of compiled Java code in MICROSOFT.NET.The communication will be divided into 2 blocks: 1.
Sockets dedicated to carrying out the tasks in JADE and their corresponding update in Unity.

2.
Sockets dedicated to the performance of the tasks initialized from the Unity interface, which must be done first in JADE and then updated in Unity.
For the simulation of tasks in JADE that will be updated later in Unity, three elements are used: two sockets, one for sending tasks and another for the confirmation of the performed tasks, and a table with which will keep a record of these tasks (Figure 7).

•
UnityTasks, stores tasks that have not yet been updated.

•
JadeProducer, it allows to send tasks to Unity through a TCP socket.In Unity, there will be a resource (UnityConsumer) which is listening to the requests that are being produced.

•
JadeConsumer, opens a TCP socket to receive information regarding the performed tasks.
In Unity, UnityProducer is in charge of sending the confirmation of the performed tasks.the execution of compiled Java code in MICROSOFT.NET.The communication will be divided into 2 blocks: 1. Sockets dedicated to carrying out the tasks in JADE and their corresponding update in Unity.
2. Sockets dedicated to the performance of the tasks initialized from the Unity interface, which must be done first in JADE and then updated in Unity.
For the simulation of tasks in JADE that will be updated later in Unity, three elements are used: two sockets, one for sending tasks and another for the confirmation of the performed tasks, and a table with which will keep a record of these tasks (Figure 7).


UnityTasks, stores tasks that have not yet been updated. JadeProducer, it allows to send tasks to Unity through a TCP socket.In Unity, there will be a resource (UnityConsumer) which is listening to the requests that are being produced. JadeConsumer, opens a TCP socket to receive information regarding the performed tasks.In Unity, UnityProducer is in charge of sending the confirmation of the performed tasks.Regarding the tasks that are performed in Unity and later updated in JADE, UnityTasks resides on the Unity side, since it is in charge of making requests and must verify that everything that is done in JADE is updated later in Unity.Figure 8 shows the scheme that follows this communication, where a TCP socket will be used.JADE is the server which will listen to the requests performed from Unity.Regarding the tasks that are performed in Unity and later updated in JADE, UnityTasks resides on the Unity side, since it is in charge of making requests and must verify that everything that is done in JADE is updated later in Unity.Figure 8 shows the scheme that follows this communication, where a TCP socket will be used.JADE is the server which will listen to the requests performed from Unity.Each request in Unity is a new client that requests a connection to the server, so throughout the execution several clients can coexist.The requests made from Unity can be of three different types: creation of agents, elimination of agents or assignment of tasks to agents.The Communication Agent (CA) is in charge of attending the requests that arrive from Unity, carrying out the tasks that correspond according to the frame exchanged.The frame that is sent in each request contains the components shown in Figure 9.

Case Study
This section presents the case study which was conducted in a real environment to assess the performance of the developed system.The scope of the case study is the analysis of the accessibility of the different jobs in a real company: the offices of Indra Sistemas S.A. in Salamanca.By this way, through the performance of a set of simulations and the supervision of experts in HR and The Communication Agent (CA) is in charge of attending the requests that arrive from Unity, carrying out the tasks that correspond according to the frame exchanged.The frame that is sent in each request contains the components shown in Figure 9.The Communication Agent (CA) is in charge of attending the requests that arrive from Unity, carrying out the tasks that correspond according to the frame exchanged.The frame that is sent in each request contains the components shown in Figure 9.

Case Study
This section presents the case study which was conducted in a real environment to assess the performance of the developed system.The scope of the case study is the analysis of the accessibility of the different jobs in a real company: the offices of Indra Sistemas S.A. in Salamanca.By this way,

Case Study
This section presents the case study which was conducted in a real environment to assess the performance of the developed system.The scope of the case study is the analysis of the accessibility of the different jobs in a real company: the offices of Indra Sistemas S.A. in Salamanca.By this way, through the performance of a set of simulations and the supervision of experts in HR and accessibility, knowledge about the different problems that disabled workers of the company may encounter can be extracted.
For the performance of the simulations, it was necessary to define the characteristics of the VO, in such a way that it would be able to modeling the processes carried out in the company as closely as possible to reality [53].To do this, the different roles that agents can acquire, the services necessary for the proper functioning of the organization, the rules that will govern the society and the agents' own messages and iterations must be defined.
In addition, the environment in which the simulation will be carried out must be defined, in this case the building of the company under study.For this purpose, the 3D editing tool mentioned above was used.The 3D editing process begins from the plans of the building, so the environment in which the simulation takes place is as similar as possible to the real world.Furthermore, the disposition of the furniture inside the building must also be defined in order to evaluate, for each job, if each of the working places are accessible for people with different types of disabilities.
Afterwards, a series of simulations that show the behavior of the organization in different situations can be carried out, finally getting into the validation of the proposed model.First, we define the interaction model, analyzing the needs of the users who use the system and the way in which the exchange of information takes place.We define the following roles:

•
User: represents the user or customer of the system.In this context, the user may be responsible for defining the distribution of the different elements in the building.Users can be the human resources responsible for assigning jobs to employees or the architect in charge of designing the building in which the professional activity will be carried out, in order to obtain information about the accessibility of the environment.User: Is responsible for initiating the simulation process.
Will model the different agents that act as actors representing the workers of the company, as well as the tasks they will perform during the simulation.Can access tob the information that is generated after the processes that are simulated.
• Manager: this agent is responsible for carrying out the task planning that will be carried out by the whole organization.It may be present or not in the system, depending on the organizational structure of the company to be represented.Manager: Generates the tasks that represent the objectives to be fulfilled by the whole organization.
Delegates the task distribution to the different area managers according to the nature of each task.
• Department/Area managers: these agents are in charge of planning the distribution of tasks assigned to the department or area that manages.Department managers: Receive the tasks from the manager.Plan the task distribution among the agents that make up the department based on their availability (agents with a lower number of tasks will have a higher priority) and capacities (not all agents offer the same services).
• Workers: agents who represent each of the workers involved in the simulation.
The agents will have a stack where they store all the tasks they must perform, which have been previously assigned by the area manager.They will send information regarding the degree of success with which they have carried out each of them.All these agents have a set of elements that define their common behaviors and cognitive abilities.In addition to these common characteristics, the agents will have their own characteristics, defined according to their role within the organization and their disability.
The assigned roles will determine the tasks they can perform and the specific behaviors for each one of them, so different executions can be modeled for the same task according to the type of disability of the worker.
• Environment agents: these agents represent those elements of the building with which the worker agents can interact directly.Some examples of this type of agents can be found in different elements of the environment such as telephones, elevators or photocopiers.
These agents are not aware of the environment around them, they are only aware of their internal state.Any interaction with other agents will be initiated in any case by a worker agent.
When an agent requests its use, it will consult its internal status, checking if it is free and if it has the necessary resources so that the requested task can be carried out.It will communicate this information to the working agent, determining if it can complete the requested task.
• Database Agent: this agent offers a set of services that facilitate all forms of access that are held on the data base that stores the information regarding the structure of the VO.Database Agent: Will take care of inadequate accesses by agents that should not be able to query or modify the contents of the database.These services will allow adding agents, roles, services, etc. to the database, as well as query, modify or delete information.Includes a small module which is in charge of checking will require to check permissions, making the services accessible only to the specified agents.
• Human resources agent: The proposed VO can be classified within the so-called semi-open organization, since it will have a mechanism to control the admission of agents.In this way, it is necessary to make a request to evaluate the inclusion or not of an agent to society.The human resources agent is in charge of carrying out this task.The human resources agent: Evaluates the candidatures of those agents which request access to the organization, approving the different proposals based on the vacancies that exist in the department to which the agent intends to access.The number of spaces in each department will be established by the working places that are defined in the work environment.Each of the working place will be associated with a single department and an agent if they are occupied.
• Communication agent: it is responsible for communicating the multi-agent system with the visualization tool, in order to facilitate the message-passing between the two modules of the architecture.
It guarantees that there is a real correspondence between what happens in the agent platform and the visualization that takes place in the 3D viewer.
• Supervising agent: analyzes the different behaviors and evolutions of the agents involved in the simulation to carry out an analysis of the processes that take place in the organization.
It will communicate with the other agents after the completion of a task, collecting whether they could carry it out or not.If a task has been carried out satisfactorily, it will be communicated which task was performed, which agent intervened, and the time and resources that have been used to carry it out.Otherwise, the agent involved shall indicate to the supervising agent the reasons why it could not be carried out.
Within the processes that are carried out in the company under study, three departments have been identified, according to the tasks that workers can perform: reception, administration and maintenance.The worker-type agents will have associated a series of tasks that they can carry out depending on the department to which they belong.We define the following tasks as well as well as possible additional environmental agents that may be necessary for each of them (see in Table 1.Relations between tasks, departments and environment agents).Regarding the relationship of a person with the physical environment, the activities that are carried out during its daily life are widely varied, but the accessibility difficulties that arise when doing them are repeated.Therefore, the activities are analyzed from the perspective of accessibility to detect what difficulties they generate in order to find an alternative.To that end, two components have been established for all the activities that workers can carry out: displacement and use.Displacement is the transfer from a point to the ideal place where to perform an action, which implies being able to move around the environment without the presence of limitations or obstacles.Two types of displacement can be differentiated: (i) horizontal (displacements made in rooms, corridors, etc.) and (ii) vertical (displacements that imply a change in height, such as steps, stairs or ramps).The use is the performance of the action itself.Two types of use are differentiated: (i) preparation: situation process or approach to the object to be used and (ii) execution: the performance of the desired activity; it is the final objective of the process.If the person has any limitation that hinders the performance of their activity with respect to an individual without disabilities, we can use these as a reference to define the specific needs of these individuals in order to project the buildings.Difficulties of different types may appear: Attending the displacement: • Maneuver: limitation of the ability to access to spaces and move within them.

•
Change of level: difficulties that arise when overcoming unevenness.
Considering the use of spaces, the following difficulties may appear: • Reach: when there are limitations in the possibilities of reaching objects and perceiving sensations.
• Control: difficulties that arise as a direct consequence of the loss of ability to perform actions or precise movements with the extremities.
In order to guarantee the movement within a building, it is necessary to define accessible routes that link the different spaces.These itineraries must meet three basic functional criteria:

•
That they are flat or with a gentle slope.

•
That they have a passage area free of obstacles: they must be wide enough to fit wheelchairs, and also be free of obstacles of medium height, which are dangerous for the blind people.

•
That they have safe support and guidance elements: that is non-slip pavements, handrails that serve as support, differentiated textures for the blind, etc.
For each action, four functional objectives have been distinguished: • That it can be carried out, also, by a seated person.Thus, it can be performed by wheelchair users, elderly people with difficulties, etc.

•
Without leaving the site while it lasts.Most people with limitations use their upper limbs to help themselves with movement; therefore, they can hardly move and act at the same time.

•
Disregarding fine joints.The faucets, switches, door handles, control elements, etc., must have a design that allows their manipulation by those who have lost strength and dexterity in the hands.
Once the building model and the interaction model have been defined, we can proceed to perform the simulation.To do this, the visualization tool must be deployed, which at the beginning of the process, has perform different operations: (i) loading the building model; (ii) generating of the navigation mesh; (iii) synchronizing with the agent platform.Figure 10 shows a screenshot of the simulation tool.Once the building model and the interaction model have been defined, we can proceed to perform the simulation.To do this, the visualization tool must be deployed, which at the beginning of the process, has perform different operations: (i) loading the building model; (ii) generating of the navigation mesh; (iii) synchronizing with the agent platform.Figure 10 shows a screenshot of the simulation tool.The execution of the simulation will depend on the set of tasks that the MAS has to perform, which may be specified by the user, or generated by the management agent, as well as the process of the tasks assignment.Overall, the simulation will be defined by the definition of: The amount of available resources of n type at a certain t time: , The result space after the performance of a certain task by a worker agent has only two possible output states (success and failure): ∈ {0,1}, where 1 represents the success of the performance of a task, and 0 represents its failure.
First, a simulation of 15 min is planned.For the initial set-up of the different agents that represent actual workers within the organization, a Human Resources manager established a simulation of a total of 8 agents, whose department was assigned proportionally to the amount of workers of each The execution of the simulation will depend on the set of tasks that the MAS has to perform, which may be specified by the user, or generated by the management agent, as well as the process of the tasks assignment.Overall, the simulation will be defined by the definition of:

•
The set of agents responsible for each department: R = {R 0 , . . ., R i } • The set of worker agents: A = {A 0 , . . ., A j }

•
The set of tasks to be performed by the worker agents: T = {T 0 , . . ., T k } • The type of resources: l {1, . . ., L}

•
The set of resources (environment agents): E = {E 0 , . . ., E m } • The amount of available resources of n type at a certain t time: L n,t The result space after the performance of a certain task by a worker agent has only two possible output states (success and failure): O ∈ {0,1}, where 1 represents the success of the performance of a task, and 0 represents its failure.
First, a simulation of 15 min is planned.For the initial set-up of the different agents that represent actual workers within the organization, a Human Resources manager established a simulation of a total of 8 agents, whose department was assigned proportionally to the amount of workers of each department that were working at the company −1 receptionist, 2 maintenances and 5 administrative.Three of them have reduced mobility problems, three are visually impaired and one is deaf.The assignment of the work places for each of the agents was made just according to the productive processes that take place in the organization, without taking the possible architectural barriers that they might find into account.Once the environment and the agents' distribution and characteristics were set up, the simulation can take place in the 3D viewer.After the simulation, the tool generates a detailed report with the accessibility problems that the avatars have encountered, which have impeded the achievement of the tasks assigned to them.118 were successful and 79 failed (Figure 11A).Some of the deficiencies found were: (i) The lack of adapted bathrooms in the building; (ii) working places not adapted for people with visual or hearing disabilities: impossibility to perform tasks such as answering the telephone, or being aware that the fire alarm is active; (iii) lack of ramps that enable the access to higher floors as an alternative to the elevator, which in case of breakdown would obstruct the access or exit to the building; (iv) limited access to certain work stations-spaces not large enough for access with wheelchairs or; (v) not accessible furniture elements-file cabinets, photocopiers.
After the detection of these accessibility problems, all the information obtained from the tool was used by the Human Resources manager in order to perform several changes (both in the distribution of environment elements and workers) that could emerge into an improvement of the accessibility of the working place.First, the 3D editor was used to perform a redistribution of the elements of the furniture susceptible to improvement and the adaptation of the work places for users with auditory and visual deficiencies.Secondly, a relocation of the work places of those users of wheelchairs that could not perform their designed activities due to several displacement criteria such as maneuver, change of level, reach or control was made using the 3D viewer.After doing this, a new simulation with the same agents and task-assignment was made, obtaining as a result a total of 169 tasks performed satisfactorily and 28 failed (Figure 11B), going through a reduction of 40.1% of failed tasks in the initial simulation to 14.2% in the second simulation.Obviously, there are elements of the environment that will continue to limit their accessibility, such as the lack of access ramps or adapted toilets, but the possibility of improving the accessibility of the environment through the restructuring of employees' jobs or furniture in the critical points detected through the simulation.Since there are infinite possibilities of furniture distribution, it is difficult to establish an optimal solution regarding the accessibility levels of work environments.However, it would be possible, given a fixed distribution of the elements of the environment, to make all possible assignments of types of employees, jobs and tasks, thus being able to know what the optimal distribution of employees under a certain structure of the elements of the environment is.

Conclusions and Future Lines of Research
Once the simulation platform has been presented and evaluated, it can be affirmed that it allows the performance of simulations oriented to the labor integration of the disabled, allowing not only to After the detection of these accessibility problems, all the information obtained from the tool was used by the Human Resources manager in order to perform several changes (both in the distribution of environment elements and workers) that could emerge into an improvement of the accessibility of the working place.First, the 3D editor was used to perform a redistribution of the elements of the furniture susceptible to improvement and the adaptation of the work places for users with auditory and visual deficiencies.Secondly, a relocation of the work places of those users of wheelchairs that could not perform their designed activities due to several displacement criteria such as maneuver, change of level, reach or control was made using the 3D viewer.After doing this, a new simulation with the same agents and task-assignment was made, obtaining as a result a total of 169 tasks performed satisfactorily and 28 failed (Figure 11B), going through a reduction of 40.1% of failed tasks in the initial simulation to 14.2% in the second simulation.Obviously, there are elements of the environment that will continue to limit their accessibility, such as the lack of access ramps or adapted toilets, but the possibility of improving the accessibility of the environment through the restructuring of employees' jobs or furniture in the critical points detected through the simulation.Since there are infinite possibilities of furniture distribution, it is difficult to establish an optimal solution regarding the accessibility levels of work environments.However, it would be possible, given a fixed distribution of the elements of the environment, to make all possible assignments of types of employees, jobs and tasks, thus being able to know what the optimal distribution of employees under a certain structure of the elements of the environment is.

Conclusions and Future Lines of Research
Once the simulation platform has been presented and evaluated, it can be affirmed that it allows the performance of simulations oriented to the labor integration of the disabled, allowing not only to analyze the tasks that are carried out in a work environment, but also the physical spaces where these tasks take place.
From an academic point of view, it has been possible to model a real organization through an VO of agents with self-adaptive capacities.This system has been implemented using JADE, but adapting this platform to specific needs.In the same way, a 3D environment has been created, and it is capable of modeling and enabling simulations in work environments.In the same way, a system that allows communication between both platforms, which allows sharing relevant information about communications, has been developed.In short, the implementation of MOVICLOUD allows to simulate different processes in a work environment, and it has been proven to be appropriated in order to establish the accessibility problems that may occur in it.In this sense, the representation of the employees working activity is performed, such and as presented in the case study.Thanks to the flexibility provided by the editing tool, which allows to quickly model virtually any office environment using specifically designed models for rapid deployment, MOVICLOUD is valid for simulations carried out in office environments.More specifically, thanks to the case study, the tool has been able to define accessibility problems and architectural constraints following specific criteria of displacement.This tool has been evaluated in a work office, proving to be a useful tool when it comes to identifying accessibility problems.The definition of the models to be used and the problems to be detected in each task based on defined criteria facilitates the inclusion of the study of different new tasks.That is why this tool allows to model and include new actions to be developed by the actors with ease.However, it should be noted that MOVICLOUD is aimed at simulating processes within office environments, so that its use is currently limited to this area.In the event that the tool is intended for simulation in an open environment and with non-human actors, it would be necessary to include additional functionality.
Based on the obtained results, we can conclude that the objectives set at the beginning of the project have been met.With the successful achievement of this work, it is possible to obtain useful information to facilitate the accessibility of work environments to disabled people.This has been possible through the use of agent-based social simulation techniques, using organizational concepts to model the interactions between the actors and a three-dimensional environment.Although this tool initially was conceived for the detection of accessibility problems in office environments, thanks to the generic modeling of the platform and the use VO of agents, it is considered a valid tool for the simulation of any agent production process representing human beings in the field of office environments.Once the platform has been validated, it can be considered that within the scope of accessibility problems, it can be very useful at the time of: (i) early detection of failures in the design time of the buildings, facilitating new designs of the distribution of building elements, such as rooms, corridors, ramps or elevators to avoid in advance future problems related to the displacement of people with disabilities; (ii) prevent people with disabilities from facing accessibility problems before starting work at their place of work, being able to adapt their position and environment in a more appropriate way according to their capabilities (iii) improve the accessibility of people who are already working in a certain place.
Below, the different lines of research and future work that have been raised in the context of this work are shown:

•
Include the possibility of making an abstraction of the building model through ontologies, so that the information of the environment does not only reside in the three-dimensional environment, but the agent platform also has knowledge of it.

•
Allow the development of different three-dimensional environments, not only limited to representation in buildings.

•
Improve the extraction of knowledge by improving the algorithms that intervene in the accessibility recommendations, offering real-time statistics and a report generation services.

•
Include additional functionality to the visualization, so that there are alternatives when extracting information about the processes, such as graphs that show how the relationships between those agents interacting with each other or the generation of heat maps that show which are the routes taken by each worker in the three-dimensional environment.

•
Perform stress tests to check the limitations of the platform in relation to communication processes and the size of the 3D environments.In this way, it will be possible to estimate the maximum number of agents and the characteristics of the 3D model supported by the platform over different hardware infrastructures.

Figure 1 .
Figure 1.Intersection of different areas within the Agent-Based Social Simulation (ABSS).

Figure 1 .
Figure 1.Intersection of different areas within the Agent-Based Social Simulation (ABSS).

Figure 11 .
Figure 11.Successful and failed tasks after simulations.(A) results after first simulation; (B) results after second simulation.

Figure 11 .
Figure 11.Successful and failed tasks after simulations.(A) results after first simulation; (B) results after second simulation.

Table 1 .
Relations between tasks, departments and environment agents.