Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

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

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ ΔΙΠΛΩΜΑΤΙΚΗ."— Μεταγράφημα παρουσίασης:

1 ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT Μιχαήλ Α. Τσιρούκης Επιβλέπων: Ευστάθιος Χατζηευθυμιάδης, Αναπληρωτής Καθηγητής ΕΚΠΑ ΑΘΗΝΑ ΟΚΤΩΒΡΙΟΣ 2016

2 Πλάνο παρουσίασης Εισαγωγή : Αναφορά στις γλώσσες ειδικού σκοπού και στο πλαίσιο εκτέλεσης Xtext Σκοπός της διπλωματικής εργασίας: Ανάπτυξη Γλώσσας Ειδικού Σκοπού & Εργαλείου για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT Υλοποίηση : διαδικτυακή εφαρμογή που περιλαμβάνει ένα συντάκτη κειμένου και έναν οπτικό συντάκτη για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT Συμπεράσματα Μελλοντικές επεκτάσεις 2

3 Το πρόβλημα Η σημερινή βιομηχανία λογισμικού αντιμετωπίζει μεγάλο πρόβλημα στην προσπάθεια της να υλοποιήσει μεγαλύτερα και πιο σύνθετα συστήματα λογισμικού σε μικρό χρoνικό διάστημα και με το μικρότερο δυνατό κόστος. Η συνήθης υλοποίηση των εφαρμογών, γίνεται με την χρήση γλωσσών γενικού σκοπού (GPL), αντικειμενοστραφείς και υψηλού επιπέδου αφαιρετικότητας. Μειονεκτήματα GPL δυσκολία της επικοινωνίας του προγραμματιστή με τον πελάτη για την ορθή καταγραφή των απαιτήσεων αυξημένη πολυπλοκότητα του κώδικα δυσκολία στην συντήρηση του κώδικα μείωση της παραγωγικότητας του προγραμματιστή Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT 3

4 Τα τελευταία χρόνια παρατηρείται αυξημένη η χρήση γλωσσών ειδικού σκοπού (DSL – Domain Specific Languages) για τη δημιουργία και συντήρηση εφαρμογών σε διάφορα ερευνητικά πεδία. Οι DSL πλεονεκτούν σε σχέση με τις GPL ως προς την : αφαιρετικότητα της γλώσσας (abstraction) ευκολία εκμάθησης της γλώσσας παροχή σημασιολογικής ακρίβειας βελτιώση της επικοινωνίας μεταξύ πελάτη - ειδικού πεδίου ευελιξία - επαναχρησιμοποίηση της γλώσσας (metamodels) αυτοματοποιημένη παραγωγή κώδικα (Java, C++) ευκολία στη συντήρηση αύξηση της παραγωγικότητας υψηλή αξιοπιστία GPL DSL OR Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT 4

5 Τι είναι η DSL ? H DSL χρησιμοποιείται για την επίλυση συγκεκριμένων προβλημάτων σε ένα πεδίο. Παράδειγματα DSL αποτελούν οι κανονικές εκφράσεις (regular expressions), οι γλώσσες επερωτήσεων για σχεσιακές βάσεις (SQL), η HTML και η css στο πεδίο του Web. Domain Specific Languages Πεδίο Χρήσης VHDL, Verilog, systemcγλώσσα περιγραφής υλικού (hardware) ANTLRγλώσσα παραγωγής parser SQLγλώσσα επερωτήσεων για σχεσιακές βάσεις Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT Παράδειγμα γλωσσών ειδικού σκοπού 5

6 Τι είναι η DSL ? (συνέχεια...) Μια DSL μπορεί να αναπαρασταθεί με μορφή κειμένου ή οπτικά. Η οπτική αναπαράσταση των δεδομένων είναι ο πιο φυσικός τρόπος για να περιγράψουμε σενάρια σε συγκεκριμένα πεδία εφαρμογής. Αυτό συνεπώς καθιστά το εργαλείο ποιό εύχρηστο και φιλικό στη χρήση του ακόμη και από χρήστες με μικρή εμπειρία στο χώρο του συγκεκριμένου πεδίου και στον προγραμματισμό. Η αναπαράσταση μιας DSL με μορφή κειμένου, απευθύνεται κυρίως σε χρήστες με μεγαλύτερη εμπειρία. Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT 6

