Progress - nieco więcej niż wizytówka, nieco mniej niż laurka

Mój życiorys

Mój życiorys

Urodziłem się w lipcu 1983 roku w Bedford w stanie Massachusetts. Pierwsze swoje kroki stawiałem w systemie operacyjnym Unix. Mój rozwój był równie burzliwy co intensywny - w roku 1985 opanowałem MS-DOS a w roku 1987 VAX/VMS. Lata dziecięce zakończyłem w roku 1988 dołączając do swej kolekcji system BTOS/CTOS maszyn firmy UNISYS. Obecnie kończę studia nad OS/400. Dziś, w wieku zaledwie ośmiu lat, prowadzę intensywną działalność w wielu krajach Europy, Ameryce i Australii. Mam swoje przedstawicielstwa w całych Stanach Zjednoczonych i Kanadzie oraz w 10 krajach Europy, między innymi we Francji, Wielkiej Brytanii, Niemczech i Szwecji. W innych krajach, także w Polsce, mam własnych dystrybutorów.

Nieustanny rozwój techniki komputerowej idzie w kierunku jak największego przystosowania komputerów do wymagań człowieka. Także w dziedzinie programowania dokonał się ogromny postęp. Po assemblerach przyszła kolej na języki wysokiego poziomu: FORTRAN, ALGOL (kto to jeszcze pamięta?), później PASCAL, C i wiele innych. Kiedy pojawiły się języki jeszcze bardziej zbliżone do języka naturalnego, zaczęto je nazywać Językami Czwartej Generacji (4GL - Fourth Generation Language), w odróżnieniu od już istniejących, języków trzeciej generacji (3GL). Języ-wartej generacji tworzone by-a specjalnych zastosowań, na przykład do systemów ekspertowych (Prolog) czy do baz danych cie, Informix, Progress). W tym artykule postaram się przybliżyć Czytelnikowi siebie czyli ostatni z wymienionych języków.

Moja proweniencja

PROGRESS jest produktem .L-itrykariskiej firmy Progress Software Corporation z Bedford w stanie Massachusetts. Założyli ją w

roku 1981 Joseph W. Alsop, Charles A. Ziering oraz Clyde Kessel, z zamiarem stworzenia silnego narzędzia, odpowiedniego dla projektantów baz danych. Swoje marzenia urzeczywistnili w trzy lata później, wypuszczając pierwszą komercyjną wersję Progressa dla systemu operacyjnego Unix. W następnych latach powstają kolejne wersje Progressa, pęcznieje też lista maszyn i systemów operacyjnych, na których pracuje Progress. Jednocześnie rosną obroty firmy, osiągając 25 mln dolarów w roku 1989 i 40 mln w roku 1990. Na rok 1991 planowane jest podwojenie tej ostatniej kwoty. Firma rozwija się bardzo szybko, plasując się w pierwszej czterdziestce najbardziej dynamicznych firm w USA. Jej działalność nie ogranicza się tylko do obszaru Stanów Zjednoczonych, istnieją już przedstawicielstwa w Kanadzie, Australii i w Europie, między innymi w Austrii, Francji, Niemczech, Szwecji i Wielkiej Brytanii. Powiększa się też krąg autoryzowanych dystrybutorów, obejmując swoim zasięgiem resztę Europy, w tym Polskę.

Moja fotografia

Kim jestem? Najkrócej można odpowiedzieć słowami: Relacyjna Baza Danych plus Język Czwartej Generacji. Nie będzie to jednak pełny opis. Progress, to raczej środowisko programowe, zbliżone bardziej do systemu operacyjnego niż do tradycyjnych języków programowania, z jakimi mieliśmy do czynienia do tej pory. Środowisko Progressa obejmuje: System Zarządzania Relacyjną Bazą Danych (RDBMS -Relational DataBase Managing System) oraz zespół narzędzi umożliwiających stworzenie aplikacji, czyli własnej bazy danych dostosowanej do indywidualnych potrzeb. Te narzędzia, to Słownik Bazy oraz język Progress 4GL. Najważniejszą częścią Progressa jest system zarządzania bazą, czyli RDBMS. Jest to podstawa, na której opiera się cała reszta. RDBMS przydziela miejsce na dys-

