Linux E X P R E S

Facebook

Android bez Javy dál válcuje konkurenci

android_logo.png

Jako blesk z čistého nebe se do IT světa snesla zpráva o žalobě společnosti Oracle ve věci porušení autorských práv a patentů při využívání technologie Java při vývoji operačního systému a aplikací pro telefony Android společnosti Google. V článku se budeme snažit rozklíčovat danou událost a najít možné scénáře dalšího postupu.


Stížnost u soudu v Kalifornii

Ve stížnosti společnost Oracle nejprve shrnuje historii Javy a jak se k ní tato technologie vlastně dostala (nákupem společnosti Sun Microsystems). Pak připomíná, že společnost Oracle nyní zakoupením Sunu získala také patenty týkající se některých inovací ve virtuálním stroji (Java JVM) a vyjmenovává některé konkrétní (patenty 6125447; 6192476; 5966702; 7426720; RE38104; 6910205 a 6061520). Už při čtení tohoto odstavce je jasné, kam Oracle míří. Míří na Android respektive jeho komponentu pojmenovanou názvem Dalvik Virtual Machine zodpovědnou za nízkoúrovňové provádění kódu.

HTC Dream / T-Mobile G1, zdroj WikipediaHTC Dream / T-Mobile G1, zdroj Wikipedia

V dalších odstavcích je představen systém Android jako přímý konkurent technologie JavaME. Je popsán jako sada Java aplikací běžících na objektově orientovaném aplikačním rámci podobným Javě za použití Dalvik VM. Je uvedeno, že Android (konkrétně Dalvik VM) porušuje výše uvedené patenty a vývojová sada Android SDK pak licenční ujednání Javy.

V dalším textu Oracle připomíná, že Google musel vědět o těchto patentech, protože v polovině tohoto desetiletí najal některé vývojáře ze Sunu. Google měl aktivně a úmyslně distribuovat Android a jeho aplikace, aniž by si pořídil potřebné licence. V další fázi je formálně vznesena stížnost na všechny jednotlivé patenty a na konci celého elaborátu jsou vzneseny požadavky na rozhodnutí. Oracle chce, aby soud uznal porušení patentů a zajistil, aby k tomuto porušování nedocházelo nadále, a to jednak v případě Googlu, ale i jeho spolupracujících firem. Dále požadují zničení (nebo zlikvidování) všech postižených zařízení a zaplacení všech škod, ke kterým došlo, a to včetně soudních výloh.

O co tady jde

Když se na problém podíváme ze širší perspektivy, jedná se vlastně o dvě různé věci. Google už dlouho chtěl vstoupit na trh mobilních telefonů, a tak si inženýři lámali hlavy, jak na to. Měl to být telefon linuxový, ale s naprosto jednotným prostředím. Podmínkou tedy nejspíš bylo vyvinout unikátní uživatelské prostředí, tedy vydat se opačnou cestou, než jak vzniklo MeeGo (použití a úpravy standardních knihoven pro tvorbu UI).

HTC Hero, zdroj WikipediaHTC Hero, zdroj Wikipedia

Google i celý svět již v té době viděl obrovský úspěch jazyka Java - je to i dnes nejpoužívanější programovací jazyk, na světě je nejvíce Java expertů, softwarových nástrojů, dokumentace a tak podobně. I koncept virtuálního stroje a vysoké přenositelnosti byl poměrně úspěšný, vždyť podobně funguje mnoho jiných technologií i jazyků (.NET, Python, Perl 6). Není třeba divit se tomu, že Google vymyslel Dalvik VM (dále jen Dalvik).

Vše bylo předem promyšlené a naplánované, Google s předstihem najal irského vývojáře, který již v té době pracoval na konceptu virtuálního stroje (Virtual Machine - VM). Na rozdíl od Java VM (dále jen JVM) ten svůj koncipoval na odlišné architektuře (register-based, Java VM je stack machine based). V Googlu pokračoval ve vývoji, který se ubíral jasným směrem - virtuální stroj optimalizovaný pro mobilní a přenosná zařízení.

