• Nie Znaleziono Wyników

ZARZĄDZANIE DANYMI

W dokumencie Oprogramowanie wielodostępu (Stron 147-192)

W kontekście systemów wielodostępnych uwidaczniają się czte­

ry aspekty problemu zarządzania danymi /czyli kierowania prze­

pływem danych/: wspólne zbiory dla wielu użytkowników; bardzo duże zbiory dla poszczególnych zastosowań; łączność i współwy- mienność /zgodność/ między zbiorami; oraz techniki utrzymywania i odzyskiwania /regeneracji/ zbiorów. Zarządzanie danymi jest przedmiotem godnym osobnych rozważań i dlatego inne sprawozdania Ptogramu Badawczego Diebolda szczegółowo zajmują się tym zagad­

nieniem. Tutaj zajmujemy się tymi aspektami problemu zarządza­

nia danymi, które są szczególnie kłopotliwe w środowisku syste­

mów wielodostępnych - chociaż nie ograniczają się tylko do tego środowiska.

1. Wspólne zbiory

Około roku temu na Konferencji Kierownictwa BEMA Charles W. Adams oświadczył, co następuje:

"Istnieje szeroko rozpowszechnione rozumowanie, że w wielodostępie największą wagę posiada udział w ary­

tmetycznych i logicznych zdolnościach komputera ...

- 144

-Znacznie ważniejszym aspektem wielodostępu, szczegól­

ni e z punktu widzenia działacza gospodarczego, jest to, iż pozwala on na wspólne jednoczesne korzystanie ze zbiorów wielu użytkownikom. Przede wszystkim zna­

czenie mają zalety ekonomiczne wspólnego korzystania ze zbiorów; wysoką wartość ekonomiczną posiada bez­

pośrednio współpracujące wyposażenie do przechowywa­

nia informacji. Jednakże często jeszcze większe zna­

czenie posiada zdolność scentralizowania i ujednoli­

cenia danych dotyczących całej organizacji. Dane muszą być stale aktualne, a jednak zawsze dostępne, by spro­

stać potrzebom jednostek w organizacji nawet gdy jej struktura jest zdecentralizowana".

Tam,gdzie użytkownicy wzajemnie oddziaływają na to same zasto­

sowania, bazę danych , oraz na system zbiorów, zarządzanie zbio­

rami w systemie jest znacznie bardziej złożonym problemom niż tam, gdzie wielu użytkowników oddziaływaje na niezależne zasto­

sowania. W przypadku zastosowania, w którym chodzi o zapytania i wyszukiwanie informacji - to znaczy tam, gdzie wspólny zbiór

jest tylko odczytywany - problem sprowadza się zazwyczaj do dziedziny toorii kolejek. Zapytania użytkowników muszą po pros­

tu oczekiwać w kolojce na dostęp do zbioru /co podlega wyjątkom w zależności od priorytetu oraz jest zależne od techniki dostę­

pu/. Z punktu widzenia projektanta systemu sprawa nie wygląda tak prosto, gdy w jakimś zastosowaniu' w grę wchodzi aktualiza­

cja przez użytkownika informacji zawartej w zbiorze, kasowanie A

"News Roundup", Modern Data Systems. February 1968, str. 14.

starych danych, zamieszczanie nowych danych, modyfikacja aktual­

nych danych. Przy założeniu, że każdy z użytkowników, gdy zadaje pytanie, żąda informacji z ostatniej chwili, jedyną obecnie wy­

konalną metodą zapewnienia takiej informacji jest wyłączenie wszystkich zapytań odnoszących się do właśnie aktualizowanego rekordu lub zbioru. Takie zapytania muszą czekać, aż zostanie zakończony proces aktualizacji przetwarzanych rekordów danych.

/Gdy w rachubę wchodzą wielorakie zbiory, to jak zobaczymy, pro­

blem jest jeszcze poważniejszy/. Rozwiązanie tego problemu przez wyłączenie pewnych zapytań nie jest złe i prawdopodobnie pozos­

tanie jedynym możliwym do przyjęcia rozwiązaniem mechanizmu uaktualniania wspólnych zbiorów.

Sednem problemu wspólnych zbiorów jest niepewność odnośnie wieku i ważności informacji. Przypuśćmy, że użytkownik A przed­

