ObjectStyle - nasza historia z technologiami Open Source

By Weronika Skotnicka

Java ma już 20 lat!

Jeden z najważniejszych języków programowania w historii technologii IT ma już dwadzieścia lat. Korzysta z niego 9 mln programistów, jest stosowany w ponad 3 mld urządzeń.

20 maja 2015r. Mija dokładnie 20 lat od wprowadzenia języka Java. Język ten powstał w 1995r i znajduje swoje zastosowanie w wielu projektach, urządzeniach i aplikacjach. Technologia ta jest obecna w całym spektrum IT, od korporacyjnych zbiorów Big Data, poprzez chmurę, technologie mobilne i społecznościowe oraz Internet Wszechrzeczy, aż do smartfonów czy gier wideo.

Oprócz zadań typowych dla biznesu, w Javie napisane jest oprogramowanie do bardzo niecodziennych zadań, takich jak na przykład badania nad usprawnieniem obsługi i poprawą bezpieczeństwa lotów i ruchu drogowego, zbieranie informacji z oceanów w celach naukowych, polepszanie jakości i pomiar plonów zbóż, symulacja działania ludzkiego mózgu i układu mięśniowo-szkieletowego oraz liczne gry komputerowe. Z Javy korzysta ponad 125 milionów urządzeń multimedialnych oraz 10 mld kart inteligentnych.

Zobacz również:

Dwie główne platformy, 30 zgodnych implementacji

Obecnie programiści korzystają z ponad 30 zgodnych implementacji dostarczanych przez 12 dostawców. Obecnie dostępne są dwie główne wersje platformy: Java 7 i Java 8, a najnowsze wydanie Java 9 powinno ukazać się w przyszłym roku. Java 8 została zatwierdzona przez Java Community Process i w marcu 2014r. firma Oracle zaprezentowała wydanie Java SE8, a następnie Java Micro Edition 8 razem z powiązanymi wersjami produktów. Obecnie jest to spójna platforma przeznaczonej do wdrożenia w urządzeniach wbudowanych, komputerach stacjonarnych, centrach przetwarzania danych oraz w modelu cloud computing.

W rozwoju tej technologii mocno uczestniczy społeczność programistów i użytkowników, korzystając z programu Java Community Process (JCP). Z kolei rozwojem Java Standard Edition w modelu open source, z pełnym dostępem do kodu źródłowego zajmuje się liczna społeczność skupiona wokół OpenJDK Community.

Czego oczekiwać od platformy Java 9

Firma Oracle oraz społeczność Java koncentrują się obecnie na wprowadzeniu nowych elementów, z których najważniejszym będzie Project Jigsaw. Nowa platforma będzie modularna, skalowana dla szerszego zakresu urządzeń i rozwijana tak, by programiści mogli łatwiej tworzyć i utrzymywać biblioteki i duże aplikacje. Ma ona również zwiększyć bezpieczeństwo, łatwość serwisowania i wydajność. Inne nowości planowane w wersji Java 9 to m.in. Java Shell, interaktywne narzędzie do ewaluacji fragmentów kodu Java; nowy kliencki interfejs API HTTP do obsługi HTTP/2 i Web Sockets; port do architektury ARM AArch64 w systemie Linux; szereg aktualizacji dotychczasowych interfejsów API oraz istotne usprawnienia zwiększające wydajność.

W ciągu ostatnich dwudziestu lat język Java ewoluował i bardzo silnie się rozwinął, stając się jednym z najważniejszych standardów technologicznych w IT. O jego rozwoju można przeczytać na stronie Java Timeline.

Red Hat rozwija technologię Java na platformie Kubernetes oraz udostępnia rozwiązanie Quarkus, dzięki któremu wprowadza technologię Java w przyszłość nowoczesnego programowania aplikacji.

Red Hat Inc., największy na świecie dostawca rozwiązań open source, poinformował o rozszerzeniu swojej oferty usług w zakresie aplikacji o rozwiązanie Quarkus, które dołącza do gamy produktów Red Hat Runtimes. W ten sposób Red Hat rozwija technologię Java na platformie Kubernetes i eliminuje rozdźwięk między tradycyjnymi aplikacjami Java i środowiskami przeznaczonymi bezpośrednio dla chmury (cloud-native).

