Προς το περιεχόμενο

IM Design ,Requirements, Specification,Suggestion!


apoc

Προτεινόμενες αναρτήσεις

Δημοσ.

Ας αρχησω πρωτος για να περιγραψω μια γενικη πρωτη ιδεα μου!

Εγω εβλεπα μια λυση η οποια ειχε ενα πολυ μεγαλο προβλημα δεν ελυνε το προβλημα του deployment!Και γι'αυτο δεν την θεωρω και βιωσιμη.

Λοιπον πολυ απλα ενας StandAlone server σε καποιο Java enabled machine - server! Client αντιστοιχα java libraries θα επικοινωνουσαν με τον server μεσω RAW TCP/IP (socket based) και θα μιλουσαν με τον server και τους υπολοιπους client ενα δικο μας custom XML based protocol.Το προτοκολο ειναι μια σημαντικη πτυχη του ολου θεματος και πιστευα και πιστευω οτι η XML σου δινει την ευελιξια να ορισεις ενα σχετικα απλοικο τροποπ επικοινωνιας..χωρις την χρηση advanced πραγματων οπως SCHEMA κτλ κτλ.

 

Οι client Loggaroun στον server o οποιος τους ενημερωνει για την τρεχουσα κατασταση των Online client.Ο client aαφου ενημερωθει για τις τρεχουσες valid ΙP ,μπορει να μιλησει p2p με οποιοδηποτε!Κατα τακτα χρονικα διαστηματα οι client χτυπανε τον server για να ενημερωνοντε για τους νεους client και αυτους που εφυγαν! Τεχνικες οπως ping κτλ κτλ θα πρεπει να ειναι στην διαθεση του server για να μπορει να καταλαβει αν καποιος απο τους client εχει πεθανει χωρις,,,να τον εχει ενημερωσει! Αυτο σαν μια πρωτη γενικη εικονα@

Η υλοποιηση θεωρειται doable σε Java ,βασικo προτοκολo που θα παιξei κυριαρχο ρολο ειναι το TCP / IP , XML και καποια advanced multitreading ιssues σε server και client μερια!

Η δημιουργια του XML based protocol ειναι ενα ξεχωριστο και σημαντικο θεμα!

 

 

Παρολο που παραπανω προταση...φανταζει λογικη σε καποιο βαθμο εχει ενα μεγαλο προβλημα. δεν λυνει το hosting .Η σχεδιαση προυποθετει οτι θα υπαρχει παντα ενα μηνανημα server διαθεσιμο που θα μπορει να τρεξει το Server κομματι της εφαρμογης!Γιαυτο λοιπον υπηρξαν προτασεις που το δεινουν μια πιο ευελικτη λυση απο την κλασικη client -server .

 

O moderator Dionisos εχει ειδη να προτινει κατι...και υποθετω ισως και αλλοι insomniacs.Δεν θα μπω σε λεπτομεριες θα αφησω τους εμπνευστες της ιδεας να το αναλυσουν μονοι τους..απλα θα πω οτι το o server της σχεδιασης που προτεινω εγω αντικαθιστατε με μια JSP σελιδα σε καποιον free JSP host!

Δημοσ.

H idea ths antikatastashs tou IM server me enan free JSP hosting server mou hr8e enw skeftomoun pws mporoume na vroume ena java enabled server gia na valoume ton IM server mas.

 

H efarmogh einai sxetika aplh.

Prwta ap ola 8a yparxei mia database sthn JSP efarmogh mas.

 

Ekei 8a mporoun na grafontai online oi xrhstes tou IM. (registration)

 

Afou ginoun registered users, 8a xrhsimopoioun ton java client tous gia na kanoun logon. (logon procedure)

O client tote 8a "milaei" me ton JSP server kai 8a stelnei kapoia dedomena me morfh formas se kapoio JSP. To JSP 8a pairnei ta dedomena, 8a tsekarei ta username kai password me thn database kai thn lista twn online melwn kai 8a stelnei 8etikh h arnhtikh apanthsh ston pelath. An ola exoun paei kala, tote o sygkekrimenos user 8a mpainei sth lista me tous energous xrhstes.

