Please use this identifier to cite or link to this item: http://artemis.cslab.ece.ntua.gr:8080/jspui/handle/123456789/17937
Full metadata record
DC FieldValueLanguage
dc.contributor.authorΖαραβίνος, Γεώργιος-
dc.contributor.authorΛεούσης, Σάββας-
dc.date.accessioned2021-05-19T11:21:34Z-
dc.date.available2021-05-19T11:21:34Z-
dc.date.issued2021-01-15-
dc.identifier.urihttp://artemis.cslab.ece.ntua.gr:8080/jspui/handle/123456789/17937-
dc.description.abstractΣκοπός της παρούσας εργασίας είναι η συγκέντρωση εργαλείων, πιο συγκεκριμένα μεταγλωττι- στών από γνωστές γλώσσες προγραμματισμού όπως οι C, C++ και η Go σε Web Assembly. Αυτό γίνεται με σκοπό προγράμματα και εφραμογές που είναι γραμμένα σε αυτές τις γλώσσες, να μπορούν να τρέχουν και σε προγράμματα περιήγησης ιστού. Για χρόνια η Javascript ηταν η μοναδική γλώσσα που έτρεχε στα προγράμματα περιήγησης ιστού. Πρόσφατα, μια νέα χαμηλού επιπέδου γλώσσα έκανε την εμφάνισή της και υπόσχεται πολλά πλεονεκτήματα με το βασικότερο να είναι η δυνατότητα για εκτέλεση εφαρμογών πιο υψηλής απόδοσης σε ιστοσελίδες. Επιτρέπει στους προγραμματιστές front-end να αξιοποιήσουν μια υπάρχουσα γλώσσα που είναι πιθανότατα πιο οικεία σε αυτούς όπως η C++ ή απλά να χρησιμοποιήσει υπάρχοντα κομμάτια κώδικα, όπως αλγόριθμους αναζήτησης, τα οποία πλέον μπορούν να τρέχουν σε μια ιστοσελίδα σχεδόν τόσο γρήγορα όσο μια εγγενής εφαρμογή. Η αρχιτεκτονική που χρησιμοποιήσαμε για την υλοποίηση του εργαλείου μας είναι αυτή των Microservices. Αυτή η αρχιτεκτονική μάς βοήθησε να διαχωρίσουμε την συνολική εφαρμογή σε μικρότερα επιμέρους τμήματα τα οποία λειτουργούν ανεξάρτητα το ένα από το άλλο αλλά συν- διάζονται για να επιτευχθεί η πλήρης λειτουργεία του εργαλείου. Πιο συγκεκριμένα, το Docker είναι αυτό το εργαλείο που μας επέτρεψε τον διαχωρισμό των εφαρμογών και κατέστησε δυνατή τη δυνατότητα συμπύκνωσης και εκτέλεσης όλων των επιμέρους εφαρμογών μικρά απομονωμένα περιβάλλοντα που ονομάζονται κοντέινερ σε έναν κεντρικό υπολογιστή. Για την τελική υλοποίηση του στόχου μας, οι βασικές τεχνολογίες που χρησιμοποιήθηκαν είναι αρκετές. Τα εργαλεία ανάπτυξης μας είναι το Docker και το Firebase. Στο backend της εφαρμογής μας έχει χρησιμοποιηθεί το NGINX, το Flask της Python με το uWSGI, η MongoDB, ο Kafka μαζί με το Zookeeper καθώς και οι 2 βασικοί μας μεταγλωττιστές, το Emscripten (για C και C++) και ο μεταγλωττιστής για την Go. Τέλος, στο frontend χρησιμοποίησαμε την Angular. Όλες αυτές οι τεχνολογίες συνεργάζονται μεταξύ τους με σκοπό την εύρυθμη λειτουργία της εφαρμογής. Το τελικό προϊόν της εργασίας μας είναι μια ιστοσελίδα – ένα εργαλείο για προγραμματι- στές. Ουσιαστικά, δίνουμε την δυνατότητα στον οποιοδήποτε να γράψει και να αποθηκεύσει την εφαρμογή του στη γλώσσα της αρέσκειάς του. Έπειτα μπορεί να την δει να τρέχει μέσα στο πρόγραμμα περιήγησης που χρησιμοποιεί χωρίς κανέναν κόπο και χωρίς να απαιτείται να διαθέτει ιδιαίτερες γνώσεις σχετικά με την Web Assembly και τις εφαρμογές διαδικτύου γενικότερα. Πρόκεται λοιπόν για ένα εργαλείο που έχει στόχο την εξοικείωση των προγραμματιστών με την με τον χώρο των δικτυακών εφαρμογών με το ελάχιστο δυνατό κόστος και τη μέγιστη ευκολία.en_US
dc.languageelen_US
dc.subjectWebAssemblyen_US
dc.subjectΠρογράμματα περιήγησης ιστούen_US
dc.subjectΜεταγλωττιστέςen_US
dc.subjectΙστοσελίδεςen_US
dc.subjectΔιαδίκτυοen_US
dc.titleWebAssembly Workshop: Διαδικτυακή μεταγλώττιση και ανάπτυξη κώδικαen_US
dc.description.pages48en_US
dc.contributor.supervisorΠαπασπύρου Νικόλαοςen_US
dc.departmentΤομέας Τεχνολογίας Πληροφορικής και Υπολογιστώνen_US
dc.description.notesΔιαδικτυακό εργαλείο ανάπτυξης και μεταγλώττισης κώδικαen_US
Appears in Collections:Διπλωματικές Εργασίες - Theses

Files in This Item:
File Description SizeFormat 
WebAssembly_Workshop.pdf805.85 kBAdobe PDFView/Open


Items in Artemis are protected by copyright, with all rights reserved, unless otherwise indicated.