INFO
Sylabus
OMG CORBA, cz. 5
1. Usługa nazewnicza
2. Usługa nazewnicza: Wiązanie, rozstrzyganie
3. Usługa nazewnicza: kroki dla uzyskania referencji
4. Usługa handlowa (Trader)
5. Funkcje bazy danych Trader
6. Definicja typu usługi
7. Usługi w zakresie zdarzeń
8. Usługi w zakresie cyklu życiowego
9. Usługi w zakresie trwałych obiektów
10. Usługi w zakresie związków
11. Usługi w zakresie zapytań
12. Bieżące prace OMG
13. Najbardziej znane implementacje CORBA
14. Wady OMG CORBAi
15. Podsumowanie
Skorowidz
Wyście:
Wyklad V. Wprowadzenie do OMG CORBA, część 5 (KURS SSR)
I II III IV V VI VII VIII IX X XI XII XIII XIV
« poprzedni punkt   następny punkt »

1. Usługa nazewnicza (Name Service)

  • Zapewnia możliwość wiązania nazwy do obiektu relatywnie w stosunku do kontekstu.
  • Kontekst nazwowy jest to pewien obiekt zawierający wiązania nazw.
  • Wszystkie obiekty muszą być nazwane.
  • Nazwy są relatywne w stosunku do kontekstu; w ramach kontekstu są unikalne.
  • Usługa nazwowa nie zajmuje się ani składnią ani znaczeniem nazw.
(8kB)
2. Usługa nazewnicza: wiązanie, rozstrzyganie (binding, resolving)

Wiązanie: przypisanie nazwy do obiektu

void bind( in Name n, in Object obj ) 
   raises(NotFound, CannotProceed, InvalidName, AlreadyBound)
Przykładowe wywołanie:
kontekst -> bind( foo, myobj )

Rozstrzyganie: odszukanie obiektu posiadającego przypisaną nazwę

Object resolve( in Name n) 
   raises (NotFound, CannotProceed, InvalidName)
Przykładowe wywołanie:
myobjref = kontekst -> resolve( foo ))
Nazwy mogą mieć postać ciągów <c1;c2;...;cn>.
Wiązanie i rozstrzyganie rekurencyjne.
(2kB)

3. Usługa nazewnicza: kroki dla uzyskania referencji

(narrow - kast do określonego typu.)

  • Otrzymaj początkowy kontekst nazwowy
    org.omg.CORBA.Object objRef = 
            orb.resolve_initial_references("NameService"); 
    NamingContext rootContext = NamingContextHelper.narrow(objRef);
    
  • Utwórz nazwę złożoną:
    NameComponent comp1 = new NameComponent("user",""); 
    NameComponent comp2 = new NameComponent("u2",""); 
    NameComponent comp3 = new NameComponent("foo",""); 
    NameComponent [] name = {comp1, comp2, comp3}
    
  • Znajdź obiekt opatrzony tą nazwą:
    org.omg.CORBA.Object objRef = rootContext.resolve(name); 
            orb.resolve_initial_references("NameService"); 
    FooClass fooRef = FooHelper.narrow(objRef);
    
  • Wywołaj metodę na docelowym obiekcie zidentyfikowanym przez fooRef .
« poprzedni punkt   następny punkt »