stawia zapytanie i wyszukuje dane X, Podczas gdy użytkownik A bierze pod uwagę dane X, użytkownik B wprowadza jakąś transak­

cję, która dane X zmienia na dane Xt Zwykle użytkownicy A i B bezpośrednio nic nie wiedzą o swojej działalności i dlatego użytkownik A znajduje się wówczas w sytuacji, w której podejmu­

je pewn9 decyzje w oparciu o informacje, które - bez jego wie­

dzy - straciły-na wartości, a być może stały się całkowicie bezużyteczne. Jedynym wyjściem z tego kłopotliwego położenia, o którym nic nie wiemy, jest by system wskazał użytkownikowi A iż jego zapytanie zostało unieważnione. Wymaga to, by system był przez cały czas "świadom” , którymi danymi użytkownik się interesuje /opierając się na ostatnim zapytaniu/ i by albo wys­

iał automatycznie nową informację do każdego użytkownika, który otrzymał obecnie już przestarzałe dane, albo by wysyłał alarm żądający od tych samych użytkowników ponowienia zapytania.

146

-W rzeczywistości jest to tylko częściowe rozwiązanie. Rozwiązu­

je ono jedynie problem zapytań, które system otrzymał w ostat­

niej chwili. Jak wygląda ta sprawa dla użytkownika, który

przedstawił systemowi zapytanie pół godziny temu, następnie ko­

lejno zadał kilka dalszych zapytań /przy czym w międzyczasie miało miejsce podjęcie pewnego rodzaju decyzji lub rozwiązanie problemu/ i obecnie część zbioru, do którego skierował zapyta­

nia przed 30 minutami, przechodzi modyfikację? Czy to oznacza, że cała jego działalność w ciągu ostatniej pół godziny zostaje unieważniona? Czy system powinien mu zwrócić uwagę, że w wyniku wcześniejszego zapytania otrzymał dane obecnie już bezużytecz­

ne? Czy system z tego powodu powinien nawet zachowywać historię zapytań każdego z użytkowników? By odpowiedzieć na te pytania należy przeprowadzić ocenę wartości samej informacji«/W rozdzia­

le V bada się to zagadnienie/. Te aspekty problemu wspólnych zbiorów z pewnością zależą od istoty zastosowań, lecz wydaje się, że nikt bezpośrednio nie przedstawiał tego problemu. Suge­

rowałoby to iż nie jest to prawdziwy problem, albo że nie na­

tknięto się nań zbyt często by go wyłonić. Odnosimy wrażenie, że zachodzi ten ostatni przypadek, oraz oczekujemy, że w ciągu najbliższych pięciu lat nabierze on rozgłosu skoro tylko wejdą w życie bardziej wyszukane systemy wspólnych zbiorów.

2. Bardzo duże zbiory

Ogólną niedomogą większości dawniejszych systemów wielodos­

tępnych była niezdolność do tworzenia i manipulowania bardzo dużymi zbiorami danych. Na przykład obsługa wielodostępna fir­

my General Electric początkowo ograniczała wielkość zbiorów użytkowników do 6.144 znaków, świeższa wersja zezwalała na co

najmniej dv/a razy większą pojemność pamięci. Jednakże nawet systemy, które pozwalają na niezwyczajną /według obecnych norm/

pojemność zbiorów dla jednego użytkov7nika - rzędu, powiedzmy, miliona znaków - będą daleko za małe w stosunku do narastają­

cych potrzeb. Towarzystwa naftowe już w tej chwili utrzymują nadzwyczaj wielkie zbiory danych o ujęciach ropy naftowej, a towarzystwa ubezpieczeniowe korzystają z olbrzymich zbiorów danych dotyczących ich klientów. Ściśle mówiąc, jesteśmy przed dniem, w którym będą miały zastosowanie zbiory o pojemności mi­

liarda znaków.

Przyjmując, że jest dostępny sprzęt,w którym można umieścić bardzo duże zbiory /stacja komórek danych IBM 2321 posiada po­

jemność 400 milionów’ bajtów, lecz wolny dostęp/, oraz przyjmu­

