Περίληψη
Στην παρούσα διατριβή προτείνουμε τεχνικές για τη σχεδίαση και την ανάπτυξη υπηρεσιο-κεντρικού λογισμικού (service-oriented software) με βάση θεμελιώδεις αρχές αντικειμενοστρέ-φειας (fundamental design principles). Υπηρεσιοκεντρικό είναι το είδος του λογισμικού τοοποίο χρησιμοποιεί ως βασικά δομικά συστατικά του (components) μονάδες λογισμικού, πουέχουν σχεδιαστεί και αναπτυχθεί από τρίτους παρόχους λογισμικού. Αυτά τα δομικά συστατικάείναι γνωστά ως υπηρεσίες (services) και συνήθως προσπελάσσονται από το υπηρεσιοκεντρικόλογισμικό διαμέσου του διαδικτύου (Web) χρησιμοποιώντας την τεχνολογία των υπηρεσιώνδιαδικτύου (Web-service technology). Οι θεμελιώδεις αρχές αντικειμενοστρέφειας είναι ένασύνολο από οδηγίες σχεδίασης και ανάπτυξης αντικειμενοστρεφούς λογισμικού των οποίωνη παραβίαση δημιουργεί προβλήματα συντήρησης του λογισμικού. Στην παρούσα διατριβή,αυτές οι αρχές οργανώνονται σε δύο ομάδες: (α) τις αρχές σύμφωνα με τις οποίες το λογισμικόπρέπει να αναπτύσσεται με βάση δομές αφαίρε ...
Στην παρούσα διατριβή προτείνουμε τεχνικές για τη σχεδίαση και την ανάπτυξη υπηρεσιο-κεντρικού λογισμικού (service-oriented software) με βάση θεμελιώδεις αρχές αντικειμενοστρέ-φειας (fundamental design principles). Υπηρεσιοκεντρικό είναι το είδος του λογισμικού τοοποίο χρησιμοποιεί ως βασικά δομικά συστατικά του (components) μονάδες λογισμικού, πουέχουν σχεδιαστεί και αναπτυχθεί από τρίτους παρόχους λογισμικού. Αυτά τα δομικά συστατικάείναι γνωστά ως υπηρεσίες (services) και συνήθως προσπελάσσονται από το υπηρεσιοκεντρικόλογισμικό διαμέσου του διαδικτύου (Web) χρησιμοποιώντας την τεχνολογία των υπηρεσιώνδιαδικτύου (Web-service technology). Οι θεμελιώδεις αρχές αντικειμενοστρέφειας είναι ένασύνολο από οδηγίες σχεδίασης και ανάπτυξης αντικειμενοστρεφούς λογισμικού των οποίωνη παραβίαση δημιουργεί προβλήματα συντήρησης του λογισμικού. Στην παρούσα διατριβή,αυτές οι αρχές οργανώνονται σε δύο ομάδες: (α) τις αρχές σύμφωνα με τις οποίες το λογισμικόπρέπει να αναπτύσσεται με βάση δομές αφαίρεσης (abstractions), και (β) τις αρχές σύμφωνα μετις οποίες το λογισμικό πρέπει να αναπτύσσεται με βάση μικρά και συνεκτικά δομικά συστατικά(cohesive components).Όταν αυτές οι σχεδιαστικές αρχές παραβιάζονται, τα προβλήματα συντήρησης του υπηρεσιο-κεντρικού λογισμικού είναι απροσδόκητα και πιο συχνά σε σχέση με την περίπτωση του αντικει-μενοστρεφούς λογισμικού. Aυτό οφείλεται στην ιδιαιτερότητα του υπηρεσιοκεντρικού λογισμι-κού που σχετίζεται με το γεγονός ότι κάθε βασικό δομικό συστατικό του δεν ανήκει στον ιδιοκτή-τη του, αλλά απλά χρησιμοποιείται από το λογισμικό. Η παρούσα διατριβή διαιρείται σε δύοτμήματα. Το πρώτο τμήμα ασχολείται με την εφαρμογή της πρώτης ομάδας σχεδιαστικώναρχών στην περίπτωση του υπηρεσιοκεντρικού λογισμικού, και το δεύτερο τμήμα ασχολείταιμε την εφαρμογή των αρχών της δεύτερης ομάδας.Για την εφαρμογή της πρώτης ομάδας αρχών, προτείνουμε ότι το υπηρεσιοκεντρικό λογισμι-κό πρέπει να αναπτύσσεται με βάση αφηρημένες υπηρεσίες (abstract services). Ωστόσο, στηνπράξη, αφηρημένες υπηρεσίες δεν είναι διαθέσιμες. Έτσι, προτείνουμε μία μέθοδο εξόρυξης(mining) αφηρημένων υπηρεσιών από ένα σύνολο υπαρχόντων υπηρεσιών. Η προτεινόμενημέθοδος βασίζεται σε έναν αλγόριθμο σύγκρισης και συσχέτισης υπηρεσιών (service matching).Δεδομένου ότι τα δεδομένα εισόδου και εξόδου των λειτουργιών των υπηρεσιών (service operations)είναι πολύπλοκες XML γραμματικές (XML schemas), προτείνουμε έναν αποτελεσματκό(effective) και αποδοτικό (efficient) αλγόριθμο σύγκρισης τέτοιων γραμματικών.Η προτεινόμενη μέθοδος εξόρυξης αφηρημένων υπηρεσιών συγκρίνει υπηρεσίες με δύοτρόπους: (i) προοδευτικά σε ζευγάρια (incremental pair-wise) ή (ii) περισσότερες από δύουπηρε-σίες ταυτόγχρονα (holistic). Συγκρίνοντας αυτούς τους δύο τρόπους εξόρυξης αφηρημέ-νων υπηρεσιών, τα πειραματικά αποτελέσματα έδειξαν, ότι ο πρώτος τρόπος είναι πιο αποδοτι-κός αλλά λιγότερο αποτελεσματικός σε σχέση με το δεύτερο τρόπο.Για την εφαρμογή της δεύτερης ομάδας αρχών, προτείνουμε μία μέθοδος διάσπασης (decomposition)μίας υπηρεσίας σε μικρότερες και πιο συνεκτικές υπηρεσίες. Για να υπολογίσουμετη συνεκτικότητα μίας υπηρεσίας, προτείνουμε τρεις εναλλακτικές μετρικές. Η πρώτη μετρική,που εφαρμόζεται στα μηνύματα των λειτουργιών υπηρεσιών (message-level metric), βρίσκεισχέσεις μεταξύ των λειτουργιών που έχουν παρόμοια δεδομένα εισόδου και εξόδου. Η δεύτερημετρική, που βασίζεται στην ανταλλαγή μηνυμάτων μεταξύ των λειτουργιών υπηρεσιών (conversation-levelmetric), βρίσκει τέτοιες σχέσεις ώστε τα δεδομένα εξόδου μίας λειτουργίας να είναιπαρόμοια με τα δεδομένα εισόδου μιας άλλης λειτουργίας. Η τρίτη μετρική βρίσκει σχέσειςμεταξύ λειτουργιών των οποίων τα ονόματα χαρακτηρίζονται από όρους (terms), που ανήκουνσε παρόμοια θεματικά πεδία (domain-level metric). Αποτιμώντας την αποτελεσματικότητα καιτη χρησιμότητα της προτεινόμενης μεθόδου σε πραγματικές υπηρεσίες διαδικτύου, τα πειραματι-κά αποτελέσματα έδειξαν, ότι η μέθοδος μπορεί να βελτιώσει τη συνεκτικότητα μία υπηρεσίαςδιασπώντας την σε μικρότερες και πιο συνεκτικές υπηρεσίες. Επίσης, τα πειραματικά αποτελέ-σματα έδειξαν, ότι όταν η προτεινόμενη μέθοδος συνδυάζεται με την τρίτη μετρική, τότε ηαποτελεσματικότητα της μεθόδου είναι υψηλότερη σε σχέση με τους συνδυασμούς της μεθόδουμε τις άλλες δύο μετρικές.
περισσότερα
Περίληψη σε άλλη γλώσσα
In the thesis, we propose techniques for developing service-oriented software with respect to fundamental objectorienteddesign principles. These principles represent a set of guidelines for developing software, whose violationleads to problems in the software maintenance. We organize these principles into two groups: (a) principles whichstate that software should be developed with respect to abstractions, and (b) principles which state that softwareshould be developed with respect to small and cohesive modules. When these principles are violated in theservice-oriented paradigm, the maintenance problems are unexpected and more frequent than that appeared inthe case of the object-oriented paradigm. This due to the idiosyncrasy of the service-oriented software, which isrelated to the fact that service-oriented software is intrinsically distributed, since each component is not owned butsimply used. Applying the first group of principles in the service-oriented paradigm includes the develop ...
In the thesis, we propose techniques for developing service-oriented software with respect to fundamental objectorienteddesign principles. These principles represent a set of guidelines for developing software, whose violationleads to problems in the software maintenance. We organize these principles into two groups: (a) principles whichstate that software should be developed with respect to abstractions, and (b) principles which state that softwareshould be developed with respect to small and cohesive modules. When these principles are violated in theservice-oriented paradigm, the maintenance problems are unexpected and more frequent than that appeared inthe case of the object-oriented paradigm. This due to the idiosyncrasy of the service-oriented software, which isrelated to the fact that service-oriented software is intrinsically distributed, since each component is not owned butsimply used. Applying the first group of principles in the service-oriented paradigm includes the development of theservice-oriented software with respect to abstract services. However, in practice, such services are not available.To overcome this problem, we propose an automated approach for mining abstract services out of a set of existingones. The proposed approach is based on a service-interface matching algorithm. Given that the input/output dataof the service operations are complex XML schemas, we further propose an efficient and effective algorithm formatching XML schemas. The proposed mining approach compares service interfaces in two ways: (i) in anincremental pair-wise way, or (ii) in a holistic way, i.e., multiple services are compared at the same time.Comparing the two mining ways, the experimental results show the incremental pair-wise way is more efficient butless effective than the holistic way. Applying the second group of principles in the service-oriented paradigmincludes the decomposition of service interfaces into smaller and more cohesive interfaces. To calculate thecohesion of a service interface, we propose three alternative metrics. The first metric identifies relations betweenthe input and the output messages of service operations. The second metric accounts for determining relationsbetween pairs of operations such that the output data-types of the one operation are similar with the input datatypesof the other operation. The third metric identifies operations characterized by similar domain-level termsextracted from their names. We evaluate the effectiveness and the usefulness of the proposed approach in realworldcase studies that concern Web services. The experimental findings show that the proposed approach is ableto improve the cohesion of an initial service interface, and decompose it into smaller and more cohesive ones.Interestingly, the produced sub-interfaces are considered useful by developers, who voluntarily participate in theexpert evaluation that we conduct. Additionally, the combination of the proposed approach with the domain-levelcohesion metric gives results that are effective and useful in a higher number of input service interfaces than thatof the combination of the approach with the other two metrics.
περισσότερα