Protocol DSL - Google protocol buffers
Mogu reći da sam se poprilično puno napisao klijent-server aplikacija (i tutorijale gore u sticky-u) i iz prakse mogu reći da TCP skup protokola uglavnom zadovoljava sve potrebe dvosmjerne komunikacije. Teško mi je zamisliti da mi pokraj TCP-a, ICMP-a, FTP-a, i eventualno UDP-a nešto drugo treba jer njima je više-manje definirano sve što je bitno. Naravno, tu je SMTP, TFTP i dr.. no mislim da su manje bitni.
A najgora boljka od svega jest sigurnost u tom novom protokolu. Npr. u TCP skupu protokola za cjelovitost paketa i njihov ispravan redoslijed se brine hrpa pozadinskih servisa, dok za novi protokol ne znam čime bi si to osigurao. Sve u svemu lijep je to feature ali mi je nekako ipak nesigurno uzdati se u to jer već postojeći protokoli rade dobro i pouzdano (izuzetak UDP) .
Mogu reći da sam se poprilično puno napisao klijent-server aplikacija (i tutorijale gore u sticky-u) i iz prakse mogu reći da TCP skup protokola uglavnom zadovoljava sve potrebe dvosmjerne komunikacije. Teško mi je zamisliti da mi pokraj TCP-a, ICMP-a, FTP-a, i eventualno UDP-a nešto drugo treba jer njima je više-manje definirano sve što je bitno. Naravno, tu je SMTP, TFTP i dr.. no mislim da su manje bitni.
A najgora boljka od svega jest sigurnost u tom novom protokolu. Npr. u TCP skupu protokola za cjelovitost paketa i njihov ispravan redoslijed se brine hrpa pozadinskih servisa, dok za novi protokol ne znam čime bi si to osigurao. Sve u svemu lijep je to feature ali mi je nekako ipak nesigurno uzdati se u to jer već postojeći protokoli rade dobro i pouzdano (izuzetak UDP) .
???!!!!???? Framework nije namijenjen konstruiranju novih transport layer protokola, nego aplikacijskih protokola. Apsolutno sam siguran u to da klijent/server komunikacija kod bilo koje aplikacije trazi svoj protokol. Apsolutno sam siguran da bilo koji MMO ima vlastiti protokol za komunikaciju klijenata izmedju servera, i minimalno jos jedan za komunikaciju izmedju gamservera u clusteru. I najcesce jos jedan za komunikaciju customer service toolsa sa gameserverom.
Npr. komunicirati izmedju raznih application servera putem HTML-a??? Ili FTP command bytestreamova??? Mislim da ne :-).
Mislim da cu prije napisati svoj protokol i strukturirati ga putem XML-a i slati na neki random >10000 port. A ovaj framework mi omogucava da to napravim puno jednostavnije, i u tiru preswitcham protokol na binarni umjesto ASCII XML-a, za release distro.
Sigurnost se rijesi na jos jednostavniji nacin: provuces svoj TCP protokol kroz SSH tunel i tadaaah...
Aha... ja skužio da je riječ baš o definiranju novih mrežnih protokola, a ne o frameworku .
Aha... ja skužio da je riječ baš o definiranju novih mrežnih protokola, a ne o frameworku .
Ah, ne, nema brige ;-) ;-)
Google nije Microsoft, oni ne trebaju svoje standarde da zakljucaju ekipu na svoju platformu :-D Cak im je i OS za mobitele polu-opensource.
Za sve zainteresirane kako to radi u praksi preporučam da povučete git unstable od mumblea. Sadašnja stabilna verzija(1.1.8) koristi custom made networking(dal sam ovo uopće dobro rekao O_o) i upravo zbog toga imaju jako puno problema s implementacijom novih mogućnosti. Protobuf daje ogromnu fleksibilnost i nije potrebno mjenjati cijeli protokol(što uzrokuje nekompatibilnost s prijašnjim verzijama) samo da bi se uvela nova mogućnost vezana uz taj networking thing. Sljedeća verzija(1.2.0, izlazi čim CELT izađe kao stable) koristi protobuf za taj networking thing!
Hellou,
Google Protocol Buffers bi mogli biti vrlo interesantni i korisni za nekoga tko se bavi bilo kakvom formom custom networkinga, ie. potrebom da izmislja vlastiti protokol.
Ovaj DSL (Domain Specific Language) omogucava definiciju protokola u vrlo konciznoj i direktnoj sintaksi te onda generaciju protokol-koda u skoro bilo kojem od vodecih GP jezika (C++, Java, Python, nisam siguran za C#)
Osim toga sto cini kod citljivijim (direktna sintaksa) i manje osjetljivim na greske (code generator), za sve nas koji pisu klijente i servere u razlicitim jezicima, ili planiraju portove, fenomenalna stvar. Nisam jos sve ulovio jer eksperimentiram ali zasada djeluje obecavajuce, kao vise manje svaki googleov framework...