J a v a Μ edia Fra.rr»w iork

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "J a v a Μ edia Fra.rr»w iork"

Transcript

1 ΤΕΙ ΚΑΒΑΛΑΣ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΑΧΕΙΡΙΣΗΣ ΠΛΗΡΟΦΟΡΙΩΝ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ με θέμα: ΤΟ JAVA MEDIA FRAMEWORK ΓΙΑ ΕΦΑΡΜΟΓΕΣ ΕΠΕΞΕΡΓΑΣΙΑΣ ΣΥΝΕΧΩΝ ΜΕΣΩΝ J a v a Μ edia Fra.rr»w iork ΕΠΟΠΤΕΥΩΝ ΚΑΘΗΓΗΤΗΣ : ΣΤΕΡΓΙΟΣ ΠΑΠΑΔΗΜΗΤΡΙΟΥ ΟΝΟΜΑΤΕΠΩΝΥΜΟ ΦΟΙΤΗΤΡΙΑΣ: ΜΑΡΙΑ ΚΟΝΤΟΓΕΩΡΓΗ ΑΕΜ: 1109 Σεπτέμβριος 2011

2 ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ Εισαγωγή Λεπτομερές Χρονικό Μοντέλο Χρόνος Χαμηλού επιπέδου: Κλάσεις Time και TimeBase H Διασύνδεση Clock Χρόνος Υψηλού Επιπέδου: Η Διασύνδεση Controller Χρονισμός ενός Player Έλεγχος και Αλυσίδες Επεξεργασίας Διαχείριση Πολυπλοκότητας Η Κλάση του Manager Δημιουργία ενός Player Δημιουργία ενός Processor Δημιουργία μιας DataSource Δημιουργία ενός DataSink Ερωτήματα/Αιτήματα στον Manager Τα περί Ελέγχου Οπτικός Έλεγχος για τον Χρήστη Λήψη Αντικειμένων Control Προέλευση Μέσων και Μορφή Μέσων DataSource Κλωνοποιήσιμες και Συγχωνευμένες DataSources MediaLocator SourceStream και Buffer Μορφή (Format) MediaHandler Aναπαραγωγή Μέσων

3 7.1 Διασύνδεση Player MediaPlayer Bean Έλεγχος πολλαπλών Players/Controllers Εφαρμογή: Player των Μέσων Αναπαραγωγή των Μέσων με έναν Processor Διατήρηση Μ έσω ν DataSink Συμβάντα του DataSink Plugins PluginManager Αποπολυπλέκτης (Demultiplexer) Κωδικοαποκωδικοποιητής (Codec) Εφέ (Effect) Πρόγραμμα Απόδοσης (Renderer) Πολυπλέκτης (Multiplexer) Επεξεργασία Μ έσω ν Χρονική κλίμακα του Processor (Timescale) Διασύνδεση Processor Δημιουργία και Προγραμματισμός των Processors ProcessorModel TrackControl Κλάση Βοηθητικού προγράμματος: ΜediaStatistics Κλάση Βοηθητικού προγράμματος: Location2Location Αποτύπωση των μέσων JMFRegistry και JMStudio CaptureDeviceManager

4 13.3 ΟΒρΙϋΓθϋθνϊοθίηΙο ΟΒρΙϋΓθϋβνϊοβ Αποτύπωση Ήχου ή Εικόνας με την εφαρμογή SimpleRecorder Επίλογος ΒΙΒΛΙΟΓΡΑΦΙΑ Εισαγωγή Η παρούσα εργασία περιγράφει τον έλεγχο των μέσων βάσει χρόνου (timebased media) με την Διασύνδεση Προγραμματισμού Εφαρμογών (API) του JMF (Java Media Framework). Στο πλαίσιο αυτής της εργασίας, ο έλεγχος χρησιμοποιείται με την ευρύτερη έννοια για να καλύψει όλες τις ενέργειες που αφορούν τα time-based media. Αυτός ο περιεκτικός ορισμός περιλαμβάνει αυτό που θεωρείται γενικότερα επεξεργασία: αποκωδικοποίηση, κωδικοποίηση, διακωδικοποίηση (αποκωδικοποίηση από τη μία μορφή και κωδικοποίησή της στην άλλη), εφέ, φίλτρα, πολυπλεξία, και αποπολυπλεξία, καθώς και πηγή δεδομένων αυτών καθαυτών: αποτύπωση, ανάγνωση από το αρχείο, και έξοδο (παρουσίαση ή αποθήκευση). Στην πραγματικότητα, η θεμελιώδης προσέγγιση για τον έλεγχο μπορεί να περιγραφεί με τα εξής τρία βήματα: 1. Προέλευση μέσων (Source media) 2. Επεξεργασία μέσων (Process media) 3. Έξοδος μέσων (Output media) Το Σχήμα 1 παρουσιάζει αυτά τα τρία βήματα ελέγχου 4

5 Σχήμα 1 Τρία βήματα του ελέγχου των μέσων με το JMF. Αυτός ο έλεγχος μπορεί να είναι αλυσιδωτός: Η έξοδος ενός σταδίου ελέγχου μπορεί να λειτουργήσει ως είσοδο για ένα άλλο. Για παράδειγμα, ένα τμήμα ελέγχου μπορεί να διασφαλίσει μια ταινία που «ρέει» στο Διαδίκτυο και να την αποπολυπλέξει σε διαφορετικά tracks ήχου και εικόνας που αποθηκεύονται σε διαφορετικά αρχεία. Μια δεύτερη υπομονάδα ελέγχου μπορεί τότε να πάρει τα δεδομένα εξόδου ήχου και να προσθέσει εφέ αντήχησης (reverb effect) σε ένα τμήμα πριν το πολυπλέξει με το track εικόνας και να αποθηκεύσει την ταινία που θα προκύψει. Το Βήμα 2, η επεξεργασία μπορεί να εμπεριέχει πολυβαθμιδωτή ενέργεια, που ίσως περιλαμβάνει εφέ (effects), κωδικοαποκωδικοποιητές (codecs), πολυπλέκτες (multiplexers) και αποπολυπλέκτες (demultiplexers). Το Σχήμα 2 αποτελεί ένα σχηματικό διάγραμμα που δείχνει την πολυβαθμιδωτή επεξεργασία και την αλυσίδα ελέγχου. Η παρούσα εργασία κατηγοριοποιείται σε τρία μεγάλα τμήματα, καθένα εκ των οποίων αποτελείται από τις ακόλουθες ενότητες: Κύρια βήματα και κλάσεις με ρόλους στην αλυσίδα ελέγχου Επεξεργασία Αποτύπωση μέσων 5

6 Σχήμα 2 Αλυσίδα επεξεργασίας μέσων Το πρώτο τμήμα αποτελεί ένα φάσμα θεμάτων που καλύπτουν την προσέγγιση που χρησιμοποιείται από το JMF στην επίτευξη ελέγχου στα μέσα και αποτελεί μια απαραίτητη εισαγωγή στις λεπτομέρειες των τελευταίων ενοτήτων. Πιο συγκεκριμένα, συμπεριλαμβάνει μια πιο λεπτομερή περιγραφή του χρονικού μοντέλου του JMF και μια εισαγωγή στις βασικές κλάσεις του manager, καθώς και αναλύσεις για τους Ελέγχους (Controls), τις Πηγές δεδομένων (DataSources) και τα Δοχεία Δεδομένων (DataSinks). Το δεύτερο τμήμα αφορά την επεξεργασία και ξεκινάει με την εξέταση της διεύρυνσης κλάσεων διακοπής χρόνου που το JMF χρησιμοποιεί για την επεξεργασία. Κατόπιν, τα θέματα των προηγούμενων ενοτήτων περιγράφονται με διάφορα παραδείγματα επεξεργασίας (όπως η διακωδικοποίηση). Το τελευταίο τμήμα καλύπτει το θέμα της αποτύπωσης μέσων, λαμβάνοντας δείγματα ήχου ή εικόνας άμεσα από τις συσκευές που είναι συνδεδεμένες με τον υπολογιστή. 6

7 1. Λεπτομερές Χρονικό Μοντέλο Το JMF χρησιμοποιεί μια στρωματοποιημένη προσέγγιση κατά την αναπαράσταση του χρόνου του. Στους χαμηλού επιπέδου τερματικούς του χρονικού μοντέλου βρίσκονται οι κλάσεις για την αναπαράσταση χρόνου με ακρίβεια νανοδευτερολέπτων. Στους υψηλού επιπέδου τερματικούς του μοντέλου, το JMF αντιμετωπίζει τους controllers ως ένα ενιαίο σύνολο καταστάσεων που μεταβαίνουν από την μια στην άλλη υπό τον έλεγχο του προγράμματος. 1.1 Χρόνος Χαμηλού επιπέδου: Κλάσεις Time και TimeBase Οι δυο κλάσεις, η Time και η SystemTimeBase, και μια διασύνδεση, η TimeBase, περιγράφουν λεπτομερώς το χαμηλού επιπέδου χρονικό μοντέλο του JMF. Στα χαμηλά στρώματα της ιεραρχίας και ίσως η πιο θεμελιώδης είναι η κλάση του Time. Το αντικείμενο Time αναπαριστά μια συγκεκριμένη στιγμή στο χρόνο με ακρίβεια ενός νανοδευτερολέπτου. Το Σχήμα 3 απεικονίζει τους κατασκευαστές (constructors) της κλάσης του Time και τις δημόσιες (public) μεθόδους. Time Class Tim e(double seconds) Time(long nanoseconds) tong getnanoseconds() double getsecondsq Σχήμα 3 Η κλάση του Time Τα αντικείμενα Time συνήθως επιστρέφονται από μεθόδους που χρησιμοποιούνται για να υποβάλλουν ερωτήματα για την προσωρινή 7

8 κατάσταση άλλου αντικειμένου. Για παράδειγμα, το ποσοστό του συνολικού χρόνου αναπαραγωγής σε μερικά μέσα. Ομοίως, τα αντικείμενα Time μπορούν να χρησιμοποιηθούν για να μεταβάλλουν τις προσωρινές ιδιότητες ενός αντικειμένου. Για παράδειγμα, για τον προσδιορισμό μιας συγκεκριμένης χρονικής στιγμής από την οποία ξεκινάει η αναπαραγωγή μέσων, το αντικείμενου του Time μπορεί να χρησιμοποιηθεί ως εξής: 1. Να κατασκευάσει ένα αντικείμενο Time με μια τιμή, ρυθμισμένο σε δευτερόλεπτα ή νανοδευτερόλεπτα, ως αντιστάθμισμα από την έναρξη αναπαραγωγής των μέσων κατά την οποία θα έπρεπε να ξεκινήσει η αναπαραγωγή. 2. Να περάσει αυτό το αντικείμενο από την μέθοδο setmediatime ( ) του αντικειμένου Player. H κλάση του Time διαθέτει επίσης μια ειδική σταθερά, την TIME_UNKNOWN. Αυτή η σταθερά βρίσκει εφαρμογές σε πλαίσια κατά τα οποία ένα αντικείμενο μπορεί να ερωτηθεί για την διάρκεια των μέσων με τα οποία συνδέεται, αλλά το μήκος του δεν έχει ή δεν μπορεί να διαπιστωθεί. Η κλάση του Time καθορίζει μια μεμονωμένη στιγμή στον χρόνο, ενώ τα μέσα βάσει χρόνου, από τη φύση τους, είναι πιο δυναμικά και ποικίλλουν σε χρόνο. Η υποστήριξη του JMF για τον κτύπο (1 νανοδευτερόλεπτο ανά κτύπο) του χρόνου βρίσκεται υπό την μορφή της διασύνδεσης TimeBase. Η διασύνδεση TimeBase είναι σημαντική και η μόνη που εφαρμόζεται από διάφορες σημαντικές κλάσεις. (Πιο συγκεκριμένα, υπάγεται σε άλλες βασικές διασυνδέσεις όπως στις Controller και Player, που επεκτείνουν τη διασύνδεση.) Η διασύνδεση TimeBase καθορίζει μόνο δυο μεθόδους, που και οι δύο χρησιμοποιούνται για να υποβάλλουν ερωτήματα για τον τρέχοντα χρόνο του αντικειμένου TimeBase. Η μέθοδος gettime ( ) επιστρέφει ένα αντικείμενο Time. Ένα εναλλακτικό μέσο λήψης των ίδιων πληροφοριών είναι η μέθοδος getnanoseconds ( ), που επιστρέφει ένα αντικείμενο μεγάλου μεγέθους (long object). Δεν υπάρχει κάποια διάταξη σ TimeBase για την 8

9 μεταβολή του χρόνου. Μπορεί να ερωτηθεί μόνο σχετικά με την τρέχουσα κατάστασή του. Ως προεπιλεγμένη εφαρμογή της διασύνδεσης TimeBase, το JMF παρέχει την κλάση SystemTimeBase. Η SystemTimeBase έχει έναν μοναδικό κενό κατασκευαστή και μόνο δυο μεθόδους που έχουν καθοριστεί στη διασύνδεση TimeBase. Εναλλακτικά, η χρονοβάση του συστήματος (system time base) μπορεί να ληφθεί μέσω της μεθόδου getsystemtimebase ( ) της κλάσης του Manager. 1.2 H Διασύνδεση Clock Αυτές οι κλάσεις που εφαρμόζουν την διασύνδεση TimeBase παρέχουν διαρκείς κτύπους, μη μεταβαλλόμενη πηγή χρόνου. Ωστόσο, ο έλεγχος των μέσων σημαίνει την παροχή ελέγχου σε προσωρινές ιδιότητες αυτών των μέσων: ικανότητα εκκίνησης ή διακοπής των μέσων σε τυχαίες θέσεις καθώς και έλεγχο του ρυθμού τους (για παράδειγμα, γρήγορο προχώρημα ή ανάγνωση προς τα πίσω/γρήγορη επιστροφή σε έναν player). Η διασύνδεση Clock αποτελεί το μέσο με το οποίο επιτυγχάνεται αυτό, και εφαρμόζεται από αντικείμενα που υποστηρίζουν το χρονικό μοντέλο του JMF. Με πολλούς τρόπους, η διασύνδεση Clock είναι ζωτικής σημασίας τόσο ως σύνδεσμος μεταξύ των χρονικών μοντέλων χαμηλού και υψηλού επιπέδου όσο και ως βασική διασύνδεση της Διασύνδεσης Προγραμματισμού Εφαρμογών (API). Οι διασυνδέσεις Controller, Player και Processor, όλες οι κεντρικές ως προς την λειτουργικότητα του JMF, επεκτείνουν το Clock. Τα Clocks είναι τυπικά συνδεδεμένα με ένα αντικείμενο μέσων (media object). Πράγματι, ο έλεγχος στα μέσα όπως η αναπαραγωγή ή η επεξεργασία συνεπάγεται την σύνδεση του Clock με αυτό το μέσο. (Επειδή οι διασυνδέσεις Controller, Player και Processor επεκτείνουν το Clock, το αντικείμενο Player ή Processor είναι επίσης ένα ρολόι (clock)). Ένα Clock χρησιμεύει τόσο ως χρονόμετρο για το μέσο του όσο και ως μέσο μεταβολής και προσαρμογής του 9

10 χρόνου αυτού του μέσου. Ο χρόνος που κρατάει ένα ρολόι (clock) είναι γνωστός και ως χρόνος των μέσων (media time). Τα clocks επιτυγχάνουν δυο εργασίες, την παρακολούθηση και την μεταβολή της ροής του χρόνου των συνδεδεμένων τους μέσων χρησιμοποιώντας ένα TimeBase. Όπως αναφέρθηκε, τα αντικείμενα TimeBase αντιπροσωπεύουν συνεχείς κτύπους και μη μεταβαλλόμενο χρόνο. Επομένως, το Clock παρέχει αναχαρτογράφηση ή μετατροπή από τον χρόνο του TimeBase με αυτόν που συνδέεται με τα μέσα. Αυτό είναι μια απλή γραμμική μετατροπή που απαιτεί τρεις παραμέτρους: το ρυθμό (για παράδειγμα της αναπαραγωγής), τον χρόνο έναρξης των μέσων, και τον χρόνο έναρξης της χρονοβάσης. Βάσει των παραπάνω, ο χρόνος των μέσων μπορεί να προσδιοριστεί ως εξής: media_time = media_start_time + rate x (time_base_time L- time_base_start_time) Οι σημασίες των προηγούμενων όρων είναι ως εξής: Χρόνος των μέσων (Media time)- Η θέση των μέσων στον χρόνο. Για παράδειγμα, εάν ένα ηχητικό μήνυμα ήταν διάρκειας ενός λεπτού, ο χρόνος των μέσων θα κυμαινόταν από 0 έως 60 δευτερόλεπτα. Χρόνος έναρξης των μέσων (Media start tim e)-^ αντιστάθμισμα εντός των μέσων από το οποίο θα ξεκινήσει η αναπαραγωγή. Εάν η αναπαραγωγή ξεκινήσει από την έναρξη των μέσων, αυτή η τιμή είναι 0. Εάν ξεκινήσει στα 7,5 δευτερόλεπτα, αυτή η τιμή θα είναι 7,5. Ρυθμός (Rate)- Ο ρυθμός της παρέλευσης του χρόνου για τα μέσα. Ο ρυθμός για το 1 αντιπροσωπεύει μια φυσιολογική περιέλιξη προς τα εμπρός (για παράδειγμα, αναπαραγωγή), ενώ η τιμή -5 θα αντιπροσωπεύσει γρήγορη επαναληπτική περιέλιξη. Χρόνος Χρονοβάσης (Time base time)- Ο χρόνος του αντικειμένου TimeBase που το Clock περιλαμβάνει. Αυτό ξεκινάει τους 10

