Wednesday, April 13, 2016

An early "Software Defined" Network ?

ό όρος SDN - Software Defined Network είναι ιδιαίτερα φορτισμένος οπότε κάνω QUOTE (a la LISP function) στον όρο για να του προσδιορίσω το νόημα από την δική μου σκοπιά, έχω δεί κάποιος άλλος να αναφέρει “Software Defined Νetworking” (6) σαν διαφοροποίηση από το κυρίαρχο νόημα που δίνει η ηγετική τριάδα CASADO , SHENKER, McKEOWN. Οι παρουσίασεις τους στο ΥOUTUBE είναι ιδιαίτερα χρήσιμες για να δει κανείς τις βασικές έννοιες, ξεχωρίζω το θέμα της αναζήτησης “abstractions” για το δίκτυο. Αφαιτηρία τους είναι το Εταιρικό Δίκτυο (δες taking control of the enterprise network with Ethane , pdf), παρακολουθώ τη δουλειά τους μέχρι και το P4 που είναι η εφαρμογή της λογικής "compiling" για την αντιμετώπιση των πολλών εκδόσεων του Openflow καθώς επεκτείνεται συνεχώς με νέα header. Σαφώς είναι ένα μεγάλο ταρακούνημα για καινοτομία στο δίκτυο/internet που για πολλούς έχει οστεοποιηθεί (δες περί internet ossification και clean slate design).

Η είσοδος μου στα υπαρξιακά του networking στηρίχτηκε στο πλαίσιο του computing paradigm shift (1980?) γνωστό ως “απελευθέρωση από τον προγραμματισμό τύπου Von Neumann). Όταν κατάλαβα κάποια πράγματα στη πράξη για το δίκτυο/internet έθεσα το προσδιορισμό του Networking paradigm σαν όραμα εργασίας/vision. H βασική ιδέα προήλθε από την απογοήτευση μου που ο ΙΤ κόσμος δεν γέμισε από SECD machine (ούτε SKI machine ) ούτε κάποια άλλη μηχανή του Lambda Calculus κώδικα που ευαγγέλιζε το αναφερόμενο πλαίσιο. Γέμισε όμως από την WINTEL πλατφόρμα με κιλλερ εφαρμογές το λογιστικό φύλλο, τον επεξεργαστή κειμένου, τα εντυπωσιακά γραφικά/graphics σε πρώτη φάση. Μια προώρη εξήγηση ήρθε σε μένα από την δουλειά του Turchin που εν συντομία είπε ότι ο ζητούμενος αυτοματισμός του Functional Programming πρέπει να είναι μια αλυσίδα αυτοματισμών δλδ ο προγραμματισμός Metasystem Transitions που οδηγεί στην κατασκευή Ultra-Metasystems δλδ εξελισσόμενες κατασκευές όχι οντότητες που προκύπτουν από one-step αλλαγές και ο παλιός μηχανισμός στα σκουπίδια. Άρα, ένα νέο περιβάλλον ήταν το ζητούμενο και δεν είχε εμφανιστεί ακόμη. Αργότερα με την εμφάνιση του WWW πρότεινε την REFAL αντί της XML δλδ String processing + Functions (1) και εφάρμοσε την τεχνική supercompilation πάνω στην JAVA.

Παρομοίως λοιπόν προσέγγισα το θέμα με μια ερμηνεία της σημασίας της JAVA (έστειλα email στον top developer της Microsoft - πανεπιστημιακή γνωριμία) που παρουσίασα σε ημερίδα για το Διαδίκτυο του 1996 (δες τελευταία διαφάνεια) καθώς επίσης και με μια πρωτότυπη ιδέα περί virtual von Neumann machine που οπτικοποίησα με το ακόλουθο πόστερ (1998):