Epeidh sto HTTP protokolo den yparxei push leitourgia, 8a prepei oi clients na lamvanoun ana takta xronika diasthmata th lista me tous online xrhstes. H lhpsh ths listas 8a exei dyo leitourgies pragmatika. H mia 8a einai h profanhs, na enhmerwnontai oi clients gia tous xrhstes pou vriskontai online kai tis IP tous, kai h defterh einai na enhmerwnoun to server oti einai akoma zwntanoi! Etsi an meta apo kapoio pollaplasio tou xronou ananewshs ths listas apo tous clients, an kapoios client den exei zhthsei na dei th lista, tote 8a 8ewreitai disconnected.

Otan 8a kanoun logoff oi xrhstes, tote 8a enhmeronoun ton server gia na tous afairesei apo thn lista.

Etsi an o xrhsths fevgei katw apo fysiologikes syn8hkes, 8a enhmerwnetai o server kai 8a ton afairei apo thn lista, enw an fevgei gia allous logous (p.x. aposyndesh apo ton ISP) tote o server 8a to antilamvanetai afto mesw tou katevasmatos ths listas apo tous energous clients.

Telos, gia na mhn mporoun na paroun kapoioi pou den einai registered users kai logged on th lista me tous online, otan 8a zhtaei th lista o client, 8a prepei na stelnei kapoion random ari8mo o opoios 8a einai kai h taftothta tou gia to sygkekrimeno session.

 

Afta gia prwth fash :) Perimenoume tis idees sas, an einai dynaton na einai viwsimes, kai parathrhseis panw stis dikes mas!

 

Filika

Dionisos

Δημοσ.

Λοιπον καταρχην συνχαρητηρια σε ολους τα καταφεραμε και βγαλαμε μια δημοκρατικη αποφαση για το πειραματικο μας project .Σε αυτο το ποστ θα συζητησουμε θεματα design ,καποιες πρωτες ιδεες και στην συνεχεια θα γινουμε πιο συγκεκριμενοι με spεcs requirements!Ενα ευχαριστω απο ολους στον Διονυσο που μας εφιαξε το Poll .

 

ΘΑ ΠΑΡΑΚΑΛΕΣΩ ΝΑ ΠΟΣΤΑΡΟΥΝ ΣΤΟ ΣΥΓΚΕΚΡΙΜΕΝΟ ΤΟΠΙΚ ΜΟΝΟ ΟΣΟΙ ΚΑΤΑΡΧΗΝ ΘΑ ΠΑΡΟΥΝ ΜΕΡΟΣ ΣΤΗΝ ΔΙΑΔΙΚΑΣΙΑ ΣΧΕΔΙΑΣΜΟΥ ΚΑΙ ΑΝΑΠΤΥΞΗΣ ΚΑΙ ΠΑΡΑΛΛΗΛΑ ΜΠΟΡΟΥΝ ΝΑ ΔΩΣΟΥΝ ΜΙΑ ΣΧΕΤΙΚΑ ΟΡΑΤΗ ΛΥΣΗ ΣΕ ΘΕΜΑΤΑ ΟΠΩΣ Η ΣΧΕΔΙΑΣΗ ΚΑΙ Η ΥΛΟΠΟΙΗΣΗ .ΟΣΟΙ ΔΕΝ ΕΠΙΘΥΜΟΥΝ Η ΔΕΝ ΜΠΟΡΟΥΝ ΝΑ ΣΥΝEΙΣΦΕΡΟΥΝ ΣΕ ΑΥΤΗ ΤΗΝ ΦΑΣΗ ,ΜΠΟΡΟΥΝ ΝΑ ΠΑΡΑΚΟΛΟΥΘΟΥΝ ΤΟ ΠΟΣΤ ΓΙΑ ΝΑ ΒΛΕΠΟΥΝ ΤΗΝ ΥΠΟΣΥΖΗΤΗΣΗ ΣΧΕΔΙΑΣΗ ΚΑΙ ΣΤΗΝ ΣΥΝΕΧΕΙΑ ΜΠΟΡΟΥΝ ΝΑ ΣΥΜΜΕΤΑΣΧΟΥΝ ΣΤΗΝ ΥΛΟΠΟΙΗΣΗ!

 

Eυχαριστώ!

Δημοσ.

Xairete, tha ithela na suneisferw kai egw pada ston bathmo pou borw stin sxediasi tou IM mias kai thewrw poli simadikes tetoies protoboulies erasitexnwn programmatistwn gia sxediasi programmatwn. Bebaiws perimenw na einai open source to programma pou tha bgei apo auti tin istoria.

 