Technologia Java pojawiła się na rynku 25 lat temu i do dziś pozostaje jednym z najpopularniejszych języków programowania. Dodając rozwiązanie Quarkus do swojej oferty obsługiwanych środowisk wykonawczych, Red Hat pomaga wprowadzić technologię Java w świat programowania nowoczesnych aplikacji chmurowych i rozwiązań takich jak mikrousługi, kontenery i przetwarzanie bezserwerowe. Pozwalają one przedsiębiorstwom rozszerzać granice produktywności, efektywności, sprawności działania i skalowalności, a programistom Java umożliwiają dalszą pracę w języku, który dobrze znają i lubią. Użytkownicy rozwiązania Quarkus otrzymują szeroko wspieraną technologię Red Hat, której towarzyszą aktywna społeczność, ciągłe aktualizacje i szybkie udostępnianie nowych wersji.

“Red Hat od dawna jest kluczowym motorem zmian w Javie, a my sami jesteśmy dumni z naszego wkładu w tę społeczność. Włączenie Javy do nowoczesnego krajobrazu aplikacji chmurowych, w którym obecnie się znajdujemy, ma kluczowe znaczenie nie tylko dla przyszłości języka programowania, ale także dla przyszłości tysięcy firm, które polegają na Javie. Dzięki naszej ofercie Quarkus w zakresie Javy, która wywodzi się z rozwiązań Kubernetes, pozwalamy twórcom oprogramowania Java pracować w języku, który znają i kochają, a jednocześnie oferujemy możliwość skalowania języka Java w środowiskach o krytycznym znaczeniu dla biznesu.” – podkreśla Rich Sharples, senior director of Cloud Services, Red Hat.

Quarkus to kompletne środowisko Java oparte na platformie Kubernetes, które zoptymalizowano pod kątem gęstości pamięci i szybkiego uruchamiania. Pozwala przedsiębiorstwom rozwijać istniejące środowisko aplikacji i wydłużyć użyteczność inwestycji w technologię Java dla systemów o znaczeniu krytycznym. Ten projekt open source stworzono na podstawie starannie dobranych czołowych technologii i standardów Java. Zapewnia programistom elastyczny model programowania, który ma łączyć style imperatywne i reaktywne w sprawnie działającym, ujednoliconym interfejsie użytkownika.

“Quarkus dał nam wyczekiwany wzrost wydajności i produktywności. Jest to innowacyjna technologia, która ma wiarygodne zaplecze w postaci Red Hat, a my jej ufamy, ponieważ obejmuje zarówno sprawdzone w boju, jak i najnowocześniejsze technologie. Wybraliśmy Quarkus zamiast konkurencyjnych technologii ze względu na ogromne korzyści dla programistów, znacznie niższe zużycie zasobów, wsparcie zaufanych członków społeczności oraz szybkie korygowanie błędów i wdrażanie nowych funkcji. Nasz zespół pracuje obecnie nad rozwojem 20 mikrousług, co w innym wypadku byłoby zadaniem niemożliwym” – zaznacza Christos Sotiriou, DXL technical lead, Vodafone Greece.

“Red Hat kontynuuje z Quarkusem długą tradycję przywództwa w społeczności Java. Quarkus zapewnia szereg korzyści dla aplikacji Java, takich jak krótszy czas uruchamiania, mniejsze zużycie pamięci, optymalizacja dla infrastruktur bezserwerowych i zwiększoną produktywność programistów. W rezultacie, programiści Java mogą pisać i rozwijać w języku, który znają i uwielbiają, jednocześnie korzystając ze zdolności Quarkus do zapewnienia korzyści kosztowych, operacyjnych i produktywności dla rozwoju opartego na chmurze natywnej i Kubernetes” – zwraca uwagę Arnal Dayaratna, research director, Software Development, IDC.

Quarkus pomaga:

zwiększyć wydajność programistów. Quarkus domyślnie współpracuje z popularnymi standardami, platformami i bibliotekami Java, programiści nie muszą więc zapoznawać się z nowymi interfejsami API ani przechodzić na całkiem inny język programowania. Rozwiązanie udostępnia też szereg funkcji, takich jak kodowanie w czasie rzeczywistym oraz ujednolicona konfiguracja. Przyspiesza to iteracje podczas programowania, ponieważ zmiany kodu są automatycznie i niezwłocznie uwzględniane w działającej aplikacji .

