Page 1 of 1
Υλικό για κατανεμημένα συστήματα και Java multithreading
Posted: Sun Oct 14, 2007 11:58 am
by tsilochr
venus programming gurus παρουσιαστείτε. Θέλω να ρωτήσω αν κάποιος έχει ασχοληθεί με κατανεμημένα συστήματα και πολυνηματικό κώδικα σε Java - πέρα από τις ανάγκες του μαθήματος.
Αν έχετε να προτείνετε κάποιο βιβλίο σε κατανεμημένα (πέρα από του Tanenbaum και αυτού που δίνει το τμήμα στο αντίστοιχο μάθημα) και υλικό σε θέματα Java mutlithreading
Btw, το βιβλίο του tanenbaum παίρνει 3/5 στο user rating του amazon

Posted: Sun Oct 14, 2007 12:36 pm
by Swtos
Κοίτα για θεωρητική θεμελίωση των κατανεμημένων συστήματων νομίζω καλό ειναι το "Mullender S, Didtributed Systems, 2nd edition, 1993" το οποίο το εχει και η βιβλιοθήκη μας αν θες να του ρίξεις μια ματια. Η βιβλιοθήκη έχει 4-5 βιβλία τουλαχιστον πανω σε ΚΣ, τα περισσότερα ήταν για further reading του μαθηματος. Κοίτα λιγο τα references από τη σελίδα του μαθηματος στο e-class ή από το βιβλίο του JC...
Το βιβλίο του Τανενμπαουμ δεν μπαίνει σε πολύ βαθος είναι η αλήθεια. Στον Παπασωτηρίου εχω δει εδω και μήνες οτι κυκλοφορεί και σε 2η εκδοση...δεν ξερω αν διαφερει παντως σε σχεση με το πρώτο...
Τέλος, για προγραμματισμό δεν έχω να σου προτείνω συγκεκριμένο βιβλίο αλλά στο web θα βρεις πολυ πράμα φαντάζομαι αρα δε νομίζω να αξίζει να επενδύσεις σε βιβλίο...good luck

