Client/Server/Admin, architecture discussion
Up to now I have built quite a couple of years of experience programming mostly Videogames and Mobile Apps, and right now I'm trying to move to the "Enterprise World" to create more sophisticated applications.
I'm learning my ways into DBs (currently using MySQL), JDBC, Hibernate, Visual Web apps, Swing, etc.
At this very moment, I'm trying to come up with a good Client/Server architecture that would allow me to:
+ Have several Clients requesting and storing information on an external DB.
+ Have some way of storing statistical data on the same or another DB given the information flow and also a way of sending information to the existing Clients such as advertising or whatever.
+ And finally, an Administration Application that will allow me to edit the DB, users, etc.
+ Security is an important issue.
The requirements are a bit more complex but I think that explanation will suffice.
Now, I came up with this rather simple idea:
Have several Clients requesting and storing information on an external DB.
A Server processing these Client requests mostly by storing and sending DB data.
The Server would also store statistical data on the DB and eventually send update information to the Clients with advertising or whatever.
An Administration Application that will allow me to edit the DB.
* Have a MySQL DB running at all times on a Datacenter PC.
* The Clients won't connect to the DB directly, instead, they would connect to a Server that is a mediator between the Client and the DB, process all the Client requests, query the DB and send the info back to the Client.
* The Clients need also to store info on the DB, this would be done via the mediator Server as well.
* This Server would also store statistical data given the Client request flow and usage.
* The Server would also send advertising to the Client.
* Finally, a Visual Web admin app would allow administrator to view and edit the DB directly.
Is this logical? Does it makes any sense? Is it idiotic? Will this be enough? This is the first I'm trying to figure out this kind of architecture and I don't know if I have the correct mind set.
Any ideas and considerations would be greatly appreciated.
Thank you in advance!