Υλικό για κατανεμημένα συστήματα και Java multithreading

Συζητήσεις για γλώσσες προγραμματισμού και θέματα σχετικά με προγραμματισμό.
Post Reply
User avatar
tsilochr
Wow! Terabyte level
Wow! Terabyte level
Posts: 3246
Joined: Tue Mar 16, 2004 2:47 pm
Academic status: PhD
Gender:
Location: mm.aueb.gr
Contact:

Υλικό για κατανεμημένα συστήματα και Java multithreading

Post by tsilochr » Sun Oct 14, 2007 11:58 am

venus programming gurus παρουσιαστείτε. Θέλω να ρωτήσω αν κάποιος έχει ασχοληθεί με κατανεμημένα συστήματα και πολυνηματικό κώδικα σε Java - πέρα από τις ανάγκες του μαθήματος.

Αν έχετε να προτείνετε κάποιο βιβλίο σε κατανεμημένα (πέρα από του Tanenbaum και αυτού που δίνει το τμήμα στο αντίστοιχο μάθημα) και υλικό σε θέματα Java mutlithreading

Btw, το βιβλίο του tanenbaum παίρνει 3/5 στο user rating του amazon :!:
User avatar
Swtos
Kilobyte level
Kilobyte level
Posts: 309
Joined: Mon Apr 18, 2005 4:52 pm
Academic status: MSc
Gender:
Location: Δ.Π

Post by Swtos » Sun Oct 14, 2007 12:36 pm

Κοίτα για θεωρητική θεμελίωση των κατανεμημένων συστήματων νομίζω καλό ειναι το "Mullender S, Didtributed Systems, 2nd edition, 1993" το οποίο το εχει και η βιβλιοθήκη μας αν θες να του ρίξεις μια ματια. Η βιβλιοθήκη έχει 4-5 βιβλία τουλαχιστον πανω σε ΚΣ, τα περισσότερα ήταν για further reading του μαθηματος. Κοίτα λιγο τα references από τη σελίδα του μαθηματος στο e-class ή από το βιβλίο του JC...

Το βιβλίο του Τανενμπαουμ δεν μπαίνει σε πολύ βαθος είναι η αλήθεια. Στον Παπασωτηρίου εχω δει εδω και μήνες οτι κυκλοφορεί και σε 2η εκδοση...δεν ξερω αν διαφερει παντως σε σχεση με το πρώτο...

Τέλος, για προγραμματισμό δεν έχω να σου προτείνω συγκεκριμένο βιβλίο αλλά στο web θα βρεις πολυ πράμα φαντάζομαι αρα δε νομίζω να αξίζει να επενδύσεις σε βιβλίο...good luck :-)
-My father made him an offer he couldnt refuse
-What was that?
-Luca Brasi held a gun to his head and my father assured him that either his brain or his signature would be on the contract

-The Godfather
The Punisher
Venus Former Team Member
Posts: 7561
Joined: Thu Oct 27, 2005 1:43 pm
Academic status: Alumnus/a
Gender:
Location: Boston, MA

Post by The Punisher » Sun Oct 14, 2007 1:41 pm

παρεμπιπτόντως και ίσως offtopic, ασχολούμενος με το Microsoft Robotics Studio, είδα ένα πάρα πολύ καλό Concurrency and Coordination Runtime, το οποίο δουλεύει με services και σε φέρνει ως προγραμματιστή σε αρκετά ψηλό επίπεδο
User avatar
SeniorCarbone
Kilobyte level
Kilobyte level
Posts: 396
Joined: Fri Feb 24, 2006 1:57 pm
Gender:
Contact:

Post by SeniorCarbone » Sun Oct 14, 2007 2:17 pm

