CYBERNET APPS. Τι είναι; Πως Είναι;



Σχετικά έγγραφα
ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

Νέες τεχνολογίες εισάγονται ή χρησιµοποιούνται

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 18/10/07

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

ΜΕΛΕΤΗ ΣΧΕΔΙΑΣΗ ΕΦΑΡΜΟΓΗΣ ΣΕ ΥΠΟΛΟΓΙΣΤΙΚΟ ΝΕΦΟΣ (CLOUD COMPUTING) ΜΕ ΕΜΦΑΣΗ ΣΤΗΝ ΚΑΤΑΣΚΕΥΗ ΔΕΝΤΡΩΝ.

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 7 η Διάλεξη: Σύντομη εισαγωγή στην Java

Εισαγωγή στην Πληροφορική

Don t hire us if you want average. We only do exceptional.

Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον κεφ.6 Εισαγωγή στον Προγραμματισμό

ΠΛΗΡΟΦΟΡΙΚΗ Ι Εργαστήριο 1 MATLAB ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1. Θέμα εργαστηρίου: Εισαγωγή στο MATLAB και στο Octave

Εργαλεία CASE. Computer Assisted Systems Engineering. Δρ Βαγγελιώ Καβακλή. Τμήμα Πολιτισμικής Τεχνολογίας και Επικοινωνίας Πανεπιστήμιο Αιγαίου

Διαφορές single-processor αρχιτεκτονικών και SoCs

Αντικειμενοστρεφής Προγραμματισμός

αντίστοιχο γεγονός. Όταν όντως το κουμπί

Συνοπτικός Οδηγός Χρήσης του Moodle για τον Καθηγητή

Σύνοψη Θεωρίας ΟΡΙΣΜΟΣ ΚΑΙ ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΑΛΓΟΡΙΘΜΩΝ

Τεχνικές σχεδίασης προγραμμάτων, Προγραμματιστικά Περιβάλλοντα

Διάλεξη 2η: Αλγόριθμοι και Προγράμματα

Εργασία-3: Παρουσίαση Εργασίας. Ομάδα Α. Προετοιμασία Αναφοράς

RobotArmy Περίληψη έργου

Βασίλειος Κοντογιάννης ΠΕ19

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ

Κεφάλαιο 2.3: Προγραμματισμός. Επιστήμη ΗΥ Κεφ. 2.3 Καραμαούνας Πολύκαρπος

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος.

Θεωρητικές Ασκήσεις. ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. 1 ο Μέρος

TRAVIS TRAFFIC VIOLATION INFORMATION SYSTEM ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΗΣΗΣ ΠΑΡΑΒΑΣΕΩΝ ΦΩΤΟΕΠΙΣΗΜΑΝΣΗΣ

Κωνσταντίνος Παρασκευόπουλος Καθηγητής Πληροφορικής (ΠΕ19 MSc) Ελληνικό Κολλέγιο Θεσσαλονίκης

Ο Οδηγός γρήγορης εκκίνησης

«Οδηγίες χρήσης εφαρμογής Ενιαίου Συστήματος Πληρωμών»

Ανάπτυξη Υπηρεσίας Τηλεκπαίδευσης σε ΙP Δίκτυα. Υλοποίηση Σύγχρονης Τηλεκπαίδευσης

Προγραμματισμός ΙI (Θ)

Εισαγωγή στο Libre Office Παρουσιάσεις με το Impress. Bάιος Κολοφωτιάς Επιστημονικός Συνεργάτης Sweng Lab A.Π.Θ

<<ΔΗΜΗΤΡΗΣ ΜΑΝΩΛΗΣ ΦΥΣΙΚΟΣ ΜCs>> 1

Πρώτη επαφή με το μαθηματικό πακέτο Mathematica

Μέρος 3 ο : Βασικές Έννοιες για δυναμικές ιστοσελίδες

Γλώσσες υψηλού επιπέδου Περιέχουν περισσότερες εντολές για την εκτέλεση πολύπλοκων εργασιών Τα προγράµµατα µεταφράζονται σε γλώσσα µηχανής είτε από το

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1

7.Α.1 Παρουσιάσεις. 7.Α.2 Περιγραφή περιεχομένων της εφαρμογής

