Programmēšana

Ko Sun izstrādātās tiesas prāva pret Microsoft nozīmē Java izstrādātājiem?

1997. gada 7. oktobris - Sun ir atbildējis uz Microsoft izlaišanu Internet Explorer (IE) 4.0 un uz SDK for Java (SDKJ) 2.0 izlaišanu ar prasību ASV apgabaltiesā. Saskaņā ar Sun paziņojumu presei "sūdzībā Microsoft tiek apsūdzēts par preču zīmju pārkāpumiem, nepatiesu reklāmu, līguma laušanu, negodīgu konkurenci, iejaukšanos perspektīvās ekonomiskās priekšrocībās un līguma pārkāpuma izraisīšanu". Konkrēti, Microsoft pagājušajā nedēļā izvēlējās piegādāt produktus, par kuriem tā apgalvo, ka tie ir pilnībā saderīgi ar Java 1.1, bet kuriem neizdevās izturēt Java 1.1 saderības testus, kurus uzņēmums februārī saņēma no Sun. "Microsoft uzsāka apzinātu rīcību, lai sadrumstalotu Java," sacīja Suns telekonferences laikā pulksten 10:30 pēc PST, sacīja JavaSoft prezidents Alans Baratcs.

No attīstītāja viedokļa, ko tas nozīmē? Vispirms, ja jūs izveidojat kaut ko ar Sun 1.1 JDK (vai ar Java 1.1 sertificētu vidi no cita uzņēmuma, piemēram, IBM, Borland un Symantec), tas, iespējams, nedarbojas ar IE 4.0. Turklāt, ja kaut ko izveidojat ar Microsoft izstrādes vidi, tas, iespējams, nedarbojas vidē, kas nav Microsoft Java 1.1. Konkrēti, Microsoft neatbalsta Java vietējās saskarnes (JNI) vai attālās metodes izsaukšanu (RMI), un tā ir mainījusi Java pamatklases bibliotēkas ar aptuveni 50 metodēm un 50 laukiem, kas nav daļa no publiskajām Java lietojumprogrammu saskarnēm ( API), ko izdevusi Sun.

JNI un RMI: kāpēc Microsoft noraida šos jautājumus?

JNI ir vietējā koda interfeiss, ko izmanto, lai piekļūtu platformas specifiskām iespējām, piemēram, seriālajam portam vai mikrofonam - lietām, kuras vēl nav pieejamas, izmantojot pamata API. JNI mērķis ir ļaut izstrādātājiem nodrošināt a viens komplekts vietējo bibliotēku katrai Java ieviešanai noteiktā platformā.

Microsoft ir nolēmis atbalstīt savu interfeisu ar nosaukumu RNI, kas nodrošina tādas pašas iespējas kā JNI. Neatbalstot JNI, Microsoft liek izstrādātājiem nodrošināt dažādas bibliotēkas Microsoft un ne-Microsoft Java virtuālo mašīnu (JVM) lietotājiem. Microsoft atbalsta RNI nav nekas nepareizs, ja uzņēmums domā, ka tā tehnoloģija ir labāka. Tomēr, neatbalstot JNI, Microsoft nevar prasība IE 4.0 ir pilnībā saderīga ar Java 1.1.

RMI nodrošina līdzekļus Java koda izpildei ārzemju Java virtuālajās mašīnās. Atkarībā no runājošās personas fona to bieži salīdzina ar attālās procedūras izsaukumiem (RPC), parasto objektu pieprasījumu starpnieka arhitektūru (CORBA) un izplatīto komponentu objektu modeli (DCOM). Korporācija Microsoft apgalvo, ka tā atbalsta DCOM, nevis RMI, jo RMI neatbalsta Java saziņu ar Java ne-Java. Īpašais RMI izmantošanas mērķis ir Java-Java sistēmas sakari. Piemēram, izmantojot RMI, jūs varat atsaukties uz citu Java virtuālo mašīnu esošo objektu metodēm, nezinot klases tipu, vienlaikus saglabājot Java izpildlaika drošību.

Ja jums jāpārvietojas ārpus Java-Java komunikācijām, CORBA faktiski ir pārnēsājamais risinājums, nevis DCOM. Kāpēc? DCOM ir orientēts uz Microsoft pasauli, tikai nesen Unix pasaulē tas ir pieejams ar tādiem produktiem kā EntireX no Software AG. Ja jums jāizmanto RMI, acīmredzot Internet Explorer nav pieejama opcija. Ja jums ir nepieciešami Java-nav-Java sakari, sazinieties ar mantotajām (ne-Java) sistēmām, kas paļaujas uz CORBA, Netscape Communicator 4.0 tiek piegādāts ar Visigenic's VisiBroker ORB. (Lai iegūtu RMI atbalstu ar Netscape Communicator, jums jāizmanto pārlūkprogrammas plākstera beta versija, jo Communicator nepretendē uz Java 1.1 pārlūku.)

Sapuvis ar Core Java API: problēmas būtība

