Evo problema / pitanja:
Direktno me zanima isplativost neke metode prijenosa podataka medju aplikacijama preko mreze. Pod pojmom isplativost, mislim na brzinu prijenosa, response time, procesorsko opterecenje posluzitelja (opterecenje u smislu potrebe za kompresiranjem podataka) etc.. To za ciljeve postavlja visoku konkurentnost rada, ali u obzir naravno dolaze metode s kojima se direktno i brzo dolazi do rezultata (primjer programiranje web servisa).
Sto se mene tice, radio sam sa .NET Socket klasama i direktnim mreznim programiranjem, sa visenitnim asinhronim serverom, i klijentima koji su se mogli konektovati na taj server, slati razlicite upite itd.. Za razmjenu podataka su isle diretne "data" klase spremljene u binarni oblik (kao neka klasa naziva Osoba, ili sta ja znam, Automobil npr), a definicije klase su bile importovane i u Serverskom i u Klijentskom projektu (znaci, definicije klasa u share-ovanom dll-u).
Dok je ovaj pristup osiguravao donekle cisto programiranje i drzanje nekih skromnih design pattern-a, sad me stvarno zanima sta bi bilo najoptimalnije i najelegantnije rjesenje za potrebe neke imaginarne aplikacije od max 200-300 usera, ili neke vece sa otprilike 10k usera istovremeno (opet imaginarno).
Eto da napomenem, nedavno sam radio i sa ASP.NET web servisima, koji su poglavito sluzili za primanje string SQL upita, i vracanje DataTabela.
Sad na tehnicki dio, kad sam spomenuo ovih 10k usera, razumijem da je tu prvenstveno potrebna velika optimizacija baze podataka, i to je ok.
Evo nekih metoda:
- serijalizacija klase u binarnu reprezentaciju
- serijalizacija klase u XML zapis, slanje preko mreze, vracanje nazad u klasu ili citanje iz XML zapisa
Da li je uopste ok, sa dizajnerske strane, praviti ciste data klase i u njih pakovati podatke? Postoji li optimalni pristup sa prednostima i brzine preko mreze, i cistim OO programiranjem koristenjem design pattern-a?
Bio bih jako zahvalan na misljenjima i komentarima svih vrsta ...
My programs don’t have bugs, they just develop random features.