Podstata popularity sítí peer-to-peer Jsou-li si rovný s rovným Ve všech ekosystémech, které můžeme kolem sebe pozorovat, přesahuje hodnota dobře organizovaného celku hodnotu svých jednotlivých částí. Ani počítačová síť není výjimkou. Názory na to, jak stanovit hodnotu sítě, se však různí. Připomeňme si tři nejběžnější způsoby, jak ocenit hodnotu sítě s n uzly: Sarnoffův zákon: hodnota sítě je přímo úměrná n; Metcalfeův zákon: hodnota sítě je přímo úměrná n˛; Reedův zákon: hodnota sítě je přímo úměrná 2n. V čem se tyto přístupy liší? Sarnoffův zákon považuje síť za vysílací médium, ve kterém existuje pouze několik vysílačů a všechny ostatní uzly jsou přijímači. V tomto případě má síť hodnotu, jež roste lineárně s počtem uživatelů, kterým je síť schopna doručit službu. V Metcalfeově zákoně je síť prostředím pro vzájemnou komunikaci uzlů, které mohou všechny vysílat i přijímat. Každý uzel sítě tedy může komunikovat s n-1 ostatními uzly; celá síť tak může zprostředkovat až n(n-1), tedy asymptoticky n2 simultánních transakcí. A konečně v případě Reedova zákona je síť považována za médium, které umožňuje uzly dynamicky seskupovat. V takovém případě může síť vytvořit až 2n-n-1, tedy řádově 2n netriviálních skupin. Pod "hodnotou" sítě samozřejmě nemáme na mysli nějak přesně definované číslo. Výše uvedené úvahy pouze vyjadřují tři možné pohledy na využití síťového média – využití k vysílání, využití k obousměrné komunikaci, a konečně využití k seskupování uzlů do vyšších celků. Důležité však je, že odrážejí míru možné komplexity, která z těchto alternativ vyplývá. O hodnotě sítě totiž nevypovídá pouze počet jejích uzlů, ale i způsob jejího využití. Tato úvaha nám nabízí zajímavý pohled na internet. Vidíme, že složitost internetu může růst nejenom extenzivně, s přibývajícím počtem připojených počítačů, ale i vnitřně, změnou způsobu jeho využívání. Podívejme se nejprve, zda máme v oblasti vnitřního růstu pro růst komplexity vůbec prostor. Jakému způsobu využití se nejvíce blíží dnešní internet? Komplexita internetu se zmenšuje Až do roku 1994 existoval na internetu jediný model konektivity. O počítačích se předpokládalo, že budou pořád zapnuté, pořád připojené a že budou mít přidělenu permanentní IP adresu. V takovém schématu se všechny uzly využívaly k obousměrné komunikaci. Pro toto prostředí byl vytvořen i DNS systém, ve kterém je dodnes změna IP adresy považována za cosi abnormálního a výjimečného, a kde může propagace takové změny systémem trvat celé dny. S příchodem prvního internetového prohlížeče Mosaic se začal šířit další model konektivity. K provozování webového prohlížeče musel být osobní počítač připojen k internetu prostřednictvím modemu. Tím vznikla konektivita "druhé třídy", neboť PC se mohl připojovat a odpojovat velmi často a nepředvídatelně. Navíc, protože k uspokojení náhle zvýšeného požadavku na připojení nebylo k dispozici dostatečné množství IP adres, začali poskytovatelé internetu přiřazovat IP adresy dynamicky. Každý PC tak měl při každém připojení jinou IP adresu. Tato nově vzniklá nestabilita spojení zabránila počítačům PC mít svůj vlastní záznam v DNS, a tudíž zabránila i jejich uživatelům v lokálním hostování aplikací. Rozdělení sítě na klienty a servery bylo na světě. A z našeho pohledu můžeme pozorovat, že ačkoliv se velikost sítě velmi rychle zvyšovala, hodnota sítě se díky vzniku konektivity "druhé třídy" začala oddalovat od kvadratického a začala se přibližovat spíše lineárnímu modelu. Dnešní využití internetu je tedy velmi podobné vysílacímu schématu. Relativně malý počet serverů vysílá informace obrovskému množství klientů. Těmi klienty jsou však v absolutní většině výkonné počítače PC. Přímo se nabízí možnost přeměnit tyto silné klienty na specializované servery a řádově tak zvýšit hodnotu sítě internet – v podstatě by to šlo bez vážnějšího zásahu do hardwarové struktury sítě, a tedy bez vážnější investice. A tím jsme zároveň popsali cíle první etapy P2P, na kterých se právě v těchto dnech pilně pracuje v laboratořích velkých firem i v nadšených týmech malých technologických start-upů. Bylo by však omylem domnívat se, že přechod na P2P systém bude omezen na změny v oblasti softwaru. Zatímco dnes se používá většina vyrobených procesorů stále ještě v off-line zařízeních, v budoucnu se tento poměr změní. Struktura sítě se bude dále rozšiřovat a bude se do ní zapojovat řádově více procesorů než dnes. A právě tehdy se plně projeví hlavní smysl P2P – uplatnění adaptibility a samoorganizace jako přímý důsledek zvýšení komplexity sítě, který přeroste hranice internetu. A tím se již dostáváme k naší pracovní definici peer-to-peer. Definice peer-to-peer Cílem Peer-to-peer paradigmatu je odstranění bariér bránících vzniku "ad hoc" komunit, bez ohledu na to, zda jsou tyto komunity tvořeny lidmi, programy nebo distribuovanými zdroji. V první fázi se bude jednat o oddělení lidí, programů a zdrojů od specifických počítačů. Díky tomu bude usnadněn vznik samoorganizace a podpořen přirozený vznik hierarchií. Tím je zároveň velmi dobře definován i smysl peer-to-peer. Pokud totiž přesahuje komplexita problému určitou hranici, umožňují adaptivní dynamické hierarchie řádově lepší využití zdrojů než klasické hierarchie vytvořené staticky, v prostředí mimo vlastní systém. Praktickými příklady zvýšené efektivity P2P jsou aplikace nabízející vyšší využití hardwarových zdrojů (nejznámější je SETI @Home), kterými se budeme zabývat za okamžik; k nejzajímavějším projevům samoorganizace však dochází při vzniku virtuálních komunit uživatelů. Kromě této naší definice existují i definice ryze technické. V nich je peer-to-peer paradigma charakterizováno dynamickým přidělováním adres jednotlivým zařízením sítě a vysokou mírou jejich autonomity. Tyto dva pohledy nejsou v rozporu. Obě popsané technické vlastnosti sítě jsou k oddělení lidí a dat od specifických počítačů samozřejmě zapotřebí. Podívejme se nyní na praktické příklady. Především do naší definice velmi elegantně zapadají i dnes nejznámější služby P2P – Napster a Gnutella. Obě tyto aplikace umožnily seskupit uživatele podle jejich hudebních preferencí; díky nim byly vytvořeny virtuální skupiny lidí sdružující zájemce o velmi podobnou hudbu. Tito uživatelé si mohou oblíbenou hudbu vzájemně vyměňovat, a prostřednictvím chatu si o ní mohou dokonce i popovídat. Hlavní příčinou úspěchu těchto aplikací je vyřešení motivace uživatelů: pokud uživatel Napsteru používá systém pro své osobní potřeby, zároveň tím prospívá celé komunitě a zvyšuje hodnotu obsahu. Adaptivita a samoorganizace – vznik hierarchie v P2P komunitách Kupodivu i v těchto jednoduchých aplikacích se začaly projevovat známky samoorganizace. V komunitě Napsteru se začal vytvářet celý ekosystém uživatelů. Někteří účastníci například zakázali sdílení svých souborů. Ostatní se začali vzájemně odlišovat například podle množství hudebních nahrávek, které dávali k dispozici, nebo podle kvality připojení. Vznikli tak "superuživatelé" nabízející velké množství hudebních skladeb s velmi kvalitním připojením, a na druhé straně domácí uživatelé, kterým je lepší se při stahování skladeb vyhnout. Ne náhodou přirovnávají někteří autoři tento jev k Orwellově Farmě zvířat, ve které byla původně všechna zvířata zcela rovnoprávná, ale postupně se i mezi nimi začala vyvíjet hierarchie. K ještě zajímavějším jevům dochází v Gnutelle. Základním problémem plně decentralizovaných aplikací je jejich škálovatelnost. To přimělo společnost Clip2 DSS (Distributed Search Solutions) k vyvinutí systému Gnutella Reflector, což je specializovaný "superuživatel", který má funkci proxy a vyhledávacího serveru. Uživatelé se připojují k Reflectoru stejně, jako se připojují k indexovým serverům Napsteru; Reflector však navíc umí sám fungovat i jako peer, tedy iniciovat výchozí spojení s jinými členy komunity. V dalším vývoji si lze představit samovolný vznik specializovaných vyhledávacích Reflectorů pro různé žánry nebo pro různé segmenty sítě a samozřejmě i nasazení dalších podobných systémů konkurenčních výrobců do komunity Gnutelly. Formou samoorganizace tak paradoxně dochází ke sbližování decentralizované Gnutelly s centralizovaným vyhledávacím systémem Napsteru. Základním projevem samoorganizace je nástup specializovaných prvků sítě. Až dosud jsme tuto samoorganizaci mohli pozorovat jen na mnohem vyšších úrovních, například v rámci celé sítě internet: vznik specializovaných služeb na internetu také není ničím jiným než projevem samoorganizace. Zajímavé je však zjištění, že u peer-to-peer aplikací dochází k samoorganizaci již při mnohem menší velikosti sítě. Pokud se podíváme na rozdíl mezi službami Napsteru a tradičních centralistických řešení založených na klasickém webovém serveru, jako je MP3.com, nenajdeme v podstatě žádný závratný rozdíl. Pokud se podíváme na rozdíl v architektuře těchto aplikací, rozdíl již vidíme – Napster uchovává seznam odkazů, zatímco MP3.com celou jejich knihovnu; kdyby se však MP3.com rozhodl použít k uložení odkazů virtuální peer-to-peer disk, který popíšeme níže, i tento rozdíl by pro vnějšího pozorovatele v podstatě zmizel. Hlavním rozdílem mezi MP3.com a Napsterem nebo Gnutellou tak není architektura ani obsah aplikace, ale způsob, jak se k finální aplikaci a službě dospělo. Systémy Napster i Gnutella vytvořily obsah prostřednictvím samoorganizačního adaptivního postupu; Gnutella tímto způsobem navíc vytvořila i svoji architekturu. Dvě roviny aplikací P2P V souladu s naší definicí tak můžeme načrtnout dvě roviny peer-to-peer aplikací. První rovina se zaměřuje na hardware. Její hlavní snahou je oddělit od konkrétních počítačů zdroje, jako je zejména nevyužitá kapacita procesorů a volné místo na harddiscích. Seskupením nevyužité výpočetní kapacity může vzniknout nesmírně výkonný virtuální počítač, "posbíráním" volného místa na počítačích uživatelů vznikne obří úložný prostor; obojí bez nutnosti koupit a provozovat jakýkoliv další server. Pokud uvážíme, jak výkonný a kapacitní je dnešní průměrný počítač připojený k internetu a jak málo je takový stroj většinu času využit, vytvoření "virtuálního hardwaru" je velmi lákavou komerční příležitostí. Mohou z ní těžit firmy, kterým se nabízí šance lépe využít své stávající zdroje, zároveň je však obrovskou výzvou pro obecné internetové projekty, díky nimž může vzniknout počítač výkonnější, než je schopna sestrojit a provozovat jakákoliv firma na světě. Technické aplikace – "virtualizace hardwaru" Podívejme se nyní blíže na první, hardwarovou rovinu P2P aplikací. Můžeme ji dále rozdělit na tři dílčí oblasti: na lepší využití výpočetní kapacity, lepší využití volného místa na discích a konečně do této kategorie spadá i lepší využití přenosové kapacity, čímž myslíme sdílení konektivity pro přenos velkých souborů co "nejblíže" koncovým uživatelům. Ve všech těchto aplikacích se přitom jedná o opětovné využití zdrojů, které již někdo "spotřeboval" a zaplatil. Virtuální procesor První široce známou aplikací sdílení výpočetní síly byl projekt SETI @Home a jeho populární "screen saver", jehož pravou činností však bylo využít výpočetní kapacitu PC uživatele ve chvílích, kdy by ji stejně nepotřeboval. Aplikace další generace se budou snažit o totéž, ale na mnohem efektivnější bázi – na rozdíl od screen saveru budou využívat nejen období, kdy počítač leži ladem (odchod na oběd atd.), ale přímo nevyužité cykly procesoru. Díky tomu, že při naprosté většině kancelářských prací a při dnešní síle hardwaru je nevyužitých cyklů procesoru více než dost, může být volná kapacita našeho počítače nabízena v podstatě permanentně. Intenzivní vývoj zde vede zejména společnost Intel. Očekává se, že první komerční aplikace tohoto typu budou nasazeny v podnikových sítích, kde odpadají problémy s bezpečností dat i možným napadením zvenčí. Firma tak může seskupit nevyužitou kapacitu počítačů, které již jednou zakoupila, a nemusí investovat do nového hardwaru, na kterém by běžel například podnikový informační systém. Dochází tak k nevídanému jevu, který bychom asi nejvýstižněji popsali jako "virtualizaci hardwaru", tedy nahrazení hardwaru softwarem a sítí. (Ve skutečnosti vedly k podobnému jevu již první víceúlohové operační systémy – nová na P2P je ovšem skutečnost, že v tomto případě počítač vůbec neexistuje.) Virtuální disk Další zajímavou aplikací jsou síťové disky bez fyzických serverů. Také ty zřejmě zapustí kořeny nejprve v podnikových sítích. Pokud si spočteme počet počítačů připojených k podnikové síti a znásobíme jej průměrnou nevyužitou kapacitou na jejich harddiscích, dostáváme velmi lákavá čísla. Příkladem aplikace z této oblasti je projekt Microsoft Research s kódovým názvem Farsite. Tento projekt má umožnit velké firmě nebo univerzitě propojit až 100 000 počítačů a uložit na ně 1010 souborů o celkové velikosti 1016 bytů. Ještě ambicióznější je společný projekt univerzity v Berkeley s podporou Defense Research Projects Agency (DARPA), IBM and EMC s názvem OceanStore. Zde se hovoří o propojení 10 miliard počítačů, obsahujících 1023 bajtů dat. Virtuální konektivita Až dosud jsme konektivitu pouze nenasytně spotřebovávali; paradoxně ale existuje (přinejmenším v plánech společnosti Intel) i taková oblast P2P aplikací, která konektivitu šetří. Princip je kupodivu stejný jako ve dvou předešlých případech – zužitkování zdroje, za který už někdo stejně zaplatil. V daném případě se využívá P2P k přenosu velkých multimediálních souborů "co nejblíže" (ve smyslu topologie sítě) k uživateli. Pokud si někdo stáhl velký soubor, je pravděpodobné, že si jej bude chtít stáhnout i někdo další z jeho okolí. Bylo by tedy fajn, kdyby existovala poblíž kopie souboru, případně kdyby bylo možné využít přímo souboru uloženého na disku prvního uživatele. V takovém případě by byla k dalšímu stažení potřeba mnohem menší část sítě, než jakou bychom potřebovali ke stažení souboru z původního místa. Mimochodem podobnou vlastnost měl již Napster. Princip je tedy stejný, jako když využíváme počítačů a disků, které již byly stejně zakoupeny, ke zpracování požadavků dalších uživatelů. Při "virtuální konektivitě" znova zužitkujeme tu část kapacity sítě, která byla použita k předchozímu downloadu, a zmenšíme tak vlastní síťové požadavky na náš download. Sdílení dat Podobně jako začaly lokální sítě s požadavkem na sdílení nákladného hardwaru (např. disků a tiskáren) a postupně ukázaly svou pravou hodnotu v umožnění simultánní práce uživatelů nad stejnými daty, ani P2P aplikace se neomezí na umožnění lepšího sdílení stávajících zdrojů. Pravá síla nové technologie spočívá ve vytváření virtuálních komunit lidí a v podpoře samoorganizace právě v těchto komunitách. Vše začne aplikacemi, v nichž se bude virtuální komunita podílet na decentralizované přípravě obsahu. Obzvláště úspěšné budou zejména prodejní aplikace, například katalogy aktualizované v reálném čase a umožňující přímou interakci prodávajícího s kupujícím. Již dnes existuje řada zajímavých obchodních modelů, které těmto aplikacím dají komerční životaschopnost. To vše bude moci fungovat nad sítí v dnešním pojetí. V kroku, který bude následovat, se však začne významně měnit celá síť. P2P není jen o softwaru Každoročně je vyrobeno kolem čtyř miliard procesorů určených do nejrůznějších zařízení: elektronickým zámkem počínaje a jadernou elektrárnou konče. Počet vyrobených počítačů je však pouhým zlomkem tohoto čísla. A počet počítačů, které slouží jako servery, je pouhým zlomkem počtu všech počítačů. Dnes tedy dochází k velmi statické centralizaci, ve které se a priori zbavujeme vysoké potenciální síťové hodnoty ještě předtím, než by se tato hodnota mohla projevit. Právě popsaným dvěma skokům proto budou odpovídat i dvě etapy nasazování peer-to-peer aplikací. První etapou peer-to-peer, kterou jsme se zabývali až dosud, bude převod všech počítačů na "servery". Tato transformace se dá realizovat z větší části softwarově, a může tedy proběhnout relativně rychle a levně. Procesorů vybavených komunikačními schopnostmi a plně zapojených do sítě však začne postupně přibývat. Díky komunikačním možnostem těchto zařízení poprvé odpadne nutnost definovat jejich roli již v okamžiku jejich výroby a před zapojením do systému. Nebude tedy nutno určit jejich roli pevně a staticky. Etapu, která bude následovat, bychom proto mohli popsat jako mnohem vyšší nasazení adaptivních metod do našeho světa. Až tehdy se naplní pravý smysl naší definice P2P. Přitom první část této nové éry se již rýsuje: je jí m-commerce a nastupující obrovská záplava mobilních komunikačních zařízení trvale připojených k síti. P2P je synonymem pro adaptivitu I zdánlivě nejjednodušší aplikace P2P, které "pouze" posbírají nevyužitý hardware a dají jej k dispozici ostatním uživatelům, vlastně směřují k adaptivnímu a lepšímu využití stávajících zdrojů. Jako bychom si uvědomili, že my sami nejsme schopni vytížit ani ten náš počítač, který máme před sebou. Dnes konečně vyhlašujeme soutěž na jeho využití. To je obrovský rozdíl v efektivitě využití hardwaru, který jen ukazuje možnosti adaptivního přístupu. Jinými slovy žádná softwarová firma a žádný vývojový tým nedokáže a priori vymyslet tak rozumné využití pro můj hardware jako jiní uživatelé, kteří jej navíc budou vymýšlet v reálném čase, tedy dynamicky a adaptivně. Jak ostře kontrastuje tato vize s dnešními multimediálními screen savery, animovanými poskakujícími pomocníky a počítači, které naprostou většinu doby (s výjimkou právě zmíněných činností) leží ladem. Pokud bude mít uživatel možnost tuto přebytečnou kapacitu přístroje, který již zakoupil, nabídnout výměnou za cokoliv rozumného, získá i velmi dobrou motivaci odinstalovat výše zmíněné programy, jejichž hlavním cílem je spotřebovat většinu zdrojů na minimum výkonnosti. I tento jeho krok již bude součástí adaptivního vývoje. Celková výpočetní kapacita, která byla vyrobena, tím získá šanci pro výrazně intenzivnější využití. Přechod k dynamické specializaci součástí sítě Náš dnešní technický svět je statický: každé jeho součástce vymyslel někdo specializaci ještě dávno předtím, než ji vložil do systému. Doba budoucí bude dobou dynamické specializace, umožněné obecným zapojením sítě. A právě k tomuto obecnému zapojení směřují aplikace P2P, které činí první a nejdůležitější krok. Žijeme tedy v přelomové době. Díky změně paradigmatu internetu dojde k náhlému zvýšení komplexity sítě. Vznikne tím prostředí, ve kterém se bude mnohem více projevovat princip samoorganizace. Tento ekosystém bude umělý již jen zdánlivě. Jiří Donát Jdonat@DeloitteCE.com