Βασικές Αρχές
Η ΙΛΥΔΑ επενδύοντας σημαντικά σε έρευνα και ανάπτυξη, σχεδιάζει και αναβαθμίζει τα προϊόντα λογισμικού της έτσι ώστε να κληρονομούν ενιαία τεχνικά, λειτουργικά και αρχιτεκτονικά χαρακτηριστικά σύμφωνα με τις πλέον πρόσφατες τεχνολογικές εξελίξεις και με βάση τις ακόλουθες στρατηγικές επιλογές:
- Διαρκείς επενδύσεις σε προηγμένη τεχνολογία και έρευνα
- Αξιοποίηση των πλέον σύγχρονων και αξιόπιστων εργαλείων σχεδιασμού και ανάπτυξης προϊόντων λογισμικού
- Άμεση ενσωμάτωση τεχνολογιών αιχμής
- Ασφαλή και αξιόπιστη λειτουργία εφαρμογών
- Λογισμικό με πρωτοποριακά χαρακτηριστικά και δυνατότητες, ευχρηστία, εργονομικό σχεδιασμό και προσαρμογή στις εκάστοτε ανάγκες των επιχειρήσεων
- Άμεση υποστήριξη επιχειρηματικών αποφάσεων
- Εύκολη πρόσβαση στην πληροφορία κάθε στιγμή και από οπουδήποτε
- Διασφάλιση για τον Πελάτη διαρκούς παραγωγής αξίας
- Ευνοϊκή για τον Πελάτη σχέση Επένδυσης προς Απόδοση
.ΝΕΤ & .ΝΕΤ Framework
Το περιβάλλον .NET είναι το νέο μοντέλο της Microsoft για τον προγραμματισμό και την ανάπτυξη εφαρμογών. Περιστρέφεται γύρω από το .NET Framework, που περικλείει την πλατφόρμα της ίδιας της γλώσσας και του περιβάλλοντος εκτέλεσης, μαζί με εκτενείς βιβλιοθήκες κλάσεων που παρέχουν πλούσια λειτουργικότητα. Στον πυρήνα του, το .NET Framework περικλείει XML και SOAP, προκειμένου να παρέχει ένα νέο επίπεδο ενοποίησης προγραμμάτων μέσω του Internet. Υπάρχει επίσης, μία οικογένεια προϊόντων βασισμένη σε διακομιστές, που ονομάζεται .NET Enterprise Servers, που είναι η επόμενη γενιά του Back Office της Microsoft.
Η βάση ξεκινά από τη διαχείριση μνήμης και το επίπεδο φόρτωσης στοιχείων και πηγαίνει προς τα επάνω, σε πολλαπλούς τρόπους εμφάνισης του περιβάλλοντος χρήστη και προγραμμάτων. Ανάμεσα, υπάρχουν επίπεδα που παρέχουν τόσα, όσα χρειάζεται ένας προγραμματιστής με δυνατότητες προγραμματισμού συστημάτων.
Στη βάση είναι το Common Language Runtime, που συνήθως συντομεύεται σε CLR. Αυτή είναι η καρδιά του .NET Framework, η μηχανή που καθοδηγεί τη λειτουργικότητα. Περιλαμβάνει, για παράδειγμα, ένα κοινό σύστημα τύπων δεδομένων. Αυτοί οι κοινοί τύποι, μαζί με ένα τυπικό περιβάλλον, κάνουν δυνατή την κληρονομικότητα μεταξύ πολλών γλωσσών. Εκτός από τη δέσμευση και τη διαχείριση μνήμης, το CLR κάνει επίσης καταμέτρηση αναφορών αντικειμένων και χειρίζεται το garbage collection (συλλογή αδέσμευτης μνήμης).
Το μεσαίο επίπεδο περιλαμβάνει την επόμενη γενιά τυπικών υπηρεσιών συστημάτων, όπως το ADO.NET και την XML. Αυτές οι υπηρεσίες είναι κάτω από τον έλεγχο του Framework, κάνοντάς τις παντού διαθέσιμες και τυποποιώντας τη χρήση τους σε πολλές γλώσσες.
Το επάνω επίπεδο περιλαμβάνει διασυνδέσεις χρήστη και προγραμμάτων. Τα Windows Forms (που συνήθως αναφέρονται σαν WinForms), είναι ένας νέος τρόπος να δημιουργείτε τυπικές επιτραπέζιες εφαρμογές Win32, βασισμένες στα Windows Foundation Classes (WFC) που παράγονται για την J++. Οι Web Forms παρέχουν ένα δυνατό εργαλείο για το Web. Το Web Services, που είναι ίσως το πιο επαναστατικό, παρέχει ένα μηχανισμό να επικοινωνούν τα προγράμματα μέσω του Internet χρησιμοποιώντας SOAP. Το Web Services παρέχει κάτι ανάλογο με το COM και το DCOM για τις διασυνδέσεις, αλλά βασισμένο σε τεχνολογίες Internet ώστε να γίνεται διαθέσιμη η ενοποίηση, ακόμα και σε λειτουργικά συστήματα που δεν είναι της Microsoft. Το Web Form και το Web Services, αποτελούν το Internet μέρος του περιβάλλοντος του .NET και ο χειρισμός τους γίνεται μέσα από μία ενότητα του .NET Framework, που αναφέρεται σαν ASP.NET.
Στον πυρήνα της πλατφόρμας .NET είναι το CLR (Common Language Runtime). Το CLR είναι υπεύθυνο για τη διαχείριση της εκτέλεσης του κώδικα που μεταγλωττίζεται από τη .NET πλατφόρμα.
Ο κώδικας που απαιτεί το CLR την ώρα εκτέλεσης για να μπορέσει να εκτελεστεί αναφέρεται σαν “διαχειριζόμενο κώδικας”. Οι μεταγλωττιστές που προορίζονται για τη .NET πλατφόρμα δημιουργούν διαχειριζόμενο κώδικα που βασίζεται σε ένα σύνολο υπηρεσιών που παρέχονται από το CLR.
Μερικά από τα βασικά πλεονεκτήματα των υπηρεσιών που παρέχονται περιλαμβάνουν:
- Ολοκλήρωση μεταξύ γλωσσών – το CLR επιτρέπει στον κώδικα που είναι γραμμένος σε μία γλώσσα να ενοποιηθεί ομαλά με κώδικα γραμμένο σε μία άλλη γλώσσα. Αυτό περιλαμβάνει κληρονομικότητα μεταξύ γλωσσών, διαχείριση εξαιρέσεων και διαρρυθμιστικότητα.
- Βελτιωμένη ασφάλεια – το CLR επιτρέπει στον διαχειριζόμενο κώδικα να δηλώνει την ασφάλεια που απαιτείται και να συλλέγει αποδείξεις που χρησιμοποιούνται για να πιστοποιηθεί αν δίνεται ή όχι η άδεια.
- Υποστήριξη εκδόσεων και ανάπτυξης – το CLR υποστηρίζει εκτέλεση πολλαπλών εκδόσεων του ίδιου στοιχείου, ακόμα και μέσα στην ίδια διαδικασία.
- Εντοπισμός σφαλμάτων και υπηρεσίες προφίλ – το CLR παρέχει τα απαραίτητα εργαλεία για να μπορούν οι προγραμματιστές να εντοπίζουν σφάλματα στον κώδικα. Για παράδειγμα, τα εργαλεία ανάπτυξης έχουν τη δυνατότητα να διασχίζουν την στοίβα μίας εφαρμογής, ανεξάρτητα σε ποια γλώσσα ή γλώσσες είναι γραμμένη η εφαρμογή.
- Διαχείριση μνήμης – το GC (Garbage Collector – συλλογή αχρησιμοποίητης μνήμης) είναι υπεύθυνο για τη συλλογή αντικειμένων που δεν χρησιμοποιούνται πλέον από την εφαρμογή.
- Για τη διασύνδεση των συστημάτων χρησιμοποιείται το Windows Communication Foundation (WCF). Το WCF είναι μια επέκταση του .NET framework για τη διασύνδεση συστημάτων. Παρέχει ένα ενοποιημένο πλαίσιο για τις ασφαλείς και αξιόπιστες συναλλαγές με Web services. Υποστηρίζει μια ευρεία γκάμα τυποποιήσεων των Web services όπως XML, XSD, SOAP, XPath, WSDL, καθώς και προηγμένες προδιαγραφές όπως WS-Addressing, WS-Policy, WS-Security, WS-Trust, WS-Secure Conversation, WS-Reliable Messaging, WS-Atomic Transaction, WS-Coordination και WS-Policy.
WPF
Το WPF (Windows Presentation Foundation) είναι ένα σύστημα παρουσίασης νέας γενιάς desktop εφαρμογών με εξελιγμένες δυνατότητες στο γραφικό περιβάλλον. Με το WPF, μπορεί να δημιουργηθεί ένα ευρύ φάσμα τόσο standalone όσο και βασισμένων σε browser εφαρμογών.
Το WPF περιέχει ένα σύνολο από χαρακτηριστικά για ανάπτυξη εφαρμογών που περιλαμβάνουν τη γλώσσα XML, controls , data binding, layout, δισδιάστατα και τρισδιάστατα γραφικά, κινούμενες εικόνες, έγγραφα, πρότυπα κ.α. Το WPF συμπεριλαμβάνεται στην πλατφόρμα της Microsoft .NET, έτσι μπορούν να χτιστούν εφαρμογές που ενσωματώνουν τα στοιχεία της .NET class library.
Το WPF είναι ένα “εργαλείο” για την κατασκευή παραθυρικών εφαρμογών, αποτελεί τον απόγονο των windows forms, και τα πλεονεκτήματα που διαθέτει έναντι του πρόγονου του είναι ότι πλέον η δουλειά του designer μπορεί να γίνει ξεχωριστά από τη δουλειά του developer, συμβάλλοντας στην καλύτερη συνεργασία τους, και προσφέρει δυνατότητες για πλούσια γραφικά.
Όλες οι εφαρμογές της ΙΛΥΔΑ έχουν ελεγχθεί και πιστοποιηθεί στην συμβατότητά τους, τόσο με τον νέο SQL Server 2012, όσο και με τα νέα λειτουργικά συστήματα Microsoft Windows 8 και το Windows Azure.
JAVA
Αρχιτεκτονική Java
Η ΙΛΥΔΑ πέραν των εργαλείων ανάπτυξης της Microsoft αναπτύσσει εφαρμογές λογισμικού σε JAVA. Οι εφαρμογές οι οποίες αναπτύσσονται πληρούν τα σύγχρονα πρότυπα ασφάλειας και είναι εξαιρετικά ευέλικτες σε πολυεπίπεδη ανάπτυξη και προσαρμοστικότητα.
Πολυεπίπεδη Αρχιτεκτονική
Η αρχιτεκτονική μας βασίζεται σε πρότυπες προδιαγραφές συστημάτων με πολλούς χειριστές και αρχιτεκτονική τεσσάρων επιπέδων 4-tier η οποία αποτελείται από:
- το επίπεδο του πελάτη
- το επίπεδο παρουσίασης
- το επίπεδο επιχειρησιακής λογικής
- το επίπεδο των δεδομένων
Η λογική αυτή παρουσιάζεται σχηματικά παρακάτω:
Έτσι επιτυγχάνεται πλήρης διαχωρισμός της “εμφάνισης” από την “λογική” με αποτέλεσμα την εύκολη αναπροσαρμογή σε διαφορετικές ομάδες πελατών και την δημιουργία apis.
Εφαρμογή Best Practices
Η ΙΛΥΔΑ εφαρμόζει όλα τα γνωστά best practices και συμμετέχει διαρκώς σε επιμορφωτικές ημερίδες και εκπαιδεύσεις. Continuous integration με χρήση Jenkins και διαρκές revisioning του κώδικα, εξασφαλίζει την διαρκή σταθερή παράδοση των εφαρμογών και τον συγχρονισμό αυτών σε πολλαπλές εγκαταστάσεις, διαρκές unit και usability testing και αυστηρές διαδικασίες επάνω σε διαρκώς εξελισσόμενα frameworks.
Το Spring framework
Τηρώντας τις υποσχέσεις μας για τη χρήση των cutting edge τεχνολογιών, η ΙΛΥΔΑ χρησιμοποιεί την ναυαρχίδα των frameworks της VMWare το Spring.
Με τις Spring-powered JEE εξασφαλίζουμε τη μέγιστη ευελιξία στην ανάπτυξη των εφαρμογών για τα μέτρα του πελάτη. Ακόμα με τη βαθιά γνώση όλων των παντοδύναμων εργαλείων που διαθέτει όπως το Spring AOP, Spring Security, Spring IOC και άλλα, η ομάδες των προγραμματιστών μας κατατάσσονται στις κορυφαίες και ποιο παραγωγικές της Ελληνικής αγοράς.
Agile Project Management και Scrum
Όπως εξελίσσετε η τεχνολογία με τον ίδιο τρόπο εξελίσσετε και ο τρόπος διαχείρισης των έργων. Το Scrum project management είναι ραγδαία διαφορετικό από το παραδοσιακό project management. Αντί για απλή σχεδίαση και υλοποίηση ο ρόλος του διαχειριστή στο Scrum, ο ScrumMaster, είναι να ενεργεί σαν παράγον διευκόλυνσης μιας αυτο-οργανούμενης ομάδας.
Η εταιρεία μας διαθέτοντας πιστοποιημένο ScrumMaster διαχειρίζεστε ευέλικτα τα έργα της και έτσι παραμένει πάντα σταθερή στους στόχους της και στους χρόνους της.
Cosmos Rule Management System
Στο σύγχρονο περιβάλλον εφαρμογών, η ανάγκη για ευέλικτα και ταυτόχρονα ελεγχόμενα συστήματα διαχείρισης κώδικα γίνεται όλο και πιο σημαντική. Μετά από ενδελεχή έρευνα και πληθώρα αρχικών υλοποιήσεων, σκιαγραφήθηκαν με λεπτομέρεια οι λειτουργικοί μηχανισμοί, τα οφέλη και τα πιθανά μειονεκτήματα του πλαισίου RMS, δίνοντας έμφαση στη μοναδική Domain Specific Language (DSL), τους μηχανισμούς templating, τη δυναμική δημιουργία και μεταγλώττιση κανόνων κατά την εκτέλεση και την καινοτόμο ενσωμάτωση ενός διαδικτυακού περιβάλλοντος ολοκληρωμένης ανάπτυξης (IDE) για τη διαχείριση του κώδικα κανόνων.
Η εταιρεία μας, προκειμένου να αναβαθμίσει την ποιότητα και τις δυνατότητες των εφαρμογών της, προχώρησε στην ανάπτυξη του Cosmos Rule Management System, της βιβλιοθήκης Java για το σύστημα διαχείρισης κανόνων (Rule Management System - RMS), προσαρμοσμένη στο περιβάλλον Spring Boot, η οποία παρουσιάζει μια σειρά από ισχυρά χαρακτηριστικά που αποσκοπούν στην ενίσχυση της διαχείρισης και εφαρμογής κανόνων και του δυναμικού χειρισμού κώδικα (dynamic rule manipulation) εντός μιας εφαρμογής.
Το αντικείμενο της παραπάνω έρευνας, τα αποτελέσματα αυτής καθώς και η ανάπτυξη της βιβλιοθήκη Cosmos-RMS, παρουσιάζονται αναλυτικά στο Paper που συντάχθηκε από την ομάδα της ΙΛΥΔΑ Α.Ε., το οποίο διατίθεται εδώ.