On 2/14/11 5:15 PM, Kabir Khan wrote:
Sent from my Android phone using TouchDown (
www.nitrodesk.com)
>>
>> On master, Kabir introduced a notion of different types of clients
>> (DOMAIN, HOST, STANDALONE) which are implemented by passing an enum to
>> ModelControllerClient.Factory.create(). We need to think through how
>> that relates to this; whether that distinction is required and how to
>> express it in the CLI.
>>
>> The actual core API is the same between DOMAIN, HOST, STANDALONE (i.e.
>> operations expressed in DMR and passed to the managed process and
>> operation results in DMR are passed back); the real difference is just
>> what the expected addresses and operations are. Right now the enum is
>> just used to check that the client is connecting to the expected kind of
>> process. Conceivably we don't need the DOMAIN/HOST/STANDALONE enum and
>> we just count on users knowing what they are doing.
>
> The reason I added that was the host management socket. If the DC is local, both HC
and DC requests will come in on the same socket. We need some differentiator to know if a
request should go to the HC or the DC.
Well any host management socket should know how to answer host changes,
domain changes, and server changes; it should be one protocol on one
socket with the only differentiator being the address in question.
>>>>> I agree the enum isn't the best way of doing it and that the
connection is a good way. I still don't see how we will distinguish operations coming
from outside, such as the cli, when the node is both the dc and dc. Addresses starting
with host->* will be for the hc and currently routed via the proxies. But for less
unique things like interface-> which exist in both I say we still need something else
(it could be an extra parameter in the operation specifying the level) or some rule that
if a hc is running a local dc, all outside connections are for the dc. Or did we ever
decide that hc will only accept incoming commands via dc?
We need to allow a non-DC HC accept end user requests. There are a lot
of basic things people can manage via an HC without requiring a running
DC; start and stop servers, gather metrics.
One possibility is to use a consistent addressing scheme across the
various use cases (including standalone). The root is always the domain
root; a host operation is done via host=XX, a running server is
host=xx,server=yy.
For host changes, that host's configuration change is effected
immediately. For domain changes, if the node is the DC it can handle it
locally, else it'd forward on (on the user's behalf, presumably). For
server changes, it'd require that the caller has the appropriate
credentials (some operations, like reads and most runtime-only changes,
can be carried out by users, while others, like server model changes,
may only be carried out by the HC).
_______________________________________________
jboss-as7-dev mailing list
jboss-as7-dev(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/jboss-as7-dev
--
Brian Stansberry
Principal Software Engineer
JBoss by Red Hat