Διαχείριση workflow στις εφοδιαστικές αλυσίδες τουριστικών επιχειρήσεων

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Διαχείριση workflow στις εφοδιαστικές αλυσίδες τουριστικών επιχειρήσεων"

Transcript

1 Π Α Ν Ε Π Ι Σ Τ Η Μ Ι Ο Π Α Τ Ρ Ω Ν Τ Μ Η Μ Α Μ Η Χ Α Ν Ι Κ Ω Ν Η / Υ Κ Α Ι Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ Διαχείριση workflow στις εφοδιαστικές αλυσίδες τουριστικών επιχειρήσεων Μεταπτυχιακή Διπλωματική Εργασία Κληρόπουλος Γεώργιος ΑΜ:505 Ιανουάριος 2013 Επιβλέπων Καθηγητής: Καθ. κ. Τσακαλίδης Αθανάσιος

2 Ευχαριστίες Θα ήθελα να ευχαριστήσω θερμά τον καθηγητή μου κύριο Αθανάσιο Τσακαλίδη για την τιμή που μου έκανε να συνεργαστούμε και για την ευκαιρία που μου έδωσε να ασχοληθώ με το θέμα των workflow engines. Θα ήθελα επίσης να ευχαριστήσω τον Δημήτριο Τσώλη για την πολύτιμη καθοδήγηση, την συνεχή υποστήριξη και βοήθειά του καθ όλη τη διάρκεια διεκπεραίωσης αυτής της μεταπτυχιακής διπλωματικής εργασίας ii

3 Περιεχόμενα ΕΥΧΑΡΙΣΤΊΕΣ... II ΠΕΡΙΕΧΌΜΕΝΑ... III ΛΙΣΤΑ ΕΙΚΟΝΩΝ...V 1 ΕΙΣΑΓΩΓΉ ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΡΟΕΣ ΕΡΓΑΣΙΩΝ, ΤΙΣ ΕΦΟΔΙΑΣΤΙΚΕΣ ΑΛΥΣΙΔΕΣ ΚΑΙ ΣΤΑ ΥΠΟΛΟΙΠΑ ΘΕΜΑΤΑ ΤΗΣ ΔΙΠΛΩΜΑΤΙΚΗΣ ΕΡΓΑΣΙΑΣ ΟΡΓΑΝΩΣΗ ΤΗΣ ΔΙΠΛΩΜΑΤΙΚΗΣ ΣΤΌΧΟΙ ΣΧΕΔΙΑΣΜΌΣ ΕΦΟΔΙΑΣΤΙΚΕΣ ΑΛΥΣΙΔΕΣ ΣΤΙΣ ΤΟΥΡΙΣΤΙΚΕΣ ΕΠΙΧΕΙΡΗΣΕΙΣ Σύντομη Περιγραφή WORKFLOW ENGINES ΓΙΑ ΤΗΝ ΑΠΟΔΟΤΙΚΗ ΔΙΑΧΕΙΡΙΣΗ WORKFLOW ΛΕΙΤΟΥΡΓΙΩΝ Σύντομη Περιγραφή WORKFLOW ΔΙΑΔΙΚΑΣΙΕΣ ΣΤΟΝ ΤΟΜΕΑ ΤΩΝ ΕΦΟΔΙΑΣΤΙΚΩΝ ΑΛΥΣΙΔΩΝ ΤΟΥΡΙΣΤΙΚΩΝ ΕΠΙΧΕΙΡΗΣΕΩΝ Σύντομη Περιγραφή Εφαρμογή που υλοποιήθηκε ΘΕΩΡΗΤΙΚΉ ΑΝΆΛΥΣΗ ΤΗΣ ΔΙΑΧΕΊΡΙΣΗΣ ΕΦΟΔΙΑΣΤΙΚΉΣ ΑΛΥΣΊΔΑΣ ΕΦΟΔΙΑΣΤΙΚΗ ΑΛΥΣΙΔΑ (SUPPLY CHAIN) ΔΙΑΧΕΙΡΙΣΗ ΕΦΟΔΙΑΣΤΙΚΗΣ ΑΛΥΣΙΔΑΣ Διαφορές από τα Logistics Βασικά συστατικά στοιχεία στην διαχείριση μιας εφοδιαστικής αλυσίδας Προβλήματα που επιλύει η διαχείριση εφοδιαστικής αλυσίδας Trade-Off μεταξύ των βασικών απαιτήσεων σε μια εφοδιαστική αλυσίδα Προκλήσεις που έχει να αντιμετωπίσει η διαχείριση μιας εφοδιαστικής αλυσίδας Οντότητες που λαμβάνουν μέρος σε μια εφοδιαστική αλυσίδα Ενσωμάτωση business διαδικασιών ΔΙΑΧΕΙΡΙΣΗ ΕΦΟΔΙΑΣΤΙΚΗΣ ΑΛΥΣΙΔΑΣ ΣΤΙΣ ΤΟΥΡΙΣΤΙΚΕΣ ΕΠΙΧΕΙΡΗΣΕΙΣ Ιδιαιτερότητες των Τουριστικών Καταλυμάτων Τουριστικές Επιχειρήσεις και Διαχείριση Εφοδιαστικής Αλυσίδας Οφέλη χρήσης προγραμμάτων διαχείρισης εφοδιαστικής αλυσίδας στην τουριστική βιομηχανία Διαχείριση Παραγγελιών στις Τουριστικές Επιχειρήσεις Διαχείριση Ροών Παραγγελίας (Workflow Processing) ΑΝΆΛΥΣΗ ΚΑΙ ΠΑΡΟΥΣΊΑΣΗ ΜΗΧΑΝΏΝ ΡΟΏΝ (WORKFLOW ENGINES) iii

4 4.1 ΤΙ ΕΙΝΑΙ ΡΟΗ ΕΡΓΑΣΙΩΝ (WORKFLOW) ΤΙ ΕΙΝΑΙ ΜΙΑ ΜΗΧΑΝΗ ΡΟΗΣ ΕΡΓΑΣΙΩΝ (WORKFLOW ENGINE) ΤΙ ΕΙΝΑΙ Η ΑΝΑΠΑΡΑΣΤΑΣΗ BPMN ΥΠΑΡΧΟΝΤΑ WORKFLOW ENGINES jbpm Open Source BPM Apache ODE Bonita BPM Engine Activiti ΥΛΟΠΟΊΗΣΗ ΕΦΑΡΜΟΓΉΣ ΔΙΑΧΕΊΡΙΣΗΣ WORKFLOW ΣΥΝΤΟΜΗ ΠΑΡΟΥΣΙΑΣΗ ΕΦΑΡΜΟΓΗΣ ΠΛΕΟΝΕΚΤΗΜΑΤΑ ΤΩΝ WEB-BASED ΕΦΑΡΜΟΓΩΝ ΕΝΑΝΤΙ ΤΩΝ DESKTOP ΕΦΑΡΜΟΓΩΝ ΑΝΑΛΥΤΙΚΗ ΠΑΡΟΥΣΙΑΣΗ ΕΦΑΡΜΟΓΗΣ Security based application Διαχείριση Χρηστών και Ρόλων στην εφαρμογή Διαχείριση των βημάτων των ροών εργασιών Προϊόντα και κατηγορίες προϊόντων Αποθήκες και Λίστες Προϊόντων Δημιουργία νέας παραγγελίας προϊόντων Εξέλιξη workflow Full Approve Reject Approving Partial Appriving ΤΕΧΝΟΛΟΓΙΚΉ ΠΛΑΤΦΌΡΜΑ Η ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ GROOVY Παραδείγματα Χρήσης Διαφορές με την Java στο συντακτικό Closures και Dynamic Programming στην Groovy ΤΟ WEB FRAMEWORK GRAILS SPRING FRAMEWORK SPRING SECURITY HIBERNATE ORM GORM (GRAILS ORM) MYSQL ΒΙΒΛΙΟΓΡΑΦΙΑ ΠΑΡΑΡΤΗΜΑ : ΟΙ ΚΏΔΙΚΕΣ ΠΟΥ ΥΛΟΠΟΙΉΘΗΚΑΝ ΤΟ DOMAIN MODEL BOOSTRAPPING URL MAPPING CONTROLLERS SERVICES GSP VIEWS ΤΟ ΑΡΧΕΙΟ APPLICATIONRESOURCES.GROOVY iv

5 ΛΙΣΤΑ ΕΙΚΟΝΩΝ FIGURE 1: ΒΑΣΙΚΗ ΔΟΜΗ ΜΙΑΣ ΕΦΟΔΙΑΣΤΙΚΗΣ ΑΛΥΣΙΔΑΣ... 5 FIGURE 2: ΠΑΡΑΔΕΙΓΜΑ ΑΠΛΗΣ ΕΦΟΔΙΑΣΤΙΚΗΣ ΑΛΥΣΙΔΑΣ... 9 FIGURE 3: ΠΑΡΑΔΕΙΓΜΑ ΕΚΤΕΤΑΜΕΝΗΣ ΕΦΟΔΙΑΣΤΙΚΗΣ ΑΛΥΣΙΔΑΣ... 9 FIGURE 4: ΤΑ 5 ΚΥΡΙΑ ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΜΙΑΣ ΕΦΟΔΙΑΣΤΙΚΗΣ ΑΛΥΣΙΔΑΣ ΚΑΙ Η ΣΧΕΣΗ ΜΕΤΑΞΥ ΤΟΥΣ FIGURE 5: ΒΑΣΙΚΟ ΟΡΓΑΝΟΓΡΑΜΜΑ ΣΕ ΤΟΥΡΙΣΤΙΚΕΣ ΕΠΙΧΕΙΡΗΣΕΙΣ. ΣΕ ΚΑΘΕ ΘΕΣΗ ΑΝΑΤΙΘΟΝΤΑΙ ΔΙΑΦΡΕΤΙΚΑ STEPS ΣΤΟ WORKFLOW FIGURE 6: ΣΗΜΑΣΙΑ ΤΟΥ ΝΑ ΚΡΑΤΑΜΕ INVENTORIES ΣΤΙΣ ΕΠΙΧΕΙΡΗΣΕΙΣ ΜΑΣ FIGURE 7: ΤΑ 5 ΒΗΜΑΤΑ ΣΤΗΝ ΔΙΑΧΕΙΡΙΣΗ ΤΟΥ BUSINESS PROCESS FIGURE 8: ΑΝΑΛΟΓΑ ΜΕ ΤΟ REQUESTED URL ΚΑΙ ΤΑ PERMISSIONS Ο ΧΡΗΣΤΗΣ ΒΛΕΠΕΙ ΤΗΝ ΑΝΤΙΣΤΟΙΧΗ WEB PAGE FIGURE 9: Η ΑΡΧΙΚΗ LOGIN ΣΕΛΙΔΑ ΤΗΣ ΕΦΑΡΜΟΓΗΣ FIGURE 10: MAIN MENU ΤΟΥ ΧΡΗΣΤΗ USER1 ΜΕ ΔΙΚΑΙΩΜΑΤΑ ADMIN FIGURE 11: MAIN MENU ΤΩΝ ΥΠΟΛΟΙΠΩΝ NON-ADMIN ΡΟΛΩΝ ΤΗΣ ΕΦΑΡΜΟΓΗΣ FIGURE 12: ΟΙ ΧΡΗΣΤΕΣ (USERS) ΤΟΥ ΣΥΣΤΗΜΑΤΟΣ FIGURE 13: ΟΘΟΝΗ ΓΙΑ ΤΗ ΔΗΜΙΟΥΡΓΙΑ ΕΝΟΣ ΝΕΟΥ ΧΡΗΣΤΗ FIGURE 14: Η ΟΘΟΝΗ ΠΟΥ ΑΠΕΙΚΟΝΙΖΕΙ ΟΛΑ ΤΑ SECURITY ROLES ΤΗΣ ΕΦΑΡΜΟΓΗΣ ΚΑΙ ΤΑ ACTIONS ΠΑΝΩ ΣΕ ΚΑΘΕ ΕΝΑ FIGURE 15: ΤΑ ASSIGNED WORKFLOW STEPS ΤΟΥ ΧΡΗΣΗ USER FIGURE 16: ΟΙ ASSIGNED ΡΟΛΟΙ ΤΟΥ ΧΡΗΣΤΗ USER1 ΦΑΙΝΟΝΤΑΙ ΕΠΙΛΕΓΜΕΝΟΙ ΜΕ ΣΚΟΥΡΟ ΧΡΩΜΑ FIGURE 17: ΟΙ ΑΠΟΘΗΚΕΣ ΠΟΥ ΜΠΟΡΕΙ ΝΑ ΔΕΙ Ο ΧΡΗΣΤΗΣ USER1 ΕΙΝΑΙ BOLD FIGURE 18: ΤΑ WORKFLOW STEPS ΑΠΟ ΤΑ ΟΠΟΙΑ ΣΥΝΤΙΘΟΝΤΑΙ ΤΑ ΔΙΑΦΟΡΑ FLOWS ΤΗΣ ΕΦΑΡΜΟΓΗΣ FIGURE 19: ΤΑ FLOWS ΤΗΣ ΕΦΑΡΜΟΓΗΣ FIGURE 20: ΑΝΑΠΑΡΑΣΤΑΣΗ ΤΟΥ FLOW 1 ΜΕ ΤΑ FLOW STEPS ΤΟΥ FIGURE 21: ΤΑ ΠΡΟΪΟΝΤΑ ΚΑΙ ΟΙ ΚΑΤΗΓΟΡΙΕΣ ΣΤΙΣ ΟΠΟΙΕΣ ΑΝΗΚΟΥΝ FIGURE 22: ΚΑΤΗΓΟΡΙΕΣ ΠΡΟΪΟΝΤΩΝ ΚΑΙ ΣΤΟ ΚΑΤΩ ΜΕΡΟΣ ΤΑ ΠΡΟΪΟΝΤΑ ΤΗΣ ΚΑΤΗΓΟΡΙΑΣ MILK FIGURE 23: ΣΤΟ ΠΑΝΩ ΜΕΡΟΣ ΦΑΙΝΟΝΤΑΙ ΟΙ ΑΠΟΘΗΚΕΣ ΕΝΩ ΣΤΟ ΚΑΤΩ ΑΠΕΙΚΟΝΙΖΟΝΤΑΙ ΤΑ ΠΡΟΪΟΝΤΑ ΤΗΣ ΕΠΙΛΕΓΜΕΝΗΣ ΚΑΤΗΓΟΡΙΑΣ FIGURE 24: ΟΙ ΠΡΟΚΑΤΑΣΚΕΥΑΣΜΕΝΕΣ ΛΙΣΤΕΣ ΑΠΟ ΠΡΟΪΟΝΤΑ ΠΟΥ ΓΙΝΟΝΤΑΙ ΠΑΡΑΓΓΕΛΙΑ FIGURE 25: ΔΙΑΧΕΙΡΙΣΗ ΤΩΝ ΠΡΟΪΟΝΤΩΝ ΜΙΑΣ ΛΙΣΤΑΣ ΠΡΟΪΟΝΤΩΝ ΠΡΟΣ ΠΑΡΑΓΓΕΛΙΑ FIGURE 26: ΟΘΟΝΗ ΠΟΥ ΔΕΙΧΝΕΙ ΟΛΕΣ ΤΙΣ ΠΑΡΑΓΓΕΛΙΕΣ ΠΟΥ ΥΠΑΡΧΟΥΝ ΣΤΟ ΣΥΣΤΗΜΑ FIGURE 27: ASSIGNED WORKFLOW STEP ΓΙΑ ΤΟΝ ΡΟΛΟ ROLE_SK FIGURE 28: ΣΥΝΟΨΗ ΤΩΝ ΠΑΡΑΓΓΕΛΙΩΝ ΠΟΥ ΜΠΟΡΕΙ ΝΑ ΕΚΤΕΛΕΣΕΙ Ο LOGGED IN ΧΡΗΣΤΗΣ ΣΕ ΚΑΘΕ STEP FIGURE 29: ΔΙΑΔΙΚΑΣΙΑ APPROVING ΓΙΑ ΤΟ FLOW STEP 1 (WS1) FIGURE 30: FULL APPROVING ΤΟΥ ΠΡΩΤΟΥ ΠΡΟΪΟΝΤΟΣ ΓΙΑ ΤΟ ΒΗΜΑ WS FIGURE 31: WORKFLOW REJECT FIGURE 32: PARTIAL APPROVING FIGURE 33: ΠΡΟΧΩΡΗΜΕΝΟ ΣΤΑΔΙΟ APPROVING ΠΑΡΑΓΓΕΛΙΑΣ FIGURE 34: ΤΑ ΒΑΣΙΚΑ ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΤΟΥ GRAILS FRAMEWORK FIGURE 35: ΤΑ ΒΑΣΙΚΑ MODULES ΑΠΟ ΤΑ ΟΠΟΙΑ ΑΠΟΤΕΛΕΙΤΑΙ ΤΟ SPRING FRAMEWORK FIGURE 36: ΤΟ ADVICE «ΠΛΕΚΕΤΑΙ» ΣΤΑ ΔΙΑΦΟΡΑ JOINT POINTS ΚΑΤΑ ΤΗ ΔΙΑΡΚΕΙΑ ΕΚΤΕΛΕΣΗΣ ΤΟΥ ΠΡΟΓΡΑΜΜΑΤΟΣ v

6 vi

7 Κεφάλαιο 1 1 Εισαγωγή Στο κεφάλαιο αυτό γίνεται μια εισαγωγή στα θέματα με τα οποία θα ασχοληθούμε στην συνέχεια, στα πλαίσια της διπλωματικής εργασίας 1.1 Εισαγωγή στις ροές εργασιών, τις εφοδιαστικές αλυσίδες και στα υπόλοιπα θέματα της διπλωματικής εργασίας Οι ροές εργασιών (workflow) αποτελούν έναν από τους πιο σημαντικούς παράγοντες για την σωστή, εύρυθμη και αποδοτική λειτουργία των διαδικασιών που έχουν να φέρουν εις πέρας οι επιχειρήσεις. Καθώς οι επιχειρήσεις έχουν την τάση να γιγαντώνονται με στόχο την αύξηση των κερδών τους, και με δεδομένο ότι ζούμε πια σε εποχές όπου οι οικονομίες είναι ανοιχτές και δε γνωρίζουν φυσικά σύνορα, τελικά, οδηγούμαστε στην ανάγκη για συνεργασίες μεταξύ των επιχειρήσεων που θα τους επιτρέπουν αφενός να επιτύχουν το βέλτιστο ποιοτικά αποτέλεσμα και αφετέρου με το μικρότερο δυνατό κόστος. Το μεγάλο μέγεθος των επιχειρήσεων σε συνδυασμό με την ανάγκη για συνεργασίες μεταξύ των επιχειρήσεων έχουν ως αποτέλεσμα να αυξάνει και η πολυπλοκότητα των διαδικασιών και των προβλημάτων που έχουν να επιλύσουν. Αυτό οδηγεί στην ανάγκη να υπάρξει ένας τρόπος διαχείρισης των ροών εργασιών που απαρτίζουν τις διαδικασίες αυτές. Έτσι, ανατπύχθηκαν μηχανές ροών εργασιών (workflow engine) που επιτρέπουν την διαχείριση των ροών με αποδοτικό και βέλτιστο τρόπο. Στην παρούσα διπλωματική ασχολούμαστε με τη χρήση τέτοιων workflow συστημάτων για την επίλυση του προβλήματος της αποδοτικής διαχείρισης της εφοδιαστικής αλυσίδας (supply chain) σε μεγάλες τουριστικές επιχειρήσεις. Η τουριστική βιομηχανία είναι μια από τις πιο γρήγορα αναπτυσσόμενες βιομηχανίες τόσο στις ανεπτυγμένες χώρες, όσο και στις αναπυσσόμενες. Δεν είναι τυχαίο ότι 1

8 πολλές φορές αποτελούν τον βασικό μοχλό ανάπτυξης των τοπικών οικονομιών μιας και μέσω του τουρισμού εισέρχεται ξένο συνάλλαγμα στην χώρα. Οι ολοένα μεγαλύτερες απαιτήσεις ανέσεων των τουριστών καθώς και η κατασκευή ολοένα και μεγαλύτερων και πληρέστερων τουριστικών μονάδων, κάνουν υποχρεωτική την αποδοτική λειτουργία των εφοδιαστικών αλυσίδων (supply chain) στις επιχειρήσεις αυτές. Με τον όρο εφοδιαστική αλυσίδα στις τουριστικές επιχειρήσεις, εννοούμε την ροή υλικών, υπηρεσιών και πληροφοριών από τους προμηθευτές πρώτων υλών μέσα από τα εργοστάσια και τις αποθήκες στους τελικούς καταναλωτές, στην προκειμένη περίπτωση τους τουρίστες των επιχειρήσεων αυτών. Για την αποδοτική λειτουργία των εφοδιαστικών αλυσίδων απαιτείται η ύπαρξη ενός συστήματος διαχείρισής τους, με σκοπό να οργανώνει και να συγχρονίζει τις διαφορετικές οντότητες που παίρνουν μέρος σε όλα τα βήματα μιας εφοδιαστικής αλυσίδας. Έτσι, έχουν αναπτυχθεί τέτοια συστήματα διαχείρισης, όπου με την βοήθεια των υπολογιστών μοντελοποιούν και καταγράφουν όλα τα βήματα της εφοδιαστικής αλυσίδας, κάνοντας έτσι αποδοτική την λειτουργία της. 1.2 Οργάνωση της διπλωματικής Στη συνέχεια γίνεται αναφορά στις ενότητες που περιέχει η διπλωματική αυτή και δίνεται μια σύντομη περιγραφή της καθεμίας. Κεφάλαιο 2 Στόχοι και σχεδιασμός της διπλωματικής Στο κεφάλαιο αυτό παρουσιάζονται με σύντομο τρόπο τα προβλήματα που θα αντιμετωπίζει η διπλωματική, καθώς και τους τρόπους με τους οποίους προτείνεται η λύση των προβλημάτων αυτών. 2.1 Εφοδιαστικές αλυσίδες στις τουριστικές επιχειρήσεις Περιγραφή του προβλήματος 2.1 Workflow Engines για την αποδοτική διαχείριση των workflow λειτουργιών Περιγραφή του προβλήματος 2.3. Workflow διαδικασίες στις εφοδιαστικές αλυσίδες των τουριστικών επιχειρήσεων Περιγραφή του προβλήματος Υλοποιήση συστήματος workflow διαχείρισης εφοδιαστικών αλυσίδων 2

9 Κεφάλαιο 3 Θεωρητική ανάλυση της διαχείρισης εφοδιαστικών αλυσίδων Στόχος του κεφαλαίου αυτού είναι να κάνει μια επισκόπηση των θεωρητικών τμημάτων που διέπουν τις εφοδιαστικές αλυσίδες (supply chain) τόσο στο γενικό πλαίσιο, όσο και στις τουριστικές επιχειρήσεις ειδικότερα 3.1 Εφοδιαστική Αλυσίδα 3.2 Διαχείριση Εφοδιαστικής Αλυσίδας 3.3 Διαχείριση Εφοδιαστικής Αλυσίδας και ιδιαιτερότητες στην τουριστική βιομηχανία Κεφάλαιο 4 Θεωρητική ανάλυση workflows και παρουσίαση workflow engines Στο κεφάλαιο αυτό κάνουμε αρχικά μια θεωρητική ανάλυση των ροών εργασιών (workflow), πως χρησιμοποιούνται, τις τεχνολογίες πίσω από την τεχνολογία των workflows. Τέλος, κάνουμε μια συνοπτική παρουσίαση υπαρχόντων workflow engines, εστιάζοντας κυρίως σε δημοφιλή open source workflow engines 4.1 Τι είναι ροή (workflow) 4.2 Τι είναι μηχανή ροής (workflow engine) 4.3 Τι είναι η αναπαράσταση BPMN 4.4 Υπάρχοντα BPMN engines jbpm Apache ODE Bonita Engine Activiti Κεφάλαιο 5 Αναλυτική παρουσίαση εφαρμογών και σεναρίων Στο παρόν κεφάλαιο,παρουσιάζονται οι εφαρμογές και τα σενάρια υλοποιήθηκαν για τους σκοπούς της διπλωματικής που 5.1 Σύντομη Παρουσίαση της υλοποίησης 5.2 Πλεονεκτήματα web-based έναντι desktop εφαρμογών 5.3 Αναλυτική παρουσίαση διπλωματικής 3

10 5.3.1 Security concerns Διαχείριση χρηστών και ρόλων Διαχείριση των βημάτων του flow Προϊόντα και κατηγορίες προϊόντων Αποθήκες και λίστες προϊόντων Δημιουργία νέας παραγγελίας προϊόντων Εξέλιξη workflow Κεφάλαιο 6 Παρουσίαση της τεχνολογικής πλατφόρμας στην οποία εκτελέστηκαν οι εφαρμογές Παράρτημα Παρουσίαση μέρους του κώδικα που υλοποιήθηκε στο κεφάλαιο Το Domain Model 1.2 Bootstrapping 1.3. Url Mapping 1.4 Controllers 1.5 Services 1.6 GSP Views 1.7 Το αρχείο ApplicationResources.groovy 4

11 Κεφάλαιο 2 2 Στόχοι σχεδιασμός Στόχος του κεφαλαίου αυτού είναι παρουσιάσει με σύντομο τρόπο τα προβλήματα που θα αντιμετωπίσει η διπλωματική, καθώς και τους τρόπους με τους οποίους προτείνεται λύση των προβλημάτων αυτών. 2.1 Εφοδιαστικές Αλυσίδες στις Τουριστικές Επιχειρήσεις Σύντομη Περιγραφή Στην παρούσα διπλωματική προσεγγίζουμε το πρόβλημα της διαχείρισης των εφοδιαστικών αλυσίδων (supply chain management) στις τουριστικές επιχειρήσεις. Οι εφοδιαστικές αλυσίδες αποτελούν ίσως τον πιο κρίσιμο παράγοντα για την αποδοτική λειτουργία των τουριστικών επιχειρήσεων. Λόγω του γεγονότος ότι για να ολοκληρωθεί μια εφοδιαστική αλυσίδα από το πρώτο μέχρι τον τελευταίο κρίκο της εμπλέκονται επιχειρήσεις με διαφορετικό αντικείμενο που βρίσκονται γεωγραφικά σε διαφορετικές τοποθεσίες, επίσης λόγω του μεγέθους των τουριστικών επιχειρήσεων που διογκώνονται συνεχώς με σκοπό να ικανοποιούν τις αυξημένες απαιτήσεις των πελατών τους, καθώς και για μια σειρά από άλλους λόγους που αναλύονται εκτενώς στο επόμενο κεφάλαιο, όλα τα παραπάνω καθιστούν την διαχείριση των εφοδιαστικών αλυσίδων των τουριστικών επιχειρήσεων μια πολυ κρίσιμη διαδικασία για την αποδοτική λειτουργία της τουριστικής επιχείρησης. Figure 1: Βασική δομή μιας εφοδιαστικής αλυσίδας Οι τουριστικές επιχειρήσεις έχουν ένα σύνολο από ιδιαιτερότητες που θα πρέπει να λαμβάνονται υπόψιν κατά την δημιουργία της κατάλληλης εφοδιαστικής αλυσίδας. Μεταξύ των ιδιαιτεροτήτων, οι οποίες παρουσιάζονται αναλυτικά στο επόμενο 5

12 κεφάλαιο, είναι ότι η τοποθεσία των επιχειρήσεων αυτών πολλές φορές είναι γεωργαφικά σε σχετικά δυσπρόσιτα μέρη, κάτι το οποίο πρέπει να λαμβάνεται υπόψιν όσον αφορά τον τομέα της μεταφοράς πρώτων υλών και προϊόντων στην επιχείρηση. Επίσης οι επιχειρήσεις τέτοιου τύπου συνήθως δουλεύουν ανά ημερολογιακή σεζόν (season). Αυτό συνεπάγεται μεγάλες απαιτήσεις σε προϊόντα και πρώτες ύλες την περίοδο high λειτουργίας, και σχετικά μειωμένες ανάγκες οπότε και μικρότερα κόστη λειτουργίας τις υπόλοιπες σεζόν. Αναλυτικά οι λεπτομέρειες και η θεωρητική ανάλυση στο παραπάνω θέμα παρουσιάζονται στο επόμενο κεφάλαιο. 2.2 Workflow Engines για την αποδοτική διαχείριση Workflow λειτουργιών Σύντομη Περιγραφή Στη συνέχεια της διπλωματικής εργασίας, θα περιγράψουμε τους τρόπους διαχείρισης των ροών (workflow) στην αποδοτική λειτουργία των εφοδιαστικών αλυσίδων στις τουριστικές επιχειρήσεις. Για την κατασκευή και διαχείριση των ροών (workflow) χρειάζεται να δημιουργήσουμε μηχανές ροών (workflow engines) που θα μας επιτρέπουν να ελέγχουμε με βέλτιστο τρόπο τις ροές αυτές. Τα workflow engines είναι εφαρμογές (software applications) που μας επιτρέπουν να εκτελέσουμε μοντελοποιημένες διεργασίες, όπως οι εφοδιαστικές αλυσίδες, με βέλτιστο τρόπο. Σκοπός της χρήσης τους δεν είναι μόνο η μοντελοποίηση μέσω υπολογιστή των διεργασιών που απαιτούνται, αλλά και η ανάγκη για βέλτιστη λειτουργία της διαδικασίας που εκτελείται, τόσο από πλευράς απόδοσης όσο και από πλευράς μείωσης του κόστους διαδικασίας αυτής. 2.3 Workflow διαδικασίες στον τομέα των εφοδιαστικών αλυσίδων τουριστικών επιχειρήσεων Σύντομη Περιγραφή Για την κατασκευή του κατάλληλου workflow και τη χρήση και προσαρμογή του καλύτερου workflow engine στην τουριστική βιομηχανία, θα πρέπει να λαμβάνονται υπόψιν οι ιδιαιτερότητες της τουριστικής βιομηχανίας. Έχουν αναπτυχθεί αρκετά workflow engines που μπορούν σχετικά εύκολα να προσαρμοστούν για τη διαχείριση της εφοδιαστικής αλυσίδας των τουριστικών επιχειρήσεων. Τα πιο δημοφιλή εξ αυτών των engines είναι open source engines 6

13 και παρουσιάζονται αναλυτικά στα επόμενα κεφάλαια. Μεταξύ άλλων αναφέρουμε το jbpm και το Activiti που αποτελεί τον διάδοχο του jbpm Εφαρμογή που υλοποιήθηκε Στα πλαίσια της παρούσης διπλωματικής εργασίας, αναπτύχθηκε ένα basic custom workflow engine from scratch προσαρμοσμένο στις ανάγκες των τουριστικών επιχειρήσεων όσον αφορά τη διαδικασία διαχείρισης της εφοδιαστικής τους αλυσίδας στο κομμάτι από την δημιουργία μιας νέας παραγγελίας από προϊόντα και πρώτες ύλες μέχρι το τελικό βήμα της αποδοχής της παραγγελίας από τους υπεύθυνους των τουριστικών επιχειρήσεων. Η εφαρμογή που υλοποιήθηκε είναι web based application. Οι λόγοι για την επιλογή του web έναντι της κατασευής ενός desktop application είναι αρκετά σημαντικοί και παρουσιάζονται σε επόμενο κεφάλαιο. Συνολικά η υλοποίηση παρουσιάζεται στο κεφάλαιο 5. 7

14 Κεφάλαιο 3 3 Θεωρητική ανάλυση της διαχείρισης εφοδιαστικής αλυσίδας Στόχος του κεφαλαίου αυτού είναι να κάνει μια σύντομη επισκόπηση των θεωρητικών τμημάτων που διέπουν την διαχείριση εφοδιαστικών αλυσίδων. 3.1 Εφοδιαστική Αλυσίδα (Supply Chain) Κάποιοι από τους ορισμούς που έχουν δοθεί κατά καιρούς είναι οι εξής: Σαν εφοδιαστική αλυσίδα εννούμε την συνεργασία επιχειρήσεων με σκοπό την παραγωγή του προϊόντος / υπηρεσίας και την προώθησή του στην αγορά Μια εφοδιαστική αλυσίδα αποτελείται από όλα εκείνα τα στάδια που απαιτούνται άμεσα ή έμμεσα για να φέρουν εις πέρας την απαίτηση του πελάτη (customer request). Η αλυσίδα αυτή δεν αποτελείται μόνο από τους κατασκευαστές (manufacturers) και τους προμηθευτές (suppliers), αλλά περιλαμβάνει και τους μεταφορείς (transporters), τις αποθήκες (warehouses), τους πωλητές λιανικής(retailers) και βέβαια τους ίδιους τους πελάτες (customers) Μια εφοδιαστική αλυσίδα αποτελείται από ένα δίκτυο από facilities και διαμοιραστές (distributors) που είναι υπεύθυνοι για την προμήθεια (procurement) των υλικών, την μετατροπή αυτών των υλικών στα ενδιάμεσα και τελικά προϊόντα, και εν τέλει την κατανομή των προϊόντων στους τελικούς πελάτες Συνοπτικά, δίνοντας τον δικό μας ορισμό, ως εφοδιαστική αλυσίδα (supply chain) εννοούμε το σύνολο των οργανισμών, ανθρώπινων πόρων, τεχνολογιών, καθώς και 8

