HEAL DSpace

WebAssembly Workshop: Διαδικτυακή μεταγλώττιση και ανάπτυξη κώδικα

Αποθετήριο DSpace/Manakin

Εμφάνιση απλής εγγραφής

dc.contributor.author Ζαραβίνος, Γεώργιος el
dc.contributor.author Λεούσης, Σάββας el
dc.contributor.author Zaravinos, Georgios en
dc.contributor.author Leousis, Savvas en
dc.date.accessioned 2021-09-03T09:24:02Z
dc.date.available 2021-09-03T09:24:02Z
dc.identifier.uri https://dspace.lib.ntua.gr/xmlui/handle/123456789/53789
dc.identifier.uri http://dx.doi.org/10.26240/heal.ntua.21487
dc.rights Default License
dc.subject Προγράμματα περιήγησης ιστού el
dc.subject Μεταγλωττιστές el
dc.subject Ιστοσελίδες el
dc.subject Διαδίκτυο el
dc.subject Εργαλείο προγραμματισμού el
dc.subject WebAssembly en
dc.subject Browsers en
dc.subject Compilers en
dc.subject Web pages en
dc.subject Web development en
dc.title WebAssembly Workshop: Διαδικτυακή μεταγλώττιση και ανάπτυξη κώδικα el
heal.type bachelorThesis
heal.classification Web development en
heal.language el
heal.language en
heal.access free
heal.recordProvider ntua el
heal.publicationDate 2021-01-15
heal.abstract The purpose of this diploma dissertation is to integrate tools, more specifically compilers from well-known programming languages such as C, C++ and Go to Web Assembly. The reason we did this is for enabling programs and applications coded in these languages also run in web browsers. For many years, browsers used to run explicitly JavaScript. Recently, a new low-level language has emerged and promises many benefits, most notably the ability to run higher- performance web applications. It allows front-end developers to take advantage of an existing language that is probably more familiar to them, such as C++, or simply use existing code snippets, such as search algorithms, that can now run on a web page almost as fast as a native application. The architecture we used to implement our tool is that of Microservices. This architecture helped us to split the entire application into smaller sub-sections that operate independently of each other but are combined to achieve the full functionality of the tool. More specifically, Docker is the tool that allowed us to separate applications and made it possible to compact and run all individual applications in small isolated environments called containers on a single server. For the final realization of our goal, the basic technologies used are several. Our develop- ment tools are Docker and Firebase. In the backend of our application we have used NGINX, Python Flask with uWSGI, MongoDB, Kafka together with Zookeeper and of course our 2 main compilers, Emscripten (for C and C++) and the Golang compiler. Finally, at fron- tend we used Angular. All these technologies work together for the smooth operation of the application. The final product of our work is a website – a tool for developers. Essentially, we enable anyone to write and save their application in their favorite language. Then the developer can see it running in the browser effortlessly and without being required to have special knowledge about Web Assembly and web applications in general. It is therefore a tool that aims to familiarize developers with web applications at the lowest possible cost and maximum convenience. en
heal.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 και τις εφαρμογές διαδικτύου γενικότερα. Πρόκεται λοιπόν για ένα εργαλείο που έχει στόχο την εξοικείωση των προγραμματιστών με την με τον χώρο των δικτυακών εφαρμογών με το ελάχιστο δυνατό κόστος και τη μέγιστη ευκολία. el
heal.advisorName Παπασπύρου, Νικόλαος el
heal.committeeMemberName Σαγώνας, Κωνσταντίνος el
heal.committeeMemberName Γκούμας, Γεώργιος el
heal.academicPublisher Εθνικό Μετσόβιο Πολυτεχνείο. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Τομέας Τεχνολογίας Πληροφορικής και Υπολογιστών el
heal.academicPublisherID ntua
heal.numberOfPages 48 σ. el
heal.fullTextAvailability false


Αρχεία σε αυτό το τεκμήριο

Αυτό το τεκμήριο εμφανίζεται στην ακόλουθη συλλογή(ές)

Εμφάνιση απλής εγγραφής