Katarxin gia ton sxediasmo tha eprepe na anarwtithoume arxika gia diafora ousaistika xaraktiristika pou theloume na exei o IM kai meta gia leptomereies tou texnikou realization tou. Fadazomai oti tha einai mia apli morfi ICQ. Diladi san ton MSN Messenger as poume. To sigouro einai oti o user tha exei mia lista me online users, pou prepei me kapoion tropo na katalabainei pote einai online i offline kai na borei se autous me direct tropo na epikoinwnei. Bebaiws i epikoinwnia opws aneferei parapanw o Apoc kalo tha einai na ginetai se socket level me ti morfi kapoiou XML protokolou pou tha einai euelikto kai austira orismeno. Alla prwta apo ola prepei na kathorisoume ti simainei i ennoia "user" gia tn IM mas. Diladi gia paradeigma pou tha apothikevodai oi plirofories tou user? Diladi mipos prepei na uparxei ena repository me ta onomata kai password twn registered users? Pws tha ginetai register o user? tha kanei submit to login tou kai to password se mia basi dedomenwn tin prwti fora kai meta me basi auta tha bainei? I apla tha leitourgei o IM teleiws diaforetika kai pio apla kai o kathenas tha bazei apla ena onoma xwris password kathe fora pou anoigei to programma? Otan kanei enas user search gia allous prepei na kserei apo prin to login twn allwn i tha borei na psaksei kai ta idi uparxoda logins apo mia basi? Oso gia ton server, bebaiws den einai efikti i lusi enos dedicated programmatos mias kai apaitei ena mixanima pou tha trexei sunexeia kai kaneis den einai se thesi na to prosferei auto. Opote einai swsti i skepsi tou Dionysou gia na ekmetaleuthoume http protokollo mias kai borei na brethei dwrean provider gia ton xoro pou tha uparxei i selida server. Ola leitourgoun kala me auton ton tropo, alla pali prokuptei to provlima consistency stin periptwsi pou enas client kolisei. I selida bebaiws den borei na kanei monitoring sunexeia mesw ping tous clients gia na blepei pote exoun pesei opws tha ginotan se ena programma! Opote edw exoume ena keno to opoio exw tin edupwsi oti den uparxei tropos na luthei. Mono ama o client o idios kanei ping ana diastimata ta ips twn users pou exei online alla nomizw oti etsi ginetai para poli fat kai fortonetai me polli leitourgikotita.

 

Anakefalaiwnodas, tha ithela na pw oti kalo tha itan kata tin gnwmi mou prwta na skeftoume ligo ta parapanw sxetika me ti leitourgikotita theloume na dothei ston messenger kai pws tha einai logiki tou, na kathorisoume tis epithumites dunatotites tou kai meta na asxolithoume me texnikes leptomereies. Padws se kathe periptwsi, euxomai na paei to olo prohject kala. :)

Δημοσ.
Prwta ap ola 8a yparxei mia database sthn JSP efarmogh mas.

<hr /></blockquote>

1.Τι database όμως?

2.Που θα αποθηκευτεί?

3.Πως και από ποιον θα γίνεται η διαχείρισή της?

 

Epeidh sto HTTP protokolo den yparxei push leitourgia, 8a prepei oi clients na lamvanoun ana takta xronika diasthmata th lista me tous online xrhstes.<hr /></blockquote>

 

4.Πόσο τακτά?Από που θα καθορίζεται αυτό?

 

Telos, gia na mhn mporoun na paroun kapoioi pou den einai registered users kai logged on th lista me tous online, otan 8a zhtaei th lista o client, 8a prepei na stelnei kapoion random ari8mo o opoios 8a einai kai h taftothta tou gia to sygkekrimeno session.

<hr /></blockquote>

 

5.Δηλαδή κάθε φορά για να κάνει login θα πρέπει να εισάγει διαφορετικό κωδικό?

 

Δημοσ.

1.Τι database όμως?

 

Μπορει να ειναι και ενα απλο text file σαν αρχη.Η γενικα οποιαδηποτε βαση μπορει να παιξει με μια κλασικη JSP σελιδα..απο ACCESS εως MySQL ..οτιδηποτε αρκει να μπορεσεις να μιλας απο την σελιδα!

 

 

2.Που θα αποθηκευτεί?

Στον σερβερ που σερβιρει την σελιδα

 