11 κτύπους (αύξηση) μόλις το αντικείμενο Clock δημιουργηθεί και δεν σταματάει ποτέ να λειτουργεί. Χρόνος έναρξης της Χρονοβάσης (Time base start time)- Ο χρόνος του αντικειμένου TimeBase κατά τον οποίο το Clock ξεκινάει και συγχρονίζεται με την TimeBase. Για παράδειγμα το Clock μπορεί να ξεκινήσει 3,2 δευτερόλεπτα μετά τη δημιουργία του Clock (και επομένως η TimeBase δημιουργήθηκε επίσης και άρχισε να κτυπάει). Έτσι, αυτός ο χρόνος έναρξης της χρονοβάσης θα είναι 3,2 δευτερόλεπτα. Το Clock μπορεί να βρίσκεται σε δυο πιθανές καταστάσεις: Started ή Stopped. Ένα clock ξεκινάει καλώντας την μέθοδο syncstart ( ). Αυτή η μέθοδος SyncStart ( ) δέχεται ένα μόνο όρισμα ως χρόνο έναρξης της χρονοβάσης από την οποία το Clock πρέπει να ξεκινήσει. Μόλις το αντικείμενο TimeBase του Clock επιτύχει αυτόν τον χρόνο, το ρολόι (clock) θα συγχρονιστεί με την TimeBase και θα μεταβεί σε κατάσταση Started. Αυτός ο μηχανισμός επιτρέπει στο Clock να ρυθμιστεί για την έναρξη σε κάποιο μελλοντικό χρόνο (ή σε τρέχοντα χρόνο περνώντας την μέθοδο syncstart ( ) στον τρέχοντα χρόνο του αντικειμένου TimeBase του Clock). Οποιεσδήποτε αλλαγές στον χρόνο (έναρξης) των μέσων και στο ρυθμό πρέπει να διεξαχθούν πριν την εισαγωγή του Clock σε κατάσταση Started. Προσπαθώντας να χρησιμοποιήσουμε αυτές τις μεθόδους που διεξάγουν αυτές τις λειτουργίες σε ένα Clock σε κατάσταση Started, αυτό θα έχει ως αποτέλεσμα να εμφανιστεί η ένδειξη ClockStartedError. Επομένως, τα συνήθη βήματα που ακολουθούνται για την έναρξη ενός ρολογιού (clock) είναι τα εξής: 1. Διακοπή του ρολογιού (clock) εάν έχει μόλις ξεκινήσει 2. Ρύθμιση του χρόνου (έναρξης) των μέσων του Clock 3. Ρύθμιση του ρυθμού του Clock. 4. syncstart ( ) το Clock Η αρχική κατάσταση του Clock είναι Stopped. Αφότου το clock βρίσκεται σε κατάσταση Started, μπορεί να σταματήσει με έναν εκ των δύο τρόπων. Μπορεί είτε να σταματήσει αμέσως με την μέθοδο stop ( ), ή μπορεί να ρυθμιστεί ο 11

12 χρόνος διακοπής των μέσων (media stop time). Μόλις ο χρόνος των μέσων επιτύχει (εάν έχει ήδη υπερβεί) αυτόν τον χρόνο, το Clock θα αρχίσει να σταματάει. Τέλος αξίζει να σημειωθεί ότι είναι πιθανό να συγχρονιστούν δυο ή περισσότερα Clocks ρυθμίζοντάς τα να χρησιμοποιούν το ίδιο αντικείμενο TimeBase. Η διασύνδεση Clock παρουσιάζει μεθόδους για την λήψη και τη ρύθμιση του αντικειμένου TimeBase που συνδέεται με το Clock. Το Σχήμα 4 παρουσιάζει όλες τις μεθόδους της διασύνδεσης του Clock. Εκτός των άλλων που έχουν ειπωθεί, οι μέθοδοι που χρησιμοποιούνται συχνά είναι οι εξής: getmediatime ( ) και getmediananoseconds ( ). Για παράδειγμα, αυτές μπορούν να κληθούν επανειλημμένως ως μέσα που αναπαράγονται για να παρέχουν κάποια ανάδραση σε παρερχόμενο χρόνο για τον viewer. Ομοίως, οι setrate ( ) και setmediatime ( ) χρησιμοποιούνται για να παρέχουν έλεγχο στον χρήστη κατά τα σενάρια αναπαραγωγής (playback), αλλά μπορούν μόνο να κληθούν όταν το ρολόι (clock) είναι σταματημένο. C lo c k Interface long getmediananosecondso Tim e getm ediatim e() float getrateq Tim e getstoptim a() Time getsynchtime() TimeBase gettimebase() Tim e maptotimebase(tim e t) void setm ediatim e(tim e now) float setrateffloat factor) void setstoptime(time stoptime) void stopq Void synchstart(time at) Σχήμα 4 Η διασύνδεση Clock. 1.3 Χρόνος Υψηλού Επιπέδου: Η Διασύνδεση Controller H διασύνδεση Controller επεκτείνει άμεσα το Clock σε τρία πεδία: 12

13 Διευρύνει την έννοια του Stopped σε έναν αριθμό καταστάσεων που αφορούν την κατανομή των πόρων, έτσι ώστε να καταστεί καλύτερη η παρακολούθηση και ο έλεγχος της χρονοβόρας διαδικασίας. Παρέχει έναν μηχανισμό συμβάντος βάσει του οποίου μπορεί να διεξαχθεί η παρακολούθηση των καταστάσεων. Παρέχει έναν μηχανισμό βάσει του οποίου μπορούν να ληφθούν τα αντικείμενα που παρέχουν περαιτέρω έλεγχο στον controller. Στην κορυφή της διασύνδεσης βρίσκεται ο ευρέως χρησιμοποιούμενος Player- και οι διασυνδέσεις του Processor. Η επίτευξη μιας κατάστασης όπου ο έλεγχος, η επεξεργασία ή η αναπαραγωγή των μέσων μπορεί να ξεκινήσει, δεν αποτελεί μια στιγμιαία λειτουργία. Οι πόροι πρέπει να συγκεντρωθούν για να υποστηρίξουν αυτόν τον έλεγχο. Οι εργασίες που συμπεριελήφθησαν στην συγκέντρωση των πόρων περιλαμβάνουν το άνοιγμα αρχείων για ανάγνωση, φόρτωση ενδιάμεσης μνήμης, ή απόκτηση αποκλειστικού ελέγχου των συσκευών υλικού (π.χ. αποκωδικοποιητής υλικού). Αυτό το σημείο περιγράφεται στην επόμενη υποενότητα στην οποία ο χρόνος έχει ληφθεί για να συγκεντρώσει πόρους έτσι ώστε να μπορέσει να εμφανιστεί η αναπαραγωγή ενός βίντεο. Η διασύνδεση Controller υποδιαιρείται σε κατηγορία Stopped του Clock σε πέντε στάδια που αντανακλούν την κατάσταση ετοιμότητας του Controller: πόσο κοντά βρίσκεται στο να μπορέσει να ξεκινήσει. Αυτές οι πέντε καταστάσεις, προκειμένου να ξεκινήσει η λιγότερο έτοιμη (least prepared) έως την έτοιμη (prepared), είναι οι εξής: -Unrealized- Έχει δημιουργηθεί ένας Controller αλλά δεν έχει αναλάβει την συγκέντρωση πόρων. -Realizing- Μια κατάσταση μετάβασης που αντικατοπτρίζει το γεγονός ότι ο Controller συγκεντρώνει πληροφορίες σχετικά με τους πόρους που χρειάζονται για την εργασία του, καθώς και τη συγκέντρωση αυτών καθαυτών των πόρων. 13

14 -Realized- Μια σταθερή κατάσταση που αντικατοπτρίζει ένας Controller που έχει συγκεντρώσει όλους τους μη αποκλειστικούς πόρους που χρειάζονται για μια εργασία. -Prefetching- Κατάσταση μετάβασης που αντικατοπτρίζει το γεγονός ότι ο Controller συγκεντρώνει όλους τους πόρους που απαιτούνται για την εργασία του, που δεν ελήφθησαν σε κατάσταση realizing. Τυπικά αυτό σημαίνει την απόκτηση αποκλειστικής χρήσης των πόρων όπως το υλικό. -Prefetched- Ο Controller έχει αποκτήσει όλους τους απαραίτητους πόρους, έχει διεξάγει όλη την επεξεργασία προεκκίνησης (pre-startup processing), και είναι έτοιμος να ξεκινήσει. Η διασύνδεση Controller παρέχει έλεγχο προγράμματος για την κίνηση μεταξύ αυτών των καταστάσεων μέσω μιας σειράς μεθόδων. Ομοίως, η διασύνδεση Controller επιτρέπει την παρακολούθηση αυτών των μεταβάσεων στο πρόγραμμα μέσω ενός συστήματος συμβάντων. Τα αντικείμενα μπορούν να εφαρμόσουν την διασύνδεση ControllerListener και επομένως να αποσταλούν συμβάντα όπως οι μεταβάσεις του Controller μεταξύ διάφορων καταστάσεων. Το Σχήμα 5 παρουσιάζει τις μεθόδους και τις συνδεδεμένες μεταβάσεις μεταξύ των καταστάσεων. Το Σχήμα 6 παρουσιάζει τα συμβάντα που δημιουργούνται κατά τις μεταβάσεις του Controller μεταξύ των καταστάσεών του. Σχήμα 5 Μέθοδοι Controller που προκαλούν μεταβάσεις καταστάσεων 14

15 Σχήμα 6 Συμβάντα που δημιουργούνται κατά τις μεταβάσεις ενός ^ η ϋ ο! ^ μεταξύ των καταστάσεων Όπως φαίνεται στο Σχήμα 5, ένας Controller έχει πέντε μεθόδους για τον έλεγχο της μετάβασης μεταξύ των καταστάσεων. Οι μέθοδοι κίνησης προς τα εμπρός είναι οι εξής: realize ( ), prefetch ( ), και syncstart ( ) (από την διασύνδεση Clock), για την μετακίνηση του Controller σε κατάσταση πιο έτοιμη (more prepared) και εν τέλει σε κατάσταση Started. Είναι ασύγχρονες - επιστρέφουν αμέσως, αλλά η παραγόμενη ενέργεια γενικά χρειάζεται κάποιο χρόνο για να ολοκληρωθεί. Όταν η μετάβαση ολοκληρωθεί (ή διακοπεί από μια κλήση stop ( ) ή άλλη τέτοια κλήση), αναρτάται ένα συμβάν. Οι μέθοδοι αντίστροφης κατεύθυνσης είναι οι stop ( ) και deallocate ( ). Αυτές αποτελούν τις σύγχρονες μεθόδους. Η stop ( ) χρησιμοποιείται για να διακόψει έναν Controller που έχει ξεκινήσει Οι μεταβάσεις του Controller σε κατάσταση Prefetched (ή σε μερικές περιπτώσεις όπου οι πόροι πρέπει να εκχωρηθούν: Realized) και ενδέχεται στη συνέχεια να κάνει επανεκκίνηση. Η deallocate ( ) απελευθερώνει τους πόρους που έχουν καταναλωθεί από έναν Controller και πρέπει να χρησιμοποιηθούν για αυτό το σκοπό (για παράδειγμα, σε μια μέθοδο stop ( ) μιας μικροεφαρμογής (applet)). Η deallocate ( ) δεν μπορεί να κληθεί σε έναν Started Controller, διότι πρέπει να προηγηθεί διακοπή. H deallocate ( ) επιστρέφει έναν Controller σε κατάσταση Realized εάν βρίσκεται σε αυτήν την κατάσταση ή καλύτερα (σε μια κατάσταση παρόμοια με Started), διαφορετικά ο Controller επιστρέφει σε κατάσταση Unrealized. 15

16 Ένας Controller αναρτά συμβάντα σχετικά με τις αλλαγές της κατάστασής του. Αυτά τα αντικείμενα, καθώς επιθυμούν να ενημερωθούν για τα συμβάντα του Controller πρέπει να εφαρμόσουν την διασύνδεση ControllerListener. Η διασύνδεση ControllerListener αποτελείται από μια μεμονωμένη μέθοδο, την public synchronized void controllerupdate (ControllerEvent e) Τα αντικείμενα κοινοποιούν την επιθυμία τους να τους αποσταλούν τα συμβάντα Controlleris, καλώντας την μέθοδο Controlleris addcontrollerlistener ( ). Τα συμβάντα που αναρτώνται από έναν Controller εμπίπτουν σε μια εκ των τεσσάρων κατηγοριών: Μεταβάσεις κύκλου ζωής Αναγνώριση μεθόδου Πληροφορίες αλλαγής κατάστασης Ειδοποίηση σφάλματος Η TransitionEvent ή μια υποκλάση όπως η EndOfMediaEvent, αποτελεί μέσο αναφοράς αλλαγής κατάστασης του Controller. Τα συμβάντα αναγνώρισης μεθόδων RealizeCompleteEvent, PrefetchCompleteEvent, StartEvent, DeallocateEvent, και StopByRequestEvent χρησιμοποιούνται για να συνδέσουν την εκπλήρωση των αντίστοιχων μεθόδων- για παράδειγμα, η realize ( ) - που κάλεσαν τον Controller. Υπάρχουν τρία συμβάντα αλλαγής κατάστασης: RateChangeEvent, StopTimeChangeEvent, και MediaTimeSetEvent που ενημερώνουν τον listener για τις αλλαγές στο ρυθμό, την διακοπή του χρόνου, και όταν ένας νέος χρόνος των μέσων έχει ρυθμιστεί. Τα σφάλματα εμπίπτουν στην κλάση ControllerErrorEvent και συμπεριλαμβάνουν τα εξής: ResourceUnavailableEvent, DataLostErrorEvent και InternalErrorEvent. Άλλα σφάλματα εμφανίζονται ως εξαιρέσεις. Για παράδειγμα, στην προσπάθεια να syncstart έναν Controller πριν επιτύχει την κατάσταση Prefetched, θα έχει ως αποτέλεσμα να εμφανιστεί ένα NotPrefetchedError. 16

17 Το Σχήμα 7 παρουσιάζει όλες τις μεθόδους και τις σταθερές του Controller που δεν κληρονομούνται από τις διασυνδέσεις Clock ή Duration. Ανάμεσα στις σημαντικές μεθόδους της διασύνδεσης που δεν έχουν ειπωθεί προηγουμένως υπάγονται οι μέθοδοι close ( ), getstartlatency ( ), getcontrol ( ), και η getcontrols ( ). Close ( ) χρησιμοποιείται για να απελευθερώσει όλους τους πόρους και διακόπτει όλες τις δραστηριότητες που συνδέονται με έναν Controller. Ο Controller δεν μπορεί πλέον να χρησιμοποιηθεί (καλούνται οι μέθοδοί του) αφότου έχει κλείσει. Η μέθοδος getstartlatency ( ) επιστρέφει μια εκτίμηση του χρονικού περιθωρίου που απαιτείται στην χειρότερη περίπτωση πριν την παρουσίαση του πρώτου πλαισίου δεδομένων. Χρησιμοποιείται για να παρέχει μια εκτίμηση για τις κλήσεις του syncstart ( ). Η εκτίμηση είναι πιο ακριβής εάν ο Controller βρίσκεται σε κατάσταση Prefetched. Οι μέθοδοι getcontrol ( ) και getcontrols ( ) παρέχουν ένα μέσο για την απόκτηση των αντικειμένων Control. Αυτές μπορούν να χρησιμοποιηθούν για να μεταβάλλουν την συμπεριφορά του Controller. Οι Controls και Controllers αποτελούν δυο διαφορετικά πράγματα παρά την ατυχή ομοιότητα τους στο όνομά τους. Οι Controls θα περιγραφούν αναλυτικότερα σε επόμενη ενότητα. Time LATENCY^UNKNOWN Int Unrealized Int Realizing Ini Realized int Preteicing Int Prefetched int Started Controller Interface Void addcontrollerlistener(controllerlistener listener) void close)) void deallocate)) Control getcontro!(string aspect2control) Control)) getcontrols)); Tim e getstartlatency)) int getstate)) int gettargetstate)) void prefetch)) void realize)) void removecontrollerlistener)controllerlistener listener) Σχήμα 7 Η διασύνδεση Controller 1.4 Χρονισμός ενός Player 17

