elektronická verzia publikácie - FIIT STU - Slovenská technická ...
elektronická verzia publikácie - FIIT STU - Slovenská technická ...
elektronická verzia publikácie - FIIT STU - Slovenská technická ...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Architektúry softvéru 89<br />
V prípade súbežného vykonávania hovoríme o tzv. Master-Slave architektúre, v ktorej<br />
jeden hlavný proces koordinuje prácu ostatných podriadených procesov, ktoré pracujú<br />
nezávisle od seba, priom na vykonanie úloh môžu potrebova rozliné množstvo asu.<br />
Po ukonení výpotu podriadený proces odošle hlavnému procesu výsledky a aká na<br />
alšiu úlohu. Tento prístup je vhodný pri výpotovo nároných úlohách, ktoré sa dajú<br />
rozdeli na viacero úloh tak, aby nemuseli podriadené procesy medzi sebou komunikova.<br />
Používa sa napr. pri replikácii databáz a rozsiahlych distribuovaných výpotoch 1 . Pri použití<br />
tejto architektúry je nutné realizova nielen rozdelenie úlohy na menšie a spojenie výsledkov,<br />
ale aj mechanizmy na vyhadávanie a komunikáciu podriadených procesov<br />
s hlavným koordinujúcim procesom.<br />
3.4.2 Systémy Klient-server<br />
V architektúre klient-server sú dva typy entít: klient – entita, ktorá požaduje vykonanie<br />
služby, server – entita, ktorá vykoná službu na požiadanie. Výsledok vykonania služby sa<br />
potom odošle klientovi. Vo svojej podstate je architektúra Klient-server podobná predchádzajúcemu<br />
typu Hlavný program a podprogramy. Rozdiel spoíva v tom, že v prípade<br />
Klient-server sa predpokladá, že klient a server pracujú na oddelených poítaoch. Oproti<br />
distribuovanej architektúre Master-Slave, v ktorej hlavný proces požaduje vykonanie úloh<br />
od podriadených, je rozdiel v tom, že v prípade systému klient-server sú to naopak „podriadené<br />
procesy“ (klienti), ktoré požadujú vykonanie úloh od hlavného procesu (servera).<br />
Väšina internetových služieb (elektronická pošta, prehliadanie webových stránok) sú<br />
realizované ako systémy klient-server.<br />
Poda rozdelenia kompetencií a funkcionality medzi klientom a serverom, rozlišujeme<br />
dva typy klienta: tuný a tenký. Tenkí klienti obsahujú len prezentanú logiku,<br />
v prípade webových systémov je to zvyajne len štandardný webový prehliada. Tenký<br />
klient posiela požiadavky na server a alej len vizualizuje jeho odpovede (v prípade webového<br />
systému klient-server sú to zvyajne priamo webové stránky).<br />
Naopak, tuní klienti obsahujú celú alebo aspo nejakú as aplikanej logiky. Presunutie<br />
asti aplikanej logiky na klienta môže by výhodné na zníženie množstva sieovej<br />
komunikácie a zlepšenie interaktivity klientskej aplikácie. Nevýhoda vzniká, ak je tuný<br />
klient implementovaný ako nezávislá používateská aplikácia, potom v prípade zmeny<br />
požiadaviek a úpravy funkcionality tuného klienta je nutné novú verziu distribuova<br />
zákazníkom. Pri použití tenkých klientov staí zmeny vykona na strane softvéru servera.<br />
Softvér servera spracúva požiadavky klientov súbežne nezávisle od seba (príklad 3-2).<br />
Bind(port);<br />
Listen(port);<br />
// Rezervovanie portu v OS<br />
// Zani poúvanie na prichádzajúce požiadavky<br />
while(spojenie = Accept()) {<br />
// Nová požiadavka<br />
stop = AsyncProcess(spojenie); // Asynchrónne spracovanie<br />
if (stop == true)<br />
// Ukoni?<br />
break;<br />
}<br />
Close(port); // Ukoni príjmanie požiadaviek<br />
Príklad 3-2. Pseudokód spracovania požiadaviek na serveri.<br />
1<br />
SETI@home, http://setiathome.berkeley.edu/