7 Βασικές Κατηγορίες DSL Εξωτερική (external) DSL Εσωτερική (internal) DSL Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT 7

8 Βασικές Κατηγορίες DSL - Εξωτερική DSL Η εξωτερική DSL εισαγάγει μια εντελώς νέα σύνταξη και σημασιολογία, είναι πιο ευέλικτη και πιο εκφραστική από ότι οι εσωτερική γλώσσα. Ο σχεδιαστής αναλαμβάνει να αναπτύξει τη γλώσσα από την αρχή. Ενσωματώνει κατάλληλα δομές και έννοιες κάνοντας την περισσότερο κατανοητή σε ειδικούς του συγκεκριμένου πεδίου. Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT 8 Μειονέκτηματα Για να υλοποιηθεί μια εξωτερική DSL χρειάζεται: ένας λεκτικός αναλυτής (lexer) ένας συντακτικός αναλυτής (parser) ένας γεννήτορας κώδικα (code generator) μηχανισμός επικύρωσης (για τον έλεγχο του παραγόμενου μεταμοντέλου) μηχανισμός ελέγχου τύπων (type checker ) ένα διερμηνευτή (interpreter) ένα συνδέτη (linker) rich editor με υποστηρικτικά εργαλεία (outline view, code folding, auto editing, syntax coloring, Bracket matching, refactoring, validation )

9 Βασικές Κατηγορίες DSL - Εσωτερική DSL Για την υλοποίηση μιας εσωτερικής DSL δεν χρειάζονται επιπλέον υποστηρικτικά εργαλεία, μιας και παρέχονται από την περιβάλλον της GPL. Η DSL xρησιμοποιεί ένα μικρό σετ των εντολών της GPL. Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT 9 Μειονέκτηματα η DSL περιορίζεται στα γλωσσικά χαρακτηριστικά της GPL δεν είναι ευέλικτη δεν είναι ιδιαίτερα εκφραστική

10 Xtext Το Xtext είναι ένα πλαίσιο εκτέλεσης το οποίο μας δίνει την δυνατότητα να δημιουργήσουμε μια external DSL και παρέχει όλα τα απαραίτητα εργαλείων για την ανάπτυξης της DSL. Χαρακτηριστικά του Xtext:  Αφαιρετικότητα της γλώσσας (Abstraction)  Καλύτερη διαχείριση κώδικα (reusability)  Κατανόηση των απαιτήσεων του πελάτη(understanding requirements )  Χρωματισμός Συντακτικών εννοιών (Syntax coloring)  Επικύρωση περιεχομένου (validation of content)  Βοηθός περιεχομένου (Content assistant)  Δένδρο Διάρθρωσης (outline tree) Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT 10

11 Το Xtext αποτελεί ένα τμήμα του eclipse modeling project. Διατίθεται σε δύο εκδόσεις ( Standalone και Web Integration) Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT Xtext 11 Το πλαίσιο Xtext αποτελεί μια πλήρη υποδομή που περιλαμβάνει : έναν αναλυτή (parser) ένα συνδέτη (linker) ένα μηχανισμό ελέγχου τύπων (typechecker) EMF models (δημιουργία μεταμοντέλου ) ένα συντάκτη κειμένου (editor) Το Χtext υποστηρίζει : τα πλαίσια εκτέλεσης Eclipse και IntelliJ IDEA την ανάπτυξη GPL την ανάπτυξη DSL για διαδικτυακές εφαρμογές (firefox, chrome) continuous Integration (Maven & Gradle) πολλαπλές πλατφόρμες Ο.S.