18 Για να περιγράψουμε τις έννοιες που καλύπτονται σε αυτήν την ενότητα και την διασύνδεση μεταξύ υψηλού και χαμηλού επιπέδου χρονικών μοντέλων που υποστηρίζει το JMF, η απλή μικροεφαρμογή του player BBPApplet τροποποιήθηκε ελαφρώς. Η τροποποίηση αποτελείται από την χρονοσήμανση και την εκτύπωση κάθε συμβάντος του Controller που έχει ληφθεί από την μικροεφαρμογή. Αυτό παρέχει μια απεικόνιση της χρονικής πορείας του player από τη στιγμή που ξεκίνησε η αναπαραγωγή μέχρι τον χρόνο που σταμάτησε η αναπαραγωγή του μέσου (mpeg video). Η τροποποίηση αυτή καθεαυτή είναι απλή, και από το να αναπαραχθεί ξανά ο κώδικας ολόκληρης της μικροεφαρμογής, θα αναλυθούν μόνο οι αλλαγές που διεξήχθησαν. Ένα αντικείμενο SystemTimeBase κατασκευάστηκε αμέσως πριν την εκκίνηση του Player. Κάθε φορά που εισαγόταν η μέθοδος controllerupdate ( ), στο αντικείμενο SystemTimeBase υποβάλλονταν ερωτήματα ως προς τον χρόνο, και αυτή η τιμή καθώς και το συμβάν που ελήφθη εμφανίζονταν στην οθόνη. Τα τρία βήματα ήταν τα εξής: 1. Όπου δηλώνονται άλλα χαρακτηριστικά όπως ο Player, δηλώνουν και επιπλέον χαρακτηριστικό -ένα αντικείμενο τύπου SystemTimeBase. // The object to be used to timestamp Controller events, protected SystemTimeBase timer; 2. Αμέσως πριν την ασύγχρονη κλήση του player.start ( ), δημιουργείστε ένα αντικείμενο SystemTimeBase στην μέθοδο init ( ). Από την στιγμιαία περιέλιξη προς τα εμπρός, ο timer θα συνεχίσει να κτυπάει με (ενδεχομένως) ακρίβεια νανοδευτερολέπτων. timer = new SystemTimeBase(); p l a y e r. s t a r t ( ) ; 3. Στην μέθοδο controllerupdate, υποβλήθηκε αμέσως ερώτημα σ αντικείμενο timer ως προς τον χρόνο του, και το εκτύπωσε (αφού μετατράπηκε σε δευτερόλεπτα) και το συμβάν που ελήφθη. // Print the time the event was received, together with the event, 18

19 // to the screen. System.out.printIn(MM+(double)timer.getNanosecondsQ/Time.0NE_ S E ^ N D + : + e ) ; Η έξοδος των δεδομένων χρονισμού όταν η μικροεφαρμογή που αναπαρήγαγε ένα mpeg video διάρκειας περίπου άνω των δυο λεπτών περιγράφεται στη Λίστα 1. Κάθε συμβάν του Controller που έχει ληφθεί από μια κλάση (που δημιουργείται από έναν Player) έχει χρονοσφραγίδα και έχει παραχθεί. Τα συμβάντα συμβαίνουν σε χρονολογική σειρά με μια χρονοσφραγίδα (timestamp) (σε δευτερόλεπτα), όντας το πρώτο τμήμα πληροφοριών στην γραμμή, που ακολουθείται από το συμβάν αυτό καθεαυτό. Το Σχήμα 8 παρουσιάζει τις μεταβάσεις των καταστάσεων μέσα στο χρόνο, λαμβάνοντας τις πιο σημαντικές πληροφορίες. Realizing Prefetching > 1.Θ Timer object Informed that Told about Realize Prefetch Created. Player is in process length of completed, completed of transition to video. and playback started state. started. Video finished playing. Σχήμα 8 Χρονοδιάγραμμα για τα συμβάντα που λαμβάνει ένας Player κατά την παρουσίαση ενός video Λίστα 1 Χρονισμός εξόδου πληροφοριών από την τροποποιημένη BBPApplet (Bare Bones Player Applet) 19

