INTRODUCTION
Expert Systems are tools used when it is required to take
decisions, since they have artificial intelligence and they are
based on human reasoning capacity, they need expertise and
knowledge of human experts in the area where they will be
used [1]. Expert Systems serve as support to expert human to
control, monitor and manage systems of various kinds, some
of them are critical for users and need to be in continuous
execution. Expert Systems have knowledge about a system or
field, and the intelligence to solve problems in situations where
it is necessary to an assure correct solution and with a response
time that only a computer can meet [1], [2].
Expert Systems are used in many areas and for different
purposes, for example, in auxiliary systems for decision-making and inside of monitoring systems; however, they may
have problems when they are used in situations with high
workload and with short response time, or when the number of
users increases. An Expert System that is used in large systems
or with many events, need to be able to scale as the system
grows, it is also necessary to be fault-tolerant and have a high
availability of the provided services; the above features are the
benefits supplied by the Distributed Systems [1], [2].
This paper presents a Middleware architecture that provides
to an Expert System the following capabilities: scalability, high
availability and fault tolerance. Because the Middleware is
designed to serve customers with different platforms we chose
use the REST [3] protocol for communication between clients
and the system. The Middleware architecture allows to change
the Expert System with the inference process works, but it is
necessary to fulfill some requirements so that it can function
properly.
This work is structured as follows: Section II presents the
theoretical background for this proposal, section III presents
the related work to show the originality of our proposal. The
architecture of our proposal is presented in Section IV. Some
test have been realized and there are presented in section V,
finally in Section VI we present our conclusions.
II. T HEORETICAL BACKGROUND
Throughout this document, we use the concepts of Expert
System, Middleware, Distributed System, and others. This
section gives a brief introduction to these topics