• business object query language (BOQL);
• integration of BOQL into an object-oriented pro-
gramming language.
A significant part of the work has been dedicated
to demonstrating the feasibility of BOQL, which pro-
vides a basis for a larger and more careful effort, in-
cluding the in-depth development and analysis of for-
malism for BOQL (i.e. optimization algorithms).
2 RELATED WORK
In this section we briefly review the most important
APIs that to our knowledge are used in different state-
of-the-art ERP systems.
A straightforward approach to data manipulation
is to use standard SQL. Since modern ERP systems
rely on relational databases, SQL statements can be
issued directly against the database tables in order to
operate on data. Although feasible, this approach is
unlikely to satisfy the requirements stated above. The
problem with standard SQL is that it violates the data
encapsulation principle. It exposes too much control
over the underlying database and increases the risk of
corrupting data in the system. An ERP system is not
only data, but also a set of business rules that apply
to the data. Generally, these rules are not a part of
the system’s database. Direct SQL access to the data
circumvents the rules and violates data integrity. An-
other disadvantage of SQL as API is the need for so
called ”glue code“: in order to manipulate data with
SQL from an application the later must use a data
provider (e.g. OBDC, ADO.NET, JDBC and etc.).
This hinders the usability.
To increase the productivity of the previous ap-
proach and allow direct consumption of data from
object-oriented programs, storage layers provide ob-
ject views on existing relational databases. The views
are implemented on top of particular DBMSs to map
persistent database relations to object models of ap-
plications. This approach has received the name of
object-relational mapping (ORM) and is even more
attractive with object-relational DBMSs, which sup-
port more of the desired object functionality in the
database engine itself (Bernstein et al., 1999). The
advantage of ORM is having data objects as first-class
citizens of a programming language. This simplifies
coding and increases application developers’ produc-
tivity. A number of ORM generators can be used to
alleviate the tedious development of mappings. Some
development platforms even include such generators
into their toolboxes. For example, the Enterprise
JavaBeans specification offers two alternatives for
defining the data access code of entity beans: Bean-
Managed Persistence (BMP) and Container-Managed
Persistence (CMP). In the latter case a correspond-
ing mapping is generated automatically by the bean’s
container. The main disadvantage of mapping is low
performance. Application object models are inher-
ently navigational (Bernstein et al., 1999). That is, ob-
jects have references or relationships to other objects,
which applications follow one at a time. Each access
to a relationship entails a round-trip to the DBMS,
which hinders the performance.
An alternative to SQL is data as a service ap-
proach. In this case a system exposes a number of
Web services with strongly-typed interfaces operating
on data. By calling these services application devel-
opers perform required data manipulation. This ap-
proach has an advantage of hiding internal organiza-
tion of data. Instead of a data schema and a query in-
terface an ERP system exposes a set of operations that
manipulate its data. By choosing operations and call-
ing them in an appropriate sequence required actions
can be performed. Because of using Web services this
approach is platform independent. In fact, the data-as-
a-service approach has been very popular. SAP, for
instance, has defined hundreds of Web service oper-
ations that access data in SAP Business Suite. Ama-
zon Electronic Commerce service is another example
of such approach. However, this method has a se-
rious disadvantage - lack of flexibility. Although an
ERP system can expose many data manipulation op-
erations, they will unlikely cover all combinations of
attributes that applications might need to operate on.
Therefore, granularity mismatches are very likely to
occur. As discussed earlier, this will require applica-
tion developers to manually construct a sequence of
calls on existing operations to perform a desired ma-
nipulation. An example of such a case is presented in
(Grund et al., 2008). To partially overcome the mis-
match, the interfaces of Web services can be relaxed
(Borovskiy et al., 2009). This, however, will blur the
semantics of the operations.
Service data objects (SDO) enhance the data-as-a-
service approach by specifying many aspects of data
manipulation. SDO is a specification for a program-
ming model that unifies data programming across het-
erogeneous data sources, provides robust support for
common application patterns, and enables applica-
tions, tools, and frameworks to more easily query,
view, bind, update, and introspect data (Resende,
2007). SDO has a composable (as opposed to mono-
lithic) architecture and is based upon the concept of
disconnected data graphs. Under the disconnected
data graphs pattern, a client application retrieves a
data graph from a data source, mutates the it, and
ICEIS 2011 - 13th International Conference on Enterprise Information Systems
254