Βιωματικό εργαστήριο ηλεκτρονικών υπολογιστών. Οργάνωση εκπαιδευτικού υλικού με Η/Υ από δραστηριότητες στο Δημοτικό και στο Νηπιαγωγείο.

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Είσοδος. Καλωσορίσατε στο Ενιαίο Σύστημα Πληρωμών Δαπανών Ηλεκτρονικών Υπηρεσιών.

Visual Flowchart Γενικά

Οδηγός γρήγορης εκκίνησης

ΑΠΟΤΕΛΕΣΜΑΤΑ ΔΙΑΒΟΥΛΕΥΣΗΣ. Προκήρυξη Διαγωνισμού για την «Προμήθεια Εξοπλισμού Κόμβου Μηχανικής Μάθησης» /

2. ΠΙΣΤΟΠΟΙΗΣΗ DQS DIN EN ISO 9001: ΠΙΣΤΟΠΟΙΗΣΗ ISO 9001:2015 & BS ISO 29990:2010

Λιβανός Γιώργος Εξάμηνο 2017Β

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ Εαρινό Εξάμηνο

Εισαγωγή στον Προγραμματισμό Python Μάθημα 1: Μεταβλητές, τελεστές, είσοδος/έξοδος προγράμματος, συνθήκη ελέγχου if Νοέμβριος 2014 Χ. Αλεξανδράκη, Γ.

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

Παράλληλος Προγραμματισμός με OpenCL

ANDROID Προγραμματισμός Εφαρμογών

GreekLUG Ελεύθερο Λογισμικό & Λογισμικό Ανοικτού Κώδικα

Τεχνολογίες Ανάπτυξης Ηλεκτρονικού Καταστήματος Μικρομεσαίας Επιχείρησης. Μικρομεσαίες Επιχειρήσεις και Καινοτομία

Θερμοδυναμική - Εργαστήριο

21. ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ 4 - ΔΗΜΙΟΥΡΓΩΝΤΑΣ ΜΕ ΤΟ BYOB BYOB. Αλγόριθμος Διαδικασία Παράμετροι

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

ΤΕΙ ΚΑΒΑΛΑΣ. Πτυχιακή εργασία ΕΙΣΑΓΩΓΗ. Μιλτιάδης Κακλαμάνης

XAMPP Apache MySQL PHP javascript xampp

Αρχιτεκτονική σχεδίαση με ηλεκτρονικό υπολογιστή

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

Γλώσσες Προγραμματισμού Μεταγλωττιστές

Μαλούτα Θεανώ Σελίδα 1

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

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

Παρο υσίαση αλ γόριθμου

Python και Android. Νίκος Νοδαράκης. 17 Μαΐου 2010

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

Ενότητα 1η. Εισαγωγή στην Πληροφορική

ΚΑΙΝΟΤΟΜΕΣ ΛΥΣΕΙΣ ΕΚΠΑΙΔΕΥΣΗΣ ΚΑΙ ΑΞΙΟΛΟΓΗΣΗΣ ΟΔΗΓΟΣ E-LEARNING

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ

Διαδικασίες παραγωγής λογισμικού. Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση

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

8 Τεχνικός Εφαρμογών Πληροφορικής με Πολυμέσα

1 Συστήματα Αυτοματισμού Βιβλιοθηκών

Κεφ. 1: Εισαγωγή στην έννοια του Αλγορίθμου και στον Προγραμματισμό. Η έννοια του προβλήματος

Αν Ναι, δείτε πως με το λογισμικό axes μπορείτε!

