Programiranje

Kaj pomeni Sunjeva tožba proti Microsoftu za razvijalce Jave?

7. oktober 1997 - Sun se je na Microsoftovo izdajo Internet Explorerja (IE) 4.0 in izdajo SDK za Javo (SDKJ) 2.0 odzval s tožbo na ameriškem okrožnem sodišču. Kot je zapisano v sporočilu za javnost družbe Sun, "pritožba Microsoft obtožuje kršitve blagovne znamke, lažnega oglaševanja, kršitve pogodb, nelojalne konkurence, poseganja v morebitno gospodarsko prednost in spodbujanja kršitve pogodbe." Natančneje, Microsoft se je prejšnji teden odločil za dobavo izdelkov, za katere trdi, da so v celoti skladni z Java 1.1, vendar niso opravili testov združljivosti Java 1.1, ki jih je podjetje februarja prejelo od družbe Sun. "Microsoft se je namerno lotil razdrobitve Jave," je povedal Alan Baratz, predsednik družbe JavaSoft, med telekonferenco Sun danes ob 10.30 PST.

Kaj to pomeni z vidika razvijalca? No, najprej, če ustvarite nekaj s Sunovim 1.1 JDK (ali z okoljem, certificiranim za Java 1.1 drugega podjetja, kot so IBM, Borland in Symantec), morda ne bo delovalo v skladu z IE 4.0. Če ustvarite nekaj z Microsoftovim razvojnim okoljem, se to morda ne bo izvajalo v okolju, ki ni Microsoftovo Java 1.1. Microsoft natančneje ne podpira Java Native Interfaces (JNI) ali Remote Method Invocation (RMI) in je spremenil knjižnice razredov Core Java s približno 50 metodami in 50 polji, ki niso del javnih programskih vmesnikov Java Java ( API-ji), ki jo je objavil Sun.

JNI in RMI: Zakaj Microsoftova zavrnitev le-teh predstavlja težavo

JNI je vmesnik izvorne kode, ki se uporablja za dostop do funkcij, specifičnih za platformo, kot so serijska vrata ali mikrofon - za stvari, ki še niso na voljo prek jedra API. Cilj JNI je razvijalcem omogočiti, da zagotovijo en komplet izvornih knjižnic za vsako implementacijo Jave na določeni platformi.

Microsoft se je odločil podpreti svoj vmesnik, imenovan RNI, ki zagotavlja enake zmogljivosti kot JNI. Ker ne podpira JNI, Microsoft sili razvijalce, da zagotavljajo različne knjižnice za uporabnike Microsofta in navideznih strojev Java (JVM), ki niso Microsoftovi. Z Microsoftovo podporo RNI ni nič narobe, če podjetje meni, da je njegova tehnologija boljša. Ker pa ni podpiral JNI, Microsoft ne more trdijo, da je IE 4.0 popolnoma združljiv z Java 1.1.

RMI ponuja sredstvo za izvajanje kode Java na tujih navideznih strojih Java. Pogosto se primerja s klici na oddaljene postopke (RPC), arhitekturo posrednika skupnih zahtev za predmete (CORBA) in objektnim modelom porazdeljenih komponent (DCOM), odvisno od ozadja osebe, ki govori. Microsoft trdi, da podpira DCOM namesto RMI, ker RMI ne podpira komunikacije med Java in ne-Java. Poseben namen uporabe RMI je sistemska komunikacija Java-to-Java. Na primer, z RMI lahko prikličete metode predmetov, ki obstajajo v drugih navideznih strojih Java, ne da bi poznali vrsto razreda, hkrati pa ohranili Javino varnost pri izvajanju.

Če se želite premakniti izven komunikacije med Java in Java, je CORBA pravzaprav prenosna rešitev in ne DCOM. Zakaj? DCOM je usmerjen v Microsoftov svet, za Unixov svet pa je na voljo šele pred kratkim z izdelki, kot je EntireX podjetja Software AG. Če morate uporabiti RMI, Internet Explorer očitno ni na voljo. Če potrebujete sistemsko komunikacijo med Java in ne-Java, za vmesnik s starejšimi (ne-Java) sistemi, ki se zanašajo na CORBA, Netscape Communicator 4.0 dobi Visigenic-ov VisiBroker ORB. (Za podporo RMI s programom Netscape Communicator morate uporabiti beta izdajo popravka brskalnika, saj Communicator ne trdi, da je brskalnik Java 1.1.)

Rotten to the Core Java API: Bistvo težave