ku, do zapisania nowo utworzonych rekordów, odnajduje potrzebne informacje, uaktualnia indeksy, czuwa nad zachowaniem spójności bazy danych. Dopasowanie bazy danych do własnych potrzeb użytkownika wykonuje Słownik Bazy (ang. Data Dictiona-ry). Słownik jest integralną częścią bazy danych, w nim zapisany został schemat bazy: struktura wszystkich zbiorów i pól. Oprócz tego Słownik zawiera wiele informacji pomocniczych, dotyczących sposobu wyświetlania oraz warunków poprawności wprowadzanych danych. Trzecią częścią tworzącą środowisko Progressa jest język Progress 4GL, w którym programista buduje aplikację. Język ten zawiera ponad 200 rozkazów, funkcji i procedur, umożliwiając wykonywanie wielu operacji. Dzięki temu całą aplikację można napisać w języku Progress. Nie ma potrzeby sięgania do innych języków programowania. Można zapomnieć o językach trzeciej generacji.

Co mogę zaoferować?

Propozycja handlowa firmy Progress Software Corporation obejmuje kilka produktów. Najważniejszy jest niewątpliwie Progress Application Development System, zwany w skrócie PADSem, który w swej podstawowej wersji umożliwia napisanie własnej aplikacji i następnie jej uruchomienie. Nadto można, rzecz jasna, napisać kilka aplikacji i uruchomić wszystkie jednocześnie. W skład PADSa wchodzą trzy wymienione wcześniej moduły, a więc: RDBMS, Słownik i Progress 4GL. Dodatkowo dołączony jest generator aplikacji Fast-Track, o którym za chwilę. Aby uruchomić napisaną aplikację na innej maszynie, nie trzeba kupować całego Progressa, wystarczy wersja okrojona, czyli Run-Time. Run-Time stanowi minimalną konfigurację konieczną do uaktywnienia Progressowej bazy danych. Użytkownik nie może jednak zmieniać istniejącej aplika-

cji ani dodawać własnych procedur. Rozwiązaniem pośrednim jest Query-Report Wersja ta posiada edytor Progressa oraz część Słownika nie pozwalającą na zmianę schematu bazy danych. Za pomocą Query-Report można modyfikować istniejące procedury, dopasowując je do zmieniających się potrzeb lub przepisów. Można też pisać własne, umożliwiające odczytywanie zgromadzonych informacji, na przykład w celu tworzenia raportów nie przewidzianych przez projektanta. Que-ry-Report zawiera też część programu Fast-Track.

Fast-Track jest narzędziem typu CASE (Computer Aided Software Engineering - Komputerowe Wspomaganie Programowania) i ma na celu usprawnienie procesu programowania. Za jego pomocą można utworzyć szkielet aplikacji - cały system MENU oraz wywołań podprogramów. Metodą WYSIWYG (Otrzymasz To Co Widzisz, tzn. wydrukujesz dokładnie to, co widzisz na ekranie) można zaprojektować formy ekranowe służące do wprowadzania i prezentacji danych na monitorze oraz raporty do wydruków. Następnie Fast-Track przetwarza otrzymane formy, generując kod źródłowy w języku Progress. Fast-Track posiada też możliwość utworzenia procedur typu QBF (Query By Form - Zapytania Przez Ekran). Za ich pomocą można w prosty sposób wprowadzać i przeglądać zawartość bazy danych. Korzystając z Fast-Tracka można w ciągu paru godzin (tak!) napisać i uruchomić niedużą aplikację. Oczywiście, będzie to wersja prototypowa, wymagająca następnie korekty i doszlifowania. Niektórzy programiści piszą w Fast-Tracku nawet 60% aplikacji. Warto jeszcze dodać, że Fast-Track jest całkowicie napisany w Progressie.