Αναλυτικότερα, η δική μου εκδοχή σύνδεσης Functional Programming + Internet ήταν το Κβάντο Αυτοματισμού δλδ ότι το πρόβλημα γνωστό τότε ως Software Crisis λύθηκε με έναν πιο ρεαλιστικό μηχανισμό εφαρμογής αυτοματισμού δλδ το OPENSOURCE φαινόμενο (μέσω PC και Internet) που διέθετε free debugging/production power και άλλαξε καθοριστικά τον τροπό κατασκευής λογισμικού. Αυτή η λύση "νίκησε" το hype της απελευθέρωσης από το imperative programming (liberation from Von Neumann programming), δλδ η αντιμετώπιση της κρίσης του λογισμικού στο περιβάλλον ('80s) της πληθώρας φτηνών μικροϋπολογιστών σύμφωνα με τον Turner (2).

Οταν κατάλαβα κάποια βασικά/fundamentals του διαδικτύου (δες παρουσίαση ΕΕΔΕ ) έγραψα μήνυμα στον εφευρέτη της MIRANDA (2) ότι ίσως το δίκτυο/internet είναι το playground για τους καταπληκτικούς μηχανισμούς του Functional Programming αλλά αυτό ήταν κάτι σαν ένστικτο που όμως αποτέλεσε τη βάση για να ξεκινήσω μια πρωτότυπη προσέγγιση “undestanding internet as a software defined entity” δλδ αναζήτηση της ψηφιακής φύσης του φαινομένου με μοντέλο αναφοράς τους άξονες: computing fundamentals, software paradigms, cybernetic evolution.

Aυτή είναι η κλωστή που διαπερνά το ποστάρισμα έμμεσα εδώ γιατί μαζί με την κατασκευή της οντότητας “αριάδνη τι?” ήμουν σίγουρος ότι κάτι φτιάχνεται καινούργιο που δεν ξέρουμε τι (οκ στέλνει email αλλά τι άλλο φτιάχνεται) και πρέπει να διερευνήσουμε. ΟΚ διερεύνησα και την RINA με τον Περικλή Ζήση το είπα και στον John Day, με ευχαρίστησε δεν ενθουσιάστηκε όμως (3), βέβαια συνεργάτες του έκαναν επίσης δημοσιεύσεις για τη σχέση RINA και SDN ( έργο EU PRISTINE). Τι θέλω να πω ? Όχι δεν έχει σχέση με δημοσιεύσεις αλλά με την πρόσφατη ανακοίνωση της AMAZON για AWS LAMBDA !!! (δλδ Λάμδα κώδικος πάνω στο δίκτυο και οδηγός είναι και πάλι το κόστος.

Τώρα, τo hot στο Computing το προσδιορίζουν οι μεγάλοι, δες Β4 της GOOGLE (5) (εφάρμοσε SDN πρώτη στο global δίκτυο για να πετύχει σχεδόν 100% χρήση των γραμμών δικτύου δλδ μείωση κόστους), το ίδιο κάνει και η FACEBOOK, (SDN για το hardware, switch+server με το Open Compute Project) και το κάνει η ΑΜΑΖΟΝ (στο Cloud Computing παίζουν όλοι (4) εναντίον της με το OPENSTACK) με στόχο να ανταγωνιστεί τις τιμές του public Cloud (δες περί AWS LAMBDA). Συμπεραίνω ότι όπως το Computing βρήκε τα δικά του παραδείγματα/paradigms (functional. object, logic, reactive, ..) οριμάζει και το Networking αντιστοίχως δλδ IPv6, LISP protocol, SDN, ICN, NDN - Named Data Networking.

Ενα πρόσφατο άρθρο περί ανταγωνισμού YAHOO-GOOGLE επιβεβαιώνει την σημασία του "software defined" καθώς και την παραπάνω διατύπωση περί προσδιορισμού του "hot" από τους μεγάλους.

Σημείωσεις

1. http://www.refal.org/english/xmlref_1.htm (πρόσβαση στον ιστό 11-04-2016)
2. David Turner Computer Scientist (δες wikipedia)
ιδρυτή της Research Software Ltd.

3. Αμα διαβάσεις το διάλογο REXFORD, CLARK, VAHDAT στο CACM θα δεις ότι το SDN διαλύει το “ιερό” του end-to-end network principle και ο John Day που μάχεται για καθαρές έννοιες για το δίκτυο σαν προϋπόθεση καινοτομίας δεν το πιστεύει.
4. όταν λέμε όλοι εννοείται όλοι δλδ >500 από τις μεγαλύτερες εταιρίες.
5. B4, (δες τη δημοσίευση στο http://cseweb.ucsd.edu/~vahdat/papers/b4-sigcomm13.pdf)

6. η σχετική αναφορά στην wikipedia