12 Το Χtext χρησιμοποιεί EMF (Eclipse Modeling Framework) μοντέλα για την ανάλυση του κείμενου και την αναπαράσταση του στη μνήμη με τη μορφή γράφου (Abstract Syntax Tree - AST). Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT Xtext 12

13 Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT Xtext Το Xtext παράγει το Ecore μεταμοντέλο του AST 13

14 Αρχιτεκτονική του Xtext Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT 14

15 Αρχιτεκτονική του Xtext Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT 15

16 Αρχιτεκτονική του Xtext Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT 16

17 Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT Αρχιτεκτονική του Xtext 17

18 Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT Αρχιτεκτονική του Xtext 18

19 Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT Αρχιτεκτονική του Xtext 19

20 Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT Αρχιτεκτονική του Xtext 20

21 Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT Αρχιτεκτονική του Xtext 21

22 Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT Αρχιτεκτονική του Xtext 22

23 Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT Αρχιτεκτονική του Xtext 23

24 Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT Αρχιτεκτονική του Xtext 24

25 Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT Αρχιτεκτονική του Xtext 25

26 Xtext – Γραμματική της γλώσσας Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT Η γραμματική της γλώσσας ακολουθεί τον φορμαλισμό του EBNF 26

27 Το Εcore μεταμοντέλο συμμορφώνεται με τους κανόνες της γραμματικής Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT Xtext – Αντιστοίχιση της γραμματικής της DSL με το Εcore μεταμοντέλο 27

28 Η επικοινωνία μεταξύ πελάτη και εξυπηρετητή υλοποιείται με ΗTTP κλήσεις. Για τη διαδικτυακή ολοκλήρωση (Web integration) το Xtext υποστηρίζει δύο καταστάσεις λειτουργίας όσον αφορά την αποστολή κειμένου προς τον εξυπηρετητή. Την πλήρη κατάσταση λειτουργίας (StateFul mode) και την μερική κατάσταση λειτουργίας (StateLess mode). Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT Xtext – Ο Εξυπηρετητής 28 StateFul mode: για κάθε αλλαγή στον συντάκτη κειμένου αποστολή αιτήματος ενημέρωσης προς τον εξυπηρετητή. λήψη ολόκληρου του κειμένου ανάλυση και την επικύρωση του κειμένου απάντηση του εξυπηρετητή στην εφαρμογή Stateless mode: για κάθε αλλαγή στον συντάκτη κειμένου αποστολή αιτήματος ενημέρωσης προς τον εξυπηρετητή. λήψη αντιγράφου του τροποποιημένου κειμένου ανάλυση και την επικύρωση του κειμένου απάντηση του εξυπηρετητή στην εφαρμογή

29 Το Xtext υποστηρίζει τρεις βιβλιοθήκες σε JavaScript (Orion, Ace, CodeMirror) Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT Xtext – Η Εφαρμογή του Πελάτη 29

30 JavaScript API Η βιβλιοθήκη της Javascript ενσωματώνει πολλές συναρτήσεις για την διαχείριση και την προσαρμογή του συντάκτη. Οι πιο βασικές συναρτήσεις είναι: xtext.createEditor (options): μπορούμε να δημιουργήσουμε ένα ή περισσότερα στιγμιότυπα του συντάκτη xtext.createServices (editor, options): αρχικοποιούμε τις υπηρεσίες του συντάκτη xtext.removeServices (editor): διαγράφουμε τις υπηρεσίες του συντάκτη Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT Xtext – Η Εφαρμογή του Πελάτη Οι βασικές λειτουργίες του API είναι:  Λήψη του περιεχομένου του κειμένου (from server Xtext or JS)  Φόρτωση κειμένου από το διακομιστή του Xtext (προσδιορισμός resourceID)  Φόρτωση κειμένου μέσω JavaScript (με χρήση services)  Καταστάσεις Λειτουργίας (statefull or stateless)  Επισήμανση Συντακτικού (keywords, tokens)  Εμπλοκή των Services (createEditor, createServices etc + options ) 30

