Archived

This forum has been archived. Please start a new discussion on GitHub.

How can I design such distributed system?

a distributed system have two levels :
One Control Center,Have some Servers and work Stations, approximately have 20 computers , each Server implement deffrent task.
approximately 30 distributed Areas, Each Area also Have some Servers and work Stations, each Area approximately have 10 computers, each Server implement deffrent task. These sreas is similar but not uniform.
Control Center can communicate with all Areas, each area can communicate with others and Control Center.

Questions:
when Control Center is OK, the work station in area can login Control Center and can access any Servers, such as Control Center, or other area, when control center occur errors, the work station in area can login local area and can access local area only. how should I design IceGrid ? need mulit-IceGrid?

Comments

  • benoit
    benoit Rennes, France
    Hi,

    Since all the areas can communicate with both the control center and other areas, it's simpler to just have a single IceGrid domain. That is, you deploy a single IceGrid registry master and eventually multiple slaves. The IceGrid registry master could be running at the control center, whereas slaves would be running at the different areas.

    This way, if an area gets isolated from the control center and other areas, clients and servers running in this area should still be able to contact each other by using the local IceGrid registry.

    Cheers,
    Benoit.
  • thank your answer, I have two questions yet:

    1. when design a icegrid with single master register with many slave registers, i should install slave registers in every area, the sum will to be 30, if i consider single-server-fault question , the sum will to be 60, is it efficient?
    however, can i install slave register to each computer ( not area) ?

    2. If I design a authorian server for this system , the authorian server save user Id , name, roles ... and so on, administrator can edit these informations. when area can communcate to control center, user need logging on the authorian server in control center, the online user information should share in all area, the update of online user should notify to all area. while control center occur errors, user can logging on the authorian server in local area, how can I design this ?
  • why do not anwer my question?

    why do not anwer my question?
  • benoit
    benoit Rennes, France
    Hi,

    Sorry, I missed your response. You should actually consider our consulting services if you plan to deploy IceGrid on a large scale as you describe. Providing support for this is getting out of the scope of the free support we can provide on the forums. If you're interested in our consulting services, please contact us by email at sales@zeroc.com.
    linkman wrote: »
    1. when design a icegrid with single master register with many slave registers, i should install slave registers in every area, the sum will to be 30, if i consider single-server-fault question , the sum will to be 60, is it efficient?
    however, can i install slave register to each computer ( not area) ?

    I recommend you to checkout my newsletter article on IceGrid here. It should give a better idea on how IceGrid registries and nodes work and communicate.

    I don't see the advantage of running a slave registry on each computer. Running one slave registry per area should be enough. If one goes down, registries in other areas will still be up and the clients within the area where the registry is down will use them temporarily. You could also consider deploying only few registries instead of one per area -- it mostly depends on how often your client will need to query the IceGrid registry.
    2. If I design a authorian server for this system , the authorian server save user Id , name, roles ... and so on, administrator can edit these informations. when area can communcate to control center, user need logging on the authorian server in control center, the online user information should share in all area, the update of online user should notify to all area. while control center occur errors, user can logging on the authorian server in local area, how can I design this ?

    You could use IceStorm to notify other services in different areas that a user information has been changed. Or if your goal is to replicate the user information in the different areas, you'll need to implement the replication of this data yourself. There are various solutions to achieve this, for example: replicated SQL databases or implement the replication yourself (as described in my article here).

    Cheers,
    Benoit.