2010-05-24 15 views
5

Czy można wdrożyć logikę biznesową na zdalnym serwerze aplikacji przy użyciu obiektów zamiast EJB lub Servlets ???. Główną ideą jest zastosowanie modelu 3 warstw, gdzie klienci mogą być zarówno przeglądarkami internetowymi, jak i aplikacjami komputerowymi i dzielą się logiką biznesową na serwerze aplikacji.Zaimplementuj logikę biznesową na serwerze aplikacji wiosną

będzie to architektura

przeglądarka -----> Serwer WWW --------> | App Server (Business Logic wspólny) | -------> | RDBMS wspólny |
Aplikacja na komputer (Swing na przykład) -> | Serwer aplikacji (wspólna logika biznesowa) | -------> | RDBMS common |

Odpowiedz

5

Możesz użyć sprężyny zamiast EJB. I polecam to!

Jednak obie alternatywy w doskonały sposób poradzą sobie z funkcjami przedsiębiorstwa, takimi jak obsługa transakcji i bezpieczeństwo.

Korzystanie ze sprężyny, czy nie, nadal potrzebujesz kontenera serwletu dla swoich stron internetowych. Kontener Servlet może uruchomić kontener Spring, jeśli poprawnie skonfigurujesz plik web.xml kontenera serwletu.

Transakcja przykładem manipulacji z wiosny:

@Transactional 
public void execute(..) {..} 

I z EJB 3.x:

@TransactionAttribute 
public void execute(..) {..} 

Jak widać, obie alternatywy oferuje dodawanie przedsiębiorstwo dysponuje deklaratywnie.

Updated po przeczytaniu komentarza HenryOS to:

jest to możliwe, aby wszystkie logikę biznesową na jednym serwerze.

Jednym z rozwiązań może być korzystanie z usług sieciowych między klientami (serwerem internetowym i grubymi klientami Swing). To całkiem fajne i luźno powiązane rozwiązanie.

Jeśli potrzebujesz większej szybkości, możesz zamiast tego użyć Google Protocol Buffer lub podobnej technologii.

Ciekawostką jest, że w przypadku usług sieci Web lub bufora protokołów nadal potrzebujesz kontenera internetowego, takiego jak Tomcat lub Jetty na serwerze z logiką biznesową, ponieważ musi on świadczyć usługi sieciowe dla klientów. Wszystkie frameworki usług WWW, takie jak Spring WS, CXF i Apache Axis 2, używają Servlet.

Jeśli chodzi o warstwy, polecam dwie warstwy na serwerze WEB, ponieważ prezentowane i pobierane są tylko dane przed wysłaniem ich do serwera biznesowego. Na serwerze biznesowym polecę trzy warstwy. Najwyższa warstwa do obsługi usług WWW, warstwy biznesowej w środku i warstwy integracyjnej względem bazy danych i innych systemów korporacyjnych na dole.

Wreszcie, jeśli używasz CXF lub Spring WS razem z JAXB, wtedy wszystkie twoje klasy na serwerze biznesowym mogą być zapisane jako POJO! Dotyczy to również kilku dobrze napisanych frameworków usług sieciowych.

Mam nadzieję, że to odpowie na twoje pytanie!

+0

po pierwsze, za twoją odpowiedź ... i rozumiem, co mówisz, ale moje pytanie brzmi, czy możliwe jest posiadanie logiki biznesowej bez serwletów/JSP/EJB .. tj. Tylko pojęcia. Chcę mieć serwlety/JSP (warstwa prezentacji dla przeglądarki internetowej) na serwerze WWW i na innym serwerze (serwer aplikacji) wspólną logikę biznesową (obiekt Sevice, obiekt dostępu do danych i obiekty domeny) do użycia przez klienta aplikacji Pulpit (bezpośrednio) i przeglądarka internetowa (do servlets/jsp) – HenryOS

+0

dziękuję za odpowiedź tak szybko. więc ... aby zakończyć .. jeśli potrzebuję dostarczyć usługę logiki biznesowej do JSP/Serwletów (na serwerach sieci Web) lub do klienta aplikacji, TYLKO SPOSÓB służy do implementacji usług internetowych oznacza serwlety, a zatem kontener WWW na serwerze aplikacji ??? – HenryOS

Powiązane problemy