1 Εισαγωγή στα Συστήματα Διεπιχειρησιακών Διεργασιών /Ροών Εργασίας (Cross-Organizational Process/Workflow Systems) Dan C. Marinescu (2002). Internet-Based Workflow Management: Toward a Semantic Web, Wiley: New York.
2 Η τρέχουσα τάση (1) Πανταχού παρούσα πληροφορική (ubiquitous computing): –Η τρέχουσα τάση είναι να χρησιμοποιείται όλο και περισσότερο η τεχνολογία ΗΥ και διαδικτύου σε όλο και περισσότερους τομείς (εκπαίδευση, εμπόριο, οικονομικές υπηρεσίες, υγεία, διασκέδαση, άμυνα, επιστήμη και τεχνολογία κλπ). –Ο 21ος αιώνας κυριαρχείται από εξελίξεις στον τομέα των ασύρματων επικοινωνιών και στη χρήση των αισθητήρων σε κάθε λογής συσκευές για την συλλογή δεδομένων. Νέα μοντέλα υπολογισμού: –Νομαδικός υπολογισμός: επιτρέπει την απρόσκοπτη πρόσβαση σε πληροφορία, ανεξάρτητα από τη φυσική τοποθεσία του χρήστη και το είδος της συσκευής που χρησιμοποιεί για πρόσβαση στο διαδίκτυο. –Δικτυοκεντρικός υπολογισμός: απαιτεί ελάχιστους τοπικούς υπολογιστικούς πόρους και υψηλό βαθμό συνεκτικότητας σε ετερογενείς υπολογιστικές πλατφόρμες, γεωγραφικά διεσπαρμένες, ανεξάρτητης λειτουργίας και διασυνδεδεμένες όπως τα ενεργειακά δίκτυα. –Ενσυνείδητος/ κινητός δικτυακός υπολογισμός: θεωρεί το διευρυμένο διαδίκτυο σαν συλλογή από υπηρεσίες και πράκτορες ικανούς να βρίσκουν πόρους και να προσπελαύνουν απομακρισμένα δεδομένα και υπηρεσίες για λογαριασμό των χρηστών τους, προσαρμοζόμενοι στο δικτυακό τους περιβάλλον.
3 Η τρέχουσα τάση (2) Δίκτυα... –Πληροφοριών: επιτρέπουν στους χρήστες να εκτελούν υπολογιστικές εργασίες σε απομακρυσμένα συστήματα και να ζητούν υπηρεσίες που προσφέρονται από αυτόνομους παροχείς υπηρεσιών. –Υπολογιστικά: κάθε κόμβος περιέχει ένα πλήθος ΗΥ, λειτουργεί υπό διαφορετική διοίκηση και «συμφωνεί» να συνεργαστεί με τους άλλους κόμβους. –Υπηρεσιών: σύνολο από παροχείς υπηρεσιών. Διαχείριση ροών εργασίας –Αρχικά ασχολούνταν με την αυτοματοποίηση επιχειρηματικών εργασιών σε συγκεκριμένο περιβάλλον. –Σήμερα ασχολείται με την αυτοματοποίηση επιχειρηματικών εργασιών αξιοποιώντας υπολογιστικά δίκτυα και δίκτυα πληροφοριών και υπηρεσιών.
4 Επιχειρησιακές Ροές Εργασίας/Διεργασίες (Organizational Workflows/Processes) Ροή εργασίας ή διεργασία είναι η συγχρονισμένη εκτέλεση πολλαπλών εργασιών για την επίτευξη συγκεκριμένου αποτελέσματος ή την παραγωγή φυσικού προϊόντος. –Επεξεργασία ασφαλιστικού αιτήματος –Διαδικασίες διάσωσης σε περίπτωση φυσικής καταστροφής –Πρωτόκολο λήψης και ανάλυσης δεδομένων σε επιστημονικά πειράματα –Σύνθεση υπηρεσιών που παρέχονται από ανεξάρτητους παροχείς συνδεδεμένους στο διαδίκτυο –Διαδικασία προσγείωσης αεροσκάφους –Διαδικασία συναρμολόγησης/κατασκευής βιομηχανικού προϊόντος Κάθε εργασία (και κατά συνέπεια, διεργασία) εκτελείται –σε συγκεκριμένα χρονικά περιθώρια, –με συγκεκριμένους ανθρώπινους και υλικούς πόρους, και –υπό συγκεκριμένους περιορισμούς. Όσο καλύτερα ορισμένη είναι η διεργασία τόσο πιο γρήγορα παράγεται το αποτέλεσμα και με λιγότερη πιθανότητα λάθους.
5 Παράδειγμα 1: Επεξεργασία Παραγγελίας Η/Υ Είσοδος στη διεργασία: η παραγγελία του πελάτη Πόροι της διεργασίας: ο άνθρωπος που εξετάζει την παραγγελία ή ο ΗΥ σε περίπτωση αυτόματου συστήματος Έξοδος της διεργασίας: το δελτίο αποστολής που αντιστοιχεί στην παραγγελία. Περιορισμός: «οι παραγγελίες πρέπει να διεκπεραιώνονται μέσα σε 15 μέρες» - συνεπακόλουθοι περιορισμοί για τις υποδιεργασίες. Επεξεργασία Παραγγελίας Η/Υ PC? Συναρμολόγηση PC Συναρμολόγηση Laptop Παράδοση Τέλος Αρχή
6 Παράδειγμα 2: Συναρμολόγηση Start Assembly of Box and Motherboard End Assembly of Box and Motherboard Prepare BoxPrepare Motherboard Install Power Supply Install Screen Install CPU Install Memory Install Disk Controller Κάποιες διεργασίες μπορούν να εκτελεστούν παράλληλα Κάποιες διεργασίες πρέπει να εκτελεστούν σειριακά σε συγκεκριμένη σειρά, γιατί έχουν αλληλοεξαρτήσεις εισόδου/εξόδου. Μιά διεργασία τυπικά προκύπτει από τη σύνθεση (χρονική και εισόδων/εξόδων) άλλων υπο-διεργασιών
7 Ορισμός διεργασίας και καταστάσεις εκτέλεσης (ενεργοποίηση) Start Assembly of Box and Motherboard End Assembly of Box and Motherboard Prepare BoxPrepare Motherboard Install Power Supply Install Screen Install CPU Install Memory Install Disk Controller Start assembly Examine order Gather components Assemble box And motherboard Install motherboard Install internal disk Install network card Install video card … A B C D …
8 Παράδειγμα 3: Υπολογισμός Κάθε κόμβος αντιστοιχεί στην εκτέλεση ενός προγράμματος Τα βέλη απεικονίζουν σχέσεις παραγωγού- καταναλωτή μεταξύ των προγραμμάτων. Οι διακεκομμένες γραμμές απεικονίζουν σχέσεις αμοιβαίου αποκλεισμού (XOR επιλογές). Το Α παράγει αποτελέσματα που απαιτούνται για την εκτέλεση του Β και του Ε. Τα Β και Ε μπορούν να εκτελεστούν παράλληλα. Τα Ε και F πρέπει να εκτελεστούν σειριακά. Μετά το Β θα εκτελεστεί είτε το C είτε το D. Ποιές είναι οι δυνατές έγκυρες ακολουθίες προγραμμάτων για να τερματίσει ο υπολογισμός; Κάθε κόμβος (διεργασία) έχει προϋποθέσεις, π.χ. Ποσό μνήμης, βιβλιοθήκες λογισμικού, ειδικό υλικό κλπ. Α Β CFD G Ε
9 Α Β CFD G Ε communication plane communication for B communication for A Παράδειγμα 4: Υπολογισμός σε υπολογιστικό δίκτυο (μετα- υπολογισμός) Αντί να εκτελείται κάθε πρόγραμμα στο ίδιο (ένα) υπολογιστικό σύστημα, κάθε πρόγραμμα μπορεί να εκτελεστεί σε ένα σύνολο από κόμβους του υπολογιστικού μας δικτύου. Εκτός από τον ορισμό της διεργασίας ορίζουμε πώς εκχωρούνται πόροι στις υποδιεργασίες και πώς επικοινωνούν οι υποδιεργασίες. Α Β CFD G Ε Resource plane Resources for B Resources for A Α Β CFD G Ε Process plane
10 Συστατικά Διεργασιών Αποτελούνται από υπο-διεργασίες, ή σε ατομικό επίπεδο από εργασίες (tasks). Η εκτέλεση εργασιών (και διεργασιών) πυροδοτείται από γεγονότα (events). Τα γεγονότα παράγονται είτε από δομές ελέγχου (control structures), είτε από την ολοκλήρωση εργασιών. Διεργασίες μπορεί να εκτελούνται παράλληλα ή σειριακά. Η συνολική περιγραφή διεργασίας μπορεί να περιέχει αμοιβαία αποκλειόμενες επιλογές. Οι εργασίες και υπο-διεργασίες επικοινωνούν (ώστε να ανταλλάσσουν δεδομένα όταν έχουν εξαρτήσεις εισόδου/εξόδου) και συγχρονίζονται ώστε να μοιράζονται τους κοινά διαθέσιμους πόρους.
11 Διαχείριση Διεργασιών (Process/Workflow Management) Ορισμός και σχεδιασμός διεργασιών Ενεργοποίηση διεργασιών και εκτέλεση σε συγκεκριμένα σενάρια χρόνου, πόρων κλπ. Παρακολούθηση διεργασιών κατά την εκτέλεσή τους για να διαπιστώνονται –Ορθή λειτουργία και εμπρόθεσμη εκτέλεση διεργασιών στη σωστή τους σειρά. –Παρεκκλίσεις από την προσδοκώμενη συμπεριφορά. –Αποτυχίες (π.χ. Εξαιτίας μη διαθεσιμότητας πόρων, τέλος χρόνου, μη παραγωγής αποτελέσματος από διεργασία-παραγωγό κλπ). –Ευκαιρίες ανασχεδιασμού (π.χ. Προκύπτει ότι δεν απαιτούνταν τόσο πολλοί πόροι, ή τόσος χρόνος κλπ).
12 Βασική αρχιτεκτονική συστήματος διαχείρισης διεργασιών Process Definition Tools Workflow Enactment Services Admininstrative & Monitoring Tools Other Workflow Enactment Services Legacy Applications Workflow Client Applications Γλώσσες και εργαλεία ορισμού διεργασιών Ενεργοποίηση διεργασίας για συγκεκριμένη περίπτωση Έλεγχοι λογικής συνέπειας, παρακολούθηση της ποιότητας της διεργασίας, πληροφόρηση για την ολοκλήρωση εργασιών κλπ
13 Ιδιαίτερα χαρακτηριστικά ροών διαδικτύου Αρχικά οι ροές εργασίας ορίζονταν όπως οι συναλλαγές με τις κλασσικές βάσεις δεδομένων. –Θυμηθείτε ότι αυτό που μας απασχολεί στον ορισμό συναλλαγών για ΒΔ είναι κατά πόσο τηρούνται οι ιδιότητες ACID. Οι ροές εργασίας που εκτελούνται στο διαδίκτυο παρουσιάζουν ιδιαιτερότητες: –Συνήθως η ολική ροή εκτελείται σε υπολογιστικό δίκτυο (grid) ανοιχτό: Ανοιχτό σημαίνει ότι οι κόμβοι του δικτύου δεν είναι εκ των προτέρων γνωστοί και μπορεί να μεταβάλλονται δυναμικά. Κατά συνέπεια είναι δυσκολότερο να οριστεί η κατάσταση του δικτύου (απ’ότι είναι να οριστεί η κατάσταση μιας βάσης δεδομένων) και έτσι είναι δυσκολότερο να μιλήσει κανείς για ΑCID ιδιότητες. –Η κατανομή πόρων σε δίκτυο δεν έχει παρόμοιο σε βάσεις δεδομένων. –Οι πράκτορες που εκτελούν μέρη της ροής στο δίκτυο μπορεί να είναι κινητοί, κι αυτό δεν έχει παρόμοιο σε βάσεις δεδομένων. –Οι συναλλαγές σε βάσεις δεδομένων βασίζονται σε στατικές, καλά ορισμένες ατομικές εργασίες. Σε ροές διαδικτύου ο ορισμός των εργασιών μπορεί να είναι δυναμικός μέσω της σύνθεσης υπηρεσιών.
14 Ορολογία για διεργασίες διαδικτύου Εργασία (task): Ατομική (δηλαδή μη διασπώμενη) μονάδα δουλειάς προς εκτέλεση από τους συμμετέχοντες δράστες σε μια διεργασία (ανθρώπους, υπολογιστές, αισθητήρες κλπ). Όνομα (μοναδικό) Περιγραφή: σε φυσική γλώσσα Ενέργειες: μετατροπές του περιβάλλοντος από την εκτέλεση της εργασίας Προϋποθέσεις: πρέπει να ισχύουν πριν την εκτέλεση της εργασίας Αποτελέσματα: ό,τι ισχύει μετά την εκτέλεση της εργασίας Παράμετροι: τύπος και ποσότητα πόρων, δράστες, αναστρεψιμότητα, χρονικοί περιορισμοί κλπ. Εξαιρέσεις: προβλεπόμενα ανώμαλα γεγονότα και ενέργειες σε περίπτωση που συμβούν. Σύνθετη εργασία: δομή ενός υποσυνόλου εργασιών και της σειράς εκτέλεσής τους
15 Routing Task: ειδική εργασία που χρησιμοποιείται για να συνδέσει 2 εργασίες σε μια ροή. Task 1 predecessor Routing Task Task 2 successor Fork Routing Task: ειδική εργασία που χρησιμοποιείται για να συνδέσει περισσότερες από 2 επόμενες εργασίες σε μια ροή. i.Ενεργοποιούνται όλες οι επόμενες ii.Ενεργοποιούνται μόνο όσες επόμενες έχουν αληθείς πρόσθετες συνθήκες iii. όπως το ii αλλά οι συνθήκες είναι αμοιβαία αποκλειόμενες και ενεργοποιείται μόνο μια iv.Μη-ντετερμινιστικά k από n επιλέγονται
16 Join Routing Task: συνδέει πολλές προηγούμενες εργασίες σε μια ροή με μια επόμενη. i.Η επόμενη ενεργοποιείται αφού ολοκληρωθούν όλες οι προηγούμενες ii.Η επόμενη ενεργοποιείται αφού ολοκληρωθούν k από n προηγούμενες iii. Η επόμενη ενεργοποιείται επαναληπτικά μετά την ολοκλήρωση κάθε μιας από τις προηγούμενες.
17 Κύκλος Ζωής Ροής Εργασίας Περιγραφή διεργασίας (σχήμα ροής εργασίας): σύνολο εργασιών και η σειρά εκτέλεσής τους. Η περιγραφή έχει μια κατάσταση αρχής και μια κατάσταση τέλους. Τρόποι περιγραφής: –στη γλώσσα WFDL –Σαν σύστημα μετάβασης (γράφημα μετάβασης, transition system) –Σε άλλες τυπικές γλώσσες (π.χ. Δίκτυα Petri) Κύκλος ζωής: ανάλογος με αυτόν ενός προγράμματος –creation, verification, enactment of workflow –creation, compilation, execution of program