I have to develop a technical design for multi site communication. Each site has a same internal interface that exposes its functionality through SOAP API. The designed application(hosted on each site) will communicate to this interface for insert/update/delete operations. One of the primary responsibility of the designed application is to get the information from its local internal interface and to expose it to all other sites. So, each site application will need to publish its information to all other site applications and based on the information sent from other sites, a local site designed application will do the insert operation to its local internal interface.
For this requirement, I can think of three design approaches:-
1) Design a "Central Server Application" exposing REST API. Each site designed application(client) will communicate to its internal interface to fetch the information and then will send it to central server through REST API. This central server will manage all the information from all the site clients. At the same time each client is asking for the information of other sites from this central server and updating the information through its local interface(SOAP API).
2)Avoid this central server concept. Design to have a ring communication. Each site has a server(providing REST API) and client where server is responsible for contacting its local internal interface. Client will communicate to all other site servers to get the information and will post it to its local server(probably by making web socket).
3)Design application of each site will get the information from all other sites and at the same time communicating to its local internal interface to do its required operations. Design application is hosted on some web server.
As per my understanding, first approach looks best and then second looks as an second best alternative.
Can expert please give their suggestions for each of the approach?
Aucun commentaire:
Enregistrer un commentaire