Oracle: το Android παραβιάζει πατέντες της Java 20


android plush bagΗ Oracle μια εταιρεία που εδώ και χρόνια κατέχει μια εξέχουσα θέση στην αγορά τον εμπορικών βάσεων δεδομένων και πρόσφατα εξαγόρασε την εταιρεία Sun Microsystems (γνωστής στο ελεύθερο λογισμικό για την γλώσσα προγραμματισμού Java, το OpenOffice.org, την MySQL, το OpenSolaris και άλλα λιγότερο γνωστά project) πρόσφατα προχώρησε στην κατάθεση μηνυτήριας αναφοράς ενάντια στο Google για την χρήση πατεντών της Oracle που καλύπτουν την γλώσσα προγραμματισμού Java. Η Java αν και τα Copyrights της ανήκαν στην Sun έγινε διαθέσιμη κάτω από την ελεύθερη άδεια λογισμικού GPLv2 (τονίζω ότι πρόκειται για την δεύτερη έκδοση της GPL καθώς η πλέον πρόσφατη GPLv3 δεν επιτρέπει την σύνδεση πατεντών στο κώδικα που περιγράφει).

Τα κινητά τηλέφωνα με Android διαθέτουν κάτι παρόμοιο με το Java Virtual Machine το Dalvik Virtual Machine. Αν και το Dalvik έχει πολλές διαφορές συγκριτικά με την JavaVM η Oracle έκρινε ότι έπρεπε να προχωρήσει σε ένδικα μέσα. (Το κείμενο της μήνυσης θα το βρείτε εδώ). Οι πατέντες που η Oracle πιστεύει ότι παραβιάζονται από το Android είναι οι ακόλουθες:

  • 6,125,447 – Protection Domains To Provide Security In A Computer System
  • 6,192,476 – Controlling Access To A Resource
  • 5,966,702 – Method And Apparatus For Preprocessing And Packaging Class Files
  • 7,426,720 – System And Method For Dynamic Preloading Of Classes Through Memory Space Cloning Of A Master Runtime System Process
  • RE38,104 – Method And Apparatus For Resolving Data References In Generate Code
  • 6,910,205 – Interpreting Functions Utilizing A Hybrid Of Virtual And Native Machine Instructions
  • 6,061,520 – Method And System for Performing Static Initialization

Δεν είμαι δικηγόρος (ούτε σοβαρός προγραμματιστής) ώστε να μπορώ να ξέρω αν μπορούν να σταθούν οι εν λόγω πατέντες στα Αμερικανικά δικαστήρια. To κύριο πρόβλημα για έτσι όπως το βλέπω εγώ είναι ότι το Google δεν προτίμησε να χρησιμοποιήσει την GPL-αρισμένη έκδοση της Java για να υλοποιήσει το subset του Dalvik αντίθετα προτίμησε να χρησιμοποιήσει την Java που έρχεται με την άδεια της Sun (πλέον Oracle) από την άλλη ακόμη και αν προτιμούσε την GPL ίσως η Oracle συνέχιζε με την μήνυση. Μην ξεχνάμε ότι η μήνυση δεν είναι απλά για παραβίαση copyright αλλά για παραβίαση πατεντών.

Σύμφωνα με την εν λόγω μήνυση η Oracle ζητάει την κατάσχεση και καταστροφή των συσκευών που φέρουν λογισμικό που καλύπτεται από τις πατέντες της από την άλλη στην Silicon Valley (συγκεκριμένα στο blog του δημιουργού της Java James Gossling (το όποιο λόγω πολύ κίνηση έχει γονατίσει)) ότι στην ουσία κατά τις συζητήσεις εξαγοράς της Sun από το κύριο θέμα ήταν η νομική θέση της εταιρείας σε σχέση με το Android. Δεν είμαι σε θέση να επιβεβαιώσω ή να διαψεύσω τις φήμες αυτό όμως θα θυμίσω ότι κάποιος “γραφικός” για τα στάνταρ των περισσότερων από εμάς κύριος με μακριά μαλλιά και γένια (ναι για τον Richard Stallman μιλάω) έγραφε ένα σχεδόν προφητικό άρθρο το περίφημο Java Trap.

