Java licencja komercyjna: co to znaczy ?
W zeszłym roku światkiem IT wstrząsnęła straszna wieść, a imię jej: Java licencja komercyjna. O technicznych aspektach sprawy, pisał między innymi pgs-soft.com oraz devrev.pl Amerykański koncern Oracle ogłosił, że zamierza skończyć z darmową licencją na Javę i od kwietnia 2019 licencja będzie już płatna. Jak powiedział, tak zrobił czym wprowadził jeszcze większe zamieszanie, ponieważ, jak to w przypadku Oracle’a bywa: nic nie jest proste, ale jak zawsze jeśli nie wiadomo o co chodzi, chodzi o pieniądze. W tym wypadku olbrzymie, które chce zarobić gigant znany z jednej z najagresywniejszych strategii audytów licencyjnych na świecie.
JAVA LICENCJA KOMERCYJNA: CZY JAVA BĘDZIE JUŻ TERAZ PŁATNA?
Odpowiedź brzmi: to zależy. Zanim się zastanowimy od czego, najpierw oświećmy niewtajemniczonych czym jest Java. Wcale nie tak prosto wytłumaczyć to laikowi, więc pozwoliłam sobie skonsultować się w tej sprawie z panelem ekspertów. Najkrócej rzecz ujmując Java jest wirtualną maszyną, która, po jej zainstalowaniu umożliwia użytkownikowi korzystanie z oprogramowania napisanego w języku Java. Nie masz maszyny, nie uruchomisz oprogramowania. Sam język Java jest jednym z najpopularniejszych języków programowania na świecie. Według indeksu TIOBE za maj 2019 jest obecnie światowym numerem 1 zaś według PYPL Index (Popularity of Programming Language ), Java zajmuje obecnie 2 miejsce jeśli chodzi o popularność języków programowania. Różnice wynikają z zakresu analizy danych: PYLP analizuje ilość wyszukiwani tutoriali (czyli po naszemu „podręczników”) do języka Java w wyszukiwarce Google podczas gdy TIOBE analizuje też dane z innych wyszukiwarek. Kto chce, może sobie poczytać nieco obszerniej o indeksach popularności języków programowania we wpisie Rafała Gdaka na Spider’s Web, ale programistów, zwłaszcza przyszłych, lojalnie ostrzegam: część tego wpisu może być dla Was frustrująco-dołująca.
Naturalnie ani środowiska Javy (maszyny wirtualnej) ani języka Java nie wymyślił Oracle lecz nieistniejąca już Sun Microsystems. Firma przestała istnieć w 2010 roku, po tym jak przejął ją Oracle. W 9 lat po przejęciu amerykański gigant zdecydował się skończyć z bezpłatną licencją na Javę.
3 sierpnia 2018r. Oracle udostępniło oficjalny cennik opłat licencyjnych za Javę SE (Java Standard Edition). Cennik jest wyłącznie po angielsku, a wskazane w nim ceny obowiązują na całym świecie. Jednocześnie koncern wprowadził rozróżnienie używanie Javy z wyłączeniem zastosowań komercyjnych ( non-commercial use) oraz używanie Javy w celach komercyjnych (commercial use).Od kwietnia 2019r. płatna licencja jest wymagana wyłącznie w przypadku umów licencyjnych na Javę używaną w celach komercyjnych czyli Javę SE. Jeśli sobie uświadomimy, że do tej pory licencja na Javę zawsze była darmowa, niezależnie od tego czy byłą używana w celach komercyjnych, czy nie. Decyzja Oracle’a : Java licencja komercyjna będzie płatna, to prawdziwie trzęsienie ziem. Nie tylko w kontekście przyzwyczajeń, ale przede wszystkim w kontekście planowania budżetów na IT na 2019 przez przedsiębiorców, firmy i instytucje używające Javy w celach komercyjnych. Oficjalny cennik Oracle’a pojawił się dopiero w sierpniu 2018r., w samym środku wakacyjnego sezonu urlopowego i na zaledwie 4 miesiące przed końcem 2018r. Już same ramy czasowe narzucają ostre tempo prac, żeby w ogóle oszacować o jakich dodatkowych kosztach związanych z płatnymi licencjami na Javę SE mowa. Jak się za chwilę przekonamy, pozory mogą mylić i 2,50 dolarów za miesięczną licencję od komputera/laptopa oraz 25 dolarów od procesora w najtańszej opcji przeznaczonej dla najmniejszej ilości komputerów/laptopów/procesorów może się okazać mocno złudna. I jest to jak najbardziej zamierzone działanie Oracle’a. Koncern pozwala sobie na taką zagrywkę nie pierwszy raz.
JAVA LICENCJA KOMERCYJNA – STRATEGIA INFORMACYJNA ORACLE
Zwróćmy uwagę na bardzo przemyślaną strategię informacyjną Oracle’a jeśli idzie o Javę licencję komercyjną. Przede wszystkim firma informuje o zmianie umowy licencyjnej. Z tym, że uwaga, informuje o tym nas swoich stronach. Więc jeśli jesteś dociekliwym użytkownikiem końcowym to możesz wejść na stronę Oracle’a i przeczytać, nową, zmienioną umowę licencyjną. wejdziesz i doczytasz, ale tutaj pojawiają się schody. Po pierwsze gdy zajdziemy na polską stronę Oracle’a to w zasadzie nie znajdziemy niczego co by sugerowało w ogóle istnienie tematu Java licencja komercyjna i niekomercyjna. Po wejściu w produkty, po wybraniu Javy jesteśmy przekierowywani z automatu na amerykańską stronę firmy. Oczywiście wszystko jest już po angielsku włącznie z dokumentacją do Javy , ale wciąż nie ma żadnego wyraźnej wskazówki, że istnieje jakieś istotne finansowo dla użytkownika końcowego rozróżnienie Java licencja komercyjna i niekomercyjna. Oracle nas zbywa. Koncentruje się na technicznych aspektach instalacji Javy SE ( płatnej wersji ) oraz wciąż bezpłatnej Javy JDK.
Na szczęście Oracle ma stronę w języku polskim dedykowaną wyłącznie Javie. Znajdziemy tam piękne logo Javy czyli filiżankę z parującą kawą i …kolejny raz mnóstwo informacji technicznych. Na szczęście jest też zakładka „Pomoc” i po kliknięciu w nią z lewej strony wyskakuje menu boczne- piąta kropka od góry to „Pytania ogólne” i dopiero tutaj znajdziemy , to, czego szukamy, czyli Licencjonowanie i dystrybucja – często zadawane pytania. Długość informacji nie powala. O tym, że jakaś wersja Javy jest płatna nie ma ani słowa, nie ma też informacji o tym, że jest jakieś rozróżnienie na Java licencja komercyjna oraz niekomercyjna za to mamy jakieś mgliste informacje o tym, że dla „Odbiorców” odpowiednia będzie Java JDK do użytku osobistego , ale jeśli jesteś firmą, i tu pozwolę sobie zacytować :„Oracle zaleca zapoznanie się z mapą drogową dla wydań Java SE 8 i kolejnych oraz rozpoczęcie oceny bieżących wymagań związanych ze świadczeniem pomocy technicznej w zakresie technologii Java, w celu — w zależności od tego, co jest bardziej odpowiednie — migracji do nowszego bezpłatnego wydania albo uzyskania w odpowiednim czasie subskrypcji Java SE. „
No i wszystko jasne, co nie? Dobrze, że chociaż jest jakaś mała, bo mała, ale jednak sugestia, że skoro istnieje bezpłatna wersja Javy oraz tajemnicza Java SE, to może ta cała Java SE jest płatna?
Linki do umów licencyjnych dla wersji SE oraz JDK znajdziemy na tej samej stronie, z tym, że oba dokumenty są już wyłącznie po angielsku.
Teraz podstawowe pytanie, co jeśli mamy już zainstalowaną Javę, do tej pory całkowicie darmową niezależnie od tego jak ją wykorzystujemy, i nadchodzi czas aktualizacji? Czy Oracle informuje nas jakoś o zmianie warunków licencji i możliwości żądania wynagrodzenia, jeśli się okaże je jesteśmy komercyjnym użytkownikiem Javy? O odpłatności wprost nas absolutnie nie poinformuje, natomiast o zmianie warunków umowy licencyjnej już tak z tym, że w taki sposób, iż bardzo łatwo tę informację przeoczyć. Firma wykorzystuje tutaj do bólu powszechnie znany fakt, iż mało kto wczytuje się w treść wyskakujących okienek przy aktualizacji oprogramowania. Z reguły po prostu klikamy na klawisze „Next” , aż dojdziemy do „Install” i instalujemy. W tym wypadku, jeśli zainstalujemy aktualizację Javy, a okaże się, że jesteśmy użytkownikiem komercyjnym, to będziemy musieli zapłacić Oracle opłatę licencyjną zgodnie z cennikiem. Okienko aktualizacji Javy wygląda bardzo niewinnie. Spójrzmy poniżej (ramki i podkreślania – Prawstoria).
Naturalnie cały tekst jest po angielsku. Jest też jakaś informacja, że warunku udzielania licencji na ten software uległy zmianie oraz link do aktualnej, zmienionej wersji umowy licencyjnej. Jeśli klikniemy w link, ukaże nam się tekst umowy po angielsku. Sama umowa jest krótka ale to pozory, o czym za chwile, poza tym nie ma w niej słowa o opłatach licencyjnych. Poniżej linka do aktualnej wersji umowy licencyjnej znajdziemy informację, że ta wersja Javy Runtime, którą mamy jest przeznaczona wyłącznie do osobistego, niekomercyjnego użytku ( personal (non-commercial) use), a jeśli masz zamiar używać Javy komercyjnie (commercial use), to potrzebna jest osobna licencja. Słowa nie ma o tym, że taka osobna licencja jest odpłatna. Jeśli zaś klikniemy w „Install”, to będzie to równoznaczne z zaakceptowaniem warunków osobnej umowy licencyjnej. I teraz pytanie brzmi o jaką umowę licencyjną chodzi? Oczywiście nie wynika to wprost z tekstu, ale nie ma wątpliwości : jak klikniecie w „Install”, to jeśli jesteście użytkownikiem komercyjnym, Oracle zażąda opłat licencyjnych. W ten oto sposób jednym kliknięciem można sobie załatwić nie tylko aktualizację Javy, ale przede wszystkim sporą dziurę budżetową.
JAK SIĘ W TEJ SYTUACJI BRONIĆ PRZED OPERACJĄ „JAVA LICENCJA KOMERCYJNA”?
Co w tej sytuacji zrobić? Nie klikać bezmyślnie, tylko przeanalizować swoją sytuację, czyli:
- Po pierwsze ocenić, czy w myśl nowej umowy licencyjnej na Javę jesteśmy użytkownikami komercyjnymi i podpadamy w związku z tym pod wersję Java licencja komercyjna czyli płatna wersja Javy SE czy też możemy jej dalej używać nieodpłatnie, a może wreszcie najkorzystniejsze będzie w ogóle zrezygnowanie z updatów Javy SE 8 i możemy się przerzucić na którąś z darmowych licencji typu open source na Javę wciąż oferowanych przez Oracle (jeśli się okaże, że tak, to zajrzyjmy do cennika). Jak już pisałam powyżej 3 sierpnia 2018r. Oracle udostępniło oficjalny cennik opłat licencyjnych za Javę SE. Wciąż jest aktualny.
- Cennik jest naturalnie częścią zmienionej umowy licencyjnej. Oczywiście jest wyłącznie po angielsku, ale spójrzmy na ceny i przede wszystkim na definicje pod cennikiem . Wbrew pozorom nie są to tylko definicje tego co Oracle rozumie pod pojęciem „Processor” oraz „Named User Plus”, ale również okazuje się, że każdy desktop jest równoznaczny z serwerem, a do tego jeszcze znajdziemy w definicjach dokładnie opisaną metodę obliczania opłaty za procesory wraz z przykładem. Po zastosowaniu się do definicji i metody obliczeniowej wskazanej przez Oracle’a może się okazać, że te niewinne 2.5 USD za komputer i 25 USD za serwer, to tak było tylko na zachętę, bo miesięczna opłata licencyjna będzie nas znacznie drożej kosztowała.
Dopiero po takiej analizie sytuacji możemy podjąć świadomą decyzję, co dalej robić: aktualizujemy tę Javę SE i płacimy, czy też może pasujemy i szukamy innych rozwiązań.
CO TO ZNACZY, ŻE LICENCJA JEST KOMERCYJNA?
Zanim zaczniemy liczyć wysokość potencjalnej opłaty licencyjnej w ramach licencji komercyjnej na Javę warto sprawdzić czy potrzeba jest nam licencja komercyjna, czyli płatna, czy też nie. I na chłopski rozum mogłoby się wydawać, że prostą odpowiedź znajdziemy w umowie licencyjnej Oracle na Javę SE . Nic bardziej mylnego. Umowa jest wyłącznie po angielsku, nowi tytuł „Oracle Technology Network License Agreement for Oracle Java SE” i wygląda bardzo niewinnie, bo liczy sobie zaledwie niecałe 4 strony tekstu. Oczywiście pozory mylą, ale po kolei. Sprawdzamy czy jesteśmy „commercial user” w rozumieniu tej umowy. Rzut oka na definicje użytych w niej terminów, i od razu klapa, bo nie znajdziemy tam zdefiniowanego pojęcia użytkownika komercyjnego czy komercyjnego użycia. O co chodzi? Ano, wszystkie umowy licencyjne Oracle’a są skonstruowane w bardzo zawiły sposób. Jeśli się wczytamy w te niecała 4 stroniczki tekstu umowy licencyjnej, to się okaże, że jej częścią jest też tzw. Licencing Information Manual dla Javy SE oraz inna dokumentacja dostarczona przez Oracle wraz z ich softwarem lub zamieszona na stronach Oracle’a. Moi Państwo, w zależności od tego z jakich produktów Oracle korzystamy, w praktyce to oznacza, że nasza umowa licencyjna na Javę SE rozrasta się do co najmniej kilkuset jeśli nie kilkunastu tysięcy stron tekstu. Dodam, że tekstu bardzo trudnego, po części technicznego, po części prawnego wyłącznie po angielsku. Umowy licencyjne i dokumentacja Oracle są na tyle trudne, że stanowią nie lada wyzwanie dla amerykańskich prawników i informatyków. Trudno znaleźć w nich konkretne definicje, Oracle namiętnie też miksuje pojęcia oraz cechy produktów, w tym na przykład Java SE choć płatna ma pewne cechy nieodpłatnej Javy JDK. O tym jak koszmarnie trudne w odbiorze dla użytkownika są umowy licencyjne i dokumentacja produktów Oracle można się przekonać czytając świetny artykuł na temat Oracle’a i jego planów wprowadzenia odpłatności na Javę licencję komercyjną w Bloomberg Law z września 2018r. Lektura bardzo pouczająca, ale ostrzegam, że nie najłatwiejsza.
Wracając do samej umowy licencyjnej na Javę SE, zgodnie z jej pierwszym punktem License Rights and Restrictions” (Licencyjne prawa i ograniczenia) oraz informacjami zawartymi w mapie drogowej Oracle dotyczącej dalszych planów co do Javy SE (Oracle Java SE Support Roadmap). I tak na nieodpłatne aktualizacje Javy SE mogą liczyć:
- klienci używający Javy SE do osobistego użytku („Personal Use”),
- klienci którzy używają jej dla celów testowo-rozwojowych („Development Use”)
- wreszcie klienci, którzy mają licencję na Javę SE w ramach innego obsługiwanego produktu udostępnionego na osobnej licencji.
Jak długo potrwa taki stan rzeczy, nie wiadomo. Zarówno „Development Use” jak też „Personal Use” został zdefiniowany w umowie licencyjnej Oracle na Javę SE i warto się z tymi definicjami zapoznać, bo jeśli pod żadną nie podpadamy i nie korzystamy z Javy SE w ramach licencji na inny produkt Oracle’a, to jesteśmy użytkownikami komercyjnymi. Podpadamy pod Java licencja komercyjna i płacimy za aktualizacje.
Przez “Użytek Osobisty” Oracle rozumie używanie programów przez osobę fizyczną wyłącznie na komputerze lub laptopie kontrolowanym przez taką osobę fizyczną i wyłącznie po to żeby uruchamiać na nim Aplikacje Osobiste. Same Aplikacje Osobiste to aplikacje uruchamiane na Javie SE zaprojektowane do użytku osobistego osoby fizycznej takie jak gry czy osobiste narzędzi mierzące wydajność. Z kolei o Development Use to wszelkie operacje związane z wewnętrznym testowaniem programów i uruchomianych na platformie Javy aplikacji. Do angielskich wersji definicji można sobie zajrzeć w umowie. Tłumaczenie na polski może być chropawe, gdyż jest moje.
Żeby było jeszcze ciekawiej i mniej przejrzyście, to w zasadzie z treści umowy licencyjnej na Javę SE trudno wywnioskować, że jak nie korzystamy w zakresie innym niż wskazanym w punkcie License Rights and Restrictions” (Licencyjne prawa i ograniczenia), będziemy za aktualizacje płacić. Co prawda ostatnie zdanie tego punktu stwierdza, że jeśli planujemy korzystać z Javy SE w inny sposób lub w innym celu niż wskazany w umowie, to musimy uzyskać od Oracle inną licencję zezwalającą na taki użytek. No i jeszcze mamy cały punkt w umowie poświęcony kodom źródłowym dla software typu open source ( czyli bezpłatnego ), który sugeruje, że Oracle udziela jeszcze jakichś niepłatnych licencji, ale prawda jest taka, że z samych tych niecałych 4 stroniczek trudno coś wywnioskować o odpłatności. Tylko, że jak już wspominałam, nasza umowa licencyjna wcale nie liczy sobie 4 stron, tylko rozrasta się o dobrych kilkaset. , a jej częścią jest też tzw. Licencing Information Manual dla Javy SE oraz inna dokumentacja dostarczona przez Oracle wraz z ich softwarem lub zamieszona na stronach Oracle’a. Jest to ultra pojemna kategoria, pod którą podpada absolutnie wszystko włącznie z cennikiem, mapą drogową oraz informacjami na stronach Oracle’a o tym, że commercial use na Javę SE będzie od tej pory odpłatny.
Tylko, że wciąż nie wiemy czym dla Oracle’s jest commercial use czyli kiedy właściwie jest potrzebna licencja komercyjna? Z umowy licencyjnej w jej obecnej wersji wiemy tylko, i to do tego mocno mgliście, co na pewno nie jest traktowane przez Oracle jako commercial use Javy SE.
Jak pamiętamy częścią naszej umowy licencyjnej jest też Licencing Information Manual dla odpowiedniej wersji Javy SE . W obecnie obowiązującej wersji z czerwca 2018.r dokument liczy sobie 335 stron i naturalnie jest dostępny wyłącznie po angielsku, a na stronie drugiej znajdziemy informację, że wszelkie cechy Javy wskazane w tabeli poniżej oznaczone jako nie dostępne dla „Oracle Java SE” w ramach licencji na wciąż bezpłatną Javę w wersji binarnej są jej „Funkcjami Komercyjnymi” (Commercial Features). W tekście wygląda to jak poniżej.
Tak naprawdę dopiero treść tabeli w Manualu daje wgląd w to, co Oracle uważa za „ Funkcję Komercyjną” i w związku z tym możemy też wnioskować, że jeśli używamy, którejś z tych funkcji, używamy Javy SE dla celów komercyjnych i podpadamy pod Javę licencja komercyjna, która musimy wykupić zgodnie z cennikiem.
Czy w związku z tym teść umowy licencyjnej, którą, przypominam, AKCEPTUJEMY JEDNYM KLIKNIĘCIEM jest jasna ? Ależ oczywiście, że nie i jest to moim zdaniem absolutnie celowa strategia Oracle’a , bo sytuacja jest dużo bardziej zagmatwana o czym już w „następnym odcinku”.
W tym miejscu pozwolę sobie tylko zauważyć, że każda umowa licencyjna Oracle’a jest interpretowana zgodnie z prawem stanu Kalifornia a sądem właściwym do rozpatrywania sporów mogących z niej wyniknąć jest oczywiście sąd kalifornijski właściwy dla siedziby głównej Oracle. Kto jeszcze nie wiem czym taki zapis pachnie, odsyłam do mojego wpisu na temat zapisów w umowie dotyczących wyboru prawa i sądu przez strony.
We wszystkich umowach licencyjnych Oracle’a też niepozornie wyglądający zapis o możliwości przeprowadzenia przez firmę audytu u klienta w celu sprawdzenia czy produkty są wykorzystywane zgodnie z licencją. O tym czego się możemy spodziewać w ramach takiego audytu i jak się do niego przygotować, już w następnym wpisie
Pozdrawiam, Prawstoria