Despite being two independently developed technologies, services and agents have many similarities, because both of them are based on the principles of distributed computing. Thus it is worth to analyze how the lessons learned from the agent based architectures can be applied to the service oriented ITSs. Lavendelis and Bicans (2011) have indentified the most important similarities between agents and services in the context of ITSs:
- High modularity. Both services and agents offer high modularity, because they support systems that consist of small distributed entities.
- Openness. Both technologies allow dynamical addition of components (agents and services, respectively) to the system, to implement changes into the system. Both technologies offer mechanisms to find newly added components.
- Reactiveness. Reactive agents can be considered as services. For example lower level agents from the holonic agent architecture provide specific service upon request.
- Usage of protocols. Both agents and services use some kind of protocols to interact.
Still agents and services have come from two different fields of research. Intelligent agents have been proposed by artificial intelligence researchers, while services have been introduced by the software engineering specialists. Lavendelis & Bicans (2011) state that there are the following significant differences between agents and services that have to be taken into consideration during the ITS development:
- Reasoning capabilities. Services usually have no reasoning capabilities while agents are considered as reasoning entities.
- Autonomy. Agents are autonomous entities that are capable of proactive actions.
- Services are strictly reactive and have no autonomy. They are not capable to carry out any goal driven actions.Industrial acceptance. At the moment services appear to be industrially accepted and widely used technology. At the same time, agents are mainly used in research projects.
- Complex interaction protocols. Various interaction protocols like negotiations, auctions, etc, can be used in the multi-agent systems to reach agreements and solve problems. Agents have social capabilities to participate in these protocols. Services use simple protocols and have no social capabilities to participate in any complex interactions.
One can conclude that both distributed technologies can be used for ITS development and both of them have their advantages and disadvantages. ITSs contain components that are more suitable to develop as services and components that are more suitable to develop as agents. The main criterion to determine which technology is more suitable is the following. If there is no proactivity one can use services instead of agents to implement components of ITS and benefit from the industrial standards of SOA. Actually, services may be used in the same way as agents to implement modules of ITS. The remainder of the section analyzes how the similarities of the agents and services allow to use the lessons learned in the agent based ITS research in the service oriented ITSs. Additionally, some common principles of software architectures are analysed to include them in the architecture of ITSs.
General software architecture concepts say that the user interface should be separated from the logical part of the system. Usually it is done by creating a layered architecture that also allows separation of components that are dedicated to the repositories (like the learning object repository) and such fundamental technologies like video streaming. So it is beneficial to create a layered architecture that consists of three layers (Lavendelis & Bicans, 2011). Layer one or the lower layer contains repositories and fundamental technologies used in the ITS. Layer two or the logical layer is a logical part of the system. It contains all three main modules of the ITS’s modular architecture, namely, th e student module, the tutoring module and the expert module. Layer three or the presentation layer contains all technologies needed to present the contents to the learner. It contains the communication module. The idea of layered architecture complies well with modular and agent oriented architectures. It allows keeping the traditional ITS modules and only separates components working with the repositories. These components usually are completely reactive and have no intelligence. Thus the layered approach allows to separate the intelligent part of the ITS from other parts.
The main lessons learned in the holonic multi-agent ITS architecture are the following. The implementation of the architecture showed that it is beneficial to keep the modules of the traditional ITS architecture and to implement them with distributed components. It allows keeping the main advantage of the modular architecture – the separation of the intelligent mechanisms that work with different types of knowledge. It allows for each component to process only one type of knowledge and abstract from other types. So the modules should be kept in the ITS architecture regardless of the technology used for implementation.
The distributed implementation gave two advantages to the architecture. Firstly, the realization using small-scale components increased the modularity of the system. Secondly, the introduction of holons decreased the coupling of the system, because each body agent is allowed to interact only with agents of the same holon. The head of the holon serves as an interface of the holon. It removed traditional drawback of distributed systems that complexity of interactions increases rapidly if the number of components increases. So, it may be concluded that some forms of organization should be included in distributed architectures. Despite, services do not support such hierarchical structure as holons, the organization and, as a consequence, increased modularity and decreased coupling can be sustained in the service oriented architecture in the following way. One or a few interface services should be introduced in each module. These services would fulfil the role of the heads of the higher level holons. If the higher level components are created the same way as in the holonic architecture, the expert module would have one main service, while the tutoring module, the student module and the communication module would have more than one. The interactions in the system are organized in the following way. The main service receives service requests from other main services. It uses the service registry to find other services (named lower level services) of the module and forwards the request to the appropriate service. The lower level service does its job and returns the result to the main service, which forwards it to the initial requester. So, like in holonic architecture, interactions take place only among main services and between main services and the lower level services of the corresponding module. It decreases the coupling of the system and facilitates its modularity. For example, the main interface service sends the request for problem in a topic to the main problem generation service, which finds the service that can generate a problem in the topic or even the most suitable problem for particular learner.
The holonic architecture implements modules of ITS in an open manner. The implementation of the MIPITS system proved that openness is important feature if the system is modified by adding some new features (Lavendelis & Grundspenkis, 2011). New type of problems that needs completely different processing in all holons was added to the system without changing anything in existing code. Thus, the open implementation of distributed ITSs makes the change implementation and adaptation of the ITS to new course or modifications of the existing course much easier.
Implementation of the multi-agent architecture proved that majority of intelligent adaptation mechanisms are included in the heads of the holons. Heads are not only the mediators, but they make intelligent choices, using different algorithms and reasoning. The heads of the higher level holons are the most important components to provide adaptivity. For example, body agents are capable to generate problems, but the head of the holon chooses the most appropriate problem to the particular learner. The body agents mostly work with repositories. They implement certain actions like extracting or generating materials or problems. So these agents fit more the concept of the service instead of intelligent agents because they are not proactive and execute reactive behaviour by accomplishing some task upon the request of the head of the holon. All proactive and intelligent actions are carried out by the heads of the holon, that fit the logical layer of the general architecture. The body agents on their hand implement the interface between the layers one and two because these agents are used by the agents from the second layer to access the first layer – the repositories.
To conclude, the main advantages of the holonic architecture can be sustained in the service oriented ITS architecture. Still, some features of agent architecture can not be implemented using services. Services do not have built in reasoning mechanisms that are natural to agents. So by implementing components as services the built in intelligent mechanisms are lost and it is not clear how to implement such mechanisms as reasoning inside the services. Potentially this is the main disadvantage in moving from multi-agent to service oriented ITS architecture. If some proactive behaviour is needed, then usage of agents is preferable. Still intelligent mechanisms and proactivity are mostly included in the logical part of the ITS and are rare in other parts. Thus there are components that can be successfully built using services instead of agents. As a consequence there is a point in both pure service oriented ITS architecture and hybrid ITS architecture, where deliberative components are implemented as agents while reactive components are implemented as services. Such architectures are presented in the following two sections.
- 1638 reads