31 Μελέτη Περίπτωσης Στα πλαίσια της Διπλωματικής Εργασίας, αναπτύχθηκε ένα Διαδικτυακό περιβάλλον ανάπτυξης εφαρμογών με χρήση μιας DSL για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT. Το περιβάλλον υλοποιήθηκε με τη χρήση των γλωσσών/εργαλείων OpenLayers, Xtext, JavaScript, Html και css. Με τη χρήση του πλαισίου Χtext αναπτύχθηκε μια πειραματική γλώσσα πεδίου (EDL - Experimentation Description Language), μέσω της οποίας ένας χρήστης έχει τη δυνατότητα να δημιουργήσει σενάρια πειραμάτων που πρόκειται να εκτελεστούν από τις αυτόνομες ρομποτικές συσκευές. Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT 31 Πλεονεκτήματα της EDL αποτελεσματική συγγραφή σεναρίων πειραματισμού από μη έμπειρους χρήστες- ερευνητές παροχή υψηλού επιπέδου αφαιρετικότητας που προστατεύει τους ερευνητές από την πολυπλοκότητα της υποκείμενης πλατφόρμας και των διαθέσιμων συσκευών

32 Τα mobile IoT είναι κινητές έξυπνες συσκευές, που φέρουν διάφορα αισθητήρια, ικανοποιητική για τα σημερινά δεδομένα αυτονομία ενέργειας, μικρή επεξεργαστική ισχύ και ενσωματώνουν διάφορες τεχνολογίες επικοινωνίας (BT, Wi-Fi, GPS). Τα mobile IoT συλλέγουν, επεξεργάζονται και ανταλλάσουν πολλά δεδομένα με ομότιμους κόμβους ή με κεντρικά συστήματα. Οι εφαρμογές για τα mobile IoT, έχουν απώτερο σκοπό την διευκόλυνση της ζωής των ανθρώπων. Τομέας Πεδία Smart Cities Smart Parking Structural health Smartphone Detection Traffic Congestion Smart Lighting Smart Environment Forest Fire Detection Air Pollution Earthquake Early Detection Security & Emergencies Perimeter Access Control Radiation Levels Explosive and Hazardous Gases Domotic & Home Automation Energy and Water Use Remote Control Appliances Intrusion Detection Systems Art and Goods Preservation Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT Mobile IoT Εφαρμογές 32

33 Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT Γραμματική της EDL για Εφαρμογές του mobile IoT 33

34 EDL Web Editors - Η web εφαρμογή για mobile IoT Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT 34 Η διαδικτυακή εφαρμογή περιλαμβάνει το συντάκτη κειμένου, τον οπτικό συντάκτη και τα υποστηρικτικά εργαλεία. Οι συντάκτες υπεύθυνοι για την παροχή των απαραίτητων λειτουργιών στους ερευνητές για τη δημιουργία, την ενημέρωση και την επικύρωση των πειραμάτων. Στο συντάκτη κειμένου ο χρήστης μπορεί να συγγράψει ένα πείραμα με χρήση των εντολών που έχουν οριστεί από την γραμματική της EDL. Στον οπτικό συντάκτη o χρήστης μπορεί να δημιουργήσει ένα σενάριο χρησιμοποιώντας ένα χάρτη, πάνω στον οποίο μπορεί να ορίσει τις θέσεις και τα χαρακτηριστικά των κινητών κόμβων.

35 Ο συντάκτης κειμένου προσφέρει ένα πλούσιο μενού επιλογών στους ερευνητές για την εισαγωγή προκαθορισμένων μοτίβων κώδικα, και πολλές αυτοματοποιημένες διαδικασίες για τον έλεγχο της ορθής συγγραφής σεναρίων. Ανάπτυξη Συντάκτη Κειμένου για mobile IoT Εφαρμογές Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT 35 εισαγωγή ενός μοτίβου κώδικα (code template) στο συντάκτη μενού βοήθειας Εισαγωγή μοτίβων κώδικα για τα αισθητήρια, τα δεδομένα των κόμβων κ.α. συγχρονισμός των δεδομένων μεταξύ του συντάκτη κειμένου και του οπτικού συντάκτη αποθήκευση του σεναρίου καθαρισμός του σεναρίου Οι ερευνητές έχουν τη δυνατότητα να εισάγουν στο συντάκτη κειμένου μέσω του Πληκτρολογίου : Μεταδεδομένα του πειράματος τα δεδομένα της διαδρομής των κόμβων τα αισθητήρια,τους αλγόριθμους και τα μέσα επικοινωνίας που θα χρησιμοποιηθούν από τους κόμβους σε συγκεκριμένες χρονικές στιγμές

