VyÜlo v t²denφku: CHIPweek
╚φslo:12/96
Datum:19. b°ezna 1996
Strana:28
Rubrika/kategorie: Principy poΦφtaΦov²ch sφtφ
Modul: V²voj v²poΦetnφho modelu
Dφl:10

zp∞t do archivu Φlßnk∙ | rejst°φk | p°edchozφ Φlßnek | nßsledujφcφ Φlßnek

Ji°φ Peterka

Model agent/mana₧er

V minul²ch dφlech jsme se podrobn∞ji zab²vali podstatou v²poΦetnφho modelu klient/server a jeho mo₧n²mi podobami. Dnes se podφvßme pon∞kud dop°edu, na dalÜφ sm∞ry v²voje, kterΘ se v poslednφ dob∞ zaΦφnajφ objevovat - a¥ ji₧ jen v nßznacφch, nebo ji₧ ve form∞ konkrΘtnφch p°edstav a standard∙, Φi dokonce dostupn²ch produkt∙.

Ji₧ minule jsme si naznaΦili, ₧e p∙vodnφ motivace pro budovßnφ äklasick²ch" °eÜenφ na bßzi v²poΦetnφho modelu klient/server - tj. snaha minimalizovat objemy dat p°enßÜen²ch po sφti - se s postupem Φasu stßvß mΘn∞ a mΘn∞ imperativnφ. Na d∙le₧itosti naopak zaΦφnajφ nab²vat jinß kritΘria a omezujφcφ podmφnky, a do budoucna lze oΦekßvat, ₧e rozhodujφcφ faktory budou mφt Φφm dßl tφm vφce älogick²" charakter, ne₧ charakter äfyzick²". V tom smyslu, ₧e po°φzenφ dostateΦnΘ p°enosovΘ kapacity Φi kapacity v²poΦetnφ se stane spφÜe otßzkou ekonomickΘ rozvahy a ekonomickΘ ·nosnosti, ale nebude to ji₧ principißlnφm technick²m problΘmem. Co naopak bude stßle obtφ₧n∞ji °eÜitelnΘ, a co se tudφ₧ dostane do pop°edφ zßjmu, budou älogickΘ" aspekty typu zajiÜt∞nφ konzistence a integrity dat, celß oblast interoperability existujφcφch platforem a na nich stojφcφch systΘm∙, a p°edevÜφm pak problematika dekompozice °eÜenφ, kterß svou slo₧itostφ a komplexnostφ ji₧ dnes p°er∙stajφ hranici zvlßdnutelnosti. Prßv∞ tento poslednφ faktor pak z°ejm∞ nejvφce ovlivnφ budoucφ v²poΦetnφ modely.

Jak zvlßdnout rostoucφ slo₧itost?

