Issue 2625: CORBA/TMN Interworking Issue: Initial EventPortFactory (corba_tmn-rtf) Source: (, ) Nature: Uncategorized Issue Severity: Summary: Summary: How does a CORBA manager get a JIDM::EventPortFactory reference ? In order for a manager to create an EventPort would it: A) i) resolve the ProxyAgentFinder (eg, resolve_initial_references()) ii) obtain a reference to a ProxyAgent iii) obtain a factory finder from the ProxyAgent via get_domain_factory_finder() iv) use the EventPortFactory returned by iii) to create an EventPort for the domain - OR - B) i) resolve the EventPortFactory (eg. resolve_initial_references()) ii) invoke create_event_port() with some additional Critieria that describes which domain is being accessed?? Resolution: Revised Text: Actions taken: April 28, 1999: received issue Discussion: End of Annotations:===== Sender: drewm@newbridge.com Date: Wed, 28 Apr 1999 11:27:17 -0400 From: Drew MacInnis Organization: Newbridge Networks Corporation X-Accept-Language: en To: issues@omg.org CC: corba_tmn-rtf@omg.org Subject: CORBA/TMN Interworking Issue: Initial EventPortFactory Olivier Potonniee suggested I post my query to these mailing lists. I'm currently involved in adding a JIDM interface to an existing OSI (Q3) management product here at Newbridge. Here is a summary of my question: --- How does a CORBA manager get a JIDM::EventPortFactory reference ? In order for a manager to create an EventPort would it: A) i) resolve the ProxyAgentFinder (eg, resolve_initial_references()) ii) obtain a reference to a ProxyAgent iii) obtain a factory finder from the ProxyAgent via get_domain_factory_finder() iv) use the EventPortFactory returned by iii) to create an EventPort for the domain - OR - B) i) resolve the EventPortFactory (eg. resolve_initial_references()) ii) invoke create_event_port() with some additional Critieria that describes which domain is being accessed?? --- I'll include the posts I received from Olivier Potonniee and Javier Lopez Martin to show some of the opinions I've received about this issue. Olivier Potonniee wrote: > Drew MacInnis wrote: > > > > Basically my primary concern is how you bootstrap these initial > interfaces. > In order for a > > manager to create an > > EventPort would I: > > > > A) i) resolve the ProxyAgentFinder (eg, > resolve_initial_references()) > > ii) obtain a reference to a ProxyAgent > > iii) obtain a factory finder from the ProxyAgent via > get_domain_factory_finder() > > iv) use the EventPortFactory returned by iii) to create an > EventPort > for the domain > > > > - OR - > > > > B) i) resolve the EventPortFactory > (eg. resolve_initial_references()) > > ii) invoke create_event_port() with some additional Critieria > that > describes which > > domain is being accessed?? > > Hi Drew > > The way you get the EventPortFactory is definitely something that > needs > to be clarified in JIDM specification. I propose to the RTF to open > an > issue, with a draft resolution. If everybody agrees with the below > behavior, then I'll prepare a formal text to intergrate in the spec. > > The ProxyAgent is the only entry point to the agent, from which you > get > and do everything. So you have to get one first (through the > ProxyAgentFinder, obtained through the initial services). Then you > can > get everything you need from the agent. > In particular, the EventPortFactory is obtained using the > FactoryFinder > (obtained via ProxyAgent's get_domain_factory_finder()), specifying > at > least the following key: > id field: "JIDM::EventPortFactory", kind field: "factory interface" > Of course, specific implementations are free to propose additional > key > values to offer a finer control of access to these factories. But > all > implementations should be able to return a valid EventPortFactory if > only this key is provided. > > > > The Interaction Translation doesn't seem to detail exactly how > you get > the initial EventPortFactory (like Example 3-1 > > does for ProxyAgent). Would the title of the EventPort be the same > as the > "requestor title" of the ProxyAgent or are > > these two titles not necessarily related? When the ProxyAgent is > destroyed > would the EventPort also be destroyed? > > The EventPort's title is the manager domain's title. So yes, it is > supposed to be the same value as the "requestor title" (which is > b.t.w. > optional in the OSI access_domain invocation). > As any reference obtained from a ProxyAgent, the EventPortFactory > reference becomes invalid when the ProxyAgent is destroyed (see page > 3-24). Any atempt to access the EventPortFactory after the > ProxyAgent > has been destroyed will raise the "INV_OBJREF" exception. > > Please tell us if and when you have an JIDM implementation > commercially > available. We'll try to maintain a list of pointers to JIDM > compliant > products. > > Regards > > -- > Olivier Potonniee __ > Alcatel - Corporate Research Center \/ > Advanced Application Unit (UAA) -------------- > Route de Nozay, 91461 Marcoussis Cedex, FRANCE |A L C /\ T E L| > Ph: +33 1 69 63 15 82 Fax: +33 1 69 63 17 89 -------------- > > Javier Lopez-Martin wrote: > Hi Olivier, Drew, > > > Drew MacInnis wrote: > > > > > > Basically my primary concern is how you bootstrap these initial > interfaces. In order for a > > > manager to create an > > > EventPort would I: > > > > > > A) i) resolve the ProxyAgentFinder (eg, resolve_initial_references()) > > > ii) obtain a reference to a ProxyAgent > > > iii) obtain a factory finder from the ProxyAgent via > get_domain_factory_finder() > > > iv) use the EventPortFactory returned by iii) to create an EventPort > for the domain > > > > > > - OR - > > > > > > B) i) resolve the EventPortFactory (eg. resolve_initial_references()) > > > ii) invoke create_event_port() with some additional Critieria that > describes which > > > domain is being accessed?? > > My opinion is that the short answer is B. > For me, A is NOT a correct answer. > > > Hi Drew > > > > The way you get the EventPortFactory is definitely something that needs > > to be clarified in JIDM specification. I propose to the RTF to open an > > issue, with a draft resolution. If everybody agrees with the below > > behavior, then I'll prepare a formal text to intergrate in the spec. > > I don't agree with the proposed behaviour. I do agree with the opening > of the issue, as this should probably be clarified in the spec anyway. > > > The ProxyAgent is the only entry point to the agent, from which you get > > and do everything. > > Up to here, correct: you get to do everything WITH THE AGENT. > > > So you have to get one first (through the > > ProxyAgentFinder, obtained through the initial services). Then you can > > get everything you need from the agent. > > In particular, the EventPortFactory is obtained using the FactoryFinder > > (obtained via ProxyAgent's get_domain_factory_finder()), specifying at > > least the following key: > > id field: "JIDM::EventPortFactory", kind field: "factory interface" > > Of course, specific implementations are free to propose additional key > > values to offer a finer control of access to these factories. But all > > implementations should be able to return a valid EventPortFactory if > > only this key is provided. > > This, in my opinion, is the wrong behaviour. The EventPort is NOT > something that exists in the (CORBA) agent, but in the (CORBA) manager! > Therefore, getting an EPFactory, and creating an EP are totally > orthogonal to finding a PA, and should NOT be mixed. > > The FactoryFinder in an agent is used to find factories to create > ManagedObjects, and not things external to the agent. > > Besides, doing what you suggest prevents multiple scenarios, and > forces a single way to work. In particular, it would be impossible > with your schema to have an agent asynchronously connect to an > existing EventPort, without the need to have connected to the agent > first by getting a ProxyAgent to it. > > It would also be impossible to have a single EP receive events from > multiple agents. > > > > > The Interaction Translation doesn't seem to detail exactly how you get > the initial EventPortFactory (like Example 3-1 > > > does for ProxyAgent). Would the title of the EventPort be the same as the > "requestor title" of the ProxyAgent or are > > > these two titles not necessarily related? When the ProxyAgent is > destroyed would the EventPort also be destroyed? > > > > This implies a coupling of PA and EP that really does not exist, unless > so decided by the programmer. > > > The EventPort's title is the manager domain's title. So yes, it is > > supposed to be the same value as the "requestor title" (which is b.t.w. > > optional in the OSI access_domain invocation). > > As any reference obtained from a ProxyAgent, the EventPortFactory > > reference becomes invalid when the ProxyAgent is destroyed (see page > > 3-24). Any atempt to access the EventPortFactory after the ProxyAgent > > has been destroyed will raise the "INV_OBJREF" exception. > > I believe that it is a big conceptual error to have EPFactory be > returned from the PA, as it is a MANAGER concept, and not an AGENT > concept. > > > Please tell us if and when you have an JIDM implementation commercially > > available. We'll try to maintain a list of pointers to JIDM compliant > > products. > > Hope this helps, regards, > > Javier Lopez-Martin > Hewlett-Packard Co > javier@spain.hp.com > > >