3.Πως και από ποιον θα γίνεται η διαχείρισή της?

Το μοντελο που προσπαθουμε να περιγραψουμε παρουσιαζει τον IM σαν ενα προιοιν που μπορεις να το παρεις εσυ στο site να στησεις την σελιδα με την βαση της..και να δημιουργξσεις την δικια σου IM κοινοτητα.Μην το βλεπεις μονο αποκλειστικα για την Insomnia.

 

4.Πόσο τακτά?Από που θα καθορίζεται αυτό?

Αυτο θα καθοριστει στο πληρες specification , ακομα δεν μπρουμε να δωσουμε ακριβη τιμη.Πρεπει να δουμε και πως παιζει στο implementaiton.O client θα μπορει παντως να το καθορισει αυτο μεσω του GUI ..σε τελικες εκδοσεις

 

5.Δηλαδή κάθε φορά για να κάνει login θα πρέπει να εισάγει διαφορετικό κωδικό?

 

Οχι..μια φορα θα κανεις login και θα περνεις ενα SessionID.το οποιο θα το κρατας για τις επομενες σου συνομιλιες.αν για καποιο λογο κατεβασεισ τον client..τοτε θα πρεπει να ξανακανεις login για να παρεις session ΙD.Επισης αν χασεις το connection σου , και ο server δεν εχει λαβει σημια ζωης απο σενα..τελευταια..θα θεωρει το ID σου ακυρο και θα χρειαζεται να κανεις Login!

 

Δημοσ.

Δεν έχω να πω κάτι καινούργιο σε όλη τη συζήτηση, απλώς να σας πω ότι θα προσπαθήσω να βοηθήσω και εγώ στην υλοποίηση αν και αυτή την εποχή είμαι λίγο "πνιγμένος".

Δημοσ.

Diladi an katalaba kala oi mexri twra skepseis gia ton sxediasmo tou IM exoun ws eksis (parathwetw kai dikes mou skepseis kai protaseis opou krinw skopimo):

 

1)uparxei se enan diktuako topo mia basi dedomenwn px mysql kai selides servlet pou boroun na tin diaxeirizodai. Lew servlets kai oxi jsp opws eixate pei parapanw giat efoson den tha uparxei anagi browsing twn selidwn, den uparxei logos na einai jsp alla apla servlets pou tha lambanoun requests kai tha stelnoun responses pou einai kai pio grigora. Diladi tha uparxei ena eidos API kai tha xrisimopoioudai san ena meso gia na borei kaneis me http na kanei access tin basi, kai gia na prosferoun alla server-side services pisw ston client.

 

2) O client tha xrisimopoiei ena kalws orismeno protokolo me basi to opoio tha sundeetai me ton parapanw server. Bebaiws den paizei rolo an tha einai grammenos se Java, C++ i otidipote allo. Auto pou paizei rolo einai na einai na einai ena opoiodipote programma pou na milaei se glwssa katanoiti ws pros ton server: pou na plirei tis prodiagrafes tou gia diasundesi metaksu tous kai to kuriotero na borei na milaei sto idio protokolo me auton.

 

Gi auto ton logo, pistevw oti prwta prepei na epikedrothoume sta servlets pou anefera parapanw. Alla gia na ginoun ola pio sugekrimena, parathetw parakatw ena pithano senario etsi wste siga siga na arxizoume na kulame kai na xtizoume me tis idees mas tin arxitektoniki. Allwste mesw twn paradeigmatwn oxi mono tha ginoun ola pio katanoita, alla tha genithoun kai alles idees. Bebaia den kserw pws to parakatw tha suberiferetai se sunthikes megalou fortou, alla as kanoume mia prwti proseggisi kai blepoume:

 

Senario

=======

 

Upothetw oti arxika ston server i plirofories gia ton kathe user pou tha apothikevodai, tha einai to login, to password kai to email. Episis tha uparxei i metabliti Status pou tha einai true/false gia to an einai online i oxi kathws kai i LastseenAt me to TimeStamp tis teleutaias foras pou edeikse ston server oti einai alive, i Ip i current i last IP tou user. To ti simainei na einai alive, tha to analusw parakatw. Bebaia autes oi plirofories boroun na ebloutistoun argotera me oti theloume. Pistevw oti einai oraio na exoume uniques logins kai oxi ids opws sto icq. Akrivws opws einai kai sto forum. Opote gia paradeigma stin mysql tha uparxei enas pinakas e onoma px User me ta parakatw pedia:

 