36 Επίσης παρέχονται μια σειρά από πρόσθετα εργαλεία για τη συντακτική και τη σημασιολογική επικύρωση. Ανάπτυξη Συντάκτη Κειμένου για mobile IoT Εφαρμογές (συνέχεια...) Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT 36 η βοήθεια περιεχομένου ο χρωματισμός της σύνταξης η αυτόματη συμπλήρωση τμημάτων κώδικα η επικύρωση του περιεχομένου του συντάκτη ο έλεγχος των σφαλμάτων Μερικές από τις παρεχόμενες λειτουργίες του συντάκτη κειμένου είναι:

37 Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT Επικύρωση Περιεχομένων του συντάκτη κειμένου 37 Η στατική ανάλυση των δεδομένων μιας γλώσσας DSL παίζει πολύ σημαντικό ρόλο κατά την υλοποίηση της γλώσσας. Ο χρήστης της γλώσσας, κατά τη διάρκεια της συγγραφής ενός σεναρίου, έχει τη δυνατότητα να λαμβάνει έγκαιρα πληροφορίες από τον αναλυτή της γλώσσας. Με αυτό τον τρόπο ανατροφοδοτείται άμεσα με πληροφορίες για τυχόν συντακτικά ή εννοιολογικά λάθη που μπορεί να συμβούν.

38 Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT Αναγνώριση / Αντιμετώπιση Λαθών του συντάκτη κειμένου 38 Η αναγνώριση και η αντιμετώπιση λαθών αποτελεί ένα πολύ σημαντικό προνόμιο της γλώσσας. Η διαδικασία της ταχείας ανατροφοδότησης πληροφοριών προς το χρήστη, πραγματοποιείται από ελεγκτικούς (checking) μηχανισμούς. Οι ελεκτικοί μηχανισμοί είναι συναρτήσεις που υλοπούνται στις κλάσεις Validator.xtend και CustomValidator.xtend

39 Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT Παραγωγή Κώδικα / Αρχείων 39 Ο γεννήτορας κώδικα που παρέχεται από το Xtext πλαίσιο είναι ένα εργαλείο το οποίο χρησιμοποιείται για τη μετάφραση και την παραγωγή αρχείων και κλάσεων Java. Η είσοδος του τροφοδοτείται με το σενάριο που παράγει ο ερευνητής μέσω της εφαρμογής και στην έξοδο παράγονται τα αντίστοιχα αρχεία εξόδου και οι αντίστοιχες κλάσεις Java. Τα αρχεία εξόδου περιλαμβάνουν εντολές και δεδομένα που θα χρησιμοποιήθουν για την τροφοδοσία των εισόδων των αντίστοιχων mobile ΙοΤ συσκευών. Oι κλάσεις Java μπορούν να χρησιμοποιηθούν από τον προγραμματιστή για να επεκτείνουν την λειτουργικότητα της DSL.

40 Παράδειγμα σεναρίου EDL για mobile IoT Εφαρμογές Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT 40 Περιέχει γενικές πληροφορίες που σχετίζονται με κάθε πείραμα: όνομα, ημερομηνία έκδοση γενική περιγραφή Περιέχει γενικές πληροφορίες που σχετίζονται με κάθε πείραμα: όνομα, ημερομηνία έκδοση γενική περιγραφή Execution section (τμήμα εκτέλεσης) Declarations section (τμήμα δηλώσεων) Requirements section (τμήμα απαιτήσεων) Metadata section (τμήμα μεταδεδομένων)

