Sunteți pe pagina 1din 0

Dr. ing.

Liviu PERNIU
PROCESAREA
DATELOR
Dr. ing. Liviu PERNIU
Curs 9
DEFINIREA INTERFEELOR STANDARD N CADRUL OBIECTELOR COM
DEFINIREA INTERFEELOR STANDARD N CADRUL OBIECTELOR COM
fiecare obiect COM este o instan a unei clase particulare i suport un
numr de interfee
fiecare obiect COM este o instan a unei clase particulare i suport un
numr de interfee
fiecare interfa are una sau mai multe metode sau funcii ce pot fi apelate
de obiectul clientului prin intermediul unor pointeri la acele interfee
fiecare interfa are una sau mai multe metode sau funcii ce pot fi apelate
de obiectul clientului prin intermediul unor pointeri la acele interfee
o interfa definete un protocol de comunicare dintre dou componente
distincte ale unui sistem
o interfa definete un protocol de comunicare dintre dou componente
distincte ale unui sistem
componentele pot rula n procese separate, n obiecte separate, sau n
orice alte entiti separate ce comunic ntre ele
componentele pot rula n procese separate, n obiecte separate, sau n
orice alte entiti separate ce comunic ntre ele
interfaa descrie serviciile oferite de o anumit component precum i
protocolul necesar utilizrii componentelor respective
interfaa descrie serviciile oferite de o anumit component precum i
protocolul necesar utilizrii componentelor respective
interfaa poate fi vzut ca reprezentnd setul de metode definite n cadrul
acelui obiect, incluznd parametrii de intrare/ieire
interfaa poate fi vzut ca reprezentnd setul de metode definite n cadrul
acelui obiect, incluznd parametrii de intrare/ieire
fiecare interfa suportat de un obiect poate fi privit ca un contract
ncheiat ntre obiect i clientul su (obiectul promite s suporte
metodele interfeei exact aa cum sunt definite de interfa, iar
clienii promit s apeleze corect metodele)
fiecare interfa suportat de un obiect poate fi privit ca un contract
ncheiat ntre obiect i clientul su (obiectul promite s suporte
metodele interfeei exact aa cum sunt definite de interfa, iar
clienii promit s apeleze corect metodele)
Dr. ing. Liviu PERNIU
Curs 9
DEFINIREA INTERFEELOR STANDARD N CADRUL OBIECTELOR COM
DEFINIREA INTERFEELOR STANDARD N CADRUL OBIECTELOR COM
pentru a face ca acest contract s funcioneze, obiectul i clienii trebuie
s fie de acord cu urmtoarele:
pentru a face ca acest contract s funcioneze, obiectul i clienii trebuie
s fie de acord cu urmtoarele:
s identifice n mod explicit fiecare interfa
s defineasc sau s se descrie metodele interfeei
s defineasc concret modul de implementare a unei interfee
s identifice n mod explicit fiecare interfa
s defineasc sau s se descrie metodele interfeei
s defineasc concret modul de implementare a unei interfee
fiecare interfa n tehnologia COM are dou nume, unul utilizat de
programator, iar cellalt utilizat de aplicaie :
fiecare interfa n tehnologia COM are dou nume, unul utilizat de
programator, iar cellalt utilizat de aplicaie :
numele utilizat de programator este posibil s nu fie unic (dou
interfee s-ar putea s aib acelai nume)
numele utilizat de aplicaie trebuie s fie unic, el reprezentnd
modalitatea de identificare fr echivoc a unei anumite interfee
numele utilizat de programator este posibil s nu fie unic (dou
interfee s-ar putea s aib acelai nume)
numele utilizat de aplicaie trebuie s fie unic, el reprezentnd
modalitatea de identificare fr echivoc a unei anumite interfee
prin convenie, numele utilizat de ctre programator ncepe cu litera I (de
la interfa) i ncearc s sugereze funcia pe care o ndeplinete
interfaa respectiv
prin convenie, numele utilizat de ctre programator ncepe cu litera I (de
la interfa) i ncearc s sugereze funcia pe care o ndeplinete
interfaa respectiv
Dr. ing. Liviu PERNIU
Curs 9
DEFINIREA INTERFEELOR STANDARD N CADRUL OBIECTELOR COM
DEFINIREA INTERFEELOR STANDARD N CADRUL OBIECTELOR COM
fiecare interfa trebuie s aib n afara numelui i un identificator unic,
numit identificator unic global (GUID globally unique identifier)
fiecare interfa trebuie s aib n afara numelui i un identificator unic,
numit identificator unic global (GUID globally unique identifier)
identificatorul unic global al interfeei este numit identificatorul interfeei
(IID interface identifier)
identificatorul unic global al interfeei este numit identificatorul interfeei
(IID interface identifier)
un identificator unic global este o valoare pe 16 octei care se creeaz cu
ajutorul unui soft ajuttor (la generarea lui se nregistreaz
momentul la care a fost creat i identificatorul sistemului de pe care
provine)
un identificator unic global este o valoare pe 16 octei care se creeaz cu
ajutorul unui soft ajuttor (la generarea lui se nregistreaz
momentul la care a fost creat i identificatorul sistemului de pe care
provine)
trebuie gsit o modalitate prin care s se defineasc metodele pe care le
conine interfaa i parametrii acelor metode (obiectul COM nu
precizeaz cum trebuie fcut acest lucru)
trebuie gsit o modalitate prin care s se defineasc metodele pe care le
conine interfaa i parametrii acelor metode (obiectul COM nu
precizeaz cum trebuie fcut acest lucru)
obiectul descrie interfeele prin intermediul unui limbaj de programare
convenit mpreun cu clientul
obiectul descrie interfeele prin intermediul unui limbaj de programare
convenit mpreun cu clientul
trebuie s se implementeze corect interfaa standard binar a obiectului
COM
trebuie s se implementeze corect interfaa standard binar a obiectului
COM
pentru definirea interfeelor se utilizeaz un instrument numit limbaj de
definire a interfeei (Interface Definition Language IDL)
pentru definirea interfeelor se utilizeaz un instrument numit limbaj de
definire a interfeei (Interface Definition Language IDL)
Dr. ing. Liviu PERNIU
Curs 9
DEFINIREA INTERFEELOR STANDARD N CADRUL OBIECTELOR COM
DEFINIREA INTERFEELOR STANDARD N CADRUL OBIECTELOR COM
INTERFACE DEFINITION LANGUAGE
INTERFACE DEFINITION LANGUAGE
este, n mare, o extensie a limbajului IDL folosit de Microsoft n
apelul procedurilor la distan (RPC)
este, n mare, o extensie a limbajului IDL folosit de Microsoft n
apelul procedurilor la distan (RPC)
provine din limbajul IDL folosit de Open Software Foundations
Distributed Computing Environment (OSF DCE)
provine din limbajul IDL folosit de Open Software Foundations
Distributed Computing Environment (OSF DCE)
cu ajutorul limbajului IDL interfeele unui obiect COM pot fi
specificate complet i precis
cu ajutorul limbajului IDL interfeele unui obiect COM pot fi
specificate complet i precis
limbajul IDL este asemntor limbajului C++
limbajul IDL este asemntor limbajului C++
Algoritmul de creare a unei interfee
Algoritmul de creare a unei interfee
specificarea interfeei ncepe prin introducerea cuvntului object,
ceea ce indic faptul c vor fi folosite extensiile COM definite
n limbajul DCE IDL
specificarea interfeei ncepe prin introducerea cuvntului object,
ceea ce indic faptul c vor fi folosite extensiile COM definite
n limbajul DCE IDL
se specific identificatorul interfeei, care este un GUID
se specific identificatorul interfeei, care este un GUID
n DCE, GUID sunt numii identificatori unici universali (universal
unique identifiers UUID). De aceea aa vor fi numii i la
definirea interfeei obiectului COM (UUID este acelai lucru cu
GUID)
n DCE, GUID sunt numii identificatori unici universali (universal
unique identifiers UUID). De aceea aa vor fi numii i la
definirea interfeei obiectului COM (UUID este acelai lucru cu
GUID)
Dr. ing. Liviu PERNIU
Curs 9
DEFINIREA INTERFEELOR STANDARD N CADRUL OBIECTELOR COM
DEFINIREA INTERFEELOR STANDARD N CADRUL OBIECTELOR COM
INTERFACE DEFINITION LANGUAGE
INTERFACE DEFINITION LANGUAGE
Algoritmul de creare a unei interfee
Algoritmul de creare a unei interfee
dup introducerea identificatorului, se introduce numele
interfeei, urmat de semnul : i numele altei interfee
IUnknown (aceast notaie indic faptul c o anumit
interfa motenete toate metodele definite n interfaa
IUnknown, ce reprezint un client care pstreaz un
pointer ctre acea interfa - orice interfa va moteni
metodele interfeei IUnknown)
dup introducerea identificatorului, se introduce numele
interfeei, urmat de semnul : i numele altei interfee
IUnknown (aceast notaie indic faptul c o anumit
interfa motenete toate metodele definite n interfaa
IUnknown, ce reprezint un client care pstreaz un
pointer ctre acea interfa - orice interfa va moteni
metodele interfeei IUnknown)
dup definirea interfeei apare instruciunea import
dup definirea interfeei apare instruciunea import
deoarece o interfa motenete de la IUnknown, va fi
nevoie de un instrument software care s poat citi
interfaa pentru a localiza definiiile IDL ale interfeei
IUnknown )
deoarece o interfa motenete de la IUnknown, va fi
nevoie de un instrument software care s poat citi
interfaa pentru a localiza definiiile IDL ale interfeei
IUnknown )
instruciunea import comunic instrumentului software locul
n care se afl fiierul din care poate s extrag aceste
definiii
instruciunea import comunic instrumentului software locul
n care se afl fiierul din care poate s extrag aceste
definiii
Dr. ing. Liviu PERNIU
Curs 9
DEFINIREA INTERFEELOR STANDARD N CADRUL OBIECTELOR COM
DEFINIREA INTERFEELOR STANDARD N CADRUL OBIECTELOR COM
INTERFACE DEFINITION LANGUAGE
INTERFACE DEFINITION LANGUAGE
Algoritmul de creare a unei interfee
Algoritmul de creare a unei interfee
urmtoarea secven introduce metodele ale acestei interfee,
mpreun cu parametrii lor
urmtoarea secven introduce metodele ale acestei interfee,
mpreun cu parametrii lor
metodele ntorc ca rezultat o valoare standard HRESULT ce
indic faptul c apelul a fost reuit
metodele ntorc ca rezultat o valoare standard HRESULT ce
indic faptul c apelul a fost reuit
fiecare parametru este etichetat prin valorile in i out
fiecare parametru este etichetat prin valorile in i out
valorile parametrilor in sunt trecute la invocarea unei metode
de la client la obiect, n timp ce valorile parametrilor out
sunt trecute napoi la client
valorile parametrilor in sunt trecute la invocarea unei metode
de la client la obiect, n timp ce valorile parametrilor out
sunt trecute napoi la client
parametrii ale cror valori pot fi trecute n ambele direcii pot
fi etichetai cu in, out (aceste etichete pot ajuta la
citirea mai uoar a definiiei, dar principalul lor scop
este acela de a permite instrumentului software care
proceseaz definiia interfeei s decid exact ce date
trebuie copiate i unde)
parametrii ale cror valori pot fi trecute n ambele direcii pot
fi etichetai cu in, out (aceste etichete pot ajuta la
citirea mai uoar a definiiei, dar principalul lor scop
este acela de a permite instrumentului software care
proceseaz definiia interfeei s decid exact ce date
trebuie copiate i unde)
Dr. ing. Liviu PERNIU
Curs 9
DEFINIREA INTERFEELOR STANDARD N CADRUL OBIECTELOR COM
DEFINIREA INTERFEELOR STANDARD N CADRUL OBIECTELOR COM
definiiile interfeei odat fcute nu se mai pot modifica
definiiile interfeei odat fcute nu se mai pot modifica
dac se dorete modificarea unei interfee sau dac se dorete s se
adauge noi funcionaliti atunci trebuie creat o interfa nou
dac se dorete modificarea unei interfee sau dac se dorete s se
adauge noi funcionaliti atunci trebuie creat o interfa nou
orice obiect COM definete o interfa standard n format binar, ceea ce
nseamn faptul c un client poate invoca metodele unui obiect n
funcie de limbajul de programare pe care l folosete
orice obiect COM definete o interfa standard n format binar, ceea ce
nseamn faptul c un client poate invoca metodele unui obiect n
funcie de limbajul de programare pe care l folosete
MODUL DE INTERACIUNE A UNEI INTERFEE CU UN OBIECT
MODUL DE INTERACIUNE A UNEI INTERFEE CU UN OBIECT
Client
Pointer la metoda 1
Pointer la metoda 2
Pointer la metoda 4
Pointer la metoda 3
QueryInterface() {}
AddRef() {}
Metoda 4
Release() {}
Pointerul interfeei
vtable
Obiect
Pointerul intern la vtable
Dr. ing. Liviu PERNIU
Curs 9
DEFINIREA INTERFEELOR STANDARD N CADRUL OBIECTELOR COM
DEFINIREA INTERFEELOR STANDARD N CADRUL OBIECTELOR COM
MODUL DE INTERACIUNE A UNEI INTERFEE CU UN OBIECT
MODUL DE INTERACIUNE A UNEI INTERFEE CU UN OBIECT
pointerul interfeei clientului adreseaz un pointer din interiorul
obiectului
pointerul interfeei clientului adreseaz un pointer din interiorul
obiectului
acest pointer, ca rspuns, adreseaz un tabel ce conine ali
pointeri (tabelul, numit vtable, conine un pointer ctre fiecare
metod a interfeei respective)
acest pointer, ca rspuns, adreseaz un tabel ce conine ali
pointeri (tabelul, numit vtable, conine un pointer ctre fiecare
metod a interfeei respective)
primele trei metode sunt metodele interfeei IUnknown de la care
motenete orice interfa i care vor apare mereu n aceste
poziii
primele trei metode sunt metodele interfeei IUnknown de la care
motenete orice interfa i care vor apare mereu n aceste
poziii
structura binar trebuie construit pentru fiecare interfa suportat
de obiectul respectiv
structura binar trebuie construit pentru fiecare interfa suportat
de obiectul respectiv
dac apelurile se fac cu ajutorul mediului de programare Visual
Basic, acesta acceseaz obiectele COM prin intermediul unei
interfee vtable speciale, numit IDispatch care uureaz
foarte mult lucrul
dac apelurile se fac cu ajutorul mediului de programare Visual
Basic, acesta acceseaz obiectele COM prin intermediul unei
interfee vtable speciale, numit IDispatch care uureaz
foarte mult lucrul
pointerul ctre vtable conduce ctre pointerul corespunztor
metodei care conduce la codul ce este scris pentru serviciul
respectiv
pointerul ctre vtable conduce ctre pointerul corespunztor
metodei care conduce la codul ce este scris pentru serviciul
respectiv
Dr. ing. Liviu PERNIU
Curs 9
DEFINIREA INTERFEELOR STANDARD N CADRUL OBIECTELOR COM
DEFINIREA INTERFEELOR STANDARD N CADRUL OBIECTELOR COM
INTERFAA IUnknown
INTERFAA IUnknown
are trei metode QueryInterface, AddRef, Release
are trei metode QueryInterface, AddRef, Release
utilizarea metodei IUnknown::QueryInterface se face ca n exemplul
urmtor, n 3 pai:
utilizarea metodei IUnknown::QueryInterface se face ca n exemplul
urmtor, n 3 pai:
2
Client
Obiect
COM
1
3
A
B
Pasul 1: clientul folosete un pointer ctre A pentru a cere
pointerul ctre B prin intermediul metodei QueryInterface,
specificnd ca parametru identificatorul IID al interfeei B.
Pasul 2: dac obiectul suport interfaa B, el ntoarce un
pointer ctre acea interfa, dac nu, ntoarce valoarea
NULL
Pasul 3: clientul poate invoca acum metodele interfeei B.
Pasul 1: clientul folosete un pointer ctre A pentru a cere
pointerul ctre B prin intermediul metodei QueryInterface,
specificnd ca parametru identificatorul IID al interfeei B.
Pasul 2: dac obiectul suport interfaa B, el ntoarce un
pointer ctre acea interfa, dac nu, ntoarce valoarea
NULL
Pasul 3: clientul poate invoca acum metodele interfeei B.
Dr. ing. Liviu PERNIU
Curs 9
DEFINIREA INTERFEELOR STANDARD N CADRUL OBIECTELOR COM
DEFINIREA INTERFEELOR STANDARD N CADRUL OBIECTELOR COM
INTERFAA IUnknown
INTERFAA IUnknown
cu ajutorul metodei QueryInterface, introducerea i utilizarea noilor
caracteristici se face cu uurin, fr a necesita modificri n
cod
cu ajutorul metodei QueryInterface, introducerea i utilizarea noilor
caracteristici se face cu uurin, fr a necesita modificri n
cod
n cazul n care o anumit caracteristic nu exist, la apelarea
interfeei respective se returneaz valoarea NULL
n cazul n care o anumit caracteristic nu exist, la apelarea
interfeei respective se returneaz valoarea NULL
prin introducerea ulterioar a unei caracteristici, aceasta va putea fi
utilizat fr probleme
prin introducerea ulterioar a unei caracteristici, aceasta va putea fi
utilizat fr probleme
introducerea unei noi caracteristici ntr-un obiect nu se poate face
prin modificarea uneia vechi, deoarece tehnologia COM nu
permite modificarea interfeelor existente
introducerea unei noi caracteristici ntr-un obiect nu se poate face
prin modificarea uneia vechi, deoarece tehnologia COM nu
permite modificarea interfeelor existente
se poate aduga o nou interfa ce va conine metoda (metodele)
necesare
se poate aduga o nou interfa ce va conine metoda (metodele)
necesare
metodele vechi continu s existe i pot fi folosite n continuare
alturi de cele noi, deoarece fiecare dintre interfee are
proprii identificatori unici IID ceea ce este bine, ca principiu
de compatibilitate
metodele vechi continu s existe i pot fi folosite n continuare
alturi de cele noi, deoarece fiecare dintre interfee are
proprii identificatori unici IID ceea ce este bine, ca principiu
de compatibilitate
Avantaj:
Avantaj:
pri diferite ale unui obiect COM pot fi create de diferii utilizatori,
care i introduc doar acele caracteristici de care au nevoie
pri diferite ale unui obiect COM pot fi create de diferii utilizatori,
care i introduc doar acele caracteristici de care au nevoie
Dr. ing. Liviu PERNIU
Curs 9
DEFINIREA INTERFEELOR STANDARD N CADRUL OBIECTELOR COM
DEFINIREA INTERFEELOR STANDARD N CADRUL OBIECTELOR COM
INTERFAA IUnknown
INTERFAA IUnknown
pentru a utiliza un obiect COM, un client trebuie s cear, n mod
explicit, pornirea unei instane noi a acestuia
pentru a utiliza un obiect COM, un client trebuie s cear, n mod
explicit, pornirea unei instane noi a acestuia
interfaa IUnknown este singura care gestioneaz modul de lucru cu
instana unui obiect, prin intermediul metodelor sale AddRef i
Release
interfaa IUnknown este singura care gestioneaz modul de lucru cu
instana unui obiect, prin intermediul metodelor sale AddRef i
Release
pentru a utiliza corect un obiect COM se folosete urmtorul
algoritm:
pentru a utiliza corect un obiect COM se folosete urmtorul
algoritm:
utilizatorul instaniaz obiectul i utilizeaz pointeri ctre
obiectul respectiv
utilizatorul instaniaz obiectul i utilizeaz pointeri ctre
obiectul respectiv
utilizatorul trimite unul dintre pointeri ctre urmtorul
utilizator care acceseaz obiectul
utilizatorul trimite unul dintre pointeri ctre urmtorul
utilizator care acceseaz obiectul
noul utilizator folosete pointerul pentru a accesa metodele
obiectului, dup care trimite pointerul ctre urmtorul
utilizator i aa mai departe (utilizatorul nu trebuie s
distrug un obiect dup ce nu-l mai folosete deoarece
afecteaz ali utilizatori)
noul utilizator folosete pointerul pentru a accesa metodele
obiectului, dup care trimite pointerul ctre urmtorul
utilizator i aa mai departe (utilizatorul nu trebuie s
distrug un obiect dup ce nu-l mai folosete deoarece
afecteaz ali utilizatori)
Dr. ing. Liviu PERNIU
Curs 9
DEFINIREA INTERFEELOR STANDARD N CADRUL OBIECTELOR COM
DEFINIREA INTERFEELOR STANDARD N CADRUL OBIECTELOR COM
INTERFAA IUnknown
INTERFAA IUnknown
distrugerea instanei unui obiect se face automat, printr-un
mecanism care, dei nu este foarte sigur (datorit
posibilitii folosirii sale incorecte de ctre un anumit
utilizator) este totui singurul disponibil i se bazeaz
pe existena unui contor al referinelor
distrugerea instanei unui obiect se face automat, printr-un
mecanism care, dei nu este foarte sigur (datorit
posibilitii folosirii sale incorecte de ctre un anumit
utilizator) este totui singurul disponibil i se bazeaz
pe existena unui contor al referinelor
acelai obiect poate fi accesat n acelai timp de mai muli
utilizatori, dar nici unul dintre ei nu cunoate momentul
n care alt utilizator a ncheiat lucrul cu obiectul
acelai obiect poate fi accesat n acelai timp de mai muli
utilizatori, dar nici unul dintre ei nu cunoate momentul
n care alt utilizator a ncheiat lucrul cu obiectul
obiectul poate pstra o eviden a numrului de clieni care l
utilizeaz prin intermediul contorului referinelor
obiectul poate pstra o eviden a numrului de clieni care l
utilizeaz prin intermediul contorului referinelor
Principiul de funcionare a contorului referinelor
Principiul de funcionare a contorului referinelor
ori de cte ori obiectul trimite un pointer ctre una dintre
interfeele sale, numrtorul se incrementeaz cu o
unitate (de fapt, obiectul are contoare separate pentru
fiecare interfa)
ori de cte ori obiectul trimite un pointer ctre una dintre
interfeele sale, numrtorul se incrementeaz cu o
unitate (de fapt, obiectul are contoare separate pentru
fiecare interfa)
Dr. ing. Liviu PERNIU
Curs 9
DEFINIREA INTERFEELOR STANDARD N CADRUL OBIECTELOR COM
DEFINIREA INTERFEELOR STANDARD N CADRUL OBIECTELOR COM
INTERFAA IUnknown
INTERFAA IUnknown
Principiul de funcionare a contorului referinelor
Principiul de funcionare a contorului referinelor
dac unul dintre utilizatori transfer un pointer unui alt
utilizator, cel ce primete pointerul trebuie s apeleze
metoda AddRef pentru a utiliza acel pointer, ceea ce
duce la incrementarea numrtorului
dac unul dintre utilizatori transfer un pointer unui alt
utilizator, cel ce primete pointerul trebuie s apeleze
metoda AddRef pentru a utiliza acel pointer, ceea ce
duce la incrementarea numrtorului
n momentul n care utilizatorul nu mai folosete un pointer,
va apela metoda Release care produce decrementarea
numrtorului
n momentul n care utilizatorul nu mai folosete un pointer,
va apela metoda Release care produce decrementarea
numrtorului
nstana obiectului este distrus atunci cnd numrtorul
ajunge la zero
nstana obiectului este distrus atunci cnd numrtorul
ajunge la zero
OBIECTE COM
OBIECTE COM
fiecare obiect COM este o instan a unei clase
fiecare obiect COM este o instan a unei clase
fiecrei clase i se poate atribui un identificator GUID numit
identificator de clas (CLSID)
fiecrei clase i se poate atribui un identificator GUID numit
identificator de clas (CLSID)
Dr. ing. Liviu PERNIU
Curs 9
DEFINIREA INTERFEELOR STANDARD N CADRUL OBIECTELOR COM
DEFINIREA INTERFEELOR STANDARD N CADRUL OBIECTELOR COM
OBIECTE COM
OBIECTE COM
utilizatorul folosete identificatorul de clas n biblioteca COM
pentru crea o instan a clasei
utilizatorul folosete identificatorul de clas n biblioteca COM
pentru crea o instan a clasei
nu toate clasele au identificator CLSID deoarece obiectele unor
clase nu se creeaz cu ajutorul bibliotecii COM
nu toate clasele au identificator CLSID deoarece obiectele unor
clase nu se creeaz cu ajutorul bibliotecii COM
rolul principal al identificatorului CLSID este acela de a identifica
poriunea specific de cod a bibliotecii COM pentru a ncrca
i executa obiectele ce aparin acelei clase
rolul principal al identificatorului CLSID este acela de a identifica
poriunea specific de cod a bibliotecii COM pentru a ncrca
i executa obiectele ce aparin acelei clase
n tehnologia COM clasa unui obiect identific implementarea
particular a unui grup de interfee i nu grupul n sine (se pot
crea interfee identice, dar care sunt interpretate diferit
deoarece au identificatori diferii)
n tehnologia COM clasa unui obiect identific implementarea
particular a unui grup de interfee i nu grupul n sine (se pot
crea interfee identice, dar care sunt interpretate diferit
deoarece au identificatori diferii)
fiecare obiect COM este implementat n interiorul unui server
fiecare obiect COM este implementat n interiorul unui server
SERVERE COM
SERVERE COM
conin codul ce implementeaz metodele interfeelor obiectului i
pstreaz datele obiectului pe perioada ct acesta este
activat
conin codul ce implementeaz metodele interfeelor obiectului i
pstreaz datele obiectului pe perioada ct acesta este
activat
Dr. ing. Liviu PERNIU
Curs 9
DEFINIREA INTERFEELOR STANDARD N CADRUL OBIECTELOR COM
DEFINIREA INTERFEELOR STANDARD N CADRUL OBIECTELOR COM
SERVERE COM
SERVERE COM
un singur server poate suporta mai multe obiecte ale unei singure
clase i chiar mai multe clase
un singur server poate suporta mai multe obiecte ale unei singure
clase i chiar mai multe clase
Tipuri de servere
Tipuri de servere
Server intra-proces
Server local
Server la distan
Calculator 2
Calculator 1
Dr. ing. Liviu PERNIU
Curs 9
DEFINIREA INTERFEELOR STANDARD N CADRUL OBIECTELOR COM
DEFINIREA INTERFEELOR STANDARD N CADRUL OBIECTELOR COM
SERVERE COM
SERVERE COM
Tipuri de servere
Tipuri de servere
servere intra-proces, n care obiectele sunt implementate
ntr-o bibliotec cu legturi dinamice (DLL) i astfel sunt
executate n acelai proces cu clientul;
servere locale, n care obiectele sunt implementate n
procese separate ce ruleaz pe aceeai main pe care
ruleaz i clientul;
servere la distan, n care obiectele sunt implementate
ntr-un DLL sau ntr-un proces separat ce ruleaz pe o
main separat de cea a clientului (utilizate de tehnologia
DCOM)
servere intra-proces, n care obiectele sunt implementate
ntr-o bibliotec cu legturi dinamice (DLL) i astfel sunt
executate n acelai proces cu clientul;
servere locale, n care obiectele sunt implementate n
procese separate ce ruleaz pe aceeai main pe care
ruleaz i clientul;
servere la distan, n care obiectele sunt implementate
ntr-un DLL sau ntr-un proces separat ce ruleaz pe o
main separat de cea a clientului (utilizate de tehnologia
DCOM)
clientul nu este obligat s cunoasc n ce tip de server este
implementat fiecare obiect
clientul nu este obligat s cunoasc n ce tip de server este
implementat fiecare obiect
indiferent de tipul serverului, clientul va putea efectua aceleai
operaii: instanierea obiectului, preluarea pointerilor,
invocarea metodelor i eliberarea pointerilor
indiferent de tipul serverului, clientul va putea efectua aceleai
operaii: instanierea obiectului, preluarea pointerilor,
invocarea metodelor i eliberarea pointerilor
Dr. ing. Liviu PERNIU
Curs 9
DEFINIREA INTERFEELOR STANDARD N CADRUL OBIECTELOR COM
DEFINIREA INTERFEELOR STANDARD N CADRUL OBIECTELOR COM
FIRE DE EXECUIE
FIRE DE EXECUIE
se folosesc pentru creterea eficienei procesrii datelor n cazul n
care maina are mai multe procesoare, sau aplicaia este
folosit ntr-un mediu distribuit
se folosesc pentru creterea eficienei procesrii datelor n cazul n
care maina are mai multe procesoare, sau aplicaia este
folosit ntr-un mediu distribuit
cresc complexitatea mediului de programare, datorit existenei
posibilitii apariiei conflictelor n proces, atunci cnd, de
exemplu, dou fire doresc s actualizeze n acelai timp
aceeai variabil
cresc complexitatea mediului de programare, datorit existenei
posibilitii apariiei conflictelor n proces, atunci cnd, de
exemplu, dou fire doresc s actualizeze n acelai timp
aceeai variabil
soluia pentru crearea mai multor fire de execuie este aceea a
utilizrii unui model numit modelul apartament
soluia pentru crearea mai multor fire de execuie este aceea a
utilizrii unui model numit modelul apartament
iniial, filozofia acestui model era aceea c fiecare fir de execuie
aciona izolat, ca un apartament
iniial, filozofia acestui model era aceea c fiecare fir de execuie
aciona izolat, ca un apartament
fiecare obiect COM exista n propriul apartament
fiecare obiect COM exista n propriul apartament
numai acest fir de execuie putea apela metodele obiectului
numai acest fir de execuie putea apela metodele obiectului
cererile formulate de alte fire de execuie erau arhivate i utilizate
secvenial de ctre apartamentul acelui obiect
cererile formulate de alte fire de execuie erau arhivate i utilizate
secvenial de ctre apartamentul acelui obiect
Dr. ing. Liviu PERNIU
Curs 9
DEFINIREA INTERFEELOR STANDARD N CADRUL OBIECTELOR COM
DEFINIREA INTERFEELOR STANDARD N CADRUL OBIECTELOR COM
FIRE DE EXECUIE
FIRE DE EXECUIE
odat cu apariia sistemului de operare Windows NT 4.0, mai multe
fire de execuie pot fi active deodat n interiorul unui singur
obiect COM
odat cu apariia sistemului de operare Windows NT 4.0, mai multe
fire de execuie pot fi active deodat n interiorul unui singur
obiect COM
Crearea obiectelor COM
Crearea obiectelor COM
BIBLIOTECA COM
BIBLIOTECA COM
fiecare sistem care suport tehnologia COM trebuie s posede o
bibliotec COM
fiecare sistem care suport tehnologia COM trebuie s posede o
bibliotec COM
implementeaz un grup de funcii ce furnizeaz serviciile de baz
ctre obiecte i clienii lor oferind n acelai timp modalitatea
de instaniere a unui obiect al serverului
implementeaz un grup de funcii ce furnizeaz serviciile de baz
ctre obiecte i clienii lor oferind n acelai timp modalitatea
de instaniere a unui obiect al serverului
serviciile oferite de biblioteca COM sunt accesate prin intermediul
unor funcii obinuite, nu prin intermediul metodelor interfeei
obiectului
serviciile oferite de biblioteca COM sunt accesate prin intermediul
unor funcii obinuite, nu prin intermediul metodelor interfeei
obiectului
numele funciilor bibliotecii COM ncep de obicei cu prefixul Co
numele funciilor bibliotecii COM ncep de obicei cu prefixul Co
Dr. ing. Liviu PERNIU
Curs 9
DEFINIREA INTERFEELOR STANDARD N CADRUL OBIECTELOR COM
DEFINIREA INTERFEELOR STANDARD N CADRUL OBIECTELOR COM
Crearea obiectelor COM
Crearea obiectelor COM
BIBLIOTECA COM
BIBLIOTECA COM
atunci cnd un client vrea s creeze un obiect, el va transmite
bibliotecii COM identificatorul de clas al obiectului
atunci cnd un client vrea s creeze un obiect, el va transmite
bibliotecii COM identificatorul de clas al obiectului
biblioteca folosete identificatorul de clas pentru a localiza
serverul corespunztor obiectului acestei clase
biblioteca folosete identificatorul de clas pentru a localiza
serverul corespunztor obiectului acestei clase
pentru a localiza serverul corespunztor obiectul clasei respective
folosete registrul sistemului
pentru a localiza serverul corespunztor obiectul clasei respective
folosete registrul sistemului
REGISTRUL SISTEMULUI
REGISTRUL SISTEMULUI
registrul sistemului este un tabel n care se afl identificatorul
CLSID al codului unui server
registrul sistemului este un tabel n care se afl identificatorul
CLSID al codului unui server
clasele tuturor obiectelor pe care biblioteca COM le poate crea pe
un anumit calculator trebuie s fie nregistrate n acest tabel
clasele tuturor obiectelor pe care biblioteca COM le poate crea pe
un anumit calculator trebuie s fie nregistrate n acest tabel
formatul exact al registrului de sistem difer de la un sistem la altul
formatul exact al registrului de sistem difer de la un sistem la altul
Windows utilizeaz un tabel de sistem standard, numit simplu
Registry
Windows utilizeaz un tabel de sistem standard, numit simplu
Registry
Dr. ing. Liviu PERNIU
Curs 9
DEFINIREA INTERFEELOR STANDARD N CADRUL OBIECTELOR COM
DEFINIREA INTERFEELOR STANDARD N CADRUL OBIECTELOR COM
Crearea obiectelor COM
Crearea obiectelor COM
REGISTRUL SISTEMULUI
REGISTRUL SISTEMULUI
alte implementri pot s foloseasc alte variante, dar trebuie s
conin:
alte implementri pot s foloseasc alte variante, dar trebuie s
conin:
identificatorul CLSID, care acioneaz ca o cheie de intrare;
o indicaie despre ce tipuri de servere sunt disponibile
(intra-proces, locale, la distan);
pentru serverele intra-proces i cele locale, calea fiierului
ce conine DLL-ul serverului sau respectiv, executabilul.
Pentru serverele la distan (cele accesibile de pe alt
main prin intermediul DCOM), o indicaie referitoare la
locul n care se gsete executabilul serverulu
identificatorul CLSID, care acioneaz ca o cheie de intrare;
o indicaie despre ce tipuri de servere sunt disponibile
(intra-proces, locale, la distan);
pentru serverele intra-proces i cele locale, calea fiierului
ce conine DLL-ul serverului sau respectiv, executabilul.
Pentru serverele la distan (cele accesibile de pe alt
main prin intermediul DCOM), o indicaie referitoare la
locul n care se gsete executabilul serverulu
o aplicaie adaug de obicei propriile intrri n acest tabel n
momentul instalrii acesteia (aplicaia este pregtit pentru
crearea obiectelor i utilizarea lor de ctre clieni)
o aplicaie adaug de obicei propriile intrri n acest tabel n
momentul instalrii acesteia (aplicaia este pregtit pentru
crearea obiectelor i utilizarea lor de ctre clieni)
rolul principal al bibliotecii COM este s porneasc un server, i nu
obiectul n sine
rolul principal al bibliotecii COM este s porneasc un server, i nu
obiectul n sine
Dr. ing. Liviu PERNIU
Curs 9
DEFINIREA INTERFEELOR STANDARD N CADRUL OBIECTELOR COM
DEFINIREA INTERFEELOR STANDARD N CADRUL OBIECTELOR COM
Crearea obiectelor COM
Crearea obiectelor COM
CREAREA UNEI INSTANE NEINIIALIZATE A UNUI OBIECT
CREAREA UNEI INSTANE NEINIIALIZATE A UNUI OBIECT
Server
Client
Obiect
COM
3. Pointerul la
interfaa A este
returnat prin
biblioteca COM
A
2. COM localizeaz i
instaniaz serverul
Biblioteca
COM
CLSID_X C:\SERVER1.DLL
CLSID_Y C:\SERVER2.EXE
. . . . . .
Registrul sistemului
1. Clientul apeleaz
CoCreateInstance(CLSID_Y, IID_A)
4. Clientul poate invoca
metodele
Dr. ing. Liviu PERNIU
Curs 9
DEFINIREA INTERFEELOR STANDARD N CADRUL OBIECTELOR COM
DEFINIREA INTERFEELOR STANDARD N CADRUL OBIECTELOR COM
Crearea obiectelor COM
Crearea obiectelor COM
CREAREA UNEI INSTANE NEINIIALIZATE A UNUI OBIECT
CREAREA UNEI INSTANE NEINIIALIZATE A UNUI OBIECT
mai nti clientul apeleaz o funcie a bibliotecii COM numit
CoCreateInstance
mai nti clientul apeleaz o funcie a bibliotecii COM numit
CoCreateInstance
aceast cerere specific obligatoriu, dar nu numai :
aceast cerere specific obligatoriu, dar nu numai :
identificatorul CLSID al obiectului care urmeaz s fie creat
identificatorul IID al unei interfee suportat de obiect
identificatorul CLSID al obiectului care urmeaz s fie creat
identificatorul IID al unei interfee suportat de obiect
biblioteca COM folosete CLSID pentru a gsi intrarea clasei
acestui obiect n registrul sistemului (de fapt, biblioteca COM
deleag Service Control Manager SCM s fac acest lucru)
biblioteca COM folosete CLSID pentru a gsi intrarea clasei
acestui obiect n registrul sistemului (de fapt, biblioteca COM
deleag Service Control Manager SCM s fac acest lucru)
intrarea specific locaia serverului capabil s instanieze clasa
respectiv
intrarea specific locaia serverului capabil s instanieze clasa
respectiv
dac serverul este gsit, SCM l pornete, altfel se ntoarce NULL
dac serverul este gsit, SCM l pornete, altfel se ntoarce NULL
Dr. ing. Liviu PERNIU
Curs 9
DEFINIREA INTERFEELOR STANDARD N CADRUL OBIECTELOR COM
DEFINIREA INTERFEELOR STANDARD N CADRUL OBIECTELOR COM
Crearea obiectelor COM
Crearea obiectelor COM
CREAREA UNEI INSTANE NEINIIALIZATE A UNUI OBIECT
CREAREA UNEI INSTANE NEINIIALIZATE A UNUI OBIECT
CoCreateInstance permite clientului s specifice i tipul serverului
COM care trebuie s porneasc - server intra-proces sau local
CoCreateInstance permite clientului s specifice i tipul serverului
COM care trebuie s porneasc - server intra-proces sau local
la pornire, serverul creeaz o instan a clasei obiectului i apoi
returneaz pointerul interfeei cerute la biblioteca COM
la pornire, serverul creeaz o instan a clasei obiectului i apoi
returneaz pointerul interfeei cerute la biblioteca COM
ca rspuns, biblioteca COM trimite pointerul napoi la client, care
poate din acel moment s invoce metodele acelei interfee
ca rspuns, biblioteca COM trimite pointerul napoi la client, care
poate din acel moment s invoce metodele acelei interfee
deoarece un proces creeaz doar un singur obiect neiniializat,
interfaa este aceea care permite clientului iniializarea
obiectului, chiar dac acest lucru nu este necesar
deoarece un proces creeaz doar un singur obiect neiniializat,
interfaa este aceea care permite clientului iniializarea
obiectului, chiar dac acest lucru nu este necesar
indiferent de serverul pe care l pornete, COM stabilete reguli de
securitate care specific drepturile de utilizare acordate
clienilor ce folosesc acel server
indiferent de serverul pe care l pornete, COM stabilete reguli de
securitate care specific drepturile de utilizare acordate
clienilor ce folosesc acel server
COM mai definete interfeele obiectului i apelurile de securitate
ale bibliotecii COM
COM mai definete interfeele obiectului i apelurile de securitate
ale bibliotecii COM
Dr. ing. Liviu PERNIU
Curs 9
DEFINIREA INTERFEELOR STANDARD N CADRUL OBIECTELOR COM
DEFINIREA INTERFEELOR STANDARD N CADRUL OBIECTELOR COM
Laborator 9 - prezentare
Laborator 9 - prezentare

