Samodzielne komputery

Problemem o stale rosnącym znaczeniu, z jakim przychodzi nam się zmierzyć w informatyce, jest złożoność. Staje się ona barierą postępu. Musimy ją przełamać, tworząc systemy przetwarzania autonomicznego.

Problemem o stale rosnącym znaczeniu, z jakim przychodzi nam się zmierzyć w informatyce, jest złożoność. Staje się ona barierą postępu. Musimy ją przełamać, tworząc systemy przetwarzania autonomicznego.

"Postęp cywilizacji można mierzyć liczbą operacji i działań, które możemy wykonywać bez potrzeby myślenia o nich" - powiedział Alfred North Whitehead, znany amerykański matematyk. Zdaniem naukowców z laboratoriów badawczych IBM to właśnie zdanie jest kluczem do następnej ery rozwoju informatyki. Obecnie znajdujemy się coraz bliżej ściany - coraz więcej coraz bardziej złożonych systemów komputerowych wymaga rosnącej rzeszy specjalistów potrzebnych do ich oprogramowania i obsługi. Problem nie zniknie, ale będzie narastał, podobnie jak nasze uzależnienie od środowiska informatycznego. Potrzebne są rozwiązania, które będą zdolne do samoregulacji, podobnie jak ludzki system nerwowy, który reguluje ludzkie ciało i strzeże go. Nie musimy myśleć o tym, że przy wysiłku nasze serce powinno bić szybciej, a gdy jest gorąco, że trzeba się pocić, by organizm się nie przegrzał, że gdy jest bardzo jasno, to trzeba zwęzić źrenice w oczach. Tymczasem w przypadku systemów informatycznych ciągle musimy koordynować i nadzorować pracę różnych ich elementów.

Na końcu drogi znajduje się wizja, wydawałoby się utopijna, by tylko wskazać komputerom, co mają zrobić, te zaś same zajmą się dopracowaniem szczegółów. Słowem, wystarczy podanie strategii, implementacja natomiast byłaby zautomatyzowana. Takie podejście określa się mianem autonomicznego przetwarzania (autonomic computing). Jego promotorem jest IBM. Paul Horn, szef laboratoriów badawczych IBM, przygotował w ub.r. publikację, swego rodzaju manifest poświęcony przetwarzaniu autonomicznemu. IBM stara się, by ideą autonomicznego przetwarzania zainteresować inne koncerny informatyczne, takie jak Microsoft czy Hewlett-Packard. Współpraca różnych firm jest konieczna z uwagi na heterogeniczność środowiska pracy systemów informatycznych. Całość musi działać w sposób autonomiczny, by ta autonomiczność rzeczy- wiście mogła przynieść rezultaty.

System samodzielny

Najbardziej efektywne komputery byłyby złożone z wielu małych, wymiennych elementów, które zostałyby wyposażone w zdolność do monitorowania własnej wydajności i umiejętność reagowania na pojawiające się problemy, bez konieczności oczekiwania na instrukcje z centralnego procesora. Mówi się o systemach SMASH (Simple, MAny, SelfHealing - czyli złożonych z prostych, mnogich i zdolnych do samouzdrowienia elementów).

Tutaj inspiracją może być biologia: przecież ból palca ręki nie powinien przeszkodzić człowiekowi w chodzeniu. Tymczasem tak często dzieje się z komputerami: drobny problem w sprzęcie czy zwłaszcza oprogramowaniu nierzadko prowadzi do zatrzymania pracy systemu.

Siedem elementów

System przetwarzania autonomicznego powinien być charakteryzowany przez następujące atrybuty:

  • Jest wyposażony w wiedzę o sobie samym, tzn. jego komponenty muszą mieć jakiś sposób identyfikacji, dzięki której system ma informacje o każdym z nich, jego stanie, maksymalnej i optymalnej wydajności itp. System musi również dysponować wiedzą o sposobie połączenia z innymi systemami, by mógł określić, jakie zasoby może "wypożyczyć" albo "pożyczyć", które mogą być współdzielone, a które powinny być izolowane.

  • Musi być wyposażony w możliwości rekonfiguracji w zależności od różnych warunków (czasem nieprzewidywalnych). Chodzi tu o daleko posunięty automatyzm, pozwalający na dynamiczne dopasowanie konfiguracji do zmian otaczającego środowiska.

  • Zawsze szuka dróg optymalizacji swojej pracy. Będzie monitorował pracę swoich poszczególnych części, optymalizując wykonywaną pracę, tak aby osiągnąć zdefiniowane wcześniej cele pracy systemu.

  • Musi być zdolny do samodzielnego "podniesienia się" po zdarzeniach powodujących zaburzenia jego pracy. Musi być więc zdolny do detekcji problemów, także tych potencjalnych. Wówczas powinien znaleźć alternatywną drogę, czasem poprzez automatyczną rekonfigurację i wykorzystanie pozostałych zasobów.

  • Wirtualny świat bynajmniej nie musi być ani trochę bezpieczniejszy od rzeczywistego, tak więc system autonomiczny musi być ekspertem w ochronie samego siebie. Musi wykrywać i identyfikować różnego rodzaju ataki, broniąc się przed nimi, tak aby zachować ogólną spójność i sprawność całego systemu.

  • Otoczenie systemu autonomicznego przetwarzania nie może być hermetyczne. Chociaż taki system jest niezależny w zakresie zarządzania samym sobą, to przecież musi funkcjonować w heterogenicznym świecie, gdzie jedynym rozwiązaniem będzie stosowanie otwartych standardów.

  • System przetwarzania autonomicznego będzie ukrywał w możliwie dużym stopniu przed otoczeniem swoją złożoność. Musi tak zarządzać zasobami IT, by zmniejszyć przepaść między potrzebami użytkownika a konkretną implementacją konieczną do osiągnięcia tych celów, bez potrzeby angażowania użytkownika do stworzenia tej implementacji.

    Źródło: IBM Research


  • TOP 200