Programavimas

Ką „Sun“ ieškinys prieš „Microsoft“ reiškia „Java“ kūrėjams?

1997 m. Spalio 7 d - „Sun“ atsakė į „Microsoft“ išleistą „Internet Explorer“ (IE) 4.0 ir į „SDK for Java“ (SDKJ) 2.0 išleidimą ieškiniu JAV apygardos teisme. Kaip rašoma „Sun“ pranešime spaudai, „skunde„ Microsoft “kaltinamas prekių ženklų pažeidimais, melaginga reklama, sutarties pažeidimu, nesąžininga konkurencija, įsikišimu į būsimą ekonominį pranašumą ir sutarties pažeidimu“. Konkrečiai, „Microsoft“ praėjusią savaitę pasirinko pristatyti produktus, kurie, jos teigimu, yra visiškai suderinami su „Java 1.1“, tačiau kurie neišlaikė „Java 1.1“ suderinamumo testų, kuriuos bendrovė gavo iš „Sun“ vasarį. „„ Microsoft “ėmėsi sąmoningo elgesio, kad suskaidytų„ Java “, - sakė„ JavaSoft “prezidentas Alanas Baratzas per„ Sun “telekonferenciją šiandien 10:30 val.

Žiūrint iš kūrėjo perspektyvos, ką tai reiškia? Na, pirmiausia, jei sukursite ką nors naudodami „Sun“ 1.1 JDK (arba „Java 1.1“ sertifikuotą aplinką iš kitos įmonės, tokios kaip „IBM“, „Borland“ ir „Symantec“), tai gali neveikti naudojant IE 4.0. Be to, jei ką nors sukursite naudodami „Microsoft“ kūrimo aplinką, tai gali būti vykdoma ne „Microsoft Java 1.1“ aplinkoje. Konkrečiai, „Microsoft“ nepalaiko „Java“ vietinių sąsajų (JNI) ar nuotolinio metodo iškvietimo (RMI) ir pakeitė „Core Java“ klasės bibliotekas maždaug 50 metodų ir 50 laukų, kurie nėra viešųjų „Java Application Programming Interface“ ( API), paskelbta „Sun“.

JNI ir RMI: kodėl „Microsoft“ atmetus šiuos klausimus kyla problema

JNI yra gimtoji kodo sąsaja, naudojama norint pasiekti konkrečios platformos galimybes, pvz., nuoseklųjį prievadą ar mikrofoną, tiems dalykams, kurių dar nėra per pagrindinę API. JNI tikslas yra leisti kūrėjams pateikti vienas rinkinys vietinių bibliotekų kiekvienam „Java“ diegimui konkrečioje platformoje.

„Microsoft“ nusprendė palaikyti savo sąsają, vadinamą RNI, kuri teikia tas pačias galimybes kaip ir JNI. Nepalaikydama JNI, „Microsoft“ verčia kūrėjus teikti skirtingas bibliotekas „Microsoft“ ir ne „Microsoft Java“ virtualiųjų mašinų (JVM) vartotojams. „Microsoft“ palaiko RNI, jei įmonė mano, kad jos technologija yra geresnė. Tačiau nepalaikydamas JNI, „Microsoft“ negali reikalavimas IE 4.0 visiškai suderinamas su „Java 1.1“.

RMI numato „Java“ kodo vykdymo priemones užsienio „Java“ virtualiose mašinose. Tai dažnai lyginama su nuotolinių procedūrų iškvietimais (RPC), „Common Object Request Broker Architecture“ (CORBA) ir „Distributed Component Object Model“ (DCOM), atsižvelgiant į kalbančio asmens foną. „Microsoft“ tvirtina, kad palaiko DCOM, o ne RMI, nes RMI nepalaiko „Java-to-Java“ ryšio. Konkretus RMI naudojimo tikslas yra „Java-Java“ sistemos ryšiai. Pavyzdžiui, naudodamiesi RMI, galite naudoti objektų, esančių kitose „Java“ virtualiose mašinose, metodus nežinodami klasės tipo, išsaugodami „Java“ vykdymo laiko saugą.

Jei jums reikia judėti už „Java-to-Java“ ryšių ribų, CORBA iš tikrųjų yra nešiojamasis sprendimas, o ne DCOM. Kodėl? DCOM yra orientuotas į „Microsoft“ pasaulį, tik neseniai „Unix“ pasaulyje tapo prieinamas su tokiais produktais kaip „EntireX“ iš „Software AG“. Jei jums reikia naudoti RMI, akivaizdu, kad „Internet Explorer“ nėra prieinama parinktis. Jei jums reikia „Java“ ir „ne Java“ ryšio, kad galėtumėte sąveikauti su senomis (ne „Java“) sistemomis, kurios remiasi CORBA, „Netscape Communicator 4.0“ pristatoma su „Visigenic“ „VisiBroker ORB“. (Jei norite palaikyti RMI su „Netscape Communicator“, turite naudoti naršyklės pleistro beta versiją, nes „Communicator“ nepretenduoja būti „Java 1.1“ naršykle.)

Supuvę „Core Java“ API: problemos esmė