20 0.06: javax.media.transitionevent! source=com.sun.media.content.video.mpeg,handle ] 1.6: javax.media. DurationL?pdateEvent[source=com.sun.media. content, video, e2b 1.87: javax.media.realizecompleteevent[source=com.sun.media.content.video.mpeg.h 2.59: javax.media.transitionevent[source=com.sun.media.content.video.mpeg.handle ] 2.59: javax.media.pref etchcompleteevent [source=com.sun.media.content.video.mpeg. previous=prefetching,current Pref etched, target=started j 2.59: d39,previous=prefetched,current=started,target=started,mediatime=javax.media.tim i : javax.media.endofmediaevent[source=com.sun.media.content.video.mpeg.hand ia.t j : javax.media.durationllpdateeventj source=com.sun.media.content.video.mpeg. avax.media.time#484a05 Αυτό που είναι σαφές από την έξοδο και το σχήμα είναι ότι τα στάδια για την προετοιμασία της αναπαραγωγής των μέσων είναι χρονοβόρα, ιδιαίτερα από την άποψη ενός υπολογιστή που εκτελεί εκατομμύρια οδηγίες ανά δευτερόλεπτο. Το στάδιο realizing καταλαμβάνει πάνω από ένα ενάμισι δευτερόλεπτο, ενώ το στάδιο prefetch απαίτησε σχεδόν τρία τέταρτα ενός δευτερολέπτου, όλα για τα μέσα που αποθηκεύονται τοπικά στον σκληρό δίσκο. 2. Έλεγχος και Αλυσίδες Επεξεργασίας Τέσσερεις βασικές κλάσεις παίζουν κεντρικό ρόλο στον έλεγχο και την επεξεργασία του JMF. Αυτές οι τέσσερεις κλάσεις σχηματίζουν τους συνδέσμους σε μια αλυσίδα της οποίας το πρώτο στοιχείο είναι πάντα μια προέλευση μέσων. Ανάλογα με μια συγκεκριμένη εργασία που το μέσο τότε χειρίζεται (όπως αναπαραγωγή ή επεξεργασία), αυτός ο χειρισμός μπορεί να αποτελεί το τελικό αποτέλεσμα αυτό καθεαυτό (όπως ενός Player), ή ο χειρισμός μπορεί να έχει ως αποτέλεσμα νέα πηγή δεδομένων ή ακόμα και διαρκές αντικείμενο μέσων (media object) (για παράδειγμα ένα νέο αρχείο μέσων). 20

21 Το Σχήμα 9 παρουσιάζει τις βασικές κλάσεις που συμπεριλαμβάνονται στην αναπαραγωγή των μέσων. Τα μέσα προέρχονται μέσω ενός αντικειμένου DataSource. Αυτό χρησιμοποιείται για να δημιουργήσει ένα αντικείμενο Player, που αποδίδει το μέσο στις κατάλληλες συσκευές υλικού. Σχήμα 9 Αναπαραγωγή μέσων με το JMF: Τα μέσα προέρχονται μέσω μιας DataSource και αναπαράγονται με έναν Player. Το Σχήμα 10 παρουσιάζει τις βασικές κλάσεις που συμπεριλαμβάνονται στην επεξεργασία των μέσων. Όπως και με την αναπαραγωγή των μέσων, το πρώτο βήμα για την επεξεργασία αποτελεί η προέλευση των μέσων μέσω ενός αντικειμένου DataSource. Αυτό κατόπιν τίθεται υπό επεξεργασία - ένας περιεκτικός όρος που περιλαμβάνει πολυπλεξία/αποπολυπλεξία, εφέ, και διακωδικοποίηση. Το αποτέλεσμα της επεξεργασίας είναι άλλο ένα DataSource. Διευκρινίζοντας ότι η επεξεργασία μπορεί να είναι αλυσιδωτή, το DataSource που παράγεται στο πρώτο στάδιο της επεξεργασίας μπορεί να χρησιμεύσει ως DataSource εισόδου για ένα δεύτερο κύκλο επεξεργασίας. Ομοίως, η επεξεργασία θα μπορούσε να διεξαχθεί και τα αποτελέσματα να δοθούν στο αντικείμενο Player για τελική απόδοση (παρουσίαση). Σχήμα 10 Χρησιμοποιώντας έναν Processor: Η είσοδος φτάνει από ένα DataSource και ο Processor δημιουργεί ένα DataSource ως αποτέλεσμα της επεξεργασίας. 21

22 Το Σχήμα 11 παρουσιάζει τις εν λόγω βασικές κλάσεις όταν τα μέσα βάσει χρόνου (time-based media) που πρόκειται να παραχθούν, υπάρχουν μετά το πέρας του τερματισμού του προγράμματος JMF που τα παράγει. Όπως σε όλες τις περιπτώσεις, το αρχικό μέσο προέρχεται μέσω ενός αντικειμένου DataSource. Κατόπιν αυτό τυπικά τίθεται υπό επεξεργασία, όπως η διακωδικοποίηση σε διαφορετική μορφή, για να παραχθεί ένα νέο DataSource. Το DataSink για αυτό το δεύτερο DataSource λαμβάνεται έτσι ώστε να μπορέσουν να διατηρηθούν τα μέσα (για παράδειγμα, εγγεγραμμένα σε ένα αρχείο). Σχήμα 11 Χρησιμοποιώντας ένα DataSink σε δεδομένα εξόδου. Το DataSource που παράγεται από έναν Processor χρησιμεύει ως είσοδος στο DataSink. Οι κλάσεις του Player, Processor, DataSource και DataSink όλες αποτελούν τους MediaHandlers. Τόσο η διασύνδεση MediaHanldler όσο και οι τέσσερεις κλάσεις περιγράφονται σε ξεχωριστές ενότητες παρακάτω στην παρούσα εργασία. Τα μέσα λήψης περιπτώσεων για αυτές τις κλάσεις υπό το JFM επικεντρώνονται μέσω της κλάσης του manager που περιγράφεται παρακάτω. 3. Διαχείριση Πολυπλοκότητας Τα μέσα βάσει χρόνου (time-based media) αποτελούν μια ευρεία κατηγορία που συμπεριλαμβάνει όχι μόνο διαφορετικούς τύπους μέσων (π.χ. ήχου και εικόνας), αλλά επίσης και διαφορετικούς τύπους περιεχομένων (π.χ. QuickTime και AVI), και διαφορετικές μορφές συμπίεσης (π.χ. MPEG και CinePak). Αυτό οδηγεί σε πληθώρα διάφορων μέσων που διαφέρουν σε εννοιολογικό επίπεδο (οπτικό ή ακουστικό) στην ακολουθία δυαδικών ψηφίων (bit) βάσει των οποίων κωδικοποιούνται. Περαιτέρω πολυπλοκότητα 22

23 προστίθεται από το πλήθος συσκευών υλικού από τα οποία τα μέσα μπορούν να αποτυπώνονται, και στα οποία μπορούν να αποδοθούν. Από την άλλη μεριά, ο στόχος του JMF είναι να παρουσιάσει μια ενιαία, ανεξάρτητη από πλατφόρμες διασύνδεση για τον έλεγχο, την επεξεργασία, την αποτύπωση και την απόδοση των μέσων. Αυτό σημαίνει, για παράδειγμα, ένα ενιαίο πρόγραμμα που αναπαράγει τα μέσα ανεξαρτήτως των στοιχείων της κωδικοποίησής τους, και όχι ένα διαφορετικό πρόγραμμα για κάθε τύπο (category x content_type x encoding_scheme) των μέσων. Το JMF επιλύει με επιτυχία αυτά τα δυο αντικρουόμενα στοιχεία παρέχοντας τέσσερεις κλάσεις του manager των οποίων ο πρωταρχικός ρόλος είναι να εντοπίσουν τις πολυάριθμες κλάσεις που απαιτούνται για την υποστήριξη του χειρισμού των μέσων, ενώ προστατεύουν τον χρήστη από αυτήν την πολυπλοκότητα μέσω της παροχής απλής και σταθερής διασύνδεσης. Ουσιαστικά, οι managers δρουν ως μεσίτες ή μεσάζοντες μεταξύ του κώδικα του χρήστη και της αναγκαίας πολύπλοκης λειτουργικότητας που παρέχεται από το JMF. Το γεγονός αυτό παρέχει στον κώδικα του χρήστη ένα απλό και αφαιρετικό μοντέλο, απαλλαγμένο από ανεπιθύμητη πολυπλοκότητα. Το Σχήμα 12 περιγράφει τον εννοιολογικό ρόλο των managers. Η BBPApplet (Bare Bones Player Applet) παρέχει ένα καλό παράδειγμα αυτής της αφαιρετικότητας που διεξάγεται από τους managers. Η μικροεφαρμογή απλά ζητάει από τον manager να δημιουργήσει ένα αντικείμενο (Player) που να μπορεί να αναπαράγει τα μέσα όπως έχει υποδείξει. Ο manager ανταποκρίνεται με ένα αντικείμενο κατάλληλο για την εργασία. Το τρέχον αντικείμενο που παρέχεται θα εξαρτηθεί από τον τύπο του περιεχομένου και την μορφή των υπό εξέταση μέσων. Ωστόσο, από την οπτική γωνία της μικροεφαρμογής (applet), υπάρχει απλά ένα αντικείμενο Player που θα διεξάγει την εργασία. Ο manager απέκρυψε όλες τις λεπτομέρειες της εύρεσης και κατασκευής μιας παρουσίας της κατάλληλης κλάσης. 23

24 Player Interface void addcomtroller(controller tobecontrolled) Component getcontrolpanelcomponento GainControl getgaincontrol() Component getvisualcomponento void removecontroller(controller nologertobecontrolled) void start() Σχήμα 12 Ρόλος των κλάσεων manager (για παράδειγμα, Manager) ως μητρώο και προστασία του κώδικα του χρήστη από την αναγκαία πολυπλοκότητα των κλάσεων για την υποστήριξη του πλήθους των μορφών των μέσων. Το JMF διαθέτει τέσσερεις κλάσεις manager -καθεμία φέρει το όνομα Manager, σε ικανοποιητικό βαθμό. Καθεμία εκ των κλάσεων παρουσιάζει έναν αριθμό από στατικές μεθόδους μέσω των οποίων παρέχουν την υπηρεσία τους. Οι τέσσερεις κλάσεις είναι οι εξής: Manager- Η κεντρική κλάση management από την οποία λαμβάνονται οι Players, Processors, DataSources και DataSinks. Αυτός ο manager περιγράφεται στην επόμενη υποενότητα. CaptureDeviceManager- Ο Manager που ενθυλακώνει την γνώση των συσκευών απόδοσης (π.χ. ακουστικές ή οπτικές κάρτες απόδοσης) συνδεδεμένες με το μηχάνημα. Αυτός ο manager περιγράφεται προς το τέλος της εργασίας. PackageManager- O manager που παρέχει γνώση και έλεγχο στα πακέτα που συμβάλλουν στην λειτουργικότητα του JMF. PlugInManager- Ο manager που ενθυλακώνει τη γνώση των εγκατεστημένων plug-ins, καθώς και ένα μέσο καταχώρησης νέων. Το μοντέλο JMF ενός plug-in περιλαμβάνει πολυπλέκτες, αποπολυπλέκτες, κωδικοαποκωδικοποιητές, εφέ και προγράμματα απόδοσης (renderers). Παρόλο που υπάρχουν κενοί κατασκευαστές (constructors) για όλες τις κλάσεις εκτός από την κλάση Manager, όλες οι μέθοδοι που παρουσιάζονται 24

25 από τους manager είναι στατικές: Επικαλούνται με τη χρήση του ονόματος της κλάσης, και δεν χρειάζονται την παρουσία της κλάσης που κατασκευάζεται πριν να μπορέσει να επικαλεστεί. Συνεπώς, για παράδειγμα, για τη λήψη πληροφοριών για μια συγκεκριμένη αποκαλούμενη CaptureDevice, ο κώδικας πρέπει να είναι γραμμένος ως εξής: String devicename = "... " ; // Set to the actual name of the device CaptureDevicelnfo capturedinfo = CaptureDeviceManager.getDevice(deviceName); και όχι String devicename="..."; // Set to the actual name of the device CaptureDeviceManager capturedmanager = new CaptureDeviceManager( ); CaptureDevicelnfo capturedinfo = capturedmanager.getdevice(devicename); 3.1 Η Κλάση του Manager H κλάση του manager αποτελεί την ενιαία πιο σημαντική κλάση του manager, και εύλογα την πιο σημαντική κλάση στο JMF, δεδομένου του ρόλου της στη δημιουργία των Players, Processors, DataSinks και DataSources. Το Σχήμα 13 παρουσιάζει τις μεθόδους της κλάσης του Manager. Όπως μπορούμε να δούμε, ο Manager διαθέτει μεθόδους για τη δημιουργία των DataSources, DataSinks, Players και Processors. Έχει ήδη αναφερθεί σε προηγούμενη ενότητα ότι αυτές οι τέσσερεις κλάσεις παίζουν πρωταρχικό ρόλο στον έλεγχο και στην επεξεργασία των μέσων. Δεδομένης της σπουδαιότητάς τους, η σπουδαιότητα του Manager ως ο μόνος παράγοντας της δημιουργίας τους δεν θα πρέπει να υποτιμηθεί. 25

26 Σχήμα 13 Η κλάση του Manager Παρόλο που οι ακόλουθες ενότητες περιγράφουν τις κλάσεις Player, Processor, DataSource και DataSink, η δημιουργία τους μέσω της κλάσης του Manager περιγράφεται σε αυτήν την ενότητα Δημιουργία ενός Player Τα αντικείμενα που υλοποιούν την διασύνδεση Player χρησιμοποιούνται για τον έλεγχο της αναπαραγωγής (playback) των μέσων. Η κλάση του Manager παρέχει έξι μεθόδους για τη δημιουργία ενός Player. Οι τρεις εξ αυτών δημιουργούν έναν Unrealized Player: createplayer ( ), ενώ οι άλλες τρεις δημιουργούν έναν Realized (δηλαδή, με μερικούς πόρους και περισσότερο σε ετοιμότητα εκκίνησης) Player: createrealizedplayer ( ). Οι τρεις εκδοχές createrealizedplayer ( ) παρέχονται ως μέσο για να επιταχύνουν την δημιουργία ενός Player. Η μέθοδος καλεί μπλοκ (δηλαδή η επόμενη γραμμή του κώδικα δεν εκτελείται μέχρι την μετάβασή του Player σε κατάσταση Realized). Αυτό έχει το πλεονέκτημα ότι το Realized συμβάν δεν χρειάζεται να ακουστεί από αυτόν που επικαλείται την μέθοδο (και επομένως οι μέθοδοι όπως η getvisualcomponent ( ) μπορούν να κληθούν ως την επόμενη γραμμή). 26

27 Οι τρεις εκδοχές των μεθόδων δημιουργίας ενός Player (είτε για έναν Unrealized ή για έναν Realized Player) αποδέχονται τόσο έναν MediaLocator, URL, όσο και μια DataSource ως την μοναδική παράμετρο. Τα βήματα για τη δημιουργία ενός Player που ακολουθεί ένας Manager είναι τα ακόλουθα: 1. Μετατροπή του URL σε έναν MediaLocator (εάν χρησιμοποιείται μέθοδος βάσει URL). 2. Δημιουργία μιας DataSource για τον MediaLocator (εάν δεν χρησιμοποιείται μέθοδος βάσει DataSource). 3. Λήψη ενός Player που μπορεί να χειριστεί την DataSource. 4. Σύνδεση της DataSource με τον Player. 5. Επιστροφή του αντικειμένου Player. O! μέθοδοι δημιουργίας βάσει URL και MediaLocator είναι οι πιο ευρέως χρησιμοποιούμενες, διότι αντιστοιχούν στο τυπικό σενάριο κατά το οποίο χρησιμοποιείται ένας Player. Τα μέσα βρίσκονται σε κάποιες θέσεις (π.χ. σε ένα αρχείο) και χρειάζεται μόνο η αναπαραγωγή τους. Από την άλλη μεριά, η μέθοδος βάσει DataSource είναι χρήσιμη όταν η αναπαραγωγή αποτελεί το τελικό αποτέλεσμα σε μια αλυσίδα που συμπεριέλαβε άλλου είδους επεξεργασία (που παρήγαγε μια DataSource) σε προηγούμενα βήματα. Επομένως η τυπική χρήση του Manager για τη δημιουργία ενός Player είναι η εξής: MediaLocator locator = new MediaLocator(...); // Specify media location; Player player = Manager.createPlayer(locator); Εναλλακτικά, ένας Realized Player θα μπορούσε να δημιουργηθεί με την μέθοδο createrealizedplayer ( ) ως εξής: MediaLocator = new MediaLocator(...); // Specify the media location; Player player = Manager.createRealizedPlayer(locator); Κατά τη δημιουργία ενός αντικειμένου Player, ο Manager ακολουθεί ένα σύνολο αλγορίθμων αναζήτησης μέσω διαφόρων κλάσεων του Player 27

28 αναζητώντας έναν ικανό να χειριστεί τον τύπο του περιεχομένου που καθορίζει η DataSource (που κατασκευάστηκε ως προηγούμενο μέρος της διαδικασίας εάν η DataSource δεν ήταν εφοδιασμένη με αυτήν την μέθοδο). Η διαδικασία είναι μια απλή γραμμική επανάληψη μέσω της λίστας των κατασκευασμένων ονομάτων της κλάσης μέχρι να βρεθεί αυτό που θα είναι ικανό να χειριστεί τα μέσα. Εάν ο Manager δεν μπορεί να δημιουργήσει έναν Player, ενδεχομένως να εμφανίσει μια loexception (δηλαδή ένα αρχείο που δεν υπάρχει), μια NoPlayerException (δηλαδή, έναν τύπο περιεχομένου που δεν χειρίζεται το JMF), ή στην περίπτωση των μεθόδων createrealizedplayer ( ), μια CannotRealizedException (δηλαδή, δεν θα μπορούσε να λάβει τους απαραίτητους πόρους). Οι Players θα συζητηθούν περαιτέρω σε επόμενη ενότητα Δημιουργία ενός Processor Τα αντικείμενα που υλοποιούν την διασύνδεση Processor χρησιμοποιούνται για τον έλεγχο της επεξεργασίας των μέσων. Η κλάση του Manager παρέχει τέσσερεις μεθόδους για τη δημιουργία ενός Processor. Οι τρεις εξ αυτών δημιουργούν έναν Unrealized Processor: createprocessor ( ), ενώ η τελική μέθοδος δημιουργεί έναν Realized (δηλαδή, με μερικούς πόρους και περισσότερο σε ετοιμότητα εκκίνησης) Processor: createrealizedprocessor ( ). Η μέθοδος createrealizedprocessor ( ) παρέχεται ως μέσο για να επιταχύνει την δημιουργία ενός Processor. Η μέθοδος καλεί μπλοκ (δηλαδή η επόμενη γραμμή του κώδικα δεν εκτελείται μέχρι να γίνει ο Processor Realized). Αυτό έχει ένα πλεονέκτημα που το Realized συμβάν δεν χρειάζεται να ακουστεί από τον επικαλούμενο της μεθόδου. Η μέθοδος createrealizedprocessor ( ) δέχεται μια μοναδική παράμετρο δηλαδή το ProcessorModel, το οποίο καθορίζει πλήρως την μορφή εισόδου ή εξόδου των μέσων, και επομένως τη διεξαγωγή της επεξεργασίας. 28

29 Οι τρεις μεταβλητές του createprocessor ( ) έχουν την ίδια μορφή όπως και για τη δημιουργία του Player: αποδοχή είτε ενός MediaLocator, URL ή της DataSource ως μοναδική παράμετρο. Ομοίως, ο Manager ακολουθεί την ίδια διαδικασία για τη δημιουργία ενός Processor όπως και για τη δημιουργία ενός Player. 1. Μετατροπή του URL σε έναν MediaLocator (εάν χρησιμοποιείται μέθοδος βάσει URL). 2. Δημιουργία μιας DataSource για τον MediaLocator (εάν δεν χρησιμοποιείται μέθοδος βάσει DataSource). 3. Λήψη ενός Processor που μπορεί να χειριστεί την DataSource. 4. Σύνδεση της DataSource με τον Processor. 5. Επιστροφή του αντικειμένου Processor. O! μέθοδοι δημιουργίας βάσει URL και MediaLocator θα πρέπει να χρησιμοποιηθούν στην περίπτωση όπου η επεξεργασία αποτελεί το πρώτο βήμα στην αλυσίδα ελέγχου. Εναλλακτικά, εάν αποτελεί επόμενο βήμα (για παράδειγμα αλυσιδωτή επεξεργασία), η μέθοδος βάσει DataSource πρέπει να χρησιμοποιηθεί. Επομένως η τυπική χρήση του Manager για τη δημιουργία ενός Processor είναι η εξής: MediaLocator locator = new MediaLocator(...); // Specify media location; Processor processor = Manager.createProcessor(locator); Εναλλακτικά, ένας Realized Processor θα μπορούσε να δημιουργηθεί με την μέθοδο createrealizedprocessor ( ) ως εξής: //Specify the model for processing ProcessorModel model = new ProcessorModel...); // Create the processor Processor processor = Manager.createRealizedProcessor(model); 29

30 Κατά τη δημιουργία ενός αντικειμένου Processor, ο Manager ακολουθεί ένα σύνολο αλγορίθμων αναζήτησης μέσω διαφόρων κλάσεων του Processor για να αντιστοιχήσει στην ίδια προσέγγιση όπως χρησιμοποιείται και για τη δημιουργία του Player. Εάν ο Manager δεν μπορεί να δημιουργήσει έναν Processor, ενδεχομένως να εμφανίσει μια ^Exception (δηλαδή ένα αρχείο που δεν υπάρχει), μια NoProcessorException (δηλαδή, έναν τύπο περιεχομένου που δεν χειρίζεται το JMF), ή στην περίπτωση των μεθόδων createrealizedprocessor ( ), μια CannotRealizedException (δηλαδή δεν θα μπορούσε να λάβει τους απαραίτητους πόρους). Οι Processors θα συζητηθούν περαιτέρω σε επόμενη ενότητα Δημιουργία μιας DataSource Οι DataSouces αποτελούν τα μέσα από τα οποία οι Players, Processors, ή DataSinks λαμβάνουν τα δεδομένα τους. Η δημιουργία ενός Player, Processor ή DataSink πάντα περιλαμβάνει μια DataSource, είτε παρέχεται διεξοδικά κατά την μέθοδο δημιουργίας (όπως κατά τη δημιουργία ενός Datasink), είτε δημιουργείται ως μέρος μιας ευρύτερης διαδικασίας (όπως κατά τη δημιουργία ενός Player όπου παρέχεται ο MediaLocator). Οι λεπτομέρειες των DataSources παρατίθενται πλήρως σε επόμενη ενότητα. Υπάρχουν δυο μέθοδοι για τη δημιουργία μιας DataSource από έναν προσδιορισμό θέσης (URL ή MediaLocator) με τη χρήση της createdatasource ( ). Υπάρχουν επίσης άλλες δυο μέθοδοι για τη δημιουργία εξειδικευμένων DataSources: η συγχώνευση της DataSource (μια που συνδυάζει δυο ή περισσότερες DataSources) με createmergingdatasource ( ) και η δημιουργία μιας κλωνοποιήσιμης DataSource (μιας που μπορεί να κλωνοποιηθεί για να τεθεί υπό επεξεργασία ή αναπαραγωγή από διαφορετικά συστήματα ταυτόχρονα) με την createcloneabledatasource ( ). 30

31 Η λίστα 2 παρουσιάζει έναν αριθμό από μεθόδους δημιουργίας της DataSource που χρησιμοποιούνται σε ένα υποθετικό σενάριο κατά το οποίο δημιουργούνται δυο DataSources, η μία κλωνοποιείται (ώστε να μπορέσει για διεξαχθεί διπλή επεξεργασία), και κατόπιν οι δυο πηγές συνδυάζονται. Λίστα 2 Υποθετικό Σενάριο ϋβίββοϋγοθ MediaLocator firstlocation = new MediaLocatorj..,); //Location of 1" media MediaLocator secondlocation = new MediaLocator(...); // Location of 2nd media try { // Create the two datasources. DataSource firstsrc = Manager.createDataSource(firstLocation); DataSource secondsrc = Manager.createDataSource(secondLocation); // Create cloneable version of 2ni src, then clone it. DataSource cloneablesrc = Manager.createCloneableDataSource(secondSrc); DataSource clonea = cloneablesrc.createclone(); // Create a merged DataSource combining the 1st and 2"d DataSources. DataSource s r c A r ra y - new D atasource 12 ] ; s r c A r r a y ib l = f i r s t S r c, s r c A r r a y [ 1 ) - clonea,; Oatasouroed merge-dsrcs - Manager.createditorgingDatasource/srcArray); Οι DataSources αναγνωρίζονται από το πρωτόκολλο που υποστηρίζουν. Κατά τη δημιουργία μιας DataSource, η κλάση του Manager ακολουθεί μια παρόμοια προσέγγιση όπως αυτή που χρησιμοποιήθηκε από τη δημιουργία του Player και του Processor. Συντάσσεται μια λίστα των κλάσεων που υποστηρίζουν το καθορισμένο πρωτόκολλο (από το URL ή τον MediaLocator) και αυτή η λίστα αναζητείται γραμμικά μέχρι να βρεθεί μια κλάση ικανή να καθορίσει την προέλευση των μέσων. Αστοχία στη δημιουργία μιας DataSource από ένα URL ή έναν MediaLocator θα έχει ως αποτέλεσμα η μέθοδος να εμφανίσει μια ^Exception ή μια NoDataSourceException. Η αστοχία στη δημιουργία της συγχώνευσης της DataSource θα έχει ως αποτέλεσμα να εμφανιστεί μια IncompatibleSourceException. 31

32 3.1.4 Δημιουργία ενός DataSink Τα DataSinks χρησιμοποιούνται για να λάβουν τα μέσα από μια DataSource και να αποδοθούν σε μια συγκεκριμένη θέση (π.χ. ένα αρχείο). Η κλάση του Manager παρέχει μια μοναδική μέθοδο, την createdatasink ( ), για τη δημιουργία ενός DataSink. Η μέθοδος δέχεται δυο παραμέτρους- μια DataSource από την οποία προέρχονται τα μέσα, και έναν MediaLocator που καθορίζει την θέση προορισμού. Τα βήματα που ακολουθεί η κλάση του Manager κατά τη δημιουργία μιας παρουσίας DataSource είναι όμοια με αυτά που χρησιμοποιούνται για τη δημιουργία μιας DataSource -με το πρωτόκολλο του MediaLocator που χρησιμοποιείται για τη σύνταξη μιας λίστας των κλάσεων του DataSink που υποστηρίζουν το πρωτόκολλο. Αυτή η λίστα κατόπιν αναζητείται για την εύρεση της κατάλληλης κλάσης για την οποία μπορεί να δημιουργηθεί μια παρουσία. Αστοχία στη δημιουργία ενός DataSink θα έχει ως αποτέλεσμα να εμφανιστεί μια ΝοDataSink exception. Τα DataSinks περιγράφονται σε ακόλουθη ενότητα. Ωστόσο, ως παράδειγμα της χρήσης τους, η Λίστα 3 παρουσιάζει ένα τμήμα (δημιουργία ενός αντικειμένου) της διαδικασίας κατά την οποία θα μπορούσε να χρησιμοποιηθεί ένα DataSink για τη δημιουργία αντιγράφου του αρχείου των μέσων. (Προφανώς θα ήταν μακράν πιο αποτελεσματικό για να γίνει απλά αντιγραφή του αρχείου με τη χρήση των εντολών του λειτουργικού συστήματος.) Λίστα 3 Μερικά από τα Κύρια Βήματα για τη Χρήση ενός Αντικειμένου DataSink String origin = "file:..."; - String destination = file:...'1; MediaLocator originlocation = new MediaLocator( origin); MediaLocator destinationlocation = new MediaLocator( destination); Processor p = Manager. createrealizedprocessor( null); DataSource src = p. g e t D a t a O u t p u t O ; DataSink dest = M a n a g e r.createdatasink{src,destinationlocation); 32

33 3.2 Ερωτήματα/Αιτήματα στον Manager Εκτός από τις μεθόδους για τη δημιουργία των Players, Processors, DataSources και DataSinks, η κλάση του Manager παρέχει έναν αριθμό μεθόδων πληροφοριών- μεθόδων που παρέχουν πληροφορίες για τη διαμόρφωση και την υποστήριξη της εγκατεστημένης έκδοσης του JMF. Αυτές οι μέθοδοι πληροφοριών είναι οι διάφορες μέθοδοι get* ( ): gethint ( ) - Λαμβάνει πληροφορίες για hints που παρέχονται στο JMF. GetCacheDirectory ( )- Προσδιορίζει τον κατάλογο που χρησιμοποιεί το JMF για προσωρινή αποθήκευση. getdatasourcelist ( )- Προσδιορίζει τις κλάσεις DataSource που υποστηρίζουν ένα συγκεκριμένο πρωτόκολλο. gethandlerclasslist ( )- Προσδιορίζει τις κλάσεις του Player που υποστηρίζουν έναν συγκεκριμένο τύπο περιεχομένου. getprocessorclasslist ( )- Προσδιορίζει τις κλάσεις του Processor που υποστηρίζουν έναν συγκεκριμένο τύπο περιεχομένου. Η μέθοδος gethint ( ) πρέπει να μεταβιβαστεί ως μια εκ των σταθερών που καθορίζονται στην κλάση του Manager (π.χ. CACHING) και επιστρέφει τη ρύθμιση για αυτήν ως παρουσία του Αντικειμένου (Object). Η μέθοδος getcachedirectory ( ) δεν έχει παραμέτρους και επιστρέφει ένα String. Οι τρεις μέθοδοι get*list ( ), getdatasourcelist ( ), gethandlerclasslist ( ) και getprocessorclasslist ( ) καθεμιά αποδέχεται ένα String που καθορίζει τον τύπο περιεχομένου ή το πρωτόκολλο, για το οποίο υποβάλλεται ερώτημα στην υποστήριξη. Οι μέθοδοι επιστρέφουν έναν Vector. Τα στοιχεία του Vector είναι τα Strings, και αυτά τα Strings είναι οι πλέον κατάλληλες ονομασίες των κλάσεων που παρέχουν αυτήν την υποστήριξη. Η Λίστα 4 αποτελεί μια εφαρμογή του ManagerQuery, που χρησιμοποιεί τις πληροφορίες που συγκεντρώνουν τις μεθόδους του Manager για να παρέχουν στον χρήστη λεπτομέρειες σχετικά με το JMF. Κατά την εκτέλεση του 33

34 προγράμματος, οι χρήστες μπορούν να υποβάλλουν ερωτήματα στο JMF για την υποστήριξη του (Players, Processors, ή DataSources) για διαφορετικές μορφές και πρωτοκόλλα. Εναλλακτικά, μια ολοκληρωμένη εικόνα μπορεί να σχηματιστεί εάν δεν καθοριστούν συγκεκριμένες μορφές και πρωτόκολλα: Σε αυτήν την περίπτωση καταγράφονται όλες οι κλάσεις που υποστηρίζουν όλες τις γνωστές μορφές. Ομοίως, μια γραφική εφαρμογή GUIManagerQuery, βάσει ManagerQuery. Παρέχει την ίδια λειτουργικότητα όπως το ManagerQuery αλλά με γραφική διασύνδεση χρήστη. 34

35 Λίστα 4 Η Εφαρμογή του ΜθΠθςθΓΟϋθΓγ που χρησιμοποιείται για να ανακαλύψει πληροφορίες σχετικά με το ύμρ. /ft******»»*.*...,aw*,... ' ManagerQuery - Query the manager class about the configuration and * support of the installed JMF version. Managerduery is a text-based * application that provides a report on the support of the JMF for * P la y e r s, P r o c e s s o rs and D a ta S in k s. if * W ith o u t any c o m m a n d -lin e a rg u m e n ts M a n a g e rq u e ry p r i n t s a c o m p le te * (LONG) l i s t o f P la y e r, P r o c e s s o r, and D a ta S o u rc e c la s s e s t h a t * s u p p o r t th e v a r i o u s f o r m a t s, p r o t o c o l s, and c o n t e n t t y p e s. * * A l t e r n a t i v e l y i t i s p o s s i b l e t o p r o v id e c o m m a n d -lin e a rg u m e n ts ' s p e c i f y i n g th e f o r m a t o r p r o t o c o l f o r w h ic h s u p p o r t i s t o be * c h e c k e d - The means o f c a l l i n g i s as f o l l o w s : * ja v a M an a g e rq u e ry [ [ -h -pf-cfj s u p p o r t l s u p p o r t 2... s u p p o r t N ] * The -h f l a g s p e c i f i e s h a n d le r s ( P la y e r s ) o n l y. ' The -p f l a g s p e c i f i e s P r o c e s s o r s o n l y. * The -d f l a g s p e c i f i e s D a ta S c u r c e s o n l y. * L e a v in g o f f t h e f l a g d e f a u l t s b e h a v io u r t o c h e c k in g f o r P la y e r s * o n ly. it * F o r in s t a n c e : * ja v a M an a g e rq u e ry -h mp3 u la w * w o u ld l i s t th e C la s s e s c a p a b le o f P la y in g t h e MP3 (MPEG, L a y e r 3 ) * and u- Law formats (codecs). * * M an a g e rq u e ry a lw a y s p r i n t s t h e v e r s i o n o f JMF, c a c h in g d i r e c t o r y, * and h i n t s p r i o r t o a n y o t h e r o u t p u t. * * ^ a u t h o r S p ik e B a r lo w M r* * * *'*'* *-** ** ** * * * '* * * - '* '* - * - * * # * * * * * * * * '* * * * - * * " * - * * * * * * * * * * * '* * * '* - * '* * * * * - * '* ^ import javax.media.*; import javax.media.protocol.*; import javax.media.format.*; import java.util.*; public class ManagerQuery { /////////////////////////////////////////////////// // Constants to facilitate selection of the // approprite get*list() method. /////////////////////////////////////////////////// public Static final int HANDLERS = 1; public Static final int PROCESSORS = 2; public static final int DATASOURCES = 3; /////////////////////////////////////////////////////// II Array containing all the content types that JMF2.1.1 // supports. This is used when the user provides no // command -line arguments in order to generate a // complete list of support for all the content types. ///////////////////////////////////////////////////////// 35

ιαδικτυακές Εφαρµογές Πραγµατικού Χρόνου µε Java

ιαδικτυακές Εφαρµογές Πραγµατικού Χρόνου µε Java ιαδικτυακές Εφαρµογές Πραγµατικού Χρόνου µε Java Java Media Framework Ηβιβλιοθήκη JMF Εγκαθίσταται επιπρόσθετα στη Java Αναπαραγωγή πολυµέσων Αποστολή και λήψη πολυµέσων σε πραγµατικό χρόνο Γραφικά αντικείµενα

Διαβάστε περισσότερα

ΕΓΧΕΙΡΙΔΙΟ ΜΑΘΗΤΗ. της Πλατφόρμας Τηλεκατάρτισης

ΕΓΧΕΙΡΙΔΙΟ ΜΑΘΗΤΗ. της Πλατφόρμας Τηλεκατάρτισης ΕΓΧΕΙΡΙΔΙΟ ΜΑΘΗΤΗ της Πλατφόρμας Τηλεκατάρτισης ΠΕΡΙΕΧΟΜΕΝΑ 1. Εισαγωγή...2 2. Αρχική σελίδα, Εισαγωγή & Περιβάλλον Συστήματος...3 2.1. Αρχική σελίδα εισαγωγής...3 2.2. Εισαγωγή στην Πλατφόρμα Τηλε-κατάρτισης...4

Διαβάστε περισσότερα

ΕΓΧΕΙΡΙΔΙΟ ΟΔΗΓΙΩΝ ΧΡΗΣΤΗ. Ηλεκτρονική Υποβολή Α.Π.Δ.

ΕΓΧΕΙΡΙΔΙΟ ΟΔΗΓΙΩΝ ΧΡΗΣΤΗ. Ηλεκτρονική Υποβολή Α.Π.Δ. ΕΓΧΕΙΡΙΔΙΟ ΟΔΗΓΙΩΝ ΧΡΗΣΤΗ Ηλεκτρονική Υποβολή Α.Π.Δ. ΠΕΡΙΕΧΟΜΕΝΑ 1) Είσοδος στην εφαρμογή 2) Δημιουργία Περιόδου Υποβολής 2.α) Ακύρωση Περιόδου Υποβολής 3) Μέθοδος Υποβολής: Συμπλήρωση Φόρμας 3.α) Συμπλήρωση

