Kuchnia architektury klient/serwer C/S CASE

CORE - koncepcja środowiska realizacji projektów klient/serwer firmy LBMS

Jednym z niedawnych pionierów, a aktualnych liderów na światowym rynku środowisk C/S CASE jest firma Learmonth & Burchett Management Systems - międzynarodowa organizacja z siedzibą w Houston w USA. Systems Engineer - pakiet CASE tej firmy - jest od roku 1993 konsekwetnie rozwijany w kierunku skutecznego wspomagania budowy poważnych aplikacji klient/serwer. Sukces na trudnym rynku narzędzi dla architektury klient/serwer zawdzięcza LBMS m.in. konsekwentnej realizacji strategii "best-in-class", polegającej na ścisłej integracji narzędzi do modelowania tworzących pakiet Systems Engineer z najlepszymi narzędziami konstrukcyjnymi dostępnymi na rynku ( Visual Basic, PowerBuilder, SQL Windows) oraz najpoważniejszymi systemami zarządzania bazami danych (m.in. Oracle, Informix, Sybase, MS SQL Server). Integracja ta dokonywana jest poprzez generatory, narzędzia do inżynierii odwrotnej (reversery) i - przede wszystkim - wspólne, wielodostępne repozytorium, bazę danych przechowującą wszelkie specyfikacje i komponenty aplikacji.

Dziś, gdy Systems Engineer w wersji 6.0 jest już produktem dojrzałym i skutecznie spełniającym swe funkcje w wielu organizacjach, LBMS wychodzi z nową inicjatywą. Inicjatywą tą, nazwaną CORE (Common Object Repository Environment), jest dostarczenie organizacjom podejmującym wysiłek realizacji rozproszonych systemów biznesowych bogatego środowiska realizacji projektów zbudowanego wokół wielodostępnego, otwartego i inteligentnego repozytorium obiektów. Obiekty te, to modele analityczne, projekty baz danych, obiekty aplikacji, plany i historie realizacji projektów, opracowania strategii biznesowej itp. Tego rodzaju repozytoria istniały dotychczas przede wszystkim na systemach klasy mainframe oraz mini (np. środowisko Cohesion opracowane przez firmę DEC na platformę VAX/VMS). Były jednak albo repozytoriami pasywnymi, niewrażliwymi na klasę zawartych w nich obiektów, albo ukierunkowanymi na przechowywanie specyficznych produktów wytworzonych przez edytory konkretnego pakietu CASE (diagramy, definicje tablic itp.)

CORE jest repozytorium aktywnym (pozwala uprawnionym użytkownikom na modyfikację i kreowanie obiektów za pomocą odpowiadających tym obiektom narzędzi), otwartym (umożliwia integrację pomiędzy narzędziami od różnych producentów na poziomie obiektów) oraz realizującym typowe usługi pomocne przy zarządzaniu projektem (kontrola wersji, konfiguracji, generowanie raportów i kontrola integralności aplikacji). CORE to możliwość współdzielenia przez różne grupy współtworzące system informatyczny obiektów stworzonych przy użyciu narzędzi CASE, baz danych, języków 4GL, procesorów tekstu, narzędzi do zarządzania projektami i innych.

Koncepcja CORE ściśle wiąże się też z zarządzaniem procesem wytwórczym. Dzięki CORE, organizacje mają możliwość skorzystania z biblioteki standardowych procesów (cykli projektowych), dostosowując je, jeśli zajdzie potrzeba, do konkretnego projektu lub do zmieniającej się nieustannie technologii. Formalnie zdefiniowany proces wytwórczy oprogramowania, często ma tendencję do swoistej "erozji", w miarę dojrzewania poglądów zespołów projektowych na to co jest elementem projakościowym i prowydajnościowym procesu oraz w miarę wchłaniania przez organizację kolejnych nowych rozwiązań w zakresie technologii produkcji oprogramowania. W ten sposób stosowane faktycznie standardy zaczynają stopniowo odbiegać od ich udokumentowanej wersji. Rozwiązania obecne w ramach CORE pozwalają na systematyczną optymalizację procesu i proste upowszechnianie jego aktualnych standardów w taki sposób, aby proces wytwórczy był zawsze na bieżąco udokumentowany, i stanowiąc jednocześnie instytucjonalizację najlepszych praktyk.Wykorzystując CORE, przedsiębiorstwa mogą wybrać proces najlepiej dopasowany do projektu.

Wspólne repozytorium obiektów jest ważnym czynnikiem wspomagającym spiralne tworzenie aplikacji i projektowania systemów klient/serwer. Na spiralne tworzenie systemów składa się m.in. identyfikacja i archiwizowanie produktów kolejnych iteracji nadających się do upowszechniania poza zakresem danego projektu. Takie biblioteki obiektów mogą też być rozmyślnie budowane od podstaw lub kupione jako gotowe komponenty.

Prawdziwym problemem pojawiającym się przy tworzeniu dużych, skomplikowanych systemów klient/serwer jest nie brak narzędzi, tylko konieczność zarządzania powstającymi produktami (obiektami) i zarządzania samym procesem wytwórczym. CORE rozwiązuje ten problem dając jednocześnie dużą dowolność w wyborze narzędzi wykorzystywanych do konstruowania i modyfikacji obiektów.

Kontrolowane prototypowanie

Prototypowanie bywa czasem pojmowane jako konstruowanie systemu metodą "kolejnych przybliżeń", z pominięciem specyfikacji. Nie taka jest jednak jego rola w podejściu Rapid Delivery Environment. Traktowanie specyfikacji i innych pośrednich produktów procesu wytwórczego oprogramowania jako kuli u nogi, balastu którego należy się pozbyć może łatwo doprowadzić do urzeczywistnienia się klasycznych zagrożeń projektu informatycznego wykorzystującego podejście iteracyjne i prototypowanie.

Każdy projekt - a szczególnie projekt iteracyjny - musi mieć zdefiniowany zakres. Określa on cel projektu, podstawowe własności funkcjonalne i strukturę informacyjną tworzonego systemu oraz jasno mówi o tym, które jego fragmenty pozostaną POZA zakresem projektu. Brak takiej definicji grozi nie kontrolowanym powiększaniem zakresu projektu poprzez "doklejanie" do kolejnych iteracji coraz to nowych wymagań użytkownika. Takie podejście nie różni się niczym od podejścia chaotycznego i nie gwarantuje zbieżności produktu.


TOP 200