Zhruba od konce 80. let se v populární, ale i odborné literatuře stále častěji setkáváme s pojmem Otevřené systémy (Open Systems) a především pak s chválou, co tento přístup přináší nám, uživatelům výpočetní techniky. Převážná většina těchto příspěvků mlčky předpokládá, že čtenář je nejen dobře obeznámen s významem tohoto pojmu, ale navíc k jeho oblíbené kratochvíli patří luštění nepřehledných zástupů zkratek, které se kolem otevřených systémů vyskytují. Všem, kteří nepatří do výše zmíněné kategorie, a přesto by si rádi učinili ucelenější základní představu o tom, co se pod pojmem Otevřené systémy skrývá, je určen tento článek.
Přibližně koncem 80. let dosáhlo množství instalovaných počítačových systémů kritické hranice, kdy přestal být rozhodující výkon a schopnosti jednotlivých počítačů a pozornost při hodnocení se přesunula na možnosti výměny dat a vzájemného propojení. Prakticky žádný výrobce počítačů a programového vybavení nebyl schopen pokrýt všechny požadavky zákazníků, případně některá řešení byla výrazně horší než to, co bylo dostupné u konkurence (a naopak). Zákazníci si proto opatřovali systémy od různých výrobců současně, skutečně efektivnímu využití takto rozmanitého počítačového vybavení však bránily problémy spojené s přenositelností programů a zejména dat - zvláště databázové systémy od jednotlivých dodavatelů se lišily způsobem ukládání dat, přitom výrobce často ani tyto informace (z konkurenčních důvodů) neposkytoval.
Ve stejné době na trhu zaznamenaly velký úspěch dva produkty - osobní počítače kompatibilní s IBM PC a operační systém UNIX na pracovních stanicích. Jednou z příčin úspěchu bylo, že tyto produkty dodávalo velké množství vzájemně nezávislých výrobců a takto vytvořené konkurenční prostředí přispělo k uživatelsky orientovanému přístupu a rovněž k nízkým cenám.
Otevřela se tak cesta systémům, jejichž specifikace by byly obecně dostupné, takže by s jejich výrobou (případně s výrobou určitých komponent) mohl začít prakticky kdokoliv a přitom by existovala záruka, že výsledný produkt, vzniklý složením jednotlivých, nezávisle vyvinutých komponent, by byl skutečně funkční a přitom dostatečně efektivní.
Uvedený fakt odráží i jedna z řady definic otevřených systémů1:
Otevřený systém je úplný počítačový systém nebo jeho technická či programová část, splňující následující podmínky:
Otevřené systémy jsou nerozlučně spjaty s národními a především mezinárodními standardizačními procesy. Mají-li být specifikace obecně dostupné a mají-li být současně výrobci nějak motivováni k jejich dodržování, pak jedinou schůdnou cestou je použití mezinárodních standardů. Otevřené systémy vycházejí z faktu, že existují (a stále vznikají) standardy specifikující jednotlivé komponenty počítačových systémů.
Existuje celá řada institucí, které se tvorbou standardů zabývají. V oblasti informačních technologií mezi nejdůležitější mezinárodní standardizační instituce patří
Kromě těchto (a dalších) mezinárodních a řady národních standardizačních institucí (např. ANSI - American National Standard Institute, BSI - British Standards Institute, DIN - Deutsches Institut für Normung, AFNOR - Association Française de Normalisation a další) existují další dobrovolná sdružení výrobců a uživatelů počítačů věnující se návrhu doporučení a specifikací (již nikoliv standardů, to přísluší pouze oficiálním institucím). Mezi nejznámější v této oblasti patří
Činnost některých těchto organizací je bohužel zaměřena více na podporu výrobců, kteří jsou jejich členy (OSF, UI), než na návrh obecně akceptovatelných specifikací.
Nelze pak v této souvislosti zapomenout na tzv. de facto standardy - technická řešení, která se svým úspěchem na trhu prosadila do té míry, že jsou akceptována většinou výrobců jako příklad hodný následování (např. síťový protokol TCP/IP). Standardizační instituce se v některých případech snaží takto vzniklé de facto standardy převést do skutečných (de iure) standardů, ovšem tento proces je natolik zdlouhavý, že řada de facto standardů je nahrazena novými dříve, než je proces formálního schvalování ukončen.
UNIX je často uváděn jako typický příklad otevřeného systému - správněji by se mělo mluvit o tom, že UNIX se ze všech existujících operačních systémů nejvíce blíží požadavkům otevřených systémů. Modularita a především fakt, že je prakticky celý napsán ve vyšším programovacím jazyce, spolu s dostupností všech specifikací2, přispěly k tomu, že UNIX byl přenesen nezávislými výrobci na prakticky všechny významné počítačové platformy. Zároveň tento proces "živelného" přenášení UNIXu vedl ke vzniku celé řady verzí, které jsou vzájemně jen velmi málo slučitelné (to se týká zejména verzí vycházejících ze systému V v porovnání s verzemi vycházejícími z Berkeley distribuce). Základní požadavek přenositelnosti tak není často splněn ani na úrovni zdrojových textů, ovšem jednotlivé verze UNIXu se vyznačují poměrně velmi dobrou propojitelností - sjednocení se na síťovém protokolu TCP/IP a dalších síťových službách (především distribuovaném síťovém systému souborů NFS a principu volání nelokálních procedur RPC) přispělo výraznou měrou jak k úspěchu jednotlivých implementací, tak především k pocitu, že UNIX a otevřené systémy jedno jsou.
UNIX sehrává především úlohu prototypu otevřených systémů: přestože o žádné implementaci tohoto operačního systému nelze říci, že by splňovala všechny požadavky, kladené na otevřené systémy, je UNIX jednoznačně tomuto ideálu nejblíže. V této souvislosti je ovšem ještě vhodné zmínit jeden problém spojený s otevřenými systémy - vzájemnou neslučitelnost jednotlivých specifikací. Konkurenční boj, který je veden především mezi zájmovými sdruženími výrobců a uživatelů výpočetní techniky, vede ve svých důsledcích k tomu, že jednotlivé specifikace se liší i v některých podstatných rysech - vhodným příkladem může být otázka implementace národních prostředí, která je odlišně definována v rámci doporučení POSIX a X/Open. Důsledkem pak může být, že produkt, o kterém výrobce tvrdí, že prakticky splňuje jak doporučení POSIX, tak X/Open, nesplňuje v některých důležitých rysech ani jedno z obou doporučení. To je opět důsledek faktu, že jako prototypy otevřených systémů se používají různé verze UNIXu a od nich se odvozují doporučené vlastnosti otevřených systémů obecně.
Jako příklad otevřených systémů na jiné úrovni než samotného programového vybavení se často uvádějí osobní počítače kompatibilní s IBM PC. Firma IBM, která je tvůrcem těchto počítačů, poskytla všem zájemcům (v podstatě bezúplatně, tj. obdobným způsobem, jakým jsou dostupné jednotlivé standardy) informace o všech podstatných komponentách počítače a "srdce" těchto počítačů - procesor INTEL 80x86 - bylo rovněž dostupné každému. Výsledkem je nepřeberné množství "klonů", mezi kterými si zájemce o osobní počítač skutečně může vybírat. Současně jsou k dispozici periferní zařízení od velkého množství výrobců a zákazník si opět může vybírat. Tento přístup má velmi pozitivní důsledky - v neposlední řadě je to velmi nízká cena i značkových počítačů, stlačovaná levnými "no-name" počítači, které ovšem ve všech parametrech plně konkurují oněm značkovým a jsou s nimi plně kompatibilní.
Zároveň je však možno na tomto příkladu ukázat i stinnou stránku "otevřeného" přístupu - zaměnitelnost komponent není absolutní (kdo z nás neměl potíže způsobené drobnými nekompatibilitami jednotlivých periferních zařízení) a každý výrobce se snaží "svůj" počítač něčím odlišit od těch ostatních, aby zvýšil jeho konkurenceschopnost (čímž se ovšem odklání od otevřenosti).
Je pouze částečnou pravdou, že otevřené systémy přinášejí velké výhody i výrobcům hardwaru (zejména velkým). Z hlediska lokálních zájmů je pochopitelně speciální softwarové vybavení finančně výhodnější, protože zákazník je závislým na dodávkách jedné firmy, která pak může diktovat jak ceny, tak i termíny výroby a dodávek nových programových komponent. Zákazníci si však tuto, pro ně neblahou, situaci uvědomují a snaží se orientovat na takové systémy, kde nebezpečí lapení do pasti je minimální3. V této činnosti jsou podporováni i některými výrobci softwaru, zejména těmi, kteří vyrábějí specializované programy (např. databáze) a mají zájem na co největším rozšíření svých produktů (dodržovat veřejně dostupné standardy je snazší než proniknout do exkluzívního klubu dodavatelů programového vybavení pro určitý typ počítačů, nehledě na podstatně vyšší náklady spojené s vývojem často výrazně odlišných verzí pro jednotlivé typy počítačů).
Celkově je možno shrnout, že "otevření systémů" je krok jednoznačně ve prospěch zákazníků, a tedy i nás. Podstatně snazší přenositelnost (a to jak programů, tak i uživatelů) a snazší integrace jednotlivých počítačů do vyšších celků - sítí - zvyšuje výraznou měrou efektivitu využívání počítačů a zároveň vytváří tlak na snižování cen jak softwaru, tak i hardwaru. Na druhé straně je třeba si uvědomit, že nic na světě není zadarmo - cena, kterou za otevřené systémy platíme, spočívá jednak v nebezpečí chyby standardizačních procesů, jednak v nebezpečí určité uniformity (a tím i potenciální ztráty výkonu).
Standardizace je velmi zdlouhavý proces a zejména v oblasti výpočetní techniky často připomíná chytání stále ujíždějícího vlaku - než se mezinárodní komise a instituce na něčem dohodnou, již čiperní výrobci přicházejí s novými, podstatně efektivnějšími nápady, ty však bohužel nejsou standardizovány, takže nejsou otevřené... Navíc některá řešení, která vypadají pěkně a perspektivně u kulatého stolu, působí značné potíže při technické realizaci - drtivé procento počítačových sítí používá v současnosti protokol TCP/IP, který není standardizován ve smyslu standardů otevřených systémů, a nikoliv protokoly OSI, které standardizovány jsou, avšak jen velmi malé procento výrobců je skutečně dodává4.
Nebezpečí ztráty výkonu, spojené s otevřenými systémy, je zase dobře patrné na vlastním systému UNIX. Každý, kdo měl možnost seznámit se s výkonem stejného počítače pod dvěma operačními systémy, z nichž jeden byl UNIX a druhý specializovaný systém, "šitý" na míru počítače, potvrdí výrazný pokles výkonu při použití UNIXu. V konečném důsledku to znamená, že za otevřenost mnohdy platíme nadbytečným výkonem, který by uzavřené systémy uměly využít lépe.
Otevřené systémy, alespoň podle názoru autora, jsou mnoha výrobci používány jako zástěrka vlastních zájmů a především jako oblíbený reklamní slogan. Existující standardy a specifikace jsou zatím stále příliš ,"malé", takže ani to, že dva produkty splňují, řekněme, specifikace POSIX, nezaručuje, že budou vzájemně kompatibilní (výrobci totiž nejsou omezeni v tom, co přidají navíc, a především v tom, jak toto navíc využijí ve vlastním produktu). Základní myšlenka je však natolik užitečná, že bychom tam, kde existuje výběr, měli dát přednost produktům, které zaručují (nejen slibují!) vzájemnou slučitelnost komponent od různých výrobců. Otevřené systémy jsou především idea, jejíž realizace výraznou měrou sníží sekundární náklady5 na využívání výpočetní techniky.
1 | Tato byla navržena sdružením X/Open
... zpět do textu |
2 | To je důsledek licenční politiky firmy AT&T, která zejména
v počátku vývoje, kdy sama nevěřila ve výrazný úspěch
UNIXu, celkem ochotně přenechávala licence ke zdrojovým textům
UNIXu dalším zájemcům, a rovněž toho, že na univerzitě
v Berkeley byl celý systém přepsán a zdrojový tvar byl
poskytnut prakticky zdarma veřejnosti.
... zpět do textu |
3 | Toto lze velmi pěkně dokumentovat na problémech firmy DEC,
jejíž počítače VAX patří, zejména v USA,
k nejrozšířenějším počítačům středního a sálového typu
(odhaduje se na 400.000 instalací). Přesto firma v posledních
letech vykazuje vysoké ztráty, způsobené odklonem zákazníků
od systémů VAX: orientace natyto systémy totiž
v podstatě předurčuje současné i budoucí možné dodavatele
programového vybavení i dalších rozšíření základního hardwaru.
... zpět do textu |
4 | Tato skutečnost není způsobena nějakou "nechutí" výrobců, ale tím,
že protokoly OSI jsou podstatně složitější a náročnější
a pro běžné potřeby uživatelů vlastně nadbytečně mocné.
... zpět do textu |
5 | Těmi myslíme především náklady spojené s přeškolováním se
na nové počítače a programy, ztrátu času způsobenou
komplikovanými způsoby předávání dat apod.
... zpět do textu |