Programování

Co znamená žaloba společnosti Sun na Microsoft pro vývojáře prostředí Java?

7. října 1997 - Společnost Sun reagovala na vydání aplikace Internet Explorer (IE) 4.0 společností Microsoft a na vydání verze 2.0 pro sadu SDK pro Javu (SDKJ) společností Microsoft u okresního soudu v USA. Podle tiskové zprávy společnosti Sun „stížnost obviňuje společnost Microsoft z porušení ochranné známky, falešné reklamy, porušení smlouvy, nekalé soutěže, zásahu do potenciální ekonomické výhody a podněcování k porušení smlouvy.“ Microsoft se konkrétně rozhodl minulý týden dodávat produkty, o nichž tvrdí, že jsou plně kompatibilní s Java 1.1, ale které neprošly testy kompatibility Java 1.1, které společnost obdržela od společnosti Sun v únoru. „Společnost Microsoft se pustila do záměrného postupu fragmentace Javy,“ řekl Alan Baratz, prezident JavaSoft, během telekonference Sun dnes v 10:30 PST.

Co to z pohledu vývojáře znamená? Zaprvé, pokud vytvoříte něco s aplikací Sun 1.1 JDK (nebo s prostředím s certifikací Java 1.1 od jiné společnosti, jako je IBM, Borland a Symantec), nemusí to fungovat pod IE 4.0. Také pokud vytvoříte něco s vývojovým prostředím společnosti Microsoft, nemusí to fungovat v prostředí jiných než Microsoft Java 1.1. Společnost Microsoft konkrétně nepodporuje rozhraní Java Native Interfaces (JNI) nebo Remote Method Invocation (RMI) a změnila knihovny tříd Core Java s přibližně 50 metodami a 50 poli, která nejsou součástí veřejných rozhraní Java Application Programming Interfaces ( API) publikovaná společností Sun.

JNI a RMI: Proč je odmítnutí společnosti Microsoft problémem

JNI je rozhraní nativního kódu používané k přístupu k funkcím specifickým pro platformu, jako je sériový port nebo mikrofon - pro věci, které zatím nejsou k dispozici prostřednictvím jádra API. Cílem JNI je umožnit vývojářům poskytovat jediná sada nativních knihoven pro každou implementaci prostředí Java na konkrétní platformě.

Společnost Microsoft se rozhodla podporovat své vlastní rozhraní s názvem RNI, které poskytuje stejné funkce jako JNI. Tím, že Microsoft nepodporuje JNI, nutí vývojáře, aby poskytovali různé knihovny pro uživatele Microsoftu a jiných než Microsoft Java virtual machine (JVM). S podporou společnosti RNI společností Microsoft není nic špatného, ​​pokud si společnost myslí, že její technologie je lepší. Tím, že nepodporuje JNI, Microsoft nemůže tvrzení, že IE 4.0 je plně kompatibilní s Java 1.1.

RMI poskytuje způsob provádění kódu Java na cizích virtuálních strojích Java. Často se porovnává s voláními vzdálených procedur (RPC), architekturou CORBA (Common Object Request Broker Architecture) a DCOM (Distributed Component Object Model), v závislosti na pozadí mluvícího. Společnost Microsoft tvrdí, že podporuje DCOM namísto RMI, protože RMI nepodporuje komunikaci Java-to-Java. Specifickým účelem použití RMI je komunikace systému Java-to-Java. Například s RMI můžete vyvolat metody objektů existujících v jiných virtuálních strojích Java, aniž byste znali typ třídy, a přitom zachovat běhovou bezpečnost Javy.

Pokud se potřebujete přestěhovat mimo komunikaci Java-Java, CORBA je vlastně přenosné řešení, nikoli DCOM. Proč? DCOM je zaměřen na svět Microsoftu, teprve nedávno se stane dostupným pro svět Unix s produkty jako EntireX od Software AG. Pokud potřebujete použít RMI, samozřejmě není Internet Explorer k dispozici. Pokud potřebujete komunikaci systému Java-ne-Java, pro rozhraní se staršími systémy (jinými než Java), které se spoléhají na CORBA, je Netscape Communicator 4.0 dodáván s VisiBroker ORB společnosti Visigenic. (Pro podporu RMI s Netscape Communicator musíte použít beta verzi opravy prohlížeče, protože Communicator neprohlašuje, že je prohlížeč Java 1.1.)

Shnilý k jádru Java API: Jádro problému

