/ / Gdzie umieścić logikę biznesową w aplikacjach korporacyjnych Java EE - java-ee, ejb, ejb-3.0, java-ee-6, business-logic

Gdzie umieścić logikę biznesową w aplikacji korporacyjnej Java EE - java-ee, ejb, ejb-3.0, java-ee-6, business-logic

Podczas tworzenia aplikacji Java EE dla przedsiębiorstwczęść logiki biznesowej, takiej jak komunikatory (MDB), musi być umieszczona w module EJB. Istnieje jednak kilka EJB, które można umieścić w module EJB lub module web. Wiem, że moduły oddzielające umożliwiają wdrożenie warstwy sieci i warstwy biznesowej na różnych komputerach. Tak więc chciałbym umieścić moje @Stateful koszyk EJB w module web. Jednak nie mogę wymyślić standardowych kryteriów, które można zastosować do każdej logiki biznesowej, decydując, gdzie umieścić EJB je zamykając. Czy jest w tym wytyczna, standardowa lub zalecana praktyka?

Odpowiedzi:

1 dla odpowiedzi № 1

Właśnie to odkryłem do tej pory.

Moduł EJB ma obejmować rdzeńlogika biznesowa dla dużej aplikacji korporacyjnej. Z drugiej strony moduł internetowy zamyka pełnowartościową aplikację internetową, która ma wykorzystywać silnik biznesowy dostarczany przez moduł EJB. Zwykle moduły te są rozprowadzane między różnymi serwerami dla większych aplikacji, a istnieją aplikacje klienckie (na przykład aplikacja komputerowa Swing / JFX) inne niż aplikacja internetowa, które wymagają korzystania z usług dostarczanych przez główną logikę biznesową, która znajduje się w modułach EJB.

Innymi słowy, logikę biznesową można umieścić w oddzielnym module EJB, jeśli:

  1. Jest przeznaczony do użycia przez wiele aplikacji internetowych lub stacjonarnych, lub
  2. Skalowanie może zmusić główną logikę biznesową do obsługi przez oddzielne serwery

W innych przypadkach można umieścić jego EJB wewnątrz modułu webowego i spakować całość jako plik WAR.


1 dla odpowiedzi nr 2

Jak napisałeś w swoim ostatnim zdaniu, dokładnie to właśnie zaproponowałem: Użyj opakowania WAR dla aplikacji JEE6, ponieważ nie potrzebujesz EAR dla większości przypadków.

Jeśli chcesz podzielić się logiką biznesową pomiędzykilka aplikacji, możesz wdrożyć to jako osobny moduł. Zwykle jednak coś takiego nie jest konieczne do skalowania przyczyn, ponieważ równie dobrze można zwymiarować serwer aplikacji z uruchomioną wojną.