jąc, że możemy wymyślić taką superstrukturę, która w ten spo­

sób organizuje zbiory iż można w nich umieszczać dane /techni­

ki podziału, metody katalogowania, taktyki badania zbiorów - zostały już od lat wypróbowane/, to wówczas stajemy przed naj- V7ażniejszą kwestią bardzo dużych zbiorów/ wielodostępnych: czas dostępu. Użytkownik pracujący w trybie wzajemnego oddziaływa­

nia chce otrzymać odpowiedź na swoje zapytani© .iuż obecnie, w ciągu kilku sekund, a nie w ciągu kilku minut. Dzisiejsze tech­

niki adresowania oraz środki przechowywania informacji po pros­

tu nie nadają się dobrze do natychmiastowego wyszukiwania infor­

macji z bardzo dużych zbiorów w środowisku wielodostępnym.

Ponieważ nie przewiduje się, by urządzenia pamięci - znów wchodzi w grę hierarchia pamięci - przeszły przez nagły prze­

łom w szybkości, pojemności, lub cechach funkcjonalnych przed końcowymi latami siedemdziesiątymi, natychmiastowe rozwiązanie

148

-problemu czasu dostępu może tylko wyjść od strony techniki ad­

resowania. Nawet wówczas, gdy wskutek pewnych innowacji wypro­

dukuje się bardzo duże, bardzo szybkie i ekonomiczne pamięci, to i wtedy pewne nowe zastosowania mogą być może narzucić na­

wet większe wymagania w stosunku do wielkości zbiorów, by w ten sposób skutecznie zniwelować postęp w technologii pamięoi.

Jednym z potencjalnych rozwiązań jest pamięć asocjacyjna, lub adresowana na zawartość. Rosnące znaczenie bardzo dużych

zbiorów ożywiło badania w tej dziedzinie, które w ciągu ostat­

niej dekady raz kontynuowano a potem z kolei wstrzymywano.

Pamięć asocjacyjna nie będzie posiadała konwencjonalnie formu­

łowanych adresów. "Odwołanie się do pamięci jest dokonywane przez określenie wszystkich lub którejkolwiek skojarzonej ko­

mórki /z innymi komórkami/, przy czym wzmiankuje się wszystkie komórki, które są skojarzone z tym polem.... W pamięci konwen­

cjonalnej skojarzenie zachodzi między fizycznym adresem a jego zawartością. Jednakże odwołanie się do pamięci może tylko nas­

tąpić przez określenie adresu, nie można bowiem bezpośrednio żądać dostępu do wszystkich komórek, których zawartość wynosi np. zero! Do prawdziwie asocjacyjnej pamięci dostęp dokonuje

się przez określenie którejkolwiek komórki z N komórek uczest- niczących w asocjacji." Prostym przykładem adresowania na za­

wartość jest książka telefoniczna. Tutaj asocjacja /skojarze­

nie/ - związek między dwoma pozycjami - zachodzi między nazwis­

kiem każdego abonenta a jego numerem telefonu, chociaż nawet

^ Wiliam L.Ash and Edgar H.Sibley, "TRAMP": An Interpretive Associative Processor with Deductive Capabilities", Procee­

dings, ACM National Conference. 1968, str. 143.

książka jest zamierzona jako urządzenie do tłumaczenia jedno­

kierunkowego /dane jest nazwisko, po prostu należy określić odpowiadający mu numer - działanie w odwrotnym kierunku nie posiada cech skojarzenia i wymaga przeszukiwania pozycji za pozycją/. W prowadzonych w chwili obecnej badaniach przede wszystkim przebadano możliwość wdrożenia tej koncepcji na sprzęcie i w dalszym ciągu w wyniku tych badań nie uzyskano ekonomicznie wykonalnej pamięci. Jak dotychczas, jedyną prak­

tyczną odpowiedzią na problem szybkiego dostępu do niezwyk­

le dużych zbiorów jest w dalszym ciągu wdrażanie oprogramowa­

nia w formie skojarzonych struktur danych.

3. Znaczenie powiązań między zbiorami

Pierwszorzędne znaczenie ma tutaj duża baza danych,w której pojedyncza transakcja wpływa na jeden zbiór, co z kolei wpły­

