Jesteśmy w trakcie opracowywania aplikacji opartej na JavaEE 6 do wdrożenia w JBoss EAP 6.1. Ta aplikacja ma 2 podstawowe mechanizmy prezentacji: konsolę administratora WWW i interfejs API usługi RESTful. W zapleczu zarówno konsola administracyjna, jak i interfejs API usługi RESTful opierają się na serii EJB do wykonywania logiki transakcyjnej i usług POJO do pobierania danych.Pojedyncze EAR? Lub wiele EAR?
Jest całkowicie możliwe, że wydajność i potrzeby zasobów dla wszystkich tych różnych warstw mogą być różne. Usługi RESTful są raczej cienkie i całkowicie bezpaństwowe, podczas gdy konsola administracyjna jest stanowa i ma bardziej interaktywną funkcjonalność (a zatem wymaga więcej pamięci i przetwarzania). Ponieważ nasze komponenty EJB wykonują naszą główną transakcyjną logikę biznesową, wymagają większej mocy obliczeniowej niż nasze usługi danych POJO, które po prostu wysyłają zapytanie do bazy danych.
Biorąc pod uwagę taką konfigurację, czy bardziej sensownym rozwiązaniem byłoby wdrożenie pojedynczego pliku EAR (w wielu aplikacjach w konfiguracji klastrowej) ze wszystkimi tymi komponentami, czy też rozbicie poszczególnych składników na osobne pliki EAR? Mój sposób myślenia z oddzielnymi plikami EAR polega na tym, że mogę na przykład wdrożyć więcej instancji usług EJB, jeśli stwierdzę, że są z nimi problemy skalowalności, nawet jeśli konsola internetowa (na przykład) skaluje się dobrze.
Biorąc pod uwagę, że skalowalność każdej warstwy/komponentu jest różna, jakie podejście należy zastosować? Czy obciążenie związane z koniecznością wykonywania zdalnych wywołań EJB przez EAR jest zbyt wysokie, aby uwzględnić taki model? Każda rada jest WSPANIAŁA doceniona!
Znakomita rada! Dzięki za ten poziom szczegółowości. Dokładnie tego rodzaju informacji potrzebowałem. – Shadowman