Wspólne ramy aplikacyjne IBM

Projekt San Francisco to nadzieja na szybsze opracowywanie aplikacji dla biznesu.

Projekt San Francisco to nadzieja na szybsze opracowywanie aplikacji dla biznesu.

Nastały dobre czasy dla firm produkujących oprogramowanie przeznaczone dla biznesu. Zapotrzebowanie na nowe programy jest tak duże, że wiele firm nie nadąża z ich dostarczaniem, zwłaszcza że często wymaga to tworzenia projektu zupełnie od nowa.

Firmy, których pakiety aplikacyjne ostatnio zasadniczo zmieniono lub pojawiły się ich nowe wersje, odnoszą sukcesy handlowe - np. SAP, Baan, PeopleSoft czy Oracle. Wymagało to jednak tak znacznych nakładów finansowych, że tylko nieliczni mogli sobie na nie pozwolić.

Dylemat małego i średniego producenta

Każda aplikacja do wspomagania prowadzenia działalności gospodarczej musi być zmieniana i przystosowywana do zmieniających się warunków tej działalności, stanu wyposażenia informatycznego firm, nowych systemów zarządzania bazami danych, nowych technologii komunikacyjnych itp. Jedynie niewiele z obecnie działających aplikacji opracowano z myślą o szybkim wdrożeniu zmian. Co gorsza, wiele z programów ma charakter monolityczny i każda zmiana oznacza wymianę całości i rozpoczynanie pracy na nowo - od tworzenia poszczególnych procedur, modułów, interfejsu graficznego, metod dostępu do bazy danych, aż po logikę aplikacji.

Rozpoczynanie nowego projektu to decyzja trudna, gdyż w razie niepowodzenia nowej wersji, może oznaczać upadek firmy. Jak sobie z tym radzić? Próbować wykorzystać tyle różnych dostępnych elementów aplikacji, aby jej opracowanie nie zajmowało zbyt wiele czasu, nie angażowało wszystkich zasobów ludzkich firmy i nie wymagało zbyt dużych nakładów finansowych. Gotowe ramy aplikacyjne IBM stanowią istotną pomoc dla małych i średnich producentów tego typu oprogramowania.

Projekt San Francisco

W roku 1994 IBM uznał, że może wspomóc producentów oprogramowania dla biznesu, tworząc wspólne ramy aplikacyjne (frameworks). Tak narodził się projekt San Francisco, prowadzony częściowo w laboratoriach firmy w Rochester, znanych m.in. z opracowania udanej rodziny komputerów Application Server AS/400. Najwyższa obiektowa warstwa modułów San Francisco powstaje w laboratoriach IBM w Boeblingen (Niemcy). Ta lokalizacja wynika z większego zapotrzebowania na podobne usługi firm i programistów w Europie niż w Stanach Zjednoczonych.

Projekt jest obecnie zaawansowany; uczestniczy w nim kilkadziesiąt firm, producentów oprogramowania, w tym jedna firma z Polski - Trax z Zielonej Góry.

Pomysł projektu

Pojawił się jako wynik zapotrzebowania sporej grupy firm (zwłaszcza europejskich) na pomoc w przejściu do nowych technik obiektowych. Firmy te poszukiwały także wsparcia w zakresie metod szybkiego i taniego tworzenia aplikacji.

Dlaczego IBM i jego laboratorium w Rochester? Tak się akurat złożyło, że firmy poszukujące pomocy zajmowały się głównie tworzeniem aplikacji dla AS/400. Ponieważ AS/400 powstał w laboratoriach IBM w Rochester, jako projekt niezależny i prawie nie wspierany przez korporację (która w owych czasach uważała, że należy nadal rozwijać komputery typu mainframe), uznała ona niestandardowe metody pracy w Rochester za najlepszą rekomendację do prowadzenia tego projektu. Istotne znaczenie miało także bogate doświadczenie Rochester w technice obiektowej (cały projekt AS/400 jest oparty na niej).

Idea projektu

San Francisco to robocza nazwa projektu, mającego na celu opracowanie ram aplikacyjnych, tj. zintegrowanego zestawu obiektów, stanowiącego podstawy dla poszczególnych aplikacji, takich jak np. Księga Główna. Rama - szkielet aplikacji nie może działać samodzielnie, pozwala natomiast znacznie zmniejszyć wysiłek potrzebny do opracowania kompletnej aplikacji.

Celem projektu jest:

* ułatwienie programistom zajmowania się aplikacją w celu uczynienia jej unikatową;

* stworzenie wspólnych podstaw do tworzenia aplikacji dla biznesu;

* możliwość dodawania nowych właściwości do istniejących aplikacji;

* przyspieszenie tworzenia nowych aplikacji;

* uproszczenie procesu przechodzenia na technikę obiektową.

Bez ram, takich jakie zamierza oferować IBM w projekcie, mali i średni producenci oprogramowania nie będą mogli w przyszłości oferować aplikacji komercyjnych, dobrze utrzymywanych i stale uaktualnianych. Ich rola ograniczy się do dostarczania rozszerzeń lub modułów do gotowych aplikacji pakietowych, takich jak: SAP R/3, Oracle Financials, Baan Triton czy aplikacji biurowych Microsoftu.

