
5.2 Open set of language features
Instead of implementing a DSL compiler for each
ATM from scratch, we have chosen for a modular ap-
proach that can exploit the common language features
of the different DSLs. The division of a ATM specific
DSL into modular and reusable language features is
hampered because the effects of these language fea-
tures are scattered in the resulting KALA program.
For example, take the four basic language features of
the Saga DSL: name(denoting the step name), saga,
step and comp, which should correspond with four
modules. As we have seen in 5.1, each step results in
a single KALA transaction.
When modularizing the saga language definition,
the step and its compensation description are sepa-
rated into two modules, each module yielding a par-
tial transaction description. When the two language
features are combined into single language, the two
partial descriptions must be combined together to a
single KALA transaction. However, the name of a
compensating transaction is not confined to just one
step, but it is present in different steps, i.e. each step is
linked to other steps. This entails that the compmod-
ule needs to invasively change different steps with
additional dependencies for the compensating trans-
actions, which hampers the division of the DSL into
reusable modules. In order to separate these differ-
ent language features into reusable modules, a system
supporting such invasive composition is required.
Keeping both the modularity and invasive composi-
tion requirements in mind, the Linglet Transformation
System (LTS) (Cleenewerck, 2003) seemed the most
appropriate system. In LTS a language implemen-
tation is divided into smaller reusable components,
each defining a small language feature. The languages
in LTS are constructed by composing these modular
and reusable language components (called linglets)
together. In LTS, for each of the four basic language
features of the Saga DSL (name, saga, step and
comp) a linglet is built. With these four language fea-
tures the Saga DSL can be specified through composi-
tion. This composition is achieved by customizing the
linglet definitions with other linglets. Also, these lin-
glets have been reused when building the RCS DSL,
which is an extension of the Saga DSL.
In total, we have built four DSLs: one for classical
transactions, and three for the ATMS mentioned here,
of which we have shown two, out of a set of seven
different language components.
6 CONCLUSIONS
Advanced transaction models address shortcomings
in the classical transaction model, but are difficult to
use for the application programmer due to their com-
plexity and the lack of separation of concerns. Appli-
cation programmers need detailed knowledge of the
advanced transaction models to use them in their soft-
ware and must spread the configuration information
for these models throughout the code.
In this paper, we reduced this complexity by pro-
viding a open family of domain-specific languages,
each of which tailored for one specific ATMS.
These languages allow the application programmers
to declaratively state the transactional properties at a
high level of abstraction, in a specification separate
from the base application.
To reach this goal, we used Domain-specific lan-
guages and Aspect-Oriented Programming. As a re-
sult, two contributions have been made: the imple-
mentation of an aspect language, KALA, to express
advanced transaction models and the development of
an open set of language features to raise the abstrac-
tion level of KALA to concepts found in ATMS.
ACKNOWLEDGMENTS
We thank Kris Gijbels and Wolfgang De Meuter
for their valuable feedback when proof-reading, and
Theo D’Hondt for supporting this research.
REFERENCES
Cleenewerck, T. (2003). Component-based dsl develop-
ment. In Proceedings of GPCE’03 Conference, LNCS
2830, pages 245–264. Springer-Verlag.
Elmagarmid, A. K., editor (1992). Database Transaction
Models For Advanced Applications. Morgan Kauf-
mann.
Garcia-Molina, H. and Salem, K. (1987). Sagas. In Pro-
ceedings of the ACM SIGMOD Annual Conference on
Management of data, pages 249 – 259.
Gray, J. and Reuter, A. (1993). Transaction Processing,
Concepts and Techniques. Morgan Kaufmann.
Jajodia, S. and Kershberg, L., editors (1997). Advanced
Transaction Models and Architectures. Kluwer.
Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C.,
Videira Lopes, C., Loingtier, J.-M., and Irwin, J.
(1997). Aspect-oriented programming. In Proceed-
ings of ECOOP 1997. Springer Verlag.
Moss, E. B. (1981). Nested transactions: An approach to
reliable distributed computing. Technical report.
Tarr, P. L., Ossher, H., Harrison, W. H., and Jr., S. M. S.
(1999). N degrees of separation: Multi-dimensional
separation of concerns. In International Conference
on Software Engineering, pages 107–119.
ICEIS 2005 - DATABASES AND INFORMATION SYSTEMS INTEGRATION
432