Διαβάστε περισσότερα

public void printstatement() { System.out.println("Employee: " + name + " with salary: " + salary);

public void printstatement() { System.out.println(Employee:  + name +  with salary:  + salary); Κληρονομικότητα Η κληρονομικότητα (inheritance) αποτελεί έναν από τους χαρακτηριστικότερους μηχανισμούς των αντικειμενοστρεφών γλωσσών προγραμματισμού. Επιτρέπει την δημιουργία μιας νέας κλάσης απορροφώντας

Διαβάστε περισσότερα

Ορισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα

Ορισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα ΝΗΜΑΤΑ ΣΤΗ JAVA (1) Ορισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα πρόγραµµα. Αιτία Η δυνατότητα αποµόνωσης (ή αυτονόµησης) κάποιων

Διαβάστε περισσότερα

ιαδικτυακές Εφαρµογές

ιαδικτυακές Εφαρµογές ιαδικτυακές Εφαρµογές µε Java2 Στοιχεία ικτυακής Επικοινωνίας Όροι IP address 32bit αριθµός που χρησιµοποιείται από το Internet Protocol για την παράδοση δεδοµένων στο σωστό υπολογιστή στο δίκτυο. Port

Διαβάστε περισσότερα

Οδηγός γρήγορης εκκίνησης του PowerSuite

Οδηγός γρήγορης εκκίνησης του PowerSuite Το PowerSuite είναι η ολοκληρωμένη λύση απόδοσης για τον υπολογιστή σας. Ενσωματώνοντας το RegistryBooster, το DriverScanner και το SpeedUpMyPC σε ένα ενιαίο περιβάλλον εργασίας σάρωσης, το PowerSuite

Διαβάστε περισσότερα

2 Ορισμός Κλάσεων. Παράδειγμα: Μηχανή για Εισιτήρια. Δομή μιας Κλάσης. Ο Σκελετός της Κλάσης για τη Μηχανή. Ορισμός Πεδίων 4/3/2008

2 Ορισμός Κλάσεων. Παράδειγμα: Μηχανή για Εισιτήρια. Δομή μιας Κλάσης. Ο Σκελετός της Κλάσης για τη Μηχανή. Ορισμός Πεδίων 4/3/2008 Παράδειγμα: Μηχανή για Εισιτήρια 2 Ορισμός Κλάσεων Σύνταξη κλάσης: πεδία, κατασκευαστές, μέθοδοι Ένας αυτόματος εκδότης εισιτηρίων είναι μια μηχανή που δέχεται χρήματα και εκδίδει ένα εισιτήριο. Εκδίδει

Διαβάστε περισσότερα

Χρήση της αναπαραγωγής ipod

Χρήση της αναπαραγωγής ipod Χρήση της αναπαραγωγής ipod Χρήση της αναπαραγωγής ipod Μόλις συνδέσετε ένα ipod, μπορείτε να εκτελέσετε αναπαραγωγή αρχείων μουσικής ή βίντεο ipod. Με τη χρήση του δέκτη, μπορείτε να εκτελέσετε λειτουργίες

Διαβάστε περισσότερα

Βάσεις δεδομένων (Access)

Βάσεις δεδομένων (Access) Βάσεις δεδομένων (Access) Όταν εκκινούμε την Access εμφανίζεται το παρακάτω παράθυρο: Για να φτιάξουμε μια νέα ΒΔ κάνουμε κλικ στην επιλογή «Κενή βάση δεδομένων» στο Παράθυρο Εργασιών. Θα εμφανιστεί το

Διαβάστε περισσότερα

2.1. Εντολές. 2.2. Σχόλια. 2.3. Τύποι Δεδομένων

2.1. Εντολές. 2.2. Σχόλια. 2.3. Τύποι Δεδομένων 2 Βασικές Εντολές 2.1. Εντολές Οι στην Java ακολουθούν το πρότυπο της γλώσσας C. Έτσι, κάθε εντολή που γράφουμε στη Java θα πρέπει να τελειώνει με το ερωτηματικό (;). Όπως και η C έτσι και η Java επιτρέπει

Διαβάστε περισσότερα

3 Αλληλεπίδραση Αντικειμένων

3 Αλληλεπίδραση Αντικειμένων Αφαίρεση και Αρθρωσιμότητα 3 Αλληλεπίδραση Αντικειμένων Πώς συνεργάζονται τα αντικείμενα που δημιουργούμε Αφαίρεση (abstraction) είναι η δυνατότητα να αγνοούμε τις λεπτομέρειες και να εστιάζουμε την προσοχή

Διαβάστε περισσότερα

Το πρόγραμμα HelloWorld.java. HelloWorld. Κλάσεις και Αντικείμενα (2) Ορισμός μιας Κλάσης (1) Παύλος Εφραιμίδης pefraimi ee.duth.

Το πρόγραμμα HelloWorld.java. HelloWorld. Κλάσεις και Αντικείμενα (2) Ορισμός μιας Κλάσης (1) Παύλος Εφραιμίδης pefraimi <at> ee.duth. Το πρόγραμμα HelloWorld.java Σχόλια στη Java HelloWorld Παύλος Εφραιμίδης pefraimi ee.duth.gr Java Το πρόγραμμα HelloWorld 1 Java Το πρόγραμμα HelloWorld 2 Σχόλια στη Java ΗγλώσσαJava υποστηρίζει

Διαβάστε περισσότερα

Περιεχόµενα. 1 Εισαγωγή στις οµές εδοµένων 3. 2 Στοίβα (Stack) 5

Περιεχόµενα. 1 Εισαγωγή στις οµές εδοµένων 3. 2 Στοίβα (Stack) 5 Περιεχόµενα 1 Εισαγωγή στις οµές εδοµένων 3 2 Στοίβα (Stack) 5 i ΠΕΡΙΕΧΟΜΕΝΑ ΠΕΡΙΕΧΟΜΕΝΑ ii Πληροφορίες Εργαστηρίου Σκοπός του εργαστηρίου Το εργαστήριο οµές εδοµένων αποσκοπεί στην εφαρµογή των τεχνολογιών

Διαβάστε περισσότερα

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4 «Προγραμματισμός Η/Υ» - Τετράδιο Εργαστηρίου #4 2 Γενικά Στο Τετράδιο #4 του Εργαστηρίου θα αναφερθούμε σε θέματα διαχείρισης πινάκων

Διαβάστε περισσότερα

Κωδικοποίηση βίντεο (MPEG)

Κωδικοποίηση βίντεο (MPEG) Κωδικοποίηση βίντεο (MPEG) Εισαγωγή στο MPEG-2 Κωδικοποίηση βίντεο Κωδικοποίηση ήχου Ροή δεδοµένων Εισαγωγή στο MPEG-4 οµή σκηνών Κωδικοποίηση ήχου και βίντεο Τεχνολογία Πολυµέσων 11-1 Εισαγωγή στο MPEG-2

Διαβάστε περισσότερα

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι:

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Μια δομή δεδομένων στην πληροφορική, συχνά αναπαριστά οντότητες του φυσικού κόσμου στον υπολογιστή. Για την αναπαράσταση αυτή, δημιουργούμε πρώτα ένα αφηρημένο μοντέλο στο οποίο προσδιορίζονται

Διαβάστε περισσότερα

ΓΡΑΦΕΙΟ ΤΗΛΕΔΙΑΣΚΕΨΗΣ ΚΑΙ ΠΟΛΥΜΕΣΩΝ

ΓΡΑΦΕΙΟ ΤΗΛΕΔΙΑΣΚΕΨΗΣ ΚΑΙ ΠΟΛΥΜΕΣΩΝ ΓΡΑΦΕΙΟ ΤΗΛΕΔΙΑΣΚΕΨΗΣ ΚΑΙ ΠΟΛΥΜΕΣΩΝ ΤΟΜΕΑΣ ΔΙΚΤΥΩΝ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΥΠΗΡΕΣΙΑ ΠΛΗΡΟΦΟΡΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΥΠΗΡΕΣΙΑ ΤΗΛΕΔΙΑΣΚΕΨΕΩΝ epresence Οδηγός συμμετοχής σε τηλεδιάσκεψη Τελευταία ημερομηνία αναθεώρησης:

Διαβάστε περισσότερα

Εξεταστέα Ύλη (Syllabus) Έκδοση 5.0

Εξεταστέα Ύλη (Syllabus) Έκδοση 5.0 Εξεταστέα Ύλη (Syllabus) Έκδοση 5.0 Πνευματικά Δικαιώματα 2007 Ίδρυμα ECDL (ECDL Foundation www.ecdl.org) Όλα τα δικαιώματα είναι κατοχυρωμένα. Κανένα μέρος αυτού του εγγράφου δεν μπορεί να αναπαραχθεί

Διαβάστε περισσότερα

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Δρ. Κόννης Γιώργος Πανεπιστήμιο Κύπρου - Τμήμα Πληροφορικής Προγραμματισμός Στόχοι 1 Να περιγράψουμε τις έννοιες του Υπολογιστικού Προβλήματος και του Προγράμματος/Αλγορίθμου

Διαβάστε περισσότερα

Συνοπτικός Οδηγός Χρήσης του Moodle για τον Καθηγητή

Συνοπτικός Οδηγός Χρήσης του Moodle για τον Καθηγητή Συνοπτικός Οδηγός Χρήσης του Moodle για τον Καθηγητή 1 Πίνακας Περιεχομένων 1. Εισαγωγή... 4 1.1 Περιβάλλον Moodle...4 1.2 Χρήση ονόματος χρήστη και κωδικού...4 1.3 Δημιουργία νέου μαθήματος...4 1.3.1

Διαβάστε περισσότερα

ΕΣΔ 200: ΔΗΜΙΟΥΡΓΙΑ ΠΕΡΙΕΧΟΜΕΝΟΥ ΙΙ. Ακαδημαϊκό Έτος 2011 2012, Χειμερινό Εξάμηνο Διδάσκων Καθ.: Νίκος Τσαπατσούλης

ΕΣΔ 200: ΔΗΜΙΟΥΡΓΙΑ ΠΕΡΙΕΧΟΜΕΝΟΥ ΙΙ. Ακαδημαϊκό Έτος 2011 2012, Χειμερινό Εξάμηνο Διδάσκων Καθ.: Νίκος Τσαπατσούλης ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ, ΤΜΗΜΑ ΕΠΙΚΟΙΝΩΝΙΑΣ & ΣΠΟΥΔΩΝ ΔΙΑΔΙΚΤΥΟΥ ΕΣΔ 200: ΔΗΜΙΟΥΡΓΙΑ ΠΕΡΙΕΧΟΜΕΝΟΥ ΙΙ Ακαδημαϊκό Έτος 2011 2012, Χειμερινό Εξάμηνο Διδάσκων Καθ.: Νίκος Τσαπατσούλης ΕΡΩΤΗΣΕΙΣ ΕΠΑΝΑΛΗΨΗΣ

Διαβάστε περισσότερα

1. ΑΡΧΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

1. ΑΡΧΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ 12 Σχεδιασμός Ανάπτυξη Λειτουργία Π.Σ. 1. ΑΡΧΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ 1.1 Δυνατότητες Λειτουργικών Συστημάτων 1.1.1 Εισαγωγή Ο όρος Λειτουργικό Σύστημα (Operating System), εκφράζει το σύνολο των προγραμμάτων

Διαβάστε περισσότερα

Λειτουργικά Συστήματα Κεφάλαιο 2 Οργάνωση Συστήματος Αρχείων 2.1 Διαχείριση Αρχείων και Σύστημα Αρχείων(File System)

Λειτουργικά Συστήματα Κεφάλαιο 2 Οργάνωση Συστήματος Αρχείων 2.1 Διαχείριση Αρχείων και Σύστημα Αρχείων(File System) 2.1.1 Εισαγωγή στη διαχείριση αρχείων Οι Η/Υ αποθηκεύουν τα δεδομένα και τα επεξεργάζονται. Εφαρμογή Προγράμματος C:\Documents and Settings\user\Τα έγγραφά μου\leitourgika.doc Λ.Σ. File System Γι αυτό

Διαβάστε περισσότερα

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010 Τμήμα Πληροφορικής & Επικοινωνιών Τομέας Υπολογιστικών Τεχνικών & Συστημάτων Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010 Ιωάννης Γεωργουδάκης - Πάρις Μαστοροκώστας Σεπτέμβριος 2011 ΠΕΡΙΕΧΟΜΕΝΑ

Διαβάστε περισσότερα

ΠΡΟΣΑΡΜΟΓΕΑ ΙΑΣ ΥΝ ΕΣΗΣ ΣΥΣΚΕΥ ΗΣ ΑΝΑΠΑΡΑΓΩΓΗΣ D. KS-PD500 Πριν χρησιμοποιήσετε αυτόν τον προσαρμογέα

ΠΡΟΣΑΡΜΟΓΕΑ ΙΑΣ ΥΝ ΕΣΗΣ ΣΥΣΚΕΥ ΗΣ ΑΝΑΠΑΡΑΓΩΓΗΣ D. KS-PD500 Πριν χρησιμοποιήσετε αυτόν τον προσαρμογέα ΠΡΟΣΑΡΜΟΓΕΑ ΙΑΣ ΥΝ ΕΣΗΣ ΣΥΣΚΕΥ ΗΣ ΑΝΑΠΑΡΑΓΩΓΗΣ D. KS-PD500 Πριν χρησιμοποιήσετε αυτόν τον προσαρμογέα 1 Υποστηριζόμενοι δέκτες αυτοκινήτου της JVC Αυτός ο προσαρμογέας υποστηρίζει τους παρακάτω δέκτες

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 2: Τύποι δεδομένων και εμφάνιση στοιχείων...33

ΚΕΦΑΛΑΙΟ 2: Τύποι δεδομένων και εμφάνιση στοιχείων...33 ΠΕΡΙΕΧΟΜΕΝΑ Πρόλογος του συγγραφέα... 13 Πρόλογος του καθηγητή Τιμολέοντα Σελλή... 15 ΚΕΦΑΛΑΙΟ 1: Εργαλεία γλωσσών προγραμματισμού...17 1.1 Γλώσσες προγραμματισμού τρίτης γεννεάς... 18 τι είναι η γλώσσα

Διαβάστε περισσότερα

ΠΕ 2.3 Εξελιγμένες υπηρεσίες Βίντεο ΠΣΔ

ΠΕ 2.3 Εξελιγμένες υπηρεσίες Βίντεο ΠΣΔ Υποέργο 5 Υλοποίηση πράξης ΣΤΗΡΙΖΩ - εργασίες αρμοδιότητας Πανεπιστημίου Κρήτης Υλοποίηση Δράσης Α2 ΠΕ 2.3 Εξελιγμένες υπηρεσίες Βίντεο ΠΣΔ Εγχειρίδιο Ζωντανών Μεταδόσεων Εξελιγμένων Υπηρεσιών Βίντεο Εγχειρίδιο

Διαβάστε περισσότερα

Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων)

Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Λειτουργικό Σύστημα:

Διαβάστε περισσότερα

Ενότητα 4. Εισαγωγή στην Πληροφορική. Αναπαράσταση δεδοµένων. Αναπαράσταση πληροφορίας. υαδικοί αριθµοί. Χειµερινό Εξάµηνο 2006-07

Ενότητα 4. Εισαγωγή στην Πληροφορική. Αναπαράσταση δεδοµένων. Αναπαράσταση πληροφορίας. υαδικοί αριθµοί. Χειµερινό Εξάµηνο 2006-07 Ενότητα 4 Εισαγωγή στην Πληροφορική Κεφάλαιο 4Α: Αναπαράσταση πληροφορίας Κεφάλαιο 4Β: Επεξεργαστές που χρησιµοποιούνται σε PCs Χειµερινό Εξάµηνο 2006-07 ρ. Παναγιώτης Χατζηδούκας (Π..407/80) Εισαγωγή

Διαβάστε περισσότερα

ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Τμημα Πληροφορικης και Τηλεματικης Τσάμη Παναγιώτα ΑΜ: 20833 ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ Άσκηση 1 Αθήνα 13-12-2011 Αναφορά Ενότητα 1 A Δημιουργήστε στο φλοιό 3 εντολές (alias) που η

Διαβάστε περισσότερα

Εγχειρίδιο της εφαρμογής αναπαραγωγής CD V2.6 i. Εγχειρίδιο της εφαρμογής αναπαραγωγής CD V2.6

Εγχειρίδιο της εφαρμογής αναπαραγωγής CD V2.6 i. Εγχειρίδιο της εφαρμογής αναπαραγωγής CD V2.6 i της CD V2.6 ii Copyright 2002, 2003, 2004 Sun Microsystems Copyright 2009 Στέργιος Προσινικλής (steriosprosinikls@gmail.com) Δίνεται άδεια για αντιγραφή, διανομή και/ή τροποποίηση του εγγράφου υπό τους

Διαβάστε περισσότερα

Αντικείμενα (Objects) στην Java. Αντικείμενα στη Java. Δημιουργία Αντικειμένων. Δηλώσεις Μεταβλητών (2) Ο τελεστής new (1)

Αντικείμενα (Objects) στην Java. Αντικείμενα στη Java. Δημιουργία Αντικειμένων. Δηλώσεις Μεταβλητών (2) Ο τελεστής new (1) Αντικείμενα (Objects) στην Java Αντικείμενα στη Java Παύλος Εφραιμίδης Ένα πρόγραμμα Java κατά την εκτέλεσή του δημιουργεί αντικείμενα τα αντικείμενα αλληλεπιδρούν, στέλνοντας μηνύματα το ένα στο άλλο

Διαβάστε περισσότερα

ΤΟΜΕΑΣ HΛΕΚΤΡΟΝΙΚΗΣ. Επαγγελματικό λογισμικό στην ΤΕΕ: Επιμόρφωση και Εφαρμογή ΣΕΜΙΝΑΡΙΟ 2

ΤΟΜΕΑΣ HΛΕΚΤΡΟΝΙΚΗΣ. Επαγγελματικό λογισμικό στην ΤΕΕ: Επιμόρφωση και Εφαρμογή ΣΕΜΙΝΑΡΙΟ 2 ΤΟΜΕΑΣ HΛΕΚΤΡΟΝΙΚΗΣ Επαγγελματικό λογισμικό στην ΤΕΕ: Επιμόρφωση και Εφαρμογή ΣΕΜΙΝΑΡΙΟ 2 Εκπαίδευση στα Λογισμικά Adobe Premiere Pro CS3 και Visual Basic ΕΓΧΕΙΡΙΔΙΟ ΕΠΙΜΟΡΦΩΤΗ Το παρόν εκπονήθηκε στο

Διαβάστε περισσότερα

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η μέθοδος main(), εμφάνιση μηνυμάτων, Java προγράμματα που εκτελούν αριθμητικές πράξεις Γαβαλάς Δαμιανός

Διαβάστε περισσότερα

Περιεχόμενα ΜΕΡΟΣ ΠΡΩΤΟ. Πρόλογος... 13

Περιεχόμενα ΜΕΡΟΣ ΠΡΩΤΟ. Πρόλογος... 13 Περιεχόμενα Πρόλογος... 13 ΜΕΡΟΣ ΠΡΩΤΟ Κεφ. 1 Περί προγραμματισμού και γλωσσών προγραμματισμού Προγράμματα και Λειτουργικά Συστήματα... 17 Γλώσσες προγραμματισμού και εργαλεία ανάπτυξης προγραμμάτων...

Διαβάστε περισσότερα

TRAVIS TRAFFIC VIOLATION INFORMATION SYSTEM ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΗΣΗΣ ΠΑΡΑΒΑΣΕΩΝ ΦΩΤΟΕΠΙΣΗΜΑΝΣΗΣ

TRAVIS TRAFFIC VIOLATION INFORMATION SYSTEM ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΗΣΗΣ ΠΑΡΑΒΑΣΕΩΝ ΦΩΤΟΕΠΙΣΗΜΑΝΣΗΣ TRAFFIC VIOLATION INFORMATION SYSTEM ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΗΣΗΣ ΠΑΡΑΒΑΣΕΩΝ ΦΩΤΟΕΠΙΣΗΜΑΝΣΗΣ TRAVIS-V1-2012 TRAVIS Λογισμικό Διαχείρισης Παραβάσεων Φωτοεπισήμανσης Το σύστημα διαχείρισης παραβάσεων φωτοεπισήμανσης

Διαβάστε περισσότερα

Οδηγός Εγκατάστασης και Χρήσης του Arebas Easy

Οδηγός Εγκατάστασης και Χρήσης του Arebas Easy Σ ε λ ί δ α 1 Οδηγός Εγκατάστασης και Χρήσης του Arebas Easy Περιεχόμενα 1. Download Arebas Easy... 2 2. Εγκατάσταση Arebas Easy... 3 3. Εγγραφή στον Arebas Server... 7 4. Παραμετροποίηση Arebas Easy...

Διαβάστε περισσότερα

Πρωτόκολλα Επικοινωνίας Πρωτόκολλο IP

Πρωτόκολλα Επικοινωνίας Πρωτόκολλο IP Πρωτόκολλα Επικοινωνίας Πρωτόκολλο IP Πρωτόκολλα επικοινωνίας Ορισμός Σύνολα προσυμφωνημένων κανόνων που απαιτούνται για τον καθορισμό του τρόπου με τον οποίο επιτυγχάνεται η ανταλλαγή δεδομένων, και επομένως

Διαβάστε περισσότερα

Document Scanning System Ιανουάριος, 2014

Document Scanning System Ιανουάριος, 2014 Document Scanning System Ιανουάριος, 2014 Το DSS, είναι ένα ολοκληρωμένο συστημα διαχείρισης ψηφιοποίησης εγγράφων, αφού εκτός από την διαδικασία ψηφιοποίησης των εγγράφων, αρχειοθετεί και μία σειρά δεδομένων

Διαβάστε περισσότερα

Κεφάλαιο 4: Λογισμικό Συστήματος

Κεφάλαιο 4: Λογισμικό Συστήματος Κεφάλαιο 4: Λογισμικό Συστήματος Ερωτήσεις 1. Να αναφέρετε συνοπτικά τις κατηγορίες στις οποίες διακρίνεται το λογισμικό συστήματος. Σε ποια ευρύτερη κατηγορία εντάσσεται αυτό; Το λογισμικό συστήματος

Διαβάστε περισσότερα

Στοιχεία Προγραμματισμού Σε Γραφικό Περιβάλλον Φύλλο εργασίας 1 ο

Στοιχεία Προγραμματισμού Σε Γραφικό Περιβάλλον Φύλλο εργασίας 1 ο Τετάρτη, 30 Οκτωβρίου 2013 Στοιχεία Προγραμματισμού Σε Γραφικό Περιβάλλον Φύλλο εργασίας 1 ο Λύστε στο Visual Basic Express 2010 τις παρακάτω ασκήσεις: 1. Να δημιουργήσετε ένα νέο Project του είδους Console

Διαβάστε περισσότερα

Οδηγό ς Σχ. Έτόυς 2014-2015

Οδηγό ς Σχ. Έτόυς 2014-2015 Οδηγό ς Σχ. Έτόυς 2014-2015 Σχολικό Έτος Στο ΠΣ myschool υλοποιείται πλήρης ιστορικότητα και τα δεδομένα σας είναι διαθέσιμα για κάθε Σχολικό Έτος. Μέσα από την ΑΡΧΙΚΗ σελίδα μπορείτε κάθε φορά να ορίζετε

Διαβάστε περισσότερα

Εισαγωγή εκτελέσιμου κώδικα σε διεργασίες

Εισαγωγή εκτελέσιμου κώδικα σε διεργασίες 0x375 - Thessaloniki Tech Talks Sessions Event 0x2 19 Μαρτίου 2010 Περιεχόμενα 1 Εισαγωγή 2 Η κλήση συστήματος ptrace 3 Νήματα 4 Το πρόγραμμα εισαγωγής κώδικα prez 5 Επίλογος Γιατί; Πολλές φορές θέλουμε

Διαβάστε περισσότερα

ΕΠΙΚΟΙΝΩΝΙΑΚΗ ΔΙΑΧΕΙΡΙΣΗ ΚΡΙΣΕΩΝ. Communications Crisis Management

ΕΠΙΚΟΙΝΩΝΙΑΚΗ ΔΙΑΧΕΙΡΙΣΗ ΚΡΙΣΕΩΝ. Communications Crisis Management ΕΠΙΚΟΙΝΩΝΙΑΚΗ ΔΙΑΧΕΙΡΙΣΗ ΚΡΙΣΕΩΝ Communications Crisis Management ΕΠΙΚΟΙΝΩΝΙΑΚΗ ΔΙΑΧΕΙΡΙΣΗ ΚΡΙΣΕΩΝ Καράβια βουλιάζουν. Αεροσκάφη πέφτουν. Προϊόντα ανακαλούνται. Εταιρίες μηνύονται για ληγμένα τρόφιμα ή

Διαβάστε περισσότερα

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ DVR KTEC

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ DVR KTEC ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ DVR KTEC 1) Πατάμε δεξί κλικ Μενού 2) Όνομα Χρήστη βάζουμε «admin» 3) Κωδικός Πρόσβασης το αφήνουμε «κενό» 4) Πατάμε OK και μπαίνουμε στο Μενού Είσοδος στο μενού Στην πρώτη εκκίνηση μετά