Paskutinė nustatyta „Java 1.1“ nesuderinamumo problema iš tikrųjų yra baisiausia. Lengva išvengti RMI ir JNI, jei tai leidžia jūsų programa: jūs tiesiog jų nenaudojate. Svarbiausia yra tai, kad „Microsoft“ nusprendė, kad „Core Java“ klasės bibliotekų nepakanka jos poreikiams patenkinti. Dabar nėra nieko blogo išplėsti dalykus, klasifikuojant ir įdėjus naujus objektus į paketą už java. * Klasės hierarchijos ribų. Tačiau nuspręsti pridėti apie 50 metodų ir 50 laukų į „java.awt“, „java.lang“ ir „java.io“ paketų klases, kaip tai padarė „Microsoft“, yra labai problematiška. „„ Microsoft “apgaulingai pakeitė raktų klases ir įterpė jas į savo SDK“, - sakė Baratzas, dėl kurio kūrėjai galvoja, kad rašo „Java“, kai iš tikrųjų jie rašo tai, kas veikia tik „Internet Explorer“.

Kaip „Microsoft“ papildymai į klases daro įtaką „Java“ kūrėjams? Na, jei pasikliausite šiais pakeitimais arba tiesiog netyčia juos naudosite, jūsų programa veiks tik „Microsoft“ „Java“ sistemoje. Be to, jei sukursite programą ne „Microsoft“ kūrimo aplinkoje, ji tikėsis tam tikros pagrindinės API. Deja, ta „Core“ API skiriasi nuo „Microsoft“ aplinkoje esančios, todėl programa gali neveikti. Suderinamumo paketo testas, kuris pažymėjo šią problemą, vadinamas a parašo testas.

Pavyzdžiui, jei metodas foo () turėtų priimti tipo parametrą baras, geriau gauti tipo objektą baras. Jei kas nors nori, kad jūs praleistumėte tipo objektą baz vietoj to jis veiks tik tose sistemose, kurios pakeitė pagrindą, kad jį priimtų. „Microsoft“ pristatė šį pakeitimą. Dabar „Microsoft“ gali manyti, kad tai yra „Java“, skirtos „Windows“, orientacinis diegimas. Tačiau iš tikrųjų tik „Sun“ gali įvesti „Core Java“ API pakeitimus. Taip, bet kuris licencijos turėtojas gali paklausti pokyčiams, ir daugelis dažnai tai daro. Tačiau „Microsoft“ viena ir be leidimo nusprendė šiuos dalykus pakeisti.

Galų gale, ieškinio tikslas yra, Baratzo žodžiais tariant, „kad„ Microsoft “vėl atitiktų reikalavimus“ ir kuo greičiau. Kol teisiniai veiksmai nebus išspręsti, „Sun“ sulaikys „Microsoft“ nuo visų vykdomų „Java“ technologijos patobulinimų, tokių kaip nauja „Java 2.0“ virtuali mašina „HotSpot“. Jei „Microsoft“ vėl neatitiks „Java“ reikalavimų, ji turės pateikti švarios patalpos savo versijos, kuri nebus vadinama „Java“, versija, ty jei ji nori ką nors padaryti su lygiaverčiu Java bytecodes. Kas žino, kas nutiks IE 4.0, „Java 2.0“ SDK ir kitam „Visual J ++“?

Išmintingi žodžiai: leiskite „Java“ kūrėjui saugotis

Kaip kūrėjas turėsite žengti labai atsargiai. Jei nuspręsite naudoti „Microsoft“ kūrimo aplinką ir jums reikės sukurti įvairių platformų sprendimus, gerai susipažinkite su „Core Java“ API. Turėsite vengti visko, kas nėra viešųjų specifikacijų dalis. Kol nebus paskelbtas išsamus nesuderinamų elementų sąrašas, atskiri kūrėjai turės žinoti, kas yra ir kas nesuderinama. Žinoma, jei jums nerūpi „rašyti vieną kartą, paleisk bet kur“, galite naudoti „Microsoft“ platformai būdingas galimybes. Tačiau gali būti, kad „Microsoft“ „Java“ licencija bus panaikinta. „Sun“ jau bando atšaukti „Microsoft“ galimybę rodyti su „Java“ suderinamą logotipą.

Johnas Zukowskis yra programinės įrangos magas su „MageLang“ institutu, „Java AWT Reference“ autorius iš „O'Reilly & Associates“ ir Borlando „JBuilder“: „Sybex“ nereikia patirties, taip pat „Focus on Java“ vadovas kasybos įmonėje.

Sužinokite daugiau apie šią temą

  • „Sun Microsystems“ pranešimas spaudai

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

  • „Microsoft“ DUK apie tai, kodėl ji nepalaiko RMI / JNI ir pan

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

  • Dabartinis „Netscape“ palaikymas „Java“ programoje „Communicator 4.0“

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

  • Žr. Elizabeth Heichler iš „News Service“ ir Bobo McMillan, „SunWorld“, istoriją

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

  • Mūsų pačių Jenni Aloi parašė istoriją apie „Java“ vestibiulio pyktį „Microsoft“

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

  • CNet istorija apie „Sun“ ieškinį prieš „Microsoft“

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

  • „San Jose Mercury News“ apie ieškinį

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

  • Ar „Microsoft“ turėtų būti leidžiama keisti „Java“ pagrindinių klasių bibliotekas? Dalyvaukite naujausioje mūsų apklausoje

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

  • Platformos atžvilgiu neutralių „Java“ kūrimo įrankių apžvalga NC pasaulis, „JavaWorld“sesers leidinys

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

  • Nicko Petreley komentaras apie „Sun / MS“ ieškinį, taip pat NC pasaulis

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

Ši istorija „Ką„ Sun “ieškinys prieš„ Microsoft “reiškia„ Java “kūrėjams?“ iš pradžių buvo išleista „JavaWorld“.