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.
Jak na rozdělovací server
- Ladic
- Začátečník

-
- Registrován: 14. zář 2009
- OndraSter
- Středně pokročilý

- Registrován: 22. úno 2006
- Bydliště: Praha / ČVUT FIT
- Kontaktovat uživatele:
Re: Jak na rozdělovací server
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!"
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ů
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

-
- Registrován: 14. zář 2009
Re: Jak na rozdělovací server
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.
-> 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ý

- Registrován: 22. úno 2006
- Bydliště: Praha / ČVUT FIT
- Kontaktovat uživatele:
Re: Jak na rozdělovací server
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.
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ů
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ů