Username

Password

E-mail

Online

LastSeenAt

Ip

 

Services

========

 

Twra: Ta servlets tha parexoun diafora services stous clients ta opoia pros to paron boroun na sunopsistoun sta parakatw (ta grafw se pseudokodika):

 

ErrorCode RegisterUser(Username, Password, E-Mail);

//tha kanei register neous xristes kai se periptwsi lathous i pou einai idi katelimeno to Username, tha

//gurnaei katallilo kwdiko lathous i epituxias

 

ErrorCode RetrievePassword(Username);

//tha stelnei email o server to password tou Username sto email tou se periptwsi pou to ksexasei o

//user.Tha gurnaei katallilo kwdiko lathous i epituxias

 

ErrorCode LoginUser(Username, Password)

//tha kanei login ton user me Username kai Password. TO Online tou User ginetai true, ananewnetai to

//timestamp tou kai to ip.

//Tha gurnaei katallilo kwdiko lathous i epituxias.

 

ErrorCode LogoutUser(Username, Password)

//tha kanei logout ton user me Username kai Password. TO Online tou User ginetai false.

//Tha gurnaei katallilo kwdiko lathous i epituxias.

 

Vector[] GetList(Username, Password, Vector[username])

//tha zita o user me Username kai Password ta online status twn Username pou einai sto Vector.

//Tha gurnaei to Vector[] me times tis IPs ama einai online i 0 an einai offline.

 

ErrorCode IamAlive(Username, Password)

//tha stelnei o User me Username kai Password endeiksi ston server oti einai alive opote tha ananewnetai

//kai to LastSeenAt timestamp tou, kai to Online true ean gia kapoio periergo logo itan false.

//O kwdikos Errorcode einai katallilos kwdikos lathous i epituxias.

 

int GetTimeOut(Username, Password)

//o user me username kai password zita tin metabliti timeout(blepe sxolio 2 parakatw) gia na kserei pote

//prepei na stelnei to IamAlive signal.

//Epistrefetai i timi TimeOut i 0 se periptwsi lathous.

 

Thelw na kanw kapoia sxolia sta parapanw:

 

1.Blepete oti padou xrisimopoiw Username kai Password. Auto se oles tis sunartiseis ektos tis RegisterUser

borei na adikatastathei me to SessionId pou lete. Alla efoso kai to session Id tha xreiazetai lookup se basi, opws kai to UserName kai Password, kai epipleon tha xreiastei epipleon fortos gia na paragetai kai na elegxetai i timi tou me timeouts ktl(enw ta username kai passwords idi uparxoun) pistevw oti den uparxei logos na uiothetithei.

 

2.Blepete oti xrisimopoieitai i IamAlive function. Diladi afinetai ston client o fortos gia na deixnei oti

einai zwntanos kai oxi ston server.Auto einai apodotiko giati diaforetika o server tha eprepe na kanei ping tous clients gia na dei ama einai alive pou opws kseretai genika argei poli to ping. Opote fadasteite na prepei na kanei merikes dekades ping. Alla me ton tropo pou lew, tha ananewnetai to LastSeenAt kathe user. Opote o server tha exei ena CONSTANT TIME_OUT kai ama den kanei kapoios gia kapoio xroniko diastima send IamAlive, tha thewreitai nekros. Opote tin prwti fora pou kapoios user zitisei to status tou me tin GetList, auti tha blepei oti Now > TIME_OUT + LastSeenAt kai automata tha kanei to Online tou false. Pistevw oti einai o pio aplos, amesos kai apodotikos tropos gia na adimetwpistei to fainomeno pou peftei enas client xwris na kleise kanonika me tin Logout.

 

3. Epeidi ta parapanw services exoun na kanoun me eksupiretisi pollwn pelatwn kai me suxno grapsimo stin basi tha xreiastei prosoxi stin ulopoiisi tous kai stous synchronization mixanismous pou prepei na xrisimopoiithoun.

 

Api

===

 

Auta itan ta services. Einai ulopoiimena sta servlets san sunartiseis. Twra omws prepei na sxediastei to API. Diladi pws tha ta kanei access enas client. Pistevw oti prepei na sxediastei ena XML_based protokolo gia tin epikoinwnia etsi wste na einai poli euelikto, dunato kai to kuriotero eukola parsed. Tha kanw paradeigma gia tin GetList. Paromoiws ginetai kai gia tis alles:

 