Dalvik není náročný na paměť jako JVM. Bytekódy pro Dalvik (soubory .dex) vznikají převodem z bytekódů JVM (soubory .class). Obecně jsou daleko menší, takže je není třeba komprimovat do JAR souborů (pouze se tam ukládají - podobně jako to dělá GNU tar). Načítání je pak rychlejší. Dalvik má mnoho vylepšení oproti JVM a ve verzi Android 2.2 dostal do vínku také Just-In-Time (JIT) kompilaci, což je technologie zrychlující provádění kódu implementovaná i v JVM. Sun (Oracle) má na JIT patent. Je to jeden z výše uvedených.

Dalvik vznikl proto, aby Google nemusel Sunu platit licence za užívání technologie Java, protože se přímo nabízelo použít například Java ME (mobilní Java, která je v mnoha dnešních telefonech). Sám Google označoval Dalvik už v době vzniku za „čistou“ implementaci ve smyslu nepoužití patentů třetích stran.

Dalvik je jen jedna strana mince. Tou druhou je využití technologie Java při vývoji aplikací pro Android. Google to vymyslel fikaně. Vývojáři naprogramují a otestují své programy za použití Javy a výsledné .class soubory se převedou dodanými nástroji od Google do bytekódu Dalvika. Java je sice přímo využita při vývoji, ale do mobilu se už nedostane.

Motorola Droid, zdroj WikipediaMotorola Droid, zdroj Wikipedia

Je to právě tato druhá strana mince, která Java komunitu znepokojuje. Pokud by chtěl Oracle vybírat poplatky za takovéto použití Javy, musel by je vybírat u všech, kteří Javu používají. Není možné vyloučit, že se k tomuto kroku Oracle nerozhodne. Tato žaloba vrhá na Javu stín.

Úsměvné je v tomto kontextu ohlédnutí do roku 1994, kdy se Oracle v diskusi nad softwarovými patenty vyjádřil proti nim: „Společnost (Oracle) věří, že existující copyright a obchodní zákony, na rozdíl od softwarových patentů, jsou k ochraně vývoje softwaru vhodnější.“

Google to přece ustojí

To není tak jisté. Oracle je světovou trojkou, co se týče zisku v oblasti softwaru. Má obrovskou moc. Vždyť za svoji existenci Oracle pohltila už na stovku jiných společností. V aktivách má šedesát miliard amerických dolarů. Na druhé straně Google je dynamická, rozvíjející se společnost s aktivy ve výši čtyřiceti miliard dolarů. Obrat ale mají obě společnosti dneska již stejný (Google zaostává „jen“ o pár miliard). To jen potvrzuje, že se jedná o patentový útok a pokus o oslabení pozice konkurenta.

Oracle není jen zlou společností. Výrazně podporuje open-source hnutí, jeho politika vývojářských licencí zdarma je obecně pozitivně vnímána a z konkrétních příspěvků linuxové komunitě lze jmenovat například financování vývoje nové generace souborového systému Btrfs. Tenhle souboj tedy není černobílý. Obě firmy si uvědomují, jaký obrovský potenciál je v mobilních technologiích a chtějí z něho ukousnout, co nejvíc to jde. Za každou cenu.

Heslem Oraclu je nenechat si nic líbit. Když v roce 2006 společnost usoudila, že příliš mnoho zákazníků zakupuje se softwarovými produkty Oracle také Red Hat Enterprise Linux, prostě založili nový klon s názvem Oracle Enterprise Linux a nabízejí jej jako doporučené řešení. Byl to legální krok, protože společnost Red Hat patří mezi ty opravdu otevřené firmy, kde základem není jen kvalitní produkt, ale zejména lidé, kteří za ním stojí. Nutno podotknout, že podle informací z linuxové firmy zákazníci dávají stále větší přednost originálu s kvalitnější podporou.

