Ohjelmointi

Mitä Sunin oikeusjuttu Microsoftia vastaan ​​tarkoittaa Java-kehittäjille?

7. lokakuuta 1997 - Sun on vastannut Microsoftin Internet Explorer (IE) 4.0: n ja Java SDK: n (SDKJ) 2.0 julkaisuun oikeusjutulla Yhdysvaltain käräjäoikeudessa. Sunin lehdistötiedotteen mukaan "valituksessa syytetään Microsoftia tavaramerkkirikkomuksista, väärästä mainonnasta, sopimusrikkomuksista, vilpillisestä kilpailusta, mahdollisesta taloudellisesta edusta puuttumisesta ja sopimusrikkomuksen aiheuttamisesta". Erityisesti Microsoft teki viime viikolla valinnan toimittaa tuotteita, joiden se väittää olevan täysin Java 1.1 -yhteensopivia, mutta jotka eivät läpäisseet Sunilta helmikuussa saamiaan Java 1.1 -yhteensopivuustestejä. "Microsoft ryhtyi tahalliseen toimintatapaan hajottaakseen Javaa", sanoi JavaSoftin presidentti Alan Baratz Sunin telekonferenssin aikana tänään klo 10.30 PST.

Mitä tämä tarkoittaa kehittäjän näkökulmasta? Ensinnäkin, jos luot ensin jotain Sunin 1.1 JDK: lla (tai toisen yrityksen, kuten IBM, Borland ja Symantec, Java 1.1 -sertifioidulla ympäristöllä), se ei välttämättä toimi IE 4.0 -käyttöjärjestelmässä. Lisäksi, jos luot jotain Microsoftin kehitysympäristössä, se ei välttämättä toimi muussa kuin Microsoft Java 1.1 -ympäristössä. Tarkemmin sanottuna Microsoft ei tue Java Native Interfaces (JNI) - tai Remote Method Invocation (RMI) -tekniikkaa, ja se on muuttanut Core Java -luokan kirjastoja noin 50 menetelmällä ja 50 kentällä, jotka eivät ole osa julkisia Java Application Programming Interfaces ( API: t), julkaissut Sun.

JNI ja RMI: Miksi Microsoft hylkää nämä ongelmat?

JNI on natiivikoodiliitäntä, jota käytetään alustakohtaisten ominaisuuksien, kuten sarjaportin tai mikrofonin, käyttämiseen asioihin, joita ei vielä ole saatavana ydinsovellusliittymän kautta. JNI: n tavoitteena on antaa kehittäjien tarjota a yksi sarja natiivikirjastoja jokaiselle Java-toteutukselle tietyllä alustalla.

Microsoft on päättänyt tukea omaa RNI-käyttöliittymää, joka tarjoaa samat ominaisuudet kuin JNI. Tukematta JNI: tä Microsoft pakottaa kehittäjät tarjoamaan erilaisia ​​kirjastoja Microsoftin ja muiden kuin Microsoftin Java-virtuaalikoneiden (JVM) käyttäjille. Microsoftilla ei ole mitään vikaa RNI-tuella, jos yrityksen mielestä sen tekniikka on parempaa. Microsoft ei kuitenkaan tue JNI: tä ei voi vaatimus IE 4.0 on täysin Java 1.1 -yhteensopiva.

RMI tarjoaa keinon Java-koodin suorittamiseen ulkomaisissa Java-virtuaalikoneissa. Sitä verrataan usein etäkäyttökutsuihin (RPC), yhteisiin objektipyyntöjen välittäjäarkkitehtuuriin (CORBA) ja jaettuun komponenttimallimalliin (DCOM), riippuen puhuvan henkilön taustasta. Microsoft väittää tukevansa DCOM: ää RMI: n sijasta, koska RMI ei tue Java-to-Java-viestintää. RMI: n käytön erityinen tarkoitus on Java-Java-järjestelmäviestintä. Esimerkiksi RMI: n avulla voit kutsua muissa Java-virtuaalikoneissa olevien objektien menetelmiä tuntematta luokan tyyppiä, mutta samalla säilyttäen Javan ajonaikaisen turvallisuuden.

Jos haluat siirtyä Java-Java-viestinnän ulkopuolelle, CORBA on itse asiassa kannettava ratkaisu, ei DCOM. Miksi? DCOM on suunnattu Microsoft-maailmaan, vasta hiljattain Unix-maailman saataville tuotteilla, kuten EntireX from Software AG. Jos sinun on käytettävä RMI: tä, Internet Explorer ei tietenkään ole käytettävissä oleva vaihtoehto. Jos tarvitset Java-to-Java-järjestelmäviestintää, Netscape Communicator 4.0 toimitetaan Visigenicin VisiBroker ORB: n kanssa, jotta voit liittyä vanhoihin (ei-Java) -järjestelmiin, jotka perustuvat CORBA: lle. (Jos haluat RMI-tuen Netscape Communicatorilla, sinun on käytettävä selainkorjauksen beetaversiota, koska Communicator ei väitä olevansa Java 1.1 -selain.)

Rotten to Java Java -sovellusliittymä: ongelman ydin