15 άλλων πληροφοριών που εμπλέκονται κατά την μεταφορά ενός προϊόντος ή μιας υπηρεσίας, από τον αρχικό προμηθευτή στον τελικό καταναλωτή. Σε μια εφοδιαστική αλυσίδα εκτελούνται όλες εκείνες οι ενέργειες οι οποίες μετασχηματίζουν φυσικούς πόρους, υλικά και άλλα συστατικά σε ένα τελικό ολκληρωμένο προϊόν το οποίο και παραδίδεται στον τελικό πελάτη. Σε μια εφοδιαστική αλυσίδα λαμβάνουν μέρος πολλές διαφορετικές εταιρίες που ανταλλάσουν μεταξύ τους τα υλικά και τους πόρους με σκοπό να μεγιστοποιούν τα κέρδη τους. Είναι σημαντικό να τονίσουμε ότι οι αλυσίδες είναι loosely coupled με την έννοια ότι οι partners δεν έχουν γνώση όλης της αλυσίδας, παρά μόνο έρχονται σε επαφή με τις εταιρίες που ανταλλάσουν τα υλικά ή τους πόρους. Figure 2: Παράδειγμα απλής εφοδιαστικής αλυσίδας Όπως βλέπουμε και από το παραπάνω σχήμα η δομή μιας εφοδιαστικής αλυσίδας αποτελείται από την κεντρική οντότητα που στην περίπτωσή μας είναι η τουριστική επιχείρηση. Αυτή συνεργάζεται με ένα σύνολο από προμηθευτές οι οποίοι προμηθεύουν την επιχείρηση όλα εκείνα τα απαραίτητα υλικά και προϊόντα τα οποία μεταποιούνται ή / και πωλούνται τελικά στην άλλη βασική οντότητα της αλυσίδας, τον τελικό πελάτη. Γενικά μιλώντας, εκτός από τις παραπάνω αλυσίδες, υπάρχουν και οι εκτεταμένες αλυσίδες (extended supply chains) που αποτελούνται από τρεις ακόμα οντότητες: αρχικά υπάρχει ο προμηθευτής του προμηθευτή ο οποίος βρίσκεται στην αρχή της αλυσίδας. Επίσης στην άλλη άκρη της αλυσίδας βρίσκεται ο πελάτης του βασικού μας πελάτη. Τέλος, βασική οντότητα στις εκτεταμένες αλυσίδες αποτελούν οι επιχειρήσεις που λειτουργούν σαν service providers προς τις υπόλοιπες εταιρίες που συμμετέχουν σε μια αλυσίδα. Τέτοιες υπηρεσίες είναι υπηρεσίες IT (Information Technology), οικονομικές υπηρεσίες, υπηρεσίες marketing, καθώς και υπηρεσίες logistics. Figure 3: Παράδειγμα εκτεταμένης εφοδιαστικής αλυσίδας 9

16 3.2 Διαχείριση Εφοδιαστικής Αλυσίδας Γνωρίζοντας τι είναι μια εφοδιαστική αλυσίδα, μπορούμε να πούμε ότι η διαχείριση μιας εφοδιαστικής αλυσίδας έχει σκοπό να επηρεάσει την συμπεριφορά της όλης αλυσίδας, με στόχο να πάρουμε τα αποτελέσματα που επιθυμούμε. Μερικοί ορισμοί που έχουν δοθεί για το supply chain management είναι: Η συστεμική και στρατηγική συνεργασία καθώς και οι τακτικές που ακολουθούνται μεταξύ των επιχειρήσεων που συμμετέχουν σε μια εφοδιαστική αλυσίδα, με σκοπό την μακροπρόθεσμη βελτίωση της απόδοσης της κάθε επεχείρησης ξεχωριστά αλλά και συνολικά όλης της αλυσίδας Ο συνεργασία μεταξύ των συμμετεχόντων επιχειρήσεων μιας εφοδιαστικής αλυσίδας στις διαδικασίες της παραγωγής (production), των αποθεμάτων (inventory), της τοποθεσίας (location) και της μεταφοράς (transportation) των ενδιάμεσων ή τελικών προϊόντων με επιδίωξη την βέλτιστη συμπεριφορά στης μετρικές της απόκρισης (responsiveness) και της απόδοσης (efficiency) στην αγορά που προωθούνται Ο όρος της διαχείρισης εφοδιαστικής αλυσίδας (supply chain management - SCM) εμφανίστηκε στα τέλη της δεκαετίας του 1980 και καθιερώθηκε τη δεκαετία του Πριν από αυτόν τον όρο οι επιχειρήσεις χρησιμοποιούσαν όρους όπως logistics και operation management. Γύρω στα 1980 εισήχθη ο όρος της διαχείρισης της εφοδιαστικής αλυσίδας (SCM - Supply Chain Management). Αυτός ο όρος προέκυψε από την ανάγκη να γίνουν integrated οι business διαδικασίες μιας εφοδιαστικής αλυσίδας από τους αρχικούς προμηθευτές μέχρι τον τελικό καταναλωτή. Αν όλη η ανταλλασόμενη πληροφορία ήταν προσβάσιμη από οποιαδήποτε εταιρία που θέλει να συμμετέχει στην διαδικασία του supply chain, θα επέτρεπε στις εταιρίες αυτές να βελτιστοποιήσουν ολόκληρο το supply chain. Αυτό με τη σειρά του θα οδηγούσε σε βελτιστοποιημένη συνολική παραγωγή, το οποίο θα οδηγούσε σε μείωση του κόστους και στη δημιουργία ενός πιο ελκυστικού τελικού προϊόντος. Κάνοντας μια σύνοψη των παραπάνω, με τον όρο διαχείριση εφοδιαστικής αλυσίδας (SCM - Supply Chain Management) εννοούμε την διαχείριση του δικτύου των εταιριών που εμπλεκόνται σε ένα supply chain με σκοπό την παράδοση ενός τελικού προϊόντος ή υπηρεσίας στους τελικούς πελάτες. Η διαχείριση της εφοδιαστικής αλυσίδας περιλαμβάνει την μετακίνηση και αποθήκευση των ενδιάμεσων υλικών και πόρων που απαιτούνται από το supply chain, τον έλεγχο των αποθεμάτων (inventory) και την τελική παράδοση του ολοκληρωμένου προϊόντος στον τελικό πελάτη (end customer). 10

17 3.2.1 Διαφορές από τα Logistics Υπάρχει μια σημαντική διαφορά με την έννοια του γνωστού όρου logistics. Ο όρος logistic ουσιαστικά αναφέρεται στις ενέργειες που γίνονται στα στενά όρια μιας και μόνο επιχείρησης. Αντίθετα, στην διαχείριση εφοδιαστικών αλυσίδων αναφερόμαστε σε ένα δίκτυο επιχειρήσεων που συνεργάζονται και συγχρονίζουν τις ενέργειές τους με στόχο να παραδώσουν ένα προϊόν στην αγορά (market). Επίσης, ενώ τα logistics εστιάζουν την προσοχή τους σε ενέργειες όπως η προμήθεια (procurement), η κατανομή (distribution), η συντήρηση (maintenance) και η διαχείριση των αποθεμάτων (inventory), αντίθετα, η διαχείριση των εφοδιαστικών αλυσίδων περιλαμβάνει όλες τις λειτουργίες των logistics και επιπλέον λειτουργίες όπως το marketing, τον σχεδιασμό νέων προϊόνων, οικονομικές υπηρεσίες, καθώς και το customer service. Αυτές οι επιπλέον λειτουργίες θεωρούνται σαν μέρος των απαιτήσεων των πελατών που πρέπει να ικανοποιηθούν Βασικά συστατικά στοιχεία στην διαχείριση μιας εφοδιαστικής αλυσίδας Τα πέντε βασικά συστατικά του supply chain management είναι τα εξής: Σχεδίαση: Αποτελεί τη στρατηγική που ακολουθείται από τις εταιρίες για την διαχείριση όλων των resources που χρειάζεται, προκειμένου να ικανοποιήσει τις ανάγκες του πελάτη για το συγκεκριμένο προϊόν/υπηρεσία. Σημαντικό της στρατηγικής που θα ακολουθηθεί αποτελούν το σύνολο των μετρικών που υιοθετούνται ώστε να ελέγχουν το supply chain όσον αφορά την αποδοτικότητά του, τη μείωση του κόστους, και την υψηλή ποιότητα του τελικού προϊόντος/υπηρεσίας προς τον πελάτη Επιλογή προμηθευτών και πρώτων υλών: Ένα πολύ σημαντικό κομμάτι του supply chain management είναι αυτό της επιλογής των προμηθευτών (suppliers) και των υπόλοιπων υπηρεσιών που χρειάζονται προκειμένου να δημιουργηθεί το τελικό προϊόν. Αυτό σημαίνει ανάπτυξη της τιμολογιακής πολιτικής, ορισμού των διαδικασιών σχετικές με την παράδοση των αρχικών προϊόντων από τους προμηθευτές και την πληρωμή αυτών, καθώς και την βελτίωση των σχέσεων με τους προμηθευτές. Κατασκευή: Αποτελεί το βήμα όπου με βάση τα πρώτα αγαθά που πήραμε από τους προμηθευτές, γίνεται η δρομολόγηση των διαδικασιών που χρειάζονται για την παραγωγή, τον έλεγχο και την προετοιμασία προς την παράδοση του τελικού προϊόντος. Σε αυτό το στάδιο καταμετρούνται διάφορες παράμετροι όπως τα επίπεδα ποιότητας, η παραγωγικότητα των εργαζομένων κλπ Παράδοση: Στο στάδιο αυτό γίνεται η παράδοση των προϊόντων στους τελικούς πελάτες. Εδώ οι εταιρίες λαμβάνουν τις παραγγελίες, αναπτύσσουν το δίκτυο των αποθηκών τους, και κόβουν τα τιμολόγιά τους ή τις αποδείξεις τους, οπότε και παραδίδονται στον πελάτη 11

18 Επιστροφές προϊόντων: Είναι το μέρος του SCM που σχετίζεται με την διαδικασία των επιστροφών ελλατωματικών προϊόντων, και γενικότερα ο τρόπος με τον οποίον θα γίνει η επιστροφή αγαθών από τους πελάτες, καθώς επίσης και η υποστήριξη που θα παρέχεται σε περιπτώσεις που οι πελάτες έχουν κάποιο πρόβλημα με το προϊόν Προβλήματα που επιλύει η διαχείριση εφοδιαστικής αλυσίδας Σκοπός της διαχείρισης μιας εφοδιαστικής αλυσίδας είναι να επιλύσει ένα σύνολο προβλημάτων όπως: Διαχείριση του δικτύου κατανομής (Distribution Network Configuration), όπως πχ τον αριθμό και την τοποθεσία των προμηθευτών που εμπλέκονται, καθώς και την αποστολή του καθενός στο supply chain, τα δίκτυα κατανομής κλπ Η στρατηγική με την οποία θα γίνει ο διαμοιρασμός των υλικών και των πόρων της εφοδιαστικής αλυσίδας, καθως και τον διαμοιρασμό του τελικού προϊόντος Τα δυο παραπάνω προβλήματα δημιουργούν ένα trade-off σε πολλές περιπτώσεις με αποτέλεσμα να αυξάνεται το συνολικό κόστος του τελικού προϊόντος ανάλογα με την στρατιγική που ακολουθείται. Αυτά τα trade-offs αποτελούν σημαντικό λόγο για την επιλογή της στρατηγικής του supply chain management που θα ακολουθηθεί. Η ενσωμάτωση των διαδικασιών ενός supply chain απαιτεί τη διαμοίραση όλων των απαραίτητων πληροφοριών όπως: πληροφορίες για το αποθεματικό(inventory) των αποθηκών, προβλέψεις (forecasts) κλπ. Συνολική διαχείριση του inventory όπως της ποσότητας και της τοποθεσίας των αποθεμάτων Διαχείριση των οικονομικών συναλλαγών που γίνονται μεταξύ των partners στην εφοδιαστική αλυσίδα Trade-Off μεταξύ των βασικών απαιτήσεων σε μια εφοδιαστική αλυσίδα Το supply chain management αντιμετωπίζει το supply chain και τις επιχειρήσεις που συμμετέχουν σε αυτήν σαν μια οντότητα, και όχι σαν ξεχωριστές ονότητες που απλά συνεργάζονται μεταξύ τους. Αν αντιμετωπίζαμε κάθε μια ενέργεια της αλυσίδας ξεχωριστά, θα βλέπαμε ότι υπάρχουν conflicts μεταξύ των ενεργειών. Για παράδειγμα, η ανάγκη για την βέλτιστη εξυπηρέτηση των πελατών, απαιτεί υψηλά επίπεδα στα αποθέματα (inventory) των αποθηκών. Από την άλλη η ανάγκη για αποδοτική λειτουργία απαιτεί μείωση τα επίπεδα των αποθεμάτων. Βλέπουμε λοιπόν πως αλληλοσυγκρούονται οι δυο αυτές απαιτήσεις. Μόνο αν αντιμετωπίζαμε σαν μια οντότητα όλη την αλυσίδα και όχι σαν ξεχωριστές οντότητες, τότε και μόνο τότε θα μπορούσαμε να βρούμε τη βέλτιστη ισορροπία μεταξύ των απαιτήσεων. 12

19 Όπως είδαμε παραπάνω, η αποδοτική διαχείριση των εφοδιαστικών αλυσίδων απαιτεί ταυτόχρονη βελτίωση τόσο όσον αφορά το customer service, όσο και στις εσωτερικές λειτουργίες στις επιχειρήσεις που συμμετέχουν στο supply chain. Με τον όρο customer service εννοούμε τις υπηρεσίες απέναντι στους πελάτες όπως: υψηλά επίπεδα στην εκπλήρωση των παραγγελιών, υψηλά επίπεδα στην παράδοση των προϊόντων στους πελάτες, και χαμηλά επίπεδα στον αριθμό των επιστρεφούμενων προϊόντων από τους πελάτες. Στις λειτουργίες που αφορούν τις εσωτερικές λειτουργίες των οργανισμών περιλαμβάνονται τρόποι για να αυξήσουν τα επιστρεφόμενα κεφάλαια που έχουν δαπανήσει για επενδύσεις και ο τρόπος με τον οποίο μπορούν να μειώσουν τα λειτουργικά τους έξοδα και τα έξοδα για την αγορά αναγκαίων πρώτων υλών κλπ Προκλήσεις που έχει να αντιμετωπίσει η διαχείριση μιας εφοδιαστικής αλυσίδας Οι επιχειρήσεις πρέπει να λαμβάνουν αποφάσεις παίρνοντας υπόψιν τους τις εξής παραμέτρους που θα πρέπει να απαντήσουν: Όσον αφορά την παραγωγή (production). Τι προϊόντα θέλει η αγορά (market). Την ποσότητα των προϊόντων που επιθυμεί η αγορά. Αυτές οι ενέργειες περιλαμβάνουν μεταξύ άλλων τη δημιουργία χρονοδιαγραμμάτων παραγωγής που λαμβάνουν υπόψιν τους τις χωρητικότητες των αποθηκών, τον έλεγχο της ποιότητας και την συντήρηση των εξοπλισμών Όσον αφορά τα αποθέματα (inventory). Πχ ποια προϊόντα ή πρώτες ύλες θα γίνονται inventory σε κάθε βήμα του supply chain. Τη ποσότητα των αποθεμάτων που χρειάζονται στις αποθήκες για τα παραπάνω προϊόντα / υλικά ή πρώτες ύλες. Κύριος στόχος του inventory είναι να λειτουργεί σαν ένα «μαξιλαράκι» απέναντι στην αβεβαιότητα που ούτως ή άλλως υπάρχει σε μια εφοδιαστική αλυσίδα. Ωστόσο και εδώ εμφανίζεται trade off, αφού το να κρατάμε inventory είναι ακριβό, οπότε θα πρέπει το supply chain management να βρίσκει το optimal inventory με βάση τις ανάγκες του customer service και της τις δυνατότητες των εταιριών Όσον αφορά την τοποθεσία (location). Πχ που θα αποθηκεύονται τα προϊόντα που θα είναι για παραγωγή και για να καταμετρηθούν στα inventory processes. Θα πρέπει να χρησιμοποιούνται υπάρχοντες χώροι ή νέοι. Όσον αφορά την μεταφορά (transportation) των ενδιάμεσων ή τελικών προϊόντων. Μεταφορές από αέρα είναι πολύ γρήγορες, αλλά το κόστος είναι μεγαλύτερο. Αντίθετα μεταφορές με επίγεια μέσα όπως με τρένο ή μέσω θαλάσσης είναι πιο οικονομική λύση, αλλά είναι και πιο χρονοβόρα και δημιουργεί μεγάλη αβεβαιότητα που αυτό συνεπάγεται καλύτερη διαχείριση των αποθεμάτων των προϊόντων μας στις 13

20 αποθήκες όπως πχ να έχουμε μεγαλύτερα αποθέματα σε περίπτωση που τα θαλάσσια μέσα αδυνατούν να αποπλεύσουν λόγω κακών καιρικών συμθηκών κλπ. Όσον αφορά τις πληροφορίες (information) που ανταλλάσονται μεταξύ των εμπλεκόμενων μερών. Τι πληροφορίες θα πρέπει να ανταλλάσσονται? Κάθε πότε θα πρέπει να έρχονται σε επικοινωνία μεταξύ τους? Όσο καλύτερη συνεργασία έχουν οι διάφοροι partners, τόσο καλύτερες-ποιοτικότερες αποφάσεις μπορούν να λαμβάνονται για θέματα όπως την ποσότητα του προϊόντος που πρέπει να παραχθεί, τον βέλτιστο τρόπο μεταφοράς τους (transport) και τα μέρη που θα αποθηκεύονται (inventory) To «άθροισμα» όλων των παραπάνω προκλήσεων θα ορίσουν τις δυνατότητες και την αποδοτικότητα στην εφοδιαστική αλυσίδα μιας επιχείρησης. Figure 4: Τα 5 κύρια χαρακτηριστικά μιας εφοδιαστικής αλυσίδας και η σχέση μεταξύ τους Γιατί τελικά οι ενέργειες και οι τρόποι που τους κάνει μια επιχείρηση εξαρτιόνται σε πολύ μεγάλο βαθμό από την αποδοτικότητα της εφοδιαστικής αλυσίδας. Για παράδειγμα αν επιλογή μιας επιχείρησης είναι να προωθήσει στην μαζική αγορά προϊόντα χαμηλής τιμής, τότε θα πρέπει η εφοδιαστική αλυσίδα να βελτιστοποιείται με σκοπό το χαμηλό κόστος. Από την άλλη, αν σκοπός της επιχείρησης είναι να επικεντρωθεί στο βέλτιστο customer service και γενικότερα να εστιάσει στις σχέσεις της με τον πελάτη, τότε θα πρέπει να βελτιστοποιήσει την εφοδιαστική αλυσίδα με βάση τις παραπάνω ανάγκες. 14

21 Παρακάτω θα αναλυθούν με λεπτομέρεια οι διαχειριστεί το supply chain management. προκλήσεις που έχει να Παραγωγή: Αναφέρεται στην δυνατότητα μιας εφοδιαστική αλυσίδας να δημιουργεί και να αποθηκεύει προϊόντα σε εργοστάσια και warehouses. Το μεγάλο πρόβλημα που έχουν να λύσουν οι managers είναι το trade-off μεταξύ της ανταπόκρισης (responsiveness) στις ανάγκες των πελατών και την αποδοτικότητα (efficiency). Αν τα εργοστάσια έχουν μεγάλες ποσότητες πρώτων υλών και ενδιάμεσων προϊόντων αυτό σημαίνει θα μπορεί να ανταποκρίνεται επιτυχώς σε μεγάλες ανάγκες από την πλευρά του πελάτη. Από την άλλη πλευρά, η διάθεση μεγάλων ποσοτήτων σαν απόθεμα κοστίζει χρήματα και σε περίπτωση που τελικά αυτές οι ποσότητες παραμένουν αχρησιμοποίητες, αυτό σημαίνει η εταιρία δε θα πάρει το revenue που περίμενε, οπότε από οικονομικής άποψης, η επιλογή αυτή δεν είναι βέλτιστη οικονομικά. Εν τέλει, οι δυο προσεγγίσεις είναι οι εξής: α) εστίαση στο προϊόν, που σημαίνει πως το εργοστάσιο εκτελεί όλες εκείνες τις λειτουργίες που χρειάζονται για να παραχθεί ένα συκγεκριμένο προϊόν β) εστίαση σε συγκεκριμένες λειτουργίες, που σημαίνει ότι το εργοστάσιο εκτελεί μόνο συγκεκριμένες λειτουργίες, που μπορούν τελικά να εφαρμοστόύν σε περισσότερα προϊόντα Inventory: Περιλαμβάνει όλα εκείνα τα υλικά και ενδιάμεσα προϊόντα που έχουν οι κατασκευαστές (manufacturers), κατανομείς (distributors), και retailers που θα χρησιμοποιηθούν για να παραχθεί το τελικό προϊόν. Οι managers θα πρέπει να αποφασίσουν ανάμεσα στο trade-off μεταξύ του responsiveness και της αποδοτικότητας. Το να κρατάμε μεγάλες ποσότητες των υλικών από τη μια οδηγεί σε καλή ποιότητα του customer service αλλά από την άλλη δεν προσφέρει καλό efficiency. Αντίθετα, μικρές ποσότητες αποθεμάτων προσφέρουν καλό efficiency, αλλά δε έχουν ικανοποιητικά αποτελέσματα όσον αφορά το responsiveness προς τον πελάτη. Υπάρχουν τρεις διαφορετικοί τρόποι προσέγγισης του παράγοντα αυτού: a) Cycle Inventory: Πρόκειται για την ποσότητα που χρειάζεται να έχουμε σαν inventory που καλύπτει τις ανάγκες για ένα προϊόν στο διάστημα μεταξύ των αγορών που γίνονται για το προϊόν αυτό. Οι εταιρίες συνηθίζουν να αγοράζουν σε μεγάλες ποσότητες. Ωστόσο μεγάλες ποσότητες απαιτούν αυξημένα κόστη μεταφορών. Έτσι, το trade-off που αντιμετωπίζουν είναι τα μεγάλα κόστη στις μεταφορές λόγω των μεγάλων ποσοτήτων και αφετέρου οι καλύτερες τιμές που μπορούν να προσφέρουν λόγω αγοράς μεγάλων ποσοτήτων. b) Safety Inventory. Πρόκειται για inventory που λαμβάνει υπόψιν του την αβεβαιότητα στις προβλέψεις (forecasts) που γίνονται, οπότε και προσθέτει στα αποθέματά της επιπλέον ποσότητες που μεινώνουν τις συνέπειες από μια αποτυχημένη πρόβλεψη για τις ανάγκες σε ένα προϊόν. Εδώ το trade-off είναι από τη μια το κόστος μεταφοράς και αποθήκευσης των επιπλέον ποσοτήτων και από την άλλη το κόστος της απώλειας εσόδων λόγω ανεπαρκούς inventory. c) Seasonal Inventory. Είναι η προσέγισση που επιτρέπει να έχουμε ένα flexible ρυθμό παραγωγής του προϊόντος μας ανάλογα με την χρονική περίοδο που διανύουμε. Για παράδειγμα την καλοκαιρινή περίοδο οι ανάγκες 15

22 μας για air-conditions είναι μεγαλύτερες σε σχέση με το χειμώνα. Έτσι, με το seasonal inventory, μπορούμε να αλλάζουμε τον ρυθμό παραγωγής airconditions λίγο πριν το καλοκαίρι με σκοπό να ανταποκριθούμε στις αυξημένες ανάγκες του καλοκαιριού. Τοποθεσία:Αναφέρεται στο γεωγραφικό τόπο που βρίσκονται τα διάφορα μέρη που συνθέτουν μια εφοδιαστική αλυσίδα. Εδώ το trade-off που παρουσιάζεται είναι αν θα πρέπει να συσσωρεύονται τα μέρη της αλυσίδας σε λίγα μέρη (centralized προσέγγιση) ή το αντίθετο (decentralized προσέγγιση). Με την πρώτη επιλογή επιτυγχάνουμε μικρότερα κόστη και καλύτερα οικονομικά μεγέθη. Με τη δεύτερη προσέγγιση μπορεί να αυξάνουμε το κόστος λόγω των περισσότερων locations, αλλά επιτυγχάνουμε έτσι να βρισκόμαστε πιο κοντά στους πελάτες και τους προμηθευτές, οπότε έχουμε καλύτερο responsiveness. Transportation: Αναφέρεται στην μεταφορά/μετακίνηση των υλικών /πρώτων υλών μεταξύ των partners που συμμετέχουν σε μια εφοδιαστική αλυσίδα. Εδώ εμφανίζεται το trade-off μεταξύ του responsiveness και του efficiency όσον αφορά το τρόπο που θα γίνει η μεταφορά των υλικών. Γρήγοροι τρόποι με εναέρια μέσα (αεροπλάνα) αφενός συνεπάγεται βέλτιστη ανταπόκριση στις ανάγκες των πελατών, αφετέρου αυξάνει το κόστος. Από την άλλη, επίγεια μέσα (τρένα, πλοία) προσφέρουν φτηνότερους τρόπους μεταφοράς, αλλά «πάσχει» στο customer service. Αναλυτικά, οι τρόποι μεταφοράς είναι : a) Πλοία: προσφέρουν χαμηλό κόστος, αλλά έχουν χαμηλές επιδόσεις στο responsiveness λόγω των θαλάσσιων περιορισμών b) Μέσα σιδηροδρομικής τροχιάς: Επίσης χαμηλό κόστος αλλά είναι αρκετά αργό στις αποκρίσεις c) Φορτηγά-βυτιοφόρα. Πρόκειται για αρκετά ευέλικτο τρόπο μεταφοράς, αλλά πάσχει στην ταχύτητα d) Αεροπορική μεταφορά: Ο πιο γρήγορος τρόπος μεταφοράς, αλλά αυξάνεται κατακόρυφα το κόστος e)ηλεκτρονική μεταφορά. Παρότι πρόκειται για τον πιο φτηνό και γρήγορο τρόπο μεταφοράς, ωστόσο έχει τον μεγάλο περιορισμό των υλικών που μπορούν να μεταφερθούν με αυτό το μέσο Πληροφορίες: Πρόκειται για το σύνολο των πληροφοριών που ανταλλάσονται μεταξύ των partners σε μια εφοδιαστική αλυσίδα. Αποτελεί πολύ σημαντικό κομμάτι μιας αλυσίδας διότι με βάση τις πληροφορίες που έχει διαθέσιμες ένας partner, θα πάρει και τις ανάλογες αποφάσεις με στόχο πάντα τη βέλτιστο όφελος και κέρδη. Οι πληροφορίες χρησιμοποιούνται από τους partners για δυο λόγους: a) Να συγχρονίσουν τις καθημερινές δραστηριότητες μεταξύ των partners σε τομείς όπως το inventory, την παραγωγή και τη μεταφορά. b) Να κάνουν τον απαραίτητο σχεδιασμό (planning) και τις προβλέψεις (forecasts) που θα τους επιτρέψουν να ανταποκριθούν στις μελλοντικές ανάγκες των πελατών και γενικότερα θα τους βοηθήσουν να αποφασίσουν για ενέργειες όπως πχ να μπουν σε μια νέα αναδυόμενη αγορά, να επενδύσουν σε νέες τεχνολογιές κλπ Οντότητες που λαμβάνουν μέρος σε μια εφοδιαστική αλυσίδα Στην απλούστερη μορφή, μια εφοδιαστική αλυσίδα αποτελείται από την επιχείρηση, τους προμηθευτές (suppliers) της και τους πελάτες (customers) 16

23 της. Ωστόσο σε πραγματικές εφοδιαστικές αλυσίδες περιλαμβάνονται ακόμα: ο αρχικός προμηθευτής, ο τελικός πελάτης στο τέλος της αλυσίδας και ένα σύνολο εταιριών που λειτουργούν σαν service providers για άλλες εταιρίες στην εφοδιαστική αλυσίδα. Αυτές οι εταιρίες παρέχουν υπηρεσίες όπως logistics, marketing και information technologies (IT). Σε κάθε τέτοια εφοδιαστική αλυσίδα λοιπόν υπάρχουν διάφορες επιχειρήσεις που παίρνουν μέρος που εκτελούν διάφορες λειτουργίες. Παρακάτω περιγράφονται οι τύποι των providers που λαμβάνουν μέρος. Παραγωγοί (producers): Οι παραγωγοί ή κατασκευαστές (manufacturers) είναι επιχειρήσεις που κατασκευάζουν ένα προϊόν, είτε αυτό είναι πρώτες ύλες και ενδιάμεσα υλικά, είτε τα τελικά προϊόντα της εφοδιαστικής αλυσίδας. Οι παραγωγοί των τελικών προϊόντων συνήθως χρησιμοποιούν τα προϊόντα που κατασκευάζουν άλλες εταιρίες σαν πρώτες ύλες ή ενδιάμεσα υλικά, για να καασευάσουν το τελικό προϊόν. Κατανομείς (distributors): Δουλειά των distributors είναι να λαμβάνουν αποθέματα από τους παραγωγούς σε μεγάλες ποσότητες (bulk) και να τα παραδίδουν στους πελάτες τους. Συνήθως πουλάνε τα προϊόντα σε άλλες επιχειρήσεις οι οποίες τα πουλούν στους τελικούς πελάτες. Γιαυτό και συνήθως αγοράζουν μεγαλύτερες ποσότητες από ότι οι εταιρίες που τα πουλούν στους τελικούς πελάτες. Σημαντική ευθύνη των distributors είναι να διατηρούν απαραίτητα αποθέματα στις αποθήκες τους ούτως ώστε να μπορούν να ανταπεξέρχονται στις ανάγκες των πελατών τους, αφού η αγορά είναι συνήθως ευμετάβλητη και οι προβλέψεις πέφτουν πολλές φορές έξω. Άλλες αρμοδιότητες των distributors είναι η προώθηση (promotion) των προϊόντων τους, οι πωλήσεις τους (sales), η μεταφορά τους (transportation), η διαχείριση των αποθεμάτων (inventory), καθώς και η υποστήριξη των πελατών πριν και μετά τις πωλήσεις. Πωλητές λιανικής (retailers): Οι retailers αποθηκεύουν μικρά αποθέματα προϊόντων και τα πουλούν σε μικρές ποσότητες στους τελικούς καταναλωτές. Βρίσκονται πολύ κοντά στον τελικό καταναλωτή, οπότε αφουγκράζονται τις απαιτήσεις και τις προτιμήσεις τους. Επίσης διαφημίζουν τα προϊόντα και συνήθως προσφέρουν ανταγωνιστικές τιμές, γκάμα προϊόντων, παρέχουν after sales service, εκπτώσεις ανάλογα τις συνθήκες με σκοπό πάντα να προσελκύουν περισσότερους πελάτες. Πελάτες (customers). Με τον όρο πελάτη δεν ενοούμε μόνο τους τελικούς καταναλωτές που αγοράζουν το τελικό προϊόν με σκποπό να το καταναλώσουν. Εννοούμε και οποιαδήποτε εταιρία αγοράζει προϊόντα κατά τη διάρκεια της εφοδιαστικής αλυσίδας με σκοπό να χρησιμοποιήσει αυτά σαν ενδιάμεσα προϊόντα ή πρώτες ύλες για να φτιάξει ένα νέο προϊόν που με τη σειρά του είτε θα το δώσει στον τελικό καταναλωτή (τελικό προϊόν), είτε θα το πουλήσει σε άλλες επιχειρήσεις σαν ενδιάμεσο υλικό. Service Providers: Πρόκειται για εταιρίες που ασχολούνται αποκλειστικά με την παροχή υπηρεσιών στους υπόλοιπους partners της εφοδιαστικής αλυσίδας 17