Pēdējā identificētā Java 1.1 nesaderības problēma faktiski ir visbriesmīgākā. Ir viegli izvairīties no RMI un JNI, ja jūsu lietojumprogramma to atļauj: jūs tos vienkārši neizmantojat. Svarīgākais ir tas, ka Microsoft nolēma, ka Core Java klases bibliotēkas nav pietiekamas tās vajadzībām. Tagad nekas nepareizs ir paplašināt lietas, apakšklasē un ievietojot jaunos objektus paketē ārpus java. * Klases hierarhijas. Bet izlemt par aptuveni 50 metožu un 50 lauku pievienošanu java.awt, java.lang un java.io pakotņu klasēm, kā to izdarīja Microsoft, ir ārkārtīgi problemātiski. "Microsoft maldinoši mainīja atslēgas klases un ievietoja tās savā SDK," sacīja Barats, kā rezultātā izstrādātāji domā, ka viņi raksta Java, lai gan patiesībā viņi raksta kaut ko tādu, kas darbojas tikai pārlūkprogrammā Internet Explorer.

Kā Microsoft papildinājumi klasēs ietekmē Java izstrādātājus? Nu, ja jūs paļaujaties uz šīm izmaiņām vai vienkārši netīšām izmantojat, jūsu programma darbosies tikai Microsoft Java sistēmā. Turklāt, ja izveidojat programmu ārpus Microsoft izstrādes vides, tā sagaida noteiktu pamata API. Diemžēl šī Core API atšķiras no Microsoft vidē esošās, tāpēc programma, iespējams, tur nedarbosies. Saderības komplekta tests, kas iezīmēja šo problēmu, ir tā sauktais a paraksta pārbaude.

Piemēram, ja metode foo () ir jāpieņem tipa parametrs bārs, labāk iegūt tipa objektu bārs. Ja kāds vēlas, lai jūs nodotu kāda veida objektu baz tā vietā tas darbosies tikai tajās sistēmās, kuras mainīja kodolu, lai to akceptētu. Un Microsoft ieviesa šīs izmaiņas. Tagad Microsoft var domāt, ka tas ir atsauces Java operētājsistēmai Windows. Bet patiesībā tikai Sun var ieviest izmaiņas Core Java API. Jā, jebkurš licenciāts var jautāt izmaiņām, un daudzi to bieži dara. Bet Microsoft viens pats un bez atļaujas nolēma mainīt šīs lietas.

Galu galā tiesas prāvas mērķis, pēc Baratza vārdiem, ir "panākt, lai Microsoft atkal tiktu ievērots", un pēc iespējas ātrāk. Bet, kamēr juridiskās problēmas nav atrisinātas, Sun aizturēs no Microsoft visus notiekošos Java tehnoloģiju uzlabojumus, piemēram, jauno Java 2.0 virtuālo mašīnu ar nosaukumu HotSpot. Ja Microsoft vairs neatbildīs Java prasībām, tai būs jānāk klajā ar tīras istabas versijas ieviešanu kaut kam, kas netiks saukts par Java - tas ir, ja tas vēlas kaut ko darīt ar līdzvērtīgu Java baitkodu. Kas zina, kas notiks ar IE 4.0, Java 2.0 SDK un nākamo Visual J ++?

Gudrības vārdi: Ļaujiet Java izstrādātājam piesargāties

Kā izstrādātājam jums būs jāapmeklē ļoti uzmanīgi. Ja izlemjat izmantot Microsoft izstrādes vidi un jums ir jāizveido starpplatformu risinājumi, labi pārziniet Core Java API. Jums būs jāizvairās no visa, kas nav publisko specifikāciju sastāvdaļa. Kamēr nav publicēts pilns nesaderīgu elementu saraksts, atsevišķiem izstrādātājiem būs jāzina, kas ir un nav saderīgs. Protams, ja jums vienalga ir "vienreiz rakstīt, palaist jebkur", varat izmantot Microsoft platformai raksturīgās iespējas. Tomēr ir iespējams, ka Microsoft Java licence tiks atsaukta. Sun jau mēģina atsaukt Microsoft spēju parādīt ar Java saderīgu logotipu.

Džons Zukovskis ir programmatūras mags kopā ar MageLang institūtu, Java AWT uzziņu autors no O'Reilly & Associates un Borland's JBuilder: Nav nepieciešama pieredze no Sybex, kā arī Focus on Java ceļvedis Kalnrūpniecības uzņēmumā.

Uzziniet vairāk par šo tēmu

  • Sun Microsystems paziņojums presei

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

  • Microsoft bieži uzdotie jautājumi par to, kāpēc tas neatbalsta RMI / JNI utt

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

  • Netscape pašreizējais Java atbalsts programmā Communicator 4.0

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

  • Skatiet Elizabetes Heihleres (News Service) un Boba Makmilana (SunWorld) stāstu

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

  • Mūsu pašu Jenni Aloi uzrakstīja stāstu par Java Lobby dusmām uz Microsoft

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

  • CNet stāsts par Sun prasību pret Microsoft

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

  • Sanhosē Mercury News par tiesas procesu

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

  • Vai Microsoft jāļauj mainīt Java galveno klašu bibliotēkas? Piedalieties mūsu jaunākajā aptaujā

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

  • Pārskats par platformas neitrāliem Java izstrādes rīkiem NC pasaule, JavaWorldmāsas publikācija

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

  • Nika Petreleja komentārs par Saules / MS tiesas prāvu, arī NC pasaule

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

Šis stāsts "Ko Sun izstrādātās tiesas prāva pret Microsoft nozīmē Java izstrādātājiem?" sākotnēji to publicēja JavaWorld.

$config[zx-auto] not found$config[zx-overlay] not found