Progress Results, to najmłodsze dziecko firmy Progress Software Corporation. Jest to program przeznaczony dla końcowego użytkownika bazy danych. Za jego

pomocą w bardzo prosty sposób mo jna odczytywać potrzebne dane z bazy, tworzyć raporty lub drukować nalepki adresowe na listy, a wszystko to jedynie przez wybieranie odpowiednich opcji z menu. Każdemu klientowi, który pragnie się zapoznać z językiem Progress, firma oferuje Test-Drive. Jest to praktycznie pełny Progress posiadający niemal wszystkie możliwości wersji PADS. Dodane ograniczenia uniemożliwiają jedynie wykorzystanie Test-Drive'a w sposób komercyjny - co staje się oczywiste, jeśli zauważyć, że jest on rozprowadzany prawie za darmo! Cała przedstawiona rodzina Progressa jest dostępna na ponad 200 typach maszyn, wszystkich znanych producentów komputerów, wliczając w to DEC, IBM, MIPS i Sun oraz, oczywiście, na komputerach kompatybilnych z IBM PC. Równie długa jest lista obsługiwanych systemów operacyjnych, zawierająca MS-DOS, Unix, Xenix, AIX, A/UX, Ultrix, VAX/VMS oraz BTOS/CTOS.

Moja integralność i niezmienność

Niezaprzeczalną zaletą Progressa jest połączenie w jeden cykl trzech etapów tworzenia aplikacji: pisania programu, kompilacji i wykonania. Programista pisze tekst procedury w edytorze Progressa. Następnie naciskając jeden klawisz wywołuje kompilator. Po skończeniu kompilacji procedura jest automatycznie wykonywana, po jej zakończeniu następuje powrót do edytora, gdzie można poprawić błędy. W ten sposób cały cykl: pisanie, kompilacja, uruchomienie, możemy powtarzać nie opuszczając środowiska Progressa. Podobne rozwiązanie stosuje od kilku lat firma Borland w swoich produktach: Turbo Pascal oraz Turbo C. Jednak w wielu innych produktach procesy edycji, kompilacji, łączenia z bibliotekami (ang. linking) są rozdzielone od siebie. Dotyczy to kompilatorów firmy Microsoft dla MS-DOS oraz wszystkich znanych mi produktów tego typu, dostępnych w systemie Unix, zarówno języków trzeciej generacji jak i czwartej. Przy tym niektóre translatory języków czwartej generacji (Oracle, Informix) są jedynie preprocesorami języków trzeciej generacji (najczęściej C).

Procedury Progressa nie są tłumaczone na żaden język pośredni (C, SQL) tylko na język wewnętrzny Progressa i od razu wykonywane przez system zarządzania bazą RDBMS. Istnieje, oczywiście, możliwość przechowywania na dysku modułów już skompilowanych. Napisany program może obsłużyć bazę o rozmiarze do 200 GB. Takich baz możemy dołączyć 240, każda na innej maszynie cyfrowej. Przy tym nie musi to być maszyna tego samego typu, może też mieć inny system operacyjny. Na przykład, pracując na komputerze IBM PC, możemy obsługiwać bazę znajdującą się na VAXie. Takie rozwiązanie już w Polsce istnieje. Wszystkie zmiany bazy danych - wprowadzanie nowych informacji lub uaktualnianie starych - są natychmiast zapisywane na dysku. Tak więc w razie awarii komputera żadne z wprowadzonych danych nie giną.

Zapis odbywa się do dwóch lub trzech zbiorów systemowych, przy czym ten trzeci powinien znajdować się na oddzielnym dysku. Pierwszy z nich to zbiór bazy danych. Tu przechowywana jest struktura bazy oraz jej zawartość. Do dwór pozostałych zapisywane są tylko zmiany bazy danych. Służą one do odtworzenia bazy w razie awarii komputera.

