Napisz oprogramowanie

Fermé Publié le il y a 6 ans Paiement à la livraison
Fermé Paiement à la livraison

W zadaniu tym trzeba będzie utworzyć serwis systemu rezerwacji i sprzedaży biletów do kina.

Podstawowe zadania systemu to:

rezerwacja miejsc w kinie

sprzedaż biletów na zarezerwowane i niezarezerwowane miejsca

odnotowanie, które miejsca już zostały sprzedane, a które zarezerwowane

System składa się z dwóch typów komponentów będących serwisami RMI: pojedynczego systemu współbieżnej obsługi klientów (CinemaInterface) i wielu modułów, do których przekazywane są informacje o zarezerwowanych czy sprzedanych miejscach na dany seans (TicketsInterface).

Stworzenie modułów do umieszczania w nich stanu rezerwacji/zakupu miejsc jest moim zadaniem. Moduły będą dostępne za pośrednictwem RMI, a Państwo poznacie ich adresy URL od użytkowników, którzy chcąc zarezerwować miejsce/kupić bilet, będą podawać adres odpowiedniego modułu. Adres URL takiego modułu można wyobrażać sobie jako jednoznaczny/unikalny identyfikator konkretnego seansu w konkretnym kinie. Ponieważ adres (ciąg znaków) będzie unikalny - można go będzie używać jako klucza.

Państwa zadanie, to stworzenie programu, który będzie:

Przyjmował i realizował zlecenia od użytkowników.

Współbieżnie realizował zlecenia, które się na siebie nie nakładają (dotyczące dwóch różnych seansów, czyli mające różne adresy URL lub dotyczące różnych miejsc siedzących na ten sam seans).

Każde pojedyncze zlecenie obsługiwał na zasadzie wszystko-albo-nic. Niedopuszczalne jest wykonanie części zlecenia.

Odnotowywał w zdalnym module RMI, który reprezentuje dany seans, podjęte decyzje. Jeśli miejsca sprzedano lub zarezerwowano, to z chwilą zakończenia obsługi danego klienta, stosowne operacje muszą już być wykonane w tym module RMI, którego URL przekazano w zleceniu.

Rozwiązywał konflikty pomiędzy zleceniami (nawet jeśli pojawiają się w tym samym czasie): I tak.

Jeśli pojawią się zlecenia rezerwacji wyłącznie niezarezerwowanych i niesprzedanych miejsc, to rezerwujemy je akceptując zlecenia dowolnego/dowolnych użytkowników, a zlecenia pozostałych odrzucając.

Jeśli o zakup biletu ubiega się osoba, która miejsce zarezerwowała i taka, która rezerwacji nie wykonała, to bilety sprzedajemy temu, kto ma rezerwację.

Na jedno miejsc można sprzedać co najwyżej jeden bilet i przyznać jedną rezerwację.

System musi rezerwować i sprzedawać bilety - niedopuszczalna jest sytuacja, gdy rozwiązaniem konfliktu jest odmowa wykonania wszystkich zleceń (oczywiście, zakładając, że zlecenia są możliwe do realizacji: np. gdy klient A chce zarezerwować miejsca 0 i 1, klient B miejsce 1 i 2, a klient C miejsce 2 i 3, możliwym rozwiązaniem jest wykonanie zlecenia klientóws A i C lub tylko klienta B - niedopuszczalne jest omówienie realizacji zleceń wszystkich trzech klientów).

Wszystkie te prace Państwa oprogramowanie ma poprawnie realizować pomimo wpółbieżnego zgłaszania zleceń przez wielu klientów.

Uwagi:

Metody moich serwisów, z Państwa punktu widzenia, są przeznaczone wyłącznie do zapisu. Są "settery", ale do pary nie zostały w interfejsie TicketsInterface umieszczone "gettery". Ponadto, brak jest metod odwołujących wykonaną operację. Oznacza to, że do moich serwisów muszą trafić wyłącznie te informacje, które związane są ze zleceniami, które Państwa serwis rozpatrzył pozytywnie.

Wielokrotne wywołanie metod z interfejsu TicketsInterface dla tego samego numeru miejsca dla tego samego serwisu uznane zostanie za błąd.

Kolejność rezerwowanych/wykupowanych miejsc może być dowolna. W szczególności przekazywane przez klientów listy numerów siedzeń mogą mieć dowolną kolejność.

Więcej informacji na priv.

Java

Nº du projet : #14049109

À propos du projet

2 propositions Projet à distance Actif il y a 6 ans

2 freelances font une offre moyenne de 2733 zł pour ce travail

patrykrusin

Dzień dobry, Jesteśmy otwarci na współpracę, jeśli byli by Państwo zainteresowani, proszę o kontakt. Pozdrawiam serdecznie, Patryk Rusin.

zł5000 PLN en 25 jours
(0 Commentaires)
0.0