Οργάνωση επεξεργαστή (2 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

ΟΔΗΓΟΣ ΧΡΗΣΗΣ(ΜΑΝUΑL) ΔΙΑΧΕΙΡΙΣΤΗ-ΧΡΗΣΤΗ.

Ε Ι Α Γ Ω Γ Η Σ Ο Ν Π Ρ Ο Γ Ρ Α Μ Μ Α Σ Ι Μ Ο Κ Ε Υ Α Λ Α Ι Ο 6. Σο πρόγραμμα γράφεται σε κάποια γλώσσα προγραμματισμού.

Interactive Power Point

Οδηγίες Χρήσεως Ψηφιακού Αποθετηρίου Ιστοριών στην Ελληνική Νοηματική Γλώσσα (ΕΝΓ)

Έκδοση για Desktops, Tablets και Έξυπνα Κινητά

Σεμινάριο Wordpress CMS (Δημιουργία Δυναμικών Ιστοσελίδων)

Cloud Computing with Google and Microsoft. Despoina Trikomitou Andreas Diavastos Class: EPL425

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

Π Τ Υ Χ Ι Α Κ Η Ε Ρ Γ Α Σ Ι Α

4/2014 ΣΥΝΟΠΤΙΚΗ ΠΑΡΟΥΣΙΑΣΗ ΥΔΡΟΛΗΨΙΕΣ ΑΤΤΙΚΗΣ ΑΠΟΚΕΝΤΡΩΜΕΝΗ ΔΙΟΙΚΗΣΗ ΑΤΤΙΚΗΣ ΔΙΕΥΘΥΝΣΗ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ

Συνοπτικός οδηγός χρήσης της πλατφόρμας ασύγχρονης τηλεεκπαίδευσης. Καθηγητή

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

ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ Η/Υ

Αξιοποίηση και διάθεση ελληνικού ψηφιακού έγκριτου περιεχομένου

Πρακτική εφαρμογή στην ειδικότητα: Λογισμικό για τη δημιουργία εργασίας εξαμήνου

ΛΟΓΙΣΜΙΚΟ (software)

Αρχιτεκτονική υπολογιστών

Κεφάλαιο 8. Αριθμητική Λογική μονάδα

Μάθημα 4: Κεντρική Μονάδα Επεξεργασίας

Το λειτουργικό σύστημα. Προγραμματισμός II 1

Οδηγός γρήγορης εκκίνησης

Κεφάλαιο 14: Συμβουλές προς έναν νέο προγραμματιστή

Transcript:

CYBERNET APPS Τι είναι; Το CYBERNET APPS αποτελεί μια πλατφόρμα ανάπτυξης λογισμικού. Δε πρόκειται για μια νέα γλώσσα προγραμματισμού ή κάποιου καινούργιου runtime περιβάλλοντος, αλλά για μια σύνθεση από ήδη υπάρχοντες γλώσσες και runtime περιβάλλοντα τα οποία δένουν μεταξύ τους με ενιαίο τρόπο στον πυρήνα του CYBERNET APPS. Ο πυρήνας αυτός έχει τα εξής χαρακτηριστικά: Είναι ένα node-based dataflow diagram. Δεν υπάρχει κώδικας μέσα στο διάγραμμα αυτό, παρά μόνο nodes που συνδέονται μεταξύ τους. Η εκτέλεση είναι κατά κόρον dataoriented, δεδομένα εισέρχονται στην είσοδο του διαγράμματος και δεδομένα εξέρχονται στην έξοδο. Είναι scalable όσων αφορά τη χρήση των διαθέσιμων πόρων του συστήματος. Η εκτέλεση του γίνεται αυτόματα σε πολλούς πυρήνες, είτε στη CPU είτε στη GPU, χωρίς ο χρήστης να γνωρίζει το παραμικρό από multi-threaded programming και synchronization. Είναι open και extensible. Οι χρήστες του CYBERNET APPS μπορούν εύκολα να προσθέσουν custom λειτουργίες με δυο τρόπους, είτε ομαδοποιώντας πολλά nodes σε ένα, δημιουργώντας ένα compound, είτε υλοποιώντας πρωτότυπα nodes χρησιμοποιώντας το low-level programming API του CYBERNET APPS. Είναι embeddable. Μπορεί να ενσωματωθεί σε οποιοδήποτε σύστημα που θέλει να εκμεταλλευτεί τις δυνατότητές του. Είναι visual, interactive και εύκολο στη μάθηση. Οι χρήστες δε χρειάζεται να μάθουν μια νέα γλώσσα προγραμματισμού, μπορούν να άρχισουν να δουλεύουν χρησιμοποιώντας απλά τη διαίσθηση τους. Το front-end του συστήματος είναι εξαιρετικά απλό και εύχρηστο. Το πυρήνα του CYBERNET APPS συνοδεύουν μια σειρά από pluggable και extensible components που παρέχουν την υποστήριξη λειτουργίας του στα διάφορα υπολογιστικά συστήματα, καθώς επίσης και το front-end εργαλείο, που είναι ένα visual programming environment για εύκολη και γρήγορη ανάπτυξη. Το CYBERNET APPS είναι εμπνευσμένο από το ICE (Interactive Creative Environment) του Softimage XSI της εταιρείας Autodesk. Το ICE είναι ένα εξειδικευμένο εργαλείο ανάπτυξης ειδικών εφέ μέσα στα πλαίσια του Softimage XSI. Είναι ένα πρωτοποριακό και επιτυχημένο εργαλείο, που επιτρέπει την εκτέλεση λειτουργιών που ήταν απλά αδύνατες προηγουμένως. Το ICE, από την πρώτη κιόλας του έκδοση, άλλαξε για πάντα το χώρο των DCC (Digital Content Creation) εφαρμογών. Το CYBERNET APPS είναι η επέκταση του ICE στο χώρο του general purpose computing. Πως Είναι; Ακολουθεί η βασική φόρμα front-end του συστήματος : 1

Τα παραλληλόγραμμα σχήματα είναι τα nodes ή compounds. Οι καμπύλες που τα ενώνουν αναπαριστούν τη ροή των δεδομένων και επεξεργασιών. Στα αριστερά είναι τα εργαλεία ανάπτυξης και στα δεξιά οι πηγές δεδομένων. Το back-end του συστήματος είναι μια Parallel Processing Engine που αναλαμβάνει να «μεταφράσει» το δέντρο των nodes σε εκτελέσιμη μορφή. Οτιδήποτε μπορεί κάποιος να φτιάξει μέσω του front-end, παρέχεται και προγραμματιστικά μέσω του low-level API του CYBERNET APPS. Ποιες ανάγκες καλύπτει; Τι προβλήματα λύνει; Το CYBERNET APPS έχει ως στόχο να λύσει δύο βασικά προβλήματα του κόσμου της Πληροφορικής, ένα που ανέκαθεν προκαλούσε προβλήματα και ένα νέο, απόρροια της εκθετικής ανάπτυξης της τεχνολογίας υπολογιστών: 1) Ελάχιστες εφαρμογές παρέχουν τη δυνατότητα στους χρήστες τους να παραμετροποιήσουν τις υπάρχουσες λειτουργίες και ακόμα λιγότερες τη δυνατότητα να προσθέσουν νέες. Οι λόγοι που συμβαίνει αυτό είναι αρκετοί, κυρίως όμως γιατί: α) είναι πολύ δύσκολο, τεχνικά, ένα τέτοιο σύστημα να είναι αποδοτικό και ασφαλές και β) είναι σχεδόν αδύνατο να μη χρειαστεί ο χρήστης να γράψει κώδικα. Το αποτέλεσμα είναι να υπάρχουν χιλιάδες εφαρμογές, με τη κάθε μία να έχει το δικό της plug-in API, χωρίς καμμία δυνατότητα επαναχρησιμοποίησης κώδικα, καμμία δυνατότητα αλληλεπίδρασης μεταξύ διαφορετικών συστημάτων και μη προσβάσιμα στην πλειοψηφία των χρηστών. 2) Ενώ το hardware στο οποίο τρέχουν οι εφαρμογές εξελίσσεται με ολοένα γρηγορότερους ρυθμούς, ο κόσμος του λογισμικού βρίσκεται ακόμα σε νηπιακό στάδιο. Σχετικά 2

