Hlavnφ
Hlavnφ strana
Seznam Φlßnk∙
NejΦten∞jÜφ Φlßnky
Progres e-mailem
Visual C++ FAQ

Serißly
COM
ISAPI

banner2.gif (2546 bytes)

Nenechte si ujφt
NeobdΘlnφkovß okna
Tisk bez Preview
MFC a DLL
Logo v MDI ploÜe
Kouzla s kombo-boxem
V²jimky v C++

banner.gif (3305 bytes)

COM 1.dφl Jan Odvßrko
04.10.1999
[Hlavnφ strßnka]  |  [Rubrika]

1.1 ┌vod

Vß₧enφ p°ßtelΘ, dostßvß se vßm do rukou kniha, kterß by m∞la usnadnit vaÜφ orientaci na poli nov²ch technologiφ, je₧ se p°φmo draΦφ silou valφ na nßs - programßtory. Dßvno pryΦ jsou Φasy, kdy ka₧dß aplikace byla urΦena prßv∞ pro jednu v∞c a prakticky nevyu₧φvala mo₧nostφ jin²ch aplikacφ, nemohla, v₧dy¥ p°ece jinß aplikace ani zßrove≥ "b∞₧et" nemohla. V dneÜnφ dob∞, kdy operaΦnφ systΘm Windows dosahuje takov²ch kvalit, ₧e spl≥uje p°edstavy i nejnßroΦn∞jÜφch u₧ivatel∙ a je zßrove≥ nerozÜφ°en∞jÜφm operaΦnφm systΘmem, ji₧ takovΘ aplikace nemajφ mφsto ani uplatn∞nφ. Kdo chce jφt s dobou, musφ se uΦit. NaÜt∞stφ nov²ch technologiφ je dostatek. Nejnov∞jÜφ zp∙sob vytvß°enφ aplikacφ, kter² je dnes zßrove≥ standardem, je zalo₧en² na komponentßch.

jo_200999_COM1_obr0.gif (3507 bytes)

1.2 Historie

Ti starÜφ a zkuÜen∞jÜφ z nßs si jist∞ vzpomenou na starΘ dobrΘ Φasy, kdy ka₧d² programßtor vytvß°el program prakticky od nuly a za pomoci znalostφ o strukturovanΘm programovßnφ p°idßval jednu proceduru za druhou. V lepÜφm p°φpad∞ pou₧il n∞jakou knihovnu funkcφ, kterou vytvo°il kolega "z vedlejÜφ kancelß°e". Jist∞, existovaly firmy, kterΘ dodßvaly ji₧ hotovΘ knihovny funkcφ. Pokud byly jen trochu pou₧itelnΘ, urΦit∞ tu mravenΦφ prßci trochu zjednoduÜily.

Zvrat v programovßnφ urΦit∞ p°inesla objektov∞ orientovanß technologie. Programßtor ji₧ nevytvß°φ program, kter² se vykonßvß "od zaΦßtku a₧ do konce", ale prost°edφ, do kterΘho umis¥uje jednotlivΘ objekty, kterΘ spolu komunikujφ pomocφ zprßv. Takov² objektov∞ orientovan² systΘm pak reaguje na podn∞ty zvenΦφ, od u₧ivatele a vykonßvß tak zcela automaticky po₧adovanΘ p°φkazy. S trochou nadsßzky lze °φci, ₧e takov² systΘm "₧ije" a napodobuje tak reßlnΘ prost°edφ. Objektov∞ orientovanΘ technologie se s r∙zn²mi odchylkami pou₧φvajφ a₧ do dnes. Ka₧d² jen trochu zkuÜen∞jÜφ analytik vφ, ₧e zkrßtka bez objekt∙ u₧ to dnes nejde. Co tedy lze jeÜt∞ chtφt ?

Od zaΦßtku vzniku objekt∙ ji₧ uplynulo mnoho Φasu a vzniklo mnoho OO jazyk∙. Ne ka₧d² se vÜak hodφ na dan² problΘm. Sehnat t²m programßtor∙, kte°φ bravurn∞ ovlßdajφ jeden jazyk je n∞kdy nad rßmec mo₧nostφ. Co₧ takhle sestavit v²sledn² produkt z jednotliv²ch Φßstφ, jako hrad z kostek a jeÜt∞ ke vÜemu naprogramovat ka₧dou kostku pomocφ jinΘho jazyka? ╪eÜenφ je snadnΘ, vytvo°me obecnou kostku a popiÜme jejφ zp∙sob komunikace s ostatnφmi kostkami. Tak vznikly komponenty a jejich rozhranφ.

jo_200999_COM1_obr1.gif (2557 bytes)

1.3 Komponenty