Ναι μεν ο κύριος Stallman αναφερόταν στο πόσο επικίνδυνο είναι οι προγραμματιστές να βασίζονται στην υλοποίηση μιας κλειστής γλώσσας προγραμματισμού. Ναι μεν η Java έγινε ελεύθερο λογισμικό πριν μερικά χρόνια (την ελεύθερη υλοποίηση την ονομάζουμε IcedTea) αλλά τα προβλήματα προέκυψαν με την υλοποίηση του Android που βασιζόταν σε κλειστό κώδικα. Βλέπω χωρίς να θέλω να βάλω απέναντι μου την κοινότητα του Mono πως ο Miguel de Icaza σε ένα άρθρο του που αναλύει την κατάσταση στο τέλος του άρθρο προτείνει στο Google να γυρίσει στην πιο ανοιχτή πλατφόρμα του .NET. Δεν μπορώ παρά να θυμηθώ την Κασάνδρα που ακούει στο όνομα Richard Stallman (ρε κόλλημα σήμερα) που έλεγε ότι η “υπόσχεση της MS” είναι στην ουσία κενό γράμμα.

Τι θα έπρεπε να κάνει η Google;

Εδώ τα πράγματα είναι λίγο περίπλοκα. Πιστεύω ότι κάτω από την (άδικη κατά την γνώμη μου αλλά ισχύουσα νομοθεσία των ΗΠΑ) υπάρχει ένα θέμα… πολύ σοβαρό θέμα αλλά από την άλλη νομίζω ότι η Oracle έχει μεγαλύτερο νόμιμο συμφέρων να πιέσει την Google σε εξωδικαστικό συμβιβασμό. Ο Miguel de Icaza προτείνει κάτι που έχει αρκετά μεγάλο ρίσκο. Όχι τόσο τεχνικό… όσο επιχειρηματικό καθώς η Google πάλι θα είναι εκτεθειμένη σε νομικές κινήσει από την πλευρά της MS. Μια άλλη πλατφόρμα που χρησιμοποιείται ήδη στην κινητή τηλεφωνία και μάλιστα καλύπτεται καλύτερα νομικά είναι η Qt που όμως ελέγχεται από την Nokia.

Μιας τέτοιας κλίμακας αλλαγή θα δημιουργούσε ίσως περισσότερα προβλήματα από αυτά που θα έλυνε για την Google αλλά πολλά θα εξαρτηθούν από τις διαπραγματεύσεις που προφανώς θα γίνουν “κεκλεισμένων των θυρών” μεταξύ Oracle και Google.

Ωστόσο δεν βγαίνει μόνο το Google ζημιωμένο από αυτή την κίνηση της Oracle. Βλέπετε οι developers είναι μυστήρια πλάσματα και, όχι άδικα, κάπως καχύποπτα. Πολλά ανοιχτού κώδικα προγράμματα όπως η MySQL, το OpenOffice.org, το OpenSolaris και άλλα που είχαν αρχίσει στην εποχή της Sun θα αντιμετωπίζονται με μεγαλύτερη καχυποψία λόγω της εμπλοκής της Oracle σε αυτά και θεωρώ αρκετά πιθανό να χάσουν developers ή να δημιουργηθούν fork όπου αυτό είναι δυνατό. Το μέλλον θα είναι μάλλον πλούσιο σε ειδήσεις!


About Eleftherios Kosmas

Technologist in the University of Athens, open source enthusiast, member of the local hackerspace, vice chairperson of the Libre Space Foundation,

Σχολιάστε

