Jak na rozdělovací server

Vývojová prostředí, aplikace, skripty, http://www... síťové programy, internet, sdílení...
Odpovědět
Ladic
Začátečník
Začátečník
Registrován: 14. zář 2009

Jak na rozdělovací server

Příspěvek od Ladic »

Zdravim,

nevíte někdo na jakém principu funguje rozdělovací server? Mám zadání úlohy: Rozdělování zátěže UDP. Realizujte programy klienta, serveru a rozdělovacího serveru pro přímý tisk na více tiskárnách. Servery představují tiskárny, přijaté znaky ihned vypisují na obrazovku (žádná tisková fronta, jde o jednoduché interaktivní servery). Rozdělovací server dokáže obsluhovat až tři různé servery (tiskárny), jejichž adresy si při spuštění načte z textového souboru. Jak tiskárny, tak rozdělovací server naslouchají na jediném portu s číslem 8008. Klient nesmí poznat zda komunikuje přímo s tiskárnou nebo s rozdělovacím serverem. Program klienta přebírá jako argumenty adresu rozdělovacího serveru (popř. přímo tiskárny) a název tisknutého textového souboru. Rozdělovací server nasměruje každý jednotlivý tisk z klienta vždy na první volnou tiskárnu. Pokud je tedy dostatek volných tiskáren, tak tisk z více klientů musí probíhat souběžně.

Program muze byt realizovan bud vlaknove nebo procesama, klient muze byt v jave, ale server musi byt v C. Potrebovat bych nak osvetlit co vse musi obsahovat rozdelovaci server, a jakym zpusobem by mel pristupovat ke koncovym serverum. Diky za kazkou radu.
OndraSter
Středně pokročilý
Středně pokročilý
Uživatelský avatar
Registrován: 22. úno 2006
Bydliště: Praha / ČVUT FIT
Kontaktovat uživatele:

Re: Jak na rozdělovací server

Příspěvek od OndraSter »

Nevím co přesně potřebuješ vymyslet, ale čistě z teoretického pohledu:

Ten Rozdělovací Server (RS) bude zvenku vypadat úplně stejně jako normální tiskárna (stejné API, stejná komunikace jako s opravdovou tiskárnou, stejný protokol). Když příjde požadavek, uloží se do fronty. Fronta se bude každých X (mili)sekund dívat*, jestli je nějaká tiskárna volná vhodným dotazem na onen server (tiskárnu). Jakmile se nějaká uvolní, z RS se vyšle požadavek s daným dokumentem na onu tiskárnu.

* Dá se to optimalizovat, že při 0 úlohách se ten polling vypne a při příchodu prvního dokumentu se nejdříve podívá co je volné a pokud nic, tak teprve pak jí přídá do fronty a zapne polling. Popř polling vůbec nepoužívat, pokud tiskárny umí hlásit "mám volno!"
PC: i5-2500k 4.5GHz/24GB RAM/GTX560 Ti 1GB/>5TB - W7 Prof x64; Microsoft SideWinder X3 notebook: HP 6715b (4GB RAM) - W7 Prof x64;
mobil: Nokia Lumia 800 Cyan, 16GB; tablet: Toshiba Portege M200 (2GB, 64GB SSD, GeForce FX5200) - W7 Prof x32


Nahraďte Arduino výkonnější variantou!
Vývojová prostředí a nástroje | Webové prohlížeče | Seznam freehostingů
Ladic
Začátečník
Začátečník
Registrován: 14. zář 2009

Re: Jak na rozdělovací server

Příspěvek od Ladic »

Presně tohle jsem chtěl vědět, jinak protokol musí být UDP. Jen mi neni jasna jedna vec,( jelikož v C moc nedělam, hlavně v jave a server musí být v C:( )jakym zpusobem mezi sebou budou komunikovat RS a 3 tiskove servery? Podobne jako je vztah klient - server? Čili, nějak si nedokazu predstavit toto spojení. klient -> RS -> 1.server
-> 2.server
-> 3.server
Kdyby to byl jeden server a vice klientu, tak ano, ale pokud je to jeden klient a vice serveru a mezi nimi rozdelovaci, tak moc nevim, s tim jsem se setkal poprve. Diky za radu.
OndraSter
Středně pokročilý
Středně pokročilý
Uživatelský avatar
Registrován: 22. úno 2006
Bydliště: Praha / ČVUT FIT
Kontaktovat uživatele:

Re: Jak na rozdělovací server

Příspěvek od OndraSter »

Klient bude vždycky komunikovat s tím RS. RS bude komunikovat s všemi TS.

O realizaci v C/Javě bohužel nepomůžu, já jsem směrem .NET, Javu rád nemám (fujtožerepaměti), C moc neznám.
PC: i5-2500k 4.5GHz/24GB RAM/GTX560 Ti 1GB/>5TB - W7 Prof x64; Microsoft SideWinder X3 notebook: HP 6715b (4GB RAM) - W7 Prof x64;
mobil: Nokia Lumia 800 Cyan, 16GB; tablet: Toshiba Portege M200 (2GB, 64GB SSD, GeForce FX5200) - W7 Prof x32


Nahraďte Arduino výkonnější variantou!
Vývojová prostředí a nástroje | Webové prohlížeče | Seznam freehostingů
Odpovědět

Zpět na „Programování a web“