Wymagania operacyjne mogą określać procesy, które aplikacja ma zrealizować w
zadanym przedziale czasu. Wymagania funkcjonalne mogą obejmować obecność w programie określonego formularza do wprowadzania danych lub
142
Część I
przestrzeganie w aplikacji określonej reguły przetwarzania. Wymagania techniczne to, na przykład, konieczność działania aplikacji pod kontrolą zadanego sieciowego systemu operacyjnego albo komunikowania się za pośrednictwem określonego protokołu. Definicja kluczowych funkcji jest punktem wyjścia w modelowaniu procesów ekonomicznych. Polega ono na sporządzeniu opisu reguł przetwarzania, zasobów i strumieni danych, dzięki którym aplikacja może spełnić stawiane jej podstawowe wymagania.
Projekt
W drugim etapie następuje przekształcenie wyników analizy w projekt. Reguły przetwarzania, stworzone w pierwszym etapie, przekształcane są w logiczne elementy projektu aplikacji i bazy danych. Punkt ciężkości przenosi się z pytania
„ Co aplikacja ma robić?” na „ W jaki sposób ma to realizować”. Na etapie projektu określane są komponenty aplikacji i bazy danych, niezbędne do zaimplementowania modelu reguł przetwarzania, który powstał w fazie analizy. Metody przekształcenia modelu w definicję elementów aplikacji i bazy danych obejmują logiczne modelowanie danych oraz diagramy związków encji (tabela 6.2) (ang.
entity-relationship diagrams). Ostatecznym wynikiem omawianego etapu są oddzielne projekty każdej z warstw aplikacji typu klient-serwer.
Budowa
W fazie budowy aplikacji projekt logiczny przekształcany jest w obiekty fizyczne.
Oznacza to, że elementy logicznego projektu bazy danych zamienione zostają na rzeczywiste obiekty bazy danych. Projekt aplikacji, sporządzony w poprzedniej fazie, zamieni się w formularze, kod i inne obiekty programowe.
Ostatnie dwa spośród pięciu etapów - testowanie i instalacja - rozpoczynają się już po powstaniu aplikacji, dlatego też nie będą tutaj szczegółowo omawiane. Często zdarza się, że ich wynikiem jest i tak powrót do jednego z pierwszych trzech etapów (z uwagi na wykryte błędy lub życzenia, zgłaszane przez użytkowników).
Trudności przy tworzeniu aplikacji w modelu klient/serwer
Proces tworzenia aplikacji do obsługi baz danych typu klient-serwer nie jest ani skomplikowany ani sprzeczny z intuicją. Metody tworzenia wszelkich aplikacji są zbliżone - nie jest istotne, czy dana aplikacja obsługuje bazę danych. Stwierdzenie takie może się wydawać pewnym uproszczeniem, jest jednak zdaniem autora najlepszym punktem wyjścia w projektowaniu aplikacji do obsługi baz danych typu klient-serwer.
Trudności, które pojawiają się przy próbie zastosowania typowych metod w
projektowaniu aplikacji typu klient-serwer, wynikają z
faktu, iż nawet
Projektowanie baz danych w modelu klient/serwer
143
najprostsza aplikacja tego typu składa się z dwóch oddzielnych elementów: części wykonywanej na serwerze i części klienta. Co więcej, obiekty, które tworzone są na serwerze bazy danych, stanowią fundament całej aplikacji. Jest zatem wskazane
- jeśli nie konieczne - aby obiekty te istniały jeszcze przed stworzeniem właściwej aplikacji. Aplikacja nie będzie działać poprawnie, jeśli w
bazie danych
występować będą błędy. Z tą dwoistą naturą aplikacji wiąże się podwojenie nakładu pracy, wymaganego do jej stworzenia. Procesy analizy, projektu i budowy muszą zostać przeprowadzone zarówno w odniesieniu do aplikacji, jak i do bazy danych. Poza problemami, występującymi przy opracowywaniu części realizowanej na serwerze i części klienta, niebagatelne znaczenie ma komunikacja między klientem a serwerem. Czasami nawiązanie takiej komunikacji jest samo w sobie poważnym i
trudnym zadaniem. Uwzględnienie oprogramowania
pośredniczącego ( middleware) dodatkowo komplikuje sytuację.
Nie można w prosty sposób uniknąć problemów, wynikających ze złożoności aplikacji typu klient-serwer. Narzędzia CASE bywają pomocne, nie wyeliminują jednak udziału programistów i projektantów aplikacji. Aplikacje typu klient-serwer są złożonymi, wielowarstwowymi programami; nie ulega wątpliwości, że tworzenie ich wymaga pewnej dozy doświadczenia. Autor ma nadzieję, że niniejsza książka pozwoli czytelnikom nabyć umiejętności przydatne w rozwiązywaniu problemów, występujących w projektowaniu i tworzeniu aplikacji klient-serwer.
Ten i następny rozdział zawierają omówienie pięciu faz tworzenia aplikacji typu klient-serwer. Szczególny nacisk położono na zagadnienia praktyczne. Niniejszy rozdział omawia fazy analizy, projektu i budowy w odniesieniu do baz danych.
W rozdziale 7, „Projektowanie aplikacji w modelu klient-serwer”, przedstawiono powyższe etapy w odniesieniu do tworzenia aplikacji. Ponadto rozdział 7 omawia testowanie i instalację aplikacji do obsługi baz danych.
Faza testowania omawiana jest z konieczności jednocześnie w odniesieniu do baz danych i aplikacji. Trudno byłoby przetestować bazę danych bez aplikacji, która na niej operuje. Z drugiej strony, nie da się przetestować aplikacji bez wymaganych przez nią obiektów bazy danych.
Również fazy instalacji baz danych i aplikacji omawiane są równolegle. Baza danych i
aplikacja stanowią zazwyczaj nierozłączny zestaw i
są razem
instalowane. Dlatego duże znaczenie mają zagadnienia, związane z jednoczesną instalacją bazy danych i programu. Po zakończeniu fazy budowy, istnieją już fizyczne obiekty bazy danych i aplikacji, naturalną konsekwencją jest zatem ich jednoczesna instalacja.
144
Część I
Dwoista natura aplikacji typu klient-serwer