Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Pitanjca u vazi marshallinga i internet browsera

[es] :: C/C++ programiranje :: Pitanjca u vazi marshallinga i internet browsera

[ Pregleda: 2879 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Dreamcatcher
Leskovac

Član broj: 41453
Poruke: 2
*.etf.bg.ac.yu.



Profil

icon Pitanjca u vazi marshallinga i internet browsera08.12.2004. u 08:06 - pre 235 meseci
1) Napravio sam strukturu podataka u C++ koja treba da se uploaduje na server (tzv Marshalling) ... najbolji program za to???
2) Na koji nacin se i u kom programu onda salje program na server ... mislim kako ce server znati kako da dekoduje "paket" i da upravlja sa njim
3) Kako omoguciti pristup strukturi isprogramiranoj u C++ nekim od internet pretrazivaca ... mislim da se napravi sajt pomocu koga ces se kretati kroz strukturu ...

Unapred zahvalan ...
Dreamcatcher
 
Odgovor na temu

filmil
Filip Miletić
Oce Technologies B.V., inženjer
hardvera
Arcen, NL

Član broj: 243
Poruke: 2114
*.et.tudelft.nl.

Jabber: filmil@jabber.org
ICQ: 36601391


+3 Profil

icon Re: Pitanjca u vazi marshallinga i internet browsera08.12.2004. u 11:47 - pre 235 meseci
Citat:
1) Napravio sam strukturu podataka u C++ koja treba da se uploaduje na server (tzv Marshalling) ... najbolji program za to???
Zavisi koliko ti složen mehanizam treba. Marshalling (iliti serijalizacija) može da se izvede jednostavno (napraviš operator za izlaz koji zapiše strukturu u string; string se onda pošalje serveru), može i komplikovano (koristiš neku od biblioteka koje umeju da od XML šema prave odgovarajuće klase, npr expat).
Citat:
2) Na koji nacin se i u kom programu onda salje program na server ... mislim kako ce server znati kako da dekoduje "paket" i da upravlja sa njim
Jedan od mogućih načina za slanje je HTTP POST metod. Ima puno biblioteka koje to mogu, a meni pada na pamet curl. Što se dekodovanja tiče, server mora da razume format koji si mu isporučio. Jedno moguće rešenje je korišćenje XML šema za definiciju strukture klasa, koja se onda prosledi i serveru i klijentu, tako da oba „znaju o čemu razgovaraju“.

Samo da napomenem da XML nije magični alat koji sve rešava, već je prosto tehnologija je najbolje podržana alatima, pa je velika verovatnoća da postoje biblioteke koje tražiš.

Konkretan primer mogu da ti na žalost navedem samo za Javu, pošto pišem program u Javi koji koristi sličan mehanizam. Za dizajn klasa koristim program Protege, kojim se relativno lako definišu strukture. Zatim koristim odgovarajući dodatak koji od dizajna napravi XSD, tj. XML šemu na osnovu koje se, upotrebom biblioteke Castor, mogu automatski napraviti i Java izvorne datoteke, i sistem za pakovanje i raspakivanje (marshal/unmarshal) koji bukvalno staje u dve-tri linije koda, u kojima se pozivaju funkcije iz Castora. Castor može i da „zaviri“ u već postojeću Java klasu i da korišćenjem refleksije sam zaključi koja polja treba snimiti pri serijalizaciji. Na žalost u C++-u ovakav mehanizam ne postoji pa je pakovanje malo teže u runtime.

Elem, kad imaš sve gore navedeno, slanje objekta se svodi na korišćenje Castora, koji upiše objekat u OutputStream, slanje odgovarajućeg teksta POST metodom serveru i na serverskoj strani izvlačenje objekta iz dobijenog  niza znakova.
Citat:
3) Kako omoguciti pristup strukturi isprogramiranoj u C++ nekim od internet pretrazivaca ... mislim da se napravi sajt pomocu koga ces se kretati kroz strukturu ...
U opštem slučaju teško. Možda bi pomoglo ako bi detaljnije opisao šta ti treba. Ako su strukture statičke, onda je verovatno dovoljno samo da zapišeš bitna polja koja su poznata jer je struktura poznata u vreme prevođenja, tj. u compile time. Ako je struktura nepoznata u compile time, najgori slučaj je da moraš da napraviš parser koji će da napravi odraz strukture.

f
 
Odgovor na temu

[es] :: C/C++ programiranje :: Pitanjca u vazi marshallinga i internet browsera

[ Pregleda: 2879 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.