Information Technology Reference
In-Depth Information
import evaluation.calendar.∗;
service CalendarService {
protocol : rest {
options {
servers = "http://localhost" ;
serverPort = 61616;
serverThreads = 5;
}
pointcut Appointment[] Calendar.getAppointments(User) {recovery = nextServer;}
pointcut void Calendar.addAppointment(User, Appointment) {recovery = nextServer;}
pointcut void Calendar.deleteAppointment(User, Appointment) {recovery = nextServer;}
}
}
Figure 5.9.
REST CalandarService DDL.
style that does not explicitly support copy-by-value, copy-by-value-restore or pass-
by-reference as neither of them are object based.
Our implementations of the REST and JMS request-reply protocols mimic
RMI's pass-by-value by the use of object serialisation and we therefore pass both
parameter and return values as serialized objects. The limitation of this approach
is that all parameters and return values must be serializable and implement the
Serializable interface. If not, a compile error is returned. Although the RMI
protocol supports pass-by-reference, we do not currently support it. As discussed
in Section 4.5 this is an area for further research and we discuss this further in
Section 7.3.
5.8 Chapter Summary
In this chapter we have described the implementation of the RemoteJ compiler/
generator and its features and have discussed the implementation of the recovery
concern and our three protocol implementations, JMS, REST and RMI.
The recovery implementation allows a great deal of flexibility with common
recovery techniques supported by DDL statements and the ability to add user-
defined recovery routines.
The RMI, REST and JMS protocols were chosen as they use different ap-
proaches to distribution. RMI and REST are synchronous protocols with an in-
trusive framework and, in the case of RMI, requires the developer to adhere to
a programming convention. JMS is an asynchronous protocol implemented as an
abstract framework with numerous concrete implementations that may, neverthe-
less, be used in a synchronous manner. In addition, JMS provides guaranteed
message delivery through the use of persistent messages, while RMI and REST do
not.
Search WWH ::




Custom Search