πρόσφατα ζήσαμε τη μετάβαση σε επεξεργαστές με πολλαπλούς πυρήνες και σήμερα ζούμε τη μετάβαση στο GPU computing. Η παράλληλη επεξεργασία είναι το μέλλον και τα προγραμματιστικά περιβάλλοντα που χρησιμοποιούνται ευρέως κάνουν τη ζωή των προγραμματιστών δύσκολη, αντί για ευκολότερη. Η αλήθεια είναι ότι ο προγραμματισμός ενός multi-threaded συστήματος είναι εξαιρετικά δύσκολη υπόθεση, που μόνο οι πιο έμπειροι προγραμματιστές μπορούν να καταφέρουν. Ελάχιστα είναι αυτά τα συστήματα που τρέχουν και αποδοτικά και χωρίς προβλήματα και λάθη. Το CYBERNET APPS έχει σχεδιαστεί για να προσφέρει λύσεις και στα δύο παραπάνω προβλήματα. Παράκατω θα δούμε πως, μέσα από την ανάλυση των χαρακτηριστικών του CYBERNET APPS. Παραμετροποίηση και επέκταση εφαρμογών. Ο πρώτος βασικός στόχος του CYBERNET APPS είναι να δώσει τη δυνατότητα σε οποιαδήποτε εφαρμογή να γίνει πιο ανοιχτή στους χρήστες της. Είτε πρόκειται για απλή παραμετροποίηση είτε για τη δημιουργία νέων λειτουργιών, το CYBERNET APPS μπορεί να χρησιμοποιηθεί εξίσου αποδοτικά και εύκολα. Αντί η εφαρμογή να παρέχει ένα plug-in API, σε κάποια γλώσσα προγραμματισμού, απλά ενσωματώνει το CYBERNET APPS και παρέχει τις δυνατότητές της ως βασικά nodes ή compounds. Ο χρήστης μπορεί έτσι να προσαρμόσει την εφαρμογή στις ανάγκες του, χωρίς να γνωρίζει προγραμματισμό. Οι δυνατότητες είναι πολλές: - Προσαρμογή και παραμετροποίηση των λειτουργίων της εφαρμογής. Δε χρειάζονται πλέον αμέτρητες λίστες, tabs, wizards, κτλ, όλα μπορούν να γίνουν μέσα από το ίδιο περιβάλλον. - Δημιουργία νέων λειτουργιών. Αντί η εφαρμογή να παρέχει ένα περιορισμένο σετ ενεργειών, που μπορούν να συνδυαστούν με λίγους και περιορισμένους τρόπους, μέσω του CYBERNET APPS ο χρήστης μπορεί να δημιουργήσει πραγματικά καινούργιες λειτουργίες, με δικιά τους λογική, δικιά τους επεξεργασία, κτλ. - Ακόμα και βασικές λειτουργίες της εφαρμογής μπορούν να αλλάξουν. Αν ο προγραμματιστής της εφαρμογής σχεδιάσει τις ίδιες τις βασικές λειτουργίες σαν διαγράμματα του CYBERNET APPS, τότε ο χρήστης μπορεί να κάνει μετατροπές ακόμα και σε αυτές. Δε θα χρειάζεται πλέον να περιμένει κάποιον τρίτο που θα γράψει κάποιο plugin ή νέα έκδοση της εφαρμογής για να λύσει τα προβλήματά του, θα μπορεί να κάνει τις αλλαγές άμεσα. Ένα από τα βασικά χαρακτηριστικά του CYBERNET APPS είναι το πόσο εύκολο είναι στη χρήση του. Το front-end του συστήματος έχει τα εξής χαρακτηριστικά που το κάνουν τόσο φιλικό περιβάλλον εργασίας: - Υποστήριξη για σχόλια. Όπως όλες οι γλώσσες προγραμματισμού υποστηρίζουν κάποιας μορφής σχολίων ανάμεσα στις εντολές τους, έτσι και το CYBERNET APPS επιτρέπει στα nodes του να εμπλουτιστούν με σημειώσεις, σχόλια και περιγραφές που κάνουν ευκολότερη τη κατανόησή τους. Τα σχόλια μπορούν να τοποθετηθούν οπουδήποτε σε ένα 3