Διαβάστε περισσότερα

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Εργαστήριο 1 Εισαγωγή στη C Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Διαδικαστικά Ιστοσελίδα μαθήματος: http://eclass.uoa.gr/courses/f30/ Υποχρεωτική παρακολούθηση: Παρασκευή 14:00 16:00 στην

Διαβάστε περισσότερα

Προγραμματισμός Ι. Κλάσεις και Αντικείμενα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Κλάσεις και Αντικείμενα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Κλάσεις και Αντικείμενα Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Κλάσεις Η γενική μορφή μιας κλάσης είναι η εξής: class class-name { private data and

Διαβάστε περισσότερα

ΥΠΗΡΕΣΙΑ ΠΛΗΡΟΦΟΡΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΤΟΜΕΑΣ ΔΙΚΤΥΩΝ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ. Οδηγός ενεργοποίησης, χρήσης και διαμόρφωσης της υπηρεσίας φωνοκιβωτίου

ΥΠΗΡΕΣΙΑ ΠΛΗΡΟΦΟΡΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΤΟΜΕΑΣ ΔΙΚΤΥΩΝ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ. Οδηγός ενεργοποίησης, χρήσης και διαμόρφωσης της υπηρεσίας φωνοκιβωτίου ΥΠΗΡΕΣΙΑ ΠΛΗΡΟΦΟΡΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΤΟΜΕΑΣ ΔΙΚΤΥΩΝ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ Οδηγός ενεργοποίησης, χρήσης και διαμόρφωσης της υπηρεσίας φωνοκιβωτίου ΥΠΣ ΕΔ/58 Τελευταία ημερομηνία αναθεώρησης: 06 Αυγούστου 2013

Διαβάστε περισσότερα

Simplifying Complexity. Οδηγός Χρήσης Διαδικτυακής Πλατφόρμας

Simplifying Complexity. Οδηγός Χρήσης Διαδικτυακής Πλατφόρμας Simplifying Complexity Οδηγός Χρήσης Διαδικτυακής Πλατφόρμας Περιεχόμενα 1 Εισαγωγή... 2 2 Οδηγίες Χρήσης... 2 2.1 Πρώτη Εγγραφή στην Πλατφόρμα... 2 2.2 Είσοδος στην Πλατφόρμα...4 2.3 Δημιουργία Καρτέλας

Διαβάστε περισσότερα

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ 5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ 5.1 Εισαγωγή στους αλγορίθμους 5.1.1 Εισαγωγή και ορισμοί Αλγόριθμος (algorithm) είναι ένα πεπερασμένο σύνολο εντολών οι οποίες εκτελούν κάποιο ιδιαίτερο έργο. Κάθε αλγόριθμος

Διαβάστε περισσότερα

Κεφάλαιο 6 Λογισμικό Εφαρμογών. Εφαρμογές Πληροφορικής Κεφ.6 Καραμαούνας Πολύκαρπος 1

Κεφάλαιο 6 Λογισμικό Εφαρμογών. Εφαρμογές Πληροφορικής Κεφ.6 Καραμαούνας Πολύκαρπος 1 Κεφάλαιο 6 Λογισμικό Εφαρμογών Καραμαούνας Πολύκαρπος 1 Λογισμικό Εφαρμογών (application software) Είναι όλα τα προγράμματα που μετατρέπουν τον ΗΥ σε εξειδικευμένο μηχάνημα για συκεκριμένες εργασίες. Περιέχει

Διαβάστε περισσότερα

ΠΑΡΑΔΕΙΓΜΑ ΣΤΟ BIZAGI ΕΘΝΙΚΗ ΣΧΟΛΗ ΔΗΜΟΣΙΑΣ ΔΙΟΙΚΗΣΗΣ & ΑΥΤΟΔΙΟΙΚΗΣΗΣ

ΠΑΡΑΔΕΙΓΜΑ ΣΤΟ BIZAGI ΕΘΝΙΚΗ ΣΧΟΛΗ ΔΗΜΟΣΙΑΣ ΔΙΟΙΚΗΣΗΣ & ΑΥΤΟΔΙΟΙΚΗΣΗΣ Ανάλυση - Προσομοίωση ΠΑΡΑΔΕΙΓΜΑ ΣΤΟ BIZAGI ΕΘΝΙΚΗ ΣΧΟΛΗ ΔΗΜΟΣΙΑΣ ΔΙΟΙΚΗΣΗΣ & ΑΥΤΟΔΙΟΙΚΗΣΗΣ 1 Προσομοίωση Η προσομοίωση είναι μέθοδος μελέτης ενός συστήματος και εξοικείωσης με τα χαρακτηριστικά του με

Διαβάστε περισσότερα

Το ολοκληρωμένο κύκλωμα μιας ΚΜΕ. «Φέτα» ημιαγωγών (wafer) από τη διαδικασία παραγωγής ΚΜΕ

Το ολοκληρωμένο κύκλωμα μιας ΚΜΕ. «Φέτα» ημιαγωγών (wafer) από τη διαδικασία παραγωγής ΚΜΕ Το ολοκληρωμένο κύκλωμα μιας ΚΜΕ Η Κεντρική Μονάδα Επεξεργασίας (Central Processing Unit -CPU) ή απλούστερα επεξεργαστής αποτελεί το μέρος του υλικού που εκτελεί τις εντολές ενός προγράμματος υπολογιστή

Διαβάστε περισσότερα

Ενότητα 12 (κεφάλαιο 28) Αρχιτεκτονικές Εφαρμογών

Ενότητα 12 (κεφάλαιο 28) Αρχιτεκτονικές Εφαρμογών ΕΠΛ362: Τεχνολογία Λογισμικού ΙΙ (μετάφραση στα ελληνικά των διαφανειών του βιβλίου Software Engineering, 9/E, Ian Sommerville, 2011) Ενότητα 12 (κεφάλαιο 28) Αρχιτεκτονικές Εφαρμογών Οι διαφάνειες αυτές

Διαβάστε περισσότερα

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM).

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM). Μνήμες Ένα από τα βασικά πλεονεκτήματα των ψηφιακών συστημάτων σε σχέση με τα αναλογικά, είναι η ευκολία αποθήκευσης μεγάλων ποσοτήτων πληροφοριών, είτε προσωρινά είτε μόνιμα Οι πληροφορίες αποθηκεύονται

