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.

Δούμας Οδυσσέας 7168

151 views

Published on

Σχεδίαση μιας Εξειδικευμένης Πλατφόρμας
Συστήματος διαδικτυακών υπηρεσιών REST και
αυτόματη παραγωγή εκτελέσιμου κώδικα

Published in: Software
  • Be the first to comment

  • Be the first to like this

Δούμας Οδυσσέας 7168

  1. 1. Σχεδίαση μιας Εξειδικευμένης Πλατφόρμας Συστήματος διαδικτυακών υπηρεσιών REST και αυτόματη παραγωγή εκτελέσιμου κώδικα Επιβλέποντες Επίκουρος Καθηγητής Ανδρέας Λ. Συμεωνίδης Υποψήφιος Διδάκτωρ Χριστόφορος Ζολώτας Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Τομέας Ηλεκτρονικής Ιούλιος 2016 Δούμας Οδυσσέας ΑΕΜ:7168
  2. 2. Περιεχόμενα  Εισαγωγή σε Rest και MDE  Στόχος της διπλωματικής εργασίας.  Παρουσίαση της υλοποίησης • PSM μετα-μοντέλο (Ecore, EVL) • PIM to PSM μετασχηματισμός (ATL) • PSM to Code μετασχηματισμός (Acceleo)  Επίδειξη λειτουργίας και πιθανές βελτιώσεις.
  3. 3. REST και ROA Representational State Transfer (REST) • Addressability • Statelessness • Connectedness • Uniform Interface Resource Oriented Architecture • Resources • URI • Resource Representation • Hypermedia Links • HTTP  RESTful Web API cache client cache client Stateless server GET a/resource/uri 200 OK Resource Representation:{ ... Hypermedia Links }
  4. 4. Αυξανόμενη τάση για RESTful Web APIs Αυτή τη στιγμή  2016 – πάνω από 15.000 APIs  10.000 RESTful Web APIs  2.500 SOAP APIs  Γενική στροφή προς το REST στυλ από μεγάλες εταιρίες διαδικτυακών εφαρμογών Πλεονεκτήματα REST  Απλότητα  Ελαφριά υλοποίηση  Scalability
  5. 5. Αύξηση παραγωγικότητας με την χρήση MDE τεχνικών Model Driven Engineering • Χρήση μοντέλων ως ενεργά στοιχεία κατά την διαδικασία ανάπτυξης. • Χρήση μετασχηματισμών και γεννητριών παραγωγής κώδικα. Model Driven Architecture • Μια πρόταση του Object Management Group. • Τρία βασικά επίπεδα μοντελοποίησης: μοντέλα, μετα-μοντέλα, μετα-μετα-μοντέλα • Πληθώρα εργαλείων που υποστηρίζουν την MDA. • Ορίζει μια σαφή αλληλουχία μετασχηματισμών με σκοπό την αυτοματοποιημένη παραγωγή ενός προγράμματος.
  6. 6. Model Driven Architecture CIM PIM PSM Source code Documentation Config files  CIM: Απαιτήσεις και προδιαγραφές.  PIM: Δομή και λειτουργικότητα ανεξαρτήτως της πλατφόρμας υλοποίησης. Αρχιτεκτονική.  PSM: Δομή και λειτουργικότητα, λαμβάνοντας υπόψιν τους περιορισμούς που επιβάλει μια συγκεκριμένη πλατφόρμα υλοποίησης  Πλεονεκτήματα • Αύξηση παραγωγικότητας • Ευκολία συντήρησης και επέκτασης • Επαναχρησιμοποίηση των μοντέλων. • Τεκμηρίωση κώδικα.
  7. 7. S-CASE Project Εισαγωγή λειτουργικών απαιτήσεων. Μετασχηματισμός των απαιτήσεων σε μοντέλα. Εφαρμογή της MDA μεθοδολογίας για την αυτόματη παραγωγή κώδικα. Παραγωγή πλήρως λειτουργικού RESTful Web API. S-CASE JAVA MDE Engine CIM Generator PIM Generator Java PSM Generator Java Code Generator Παραγωγή λογισμικού με το S-CASE
  8. 8. Στόχος της διπλωματικής εργασίας  Δημιουργία μιας MDA πλατφόρμας για την ανάπτυξη λογισμικού.  Συμβατότητα με την S-CASE MDE Engine.  Αυτόματη παραγωγή RESTful WEB APIs υλοποιημένα στην πλατφόρμα .NET της Microsoft, και γραμμένα σε C#.  Υλοποίηση έτοιμη για εκτέλεση, με δυνατότητες εξυπηρέτησης CRUD αιτημάτων. Semantic Parsing and Software Entities Extraction S-CASE JAVA MDE Engine Java Restful Service PrototypeCIM Generator PIM Generator Java PSM Generator Java Code Generator C# MDE Engine C# PSM Generator C# Code Generator C# Restful Service Prototype
  9. 9. Δομή της διπλωματικής εργασίας  PSM μετα-μοντέλο  Model-to-Model ATL PIM to PSM μετασχηματισμός  Model-to-Text Acceleo μετασχηματισμός για την παραγωγή πηγαίου κώδικα XMI PIM ASP.NET Web API PIM-To-PSM ATL Trasnformation XMI PSM PSM-To-Code Acceleo Trasnformation
  10. 10. Λογική σχεδίασης του PSM μετα-μοντέλου  ASP.NET WEB API: Υλοποιεί την επικοινωνία μέσω HTTP και την λήψη αιτημάτων, καθώς και την μετατροπή ενός resource σε XMLJSON.  Entity Framework: Υλοποιεί την Object Relation Mapping (ORM) διαδικασία. Τεχνολογίες  C# κλάσεις μοντελοποιούν τα Model και Controller.  Handlers εξυπηρετούν τα αιτήματα.  Μοναδικό Data Access Object.  Παραγωγή Hypermedia Links στους Handlers. Γενικά Model Controller The model is annotated with Data Contract annotations, for XML or JSON serialization. The model is annotated with Data Annotations, which in conjunction with the Entity Framework perform the object- relational mapping. The controller is annotated with Attribute Routing annotations to expose all the endpoints of the Web API.
  11. 11. Ecore PSM μετα-μοντέλο (1/3) Service
  12. 12. Ecore PSM μετα-μοντέλο (2/3) CRUD Resource
  13. 13. Ecore PSM μετα-μοντέλο (3/3) HTTP Action
  14. 14. PSM μετα-μοντέλο : EVL έλεγχοι (1/2)  OCL σύνταξη  Δηλωτική γλώσσα  Επιτρέπει την εφαρμογή ελέγχων και ερωτημάτων σε μοντέλα constraint TableEntityAnnotation{ check { return self.CSharpRModelHasEntityAnnotation.EntityAnnotationText.startsWith("[Table(") and self.CSharpRModelHasEntityAnnotation.EntityAnnotationText.endsWith(")]") ; } message{ return "Every CSharpResourceModel must have exactly one [Table] Entity Annotation : " + self; } } Παράδειγμα 1
  15. 15. PSM μετα-μοντέλο : EVL έλεγχοι (2/2) constraint RCGetActionAddsGetLinkToSelf { guard : self.HypermediaLinkFunctionContainer().isTypeOf(CSharpResourceController) and self.HypermediaLinkFunctionVerb() = HTTPVerb#GET check { var getSiblingLinks = self.hasPSMHypermediaLink -> select(l|l.linkHTTPVerb = HTTPVerb#GET and l.linkType = LinkType#Sibling); if (getSiblingLinks.size() = 0 or getSiblingLinks.size() > 1) return false ; else return getSiblingLinks -> one(l|l.hasTargetCSharpRController = self.HypermediaLinkFunctionContainer()) ; } } Παράδειγμα 2
  16. 16. PIM to PSM ATL μετασχηματισμός (1/2)  Γλώσσα για τον ορισμό μετασχηματισμών μεταξύ μοντέλων.  Στηρίζεται στα πρότυπα που ορίζει η MDA.  Δηλωτική γλώσσα, συνδυασμός με OCL. Atlas Transformation Language  Δέχεται σαν είσοδο ένα PIM μοντέλο.  Παράγει ένα PSM μοντέλο.  Κυρίως ορίζει κανόνες αντιστοιχίας μεταξύ στοιχείων.  Μετατροπή της γενικής αρχιτεκτονικής σε αρχιτεκτονική εξειδικευμένη ως προς την πλατφόρμα υλοποίησης. PIM to PSM μετασχηματισμός
  17. 17. PIM to PSM ATL μετασχηματισμός (2/2) Παράδειγμα rule ResourceModelManager2CSharpResourceModelManager { from s: PIMMetamodel!ResourceModelManager to t: PSMMetamodel!CSharpResourceModelManager ( name <- s.parentName.concat('Manager').toUpperFirst(), parentName <- s.parentName, CSharpRMManagerHasProperty <- s.hasRMManagerProperty, hasRelatedCSharpRModel <- s.hasRelatedModel, CSharpRMManagerHasGetter <- s.rMManagerHasGetter, CSharpRMManagerHasSetter <- s.rMManagerHasSetter, CSharpRMManagerHasDataAnnotation <- dataContractAnnotation ), dataContractAnnotation: PSMMetamodel!DataContractAnnotation( dataContractAnnotationText <- '[DataContract]' ) }
  18. 18. PSM to Code Acceleo μετασχηματισμός (1/2)  Χρήση templates για την παραγωγή αρχείων κειμένου.  Υποστηρίζει τα πρότυπα της MDA.  Ενσωματώνει την OCL γλώσσα. Acceleo Model to Text Transformation Language Παράδειγμα
  19. 19. PSM to Code Acceleo μετασχηματισμός (2/2)  Αρχεία πηγαίου κώδικα.  Αρχεία ρυθμίσεων.  Αρχεία για την δημιουργία των εκτελέσιμων αρχείων.  Αρχεία για την υποστήριξη του Visual Studio. PSM to Code Δομή παραγόμενων αρχείων
  20. 20. Επίδειξη Λειτουργίας  Eclipse IDE Modeling Package  .NET 4.5  NuGet Package Manager  MsBuild  IIS Express Server Προαπαιτούμενα
  21. 21. Βελτιώσεις  Παραγωγή APIs με επιπλέον λειτουργικότητα • 3d Party Web Services • Αναζήτηση στην βάση δεδομένων • Authentication • Authorization
  22. 22. Ευχαριστώ!

×