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

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

Gruppe 11. Frank Petter Larsen Vegard Dehlen

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

Java RMI. Introduksjon. Markus Foss Hans-Gunnar Vold

Basert på en artikkel fra Microsoft propaganda November 1996

CORBA Objektmodell (Java RMI)

CORBA Component Model (CCM)

Distribuerte objekter og objekt-basert mellomvare

2. HVA ER EN KOMPONENT?

Distribuerte objekter og objekt-basert mellomvare

Distribuerte objekter og objekt-basert mellomvare

Generiske mekanismer i statisk typede programmeringsspråk

INF329,HØST

Distributed object architecture

Tor-Eirik Bakke Lunde

Jini. Overblikk. Gruppe 1: Odd-Wiking Rahlff, Arnor Solberg og Finn Haukebøe

Operativsystemer og grensesnitt

AlgDat 10. Forelesning 2. Gunnar Misund

Konfigurasjon av nettverksløsning for Eldata 8.0 basert på PostgreSQL databasesystem.

oppgavesett 4 INF1060 H15 Øystein Dale Hans Petter Taugbøl Kragset September 22, 2015 Institutt for informatikk, UiO

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

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

Installasjonsveiledning Oppgradering av tidligere versjon

Huldt & Lillevik Lønn 5.0. Installere systemet

Peer-to-Peer systemer

Løsningsforslag Gruppeoppgaver, 28. april 2. mai. 1. Metningskontroll ( Congestion control ) og ressursallokering.

6105 Windows Server og datanett

OpenCOM. Del av et forskningsprosjekt ved Lancaster University, UK

Huldt & Lillevik Lønn og Personal - System 4. Installasjon. - første gang. Med MS SQL Server eller eksisterende MS Express.

6105 Windows Server og datanett

AlgDat 12. Forelesning 2. Gunnar Misund

Time-Independent Invocation(TII) and Interoperable Routing

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

Installasjonsveiledning Oppgradering av tidligere versjon

Introduksjon til Distribuerte System (DS)

Litt om Javas class-filer og byte-kode

DDS-CAD 7 INSTALLASJON VIA NETTVERK. DATA DESIGN SYSTEM ASA Øksnevad Næringspark, 4353 Klepp st., fax , tel.: , e-post: dds@dds.

Huldt & Lillevik Lønn 5.0. Installere systemet

Utfordringer til mellomvare: Multimedia

Scientific applications in distributed systems

IN1020. Datamaskinarkitektur

Innholdsfortegnelse. 1. Testing Feiltesting av koden Funksjonstesting: Kilder.10

6105 Windows Server og datanett

Huldt & Lillevik Lønn og Personal - System 4. Installasjon. Microsoft SQL 2005 Express. Aditro HRM AS

Programmering, oppsett og installasjonsløsninger av LIP-8000 serien IP apparater

Controller Brukerstøttedatabase Ottar Holstad/Cantor 09.

public static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren

Lagene spiller sammen

Software installasjon og andre ettertanker

Huldt & Lillevik Lønn 5.0. Installere systemet

Mappeinformasjon Programfiler... 2 Delte Programdata... 2 Delte dokumenter... 2 Brukerens egne data... 2 Brukerens egne dokumenter...

Tjenester i skyen. 19. desember

KTN1 - Design av forbindelsesorientert protokoll

Hentet fra Suns Totorial:

Scan Secure GTS PAS

Forelesning Oppsummering

NorskInternett Brukermanual. Sist oppdatert Side 1/30

Web fundamentals. Web design. Frontend vs. Backend Webdesign 17. januar Monica Strand

Intel Core i7. Omid Mirmotahari 4

Installasjonsveiledning Visma Avendo Lønn, versjon 7.60 Oktober 2011

Lars Vidar Magnusson. October 11, Lars Vidar Magnusson () Forelesning i Operativsystemer October 11, / 28

Endringer rundt aktivering av Microsoft Windows Vista