wa na związane z nim inne zbiory informacji. Taka "potokowa aktualizacja" jest skomplikowanym zadaniem nawet w niektórych systemach przetwarzania partiowego, jeśli do tego dodamy wie­

lu użytkowników, z których każdy jednocześnie oddziaływuje na różne zbiory, to wówczas problem łączności między zbiorami staje się niezwykle złożony. Jeśli system ponosi dodatkowe brzemię działania "na bieżąco" /real-time/, to wówczas łącz­

ność między zbiorami jest dodatkowo ograniczona surowymi wyma­

ganiami w stosunku do czasu. Problem aktualizacji wielorakich zbiorów może być postawiony następująco: jeśli zachodzi jakaś transakcja, która zmienia stan informacji w danym zbiorze, to zapytania dotyczące tego zbioru muszą być wstrzymane przez sys­

tem aż do momentu, gdy wszystkie związane zbiory zostaną zmody­

fikowane celem odzwierciedlenia tej zmiany. Jedyną możliwością

- 150

-wyboru, lub sankcją, jest dostęp do przestarzałej informacji*

Jak już poruszaliśmy to zagadnienie w odcinku dotyczącym

"wspólnych zbiorów", wysoka cena takiej sankcji zmienia się w zależności od istoty wchodzącego w rachubę zastosowania. Na przykład wartość aktualnej informacji jest oczywiście wyższa w wojskowych systemach dowodzenia i sterowania niż w syste­

mach sterowania zapasami dla produkcji, ponieważ w pierwszym przypadku stawka jest bardzo wysoka w określeniach ostateczne­

go przeżycia narodu. Dlatego zasadniczą cechą łączności między zbiorami jest czas dostępu w stosunku do aktualnej informacji.

W tych przypadkach, gdzie aktualna informacja posiada najwyż­

sze znaczenie, zazwyczaj użytkownik odczuwa zwiększony czas dostępu i na odwrót, czas dostępu może być bardzo krótki, jeś­

li wczorajsza informacja /lub z ubiegłej nocy, albo z ostat­

niej godziny/ jest praktycznie biorąc tak samo dobra jak przed chv/ilą odczytana.

Współwymienność także posiada duże znaczenie dla powiązań między zbiorami. Jest to kij, który posiada dwa końce: współ­

wymienność zbiorów między systemami wielodostępnymi, oraz współwymienność zbiorów między systemem przetwarzania partio­

wego a systemem wielodostępnym. Pierwszy problem posiada duże znaczenie gdy się przechodzi z zewnętrznych usług systemu wie­

lodostępnego do systemu wewnętrznego, lub może on się wysunąć na czoło o ile korzysta się z kilku usług wielodostępnych.

Zbiory wytworzone przez system IBM $60 są po prostu niezrozu­

miałe dla komputera PDP—10 i na odwrót. Czytelnik może tu pod­

stawić swoich ulubionych produc.entów oraz numery modeli sprzę­

tu. Drugi problem staje się oczywisty gdy zbiory wytworzone

przez system wielodostępny zostają poddane przetwarzaniu poś­

redniemu /off-line/ w systemie przetwarzania partiowego, albo gdy system przetwarzania partiowego tworzy zbiory, które będą używane w systemie wielodostępnym. 0 ile nie będą przedsięwzię­

te odpowiednie środki ostrożności w trakcie projektowania, to dwa różne programy wykonawcze, nawet na tym samym komputerze, zazwyczaj będą oczekiwały różnych struktur i formatów zbiorów.

0 ile stosuje się w tym przypadku różne komputery, to wówczas problem ten się zwielokrotnia.

Jeśli zbiory wytworzone w jednym systemie nie mogą być od­

czytane z pamięci lub ze środka łączności przez drugi system, to w takim przypadku chodzi o problem współwymienność! /zgod­

ności/ sprzętu a nie oprogramowania. Dla celu pośredniego tłu­

maczenia może być potrzebny specjalny procesor. Wszystkie inne przypadki są wariantami na temat obcych formatów. Można je roz­

wiązać przez wprowadzenie "wstępnych procesorów zbiorów" /lub

"procesorów końcowych"/, które przeformowują początkową struk­

