Browse Source

Add files via upload

main
cs151098 3 years ago
committed by GitHub
commit
aea98da576
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 160
      cs151098_Project.md
  2. BIN
      cs151098_Project.zip

160
cs151098_Project.md

@ -0,0 +1,160 @@

# Project Υπολογιστικής Νέφους και Υπηρεσιών
>## Ναθαναήλ Αντώνιος
>## cs151098
>## Εξάμηνο: 12ο
## Αρχική παρουσίαση εφαρμογών
- Tυχαία υπηρεσία δημιουργίας τυχαίων αριθμών και απαρίθμηση αυτών (θύρα 800).
- Υπηρεσία CRUD για έναν χρήστη: Δημιουργία, Ανάγνωση, Ενημέρωση και αποσύνδεση λειτουργιών σε μια συλλογή χρηστών (θύρα 81)
- Μηχανή αναζήτησης πλήρους κειμένου υποστηριζόμενη από ευρετήριο της MongoDb (θύρα 82)
- Μια επίδειξη με μεταφορτώσεις φωτογραφικών αρχείων, hash search και χρήση docker volumes. Επίσης θα είναι διαθέσιμη μια αναζήτηση μέσω API εικόνας (θύρα 85)
- Μια εικονική βιβλιοθήκη, διαθέτει μεθόδους API για μηχανισμούς διαχείρισης και δανεισμού βιβλίων. Οι χρήστες πρέπει να έχουν δημιουργήσει "προφίλ" χρησιμοποιώντας την υπηρεσία User CRUD. (θύρα 86)
- Grafana με αποθηκευτικό χώρο InfluxDb. Για εμφάνιση γραφημάτων σε αισθητήρες. Συνδέεται με την υπηρεσία MQTT. Κάθε σημείο δεδομένων που περνά μέσω της υπηρεσίας MQTT θα αποθηκεύεται στο InfluxDb και θα εμφανίζεται σε Grafana. (θύρα 3000) Τα προεπιλεγμένα διαπιστευτήρια είναι: admin / admin (Εγκατάσταση της MQTT: sudo apt-get install mosquitto-clients)
## Έλεγχος θυρών και εγκατάσταση curl
cd docker-flask-mongodb-example
./check_ports.sh
>port 800 is free
port 81 is free
port 82 is free
port 85 is free
port 86 is free
port 3000 is free
sudo apt-get install curl
## Έναρξη microservices
cd docker-flask-mongodb-example
docker-compose build
docker-compose up
## Εφαρμογή 1:
Αυτή η υπηρεσία δημιουργεί τυχαίους αριθμούς και τους αποθηκεύει σε έναν συγκεκριμένο πίνακα (5 από αυτούς). Επίσης μπορεί να δημιουργήσει και να επιστρέψει έναν τυχαίο αριθμό.
- Δημιουργία τυχαίου αριθμού μεταξύ 10 και 100 και επιστροφή:
>curl -i "http://localhost:800/random?lower=10&upper=100"
- Δημιουργία τυχαίου αριθμού μεταξύ 10 και 100 και αποθήκευση στον πίνακα:
>curl -X PUT -i "http://localhost:800/random" -d lower=10 -d upper=20
- Εμφάνιση τελευταίων 5 δημιουργημένων αριθμών:
>curl -i "http://localhost:800/random-list"
## Εφαρμογή 2
CRUD σημαίνει create, read, update και delete. Ένας χρήστης έχει ένα id, email και ένα όνομα
- curl POST: Προσθήκη χρήστη με ένα email, όνομα και userid:
>curl -X POST -d email=cs151098@uniwa.gr -d name=Antonis http://localhost:81/users/151
- curl PUT: Αλλαγή ονόματος, email ή και των δύο, στον χρήστη με το αντίστοιχο userid:
>curl -X PUT -d email=cs15109879@uniwa.gr http://localhost:81/users/155
- curl GΕT: Εμφάνιση των στοιχείων του χρήστη με το δοθέν userid
>curl -i "http://localhost:81/users/96"
- curl DELETE: Διαγραφή του χρήστη με το δοθέν userid:
>curl -X DELETE -i "http://localhost:81/users/96"
## Εφαρμογή 3:
Χρησιμοποιείται μία REST API για την εισαγωγή ενός κειμένου σε μία βάση πλήρους κειμένου, ενώ επανακτά τις 10 τελευταίες εισαγωγές.
- Προσθήκη νέας έκφρασης:
>curl -u admin:changeme -X PUT -d expression="Magical Educational Institute of Athens" http://localhost:82/fulltext
- Εμφάνιση αποθηκευμένων κειμένων που περιέχουν τη λέξη "of":
>curl -u admin:changeme -i "http://localhost:82/search/of"
## Εφαρμογή 4:
Εργαλεία προς εργασία σχετική με αρχεία εικόνας. Upload, Delete, resize, rotate, brightness και αναζήτηση με βάση την ανεβασμένη εικόνα.
- Αλλαγή μεγέθους φωτογραφίας που έχει id=3:
>curl -i "http://localhost:85/photo/3?resize=100"
- Διαγραφή φωτογραφίας που έχει id=3:
>curl -X DELETE http://localhost:85/photo/3
- Προσθήκη φωτογραφίας που έχει id=3:
>curl -X PUT -F "file=@stefanosxios.jpg" http://localhost:85/photo/3
- Αναζήτηση σχετικής φωτογραφίας:
>curl -X PUT -F "file=@giorgosleventis.jpg" http://localhost:85/photo/similar
## Εφαρμογή 5:
Οι λογαριασμοί των χρηστών της βιβλιοθήκης δημιουργήθηκαν στην εφαρμογή 2.
- Προσθήκη βιβλίου
>curl -X PUT "http://localhost:86/book/978-1607965503" -H "accept: application/json" -H "Content-Type: application/json" -d "{ \"isbn\": \"978-1607965503\", \"name\": \"Lincoln the Unknown\", \"author\": \"Dale Carnegie\", \"publisher\": \"snowballpublishing\", \"nr_available\": 5}"
- Εμφάνιση βιβλίου
>curl -i "curl -X GET "http://localhost:86/book/978-1607965503" -H "accept: application/json""
- Εμφάνιση όλων των βιβλίων
>curl -X GET "http://localhost:86/book?limit=5&offset=0" -H "accept: application/json"
- Διαγραφή βιβλίου
>curl -X DELETE "http://localhost:86/book/1" -H "accept: application/json"
- Δανεισμός βιβλίου
>curl -X PUT "http://localhost:5000/borrow/1" -H "accept: application/json" -H "Content-Type: application/json" -d "{ \"id\": \"1\", \"userid\": 4, \"isbn\": \"978-1607965503\", \"borrow_date\": \"2019-12-12T09:32:51.715Z\", \"return_date\": \"2020-02-12T09:32:51.715Z\"}"
- Εμφάνιση λίστας δανεισμών
>curl -X GET "http://localhost:86/borrow?limit=2&offset=0" -H "accept: application/json"
- Επιστροφή βιβλίου
>curl -X PUT "http://localhost:86/borrow/return/16" -H "accept: application/json" -H "Content-Type: application/json" -d "{ \"id\": \"16\", \"return_date\": \"2019-12-13T08:48:47.899Z\"}"
## Εφαρμογή 6:
Grafana με υλοποίηση Influx Db για την εμφάνιση δεδομένων αισθητήρων.
- Τα default στοιχεία είναι admin/admin
- Το web interface: http://localhost:3000
Η docker εικόνα του Grafana δημιουργεί ένα dashboard που ονομάζεται "SensorMetrics", οπότε στο interface επιλέγουμε "Home".
- Προσθήκη υγρασίας με τιμή 74 κατευθείαν στην βάση δεδομένων InfluxDb:
>curl -i -XPOST 'http://localhost:8086/write?db=influx' --data-binary 'humidity value=74'
- Προσθήκη υγρασίας με τιμή 74 χρησιμοποιώντας MQTT:
>mosquitto_pub -h localhost -u some_user -P some_pass -p 1883 -d -t sensors -m "{\"sensor_id\": \"humidity\", \"sensor_value\": 74}"
Έπειτα, μπορούν να εμφανιστούν τα γραφήματα.
- Επιλογή του *SensorMetrics*
- Άνω δεξιά, επιλογή "Last 5 minutes"
- Επιλογή κατηγορίας που προστέθηκαν εγγραφές *(εν προκειμένω humidity)*
- Σύνδεση με την τοπική *InfluxDb*
>docker ps
- Έναρξη του influx shell, αλλάζοντας το 035124f1b665 με το προσωπικό container id
>docker exec -it 035124f1b665 influx
- Τώρα υπάρχει πρόσβαση στο influx shell, όπου υπάρχει η δυνατότητα των παρακάτω εντολών:
> SHOW DATABASES
-- Εμφάνιση όλων των βάσεων δεδομένων
USE influx
-- επιλογή "influx" βάσης δεδομένων
SHOW MEASUREMENTS
-- εμφάνιση τρεχόντων μετρήσεων, όπως humidity, temperature κλπ.
SELECT * from "humidity"
-- Εμφάνιση όλων των εγγραφών που αφορούν το humidity
- List item

BIN
cs151098_Project.zip

Binary file not shown.
Loading…
Cancel
Save