Archived
This forum has been archived. Please start a new discussion on GitHub.
Thesis - ICE versus Corba. Architecture questions
Maverik888
in Help Center
Hello,
At the moment I am writing my thesis about a comparison between Corba and ICE. The evaluation is finished and ICE fulfils my conditions better than Corba. In the next part of my thesis I have to implement a distributed system with several objects in Java which should communicate over the Ice middleware.
The distributed system consists of four different classes which should simulate an aerial surveillance system:
1. Plain: A plain has a geographical position. Its position can be asked over its method over the given time:
PlainPosition plain.getPlainPosition(long positionTime)
2. Sensor: Every sensor is a thread and asks in an interval of for example 30 seconds the actual position of every plain and sends it to all DataCenters which subscribed at a sensor:
public class Sensor extens Thread {
...
run() {
PlainPosition p1 = plaint1.getPlainPosition(long positonTime);
PlainPosition p2 = plain2.getPlainPosition(long positonTime);
dataCenter1.publishPlainPosition(p1 );
dataCenter2.publishPlainPosition(p1);
And so on
}
3. A DataCenter object collects all plain positions and sends them to a GUI which shows these positions on a map.
dataCenter1.publishPlainPosition(Plainposition p){
gui1.publishPlainPosition(p);
}
4. Finally all plain postitions will be shown on a map.
Now all classes are written to test their communications without a middleware and it works fine. Now ICE should be used for the communication between the objects.
In order to avoid architecture failures I would ask you if this architecture is correct:
1. All needed methods will be written as interfaces and my classes inherit from the abstract class which Ice created.
2. For example, a sensor must know all available plains. In addition to that a datacenter must know all sensors and have to subscribe/unsubscribe at them. A sensor calls the method of every datacenter object which has subscribed at the sensor.
Is the easist way to implement this demand with IceGrid as location service and IceStorm to implement the publiser/subsriber pattern?
Thanks,
Maverik888
At the moment I am writing my thesis about a comparison between Corba and ICE. The evaluation is finished and ICE fulfils my conditions better than Corba. In the next part of my thesis I have to implement a distributed system with several objects in Java which should communicate over the Ice middleware.
The distributed system consists of four different classes which should simulate an aerial surveillance system:
1. Plain: A plain has a geographical position. Its position can be asked over its method over the given time:
PlainPosition plain.getPlainPosition(long positionTime)
2. Sensor: Every sensor is a thread and asks in an interval of for example 30 seconds the actual position of every plain and sends it to all DataCenters which subscribed at a sensor:
public class Sensor extens Thread {
...
run() {
PlainPosition p1 = plaint1.getPlainPosition(long positonTime);
PlainPosition p2 = plain2.getPlainPosition(long positonTime);
dataCenter1.publishPlainPosition(p1 );
dataCenter2.publishPlainPosition(p1);
And so on
}
3. A DataCenter object collects all plain positions and sends them to a GUI which shows these positions on a map.
dataCenter1.publishPlainPosition(Plainposition p){
gui1.publishPlainPosition(p);
}
4. Finally all plain postitions will be shown on a map.
Now all classes are written to test their communications without a middleware and it works fine. Now ICE should be used for the communication between the objects.
In order to avoid architecture failures I would ask you if this architecture is correct:
1. All needed methods will be written as interfaces and my classes inherit from the abstract class which Ice created.
2. For example, a sensor must know all available plains. In addition to that a datacenter must know all sensors and have to subscribe/unsubscribe at them. A sensor calls the method of every datacenter object which has subscribed at the sensor.
Is the easist way to implement this demand with IceGrid as location service and IceStorm to implement the publiser/subsriber pattern?
Thanks,
Maverik888
0
Comments
-
Hello Matthew,
Thank you for your comment. First of all a sensor collects all plain positions with their absolute latitude and longitude value and creates a relative plain position. The relative plain position depends on the position of the sensor itself and contains the azimuth, elevation and the distance between the sensor and the plain.
Firstly a data center gets the relative plain position. Secondly the data center creates from the position of the sensor and the given relative plain positions an absolute plain position again.
This is only a simulation system, but I have to contain these different objects. I know that normaly there must be only a connection between a gui and some plain objects. But this simulation system is a copy of a real system and I have to include this components in my distributed system.
Thanks,
Maverik8880