Διαβάστε περισσότερα

Marmitek UltraViewPro 1

Marmitek UltraViewPro 1 IP CAMERA SERIES IP Eye Anywhere 10 11 20 21 470 IP RoboCam 10 11 21 541 641 ULTRAVIEW PRO ΠΕΡΙΕΧΟΜΕΝΑ ΚΕΦΑΛΑΙΟ 1..1 ΕΙΣΑΓΩΓΗ....1 ΚΕΦΑΛΑΙΟ 2.. 2 ΕΓΚΑΤΑΣΤΑΣΗ... 2 ΚΕΦΑΛΑΙΟ......3 ΧΡΗΣΗ MARMITEK Ultraview

Διαβάστε περισσότερα

Εγχειρίδιο Χρήσης Slide Recorder

Εγχειρίδιο Χρήσης Slide Recorder Εγχειρίδιο Χρήσης Slide Recorder Αναπτύχθηκε στο Κέντρο Λειτουργίας Διαχείρισης Δικτύου, Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών Προγραμματιστής: Γιώργος Φράγκος Περιεχόμενα Εγχειρίδιο Χρήσης Slide

Διαβάστε περισσότερα

Σύστημα υποβολής αιτήσεων υποψήφιων συνεργατών ΕΚΤ

Σύστημα υποβολής αιτήσεων υποψήφιων συνεργατών ΕΚΤ Σύστημα υποβολής αιτήσεων υποψήφιων συνεργατών ΕΚΤ 1 Λειτουργικές απαιτήσεις Το σύστημα υποβολής αιτήσεων υποψήφιων συνεργατών στοχεύει στο να επιτρέπει την πλήρως ηλεκτρονική υποβολή αιτήσεων από υποψήφιους

Διαβάστε περισσότερα

Ειδικό Τεύχος : Linux και Ηχος. Η Υποδοµή

Ειδικό Τεύχος : Linux και Ηχος. Η Υποδοµή Ειδικό Τεύχος : Linux και Ηχος Η Υποδοµή ηµήτρης Γλυνός glynos@storm.cs.unipi.gr Μάιος 2004 Linux και Ηχος, µια πονεµένη ιστορία Οδηγοί (drivers) για τις κάρτες ήχου παρέχονται παραδοσιακά από τους κατασκευαστές

Διαβάστε περισσότερα

ΤΡΑΠΕΖΑ ΤΗΣ ΕΛΛΑΔΟΣ ΔΙΕΥΘΥΝΣΗ ΕΠΟΠΤΕΙΑΣ ΠΙΣΤΩΤΙΚΟΥ ΣΥΣΤΗΜΑΤΟΣ

ΤΡΑΠΕΖΑ ΤΗΣ ΕΛΛΑΔΟΣ ΔΙΕΥΘΥΝΣΗ ΕΠΟΠΤΕΙΑΣ ΠΙΣΤΩΤΙΚΟΥ ΣΥΣΤΗΜΑΤΟΣ ΔΙΕΥΘΥΝΣΗ ΕΠΟΠΤΕΙΑΣ ΠΙΣΤΩΤΙΚΟΥ ΣΥΣΤΗΜΑΤΟΣ ΟΔΗΓΙΕΣ ΣΥΜΠΛΗΡΩΣΗΣ ΥΠΟΔΕΙΓΜΑΤΟΣ ΓΙΑ ΤΗΝ ΗΛΕΚΤΡΟΝΙΚΗ ΥΠΟΒΟΛΗ ΣΤΟΙΧΕΙΩΝ ΡΕΥΣΤΟΤΗΤΑΣ (BSD07) (ΠΔ.Τ.Ε. 2563/19.7.2005 Ε50) Ιανουάριος 2005 ΓΕΝΙΚΑ... 4 1. Προϋποθέσεις

Διαβάστε περισσότερα

Καρακασίδης Αλέξανδρος Καστίδου Γεωργία Παπαφώτη Μαρία Πέτσιος Κων/νος Στέφανος Σαλτέας Καλογεράς Παναγιώτης. Threads in Java ΝΗΜΑΤΑ ΣΤΗ JAVA

Καρακασίδης Αλέξανδρος Καστίδου Γεωργία Παπαφώτη Μαρία Πέτσιος Κων/νος Στέφανος Σαλτέας Καλογεράς Παναγιώτης. Threads in Java ΝΗΜΑΤΑ ΣΤΗ JAVA Καρακασίδης Αλέξανδρος Καστίδου Γεωργία Παπαφώτη Μαρία Πέτσιος Κων/νος Στέφανος Σαλτέας Καλογεράς Παναγιώτης Threads in Java ΝΗΜΑΤΑ ΣΤΗ JAVA 1. Εισαγωγή Τι είναι Νήµα; Κάθε νήµα εκτέλεσης είναι ουσιαστικά

Διαβάστε περισσότερα

Αρχίζοντας. Το Joomla τρέχει: Στο Joomla μπορούμε να προσθέσουμε επιπλέον λειτουργικότητα, να την επεκτείνουμε δηλαδή (extensions) PHP MySql

Αρχίζοντας. Το Joomla τρέχει: Στο Joomla μπορούμε να προσθέσουμε επιπλέον λειτουργικότητα, να την επεκτείνουμε δηλαδή (extensions) PHP MySql Php και Joomla Ψηφιακό Περιεχόμενο & Επικοινωνίες Αρχίζοντας Το Joomla τρέχει: PHP MySql Στο Joomla μπορούμε να προσθέσουμε επιπλέον λειτουργικότητα, να την επεκτείνουμε δηλαδή (extensions) με την χρήση

Διαβάστε περισσότερα

ΤΕΙ Κρήτης, Παράρτηµα Χανίων

ΤΕΙ Κρήτης, Παράρτηµα Χανίων ΠΣΕ, Τµήµα Τηλεπικοινωνιών & ικτύων Η/Υ Εργαστήριο ιαδίκτυα & Ενδοδίκτυα Η/Υ ( ηµιουργία συστήµατος µε ροint-tο-ροint σύνδεση) ρ Θεοδώρου Παύλος Χανιά 2003 Περιεχόµενα 1 ΕΙΣΑΓΩΓΗ...2 2 ΤΟ ΚΑΝΑΛΙ PΟINT-TΟ-PΟINT...2

Διαβάστε περισσότερα

PRISMA Win POS Sync Merge Replication

PRISMA Win POS Sync Merge Replication ΤΜΗΜΑ ΥΠΟΣΤΗΡΙΞΗΣ Οδηγός Ρυθμίσεων Συγχρονισμού PRISMA Win POS Sync Merge Replication Η διαδικασία του συγχρονισμού γίνεται από τον Η/Υ που έχει το Back Office. Βασική προϋπόθεση για να ενεργοποιηθεί ο

Διαβάστε περισσότερα

Διδάσκων: Παναγιώτης Ανδρέου

Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 6: Αφαιρετικότητα, Βιβλιοθήκες Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Αφαιρετικότητα -Βιβλιοθήκες (packages) Διδάσκων: Παναγιώτης Ανδρέου ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός

Διαβάστε περισσότερα

4 Συλλογές Αντικειμένων

4 Συλλογές Αντικειμένων 4 Συλλογές Αντικειμένων Πώς χειριζόμαστε αντικείμενα σε ομάδες με επανάληψη Η Απαίτηση Συλλογών Αντικειμένων Πολλές εφαρμογές χρειάζονται πλήθος αντικειμένων: Κατάλογος βιβλίων Φοιτητολόγιο Πελατολόγιο

Διαβάστε περισσότερα

ΕΠΙΧΕΙΡΗΣΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΚΡΗΤΗΣ 2000-2006

ΕΠΙΧΕΙΡΗΣΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΚΡΗΤΗΣ 2000-2006 ΕΠΙΧΕΙΡΗΣΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΚΡΗΤΗΣ 2000-2006 ΜΕΤΡΟ 1.2 Κοινοπραξίες Έρευνας και Τεχνολογικής Ανάπτυξης σε τομείς Εθνικής Προτεραιότητας Παροχή υπηρεσιών τουριστικού και αρχαιολογικού ενδιαφέροντος μέσω πλατφόρμας

Διαβάστε περισσότερα

Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής - Εβδομάδα 1

Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής - Εβδομάδα 1 Στόχοι Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής (Αντικειμενοστρεφής Προγραμματισμός) Αντώνιος Συμβώνης www.math.ntua.gr/~symvonis Καλή γνώση βασικών αρχών προγραμματισμού Καλή γνώση βασικών αρχών αντικειμενοστρεφή

Διαβάστε περισσότερα

ΜΕΤΑΦΟΡΑ ΑΡΧΕΙΩΝ FTP

ΜΕΤΑΦΟΡΑ ΑΡΧΕΙΩΝ FTP ΜΕΤΑΦΟΡΑ ΑΡΧΕΙΩΝ FTP Το FTP (File Transfer Protocol) είναι το εξειδικευμένο πρωτόκολλο μεταφοράς αρχείων στα σύγχρονα δίκτυα δεδομένων όπως το Διαδίκτυο. Δίνει τη δυνατότητα μεταφοράς αρχείων από τον υπολογιστή