Przyjrzyjmy się bliżej mechanizmowi ich działania. Użytkownik może życzyć sobie, aby pewne zmiany w bazie dokonywane były albo w całości, albo wcale. Taki zestaw operacji nazywany jest transakcją. Przykładem transakcji może być podniesienie pensji wszystkim pracownikom w firmie o 5%. Jeśli w trakcie wykonywania takiej operacji nastąpi awaria maszyny, nie będzie wiadomo komu już dopisano podwyżkę, a komu nie! Progress zapewnia w takim wypadku możliwość wycofania nie dokończonej transakcji, czyli przywrócenie poprzedniego stanu bazy.

Temu służy jeden ze wspomnianych zbiorów. System zarządzania bazą zapisuje tu wszystkie zmiany od momentu rozpoczęcia transakcji aż do jej zakończenia, umożliwiając, w razie awarii, automatyczne odtworzenie starego stanu bazy (odtwarzanie wstecz). Z kolei do trzeciego zbioru zapisywane są wszystkie zmiany dokonane od momentu ostatniej archiwizacji bazy. W razie uszkodzenia dysku, na którym przechowywana jest informacja, możemy odtworzyć stan bazy danych z ostatniej kopii archiwalnej, dodając krok po kroku wszystkie wprowadzone później zmiany. Jest to tak zwane odtwarzanie w przód. Wymaga to zapamiętywania zmian na innym dysku i jest wybierane przez administratora systemu jako opcja. Wszystkie trzy zbiory są skonstruowane w taki sposób, aby uniemożliwić przeczytanie ich zawartości z poziomu systemu operacyjnego, jest to możliwe jedynie za pomocą Progressa.

Istnieje cały, rozbudowany system zabezpieczeń chroniących dostęp do bazy danych. Upraw-

nienia użytkowników do czytania lub pisania można przydzielać niezależnie, nawet dla poszczególnych pól w rekordach. Progress. ma możliwość definiowania znaków narodowych, w tym polskich, i sortowania według tych znaków. Standard użyty do zakotłowania znaków (jak wiadomo, w Polsce istnieje kilka standardów) nie ma znaczenia, Dane zapisane w kodzie Latin II mogą być prezentowane na terminalu wyposażonym w polskie znaki o kodach Mazovii lub DHN. Sortowanie odbywa się według specjalnej tablicy kodów, w której ą występuje pomiędzy literami a i b.

Gdzie mnie znaleźć na świecie?

Dziś Progress to ponad 67 tysięcy licencji na całym świecie, z czego 27 tysięcy przypada na rok 1991. Wśród aplikacji napisanych w Progressie jest kilka o zasięgu ogólnokrajowym, na przykład dla holenderskiej policji, francuskiej i australijskiej poczty. Kilka baz da-

nych działa w ministerstwach: Ministerstwie Obrony w Szwecji i Stanach Zjednoczonych, Ministerstwie Finansów w Niemczech, w Departamencie Stanu USA i wielu innych. Od Progressa nie stroni też wojsko. Bazy danych w Progressie ma Centralna Agencja Wywiadowcza (CIA), Wywiad Wojskowy (DIA) oraz Ministerstwo Obrony Stanów Zjednoczonych.

Gdzie mnie znaleźć w Polsce?

Progress jest znany od 1990 roku, od momentu złagodzenia ograniczeń COCOM. Grono użytkowników Progressa w Polsce szybko się powiększa. Powstało już kilka aplikacji, także komercyjnych. Do największych należy Zintegrowany System Bankowy "Bankier" nagrodzony Pierwszą Nagrodą na tegorocznych Targach Oprogramowania SofTarg 91. "Bankier" w całości został napisany w Progressie. W Polsce Progress działa głównie na maszynach kompatybilnych z IBM PC, także z Unixem, ale jest już kilka instalacji na maszynach MIPS wyposażonych w procesor typu RISC oraz na VAX-ie.