turę zbioru na strukturę rozpoznawalną przez system docelowy, lub można je rozwiązać przez modyfikowanie /jeśli nie zaprojek­

towanie/ każdego systemu w taki sposób, by wykrywał on i akcep­

tował format zbiorów z każdego innego systemu, lub przez za­

projektowanie od samego początku "uniwersalnej" struktury zbio­

rów, w miarę konieczności z dobrze określonymi specjalnymi wa­

riantami. Omawiane zadanie może być trudne, lecz nie do nie- przezwyciężenia.

Ostatnim aspektem tych rozważań na temat powiązań między zbiorami jest problem płaszczyzny styku /interface/ między sie­

ciami komputerów. Łączność między bazami danych a komputerami

- 152

-jest żywotnym składnikiem każdej sieci systemu informacji. Pew­

na liczba takich sieci znajduje się w opracowaniu, ponieważ kilka organizacji przedłożyło koncepcję publicznej sieci kompu­

terowej. Agencja Przodujących Projektów Badawczych /ARPA/ two­

rzy sprzężoną sieć kilku systemów wielodostępnych, którą wspie­

rała finansowo /patrz Tablica 12/. Sieć ta będzie mieszaniną różnorodnych, dużych i małych»maszyn drugiej i trzeciej genera­

cji, reprezentujących kilku producentów. Computer Sciences Corporation buduje nieco podobną ogólnonarodową sieć, lecz uży­

wa do tego celu jednolitych komputerów regionalnych /UNIYAC 1108/. Wydawnictwa gospodarcze oraz publikacje różnych przedsię­

biorstw informują nas regularnie o innych bliskich realizacji sieciach komputerów. Piśmiennictwo jest już od dawna lekceważo­

ne, lecz stanie się nieczytelnym gryzmołem, o ile nie zostaną przedsięwzięte pewne kroki celem zapewnienia normalizacji. Nie wystarcza przyjęcie kodu ASCII /American Standard Code for In­

formation Interchange/, prędzej czy później muszą zostać usta­

nowione normy dla formatów danych i komunikatów celem współpra­

cy między komputerami, oraz musi zostać ustanowiony protokół łączności. Użytkownik powinien być odizolowany od tych wewnę­

trznych problemów i nie należy mu narzucać żadnych warunków w tym względzie.

4. Regeneracja

"Regeneracja" w tutaj użytym znaczeniu jest zdolnością od­

tworzenia systemu do stanu działania po pewnym zdarzeniu, któ­

re spowodowało częściowe jego niedziałanie. Zakres takiego przypadku może sięgać od błędu parzystości do awarii systemu, i w wyniku może powstać stan wyrażający się bądź to małą

przer-wą w obsłudze bądź nawet katastrofą. Zamierzeniem zdolności regeneracji danych jest w każdym przypadku uchronienie użyt­

kownika przed utratą informacji. /Wprowadziliśmy ten przed­

miot przy omawianiu niezawodności i odłożyliśmy pełniejsze je­

go omówienie do niniejszego odcinka celem przedstawienia go w kontekście zarządzania danymi/.

Klasycznym przykładem tego problemu jest użytkownik, który spędził długie godziny przy swoim terminalu tworząc zbiór dla dalszego wykorzystania i gdy zbliżał się do zakończenia sys­

tem uległ awarii. Gdy system doprowadzono do porządku, zbiór użytkownika tajemniczo zniknął. Chociaż taka sytuacja zdarza się w obecnych systemach znacznie rzadziej, jest to godne za­

pamiętania doświadczenie dla wielu użytkowników i z pewnością przedstawia potrzebę istnienia zdolności odpowiedniej regene­

racji.

Jak już wcześniej to omawiano, współczesne systemy wielo­

dostępne posiadają pewną formę zdolności restartu. Technika

’'fotografowania” stanu systemu wydaje się być stosunkowo sku­

teczna dla odtwarzania programów i ograniczonej ilości danych, lecz system zarządzania danymi nie może w sposób ciągły two­

rzyć kopii zbiorów, gdy zachodzą w nich zmiany, dla przypusz­

czalnego późniejszego wykorzystania. Ostatnio stała się popu­

larna technika zwana kopiowaniem przyrostów w zbiorach.