διάγραμμα του CYBERNET APPS, ενώ υπάρχει και η δυνατότητα σχολιασμού ενός αριθμού από nodes ομαδικά (group comment). - Κάθε port εισόδου και εξόδου στα nodes του CYBERNET APPS, καθώς και κάθε σύνδεση μεταξύ τους, έχει συγκεκριμένο τύπο δεδομένων, ο οποίος αναπαριστάται με ένα συγκεκριμένο χρώμα. Έτσι ο χρήστης μπορεί να καταλάβει άμεσα τις σχέσης των συνδέσεων και τη ροή των δεδομένων, ποια ports είναι συμβατά μεταξύ τους, αλλά και ποιες μετατροπές πρέπει να γίνουν για να ξεπεραστούν οι ασυμβατότητες. Επίσης, πολλά nodes χρησιμοποιούν πολυμορφικά ports, που αλλάζουν τύπο ανάλογα με το τι είναι συνδεμένο κάθε φορά. Για παράδειγμα, ένα node μαθηματικής πρόσθεσης μπορεί να χρησιμοποιηθεί και ανάμεσα σε δύο integers και ανάμεσα σε δύο 3D floating-point vectors. Τέλος, κάθε node μπορεί να εκτελείται στο δικό του context. - Μέσω των compounds, η επαναχρησιμοποίηση λειτουργίας γίνεται πιο εύκολη από ποτέ. Οποιαδήποτε ομάδα από nodes/compounds του CYBERNET APPS μπορεί να ομαδοποιηθεί κάτω από ένα μεγαλύτερο compound. Το νέο compound παίρνει το δικό του όνομα, ενώ ο χρήστης επιλέγει ποια inputs και outputs θα αφήσει εκθετημένα. Έπειτα μπορεί να χρησιμοποιηθεί σαν οποιοδήποτε άλλο node, ενώ υπάρχει και η δυνατότητα να αποθηκευτεί σε βιβλιοθήκη για επαναχρησιμοποίηση. Στην ουσία τα compounds επιτρέπουν cross-platform και cross-language επαναχρησιμοποίηση κώδικα. Δίνεται επίσης η δυνατότητα σε έμπειρους χρήστες να δημιουργούν περίπλοκες λειτουργίες, τις οποίες έπειτα να χρησιμοποιούν αρχάριοι χρήστες, εύκολα και γρήγορα, χωρίς να γνωρίζουν πολλές λεπτομέρειες για το τι συμβαίνει σε βαθύτερο επίπεδο. - Τα compounds δεν είναι περιορισμένα στα πλαίσια της εφαρμογής. Υπάρχει η δυνατότητα export και import σε άλλη εφαρμογή ή περιβάλλον εργασίας. Έτσι επιτυγχάνεται επαναχρησιμοποίηση και σε επίπεδο που δεν ήταν ποτέ πριν εφικτό. Χρήστες του CYBERNET APPS μπορούν επίσης μέσω διαδικτύου να μοιράζονται ή ακόμα και να αγοράζουν ο ένας τα compounds του άλλου. - Η λειτουργία του CYBERNET APPS είναι ασφαλής, καθώς ο προγραμματιστής της εφαρμογής μπορεί να επιλέξει το σε ποια δεδομένα θα έχει πρόσβαση το CYBERNET APPS, ενώ παρέχεται και οι δυνατότητα κλειδώματος των compounds, ειδικά αυτών που διαθέτει έτοιμα η εφαρμογή. - Το front-end της εφαρμογής διατίθεται και σε standalone μορφή αλλά και web-based για χρήση μέσω browser. Μερικά παραδείγματα χρήσης του CYBERNET APPS είναι τα παρακάτω: - Δημιουργία macro-εντολών σε οποιαδήποτε εφαρμογή. - Ορισμός περίπλοκων φίλτρων σε οποιαδήποτε φόρμα αναζήτησης. - Ορισμός περίπλοκων εξισώσεων σε λογιστικό πακέτο. - Δημιουργία dynamic pricing πολιτικών σε σύστημα κρατήσεων. - Δημιουργία custom φίλτρων σε εφαρμογή επεξεργασίας εικόνας, ήχου και βίντεο. - Δημιουργία custom shader σε μηχανή ανάπτυξης 3D γραφικών. Ακόμα και χωρίς τον εμπλουτισμό της εφαρμογής όπως στα παραπάνω παραδείγματα, η χρήση του CYBERNET APPS είναι πολύ ελκυστική για οποιονδήποτε προγραμματιστή: 4

