Προγραμματισμός

Τι σημαίνει η αγωγή της Sun εναντίον της Microsoft για προγραμματιστές Java;

7 Οκτωβρίου 1997 - Η Sun ανταποκρίθηκε στην έκδοση του Internet Explorer (IE) 4.0 της Microsoft και στην έκδοση 2.0 του SDK για Java (SDKJ) με αγωγή στο Επαρχιακό Δικαστήριο των ΗΠΑ. Σύμφωνα με το δελτίο τύπου της Sun, "η καταγγελία κατηγορεί τη Microsoft για παραβίαση εμπορικών σημάτων, ψευδή διαφήμιση, παραβίαση συμβολαίου, αθέμιτο ανταγωνισμό, παρέμβαση σε πιθανό οικονομικό πλεονέκτημα και πρόκληση παραβίασης συμβολαίου" Συγκεκριμένα, η Microsoft έκανε την επιλογή την περασμένη εβδομάδα να στείλει προϊόντα που ισχυρίζεται ότι είναι πλήρως συμβατά με το Java 1.1, αλλά δεν κατάφερε να περάσει τις δοκιμές συμβατότητας Java 1.1 που έλαβε η εταιρεία από την Sun τον Φεβρουάριο. "Η Microsoft ξεκίνησε μια σκόπιμη πορεία συμπεριφοράς για να κατακερματιστεί την Java", δήλωσε ο Alan Baratz, πρόεδρος της JavaSoft, κατά τη διάρκεια τηλεδιάσκεψης της Sun σήμερα στις 10:30 π.μ. PST.

Από την οπτική γωνία ενός προγραμματιστή, τι σημαίνει αυτό; Λοιπόν, πρώτα, αν δημιουργήσετε κάτι με το 1.1 JDK της Sun (ή με περιβάλλον πιστοποιημένο από Java 1.1 από άλλη εταιρεία, όπως η IBM, η Borland και η Symantec), ενδέχεται να μην εκτελείται βάσει του IE 4.0. Επίσης, εάν δημιουργήσετε κάτι με το περιβάλλον ανάπτυξης της Microsoft, ενδέχεται να μην εκτελείται σε περιβάλλον μη Microsoft Java 1.1. Συγκεκριμένα, η Microsoft δεν υποστηρίζει το Java Native Interfaces (JNI) ή το Remote Method Invocation (RMI) και έχει αλλάξει τις βιβλιοθήκες κλάσης Core Java με περίπου 50 μεθόδους και 50 πεδία που δεν αποτελούν μέρος των δημόσιων Java Application Programming Interfaces ( APIs) που εκδόθηκε από την Sun.

JNI και RMI: Γιατί η απόρριψη της Microsoft από αυτά δημιουργεί πρόβλημα

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

Η Microsoft αποφάσισε να υποστηρίξει τη δική της διεπαφή, που ονομάζεται RNI, η οποία παρέχει τις ίδιες δυνατότητες με το JNI. Μη υποστηρίζοντας το JNI, η Microsoft αναγκάζει τους προγραμματιστές να παρέχουν διαφορετικές βιβλιοθήκες για χρήστες Microsoft και μη εικονικής μηχανής Java (JVM). Δεν υπάρχει τίποτα λάθος με την υποστήριξη της Microsoft για το RNI εάν η εταιρεία πιστεύει ότι η τεχνολογία της είναι καλύτερη. Ωστόσο, επειδή δεν υποστηρίζει το JNI, η Microsoft δεν μπορώ Η αξίωση IE 4.0 είναι πλήρως συμβατή με το Java 1.1.

RMI παρέχει ένα μέσο εκτέλεσης κώδικα Java σε ξένες εικονικές μηχανές Java. Συχνά συγκρίνεται με Κλήσεις Απομακρυσμένης Διαδικασίας (RPC), Common Architecture Broker Architecture (CORBA) και Distributed Component Object Model (DCOM), ανάλογα με το φόντο του ατόμου που μιλά. Η Microsoft ισχυρίζεται ότι υποστηρίζει DCOM αντί για RMI, επειδή το RMI δεν υποστηρίζει επικοινωνίες Java-προς-Java. Ο ειδικός σκοπός για τη χρήση του RMI είναι για επικοινωνίες συστήματος Java-σε-Java. Για παράδειγμα, με το RMI, μπορείτε να καλέσετε μεθόδους αντικειμένων που υπάρχουν σε άλλες εικονικές μηχανές Java, χωρίς να γνωρίζετε τον τύπο κλάσης, διατηρώντας παράλληλα την ασφάλεια χρόνου εκτέλεσης της Java.

