CORBA services: Navngiving og trading

Like dokumenter
Naming og trading INF5040. Foreleser: Olav Lysne. Ifi/UiO 1

Navngiving og trading. To design spørsmål

Distribuerte objekter og objekt-basert mellomvare

Distribuerte objekter og objekt-basert mellomvare

Distribuerte objekter og objekt-basert mellomvare

CORBA Objektmodell (Java RMI)

CORBA Component Model (CCM)

Hva består Internett av?

6105 Windows Server og datanett

6105 Windows Server og datanett

Opprinnelig IP-pakke inneholder 4480 Byte data. Dette er inklusiv IPheader. Max nyttelast på EthernetRammen er 1500 oktetter.

Time-Independent Invocation(TII) and Interoperable Routing

Introduksjon til Distribuerte System (DS)

TDT4110 IT Grunnkurs: Kommunikasjon og Nettverk. Læringsmål og pensum. Hva er et nettverk? Mål. Pensum

RM-ODP og Multimedia middleware (M3W):

Web Services. Olav Lysne

IP Internet. Tjenestemodell. Sammensetning av nettverk. Protokollstack

6105 Windows Server og datanett

6107 Operativsystemer og nettverk

Distributed Component Object Model. Utvikling av distribuerte applikasjoner. Utvidelse av COM for støtte av distribuerte objekter

Overordnet beskrivelse

Presentasjon av: Erling Ringen Elvsrud Nils Fredrik Gjerull Håkon Torjus Bommen

Fakultet for informasjonsteknologi, Løsning på eksamen i TDT4190 Distribuerte systemer Torsdag 9. juni 2005,

6105 Windows Server og datanett

Foreleser: Kjell Åge Bringsrud

Network Services Location Manager. Veiledning for nettverksadministratorer

Replikering. Olav Lysne

Gruppe 11. Frank Petter Larsen Vegard Dehlen

DCOM. 21. oktober Mai et al. Hva er egentlig en komponent?

Oppsummering. Thomas Lohne Aanes Thomas Amble

Fakultet for informasjonsteknologi, Løsning på SIF8042 Distribuerte systemer Tirsdag 27. mai 2003,

6105 Windows Server og datanett

6105 Windows Server og datanett

GraphQL. Hva, hvorfor, hvordan

6105 Windows Server og datanett

Oppsummering og pensumkommentarer. INF5040 høst forelesere: Frank Eliassen, Olav Lysne. Innhold og mål

Peer-to-Peer systemer

Kap 3: Anvendelser av Internett

Høgskolen i Telemark EKSAMEN Operativsystem og nettverk inkludert denne forsiden og vedlegg. Merknader:

Utfordringer til mellomvare: Multimedia

Fakultet for informasjonsteknologi, Kontinuasjonsløsning på SIF8037 Distribuerte systemer og ytelsesvurdering (Distribuerte systemer kun)

6105 Windows Server og datanett

6105 Windows Server og datanett

Hentet fra Suns Totorial:

Java RMI (Remote Method Invocation) Gruppe 9: Ivar Steien Rasmussen Tom Anders Dalseng Andreas Petlund

Datatyper og typesjekking

1. Installasjon av ISA 2004

Distributed object architecture

6105 Windows Server og datanett Jon Kvisli, HSN Skriveradministrasjon - 1. Utskrift i nettverk

Del 4 Noen spesielle C-elementer

Datatyper og typesjekking

Kap3: Klassemodellering

Datatyper og typesjekking

6105 Windows Server og datanett

Spredt spektrum. Trådløst Ethernet. Kapittel 2: Diverse praktisk:

Databaser fra et logikkperspektiv

Semantisk Analyse del III

Distributed Name Server - DNS

Objekt-interaksjon. INF 5040 høst 2006

Introduksjon til Distribuerte System (DS)

OOT Seminar H-97 CORBA. Praktisk del

INF2810: Funksjonell Programmering. Dataabstraksjon og Trerekursjon

INF2810: Funksjonell Programmering

Installasjon av webtjener

Introduksjon til Distribuerte System (DS)

6105 Windows Server og datanett

Java RMI. Introduksjon. Markus Foss Hans-Gunnar Vold

Datatyper og typesjekking

Diverse praktisk: Merk at foilene også er pensum, og at det kan finnes info på foilene som ikke finnes i boka! Ukeoppgavene er også pensum.

Jini. Gruppe 1 Martin Skarsaune Bjørn Arne Dybvik Cuong Huu Truong. Definisjon

