Information Technology Reference
In-Depth Information
returned object). Changes to the object may therefore either be reflected on the
client (or server) or not depending on how the object has been defined.
The DDL currently does not support pass-by-reference semantics as sup-
ported by RIDL [65] or call-by-copy-restore as supported by J-Orchestra [111].
Instead our implementations implement copy-by-value for all protocols as dis-
cussed in Section 5.7. DDL support for pass-by-reference and call-by-copy-restore
are an area for further research.
4.5.3
Concurrency
Automatic partitioning systems, such as J-Orchestra [113], attempt to transpar-
ently partition applications and so to provide distributed thread management.
We believe this approach cannot work in all circumstances, as verified by Tile-
vich [110], and therefore our approach is to ensure that applications are written
with distribution in mind and need to be aware of concurrency issues. This ap-
proach is consistent with current Java distribution protocols, which do not support
distributed thread co-ordination.
We therefore do not specifically address concurrency and delegate thread
management to the programmer.
To assist the programmer with concurrency issues, the RemoteJ compil-
er/generator will issue an error if a pointcut matches a method defined as
synchronized or if the method contains synchronized blocks of code.
4.6 Chapter Summary
This chapter presented our concept of a Distribution Definition Language, a high-
level domain-specific aspect language used to apply the distribution concern to
existing Java objects. Our motivation for the DDL was to modularise the distri-
bution and recovery concerns so that separation of concerns can be maintained
and distributed systems development can be simplified.
The DDL generalises distributed systems development by describing the
classes and methods to be made remote, the distributed system to use to make
them remote and the recovery mechanism to use in the event of a remote error.
This allows a single component to be reused in multiple distributed applications
as well as in other non-distributed applications, thereby improving reuse and sim-
plifying testability of application code.
The DDL's support for distribution error recovery modularises the recovery
concern. As well as providing support for common recovery scenarios, the DDL
also allows user-defined recovery routines, which greatly enhances its capability.
The above DDL capability allows RemoteJ to support the development of a
large proportion of distributed applications in a greatly simplified way compared
to the traditional IDL or framework approach.
Search WWH ::




Custom Search