Zadnja ugotovljena težava z nezdružljivostjo Java 1.1 je pravzaprav najstrašnejša. RMI in JNI se je enostavno izogniti, če to dopušča vaša aplikacija: preprosto jih ne uporabljate. Zanimivo je, da je Microsoft ugotovil, da knjižnice razredov Core Java ne zadostujejo za njegove potrebe. Zdaj ni nič narobe z razširitvijo stvari s podrazvrstitvijo in postavitvijo novih predmetov v paket zunaj hierarhije razreda java. *. Toda odločitev, da v razrede znotraj paketov java.awt, java.lang in java.io, kot je Microsoft, dodal približno 50 metod in 50 polj, je izjemno problematična. "Microsoft je varljivo spremenil razrede ključev in jih vstavil v svoj SDK," je dejal Baratz, zaradi česar razvijalci mislijo, da pišejo Javo, medtem ko dejansko pišejo nekaj, kar se izvaja samo v Internet Explorerju.

Kako Microsoftovi dodatki k razredom vplivajo na razvijalce Java? No, če se zanesete na te spremembe ali jih le nehote uporabite, bo vaš program deloval samo znotraj Microsoftovega sistema Java. Če ustvarite program zunaj Microsoftovega razvojnega okolja, bo pričakoval določen jedrni API. Na žalost se ta API API razlikuje od tistega v Microsoftovem okolju, zato program tam morda ne bo deloval. Preizkus združljivosti, ki je označil to težavo, se imenuje a test podpisa.

Kot primer je metoda if foo () naj bi sprejel parameter tipa bar, bolje dobiti objekt tipa bar. Če nekdo želi, da predate predmet tipa baz namesto tega bo deloval samo na tistih sistemih, ki so spremenili jedro, da so ga sprejeli. In Microsoft je to spremembo predstavil. Zdaj lahko Microsoft misli, da predstavlja referenčno izvedbo Jave za Windows. Toda dejstvo je, da lahko samo Sun vnese spremembe v API Java Java. Da, lahko vsak imetnik licence vprašajte za spremembe in mnogi pogosto. Toda Microsoft se je sam in brez dovoljenja odločil te stvari spremeniti.

Na koncu je cilj tožbe po Baratzovih besedah ​​"spraviti Microsoft nazaj v skladnost" in to čim prej. Dokler ne bodo razrešene zakonitosti, bo Sun Microsoftu zadržal vse tekoče izboljšave tehnologije Java, na primer novi navidezni stroj Java 2.0, imenovan HotSpot. Če se Microsoft ne bo strinjal z Javo, bo moral pripraviti čisto različico svoje različice nečesa, kar se ne bo imenovalo Java - to je, če želi narediti nekaj z enakovrednim bajt kod Java. Kdo ve, kaj se bo zgodilo z IE 4.0, SDK-jem za Javo 2.0 in naslednjim Visual J ++?

Besede modrosti: Razvijalec Java naj se čuva

Kot razvijalec boste morali stopiti zelo previdno. Če se odločite za uporabo Microsoftovih razvojnih okolij in morate ustvariti rešitve za več platform, se dobro seznanite z API-ji Core Java. Izogniti se boste morali vsem, kar ni del javnih specifikacij. Dokler ne bo objavljen popoln seznam nezdružljivih elementov, bodo posamezni razvijalci morali vedeti, kaj je in kaj ni združljivo. Seveda, če vas ne zanima »enkrat piši, zaženi kjer koli«, lahko uporabiš Microsoftove funkcije, specifične za platformo. Možno pa je, da bo Microsoftova licenca Java odvzeta. Sun že poskuša preklicati Microsoftovo zmožnost prikazovanja logotipa, združljivega z Javo.

John Zukowski je mag programske opreme pri Inštitutu MageLang, avtor navodil Java AWT pri O'Reilly & Associates in Borlandovem JBuilderju: od Sybexa niso potrebne nobene izkušnje, pa tudi vodnik Fokus na Javo pri rudarskem podjetju.

Preberite več o tej temi

  • Sporočilo za javnost družbe Sun Microsystems

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

  • Microsoftova pogosta vprašanja o tem, zakaj ne podpira RMI / JNI itd

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

  • Trenutna podpora Netscapea za Javo v programu Communicator 4.0

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

  • Oglejte si zgodbo Elizabeth Heichler iz News Service in Bob McMillan, SunWorld

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

  • Naša lastna Jenni Aloi je napisala zgodbo o jezi Java Lobby v Microsoftu

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

  • CNetova zgodba o soncu proti Microsoftu

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

  • San Jose Mercury News o tožbi

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

  • Ali naj se Microsoftu dovoli spreminjanje knjižnic ključnih razredov Java? Sodelujte v naši zadnji anketi

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

  • Pregled orodij za razvoj Java, nevtralnih do platforme, v NC World, JavaWorldsestrska publikacija

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

  • Komentar Nicka Petreleyja o tožbi Sun / MS, prav tako v NC World

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

Ta zgodba: "Kaj Sunjeva tožba proti Microsoftu pomeni za razvijalce Jave?" je prvotno objavil JavaWorld.

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