- Το encapsulation και code reuse που παρέχει δεν προσφέρεται από καμμιά γλώσσα προγραμματισμού. - Δεν κλειδώνει τον προγραμματιστή σε μια συγκεκριμένη γλώσσα προγραμματισμού ή πλατφόρμα. - Για να επιτευχθεί απόδοση εκτέλεσης αντίστοιχη με αυτή του CYBERNET APPS, για την ίδια λειτουργία, θα χρειαζόταν πολλαπλάσιος χρόνος ανάπτυξης. - Το CYBERNET APPS μπορεί να χρησιμοποιηθεί σαν template engine για αυτόματη παραγωγή επαναλαμβανόμενων μερών κώδικα. - Μελλοντικές βελτιώσεις στη μηχανή εκτέλεσης του CYBERNET APPS, ή στις low-level τεχνολογίες που χρησιμοποιεί εσωτερικά, θα έχουν σαν αποτέλεσμα αυτόματη βελτίωση της εκτέλεσης της εφαρμογής, χωρίς να χρειάζεται η παραμικρή αλλαγή στο κώδικά της. Εσωτερική λειτουργία και επιδόσεις. Ο πυρήνας του CYBERNET APPS είναι language και platform agnostic. Αναλαμβάνει την επικύρωση και μετατροπή των node diagram σε μια ενδιάμεση μορφή και εκτελεί κάποιες γενικές βελτιστοποιήσεις. Παρέχει επίσης γενικές λειτουργίες, όπως import/export των compounds και diagrams καθώς και όλες τις λειτουργίες του low-level API και εργαλεία διασύνδεσης με τις εφαρμογές. Γύρω από τον πυρήνα υπάρχει μια βιβλιοθήκη από pluggable components, τα οποία επιλέγει ο προγραμματιστής ανάλογα με τη χρήση που επιθυμεί. Τα components αυτά είναι είτε κάποια υλοποίηση του front-end (standalone ή web-based) είτε κάποια Execution Engine. Οι Execution Engines είναι αυτές που αναλαμβάνουν τη μετατροπή της ενδιάμεσης μορφή των CYBERNET APPS διαγραμμάτων σε εκτελέσιμη μορφή. Το CYBERNET APPS έχει σχεδιαστεί ώστε να μπορεί να υποστηρίξει οποιαδήποτε execution engine, με τις βασικές που παρέχονται τις παρακάτω: - JVM Execution Engine. Η βασική γλώσσα προγραμματισμού είναι η Java, ενώ μελλοντικά μπορεί να υποστηριχθεί οποιαδήποτε γλώσσα τρέχει σε JVM. Η εκτέλεση γίνεται μέσω Java Threads και του Fork/Join Framework (JSR-166y). - SQL Execution Engine. Η γλώσσα προγραμματισμού είναι η T-SQL. Η εκτέλεση γίνεται μέσω κάποιας βάσης δεδομένων. Υπάρχει επίσης η δυνατότητα χρήσης ORM βιβλιοθήκης, οπότε η εκτέλεση μετατρέπεται στην αντίστοιχη engine (π.χ. JVM αν η ORM βιβλιοθήκη είναι η Java υλοποίηση της Hibernate). - OpenCL Execution Engine. Η βασική γλώσσα προγραμματισμού είναι η OpenCL C, ενώ σε επίπεδο input/output δεδομένων υπάρχουν διάφορες επιλογές (C, C++, Java, etc). Η εκτέλεση γίνεται μέσω του OpenCL driver και υπάρχει η επιλογή εκτέλεσης είτε σε CPU είτε σε GPU. - GLSL Execution Engine. Όμοια με την OpenCL Execution Engine, με τη διαφορά ότι η βασική γλώσσα είναι η OpenGL Shading Language (GLSL). Χρήσιμη για εξειδικευμένες λειτουργίες επεξεργασίας γραφικών. - Web Execution Engine. Η βασική γλώσσα προγραμματισμού είναι η JavaScript, σε συνδυασμό με HTML και CSS. Η εκτέλεση γίνεται μέσω ενός Web Browser, με χρήση των JavaScript Worker Threads. 5