I GetList exei header: Vector[] GetList(Username, Password, Vector[username])

 

Opote o client tha stelnei to XML stream:

 

<GetList>

<UserName>MyUserName</UserName>

<Password>MyPassword</Password>

<List>

<UserName1>...</UserName1>

<UserName2>...</UserName2>

<UserName3>...</UserName3>

...

</List>

</GetList>

 

O parapanw tropos borei bebaiws na allaksei domi. Apla tin geniki idea dinw. Dustuxws den eimai eidikos

stin XML gia na pw gnwmi epi tou thematos. Padws einai faneto oti orizei ola ta input pedia.

 

O Server tote tha apada sto stul:

 

<GetList>

<UserName>MyUserName</UserName>

<Password>MyPassword</Password>

<List>

<UserName1 online=True/False ip=... />

<UserName2 online=True/False ip=... />

<UserName3 online=True/False ip=... />

...

</List>

</GetList>

 

Opote blepoume oti o server gurise ta apotelesmata akrivws pou thelei o client. Akrivws me idio tropo tha ginetai access kai sta alla services.

 

Opote to to sequence leitourgias tha einai:

 

Client: Send request for service enactment in XML style

Server: Receive request, trigger suitable service

Server: Send XML response to the Client

etc

 

Opote me ton parapanw tropo, den mas endiaferei o client. Borei na einai otidipote arkei na upostirizei to parapanw protokolo XML kai na kserei na xeirizetai swsta kai otan prepei tis leitourgies.

 

 

Auta itan ta pragmata pou ithela na pw. Bebaia einai sigouro oti tha periexodai kapoia lathi stis skepseis mou epeidi den to exw ereunisei arketa to thema, mallon proxeires skepseis einai alla pistevw oti apotelei mia basi gia tin pithani pragmatiki ulopoiisi.

Δημοσ.

Δεν μπορώ να καταλάβω γιατί πρέπει να έχουμε Servlets.

 

1) Δε χρειάζεται να τρέχει πάνω σε HTTP.

2) Η βάση μπορεί να διαχειρίζεται και από ένα Java Application.

3) Αυτό το Java Application (δηλαδή ο διακομιστής) θα λαμβάνει κείμενο από τον κάθε πελάτη και θα το στέλνει σε όλους τους διαθέσιμους χρήστες ανάλογα με τις εντολές.

Δημοσ.

Γηρυόνης:

Swsto auto pou les alla den skeftesai kati allo: pou tha trexei auto to Java application? Den uparxei kapoios pou na prosferei mixanima gia na trexei sunexeia ena tetoio programma. Alla mixanimata pou na trexei Web server prosferodai web servers, polla kai malista freeware!

 

Pyro:

Auto akrivws pou les tha ginetai. Tha kanoun register ston server, tha pairnoun ta IP twn users mesw tis GetList kai meta tha einai problima tou client ti tha ta kanei auta kai na epikoinwnei p2p me autous. To prwtokolo epikoinwnias metaksu twn client tha einai kati diaforetiko kai aneksartito.

Δημοσ.

Pano (Girionis) , h olh idea tou mhn standalone server , epaikse giati afth thn stimgh den mporoume na exoume mia safh apopsh gia pos tha hostarete to olo pragma!Tha mporousame vevaia na xrhsimopoihsoume thn logikh tou protou mou post..pou leei den mas endiaferei to deployment ..aftos pou tha to xrhsimopoihsei asn vrei Java enabled Server..Giafto paizei h idea tou Servlet (JSP) ..tha mporei na ginetai pio efkola deployed.Sigoura yparxoun perfomance implications alla nomizo ...oti mia koinothta me ta active user ths insomnia px..mporei na leitourgei sosta ton IM!

 

GrMikeD .Katarxhn ok well done..giati phges ena vhma parapano..xeex loipon simfonw me osa les..malista hmuon etoimos aftes tis meres na postaro kapoio XML specification gia ta inter client commands...pou emoiaze me to diko sou! xeexex

 

