Please use this identifier to cite or link to this item: http://artemis.cslab.ece.ntua.gr:8080/jspui/handle/123456789/17937
Title: WebAssembly Workshop: Διαδικτυακή μεταγλώττιση και ανάπτυξη κώδικα
Authors: Ζαραβίνος, Γεώργιος
Λεούσης, Σάββας
Παπασπύρου Νικόλαος
Keywords: WebAssembly
Προγράμματα περιήγησης ιστού
Μεταγλωττιστές
Ιστοσελίδες
Διαδίκτυο
Issue Date: 15-Jan-2021
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 και τις εφαρμογές διαδικτύου γενικότερα. Πρόκεται λοιπόν για ένα εργαλείο που έχει στόχο την εξοικείωση των προγραμματιστών με την με τον χώρο των δικτυακών εφαρμογών με το ελάχιστο δυνατό κόστος και τη μέγιστη ευκολία.
URI: http://artemis.cslab.ece.ntua.gr:8080/jspui/handle/123456789/17937
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.