SonicWALL UTM. Hvorfor man bør oppgradere til siste generasjon SonicWALL brannmur. NSA E-Class serien. NSA serien. TZ serien

Installasjonsveiledning

Bachelor E. Theodor Rove Nordgård, Chris Sonko HIST DRIFT AV DATASYSTEMER

PRODUKTBESKRIVELSE INFRASTRUKTUR. NRDB Lokal Node (VPN)

INF Puslegruppa - Kom i gang med PusleChat

6105 Windows Server og datanett

Innhold. Introduksjon til parallelle datamaskiner. Ulike typer parallelle arkitekturer. Prinsipper for synkronisering av felles hukommelse

Kundens tekniske plattform

Oppgave 8.1 fra COD2e

InfoRed Publisering. - produktbeskrivelse. TalkPool WebServices Postboks Åneby

DDS-CAD 6.4 INSTALLASJON VIA NETTVERK. DATA DESIGN SYSTEM ASA Øksnevad Næringspark, 4353 Klepp st., fax , tel.: , e-post:

Intel Core i7. Omid Mirmotahari 4

Blant de mest omtalte Internett tilpassningene i dag er brannmurer og virtuelle private nett (VPN).

Kapittel 9. Distribusjon. Fjernbruker. Tjenermaskin LAN WAN. Nærbruker. Figur 9-1: En enkel klient/tjener distribusjon

For kunder som bruker Windows for nettverkstilkobling

public static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren

DDS-CAD 7 INSTALLASJON AV NETTVERKSLÅS. DATA DESIGN SYSTEM ASA Øksnevad Næringspark, 4353 Klepp st., fax , tel.: , e-post: dds@dds.

COM. Hva er COM? The Component Object Model. Microsoft sitt rammeverk for å lage og bruke komponenter

Forord. Brukerveiledning

NOTAT (pensum!) Javas klasse-filer, byte-kode og utførelse. INF 5110, 10/5-2011, Stein Krogdahl

Installere programvare gjennom Datapennalet - Tilbud

Huldt & Lillevik Ansattportal. Installere systemet

SOLICARD ARX. Adgangssystemet som gir deg ubegrenset frihet. An ASSA ABLOY Group company

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

Huldt & Lillevik Ansattportal. - en tilleggsmodul til Huldt & Lillevik Lønn. Teknisk beskrivelse

INF2270. Input / Output (I/O)

Komponentbasert Systemutvikling - Hva, Hvorfor, Hvordan

Guide for tilkobling til HIKT s Citrix løsning

1. Installasjon av Novell Netware 6 server

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

9 Online Backup. Priser KR 100 / PC lisens KR 300 / Server lisens (inkluderer bl.a. SQL/Exchange) KR 0,50 / GB

Visma Contracting Oppgradering til versjon 5.20

Innhold. Installasjon av SQL server 2012/ Installasjon og konfigurasjon... 2 Port-konfigurasjon... 14

Implementering av caching ved hjelp av Spring. Christian Vestøl

Minnehåndtering i operativsystemer

INF2270. Input / Output (I/O)

Småteknisk Cantor Controller installasjon

2 Om statiske variable/konstanter og statiske metoder.

Transkript:

DCOM 21. oktober 2004 Mai et al. Komponent Hva er egentlig en komponent? En komponent er et programvareobjekt, ment å samvirke med andre komponenter, og tilbyr en gitt funksjonalitet. En komponent har et tydelig definert grensesnitt og forholder seg til en foreskrevet oppførsel som er felles til alle komponenter innenfor en arkitektur. 1

Microsoft Distributed COM (DCOM) - DCOM ble født 1996 - Utvider Component Object Model (COM) - Støtte for kommunikasjon mellom objekter over nettverk (LAN, WAN, Internett osv) - Fulgte med Windows NT 4.0 - COM og DCOM eies ikke lenger av Microsoft, men forvaltes av den uavhengige organisasjonen ActiveX Consortium Kommunikasjon mellom objekter - COM - Prosesser er beskyttet fra hverandre - COM avskjærer kallet og brukes operativsystemets metoder for IPC og sender kallet videre til rett prosess - DCOM - Bytter ut den lokale IPC med en nettverksprotokoll - Verken klienten og komponenten (CORBA: servant) er klar over at veien mellom prosessene har blitt lenger COM DCOM kommunikasjon 2