Kopiuje się okresowo tylko te części zbiorów, które się zmie­

niły od momentu ostatniej "fotografii” systemu. Powstała teo­

ria, która twierdzi iż zbiór może zostać odtworzony po katas­

trofie przez wzięcie jego starszej kopii i kolejne nanoszenie

154

-zmian w rekordach, w ten sposób rekonstruując jego genealogię.

Krytycznym punktem w tej metodzie jest to, że sam system za- rządania danymi oraz jego rekordy we wszystkich zbiorach po­

winny przetrwać katastrofę nieuszkodzone, by mogły przystąpić do zadania odtwarzania uszkodzonych zbiorów.

Innym ważnym aspektem zdolności regeneracji systemu jest koordynacja restartu naruszonych programów i zregenerowanych zbiorów. Na przykład jeśli kompilator FORTRAN został przerwa­

ny przez awarię, to jego zbiór wejściowy musi zostać "przesu­

nięty” do ostatniego znanego prawidłowego badanego przez kom­

pilator miejsca a przebieg logiki kompilatora musi restarto­

wać w odpowiadającym temu miejscu momencie czasu. Podobne wy­

magania mają miejsce w przypadku zbiorów wyjściowych dla wy- listowania i dla wytworzonych kodów, jak również dla prowizo­

rycznych zbiorów tablic, etykiet itp. W obliczu takich kompli­

kacji, oczywiście z punktu widzenia projektanta systemu, naj­

łatwiejszą techniką regeneracji jest żądać, by każdy użytkow­

nik rozpoczynał swoją pracę od punktu wyjściowego, skreślając zaszłości.

5. Utrzymanie

Problem utrzymania zbiorów polega w zasadzie na usuwaniu z nich zdezaktualizowanych danych. Większość systemów dokonuje tego przez żądanie od użytkowników określenia czasu "życia”

ich zbiorów /"nie niszczyć zbioru do takiej a takiej daty"/, lub zapisując częstotliwość korzystania /zbiory "często" uży­

wane pozostają czynne, podczas gdy zbiory najmniej używane, o ile nie są zabezpieczone w jakiś inny sposób, mają tendencję

do "wypadania" z systemu/, albo przez połączenie obu tych me­

tod. Użytkownicy, którzy są ludźmi i cierpią na omylną pamięć, mogą doznać przykrego zawodu, gdy żądają dostępu do zbioru, który, ku ich przerażeniu, został wczoraj wymazany z systemu /zgodnie z harmonogramem, jeśli się patrzy na to od strony sy­

stemu/. W systemach bardziej uwzględniających taką ewentual­

ność obecnie praktykuje się wcześniejsze komunikowanie właści­

cielom zbiorów terminu wymazania, tak że użytkownik może żądać, o ile to konieczne, wstrzymania wyroku dla jego zbioru.

Proces kasacji jest złem koniecznym, ponieważ środki pamię­

ci o skończonej pojemności nie mogą pomieścić stale rosnącej liczby zbiorów. Stare zbiory, które już nie są użyteczne, mu­

szą ustąpić miejsca nowym zbiorom. W typowych przypadkach, stare zbiory, które muszą być zatrzymane z powodu ich wartości historycznej, rezydują w archiwum na taśmach magnetycznych.

W każdym przypadku problem utrzymania zbiorów wydaje się być mniej palący niż inne aspekty zarządzania danymi, chociaż na­

wet użytkownicy od czasu ¿0 czasu bezpośrednio się z nim sty­

kają. Problem ten jest co najmniej częściowo rozwiązany.

Obecnie powinno być widoczne, że to co uważaliśmy jako wy­

dzielone aspekty zarządzania danymi, w rzeczywistości się na­

kłada na siebie, formując zbiór powiązanych ze sobą problemów, li ciągu najbliższych kilku lat waga zarządzania danymi znacz­

nie wzrośnie, jako problemu samego dla siebie, a nie jako częś­

ci systemów wielodostępnych, jak tylko komputery będą stosowa­

ne do problemów cechujących się stale rosnącą pojemnością da­

ne do problemów cechujących się stale rosnącą pojemnością da­

W dokumencie Oprogramowanie wielodostępu (Stron 147-192)