a Grid Computing System - Utopia
a Grid Computing System - Utopia
a Grid Computing System - Utopia
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
3. The Basic Building Block - ONTA (Object Network Transfer Architecture)<br />
3.7. The Protocols<br />
One of the principal focuses of ONTA is on plug-in protocol support. This means that new pro-<br />
tocols can be added to the system on the fly and thus security fixes or new security levels for file<br />
transfer can be implemented without even restarting the system or any part of it. Developing a new<br />
protocol is very straight-forward as all it is needed is implementing two classes, one for the client<br />
side and one for the server side. Each of these classes should implement a corresponding interface.<br />
In the system there is only one hard-coded protocol needed to transfer new protocols (a protocol<br />
before-known by all parties is necessary to permit the communication at first).<br />
So, to add a new protocol, the programmer should implement these two classes and to advertise<br />
them with the advertiseProtocol method from the object repository. What needs to be implemented<br />
in the server and in the client side of the protocol is presented in the following subsections.<br />
We stress here that the protocols are identified by their name system-wide, so one should not<br />
deploy a protocol if another protocol with the same name exists. Since there is no central informa-<br />
tion system yet developed, this is a big flaw into the system, as there is no way to tell if there is<br />
another protocol with the same name somewhere else into the system. This could end up in a client<br />
side from one protocol trying to communicate with the server side of another protocol. For this<br />
reason, adding protocols to the system should be done for now under a centralized human control.<br />
3.7.1. The Protocol Server<br />
The server side of the protocol mainly consists of one method, called acceptConnections, which<br />
should be implemented in a sever manner, that is it waits for connections and when a connection<br />
is requested, it should serve that connection and wait for a new one. Since the connection are<br />
initiated by the client side of the protocols, there is no guideline in how to implement the requests<br />
or the communication protocol.<br />
The interface for the protocol server is actually an abstract class that should be extended (it<br />
also contains the name of the protocol, that is set by the system, that is why it is not an interface):<br />
public abstract class ProtocolServer {<br />
}<br />
public abstract void acceptConnections();<br />
public abstract void pushFileSupport ();<br />
There is one other method that can be implemented, that is the pushFileSupport() method. This<br />
method is called whenever a protocol server is registered and started, together with the acceptCon-<br />
nections(). If it is desirable to implement a way so that the connections are initiated from inside,<br />
31