Posted: Sun Oct 14, 2007 1:41 pm
by The Punisher
παρεμπιπτόντως και ίσως offtopic, ασχολούμενος με το Microsoft Robotics Studio, είδα ένα πάρα πολύ καλό Concurrency and Coordination Runtime, το οποίο δουλεύει με services και σε φέρνει ως προγραμματιστή σε αρκετά ψηλό επίπεδο
Posted: Sun Oct 14, 2007 2:17 pm
by SeniorCarbone
Εγώ φέτος άρχισα να ασχολούμαι με distributed computing και είναι
χάσιμο...μπορείς να κάνεις παπάδες κ πιστεύω έχει λαμπρό μέλλον
ο χώρος. Πάνω σε java που το έψαξα κυρίως, από το βιβλίο του
Ξυλωμένου (προφανώς) κ (πολύ) περισσότερο από web βρήκα
εξαιρετικά χρήσιμα πράγματα.
Το βιβλίο του Tanenbaum που κοίταξα δεν με συγκίνησε.
Είναι για πολύ γενική κ αφηρημένη εικόνα στο χώρο.
Επίσης, ένα σχετικό θέμα με επικοινωνία threads στο JHUG conference
πρόσφατα μπορώ να πω πως μου αύξησε αρκετά το ενδιαφέρων.
Το αντίστοιχο προπτυχιακό μάθημα άλλωστε αποφάσισα σήμερα
να το ξαναπάρω του χρόνου γιατί θέλω να ασχοληθώ περισσότερο απΆότι φέτος.
Ένα βιβλίο που θέλω να κοιτάξω τώρα είναι του Jim Farley (O'reilly) το οποίο
επικεντρώνεται σε java. Αν το έχει δει κανείς περιμένω σχόλια.
Κ ότι άλλο σχετικό με ενδιαφέρει πολύ κ εμένα..
Y.Γ. όχι μόνο πάνω σε java εννοείται
Posted: Sun Oct 14, 2007 3:30 pm
by tsilochr
Χμμμ, αυτή τη στιγμή ψάχνω υλικό που να παρουσιάζει αρχιτεκτονικές και λύσεις για κατανεμημένα περιβάλλοντα μάλλον πιο κοντά προς το βιβλίο του Tanenbaum. Η υλόποιηση της επικοινωνίας θα γίνεται με web services οπότε ένα βιβλίο για basic networking, sockets, RMI και Corba δεν μου χρειάζεται. ευχαριστώ πάντως.
Για java ενδιαφέρομαι μήπως κάποιος έχει κάτι συγκεκριμένο για χειρισμό threads (well known practices και τέτοια)
Posted: Sun Oct 14, 2007 8:27 pm
by mikem4600
tsilochr wrote:Χμμμ, αυτή τη στιγμή ψάχνω υλικό που να παρουσιάζει αρχιτεκτονικές και λύσεις για κατανεμημένα περιβάλλοντα μάλλον πιο κοντά προς το βιβλίο του Tanenbaum. Η υλόποιηση της επικοινωνίας θα γίνεται με web services οπότε ένα βιβλίο για basic networking, sockets, RMI και Corba δεν μου χρειάζεται. ευχαριστώ πάντως.
Για java ενδιαφέρομαι μήπως κάποιος έχει κάτι συγκεκριμένο για χειρισμό threads (well known practices και τέτοια)
Δεν ξέρω αν έχει σχέση με αυτό που θες αν κάνεις, αλλά για distributed περιβάλλον παίζει αρκετά η Java EE (σε n-tier περιβάλλον) και συγκεκριμένα
EJBs (Enterprise JavaBeans) για τα business components ή κάποιο αντίστοιχο framework (όπως
Spring, που έχει και στοιχεία
AOP). Π.χ. τα EJBs σε distributed περιβάλλον υποστηρίζουν transactions, multithreading (όπου παίζει), persistence (με POJOs πια), naming services (με JNDI),
message-driven components (με τα message-driven beans) κτλ. κτλ. Εννοείται ότι αναλαμβάνουν όλη την επικοινωνία και δεν χρειάζεται να ανοίξεις ούτε ένα socket.
Βασικά είχα σκοπό μου να γράψω κάτι σχετικό με Java EE στο wiki το καλοκαίρι, αλλά ακόμα δεν μου έχει κάτσει...
Posted: Sun Oct 14, 2007 9:34 pm
by HdkiLLeR
tsilochr wrote:
Για java ενδιαφέρομαι μήπως κάποιος έχει κάτι συγκεκριμένο για χειρισμό threads (well known practices και τέτοια)
Ξεκίνα απο εδώ για τα πολύ basic:
locking, concurrency control κλπ:
http://www.ibm.com/developerworks/java/ ... hread.html
Μετά δες channels, γιατί με απλά input/output streams δεν θα δεις φως, η Java μόλις μετά την 1.4 αποφάσισε να ασχοληθεί σοβαρά με scalability σε distributed περιβάλλοντα. Το κλασικό practice 1 new thread για κάθε connection/request κλπ δεν παίζει εκεί και σίγουρα πρέπει να παίξεις με αυτό που λέμε
nonblocking I/O:
http://www.ibm.com/developerworks/java/ ... /j-javaio/
Posted: Sun Oct 14, 2007 10:50 pm
by fotisaueb
tsilochr wrote:Χμμμ, αυτή τη στιγμή ψάχνω υλικό που να παρουσιάζει αρχιτεκτονικές και λύσεις για κατανεμημένα περιβάλλοντα μάλλον πιο κοντά προς το βιβλίο του Tanenbaum. Η υλόποιηση της επικοινωνίας θα γίνεται με web services οπότε ένα βιβλίο για basic networking, sockets, RMI και Corba δεν μου χρειάζεται. ευχαριστώ πάντως.
Για java ενδιαφέρομαι μήπως κάποιος έχει κάτι συγκεκριμένο για χειρισμό threads (well known practices και τέτοια)
Μήπως να το γύρναγες σε .NET? Έχει πολύ αξιόλογο web service framework και σίγουρα καλύτερο από Corba
Posted: Sun Oct 14, 2007 11:24 pm
by AmmarkoV
Java ρε παιδιά..?
Posted: Mon Oct 15, 2007 1:56 am
by tsilochr
το έργο στο οποίο θα συμμετάσχω είναι όλο σε java. τα components μιλάνε αυστηρά με web services, καθόλου sockets και IO οπότε θέλω γενική θεωρία σε κατανεμημένα για την αρχιτεκτονική της λύσης που θα επιλέξω (design patterns, όχι απαραίτητα κάποια υλοποίηση). Java multithreadiing θα χρειαστώ γιατί ένα συγκεκριμένο component μάλλον πρέπει να είναι concurrent
thnx hdkiller για τα link από ibm
BUSINESS DEV
Posted: Mon Oct 15, 2007 9:56 am
by rose
Concurrent και transaction issues θα στα λύνει ο application server -π.χ ο JBOSS.(Αν γράφεις σε java)-Σε Real World applications εσύ ασχολείσαι μόνο με Business Development.
echo 2 + ejb 3 + hibernate!
Re: BUSINESS DEV
Posted: Mon Oct 15, 2007 3:53 pm
by HdkiLLeR
rose wrote:Concurrent και transaction issues θα στα λύνει ο application server -π.χ ο JBOSS.(Αν γράφεις σε java)-Σε Real World applications εσύ ασχολείσαι μόνο με Business Development.
echo 2 + ejb 3 + hibernate!
Ναι αλλά εδώ μιλάμε για research prototype εάν δεν κάνω λάθος οπότε αυτό που ενδιαφέρει είναι να κάνεις τον δικό σου "
transaction manager" σε γενικές γραμμές για να μπορέσεις να μελετήσεις/αποτιμήσεις/γνωρίζεις τι γίνεται.
Re: BUSINESS DEV
Posted: Mon Oct 15, 2007 3:58 pm
by mikem4600
HdkiLLeR wrote:Ναι αλλά εδώ μιλάμε για research prototype εάν δεν κάνω λάθος οπότε αυτό που ενδιαφέρει είναι να κάνεις τον δικό σου "transaction manager" σε γενικές γραμμές για να μπορέσεις να μελετήσεις/αποτιμήσεις/γνωρίζεις τι γίνεται.
Και σε μας πάντως όλα τα ευρωπαϊκά-ερευνητικά είναι σε Java EE (EJBs, Jboss, hibernate, struts, web services κτλ.).
transactions
Posted: Mon Oct 15, 2007 4:28 pm
by rose
Ερευνα κανείς σε οτιδήποτε δεν εχει απαντηθεί.Μήπως μιλάμε για νεο transaction αλγόριθμο και δεν κατάλαβα!??
Posted: Mon Oct 15, 2007 4:58 pm
by HdkiLLeR
Μπορεί..δεν το γνωρίζω το project για να σου πω με βεβαιότητα αλλά γενικότερα στις περισσότερες περιπτώσεις ξεκινάς με πολύ βασικά basic blocks για να μπορείς να έχεις απαντήσεις αλλά και tuning.
Posted: Mon Oct 15, 2007 8:14 pm
by tsilochr
μάλλον πρέπει να γίνω πιο σαφής στο τι κάνω. είμαι σε ένα project αναπτυξιακό και όχι ερευνητικό. οπότε δεν θα παίξει κάποιος νέος αλγόριθμος στο πεδίο των κατανεμημένων. απλά πολλά components του έργου παίζουν remotely με web services (έχουν υλοποιηθεί με xfire ήδη). Οι τεχνολογίες που χρησιμποπούνται είναι ακριβώς όπως το θέτει και ο mikem4600 (hibernate, struts, web services) και επειδή το project είναι ήδη up n running δεν νομίζω ότι μπορώ να εισάγω ένα επιπλέον framework.
Eγώ ασχολούμαι με μια συγκεκριμένη λειτουργία από το συνολικό project την οποία θέλω να υλοποιήσω με μια αρχιτεκτονική ανταλλαγής μηνυμάτων μεταξύ κατανεμημένων componetns μέσω web services (dns-like, ss7-like,θα δω...). Για αυτό ήθελα κάποιο υλικό σε γενική θεωρία κατανεμημένων και μάλλον θα πάρω το -αρκετά θεωρητικό- βιβλίο του Tanenbaum.
Ως προς την υλοποίηση, σίγουρα δεν θα ανέβω τόσο ψηλά στο gui ώστε να χρησιμοποιήσω κάποιο web framework. Από την άλλη δεν ξέρω αν με εξυπηρετήσει ένα framework για το mutlithreading κομμάτι (τα οποία δεν ξέρω καν) ή αν θα το γράψω μόνος μου. Είμαι ακόμα σε φάση ψαξίματος
Posted: Sat Oct 20, 2007 9:15 am
by tsilochr
απλα ενημερωτικά η java παρέχει ένα ολόκληρο πακέτο με utilities για concurency το java.util.concurrent
overview|
api docs
Πολύ χρήσιμο για όσους ασχοληθούν και με το μάθημα των Κατανμημένων. Το πακέτο το ανακάλυψα χτες και νώθω πολύ χαζός που δεν το είχα δει νωρίτερα
Posted: Sun Oct 21, 2007 2:41 am
by HdkiLLeR
Έχει μπεί απο την 1.5 και μετά εάν δεν κάνω λάθος.
Να σου πω την αμαρτία μου το είχα χρησιμοποιήσει και εγώ στο thesis μου αλλά τελικά δεν κατάφερα να αποφύγω και πολύ τον συνδιασμό synchronized - atomic.