PRODUKTBESKRIVELSE INFRASTRUKTUR. NRDB Lokal Node (VPN)

Stein Gjessing. Institutt for informatikk. Universitetet i Oslo. Institutt for informatikk

Løsningsforslag Test 2

INF2810: Funksjonell Programmering

Software installasjon og andre ettertanker

Fakultet for informasjonsteknologi, Løsning på kontinuasjon i TDT4190 Distribuerte systemer Onsdag 4. august 2004,

Repetisjon: Statiske språk uten rekursive metoder (C1 og C2) Dagens tema Kjøresystemer (Ghezzi&Jazayeri 2.6, 2.7)

Model Driven Architecture (MDA) Interpretasjon og kritikk

Dagens tema Kjøresystemer (Ghezzi&Jazayeri 2.6, 2.7)

LAB-L SETTE OPP MICROSOFT SERVER 2003

Oppsummering og pensumkommentarer. INF5040 høst forelesere: Frank Eliassen, Olav Lysne. Innhold og mål

Løsningsskisse, eksamen J2EE og distribuerte systemer 19.mai 2004

Oversikt. Introduksjon Kildekode Kompilering Hello world Hello world med argumenter. 1 C programmering. 2 Funksjoner. 3 Datatyper. 4 Pekere og arrays

CORBA & Java RMI & J2EE & CORBA CCM OMG & CORBA

SOSI standard - versjon Del 1: Regler for navning av geografiske elementer. DEL 1: Regler for navning av geografiske elementer

Stikkord: Java EE, EJB, JSF, JPA, SWT, klient/tjener, Glassfish server, Application Client.

UKEOPPGAVER 13: KONFIGURASJONSSTYRING

Utfordringer til mellomvare: Multimedia

Database security. Kapittel 14 Building Secure Software. Inf329, Høst 2005 Isabel Maldonado

Tom Bjærum Løsningssalg Software. AD og SharePoint administrasjon

UML 1. Use case drevet analyse og design Kirsten Ribu

PRODUKTBESKRIVELSE TJENESTE. NRDB Nummerportabilitet

Plan: Parameter-overføring Alias Typer (Ghezzi&Jazayeri kap.3 frem til 3.3.1) IN 211 Programmeringsspråk

Hurtigstart guide. Searchdaimon ES (Enterprise Server)

Integrasjon mot Active Directory i EK 2.37

EKSAMENSFORSIDE Skriftlig eksamen med tilsyn

Tjenester i Internett. E-post, HTTP, FTP, Telnet

Nr. 76/378 EØS-tillegget til Den europeiske unions tidende KOMMISJONSFORORDNING (EU) nr. 1312/2014. av 10.

PRODUKTBESKRIVELSE INFRASTRUKTUR. NRDB Internett

Generiske mekanismer i statisk typede programmeringsspråk

Transkript:

CORBA services: Navngiving og trading INF5040 Foreleser: Olav Lysne Ifi/UiO 1 To design spørsmål Navngiving ressursdeling krever globale lokasjonsuavhengige navn på ressurser og objekter hvordan konstruere navngivingsskjema som skalerer i tilstrekkelig grad og som tillater effektiv avbildning fra navn til lokasjon? Trading tjenester har behov for kunder hvordan publisere tjenster og hvordan kan klienter finne relevante tjenester (som de kanskje ikke vet navnet på)? Ett svar: GULE SIDER Ifi/UiO 2

Litteratur Navngiving Coulouris et al, chap. 9 ORBACUS manual, chap. 9 Trading ORBACUS manual, chap 14 Tutorial on ODP trading function Ifi/UiO 3 Navngiving En prosess som krever adgang til et objekt eller en ressurs som den ikke forvalter, må eie et navn eller en identifikator til objektet/ressursen Objektets/Ressursens navn er grunnlaget for å lokalisere objektet Lokalisering: avbilde navnet til en kommunikasjonsidentifikator (f.eks. IP adresse/port, eller ObjektRef.) Design valg for navn i DS: navnerom (endelig/uendelig, flatt/hierarkisk) metode for lokalisering av ressurs fra dens navn Ifi/UiO 4