Technologia obiektowa i Java

Powszechnie przyjmuje się, że w przyszłości opracowanie aplikacji musi opierać się na technice obiektowej. Jeżeli udałoby się stworzyć taką technologię, która pozwoli na opracowanie aplikacji i uruchamianie ich bez żadnych zmian na wielu platformach sprzętowych, to zyski byłyby ogromne.

Takie możliwości oferuje obecnie jedynie technika obiektowa w połączeniu z językiem Java. Z tego powodu w projekcie San Francisco przyjęto go jako podstawę do opracowania projektu. Ma to jednak pewne niekorzystne implikacje: wiele problemów z tym językiem nie jest jeszcze w pełni rozwiązanych, nadal podlega on ewolucji i brak jest dopracowanych narzędzi do tworzenia aplikacji, a czasem nawet do szkolenia programistów.

Architektura

Ramy San Francisco zawierają trzy warstwy i tylko od programisty zależy ile warstw użyje w swej aplikacji; resztę aplikacji i tak musi stworzyć sam.

Jeżeli dwóch programistów użyje tych samych warstw w celu stworzenia programu o podobnych właściwościach funkcjonalnych, np. programu FK, to są bardzo małe szanse, że opracują taki sam program. Zależnie od zapotrzebowania klienta, jeden może koncentrować się na obsłudze kontraktów międzynarodowych, drugi zaś może być przystosowany do potrzeb bankowości.

San Francisco służy do określania serwerowej części aplikacji klient/serwer; część kliencką programista musi opracować sam. Jest to podejście sensowne o tyle, że większość unikatowych cech programów mieści się w części klienckiej. Zresztą wśród programistów powszechne jest przekonanie, że znacznie trudniej opracowuje się serwerową część aplikacji.

Wiele istotnych rozwiązań w technice obiektowej powstało w firmie Taligent (stworzonej w wyniku porozumienia firm IBM, Apple i HP), wykupionej ostatnio w całości przez IBM. W wyniku tej operacji wielu specjalistów techniki obiektowej przeszło od projektu Taligent do projektu San Francisco.

Warstwa podstawowa. Aplikacja wykorzystująca technikę obiektową wymaga zaawansowanej infrastruktury technicznej, którą ma zapewnić właśnie warstwa podstawowa. Zarządza ona dostępem do systemu operacyjnego, innych aplikacji i sieci. Zawiera także usługi obiektowe niezbędne dla wyższych warstw: znajdowanie obiektów, utrzymywanie informacji o ich nazwach, kontrola dostępu, rozstrzyganie konfliktów, bezpieczeństwo i instalacja obiektów. Warstwa ta zawiera także podstawowe klasy obiektów stosowane przez wyższe warstwy.

Warstwę podstawową można uważać za rodzaj bazy programowej dla całej technologii obiektowej aplikacji. Jeszcze do niedawna w aplikacjach komercyjnych pojawiały się specjalizowane, firmowe . Obecnie korzysta się z komercyjnych serwerów baz danych (IBM, Informix, Microsoft, Oracle, Sybase); nikt nie opracowuje własnych baz. Warstwa podstawowa San Francisco ma spełniać dla obiektów podobną rolę, jaką odgrywają serwery baz danych dla aplikacji bazodanowych.

Wspólne obiekty biznesowe. Następna warstwa zawiera "większe" obiekty spełniające określone funkcje biznesowe, np. zamianę walut, obsługę daty i czasu, adres, dane osobowe, jednostki miary i ich zamianę, kalendarz oraz setki innych. Podobnie jak w przypadku wielu innych (dobrze opracowanych) obiektów, te obiekty można kopiować, zaś ich właściwości dziedziczyć, rozszerzać lub ograniczać. Tak więc warstwa ta już wystarcza do budowy wielu zaawansowanych aplikacji do obsługi działalności gospodarczej.

Główne procesy biznesowe. W tej warstwie aplikacje nabierają już kształtu. Każdy obiekt jest opracowywany z myślą o konkretnej aplikacji (księga główna, zarządzanie magazynem, obsługa dostaw). Nie są to jeszcze kompletne aplikacje, ale zawierają już wszystkie funkcje niezbędne do jej stworzenia.

Aplikacje

Nad trzema warstwami ram aplikacyjnych San Francisco budowane są aplikacje komercyjne. IBM zachęca do tworzenia ich w języku Java, ale ponieważ technologia obiektowa ich podstaw nie jest zależna od języka, a wywołanie obiektów można realizować z dowolnego programu, to do tworzenia końcowej aplikacji można używać dowolnego języka i narzędzi. Oczywiście straci się wiele możliwości jakie oferuje technika obiektowa, jeśli narzędzie (lub język) nie będzie obiektowe.

Prognozy

Ostrożna ocena oszczędności wysiłku programisty podawana przez IBM wynosi 40% (programista musi wykonać pozostałe 60%); optymistyczna mówi o oszczędności rzędu 80%.

Przewiduje się, że pierwsze obiekty tworzące sensowny podzbiór projektu San Francisco powstaną w 1997 r., ale projekt będzie funkcjonował wiele lat - tak długo jak programiści i niezależne firmy będą opracowywać nowe obiekty do każdej z warstw i jak długo będą z nich korzystać.