Μελλοντικά θα υλοποιηθούν Execution Engines για τη πλατφόρμα.net, για Python και άλλες scripting γλώσσες, κτλ. Όπως γίνεται αντιληπτό, το CYBERNET APPS βασίζεται σε μια σειρά από τεχνολογίες που όλες τους υποστηρίζουν δυναμικό ορισμό και εκτέλεση κώδικα. Αυτό σημαίνει ότι το CYBERNET APPS είναι ιδιαίτερα lightweight και οι βελτιστοποιήσεις που εκτελεί είναι σε υψηλό επίπεδο. Όλες οι βελτιστοποιήσεις χαμηλού επιπέδου γίνονται από τα διάφορα runtimes εκτέλεσης (Java Virtual Machine, SQL optimizer της βάσης δεδομένων, OpenCL/GLSL driver, κτλ). Η βασική υπηρεσία που προσφέρει το CYBERNET APPS είναι να εγγυάται τη σωστή παραγωγή κώδικα και την όσο γίνεται πιο αποδοτική διαχείριση της δομής των δεδομένων, που είναι ότι πιο ουσιαστικό για την ταχία εκτέλεση σε περιβάλλοντα με πολλούς επεξεργαστές. Η σωστή διαίρεση των δεδομένων (για αλγορίθμους τύπου divide-and-conquer) για την μέγιστη εκμετάλλευση των διαθέσιμων πόρων (επεξεργαστές και caches) είναι η κύρια δουλειά του πυρήνα του CYBERNET APPS. Διαφορετικά Execution Engines έχουν διαφορετικά χαρακτηριστικά εκτέλεσης και αποδοτικότητας. Για παράδειγμα το SQL Execution Engine θα προσφέρει μεγάλη ευελιξία, αλλά οι ευκαιρίες βελτιστοποίησης περιορίζονται στις δυνατότητες της βάσης δεδομένων. Από την άλλη, το OpenCL Execution Engine παρέχει πλήρη πρόσβαση στις πιο χαμηλού επιπέδου λειτουργίες και η εκτέλεση μπορεί να εκμεταλλευτεί στο έπακρο τις δυνατότητες των σύγχρονων CPUs και GPUs. Ένας OpenCL kernel που εκτελείται στη CPU, έχοντας πλήρη εικόνα της δομής των δεδομένων που επεξεργάζεται, μπορεί να εφαρμόσει αυτόματα SIMD εντολές (MMX, SSE1/2/3, AVX, κτλ) χωρίς τη μεσολάβηση προγραμματιστή. Επίσης μπορεί να εκτελεστεί στη GPU, ξεκλειδώνοντας έτσι την τεράστια ισχύ που κρύβεται στις σύγχρονες κάρτες γραφικών που διαθέτουν οι περισσότεροι χρήστες, κάτι που χωρίς το CYBERNET APPS είναι αρκετά περίπλοκο στην υλοποίηση. Πέρα από τη βασική βιβλιοθήκη από nodes που παρέχει ο πυρήνας του CYBERNET APPS, κάθε Execution Engine έρχεται με μια σειρά από δικά της βασικά nodes. Τα nodes αυτά είναι συνήθως εξειδικευμένες λειτουργίες, χρήσιμες στα πλαίσια της συγκεκριμένης Execution Engine, είτε για λόγους ευχρηστίας είτε για λόγους απόδοσης. Ένα ακόμα πλεονέκτημα του CYBERNET APPS είναι πως διαφορετικά Execution Engines μπορούν να συνδυαστούν ελεύθερα. Για παράδειγμα, μπορεί να εκτελεστεί ένα JVM execution, το output του οποίου να χρησιμοποιηθεί σαν input ενός OpenCL execution και τέλος το δεύτερο output να χρησιμοποιηθεί και πάλι από ένα άλλο JVM execution. Έτσι εκμεταλλευόμαστε πλήρως όλες τις δυνατότητες ενός σύγχρονου υπολογιστή, με πολύ απλό τρόπο και μέσα από το ίδιο περιβάλλον. Τέλος, όλα τα παραπάνω είναι προσβάσιμα προγραμματιστικά. Δεν απαιτείται η ενσωμάτωση του front-end για να εκμεταλλευτεί μια εφαρμογή τις δυνατότητες του CYBERNET APPS, μπορεί απλά να χρησιμοποιήσει το low-level API. Μπορεί επίσης αν θέλει να υλοποιήσει το δικό της εξειδικευμένο front-end. Το API επίσης υποστηρίζει την υλοποίηση νέων Execution Engines, νέων nodes, κτλ. 6

Επιχειρηματικό Μοντέλο. Το CYBERNET APPS είναι κυρίως σχεδιασμένο να γίνεται embed σε άλλα συστήματα, ως βιβλιοθήκη. Μπορεί όμως να προσφερθεί και σαν cloud-based service. Οι εφαρμογές του CYBERNET APPS είναι απεριόριστες, από μικρές stand-alone εφαρμογές μέχρι μεγάλα υπολογιστικά συστήματα, επομένως το licensing θα πρέπει να είναι εύελικτο ή και σχεδιασμένο ανά περίπτωση. 7