Lokalisere ressurs fra navn Lokasjon kodet i navnet Distribuert navnetjener Cache/broadcast Forover pekere Kombinasjoner av metodene over Internet Domain Naming Service distribuert navnetjener (inkl. replikering) caching Ifi/UiO 5 Noen begreper Binding assosiasjon mellom et navn og et objekt tjenste-spesifikke navn bindes til et objekt eller ressurs tjeneste-uavhengige navn bindes til attributter om det navngitte objekt Navneoppklaring finne attributtene assosiert med et navn (look_up) Ifi/UiO 6

Noen begreper II Attributt-verdi: primitiv (f.eks. Ethernet adresse) navn (som igjen er bundet til et objekt eller en ressurs) Bruker-attributter e-post adresse, login navn, passord, hjemmekatalog, Datamaskin-attributter fysisk adresse, arkitektur, type operativsystem, Tjeneste-attributter versjon, aksess-protokoll, Ifi/UiO 7 Navnetjeneste Database av bindinger mellom tekstlige navn og objekt-attributter look_up : navn attributter Ifi/UiO 8

Krav til global navnetjeneste Skalerbarhet effektiv handtering av vilkårlig store mengder navn betjene vilkårlig antall administrative domener Lang levetid => må kunne absorbere endringer i navnerommets organisering Høy tilgjengelighet de fleste andre systemer avhenger av navnetjenesten Feilisolering lokale feil må ikke medføre total feiling av navnetjenesten Toleranse for mistro ikke gjøre systemet avhengig av en eneste komponent som alle klienter må stole på Ifi/UiO 9 DNS Domain Name Service Navnetjenesten på Internettet Brukes i all hovedsak til å oversette maskinnavn (smtp.ifi.uio.no) til IP-adresser (128.64.28.01). Fra en mailadresse å finne en maskin som kan håndtere mail for det gitte domenet. Kan også oversette IP-adresser til maskinnavn fra et maskinnavn finne maskinarkitektur of OS-type Velkjente tjenester - hvilke tjenester tilbys av en maskin (f. eks telnet, FTP) Ifi/UiO 10

DNS Navnerom hierarkisk (jfr. krav om skalerbarhet) navnesyntaks: <navnekomponent>(. <navnekomponent>)* ifi.uio.no www.yahoo.com Domener avsluttende del av et navn uio.no.com identifiserer et domene -- en samling av navn med samme suffix Ifi/UiO 11 DNS Navnerom II Alias Samme maskin kan ha flere navn Dette er praktisk for lokasjonstransparens (jfr. www.ifi.uio.no). Hierarkisk oppdelt navnene deles mellom høyere-nivå domener. Disse motsvarer gjerne (men ikke nødvendigvis) forskjellige geografiske områder (no), samfunnsområder (com, gov) eller institusjoner og bedrifter (vg.no, ifi.uio.no). hvert domene er assosiert med et suffix uio.no purdue.edu administratorer kan fritt binde navn med sine respektive assosierte suffix en ifi administrator kan binde navn med suffix ifi.uio.no en.com administrator kan binde navn med suffix com Ifi/UiO 12

Navnetjenere DNS partisjonerer navnedatabasen over flere soner hver navnetjener lagrer data for et eller flere subtrær av navnerommetsamtnavnetpårotkatalogeni hvertsubtre com no edu de... yahoo stepstone... vg uio... ifi fys... Ifi/UiO 13 DNS Datatyper Abstraksjon DNS lagrer records på formen <navn, TTL, klasse, type,verdi> Domene navn TTL klasse type verdi www 1D IN CNAME digre digre 1D IN A 128.101.57.3 Domenenavnene tolkes innenfor en gitt sone Ifi/UiO 14

DNS Skalerbarhet og navigering Skalerbare domain navnetjenere replikering & caching av deler lokalisert til steder de benyttes ofte f.eks. domener nært roten er ofte replikert (jfr. hot-spots) hver tjener lagrer domenenavn og adresser til andre tjenere som kan oppklare navn som er utenfor tjenerens domene Navigering iterativ og rekursiv iterativ: spør en tjener først, som deretter gir deg beskjed om hvilken tjener du bør spørre i stedet rekursiv: tjenerne i de forskjellige sonene kaller hverandre direkte for å oppklare navn Ifi/UiO 15 Andre eksempler på navnetjenester DECs Global Name Service (GNS) X.500 Directory Service CORBA Naming Service Ifi/UiO 16

