Note that there are some explanatory texts on larger screens.

plurals
  1. POIdeas to define java architecture for a Swing-JavaFX / RMI / EJB3.0 application
    primarykey
    data
    text
    <p><strong>The problem</strong></p> <p>We are involved in a new project to develop an application with several PC's that will act as general purpose computers. There is also a computer that will act from time to time as a master machine to gain the control of all the processes of the clients. That computer has to send a message to all the others through a server machine asking for instance to register assistance. At that time, a process running in the client machines has to gain the control of the computer and act as an slave machine running that application only until a new message is sent from the master machine to release them. After that, the client machines act again as a general purpose computers. </p> <p><a href="http://i.stack.imgur.com/TWeBp.jpg" rel="nofollow">The following scheme</a> tries to explain what happens after the CM(Control Machine) gains access of the SM(Slave Machines) through the server (SRVR)</p> <ol> <li>Control machine CM sends message to register assistance to a server 2 The SRVR receives the message, logs some information and broadcasts the register assistance message to the SMs</li> <li>The running SM process that was waiting the message gains total control in each SM</li> <li>The user chooses an action through a view in the SM and the machine sends a response to the SRVR</li> <li>The SRVR receives the response and broadcasts it to all the machines, including the results machine (RM) to update the views with the new state in the server (SRVR)</li> <li>The CM sends the End Register Message to the SRVR.</li> <li>The SRVR broadcasts the message to all the SMs, the application view closes and the application enters to a listening state again.</li> </ol> <p><strong>Stated that:</strong></p> <ul> <li>Everything needs to be done in some kind of Java Technology</li> <li>All the machines are runing GNU/Linux/Gnome (Ubuntu)</li> <li>JPA is mandatory for the logging and persistence</li> <li>JavaFX is going to change according to Oracle because they are thinking to abandon the scripting language</li> </ul> <p><strong>Questions are:</strong></p> <ol> <li><p>Which mix of java technologies would you use for the view?. My opinion is using Swing and maybe embbed this in FX through SwingComponent.wrap(loginPanel) to help graphic designers do a better visual work (a must in this application). Please consider the binding options JSR-295 (now dead as I can see) or some adequate alternative. </p></li> <li><p>How would you maintain updated the application client, my opinion is through Java Web Start and serving it as an applet.</p></li> <li><p>Is it ok if the SRVR uses Java EE with EJB 3.0 to access to remote objects? If so, how would you integrate/model/ EJB with RMI. I have no big experience with RMI/EJB integration and I am not so sure that it is correct. Specially because EJB specification trusts in RMI already. But then how to broadcasts messages from a Session Bean (Stateful one as I can see) to update the view?</p></li> <li><p>Any option chosen in SM has to be viewed in all the views (other SMs, RM and CM) registered as observers. Would you suggest a model/architecture/products for this. </p></li> <li><p>Which is the right way to make the SM application gain total control once its process is awaken? -remember, it is Linux-</p></li> <li><p>How the observer pattern has to be applied in a distributed context?</p></li> <li><p>Is the HW arrangement correct for this application?</p></li> </ol> <p>I know these are lot of questions and I am not trying to begin a discussion about this, I know that there can be a lot of different opinions and I am interested in hearing all of them, including implementation details. I am looking for some feedback from you guys, your opinions will be highly appreciated. Thanks in advance!</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload