Pokazywanie postów oznaczonych etykietą rmi. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą rmi. Pokaż wszystkie posty

środa, 25 sierpnia 2010

Wrażenia po lekturze książki "Head First Design Patterns. Edycja polska"

Trzymając w ręku "Head First Design Patterns. Edycja polska" można odnieść wrażenie, że czeka nas ciężka przeprawa przez ponad 600 stron pełnych wiedzy.
Myślę, że każdy kto miał styczność
z omawianą pozycją może się ze mną zgodzić, że w rzeczywistości książkę czyta się szybko i co najważniejsze
z przyjemnością. Wykorzystane przez autorów metody nauczania faktycznie przyśpieszają proces poznawania wzorców projektowych.

Niestety minus należy się dla wydawnictwa za znaczną ilość popełnionych błędów przy tworzeniu edycji polskiej. Całe szczęście, że błędy nie są na tyle poważne aby wpłynąć negatywnie na wartość merytoryczną podręcznika.

Miły dodatek z pewnością stanowi wstęp do Java RMI (moim zdaniem bardzo dobry) zawarty w rozdziale 11 przy okazji omawiania wzorca Proxy. Szkoda, że nie miałem go pod ręką gdy sam poznawałem RMI.

Wracając jeszcze do wspomnianych metod nauczania, zastosowanie powtórzeń wiadomości budzi we mnie mieszane uczucia - przedstawienie tej samej informacji na różne sposoby niekiedy może być przydatne ale w przypadku omawianych wzorców wywoływało
u mnie chęć przeskoczenia kilka stron dalej. Czyżby forma przekazywania wiedzy towarzysząca podręcznikowi była tak skuteczna, że powtórzenia informacji nawet w dobrej wierze stały się zbędne?

Zwieńczenie dzieła stanowi rozdział 13 pt. "Wzorce projektowe
w praktyce: Nowe życie z wzorcami"
gdzie autorzy m.in. zwracają uwagę na skłonność początkujących programistów do nadmiernego wykorzystywania wzorców oraz wskazują słuszną drogę dalszego rozwoju.

Dla mnie podręcznik okazał się bardzo przydatny, wszystkim zainteresowanym poznaniem wzorców projektowych mogę polecić "Head First Design Patterns" z czystym sumieniem.

poniedziałek, 24 maja 2010

Laboratorium z Remote Method Invocation

Tematem ostatnich zajęć laboratoryjnych realizowanych w ramach przedmiotu "Programowanie współbieżne i rozproszone" był pakiet Remote Method Invocation, w skrócie RMI. Wykonane ćwiczenie miało na celu, jak czytamy w instrukcji, "zapoznanie z modelem tworzenia aplikacji rozproszonych (...)", a główny nacisk położono na "naukę abstrakcyjnego projektowania usług rozproszonych".

Czasu na wykonanie zadania było dość sporo, ale do pracy postanowiłem zabrać się na tydzień przed ostatecznym terminem oddania projektu. "Bankomat w RMI" - tak brzmiał temat ćwiczenia, który w moim odczuciu nie najlepiej oddawał charakter realizowanego zadania, aczkolwiek przyznam, że dobrze prezentował główne założenia projektu.

Pracę podzieliłem na trzy etapy:
- implementację zdalnego obiektu realizującego zadeklarowane
w interfejsie metody;
- przygotowanie aplikacji służącej do zakładania nowych kont oraz wyświetlania o nich przydatnych informacji;
- przygotowanie aplikacji klienckiej umożliwiającej zalogowanie się na konto w celu wykonania operacji wpłaty/wypłaty środków.

Moim celem podczas realizacji zadania nie było zapewnienie systemowi pełnej funkcjonalności, a jedynie zademonstrowanie umiejętności sprawnego wykorzystania RMI w praktyce.

Poniżej znajduje się opis poszczególnych części zrealizowanego projektu:

1. Program serwera

Jedyna kwestia na jaką chciałbym zwrócić uwagę w odniesieniu do zdalnego obiektu dotyczy udostępnianych metod. Program serwera zarządza kontami, stąd każda metoda powinna weryfikować uprawnienia użytkownika do wykonania danej czynności. Zarówno właściciel konta jak i osoba korzystająca z aplikacji umożliwiającej wgląd we wszystkie konta oraz tworzenie nowych, są poddawani uwierzytelnianiu oraz autoryzacji.

2. Aplikacja RMI-Konta

Poza tworzeniem nowych kont aplikacja umożliwia wyświetlenie przydatnych (zwłaszcza podczas prezentacji wykonanej pracy na laboratorium :) informacji w trzech stopniach szczegółowości :
- identyfikatory wraz z imieniem oraz nazwiskiem właściciela konta;
- identyfikatory wraz ze stanem konta;
- identyfikatory wraz z imieniem i nazwiskiem właściciela konta,
jego stan oraz lista wszystkich wykonanych operacji.



3. Aplikacja kliencka

Klient po zalogowaniu otrzymuje informację dotyczącą stanu swojego konta, dodatkowo zostaje poinformowany o maksymalnie pięciu ostatnio wykonanych operacjach na koncie. Po przyznaniu dostępu do konta, klient uzyskuje możliwość dokonania wpłaty lub wypłaty środków.



Jak się dowiedziałem podczas prezentacji projektu, aby otrzymać za wykonaną pracę zadowalającą mnie ocenę, powinienem zaimplementować dodatkową funkcjonalność, mianowicie umożliwić klientowi przelanie środków na inne konto. Biorąc pod uwagę fakt,
iż zadanie to nie stanowi jakiegokolwiek wyzwania, już dziś mogę cieszyć się zaliczeniem przedmiotu na ocenę bardzo dobrą :)