CORBA Navnetjeneste Tillater objekter å lokalisere andre objekter ved deres navn Kan innkapsle kjente eksisterende navnetjenersystemer prøver å generalisere disse slik at de kan benyttes til å implementere CORBA navnetjeneste Navnerom hierarkisk Ifi/UiO 17 CORBA Navnetjeneste II Hierarkisk navnerom Feriesteder Global katalog Spaina Hellas Kypros Saga Club Med Katalog Playa ResortInn BA operasjoner inkluderer: void bind(in Name n, in Object obj); Object resolve(in Name n); AlcuidaBeach kontekst objektnavn Ifi/UiO 18

CORBA Navn Feriested Spania Club Med Alcudia Beach Kontekst navn Kontekst navn Kontekst navn Enkelt navn sammensatte objektnavn: består av ett eller flere komponentnavn (betegner kontekster) og et enkelt navn enkelt navn: value-kind par value attributtet brukes til å oppklare navn kind attributtet brukes til å lagre info om rollen til objektet brukes på en applikasjonsspesifikk måte for å gi mer info om semnatikken til objektet som er bundet til navnet Ifi/UiO 19 IDL typer for navn module CosNaming { typedef string Istring; struct NameComponent { Istring id; Istring kind; }; typedef sequence <NameComponent> Name;... }; Ifi/UiO 20

IDL grensesnitt NamingService er spesifisert ved to IDL grensesnitt: NamingContext definerer operasjoner for å binde objekter til navn og oppklare navnebindinger. BindingIterator definerer operasjoner for å iterere over en mengde navn som er definert i en navnekontekst. Ifi/UiO 21 Utdrag av NamingContext grensesnitt interface NamingContext { void bind(in Name n, in Object obj) raises (NotFound,...); Object resolve(in Name n) raises (NotFound,CannotProceed,...); void unbind (in Name n) raises (NotFound, CannotProceed...); NamingContext new_context(); NamingContext bind_new_context(in Name n) raises (NotFound,...) void list(in unsigned long how_many, out BindingList bl, out BindingIterator bi); }; Ifi/UiO 22

Utdrag av BindingIterator grensesnitt interface BindingIterator { boolean next_one(out Binding b); boolean next_n(in unsigned long how_many, out BindingList bl); void destroy(); } Ifi/UiO 23 Hvordan oppstår det første navn? OMG har standardisert en del tjenstenavn, inklusive NameService TradingService POA metode: Object resolve_initial_reference(in ObjectId identifier) Eksempel på bruk: obj = orb.resolve_initial_reference( NameService ) Se og ORBacus manual kap. 4 og 6. Ifi/UiO 24

Begrensinger Begrensninger ved navngiving: klienten må alltid identifisere tjeneren ved navn Passer ikke hvis klienten kun ønsker å bruke en tjeneste med en viss kvalitet men vet ikke fra hvem Video on demand lokalisere tjeneren som har tittelen og til best pris Elektronisk handel aksjehandel: lokalisere børs med beste tilbud Mange situasjoner der tjeneren ikke kan/bør lokaliseres basert på navn men snarere basert på kvalitative egenskaper Ifi/UiO 25 Trading Lokalisere tjenester ut fra deres egenskaper interface type andre attributter (tjenestekvalitet m.m.) Ifi/UiO 26

Motivasjon Lokalisere objekter på en lokasjonstransparent måte Navngiving er enkel med passer ikke når klienter ikke kjenner tjeneren det er flere tjenere å velge mellom Trading understøtter lokalisering av tjenere basert på tjener funksjonalitet og kvalitet Navngiving hvite sider Trading gule sider Ifi/UiO 27 ODP/CORBA Trader En objekt-tjeneste (database) som dynamisk kan koble tjeneste-behov med tjeneste-tilbud (sein binding) Eksportør et objekt som tilbyr tjenester Importør et objekt som har behov for tjenester Trader Importør ORB 2 Importer tjeneste ORB Eksporter tjeneste 1 Eksportør ORB 3 Anrop tjeneste Ifi/UiO 28

Trading karakteristika Felles spåk mellom klient og tjener tjeneste type tjenestekvalitet (QoS) Tjeneren registrerer tjenester hos traderen Tjeneren definerer tjenestekvalitet med garantier: statisk QoS definisjon dynamisk QoS definisjon Ifi/UiO 29 Trading karakteristika Klienten spør traderen om en tjeneste av en bestemt type på et visst kvalitetsnivå Traderen understøtter service matching service shopping Ifi/UiO 30

Eksempel Hongkong Telecom video-on-demand tjener Server MGM Warner Video-ondemand provider Trader User Independent Ifi/UiO 31 Trading prosessen Eksempel: video-on-demand tjener :Client query() :Trader MGM:VoDS export() export() Warner:VoDS download() modify() Ifi/UiO 32