24 (κατασευαστές, κατανομείς, retailers και πελάτες). Έχοντας αποκτήσει μεγάλη εξειδίκευση και expertise σε αυτούς τους τομείς, μπορούν να παρέχουν υψηλής ποιότητας υπηρεσιών σε πολύ καλύτερες τιμές από τις υπηρεσίες που μπορούν να παρέχουν οι υπόλοιποι partners από μόνοι τους. Αυτές οι εταιρίες παρέχουν υπηρεσίες όπως: υπηρεσίες logistics όπως trucking και warehouse εταιρίες, οικονομικές υπηρεσίες όπως πιστωτικές αναλύσεις, προσέγγιση κεφαλαίων και απόκτηση ανταγωνιστικών δανείων. Επίσης υπάρχουν εταιρίες ειδικευμένες στον marketing και advertising, άλλες που παρέχουν νομικές συμβουλές, και βέβαια IT συμβουλευτικές εταιρίες που παρέχουν υπηρεσίες στις νέες τεχνολογίες Ενσωμάτωση business διαδικασιών Για την επιτυχία ενός συστήματος διαχείρισης εφοδιαστικής αλυσίδας απαιτείται να διαχειριζόμαστε τις λειτουργίες (functions) του supply chain όχι σαν ξεχωριστές οντότητες, αλλά σαν σύνολο διαδικασιών άρρηκτα συνδεδεμένων μεταξύ τους. Για παράδειγμα, έστω ότι purchasing department μια εταιρίας δημιουργεί παραγγελίες για ένα συγκεκριμένο προϊόν, τότε το marketing department της εταιρίας, ανταποκρινόμενο στις απαιτήσεις της παραγγελίας από το purchasing department θα επικοινωνήσει με διάφορους distributors προκειμένου να ικανοποιήσει τις απαιτήσεις του purchasing department. Έτσι λοιπόν παρατηρούμε ότι δημιουργείται η ανάγκη για διαμοιρασμό της πληροφορίας μεταξύ των διαφόρων partners, το οποίο μπορεί να επιτευχθεί τελικά μέσω της ενσωμάτωσης των διαδικασιών αυτών. Για την ενσωμάτωση των business διαδικασιών απαιτείται συνεργασία μεταξύ αγοραστών και προμηθευτών, χρήση κοινών συστημάτων όπου οι πληροφορίες θα μοιράζονται μεταξύ των εμπλεκόμενων μερών. Οι βασικότερες business διαδικασίες περιγράφονται πιο κάτω: Διαχείριση της σχέσης με τους πελάτες (customers) Διαχείριση των προμηθειών (procurements) Διαχείριση των υπηρεσιών προς τους πελάτες. Σε αυτή τη διαδικασία παρέχεται στον πελάτη με real-time πληροφορίες όσον αφορά την διαθεσιμότητα ή/και τη δρομολόγηση των προϊόντων. Γενικότερα αυτή η διαδικασία περιλαμβάνει τη πηγή των πληροφοριών του πελάτη Διαχείριση των απαιτήσεων (demands) Τρόπος που διαχειριζόμαστε την ικανοποίηση των παραγγελιών των πελατών, δηλαδή τον τρόπο με τον οποίο οι εταρίες ανταποκρίνονται στις απαιτήσεις των πελατών. Διαχείριση της σχέσης με τους προμηθευτές Ανάπτυξη του προϊόντος και τρόπος προώθησής του στην αγορά. Σε αυτή τη διαδικασία, οι πελάτες και οι προμηθευτές πρέπει να συνεργαστούν με σκοπό να μειώσουν το χρόνο παράδοσης και προώθησης του τελικού προϊόντος στην αγορά. Με δεδομένο ότι ο 18

25 κύκλος ζωής ενός προϊόντος είναι περιορισμένος και δεδομένου του ανταγωνισμού που επικρατεί στις οικονομίες, οι υπεύθυνοι των διαδικασιών αυτών θα πρέπει α) να συνεργάζονται άριστα με τον πελάτη ώστε να κατανοούν τις ανάγκες τους β) να επιλέγουν τα υλικά και τους προμηθευτές σε σχέση και με τις προβλέψεις Διαχείριση του flow κατασκευής του τελικού προϊόντος. Η διαδικασία αυτή περιλαμβάνει την παραγωγή και προώθηση των προϊόντων στα κανάλια κατανομής με βάση προηγούμενες προβλέψεις (forecasts). Αυτή η διαδικασία θα πρέπει να είναι αρκετά ευέλικτη ώστε να μπορεί να ανταποκρίνεται σε αλλαγές στην αγορά. Η δυνατότητα να αλλάζει η διαδικασία αυτή οδηγεί σε μικρότερους cycle χρόνους και άρα βελτιωμένες αποκρίσεις ανάλογα με τις ανάγκες των πελατών Κατανομή των προϊόντων. Σε αυτή τη διαδικασία γίνεται η πραγματική μεταφορά του τελικού προϊόντος στον πελάτη. Το πιο σημαντικό μέρος σε αυτή τη διαδικασία είναι η διαθεσιμότητα του προϊόντος ή της υπηρεσίας στον τελικό καταναλωτή Μέτρηση της απόδοσης. Οι εσωτερικές μετρήσεις που χρησιμοποιούνται είναι το κόστος, η μετρική του customer service, μετρικές παραγωγικότητας, μετρική τω κεφαλαίων καθώς και μετρική της ποιότητας των υπηρεσιών (QoS) Διαχείριση Data Warehousing. Η επιτυχής διαχείριση του warehousing επιτρέπει τη μείωση του λειτουργικού κόστους και εξόδων, μειώνει επίσης το κόστος στον αναγκαίο ανθρώπινο δυναμικό, και επιτρέπει την καλύτερη διαχείριση στην παράδοση των προϊόντων 3.3 Διαχείριση Εφοδιαστικής Αλυσίδας στις Τουριστικές Επιχειρήσεις Η τουριστική βιομηχανία αποτελεί τις τελευταίες δεκαετίες μια από τις πιο σημαντικές βιομηχανίες ανάπτυξης της οικονομίας. Για πολλές χώρες μάλιστα (όπως η Ελλάδα), ο τουρισμός αποτελεί το βασικό μοχλό ανάπτυξης όπου το μεγαλύτερο ποσοστό του συνολικού Α.Ε.Π. των χωρών αυτών οφείλεται στην τουριστική ανάπτυξη και άλλες έμμεσες με αυτόν δραστηριότητες. Από την άλλη πλευρά, καθώς οι τουριστικές μονάδες γίνονται ολοένα και πιο ολοκληρωμένες από πλευράς ανέσεων που παρέχονται, ο ανταγωνισμός γίνεται όλο και πιο έντονος, με αποτέλεσμα τα τουριστικά καταλύματα από μικρές οικογενειακές επιχειρήσεις να έχουν μετατραπεί σε μεγάλες ολοκληρωμένες εταιρίες που στόχο έχουν το μέγιστο κέρδος προς τους μετόχους τους. Καθώς οι τουριστικές μονάδες μεγαλώνουν σε μέγεθος, ανάλογα μεγαλώνουν και ο αριθμός των τουριστών που μπορεί να εξυπηρετήσει και βέβαια όσο πιο πολλοί 19

26 τουρίστες τόσο και μεγαλύτερες οι ανάγκες που έχει να ικανοποιήσει. Μάλιστα, άλλος ένας παράγοντας που υπεισέρχεται στην τουριστική βιομηχανία είναι ότι λόγω της παγκοσμιοποίησης και της προόδου στις αερομεταφορές, τα καταλύματα έχουν να ικανοποιήσουν τις απαιτήσεις τουριστών από κάθε γωνιά του κόσμου, με διαφορετικές κουλτούρες, διατροφικές συνήθειες κλπ. Αυτό περιπλέκει ακόμα περισσότερο τον τομέα του end customer service Ιδιαιτερότητες των Τουριστικών Καταλυμάτων Η ιδιαιτερότητα της τουριστικής βιομηχανίας σε σχέση με άλλου τύπου βιομηχανίες περιγράφονται παρακάτω: Ανάγκη για εξυπηρέτηση πελατών με διαφορετικές κουλτούρες και συνήθειες. Αυτό σχετίζεται πχ με τομείς όπως τη διατροφική συνήθεια των τουριστών, τις διαφορετικές συνήθειές τους κλπ. Για παράδειγμα αν μια επιχείρηση θέλει να προσελκύσει ασιάτες τουρίστες, θα πρέπει να λαβει υπόψιν του τις ασιατικές διατροφικές τους ανάγκες, ταυτόχρονα όμως θα πρέπει να ικανοποιήσει και τις διατροφικες συνήθειες του δυτικού κόσμου. Έτσι το menu των εστιατορίων θα πρέπει να ικανοποιέι όλα τα γούστα, ή να υπάρχουν περισσότερα από ένα εστιατόρια ανάλογα με το menu Η παραπάνω ιδιαιτερότητα δημιουργεί επίσης την ανάγκη μια επιχείρηση να συνεργάζεται με πολλούς προμηθευτές (suppliers) που θα το προμηθεύουν ότι χρειάζεται για να ικανοποιήσουν τα διαφορετικά γούστα. Πολλές φορές οι προμηθευτές δεν βρίσκονται στην ίδια περιοχή γεωγραφικά με την επιχείρηση, αλλά και με την έλευση του internet, την επιχείρηση μπορεί να συνεργάζεται με προμηθευτές από διαφορετικές χώρες που θα του παρέχουν τα προϊόντα που χρειάζεται τόσο στις καλύτερες τιμές αλλά και με τη βέλτιστη ποιότητα. Τα τουριστικά καταλύματα συνήθως δουλεύουν ανά σεζόν (season). Πχ τα καταλύματα σε χιονοδρομικούς προορισμούς παραμένουν ανοιχτά όσο διαρκεί ο χειμώνας. Στα ελληνικά νησιά, ο τουρισμός φτάνει στα peak του την καλοκαιρινή season. Άλλα, πάλι, καταλύματα παραμένουν ανοιχτά όλους τους μήνες του χρόνου, και απλά η τουριστική περίοδος να αυξάνει / μειώνεται ανάλογα με την περίοδο Πολλά τουριστικά καταλύματα βρίσκονται σε «απομωνομένες» γωνιές προσφέροντας εξωτικές διακοπές στους πελάτες τους μακριά από τον πολιτισμό. Άλλα βρίσκονται σε μικρά δυσπρόσιτα νησάκια προσφέροντας ησυχία και γαλήνη. Βλέπουμε λοιπόν ότι η τοποθεσία των τουριστικών καταλυμάτων ποικίλει, ενώ σε κάποιες περιπτώσεις η πρόσβαση σε αυτά είναι πιο δύσκολη λόγω απόστασης κλπ. 20

27 Απόρροια του παραπάνω είναι το γεγονός ότι οι μεταφορές των προϊόντων που χρειάζεται η επιχείρηση πολλές φορές να είναι δύσκολη και να χρειάζεται αρκετές μέρες μέχρι να φτάσουν στον προορισμό Τουριστικές Επιχειρήσεις και Διαχείριση Εφοδιαστικής Αλυσίδας Οι μεγάλες τουριστικές μονάδες χρειάζεται να εφαρμόσουν ένα μοντέλο supply chain ώστε αφενός να βελτιστοποιήσουν την ποιότητα των παροχών τους προς τους πελάτες και αφετέρου να ελαχιστοποιήσουν το κόστος λειτουργίας τους. Μη ξεχνάμε ότι και οι μεγάλες τουριστικές μονάδες είναι επιχειρήσεις που επιδιώκουν το κέρδος και από τη μια έχουν να αντιμετωπίσουν τον αυξημένο ανταγωνισμό της αγοράς και από την άλλη αφενός να ικανοποιήσουν τους (απαιτητικούς) πελάτες που έχουν πληρώσει μεγάλα ποσά και αφετέρου να μειώσουν όσο το δυνατόν τα μεγάλα λειτουργικά κόστη. Παρατηρούμε ότι εμφανίζεται ένα trade-off μεταξύ του λειτουργικού κόστους και των προσφερόμενων υπηρεσιών. Για να ισορροπήσουν το παραπάνω trade-off, ταοι τουριστικές μονάδες χρειάζεται να εφαρμόζουν το κατάλληλο σύστημα διαχείρισης εφοδιαστικής αλυσίδας (supply chain management). Με βάση της ανάλυσης των προηγούμενων κεφαλαίων μπορούμε να διακρίνουμε τα εξής στοιχεία που θα πρέπει να λαμβάνονται υπόψιν πριν τη δημιουργία της κατάλληλης εφοδιαστικής αλυσίδας: Μια επιχείρηση λειτουργεί ως παραγωγός (producer) σε τμήματα όπως το εστιατόριο, τα café-bars κλπ. Παραλαμβάνει πρώτες ύλες από τους προμηθευτές του και κατασκευάζει τα τελικά προϊόντα που καταναλώνονται από τους πελάτες της επιχείρησης. Προμηθευτές (supplier) της επιχείρησης είναι όλες οι εταιρίες που είτε δίνουν τα προϊόντα τους έτοιμα προς «κατανάλωση» είτε εταιρίες που προσφέρουν πρώτες ύλες ή ενδιάμεσα προϊόντα προκειμένου να χρησιμοποιηθούν από την επιχείρηση για την παραγωγή του τελικού προϊόντος. Στην πρώτη περίπτωση περιλαμβάνεται η προμήθεια των ηλεκτρικών συσκευών που χρειάζονται στα δωμάτια των καταλυμάτων, οινοπνευματώδη ποτά που προορίζονται για τα café-bars κλπ. Αντίθετα, παραδείγματα πρώτων υλών αποτελούν οι προμήθειες που προορίζονται για το εστιατόριο κλπ. Πολύ σημαντικό στοιχείο αποτελεί το απόθεμα (inventory) των επιχειρήσεων σε προϊόντα και πρώτες ύλες. Με βάση την ιδιαιτερότητα ότι πολλές τουριστικές επιχειρήσεις δουλεύουν σε σεζόνς και όχι καθ όλη την διάρκεια του χρόνου, μας επιτρέπει να επιλέξουμε seasonal inventory τακτική, μιας και οι ανάγκες για προϊόντα και αποθέμα είναι μεγαλύτερη την on season περίοδο σε σχέση με την off season περίοδο. Επίσης, όσον αφορά τον χώρο που 21

28 θα αποθηκεύονται τα προϊόντα, αυτός προτιμάται να είναι μέσα στους χώρους της επιχείρησης και όχι διάσπαρτοι και μακριά από αυτή. Όσον αφορά τον τομέα των μεταφορών (transportation), πρέπει να ληφθεί υπόψιν ότι οι τουριστικές επιχειρήσεις πολλές φορές βρίσκονται μακριά από τα κέντρα κατανομής των προϊόντων και τους προμηθευτές. Από την άλλη, απαιτείται το βέλτιστο customer service, μιας και οι απαιτήσεις των πελατών είναι ιδιαίτερα μεγάλες. Ένας άλλος παράγοντας που παίζει ρόλο είναι ότι πολλά προϊόντα που μεταφέρουν οι προμηθευτές είναι ευπαθή και με ημερομηνία λήξης (πχ προϊόντα που καταναλώνονται στο εστιατόριο, μανάβικο κλπ). Με βάση τα παραπάνω διαφαίνεται η ανάγκη να χρησιμοποιείται το πιο γρήγορο μέσο μεταφοράς των προϊόντων, ανεξαρτήτου του υψηλού κόστους μεταφοράς. Σημαντικό ρόλο παίζει και αυτός των service providers. Με το δεδομένο ότι οι επιχειρήσεις θα πρέπει να παρέχει βέλτιστες υπηρεσίες προς τους πελάτες του, αυτό συνεπάγεται πως είναι προτιμότερο οι υπηρεσίες αυτές να παρέχονται από τρίτες εταιρίες που θα παίρνουν μέρος στην εφοδιαστική αλυσίδα και θα προσφέρουν το expertise τους στους πελάτες. Αυτή η ανάγκη βέβαια έχει το τίμημα του υψηλότερου κόστους Οφέλη χρήσης προγραμμάτων διαχείρισης εφοδιαστικής αλυσίδας στην τουριστική βιομηχανία Στην περίπτωση των τουριστικών επιχειρήσεων, η χρήση κάποιου συστήματος διαχείρισης της εφοδιαστικής αλυσίδας της επιχείρησης, προσφέρει πολλά πλεονεκτήματα όπως: Οι τουριστικές επιχειρήσεις που υιοθετούν τέτοια συστήματα SCM μειώνουν το χρόνο για την διαχείριση της όλης διαδικασία που εμπλέκεται ένα SCM, οπότε μπορεί να επικεντρωθεί ώστε να βελτιώσει άλλες διαδικασίες της επιχείρησης Η υιοθέτηση ενός SCM συστήματος έχει μελετηθεί ότι μειώνει το συνολικό κόστος/έξοδα των επιχειρήσεων κατα 8-15% Μειώνει αισθητά τα ανθρώπινα λάθη που ειπησέρχονται κατά τις παραγγελίες των προϊόντων ή εκπτώσεις τους, με τη χρήση ηλεκτρονικών συσκευών, κάνοντας έτσι γρηγορότερη την διεκπαιρέωση των παραγγελιών Η υιοθέτηση ενός συστήματος SCM είναι ευέλικτη, με την έννοια ότι μπορούμε να αλλάζουμε παραμέτρους των διαδικασιών δυναμικά ανάλογα με τις τάσεις της αγοράς Η δυνατότητα να ελέγχεται το απόθεμα που υπάρχει στις αποθήκες είναι πολύ σημαντικό για μια τουριστική επιχείρηση, γιατί αφενός η αποθήκευση στις αποθήκες περιττών προϊόντων αυξάνει τα λειτουργικά 22

29 έξοδα, και αφετέρου εφαρμόζοντας JIT(Just in time) διαδικασίες, το κόστος όσον αφορά τις αποθήκες μειώνεται αισθητά Η ύπαρξη συστήματος SCM επιτρέπει στις τουριστικές επιχειρήσεις τα ανταλλάσουν δεδομένα ηλεκτρονικά με άλλους συνεργάτες που βρίσκονται στο supply chain Διαχείριση Παραγγελιών στις Τουριστικές Επιχειρήσεις Ένα από τα πιο βασικά κομμάτια στην εφοδιαστική αλυσίδα μιας τουριστικής επιχείρησης είναι η διαδικασία που ξεκινά από την προμήθεια των προϊόντων από τους προμηθευτές όπου περνώντας μέσα από ένα στάδιο ενεργειών approving από υπεύθυνους της τουριστικής επιχείρησης, τελικά εγκρίνεται ή απορρίπτεται η παραγγελία. Οι παραγγελίες που πρέπει να γίνουν στις επιχειρήσεις αυτές αφορούν παραγγελίες προϊόντων που προορίζονται για τα εστιατόρια, τα café-bars, και άλλους χώρους εστίασης, καθώς και προϊόντα που χρειάζονται σαν ανταλλακτικά για να αντικαταστήσουν παλιά μη λειτουργικά προϊόντα πχ συσκευές στα δωμάτια των τουριστικών επιχειρήσεων (air-condition, τηλέφωνα κλπ), ηλεκτρονικοί υπολογιστές του προσωπικού κλπ. Κάθε τουριστική μονάδα αποτελείται από departments τα οποία είναι υπεύθυνα για την εκτέλεση των παραγγελιών. Συνήθως κάθε department έχει και τους δικούς του χώρους αποθήκευσης, όπου και αποθηκεύουν το απόθεμά τους. Είναι πολύ σημαντικό οι χώροι αποθήκευσης να είναι μέσα στο μονάδα ούτως ώστε να ικανοποιούνται άμεσα οι ανάγκες για παραλαβή των προϊόντων προς τους πελάτες της επιχείρησης εύκολα, γρήγορα και κυρίως με διαθεσιμότητα όλο το 24ωρο. Εκτός από τις επιμέρους αποθήκες του κάθε department, οι τουριστικές μονάδες διατηρούν και μια κεντρική μεγάλη αποθήκη η οποία λειτουργεί σαν εσωτερικός κατανεμητής (distributor) προς τις επιμέρους αποθήκες. Έτσι, ένα προϊόν αφού παραληφθεί από τον προμηθευτή, συνήθως καταχωρείται στην κεντρική μεγάλη αποθήκη, και ύστερα ακολουθούν εσωτερικές μεταφορές (requisition) προς τις εκάστοτε αποθήκες των διαφόρων departments της επιχείρησης. Οι παραγγελίες συνήθως εκτελούνται από υπαλλήλους της επιχείρησης. Κάθε υπάλληλος ανήκει σε ένα ή περισσότερα departments και γνωρίζει τα αποθέματα κάθε προϊόντος μέσα στις αποθήκες που χειρίζεται. Για παράδειγμα, το εστιατόριο με menu Ασιατική κουζίνα έχει την δική του αποθήκη (store) στην οποία αποθηκεύει όλα τα υλικά που πρόκειται να χρησιμοποιήσει. Υπεύθυνοι σε αυτήν την αποθήκη είναι εργαζόμενοι που έχουν σαν ευθύνη τους να ελέγχουν τα αποθέματα των προϊόντων του εστιατορίου, να καταγράφουν τις ποσότητες, να ελέγχουν την επάρκεια σε ποσότητες, και σε περίπτωση που ένα προϊόν βρίσκεται σε έλλειψη ή έχει εξαντληθεί, να προχωρά στην δημιουργία νέας παραγγελίας. Επίσης ο υπεύθυνος της αποθήκης μπορεί να παραγγείλει ένα νέο προϊόν το οποίο δεν έχει μέχρι στιγμής στην αποθήκη του. 23

30 Παρακάτω παρουσίαζεται ένα υποτυπώδες οργανόγραμμα μιας τουριστικής επιχείρησης όπου φαίνονται τα βασικά departments. Σε κάθε department υπάρχουν οι managers και από κάτω βρίσκονται χαμηλότεροι υπάλληλοι. Σε κάθε ένας από αυτούς θα ανατεθεί διαφορετικός ρόλος κατά την δημιουργία του workflow της εφοδιαστικής αλυσίδας: Figure 5: Βασικό οργανόγραμμα σε τουριστικές επιχειρήσεις. Σε κάθε θέση ανατίθονται διαφρετικά steps στο workflow Αφού δημιουργεί η παραγγελία, συνήθως από τον αποθηκάριο, ακολουθεί η διαδικασία του ελέγχου της παραγγελίας από τους υπεύθυνους των και ανάλογα με την παραγγελία, από τους προιστάμενους της επιχείρησης. Κατά την διαδικασία αυτή, οι υπέυθυνοι ελέγχουν τα προϊόντα που περιλαμβάνει η παραγγελία, τις ποσότητες που παραγγέλνονται σε αντιστοιχία με τα αποθέματα στην αποθήκη, την αιτία που γίνεται η παραγγελία και βέβαια το συνολικό ποσό της παραγγελίας. Ο υπεύθυνος κατά τον έλεγχο της παραγγελίας έχει τις εξής δυνατότητες: Να απορρίψει ολόκληρη την παραγγελία. Σε αυτή τη περίπτωση ολόκληρη η παραγγελία γίνεται rejected. Οι λόγοι όπως αναφέρθηκαν και πιο πάνω, μπορεί να είναι πχ το συνολικό ποσό της παραγγελίας είναι μεγάλο και δεν δικαιολογείται η παραγγελία στο σύνολό της, ή μπορεί να είναι θεωρήσει ότι τα αποθέματα των προϊόντων της παραγγελίας είναι επαρκή και δεν χρειάζεται μεγαλύτερες ποσότητες κλπ. Σε αυτή τη περίπτωση θεωρούμε ότι ολόκληρη η παραγγελία έγινε rejected 24

31 Να απορρίψει ένα μέρος των προϊόντων της παραγγελίας. Αυτό σημαίνει ότι δέχεται να παραγγελθούν μερικά προϊόντα, αλλά τα υπόλοιπα τα απορρίπτει για τους λόγους που αναφέρθηκαν πιο πάνω. Σε αυτή τη περίπτωση θεωρούμε τα προϊόντα που απορρίφθηκαν ακυρώνονται από την παραγγελία και γίνονται rejected, τα υπόλοιπα γίνονται approved, και ολόκληρη η παραγγελία θεωρείται μερικώς approved Να κάνει approve μικρότερες ποσότητες από ότι αρχικώς παραγγέλθηκαν. Αυτό σημαίνει πως ναι μεν δέχεται για αυτά τα προϊόντα να γίνει η παραγγελία, αλλά αποδέχεται να παραγγελθούν μικρότερες ποσότητες από τις αρχικές που ζητήθηκαν. Έτσι έχουμε ένα μερικό approve των συγκεκριμένων προϊόντων, και συνολικά ένα μερικό approve της παραγγελίας. Να ζητήσει για ένα ή περισσότερα προϊόντα να ξανα-παραγγελθούν με άλλες ποσότητες. Ουσιαστικά τα προϊόντα αυτά δεν γίνονται approved, αλλά ζητάμε από τους δημιουργούς των παραγγελιών να διορθώσουν τις ποσότητες των προϊόντων που ζητάνε με προφανώς μικρότερες ποσότητες ούτως ώστε να μπορέσουν να γίνουν approve Να γίνει συνολικά η παραγγελία approved Αναλυτικά οι λόγοι απόρριψης ενός προϊόντος κατά τη διαδικασία ελέγχου της παραγγελίας (order workflow) είναι οι εξής: Παραγγελία μεγαλύτερων ποσοτήτων από όσες μπορούν να γίνουν αποδεκτές Τα αποθέματα των προϊόντων στις αποθήκες θεωρούνται από τον ελεγκτή ότι είναι επαρκή και δε χρειάζεται νέα παραγγελία Ο επιλεγμένος προμηθευτής της παραγγελίας δεν γίνεται αποδεκτός από τον ελεγκτή είτε γιατί δεν έχει καλό reputation, είτε γιατί θεωρεί ότι υπάρχουν άλλοι προμηθευτές με καλύτερες τιμές Ο ελεγκτής απορρίπτει την παραγγελία γιατί οι ποσότητες που παραγγέλνονται υπάρχουν στις κεντρικές αποθήκες, οπότε μπορούν να μεταφερθούν στην εκάστοτε αποθήκη με μια εσωτερική μεταφορά Διαχείριση Ροών Παραγγελίας (Workflow Processing) Αφού δημιουργηθεί η παραγγελία, στην συνέχεια μπαίνει σε μια workflow διαδικασία, όπου υπάλληλοι της επιχείρησης (συνήθως ανώτεροι υπάλληλοι, department managers κλπ) έχουν την υποχρέωση και ευθύνη να ελέγξουν την παραγγελία όσον αφορά τις ποσότητες των προϊόντων, τις τιμές των επιλεγμένων προμηθευτών και ανάλογα πως κρίνουν να εκτελέσουν μια σειρά από actions πάνω στην παραγγελία, όπως αυτά περιγράφηκαν πιο πάνω. Κάθε υπάλληλος είναι υπεύθυνος για ένα ή περισσότερα workflow βήματα. Σε κάθε 25

32 τέτοιο βήμα, έχει μια σειρά από επιλογές που μπορεί να εκτελέσει σε ένα ή περισσότερα προϊόντα της παραγγελίας. Το flow της παραγγελίας βασίζεται στα επιμέρους flows των προϊόντων που απαρτίζουν την παραγγελία. Εξ αρχής, κάθε προϊόν σχετίζεται με ένα flow που αποτελείται από flow steps. Για να ολοκληρωθεί η παραγγελία θα πρέπει να έχουν γίνει approve ένα-προς-ένα τα flow steps του κάθε ενός προϊόντος. Τότε και μόνο τότε μπορεί να προχωρήσει και να σταλεί στον επιλεγμένο προμηθευτή η παραγγελία. Εκτέλεση των παραγγελιών από τους suppliers Αφού δημιουργηθεί μια παραγγελία από προϊόντα που προορίζεται για μια συγκεκριμένη αποθήκη (store), και στην συνέχεια περάσει από τη διαδικασία flow approving από τους υπεύθυνους των σχετικών departments, αν τελικά εγκριθεί, τότε θα μπορέσει η παραγγελία να εκτελεστεί. Για την εκτέλεσή της απαιτείται η αποστολή της παραγγελίας είτε με fax, είτε με , είτε με ταχυδρομείο στους προμηθευτές που επιλέγησαν κατά τη διαδικασία του approving. Αυτοί με την σειρά τους θα πρέπει να εκτελέσουν την παραγγελία εντός του διαστήματος που έχει οριστεί στην παραγγελία, οπότε και θα πρέπει να την παραδώσουν στο σημείο που αναφέρεται στην παραγγελία. Μαζί με τα προϊόντα, παραδίδουν και το τιμολόγιο (invoice) το οποίο και καταγράφει τα προϊόντα και τις ποσότητες που παραγγέλνονται. Αν η καταληκτική ημερομηνία παράδοσης περάσει, τότε η επιχείρηση έχει την δυνατότητα να αρνηθεί να δεχτεί την παράδοση της παραγγελίας. Προσφορές προμηθευτών Μια τουριστική μονάδα πρέπει να συνεργάζεται με πολλούς προμηθευτές. Οι προμηθευτές είναι αυτοί που θα φέρουν στην επιχείρηση τα τελικά προϊόντα που θα καταναλωθούν από τους πελάτες της, αλλά και τα ενδίαμεσα προϊόντα / πρώτες ύλες που θα χρησιμοποιηθούν από τα επιμέρους departments για την κατασκευή των τελικών προϊόντων. Λόγω της παγκοσμιοποιημένης οικονομίας, οι προμηθευτές δεν περιορίζονται μόνο σε επιχειρήσεις γεωγραφικά κοντά στην τοποθεσία της επιχείρησης. Επίσης πολλές φορές είναι αδύνατον τοπικές επιχειρήσεις να εξυπηρετήσουν κάποιες ανάγκες της επιχείρησης. Παραδείγματος χάριν, το εστιατόριο με Ασιατική Κουζίνα θα πρέπει να προμηθεύεται τα υλικά του είτε με κάποια εισαγωγική εταιρία, είτε να επικοινωνεί με ασιάτες προμηθευτές οι οποίοι θα αναλαμβάνουν οι ίδιοι να μεταφέρουν τα προϊόντα στην επιχείρηση. Μάλιστα, το γεγονός ότι πολλες επιχείρησεις επιζητούν ποιοτικά υλικά και προϊόντα, απαιτεί την εξέυρεση των καλύτερων προμηθευτών ανεξαρτήτου απόστασης του προμηθευτή και κόστους μεταφοράς. Η επιχείρηση λοιπόν, βρίσκει «επίδοξους» προμηθευτές, επικοινωνεί μαζί τους, και τους ζητάει να τους δώσουν προσφορές για μια σειρά από προϊόντα. Έχοντας τις προσφορές τους, και μαθαίνοντας για την φήμη τους (reputation), είτε μέσω του δικτύου πληροφοριών του supply chain management είτε με άλλους τρόπους, μπορούν αποφασίσουν την στιγμή της παραγγελίας ποιους προμηθευτές θα επιλέξουν με βάση την φήμη τους, τις τιμές των προϊόντων και το χρόνο παράδοσής τους στην επιχείρηση. Ο τελευταίος αυτός παράγοντας 26

