Wizja przetwarzania rozproszonego

Przemysł informatyczny znajduje się w stadium wielkich przemian. Natura problemów, które przed nami stoją, nie pozwala na ich rozwiązanie za pomocą narzędzi, jakie mamy do dyspozycji. Nie można ich też rozwiązać korzystając z naszej obecnej wiedzy. Następuje wielka zmiana modelu przetwarzania.

Przemysł informatyczny znajduje się w stadium wielkich przemian. Natura problemów, które przed nami stoją, nie pozwala na ich rozwiązanie za pomocą narzędzi, jakie mamy do dyspozycji. Nie można ich też rozwiązać korzystając z naszej obecnej wiedzy. Następuje wielka zmiana modelu przetwarzania.

Systemy, które będziemy budować w przyszłości są systemami czasu rzeczywistego, sterowanymi przez zdarzenia symulacjami działania organizacji, nie zaś przetwarzaniem transakcji, ani zapisywaniem rekordów w bazie - czym zajmujemy się od 30 lat.

Co możecie zrobić? Wyrzućcie swoich specjalistów od marketingu. Nie wiedzą oni, (ani nie są w stanie dowiedzieć się) jakie są rzeczywiste potrzeby użytkowników. Bo użytkownicy też nie wiedzą. Wydaje się, że tempo zmian jest tak duże, że ważniejsze jest nadanie im kierunku, niż badania marketingowe.

Wydaje się także, że jedyna metoda dostarczenia systemów informatycznych, potrzebnych do działania firm w ciągu najbliższych kilku lat, polega na stworzeniu środowiska rozproszonego przetwarzania obiektowego: mariażu techniki obiektowej ze środowiskiem klient/serwer.

Ocenia się, że w świecie nie ma tylu programistów, aby mogli oni dostarczyć systemy potrzebne w gospodarce. Jedynie wielokrotne wykorzystywanie obiektów może ich wspomóc. Szybkość zmian w gospodarce rośnie, co wymaga szybszego dostarczania systemów informatycznych. Obecnymi narzędziami i praktykami programistycznymi nie da się osiągnąć większej wydajności.

Rada: początkujących oddziel od bazy danych. Korzystanie z narzędzi OSF DCE lub ONC+ jest równie zabawne jak włażenie w błocie pod samochód. Potrzebne są nam obiekty typu "włącz i używaj". Takie np. jak CORBA (Common Object Requester Broker Architecture) lub Interface Definition Language (język do definiowania interfejsu użytkowego API).

Tylko szybkie zmiany

Potrzebne nam są obiekty nadające się w pełni do dystrybucji i wykonywania równoległego. Szybkość zmian w gospodarce czyni wszelkie długofalowe planowanie sprzętu i oprogramowania działalnością kompletnie bezsensowną. Potrzebna nam jest ziarnistość i szybkość zmian konfiguracji taka, jaką można osiągnąć jedynie przy użyciu obiektów rozproszonych. Potrzebny nam jest potencjał równoległości spełniający wymagania użytkowników co do kosztów.

Obecnie, ani w dającej się przewidzieć przyszłości, nie widać procesora zdolnego do obsługi potrzebnych aplikacji. Aplikacje powinny być rozproszone albo na wiele procesorów w tej samej maszynie, albo na równoległe procesory albo na równoległe maszyny w sieci.

Ten nowy model aplikacji doprowadzi do powstania wysoce specjalizowanych procesorów - maszyn z adresowaniem asocjacyjnym dla dużych baz danych, systemów neuronowych dla prognozowania, specjalizowanych procesorów do komunikacji z użytkownikiem i in. Wszystkie one sensu stricte muszą współpracować przez sieć w celu spełniania usług klient/serwer.

Wymagania użytkowników prowadzą do wyższego poziomu abstrakcji w budowanych systemach. Oprócz typowo obiektowych technologii, potrzebne są wielokrotne klasyfikacje dynamiczne (prototyp/instancja) wspierające w pewnych dziedzinach obiekty, które mogą pojawić się bez udziału działu informatyki, zarządzające ogromnymi zmianami konfiguracji, spowodowanymi przez dziedziczenie.