Design - Komponentbasert arkitektur - Kan enkelt bygge på systemer som allerede benytter COM - Uavhengighet til lokasjon - Adresser kan endres uten endring i kildekode og rekompilering - Ligger i registeret - Man kan lett rekonfigurere kjørende systemer - DCOM kan brukes av mange programmeringsspråk: - Eks.: Java, C++, Visual Basic, Delphi, COBOL - Kan lage rask prototyp i et språk, og siden reimplementere i mer effektivt språk Garbage collection Bruker ping for å sjekke om klienter/komponent lever Etter 2 min. med inaktivitet pinger komponentklienten eller klientenkomponenten 3 feil ping dekrementer count og eventuelt frigjør seg selv Dette foregår på per-maskin-basis Dersom en klient bruker 100 komponenter på en tjener pinges klienten bare én gang Sender kun endringer Dersom en klient plutselig har færre komponentreferanser vil kun disse endringene sendes, ikke referanser til alle komponentene Piggy-backer ping-meldinger på vanlige meldinger Reference count algoritme Klient kobler til komponent inkrementer ref. count i komponent Klient kobler fra komponent dekrementer ref. count i komponent Dersom ref. count = 0 komponent kan gjøre seg fri selv 3

Skalerbarhet DCOM bruker Windows NT system for eksekvering av kode på en multiprosessormaskin Trådpool optimert for korrekt antall prosessorer Fleksibel utplassering Enkelt å implementere replikering (endre i registeret) Kan dele opp bottleneck komponenter i flere småkomponenter Sende data serielt gjennom komponentene (ligner pipelining) Versjonshåndtering Over tid kan et distribuert system endre seg Klienter kan sende forespørsler om funksjonaliteten til en komponent COM komponenter kan vises forskjellig for forskjellige komponenter Ny funksjonalitet legges til flere interfaces tilgjengelig 4

Ytelse Klient ser ikke server, men ser metodene til serveren Slår opp adresser til metoder fra en tabell med metodeadresser Overhead i forhold til tradisjonell C er oppslaget (indirekte funksjonskall direkte funksjonskall) Dersom metode er i samme prosess blir ikke COM involvert Hvis ikke blir metodekallet: pakket i standard buffer representasjon sendt over til komponenten pakket opp eksekvert DCOM overhead er omtrent 35% mer enn vanlig TCP/IP ytelse når kallet går over nettverket Når et metodekall tar tid å prosessere vil raten gå ned 1ms å prosessere 23% overhead 2ms å prosessere 17% overhead Kommunikasjon Båndbredde Størrelsen på et metodekalls parametere virker direkte inn på hvor lang tid det tar å fullføre et kall Latency Den fysiske distansen og antall noder involvert før en pakke kommer frem vil forsinke ethvert kall Støtter toveis kommunikasjon Tjener Klient & Klient Tjener En komponent kan både være tjener og klient 5

Network roundtrips En komponent kan gi en klient en referanse til en annen komponent og siden være ute av veien selv Kan for eksempel brukes til load balancing når man har mange like komponenter (Samme som i vårt CORBA-prosjekt hvor en GameServer kastet av gårde et Game til to Playerobjekter) DCOM tillater å bruke protokoller utenfor standard DCOM Eksempel: En komponent har tilgang til en en SQLserver gjennom ODBC DCOM sender en kopi av komponenten til klienten slik at kall på den blir raskere Klient merker ikke at komponenten er flyttet, kun at kall går raskere Sikkerhet Viktig også i DCOM Vanlig prosedyre er å sende med en nøkkel og la tjeneren finne ut om det er riktig person DCOM bruker også dette, i støtte fra operativsystemet 6