33 είναι πολύ σημαντικός στις επιχειρήσεις αυτές αφού ο πελάτης αφενός έχει πληρώσει για τις υπηρεσίες που του έχουν προσφερθεί και αφετέρου ο χρόνος παραμονής του στη τουριστική επιχείρηση είναι περιορισμένος οπότε τα χρονικά περιθώρια στις παραδόσεις των παραγγελιών είναι πάντα στενά. Εν κατακλείδι παρατηρούμε ότι έχουμε ένα trade-off μεταξύ της τιμής της προσφοράς, της φήμης του προμηθευτή και του χρόνου παράδοσης των προϊόντων. Καταγραφή του τιμολογίου στο σύστημα Αφού σταλούν τα προϊόντα και το τιμολόγιο από τους/τον προμηθευτή, θα πρέπει να καταγραφούν τα στοιχεία με τα ονόματα των προϊόντων και τις ποσότητες που ελήφθησαν στο σύστημα, ούτως ώστε να ανανεωθούν οι ποσότητές τους στις αποθήκες που θα μπουν. Πολλές φορές οι προμηθευτές στέλνουν είτε μικρότερες ποσότητες από αυτές που ζητήθηκαν, είτε κάποια προϊόντα δεν τα είχαν διαθέσιμα οπότε δεν εστάλησαν. Πολλές φορές, είτε λόγω παράλειψής τους, είτε λόγω λάθους, οι προμηθευτές στέλνουν τιμολόγια που δε σχετίζονται με κάποια παραγγελία που τους στείλαμε. Και σε αυτή τη περίπτωση, το τιμολόγιο πρέπει να καταγράφεται στο σύστημα, αφού οι ποσότητες των προϊόντων στις αποθήκες πρέπει να ανανεωθούν. Εσωτερικές Μετακινήσεις Προϊόντων Συνήθως τα τουριστικά συγκροτήματα διαθέτουν μια κεντρική αποθήκη στην οποία παραδίδονται τα προϊόντα από τις παραγγελίες. Αυτή η αποθήκη βρίσκεται σε εύκολα προσβάσιμο σημείο από τους μεταφορείς των προϊόντων, και πολλές φορές παραμένει ανοιχτή 24 ώρες την ημέρα μιας και πρέπει να εξυπηρετεί τις ανάγκες της μονάδας απρόσκοπτα. Όταν λοιπόν φτάσει μια παραγγελία στην επιχείρηση αυτή παραδίδεται στη κεντρική αποθήκη. Κατόπιν, και ανάλογα με τις ανάγκες των αποθηκών στα επιμέρους departments, γίνονται εσωτερικές μετακινήσεις (requisitions) από την κεντρική αποθήκη στις υπόλοιπες. Αυτές οι μετακινήσεις θα πρέπει να καταγράφονται στο σύστημα ούτως ώστε να ανανεώνονται οι ποσότητες των προϊόντων στις αποθήκες Διαχείριση των αποθεματικών των αποθηκών Σημαντικό ρόλο στην διαχείριση εφοδιαστικής αλυσίδας των τουριστικών μονάδων παίζει η διαχείριση των αποθεματικών (inventory) των αποθηκών (stores). Το γεγονός ότι οι ποσότητες και ο αριθμός των προϊόντων που διακινούνται σε μια μονάδα είναι μεγάλες και λόγω της ιδιαιτερότητας ότι τα εστιατόρια και τα café-bars χρησιμοποιούν τα προϊόντα όχι απαραίτητα σαν τελικά προϊόντα αλλά και σαν πρώτες ύλες για να κατασκευάσουν τα τελικά προϊόντα, αυτό έχει σαν αποτέλεσμα να μεταφέρονται μικροποσότητες προϊόντων που πολλές φορές δεν καταγράφονται στο σύστημα, ή να είναι μέχρι και αδύνατη η καταμέτρηση των ποσοτήτων που φτάνουν στον τελικό καταναλωτή. Όλα τα παραπάνω αποδεικνύουν και το σπουδαίο ρόλο που παίζει η διαχείριση των αποθεματικών των των επιχειρήσεων. Στο παρακάτω σχήμα φαίνονται οι κύριο λόγοι για τους οποίους είναι σημαντικό το να κρατάμε inventories στις επιχειρήσεις: 27

34 Figure 6: Σημασία του να κρατάμε inventories στις επιχειρήσεις μας Κάθε ένα χρονικό διάστημα, συνήθως κάθε τέλος του μήνα, γίνεται η καταγραφή των προϊόντων στις αποθήκες και συγκρίνονται με τις ποσότητες που είναι αποθηκευμένες στο σύστημα διαχείρισης της εφοδιαστικής αλυσίδας. Έτσι υπολογίζονται οι πραγματικές ποσότητες στις αποθήκες, πραγματοποιούνται τα κατάλληλα transactions με σκοπό να «συγχρονιστούν» οι ποσότητες του ηλεκτρονικού συστήματος με τις πραγματικές ποσότητες. Ελέγχοντας τα αποθέματα, είμαστε σε θέση να γνωρίζουμε τις ποσότητες κάθε προϊόντος σε κάθε αποθήκη, οπότε και να προχωρούμε στις απαραίτητες παραγγελίες. 28

35 Κεφάλαιο 4 4 Ανάλυση και παρουσίαση μηχανών ροών (workflow engines) Στο παρόν κεφάλαιο θα παρουσιάσουμε αναλυτικά τι είναι ροή εργασιών (workflow), ο σκοπός των μηχανών ροών (workflow engines) καθώς και θα παρουσιάσουμε τις πιο σημανιτκές από αυτές 4.1 Τι είναι ροή εργασιών (workflow) Με τον όρο ροή (workflow) εννοούμε το σύνολο των tasks, των βημάτων διαδικασίας (procedural steps), των εργαλείων (tools), καθώς και των ανθρώπων που λαμβάνουν μέρος και των πληροφοριών που ανταλλάσουν μεταξύ τους μέσα σε μια business διαδικασία (business process). Οι εταιρίες συνήθως επιδιώκουν να ενσωματώνουν αυτόματες ροές διαδικασιών ούτως ώστε να κάνουν τις διαδικασίες που ακολουθούνται πιο consistent, που θα αποτρέπουν «λάθη» χρηστών κατά την διαδικασία κλπ. 4.2 Τι είναι μια μηχανή ροής εργασιών (workflow engine) Η μηχανή ροής (workflow engine) είναι το πιο βασικό συστατικό μιας αυτοματοποιημένης ροής. Η workflow engine είναι αυτή που ξέρει όλες τις διαδικασίες (procedures), και τα βήματα (steps) και τους κανόνες (rules) σε κάθε διαδικασία. Η workflow engine είναι αυτή που αποφασίζει αν το current process ικανοποιεί όλα εκείνα τα rules ώστε να προχωρήσει στο επόμενο step. 29

36 Οι λειτουργίες μιας workflow engine συνοψίζονται παρακάτω: Επιβεβαίωση (verification) του current status. Δηλαδή ελέγχει αν το current command είναι valid στο να εκτελέσει το task Έλεγχος των χρηστών ως προς το security (authorization). Δηλαδή ελέγχει αν ο current χρήστης έχει την δυνατότητα (τα credentials), ήτοι, αν είναι authorized να εκτελέσει το task Εκτέλεση του task. Αν ολολκηρωθεί χωρίς λάθος, επιστρέφει success, αλλιώς αναφέρει το error που προέκυψε και κάνει roll back όποιες αλλαγές έχου γίνει 4.3 Τι είναι η αναπαράσταση BPMN BPMN (Business Process Model and Notation) είναι ένας τρόπος γραφικής αναπαράστασης που χρησιμποιείται για να περιγράφει business processes μέσα σε ένα μοντέλο business process. Βασικός σκοπός του BPMN είναι να παρέχει έναν standard τρόπο αναπαράστασης των business διαδικασιών ο οποίος θα είναι κατανοητός από όλους τους partners μιας business διαδικασίας. Τέτοιοι partners είναι οι business αναλυτές που δημιουργούν τα processes, οι software developers που είναι υπεύθυνοι για την υλοποίηση των processes καθώς και οι managers που ευθύνη τους είναι ο συνολικός έλεγχος και διαχείριση του project. Ουσιαστικά, η BPMN αποτελεί μια κοινή γλώσσα μεταξύ των διαφόρων partners που συμμετέχουν στην ανάπτυξη ενός project. Τα βασικά στοιχεία ενός BMPN μοντέλου είναι ένα σύνολο από διαγράμματα (diagrams) που κατασκευάζονται από ένα σύνολο από γραφικά στοιχεία (graphical elements). Βασικές κατηγορίες των elements είναι Flow Objects (events, activities, gateways) Συνδεδεμένα Objects (sequence flow, message flow, association) Swim Lanes (pool, lane) Artifacts (data objects, group, assocation) Για την δημιουργία ενός πλήρως λειτουργικού business process χρειάζονται πέντε βήματα, τα οποία συνοψίζονται παρακάτω: Σχεδιασμός: Περιλαμβάνει τις ενέργειες που ορίζουν το business process όπως: καταγραφή των high-level ενεργειών, ανάγκη για πιθανές οργανωτικές αλλαγές, καθορισμός service level συμφωνιών, καθορισμός process λεπτομερειών κλπ Μοντελοποίηση: Σε αυτό το βήμα το business process είναι πλήρως καθορισμένο. Το process flow γίνεται formalized, χρησιμοποιώντας πρόσθετα variables που μπορούν να εκτελούν activities Εκτέλεση: Το μοντελοποιημένο business process υλοποιείται με ένα business process application, χρησιμοποιώντας ένα BPM system, 30

37 όπως αυτά που θα αναφέρουμε παρακάτω. Επίσης εδώ μπορούμε να προσθέσουμε τεχνικές λεπτομέρειες πριν εκτελέσουμε το business process Έλεγχος (monitoring): Τα processes ελέγχονται όσον αφορά τους στόχους που έχουμε θέσει. Βελτιστοποίηση: Με βάση τις αλλαγές στις απαιτήσεις και τα ελεγχόμενα αποτελέσματα από το βήμα του monitoring, θα πρέπει τελικά ίσως να χρειαστεί να βελτιστοποιήσουμε τα business processes, οπότε και αυτά επιστρέφουν στη φάση της σχεδίασης οπότε και ολοκληρώνεται το cycle. Figure 7: Τα 5 βήματα στην διαχείριση του Business Process Η εξέλιξη του BPMN είναι το BPMN 2.0. Σκοπός και όραμα της 2 ης έκδοσης είναι η δημιουργία ενός και μόνου specification που θα ορίζει το notation, τα metadata, καθώς και το format που θα ανταλλάσονται οι πληροφορίες στις BPMN διαδικασίες. Βασικά χαρακτηριστικά του είναι: Η αναπαράσταση BPMN να «συγχρονιστεί» με την αναπαράσταση BPDM (Business Process Definition Metadata) με σκοπό να δημιουργηθεί μια ενοποιημένη γλώσσα Σημασιολογική ενσωμάτωση (semantic integrity) που θα επιτρέπει την ανταλλαγή business process μοντέλων και των layouts διαγραμμάτων μεταξύ διαφορετικών modeling εργαλείων Δυνατότητα model transofrmation μέσω serialization του BPMN και XML schemas που θα επιτρέπουν να δημιουργήσουμε extend BPMN models 31

38 Στην παρακάτω ενότητα θα κάνουμε μια παρουσίαση existing μηχανών ροών (workflow engines) που χρησιμοποιούνται στις τεχνολογίες λογισμικού. Θα εστιάσουμε περισσότερο σε open source τεχνολογίες οι οποίες ωστόσο ατποτελούν και τις πιο δημοφιλείς workflow engines 4.4 Υπάρχοντα Workflow Engines jbpm Open Source BPM Το jbpm είναι ένα open source workflow engine γραμμένο στην γλώσσα προγραμματισμού Java, το οποίο μπορεί να εκτελεί business processes που περιγράφονται σε αναπαράσταση BPMN 2.0. Το jbpm αποτελεί μια γέφυρα, όσο αναφορά τη γλώσσα επικοινωνίας, μεταξύ των business αναλυτών και των προγραμματιστών. Ενώ παλιότερες BPM engines προορίζονταν περισσότερο για τους business analysts και όχι για τους developers, το jbpm ήρθε να καλύψει το κενό στην επικοινωνία αυτή προσφέροντας process management χαρακτηριστικά που γίνονται κατανοητά τόσο από τους business analysts, όσο και από τους software developers. Στον πυρήνα του jbpm βρίσκεται η light-weight, επεκτάσιμη workflow engine η οποία εκτελεί τα business processes χρησιμοποιώντας το BPMN 2.0 specification. Βασικά χαρακτηριστικά του jbpm είναι : Διαθέτει eclipse-based και web-based editor που υποστηρίζουν τη δημιουργία business processes με τη βοήθεια γράφων Διαχείριση data base persistence και transactions βασισμένα στο JPA specification και το JTA interface αντίστοιχα Διαχειριστική κονσόλα που υποστηρίζει process instance management, task lists καθώς και reporting History Logging για το monitoring / quering και το analyzing Εύκολη ενσωμάτωση με άλλα frameworks όπως Spring, OSGi κλπ Βασικά χαρακτηριστικά του jbpm core engine είναι : Είναι solid και stable engine που εκτελεί τα process instances Έχει native υποστήριξη στο latest BPMN 2.0 specification Εστιάζει στην απόδοση (performance) και τη σταθερότητα (stability) Είναι αρκετά ελαφρύ μιας και δεν απαιτεί κάποιον web container για να τρέξει, ενώ μπορεί να τρέξει γενικά σε οποιαδήποτε συσκευή που διαθέτει JRE (Java Runtime Environment) Pluggable persistence υποστήριξη διαθέτοντας δική του default JPA υλοποίηση Pluggable transaction support διαθέτοντας δική του default JTA υλοποίηση 32

39 Είναι υλοποιημένο σαν generic process engine, ώστε να είναι επεκτάσιμο για να υποστηρίζειδιαφορετικές process languages Δυνατότητα migration του process instance σε πχ μια νεότερη version του process definition Υποστηρίζει listeners που μπορούν να «υπακούουν» σε διάφορα events Το jbpm υποστηρίζει adaptive και δυναμικά processes τα οποία απαιτούν πολύπλοκη μοντελοποίηση που είναι αρκετά δύσκολο να περιγραφούν με άλλους τρόπους. Επίσης, έχει την δυνατότητα να μοντελοποιεί πολύπλοκη business λογική σαν ένα συνδιασμό από business processes με business rules και πολύπλοκο event processing Apache ODE Η μηχανή Apache ODE (Apache Orchestration Director Engine) μπορεί να εκτελεί ένα ή περισσότερα business processes τα οποία εκφράζονται στη γλώσσα WS-BPEL (Web Services Process Execution Language). Κύρια λειτουργία του είναι να επικοινωνεί με ένα ή περισσότερα web services και να ανταλλάσει με αυτά μηνύματα, να διαχειρίζεται δεδομένα και exceptions όπως αυτά ορίζονται σε ένα process. Η μηχανή αυτή έχει την δυνατότητα να εκτελεί long και short processes και να συγχρονίζει όλα εκείνα τα services που χρειάζεται το application. Βασικά χαρακτηριστικά: Υποστήριξη στο WS-BPEL 2.0 OASIS standard Υποστηρίζει δυο communication layers: ένα βασισμένο στο Axis2 (Web Services http transport) και άλλο ένα βασισμένο στο JBI (Java Business Integration) standard (ανταλλαγή JBI μηνυμάτων) Υποστηρίζει WSDL (Web service description language) binding, καθώς και REST-style web services Δυνατότητα να «μαπάρουμε» process variables εξωτερικά σε βάσεις δεδομένων Hot-deployment των processes, δηλαδή έχουμε τη δυνατότητα να κάνουμε αλλαγές στα processes που τρέχουν χωρίς να χρειάζεται να κατεβάσουμε το running application Η γλώσσα περιγραφής WS-BPELβασίζεται στη γλώσσα XML και περιλαμβάνει μια σειρά από τρόπους με τους οποίους μπορούν να εκφραστούν τα business processes. Αυτοί οι τρόποι περιλαμβάνουν μεταξύ άλλων conditional clauses, repeating loops, ανταλλαγή μηνυμάτων, κλήσεις σε web services κλπ. Σαν γλώσσα επικοινωνίας με το web service χρησιμοποιείται η WSDL (Web Service Description Language) Bonita BPM Engine Πρόκειται για component της ομώνυμης open source BPM και workflow σουίτας Bonito Open Solution. Η σουίτα, εκτός του engine, αποτελείται 33

40 επίσης από το Bonita Studio το οποίο επιτρέπει τη γραφική αναπαράσταση των business processes ακολουθώντας το BPMN standard, και το Bonita User Experience το οποίο είναι ένα portal που επιτρέπει στους end users να χειρίζονται τα tasks στα οποία εμπλέκονται με web-styled interface. Η σουίτα αυτή προσφέρει ένα σύνολο χαρακτηριστικών σε κάθε βήμα ενός business process. Συνοπτικά, για κάθε βήμα, τα χαρακτηριστικά του είναι : Φάση σχεδιασμού: Προσφέρει κεντρικό repository για να οργανώνεις και να σώζεις τα business processes, δυνατότητα exporting των process designs σε διάφορα formats όπως pdf, jpeg κλπ, δυνατότητα εισαγωγής third party modules από άλλα BPM εργαλεία, διαμοιρασμός του process μοντέλου μεταξύ των processes Ανάπτυξη: Advanced διαχείριση δεδομένων, builtin connectors, δυνατότητα παραγωγής πλήρως λειτουργικών process-based applications σε ελάχιστα βήματα Εκτέλεση: Event Processing, migration εργαλεία, multi-tenant αρχιτεκτονική, επεκτάσιμη engine, multi-process execution, σύγχρονη και ασύγχρονη εκτέλεση Όσον αφορά το χρήστη: πολυγλωσσική υποστήριξη, εύκολο integration, innovative user interface, δυνατότητα remote engine Monitoring: Διαχείριση χρηστών και δικαιωμάτων, διαχείριση process lifecycle, διαχείριση των δεδομένων Activiti Είναι ένα open source workflow engine γραμμένο σε Java και μπορεί να εκτελεί business processes που περιγράφονται με το standard BPMN 2.0. Θεωρείται το καλύτερο BPM project και γιαυτό το λόγο θα κάνουμε μια πιο εκτενή αναφορά σε αυτό το engine. Το project αυτό ξεκίνησε το 2010 από δυο ανθρώπους που δούλευαν μέχρι τότε στο jbpm. Ένας ήταν ο ιδρυτής του, και ο δεύτερος ένας core developer. Το Activiti είναι ένα BPMN 2.0 process-engine framework που υλοποιεί το BPMN 2.0 specification. Έχει τη δυνατότητα να κάνει deploy process definitions, να ξεκινά νέα process instances, να εκτελεί user tasks, καθώς και πολλά άλλα BPMN 2.0 functions. Ένα BPMN 2.0 process definition αποτελείται από στοιχεία όπως events, tasks, και gateways τα οποία συνδέονται μαζί τους με sequence flows. Όταν ένα τέτοιο process definition γίνεται deployed στο process engine και δημιουργείται ένα νέο process instance, τότε τα BPMN 2.0 στοιχεία εκτελούνται ένα-προς-ένα. Αυτό το process execeution μοιάζει με ένα state machine, όπου υπάρχει ένα active state, και ανάλογα με τις συνθήκες (conditions), το state προχωρά σε κάποιο άλλο state μέσω transitions. 34

41 Στο Activiti, τα περισσότερα BPMN 2.0 elements υλοποιούνται σαν states. Συνδέονται μεταξύ τους με εισερχόμενα και εξερχόμενα transitions, τα οποία λέγονται sequence flows. Κάθε τέτοιο state μπορεί να έχει πάνω του ένα κομμάτι από logic το οποίο θα εκτελεστεί όταν το process instance φτάνει σε αυτό το state. Συγκριτικά με άλλα open source process engines, το Activiti μοιράζεται πολλά πράγματα με το jbpm μιας και όπως είπαμε πιο πριν δημιουργοί του Activiti είναι δυο πρώην core developers του jbpm. Όπως το jbpm, έτσι και το Activiti είναι developer-oriented process engine frameworks χτισμένα γύρω από ένα state machine. Μεταξύ των διαφορών τους είναι οι εξής: το Activiti έχει native support στο Spring Framework σε αντίθεση με το jbpm. Αυτό σημαίνει πως στο Activiti είναι πολύ εύκολο να χρησιμοποιούμε στα processes Spring beans, όπως επίσης να χρησιμοποίησουμε τη δύναμη του Spring σχετικά με το persistence (JPA) και το transaction management (JTA). Το jbpm έχει native support με το Drools σε αντίθεση με το Activiti. Όσον αφορά το community, το Activiti αποτελείται από εργαζομένους της Alfresco καθώς και έχει βοήθεια και από την SpringSource και την FuseSource. Αντίθετα, το jbpm βασίζεται στην ομάδα του JBoss. Σχετικά με το άλλο δημοφιλές process engine Bonita, έχουν τις εξής διαφορές μεταξύ τους: το Activiti είναι developer-focused framework και παρέχει ένα πολύ εύχρηστο Java API για την επικοινωνία με το Activiti engine. Από την πλευρά του, το Bonita παρέχει μια tool-based λύση όπου μπορούμε πολύ εύκολα να φτιάχνουμε process definitions και forms με dragand-drop προσέγγιση συνέπεια της παραπάνω διαφοράς, είναι ότι ενώ στο Activiti έχουμε απόλυτο έλεγχο για κάθε γραμμή κώδικα που γράφουμε, αντίθετα στο Bonita λόγω της drag-and-drop προσέγγισης φτιάχνεται κώδικας αυτόματα χωρίς δηλαδή να έχουμε απόλυτο έλεγχο του κώδικά μας Στο Bonita framework, σε αντίθεση με το Activiti, υπάρχουν πολύ μεγάλες δυνατότητες connectivity προς third party προϊόντα όπως πχ προς το SAP ή προς ένα συγκεκριμένο database table μιας βάσης. 35

42 Κεφάλαιο 5 5 Υλοποίηση Εφαρμογής Διαχείρισης Workflow Στο παρόν κεφάλαιο παρουσιάζεται η εφαρμογή που υλοποιήθηκε στα πλαίσια της διπλωματικής. 5.1 Σύντομη παρουσίαση εφαρμογής Στην παρούσα διπλωματική εργασία υλοποιήσαμε ένα βασικό workflow με το οποίο μπορούμε να δημιουργήσουμε νέες παραγγελίες για προϊόντα και να τα αναθέσουμε σε προμηθευτές. Αφού δημιουργηθεί η παραγγελία, στη συνέχεια περνάει από μια workflow διαδικασία όπου οι υπεύθυνοι και προιστάμενοι της τουριστικής επιχείρησης θα πρέπει να ελέγξουν την παραγγελία και να εκτελέσουν ένα σύνολο από actions πάνω σε αυτό. Κάθε υπάλληλος είναι υπεύθυνος για ένα βήμα της διαδικασίας του workflow. Ένα workflow αποτελείται από ένα σύνολο από workflow steps. Σε κάθε ένα από αυτά τα steps αντιστοιχούν ένα σύνολο από ενέργειες που μπορεί να εκτελέσει ο υπεύθυνος πάνω στα προϊόντα που βρίσκονται στο συγκεκριμένο flow step στο workflow στο οποίο ανήκουν. Κάθε ένα προϊόν ακολουθεί ένα workflow από τα steps του οποίου θα περάσει κατά την διαδικασία approving του προϊόντος προκειμένου να ολοκληρωθεί η παραγγελία. Στην υλοποίηση της διπλωματικής θεωρήσαμε πως τα προϊόντα μιας κατηγορίας έχουν ένα συγκεκριμένο workflow. Παρακάτω θα παρουσιάσουμε όλες τις οντότητες που συμμετέχουν στην εφαρμογή που υλοποιήσαμε 5.2 Πλεονεκτήματα των web-based εφαρμογών έναντι των desktop εφαρμογών Παραδοσιακά, οι εφαρμογές που υλοποιούν εφοδιαστικές αλυσίδες επιχειρήσεων είναι desktop εφαρμογές που συνήθως εγκαθίστονται σε έναν 36

43 υπολογιστή ή στην καλύτερη περίπτωση σε περισσότερους από έναν υπολογιστές, συνδεδεμένους σε ένα κοινό τοπικό δίκτυο όπου και μοιράζονται και «βλέπουν» την κοινή βάση δεδομένων. Τα desktop applications έχουν γίνει αρκετά ώριμα όλα αυτά τα χρόνια και παρέχουν μεγάλες δυνατότητες στους χρήστες των εφαρμογών. Ωστόσο, παρουσιάζουν μια σειρά από μειονεκτήματα που σχετίζονται με τη φύση τους σαν desktop applications: Απαιτείται η εγκατάσταση της εφαρμογής σε κάθε υπολογιστή που επιθυμούμε να χρησιμοποιεί την εφαρμογή. Αυτό απαιτεί πολύ περισσότερο χρόνο αφού χρειάζεται πάντα κάποιος ειδικός να «στήνει» σωστά την εφαρμογή στον υπολογιστή. Και αυτή η διαδικασία πρέπει να επαναληφθεί για όλους τους υπολογιστές Το γεγονός ότι η εφαρμογή είναι εγκατεστημένη τοπικά σε κάθε υπολογιστή συνεπάγεται ότι σε περίπτωση που θέλουμε να κάνουμε κάποιο update στην εφαρμογή, θα πρέπει η διαδικασία αυτή να γίνει για όλους τους υπολογιστές. Για την χρήση της εφαρμογής απαιτείται η φυσική παρουσία του υπολογιστή που είναι εγκατεστημένη. Αυτό σημαίνει ότι πρόσβαση στην εφαρμογή μπορεί να γίνει μόνο από το συγκεκριμένο υπολογιστή, άρα μόνο στον συγκεκριμένο χώρο. Σε περίπτωση που χρειαστεί πχ ο manager της επιχείρησης να χρησιμοποιήσει την εφαρμογή σε ένα ταξίδι, θα πρέπει πχ να «κουβαλήσει» μαζί του το σταθερό του υπολογιστή, πράγμα μη πρακτικό. Πολλές φορές, τα desktop applications, δε γίνεται να εγκατασταθούν στον υπολογιστή. Παραδείγματος χάρη, αν ο υπολογιστής «τρέχει» λειτουργικό σύστημα linux, και το πρόγραμμα είναι κατασκευασμένο για υπολογιστές που τρέχουν λειτουργικό σύστημα Windows, τότε το application έίναι αδύνατον να εγκατσταθεί. Έτσι γεννιούνται προβλήματα compatibility μεταξύ υπολογιστών και εφαρμογών. Για την τοπική εγκατάσταση του προγράμματος, απαιτείται ένας σχετικά δυνατός υπολογιστής που να έχει αρκετό χώρο στον σκληρό του δίσκο, αρκετή μνήμη RAM, και αρκετή επεξεργαστική ισχύ, ικανή να τρέχει το πρόγραμμα που επιθυμούμε. Δεδομένου ότι τέτοιες εφαρμογές επιχειρήσεων είναι αρκετά «βαριές» για το σύστημα, κάνουν την ανάγκη για τα παραπάνω πολύ σημαντική. Το γεγονός ότι η εφαρμογή έχει εγκασταθεί στον υπολογιστή κάνει την εφαρμογή και την βάση δεδομένων ευάλωτη στους ιούς υπολογιστών. Αντίθετα με τις desktop εφαρμογές, οι web based εφαρμογές δεν έχουν τα παραπάνω μειονεκτήματα. Παρακάτω συνοψίζονται τα πλεονεκτήματα των web-based εφαρμογών: 37

44 Δεν απαιτείται η εγκατάσταση της εφαρμογής στον κάθε υπολογιστή. Αντίθετα η εφαρμογή φιλοξενείται σε έναν server, ο οποίος επιτρέπει να «βλέπουν» την εφαρμογή άλλοι υπολογιστές που βρίσκονται στο δίκτυο, μέσω ενός browser. Το μόνο που απαιτείται τελικά για τους client υπολγιστές είναι ένας browser και δίκτυο Η εγκατάσταση της εφαρμογής σε έναν και μόνο υπολογιστή (τον server) κάνει πολύ εύκολη την αναβάθμιση (update) της εφαρμογής. Η εφαρμογή είναι προσβάσιμη από οπουδήποτε στο διαδίκτυο Τα δεδομένα αποθηκεύονται remotely χωρίς κανένας client να έχει πρόσβαση στην βάση δεδομένων. Αυτό επιτρέπει μεγαλύτερη ασφάλεια στα δεδομένα της βάσης Το γεγονός ότι το μόνο που χρειαζόμαστε για να χρησιμοποιήσουμε την εφαρμογή είναι έναν browser επιτρέπει μέγιστο compatibility μεταξύ των διαφορετικών τεχνολογιών. Πχ, η εφαρμογή μπορεί να είναι κατασκευασμένη με.νετ τεχνολογίες και ο client να «τρέχει» λειτουργικό σύστημα Linux Οι clients μπορούν να είναι πραγματικά thin, χωρίς ανάγκη για μεγάλη επεξεργαστική ισχύ ή μνήμη RAM. Το μόνο που χρειάζεται είναι να τρέχουν έναν browser Παρέχεται μεγαλύτερη ασφάλεια στην εφαρμογή μιας και οι clients τρέχουν την εφαρμογή μέσω από τον browser που στην ουσία λειτουργεί σαν sandbox για την εφαρμογή Αν θέλαμε να μιλήσουμε για μειονεκτήματα των web based εφαρμογών θα λέγαμε ότι το user experience δεν είναι τόσο ώριμο όσο των desktop applications (αν και τα τελευταία χρόνια οι web based εφαρμογές έχουν κάνει τρομερά άλματα βλ. Rich Internet Applications), ότι απαιτούν πρόσβαση σε δίκτυο ή το internet, και ότι το γεγονός ότι η εφαρμογή φιλοξενείται σε έναν απομακρυσμένο server, τον κάνει στόχο για επίδοξους hackers κλπ. Ωστόσο, αυτά τα μειονεκτήματα είναι ελάχιστα σημαντικά μπροστά στα πλεονεκτήματα που προσφέρει. 5.3 Αναλυτική παρουσίαση εφαρμογής Security based application Η εφαρμογή για την διαχείριση εφοδιαστικής αλυσίδας που υλοποιήσαμε προορίζεται να χρησιμοποιείται από διαφορετικούς χρήστες, όπου ο καθένας θα μπορεί να βλέπει διαφορετικές οθόνες και να εκτελεί διαφορετικά actions ανάλογα με τον ρόλο στον οποίο ανήκει. Σαν security framework χρησιμοποιήσαμε το plugin του Grails Framework που δουλεύει πάνω στο 38

45 Spring Security Framework (βλέπε πάραρτημα για αναλυτική παρουσίαση του Spring Security Plugin) Γενικά, το Spring Security χρησιμποιεί ένα Authentication object που αποφασίζει εάν ο current user έχει το δικαίωμα (rights) να εκτελέσει την secured action, όπως για παράδειγμα να έχει πρόσβαση σε ένα URL, να χειριστεί ένα secured domain object, ή να μπορεί να τρέξει μια scured μέθοδο. Το object αυτό δημιουργείται κατά το login του χρήστη και υλοποιεί το Interface: org.springframework.security.core.authentication Figure 8: Ανάλογα με το requested URL και τα permissions ο χρήστης βλέπει την αντίστοιχη web page Η εφαρμογή που υλοποιήθηκε είναι προσβάσιμη μόνο για εγκεγραμμένους χρήστες στο σύστημα. Αυτό σημαίνει πως όλες οι οθόνες της εφαρμογής απαιτούν user authentication. Για το βασικό authentication της εφαρμογής χρειαζόμαστε δυο entities: το entity User και το entity Role. Το entity User αναπαριστά τους πραγματικούς χρήστες του συστήματος. Βασικά properties του entity αυτού είναι: username: String property password: String property που αποθηκεύεται encrypted στην βάση enabled: αν ο user είναι ενεργοποιημένος ή όχι accountexpired: αν ο λογαριασμός του user έχει λήξει accountlocked: αν ο λογαριασμός του user έχει κλειδωθεί passwordexpired: αν ο κωδικός του user έχει λήξει 39