Definisjon av tjenestetype Tjenestetype funksjonalitet som tilbys av en tjeneste og tjenestekvaliteten som tilbys Funksjonalitet defineres ved objekt type (grensnitt type) Tjenestekvalitet er basert på attributterer ( properties ): egenskapsnavn egensskapstype egenskapsverdi(er) statisk tjeneste-egenskap (f.eks. skriverhastighet) dynamisk tjeneste-egenskap (f.eks. kø-lengde til skriver) egenskapsmodus (obligatorisk/valgfri, immutabel/mutabel) Ifi/UiO 33 Eksempel tjenestetype typedef enum {VGA,SVGA,XGA} Resolution; service video_on_demand { interface VideoServer; readonly mandatory property float fee; readonly mandatory property Resolution res; modifiable optional property float bandwidth; } Ifi/UiO 34

Tjenestetype hierarki En objekt type kan ha flere implementasjoner med forskjellige QoS. Samme objekt type kan brukes i forskjellige tjenestetyper. Tjenestetype S er en subtype til tjenestetype S hviss objekt type til S er identisk med eller er en subtype til objekt type til S S har minst alle QoS egenskaper som er definert for S Subtype relasjonen kan utnyttes av traderen for mer fleksibel utvelgelse av tjenestetilbud (service matching) Ifi/UiO 35 Eksport av tjenestetilbud navn på tjenestetype identifiserer en tjenestetype (interfacetype & egenskapstyper) objekt/interface referanse referer tjenestetilbudet mengde tilbudte tjeneste-egenskaper Ifi/UiO 36

Import av tjenestetilbud Importør spesifiserer tjenestebehov ved: Tjenesteadferd navn på tjenestetype begrensende egenskapsuttrykk (property matching constraint) boolsk uttrykk i et constraint språk evalueres over tjenesteegenskaper PrinterType = laser AND Cost_per_Page < NOK10.00 Utvelgelseskriterium utvalgskriterium når flere tjenestetilbud oppfyller kravene minimize(cost_per_page) Ifi/UiO 37 Trading policies Avhengig av constraint uttrykk og mengden tilgjengelig tjenester, kan resultatet av en import-spørring bli svært mange tjenestetilbud Trading policies brukes til å begrense størrelsen på søkeresultatet spesifikasjon av hvordan søket skal gjennomføres ved føderasjoner av tradere kan begrense antall trader-lenker som skal følges (hop-count) eller hvilken trader søket skal starte i maks. antall tilbud som kan returneres m.m. Ifi/UiO 38

Trader føderasjoner Skalerbarhet krever føderasjoner av tradere En trader deltar i en føderasjon ved å tilby tjenestene den kjenner til andre tradere videresender importspørringer den ikke selv kan tilfredsstille til andre andre tradere. Ifi/UiO 39 CORBA Trading service Application Objects Domain Interfaces CORBA facilities Object Request Broker CORBAservices Object Trader Ifi/UiO 40

Definisjon av tjenestekvalitet typedef Istring PropertyName; typedef sequence<propertyname> PropertyNameSeq; typedef any PropertyValue; struct Property { PropertyName name; PropertyValue value; }; typedef sequence<property> PropertySeq; Ifi/UiO 41 Trader interface for eksportører interface Register { OfferId export(in Object reference, in ServiceTypeName type, in PropertySeq properties) raises(...); OfferId withdraw(in OfferId id) raises(...); void modify(in OfferId id, in PropertyNameSeq del_list, in PropertySeq modify_list) raises (...); }; Ifi/UiO 42

Trader interface for importører interface Lookup { void query(in ServiceTypeName type, in Constraint const, in Preference pref, in PolicySeq policies, in SpecifiedProps desired_props, in unsigned long how_many, out OfferSeq offers, out OfferIterator offer_itr, out PolicyNameSeq Limits_applied) raises (...); }; Ifi/UiO 43 Trader interaksjoner Eksportør Importør 2 1 3 Type repository 1a 2a 3a Trader 1: Tjenesteeksport 1a: sjekker med type repository om tjeneste-eksport er gyldig 2: Tjensteimport 2a: sjekker med type repository om gyldig importanrop 3: returnerer tjenestetilbud som oppfyller importbehovet 3a: trader innhenter alle tjenestetyper som er subtyper med typen i importanropet Ifi/UiO 44