41 Παράδειγμα σεναρίου EDL για mobile IoT Εφαρμογές Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT 41 Περιέχει πληροφορίες που σχετίζονται με τις απαιτήσεις του κάθε πειράματος όσον αφορά : τον αριθμό των κόμβων που θα εμπλακούν στο πείραμα τα δεδομένα της πλατφόρμας δοκιμών τη θέση, τη διάρκεια ή την απόσταση που οι κόμβοι πρέπει να καλύψουν κατά την εκτέλεση ενός πειράματος Περιέχει πληροφορίες που σχετίζονται με τις απαιτήσεις του κάθε πειράματος όσον αφορά : τον αριθμό των κόμβων που θα εμπλακούν στο πείραμα τα δεδομένα της πλατφόρμας δοκιμών τη θέση, τη διάρκεια ή την απόσταση που οι κόμβοι πρέπει να καλύψουν κατά την εκτέλεση ενός πειράματος Execution section (τμήμα εκτέλεσης) Declarations section (τμήμα δηλώσεων) Requirements section (τμήμα απαιτήσεων) Metadata section (τμήμα μεταδεδομένων)

42 Παράδειγμα σεναρίου EDL για mobile IoT Εφαρμογές Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT 42 Περιέχει τις απαραίτητες δηλώσεις όπως οι σταθερές και οι μεταβλητές που θα χρησιμοποιηθούν για την αποθήκευση των δεδομένων κατά τη διάρκεια της εκτέλεσης του πειράματος Execution section (τμήμα εκτέλεσης) Declarations section (τμήμα δηλώσεων) Requirements section (τμήμα απαιτήσεων) Metadata section (τμήμα μεταδεδομένων)

43 Παράδειγμα σεναρίου EDL για mobile IoT Εφαρμογές Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT 43 Περιλαμβάνει εντολές που σχετίζονται με τη διαχείριση της λογικής του κάθε πειράματος. H διαχείριση αυτή αφορά τον ορισμό: των σημείων των διαδρομών που εκτελούν οι κόμβοι της γραμμής του χρόνου (π.χ., διαδοχική ή παράλληλη εκτέλεση) του συντονισμού των κόμβων του ελέγχου των κόμβων (π.χ. ενεργοποίηση / απενεργοποίηση των αισθητήρων) των δεδομένων σε κάθε κόμβο της επικοινωνίας (π.χ. αλλαγή στις διεπαφές του δικτύου) Περιλαμβάνει εντολές που σχετίζονται με τη διαχείριση της λογικής του κάθε πειράματος. H διαχείριση αυτή αφορά τον ορισμό: των σημείων των διαδρομών που εκτελούν οι κόμβοι της γραμμής του χρόνου (π.χ., διαδοχική ή παράλληλη εκτέλεση) του συντονισμού των κόμβων του ελέγχου των κόμβων (π.χ. ενεργοποίηση / απενεργοποίηση των αισθητήρων) των δεδομένων σε κάθε κόμβο της επικοινωνίας (π.χ. αλλαγή στις διεπαφές του δικτύου) Execution section (τμήμα εκτέλεσης) Declarations section (τμήμα δηλώσεων) Requirements section (τμήμα απαιτήσεων) Metadata section (τμήμα μεταδεδομένων) Execution section (τμήμα εκτέλεσης)

44 Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT Ανάπτυξη Γραφικού Περιβάλλοντος για mobile IoT Εφαρμογές Το περιβάλλον αναπτύχθηκε με τη χρήση των γλωσσών/εργαλείων OpenLayers, Xtext, JavaScript, Html και css. Το OpenLayers χρησιμοποιήθηκε για την απεικόνιση των χαρτών στον οπτικό συντάκτη (Visual editor). 44 Στον οπτικό συντάκτη o χρήστης μπορεί να δημιουργήσει ένα σενάριο χρησιμοποιώντας τον χάρτη, πάνω στον οποίο μπορεί : να ορίσει τις θέσεις των κινητών κόμβων να ορίσει τα χαρακτηριστικά των κινητών κόμβων να μετακινήσει τους κινητούς κόμβους να διαγράψει ένα κινητό κόμβο