Sikkerhet Er transparent og derfor skjult for brukeren Settes opp av utviklere og administratorer Hvert komponent kan bestemmes separat! Når brukeren logger seg inn, sjekkes brukeren mot et register før komponenten settes opp Dersom brukeren ikke har tilgang, kastes brukeren på dør før komponenten engang settes opp Sikkerhet Det er også støtte for å gi brukere forskjellige nivåer av tilgang Dette gjør at brukeren må vite hvilken sikkerhetsgrad de forskjellige komponentene har Lotte: Lotte: Hm, Hm, kan kan jeg jeg bruke bruke denne, denne, mon mon tro? tro? 7

Sikkerhet? Denial of Service (DoS) (2003) Port 135, 137, 139, 445 bør blokkeres Men kan risikere at COM komponenter ikke klarer å kommunisere osv. Dette er fikset av Microsoft nå Vanskelig å lage sikre systemer, så man må kanskje være litt forsiktig med å påstå at systemet er sikkert? Lastbalansering Statisk Bruker k får tilgang til tjener m hver gang Dynamisk Bruker k får tilgang til den minst opptatt og best tilpassede tjeneren DCOM støtter ikke at brukeren kobler seg av og kobler seg på igjen og forventer samme tjener Det gis en del informasjon til klienten som kan hjelpe til å opprette denne informasjonen 8

Feiltoleranse ping Gjentar kontakt med referansen hvis feil Men data kan forsvinne, som nevnt Bruker f. eks. en recovery cache Anvendelighet Installasjon Jo tynnere klientene er, jo verre! Men ikke for tykke heller, pga oppgradering Noen programmer klarer å oppdatere seg automatisk, vel og merke Komponentene kan plasseres etter ønske 9

Anvendelighet Administrasjon Enkelt å endre enkelte komponenter Protokollnøytralitet Siden det er mellomvare Applik. OS DCOM Applikasjonssammenligning DCOM Bruker multippel interface ID til serverobjekt: peker til interface Oppgaver som objektregistrering, skeleton instansiering etc. håndteres enten av komponenten eksplisitt eller COM sin run-time implisitt Underliggende protokoll: (ORPC) Object Remote Procedure Call Lokalisering av objektimplementasjon: Service Control Manager (SCM) Aktivisering av objektimplementasjon: SCM Klientstub kalles proxy Serverstub kalles stub CORBA Støtter multippel arv ID til serverobjekt: Objekt referanse I konstruktøren Underliggende protokoll: (IIOP) Internet Inter-ORB Protocol Lokalisering av objektimplementasjon: ORB Aktivisering av objektimplementasjon: Basic/Portable Object Adapter (BOA/POA) Proxy eller stub Skeleton Java/RMI Støtter ikke multippel arv ID til serverobjekt: ObjID Registrere objekt: RMIRegistry Skeleton instansiering: blir kalt i konstruktøren Underliggende protokoll: (JRMP) Java Remote Method Protocol Lokalisering av objektimplementasjon: JVM Aktivisering av objektimplementasjon: JVM Proxy eller stub Skeleton 10

Applikasjonssammenligning DCOM Støtter garbage collection av objektreferanser Plattformuavhengig så lenge COM Service er implementert Kan bruke ulike programmeringsspråk Støtter ikke exceptions i IDL CORBA Støtter ikke garbage collection Plattformuavhengig så lenge CORBA ORB er implementert Kan bruke ulike programmeringsspråk. Trenger ORB bibliotek Støtter exceptions i IDL Java/RMI Støtter garbage collection Plattformuavhengig så lenge JVM er implementert Kan kun implementeres i Java Støtter exceptions i IDL Oppsummering Komponentbasert Lokasjonsuavhengighet Implementert sikkerhetshåndtering Garbage collection Skalerbarhet (load balancing, pipelining) Versjonshåndtering Transparent sikkerhetshåndtering Transport protokoll nøytralitet Plattformnøytralitet Windows, Apple Macintosh, UNIX 11