46 Το entity Role αναπαριστά το authority στοιχείο στο security της εφαρμογής. Βασικό του property είναι το όνομα του authority που αναπαριστά τον όνομα του ρόλου. Αυτό το entity χρησιμοποιείται για να περιορίζει τα accessible URLs προς τους χρήστες οι οποίοι έχουν ή όχι τα απαιτούμενα access rights. Ένας χρήστης μπορεί να έχει έναν ή περισσότερους ρόλους με τους οποίους μπορεί να εκτελεί διαφορετικά actions To plugin του Grails για το Spring Security έρχεται για να απλοποιήσει την κατασκευή της security υποδομής της εφαρμογής μας. Εκτελώντας την εντολή: grails s2-quickstart gr.ceid User Role το Grails θα φτιάξει αυτόματα τα δυο entities με τα properties που παρουσίαστηκαν παραπάνω. Επίσης by default, θα δημιουργήσει μια many-tomany relationship μεταξύ του entity Role και User με τη βοήθεια του entity UserRole το οποίο αποτελείται από δυο properties την κλάση User: που αντιστοιχεί στον σχετιζόμενο user της εγγραφής αυτής την κλάση Role: που αντιστοιχεί στον συσχετιζόμενο role της εγγραφής αυτής Το Grails επιτρέπει 3 διαφορετικούς τρόπους για το mapping security ρόλων μεταξύ των χρηστών: Χρήση secured annotations στους web controllers που καθορίζουν ποιοι ρόλοι απαιτούνται για να εκτελεστεί το εκάστοτε action του controller. Για παράδειγμα το παρακάτω κομμάτι def index = { render 'you have ROLE_ADMIN' χρησιμοποιεί annotations για να δηλώσει ότι την την συγκεκριμένη action έχει πρόσβαση μόνο χρήστες που είναι ROLE_ADMINs, οπότε οι υπόλοιποι θα ενημερωθούν ότι δεν έχουν τα κατάλληλα διακιώματα Χρήση ενός απλού Map στο αρχείο Config.groovy. Αν επιλέξουμε αυτή την λύση θα πρέπει στο Config.groovy να προσθέσουμε το securityconfigtype="intercepturlmap" Requestmap instances που αποθηκεύονται στην βάση δεδομένων. Με αυτή τη προσέγγιση χρησιμοποιούμε το domain class RequestMap το οποίο έχει σαν properties το url και το configattribute που θέλουμε να κάνουμε mapping. Ο τρόπος αυτός μας επιτρέπει να 40

47 διαχειριζόμαστε σε χρόνο runtime δυναμικά τα permissions των χρηστών σε σχέση με τα visible urls. Στην υλοποίηση της διπλωματικής επιλέξαμε την 2 η προσέγγιση, οπότε και προσθέσαμε στο αρχείο Config.groovy την γραμμή που περιγράφηκε πιο πάνω. Επίσης προσθέτουμε το map object με τις αντιστοιχήσεις μεταξύ των urls και τον τύπο της αυθεντικοποίησης για τον καθένα grails.plugins.springsecurity.intercepturlmap = [ '/workflowstep/**':['role_admin', 'IS_AUTHENTICATED_FULLY'], '/flow/**': ['ROLE_ADMIN','IS_AUTHENTICATED_FULLY'], '/user/**': ['ROLE_ADMIN', 'IS_AUTHENTICATED_FULLY'], '/role/**': ['ROLE_ADMIN', 'IS_AUTHENTICATED_FULLY'], '/login/**': ['IS_AUTHENTICATED_ANONYMOUSLY'], '/logout/**': ['IS_AUTHENTICATED_ANONYMOUSLY'], '/**': ['IS_AUTHENTICATED_FULLY'] ] Παρατηρούμε ότι όλα τα urls (με εξαίρεση τα logout και login) είναι προσπελάσιμα μόνο αν είναι authenticated ο user. Επιπλέον, παρατηρούμε ότι οι χρήστες με ρόλο ROLE_ADMIN σε αντίθεση με τους υπόλοιπους χρήστες έχουν προόσβαση στα urls που ξεκινούν με /workflowstep, /flow, /user και /role. Παρακάτω φαίνεται η αρχική οθόνη όταν καλούμε το αρχικό url του application. Μας ζητάει, όπως βλέπουμε, να βάλουμε credentials για να συνεχίσουμε στις εσωτερικές οθόνες της εφαρμογής Figure 9: Η αρχική Login σελίδα της εφαρμογής 41

48 Αφού ο χρήστης εισάγει το username και το password του και ανάλογα με τα permissions που του έχουν οριστεί, θα δει διαφερτικά menu links. Πχ ο χρήστης user1 του έχει ανατεθεί ο ρόλος admin, που σημαίνει είναι ο admin της εφαρμογής, άρα μπορεί να εκτελέσει καθήκοντα administrator και βέβαια έχει δικαίωμα να βλέπει όλα τα menu links και τις οθόνες της εφαρμογής. Αντίστοιχα, υπάρχουν και άλλοι ρόλοι οι οποίοι βλέπουν ο καθένας τους διαφορετικές οθόνες. Στα πλαίσια της διπλωματικής, ο ρόλος admin έχει έλεγχο όλης της εφαρμογής, ενώ όλοι οι υπόλοιποι ρόλοι δεν μπορούν να δουν κάποια menu links που τα επιβλέπει αποκλειστικά ο admin role. Για παράδειγμα, ο user1 έχοντας admin role permissions, κάνοντας login βλέπει την εξής οθόνη: Figure 10: Main Menu του χρήστη user1 με δικαιώματα admin Αντίστοιχα, οι υπόλοιποι demo users της εφαρμογής ανήκουν σε άλλους ρόλους και δεν μπορούν να βλέπουν τα admin links, πχ τα workflow steps κλπ Figure 11: Main Menu των υπόλοιπων non-admin ρόλων της εφαρμογής Διαχείριση Χρηστών και Ρόλων στην εφαρμογή Το πρώτο menu link που θα παρουσιάσουμε έχει να κάνει με τους χρήστες (users) και τους ρόλους (roles) της εφαρμογής. Για την διαχείριση των users πατάμε στο menu link Users, οπότε και βλεπουμε όλους τους users της εφαρμογής: 42

49 Figure 12: Οι χρήστες (users) του συστήματος Βλέπουμε λοιπόν τον πίνακα με τους current users του συστήματος, και τα properties του entity Users: το first name, το last name και το status του user. Οι υπόλοιπες στήλες του πίνακα αντιστοιχούν σε διάφορα actions πάνω στους users. Το πρώτο button επιτρέπει το edit του επιλεγμένου χρήστη, ενώ με το διπλανό button μπορούμε να σβήσουμε τον επιλεγμένο χρήστη. Επίσης, στο κάτω μέρος του πίνακα υπάρχει ένα κουμπάκι με το οποίο μορούμε να δημιουργήσουμε νέο χρήστη: Figure 13: Οθόνη για τη δημιουργία ενός νέου χρήστη Τα τρία παραπάνω κουμπιά (create, edit και delete) εμφανίζονται σε όλες τις οντότητες του application που υλοποιήσαμε, και μας επιτρέπουν να εκτελούμε λειτουργίες CRUD στην εφαρμογή μας. Για ευνόητους λόγους δε θα παρουσιάσουμε τις CRUD οθόνες των υπόλοιπων entities, αλλά θα επικεντρωθούμε σε άλλες λειτουργίες της εφαρμογής. Το επόμενο entity που θα παρουσιάσουμε είναι το entity Role, το οποίο, ορίζει τους ρόλους οι οποίοι μπορούν να ανατίθονται στους χρήστες. Για να δούμε τους ρόλους της εφαρμογής, πατάμε το menu link Roles: 43

50 Figure 14: Η οθόνη που απεικονίζει όλα τα security roles της εφαρμογής και τα actions πάνω σε κάθε ένα Στον πίνακα με τους ρόλους εκτός από τα CRUD buttons, υπάρχει και το button View Workflow Steps. Πατώντας το, ανοίγει ένα popup παράθυρο με τα workflow steps που έχει την δυνατότητα να εκτελέσουν οι χρήστες που έχουν το συγκεριμένο ρόλο. Παραδείγματος χάρη, ο admin user User1 μπορεί να εκτελέσει όλα τα workflow steps της εφαρμογής, γιαυτό και όλα τα workflow steps είναι επιλεγμένα, όπως φαίνεται και παρακάτω: Figure 15: Τα assigned workflow steps του χρήση user1 Παρατηρούμε ότι ο user1 μπορεί να εκτελέσει τα actions για όλα τα workflow steps, ενώ αν θέλουμε μπορούμε να κάνουμε edit τα assigned workflow steps. Όπως είπαμε και νωρίτερα, σε κάθε χρήστη μπορούν να ανατεθούν ένας ή περισσότεροι ρόλοι. Έτσι δημιουργείται μια MxN relationship μεταξύ του entity User και του entity Role, μέσω του entity UserRole που λειτουργεί σαν «ενδιάμεσος» πίνακας στην βάση για να αποθηκεύει την σχέση αυτή. Για να διαχειριστούμε τους ρόλους κάθε χρήστη επιλέγουμε το button View Roles για τον επιθυμητό χρήστη, οπότε και εμφανίζεται το popup window που μας επιτρέπει να διαχειριστούμε τους ρόλους του χρήστη. Πχ, στον χρήστη user1 έχει ανατεθεί ο ρόλος ROLE_ADMIN, ενώ αν θέλουμε μπορούμε να αλλάξουμε τα assigned roles μέσα από το popup αυτό: 44

51 Figure 16: Οι assigned ρόλοι του χρήστη user1 φαίνονται επιλεγμένοι με σκούρο χρώμα Κάθε χρήστης εκτός των assigned security roles, ανήκει και σε μια ή περισσότερες αποθήκες (stores). Αυτό σημαίνει πως μπορεί να διαχειριστεί items μόνο στις αποθήκες στις οποίες έχει δικαίωμα να βλεπει. Για παράδειγμα, ένας χρήστης που δουλεύει στο εστιατόριο μιας επιχείρησης, δεν θα πρέπει να έχει την δυνατότητα να βλέπει τα προϊόντα μιας άλλης αποθήκης (πχ τα προϊόντα της reception της τουριστικής επιχείρησης). Έτσι έχοντας αυτή τη δυνατότητα διαχωρισμού των χρηστών σε κάθε αποθήκη, μας διασφαλίζει ότι κάθε χρήστης «βλέπει» μόνο προϊόντα και αποθήκες που έχει δικαίωμα να δει. Στην εφαρμογή, για να δούμε ποιες αποθήκες μπορεί να δει κάθε χρήστης, πατάμε το κουμπί View Stores: Figure 17: Οι αποθήκες που μπορεί να δει ο χρήστης user1 είναι bold Διαχείριση των βημάτων των ροών εργασιών Το πιο βασικό συστατικό της εφαρμογής που υλοποιήσαμε είναι το κομμάτι του workflow engine. Ένα flow αποτελείται από ένα ή περισσότερα flow steps, ενώ κάθε flow step σχετίζεται με ένα γενικό workflow step. Τα γενικά workflow steps σχετίζονται με τους ρόλους της εφαρμογής όπως περιγράψαμε πιο πάνω. Δηλαδή, κάθε ρόλος έχει την δυνατότητα να ελέγχει ένα ή περισσότερα generic workflow steps. Στη συνέχεια, κάθε αποθήκη σχετίζεται με ένα flow. Παραδείγματος χάριν, τα προϊόντα της αποθήκης του εστιατορίου ακολουθούν το flow1, ενώ τα προϊόντα της αποθήκης της reception (που αποτελείται από προϊόντα όπως υπολογιστές κλπ) πρέπει να ακολουθούν ένα πιο μεγάλο flow στο οποίο θα συμμετέχουν περισσότεροι approvers μιας και τα προϊόντα της reception είναι ακριβά προϊόντα 45

52 που σημαίνει απαιτείται μεγαλύτερος έλεγχος των παραγγελιών που δημιουργούνται. Στα πλαίσια της υλοποίησης της εφαρμογής, στο menu υπάρχουν δυο links: στο πρώτο link μπορούμε να δούμε όλα τα generic workflow steps καθώς και τις CRUD λειτουργίες πάνω σε αυτά. Μπορούμε να αλλάξουμε υπάρχοντα workflow steps, να δημιουργήσουμε νέα, και να σβήσουμε υπάρχοντα. Figure 18: Τα workflow steps από τα οποία συντίθονται τα διάφορα flows της εφαρμογής Αφού δημιουργήσουμε τα γενικά workflow steps, στη συνέχεια μπορούμε να δημιουργήσουμε τα πραγματικά flows τα οποία και θα αντιστοιχούνται στα διάφορα stores της εφαρμογής. Κάθε flow έχει ένα όνομα και αποτελείται από μια σειρά από steps, τα flow steps. Τα flow steps αντιστοιχούν με τη σειρά τους σε ένα generic workflow step, και επίσης έχουν έχουν έναν αριθμό σαν property, το code, το οποίο απεικονίζει την σειρά των βημάτων στο flow στο οποίο ανήκουν. Παρακάτω φαίνεται η οθόνη με τα flows της εφαρμογής: Figure 19: Τα flows της εφαρμογής Εκτός από την CRUD λειτουργία, υπάρχει ένα button που αν το πατήσουμε μας εμφανίζει με AJAX τεχνολογία την λίστα με τα flow steps του flow. Κάθε flow step σχετίζεται με ένα workflow step και έχει και έναν αριθμό που αποτελεί τη σειρά των flow steps στο flow. Για παράδειγμα στην παραπάνω εικόνα φαίνονται τα flow steps του flow1. Ουσιαστικά δημιουργούμε το εξής flow: 46

53 Figure 20: Αναπαράσταση του Flow 1 με τα flow steps του Προϊόντα και κατηγορίες προϊόντων Θεμελιώδη ρόλο σε ένα workflow engine παίζουν οι οντότητες που «διακινούνται» μέσα στο workflow. Στην περίπτωσή μας, οι οντότητες αυτές είναι τα προϊόντα που αγοράζονται από τους προμηθευτές των τουριστικών επιχειρήσεων με σκοπό να «καταναλωθούν» από τους τελικούς πελάτες. Ένα προϊόν αποθηκεύεται στις αποθήκες της επιχείρησης. Ένα προϊόν μπορεί να αποθηκεύεται σε περισσότερες από μια αποθήκες. Παραδείγματος χάριν, προϊόντα όπως τα αναψυκτικά αποθηκεύονται τόσο στις αποθήκες των εστιατορίων όσο και στην αποθήκη της recrption. Ένα προϊόν ανήκει σε μια κατηγορία προϊόντων. Παραδείγματος χάριν η πορτοκαλάδα Λουξ ανήκει στην κατηγορία προϊόντων αναψυκτικά. Η κατηγοριοποίηση εκτός του ότι μας βοηθάει να ομαδοποιούμε προϊόντα, μας επιτρέπει να χειριζόμαστε τα προϊόντα με βάση την κατηγορία στην οποία ανήκουν. Αυτό σημαίνει ότι θα μπορούσαμε τα προϊόντα μιας κατηγορίας να σχετίζονται με ένα συγκεκριμένο flow. Στα πλαίσια της υλοποίησης της διπλωματικής ωστόσο οι κατηγορίες προϊόντων χρησιμοποιούνται μόνο για λόγους ομαδοποίησης. Παρακάτω φαίνεται η οθόνη που απεικονίζει τα προϊόντα που έχουμε καταχωρίσει στην βάση : Figure 21: Τα προϊόντα και οι κατηγορίες στις οποίες ανήκουν Μέσα από αυτή την οθόνη μπορούμε να εκτελέσουμε λειτουργίες CRUD πάνω στο entity Item. Επίσης, μπορούμε να χειριστούμε τα προϊόντα που διαχειρίζεται η επιχείρηση μέσα από την οθόνη των κατηγοριών των προϊόντων. Παρακάτω φαίνεται η 47

54 συγκεκριμένη οθόνη που μας επιτρέπει να φτιάχνουμε νέες κατηγορίες προϊόντων και να προσθαφερούμε προϊόντα για την κάθε κατηγορία: Figure 22: Κατηγορίες προϊόντων και στο κάτω μέρος τα προϊόντα της κατηγορίας Milk Αποθήκες και Λίστες Προϊόντων Τα προϊόντα, όπως περιγράψαμε και νωρίτερα αποθηκεύονται στις αποθήκες των επιχειρήσεων. Οι αποθήκες είναι πολύ σημαντικό κομμάτι των επιχειρήσεων μιας και η σωστή διαχείρισή τους από τους υπεύθυνους και τους αποθηκάριους επιτρέπουν την σωστή, εύρυθμη και αποδοτική λειτουργία της επιχείρησης. Μια αποθήκη αποτελείται από ένα ή περισσότερα προϊόντα ενώ κάθε ένα ορισμένο χρονικό διάστημα στις αποθήκες γίνονται διαδικασίες intentory ώστε να γνωρίζουμε τις πραγματικές ποσότητες των προϊόντων. Παρακάτω φαίνεται η οθόνη διαχείρισης των αποθηκών της επιχείρησης: Figure 23: Στο πάνω μέρος φαίνονται οι αποθήκες ενώ στο κάτω απεικονίζονται τα προϊόντα της επιλεγμένης κατηγορίας Στα πλαίσια της υλοποίησης της εφαρμογής επιλέξαμε κάθε αποθήκη να σχετίζεται με ένα συγκεκριμένο flow. Επίσης, μπορούμε να χειριστούμε τα προϊόντα μιας αποθήκης πατώντας το button View Items για την επιλεγμένη αποθήκη, οπότε και εμφανίζονται ajaxly τα προϊόντα. 48

55 Συνήθως, οι παραγγελίες για προϊόντα που κάνει κάθε αποθήκη είναι γνωστή. Παραδείγματος χάριν, και ανάλογα πάντα με την περίοδο και τις ανάγκες της αποθήκης, υπάρχουν συκγκεκριμένες λίστες από προϊόντα που παραγγέλνονται ανά διαστήματα που προορίζονται για τη συγκεκριμένη αποθήκη. Με αυτόν το τρόπο μπορούμε να μειώσουμε το χρόνο δημιουργίας νέων παραγγελιών. Κάθε αποθήκη έχει τις δικές της λίστες από προϊόντα που παραγγέλνονται. Έτσι έχουμε τις δυο οντότητες MarketList και MarketListItem. Το πρώτο entity έχει το όνομα της λίστας και τη συσχετιζόμενη αποθήκη. Μια τέτοια λίστα αποτελείται από ένα η περισσότερα προϊόντα μέσα από το entity MarketListItem. Σημαντικό property του MarketListItem είναι η ποσότητα του προϊόντος που θέλουμε να παραγγείλουμε. Για την διαχείριση των λιστών προϊόντων υπάρχουν οι αντίστοιχες οθόνες που φαίνονται με το παρακάτω σχήμα: Figure 24: Οι προκατασκευασμένες λίστες από προϊόντα που γίνονται παραγγελία Για κάθε μια τέτοια λίστα μπορούμε να δούμε τα προϊόντα της και τις ποσότητες που θέλουμε να παραγγέλνουμε πατώντας το κουμπί View Items, όπου και θα φορτωθούν τα προϊόντα από κάτω. Μπορούμε έτσι να προσθαφαιρέσουμε προϊόντα, ή να αλλάξουμε την επιθυμητή ποσότητα παραγγελίας, όπως φαίνεται και από την παρακάτω εικόνα Figure 25: Διαχείριση των προϊόντων μιας λίστας προϊόντων προς παραγγελία Στα πλαίσια της διπλωματικής εργασίας υλοποιήθηκε η δυνατότητα να δημιουργούμε νέες παραγγελίες προϊόντων μόνο μέσα από έτοιμες λίστες 49

56 προίόντων, όπως αυτές παρουσιάστηκαν πιο πάνω. Θα μπορούσαμε μελλοντικά να προσθέσουμε τη δυνατότητα για νέες παραγγελίες προϊόντων from scratch, χωρίς την ύπαρξη κάποιας έτοιμης λίστας Δημιουργία νέας παραγγελίας προϊόντων Στην διαχείριση των έτοιμων λιστών προϊόντων υπάρχει το κουμπί με το οποίο δημιουργούμε νέα παραγγελία με βάση την επιλεγμένη λίστα. Μόλις το πατήσουμε, τότε δημιουργείται μια νέα παραγγελία που αποτελείται από τα προϊόντα της λίστας, ενώ παραγγέλνονται οι ποσότητες. Η μέθοδος που υλοποιεί την παραπάνω λογική παρουσιάζεται στο παράρτημα. Αφού δημιουργήσουμε την παραγγελία έχουμε τη δυνατότητα να την δούμε μέσα από το menu link Order View: Figure 26: Οθόνη που δείχνει όλες τις παραγγελίες που υπάρχουν στο σύστημα Βλέπουμε λοιπόν ότι φτιάξαμε μια παραγγελία που παίρνει το όνομά της by default από το όνομα της λίστας από την οποία φτιάχτηκε. Επίσης υπάρχουν οι στήλες της αποθήκης για την οποία προορίζονται τα προϊόντα και ο χρήστης που δημιούργησε την παραγγελία. Επίσης, μέσα από το κουμπί View Items, μπορούμε να δούμε τα προϊόντα της παραγγελίας και τις ποσότητες παραγγελίας. Τέλος, η πιο σημαντική στήλη είναι η απεικόνιση του workflow με το οποίο σχετίζονται τα προϊόντα. Όπως έχουμε αναφέρει και νωρίτερα, τα προϊόντα μιας αποθήκης σχετίζονται με ένα flow, στην περίπτωσή μας με το flow της αποθήκης στην οποία ανήκουν. Έτσι βλεπουμε σε κάθε προϊόν της παραγγελίας το workflow του προϊόντος. Με βάση τα επιμέρους workflows των προϊόντων, δημιουργείται το workflow της ίδιας της παραγγελίας η οποία συνοψίζει σε ένα flow τα flows των προϊόντων του Εξέλιξη workflow Αρχικά, αμέσως μόλις δημιουργήσουμε την παραγγελία, δημιουργούνται τα επιμέρους flow steps που έχουν αρχικά χρώμα γκρι. Το χρώμα αυτό υποδηλώνει ότι εκκρεμεί η διαδικασία του approving στο βήμα αυτό από τους υπεύθυνους του βήματος αυτού. Για να μπορεί ένας χρήστης να εκτελέσει ένα από τα actions για τα προϊόντα της παραγγελίας που βρίσκονται σε ένα συγκεκριμένο step, θα πρέπει ο χρήστης να έχει assigned πάνω του ρόλο ο οποίος με την σειρά του θα σχετίζεται με το συκεκριμένο workflow step. 50

57 Οι μόνοι χρήστες που μπορούν να «δουν» το workflow step 1 είναι ο user1 (admin) και ο user2 όπως φαίνεται και στο παρακάτω popup window για τον user2: Figure 27: Assigned workflow step για τον ρόλο ROLE_SK Ο χρήστης που έχει assigned τον ρόλο ROLE_SK είναι ο user2. Έτσι, αν κάνουμε login με τον user2, θα δούμε στο home page της εφαρμογής ότι υπάρχει μια παραγγελία που μπορεί να εκτελέσει actions στο βήμα step1: Figure 28: Σύνοψη των παραγγελιών που μπορεί να εκτελέσει ο logged in χρήστης σε κάθε step Παντώντας στο link, οδηγούμαστε στο να κάνουμε approve τα προϊόντα του purchase order. Συγκεκριμένα στο πρώτο βήμα του workflow, ο υπεύθυνος εκτός από να κάνει accept ένα προϊόν, θα πρέπει να ορίσει και την ποσότητα που κάνει approve, σε σχέση με αυτή που παραγγέλθηκε αρχικά. Έτσι, διακρίνονται τρεις περιπτώσεις ανάλογα με την ποσότητα που γίνεται approve: Ο υπεύθυνος κάνει approve όλη τη ποσότητα που παραγγέλθηκε αρχικά. Στην περίπτωση αυτή, το χρώμα του flow step θα γίνει πράσινο έπειτα από την εκτέλεση του approving Ο υπεύθυνος κάνει approve μηδενική ποσότητα σε σχέση με αυτή που παραγγέλθηκε. Σ αυτή τη περίπτωση το χρώμα του flow step του workflow θα είναι κόκκινο (ουσιαστικά έκανε reject το προϊόν) Ο υπεύθυνος κάνει approve ποσότητα μικρότερη από αυτή που παραγγέλθηκε αλλά μεγαλύτερη από μηδέν. Στην περίπτωση αυτή το χρώμα του flow step στην πορεία της παραγγελίας για το προϊόν αυτό θα είναι πορτοκαλί (μερικό approving) 51

58 Ο υπεύθυνος επιλέγει το προϊόν / τα προϊόντα και πατάει το action Reject. Αυτό ισοδυναμεί με το να έκανε approve μηδενική ποσότητα. Άρα και σε αυτή τη περίπτωση το χρώμα του flow step γίνεται κόκκινο για το προϊόν αυτό Για την αλλαγή της ποσότητας χρησιμοποιήσαμε inline editing της ποσότητας, με την βοήθεια του jquery plugin jqueryinlineedit.js Παρακάτω παραθέτουμε την οθόνη όπου κάνουμε approve/reject τα επιλεγμένα προϊόντα: Figure 29: Διαδικασία approving για το flow step 1 (WS1) Παρακάτω παρουσιάζονται οι τρεις παραπάνω περιπτώσεις ανάλογα με τη ποσότητα που έκανε approve ο χρήστης, και το πως απεικονίζεται η κατάσταση στο χρώμα του flow step: Full Approve Figure 30: Full Approving του πρωτου προϊόντος για το βήμα WS1 Παραηρούμε ότι ο χρήστης έκανε approve όλη τη ποσότητα, άρα το χρώμα του step είναι πράσινο. Ωστόσο, το χρώμα του flow για όλη τη παραγγελία γίνεται πορτοκαλί μιας και στο step τώρα εκκρεμούν 2 ακόμα προϊόντα Reject Approving Σε αυτή τη περίπτωση αρνούμαστε την παραγγελία του προϊόντος και το απορρίπτουμε, οπότε και σταματάει η εξέλιξη του flow για το προϊόν αυτό: 52

59 Figure 31: Workflow Reject Αντίστοιχα το χρώμα για το προϊόν είναι κόκκινο, ένδειξη ότι απορρίφθηκε, ενώ το χρώμα για όλη την παραγγελία είναι πορτοκαλί αφού δυο προϊόντα εκρεμούν και το τρίτο προϊόν έγινε rejected Partial Appriving Στην περίπτωση αυτή, κάνουμε approve μόνο ένα μέρος της ποσότητας που αρχικά παραγγέλθηκε, οπότε το χρώμα για το flow step γίνεται πορτοκαλί, ενώ αντίστοιχα για όλη τη παραγγελία, το χρώμα είναι επίσης πορτοκαλί: Figure 32: Partial Approving Στην περίπτωση full ή partial approving, το προϊόν προχωρά στο επόμενο flow step του flow στο οποίο ανήκει, ακολουθώντας την δική του πορεία στο flow, ανεξαρτήτως που βρίσκονται στο workflow τα υπόλοιπα προϊόντα της παραγγελίας. Σε πιο προχωρημένο στάδιο του workflow, το workflow για τη παραγγελία και τα προϊόντα της απεικονίζεται όπως φαίνεται παρακάτω: 53

60 Figure 33: Προχωρημένο στάδιο approving παραγγελίας Τελικά, προχωρώντας την διαδικασία, φτάνουμε στο τελικό step που σημαίνει ότι η παραγγελία ολοκληρώθηκε, οπότε τα προϊόντα που έγιναν approve μπορούν να παραγγελθούν από τους προμηθευτές τους, ενώ τα προϊόντα που έγιναν rejected δε μπορούν να παραγγελθούν. 54

61 Κεφάλαιο 6 6 Τεχνολογική Πλατφόρμα Στο παρόν κεφάλαιο παρουσιάζεται η τεχνολογική πλατφόρμα πάνω στην οποία υλοποιήθηκε το workflow engine που παρουσιάστηκε στο προηγούμενο κεφάλαιο 6.1 Η γλώσσα προγραμματισμού Groovy Η γλώσσα προγραμματισμού Groovy είναι μια agile δυναμική γλώσσα προγραμματισμού για την πλατφόρμα της Java. Πολλά χαρακτηριστικά της, ωστόσο, τα έχει δανειστεί από γλώσσες όπως η Python, η Ruby και η Smalltalk, και έτσι κάνουν αυτά τα χαρακτηριστικά διαθέσιμα και στο Java οικοσύστημα. Παρότι η Groovy πολλές φορές αποκαλείται scripting γλώσσα, ωστόσο αυτό δεν σημαίνει πως είναι μόνο αυτό. Είναι χαρακτηριστικό ότι η Groovy μπορεί να γίνει precompiled σε Java bytecode, και γενικότερα να ενσωματωθεί σε Java εφαρμογές. Ουσιαστικά δηλαδή, η Groovy μας επιτρέπει να γράφουμε ένα ειδικό είδος Java, χωρίς να χάνουμε το δυνατότητα να γράφουμε purely Java και βέβαια, μπορούμε να χρησιμοποιήσουμε τη δύναμη της Java που είναι ο τεράστιος αριθμός βιβλιοθηκών (libraries) που έχουν δημιουργηθεί όλα αυτά τα χρόνια. Πρέπει να γίνει κατανοητό ότι η Groovy σαν γλώσσα δεν έρχεται να αντικαταστήσει κάποια παλιά τεχνολογία (βλέπε Java), αλλά να ενισχύσει την υπάρχουσα τεχνολογία (Java), προσδίδοντάς της νέα χαρακτηριστικά. Αν και έχουμε τη δυνατότητα να γράφουμε purely Java κώδικα, αυτό δεν είναι και η καλύτερη ιδέα, μιας και η Groovy δουλεύει μόνη της behind the scenes για να προσφέρει το agility και τη δυναμικότητά της, δυο πολύτιμα χαρακτηριστικά της Groovy. Όπως έχει γραφτεί, η Groovy είναι πως θα έμοιαζε η Java αν είχε γραφτεί τον 21ο αιώνα. Δεν είναι τυχαίο που η Groovy δημιουργήθηκε από Java developers οι οποίοι έψαχναν ένα πιο έξυπνο τρόπο για να το κώδικά τους πιο απλό και λιγότερο boilerplate. 55

62 Η Groovy και η Java είναι τόσο συγκρίσιμες σαν γλώσσες προγραμματισμού, που στις περισσότερες περιπτώσεις μπορούμε να πάρουμε ένα αρχείο Java (πχ foo.java) και να το μετονομάσουμε σε foo.groovy. Το νέο αυτό αρχείο είναι ένα valid Groovy αρχείο και θα γίνει compiled κανονικά χωρίς errors. Η Groovy μας δίνει την δυνατότητα να μειώσουμε τις γραμμές του κώδικα που θα έπρεπε να γράψουμε άν γράφαμε με pure Java code Παραδείγματα Χρήσης Σαν παράδειγμα χρήσης, θα φτιάξουμε ένα πολύ απλό Java αρχείο με όνομα Student.java που θα έχει δυο attributes, firstname και lastname. Έστω ότι θέλουμε να έχουμε ένα κλασικό plain old java object (POJO). Για αυτό το λόγο, θα κάνουμε τα attributes private, θα φτιάξουμε έναν default constructor χωρίς arguments, και θα κάνουμε την κλάση μας να κάνει implement το Serializable Interface. /* Java Code */ public class Student { private String firstname; private String lastname; public String getfirstname() { return firstname; public void setfirstname(string firstname) { this.firstname = firstname; public String getlastname() { return lastname; public void setlastname(string lastname) { this.lastname = lastname; Όπως φαίνεται από το παραπάνω παράδειγμα, μας πήρε πάνω απο 20 γραμμές για να φτιάξουμε ένα απλό bean με δυο attributes (βέβαια, μπορεί να πει κάποιος ότι ο boilerplate κώδικας των getters και setters φτιάχνεται αυτόματα από το εκάστοτε IDE περιβάλλον που δουλεύουμε, αλλά σε κάθε περίπτωση δε παύει να είναι boilerplate!!). Αν θέλαμε να φτιάξουμε το αντίστοιχο παράδειγμα σε Groovy, η class που θα φτιάχναμε θα ήταν η εξής: /** Groovy Code */ class Student { String firstname String lastname 56

63 Βλέπουμε πολύ εύκολα πόσο πιο καθαρός είναι ο κώδικας σε Groovy χωρίς όλους αυτούς τους getters και setters που απαιτεί η Java. Εκτός από τους getters-setters, παρατηρούμε ότι λείπουν και τα access levels (public, private κλπ). Τα plain old groovy objects (POGOs) είναι by default public. Επίσης, όλα τα attributes είναι by default private. Θα αναρωτηθεί λοιπόν κάποιος πως μπορώ να πάρω ένα private attribute της παραπάνω class χωρίς να έχουμε υλοποιήσει public getter?. Η απάντηση είναι ότι αυτές οι μέθοδοι γίνονται αυτόματα generated όταν δημιουργείται το bytecode, και δεν βασίζεται στο source code. Ένα άλλο χαρακτηριστικό που μπορεί να παρατηρήσατε ότι λείπει, είναι τα semicolons. Στη Groovy δεν είναι υποχρεωτικά. Πρέπει να σημειώσουμε εδώ ότι το γεγονός ότι στη Groovy γλώσσα μερικά χαρακτηριστικά (όπως τα semicolons και οι getters-setters) δεν είναι υποχρεωτικά, αυτό δεν σημαίνει πως δεν μπορούμε να τα χρησιμοποιήσουμε. Κάποιος που έχει συνηθίσει να βάζει semicolons, μπορεί να συνεχίσει να βάζει και στη Groovy. Το πρόγραμμα θα γίνει compiled κανονικά. Απλά, τελικά δεν εκμεταλλευόμαστε πλήρως την ελευθερία που μας δίνει η Groovy, και κατ' επέκταση την ταχύτητα που μας επιτρέπει να γράφουμε τον κώδικά μας Διαφορές με την Java στο συντακτικό Εκτός από το semicolon που δεν είναι υποχρεωτικό στην Groovy, παρακάτω αναφέρουμε συνοπτικά και κάποιες διαφορές στο συντακτικό της Groovy καθώς και κάποια νέα operators που χρησιμοποιούμε στην εφαρμογή που υλοποιούμε στην διπλωματική?. (Null Safe Object Navigation) Ενώ στην Java θα γράφαμε τον εξής κώδικα για να τσεκάρουμε αν είναι null τόσο το object όσο και το attribute του object: if (student!= null && student.firstname!= null) {... στην Groovy ο ίδιος έλεγχος μπορεί να γίνει πολύ εύκολα ως εξής: if (student?.value!= null) {...?: (If-then-else ternary operator) Ενώ στην Java θα γράφαμε το εξής: String firstname = (student.getfirstname()!= null)? student.getfirstname() : "<unknown>" στην Groovy, μπορούμε να γράψουμε πολύ πιο απλά String firstsname = student.getfirstname?: "<unknown>" 57

64 *. (Spread-Dot Operator) Είναι ίσως το πιο powerful νέο operator της Groovy. Πόσες φορές έχουμε μια λίστα από objects (πχ students) και θέλουμε να έχουμε την λίστα με τα ονόματά τους. Στην Java θα έπρεπε να φτιάξουμε μια μέθοδο που θα λουπάρει τη λίστα με τους students και θα μαζεύει σε μια λίστα τα ονόματά τους. Στην Groovy μπορούμε πολύ απλά να γράψουμε: List firstnames = students*.firstname Προαιρετική χρήση των παρανθέσεων Ενώ στην Java είναι υποχρεωτική η χρήση παρενθέσεων στα arguments των μεθόδων, πχ System.out.println( Hello world ); στην Groovy μπορούμε να γράψουμε System.out.println Hello World Εξαίρεση αποτελεί η περίπτωση η μέθοδος να μην έχει arguments, ή αν το πρώτο argument είναι list ή map Προαιρετική χρήση return statements Στην Groovy δεν χρειάζεται οι μέθοδοι να επιστρέφουν explicitly αυτό που ορίζει η ταυτότητα της μεθόδου. Στην περίπτωση αυτή, θα επιστραφεί το αποτέλεσμα του τελευταίου evaluated expression. Υπάρχουν κι άλλες διαφορές μεταξύ Groovy και Java, αλλά αυτές είναι οι πιο σημαντικές. Για περισσότερες πληροφορίες μπορείτε να ανατρέξετε στο site της Groovy ( Closures και Dynamic Programming στην Groovy Όπως φάνηκε μέχρι τώρα, η Groovy δανείζεται το συντακτικό της Java, και άλλοτε το απλοποιεί (κάνοντας πχ κάποια πράγματα προαιρετικά), και άλλοτε τον εμπλουτίζει με νέα operators που μας βοηθούν να κάνουμε δουλειές που στην Java θα έπρεπε να γράψουμε manual κώδικα. Ωστόσο η μεγάλη δύναμη της Groovy είναι δυο χαρακτηριστικά για τα οποία θα μιλήσουμε ξεχωριστά. Closures Ένα Groovy closure είναι ουσιαστικά ένα code block ή ένα method pointer. Με άλλα λόγια είναι κώδικας που ορίζεται σε κάποιο σημείο του προγράμματός μας και εκτελείται σε κάποιο σημείο αργότερα. Είναι κάτι αντίστοιχο με τις anonymous μεθόδους στην Java, όπου μπορούν να γίνονται assigned σε variables, να περνιόνται σαν variables σε methods, ή και να επιστρέφονται από μεθόδους. O όρος closure χρησιμοποείται κατά κόρον στις functional γλώσσες προγραμματισμού όπως Javascript, Lisp. 58

65 Τα closures χρησιμοποιούν τα brackets για συντακτικό τους, που υποδηλώνουν το αρχή και το τέλος του closure. Το standard συντακτικό ενός closure είναι {<arguments> <body> Παράδειγμα def clos = { println hello closure println Executing the Closure clos() Τα closures είναι μια πολύ σημαντική οντότητα στην Groovy και χρησιμοποιούνται πολύ συχνά στον κώδικα της διπλωματικής, γιαυτό και απαιτείται καλή κατανόηση, ειδικά σε Java developers που δεν είναι αρκετά exposed σε τέτοιες functional ορολογίες. Περισσότερα στο Dynamic programming Στην Java όλα τα variables, properties, method arguments και returns πρέπει να έχουν declared types (πχ η μεταβλητή firstname είναι τύπου String). Αυτό επιτρέπει στον Java compiler να κάνει το λεγόμενο type-checking που μας βοηθάει να βρίσκουμε bugs στον κώδικά μας, πριν το runtime (είναι χαρακτηριστικό πως τα IDE λειτουργούν σαν assistants όταν γράφουμε τον κώδικά μας, χρησιμοποιώντας βέβαια τον Java compiler) Στην Groovy έχουμε την δυνατότητα να αποφασίζουμε για το τύπο πχ μιας μεταβλητής σε retime επίπεδο. Που σημαίνει δεν χρειάζεται να γνωρίζουμε σε compile time το τύπο της μεταβλητής. Για τέτοιες untyped variables χρησιμοποιούμε το keyword def. Αυτό σημαίνει πως δηλώνοντας μια μεταβλητή ή μέθοδο σαν def μπορεί να πάρει οποιαδήποτε τιμή runtimely (σε Java αντιστοιχία, το def μοιάζει σαν να δηλώνουμε μια μεταβλητή σαν Object). Η dynamic φύση της Groovy δε μας επέτρεπε να έχουμε static type checker. Ωστόσο από την version 2.0, προστέθηκε και αυτό το χαρακτηριστικό, που σημαίνει μπορούμε να γράφουμε dynamic programming χωρίς να χάνουμε το static type checking και compiling. Στην διπλωματική γίνεται heavy use of dynamic programming μέσω του web framework που χρησιμοποιούμε (Grails). Παρότι το dynamic programming του Grails προσφέρεται transparently στον developer, είναι σημαντικό να κατανοηθεί πλήρως η έννοια αυτή. Περισσότερα στο Το web framework Grails Το web framework Grails είναι ένα Java Web Framework τελευταίας γενιάς το οποίο χρησιμοποιεί εργαλεία, τεχνικές και τεχνολογία από υπάρχοντα Java 59

66 frameworks, τα οποία και συνδυάζει για να δημιουργήσει ένα web framework που προσφέρει απλότητα και γρήγορο web development. Ιστορία του Grails Ένα από τα μεγάλα προβλήματα που ένας Java developer είχε να αντιμετωπίσει, είναι η μεγάλη πολυπλοκότητα των τεχνολογιών που πρέπει να χρησιμοποιήσει, η χρήση boilerplate κώδικα, και κυρίως η ανάγκη για configuration διάφορων settings που συνήθως βρίσκονται μέσα σε.xml αρχεία. Φτάνουμε σε σημείο πολλές φορές αντί να κάνουμε πραγματικό web development της εφαρμογής μας, να αναλωνόμαστε για μέρες στο σετάρισμα xml αρχείων ώστε να κάνουμε την εφαρμογή να στηθεί σωστά! Επίσης, αναγκαζόμαστε να κάνουμε implement Interfaces και extend Abstract classes δημιουργώντας κάθε φορά boilerplate κώδικα. Το Grails framework έχει επηρεαστεί σε μεγάλο βαθμό απο το framework Ruby On Rails. Γύρω στο 2004 και βασισμένο στην dynamic γλώσσα προγραμματισμού Ruby, το Rails έφερε νέα πνοή στο web development με χαρακτηριστικά όπως Convention-over-Configuration, Dynamic Metaclass δυνατότητες, βασισμένες στη Ruby κλπ. Ωστόσο το framework αυτό δεν εκμεταλλευόταν την δύναμη και το τεράστιο codebase της Java, μιας και η Ruby δεν ανήκει στο Java οικοσύστημα. Έτσι λοιπόν, δημιουργήθηκε η ανάγκη να φτιαχτεί ένα αντίστοιχο framework που θα τρέχει πάνω στο JVM. Όπερ και εγένετο το Grails Web framework Συνοπτικά, το Grails web framework χρησιμοποιεί την δύναμη της γλώσσας προγραμματισμού Groovy και με κύριο χαρακτηριστικό το λεγόμενο convention-over-configuration προσφέρει ένα περιβάλλον που επιτρέπει rapid web development. Convention over Configuration Με τον όρο convention-over-configuration(coc) εννοούμε ότι σκοπός του framework είναι να μειώσει τις ανάγκες που χρειάζονται για configuration. Έτσι, με βάση κάποια default configuration settings, μπορούμε να ξεκινήσουμε το development. Από την άλλη ωστόσο, αν έχουμε κάποιες ειδικές απαιτήσεις, μπορούμε να κάνουμε override τις default ρυθμίσεις που μας προσφέρει το Grails, που σημαίνει τελικά ότι ναι μεν μπορούμε να χρησιμοποιήσουμε το convention του Grails, αλλά αν θέλουμε, δεν χάνουμε τη δύναμη να έχουμε το δικό μας custom configuration. Φιλοσοφία Agile Το Grails είναι ένα agile web framework. Με τον όρο agile εννοούμε ένα σύνολο από μεθόδους ανάπτυξης λογισμικού βασισμένες σε επαναληπτικές (iterative) και αύξουσας πολυπλοκότητας (inceremental) διαδικασίες. Στην πράξη αυτό σημαίνει ότι μπορούμε να υλοποιούμε tag libraries, να γράφουμε test cases βήμα-προς-βήμα, επαναληπτικά, κάνοντας «κύκλους», χωρίς να χρειάζεται να ολοκληρώσουμε πρώτα όλη την εφαρμογή για να αρχίσουμε testing, ή να κάνουμε συνεχόμενα restarts στον application server μας. Παρακάτω φαίνοται τα βασικά χαρακτηριστικά του Grails Framework: 60

67 Figure 34: Τα βασικά χαρακτηριστικά του Grails Framework Τεχνολογίες πίσω από το Grails Αυτό που κάνει το Grails είναι να χρησιμοποιεί ένα σύνολο από ήδη επιτυχημένα υπάρχοντα frameworks, κάθε ένα από τα οποία έχουν προσφέρουν τη δική τους συνεισφορά στο να κάνουν το web development απλούστερο, και να τα δέσει με απλό τρόπο δημιουργώντας έτσι ένα web framework που είναι αφενός βασισμένο σε επιτυχημένα frameworks και αφετέρου να κάνει τη χρήση τους εύκολη προσφέροντας τελικά το λεγόμενο rapid application development (RAD). Οι τεχνολογιές συνοπτικά που βασίζεται το Grails είναι Hibernate: Ο de-facto standard τρόπος για object-relationalmapping(orm) στο οικοσύστημα της Java Spring Framework: Ο πιο δημοφιλής open source Inversion-Of-Control (IoC) container και wrapper framework στο οικοσύστημα της Java SiteMesh: Ένα robust και stable layout-rendering framework Χρησιμοποιώντας τις άνωθεν τεχνολογίες, το Grails τις «δένει» δίνοντάς μας ένα ολοκληρωμένο MVC(Model-View-Controller) framework Η δύναμη των Grails Plugins Μεγάλη δύναμη του Grails είναι τα plugins του. Ουσιαστικά πρόκειται για projects τα οποία έχουν υλοποιηθεί από την ενεργή κοινότητα του Grails, και που μπορούν να γίνονται integrated στα projects με τρόπο απλό. Τέτοια 61

68 plugins προστίθενται στο repository του Grails οπότε είναι διαθέσιμα στον οπιοδήποτε. Για παράδειγμα, ένα τέτοιο plugin είναι το resources plugin, που μας επιτρέπει να οργανώνουμε τα resources μας (πχ,.css,.js αρχεία κλπ) με έναν κεντρικοποιημένο τρόπο (σε ένα αρχείο), χωρίς να χρειάζεται να βάζουμε για κάθε σελίδα τι static αρχεία χρειάζεται. Άλλα τέτοια plugins είναι το plugin που κάνει integration με το jquery javascript framework, το plugin που κάνει εύκολο το integration με τον Apache Tomcat application server, το δημοφιλές Spring Security Plugin, το scheduling plugin βασισμένο στο Quartz από το Java ecosystem κλπ. Scaffolding Το Grails υποστηρίζει το scaffolding. Με τον όρο αυτόν εννοούμε την δυνατότητα με βάση το domain model μας (τα οποία ουσιαστικά θα κάνουν mapping σε αντίστοιχα tables στην data base μας) να δημιουργήσουμε πολύ εύκολα και γρήγορα views και controllers on the fly τα οποία μας δίνουν αυτοματοποιημένα CRUD (create, ready, update, delete) λειτουργίες. MVC Pattern Το Grails Framework είναι ένα MVC(Model-View-Controller) Framework. Τα MVC Frameworks είναι ιδιαίτερα δημοφιλή στο web με παράδειγμα το Spring MVC, το Struts κλπ. Όλα αυτά τα frameworks, έτσι και το Grails βασίζονται στο αντίστοιχο MVC pattern το οποίο ουσιαστικά διαχωρίζει την αναπαράσταση της πληροφορίας από την αλληλεπίδραση του χρήστη με αυτό. Αποτελείται από τρεις ονότητες: Το μοντέλο (model) που αποτελείται από τα application data και τους business rules. Ουσιαστικά το model αναπαριστά τα πραγματικά δεδομένα που θα πρέπει να δείξουμε στον τελικό χρήστη Τον controller, η δουλειά του οποίου είναι να «ακούει» τον χρήστη, να λαμβάνει input από αυτόν, να χειρίζεται το request και να στέλνει τα data αυτά στο model component οπότε και μπορεί να κάνει generate τελικά το τελικό view, ή να κάνει delegate το request κατευθείαν σε ένα view οπότε το view είναι υπεύθυνο να παράγει την τελική πληροφορία στον χρήστη Το View. Το view απαιτεί από το model (βάση) την πληροφορία που θέλει να παρουσιαστεί στον τελικό χρήστη, ή αντλεί την πληροφορία αυτή από τον ίδιο τον controller Οι controllers αποτελούνται από actions, δηλαδή από μεθόδους ή closures που είναι υπεύθυνα για να παίρνουν το request και να επιστρέφουν το representation στον τελικό χρήστη. Παρακάτω ακολουθεί ένα παράδειγμα ενός controller με το action του, και το πως επιστρέφει το view στον τελικό χρήστη. Class StudentController{ def list(){ //do controller logic, call any service you need 62

69 //create model return model Βλέπουμε λοιπόν τον Student controller που by default κάνει map το list action στο url: requestcontext/student/list URI. Λόγω του τρόπου που δουλεύει το Grails (Convention over Configuration), by default ο controller αυτός είναι υπεύθυνος για requests που ξεκινούν με /student. Το συγκεκριμένο action: list θα δεχτεί συγκεκριμένα το request : requestcontext/student/list Controllers και Scopes Τα scopes είναι γνωστά ήδη απο τα java servlets. Στο Grails framework, πρόκειται για hash-like objects όπου μπορούμε να αποθηκεύουμε store variables. Τα scopes που είναι διαθέσιμα στο Grails είναι: servletcontext: Γνωστό και ως application scope, είναι ένα hash map που κρατά την κατάσταση των objects σε όλη τη διάρκεια ζωής του application στον server session: Το session object είναι ένα instance του γνωστού HttpSession. Αυτό το map συσχετίζεται με ένα συγκεκριμένο user με τη βοήθεια cookies request: Το request object περιέχει τα objects του current request. Είναι instance του HttpServletRequest params: Πρόκειται για mutable map του εισερχόμενου request query ή περιλαμβάνει τις POST παραμέτρους GSP (Groovy Server Pages) Τα GSP views αποτελούν την εξέλιξη των κλασικών και παραδοσιακών JSPs (Java Server Pages). Τα JSPs παρότι μας βοήθησαν πάρα πολύ στο να φτιάνχνουμε οθόνες σχετικά γρήγορα, ωστόσο ήταν δύσχρηστα σε μερικούς τομείς όπως τα tag libraries. Παρότι η έλευση των JSTL tag libraries βοήθησε πάρα πολύ, ωστόσο τα πράγματα πολλές φορές γίνονταν αρκετά περίπλοκα. 6.3 Spring Framework Το Spring Framework είναι ένα open source application framework, που παρέχει στις εφαρμογές που χρησιμοποιείται δυο βασικά χαρακτηριστικά: Dependency Injection (DI) και Aspect Oriented Programming (AOP). Στις ενότητες που ακολουθούν θα αναλυθούν συνοπτικά τα δυο αυτά βασικά χαρακτηριστικά του Spring Framework και στη συνέχεια θα αναλύσουμε πως το Grails Web Framework «κάθεται» πάνω από το Spring, και πως το βοηθά να «δέσει» τις διάφορες τεχνολογίες. Ιστορία του Spring 63

70 Η Java από το 1995 και έπειτα έχει καταφέρει να κυριαρχήσει στο χώρο των enterprise applications. Η ανάπτυξη τέτοιων sophisticated εφαρμογών όμως απαιτούσαν πολύπλοκα services όπως transaction support, security κλπ. Για αυτό το λόγο η Sum δημοσιοποίηση το Enterprise JavaBeans Specification (EJB), το οποίο όριζε τα original Java Beans σε επίπεδο server. Ωστόσο το αποτέλεσμα ήταν η ανάπτυξη enterprise εφαρμογών να γίνεται αρκετά πολύπλοκη ακόμα και για απλά applications. Σιγά σιγά οι developers ένιωθαν να αποθαρρύνονται από τη πολυπλοκότητα του EJB spec. Αυτό είχε σαν αποτέλεσμα να δημιουργηθεί η ανάγκη να βρεθεί ένα framework που θα απλοποιούσε και πάλι το java development σε enterprise applications. Έτσι, ήρθε το 2002 o Rod Johnson όπου με το βιβλίο του «Expert One-on-One: J2EE Design and Development» έθεσε τις βάσεις για τη δημιουργία του Spring Framework, το οποίο ερχόταν να απλοποιήσει τη δημιουργία enterprise applications. Τα τέσσερα κύρια χαρακτηριστικά που έφερε το Spring είναι Χρήση των κλασσικών Plain Old Java Objects (POJOs) Loosely coupling μεταξύ των components της εφαρμογής με τη βοήθεια του Dependency Injection (DI) που μας δίνει το Spring Declarative Programming με την βοήθεια του Aspect Oriented Programming που μας δίνει το Spring. Μείωση του επαναλαμβανόμενου κώδικα (boilerplate) με τη βοήθεια των aspects καθώς και των templates που μας δίνει το Spring Το Spring Framework αποτελείται από 5 κύρια modules: Το core module που είναι ουσιαστικά ο container του Spring με components όπως την διαχείριση των beans, το context support, την EL expression language κλπ Το module που σχετίζεται με την πρόσβαση στις βάσεις δεδομένων (data access) και το integration με διάφορες τεχνολογίες όπως τα ORMs, το JMS, την διαχείριση των transactions κλπ Το module που μας δίνει τα web χαρακτηριστικά του Spring, όπως το Spring MVC, το Remoting, το Spring Portlet για να κατασκευάζουμε portlets Το AOP module που μας δίνει δυνατότητες aspect oriented programming Το instrumentation module το οποίο ανακαλύπτει αυτόματα applications σαν managed resources 64

71 Figure 35: Τα βασικά modules από τα οποία αποτελέιται το Spring Framework Παρακάτω ακολουθεί συνοπτική ανάλυση των χαρακτηριστικών αυτών, που θα μας βοηθήσουν να καταλάβουμε πως το Grails χρησιμοποιεί το Spring. Χρήση POJOs Στο μέχρι τότε EJB development (τουλάχιστον μέχρι και τα EJB 2) για κάθε είδος Java Bean που φτιάχναμε έπρεπε να κάνουμε implement κάποια interfaces και κατεπέκταση μεθόδους που δεν χρησιμοποιούσαμε όμως ποτέ (πχ ejbcreate, ejbpassivate, ejbremote). Αυτό είχε σαν αποτέλεσμα ουσιαστικά να προσδίδουμε πολυπλοκότητα στα beans χωρίς πραγματικό λόγο. Το αποτέλεσμα ήταν τα bean μας μόνο POJOs να μην ήταν! Με τον ερχομό του Spring ωστόσο τα beans ξαναέγιναν POJOs, αφού ήταν «καθαρά» beans που δε χρειαζόταν να κάνουν implement core interfaces. Πχ έστω το κάτωθι EJB2 bean: import javax.ejb.sessionbean; public class StudentSessionBean implements SessionBean { public void ejbactivate() { public void ejbpassivate() { public void ejbremove() { public String sayhello() { return "Hello from Student Bean"; 65

72 public void ejbcreate() { Παρατηρούμε ότι κάνει implement το javax.ejb.sessionbean, οπότε πρέπει να υλοποιήσει τις μεθόδους του Interface. Αντίθετα το αντίστοιχο bean στο Spring Framework είναι: public class StudentBean { public String sayhello() { return "Hello from Student Bean"; Dependency Injection Τα κάθε Java component θα πρέπει να είναι όσο το δυνατόν πιο ανεξάρτητα (loosely coupled) σε σχέση με τα υπόλοιπα java components της εφαρμογής. Αυτό σημαίνει ότι ένα το object δεν παίρνει τα dependencies του από μόνο του, αλλά του δίνουν τα dependencies του. Αυτή η τακτική μας δίνει τη δυαντότητα να επαναχρησιμοποιούμε και να τεστάρουμε τις κλάσεις πολύ πιο εύκολα (Unit Testing). Αντίθετα, όσο πιο πολύ έχουμε δέσει μεταξύ τους τα objects, τα κάνουμε να εξαρτώνται το ένα από το άλλο, οπότε τελικά γίνεται πολύ δύσκολο να ελέγχουμε τα objects σαν αυτόνομες μονάδες. Παρακάτω ακολουθεί ένα παράδειγμα tightly-coupled μεταξύ των δύο κλάσεων: public class TextEditor{ private SpellChecker spellchecker; public TextEditor(){ Παρακάτω ακολουθεί ο αντίστοιχος κώδικας με τις κλάσεις loosely coupled public class TextEditor{ private SpellChecker spellchecker; public TextEditor(){ public setspellchecker(spellchecker spellchecker){ this.spellchecker = spellchecker; Η διαφορά τους είναι στον τρόπο που σετάρεται ο SpellChecker. Στο πρώτο παράδειγμα, ο spellchecker αρχικοποιείται από την ίδια την κλάση. Αντίθετα, στο δεύτερο παράδειγμα αρχικοποιείται έξωθεν και απλά σετάρεται στην 66

73 κλάση με έναν setter. Αυτό μας επιτρέπει πχ ένα Unit Test να υλοποιεί κάθε φορά διαφορετικό implementation της SpellChecker. Αντίθετα, στο πρώτο παράδειγμα, είμαστε tighly coupled με τον SpellChecker. Declarative Programming with Aspects Ο aspect-oriented προγραμματισμός μας δίνει την δυνατότητα να δημιουργήσουμε επαναχρησιμοποιούμενα components σε περιπτώσεις όπου αυτά τα components χρησιμοποιούνται από όλη την εφαρμογή. Με απλά λόγια, επιτρέπει τα components αυτά να γίνονται invocated πριν και μετά από την εκτέλεση άλλων εξωτερικών method calls. Πολλές φορές, εκτός από το κύριο functionality που έχει να εκτελέσει μια μέθοδος, πρέπει να εκτελούν και έναν επιπλέον κώδικα, συνήθως πριν και μετά την εκτέλεση του core κώδικα. Ένα τέτοιο παράδειγμα είναι το transaction management που πρέπει να εκτελεστεί όταν εκτελούμε μια εντολή σε τράπεζα. Τόσο στην δημιουργία νέου λογαριασμού, αλλά και σε καταθέσεις χρημάτων ή πληρωμές οφειλών κλπ, το σύστημα θα πρέπει να κρατάει ένα logging για το ότι πχ «ο χρήστης είναι έτοιμος να κάνει μια δοσοληψία με την τράπεζα» και αφού την κάνει να κρατά επίσης ένα logging ότι πχ «η δουλειά του πελάτη εκτελέστηκε με επιτυχία». Από αυτό παρατηρούμε ότι μπαίνει η έννοια των cross-cutting concerns που σημαίνει ότι η διαδικασίες «κόβονται» πριν και μετά την εκτέλεσή τους από concerns που πρέπει να εκτελούνται κάθε φορά. Χωρίς την χρήση Aspect-Oriented Programming, θα έπρεπε να πηγαίνουμε σε κάθε μια core μέθοδο και να προσθέτουμε το logging functionality πριν και μετά την εκτέλεση της κύριας μεθόδου. Καταλήγουμε όμως έτσι αφενός η λογική του logging να βρίσκεται μέσα σε κάθε core μέθοδο, και αφετέρου να έχουμε παρόμοιο κώδικα διάσπαρτο στο κώδικά μας. Ο aspect-oriented προγραμματισμός μας επιτρέπει να έχουμε modularity στον κώδικά μας. Οι δυο βασικές έννοιες του AOP είναι οι εξής: τα advices και τα pointcuts. Με τον όρο advice εννοούμε το πρόσθετο κομμάτι κώδικα που πρέπει να εκτελεστεί πέρα από την εκτέλεση του core functionality, για παράδειγμα advice είναι το logging στις τραπεζικές δοσοληψίες. Με τον όρο pointcut εννοούμε το σημείο του core functionality όπου θα πρέπει να εκτελεστεί ένα advice. Για παράδειγμα, στο logging transaction, το πρώτο pointcut βρίσκεται αμέσως πριν την εκτέλεση του core functionality (όπου θα εκτελεστεί το advice πχ «ο χρήστης είναι έγκυρος και θέλει να ακτελέσει μια κατάθεση»), και το δεύτερο pointcut είναι αμέσως μετά την ολοκλήρωση του core functionality (όπου θα εκτελεστεί το advice πχ «η συνναλαγή εκτελέστηκε με επιτυχία). Στο παρακάτω σχήμα φαίνεται πώς ένα advice «πλέκεται» σε ένα ή περισσότερα pointcuts κατά την εκτέλεση ενός προγράμματος: 67

74 Figure 36: Το advice «πλέκεται» στα διάφορα joint points κατά τη διάρκεια εκτέλεσης του προγράμματος Το Spring Framework υποστηρίζει διάφορα AOP frameworks, αλλά το πιο σημαντικό από αυτά είναι το AspectJ ( Τα aspects ορίζονται μέσα σε.xml αρχεία. Εκέι λοιπόν ορίζουμε τα advices, τα pointcuts, οπότε καταφέρνουμε να έχουμε modularity στην εφαρμογή μας. Η μαγεία όμως του AspectJ Framework έρχεται με την χρήση Annotating Aspects. Ουσιαστικά πρόκειται για χρήση aspect-oriented programming με χρήση συγκεκριμένων annotations που τοποθετούνται πάνω στις κλάσεις και μεθόδους του core functionality. Με την χρήση των aspects αποφεύγουμε την δημιουργία extra.xml αρχείων για να ορίζουμε τα aspects μας. Παρακάτω αναφέρουμε συνοπτικά τα annotations που : Μπαίνει πάνω από το όνομα της κλάσης, και δηλώνει ότι η κλάση μας δεν είναι μια απλή κλάση (POJO) αλλά υποστηρίζει aspect oriented : Μπαίνει πριν από τη δήλωση μιας μεθόδου για να δηλώσει ότι η μέθοδος είναι ένα @AfterReturning : Πρόκειται για τα advices που πρέπει να εκτελούνται πριν ή μετά την εκτέλεση των core methods 68

Διαχείριση Εφοδιαστικής Αλυσίδας

Διαχείριση Εφοδιαστικής Αλυσίδας Διαχείριση Εφοδιαστικής Αλυσίδας 1 η Διάλεξη: Βασικές Έννοιες στην Εφοδιαστική Αλυσίδα - Εξυπηρέτηση Πελατών 2015 Εργαστήριο Συστημάτων Σχεδιασμού, Παραγωγής και Λειτουργιών Ατζέντα Εισαγωγή στη Διοίκηση

Διαβάστε περισσότερα

Τ.Ε.Ι. ΚΡΗΤΗΣ, Σ.Δ.Ο., Τμήμα Λογιστικής. Business Processes

Τ.Ε.Ι. ΚΡΗΤΗΣ, Σ.Δ.Ο., Τμήμα Λογιστικής. Business Processes Τ.Ε.Ι. ΚΡΗΤΗΣ, Σ.Δ.Ο., Τμήμα Λογιστικής Business Processes Οι οργανισμοί-επιχειρήσεις υπάρχουν για να εξυπηρετούν κάποιο εμπορικό σκοπό ή να προσφέρουν κάποιες κοινωνικές υπηρεσίες. Διαφέρουν είτε στον

Διαβάστε περισσότερα

Διαχείριση Εφοδιαστική Αλυσίδας. ΤΕΙ Κρήτης / Τμήμα Διοίκησης Επιχειρήσεων

Διαχείριση Εφοδιαστική Αλυσίδας. ΤΕΙ Κρήτης / Τμήμα Διοίκησης Επιχειρήσεων Διαχείριση Εφοδιαστική Αλυσίδας ΤΕΙ Κρήτης / Τμήμα Διοίκησης Επιχειρήσεων Εισαγωγικές Έννοιες Δρ. Ρομπογιαννάκης Ιωάννης 1 Διαχείριση Εφοδιαστικής Αλυσίδας Ορισμοί - 1 - Εφοδιαστική/ Logistics: Η ολοκληρωμένη

Διαβάστε περισσότερα

Επιχειρηµατικές δραστηριότητες και εξέλιξη της εφοδιαστικής αλυσίδας

Επιχειρηµατικές δραστηριότητες και εξέλιξη της εφοδιαστικής αλυσίδας Επιχειρηµατικές δραστηριότητες και εξέλιξη της εφοδιαστικής αλυσίδας 1960s Demand Forecasting Purchasing Requirements Planning Production Planning Manufacturing Inventory Warehousing Materials Handling

Διαβάστε περισσότερα

Ηλεκτρονικό Εμπόριο. Ενότητα 7: Διαχείριση Εφοδιαστικής Αλυσίδας Σαπρίκης Ευάγγελος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Ηλεκτρονικό Εμπόριο. Ενότητα 7: Διαχείριση Εφοδιαστικής Αλυσίδας Σαπρίκης Ευάγγελος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Ηλεκτρονικό Εμπόριο Ενότητα 7: Διαχείριση Εφοδιαστικής Αλυσίδας Σαπρίκης Ευάγγελος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΣΤΕΡΕΑΣ ΕΛΛΑΔΑΣ- ΤΜΗΜΑ ΠΕΡΙΦΕΡΕΙΑΚΗΣ ΟΙΚΟΝΟΜΙΚΗΣ ΑΝΑΠΤΥΞΗΣ, ΜΑΘΗΜΑ: ΔΙΑΧΕΙΡΙΣΗ ΑΝΘΡΩΠΙΝΩΝ ΚΑΙ ΦΥΣΙΚΩΝ ΠΟΡΩΝ- ΧΡΙΣΤΟΣ ΑΠ.

ΠΑΝΕΠΙΣΤΗΜΙΟ ΣΤΕΡΕΑΣ ΕΛΛΑΔΑΣ- ΤΜΗΜΑ ΠΕΡΙΦΕΡΕΙΑΚΗΣ ΟΙΚΟΝΟΜΙΚΗΣ ΑΝΑΠΤΥΞΗΣ, ΜΑΘΗΜΑ: ΔΙΑΧΕΙΡΙΣΗ ΑΝΘΡΩΠΙΝΩΝ ΚΑΙ ΦΥΣΙΚΩΝ ΠΟΡΩΝ- ΧΡΙΣΤΟΣ ΑΠ. Χ. ΑΠ. ΛΑΔΙΑΣ Το ERP είναι ένα ολοκληρωμένο πληροφοριακό σύστημα διαχείρισης επιχειρησιακών πόρων. Διαχειρίζεται και συντονίζει όλες τις λειτουργίες και διαδικασίες που λαμβάνουν χώρα σε μια επιχείρηση.

Διαβάστε περισσότερα

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ: Logistics και Συστήματα JIT. Επιβλέπων Καθηγητής :Ιωάννης Κωνσταντάρας Σπουδάστρια :Κοντάρα Δέσποινα

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ: Logistics και Συστήματα JIT. Επιβλέπων Καθηγητής :Ιωάννης Κωνσταντάρας Σπουδάστρια :Κοντάρα Δέσποινα ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ: Logistics και Συστήματα JIT Επιβλέπων Καθηγητής :Ιωάννης Κωνσταντάρας Σπουδάστρια :Κοντάρα Δέσποινα Κεφάλαιο 1ο: Logistics Κεφάλαιο 2ο: Συστήματα J.I.T. Logistics Ορισμος των Logistics

Διαβάστε περισσότερα

Διοίκηση Παραγωγής και Υπηρεσιών

Διοίκηση Παραγωγής και Υπηρεσιών Διοίκηση Παραγωγής και Υπηρεσιών Εισαγωγή -3 Γιώργος Ιωάννου, Ph.D. Αναπληρωτής Καθηγητής Σύνοψη διάλεξης Σχεδιασμός διαδικασιών ορισμός Συστημική προσέγγιση Μεθοδολογίες σχεδιασμού διαδικασιών Διαγράμματα

Διαβάστε περισσότερα

Διοίκηση Παραγωγής και Υπηρεσιών

Διοίκηση Παραγωγής και Υπηρεσιών Διοίκηση Παραγωγής και Υπηρεσιών Διαχείριση Αποθεμάτων Βασικές Αρχές και Κατηγοριοποιήσεις Γιώργος Ιωάννου, Ph.D. Αναπληρωτής Καθηγητής Σύνοψη διάλεξης Ορισμός αποθεμάτων Κατηγορίες αποθεμάτων Λόγοι πίεσης

Διαβάστε περισσότερα

Διαχείριση Εφοδιαστικής Αλυσίδας

Διαχείριση Εφοδιαστικής Αλυσίδας Διαχείριση Εφοδιαστικής Αλυσίδας 1 η Διάλεξη: Βασικές Έννοιες στην Εφοδιαστική Αλυσίδα - Εξυπηρέτηση Πελατών 2015 Εργαστήριο Συστημάτων Σχεδιασμού, Παραγωγής και Λειτουργιών Ατζέντα Εισαγωγή στη Διοίκηση

Διαβάστε περισσότερα

Πωλήσεις. Μπίτης Αθανάσιος 2017

Πωλήσεις. Μπίτης Αθανάσιος 2017 Πωλήσεις Μπίτης Αθανάσιος 2017 Τι είναι πώληση; Πώληση είναι η μεταξύ δύο προσώπων σύμβαση με την οποία ο ένας (πωλητής) αναλαμβάνει την υποχρέωση να μεταβιβάσει την κυριότητα και να παραδώσει, αντί συμφωνημένου

Διαβάστε περισσότερα

Για δηλώσεις συμμετοχής και Πληροφορίες: Τηλ.: ,

Για δηλώσεις συμμετοχής και Πληροφορίες: Τηλ.: , Η Εκπαίδευση του Φαρμακοποιού και της Ομάδας του σε δύσκολους καιρούς Η αγορά του φαρμακείου αλλάζει δραματικά. Είναι κοινή συνείδηση ότι οι φαρμακοποιοί, βρίσκονται αφενός προ μέτρων που θα μειώσουν αισθητά

Διαβάστε περισσότερα

Ηλεκτρονικό Εμπόριο. Ενότητα 6: Διαχείριση Σχέσεων με Πελάτες Σαπρίκης Ευάγγελος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Ηλεκτρονικό Εμπόριο. Ενότητα 6: Διαχείριση Σχέσεων με Πελάτες Σαπρίκης Ευάγγελος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Ηλεκτρονικό Εμπόριο Ενότητα 6: Διαχείριση Σχέσεων με Πελάτες Σαπρίκης Ευάγγελος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

Διαβάστε περισσότερα

Πληροφοριακά συστήματα στην επιχείρηση

Πληροφοριακά συστήματα στην επιχείρηση Πληροφοριακά συστήματα στην επιχείρηση Βασικές κατηγορίες πληροφοριακών συστημάτων Οι τέσσερις βασικοί τύποι πληροφοριακών συστημάτων Βασικοί τύποι πληροφοριακών συστημάτων Βασικοί τύποι πληροφοριακών

Διαβάστε περισσότερα

Κεφάλαιο 5 Διαχείριση του Χρόνου Ανοχής

Κεφάλαιο 5 Διαχείριση του Χρόνου Ανοχής Κεφάλαιο 5 Διαχείριση του Χρόνου Ανοχής ΣΤΟΧΟΙ ΚΕΦΑΛΑΙΟΥ προσδιορισμός ορισμών και εννοιών σχετικών με τον ανταγωνισμό που βασίζεται στο χρόνο ανάδειξη τρόπου διαχείρισης χρόνου ανοχής με σκοπό την εξυπηρέτηση

Διαβάστε περισσότερα

Logistics Way H Logistics Way εξειδικεύεται στο να παρέχει προϊόντα Λογισμικού και Υπηρεσιών που καλύπτουν και εξυπηρετούν τις ιδιαίτερες ανάγκες και

Logistics Way H Logistics Way εξειδικεύεται στο να παρέχει προϊόντα Λογισμικού και Υπηρεσιών που καλύπτουν και εξυπηρετούν τις ιδιαίτερες ανάγκες και Logistics Way H Logistics Way εξειδικεύεται στο να παρέχει προϊόντα Λογισμικού και Υπηρεσιών που καλύπτουν και εξυπηρετούν τις ιδιαίτερες ανάγκες και απαιτήσεις των εταιρειών οι οποίες συμπεριλαμβάνουν

Διαβάστε περισσότερα

οικονομικές τάσεις Εκτεταμένη συνεργασία της εφοδιαστικής αλυσίδας. έργου FLUID-WIN το οποίο χρηματοδοτήθηκε από το 6ο Πρόγραμμα Πλαίσιο Παγκόσμιες

οικονομικές τάσεις Εκτεταμένη συνεργασία της εφοδιαστικής αλυσίδας. έργου FLUID-WIN το οποίο χρηματοδοτήθηκε από το 6ο Πρόγραμμα Πλαίσιο Παγκόσμιες Συνοπτική παρουσίαση του ευνητικού έργου FLUID-WIN το οποίο χρηματοδοτήθηκε από το 6ο Πρόγραμμα Πλαίσιο Ενοποίηση τρίτων παρόχων υπηρεσιών με ολόκληρη την εφοδιαστική αλυσίδα σε πολυλειτουργικές πλατφόρμες

Διαβάστε περισσότερα

Διαχείριση Εφοδιαστικών Αλυσίδων (στη γεωργία) Φίλιππος Ι. Καρυπίδης, Καθηγητής Τμήμα: Τεχνολόγων Γεωπόνων Κατ. Αγροτικής Οικονομίας

Διαχείριση Εφοδιαστικών Αλυσίδων (στη γεωργία) Φίλιππος Ι. Καρυπίδης, Καθηγητής Τμήμα: Τεχνολόγων Γεωπόνων Κατ. Αγροτικής Οικονομίας Διαχείριση Εφοδιαστικών Αλυσίδων (στη γεωργία) Διδάσκων: Φίλιππος Ι. Καρυπίδης, Καθηγητής Τμήμα: Τεχνολόγων Γεωπόνων Κατ. Αγροτικής Οικονομίας Διαχείριση Εφοδιαστικών Αλυσίδων -Φ. Καρυπίδης 1 Εφοδιαστική

Διαβάστε περισσότερα

Διοίκηση Λειτουργιών και Εφοδιαστικής Αλυσίδας

Διοίκηση Λειτουργιών και Εφοδιαστικής Αλυσίδας ΠΑΡΟΥΣΙΑΣΗ ΚΑΤΕΥΘΥΝΣΕΩΝ Διοίκηση Λειτουργιών και Εφοδιαστικής Αλυσίδας Κωνσταντίνος Ν. Ανδρουτσόπουλος Τμήμα Διοικητικής Επιστήμης και Τεχνολογίας kandro@aueb.gr ΠΕΡΙΕΧΟΜΕΝΑ ΓΝΩΣΤΙΚΗ ΠΕΡΙΟΧΗ ΔΕΞΙΟΤΗΤΕΣ/ΓΝΩΣΕΙΣ

Διαβάστε περισσότερα

Ερώτηση 3: Ποιες από τις παρακάτω αρμοδιότητες πιστεύετε ότι πρέπει να περιλαμβάνει ένα τμήμα Customer Service (επιτρέπονται μέχρι 4 απαντήσεις)

Ερώτηση 3: Ποιες από τις παρακάτω αρμοδιότητες πιστεύετε ότι πρέπει να περιλαμβάνει ένα τμήμα Customer Service (επιτρέπονται μέχρι 4 απαντήσεις) Ερώτηση 1: Ποιος από τους παρακάτω 9 θεματικούς άξονες του νέου ΕΣΠΑ πιστεύετε ότι μπορεί να βοηθήσει περισσότερο στην οικονομική ανάπτυξη της Ελλάδας (επιτρέπονται μέχρι 4 απαντήσεις) 1. Αγροδιατροφή

Διαβάστε περισσότερα

Η Oracle ανακοίνωσε την πιο ολοκληρωμένη λύση στον τομέα της Ανάλυσης δεδομένων στο Cloud

Η Oracle ανακοίνωσε την πιο ολοκληρωμένη λύση στον τομέα της Ανάλυσης δεδομένων στο Cloud Η Oracle ανακοίνωσε την πιο ολοκληρωμένη λύση στον τομέα της Ανάλυσης δεδομένων στο Cloud Το Oracle Analytics Cloud αποτελεί ένα ολοκληρωμένο σύνολο δυνατοτήτων που περιλαμβάνει έτοιμο περιεχόμενο, εξειδικευμένα

Διαβάστε περισσότερα

Η Εφοδιαστική Αλυσίδα και οι αλλαγές που έρχονται. Τα Mega Trends και οι νέοι όροι του παιχνιδιού

Η Εφοδιαστική Αλυσίδα και οι αλλαγές που έρχονται. Τα Mega Trends και οι νέοι όροι του παιχνιδιού Η Εφοδιαστική Αλυσίδα και οι αλλαγές που έρχονται Τα Mega Trends και οι νέοι όροι του παιχνιδιού Αργύρης Παπαντωνόπουλος Business Development Manager Mantis Hellas Τα Logistics λίγα χρόνια πριν Τα δεδομένα

Διαβάστε περισσότερα

Τα τελευταία χρόνια, έχουμε βιώσει ένα κλίμα αβεβαιότητας που όπως ξέρετε, είναι ό,τι χειρότερο για τις επιχειρήσεις. Το μόνο σταθερό δεδομένο που

Τα τελευταία χρόνια, έχουμε βιώσει ένα κλίμα αβεβαιότητας που όπως ξέρετε, είναι ό,τι χειρότερο για τις επιχειρήσεις. Το μόνο σταθερό δεδομένο που 1 Τα τελευταία χρόνια, έχουμε βιώσει ένα κλίμα αβεβαιότητας που όπως ξέρετε, είναι ό,τι χειρότερο για τις επιχειρήσεις. Το μόνο σταθερό δεδομένο που έχουμε, είναι ότι ζούμε σε μία εποχή μεγάλων αλλαγών.

Διαβάστε περισσότερα

ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΙΣΗΣ ΕΠΙΧΕΙΡΗΣΙΑΚΩΝ ΠΟΡΩΝ

ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΙΣΗΣ ΕΠΙΧΕΙΡΗΣΙΑΚΩΝ ΠΟΡΩΝ ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΙΣΗΣ ΕΠΙΧΕΙΡΗΣΙΑΚΩΝ ΠΟΡΩΝ BUSINESS INNOVATION TECHNOLOGY Αυτοματοποιημένες διαδικασίες, αποδοτικότερη διαχείριση πόρων, απαράμιλλη ασφάλεια δεδομένων, ευέλικτα & αναλυτικά reports αυξάνουν

Διαβάστε περισσότερα

Έλεγχος αποθεμάτων (Inventory control) 1960

Έλεγχος αποθεμάτων (Inventory control) 1960 Έλεγχος αποθεμάτων (Inventory control) 1960 Βέλτιστη Ποσότητα Παραγγελίας (Economic Order Quantity - EOQ) Αποθέματα Ασφαλείας (Safety Stock - SS) Διαχείριση Τεχνικών Προδιαγραφών (Bill of Material Processing

Διαβάστε περισσότερα

ιαχείριση Εφοδιαστικής Αλυσίδας

ιαχείριση Εφοδιαστικής Αλυσίδας ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙ ΕΥΤΙΚΟ Ι ΡΥΜΑ ΙΟΝΙΩΝ ΝΗΣΩΝ ΣΧΟΛΗ ΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ ΕΙΣΑΓΩΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ: ΙΟΙΚΗΣΗ ΕΠΙΧΕΙΡΗΣΕΩΝ ιαχείριση Εφοδιαστικής Αλυσίδας Εφοδιαστική Αλυσίδα Εισαγωγικές

Διαβάστε περισσότερα

19_05_2016. Ειρήνη Χάδιαρη-Γκιάλα. End to End value added services for your Customer. Εξυπηρετώντας πολλαπλά σημεία λιανικής σε αστικό περιβάλλον

19_05_2016. Ειρήνη Χάδιαρη-Γκιάλα. End to End value added services for your Customer. Εξυπηρετώντας πολλαπλά σημεία λιανικής σε αστικό περιβάλλον End to End value added services for your Customer Εξυπηρετώντας πολλαπλά σημεία λιανικής σε αστικό περιβάλλον Ειρήνη Χάδιαρη-Γκιάλα Managing Partner 19_05_2016 Αποστολή Να προσφέρει στους πελάτες το ανταγωνιστικό

Διαβάστε περισσότερα

Οι ηλεκτρονικές αγορές αποτελούν χρήσιμο

Οι ηλεκτρονικές αγορές αποτελούν χρήσιμο ΕΡΓΑΣΤΗΡΙΟ ΗΛΕΚΤΡΟΝΙΚΟΥ ΕΜΠΟΡΙΟΥ(ELTRUN) Οι ηλεκτρονικές αγορές αποτελούν χρήσιμο ε εργαλείο διευκόλυνσης των εταιρικών συναλλαγών εξελίσσονται οι Σ ηλεκτρονικές αγορές (e-marketplaces), σύμφωνα με έρευνα

Διαβάστε περισσότερα

ΠΑΡΑΓΟΝΤΕΣ ΕΝΙΣΧΥΣΗΣ ΣΤΗΝ ΑΝΑΠΤΥΞΗ ΤΩΝ LOGISTICS Όσο λοιπόν αυξάνει η σημασία και οι απαιτήσεις του διεθνούς εμπορίου, τόσο πιο απαιτητικές γίνονται

ΠΑΡΑΓΟΝΤΕΣ ΕΝΙΣΧΥΣΗΣ ΣΤΗΝ ΑΝΑΠΤΥΞΗ ΤΩΝ LOGISTICS Όσο λοιπόν αυξάνει η σημασία και οι απαιτήσεις του διεθνούς εμπορίου, τόσο πιο απαιτητικές γίνονται ΠΑΡΑΓΟΝΤΕΣ ΕΝΙΣΧΥΣΗΣ ΣΤΗΝ ΑΝΑΠΤΥΞΗ ΤΩΝ LOGISTICS Όσο λοιπόν αυξάνει η σημασία και οι απαιτήσεις του διεθνούς εμπορίου, τόσο πιο απαιτητικές γίνονται και οι συνθήκες μεταφοράς και διανομής. Το διεθνές εμπόριο

Διαβάστε περισσότερα

Επιχειρηματική Στρατηγική & Επιχειρηματικό Μοντέλο

Επιχειρηματική Στρατηγική & Επιχειρηματικό Μοντέλο Επιχειρηματική Στρατηγική & Επιχειρηματικό Μοντέλο Γ. Σταμπουλής Εισαγωγή στην Επιχειρηματικότητα Ο σκοπός της επιχείρησης Παραγωγή αξίας Αξιοποιώντας πόρους (υλικούς και άυλους, εσωτερικούς και εξωτερικούς),

Διαβάστε περισσότερα

ΠΑΡΟΥΣΙΑΣΗ ΚΑΤΕΥΘΥΝΣΕΩΝ Διοίκηση Λειτουργιών και Εφοδιαστικής Αλυσίδας

ΠΑΡΟΥΣΙΑΣΗ ΚΑΤΕΥΘΥΝΣΕΩΝ Διοίκηση Λειτουργιών και Εφοδιαστικής Αλυσίδας ΠΑΡΟΥΣΙΑΣΗ ΚΑΤΕΥΘΥΝΣΕΩΝ Διοίκηση Λειτουργιών και Εφοδιαστικής Αλυσίδας Λέκτορας Κωνσταντίνος Ν. Ανδρουτσόπουλος Τμήμα Διοικητικής Επιστήμης και Τεχνολογίας kandro@aueb.gr Ορισμοί Διοίκηση Εφοδιαστικής

Διαβάστε περισσότερα

ΕΦΟΔΙΑΣΤΙΚΗ LOGISTICS

ΕΦΟΔΙΑΣΤΙΚΗ LOGISTICS Α.Τ.Ε.Ι. ΙΟΝΙΩΝ ΝΗΣΩΝ Τμήμα Διοίκησης Επιχειρήσεων ΕΦΟΔΙΑΣΤΙΚΗ LOGISTICS Καθηγητής Ηλίας Ζήλας MSc in Information Systems ΑΚΑΔΗΜΑΪΚΟΣ ΕΤΟΣ 2008-2009 ΕΝΟΤΗΤΕΣ ΜΑΘΗΜΑΤΟΣ ΒΑΣΙΚΕΣ ΕΙΣΑΓΩΓΙΚΕΣ ΕΝΝΟΙΕΣ - ΟΡΙΣΜΟΙ

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΜΟΝΤΕΛΑ SCOR ΕΝΝΟΙΑ SCOR Ορισμός των μοντέλων SCOR Το μοντέλο SCOR είναι ένα μοντέλο αναφοράς διαδικασιών για την εφοδιαστική αλυσίδα (η ονομασία του προέρχεται από τα αρχικά γράμματα

Διαβάστε περισσότερα

Τσικολάτας Α. (2009) Customer Relationship Management - CRM. Πάτρα

Τσικολάτας Α. (2009) Customer Relationship Management - CRM. Πάτρα ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ ΣΤΗ ΔΙΟΙΚΗΣΗ ΕΠΙΧ/ΕΩΝ Μεταπτυχιακή Εργασία για το Customer Relationship Management Εργασία Μεταπτυχιακών Φοιτητών: Κάρλος

Διαβάστε περισσότερα

Γενική Εισαγωγή. I. Εξώφυλλο. II. Εισαγωγική Σελίδα. III. Περιεχόμενα. IV. Executive Summary

Γενική Εισαγωγή. I. Εξώφυλλο. II. Εισαγωγική Σελίδα. III. Περιεχόμενα. IV. Executive Summary Business Plan Γενική Εισαγωγή I. Εξώφυλλο II. Εισαγωγική Σελίδα III. Περιεχόμενα IV. Executive Summary 1 Εσωτερική Ανάλυση 1.1 Περιγραφή της επιχείρησης 1.2 Προϊόντα / Υπηρεσίες 1.3 Τοποθεσία 1.4 Ανθρώπινο

Διαβάστε περισσότερα

Πίνακας περιεχομένων. Μέρος 1ο ΑΝΤΑΓΩΝΙΣΤΙΚΟ ΠΛΕΟΝΕΚΤΗΜΑ ΜΕΣΩ ΤΩΝ LOGISTICS

Πίνακας περιεχομένων. Μέρος 1ο ΑΝΤΑΓΩΝΙΣΤΙΚΟ ΠΛΕΟΝΕΚΤΗΜΑ ΜΕΣΩ ΤΩΝ LOGISTICS Πίνακας περιεχομένων Εισαγωγικό Σημείωμα Ελληνικής Έκδοσης..............................................17 Εισαγωγικό σημείωμα................................................................ 19 Ευχαριστίες

Διαβάστε περισσότερα

Το S&OP Sales and Operations Planning

Το S&OP Sales and Operations Planning Γ. Γιαννόπουλος Διευθυντής Κεντρικού Προγραμματισμού και S&OP Coordinator Το S&OP Sales and Operations Planning Ως εργαλείο μετασχηματισμού των επιχειρήσεων BUSINESS TRANSFORMATION Η Kodak εφηύρε την ψηφιακή

Διαβάστε περισσότερα

5 o Συνέδριο Βιώσιμης Κινητικότητας & Ευφυών Μεταφορών

5 o Συνέδριο Βιώσιμης Κινητικότητας & Ευφυών Μεταφορών 5 o Συνέδριο Βιώσιμης Κινητικότητας & Ευφυών Μεταφορών «The Future of Technologies - Trends that will shaping and Self-Orchestrate the Supply Chain» Dionisis Grigoropoulos Managing Director Logistics Way

Διαβάστε περισσότερα

Διοίκηση Λειτουργιών και Εφοδιαστικής Αλυσίδας

Διοίκηση Λειτουργιών και Εφοδιαστικής Αλυσίδας ΠΑΡΟΥΣΙΑΣΗ ΚΑΤΕΥΘΥΝΣΕΩΝ Διοίκηση Λειτουργιών και Εφοδιαστικής Αλυσίδας Κωνσταντίνος Ν. Ανδρουτσόπουλος Τμήμα Διοικητικής Επιστήμης και Τεχνολογίας kandro@aueb.gr ΠΕΡΙΕΧΟΜΕΝΑ ΓΝΩΣΤΙΚΗ ΠΕΡΙΟΧΗ ΔΕΞΙΟΤΗΤΕΣ/ΓΝΩΣΕΙΣ

Διαβάστε περισσότερα

Αρχές Οργάνωσης και Διοίκησης Επιχειρήσεων και Υπηρεσιών ΝΙΚΟΛΑΟΣ Χ. ΤΖΟΥΜΑΚΑΣ ΟΙΚΟΝΟΜΟΛΟΓΟΣ ΠΡΟΣΟΜΟΙΩΣΗ ΔΙΑΓΩΝΙΣΜΑΤΩΝ 2.

Αρχές Οργάνωσης και Διοίκησης Επιχειρήσεων και Υπηρεσιών ΝΙΚΟΛΑΟΣ Χ. ΤΖΟΥΜΑΚΑΣ ΟΙΚΟΝΟΜΟΛΟΓΟΣ ΠΡΟΣΟΜΟΙΩΣΗ ΔΙΑΓΩΝΙΣΜΑΤΩΝ 2. Αρχές Οργάνωσης και Διοίκησης Επιχειρήσεων και Υπηρεσιών ΕΠΙΜΕΕΙΑ: ΝΙΚΟΑΟ Χ. ΤΖΟΥΜΑΚΑ ΟΙΚΟΝΟΜΟΟΓΟ ΠΡΟΟΜΟΙΩΗ ΔΙΑΓΩΝΙΜΑΤΩΝ 2 Κεφάλαιο 2 ο Η Επιστήμη της Διοίκησης των Επιχειρήσεων Ομάδα Α Ερωτήσεις ωστού

Διαβάστε περισσότερα

Μονοπάτια Επιχειρηματικότητας

Μονοπάτια Επιχειρηματικότητας Μονοπάτια Επιχειρηματικότητας ΕΠΙΧΕΙΡΗΜΑΤΙΚΟΤΗΤΑ Επιχειρηματικός Καμβάς Ναούμ Λιώτας Σύμβουλος Ανάπτυξης Ανθρ. Δυναμικού, Επιμορφωτής, Business Coach, Ψυχοθεραπευτής Gestalt Ο Επιχειρηματικός Καμβάς Είναι

Διαβάστε περισσότερα

Route to Market opportunities

Route to Market opportunities The business case Η διοίκηση και διαχείριση των Καναλιών Πωλήσεων & Διανομής Η διοίκηση και διαχείριση των καναλιών πωλήσεων & διανομής - Route To Market - που χρησιμοποιούν οι εταιρείες των καταναλωτικών

Διαβάστε περισσότερα

ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ

ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Μαρίνος Θεμιστοκλέους Email: mthemist@unipi.gr Ανδρούτσου 150 Γραφείο 206 Τηλ. 210 414 2723 Ώρες Γραφείου: Δευτέρα 11-12 AM Πληροφοριακά Συστήματα (ΠΣ) Information Systems (IS) Ορισμός

Διαβάστε περισσότερα

ΟΔΗΓΙΕΣ ΓΙΑ ΤΟ BUSINESS PLAN

ΟΔΗΓΙΕΣ ΓΙΑ ΤΟ BUSINESS PLAN ΟΔΗΓΙΕΣ ΓΙΑ ΤΟ BUSINESS PLAN Business Plan (Γραπτή Τελική Εταιρική Αναφορά) Το business plan (γραπτή αναφορά) είναι η ολοκληρωμένη και αναλυτική αποτύπωση της επιχειρηματικής σας ιδέας με τρόπο που να

Διαβάστε περισσότερα

Κεφάλαιο 2 ο. Συστήματα Πληροφοριών στην επιχείρηση

Κεφάλαιο 2 ο. Συστήματα Πληροφοριών στην επιχείρηση Κεφάλαιο 2 ο Συστήματα Πληροφοριών στην επιχείρηση Διδακτικοί στόχοι Να αναλυθούν οι ρόλοι των 6 τύπων των συστημάτων πληροφοριών Να περιγραφούν οι τύποι των πληροφοριακών συστημάτων Να αναλυθούν οι σχέσεις

Διαβάστε περισσότερα

ΣΥΓΧΡΟΝΕΣ ΤΑΣΕΙΣ ΚΑΙ ΠΡΑΚΤΙΚΕΣ ΣΤΟ ORDER PROCESSING. Υπό: Σ. Ανδριανόπουλου, Executive Consultant, Planning A.E.

ΣΥΓΧΡΟΝΕΣ ΤΑΣΕΙΣ ΚΑΙ ΠΡΑΚΤΙΚΕΣ ΣΤΟ ORDER PROCESSING. Υπό: Σ. Ανδριανόπουλου, Executive Consultant, Planning A.E. ΣΥΓΧΡΟΝΕΣ ΤΑΣΕΙΣ ΚΑΙ ΠΡΑΚΤΙΚΕΣ ΣΤΟ ORDER PROCESSING Υπό: Σ. Ανδριανόπουλου, Executive Consultant, Planning A.E. Τα όρια του Order Processing (1/2) Η σύγχρονη φιλοσοφία οργάνωσης των επιχειρήσεων είναι

Διαβάστε περισσότερα

5.1. Χωροταξικός Σχεδιασμός Κριτήρια αξιολόγησης Χωροταξικού Σχεδιασμού Δραστηριότητες Χωροταξικού Σχεδιασμού...

5.1. Χωροταξικός Σχεδιασμός Κριτήρια αξιολόγησης Χωροταξικού Σχεδιασμού Δραστηριότητες Χωροταξικού Σχεδιασμού... ΚΕΦΑΛΑΙΟ 5. ΧΩΡΟΤΑΞΙΚΟΣ ΣΧΕΔΙΑΣΜΟΣ Περιεχόμενα 5.1. Χωροταξικός Σχεδιασμός... 2 5.2. Κριτήρια αξιολόγησης Χωροταξικού Σχεδιασμού... 4 5.3. Δραστηριότητες Χωροταξικού Σχεδιασμού... 5 5.4. Τύποι Χωροταξίας...

Διαβάστε περισσότερα

ΔΙΑΧΕΙΡΙΣΗ ΕΦΟΔΙΑΣΤΙΚΩΝ ΑΛΥΣΙΔΩΝ

ΔΙΑΧΕΙΡΙΣΗ ΕΦΟΔΙΑΣΤΙΚΩΝ ΑΛΥΣΙΔΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΔΥΤΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ ΤΜΗΜΑ ΜΗΧΑΝΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΔΙΑΧΕΙΡΙΣΗ ΕΦΟΔΙΑΣΤΙΚΩΝ ΑΛΥΣΙΔΩΝ Tασιάς Κωνσταντίνος E-mail: ktasias@uowm.gr Προμήθειες Παραγωγή Μεταφορές Αποθήκευση Marketing- Πωλήσεις ΟΛΟΚΛΗΡΩΣΗ

Διαβάστε περισσότερα

Τα logistics και οι επιχειρηματικές ευκαιρίες που προσφέρουν

Τα logistics και οι επιχειρηματικές ευκαιρίες που προσφέρουν Πανεπιστήμιο Πειραιά Τα logistics και οι επιχειρηματικές ευκαιρίες που προσφέρουν Κουκουράκης Δημήτρης MSc Logistics ΕΜΠ-Πανεπιστήμιο Πειραιά Μάϊος 2012 Logistics (business) Είναι το τμήμα της επιχείρησης

Διαβάστε περισσότερα

Πληροφοριακά Συστήματα Διοίκησης. Διοικητική Επιστήμη και Λήψη Αποφάσεων

Πληροφοριακά Συστήματα Διοίκησης. Διοικητική Επιστήμη και Λήψη Αποφάσεων Πληροφοριακά Συστήματα Διοίκησης Διοικητική Επιστήμη και Λήψη Αποφάσεων Η πολυπλοκότητα των αποφάσεων Αυξανόμενη πολυπλοκότητα λόγω: Ταχύτητας αλλαγών στο εξωτερικό περιβάλλον της επιχείρησης. Έντασης

Διαβάστε περισσότερα

Εισαγωγική Παρουσίαση

Εισαγωγική Παρουσίαση ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ Η/Υ HTTP://ACADEMICS.EPU.NTUA.GR Εισαγωγική Παρουσίαση 2011-2012 Στόχοι του μαθήματος Πρακτική εφαρμογή των γνώσεων που έχουν αποκτηθεί

Διαβάστε περισσότερα

Καμβάς Επιχειρηματικού Μοντέλου

Καμβάς Επιχειρηματικού Μοντέλου ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Καμβάς Επιχειρηματικού Μοντέλου Συμπληρωματικές Σημειώσεις για την 1 η Εργασία στα Συστήματα Διοίκησης ΣΥΣΤΗΜΑΤΑ ΔΙΟΙΚΗΣΗΣ

Διαβάστε περισσότερα

ΑΡΘΡΟ «ΕΞΙ ΣΤΟΥΣ ΔΕΚΑ ΕΛΛΗΝΕΣ ΧΡΗΣΙΜΟΠΟΙΟΥΝ ΠΛΕΟΝ ΚΑΘΗΜΕΡΙΝΑ ΤΟ ΔΙΑΔΙΚΤΥΟ»

ΑΡΘΡΟ «ΕΞΙ ΣΤΟΥΣ ΔΕΚΑ ΕΛΛΗΝΕΣ ΧΡΗΣΙΜΟΠΟΙΟΥΝ ΠΛΕΟΝ ΚΑΘΗΜΕΡΙΝΑ ΤΟ ΔΙΑΔΙΚΤΥΟ» ΑΡΘΡΟ «ΕΞΙ ΣΤΟΥΣ ΔΕΚΑ ΕΛΛΗΝΕΣ ΧΡΗΣΙΜΟΠΟΙΟΥΝ ΠΛΕΟΝ ΚΑΘΗΜΕΡΙΝΑ ΤΟ ΔΙΑΔΙΚΤΥΟ» Ηλεκτρονικό Εμπόριο Ως Ηλεκτρονικό Εμπόριο ή ευρέως γνωστό ως e- commerce, είναι το εμπόριο παροχής αγαθών και υπηρεσιών που

Διαβάστε περισσότερα

«Το σήμερα και το αύριο στην αγορά εργασίας» TITAN, 24/11/2017

«Το σήμερα και το αύριο στην αγορά εργασίας» TITAN, 24/11/2017 16 ο Βήμα Μεταπτυχιακού Φοιτητή «Το σήμερα και το αύριο στην αγορά εργασίας» TITAN, 24/11/2017 Νίκη Φουρλή Οι εταιρείες του σήμερα και του μέλλοντος.. Σήμερα, οι περισσότερες εταιρείες θέτουν τα θεμέλια

Διαβάστε περισσότερα

Ανταγωνιστική στρατηγική

Ανταγωνιστική στρατηγική Ανταγωνιστική στρατηγική Δρ Αντώνης Λιβιεράτος 1. Πηγές ανταγωνιστικού Όμοια προϊόντα Χαμηλότερο κόστος Πλεονέκτημα κόστους Ανταγωνιστικό πλεονέκτημα Υψηλή τιμή Μοναδικό προϊόν Πλεονέκτημα διαφοροποίησης

Διαβάστε περισσότερα

Τα 4P Κανάλια Διανομής

Τα 4P Κανάλια Διανομής Τα 4P Κανάλια Νικόλαος Α. Παναγιώτου Αναπληρωτής Καθηγητής Τομέας Βιομηχανικής Διοίκησης & Επιχειρησιακής Έρευνας Σχολή Μηχανολόγων Μηχανικών 1 @ Ιανουάριος 2017 Περιεχόμενα Εισαγωγικά Στοιχεία Βασικές

Διαβάστε περισσότερα

ΔΙΑΧΕΙΡΙΣΗ ΠΛΗΡΟΦΟΡΙΩΝ ΚΑΙ ΣΧΕΣΕΩΝ ΣΤΗΝ ΑΛΥΣΙΔΑ ΠΡΟΜΗΘΕΙΩΝ ΚΑΙ ΔΙΑΝΟΜΗΣ ΦΑΡΜΑΚΕΥΤΙΚΩΝ ΠΡΟΪΟΝΤΩΝ. ΠΑΝΤΑΖΟΓΛΟΥ ΕΥΑΓΓΕΛΙΑ Φαρμακοποιός ΜΒΑ

ΔΙΑΧΕΙΡΙΣΗ ΠΛΗΡΟΦΟΡΙΩΝ ΚΑΙ ΣΧΕΣΕΩΝ ΣΤΗΝ ΑΛΥΣΙΔΑ ΠΡΟΜΗΘΕΙΩΝ ΚΑΙ ΔΙΑΝΟΜΗΣ ΦΑΡΜΑΚΕΥΤΙΚΩΝ ΠΡΟΪΟΝΤΩΝ. ΠΑΝΤΑΖΟΓΛΟΥ ΕΥΑΓΓΕΛΙΑ Φαρμακοποιός ΜΒΑ ΔΙΑΧΕΙΡΙΣΗ ΠΛΗΡΟΦΟΡΙΩΝ ΚΑΙ ΣΧΕΣΕΩΝ ΣΤΗΝ ΑΛΥΣΙΔΑ ΠΡΟΜΗΘΕΙΩΝ ΚΑΙ ΔΙΑΝΟΜΗΣ ΦΑΡΜΑΚΕΥΤΙΚΩΝ ΠΡΟΪΟΝΤΩΝ ΠΑΝΤΑΖΟΓΛΟΥ ΕΥΑΓΓΕΛΙΑ Φαρμακοποιός ΜΒΑ 1 Δραστηριότητες Εφοδιαστικής Αλυσίδας 2 O φαρμακευτικός κλάδος παρουσιάζει

Διαβάστε περισσότερα

ΒΑΣΙΚΟΙ ΤΟΜΕΙΣ ΑΝΑΦΟΡΑΣ ΕΝΟΣ BUSINESS PLAN. Εισαγωγή

ΒΑΣΙΚΟΙ ΤΟΜΕΙΣ ΑΝΑΦΟΡΑΣ ΕΝΟΣ BUSINESS PLAN. Εισαγωγή ΒΑΣΙΚΟΙ ΤΟΜΕΙΣ ΑΝΑΦΟΡΑΣ ΕΝΟΣ BUSINESS PLAN Εισαγωγή Η κατάρτιση ενός Επιχειρηματικού Σχεδίου αποτελεί ένα εργαλείο στο οποίο καταγράφεται ουσιαστικά το «Πλάνο Δράσης» της επιχείρησης, τα βήματα που θα

Διαβάστε περισσότερα

ιοίκηση Πληροφοριακών Συστηµάτων

ιοίκηση Πληροφοριακών Συστηµάτων ιοίκηση Πληροφοριακών Συστηµάτων ιάλεξη 4 η 4.1 Αρχιτεκτονική Επιχειρησιακών Εφαρµογών 4.2 1 Επιχειρησιακά Συστήµατα ή Επιχειρησιακά Συστήµατα ιαχείρισης Πόρων(ERPs) Συστήµατα ιαχείρισης Εφοδιαστικής Αλυσίδας

Διαβάστε περισσότερα

ΔΙΑΧΕΙΡΙΣΗ ΕΦΟΔΙΑΣΤΙΚΗΣ ΑΛΥΣΙΔΑΣ

ΔΙΑΧΕΙΡΙΣΗ ΕΦΟΔΙΑΣΤΙΚΗΣ ΑΛΥΣΙΔΑΣ Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων ΔΙΑΧΕΙΡΙΣΗ ΕΦΟΔΙΑΣΤΙΚΗΣ ΑΛΥΣΙΔΑΣ Ενότητα 4: Στρατηγικές Αποφάσεις στη Διαχείριση Εφοδιαστικής Αλυσίδας Το περιεχόμενο του μαθήματος διατίθεται με άδεια

Διαβάστε περισσότερα

Ενότητα 4: Πληροφοριακά συστήματα για την επιχείρηση

Ενότητα 4: Πληροφοριακά συστήματα για την επιχείρηση Ενότητα 4: Πληροφοριακά συστήματα για την επιχείρηση Χρηματοοικονομική διοίκηση Χρηματοοικονομικό ΠΣ: επιχειρησιακό ΠΣ που υπάρχει σχεδόν σε κάθε οργανισμό και υποστηρίζει χρηματοοικονομικούς λογαριασμούς

Διαβάστε περισσότερα

Αρχές Διοίκησης και Οργάνωση Παραγωγής

Αρχές Διοίκησης και Οργάνωση Παραγωγής Αρχές Διοίκησης και Οργάνωση Παραγωγής 2015-16 Α.Τσίπουρας Εισαγωγή Στόχος του μαθήματος Σύγχρονες παγκόσμιες εξελίξεις, απελευθέρωση αγορών, ηλεκτρονικό εμπόριο Ανταγωνιστικό Περιβάλλον, Taxύτατες αλλαγές

Διαβάστε περισσότερα

Το νέο τοπίο στην αγορά ηλεκτρικής ενέργειας και ο ρόλος του Διαχειριστή Δικτύου Διανομής (ΔΕΔΔΗΕ)

Το νέο τοπίο στην αγορά ηλεκτρικής ενέργειας και ο ρόλος του Διαχειριστή Δικτύου Διανομής (ΔΕΔΔΗΕ) Ιωάννης Μάργαρης Αντιπρόεδρος ΔΣ ΔΕΔΔΗΕ Α.Ε. Διαχειριστής Δικτύου Διανομής Ηλεκτρικής Ενέργειας Α.Ε. Το νέο τοπίο στην αγορά ηλεκτρικής ενέργειας και ο ρόλος του Διαχειριστή Δικτύου Διανομής (ΔΕΔΔΗΕ) ανάγκη

Διαβάστε περισσότερα

Βελτιστοποιώντας τις λειτουργίες εξόρυξης

Βελτιστοποιώντας τις λειτουργίες εξόρυξης Βελτιστοποιώντας τις λειτουργίες εξόρυξης Η ενοποίηση λογισμικών στις επιχειρήσεις εξόρυξης αποτελεί το κλειδί για την αυξημένη παραγωγικότητα Ενώ ο τομέας των φυσικών πόρων συνεχίζει να αναπτύσσεται,

Διαβάστε περισσότερα

Η επιχειρηματική ιδέα και η εταιρία spin off. Βασίλης Μουστάκης Καθηγητής Πολυτεχνείου Κρήτης vmoustakis@gmail.com

Η επιχειρηματική ιδέα και η εταιρία spin off. Βασίλης Μουστάκης Καθηγητής Πολυτεχνείου Κρήτης vmoustakis@gmail.com Η επιχειρηματική ιδέα και η εταιρία spin off Βασίλης Μουστάκης Καθηγητής Πολυτεχνείου Κρήτης vmoustakis@gmail.com Έρευνα αγοράς (Ι) Ανάγκη στην αγορά (κάτι που η αγορά θέλει αλλά δεν το έχει) Σύλληψη και

Διαβάστε περισσότερα

Αύξηση κερδών μέσω της μετάβασης σε πελατοκεντρικό μοντέλο επιχείρησης

Αύξηση κερδών μέσω της μετάβασης σε πελατοκεντρικό μοντέλο επιχείρησης Αύξηση κερδών μέσω της μετάβασης σε πελατοκεντρικό μοντέλο επιχείρησης Παρουσίαση του CRM Customer Relationship Management Ιανουάριος 2005 Αντζέντα... Βελτίωση εταιρικής εικόνας Απόκτηση πολύτιμης γνώσης

Διαβάστε περισσότερα

ΔΙΑΧΕΙΡΙΣΗ ΠΛΗΡΟΦΟΡΙΩΝ ΚΑΙ ΣΧΕΣΕΩΝ ΣΤΗΝ ΑΛΥΣΙΔΑ ΠΡΟΜΗΘΕΙΩΝ ΚΑΙ ΔΙΑΝΟΜΗΣ ΦΑΡΜΑΚΕΥΤΙΚΩΝ ΠΡΟΪΟΝΤΩΝ ΠΑΝΤΑΖΟΓΛΟΥ ΕΥΑΓΓΕΛΙΑ

ΔΙΑΧΕΙΡΙΣΗ ΠΛΗΡΟΦΟΡΙΩΝ ΚΑΙ ΣΧΕΣΕΩΝ ΣΤΗΝ ΑΛΥΣΙΔΑ ΠΡΟΜΗΘΕΙΩΝ ΚΑΙ ΔΙΑΝΟΜΗΣ ΦΑΡΜΑΚΕΥΤΙΚΩΝ ΠΡΟΪΟΝΤΩΝ ΠΑΝΤΑΖΟΓΛΟΥ ΕΥΑΓΓΕΛΙΑ ΔΙΑΧΕΙΡΙΣΗ ΠΛΗΡΟΦΟΡΙΩΝ ΚΑΙ ΣΧΕΣΕΩΝ ΣΤΗΝ ΑΛΥΣΙΔΑ ΠΡΟΜΗΘΕΙΩΝ ΚΑΙ ΔΙΑΝΟΜΗΣ ΦΑΡΜΑΚΕΥΤΙΚΩΝ ΠΡΟΪΟΝΤΩΝ ΠΑΝΤΑΖΟΓΛΟΥ ΕΥΑΓΓΕΛΙΑ 1 Δραστηριότητες Εφοδιαστικής Αλυσίδας 2 O φαρμακευτικός κλάδος παρουσιάζει κάποιες

Διαβάστε περισσότερα

ΕΙΣΑΓΩΓΗ ΣΤΗ ΔΙΑΧΕΙΡΙΣΗ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΕΡΓΩΝ

ΕΙΣΑΓΩΓΗ ΣΤΗ ΔΙΑΧΕΙΡΙΣΗ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΕΡΓΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗ ΔΙΑΧΕΙΡΙΣΗ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΕΡΓΩΝ 1. Διαχείριση έργων Τις τελευταίες δεκαετίες παρατηρείται σημαντική αξιοποίηση της διαχείρισης έργων σαν ένα εργαλείο με το οποίο οι διάφορες επιχειρήσεις

Διαβάστε περισσότερα

Γνωρίστε καλύτερα τους πελάτες σας

Γνωρίστε καλύτερα τους πελάτες σας Γνωρίστε καλύτερα τους πελάτες σας Οι πελάτες στο κέντρο της προσοχής Η αποτελεσματική διαχείριση των σχέσεων με τους πελάτες βρίσκεται στο επίκεντρο κάθε λειτουργίας της επιχείρησης σας, ανεξάρτητα από

Διαβάστε περισσότερα

ΤΕΧΝΟΛΟΓΙΕΣ ΠΛΗΡΟΦΟΡΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ ΣΤΟΝ ΤΟΥΡΙΣΜΟ

ΤΕΧΝΟΛΟΓΙΕΣ ΠΛΗΡΟΦΟΡΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ ΣΤΟΝ ΤΟΥΡΙΣΜΟ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ - ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ ΕΙΣΑΓΩΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ ΤΟΥΡΙΣΤΙΚΩΝ ΕΠΙΧΕΙΡΗΣΕΩΝ ΚΑΙ ΕΠΙΧΕΙΡΗΣΕΩΝ ΦΙΛΟΞΕΝΙΑΣ ΤΕΧΝΟΛΟΓΙΕΣ ΠΛΗΡΟΦΟΡΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ ΣΤΟΝ ΤΟΥΡΙΣΜΟ 1 η ΔΙΑΛΕΞΗ

Διαβάστε περισσότερα

Μοντέλα Διαχείρισης Αποθεμάτων

Μοντέλα Διαχείρισης Αποθεμάτων Μοντέλα Διαχείρισης Αποθεμάτων 2 Εισαγωγή (1) Ο όρος απόθεμα αναφέρεται σε προϊόντα και υλικά που αποθηκεύονται από την επιχείρηση για μελλοντική χρήση Τα αποθέματα μπορεί να περιλαμβάνουν Πρώτες ύλες

Διαβάστε περισσότερα

Τεχνολογίες Πληροφορίας και Επικοινωνίας στον Τουρισμό (Γ εξάμηνο)

Τεχνολογίες Πληροφορίας και Επικοινωνίας στον Τουρισμό (Γ εξάμηνο) Τεχνολογίες Πληροφορίας και Επικοινωνίας στον Τουρισμό (Γ εξάμηνο) Ακαδ. Έτος 2014-15 e-tourism και internet Β. Φερεντίνος από την πλευρά της επιχείρησης ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ - ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ

Διαβάστε περισσότερα

ΟΡΓAΝΩΣΗ / ΔΙΟIΚΗΣΗ ΠΑΡΑΓΩΓHΣ: ΕΙΣΑΓΩΓΙΚEΣ EΝΝΟΙΕΣ. Διοίκηση Παραγωγής & Συστημάτων Υπηρεσιών ΕΡΓΑΣΤΗΡΙΟ ΣΥΣΤΗΜΑΤΩΝ ΑΠΟΦΑΣΕΩΝ ΚΑΙ ΔΙΟΙΚΗΣΗΣ

ΟΡΓAΝΩΣΗ / ΔΙΟIΚΗΣΗ ΠΑΡΑΓΩΓHΣ: ΕΙΣΑΓΩΓΙΚEΣ EΝΝΟΙΕΣ. Διοίκηση Παραγωγής & Συστημάτων Υπηρεσιών ΕΡΓΑΣΤΗΡΙΟ ΣΥΣΤΗΜΑΤΩΝ ΑΠΟΦΑΣΕΩΝ ΚΑΙ ΔΙΟΙΚΗΣΗΣ ΟΡΓAΝΩΣΗ / ΔΙΟIΚΗΣΗ ΠΑΡΑΓΩΓHΣ: ΕΙΣΑΓΩΓΙΚEΣ EΝΝΟΙΕΣ Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ Διοίκηση Παραγωγής & Συστημάτων Υπηρεσιών ΕΡΓΑΣΤΗΡΙΟ ΣΥΣΤΗΜΑΤΩΝ ΑΠΟΦΑΣΕΩΝ ΚΑΙ

Διαβάστε περισσότερα

ΠΡΟΔΙΑΓΡΑΦΕΣ ΕΝΟΣ ΗΛΕΚΤΡΟΝΙΚΟΥ ΚΑΤΑΣΤΗΜΑΤΟΣ

ΠΡΟΔΙΑΓΡΑΦΕΣ ΕΝΟΣ ΗΛΕΚΤΡΟΝΙΚΟΥ ΚΑΤΑΣΤΗΜΑΤΟΣ ΠΡΟΔΙΑΓΡΑΦΕΣ ΕΝΟΣ ΗΛΕΚΤΡΟΝΙΚΟΥ ΚΑΤΑΣΤΗΜΑΤΟΣ Σύμφωνα με όλα τα παραπάνω ο τρόπος ανάπτυξης των ηλεκτρονικών καταστημάτων μπορεί να αναλυθεί με κάποιες συγκεκριμένες προδιαγραφές, οι οποίες μπορεί να είναι

Διαβάστε περισσότερα

Κεφάλαιο 7 Παράδοση την Στιγμή που Χρειάζεται (Just-in-Time) και Ευέλικτη Αλυσίδα Εφοδιασμού

Κεφάλαιο 7 Παράδοση την Στιγμή που Χρειάζεται (Just-in-Time) και Ευέλικτη Αλυσίδα Εφοδιασμού Κεφάλαιο 7 Παράδοση την Στιγμή που Χρειάζεται (Just-in-Time) και Ευέλικτη Αλυσίδα Εφοδιασμού ΣΤΟΧΟΙ ΚΕΦΑΛΑΙΟΥ ανάπτυξη τρόπου χρησιμοποίησης φιλοσοφίας του Just-in-time εισαγωγή έννοιας της ευέλικτης αλυσίδας

Διαβάστε περισσότερα

E-SHOP.GR Η ΑΝΑΤΡΟΠΗ ΜΙΑΣ ΚΛΑΣΣΙΚΗΣ ΑΓΟΡΑΣ ΧΑΡΗ ΣΤΗΝ ΚΑΙΝΟΤΟΜΙΑ

E-SHOP.GR Η ΑΝΑΤΡΟΠΗ ΜΙΑΣ ΚΛΑΣΣΙΚΗΣ ΑΓΟΡΑΣ ΧΑΡΗ ΣΤΗΝ ΚΑΙΝΟΤΟΜΙΑ E-SHOP.GR Η ΑΝΑΤΡΟΠΗ ΜΙΑΣ ΚΛΑΣΣΙΚΗΣ ΑΓΟΡΑΣ ΧΑΡΗ ΣΤΗΝ ΚΑΙΝΟΤΟΜΙΑ Ιανουάριος 2006-1 - AGENDA E-shop.gr με μια ματιά Πληροφορική:μια κλασσική αγορά Καινοτομία στην e-shop.gr Αποτελέσματα/Συμπεράσματα - 2

Διαβάστε περισσότερα

ΣΧΕΔΙΑΣΜΟΣ ΕΝΟΣ INTERNET MARKETING PLAN

ΣΧΕΔΙΑΣΜΟΣ ΕΝΟΣ INTERNET MARKETING PLAN ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΔΙΑΤΜΗΜΑΤΙΚΟ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ ΣΤΑ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΑΦΡΟΔΙΤΗ ΜΑΛΑΜΑ ΣΧΕΔΙΑΣΜΟΣ ΕΝΟΣ INTERNET MARKETING PLAN Επιβλέπουσα Καθηγήτρια: κα Μάρω Βλαχοπούλου Εξεταστής:

Διαβάστε περισσότερα

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Logistics

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Logistics ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Logistics Ενότητα # 7: Παράδοση τη Στιγμή που χρειάζεται (Just-in-Time) & Ευέλικτη Αλυσίδα Εφοδιασμού Διονύσης Γιαννακόπουλος

Διαβάστε περισσότερα

Your Supplies Solutions Partner COMPANY PROFILE

Your Supplies Solutions Partner COMPANY PROFILE Your Supplies Solutions Partner COMPANY PROFILE 02 Company Profile OfficeMart Η εταιρεία H εταιρεία ΕΠΑΓΓΕΛΜΑΤΙΚΕΣ ΛΥΣΕΙΣ ΓΡΑΦΕΙΟΥ ΟΦΙΣΜΑΡΤ Α.Ε. (πρώην ΣΑΜΑΡΑΣ Α.Ε.) δραστηριοποιείται πάνω από 40 χρόνια

Διαβάστε περισσότερα

SUPPLY CHAIN. Unilever s global availability programme. Αγγελάκης Ευάγγελος Head of Customer Service Ελαΐς-Unilever

SUPPLY CHAIN. Unilever s global availability programme. Αγγελάκης Ευάγγελος Head of Customer Service Ελαΐς-Unilever SUPPLY CHAIN Unilever s global availability programme Αγγελάκης Ευάγγελος Head of Customer Service Ελαΐς-Unilever ΕΙΣΑΓΩΓΗ Η βελτίωση της διαθεσιμότητας στο ράφι είναι μια τεράστια πρόκληση για λιανέμπορους

Διαβάστε περισσότερα

Πληροφοριακά Συστήματα Απομακρυσμένης Εποπτείας και Μετρήσεων

Πληροφοριακά Συστήματα Απομακρυσμένης Εποπτείας και Μετρήσεων Πληροφοριακά Συστήματα Απομακρυσμένης Εποπτείας και Μετρήσεων Cloud CRM και ERP Γεωργανάκης Παναγιώτης Τμήμα Διοίκησης Επιχειρήσεων, Γρεβενά Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες

Διαβάστε περισσότερα

Είδη Groupware. Λογισμικό Συνεργασίας Ομάδων (Groupware) Λογισμικό Groupware. Υπάρχουν διάφορα είδη groupware ανάλογα με το αν οι χρήστες εργάζονται:

Είδη Groupware. Λογισμικό Συνεργασίας Ομάδων (Groupware) Λογισμικό Groupware. Υπάρχουν διάφορα είδη groupware ανάλογα με το αν οι χρήστες εργάζονται: Μάθημα 10 Συστήματα Διάχυσης και Διαχείρισης Γνώσης Chapter 10 Knowledge Transfer In The E-world Chapter 13 Knowledge Management Tools and Knowledge Portals Συστήματα Διάχυσης και Διαχείρισης Γνώσης Λογισμικό

Διαβάστε περισσότερα

Αλλάξτε τον τρόπο που κάνετε τη δουλειά σας

Αλλάξτε τον τρόπο που κάνετε τη δουλειά σας ΓΙΑ ΜΙΑ ΑΝΟΙKΤΗ ΕΠΙΧΕΙΡΗΣΗ Αλλάξτε τον τρόπο που κάνετε τη δουλειά σας Web & Mobile apps Για µια ανοικτή επιχείρηση Σήµερα περισσότερο από ποτέ, µια επιχείρηση που θέλει να ανοίξει νέους δρόµους ανάπτυξης

Διαβάστε περισσότερα

Πληροφορική 2. Τεχνολογία Λογισμικού

Πληροφορική 2. Τεχνολογία Λογισμικού Πληροφορική 2 Τεχνολογία Λογισμικού 1 2 Κρίση Λογισμικού (1968) Στην δεκαετία του 1970 παρατηρήθηκαν μαζικά: Μεγάλες καθυστερήσεις στην ολοκλήρωση κατασκευής λογισμικών Μεγαλύτερα κόστη ανάπτυξης λογισμικού

Διαβάστε περισσότερα

Ο Ρόλος των Προϋπολογισμών στις επιχειρήσεις

Ο Ρόλος των Προϋπολογισμών στις επιχειρήσεις ΚΕΦΑΛΑΙΟ 5 Ο Ρόλος των Προϋπολογισμών στις επιχειρήσεις Τεχνικές Κόστους 12η Needles Powers Crosson ΑΝΤΙΚΕΙΜΕΝΑ ΜΑΘΗΣΗΣ Περιγραφή των πλεονεκτημάτων των προϋπολογισμών. Προϋπολογισμός Αρχικών Πωλήσεων.

Διαβάστε περισσότερα

DO Y O Y U S PEAK K F U F TURE R?

DO Y O Y U S PEAK K F U F TURE R? GALAXY είναι Τεχνολογία αιχμής που αξιοποιεί τις πλέον σύγχρονες διεθνείς τάσεις, συνδυάζοντας τo Microsoft.NET Framework 3.5 και τα εξελιγμένα εργαλεία ανάπτυξης εφαρμογών της SingularLogic. Εξασφαλίζει

Διαβάστε περισσότερα

Κεφάλαιο 4 ο. Η ψηφιακή επιχείρηση: Ηλεκτρονικό εμπόριο και ηλεκτρονικό επιχειρείν

Κεφάλαιο 4 ο. Η ψηφιακή επιχείρηση: Ηλεκτρονικό εμπόριο και ηλεκτρονικό επιχειρείν Κεφάλαιο 4 ο Η ψηφιακή επιχείρηση: Ηλεκτρονικό εμπόριο και ηλεκτρονικό επιχειρείν Διδακτικοί στόχοι Να εξηγηθεί πώς το διαδίκτυο μετασχηματίζει τις επιχειρήσεις Να συγκριθούν οι κατηγορίες του ηλεκτρονικού

Διαβάστε περισσότερα

Η Πληροφορική Επανάσταση Η Κοινωνία των πληροφοριών

Η Πληροφορική Επανάσταση Η Κοινωνία των πληροφοριών Η Πληροφορική Επανάσταση Η Κοινωνία των πληροφοριών Πολλοί υποστηρίζουν ότι διανύουμε την αρχή μίας εποχής που μπορεί να περιγραφεί ως η Πληροφορική Επανάσταση και η οποία θα αλλάξει ριζικά την όλη δομή

Διαβάστε περισσότερα

Τίτλος Ειδικού Θεματικού Προγράμματος: «Διοίκηση, Οργάνωση και Πληροφορική για Μικρομεσαίες Επιχειρήσεις»

Τίτλος Ειδικού Θεματικού Προγράμματος: «Διοίκηση, Οργάνωση και Πληροφορική για Μικρομεσαίες Επιχειρήσεις» ΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ, ΒΑΣΙΚΟΣ ΠΑΡΑΓΟΝΤΑΣ ΓΙΑ ΤΗΝ ΟΙΚΟΝΟΜΙΚΗ ΚΑΙ ΚΟΙΝΩΝΙΚΗ ΑΝΑΠΤΥΞΗ ΤΟΥ ΑΙΓΑΙΟΠΕΛΑΓΙΤΙΚΟΥ ΧΩΡΟΥ Τίτλος Ειδικού Θεματικού Προγράμματος: «Διοίκηση, Οργάνωση και Πληροφορική για Μικρομεσαίες

Διαβάστε περισσότερα

ΕΡΩΤΗΣΕΙΣ «ΠΟΛΛΑΠΛΗΣ ΕΠΙΛΟΓΗΣ»

ΕΡΩΤΗΣΕΙΣ «ΠΟΛΛΑΠΛΗΣ ΕΠΙΛΟΓΗΣ» ΕΡΩΤΗΣΕΙΣ «ΠΟΛΛΑΠΛΗΣ ΕΠΙΛΟΓΗΣ» 1. Οι επιχειρήσεις είναι συστήματα, κάτι που σημαίνει ότι επηρεάζουν και επηρεάζονται από το εξωτερικό τους περιβάλλον. α) επιχειρηματικά. β) εξωτερικά. γ) ανοιχτά. δ) κλειστά.

Διαβάστε περισσότερα

Σεμινάριο Startup Basics. Workshop 30 Μαρτίου 2016 μέρος 2ο. Από το Βusiness Model Canvas στο Business Plan

Σεμινάριο Startup Basics. Workshop 30 Μαρτίου 2016 μέρος 2ο. Από το Βusiness Model Canvas στο Business Plan Σεμινάριο Startup Basics Workshop 30 Μαρτίου 2016 μέρος 2ο Από το Βusiness Model Canvas στο Business Plan Τι παρουσιάσαμε μέχρι τώρα : Τα βασικά της Επιχειρηματικότητας (16/3) Τον Καμβά του Επιχειρηματικού

Διαβάστε περισσότερα

Ανάλυση Εσωτερικού Περιβάλλοντος ΙΙ

Ανάλυση Εσωτερικού Περιβάλλοντος ΙΙ Ανάλυση Εσωτερικού Περιβάλλοντος ΙΙ Αλυσίδα Αξίας Αστερισμός Αξίας Outsourcing 5η εβδομάδα Τμ. Διοίκησης Επιχειρήσεων (Κοζάνη) Η επιχείρηση ως αλυσίδα αξίας Κατανομή-ταξιομήση πόρων και ικανοτήτων ανα

Διαβάστε περισσότερα

Περιοχές λειτουργίας των ERP & επιμέρους τμήματα. Εφαρμογές Πληροφοριακών Συστημάτων Ιωάννης Καρύδης

Περιοχές λειτουργίας των ERP & επιμέρους τμήματα. Εφαρμογές Πληροφοριακών Συστημάτων Ιωάννης Καρύδης Περιοχές λειτουργίας των ERP & επιμέρους τμήματα Εφαρμογές Πληροφοριακών Συστημάτων Ιωάννης Καρύδης Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα.

Διαβάστε περισσότερα

MARKETING. Δρ. Γ.Μαλινδρέτος

MARKETING. Δρ. Γ.Μαλινδρέτος Το μικροπεριβάλλον της επιχείρησης Ενώ το μακροπεριβάλλον απαρτίζεται από ευρύτερες δυνάμεις περιφερειακά της εταιρείας (πολιτικές, οικονομικές, κοινωνικές και τεχνολογικές), το μικροπεριβάλλον αποτελείται

Διαβάστε περισσότερα

Ομαδοποίηση των απαιτήσεων του προτύπου ISO Σύστημα ποιότητας Ευθύνη της διοίκησης Διαχείριση πόρων Υλοποίηση του προϊόντος

Ομαδοποίηση των απαιτήσεων του προτύπου ISO Σύστημα ποιότητας Ευθύνη της διοίκησης Διαχείριση πόρων Υλοποίηση του προϊόντος Ομαδοποίηση των απαιτήσεων του προτύπου ISO 9001:2000 Σύστημα ποιότητας Ευθύνη της διοίκησης Διαχείριση πόρων Υλοποίηση του προϊόντος / Παροχή της υπηρεσίας Μέτρηση ανάλυση και βελτίωση Εισαγωγή στα Συστήματα

Διαβάστε περισσότερα

Μιλτιάδης Προβατάς Δ/ντής Στρατηγικής Μεταφορών Υπουργείο Υποδομών, Μεταφορών και Δικτύων

Μιλτιάδης Προβατάς Δ/ντής Στρατηγικής Μεταφορών Υπουργείο Υποδομών, Μεταφορών και Δικτύων Με την επίσημη υποστήριξη: Μιλτιάδης Προβατάς Δ/ντής Στρατηγικής Μεταφορών Υπουργείο Υποδομών, Μεταφορών και Δικτύων Διημερίδα ITS Hellas «Ευφυή Συστήματα Μεταφορών & Eξελίξεις στην Ελλάδα» Αθήνα, 15-16

Διαβάστε περισσότερα

Η συνεισφορά της εφοδιαστικής αλυσίδας στην επιτυχία της επιχείρησης. Senior SC optimisation consultant Mantis Group

Η συνεισφορά της εφοδιαστικής αλυσίδας στην επιτυχία της επιχείρησης. Senior SC optimisation consultant Mantis Group Η συνεισφορά της εφοδιαστικής αλυσίδας στην επιτυχία της επιχείρησης Senior SC optimisation consultant Mantis Group 3 SC efficiency + Business Success Η ομαλή και επιτυχημένη λειτουργία μιας επιχείρησης

Διαβάστε περισσότερα

ΕΝΔΕΙΚΤΙΚΕΣ ΑΠΑΝΤΗΣΕΙΣ 3 ΗΣ ΓΡΑΠΤΗΣ ΕΡΓΑΣΙΑΣ

ΕΝΔΕΙΚΤΙΚΕΣ ΑΠΑΝΤΗΣΕΙΣ 3 ΗΣ ΓΡΑΠΤΗΣ ΕΡΓΑΣΙΑΣ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Πρόγραμμα Σπουδών : Θεματική Ενότητα : Διοίκηση Επιχειρήσεων & Οργανισμών ΔΕΟ 11 Εισαγωγή στη Διοικητική Επιχειρήσεων & Οργανισμών Ακαδ. Έτος: 2007-08 ΕΝΔΕΙΚΤΙΚΕΣ ΑΠΑΝΤΗΣΕΙΣ

Διαβάστε περισσότερα

Ασκήσεις Αποθεµάτων. Υποθέστε ότι την στιγμή αυτή υπάρχει στην αποθήκη απόθεμα για 5 μήνες.

Ασκήσεις Αποθεµάτων. Υποθέστε ότι την στιγμή αυτή υπάρχει στην αποθήκη απόθεμα για 5 μήνες. Ασκήσεις Αποθεµάτων 1. Το πρόγραμμα παραγωγής μιας βιομηχανίας προβλέπει την κατανάλωση 810.000 μονάδων πρώτης ύλης το χρόνο, με ρυθμό πρακτικά σταθερό, σε όλη τη διάρκεια του έτους. Η βιομηχανία εισάγει

Διαβάστε περισσότερα

ΤΕΙ ΚΡΗΤΗΣ ΤΜΗΜΑ ΛΟΓΙΣΤΙΚΗΣ. Διοίκηση Επιχειρήσεων. Β Εξάμηνο -Παραδόσεις

ΤΕΙ ΚΡΗΤΗΣ ΤΜΗΜΑ ΛΟΓΙΣΤΙΚΗΣ. Διοίκηση Επιχειρήσεων. Β Εξάμηνο -Παραδόσεις ΤΕΙ ΚΡΗΤΗΣ ΤΜΗΜΑ ΛΟΓΙΣΤΙΚΗΣ Διοίκηση Επιχειρήσεων Β Εξάμηνο -Παραδόσεις 1 Σκοπός του Μαθήματος Σκοπός του μαθήματος είναι να κατανοηθεί από τους σπουδαστές η σημασία της Διοικητικής Επιστήμης στην λειτουργία

Διαβάστε περισσότερα