45 Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT Ανάπτυξη Γραφικού Περιβάλλοντος για mobile IoT Εφαρμογές 45 Ο οπτικός συντάκτης προσφέρει ένα πλούσιο μενού επιλογών με την χρήση κουμπιών και αναδυόμενων μενού επιλογών όπως: Επιλογή των αισθητηρίων, των αλγορίθμων και των επικοινωνιών που θα χρησιμοποιηθούν από κάθε κόμβο Συγχρονισμός των δεδομένων μεταξύ του συντάκτη κειμένου και του οπτικού συντάκτη Προβολή/απόκρυψη πληροφοριών των σημείων διαδρομής των κόμβων (id, lon, lat, height, time) Εμφάνιση του ενεργού κόμβου, με στιγμιαίο χρωματισμό των σημείων διαδρομής που ανήκουν στο ενεργό κόμβο Καθαρισμός όλων των σημείων διαδρομής του τρέχοντος ενεργού κόμβου από το χάρτη Διαγραφή του τρέχοντος ενεργού κόμβου από το χάρτη Πρόσθεση ενός επιπλέον κόμβου στο χάρτη

46 Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT Συγχρονισμός δεδομένων μεταξύ του συντάκτη κειμένου και του οπτικού συντάκτη 46 Για την ταύτιση των δεδομένων του συντάκτη κειμένου και του οπτικού συντάκτη απαιτείται να υπάρχει συγχρονισμός. Σημαντικός παράγοντας επιτυχούς συγχρονισμού αποτελεί η συντακτική και η σημασιολογική ορθότητα των δεδομένων κυρίως από την μεριά του συντάκτη κειμένου. Ο αλγόριθμος που υλοποιήθηκε βασίζεται στην επεξεργασία συμβολοσειρών του περιεχομένου του συντάκτη κειμένου.

47 Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT 47 Συγχρονισμός δεδομένων μεταξύ του συντάκτη κειμένου και του οπτικού συντάκτη

48 Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT 48 Συμπεράσματα Η διαδικτυακή εφαρμογή για τον πειραματισμό σε Κινητές Ρομποτικές Διατάξεις ΙοΤ αποτελεί ένα σημαντικό εργαλείο για τους πειραματιστές Η συγγραφή σεναρίων στο συντάκτη κειμένου είναι πλέον μια απλή διαδικασία ΟΙ μηχανισμοί επικύρωσης και αναγνώρισης λαθών συντελούν στην αύξηση της παραγωγικότητας των ερευνητών κατά την διάρκεια συγγραφής σεναρίων Η διαδικασία για την δημιουργία σεναρίων με την χρήση του οπτικού συντάκτη είναι απλή και γρήγορη

49 Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT 49 Μελλοντικές Επεκτάσεις Yλοποίηση επεκτάσεων του οπτικού συντάκτη για τη δημιουργία της ροής εκτέλεσης (workflow) των πειραμάτων.

50 Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT 50 Μελλοντικές Επεκτάσεις Simulator 2D/3D: για την προσομοίωση των πειραματικών σεναρίων

51 Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT 51

52 ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ Γλώσσα Ειδικού Σκοπού & Εργαλείο Ανάπτυξης για Πειραματισμό σε Κινητές Ρομποτικές Διατάξεις IoT Μιχαήλ Α. Τσιρούκης Επιβλέπων: Ευστάθιος Χατζηευθυμιάδης, Αναπληρωτής Καθηγητής ΕΚΠΑ ΑΘΗΝΑ ΟΚΤΩΒΡΙΟΣ 2016


Κατέβασμα ppt "ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ ΔΙΠΛΩΜΑΤΙΚΗ."

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google