Archived

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

Question about Glacier.Router.Client.Endpoints in Glacier!

I am reading "Distributed Programming with Ice" paper and has reached Chapter 29.3.1. But I can not understand why we have to config Glacier.Router.Client.Endpoints. I can not see any necessity of Glacier.Router.Client.Endpoints if we use router without callback objects.

Could anybody explain it for me ? Thanks!

Comments

  • Glacier.Router.Client.Endpoints defines the endpoints to which clients connect. If this is not defined, your clients cannot reach Glacier. If you do not use callbacks, then there is no need to define Glacier.Router.Server.Endpoints, as this defines the endpoints where the servers connect to Glacier.
  • Thanks!

    I can understand Glacier.Router.Server.Endpoints, but i can not figure out the difference between Glacier.Router.Endpoints and Glacier.Router.Client.Endpoints ? This is what the paper say:

    1)The endpoint defined by Glacier.Router.Endpoints is called the router control endpoint because it is used by the Ice run time in a client to interact directly with the router.

    2)The endpoint defined by the property Glacier.Router.Client.Endpoints is where requests from routed proxies are sent.

    Both of these endpoints must be accessible to clients and there-fore are defined on the public network interface.
  • mes
    mes California
    Hi,

    The endpoints defined by the Glacier.Router.Endpoints property are for use in the router's proxy that a client defines in Ice.Default.Router. The Ice::Router interface defines a getClientProxy operation, and the Glacier router's implementation of this operation returns a proxy whose endpoints are defined by Glacier.Router.Client.Endpoints.

    So, both sets of endpoints must be accessible to clients, but the endpoints in Glacier.Router.Client.Endpoints would not appear in the client's configuration. This behavior is simply an implementation detail, as the upcoming Glacier2 router does not require two sets of client-side endpoints.

    Hope that helps.
    - Mark
  • Originally posted by mes
    Hi,

    The endpoints defined by the Glacier.Router.Endpoints property are for use in the router's proxy that a client defines in Ice.Default.Router. The Ice::Router interface defines a getClientProxy operation, and the Glacier router's implementation of this operation returns a proxy whose endpoints are defined by Glacier.Router.Client.Endpoints.

    So, both sets of endpoints must be accessible to clients, but the endpoints in Glacier.Router.Client.Endpoints would not appear in the client's configuration. This behavior is simply an implementation detail, as the upcoming Glacier2 router does not require two sets of client-side endpoints.

    Hope that helps.
    - Mark

    Thank you mes.
    I have got the interfaces defined by Ice::Router:
    1)Object* getClientProxy();
    Get the router's client proxy, i.e., the proxy to use for forwarding requests from the client to the router.

    2)Object* getServerProxy();
    Get the router's server proxy, i.e., the proxy to use for forwarding requests from the server to the router.

    I am sorry that i can not really understand what "forwarding requests from the client to the router" means. Is there a TCP/IP connection between client and router (defined by Glacier.Router.Endpoints), right ? Why should Ice forward requests from client to router ? Though the behavior is simply an implementation detail, but i am really interested in it! Can you explain more to me ? Thank you very much!