Re: How to access one specific lowlevel object through a general highlevel interface?



Responding to Clark...

First, I'd like a clarification on the context. The message title suggests a context of distributed interoperability where the concerns are identity and interfaces. But your body description of the problem sounds like a network access problem where the concerns are protocol conversion and hardware allocation. Which is it? In particular, who is the 'client' you refer to below?

The real problem can be destilled to something like this:
One client wants to send data using one specific top layer
protocol. At this top layer, there are a number of different
protocols, where each one inherits the main Protocol class.

This I find curious. Network protocols are conveniently organized into layers or, possibly, hierarchies. However, one usually doesn't associate inheritance with that. Could you put some more words around what is being inherited?


And every protocol subclass in turn contains several different
communication channels that inherits the Channel class.
So, a client knows about several different high level protocols
and each protocol has many channels.

Now, when data is to be sent, we must send that data over the
"most appropriate" communication channel. This channel can be
found by traversing the hierarchy of protocols and channels.

Who decides that, the Client?

However, after we have found the "best" channel, we cannot send
data through this channel directly! Instead we must send data
through the specific protocol which the selected channel belongs to.

From what you describe, my understanding here is:

subordinate to 1            1   R3  contains *
+--------------- [Protocol] ------------------ [Channel]
|                    A                             | *
| R1                 | R2                          | evaluates
|           +--------+-----------+                 |
|   1       |                    |                 |
+---- [LowerLevel]         [RootLevel]             |
                               | 1                 |
                               | selects           |
                               | through           | R4 [R5,R1,R3]
                               |                   |
                               | R5                |
                               |                   |
                               | 1   1             |
                            [Client] --------------+

The R1 relationship defines the hierarchy of protocols. The Client accesses the hierarchy through a root protocol, via R5, and "walks" the structure to get a list of candidate Channels via R1/R3 and adds them to the R4 collection. It (or somebody else?) determines which Channel to use by selecting from the resulting R4 collection. Once the Channel is selected, one navigates R3 to select the corresponding protocol (or "walks" up the structure via R1 to find an appropriate higher level protocol).

Is this correct? If so, then none of the classes has any special knowledge of the other classes, other than the navigational structure of the Protocol hierarchy. The Channel is selected by applying the selection criteria to each Channel in the R4 collection and that collection is created by simply "walking" the hierarchy and collecting the relevant Channels. Once one has the Channel, then one selects the proper Protocol by again "walking" the structure and applying the selection criteria to each Protocol encountered.


************* There is nothing wrong with me that could not be cured by a capful of Drano.

H. S. Lahman
hsl@xxxxxxxxxxxxxxxxx
Pathfinder Solutions  -- Put MDA to Work
http://www.pathfindermda.com
blog: http://pathfinderpeople.blogs.com/hslahman
(888)OOA-PATH



.



Relevant Pages

  • Re: SoapClient reply transport issue
    ... If not on the same channel then you can change protocol using ReplyTo and it ... will be regarded as a different endpoint so you have to register an endpoint ... > SoapClient erroneously retrieves the ...
    (microsoft.public.dotnet.framework.webservices.enhancements)
  • Re: ZoneAlarm blocks FTP apps
    ... > packet from any computer using whatever protocol. ... > channel) using different ports and that there are two possibilities ... > are handled and set up between client and server. ...
    (comp.security.firewalls)
  • How to access one specific lowlevel object through a general highlevel interface?
    ... protocols, where each one inherits the main Protocol class. ... communication channels that inherits the Channel class. ... a client knows about several different high level protocols ...
    (comp.object)
  • Re: How to access one specific lowlevel object through a general highlevel interface?
    ... If your client needn't know about channel because, for example, the ... the only way out is to define a bootstrap protocol (always the ... strategy for selecting channels. ...
    (comp.object)
  • Re: RGB card
    ... selection between DHR colour, mono, mixed, and '160' modes. ... Using the protocol allows software to 'support' RGB cards by selecting ... I always thought it a shame that the IIgs didn't support this. ... It always struck me as peculiar that Apple never directly supported ...
    (comp.sys.apple2)