Information Technology Reference
In-Depth Information
4
The Distribution Definition Language
4.1 Introduction
In Chapter 2 we discussed distributed systems development and the issues sur-
rounding the use of frameworks and programming conventions and the alternative
network obliviousness model. Neither of these approaches is satisfactory as they
either violate the principle of separation of concerns or attempt to hide distribu-
tion and recovery altogether. In the previous chapter we provided an overview of
the aspect-oriented paradigm and introduced our approach, the high-level domain-
specific aspect language approach, which provides both separation of concerns and
network obliviousness without compromising either.
In this chapter we discuss our motivation and the DDL's design principles in
Section 4.2 and describe the language grammar in Section 4.3. The formal syntax
of the DDL is provided in Appendix A.
4.2 Motivation and Design Principles
In this section we describe our motivation and design principles, which form the
basis of our design decisions.
4.2.1
Issues with Distributed Systems Development
Remote Procedure Calls (RPC) were designed to overcome the diculties of dis-
tributed systems development where developers were required to deal with low-
level details such as network connections, protocol handling, data representation
between different architectures, both partial and 'hard' failures, reassembly of data
packets and various other issues. RPCs were designed to behave the same as lo-
cal procedure calls by masking the difference between local and remote procedure
calls so that, to the developer, local and remote procedure calls were essentially
equivalent.
However, the developers of RMI argue that the RPC concept of masking the
differences between local and remote procedure calls is flawed because there are
fundamental differences between the interactions of distributed objects and the
interactions of non-distributed objects and attempts to paper over the differences
between local and remote objects leads to distributed applications that are neither
robust nor reliable [118].
Search WWH ::




Custom Search