S-ar putea să vă placă și

  • Prezentare PPT - PPSX
    Prezentare PPT - PPSX
    Document14 pagini
    Prezentare PPT - PPSX
    Rodica Petronela Ghiță
    Încă nu există evaluări
  • MIS Lab5
    MIS Lab5
    Document4 pagini
    MIS Lab5
    Rodica Petronela Ghiță
    Încă nu există evaluări
  • MIS Lab6
    MIS Lab6
    Document4 pagini
    MIS Lab6
    Rodica Petronela Ghiță
    Încă nu există evaluări
  • C11 SN - RNvs
    C11 SN - RNvs
    Document6 pagini
    C11 SN - RNvs
    Rodica Petronela Ghiță
    Încă nu există evaluări
  • MIS Lab7
    MIS Lab7
    Document4 pagini
    MIS Lab7
    Rodica Petronela Ghiță
    Încă nu există evaluări
  • MIS Lab4
    MIS Lab4
    Document4 pagini
    MIS Lab4
    Rodica Petronela Ghiță
    Încă nu există evaluări
  • MIS Lab2
    MIS Lab2
    Document4 pagini
    MIS Lab2
    Rodica Petronela Ghiță
    Încă nu există evaluări
  • Curs 7 BD
    Curs 7 BD
    Document8 pagini
    Curs 7 BD
    Rodica Petronela Ghiță
    Încă nu există evaluări
  • MIS Lab3
    MIS Lab3
    Document3 pagini
    MIS Lab3
    Rodica Petronela Ghiță
    Încă nu există evaluări
  • MIS Lab1
    MIS Lab1
    Document5 pagini
    MIS Lab1
    Rodica Petronela Ghiță
    Încă nu există evaluări
  • Curs 9-10 BD
    Curs 9-10 BD
    Document8 pagini
    Curs 9-10 BD
    Rodica Petronela Ghiță
    Încă nu există evaluări
  • Curs 8 BD
    Curs 8 BD
    Document9 pagini
    Curs 8 BD
    Rodica Petronela Ghiță
    Încă nu există evaluări
  • Curs 11-12 BD
    Curs 11-12 BD
    Document10 pagini
    Curs 11-12 BD
    Rodica Petronela Ghiță
    Încă nu există evaluări
  • Curs 6 Rom
    Curs 6 Rom
    Document7 pagini
    Curs 6 Rom
    Rodica Petronela Ghiță
    Încă nu există evaluări
  • Curs 5 BD
    Curs 5 BD
    Document8 pagini
    Curs 5 BD
    Rodica Petronela Ghiță
    Încă nu există evaluări
  • C19 Estim Stare1
    C19 Estim Stare1
    Document7 pagini
    C19 Estim Stare1
    Rodica Petronela Ghiță
    Încă nu există evaluări
  • Curs 3 BD
    Curs 3 BD
    Document4 pagini
    Curs 3 BD
    Rodica Petronela Ghiță
    Încă nu există evaluări
  • Baze de Date - Subiecte-examen-2013-Propuse 1
    Baze de Date - Subiecte-examen-2013-Propuse 1
    Document1 pagină
    Baze de Date - Subiecte-examen-2013-Propuse 1
    Rodica Petronela Ghiță
    Încă nu există evaluări
  • Curs 4 BD
    Curs 4 BD
    Document10 pagini
    Curs 4 BD
    Rodica Petronela Ghiță
    Încă nu există evaluări
  • Curs 1 BD
    Curs 1 BD
    Document4 pagini
    Curs 1 BD
    c_caltea
    Încă nu există evaluări
  • Curs 2 BD
    Curs 2 BD
    Document5 pagini
    Curs 2 BD
    Rodica Petronela Ghiță
    Încă nu există evaluări
  • C20 Estim Stare2
    C20 Estim Stare2
    Document9 pagini
    C20 Estim Stare2
    Rodica Petronela Ghiță
    Încă nu există evaluări
  • C15 PrSistRegMI - Regl Predictie
    C15 PrSistRegMI - Regl Predictie
    Document10 pagini
    C15 PrSistRegMI - Regl Predictie
    Rodica Petronela Ghiță
    Încă nu există evaluări
  • C18 Reg Stare - Estim Stare
    C18 Reg Stare - Estim Stare
    Document9 pagini
    C18 Reg Stare - Estim Stare
    Rodica Petronela Ghiță
    Încă nu există evaluări
  • C17 Reg Stare2
    C17 Reg Stare2
    Document9 pagini
    C17 Reg Stare2
    Rodica Petronela Ghiță
    Încă nu există evaluări
  • C16 Reg Stare1
    C16 Reg Stare1
    Document8 pagini
    C16 Reg Stare1
    Rodica Petronela Ghiță
    Încă nu există evaluări
  • c12 Icsn Sint RN Pi - Pid
    c12 Icsn Sint RN Pi - Pid
    Document10 pagini
    c12 Icsn Sint RN Pi - Pid
    Rodica Petronela Ghiță
    Încă nu există evaluări
  • C13 PrSistNumMetRaspImpus
    C13 PrSistNumMetRaspImpus
    Document10 pagini
    C13 PrSistNumMetRaspImpus
    Rodica Petronela Ghiță
    Încă nu există evaluări
  • C14 PrSistRegMI1
    C14 PrSistRegMI1
    Document10 pagini
    C14 PrSistRegMI1
    Rodica Petronela Ghiță
    Încă nu există evaluări
  • Comentarii Privind Modelele Discrete Ale Elementelor de Ordinul 1 (T1) Şi 2 (T2)
    Comentarii Privind Modelele Discrete Ale Elementelor de Ordinul 1 (T1) Şi 2 (T2)
    Document11 pagini
    Comentarii Privind Modelele Discrete Ale Elementelor de Ordinul 1 (T1) Şi 2 (T2)
    Rodica Petronela Ghiță
    Încă nu există evaluări