inference engine
pattern matcher
working memory
rule base
execution engine
agenda
rule
execution
rule
activation
conflict set
conflict solving
strategy
Figure 1: RBS Architecture.
ordered list of rules that are executed by the execution
engine. Fig. 3 shows the components of a RBS and
the interaction cycle among them .
3 DESCRIPTION OF
RULE-BASED APPLICATIONS
A RBA consists of a large set of rules that are applied
to data sets or data streams in real time. Therefore, a
representation of rules that describe the applications
logic, of data to which the rules have to be applied,
and of an application interface is required. An Ap-
plication Data Definition Language (ADDL) is used
to describe the concepts required to represent the ap-
plications data. An Application Data Definition Doc-
ument (ADDD) describes the applications ontology
and consists of the description of data types using
the ADDL. An Application Data Language (ADL)
is used to describe the applications data. An Appli-
cation Data Document (ADD) contains a reference to
an ADDD and the definition of data (based on the on-
tology defined by the ADDD) using the ADL. Fur-
thermore, the ADDD is used for the succeeding rule
modeling task.
An Application Rule Definition Language
(ARDL) is used to define the rules describing the
business logic of a RBA in an Application Rule
Definition Document (ARDD). An Application
Service Interface (ASI) is required to provide the
functionality of an RBA as a service which can be
used by other applications. An ASI is defined in
an Application Service Interface Definition Docu-
ment (ASIDD) using an Application Service Interface
Definition Language (ASIDL). All methods of the
ASI defined in the ASIDD have to use only the data
types defined in the ADDD. So incoming data from
method invocations can directly be transferred into
the RBS and the result can be queried from the RBS
and returned directly to the invoker.
A Rule-based Application Description Document
(RBADD) defines a RBA using a Rule-based Appli-
cation Defintion Language (RBADL). A RBADD
contains an ADDD, an ARDD, an ASIDD, and an
ADD. The relationship among the introduced defi-
nition languages and documents required for the de-
scription of a RBA is shown in Fig. 2.
Rule-based Application Description Document (RBADD)
[RBADL]
Application Rule
Definition Document (ARDD)
[ARDL]
Application Service Interface
Definition Document (ASIDD)
[ASIDL]
Application Data
Definition Document (ADDD)
[ADDL]
Application Data Document (ADD)
Figure 2: Rule-based Application Description Components.
4 EXISTING APPROACH: JSR 94
The JSR 94 (JSR 94 WG Group, 2004) was an early
attempt to establish a common interface for RBS.
While succeeding in creating a simple API for RBS,
it failed in making RBS exchangeable. This is caused
by underspecified data types for several defined meth-
ods. So, several interface methods just act on objects
of the Java class Object. A definition of their con-
tents is missing, making every implementation de-
pending on their specific Java classes. In this re-
gard JSR 94 is similar to Java Database Connectiv-
ity (JDBC) (JSR 221 Working Group, 2011), as both
just define a simple Java API with underspecified
data types. So JDBC requires a developer to provide
Structured Query Language (SQL) (ISO/IEC 9075-
1:2008, 2011) statements in the SQL dialect specific
to the used Relational Database Management Sys-
tem (RDBMS). JDBC uses Java-String as the main
datatype, JSR 94 uses plain Java-Objects, exposing
the users to the implementation details of the used
backend.
5 A GENERIC API
ARCHITECTURE
In this section a new architecture for the integration
of a RBS into a Service Oriented Architectures (SOA)
based on Web Services (WSs) (WSA Working Group,
2011) is presented and the automated configuration
ICSOFT 2011 - 6th International Conference on Software and Data Technologies
208