Loipon..ego exo na prostheso sthn olh eikona..oti...apo design view o client einai arketa dynatos..dhladh exei thn dynatothta na anoigei kai na kleinei connections me allous client..xoris thn paremvolh tou server.Ara milame oti to underlying functionality einai sxetika shmantiko!Enas client (me stoixeia server) .

 

Ousiastika exoume thn yparksh 2 protocol.Ena pou tha einai 3-4 entoles HTPP pou tha kaloun ta servlets kai to ypoloipo inter-client kommati pou tha einai ena custom diko mas XML based protocol over sockets!

 

Simfono oti an kataliksoume telika se afto to modelo..h epomenh logikh kinhsh tha einai na kanoume isos ena proto draft spec kai ton HTTP entolon alla kai tou antistoixou XML protocolou...Oso peri JSP kai servlets...na po anaferthike pio poly oso anafora thn parexomenh efkolia pou mporoun na prosferoun sto development..pantos you 've got point..prosopika den exo megalh empeiria kai sta 2 opote metavivazo thn gnomi se osous ...exoun kalyterh apopsh!

 

 

 

 

Δημοσ.

Poli kali idea o IM...

 

Merika sxolia panw sto project

 

1on k simantikoteron! To prwtokollo! Merikes idees...

 

Tha mporousame na doume kalista ton Server san ena Web Service k na paizei me SOAP protocolo epikoinwnias to opoio vasizetai panw sto XML...

 

Tha mporouse episis na einai mia silogi apo selides PHP i ASP opou o IM tha ekane GET to katallilo URL me tis katalliles parametroys kai i selida tha apantouse me ena XML stream.

 

Kai me toys 2 parapanw tropous mporoume na paiksoume stin porta 80 k na glitwsoume etsi ponokefalous me firewalls

 

<blockquote><font class="small">Quote GrMikeD:</font><hr>

 

I GetList exei header: Vector[] GetList(Username, Password, Vector[username])

 

Opote o client tha stelnei to XML stream:

 

<GetList>

<UserName>MyUserName</UserName>

<Password>MyPassword</Password>

<List>

<UserName1>...</UserName1>

<UserName2>...</UserName2>

<UserName3>...</UserName3>

...

</List>

</GetList>

<hr /></blockquote>

 

2. Otan kanei logon o xristis de tha stelnei ti lista me tous filous toy poy thelei na dei an einai online i oxi! Giati ti mia mera tha kathete se ena pc tin alli sto allo, opote i lista me toys filous tou kathenos prepei na vriskontai sto Server...

 

proxeiro Diagrammma DB

 

<pre><font class="small">code:</font><hr>

----------------

|Users |

---------------|

|ID* |

|Email |

|Pass |

|Name |

|Last_seen |

| . |

| . |

| . |

|Loipa xaraktiristika!

|----------------

 

k

o pinakas gia ti sxesi polla polla

 

pios exei pion filo i blocked...

 

--------------------

|Users_Users |

------------------- |

|UserID* |

|UserID2* |

|Status [blocked|friend] |

| |

-----------------------------

 

*=Primary key...

</pre><hr>

 

 

Ayta ta liga pros to paron!

Δημοσ.

Λοιπον επειδη ασχολουμε με το SOAP εξαιτιας της πτυχιακης , νομιζω οτι μπορω να εκφερω αποψη.Νομιζω οτι το SOAP δεν ειναι λυση για τις συγκεκριμενες για τους εξης λογους!

 

1.Χρηση του αναβεβαζει επικινδυνα την πολυπλοκοτητα σε ενα τετοιου ειδους project , με τον τροπο που προσπαθουμε να το προσεγγισουμε καθως και τους ανθρωπους που θα το υλοποιησουν!Ακομα τα πραγματα ειναι λιγο παραξενα με τις διαφορες Libraries (JAXM , APACHE SOAP , APACHE AXIS) .

 

2.Το SOAP και related τεχνολογια , δειχνουν πραγματικα την αξια τους σε κατανεμημενς εφαρμογες οι οποιες ζητουν ενα ευελικτο εργαλειο για κανουν Remote Procedure Call και οχι σε μια χρηση που αναζητουμε εμεις..(οχι βεβαια οτι δεν μπορουμε να το κανουμε) .Θεωρω οτι η χρηση ενως απλου XML ορισμενου προτοκολου ειναι πιο σωστη επιλογη!

 

 

