statnice:vyvoj:otazka13
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| statnice:vyvoj:otazka13 [06.05.2008 14:58] – xvalo07 | statnice:vyvoj:otazka13 [18.05.2008 15:29] (current) – xvalo07 | ||
|---|---|---|---|
| Line 11: | Line 11: | ||
| * Může být komponenta vytvořena neobjektovým způsobem? | * Může být komponenta vytvořena neobjektovým způsobem? | ||
| * Určete místo komponent v objektových metodikách vývoje programových systémů | * Určete místo komponent v objektových metodikách vývoje programových systémů | ||
| + | |||
| + | ===== Teorie ===== | ||
| + | Komponenta – kus znovupoužitelného kódu se specifikovanou a jasně zdokumentovanou funkcionalitou, | ||
| + | |||
| + | Komponentové programování je zatím nejnovější forma programování a vychází z toho, že některé části kódu se častěji opakují a je velmi pravděpodobné, | ||
| + | |||
| + | Do vnitřku komponenty není vidět, je utajen, jasné je pouze jedno nebo více rozhraní, která musí být co nejpodrobněji zdokumentována. Komponenty mají tu výhodu, že mohou běžet i na jiných, vzdálených počítačích, | ||
| + | |||
| + | ORB – object request broker – rozhraní, pomocí kterého mohou být aktivovány vzdálené komponenty a s nimi komunikováno. Všechny komponentové technologie dnes dokážou komunikovat i jako inprocess, tozn. přímo – v zájmu zrychlení činnosti. | ||
| + | |||
| + | Komponentových architektur existuje více. Jednak jde o architekturu COM+ firmy Microsoft, která je přítomna v systémech Windows. V současné době ale Microsoft podporuje spíše platformu .NET a komponenty v ní vyrobené. Naštěstí .NET obsahuje nástroje, jak z něj lze volat COM a naopak. COM+ jsou binární architektury, | ||
| + | |||
| + | Princip je v podstatě následující – klient má v sobě funkci, která vytvoří na základě známého rozhraní komponenty tzv. proxy, což je objekt, který emuluje rozhraní komponenty tak, jako by byla vnitřní instancí objektu. Při jejím volání se ale data serializují a jsou odesílána na příslušný server, kde sedí komponenta, na stub, což je vlastně rozhraní, které to unmarshalluje – ztransformuje data do podoby vhodné pro volaný objekt a zavolá jej, stejnou cestou ale obráceně pošle zase odpověď. | ||
| + | |||
| + | U komponent se můžeme setkat s problémem verzování, | ||
| + | |||
| + | Podpora komponent ve vývojových nástrojích je velmi slušná, většina nástrojů dokáže komponenty vizuálně zařadit do vytvářeného kódu, na základě jejich IDL (textového popisu rozhraní) dokáže obvykle automaticky vygenerovat příslušnou třídu v programu, atd. Na druhou stranu komponentové technologie bývají chápány jako enterptise oblast a jsou obvykle obsaženy ve vyšších verzích SW. | ||
| + | ===== Praxe ===== | ||
| + | |||
| + | Objekt je něco jiného – objekt je v rámci jednoho jazyka a jednoho prostředí (i když už taky ne, v .NET se dokážou volat i napříč jazyky). Nicméně při kompilaci objektově orientovaného kódu zůstanou objekty integrální součástí kódu, zatímco komponenty jsou samostatné, | ||
| + | |||
| + | Komponenta může být vytvořena i neobjektově, | ||
| + | |||
| + | Podle mého názoru komponenta sice není to samé co objekt, má k němu ale velmi blízko a z hlediska implementace (proxy) se od objektu nijak neliší. Proto je podle mě bezproblémů možné v objektových metodikách tyto dvě věci nerozlišovat a nástroje pro popis objektů ([[statnice: | ||
statnice/vyvoj/otazka13.1210078719.txt.gz · Last modified: 06.05.2008 00:00 (external edit)
