Symulator zdarzeń dyskretnych

0

Cześć!
Jestem laikiem w programowaniu, a mam do zrobienia projekt z Javy - napisz symulator zdarzeń dyskretnych.
Znalazłem w sieci coś takiego: http://www.cs.northwestern.edu/~agupta/_projects/networking/QueueSimulation/mm1.html
To działa, ale generalnie mam problemy ze zrozumieniem kodu i niezbyt wiem jak zrobić z tego symulator bankomatu.
Podejrzewam, że potrzeba zrobić bazę danych z numerami kont i saldami, potem generować ruch tak, żeby każdy klient wykonywał dozwoloną dla niego operację.
Czym zrobić bazę danych? Hashmapa to chyba średni pomysł? Macie jakieś pomysły?

0

możesz albo odpalić np. MySQL na kompie, albo odpalić jakąś na zewnętrznym serwerze.

1

Hashmapa jako baza danych to bardzo dobry pomysł - oszczędzasz sobie dużo kłopotów.
(w ramach autoreklamy: )
ale IMO to nie ma nic wspólnego z twoim problemem -
W ramach jakiego przedmiotu to jest? bo chyba raczej nie masz robić symulacji bankomatu...? i pewnie nie musi to mieć perzystencji....

0

Mam wrażenie że baza (No)SQL to jakiś przerost formy tutaj.
Dane, jeśli już musisz w czymś trzymać (a nie w kodzie) to mogą siedzieć w JSON / CSV, tak żeby to można było łatwo dostosować do różnych eksperymentów.

0

Języki programowania obiektowego. Mam zrobić symulator zdarzeń dyskretnych jako projekt.

1

To pytanie: czy masz napisać symulację opartą o symulator zdarzeń dyskretnych... czy może sam symulator (generyczny)?

0
jarekr000000 napisał(a):

Hashmapa jako baza danych to bardzo dobry pomysł - oszczędzasz sobie dużo kłopotów.
(w ramach autoreklamy: )
ale IMO to nie ma nic wspólnego z twoim problemem -
W ramach jakiego przedmiotu to jest? bo chyba raczej nie masz robić symulacji bankomatu...? i pewnie nie musi to mieć perzystencji....

obejrzalem i wyglada to imponujaco (porownanie performance), ale czy takie rozwiazania stosuje sie produkcyjnie czy uzywaja tego ludzie w piwnicach?

0

Zależy od potrzeb - czy to duże bazy, czy potrzeba możliwości podpięcia wielu użytkowników, czy potrzebujesz rozproszenia, czy potrzebujesz jakiejś transakcyjności ... Dla gry na andka pewnie było by to spoko.

1

Uwaga TOTALNY OFF TOPIC -(odpowiedź na pytanie @filemonczyk):

airomem - tylko w piwnicach :-)
Prevayler (na którym się to opiera) - czasem spotykam na konfach ludzi, którzy twierdzą, że używali/używają nawet w polsce - ale ciężko znaleźć w sieci konkrety (choć o projekcie jest w cholerę, ma całkiem sporo forków i alternatywnych implementacji -typu np. P8).

Jest trochę firm, które podobne rozwiązania stosują (all in RAM). (z tym najbardziej chyba znane : https://martinfowler.com/articles/lmax.html).

A po prawdzie uogólnione podejście architektoniczne (czyli Event Sourcing (to akurat nie u LMAX) ) ma też swoja enterprise edition w postaci akka-persistence ( i teraz po nowemu dla javy --> Lagom). (Zresztą w pracy promuje tego ostatniego, ale jeszcze sporo czasu będzie stracone na IBM Wesbphere/Oracle zanim ten Lagom u nas ruszy produkcyjnie (tak myślę) ).

BTW. mówię o performance, bo to robi wrażenie i się dobrze sprzedaje... Po prawdzie dla mnie najważniejsze jest uproszczenie kodu, architektury i testów. No i przy okazji rozwiązanie - jest całkiem safe - w event sourcingu zawsze możesz sobie podpiąć baze danych (a nawet kilka) - jak się okażą przydatne (nie do perzystencji oczywiście, bo do tego akurat bazy danych się nie nadają :-) -zobacz prezentacje Greg Young "Polyglot Data").

0

NIe no, niewielką bazę, z której będę generował ruch (użytkowników, którzy wypłacają pieniądze w zakresie do salda, lub, gdy przekroczony to ponownie z mniejszą kwotą). Powiedzmy baza na 1000 numerów kont z saldami + generowanie 100 użytkowników wypłacających pieniądze

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