Quarkus domyślnie współpracuje z popularnymi standardami, platformami i bibliotekami Java, programiści nie muszą więc zapoznawać się z nowymi interfejsami API ani przechodzić na całkiem inny język programowania. Rozwiązanie udostępnia też szereg funkcji, takich jak kodowanie w czasie rzeczywistym oraz ujednolicona konfiguracja. Przyspiesza to iteracje podczas programowania, ponieważ zmiany kodu są automatycznie i niezwłocznie uwzględniane w działającej aplikacji zwiększyć wydajność operacyjną. Rozwiązanie Quarkus zostało stworzone z myślą o nowoczesnym zestawie narzędzi programistycznych opartych na platformie Kubernetes. Dzięki temu pozwala przedsiębiorstwom szybciej i sprawniej dostarczać rozwiązania biznesowe, utrzymać przewagę nad konkurencją i przyspieszyć wprowadzanie produktów na rynek.

Rozwiązanie Quarkus zostało stworzone z myślą o nowoczesnym zestawie narzędzi programistycznych opartych na platformie Kubernetes. Dzięki temu pozwala przedsiębiorstwom szybciej i sprawniej dostarczać rozwiązania biznesowe, utrzymać przewagę nad konkurencją i przyspieszyć wprowadzanie produktów na rynek. zwiększyć oszczędności. Quarkus cechuje się niskim zużyciem pamięci oraz pozwala na szybkie uruchomienie. Przekłada się to na lepsze wykorzystanie zasobów i obsługę użytkownika, ponieważ nowe aplikacje i usługi są dostępne błyskawicznie. Efektywność ta pozwala uzyskać dużą gęstość obciążeń na procesor, a co za tym idzie większe oszczędności.

Quarkus cechuje się niskim zużyciem pamięci oraz pozwala na szybkie uruchomienie. Przekłada się to na lepsze wykorzystanie zasobów i obsługę użytkownika, ponieważ nowe aplikacje i usługi są dostępne błyskawicznie. Efektywność ta pozwala uzyskać dużą gęstość obciążeń na procesor, a co za tym idzie większe oszczędności. zwiększyć niezawodność. Aplikacje Quarkus są elastyczne i skalowalne, a przy tym umożliwiają zaspokajanie zmieniających się potrzeb, zwiększając w ten sposób niezawodność systemu.

Firma Red Hat od dawna należy do liderów społeczności Java i stale dąży do rozwijania tej technologii za pomocą otwartych innowacji. Teraz Red Hat zwiększa swoje zaangażowanie, wprowadzając środowisko Quarkus do grupy w pełni obsługiwanych rozwiązań Red Hat Runtimes. Oferta Red Hat Runtimes obejmuje najlepsze w swojej klasie zintegrowane produkty, narzędzia migracyjne i komponenty, które umożliwiają tworzenie aplikacji typu cloud-native oraz szybsze programowanie i dostarczanie. To zbiór lekkich środowisk wykonawczych i platform dla bardzo rozproszonych architektur chmurowych, takich jak mikrousługi. Zintegrowane buforowanie w pamięci zapewnia szybki dostęp do danych, a komunikacja przyspiesza transfer danych między istniejącymi aplikacjami. Oferta pozwala programistom i architektom wybrać właściwe narzędzie do realizacji danego zadania.

Platformie Quarkus towarzyszy biblioteka rozszerzeń, która obejmuje dynamiczne środowisko ponad 200 standardów rozszerzeń, bibliotek, usług i technologii. Zawiera wiele chmurowych platform i narzędzi, w tym RESTEasy, Hibernate i Eclipse MicroProfile. Obejmuje także rozszerzenia dla szeregu usług chmurowych Red Hat, takich jak Red Hat AMQ Streams, Red Hat AMQ Broker, Red Hat Fuse oraz usługi automatyzacji procesów biznesowych.

Dostępność

Platforma Quarkus jako obsługiwane środowisko wykonawcze Red Hat jest powszechnie dostępna już teraz.

ObjectStyle - nasza historia z technologiami Open Source

ObjectStyle to technologia Open Source. Ale skąd właściwie się to wzięło? Zacznijmy od początku, a tym początkiem był projekt Apache Cayenne, który właściwie doprowadził do powstania naszej firmy i zaistnieniu w świecie otwartego oprogramowania.

