Πλατφόρμα

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

 

Η αρχιτεκτονική ακολουθεί μια N-Tier αρχιτεκτονική προσέγγιση, στην οποία έχουν καθοριστεί οι διακριτές της λειτουργίες σε υποσυστήματα και παρέχει υπηρεσίες. Αυτή αφορά τον εξυπηρετητή αισθητήρων που αποτελεί το κεντρικό σύστημα της πλατφόρμας.

Τα υπόλοιπα συστήματα αποτελούν τα: Web GIS, Business Intelligence και Social Media Manager. Η λειτουργία τους είναι ανεξάρτητη, παρέχοντας τη δική τους επιχειρησιακή λογική. Για τα συγκεκριμένα συστήματα θα επιλεχθεί και θα παραμετροποιηθεί μια έτοιμη λύση  (COTS Software– Commercial-Of-The-Shelf Software) λογισμικού που θα μπορεί όμως να ενσωματωθεί ως υποσύστημα, εκτός του Social Network Manager που θα αναπτυχθεί εξ ολοκλήρου.

 

 

Περιβάλλον Ανάπτυξης

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

  • Χρήση εργαλείων ανοιχτού κώδικα με μηδενικό ή μικρό κόστος απόκτησης.

    • Μικρό κόστος έναρξης χρήσης

    • Μηδενικό κόστος στους πελάτες της πλατφόρμας αφού δεν συνοδεύεται από επιπλέον άδειες για την χρήση και την ανάπτυξη νέων εφαρμογών

    • Καλά τεκμηριωμένα εργαλεία, όπου η διάθεση του πηγαίου κώδικά τους, επιτρέπει την τροποποίησή τους (εφόσον κριθεί απαραίτητο). Επιπρόσθετα κρίσιμα σφάλματα μπορούν να διορθωθούν από την ίδια την προγραμματιστική ομάδα, χωρίς την αναμονή έκδοσης patch από τους προγραμματιστές των εργαλείων.

  • Υιοθέτηση επεκτάσιμης πλατφόρμας ανάπτυξης εφαρμογών, ώστε να είναι δυνατόν να αναπτυχθούν εύκολα νέες εφαρμογές.

    • Ταχεία υιοθέτηση νέων τεχνολογιών στην πλατφόρμα.

    • Προσθήκη νέων λειτουργιών με ελάχιστη προσπάθεια.

  • Εργαλεία για την εύκολη ενσωμάτωση του λογισμικού στο περιβάλλον του υπολογιστικού νέφους (Computing Cloud).

    • Μικρή προσπάθεια στην εγκατάσταση της εφαρμογής στο περιβάλλον του υπολογιστικού νέφους.

    • Ευέλικτη ανάπτυξη, με μειωμένους κύκλους: προσθήκη νέων χαρακτηριστικών⇒δοκιμές του λογισμικού⇒εγκατάστασης νέων εκδόσεων στο παραγωγικό περιβάλλον.

  • Ορισμό συνολικής Διαδικασίας ανάπτυξης και βέλτιστων πρακτικών.

    • Ευέλικτη (Agile) ανάπτυξη. 

 

