Aplikacja trójwarstwowa

0

Witam,

Mam zagwozdkę dotyczącą realizacji projektu klient-serwer-baza danych. Klient jest napisany w JSE (GUI: Swing) i zawiera różne formularze do wypełniania, tabele do wyświetlania zawartości bazy, możliwość modyfikacji tej zawartości, etc. Hibernate zapewniałby komunikację między serwerem a bazą. Nie wiem natomiast, przy pomocy czego zrealizować komunikację pomiędzy klientem a serwerem, którego de facto jeszcze nie mam.

  • Pierwszym pomysłem jest napisanie apki serwera w JSE i wykorzystanie protokołu RMI do zdalnego wywoływania metod serwera przez klienta.
  • Drugim pomysłem jest napisanie apki serwera w JEE, wykorzystując EJB + np. JBoss.

Problem w tym, że na temat drugiego rozwiązania pojęcia nie ma, gdyż nigdy wcześniej nie miałem do czynienia z JEE, EJB, JBoss. W tym momencie rodzą się moje pytania:

  1. Który z ww. rozwiązań jest rozsądniejsze?
  2. Czy w przypadku 1 pomysłu, muszę wykorzystać serwer WWW? Wyczytałem, że jest wykorzystywany do dynamicznie dostarczanych klas. Co w przypadku, jeżeli przewidziałbym wszystkie potrzebne klasy i umieścił je lokalnie? Nie jestem pewien czy czasami czegoś nie przekręciłem.
  3. Który pomysł generuje mniej roboty dla mnie?
  4. Co z takimi aspektami jak chociażby wielowątkowość (zgłaszanie się do serwera wielu klientów + dostępu do bazy przez wielu klientów jednocześnie)/bezpieczeństwo? Czy w przypadku drugiego pomysły, muszę samodzielnie o to zadbać?
  5. Tutaj bardziej prośba niż pytanie. Czy jest ktoś w stanie przedstawić mi na przykładzie implementacje klienta i serwera dla drugiego pomysłu? Sposób nawiązania połączenia, sposób wywołania jakieś zdalnej metody z przekazaniem jej parametrów od klienta do serwera, etc?

Pozdrawiam

0

Czy dobrze zrozumiałem że Twój Hibernate siedzi w Aplikacji Okienkowej czyli w Froncie ? Osobiście zrobiłbym to tak:

  • Cała logika wychodzi do czegoś za zewnątrz - czyli np: springowej aplikacji która siedzi sobie na serwerze, żeby być "trendi" komunikujesz się z nią po REST'owym API. Dane z formularza lecą bezpośrednio do aplikacji - ale oczywiście, najpierw się uwierzytelniasz, możesz sobie generować jakiś token. To API, możesz rozdzielić dalej - na taki total back-end, czyli DAO które zapisuje do bazy i jakiś serwis który udostępniasz, żeby to API które może się komunikować z aplikacją w SWING, mogło z niego korzystać.
0
niezdecydowany napisał(a):

Czy dobrze zrozumiałem że Twój Hibernate siedzi w Aplikacji Okienkowej czyli w Froncie ?

Nie nie, Hibernate siedziałby w aplikacji serwerowej wraz z całą logiką biznesową. Przynajmniej takie założenie miałem.

0

To masz dobre założenie :D Więc już wiesz jak napisać taką aplikację :D powodzenia.

1 użytkowników online, w tym zalogowanych: 0, gości: 1