Friday, 13 September 2013

Swing clients, Java Server

Swing clients, Java Server

My goal ist to develop an application which is used to set up a
videoconference between two seminar rooms. I have a MySQL database
containing the room and user informations and a java server polling the
room states (=connection state of videoconference). With a desktop
application, a user should be able to log himself in (user info in db) and
start a connection between two videoconference systems by selecting the
rooms he wants to connect (room info, vid-conf info ind db).
I figure I need the following parts in order to this
A service which polls the videoconference systems
A database service providing room and user informations
A desktop client application
I played around to test how I can do this and programmed a Java server
which polls the videoconference systems and stores this info. A swing
client can open a socket to the server and ask for a room state. Reading
db information is also programmed in the client with hibernate. Now this
works but it is far from a good style and I'd like to redesign the whole
thing.
So let's say, I begin from scratch. I really am having difficulties on how
to start to come to a clean programmed result. I know the following
questions are not very specific but I hope one of you can give me
directions on how to proceed or which technology/framework to use.
First a few requirements:
The server runs on a windows machine. It currently is installed as windows
service (and does only provide the room states).
The clients have to be desktop applications, less than 20 clients are
expected to run simultaneously.
The clients are used in a university network where also the server and the
videoconference systems reside.
And a few questions:
How do I design the server? I am sure I do not have to reinvent the
wheel... The server should be capable of providing database objects and
store/provide the current state of each room.
Would you store the current room state in the database? I also need to
keep track of current connections (which room is connected to which).
Currently I store the basic room info (room name, videoconference ip and
such) in the database, the room state (ready/ occupied, sending/receiving)
is handled seperately by the server.
How to access said server with a (Swing-)Client? Currently I use hibernate
to acces the db (yes I know, not a good idea with multiple clients for the
same db) and sockets with a clear text protocoll to access the room
states.
How can I implement a chain of actions like this one: The user selects two
rooms to connect. The clients sends this request to the server. The server
sends the request to the videoconference systems, both videoconference
systems start, when started they provide a feedback, the feedback should
be made available to all clients so everyone is informed that a conference
is in progress.
I do of course not expect detailed solutions to my problem but every hint,
link, etc. in the right direction will be appreciated. Thanks.

No comments:

Post a Comment