Technologies allowing to store user data on server as well as on user's PC?
Let me first better explain the context. The application should have the following characteristics:
- Read-only shared data is found on a database server on Internet. (Quite big amount of shared data.)
- The application should be distributed in a Java-Web-Start-like manner, or be a web application. (The goal is to simplify distribution of main package and updates. Solutions lowering server load and giving better responsiveness to end user are preferred.)
- It must be possible to store user specific data only on server, only on user's PC, or on both. (The reason for this is that most users will not be willing to risk having their information out of their PC, but some of them will like to share parts of it or make backups.)
I'm not very knowledgeable in web application programming. The only technology which I know would allow to do all this is Java Web Start. It removes load from server as most computations are done on user side, allows to read/write on user's PC (given access) and accessing centralized database is not a problem with it.
I would like to know if there are other technologies which would allow the development of such an application and which do not require 开发者_开发知识库traditional local installation.
Thank you very much,
MJ
It really depends:
- Volume, size, complexity of data/data model,
- frequency, urgency of updates,
- available connectivity (online 24/7 vs. occasionaly connected vs. nightly sync session) and bandwidth,
- existing mechanisms for data storage,
- amount of software you may/can/want to deploy on the clients,
- available budget,
- acceptable dev time
- resources and organization available to operate the system
- lifecycle plan (expected lifetime) of the system,
- mission significance (mission-critical system that can kill lifes, vs. "just" a manager info system)
are all factors that you should mention, or at least evaluate. Depending on these aspects, the solution can vary from a "cheap" webservice and flat files sync'd by trivial java code to a full-flat distributed database.
Years ago, I have found Sybase's SQL Anywhere to be a good solution for small-to-medium requirements and budgets if a "real" SQL DBMS is required, or already present on the server backend side. It offers a powerful, yet transparent (if used wisely) publish-and-subscribe methodology at the SQL level which works well if you cannot be sure all clients are online 24/7.
For online (or almost-online) full-fledged solutions, Oracle has online database replication options that are quite expensive, though.
For small solutions, custom Java code accessing remote database links (Oracle feature) usually works, but locating performance bottlenecks can be a nightmare. (And you require a stable network links, and a "real" Oracle database on all nodes.)
精彩评论