Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[hyades-dev] HCE Protocol Layer 2: Agent Interface

Some comments in addition to Allan's comments.

General:
What I would like to see also is a set of APIs (methods) for the
HyadesBaseAgent which are necessary for all derived agents, for example
initialize(), how to add command listeners, client listeners and so on

Specific:
1.1.1.2.1 CID_AGENT_INIT: why is this necessary? Isn't it the task of the
agent at startup to initialize itself (which includes also registering
itself with the HCE). If indeed some initialization is needed before
performing a specific task like data collection, that should be internal to
the agent so a client doesn't have to worry about it: client should only
have to issue the command START_COLLECTING, and the agent upon receipt of
the command initializes/resets itself to start collecting

1.1.1.2.2 CID_AGENT_DEREGISTER: is it the task of the client (or HCE) to
deregister an agent or should the agent deregister itself when done and
terminated. See command CID_DEREGISTER_AGENT in the Hyades Protocol
Specification document

1.1.1.2.4 Get Agent ID: if only for the agent's internal use, this is
unnecessary. Agent ID is returned by the HCE through the command
CONNECTION_COMPLETE (in Connection ID) when an agent first connects to the
HCE and the connection is succesful.

1.1.1.2.6 CID_AGENT_RESET: personally I think this should not be the
client's task. If an agent needs to be reset to initialized state, that
should be an internal task performed before every operation that requires
it. Other than that, a client should only have to issue start/stop commands
for a given task and not being bothered with agent cleanup

1.1.1.2.7 CID_AGENT_UN_INITIALIZE: don't see the need for this. See remarks
for 1.1.1.2.1 and 1.1.1.2.6

1.1.1.4.1 CID_AGENT_GET_INTERFACES: wouldn't this be better as a command for
the HCE (see CID_GET_AGENT_METADATA). As all communication goes through the
HCE anyway, and the HCE reads the agent registry, there really is no need
for this command on an agent level. Furthermore, does it make sense to have
to attach to an agent in order to obtain info about what interfaces the
agent support?

1.1.1.4.2 CID_AGENT_INTERFACES_SUPPORTED: see previous remark, also
partially available through CID_QUERY_AVAILABLE_AGENTS 

1.1.1.5.1CID_AGENT_ADD_EVENT_LISTENER: this works OK for the events
described in 1.1.1.7, as these are predefined. However, as Allan pointed
out, there could be agent-specific events. An additional command would be
useful: CID_AGENT_ADD_PROPRIETARY_EVENTS_LISTENER, which would not specify
any event interface IDs.


1.1.1.7.10 (new) CID_COLLECTOR_EVENT_PROPRIETARY
with Bytes 0-3 a Proprietary Event Identifier

Luc




The contents of this e-mail are intended for the named addressee only. It
contains information that may be confidential. Unless you are the named
addressee or an authorized designee, you may not copy or use it, or disclose
it to anyone else. If you received it in error please notify us immediately
and then destroy it. 



Back to the top