Stateless czy Stateful?

0

Witam, mam za zadanie zrobić strone internetowa z wykjorzystaneim JSP i EJB 3.0 - cos ala ankieta - studenci maja swoje konta, loguja sie na swoje haslo i kazdy wypelnia ankiete dot. wykladowcow. Pytanei - co lepiej uzyc - Stateless czy Stateful? Pozdrawiam

0

Stateless. Stateful nie ma tu sensownego zastosowania.

0

Właśnie to chcialem uslyszec - dzieki Koziołek! Wesołych Swiat!

0

Czesc, wyszukalem ten temat poprzez Google. Powiedzmy, że chcę stworzyć serwis pocztowy cos ale Onet. Lepiej użyć Stateless czy Statefull ?

0

@synGoogle, a do czego dokładnie. Generalnie Stateful są wykorzystywane jeżeli chcesz przenosić dane pomiędzy żądaniami do kontenera EJB (nie mylić z webowym).

0

Zostaw te słabe EJB wybierz Spring

0

Hmmm, do zwykłego konta mail. A moze lepsze MDB ?

0

@synGoogle, MDB i generalnie JMS to trochę inny rodzaj wiadomości.

Swoją drogą EJB na serwer poczty to trochę duży kaliber nawet biorąc pod uwagę, że chcesz przyjąć duży ruch.

0

Tak, strzelam z aramety do muchy ;p

... co nie zmienia faktu, że chciałbym wiedzieć nawet z czystej ciekawości :)

0

Moim zdaniem nie ma co używać takiej technologi jak EJB jeśli się nie planuje dostępu do logiki biznesowej z innego miejsca niż servlety... Bo jest to wtedy niepotrzebny narzut pracy w stosunku do tego co się chce osiągnąć ;]

0

Okej ..

To inny przykład.

Przelew.

Odjęcie z jednego konta i dodanie do drugiego konta. Zakładamy, że cała operacja jest wykonywana w jednym banku. Nie wchodzimy w tematykę transakcji.

Stanowe, bezstanowe ?

Uważam, że stanowe, bo glupie by to bylo gdyby jakiś inny pobek otrzymał moją istancje EJB ;>

0

Raczej bezstanowe, a nikt inny nie moze takiej instancji otrzymac - kazde wstrzykniecie stanowego EJB daje nowa instancje, wiec nie martw sie ze ktos dostanie ta sama. Trudno tez mowic o przelewach bankowych wylaczajac transakcje.
Zasada jest taka - potrzebujesz miedzy wywolaniami roznych metod przechowywac stan? Nie, to bezstanowe; tak? stanowe. Np. implementacja koszyka w sklepie internetowym zaimplementowana za pomoca stanowych EJB.

0

Dzięki :)

To pozwoliłbym sobie jeszcze "Cię pociągnąc za język". Podaj 2-3 przykłady dobrego wykorzystania MDB :)

0

Masz sklep internetowy ktory odbiera miliony zamowien na minute, powiedzmy jestesm wlascicielem Amazon. Masz tez swoje API, ktore udostepniasz kontrahentom - jakims malym sklepikom ktore u Ciebie moga zamawiac, i sprzedaja po nieco wyzszej cenie (maja marze). Teraz, to Twoje API laczy sie z Twoja baza i zapisuje dane o kontrahencie, zamowieniu itp, co troche trwa, a przy milionach takich zamowien na minute moze trwac dosc dlugo - np pula polaczen do bazy moze byc wyczerpana, albo jakis inny limit. Ty chcesz zeby wywolanie metody zamowienia przez kontrahentow bylo zalatwiane w 1-2-3, aby nie musieli czekac - wtedy oni beda zadowoleni ob wszystko jest szybko, a Ty jestes zadowolony bo zamiast czekac moga wyslac kolejne zamowienia, nie blakuja innych itp itd.
Zatem, mozesz stworzyc servis ktory bedzie dodawac zamowienia od kontrahentow na kolejke, i wracac, bez czekania na zapis do bazy. Kolejka sie powieksza, a wiadomosci (zamowienia) z niej zbieraja MDB. Te MDB umieja zapisac dane o zamowieniu do bazy, powiadomic np usluge pocztowa o tym ze maja wyslac na taki i taki adres takie i takie dobra, sciaga kase z paypal czy cos. Wszystko zawarte w transakcji JTA, czyli jesli np zapis do bazy sie nie powiedzie, caly proces sie nie powiedzie. Na samym koncu wysylany jest np mail do kontrahenta ze jego zamowienie sie powiodlo / nie powiodlo. Caly proces moze trwac kupe czasu, ale samo wywolanie tego procesu przez kontrahenta trwa chwilke, tyle co dodanie msg do kolejki.
Jednym slowem - jesli zalezy Ci na asynchronicznym przetwarzaniu jakichs danych, do MDB maja sens.

To na szybko, mozna wymyslac wiecej, ale mam nadzieje ze pomoglem tym jednym przykladem?

0

Tak, oczywiście pomogłęś dzięki. Hmm.. tak się zastanawiam nad ograniczeniami teraz dla MDB przy sterowaniu transakcją. Wiem,że można dobrze to robić poprzez przekazanie beanowi moce nad koncem i poczatkiem transakcji. A na ile mam pewność, że taką sytuacji w miarę dobrze będzie ograniał kontener ? Jeśli można by to było sprawdzić to wtedy wybór serwera (glass, Jboos, openejb) bylby łatwym zadaniem. Zapewne czas obdsługi można jakoś zmierzyć, ale jak wyłpać błedy. Musimy mieć pewność, że przy tylu transakacjach nie popełni nam jakiś błędów ;>

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