ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΗΣ ΠΡΑΓΜΑΤΙΚΟΥ ΧΡΟΝΟΥ ΓΙΑ ΕΠΙΚΟΙΝΩΝΙΑ ΠΕΛΑΤΩΝ ΜΕΣΩ ΙΑ ΙΚΤΥΟΥ Μεταπτυχιακό Πρόγραµµα Σπουδών Τµήµατος Εφαρµοσµένης Πληροφορικής Θεσσαλονίκη, Ιούνιος 2007
Στόχοι χρήση αντικειµενοστρεφούς λογισµικού (Java) επικοινωνία µεταξύ πελατών εγκατεστηµένων σε αποµακρυσµένους υπολογιστές real-time µετάδοση ήχου και κινούµενης εικόνας µελέτη πρωτοκόλλων επικοινωνίας και µεταφοράς δεδοµένων time-based media εξέταση αρχιτεκτονικών διασύνδεσης πελατών όπως client server, peer to peer κλπ διερεύνηση διαθέσιµων βιβλιοθηκών (APIs) που επιτρέπουν σε προγράµµατα Java να χειριστούν δεδοµένα media Ιούνιος 2007 Πανεπιστήµιο Μακεδονίας 2
media streaming ορισµός CPU power, internet bandwidth δύο µορφές: on demand & live tv,, radio, movies, teleconference πρωτόκολλα real-time µεταφοράς δεδοµένων media: h.323, SIP, RTP, RTCP RTSP Ιούνιος 2007 Πανεπιστήµιο Μακεδονίας 3
Real-time Transport Protocol (RTP) προϊόν της οµάδος εργασίας Audio Video Transport (IETF) (IP(UDP(RTP))) αντιληπτό µόνο από τα τερµατικά συστήµατα unicast & multicast καµία εγγύηση για παράδοση δεδοµένων 2 ports ανά µία σύνοδο RTP (RTP + RTCP) πακέτο RTP: µια δοµηµένη κεφαλίδα και δεδοµένα media Ιούνιος 2007 Πανεπιστήµιο Μακεδονίας 4
RTP Control Protocol (RTCP) αυτόµατη δέσµευση port (+1 από του RTP) µη περιοδική αποστολή δεδοµένων καθυστέρηση, απώλεια πακέτων, πληροφορίες για την πηγή των δεδοµένων, στατιστικά στοιχεία πέντε τύποι RTCP πακέτων, ανάλογα µε την πληροφορία που µεταφέρουν: Sender, ReportReceiver, ReportSource, Description, Bye, Application-specific Ιούνιος 2007 Πανεπιστήµιο Μακεδονίας 5
JMF RTP API αποστολή data Τα δεδοµένα µπορεί να είναι αποθηκευµένα τοπικά σε κάποιο σύστηµα µε τη µορφή αρχείου ή να είναι προϊόν άµεσης σύλληψης από σχετική συσκευή (capture device). Ακολουθεί η επεξεργασία τους. Τα προς µετάδοση δεδοµένα µπορούν επίσης να αναπαράγονται τοπικά ή και να αποθηκεύονται σε αρχείο. Ιούνιος 2007 Πανεπιστήµιο Μακεδονίας 6
JMF RTP API παραλαβή data Άµεση αναπαραγωγή των εισερχόµενων streams, αποθήκευσή τους τοπικά σε κάποιο αρχείο ή άµεση προώθηση τους προς άλλους πελάτες (p2p) Ιούνιος 2007 Πανεπιστήµιο Μακεδονίας 7
JMF RTP API και MultiMeeting AVTransmit2 παραλαβή data source, επεξεργασία (format, compression rate, frame size), RTP Manager, αποστολή stream (συγκεκριµένα( ip,, port) AVReceive2 RTP Manager, παραλαβή stream (συγκεκριµένα ip,, port), εξαγωγή data source, δηµιουργία νέου frame > players ξεχωριστή RTP σύνοδο για κάθε τύπο δεδοµένων σύνδεση µεταξύ τερµατικών συστηµάτων τύπου unicast το κάθε τερµατικό σύστηµα µπορεί να υλοποιεί πολλές παράλληλες συνδέσεις ταυτόχρονα δέσµευση 8 ports ανά meeting Ιούνιος 2007 Πανεπιστήµιο Μακεδονίας 8
Client Server Protocol ελάχιστη επιβάρυνση server (ανταλλαγή( µηνυµάτων µε µορφή object) meetings ανεξάρτητα µεταξύ τους αξιοποίηση διαθέσιµου bandwidth client server: σταθερά ip, port client: αδιάφορο server-thread <-> < > client-thread thread registration nickname*, ip*, ObjectOutputStream του server-thread thread, Vector «portlist» για τα δεσµευµένα ports του client Ιούνιος 2007 Πανεπιστήµιο Μακεδονίας 9
ιαδικασία έναρξης νέου meeting αρνητική απάντηση Ιούνιος 2007 Πανεπιστήµιο Μακεδονίας 10
ιαδικασία έναρξης νέου meeting θετική απάντηση Ιούνιος 2007 Πανεπιστήµιο Μακεδονίας 11
ιαδικασία τερµατισµού ενεργού meeting Ιούνιος 2007 Πανεπιστήµιο Μακεδονίας 12
Σχεδιασµός λογισµικού - client MultiMeeting (main class) AVTransmit2 AVReceive2 MMClientThread PortIP ReceiveFrame MeetingMessage BasicMessage Ιούνιος 2007 Πανεπιστήµιο Μακεδονίας 13
Σχεδιασµός λογισµικού - server MMServer (main class) MMServerThread Registration PortIP (common) MeetingMessage (common) BasicMessage (common) Ιούνιος 2007 Πανεπιστήµιο Μακεδονίας 14
User Interface main frame Ιούνιος 2007 Πανεπιστήµιο Μακεδονίας 15
User Interface dialog, new frame Ιούνιος 2007 Πανεπιστήµιο Μακεδονίας 16
MultiMeeting Ιούνιος 2007 Πανεπιστήµιο Μακεδονίας 17
Προοπτικές εξέλιξης και βελτιώσεις βελτίωση σχεδιασµού κώδικα και απόδοσης εφαρµογής (ευέλικτες κλάσεις, ευφυής προσαρµογή σε συνθήκες µειωµένου bandwidth) προσθήκη δυνατοτήτων καταγραφής και ελέγχου συµβάντων (log files, server GUI) προσθήκη επιπλέον υπηρεσιών για το χρήστη (saving, teleconference, cryptography, invisible state, accept all) προσαρµογή εφαρµογής στις ανάγκες παραπλήσιων τεχνολογιών (security) Ιούνιος 2007 Πανεπιστήµιο Μακεδονίας 18
Προβλήµατα και αντιµετώπιση clientthread τερµατισµός meeting πλήθος διαφορετικών τύπων µηνυµάτων πολλαπλά meetings και επιβάρυνση bandwidth διαδίκτυο διαχείριση δεσµευµένων ports AVTransmit2 και AVReceive2 συνεργασία JMF µε Capture Devices υποστήριξη Java Media Framework από Sun έλεγχος data sources και των κλώνων τους ByeEvent bug Ιούνιος 2007 Πανεπιστήµιο Μακεδονίας 19
Συµπεράσµατα ενδιαφέρον > αφορά την καθηµερινότητα σε µια εποχή που το διαδίκτυο εισβάλλει σε αυτήν Java > ισχυρό εργαλείο (+IDE) JMF API > προβλήµατα, δεν ενδείκνυται για σοβαρές εφαρµογές, καλό εργαλείο για γνωριµία µε διαχείριση και µετάδοση δεδοµένων media client server > απλή αρχιτεκτονική, πλέον κατάλληλη για απαιτήσεις MultiMeeting MultiMeeting > ευκολία χειρισµού, µηδαµινό κόστος, ευκολία εγκατάστασης, προοπτικές αναβάθµισης ανάγκη για διαθέσιµο bandwidth > οικιακές συνδέσεις, εταιρικά και πανεπιστηµιακά LAN Ιούνιος 2007 Πανεπιστήµιο Μακεδονίας 20
MultiMeeting live demonstration Ιούνιος 2007 Πανεπιστήµιο Μακεδονίας 21