Dlaczego właśnie Ja?

Potencjalny użytkownik stojący przed koniecznością wyboru języka programowania ma przed sobą trudne zadanie. Lista nie jest długa, ale konkurencja silna: Oracle, Informix, Ingres, Focus. Nie od rzeczy będzie wspomnieć, że w badaniach ankietowych Progress od kilku lat zajmuje pierwsze miejsce. Tabelka prezentuje wyciąg z raportów sporządzonych w latach 1988 - 1990 przez amerykańską organizację Datapro. Data-pro jest niezależną instytucją zajmującą się badaniem sprzętu i oprogramowania, publikowane co miesiąc raporty są w pełni obiektywne. Ocena oprogramowania dokonywana jest przez użytkowników w kilku kategoriach, między innymi łatwości nauki i użytkowania, niezawodności i sprawności.

Spróbujmy się zastanowić, co tłumaczy tak wysoki wynik Progressa. Niewątpliwie dużą zasługą jest jasność i przejrzystość języka Progress 4GL: logiczna, konsekwentna gramatyka, elastyczna składnia i duże podobieństwo do języka naturalnego. Wiele parametrów jest przyjmowanych domyślnie, można je też przedefinio-wać dla całej aplikacji, co zdejmuje z programisty konieczność pra-

cowitego wyliczania ich za każdym razem. Dzięki temu instrukcja wyświetlenia pewnych informacji o kliencie przybiera postać "DISPLAY klient", choć pełna specyfikacja wszystkich parametrów mogłaby zająć kilkanaście lub kilkadziesiąt wierszy kodu! Duża prostota języka sprawia, że już po trzech dniach nauki można zacząć pisać aplikację. Nie bez znaczenia jest także fakt, że całą aplikację pisze się w języku czwartej generacji, inne bazy nie dają tej możliwości. Jest to możliwe dzięki ogromnemu bogactwu funkcji i procedur standardowych, wykonujących wiele operacji na łańcuchach znaków i zbiorach systemowych. Ich liczba jest większa niż w Turbo-Pascalu 5.0 (jeśli pominąć procedury graficzne). Są też dostępne wszystkie komendy systemu operacyjnego. Ponieważ Progress nie odwołuje się do innych języków programowania, nie ma żadnych kłopotów z przenoszeniem zbiorów. Aplikacje oraz bazy danych można przenosić z DOSa na Unix lub na VMS bez zmiany choćby jednej linijki programu!

I ostatnia rzecz, w Polsce raczej do tej pory nie znana: wszechstronne wspomaganie (ang. sup-port). Żaden z użytkowników Progressa nie jest zostawiany samemu sobie. Każdy klient ma możliwość wykupienia polisy serwisowej, która uprawnia do korzystania z szeroko rozbudowanego systemu pomocy. Użytkownik taki może kontaktować się z firmą Progress i prosić o pomoc w rozwiązaniu problemów, które pojawiły się w trakcie używania bazy danych. Odpowiedź jest zazwyczaj udzielana w ciągu 24 godzin. Ponadto firma posiada adresy wszystkich klientów i co miesiąc wysyła im biuletyny techniczne zawierające opis najważniejszych błędów i sposoby poradzenia sobie z nimi. W biuletynach jest też informacja o najnowszych wersjach Progressa. Użytkownik może otrzymać nową wersję prawie za darmo.

Język Progress jest nieustannie ulepszany, wciąż pojawiają się nowe wersje. Uwzględniane są tu uwagi zgłaszane przez użytkowników z całego świata. Wszystko po to, aby stworzyć produkt jak najlepszy, dający maksimum zadowolenia. Nie zapominajmy, że "pro-gress", to po angielsku znaczy "postęp".

-

dokonczenie na str. 12

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

TOP 200