Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Christainas grigorios

64 views

Published on

Ανάπτυξη μεθοδολογίας για μετασχηματισμό client-server αρχιτεκτονικής σε REST Εφαρμογή στην πλατφόρμα Power TAC

Published in: Education
  • Be the first to comment

  • Be the first to like this

Christainas grigorios

  1. 1. Ανάπτυξη μεθοδολογίας για μετασχηματισμό client- server αρχιτεκτονικής σε REST Εφαρμογή στην πλατφόρμα Power TAC. Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εργαστήριο Επεξεργασίας Πληροφορίας και Υπολογισμών Χρήσταινας Γρηγόριος Α.Ε.Μ: 7382 Επιβλέπων: Επίκουρος καθηγητής Ανδρέας Λ. Συμεωνίδης Θεσσαλονίκη 2 Νοεμβρίου 2017
  2. 2. Δομή Παρουσίασης Στόχος διπλωματικής Αρχιτεκτονική REST Διαγωνισμός PowerTAC Restification Επίδειξη λειτουργίας-Demo video 2
  3. 3. Στόχος διπλωματικής εργασίας Restification της πλατφορμας PowerTAC. • Προσαρμογή στην υπάρχουσα αρχιτεκτονική και τρόπο λειτουργίας της πλατφόρμας του διαγωνισμού. • Επίλυση προβλημάτων επικοινωνίας και διαμοιρασμού πληροφορίας 3
  4. 4. Αρχιτεκτονική REST • Resource Oriented Architecture • Stateless 4 Resource URI Representations Hypermedia links HTTP
  5. 5. Διαγωνισμός PowerTAC • Προσομοιώνεται μια αγορά ηλεκτρικής ενέργειας . • Aνταγωνιζόμενες αυτόνομες οντότητες επονομαζόμενοι ως brokers προσπαθούν να συνάψουν συμβόλαια με πελάτες και να ικανοποιήσουν τις ενεργειακές τους απαιτήσεις πραγματοποιώντας συναλλαγές με την αγορά χονδρικής. • Σκοπός τους είναι να μεγιστοποιήσουν το κερδος και να κατέχουν το υψηλότερο τραπεζικό υπόλοιπο στο τέλος της προσομοίωσης. 5
  6. 6. Στάδια προσομοίωσης  Boostrap περίοδος – Συλλογή μετρήσεων πελατών 14 μέρες πριν την κανονική πρσομοίωση.  Time slot - Μονάδα μέτρησης χρόνου προσομοίωσης – 5 sec πραγματικού χρόνου.  Διάρκεια προσομοίωσης ≅ 1440 time slots. 6
  7. 7. Αρχιτεκτονική Common module • Simulation clock • Συγχρονισμός server και broker Server Interface • Υλοποίηση οντοτήτων διαγωνισμού • Αποστολή και λήψη μυνημάτων Σύνδεση core modules με common και server interface modules. 7
  8. 8. Επικοινωνία Server Sample Broker Components Method calls JMS API • Java Message Service • Σειριοποίηση και αποσειριοποίηση μυνημάτων σε XML μορφή • Υλοποίηση συναρτήσεων handleMessage(msg) και sendMessage(msg) για αποστολή και λήψη μυνημάτων 8
  9. 9. Restification Αποθήκευση πληροφορίας Εξαγωγή Resources Ασύγχρονα Resources Βοηθητικά resources Αuthentication 9
  10. 10. Frameworks και API’s που χρησιμοποιήθηκαν JAX-RS + JAXB 10
  11. 11. Αποθήκευση πληροφορίας  Κάθε μήνυμα αποθηκεύεται στην βάση κατά την λήψη του στον sample broker.  Για κάθε αντικείμενο έχει δημιουργηθεί το αντίστοιχο entity object.  Η σύνδεση στην βάση με το κατάλληλο sessionfactory δημιουργείται κατά την αρχικοποίηση του sample broker. public void handleMessage (BankTransaction btx) { long bankid=btx.getId(); int PostedTs=btx.getPostedTimeslotIndex(); double bankAmount=btx.getAmount(); String bankBroker=btx.getBroker().toString(); session = sessionFactory.openSession(); session.beginTransaction(); BankTx log1 = new BankTx(bankid,PostedTs,bankAmount,bankBroker); session.save(log1); session.getTransaction().commit(); session.close(); }  1 βάση δεδομένων με πολλά schema’s, ένα για κάθε sample broker. 11
  12. 12. Εξαγωγή resources Broker Accept Competition Specs Properties Bootstrap Data Sim Start • Αρχικό στάδιο διαγωνισμού: • Στάδια μετά την έναρξη του διαγωνισμού: Timeslot Update Weather Data Balance Report Tariff Spec Transactions Cash Distribution Report Timeslot done • Tariffs, Orders, Balancing Orders, Tariff Revokes αποστέλλονται μετά το τέλος του time slot. Async resources Async resources 12
  13. 13. Asynchronous Resources @Path("/asyncresource") public class AsynchronousResource { @GET public void asyncRestMethod(@Suspended final AsyncResponse asyncResponse) { result = fucntion(); asyncResponse.resume(result); } function() { result=…… //time consuming operation return result; } } Υλοποίηση συνάρτησης που ελέγχει αν έχει ληφθεί το αντίστοιχο message στον sample broker.  Για κάθε broker υπάρχει ένα αντικείμενο με boolean μεταβλητές.  Έλεγχος της σχετικής boolean μεταβλητής σε κάθε async resource με χρήση μιας while loop. 13
  14. 14. Βοηθητικά Resources POST αίτημα Εγγραφή στην βάση /{Ok_Resource} Λήψη και αποθήκευση μυνήματος /{Ok_Resource} REST broker Sample broker  Async resource response  Async resource response /TsUpdateOk /SimEndOk /TsComplOk /BrokerAccOk /SimStartOk /Order/done /ΤariffSpec/done /BalancingOrder/done /TariffRev/done • Χρησιμοποιούνται για να γνωστοποιήσουν ο sample broker και το web service ότι έχουν λάβει ένα μύνημα ή έχουν ολοκληρώσει ένα POST αίτημα αντίστοιχα. • Αφορά τα Async resources και τα POST αιτήματα για Tariffs, Orders, Tarif- revs,Balancing Orders. 14
  15. 15. Αυθεντικοποίηση • Σε επίπεδο URI ▫ Basic Auth – Username/Password with Base64 encoding. ▫ Κάθε URI περιέχει σαν παράμετρο το αντίστοιχο schema. ▫ Έλεγχος credentials του request header με αυτά του αντίστοιχου schema. • Σε επίπεδο βάσης ▫ Web service - δικαιώματα superuser στην βάση. ▫ Κάθε sample broker αντιστοιχεί σε έναν user/login role στην βάση που είναι και owner στο αντίστοιχο schema. 15
  16. 16. Τέλος προσομοίωσης • Με το τέλος της προσομοίωσης ο sample broker λαμβάνει ένα sim-end μύνημα. • Στην αντίστοιχη handleMessage συνάρτηση πραγματοποιείται αίτημα στο βοηθητικό resource. • Τα async resources TimeslotUpdate και TimeslotComplete επιστρέφουν κενά αντικείμενα • Ο rest broker αντιλαμβάνεται ότι η προσομοίωση έχει τελειώσει 16
  17. 17. Διάγραμμα restificated συστήματος 17
  18. 18. Demo video 18
  19. 19. Ευχαριστίες 19 Ευχαριστώ τον κ. Ανδρέα Συμεωνίδη για την εμπιστοσύνη του στην ανάθεση της διπλωματικής και την καθοδήγησή του κατά την διάρκεια εκπόνησής της .....και εσάς για την προσοχή σας!
  20. 20. Ερωτήσεις 20

×