V oblasti v²voje rozsßhl²ch programov²ch celk∙ (neboli v programovßnφ äve velkΘm") se ji₧ dßvno p°iÜlo na to, ₧e °eÜit velk² problΘm Φi ·kol jako celek je t∞₧Üφ a pracn∞jÜφ, ne₧ rozlo₧it jej na vφce menÜφch a samostatn∞ °eÜiteln²ch celk∙. N∞kdy, p°i opravdu velk²ch ·kolech, dokonce m∙₧e b²t jejich dekompozice a °eÜenφ äper partes" jedinou mo₧nostφ, jak se s velikostφ a slo₧itostφ dan²ch ·kol∙ ·sp∞Ün∞ vyrovnat. V konkrΘtnφm p°φpad∞ programovßnφ to vedlo na vznik r∙zn∞ modulßrnφch °eÜenφ, jejich₧ Φßsti (moduly) ale byly pov∞tÜinou ·zce lokalizovßny - po svΘm naprogramovßnφ a odlad∞nφ byly zase äposklßdßny" do jednoho v∞tÜφho celku, typicky do jedinΘho v²slednΘho programu, nebo do dvou jeho disjunktnφch Φßstφ (Ülo-li nap°φklad o °eÜenφ vychßzejφcφ z modelu klient/server). PodstatnΘ p°itom bylo to, ₧e dekompozice zde byla provedena pro pot°eby naprogramovßnφ, a nikoli pro pot°eby provozovßnφ v²slednΘho systΘmu. Do budoucna lze ale oΦekßvat, ₧e vzhledem k nßroΦnosti, slo₧itosti a celkovΘ komplexnosti °eÜen²ch ·kol∙ bude nutnΘ zavΘst dekompozici i do vlastnφho äfungovßnφ" v²sledn²ch °eÜenφ - tedy rozd∞lit je na vφce relativn∞ autonomnφch Φßstφ, kterΘ budou provozovßny samostatn∞ a po₧adovanΘ ·koly a funkce budou plnit ve svΘ vzßjemnΘ souΦinnosti. NejΦast∞ji p°itom p∙jde o takovΘ Φßsti, kterΘ majφ spoleΦn² p∙vod, vznikly ze stejnΘho d∙vodu a pro jeden a tent²₧ spoleΦn² ·Φel. Nenφ to ale nezbytnou podmφnkou, proto₧e na vzßjemnΘ spoluprßci se mohou podφlet i takovΘ celky, kterΘ vznikly nezßvisle na sob∞, bu∩ pro n∞jakou jinou konkrΘtnφ pot°ebu, nebo i jako univerzßlnφ prvky, vytvo°enΘ ädo zßsoby" pro p°φpad jejich pot°eby.

Obecn∞ je prßv∞ popsanß myÜlenka oznaΦovßna jako äcooperative processing", a jejφ podstatou je prßv∞ to, co vystihuje u nßs pon∞kud zprofanovan² pojem äkooperace", neboli spoluprßce vφce slo₧ek na spoleΦnΘm ·kolu. Model klient/server, kter²m jsme se a₧ doposud zab²vali, je vlastn∞ elementßrnφ formou takovΘhoto kooperativnφho zp∙sobu fungovßnφ - zalo₧en² na existenci dvou slo₧ek, kterΘ byly vytvo°eny k napln∞nφ spoleΦnΘho cφle, a kterΘ si mezi sebou rozd∞lujφ t°i zßkladnφ okruhy Φinnostφ (prezentaci, aplikaΦnφ logiku a sprßvu dat, viz minule). Do budoucna lze ale oΦekßvat, ₧e äkooperace" bude obecn∞jÜφ, bude se na nφ podφlet vφce slo₧ek ne₧ jen dv∞, a takΘ ₧e jejich vzßjemnß d∞lba prßce bude nejspφÜe dosti r∙znorodß, stejn∞ tak jako postavenφ kooperujφcφch slo₧ek.

Budoucnost bude distribuovanß!

Podobn∞ jako model klient/server, je i obecn∞jÜφ äcooperative processing" p°edevÜφm myÜlenkou, resp. p°edstavou o rozd∞lenφ rolφ a dφlΦφch ·kol∙, a nikoli p°edpisem pro konkrΘtnφ implementaci - i kdy₧ si v sob∞ nese urΦit² rßmcov² p°edpoklad o obvyklΘm zp∙sobu implementace. V roli klienta a serveru proto mohou v∙Φi sob∞ vystupovat i dv∞ aplikace, provozovanΘ na jednom a tΘm₧e poΦφtaΦi, ale obvykl²m p°φpadem bude spφÜe situace, kdy se ob∞ tyto slo₧ky nachßzφ na r∙zn²ch uzlov²ch poΦφtaΦφch sφt∞. Podobn∞ tomu je i s myÜlenkou äcooperative processing". TakΘ zde asi bude v principu mo₧nΘ, aby k obecn∞jÜφ a jemn∞jÜφ d∞lb∞ prßce dochßzelo mezi ·lohami Φi aplikacemi v rßmci jedinΘho poΦφtaΦe. Typick²m vÜak bude spφÜe p°φpad, kdy jednotlivΘ slo₧ky pob∞₧φ na r∙zn²ch uzlov²ch poΦφtaΦφch, samoz°ejm∞ vzßjemn∞ propojen²ch a schopn²ch komunikace. P∙jde tedy o takov² systΘm, kter² je t°eba oznaΦit p°φvlastkem ädistribuovan²" (distributed).

SymetrickΘ, nebo asymetrickΘ postavenφ slo₧ek?

Jakmile p°ipustφme, aby se na pln∞nφ spoleΦnΘm ·kolu podφlelo vφce r∙zn²ch slo₧ek, je vhodnΘ se ptßt po jejich postavenφ a vzßjemn²ch vztazφch - jsou si vÜechny slo₧ky vφcemΘn∞ rovny, nebo mezi nimi existujφ takovΘ vztahy, kterΘ je n∞jak²m zp∙sobem diferencujφ? Tedy nap°φklad vztahy nad°φzenosti a pod°φzenosti, vztahy poskytovatele a äkonzumenta" Φi n∞co jeÜt∞ jinΘho? Mo₧nΘ jsou v zßsad∞ ob∞ varianty (se stejn²m i nestejn²m postavenφm jednotliv²ch slo₧ek), a v praxi nejspφÜe budou vznikat nejr∙zn∞jÜφ varianty, pat°φcφ do obou tßbor∙. Uka₧me si dnes jednu z variant, kterΘ se ji₧ objevily (a jinΘ si nechßme na p°φÜt∞).

Agent a jeho mana₧er

Obrßzek 1.
P°edstava modelu agent/mana₧er
Jednou ze zajφmav²ch mo₧nostφ, vedoucφ na nesymetrickΘ postavenφ jednotliv²ch slo₧ek, je model uplat≥ovan² u r∙zn²ch monitorovacφch systΘm∙ (aplikacφ), kterΘ majφ za ·kol dohlφ₧et nad stavem sφt∞. TakovΘto systΘmy pot°ebujφ zφskßvat r∙znΘ ·daje z jednotliv²ch Φßstφ (mφst) sφt∞, a za tφmto ·Φelem do t∞chto mφst umis¥ujφ prvky, fungujφcφ jako Φidla resp. sb∞raΦe informacφ - ne nadarmo se jim °φkß agenti (agents). Tito agenti jsou jedno·Φelov²mi programy, kterΘ zφskanß data v∞tÜinou nijak podrobn∞ji nevyhodnocujφ a pouze je p°edßvajφ dßl tomu, kdo si je od nich vy₧ßdß. Tφm b²vß hlavnφ Φßst p°φsluÜnΘho monitorovacφho systΘmu, oznaΦovanß nejΦast∞ji jako mana₧er (manager). Teprve tento mana₧er pak vyhodnocuje zφskanß data, a v nßvaznosti na to podnikß dalÜφ akce (nap°. informuje svΘho u₧ivatele o stavu sφt∞). Na tomto principu je dnes zalo₧ena v∞tÜina prost°edk∙ pro sprßvu sφt∞ (nap°φklad systΘm∙ na bßzi protokolu SNMP, kter² je v zßsad∞ konvencφ o zp∙sobu komunikace mezi mana₧erem a jeho agenty).

Inteligentnφ agenti

Nesymetrick² vztah mezi jednφm ämana₧erem" a jemu pod°φzen²mi äagenty", naznaΦen² v²Üe, m∙₧e mφt jeÜt∞ obecn∞jÜφ povahu. Zatφmco v p°edchozφm p°φpad∞ byli agenti fixovßni na urΦitou platformu a byli pro ni äÜiti na mφru", je mo₧nΘ i takovΘ °eÜenφ, v rßmci kterΘho budou äagenti" univerzßlnφ, nebudou ji₧ vßzßni na konkrΘtnφ specifickou platformu, a dokonce budou moci i cestovat - tedy vykonat Φßst sv²ch ·kol∙ na jednom mφst∞, pak se p°esunout jinam a zde v pln∞nφ sv²ch ·kol∙ pokraΦovat. Takovφto agenti u₧ ale budou muset vykazovat vysokou mφru autonomie a vlastnφ inteligence, a takΘ ji₧ nebudou v tak zßvislΘm postavenφ na svΘm mana₧eru - jeho role se zm∞nφ spφÜe v roli generßtora agent∙, kterΘ je bude vypouÜt∞t do sφt∞ za ·Φelem spln∞nφ konkrΘtnφch ·kol∙, a souΦasn∞ v roli koordinßtora, kter² bude dohlφ₧et nad Φinnostφ jednotliv²ch agent∙ a zprost°edkovßvat jejich souΦinnost.

Pokud vßm prßv∞ naznaΦenß p°edstava znφ jako hudba vzdßlenΘ budoucnosti, nenφ to v∙bec pravda. Jde o technologie, kterß existujφ a jsou dostupnΘ ji₧ dnes - nabφzφ je nap°φklad firma FTP Software jako tzv. CyberAgent Technology, nebo firma General Magic jako technologii Telescript.


zp∞t do archivu Φlßnk∙ | rejst°φk | p°edchozφ Φlßnek | nßsledujφcφ Φlßnek
Tento Φlßnek m∙₧e b²t voln∞ Üφ°en, pokud se tak d∞je pro studijnφ ·Φely, na nev²d∞leΦnΘm zßklad∞ a se zachovßnφm tohoto dov∞tku. Podrobnosti hledejte zde, resp. na adrese http://archiv.czech.net/copyleft.htm