Musimy być wytrwali. Nie powinno nas interesować gdzie, ani jak są przechowywane obiekty lub scenariusze działania firmy - w plikach, obiektach czy bazie relacyjnej. Potrzebne nam jest programowanie funkcjonalne oparte na wnioskowaniu, gdyż współczesna gospodarka zmienia się zbyt szybko, aby można było w kodzie umieszczać jej reguły i ograniczenia. Muszą one być widoczne i modyfikowalne przez użytkownika - bez udziału działu informatyki.

To szefowie firmy muszą definiować i kontrolować zachowanie obiektów im potrzebnych.

Siedem kroków

Jak realizować nakreślony cel? Pozwólcie mi zasugerować siedmiowarstwowy model obiektowego środowiska przetwarzania rozproszonego, pozwalającego informatykom na opracowanie potrzebnych systemów.

Pierwsze dwie warstwy służą do izolacji od sposobu implementacji; w te warstwy informatycy zapuszczają się rzadko. Będą one oparte na tradycyjnym programowaniu obiektowym (klasy/instancje) w C++ lub Smalltalku; będą one dostarczane przez środowisko programistyczne takie jak OpenStep (firmy Next Computer). Pierwsza warstwa dostarcza infrastruktury środowiska obiektowego; druga zapewnia izolację od sprzętu oraz dostarcza pewnych abstrakcji z biznesu takich jak "pieniądz", powiązanych z odpowiednim formatowaniem, arytmetyką dziesiętną i konwersją walut.

W trzeciej warstwie "encji" dział informatyki tworzy pewne jednostki (encje) związane z dziedziną zastosowania (rzecz, osoba, ciężarówka) oraz ich powiązania między sobą (zatrudnienie = osoba + firma) oraz określa rolę, jaką pełnią w firmie (ciężarówka może być obiektem firmy lub być wynajęta). Środowisko programowania powinno nadawać się zarówno do programowania graficznego, znakowego (tak, jak działa OpenStep), jak i do montażu obiektów (podobnie jak działa Synchroworks firmy Oberon). Następne cztery warstwy powinny należeć do rzeczywistych ekspertów w swojej dziedzinie, to jest do użytkowników końcowych. Środowisko powinno pozwalać na dowolny montaż encji z niższej warstwy oraz dopuszczać do tworzenia widocznych, łatwych do utrzymania reguł i ograniczeń.

Na przykład na poziomie "scenariusza" użytkownicy powinni móc zestawić encje w sensowny scenariusz działania, np. ustalania cen produktów. "Wydarzenia" w piątej warstwie zastępują klasyczne transakcje, pozwalając użytkownikom definiować zdarzenia w biznesie, mogące mieć wpływ na uprzednio przygotowane scenariusze. Może to dotyczyć przypadku, gdy konkurent zmieni ceny lub zatrudniono nowego pracownika. Zdarzenia w biznesie będą zapewne generować wiele tradycyjnie rozumianych transakcji, będących faktycznie tworami sztucznymi, wynikającymi z pewnych zaszłości w informatyce.

Szósta warstwa "agentów" ma służyć do organizowania zdarzeń w formie przebiegu pracy; końcowa warstwa "widoków" dostarcza interfejsu użytkowego. Powinna to być warstwa inteligentna, rozpoznająca kontekst, służąca do wymiany informacji ze światem zewnętrznym, a nawet przystosowująca się do fizycznych możliwości użytkownika.

To czego żądamy wcale nie jest niemożliwe do osiągnięcia. Niektóre części tej łamigłówki już istnieją i są nawet dostępne publicznie (Garnet z uniwersytetu Carnegie Mellon, Babylon z Niemieckiego Narodowego Centrum Badań czy Interviews and Self z uniwersytetu Stanforda); inne są nowymi produktami komercyjnymi (Synchroworks firmy Oberon, Xshell firmy Expertsoft, OpenStep firmy Next). Trzeba je jedynie zintegrować i sprzedawać.

Tylko w taki sposób informatyk może oderwać się od swej roli eksperta technicznego i zacznie zajmować się informacją i przekształcaniem biznesu. Jak w znanym powiedzeniu: Zbuduj go a pojawi się.

Jim Stikeleather jest konsultantem w zakresie przetwarzania klient/serwer.

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200