Programovßnφ pomocφ komponent je vskutku dobr² nßpad. Ka₧dß aplikace se sklßdß z mnoha komponent, kterΘ mohou b²t naprogramovßny v r∙zn²ch programovacφch jazycφch a tyto komponenty pak spolu komunikujφ pomocφ spoleΦnΘho protokolu. Takovß aplikace lze jednoduch²m zp∙sobem rozÜi°ovat tφm, ₧e p°idßvßme novΘ komponenty. Ani ·dr₧ba nenφ tak slo₧itß, staΦφ vym∞nit starou komponentu za novou (bez nutnosti kompilace ostatnφch).

Aplikace ji₧ nenφ jedin² nerozd∞liteln² balφk, ale je slo₧ena z komponent, se kter²mi m∙₧eme libovoln∞ manipulovat.

1.4. Knihovny komponent

PozornΘho Φtenß°e jist∞ napadlo, ₧e z hotov²ch komponent lze sestavovat celΘ knihovny, kterΘ pak pou₧φvßme pro tvorbu aplikacφ. Komponenty v takovΘ knihovn∞ mohou b²t neustßle aktualizovßny a m∞n∞ny v zßvislosti na nov²ch po₧adavcφch, Φφm₧ zßrove≥ aktualizujeme aplikace, kterΘ jsou z t∞chto komponent vytvo°eny. V²voj jednotliv²ch aplikacφ pak spoΦφvß v jednoduchΘm sestavovßnφ z p°ipraven²ch komponent, Φφm₧ se prßce mnohonßsobn∞ urychluje.

Umφst∞nφ komponent je nezßvislΘ vzhledem k b∞hu programu. To znamenß, ₧e s komponentou, kterß se nachßzφ v jinΘm procesu se manipuluje stejn∞, jako kdyby byla vytvo°ena ve stejnΘm procesu jako klient. Lze dokonce vytvß°et takovΘ komponenty, kterΘ jsou v dob∞ b∞hu programu umφst∞ny na jinΘm poΦφtaΦi.

1.6. Zapouzd°enφ komponent

Komponenty jsou z hlediska u₧ivatel∙ zcela zapouzd°eny a komunikace s nimi probφhß skrze jejφ rozhranφ. Je velice d∙le₧itΘ, aby toto rozhranφ bylo nem∞nnΘ, tzn. ka₧dß novß verze komponenty musφ obsahovat stejnΘ rozhranφ. Tato podmφnka zaruΦuje, ₧e novΘ komponenty zapadnou bez problΘm∙ do stßvajφcφho systΘmu. Zßrove≥ je zachovßna kompatibilita mezi star²mi a nov²mi komponentami.

DalÜφ d∙le₧itou vlastnostφ komponent je jejich jednotnost. Na komponent∞ nikdy nenφ poznat v jakΘm, programovacφm jazyce byla vytvo°ena, prßv∞ tato vlastnost p°inßÜφ nezßvislost na programovacφm jazyce.

Jestli₧e chceme vytvß°et takovΘ komponenty, kterΘ spolu um∞jφ komunikovat, musφme pou₧φvat jednotnou technologii, tato technologie se jmenuje COM - Component Object Model.

jo_200999_COM1_obr2.gif (2077 bytes)

1.6. COM

Component Object Model je popis, kter² °φkß jak majφ komponenty vypadat a jak²m zp∙sobem spolu majφ komunikovat. Tento popis zve°ejnila firma Microsoft zhruba p°ed Φty°mi roky a vytvo°ila z n∞j standard. Dφky tomu je pou₧φvßnφ komponent nezßvislΘ na jazyce, proto₧e komponenta je distribuovßna v₧dy p°elo₧enß v binßrnφm tvaru, kter² odpovφdß tomuto standardu. COM tΘ₧ definuje jak mß vypadat rozhranφ komponenty a jak se mß pou₧φvat.

Pozor, COM nenφ poΦφtaΦov² jazyk, je to pouze nßvod jak vytvß°et tyto objekty tak, aby spl≥ovaly podmφnky standardu. Tato kniha bude popisovat vytvß°enφ COM-∙ pomocφ jazyka C++ a prost°edφ Visual C++.

OperaΦnφ systΘm Windows poskytuje programßtor∙m, kte°φ vyvφjejφ COM objekty, celou °adu API funkcφ, kterΘ tuto prßci zjednoduÜujφ. Jak se dozvφme pozd∞ji tyto funkce jsou velice jednoduchΘ a jejich implementaci m∙₧e ka₧d² provΘst sßm. Tato knihovna obsahuje k≤d, kter² zajiÜ¥uje sprßvnΘ vytvß°enφ COM-∙ a komunikaci mezi nimi. V knihovn∞ je dßl implementovßna komunikace mezi distribuovan²mi COM-y (DCOM), co₧ jsou objekty, kterΘ spolu komunikujφ pomocφ poΦφtaΦovΘ sφt∞.


PodobnΘ Φlßnky:

 
╚lßnek je za°azen do serißlu Nßsledujφcφ>>
COM 2.dφl

Kdo Otßzka nebo p°ipomφnka

Prohlφ₧enφ p°φsp∞vk∙ nebo nov² p°φsp∞vek

O firm∞... Kontakt Ostatnφ