20 thoughts on “Oracle: το Android παραβιάζει πατέντες της Java

  • Θοδωρής Λύτρας

    Φίλε νομίζω είσαι λίγο offtopic στο post αυτό…

    Κατ’ αρχήν άλλο είναι η γλώσσα Java (το συντακτικό της και το API της) και άλλο το λογισμικό Java. Το λογισμικό Java δεν είναι όλο GPL, όμως GPL είναι η reference implementation της Java, δηλαδή βιβλιοθήκες, Virtual Machine, Compiler, κλπ. Κανείς μπορεί να χρησιμοποιήσει κώδικα από το επίσημο implementation αυτό, για το δικό του project.

    Ήδη και πριν γίνει GPL το reference implementation της Java, υπήρχαν (και υπάρχουν) υλοποιήσεις της Java όπως το GNU Classpath και το Apache Harmony (βλέπε: http://en.wikipedia.org/wiki/Free_Java_implementations ). Κι αυτό γιατί η ίδια η γλώσσα Java ΔΕΝ υπόκειται σε αδειοδότηση. Μόνο ο κώδικας έχει αυτό το προνόμιο.

    Με άλλα λόγια κανένας δε μπορεί να με εμποδίσει να φτιάξω ένα free implementation μιας γλώσσας της οποίας το επίσημο implementation είναι non-free. Φυσικά την ευθύνη για τη σωστή συμβατότητα την έχω εγώ (δηλαδή σε μένα μπορεί να μη γίνονται compile σωστά όλα τα προγράμματα). Τρανό παράδειγμα το Mono, που είναι free implementation του .NET. Επίσης υπάρχουν θέματα trademark, επομένως θα το πούμε Mono αντί Free.NET, και Harmony αντί OpenJava.

    Σε άλλο πράγμα αναφερόταν ο Stallman στο άρθρο “The Java trap” (όταν ακόμη η υλοποίηση της Sun ήταν κλειστό). Επισήμαινε οτι ένα Java πρόγραμμα μπορεί να είναι ελεύθερο, όμως αυτό είναι δώρο άδωρο αν στηρίζεται σε έναν compiler ή σε ένα virtual machine που ΔΕΝ είναι ελεύθερο. Και δεδομένου οτι η λειτουργικότητα των ελεύθερων υλοποιήσεων της Java (τουλάχιστον τότε) δεν ήταν πλήρης, οι προγραμματιστές θα πρέπει να είναι προσεκτικοί. Αυτά έγραψε ο Stallman, και δεν αναφερόταν καθόλου στις ίδιες τις υλοποιήσεις της γλώσσας Java.

    Έχοντας ξεκαθαρίσει αυτά, πάμε στο Android. Το ζητούμενο δεν είναι γενικώς και αορίστως το Android αλλά το Dalvik (μαζί με το συνοδό του εργαλείο dx). Το Dalvik λοιπόν είναι μια καινούργια, ανοιχτού κώδικα υλοποίηση της Java, βασισμένη κατά ένα μέρος στον κώδικα του Harmony και ΟΧΙ της Java (της reference implementation). Θυμίζω οτι η άδεια Apache (Harmony, Dalvik) είναι ασύμβατη με την GPL2 (Sun Java). Όμως αυτό ξανατονίζω αφορά implementations, και όχι την ίδια τη γλώσσα.

    Συνεπώς το Dalvik ΔΕΝ αντιγράφει κώδικα από τη Sun (το οποίο θα ήταν GPL violation!), ούτε υλοποιεί όλη τη λειτουργικότητα της “επίσημης” Java, ούτε είναι συμβατό με την Java ME (την “επίσημη” Java για φορητές συσκευές – αυτό είναι σημείο κλειδί!). Γενικά δεν υπάρχει τίποτα παράνομο στο Dalvik από πλευράς αδειοδότησης, και είναι ένα συνηθισμένο opensource project.

    Τι λοιπόν συμβαίνει εδώ? Πολύ απλά η Oracle έκανε εναντίον του Dalvik αυτό που φοβόμασταν οτι θα κάνει η Microsoft εναντίον του Mono: να επικαλεστεί πατέντες, και να ισχυριστεί οτι ο ανοιχτός κώδικας που άλλοι έγραψαν παραβιάζει τις πατέντες αυτές. Δεν έχει ΚΑΜΜΙΑ σχέση με την GPL ή άλλη άδεια, και το ίδιο πράγμα θα μπορούσε να κάνει η Oracle εναντίον οποιουδήποτε άλλου free Java implementation (γι’ αυτό άλλωστε λέμε οτι οι πατέντες είναι ο #1 κίνδυνος για το ελεύθερο λογισμικό, δε το βγάζουμε από το μυαλό μας)

    Απλώς η Oracle επέλεξε να μηνύσει την Google για το Dalvik, και όχι τον Stallman για το GNU Classpath (!), επειδή η Google έχει τα λεφτά. Its not all about the money, όμως: με την εμπορική επιτυχία του Android, και χιλιάδες κόσμο να γράφει εφαρμογές γι’ αυτό, πλήττεται ευθέως η Java ME. Μακροπρόθεσμα θα μπορούσε να πληγεί η ίδια η Java, αν η δημοφιλία (μεταξύ των developer) του implementation της Google άρχιζε να ξεπερνάει αυτή του implementation της Sun/Oracle. Κάτι σαν fork ουσιαστικά, όπως συμβαίνει πάντα στο ελεύθερο λογισμικό.

    Η μήνυση λοιπόν της Oracle δείχνει οτι είναι αποφασισμένη να μην επιτρέψει ένα fork της Java (για την οποία πλήρωσε άλλωστε πολλά λεφτά), και θα χρησιμοποιήσει τα πάντα (=πατέντες) για να κρατήσει σφιχτά τον έλεγχο της Java (=το δικό της implementation να είναι το στάνταρ που όλοι θα ακολουθούν).

    Τώρα αν αυτό σας φαίνεται κομματάκι (sic) αντίθετο με το πνεύμα του ελεύθερου λογισμικού, θα σας απαντήσω οτι είναι τόσο αντίθετο που μπορεί να προκαλέσει εγκεφαλικό στον Richard Stallman! Το θέμα είναι τεράστιο, θα έχει τεράστιες επιπτώσεις, και είναι πιθανό να εντείνει τις ανησυχίες και να επισπεύσει εξελίξεις σε σχέση με το θέμα των πατεντών. Πάντως η Oracle μόλις πυροβόλησε τον εαυτό της στο πόδι…

    • Eleftherios Kosmas Post author

      Ευχαριστώ για το input… ναι όντως είμαι λίγο offtopic. 😀

      Άσχετο αλλά νόμιζα ότι η Oracle ως μέλος του OIN θα είχε δεν θα χρησιμοποιούσε αυτές τις πατέντες εναντίων του Dalvik εφ´όσον το Dalvik είναι opensource… IANAL αλλά νομίζω ότι πρόκειται για huge mess… και η Oracle νομίζω ότι χάνει αποξενώνεται πολύ από την Open Source κοινότητα όχι μόνο με τη συγκεκριμένη κίνηση φυσικά.

    • Eleftherios Kosmas Post author

      Εμ, εγώ σου το έχω πει… το blog είναι ανοιχτό και όποτε θες στέλνεις άρθρο κανονικά. Τα λέμε και από κοντά φυσικά

  • gerstavros

    Δεν νομίζω ότι θα πληγεί η java από το dalvik, παρόλα αυτά ξαναλέω ότι το android και η επιλογή της google να γίνεται η ανάπτυξη των εφαρμογών μόνο σε dalvik(java) κι όχι κανονικά (native linux, όπως στο maemo/meego) είναι μεγάλο λάθος…

    • Eleftherios Kosmas Post author

      Και εγώ αυτή την άποψη έχω αλλά από ότι φαίνεται ο Θοδωρής διαφωνεί… Ίσως όμως φταίει ότι εγώ βλέπω το κινητό τηλέφωνο σαν υπολογιστή και δευτερευόντως σαν τηλέφωνο.

  • cortlinux

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

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

    • Θοδωρής Λύτρας

      Όχι, κάθε άλλο! Δε στρέφεται εναντίον αυτού που φτιάχνει προγράμματα με τη γλώσσα Java, αλλά έναντι αυτού που φτιάχνει άλλη υλοποίηση της Java πέραν από την επίσημη. (Όπου υλοποίηση = Virtual Machine, compiler, class libraries, κλπ). Φυσικά τα εργαλεία αυτά είναι απαραίτητα για να τρέξει ένα πρόγραμμα σε γλώσσα Java!

      Ευτυχώς βέβαια η Java Reference Implementation είναι GPL, αλλά όπως και να’χει η κίνηση της Oracle δεν είναι λιγότερο άσχημη, γιατί στρέφεται κατά ενός opensource project.

      Προς gerstavros: εγώ αντίθετα νομίζω, αν και δεν είμαι Java fan, οτι η επιλογή του dalvik ήτανε η σωστή (έναντι του native code). Πρέπει να καταλάβουμε οτι το κινητό μας τηλέφωνο δεν είναι desktop υπολογιστής, δεν μπορεί να είναι, και ούτε φιλοδοξεί να γίνει.

      • Eleftherios Kosmas Post author

        Πιστεύεις ότι η μεθοδολογία που ακολουθεί η Nokia με την Qt στα Symbian και ακόμη περισσότερο στο Maemo είναι λάθος… (όσο αφορά την χρήση native code δηλαδή);

        • Θοδωρής Λύτρας

          Όχι, γιατί μ’ αρέσει η πολυφωνία! 🙂
          Απλώς νομίζω οτι χρησιμοποιώντας Java στο Android, και δη managed code, η Google έκανε τα πράγματα πολύ εύκολα για χιλιάδες προγραμματιστές να γράψουν πολλές εφαρμογές κινητού τηλεφώνου. H Nokia από την άλλη έχει ένα εργαλείο στα χέρια της που είναι πιο “προχωρημένο” προγραμματιστικά, επιτρέπει transfer of skills σε παρόμοιο βαθμό, αλλά είναι λιγότερο προσανατολισμένο σε εφαρμογές κινητού τηλεφώνου και περισσότερο σε εφαρμογές MID.

          • Eleftherios Kosmas Post author

            Το ξέρω ρε man, νομίζω όμως ότι η Qt έχει πλέον πολλά εργαλεία για την ανάπτυξη εφαρμογών κινητής τηλεφωνίας (τουλάχιστον σε σχέση με το παρελθόν).

    • Eleftherios Kosmas Post author

      Ευχαριστώ για την προσθήκη Μιχάλη, πολύ χρήσιμο Link πραγματικά… νομίζω ότι το θέμα είναι huge όχι μόνο για την Google αλλά για όλο το ελεύθερο λογισμικό.