Εάν πρέπει να μετακινηθείτε εκτός των επικοινωνιών Java-Java, το CORBA είναι στην πραγματικότητα η φορητή λύση και όχι το DCOM. Γιατί; Το DCOM προσανατολίζεται στον κόσμο της Microsoft, μόλις πρόσφατα έγινε διαθέσιμο για τον κόσμο της Unix με προϊόντα όπως το EntireX από την Software AG. Εάν πρέπει να χρησιμοποιήσετε το RMI, προφανώς ο Internet Explorer δεν είναι διαθέσιμη. Εάν χρειάζεστε επικοινωνίες συστήματος Java-σε-μη-Java, για διασύνδεση με συστήματα παλαιού τύπου (εκτός Java) που βασίζονται σε CORBA, το Netscape Communicator 4.0 αποστέλλεται με το VisiBroker ORB της Visigenic. (Για υποστήριξη RMI με το Netscape Communicator, πρέπει να χρησιμοποιήσετε μια έκδοση beta μιας ενημερωμένης έκδοσης κώδικα του προγράμματος περιήγησης, καθώς το Communicator δεν ισχυρίζεται ότι είναι πρόγραμμα περιήγησης Java 1.1.)

Σάπιο στο Core Java API: Η ουσία του προβλήματος

Το τελευταίο πρόβλημα ασυμβατότητας Java 1.1 που εντοπίστηκε είναι στην πραγματικότητα το πιο τρομακτικό. Είναι εύκολο να αποφύγετε το RMI και το JNI εάν το επιτρέπει η εφαρμογή σας: Απλώς δεν τα χρησιμοποιείτε. Το βασικό είναι ότι η Microsoft αποφάσισε ότι οι βιβλιοθήκες κλάσης Core Java δεν ήταν επαρκείς για τις ανάγκες της. Τώρα δεν υπάρχει τίποτα κακό με την επέκταση των πραγμάτων με την υποκατηγορία και την τοποθέτηση των νέων αντικειμένων σε ένα πακέτο έξω από την ιεραρχία κλάσης java. *. Αλλά η απόφαση να προσθέσετε περίπου 50 μεθόδους και 50 πεδία στις τάξεις στα πακέτα java.awt, java.lang και java.io, όπως έκανε η Microsoft, είναι εξαιρετικά προβληματική. "Η Microsoft άλλαξε παραπλανητικά τις βασικές τάξεις και τις εισήγαγε στο SDK τους", δήλωσε ο Baratz, με αποτέλεσμα οι προγραμματιστές να σκέφτονται ότι γράφουν Java, ενώ στην πραγματικότητα γράφουν κάτι που τρέχει μόνο στον Internet Explorer.

Πώς επηρεάζουν οι προσθήκες της Microsoft στις τάξεις προγραμματιστές Java; Λοιπόν, εάν βασίζεστε σε αυτές τις αλλαγές, ή απλώς ακούστε τις, το πρόγραμμά σας θα λειτουργεί μόνο στο σύστημα Java της Microsoft. Επίσης, εάν δημιουργήσετε ένα πρόγραμμα εκτός του περιβάλλοντος ανάπτυξης της Microsoft, θα περιμένει ένα συγκεκριμένο βασικό API. Δυστυχώς, αυτό το Core API διαφέρει από αυτό στο περιβάλλον της Microsoft, επομένως το πρόγραμμα ενδέχεται να μην λειτουργεί εκεί. Η δοκιμή της συμβατότητας που επισήμανε αυτό το πρόβλημα είναι αυτό που ονομάζεται a δοκιμή υπογραφής.

Για παράδειγμα, εάν η μέθοδος foo () υποτίθεται ότι δέχεται μια παράμετρο τύπου μπαρ, καλύτερα να αποκτήσετε ένα αντικείμενο τύπου μπαρ. Αν κάποιος θέλει να περάσετε ένα αντικείμενο τύπου μπαζ Αντ 'αυτού, θα λειτουργήσει μόνο σε συστήματα που άλλαξαν τον πυρήνα για να το αποδεχτούν. Και, η Microsoft εισήγαγε αυτήν την αλλαγή. Τώρα, η Microsoft μπορεί να πιστεύει ότι αποτελεί την εφαρμογή αναφοράς του Java για Windows. Αλλά το γεγονός είναι ότι μόνο η Sun μπορεί να εισαγάγει αλλαγές στο Core Java API. Ναι, οποιοσδήποτε κάτοχος άδειας μπορεί παρακαλώ για αλλαγές, και πολλές φορές το κάνουν. Αλλά η Microsoft μεμονωμένα, και χωρίς άδεια, αποφάσισε να αλλάξει αυτά τα πράγματα.