Z czasem nasze portfolio powiększyło się i obecnie obejmuje rozwiązania open source Apache Cayenne, Bootique, Agrest i DFLib. Chcielibyśmy opowiedzieć historię każdego z tych projektów i wyjaśnić, dlaczego je stworzyliśmy.

Pierwsze wydanie: 2002

Co to jest: Framework mapowania obiektowo-relacyjny Java

Najbliższe alternatywy: Hibernate, JPA

Kluczowe cechy: zaawansowany język zapytań obiektowych, zatwierdzanie pojedynczych wywołań oraz płynny, prawie zautomatyzowany proces modelowania

Na początku 2000 roku ORM (mapowanie obiektowo-relacyjne) było dość nowym podejściem do pisania aplikacji wśród programistów Java. Andrus Adamchik i grupa współpracowników zdali sobie sprawę, że w Javie nie ma dobrych ORM, nie mówiąc już o licencji typu open source. W rezultacie napisali własną platformę nazwaną „Cayenne”.

Cayenne został ciepło przyjęty przez programistów i przyciągnął kilka głośnych organizacji, takich jak National Hockey League, Nike, Unilever, rząd federalny USA i Law Library of Congress. Aby pomóc pierwszym użytkownikom Cayenne, Andrus Adamchik rozpoczął konsultacje pod nazwą ObjectStyle w 2002 roku.

W 2006 r. Cayenne dołączyła do fundacji Apache Software. Nazwa ta brzmi Apache Cayenne, a Andrus Adamchik został wiceprezesem Apache Software Foundation dla tego właśnie projektu.

Od 2020 r. Cayenne przeszła serię przeprojektowań i głównych wydań. Przez lata aktualizowaliśmy go o najnowsze trendy programistyczne ORM i najnowsze wersje Javy. Pomimo swojej dwudziestoletniej historii Cayenne pozostaje nowoczesnym instrumentem, gotowym sprostać każdemu zapotrzebowaniu na ORM.

Pierwsze wydanie: 2015

Co to jest: platforma dla aplikacji Java

Najbliższe alternatywy: Spring Boot, Dropwizard

Kluczowe cechy: modułowość, CLI, łatwość integracji, niewielka powierzchnia aplikacji, szybkie uruchamianie.

W momencie tworzenia Bootique nastąpiła spora zmiana w branży: społeczność Java chciała odejść od starych, nieporęcznych rozwiązań J2EE do lekkich aplikacji bez kontenerów. Naszą wizją była prosta aplikacja do uruchamiania aplikacji Java, która może uruchamiać aplikacje tylko za pomocą metody main ().

Dwa produkty stojące na czele ruchu „bez kontenerów” to Dropwizard i Spring Boot. Jednak Dropwizard był platformą przeznaczoną do jednego celu, koncentrującą się głównie na usługach REST, podczas gdy Spring Boot był nieporęczny, wolny i nieprzewidywalny. ObjectStyle potrzebował czegoś bardziej elastycznego (w przeciwieństwie do Dropwizard), lekkiego i przezroczystego (w przeciwieństwie do Spring Boot).

Tak narodził się Project Bootique. Bootique ma elastyczną modułową strukturę, która pozwala programistom z łatwością synchronizować dowolną aplikację / moduł z rdzeniem. (Zobacz listę obsługiwanych modułów)

W 2016 roku blog OverOps nazwał nadchodzący projekt Java Bootique numerem 1 do wypróbowania na Github. Do końca 2016 roku ponad 500 użytkowników Github użyło Bootique, a liczba ta podwoiła się do ponad 1000 do 2018 roku.

fot. A screenshot of Bootique.io

Bootique został pierwotnie zbudowany na bazie Google Guice jako technologia zależności (patrz Guice Stories - Część 1 i Guice Stories - Część 2 autorstwa Andrus Adamchik). Od wersji 2.0 przeszliśmy na własny mechanizm zarządzania zależnościami, bootique-di, dzięki czemu jest jeszcze bardziej intuicyjny i szybszy:

Kolejną zaletą Bootique jest to, że nadaje się do wszystkich rodzajów aplikacji, od małych mikrousług po duże monolity z wieloma zależnościami.

