20.08.2013 Views

a Grid Computing System - Utopia

a Grid Computing System - Utopia

a Grid Computing System - Utopia

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!