Με βάση τις παραπάνω αρχές επιλέξαμε ως το κύριο περιβάλλον ανάπτυξης του κώδικα το Eclipse IDE (https://www.eclipse.org/ide/), το οποίο παρέχεται δωρεάν και επιτρέπει την ενσωμάτωση και συγγραφή πρόσθετων εργαλείων (plugins) που διευκολύνουν την ανάπτυξη της απαιτούμενης λειτουργικότητας.

 

Παράλληλα και για την καλύτερη κάλυψη των αναγκών ανάπτυξης στο cloud Kubernetes, ενσωματώθηκε και η χρήση των δύο ακόλουθων μηχανισμών στο ολοκληρωμένο σύστημα ανάπτυξης:  

  • Εργαλείων δημιουργίας εικονικών μηχανών που περιέχουν το υπό ανάπτυξη σύστημα, και τα οποία στην περίπτωσή μας (λόγω Kubernetes/OpenShift/Fabric8) είναι Docker Images.

  • Πλατφόρμας Συνεχόμενης Ενσωμάτωσης και Παράδοσης (Continuous Integration and Continuous Delivery – CI-CD)

 

Όλα τα εργαλεία ανάπτυξης, που αποτελούν το ολοκληρωμένο περιβάλλον εκτέλεσης που επιλέχθηκε και παραμετροποιήθηκε για τις ανάγκες ανάπτυξης εφαρμογών αισθητήρων, συνεργάζονται με την πλατφόρμα υποδομής Cloud Kubernetes/Openshift V3/Fabric8 V2. Πιο αναλυτικά, το περιβάλλον υπολογιστικού σύννεφου που επιλέχθηκε είναι η πλατφόρμα ανοιχτού λογισμικού PaaS (Platform-as-a-Service) Openshift Origin (http://www.openshift.org), η οποία βασίζεται Kubernetes (http://kubernetes.io) και ολοκληρώνεται με επιπλέον υπηρεσίες από το Fabric8 (http://fabric8.io). Προσφέρει ένα περιβάλλον όπου προγραμματιστές και προγραμματιστικές ομάδες μπορούν να χτίσουν, τεστάρουν, εγκαταστήσουν και τρέξουν τις εφαρμογές τους σε υποδομή cloud. 

 

Το Eclipse IDE (Integrated Development Environment) είναι ένα ολοκληρωμένο περιβάλλον  ανάπτυξης για κώδικα σε τεχνολογίες Java, C/C++ PHP κ.α. Διαθέτει μηχανισμό plugins αλλά και το Eclipse Marketplace, όπου ο προγραμματιστής μπορεί να προσθέσει εύκολα plugins τρίτων. Στα πλαίσια του έργου αποτελεί το βασικό περιβάλλον ανάπτυξης, στο οποίο ο προγραμματιστής γράφει το κώδικά εφαρμογών αισθητήρων και με την χρήση των υπόλοιπων εργαλείων και συστημάτων ενσωματώνει και δοκιμάζει το κώδικα του στο υπολογιστικό σύννεφο του Kubernetes

 

SaaS fabric

Προκειμένου η συνολική πλατφόρμα Cloud4Smart να διατίθεται ως υπηρεσία (Software as a Service) απαιτήθηκε η ικανοποίηση συγκεκριμένων προϋποθέσεων, ικανών να υποστηρίξουν την αρχιτεκτονική, λειτουργική και διαχειριστική επάρκεια του προτεινόμενου μοντέλου διάθεσης λογισμικού.   

Συγκεκριμένα το σύστημα :

  1. μετασχηματίζει το λογισμικό εφαρμογών σε υπηρεσία σύμφωνα με την αρχιτεκτονική του μοντέλου SaaS (SaaS readiness)

  2. διαθέτει όλες τις απαιτούμενες υποστηρικτικές υπηρεσίες λογισμικού, ώστε το λογισμικό εφαρμογών να λειτουργεί ως υπηρεσία (SaaS enablement)

  3. παρέχει όλα τα απαραίτητα εργαλεία προκειμένου η υπηρεσία λογισμικού να είναι διαχειριστικά επαρκής (SaaS management)

 

Τις παραπάνω προϋποθέσεις λειτουργικότητας του μοντέλου διάθεσης λογισμικού SaaS καλύπτει ένα ολοκληρωμένο πλέγμα μετασχηματισμών λογισμικού, καθώς και υποστηρικτικών υπηρεσιών για τη λειτουργία και διαχείριση του λογισμικού ως υπηρεσία (service delivery fabric or SaaS fabric). Το ακόλουθο διάγραμμα περιγράφει το γενικό περιεχόμενο του πλέγματος SaaS για τη πλατφόρμα Cloud4Smart

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Στον άξονα του SaaS-ready αναφέρονται οι μετασχηματισμοί λογισμικού οι οποίοι είναι αναγκαίοι προκειμένου μία εφαρμογή να είναι ικανή να προσφερθεί ως υπηρεσία SaaS. Αντίστοιχα στον άξονα SaaS-enabled αναφέρονται οι υποστηρικτικές υπηρεσίες ώστε η κάθε εφαρμογή να διατίθεται ως υπηρεσία. Τέλος στον άξονα SaaS-managed αναφέρονται εργαλεία και υπηρεσίες που χρειάζονται στη διαχείριση της υπηρεσίας λογισμικού