views:

21

answers:

1

Let's just say that i want to create a CMS and other online applications.

I want to integrate them all in a central location, but they also have to be available seperately (not everyone wants more than the CMS solution).

Should I create a huge central application that contains all the database, which communicates through a webserice with the "standalone - integrated" modules?

Or should I create them separately, so that the only thing the "central" application would do is syncing the information (eg. the CMS and another solution can have the same tables eg. clients or employees).

Or do you have another idea? (I know I'm a little vague, but I can't "give" a lot of details because of work contract).

If someone has all the "packages" it should be possible for the central application to integrate all the modules at one place! Or if someone has more than one module, it should combine this on the website.

What I thought is best, is that the central location contains only the users and their rights (eg. CMS - all rights, ...), and the information get synced with every change.

(module cms, adding a new client -> store locally and send data to the central location, central location -> send to modules -> table clients updated everywhere)

This way it is easy if someone only "bought" one module, they can sync it easily through the complete architecture.

I hope I have made myself clear!

+1  A: 

It is quite hard to answer, but still I think it might help you to look at the Microkernel architectural pattern (from the Pattern Oriented Software Architecture book). It is a general solution for having a minimal (microkernel) system (cms in your case) and allow for different modules.

Gabriel Ščerbák