04.11.2014 Views

elektronická verzia publikácie - FIIT STU - Slovenská technická ...

elektronická verzia publikácie - FIIT STU - Slovenská technická ...

elektronická verzia publikácie - FIIT STU - Slovenská technická ...

SHOW MORE
SHOW LESS

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/

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!