Google LLC срещу Oracle America Inc Google LLC срещу Oracle America Inc. е приключено съдебно дело на територията на Съединените щати, свързано с естеството на компютърен код и закона за авторско право. Центъра на спора е относно използването на части от Java интерфейси за приложно програмиране (API) и близо 11 000 реда от продуктов код, които са собственост на Oracle (чрез дъщерно дружество на Oracle America, Inc., произлизащи от Sun Microsystems, в рамките на ранните версии на операционната система Android на Google. Google признават, че са използвали API-та и оттогава са прехвърлили Android към двигател без авторски права, но твърдят че първоначалното използване на данните е било в рамките на честната употреба.

Oracle инициира делото с аргумента, че API-тата са защитени с авторски права, изисквайки 8,8 милиарда щатски долара за покритие на щети от продажбите на Google и лицензирането на по-ранните версии на Android, които са в нарушение. Докато два съдебни процеса на ниво окръжен съд са спечелени в полза на Google, Федералният съд е отменил двете решение, като твърди, че API-тата са защитени с авторски права и приложението на Google от тях не успява да защити честната употреба. Google успешно подаде петиция до Върховният съд за разглеждане на делото през мандата през 2019 г., като се фокусира върху авторските права на API и последващото тяхно честно използване. Поради пандемията от Covid-19 изслушванията по делото бяха отложени до 2020 г. През април 2021 г. Върховният съд взе решение със гласове 6.2, че използването на Java API-та от Google спада към четирите фактора на честната употреба, заобикаляйки въпроса свързан с авторските права на API-тата. Това решение обърна решението на Федералният съд и остави случая отворен за по-нататъшно разглеждане.

Случаят представлява значителен интерес в техническата и софтуерната индустрия, тъй като многобройни компютърни програми и софтуерни библиотеки, особено със свободен код (open source) са разработени чрез пресъздаване на функционалността на APP от търговски или конкурентни продукти в помощ на разработчиците на оперативна съвместимост между различни системи или платформи.

Произход Java разработване Java е първоначално разработен от Sun Microsystems през декември 1990 г. Той е включвал нов програмен език, виртуална машина и набор от библиотеки използващи въпросният език. Тези библиотеки са документирани за програмисти чрез интерфейси за приложно програмиране (application programming interface – API), които казват на програмистите каква информация да предоставят на функциите на библиотеката и какви резултати да очакват обратно, премахвайки всякаква необходимост програмиста да знае как работи, защото библиотеката, която използват прави това. Тези библиотеки заедно съставят „Java виртуални машини“ чрез които програмистите пишат програми за използване. Общият начин, по който се използват през всички „Java виртуални машини“ позволява оперативната съвместимост, или както представят от Sun, „Запиши веднъж, използвай навсякъде“; на програмиста е необходимо да създаде само една версия на техният софтуер, която заради единствената група от API-на позната на всички Java машини, може да бъде изпълнена на всяка изчислителна платформа на Java. Езика Java бе пуснат за обществеността през 1995 г. под лиценза на Sun Community Source License, които предлагат програмен код със свободен достъп, но изискват продуктите използващи кода, да бъдат поддържани в съответствие със стандарта на Java и всички търговски производни продукти да са лицензирани от Sun. Докато всеки може да програмира на самият език, Sun поддържа Java платформа, Стандартна версия (Java SE) и Мобилна версия (Java ME) библиотеки, предоставени на потребителите като предварително компилирани байт кодове на Java, и съответните им API, както и Комплекти за технологична съвместимост (Technical Compatibility Kit), които тестват изпълнението спрямо стандарта Java.През 2006 и 2007 г., поради натиска на разработчиците, Sun променя лиценза на различните Java пакети за да използва Общ публичен лиценз на GNU с „изключение на classpath“ позволяващо на разработчиците достъп, необходим им за създаване на производни продукти, и възможност за пускане на приложения под различен лиценз. Това води до OpenJDK ( Open Java Development Kit) издаден за пръв път през 2007 г. Sun запазва силен контрол върху самият език и стандарти, лицензирам необходимите елементи като ТСК за търговски потребители. По това време бизнес модела на Sun се променя, като се фокусира върху лицензирането на платформата Java за вградени устройства, най-вече мобилни телефони и вече е сключена лицензионна сделка с Nokia, Motorola и Research in Motion.

Android разработване Android, inc. е основана през 2003 от Анди Рубин, Рич Майнър, Ник Сиърс и Крис Уайт с цел разбработването на платформа за мобилни телефони. Google купува Android през 2005 и продължава разработването на операционната система Android. По време на разбработването на Android, Google иска да използва библиотеките Java Standard Edition. Изпълнителният председател на Google Ерик Шмид се е обърнал към президента на Sun, Джонатан И. Шварц с цел получаване на лиценз за употреба на библиотеките на Java в Android. Сделката която Sun им предлага обаче е на стойност между 30 и 50 милиона долара. Шмид казва, че Google би заплатил тази сума, но основното им притеснение е, че освен сумата Sun желаят и споделен контрол над Android. Google твърдят, че са искали те да имат по-голям контрол за да подсигурят open source език и да позволят на трети страни да се възползват по-пълноценно от неговия код; Oracle твърдят, че Sun отказват сделката при това условие, защото смятат, че Google възнамеряват да използват кода и да преправят Java в тяхна собствена версия и така да предотвратят оперирането и с други версии на Java. Това намерение се противопоставя на един от основните принципи на езика, да бъде оперативно съвместим и да може лесно да бъде използван между различни версии и платформи.Ruling, para 34: " The point of contention between the parties was Google's refusal to make the implementation of its programs compatible with the Java virtual machine or interoperable with other Java programs. Because Sun/Oracle found that position to be anathema to the „write once, run anywhere“ philosophy, it did not grant Google a license to use the Java API packages." Заради тези разлики във възгледите, преговорите се провалят и Sun отказват на Google необходимият лиценз. На този етап OpenJDK алтернативната имплементацията която Sun предлага далеч не е толкова зряла и завършена колкото Java Standard Edition. Заради това Google решават да създадат своя „cleanroom“ версия на Java SE библиотеките тоест код споделящ сходства, но направен от нулата, без да имат достъп до оригиналния дизайн и кодове и без да нарушават авторските права. Това се превръща в основата на Dalvik виртуалната машина на Android. Част от тази виртуална машина включва 37 API и около 11,500 редове код, считани за централни за Java. Те били взети от Apache Harmony, това е друга open source, cleanroom имплементация на Java разработена от Apache Software Foundation (ASF). Предходно на това ASF също са опитали да се сдобият с необходимия лиценз от Sun за да изпълнят Apache Harmony проекта, за да бъде считан като официална имплементация на Java, но не успяват. Частично заради несъвместимости в GNU General Public License на Java и Apache License на ASF. Също така, защото не успяват да се сдобият с достъп до Java TCKs за да валидира проекта спрямо имплементацията на Sun. По начало Google твърдят, че са използвали този код за да подсигурят оперативна съвместимост с Java Standard Edition за други програмисти. При второто прослушване обаче казват, че са използвали този код с търговски цели, за да могат по-бързо да приключат разработването на Android и да си спестят трудностите при пресъздаването на кода. ASF спира да поддържа Apache Harmony през 2011 и така Google поемат поддръжката на тези библиотеки. Google пуска бета версията на Android на 5 ноември 2007, както и комплекта за разбратока на софтуера една седмица по-късно. Те отбелязват, че той съдържа някои Java технологии. Президента на Sun поздравява Google още в същия ден, казвайки, че са „прикрепили още един чифт ракети към инерцията на обществото и към визията определяща възможностите на нашите (и други) планети“. По време на прослушването Шварц казва, че при обявяването на Android, въпреки че е знаел, че Google може да са заобиколили изискванията им за лицензиране са решили да „стиснат зъби и да го подкрепят за да може всеки от подкрепящите го да ги виждат като част от стойността му“ Oracle обявяват, че ще закупят Sun през Април 2009 за 7.4 милиарда долара и през Януари 2010 вече са ги придобили. Освен че Sun им проправя път в хардуерния бизнес, , изпълнителният директор на Oracle Лари Елисън нарича Java „най-важният софтуерен актив, който някога сте придобили“. Oracle продължава да разработва Java и да следва лицензионни възможности след придобиването на Sun.

При пускането на Android KitKat (v.4.4) през 2013, Google премахва виртуалната машина Dalvik и я замества с Android Runtime, която е създадена от Google без да използва по никакъв начин кодове от Java. Android, обаче продължава да използва Java Standard Edition APK по време на съдебните процеси.

Първа фаза: API авторски права и патенти Първата фаза на делото продължава от 2010 до 2015 г. Oracle успешно установява, че API могат да бъдат защитени с авторски права, но исканията им за нарушаване на патент са отхвърлени. През октомври 2014 г. Google подава петиция до Върховния съд за преразглеждане на делото, но тя бива отхвърлена. Втора петиция от Google през януари 2019 г. включва преценката, че API могат да бъдат защитени с авторски права. Върховният съд се съгласява да преразгледа тази част от решението през ноември 2019 г.

Процес на Първи окръжен съд На 13 август 2010 г. Oracle завежда дело срещу Google за нарушаване на авторски права и патенти в Окръжния съд на Северния окръг на Калифорния. Oracle твърди, че Google е наясно, че са разработвали Android без лиценз за Java и са копирали нейните API, и следователно Google е нарушил авторските права на Oracle. Oracle цитира и седем предишни патента, свързани с технологията Java, създадена от Sun и сега собственост на Oracle, с която Google трябва да е наясно, тъй като наема бивши разработчици на Sun, работещи върху Java. Oracle иска както парични щети, така и заповед, с която да спре употребата на материалите, за които се твърди, че са в нарушение. Делото е възложено на съдия Уилям Алсоп, който разделя случая на три фази: авторско право, патент и щети.

Фазата на авторските права започва на 16 април 2012 г. и се състои от няколко отделни искания за нарушение: функция за проверка на диапазон от девет реда, няколко текстови файла, структура, последователност и организация (SSO) на Java (API) и документацията за API. Oracle твърди, че има нарушение на 37 отделни API на Java, които произтичат от проекта Apache Harmony. На 7 май 2012 г., след две седмици свидетелски показания, жури установява, че Google е нарушил авторските права, свързани с кода, SSO и документацията на приложните програмни интерфейси (API), както и функцията rangeCheck, но са блокирали дали тези употреби попадат в честна употреба. Журито също установява, че Google има достатъчно основания да вярва, въз основа на поведението на Sun и Oracle, че не е необходимо да лицензират Java от Sun или Oracle, но не разчита на това, когато разработва Android. Oracle иска преценка като въпрос на закон (JMOL), че делото отхвърля всяка защита за честна употреба, тъй като съдебното заседание е разделено, както и да отмени решението на журито по осем свързани със сигурността досиета, които те са прегледали и установили, че не са в нарушение, но които Google признава, че са копирали дословно; Алсуп се съгласява. Google иска подобен JMOL, свързан с rangeCheck, но Алсуп отказва тази заявка.