Διαβάστε περισσότερα

HY-252 Αντικειμενοστραφής Προγραμματισμός. Χειμερινό Εξάμηνο 2012 Διδάσκων: Χριστοφίδης Βασίλης. Ημερομηνία Παράδοσης: 16/11/2012

HY-252 Αντικειμενοστραφής Προγραμματισμός. Χειμερινό Εξάμηνο 2012 Διδάσκων: Χριστοφίδης Βασίλης. Ημερομηνία Παράδοσης: 16/11/2012 HY-252 Αντικειμενοστραφής Προγραμματισμός Χειμερινό Εξάμηνο 2012 Διδάσκων: Χριστοφίδης Βασίλης 2 η Σειρά Ασκήσεων Ημερομηνία Παράδοσης: 16/11/2012 Παρακάτω σας δίνονται οι ορισμοί τεσσάρων διαφορετικών

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ Ενέργειες Πρακτικής Άσκησης από Φορείς Αγαπητοί Φορείς/ Επιχειρήσεις, Μπορείτε πλέον, ηλεκτρονικά, να αναρτήσετε τις νέες Θέσεις Πρακτικής Άσκησης και να υποβάλετε σε δεύτερο χρόνο (και εφόσον ολοκληρωθεί

Διαβάστε περισσότερα

Σενάριο 17: Παιχνίδι μνήμης με εικόνες

Σενάριο 17: Παιχνίδι μνήμης με εικόνες Σενάριο 17: Παιχνίδι μνήμης με εικόνες Φύλλο Εργασίας Τίτλος: Παιχνίδι μνήμης με εικόνες Γνωστικό Αντικείμενο: Εφαρμογές Πληροφορικής-Υπολογιστών Διδακτική Ενότητα: Διερευνώ - Δημιουργώ Ανακαλύπτω, Συνθετικές

Διαβάστε περισσότερα

ΕΠΛ233 Βιβλιοθήκες και Προσδιοριστές Πρόσβασης στην JAVA

ΕΠΛ233 Βιβλιοθήκες και Προσδιοριστές Πρόσβασης στην JAVA Βιβλιοθήκες και Προσδιοριστές Πρόσβασης στην JAVA 2 «Μονάδα Μετάφρασης» 2 «Μονάδα Μετάφρασης» Όταν δημιουργείται ένα αρχείο πηγαίου κώδικα στην Java, το αρχείο καλείται µονάδα µετάφρασης (compilation unit)

Διαβάστε περισσότερα

Alpha Web Banking Εργαλείο δηµιουργίας αρχείων. Οδηγίες χρήσεως

Alpha Web Banking Εργαλείο δηµιουργίας αρχείων. Οδηγίες χρήσεως Alpha Web Banking Εργαλείο δηµιουργίας αρχείων Οδηγίες χρήσεως ΑΘΗΝΑ, ΙΟΥΝΙΟΣ 2004 ΠΕΡΙΕΧΟΜΕΝΑ 1. Σκοπός και δυνατότητες του εργαλείου...2 2. Είδη αρχείων που υποστηρίζει το εργαλείο...2 3. Εγκατάσταση...3

Διαβάστε περισσότερα

Εγχειρίδιο Χρήστη. Ιούνιος 2009. Σελίδα - 1 -

Εγχειρίδιο Χρήστη. Ιούνιος 2009. Σελίδα - 1 - Εγχειρίδιο Χρήστη Ιούνιος 2009 Σελίδα - 1 - 1 Γενικά Η εφαρμογή Intelsoft Hotel (IS HOTEL) αφορά τη διαχείριση μίας μικρής ξενοδοχειακής μονάδας και επιτρέπει τη διαχείριση : των δωματίων και των πελατών

Διαβάστε περισσότερα

Βιντεοπροβολέας δικτύου - Οδηγός χρήσης

Βιντεοπροβολέας δικτύου - Οδηγός χρήσης Βιντεοπροβολέας δικτύου - Οδηγός χρήσης Πίνακας περιεχομένων Προετοιμασία...3 Σύνδεση του βιντεοπροβολέα με τον υπολογιστή σας...3 Ενσύρματη σύνδεση... 3 Εξ αποστάσεως έλεγχος του βιντεοπροβολέα μέσω προγράμματος

Διαβάστε περισσότερα

Είσοδος σε συνεδρία της Blackboard και βασικές ρυθμίσεις

Είσοδος σε συνεδρία της Blackboard και βασικές ρυθμίσεις Είσοδος σε συνεδρία της Blackboard και βασικές ρυθμίσεις Tα πρώτα βήματα κατά την είσοδο μας στην Blackboard Αφού εγγραφείτε σε ένα μάθημα για να μπορέσετε να συνδεθείτε στην αίθουσα της Blackboard λίγη

Διαβάστε περισσότερα

Simplifying Complexity. Οδηγός Χρήσης Διαδικτυακής Πλατφόρμας

Simplifying Complexity. Οδηγός Χρήσης Διαδικτυακής Πλατφόρμας Simplifying Complexity Οδηγός Χρήσης Διαδικτυακής Πλατφόρμας Περιεχόμενα 1 Εισαγωγή... 2 2 Οδηγίες Χρήσης... 2 2.1 Πρώτη Εγγραφή στην Πλατφόρμα... 2 2.2 Είσοδος στην Πλατφόρμα... 4 2.3 Δημιουργία Καρτέλας

Διαβάστε περισσότερα

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Σκοπός Nα κατασκευάσουν πίνακες από δεδομένα. Να κατασκευάσουν συναρτήσεις με πίνακες. Να κάνουν χρήση

Διαβάστε περισσότερα

Προτεινόμενες εργασίες Προγραμματισμού Διαδικτύου

Προτεινόμενες εργασίες Προγραμματισμού Διαδικτύου Προτεινόμενες εργασίες Προγραμματισμού Διαδικτύου Ιωάννης Γ. Τσούλος Εργασία Πρώτη - Αριθμομηχανή Με την χρήση του περιβάλλοντος AWT ή του SWING θα πρέπει να δημιουργηθεί αριθμομηχανή για την εκτέλεση

Διαβάστε περισσότερα

Τεχνολογία μνημών Ημιαγωγικές μνήμες Μνήμες που προσπελαύνονται με διευθύνσεις:

Τεχνολογία μνημών Ημιαγωγικές μνήμες Μνήμες που προσπελαύνονται με διευθύνσεις: Σύστημα μνήμης Ο κύριος σκοπός στο σχεδιασμό ενός συστήματος μνήμης είναι να προσφέρουμε επαρκή χωρητικότητα αποθήκευσης διατηρώντας ένα αποδεκτό επίπεδο μέσης απόδοσης και επίσης χαμηλό μέσο κόστος ανά

Διαβάστε περισσότερα

Αρχιτεκτονικές Δικτύων & Πρωτόκολλα Ι

Αρχιτεκτονικές Δικτύων & Πρωτόκολλα Ι Αρχιτεκτονικές Δικτύων & Πρωτόκολλα Ι Ενότητα : Εισαγωγή στο εργαλείο προσομοίωσης δικτύων Riverbed Modeler - Προσομοίωση δικτύου Ethernet. Όνομα Καθηγητή : Δημήτριος Λυμπερόπουλος, Σπύρος Δενάζης Τμήμα

Διαβάστε περισσότερα

J-GANNO. Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β, Φεβ.1998) Χάρης Γεωργίου

J-GANNO. Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β, Φεβ.1998) Χάρης Γεωργίου J-GANNO ΓΕΝΙΚΕΥΜΕΝΟ ΠΑΚΕΤΟ ΥΛΟΠΟΙΗΣΗΣ ΤΕΧΝΗΤΩΝ ΝΕΥΡΩΝΙΚΩΝ ΙΚΤΥΩΝ ΣΤΗ ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ JAVA Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β,

Διαβάστε περισσότερα

Ανάπτυξη Plugins για το AgentSheets

Ανάπτυξη Plugins για το AgentSheets Ανάπτυξη Plugins για το AgentSheets Thought Amplifier AgentSheets Ανάπτυξη Plugins AgentSheets 2.5 Συγγραφείς Τεκµηρίωσης: Alexander Repenning και Ronald Sudomo Εξελληνισµός Τεκµηρίωσης: Λίνος Βίγκλας,

Διαβάστε περισσότερα

1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες εντολές (μορφές) της;

1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες εντολές (μορφές) της; 1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες (μορφές) της; Η δομή επανάληψης χρησιμοποιείται όταν μια σειρά εντολών πρέπει να εκτελεστεί σε ένα σύνολο περιπτώσεων, που έχουν κάτι

Διαβάστε περισσότερα

class object Database Database Item Item [sub-typing and polymorphism] MusicCD Video MusicCD Video

class object Database Database Item Item [sub-typing and polymorphism] MusicCD Video MusicCD Video ιάγραµµα κλάσεων [Class diagram] Εβδοµάδα 2: Υπο-τύποι και πολυµορφισµός [sub-typing and polymorphism] Database Music Σχεδίαση-Ανάπτυξη Εφαρµογών Πληροφορικής Αντώνιος Συµβώνης, ΕΜΠ, Slide 1 Σχεδίαση-Ανάπτυξη

Διαβάστε περισσότερα

Περιεχόμενα. Περιεχόμενα

Περιεχόμενα. Περιεχόμενα Περιεχόμενα xv Περιεχόμενα 1 Αρχές της Java... 1 1.1 Προκαταρκτικά: Κλάσεις, Τύποι και Αντικείμενα... 2 1.1.1 Βασικοί Τύποι... 5 1.1.2 Αντικείμενα... 7 1.1.3 Τύποι Enum... 14 1.2 Μέθοδοι... 15 1.3 Εκφράσεις...

Διαβάστε περισσότερα

1 ο ΓΥΜΝΑΣΙΟ ΘΕΡΜΗΣ. Πληροφορική Α' Γυμν. Το Λειτουργικό Σύστημα του Υπολογιστή

1 ο ΓΥΜΝΑΣΙΟ ΘΕΡΜΗΣ. Πληροφορική Α' Γυμν. Το Λειτουργικό Σύστημα του Υπολογιστή 1 ο ΓΥΜΝΑΣΙΟ ΘΕΡΜΗΣ Μάθημα: Ενότητα: Πληροφορική Α' Γυμν. Το του Υπολογιστή 1. Τι ονομάζεται Πρόγραμμα; Είναι οι οδηγίες που δίνονται στον υπολογιστή για να εξηγήσουμε πώς γίνεται μια εργασία (δηλαδή η

Διαβάστε περισσότερα

Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ

Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ Σχεδιασμός και υλοποίηση υποδομής σημείωσης διεργασιών στον

Διαβάστε περισσότερα

Xerox WorkCentre 3655 Πολυλειτουργικός εκτυπωτής Πίνακας ελέγχου

Xerox WorkCentre 3655 Πολυλειτουργικός εκτυπωτής Πίνακας ελέγχου Πίνακας ελέγχου Οι διαθέσιμες υπηρεσίες μπορεί να διαφέρουν ανάλογα με τη διαμόρφωση του εκτυπωτή σας. Για λεπτομέρειες σχετικά με τις υπηρεσίες και τις ρυθμίσεις, ανατρέξτε στον Οδηγό χρήσης. 3 4 5 Οθόνη

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Σύνθεση αντικειμένων Παράδειγμα: Τμήμα πανεπιστημίου

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Σύνθεση αντικειμένων Παράδειγμα: Τμήμα πανεπιστημίου ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Σύνθεση αντικειμένων Παράδειγμα: Τμήμα πανεπιστημίου Μεγάλο παράδειγμα Θέλουμε να δημιουργήσουμε ένα λογισμικό για ένα τμήμα πανεπιστημίου. Το τμήμα έχει 4

Διαβάστε περισσότερα

Τμήμα Οικιακής Οικονομίας και Οικολογίας. Οργάνωση Υπολογιστών

Τμήμα Οικιακής Οικονομίας και Οικολογίας. Οργάνωση Υπολογιστών Οργάνωση Υπολογιστών Υπολογιστικό Σύστημα Λειτουργικό Σύστημα Αποτελεί τη διασύνδεση μεταξύ του υλικού ενός υπολογιστή και του χρήστη (προγραμμάτων ή ανθρώπων). Είναι ένα πρόγραμμα (ή ένα σύνολο προγραμμάτων)

Διαβάστε περισσότερα

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ Π.Σ. ΦΟΙΤΗΤΟΛΟΓΙΟΥ- ΓΙΑ ΤΟ ΔΙΔΑΣΚΟΝΤΑ (ClassWeb)

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ Π.Σ. ΦΟΙΤΗΤΟΛΟΓΙΟΥ- ΓΙΑ ΤΟ ΔΙΔΑΣΚΟΝΤΑ (ClassWeb) ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ Π.Σ. ΦΟΙΤΗΤΟΛΟΓΙΟΥ- ΓΙΑ ΤΟ ΔΙΔΑΣΚΟΝΤΑ (ClassWeb) 1. Είσοδος στην υπηρεσία ClassWeb Στη κεντρική σελίδα της υπηρεσίας στα πεδία Όνομα Χρήστη και Κωδικός πρόσβασης πληκτρολογούμε τα στοιχεία

Διαβάστε περισσότερα

Ο ΗΓΙΕΣ ΛΕΙΤΟΥΡΓΙΑΣ. Τοποθέτηση και αντικατάσταση των µπαταριών. Γενικές πληροφορίες. Περιγραφή λειτουργίας. ruwido s_4 τηλεχειριστήριο γενικής χρήσης

Ο ΗΓΙΕΣ ΛΕΙΤΟΥΡΓΙΑΣ. Τοποθέτηση και αντικατάσταση των µπαταριών. Γενικές πληροφορίες. Περιγραφή λειτουργίας. ruwido s_4 τηλεχειριστήριο γενικής χρήσης Ο ΗΓΙΕΣ ΛΕΙΤΟΥΡΓΙΑΣ ruwido s_4 τηλεχειριστήριο γενικής χρήσης Σας συγχαίρουµε για την αγορά ενός RUWIDO τηλεχειριστηρίου γενικής χρήσης. Το νέο σας τηλεχειριστήριο αντικαθιστά το πρωτότυπο τηλεχειριστήριο

Διαβάστε περισσότερα

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 22/11/07

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 22/11/07 Ακαδ έτος 2007-2008 ΠΛΗΡΟΦΟΡΙΚΗ Ι Φερεντίνος 22/11/07 ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με ΑΜ σε 3, 7, 8 & 9 22/11/07 Παράδειγμα με if/else if και user input: import javautil*; public class Grades public

Διαβάστε περισσότερα

Τεχνική υποστήριξη λογισμικού HP

Τεχνική υποστήριξη λογισμικού HP Τεχνική υποστήριξη λογισμικού HP Τεχνολογικές υπηρεσίες HP βάσει συμβολαίου Τεχνικά δεδομένα Η τεχνική υποστήριξη λογισμικού HP παρέχει ολοκληρωμένες υπηρεσίες απομακρυσμένης υποστήριξης για προϊόντα λογισμικού

Διαβάστε περισσότερα

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ LIVETRIP TRAVELLER

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ LIVETRIP TRAVELLER ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ LIVETRIP TRAVELLER Η εφαρμογή LiveTripTraveller διατίθεται για κινητά τηλέφωνα με λειτουργικό σύστημα Android. Στο υπο-ιστοσελίδα www.livetrips.com/sources μπορείτε να κατεβάσετε την εφαρμογή

Διαβάστε περισσότερα

Τίτλος Παραδοτέου: Αποτύπωση των υποστηριζόμενων διαδικασιών της πλατφόρμας Δήλος. Πράξη «Κεντρικό Μητρώο Ελληνικών Ανοικτών Μαθημάτων»

Τίτλος Παραδοτέου: Αποτύπωση των υποστηριζόμενων διαδικασιών της πλατφόρμας Δήλος. Πράξη «Κεντρικό Μητρώο Ελληνικών Ανοικτών Μαθημάτων» Τίτλος Παραδοτέου: Αποτύπωση των υποστηριζόμενων διαδικασιών της πλατφόρμας Δήλος Πράξη «Κεντρικό Μητρώο Ελληνικών Ανοικτών Μαθημάτων» Περιεχόμενα 1. Παραγωγή υλικού... 3 1.1 Κάμερα σταθερά τοποθετημένη

Διαβάστε περισσότερα