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í