Poslední identifikovaný problém s nekompatibilitou Java 1.1 je ve skutečnosti nejděsivější. Je snadné vyhnout se RMI a JNI, pokud to vaše aplikace umožňuje: Prostě je nepoužíváte. Klíčovým bodem je, že Microsoft rozhodl, že knihovny tříd Core Java nejsou pro jeho potřeby dostatečné. Nyní není nic špatného na rozšiřování věcí podtřídou a umístěním nových objektů do balíčku mimo hierarchii tříd java. *. Ale rozhodnout se přidat asi 50 metod a 50 polí do tříd v balíčcích java.awt, java.lang a java.io, jak to udělal Microsoft, je extrémně problematické. „Microsoft klamně pozměnil klíčové třídy a vložil je do své sady SDK,“ uvedl Baratz, což má za následek, že si vývojáři myslí, že píší Javu, když ve skutečnosti píší něco, co běží pouze na Internet Exploreru.

Jak doplňky Microsoftu do tříd ovlivňují vývojáře Java? Pokud se na tyto změny spoléháte nebo je jen neúmyslně použijete, bude váš program fungovat pouze v systému Microsoft Java. Také pokud vytvoříte program mimo vývojové prostředí společnosti Microsoft, bude očekávat určité základní API. Bohužel se toto Core API liší od rozhraní v prostředí Microsoftu, takže tam program nemusí fungovat. Test sady kompatibility, který označil tento problém, se nazývá a test podpisu.

Jako příklad, pokud metoda foo () má přijmout parametr typu bar, je lepší získat objekt typu bar. Pokud někdo chce, abyste předali objekt typu baz místo toho bude fungovat pouze na těch systémech, které změnily jádro, aby jej přijaly. Microsoft tuto změnu představil. Nyní si Microsoft může myslet, že je to referenční implementace Java pro Windows. Faktem však je, že pouze Sun může zavést změny do Core Java API. Ano, může každý držitel licence zeptat se pro změny a mnoho z nich často dělá. Společnost Microsoft se však bez pomoci a bez svolení rozhodla tyto věci změnit.

Nakonec cílem žaloby je, podle Baratze, „co nejrychleji dostat společnost Microsoft zpět do souladu“. Ale dokud nebudou zákonnosti vyřešeny, Sun pozastaví společnosti Microsoft veškerá probíhající vylepšení technologie Java, jako je nový virtuální stroj Java 2.0 s názvem HotSpot. Pokud se Microsoft nevrátí zpět do souladu s Javou, bude muset přijít s implementací čisté místnosti své verze něčeho, co se nebude jmenovat Java - tedy pokud chce něco udělat s ekvivalentem bajtových kódů Java. Kdo ví, co se stane s IE 4.0, SDK pro Javu 2.0 a dalším Visual J ++?

Slova moudrosti: Dejte si pozor na vývojáře Java

Jako vývojář budete muset šlapat velmi opatrně. Pokud se rozhodnete použít vývojová prostředí společnosti Microsoft a potřebujete vytvořit řešení pro více platforem, dobře se seznámíte s rozhraními Core Java API. Budete se muset vyhnout všemu, co není součástí veřejných specifikací. Dokud nebude zveřejněn úplný seznam nekompatibilních prvků, bude na jednotlivých vývojářích, aby věděli, co je a není kompatibilní. Samozřejmě, pokud vás nezajímá „jednorázový zápis, běh kdekoli“, můžete využít možnosti specifické pro platformu Microsoftu. Je však možné, že licence společnosti Microsoft bude zrušena. Společnost Sun se již pokouší zrušit schopnost společnosti Microsoft zobrazit logo kompatibilní s Javou.

John Zukowski je softwarový mág v MageLang Institute, autor Java AWT Reference od O'Reilly & Associates a Borland's JBuilder: Sybex nevyžaduje žádné zkušenosti, stejně jako průvodce Focus on Java v těžební společnosti.

Další informace o tomto tématu

  • Tisková zpráva Sun Microsystems

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

  • Nejčastější dotazy společnosti Microsoft o tom, proč nepodporuje RMI / JNI atd

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

  • Aktuální podpora Netscape pro Javu v Communicatoru 4.0

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

  • Podívejte se na příběh Elizabeth Heichler z News Service a Boba McMillana ze SunWorld

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

  • Naše vlastní Jenni Aloi napsala příběh o hněvu Java Lobby na Microsoft

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

  • Příběh CNet o žalobě Sun proti Microsoftu

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

  • San Jose Mercury News o soudním sporu

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

  • Mělo by být společnosti Microsoft povoleno měnit knihovny klíčových tříd v Javě? Zúčastněte se naší nejnovější ankety

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

  • Přehled platformově neutrálních vývojových nástrojů Java v NC World, JavaWorldsesterská publikace

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

  • Komentář Nicka Petreleyho k soudu Sun / MS, také v NC World

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

Tento příběh: „Co znamená žaloba společnosti Sun na společnost Microsoft pro vývojáře prostředí Java?“ byl původně publikován společností JavaWorld.

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