Obiektowa dezorientacja

Rozwój technologii obiektowo zorientowanych (OZ) należy do najważniejszych tendencji współczesnej informatyki. Przeciętnemu programiście hasło to kojarzy się z językiem C++. A jak wygląda sytuacja w zakresie obiektowo zorientowanych baz danych, systemów operacyjnych lub metod analizy? Czy dla menedżera "obiektowa orientacja" jest tematem na dziś?

Rozwój technologii obiektowo zorientowanych (OZ) należy do najważniejszych tendencji współczesnej informatyki. Przeciętnemu programiście hasło to kojarzy się z językiem C++. A jak wygląda sytuacja w zakresie obiektowo zorientowanych baz danych, systemów operacyjnych lub metod analizy? Czy dla menedżera "obiektowa orientacja" jest tematem na dziś?

Nic nowego pod słońcem

chciałoby się powiedzieć zważywszy, że koncepcja klas i obiektów w informatyce powstała niemal 30 lat temu. Za pierwszy obiektowo zorientowany język programowania uchodzi zdefiniowana w Norwegii SIMULA (rok 1967). Język ten podobnie jak PASCAL jest "dzieckiem" ALGOL-a 60, z kolei następcą SIMULI jest najbardziej klasyczny język obiektowo zorientowany, stosowany do dzisiaj SMALLTALK. Język ten powstał w latach 70. w USA (Palo Alto Research Center) i był wynikiem prac mających na celu stworzenie efektywnego dialogu człowieka z maszyną cyfrową - w rezultacie powstała m.in. koncepcja rozwijanych menu obsługiwanych myszą.

Także zwolennicy popularnego Turbo-Pascala Borlanda z łatwością mogą zapoznać się z tajnikami obiektowo zorientowanego programowania jeśli sięgną po dokumentację tego języka od wersji 5.5 wzwyż. Poza wspomnianym C++ do ważnych języków omawianej grupy należą:

* ADA 9X (rozszerzenie znanego standardu tego języka z roku 1983)

* OBERON-2 (język bazujący na MODULI-2, powstały w końcu lat 80. na Uniwersytecie ETH w Zurichu)

* CLOS (Common Lisp Object System wywodzący się z języka LISP)

* EIFFEL (język normowany przez gremium NICE - Nonprofit International Consortium for Eiffel).

Należy również dodać, że w chwili obecnej wielce zasłużony dla standaryzacji informatyki komitet CODASYL pracuje nad normami dla obiektowo zorientowanego COBOL-a, co umocni pozycję tego języka, który od lat odgrywa najważniejszą rolę w przetwarzaniu danych gospodarczych. Informatyka to jednak coś więcej niż programowanie.

Można więc dostrzec znaczny wpływ technologii obiektowo zorientowanych na tworzenie systemów operacyjnych czy innych narzędzi softwarowych. Dla uniknięcia nieporozumień należy tutaj odróżniać obiektowo zorientowane architektury systemowe od ich fragmentów jakimi są obiektowo zorientowane interfejsy użytkownika OOUI (Object Oriented User Interface). Te ostatnie wywodzą się z klasycznych złącz użytkownika GUI (Graphical User Interface) takich jak, Apple/Macintosh czy Windows firmy DEC ("windowsy" Microsoftu powstały nieco później).

Obiektowo zorientowane graficzne platformy użytkownika znajdują się w początkowej fazie rozwoju a sytuację w tej dziedzinie można scharakteryzować na przykładzie OSF/Motif. Produkt ten ma cechy obiektowo zorientowane, chociaż nie można go zaliczać do grupy OOUI w nowoczesnym tego słowa znaczeniu (implementowany był "zwykłym" ANSI C). Bezpieczniej jest więc tu mówić nie o pakietach obiektowo zorientowanych (object oriented), lecz o obiektowo bazowanych (object based).

