For my final year project, I plan to write a cloud server using Python. The client will be written by the other team member in Java. The first and foremost problem I have is make the necessary communication between the server and clients.
For server to client talk, I thought about using encrypted XML which I've tested and found to be working fine. For client to server communication, I can't think about something good. Here's the basic working of the model:
1) Database is used and every new user is added to it.
2) Every user that logs in is validated.
3) The server extracts the information of the user from the database, creates an XML file and sends it to the user. This file, let's call it dump, includes the file name and type of all the files which the user can read from or write to (sharing of files among users is also an option).
4) The client has a multi-tab interface (one for each service), so far the services we have are text viewing/editing and media playing. Every tab reads the necessary entry from the dump and shows it to the user; e.g the media player will read all the media files to the user, which he has the permission to play, the text editor will only show the text files.
5) The user can make changes to the files, create new ones and upload them to the server, database will be updated parallelly.
Also I plan to use Django to create the server. ThreadingServer is a pain and I have to use quite of low level code to interact with the database using MySQLdb.
The problem I am facing is how to make the communication from clients to the server. The client has to send both an updated dump and updated files to the server, what approach should I use?