Επισης παρατηρω οτι μερικοι εχουν objections περι του Servlet . και δεν ξερω αν πραγματικα πρεπει να σκεφτουμε ξανα την λυση του Standalone απο development αποψης ειναι πιο straight forward αλλα παραμενει το deployment προβλημα!

Δημοσ.

Prwta 8a h8ela na kseka8arisw kati oson afora ta JSP kai ta servlets. Den yparxei kamia diafora meta3y tous, ka8ws ta JSP otan zhth8oun gia prwth fora apo enan client, ginontai prwta servlet aftomata kai meta compile, opws akrivws kai ta servlets. Etsi mono thn prwth fora 8a ka8ysterhsei o server ligo gia na dwsei ena JSP, ka8ws mono mia fora 8a xreiastei to JSP na ginei servlet kai meta compile. Apo th defterh fora kai meta 8a serviretai to compiled servlet apo to server ;)

Etsi h monh diafora yparxei thn prwth fora.

 

Ta JSP einai kalh idea na xrhsimopoih8oun giati to XML to opoio 8a stelnei o server 8a mporei na graftei poly pio efkola xwris polla out.println("...."); pou 8a xrhsimopoih8oun anapofeykta sta servlets.

 

H idea mou me ton HTTP server ws server ths efarmoghs yphr3e logw ths dyskolias tou deployment me enan dedicated server.

Opws to eixa skeftei, sto HTTP request tou o client 8a stelnei ena querystring me methodo post sto server, to opoio querystring 8a einai XML kai fysika o server 8a apantaei pali se XML.

Mporoume loipon na ftia3oume thn efarmogh na doulevei me standalone server kai kapoios na ftia3ei dyo me8odous pou 8a mporoun na metatrepsoun thn leitourgia tou IM me standalone server se HTTP server ;)

Pws 8a ginei afto? Poly apla! H mia me8odos 8a pairnei to XML pou stelnei o client sto server kai 8a to "tyligei" se ena HTTP request. H allh me8odos 8a afairei ton HTTP header ths apanthshs tou server kai 8a epistrefei mono thn XML pou xreiazetai h me8odos.

Vevaia ta parapanw xreiazontai parallhlh dhmiourgia enos standalone server kai enos JSP application. Pistevw omws oti einai poly kalh idea, afou o client 8a mporei na doulevei kai sta dyo perivallonta!

 

Register 8a mporouse arxika isws na kanei o xrhsths apo mia JSP selida. Meta mporoume na to valoume kai ston client. Epishs kata thn diarkeia ths eggrafhs tou xrhsth 8a prepei na elegxetai kai to email mhpws yparxei hdh, wste na apotrepei me afto ton tropo thn eggrafh tou idiou xrhsth dyo fores... oxi oti de mporei na ftia3ei kapoios allo free account alla ok :P

 

Sthn me8odo LoginUser kalo 8a einai na gyrnaei to SessionID pou 8a dhmiourgei o server gia ton ka8e xrhsth. Me afton ton tropo de 8a stelnei ka8e fora o xrhsths ta username kai password, ka8ws afto einai epikindyno na ginei capture apo kapoion pou kanei packet sniffing. Anti8eta an pernaei to SessionID de 8a mporei na kanei capture kapoios, opws epishs 8a kanei thn update thn DB o server psaxnontas to SessionID kai oxi ta username kai password pou einai pio voliko sthn SQL ;)

 

H me8odos IAmAlive de nomizw oti xreiazetai, afou mporei poly efkola o server na symperainei oti o client einai zwntanos an tou zhthsei th lista me tous online xrhstes. Etsi de 8a exei na dief8ethsei polles klhseis o server.

 

Telos h idea na kratiountai ta userIDs twn filwn tou ka8e xrhsth sthn DB einai kalh idea, an kai h pros8hkh ep apeiron columns sthn DB gia ka8e neo filo ston pinaka einai poly dyskolh. Anti8eta proteinw 2 pedia, to ena me ta userIDs twn filwn xwrismena me komma kai ena deftero pedio me times 0 kai 1 xwrismenes me komma kai aftes pou 8a shmainoun blocked kai friend antistoixa. Etsi px 8a exoume to ena pedio pou 8a einai: "apoc, GrMikeD, Dionisos" kai to deftero pedio pou 8a einai "1,1,0" :P Afta mporoun poly efkola na xwristoun me enan StringTokenizer h me regular expressions.

 

Afta gia twra...

Dionisos

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...