OSF/Motif ma przed sobą obiektowo zorientowaną perspektywę o czym świadczą jego nowsze mutacje wykorzystujące C++: "Rock Wave" i M++ (University of Lowell, USA). Także w praktyce przemysłowej przyszłość tego produktu jest zagwarantowana polityką i składem gremium COSE (Common Open Software Environment), do którego należą: IBM, DEC, HP, SCO, Novell i Sunsoft. W podobnym kierunku będą też szły następne wersje MS-Windows i Windows NT, mimo że charakterystyczna dla Microsoftu technologia OLE (Object Linking and Embedding) nie wywodzi się z koncepcji obiektowej orientacji.

Także obiektowo zorientowane systemy operacyjne dopiero raczkują.

Tym ważniejsze są osiągnięcia na tym polu firmy NeXT. System operacyjny NeXTstep opiera się na jądrze MACH zaprojektowanym na Uniwersytecie Carnegie-Mellona (USA) oraz na języku programowania Objective-C. Standardy NeXT mogą mieć istotny wpływ na kształt obiektowo zorientowanego systemu operacyjnego przyszłości. Firma współpracuje z SUN i bierze udział w pracach Object Management Group (OMG) - najważniejszego gremium zajmującego się normowaniem softwarowych architektur obiektowo zorientowanych.

Najistotniejszym osiągnięciem OMG jest sformułowanie standardu CORBA (Common Object Request Broker Architeckture) na początu 1992 r. W trzy lata po tym wydarzeniu nie ulega wątpliwości, że nowe produkty softwarowe technologii obiektowo zorientowanej muszą uwzględniać tę normę.

Mniejsze znaczenie niż OMG wydaje się mieć gremium ODMG (Object Database Management Group), mimo że jest to największa organizacja tego typu w dziedzinie baz danych.

ODMG powstała zaledwie rok temu zrzeszając w zasadzie tylko pięć mniej znanych firm: Object Design, Versant, Ontos, Objectivity, O2 Technology. Studiując jednak listę firm współpracujących z grupą widać wyraźnie, iż mamy do czynienia z poważnym przedsięwzięciem: DEC, HP, Texas Instruments, AT&T, UNISYS, NCR. Niezależnie od długości tej listy jej waga będzie zależeć od tego czy znajdzie się na niej sześć literek oznaczających aktualny nr 1 w zakresie baz danych: ORACLE.

Ale już dziś jest w czym wybierać jeśli chcemy zaopatrzyć się w obiektowo zorientowaną bazę danych (OZBD). Za pierwszy komercyjny system tego typu uchodzi GemStone firmy Servio Logic (1984 r.). Zastosowana idea była przy tym równie prosta co odkrywcza - stworzyć nową bazę danych wykorzystując istniejący obiektowo zorientowany język programowania (Smalltalk-80). Niżej podano przykłady kilku OZBD (w nawiasie dopuszczalny system operacyjny i orientacyjna cena w dolarach):

* Versant OODMS (Solaris, ULTRIX, AIX, UX, NextStep, OS/2, Windows-NT, MS-Windows, IRIX, Dynix; 15000 USD)

* Ontos (Solaris, AIX, UX, SCO-UNIX, OS/2; 10000 USD)

* GemStone (UNIX; 15000 USD)

* Objectivity-DB (Solaris, ULTRIX, AIX, UX, OSF/1, IRIX, Windows-NT, MS-Windows; 15000 USD)

* Art Base (UNIX, OS/2, MS-Windows; 6000 USD).

W zestawieniu tym brakuje nazw "wielkich nieobecnych", a więc poza wspomnianą ORACLE takich firm, jak SYBASE czy INFORMIX. SYBASE, po niedawnym przejęciu głównego producenta nowoczesnych GUI -Powersoft, jest na dobrej drodze w kierunku technologii obiektowo zorientowanej. ORACLE po zawarciu umowy z DEC wzmocnił swoją pozycję, przejmując kontrolę nad dalszym rozwojem sztandarowej bazy danych Digitala - RdB i zapowiada przejście do OODB od wersji 8.0 (aktualnie 7.1).

Niezależnie od strategii przyjętej przez głównych producentów baz danych masowe przejście do OZBD dokona się wówczas gdy powstanie obiektowo zorientowany SQL.