Εγώ φέτος άρχισα να ασχολούμαι με distributed computing και είναι
χάσιμο...μπορείς να κάνεις παπάδες κ πιστεύω έχει λαμπρό μέλλον
ο χώρος. Πάνω σε java που το έψαξα κυρίως, από το βιβλίο του
Ξυλωμένου (προφανώς) κ (πολύ) περισσότερο από web βρήκα
εξαιρετικά χρήσιμα πράγματα.
Το βιβλίο του Tanenbaum που κοίταξα δεν με συγκίνησε.
Είναι για πολύ γενική κ αφηρημένη εικόνα στο χώρο.
Επίσης, ένα σχετικό θέμα με επικοινωνία threads στο JHUG conference
πρόσφατα μπορώ να πω πως μου αύξησε αρκετά το ενδιαφέρων.
Το αντίστοιχο προπτυχιακό μάθημα άλλωστε αποφάσισα σήμερα
να το ξαναπάρω του χρόνου γιατί θέλω να ασχοληθώ περισσότερο απΆότι φέτος.
Ένα βιβλίο που θέλω να κοιτάξω τώρα είναι του Jim Farley (O'reilly) το οποίο
επικεντρώνεται σε java. Αν το έχει δει κανείς περιμένω σχόλια.
Κ ότι άλλο σχετικό με ενδιαφέρει πολύ κ εμένα..

Y.Γ. όχι μόνο πάνω σε java εννοείται
*--Common sense is not so common--*
User avatar
tsilochr
Wow! Terabyte level
Wow! Terabyte level
Posts: 3246
Joined: Tue Mar 16, 2004 2:47 pm
Academic status: PhD
Gender:
Location: mm.aueb.gr
Contact:

Post by tsilochr » Sun Oct 14, 2007 3:30 pm

Χμμμ, αυτή τη στιγμή ψάχνω υλικό που να παρουσιάζει αρχιτεκτονικές και λύσεις για κατανεμημένα περιβάλλοντα μάλλον πιο κοντά προς το βιβλίο του Tanenbaum. Η υλόποιηση της επικοινωνίας θα γίνεται με web services οπότε ένα βιβλίο για basic networking, sockets, RMI και Corba δεν μου χρειάζεται. ευχαριστώ πάντως.

Για java ενδιαφέρομαι μήπως κάποιος έχει κάτι συγκεκριμένο για χειρισμό threads (well known practices και τέτοια)
User avatar
mikem4600
Gbyte level
Gbyte level
Posts: 1363
Joined: Fri Mar 12, 2004 2:00 pm
Academic status: Alumnus/a
Gender:
Location: A Galaxy Far, Far Away
Contact:

Post by mikem4600 » Sun Oct 14, 2007 8:27 pm

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 το καλοκαίρι, αλλά ακόμα δεν μου έχει κάτσει...
Autocracy hates questions. Anarchy hates answers.
User avatar
HdkiLLeR
Venus Project Founder
Venus Project Founder
Posts: 4356
Joined: Tue Jan 27, 2004 4:41 pm
Academic status: Alumnus/a
Gender:
Location: New York, NY
Contact:

Post by HdkiLLeR » Sun Oct 14, 2007 9:34 pm

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/
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GCS d-->--- s+:+ a- C++(+++) BILS++++$ P--- L++++>+++++ E--- W+++ N+ o+ K w--
O M+ V-- PS++>+++ PE- Y++ PGP++ t+ 5+ X+ R* tv b++ DI- D+ G+++ e+++>++++ h r++ y++
------END GEEK CODE BLOCK------

"UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity." -- Dennis Ritchie
User avatar
fotisaueb
Kilobyte level
Kilobyte level
Posts: 230
Joined: Fri Apr 30, 2004 8:25 pm

Post by fotisaueb » Sun Oct 14, 2007 10:50 pm

tsilochr wrote:Χμμμ, αυτή τη στιγμή ψάχνω υλικό που να παρουσιάζει αρχιτεκτονικές και λύσεις για κατανεμημένα περιβάλλοντα μάλλον πιο κοντά προς το βιβλίο του Tanenbaum. Η υλόποιηση της επικοινωνίας θα γίνεται με web services οπότε ένα βιβλίο για basic networking, sockets, RMI και Corba δεν μου χρειάζεται. ευχαριστώ πάντως.

Για java ενδιαφέρομαι μήπως κάποιος έχει κάτι συγκεκριμένο για χειρισμό threads (well known practices και τέτοια)
Μήπως να το γύρναγες σε .NET? Έχει πολύ αξιόλογο web service framework και σίγουρα καλύτερο από Corba
User avatar
AmmarkoV
Wow! Terabyte level
Wow! Terabyte level
Posts: 2838
Joined: Thu Nov 04, 2004 2:55 pm
Gender:
Location: Reloaded @ Santa Friday
Contact:

Post by AmmarkoV » Sun Oct 14, 2007 11:24 pm

Java ρε παιδιά..?
Spoiler: εμφάνιση/απόκρυψη
I would love to change the world, but they won't give me the source code. Οι καθηγητές πληρώνονται από το δημόσιο αρα από όλους τους Έλληνες για να κάνουν τα μαθήματα. Όλοι οι Έλληνες θα έπρεπε να μπορούν να δουν τα μαθήματα τα οποία πληρώνουν! Tο πνευματικό έργο που επιτελείται με τα χρήματα του δημοσίου ΔΕΝ είναι μόνο δικό σας Όποιος δεν δίνει πανελλήνιες έχει δικαίωμα στην γνώση που πληρώνει [url=http://ammar.gr/gddg]gddg blog[/url]
Image
User avatar
tsilochr
Wow! Terabyte level
Wow! Terabyte level
Posts: 3246
Joined: Tue Mar 16, 2004 2:47 pm
Academic status: PhD
Gender:
Location: mm.aueb.gr
Contact:

Post by tsilochr » Mon Oct 15, 2007 1:56 am

το έργο στο οποίο θα συμμετάσχω είναι όλο σε java. τα components μιλάνε αυστηρά με web services, καθόλου sockets και IO οπότε θέλω γενική θεωρία σε κατανεμημένα για την αρχιτεκτονική της λύσης που θα επιλέξω (design patterns, όχι απαραίτητα κάποια υλοποίηση). Java multithreadiing θα χρειαστώ γιατί ένα συγκεκριμένο component μάλλον πρέπει να είναι concurrent

thnx hdkiller για τα link από ibm
User avatar
rose
Gbyte level
Gbyte level
Posts: 1921
Joined: Sun May 20, 2007 8:59 pm
Academic status: 4th year
Gender:

BUSINESS DEV

Post by rose » Mon Oct 15, 2007 9:56 am

Concurrent και transaction issues θα στα λύνει ο application server -π.χ ο JBOSS.(Αν γράφεις σε java)-Σε Real World applications εσύ ασχολείσαι μόνο με Business Development.
echo 2 + ejb 3 + hibernate!
User avatar
HdkiLLeR
Venus Project Founder
Venus Project Founder
Posts: 4356
Joined: Tue Jan 27, 2004 4:41 pm
Academic status: Alumnus/a
Gender:
Location: New York, NY
Contact:

Re: BUSINESS DEV

Post by HdkiLLeR » Mon Oct 15, 2007 3:53 pm

rose wrote:Concurrent και transaction issues θα στα λύνει ο application server -π.χ ο JBOSS.(Αν γράφεις σε java)-Σε Real World applications εσύ ασχολείσαι μόνο με Business Development.
echo 2 + ejb 3 + hibernate!
Ναι αλλά εδώ μιλάμε για research prototype εάν δεν κάνω λάθος οπότε αυτό που ενδιαφέρει είναι να κάνεις τον δικό σου "transaction manager" σε γενικές γραμμές για να μπορέσεις να μελετήσεις/αποτιμήσεις/γνωρίζεις τι γίνεται.
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GCS d-->--- s+:+ a- C++(+++) BILS++++$ P--- L++++>+++++ E--- W+++ N+ o+ K w--
O M+ V-- PS++>+++ PE- Y++ PGP++ t+ 5+ X+ R* tv b++ DI- D+ G+++ e+++>++++ h r++ y++
------END GEEK CODE BLOCK------

"UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity." -- Dennis Ritchie
User avatar
mikem4600
Gbyte level
Gbyte level
Posts: 1363
Joined: Fri Mar 12, 2004 2:00 pm
Academic status: Alumnus/a
Gender:
Location: A Galaxy Far, Far Away
Contact:

Re: BUSINESS DEV

Post by mikem4600 » Mon Oct 15, 2007 3:58 pm

HdkiLLeR wrote:Ναι αλλά εδώ μιλάμε για research prototype εάν δεν κάνω λάθος οπότε αυτό που ενδιαφέρει είναι να κάνεις τον δικό σου "transaction manager" σε γενικές γραμμές για να μπορέσεις να μελετήσεις/αποτιμήσεις/γνωρίζεις τι γίνεται.
Και σε μας πάντως όλα τα ευρωπαϊκά-ερευνητικά είναι σε Java EE (EJBs, Jboss, hibernate, struts, web services κτλ.).
Autocracy hates questions. Anarchy hates answers.
User avatar
rose
Gbyte level
Gbyte level
Posts: 1921
Joined: Sun May 20, 2007 8:59 pm
Academic status: 4th year
Gender:

transactions

Post by rose » Mon Oct 15, 2007 4:28 pm

Ερευνα κανείς σε οτιδήποτε δεν εχει απαντηθεί.Μήπως μιλάμε για νεο transaction αλγόριθμο και δεν κατάλαβα!??
User avatar
HdkiLLeR
Venus Project Founder
Venus Project Founder
Posts: 4356
Joined: Tue Jan 27, 2004 4:41 pm
Academic status: Alumnus/a
Gender:
Location: New York, NY
Contact:

Post by HdkiLLeR » Mon Oct 15, 2007 4:58 pm

Μπορεί..δεν το γνωρίζω το project για να σου πω με βεβαιότητα αλλά γενικότερα στις περισσότερες περιπτώσεις ξεκινάς με πολύ βασικά basic blocks για να μπορείς να έχεις απαντήσεις αλλά και tuning.
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GCS d-->--- s+:+ a- C++(+++) BILS++++$ P--- L++++>+++++ E--- W+++ N+ o+ K w--
O M+ V-- PS++>+++ PE- Y++ PGP++ t+ 5+ X+ R* tv b++ DI- D+ G+++ e+++>++++ h r++ y++
------END GEEK CODE BLOCK------

"UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity." -- Dennis Ritchie
User avatar
tsilochr
Wow! Terabyte level
Wow! Terabyte level
Posts: 3246
Joined: Tue Mar 16, 2004 2:47 pm
Academic status: PhD
Gender:
Location: mm.aueb.gr
Contact:

Post by tsilochr » Mon Oct 15, 2007 8:14 pm

μάλλον πρέπει να γίνω πιο σαφής στο τι κάνω. είμαι σε ένα 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 κομμάτι (τα οποία δεν ξέρω καν) ή αν θα το γράψω μόνος μου. Είμαι ακόμα σε φάση ψαξίματος
User avatar
tsilochr
Wow! Terabyte level
Wow! Terabyte level
Posts: 3246
Joined: Tue Mar 16, 2004 2:47 pm
Academic status: PhD
Gender:
Location: mm.aueb.gr
Contact:

Post by tsilochr » Sat Oct 20, 2007 9:15 am

απλα ενημερωτικά η java παρέχει ένα ολόκληρο πακέτο με utilities για concurency το java.util.concurrent

overview| api docs

Πολύ χρήσιμο για όσους ασχοληθούν και με το μάθημα των Κατανμημένων. Το πακέτο το ανακάλυψα χτες και νώθω πολύ χαζός που δεν το είχα δει νωρίτερα
User avatar
HdkiLLeR
Venus Project Founder
Venus Project Founder
Posts: 4356
Joined: Tue Jan 27, 2004 4:41 pm
Academic status: Alumnus/a
Gender:
Location: New York, NY
Contact:

Post by HdkiLLeR » Sun Oct 21, 2007 2:41 am

Έχει μπεί απο την 1.5 και μετά εάν δεν κάνω λάθος.

Να σου πω την αμαρτία μου το είχα χρησιμοποιήσει και εγώ στο thesis μου αλλά τελικά δεν κατάφερα να αποφύγω και πολύ τον συνδιασμό synchronized - atomic.
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GCS d-->--- s+:+ a- C++(+++) BILS++++$ P--- L++++>+++++ E--- W+++ N+ o+ K w--
O M+ V-- PS++>+++ PE- Y++ PGP++ t+ 5+ X+ R* tv b++ DI- D+ G+++ e+++>++++ h r++ y++
------END GEEK CODE BLOCK------

"UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity." -- Dennis Ritchie
Post Reply

Return to “Προγραμματισμός”