Viimeisin havaittu Java 1.1 -yhteensopivuusongelma on oikeastaan ​​pelottavin. RMI: tä ja JNI: tä on helppo välttää, jos sovelluksesi sallii sen: et vain käytä niitä. Kiinnitettävä asia on se, että Microsoft päätti, että Java-luokan Core-kirjastot eivät olleet riittäviä sen tarpeisiin. Nyt ei ole mitään vikaa laajentaa asioita aliluokittelemalla ja sijoittamalla uudet objektit pakettiin java. * -Luokan hierarkian ulkopuolella. Mutta päättäminen lisätä noin 50 menetelmää ja 50 kenttää java.awt-, java.lang- ja java.io-pakettien luokkiin, kuten Microsoft teki, on erittäin ongelmallista. "Microsoft muutti petollisesti avainluokkia ja lisäsi ne SDK: hunsa", Baratz sanoi, minkä seurauksena kehittäjät ajattelivat kirjoittavansa Java, kun he itse asiassa kirjoittavat jotain, joka toimii vain Internet Explorerissa.

Kuinka Microsoftin lisäykset luokkiin vaikuttavat Java-kehittäjiin? No, jos luotat näihin muutoksiin tai vain vahingossa käytät niitä, ohjelmasi toimii vain Microsoftin Java-järjestelmässä. Lisäksi, jos luot ohjelman Microsoftin kehitysympäristön ulkopuolella, se odottaa tietyn ydinsovellusliittymän. Valitettavasti kyseinen Core-sovellusliittymä eroaa Microsoftin ympäristössä olevasta, joten ohjelma ei välttämättä toimi siellä. Tämän ongelman ilmoittaneen yhteensopivuuspakettitestin nimi on a allekirjoitustesti.

Esimerkiksi, jos menetelmä foo () on tarkoitus hyväksyä tyypin parametri baari, on parempi hankkia tyypin objekti baari. Jos joku haluaa sinun siirtävän tyypin kohteen baz sen sijaan se toimii vain niissä järjestelmissä, jotka muuttivat ytimen hyväksymään sen. Ja Microsoft esitteli muutoksen. Nyt Microsoft saattaa ajatella, että se on Java for Windows -sovelluksen viitetoteutus. Tosiasia on, että vain Sun voi tehdä muutoksia Core Java -sovellusliittymään. Kyllä, kuka tahansa lisenssinsaaja voi kysyä muutoksiin, ja monet tekevät usein. Mutta Microsoft päätti yksin ja ilman lupaa muuttaa näitä asioita.

Loppujen lopuksi oikeusjutun tavoitteena on Baratzin sanoin "saada Microsoft takaisin sääntöjen mukaiseksi" ja mahdollisimman nopeasti. Mutta kunnes laillisuus on ratkaistu, Sun pidättää Microsoftilta kaikki käynnissä olevat Java-tekniikan parannukset, kuten uuden Java 2.0 -virtuaalikoneen nimeltä HotSpot. Jos Microsoft ei palaa Java-yhteensopivuuteen, sen on keksittävä puhtaan huoneen toteutus versiostaan, jota ei kutsuta Javaiksi - eli jos se haluaa tehdä jotain vastaavalla tavalla Java-tavukoodeja. Kuka tietää, mitä tapahtuu IE 4.0: lle, Java 2.0: n SDK: lle ja seuraavalle Visual J ++: lle?

Viisaussanat: Anna Java-kehittäjien olla varovaisia

Kehittäjänä sinun on kuljettava erittäin huolellisesti. Jos päätät käyttää Microsoftin kehitysympäristöjä ja sinun on luotava alustojen välisiä ratkaisuja, tunne Core Java -sovellusliittymät hyvin. Sinun on vältettävä kaikkea, mikä ei ole osa julkisia eritelmiä. Kunnes täydellinen luettelo yhteensopimattomista elementeistä on julkaistu, yksittäisten kehittäjien on tiedettävä, mikä on ja mikä ei ole yhteensopiva. Jos et välitä "kirjoita kerran, suorita missä tahansa", voit käyttää Microsoftin alustakohtaisia ​​ominaisuuksia. On kuitenkin mahdollista, että Microsoftin Java-lisenssi peruutetaan. Sun yrittää jo peruuttaa Microsoftin kyvyn näyttää Java-yhteensopiva logo.

John Zukowski on ohjelmistomagi MageLang-instituutin kanssa, Java AWT -viitteen kirjoittaja O'Reilly & Associatesilta ja Borlandin JBuilder: Sybexiltä ei vaadita kokemusta, kuten myös Kaivosyhtiön Focus on Java -oppaasta.

Lisätietoja tästä aiheesta

  • Sun Microsystemsin lehdistötiedote

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

  • Microsoftin usein kysytyt kysymykset miksi se ei tue RMI / JNI: tä ja niin edelleen

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

  • Netscapen nykyinen Java-tuki Communicator 4.0: ssa

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

  • Katso uutishallinnon Elizabeth Heichlerin ja SunWorldin Bob McMillanin tarina

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

  • Oma Jenni Aloi kirjoitti tarinan Java-aulan vihasta Microsoftia kohtaan

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

  • CNetin tarina Sunista haastaa Microsoftia

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

  • San Jose Mercury News oikeusjutusta

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

  • Pitäisikö Microsoftin sallia muuttaa Java-avainluokkakirjastoja? Tee viimeisin kysely

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

  • Katsaus alustaneutraaleihin Java-kehitystyökaluihin vuonna NC World, JavaWorldsisarjulkaisu

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

  • Nick Petreleyn kommentti Sun / MS-oikeusjutusta, myös vuonna NC World

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

Tämä tarina "Mitä Sunin oikeusjuttu Microsoftia vastaan ​​tarkoittaa Java-kehittäjille?" julkaisi alun perin JavaWorld.