Język ten normowany jest przez różne gremia, zarówno przez uniwersalne komitety standaryzujące (ANSI, ISO), jak i organizacje specjalistyczne np. SQL Access Group (p. Computerworld Nr 38/94). Najnowszym standardem jest SQL92, natomiast kolejna norma (SQL3) z rozszerzeniami obiektowo zorientowanymi spodziewana jest na rok 1996.

Nie oznacza to, że do tego czasu OZBD nie mają praktycznej racji bytu. Owszem bazy danych tego typu mogą być użyteczne w specyficznych przypadkach jako samodzielne rozwiązania wyspowe (stand alone). Dla dużych systemów informatyki gospodarczej gwarancje stabilności daje zastosowanie sprawdzonej technologii relacyjnej czy nawet hierarchiczno-sieciowej (modele heterogeniczne).

Z kolei projektanci oprogramowania i struktur informatycznych stają przed pytaniem co do warunków przechodzenia na nową technologię. Czy wystarczy zakupić obiektowo zorientowany język programowania lub odpowiednią bazę danych, aby generować obiektowo zorientowane aplikacje? Można i tak, ale większej efektywności należy się spodziewać również gdy zastosowane metody analizy systemowej wyjdą poza rozwiązania klasyczne. Co więcej możliwy jest także rozwój tradycyjnych implementacji korzystając z obiektowo zorientowanych metod projektowania.

Aktualnie obszar inżynierii oprogramowania (software enginering) zdominowany jest przez standardowe metody analizy systemowej o charakterze strukturalnym. Metody te kojarzone są z nazwiskami ich pierwszych twórców sprzed 15-tu lat, takimi jak Jackson czy DeMarco i odpowiadają strukturalnemu paradygmatowi ówczesnych języków programowania (3GL), zawodząc w połączeniu z nowszymi technologiami.

Niemal wszystkie istniejące metody AOZ (analizy obiektowo zorientowanej) powstały w ciągu ostatnich pięciu lat, potwierdzając chronologię cyklu rozwojowego informatyki: języki programowania ---> bazy danych ---> metody analizy.

Do najważniejszych z nich należą:

* Responsibility Driven Design - Tektronix

* Object Modelling Technique - General Electric

* Object Oriented Systems Analysis - Hewlett-Packard

* Object Oriented Specification - NASA

* Object Oriented Analysis - Object International.

Stosowanie tych metod jest godne polecenia nawet dla przedsięwzięć implementowanych typowym oprogramowaniem - w ten sposób można zdobyć cenne doświadczenia projektowe. Metody AOZ są zbiorem algorytmów modelowania i istnieją skojarzone z nimi narzędzia CASE (obiektowo zorientowane), ale ich zakup nie jest koniecznością i ma sens jedynie dla dużych projektów.

Technologie obiektowo zorientowane chakteryzują się dużą dynamiką rozwoju, ale prawdziwy przełom dopiero nastąpi.

Według gremium OMG w roku 1996, 25% firm amerykańskich będzie stosować tę nową technologię. Dla reszty świata prognozy są mniej optymistyczne, co widać w przewidywaniach instytutu INPUT: w roku 1999 obroty na światowym rynku oprogramowania OZ osiągną poziom 7 mld dolarów rocznie (1994 - 1 mld), z czego 4 mld w USA (1994 - 900 mln).

Pokuśmy się zatem o kilka uwag drogowskazów dla zachowania orientacji w dynamicznym świecie obiektów współczesnej informatyki:

* języki programowania: istnieje liczna grupa języków należących do rozważanej kategorii, ich praktyczne stosowanie jest w pełni uzasadnione;

* systemy operacyjne, GUI: decyzje w tym zakresie są w znacznej mierze konsekwencją doboru sprzętu, polityka wytwórców Unixa (OSF) i Microsoftu zapowiada szybki rozwój nowych technologii;

* bazy danych: OZBD znajdują się we wczesnej fazie rozwoju, praktyczne możliwości ich stosowania na szeroką skalę są ograniczone, a spodziewany przełom nastąpi po roku 1996;

* metody analizy systemowej: mimo słabo rozpowszechnionych standardów warto się nimi zainteresować, wiąże się to w mniejszym stopniu z nakładami inwestycyjnymi i zależy od zmiany sposobu myślenia podczas projektowania systemów informatycznych.


TOP 200