background image

Σχεδιασμός και υλοποίηση συστήματος IoT ασύρματου ελέγχου και μέτρησης ενέργειας 

 

27 

 

2.2.3 Το πλαίσιο εφαρμογής Express.js

 

 

 

Το  Express.js  δημιουργήθηκε  το  2010  από  τον  TJ  Holowaychuk  και  είναι  ένα 

διαδικτυακό  πλαίσιο  εφαρμογής  (framework),  για  το  περιβάλλον  εκτέλεσης  Node.js. 
Παρέχει  μια  απλή  και  ευέλικτη  δομή  για  την  ανάπτυξη  λογισμικού  εξυπηρετητών 

(servers),  ενώ  περιλαμβάνει  μια  εύρωστη  συλλογή  από  χρήσιμα  χαρακτηριστικά  με 
σκοπό την γρήγορη δημιουργία διαδικτυακών εφαρμογών [12]. 
 

Παρακάτω,  γίνεται  μια  συνοπτική  αναφορά  στα  επιμέρους  πακέτα  και 

βιβλιοθήκες  λογισμικού  που  αξιοποιήθηκαν  σε  συνδυασμό  με  το  Express.js,  για  την 
ανάπτυξη του παρών συστήματος στο περιβάλλον του Node.js. 
 
Mongoose.js 

Το  Mongoose  είναι  μια  βιβλιοθήκη  μοντελοποίησης  δεδομένων  αντικειμένων  (Object 
Data Modeling), για την βάση δεδομένων MongoDB και το Node.js [13]. Χρησιμεύει στην 
διαχείριση  των  συσχετίσεων  ανάμεσα  στα  δεδομένα,  όπως  και  στην  επικύρωση  των 

δεδομένων πριν αυτά εισαχθούν στην βάση MongoDB. 

 

MQTT – Aedes 

Το  Aedes  είναι  μια  βιβλιοθήκη  λογισμικού  για  το  Node.js,  η  οποία  υλοποιεί  το 
πρωτόκολλο  ανταλλαγής  μηνυμάτων  MQTT  για  επικοινωνία  μεταξύ  διαφορετικών 
συσκευών  [14].  Το  Aedes,  έχει  το  ρόλο  του  εξυπηρετητή-διαμεσολαβητή  στην 
επικοινωνία αυτή, προωθώντας τα μηνύματα που λαμβάνει στα κατάλληλα κανάλια.   

 
JSON Web Tokens 
Τα  JSON  Web  Tokens  (JWT),  είναι  ένα  πρότυπο  το  οποίο  καθορίζει  ένα  συμπαγή  και 

ασφαλή τρόπο μετάδοσης πληροφορίας ανάμεσα σε δύο οντότητες, με την μορφή ενός 
αντικειμένου JSON (JavaScript Object Notation) [15]. Στο σύστημα που περιγράφεται, τα 
JWT  χρησιμοποιούνται  για  την  αυθεντικοποίηση  των  χρηστών.  Συγκεκριμένα,  για  την 

δημιουργία του JWT, χρησιμοποιείται το αναγνωριστικό του χρήστη στην βάση, καθώς 
και η διεύθυνση IP του. Τυπικά, ένα JWT έχει την μορφή : xxxxx.yyyyy.zzzzz, με το πρώτο 
μέρος να είναι η κεφαλίδα, που περιέχει πληροφορίες για τον τύπο του και τον αλγόριθμο 
υπογραφής  (signing  algorithm)  που  χρησιμοποιήθηκε.  Το  δεύτερο  μέρος  περιέχει  τα 

δεδομένα, ενώ το τρίτο την υπογραφή του JWT, η οποία περιλαμβάνει και ένα μυστικό 
κλειδί. Τέλος, κάθε τμήμα του JWT κωδικοποιείται στη μορφή base64.  
 

Bcrypt  
Ο  Bcrypt  είναι  ένας  αλγόριθμος  κατακερματισμού  (hashing)  και  σχεδιάστηκε  από  τους 
Niels Provos και David Mazières το 1999, ενώ βασίστηκε στην κρυπτογράφηση Blowfish 

[16].  Χρησιμοποιώντας  την  κατάλληλη  βιβλιοθήκη  λογισμικού,  στο  παρόν  σύστημα  ο 
αλγόριθμος αυτός αξιοποιείται για τον κατακερματισμό των κωδικών πρόσβασης των 
χρηστών, ώστε να αποθηκευτούν στην βάση δεδομένων με ασφάλεια.