Pierwsze wydanie: 2014

Co to jest: Elastyczna struktura usług danych REST oparta na modelu

Najbliższa alternatywa: GraphQL

Kluczowe cechy: Framework Java do budowania niestandardowych backendów danych z funkcją zapytań o zasięg i aktualizacją. Wspólny zestaw elementów sterujących interfejsu API REST do filtrowania, sortowania i dzielenia na strony, które można zastosować do dowolnego modelu danych. Wbudowana obsługa relacyjnych baz danych, rozszerzenia API do dodawania innych backendów. Bezpieczeństwo na poziomie obiektów i atrybutów.

Istnieją dwa typowe problemy z interfejsem API REST: zwraca za dużo lub za mało danych na żądanie. Typowe interfejsy API REST dają programistom po stronie klienta niewielką lub zerową kontrolę nad kształtem i rozmiarem zwracanych danych, ani nie pozwalają na wykonywanie żądań ponad granicami agregacji.

Aby rozwiązać te dwa problemy, stworzyliśmy Agrest. Zawiera prosty protokół oparty na protokole HTTP do nawigacji po grafach obiektowych (takich jak modele ORM), a także strukturę po stronie serwera do obsługi żądanych danych. Oznacza to, że klient może uzyskać tyle danych, ile dokładnie potrzebuje. Programiści mogą dostosować swoje żądania do wymagań interfejsu użytkownika. Na przykład można uzyskać dużo danych na ekran komputera lub niewiele danych na aplikację mobilną.

Agrest (wcześniej LinkREST) został wydany po raz pierwszy w 2014 roku. Wkrótce potem Facebook zaprezentował GraphQL - narzędzie o podobnych możliwościach kwerend grafowych. Podczas gdy oba frameworki opierają się na tej samej filozofii, przyjmują różne podejścia do budowania grafu obiektowego. W GraphQL programiści muszą tworzyć niestandardowe schematy i przeliczniki danych. W Agreście wykresy usług REST są generowane automatycznie z modelu obiektu biznesowego, a pobieranie danych jest delegowane do bazowej ORM lub innego podobnego mechanizmu. Programowanie elastycznego punktu końcowego Agrest wymaga zaledwie kilku linii kodu.

DFLib

Pierwsze wydanie: 2019

Co to jest: lekka implementacja struktury Java DataFrame typowej dla Data Science.

Najbliższe alternatywy: Pandas Python, Spark DataFrame

Kluczowe cechy: praca z dowolnym rodzajem danych za pomocą ogólnego obiektu przypominającego tabelę. Możliwość przeprowadzania transformacji danych w pamięci w dowolnej aplikacji Java bez specjalnej infrastruktury zewnętrznej. Bogaty zestaw operacji transformacji danych (łączenie, konkatenacja, sortowanie, filtrowanie, projekcja, agregacja), łączenie danych z wielu źródeł danych (CSV, bazy danych itp.). Wsparcie dla Jupyter Notebook.

Andrus Adamchik po raz pierwszy przewidział DFLib jako narzędzie, które wprowadziłoby strukturę DataFrame do Javy. Ramki danych są szeroko stosowane w innych językach programowania, takich jak R, Python i Scala. Na przykład społeczność Python ma tzw. "Pandas" - bibliotekę, która pozwala pracować z tabelami podobnymi do Excela, w których można edytować i zarządzać danymi. DFLib pozwala programistom robić to samo, tylko w przypadku modeli i aplikacji Java.

W DFLib, DataFrames mogą być ładowane z dowolnego źródła danych (bazy danych, CSV, JSON itp.), następnie łączone, filtrowane, agregowane itp. w pamięci, po czym wizualizowane lub wysyłane z powrotem do magazynu danych, wszystko z prostą Javą API.

Podsumowując

Naszą misją i pasją jest Open Source, który niezaprzeczalnie nadal zdobywa świat szybkim tempem. Tymi kilkoma przykładami pragnęliśmy pokazać Wam jak wiele pomysłów realizujemy jako ObjectStyle mając w naszym zespole fantastycznych pasjonatów otwartego oprogramowania.

Czy wypróbowałeś którąś z wyżej wymienionych technologii open source? Daj nam znać w komentarzach!

Apache Cayenne Twitter

Bootique Twitter

Agrest Twitter

DFLib Github