Στο τέλος, ο στόχος της αγωγής είναι, με τα λόγια του Baratz, "να επιστρέψει η Microsoft στη συμμόρφωση" και το συντομότερο δυνατό. Αλλά έως ότου επιλυθούν οι νομιμότητα, η Sun θα παρακρατήσει από τη Microsoft όλες τις τρέχουσες βελτιώσεις τεχνολογίας Java, όπως η νέα εικονική μηχανή Java 2.0 που ονομάζεται HotSpot. Εάν η Microsoft δεν επιστρέψει στη συμμόρφωση με την Java, θα χρειαστεί να εφαρμόσει μια καθαρή εφαρμογή της έκδοσής της για κάτι που δεν θα ονομάζεται Java - δηλαδή, εάν θέλει να κάνει κάτι με το αντίστοιχο bytecodes Java. Ποιος ξέρει τι θα συμβεί στο IE 4.0, το SDK για Java 2.0 και το επόμενο Visual J ++;

Λέξεις σοφίας: Αφήστε τον προγραμματιστή Java να προσέχει

Ως προγραμματιστής, θα πρέπει να προχωρήσετε πολύ προσεκτικά. Εάν αποφασίσετε να χρησιμοποιήσετε τα περιβάλλοντα ανάπτυξης της Microsoft και θέλετε να δημιουργήσετε λύσεις μεταξύ πλατφορμών, εξοικειωθείτε με τα Core Java API. Θα πρέπει να αποφύγετε οτιδήποτε δεν αποτελεί μέρος των δημόσιων προδιαγραφών. Μέχρι να δημοσιευτεί μια πλήρης λίστα ασυμβίβαστων στοιχείων, το βάρος των μεμονωμένων προγραμματιστών θα είναι γνωστό για το τι είναι και δεν είναι συμβατό. Φυσικά, αν δεν σας ενδιαφέρει το "write-sekali, τρέξτε οπουδήποτε", μπορείτε να χρησιμοποιήσετε τις δυνατότητες της Microsoft για συγκεκριμένες πλατφόρμες. Ωστόσο, είναι πιθανό να ανακληθεί η άδεια Java της Microsoft. Η Sun προσπαθεί ήδη να ανακαλέσει την ικανότητα της Microsoft να εμφανίζει το λογότυπο συμβατό με Java.

Ο John Zukowski είναι Software Mage με το MageLang Institute, συγγραφέας Java AWT Reference από την O'Reilly & Associates και το Borland's JBuilder: Δεν απαιτείται εμπειρία από τη Sybex, καθώς και ο οδηγός Focus on Java στην εταιρεία εξόρυξης.

Μάθετε περισσότερα σχετικά με αυτό το θέμα

  • Δελτίο τύπου της Sun Microsystems

    //java.sun.com/announcement/index.html

  • Συχνές ερωτήσεις της Microsoft για το γιατί δεν υποστηρίζει RMI / JNI και ούτω καθεξής

    //www.microsoft.com/java/issues/techsupfaq.htm

  • Η τρέχουσα υποστήριξη του Netscape για Java στο Communicator 4.0

    //developer.netscape.com/library/documentation/communicator/javajdk.html

  • Δείτε την ιστορία της Elizabeth Heichler, από το News Service και του Bob McMillan, SunWorld

    //www.javaworld.com/jw-10-1997/jw-10-sunsuit.html

  • Η δική μας Jenni Aloi έγραψε μια ιστορία για τον θυμό του Java Lobby στη Microsoft

    //www.javaworld.com/jw-10-1997/jw-10-javalobby.html

  • Η ιστορία της CNet σχετικά με τη Sun κοστούσε εναντίον της Microsoft

    //www.news.com/News/Item/0,4,14986,00.html

  • San Jose Mercury News σχετικά με την αγωγή

    //www.sjmercury.com/business/sunsuit100797.htm

  • Πρέπει να επιτραπεί στη Microsoft να αλλάξει τις βασικές βιβλιοθήκες τάξης της Java; Δείτε την τελευταία μας δημοσκόπηση

    //nigeria.wpi.com/cgi-bin/gwpoll/gwpoll/ballot.html

  • Μια ανασκόπηση των εργαλείων ανάπτυξης Java ουδέτερης πλατφόρμας στο NC World, JavaWorldαδελφή έκδοση

    //www.ncworldmag.com/ncw-10-1997/ncw-10-jvtools.html

  • Το σχόλιο του Nick Petreley σχετικά με την αγωγή Sun / MS, επίσης NC World

    //www.ncworldmag.com/ncw-10-1997/ncw-10-straypackets.html

Αυτή η ιστορία, "Τι σημαίνει η αγωγή της Sun εναντίον της Microsoft για προγραμματιστές Java;" δημοσιεύθηκε αρχικά από το JavaWorld.