Součástí licence k Javě je takzvaný „patent grant“, který v podstatě povoluje použití patentů za předpokladu, že používané běhové prostředí (JVM) je certifikováno přímo společností Sun. To v případě Androidu neplatí (není to Java). Miguel de Icaza si na svém blogu pohrává s myšlenkou, aby byl Android přepsán pro .NET. Díky benevolentnějšímu „patent grantu“ od společnosti Microsoft by podobný scénář neměl hrozit. Richardovi Stallmanovi prý vstávaly vlasy i vousy, když to slyšel.

Hlavním bodem sporu bude patrně Dalvik a patenty, které jsou v držení Oraclu. Pokud Google při volbě technologie pro Android neudělal chybu, patenty budou neplatné a Google nebude muset nic odstraňovat. Pakliže by byl alespoň jeden patent uznán, Google má problém a je na soudu, aby nařídil patřičné kompenzace. A pak se strhne lavina dalších žalob.

HTC Legend, zdroj WikipediaHTC Legend, zdroj Wikipedia

Uvnitř Androidu se toho tak jako tak měnit moc nemusí a z technického hlediska není veliký problém sporné části vyřadit. Naprostá většina Androidu jsou komponenty z GNU/Linuxu a Dalvik je jen tenká vrstva určená pro uživatelské rozhraní a programy. Díky „přenositelnosti“ bytekódu není třeba měnit stávající programy - budou fungovat i na pozměněném Dalviku. Ledaže by Oracle napadl přímo formát, ve kterém je bytekód uložen (zatím to tak nevypadá).

Druhá strana sporu je ještě jednodušší. Java používaná při vývoji není podmínkou, Google může nabídnout SDK nezávisle na Javě od Sunu (Oraclu). Změna jazyka by byla také technicky možná, ale při penetraci Androidu mezi vývojáři hůře realizovatelná. Nicméně je nutné zmínit, že na Javě není Android absolutně závislý.

Problém je však v požadovaných kompenzacích, pokud by Oracle vyhrál soud v Kalifornii. Stáhnutí telefonů z trhu je nereálné, ale třeba scénář automatických aktualizací na novou verzi Androidu, ve které nebudou sporné části, by s dodatečnou finanční kompenzací pro Oracle už tak nereálný nebyl. V tento scénář zřejmě doufají i akcionáři společnosti Oracle.

Význam stížnosti

Oracle vyslal komunitě Java programátorů jasný signál: Google vytvořil virtuální stroj podobný Javě, a to nemůže. Je jasné, že v tomto případě nejde pouze o peníze. Pokud by Oracle chtěl jen dolary za licence a patenty, pak by nepožadoval „zničení zařízení“. Je to klasické využití softwarových patentů pro útok vůči konkurenci.

Výše zmíněný signál však výrazně přesahuje svět Javy, protože technologie virtuálních strojů existují i jinde. Například CLR z projektu .NET a Mono, interpret jazyka Lua nebo virtuální stroj jazyka Perl 6 nazvaný Parrot. Všechny zmíněné projekty může Oracle žalovat za porušení stejných (nebo i jiných) patentů, kterých má v zásobě hodně.

Nexus One, zdroj WikipediaNexus One, zdroj Wikipedia

Vůbec si ani nedokážeme představit, jak se Oracle bude chovat vůči IBM, která na balíku OpenOffice.org staví (a prodává) novou generaci svého groupware systému Lotus. Firma IBM je větší hráč, než je Oracle. Troufnou si právníci i na ni? Snad možná až soud rozhodne v případě Google. OpenOffice.org získal Oracle společně s Javou při akvizici společnosti Sun Microsystems.

Když uvážíme potenciál, jaký v sobě mobilní trh momentálně skrývá, jedná se doslova o žhavou bombu. Případ číslo jedna v IT. Precedent. Dá se očekávat, že (nejen) Google bude do budoucna silněji usilovat o zrušení softwarových patentů. Srovnáme-li si Java ME a Android mobil, je potlačení rozvoje evidentní.

Společnost Google se do naší uzávěrky oficiálně vyjádřila pouze politováním nad útokem Oraclu na ně i open-source společnost a ohlásila stanovisko „silné obhajoby“ open-source standardů a dalšího vývoje platformy Android.

Diskuze (8) Nahoru