Dżakarta EE
W informatyce Jakarta EE (znana przed wersją 8 pod nazwą Java EE ; a przed wersją 5 pod nazwą Java 2 Enterprise Edition lub J2EE ) to zbiór specyfikacji, których implementacje są opracowywane głównie w języku programowania Java i szeroko stosowany w programowaniu internetowym .
Funkcje
Oprogramowanie implementujące tę specyfikację nazywa się Referencing Runtimes Jakarta EE. Wcześniej nazywano je serwerami aplikacji. Zmiana nazwy z serwera aplikacji na referencyjną runtime wynika z faktu, że w architekturze mikroserwisów uruchamiana jest samodzielna aplikacja Java, bez konieczności korzystania z serwera aplikacji. Implementacja może być całkowita (w tym przypadku nazywana Full Platform) lub ograniczona do profilu internetowego, czyli podzbioru specyfikacji, który został zaprojektowany specjalnie dla aplikacji internetowych [1] .
Początkowo specyfikacja zachęcała do tworzenia aplikacji opartych na architekturze wielowarstwowej . Architektura ta miała na celu oddzielenie funkcji związanych z wyświetlaniem stron internetowych od tych związanych z zarządzaniem logiką biznesową i zapisywaniem informacji w bazie danych . Od niedawna dzięki technologiom takim jak Eclipse MicroProfile, WildFly Swarm i Payara Micro możliwe jest również tworzenie mikroserwisów. Doprowadziło to również do zmiany nazwy nadawanej implementacjom: wcześniej nazywano je serwerami aplikacji, teraz odnosi się do środowisk wykonawczych.
Ten zestaw specyfikacji został początkowo stworzony przez Sun Microsystems, przedstawiony przez Oracle, a w drugiej połowie 2017 roku przeniesiony do Eclipse Foundation pod nazwą Eclipse Enterprise for Java. [2]
Specyfikacje Dżakarty EE
Zestaw specyfikacji Jakarta EE zawiera wiele technologii rozszerzających podstawową funkcjonalność platformy Java . Poniższa lista nie pokazuje wszystkich elementów, a jedynie te, które mają największe znaczenie. Jedynymi komponentami, które bezwzględnie wymagają użycia referencyjnego środowiska wykonawczego, są te korporacyjne, czyli takie, które potrzebują np. rozproszonych transakcji i rozproszonych kolejek. Komponenty dla sieci i bazy danych mogą być również używane na prostym serwerze sieciowym .
Specyfikacje sieci
Do tej kategorii należą komponenty związane z wyświetlaniem stron internetowych. Jeśli chcesz używać tylko komponentów po stronie sieci Web, nie jest konieczne uciekanie się do złożonego, pełnego profilu odwołującego się do środowiska wykonawczego, ale wystarczy użyć odwołującego się profilu sieciowego środowiska wykonawczego lub bardziej usprawnionego serwera sieci Web.
- Servlet , czyli technologia pozwalająca na przesyłanie stron HTML (np. z wykorzystaniem technologii Java Server Pages ) do klienta oraz udostępnianie usług internetowych ;
- Java Server Faces , platforma internetowa oparta na komponentach, która umożliwia tworzenie witryn z funkcjonalnością AJAX.
Specyfikacje przedsiębiorstwa
W tej kategorii znajdują się komponenty charakterystyczne dla Jakarta EE. Użycie tych komponentów jest wymagane tylko w średnich i dużych aplikacjach.
- Contexts and Dependency Injection , które pozwalają na użycie inwersji kontroli w bardzo podobny sposób jak w przypadku frameworka Spring i zapewniają większość funkcjonalności, które zapewnia Enterprise JavaBeans;
- Enterprise JavaBeans definiują rozproszony system komponentów, który był sercem specyfikacji Java EE. W rzeczywistości system ten zapewniał typowe cechy wymagane przez aplikacje korporacyjne , takie jak skalowalność , bezpieczeństwo, trwałość danych i inne. Wiele z tych funkcji jest teraz dostępnych również w Contexts i Dependency Injection;
- Java Message Service opisuje system wysyłania i zarządzania wiadomościami;
- Java EE Security API definiuje zarządzanie użytkownikami, hasłami, grupami i uwierzytelnianiem.
Specyfikacje usług internetowych
W Jakarta EE możliwe jest tworzenie serwisów internetowych zarówno typu REST jak i SOAP . Specyfikacje to:
- Przetwarzanie JSON , do przetwarzania informacji zakodowanych w formacie JavaScript Object Notation ;
- JSON Binding , aby przekształcić obiekty Java w ciągi JavaScript Object Notation i odwrotnie;
- RESTful Web Services , do tworzenia usług internetowych przy użyciu architektury Representational State Transfer
- JAX-WS dla usług internetowych SOAP
- Java Architecture for XML Binding do przekształcania obiektów Java w łańcuchy XML i odwrotnie.
Specyfikacje dotyczące interakcji z bazą danych
Ta kategoria zawiera technologie, które umożliwiają trwałość danych w relacyjnej bazie danych. Komponenty tej kategorii mogą być również używane poza środowiskiem wykonawczym odniesienia.
- Java Transaction API to system do obsługi transakcji rozproszonych ;
- Java DataBase Connectivity to interfejs umożliwiający dostęp do dowolnego typu bazy danych (zawarty również w Java Platform, Standard Edition );
- Java Persistence API to zestaw klas, których można używać do zarządzania trwałością danych.
Programy podstawowe
Aplet
Platforma Java była jednym z pierwszych systemów zapewniających szerokie wsparcie wykonywania kodu ze zdalnych źródeł. Aplet Java to specjalny rodzaj aplikacji, którą można uruchomić w przeglądarce użytkownika, wykonując kod pobrany ze zdalnego serwera WWW . Ten kod jest wykonywany w bardzo ograniczonym obszarze ( piaskownica ) w celu ochrony użytkownika przed złośliwym kodem lub niepożądanym zachowaniem; kto publikuje kod, może zastosować certyfikat , którego używa do cyfrowego podpisywania apletów, oświadczając, że są one „bezpieczne”, dając im pozwolenie na opuszczenie obszaru zastrzeżonego i dostęp do systemu plików i sieci, prawdopodobnie za zgodą i pod kontrolą użytkownika . W rzeczywistości aplety nie miały dużo szczęścia. W rzeczywistości zakłada się, że klient , na którym są uruchamiane, zainstalował środowisko JRE, które ma uruchamiać kod apletu. Szczęście miały aplikacje zawierające tzw. cienkiego klienta, czyli „lekkiego” klienta, który nie potrzebuje specjalnych narzędzi do zdalnego wykonania kodu, czasem wystarczy przeglądarka.
Serwlet
W informatyce , w kontekście programowania WWW , serwlety to obiekty napisane w języku Java , które działają w ramach serwera WWW (np. Tomcat , Jetty ) lub serwera aplikacji (np. WildFly , GlassFish ) umożliwiające tworzenie aplikacji internetowych [3] ] ( przetwarzanie po stronie serwera ).
Nazwa pochodzi od apletów Java , małych programów napisanych w języku Java , które działają w przeglądarce użytkownika klienta ( przetwarzanie po stronie klienta ).
Najczęstszym zastosowaniem serwletów jest generowanie dynamicznych stron internetowych zgodnie z parametrami żądania wysyłanymi przez klienta przeglądarki użytkownika do serwera. W ostatnich latach nie wykonywano bezpośredniego programowania serwletów, ale wolimy używać frameworków internetowych, które implementują specyfikację serwletów, lub stron JavaServer Pages , które są następnie tłumaczone (kompilowane) na serwlety w czasie wykonywania .
Certyfikowane wdrożenia
Istnieje kilka środowisk uruchomieniowych typu open source, które są często używane w środowisku produkcyjnym.
Wśród open source'owych są:
- Apache TomEE , którego dostępna jest komercyjnie obsługiwana wersja o nazwie Tomitribe
- WildFly , dawniej znany jako JBoss
- GlassFish jest implementacją referencyjną, utrzymywaną przez firmę Oracle. Istnieje wersja, która ma wsparcie komercyjne i nazywa się Payara
Wśród komercyjnych, oprócz wymienionych powyżej:
- WebLogic Oracle;
- IBM IBM;
- Kosminexus z Hitachi;
- międzystopniowy serwer aplikacji Fujitsu;
- InforSuite firmy InforBus;
- Jeus przez TmaxSoft;
- WebOTX firmy NEC;
Mikroserwisy i Eclipse MicroProfile
Eclipse MicroProfile to projekt mający na celu unowocześnienie specyfikacji Jakarta EE i uczynienie ich bardziej odpowiednimi dla architektury mikrousług, zwanej również architekturą mikrousług [4] . Chodzi o to, aby uruchamiać tylko te komponenty Jakarta EE, które są ściśle niezbędne dla tworzonej aplikacji.
Wśród dostępnych realizacji znajdziemy:
Krytyka
W grudniu 2016 r. Gartner powiedział w raporcie, że firmy IT potrzebują nowych funkcji i funkcjonalności, a Java EE nie nadąża. W raporcie zalecono opracowanie strategii zarządzania starzeniem się Java EE. Spodziewają się, że do 2019 r. mniej niż 35% aplikacji biznesowych będzie uruchamianych na serwerach aplikacji Java EE. Odpowiedzią na tę krytykę było to, że Java EE wciąż ewoluuje i rozwija funkcje, które czynią ją szczuplejszą, wykorzystując technologie takie jak MicroProfile, WildFly Swarm i Payara Micro. [10]
Alternatywy
Kilka innych programów zapewnia podobną funkcjonalność, w tym:
- Framework Spring, który ma niezwykle podobną funkcjonalność do tych z Java EE;
- ASP.NET , który może być używany z językami takimi jak C# i Visual Basic.net;
- Framework Akka i Play napisany w Scali może być również używany w Javie;
- Node.js , platforma sterowana zdarzeniami dla silnika JavaScript przeglądarki;
- Vert.X, zestaw narzędzi do tworzenia responsywnych aplikacji na JVM
Notatki
- ^ Przedstawiamy profil internetowy Java EE
- ^ Eclipse Enterprise dla Java — często zadawane pytania
- ^ Przegląd technologii Java Servlet , na oracle.com . Źródło 12 stycznia 2014 .
- ^ Eclipse MicroProfile , na microprofile.io . Źródło 29 sierpnia 2017 .
- ^ WildFly Swarm , na wildfly-swarm.io . Źródło 29 sierpnia 2017 .
- ^ Open Liberty , na openliberty.io . Źródło 20 września 2017 .
- ^ Seria mikroserwisów: MicroProfile i Apache TomEE , na stronie javacodegeeks.com . Źródło 20 września 2017 .
- ^ Payara Micro , na stronie payara.fish . Źródło 20 września 2017 .
- ^ kumuluzEE , na ee.kumuluz.com . Źródło 20 września 2017 .
- ^ Czy raport Gartnera o upadku Java EE jest mocno przesadzony? , na infoq.com . Źródło 29 sierpnia 2017 .
Bibliografia
- ( EN ) Antonio Goncalves, Początek Java EE 7 , Apress, 2013.
- Arun Gupta, Java EE 7 Essentials , O'Reilly, 2013.
Powiązane pozycje
- Aplikacja internetowa
- Java (język programowania)
- JAX-WS
- Serwlet
- Strony JavaServer
- JUnit
- WAR (format pliku)
- Rama internetowa
- Trwałość (IT)
- Baza danych
- Strukturalny język zapytań
- Usługa wiadomości Java
Linki zewnętrzne
- JEE 7: przegląd funkcji ,na html.it. Źródło 29 sierpnia 2017 .
- Java EE 8: Wreszcie punkt zwrotny? , na mokabyte.it . Źródło 29 sierpnia 2017 .
- ( EN ) Oficjalny portal Java EE pod adresem oracle.com .
- ( EN ) Samouczek dla Java EE 7 , pod adresem docs.oracle.com .
- ( EN ) API dla Java EE 7 , pod adresem docs.oracle.com .