Programowanie aspektowe

Programowanie dużych systemów rozproszonych jest trudne, niezależnie od użytych technologii.

Programowanie dużych systemów rozproszonych jest trudne, niezależnie od użytych technologii.

Od dawna ludzie marzyli o możliwości użycia robotów, które zastąpią ich w miejscach niebezpiecznych, niedostępnych czy zanieczyszczonych. Takie roboty na tyle często pojawiają się w filmach s-f, że w powszechnej świadomości są raczej wytworami literatury lub filmu niż rzeczywistymi urządzeniami. Tymczasem w laboratoriach naukowców fantazja ta jest przekształcana w realne rozwiązania, wykonywane głównie dla potrzeb wojska, lecz coraz częściej znajdujące zastosowanie także w życiu codziennym.

Podczas wojny w Zatoce Perskiej wojska amerykańskie i ich sprzymierzeńcy stosowali sterowane zdalnie, niewielkie, bezzałogowe samoloty zwiadowcze Pioneer, umożliwiające śledzenie ruchów wojsk irackich, wykrywanie jego instalacji i obserwację wyników bombardowań. Wykonały one 330 lotów, spędzając ponad 1000 godzin w powietrzu. Takie samoloty to jednak dopiero początek drogi. Obecnie testuje się pojazdy i roboty obdarzone inteligencją, zdolne do podejmowania samodzielnych decyzji lub komunikowania się z podobnymi robotami w celu wypracowania optymalnego rozwiązania opartego na danych, pochodzących z wielu źródeł.

Nadchodzi era minimaszyn

Wyobraźmy sobie inteligentny budynek wyposażony w dużą liczbę minisiłowników hydraulicznych, podejmujących samodzielnie decyzje o zmianie sił i naprężeń w konstrukcji w zależności od naprężeń występujących podczas trzęsienia Ziemi lub huraganu. Taki budynek będzie zdecydowanie bardziej odporny na kataklizmy niż konstrukcje tradycyjne.

Wojskowi marzą o armii prawie niewidocznych robotów, rozmiaru ziarnka maku, które rozrzucone na terytorium przeciwnika komunikują się między sobą i przekazują do centrali inteligentnie przetworzoną informację.

Przykłady można by mnożyć, bo praktycznie nieograniczone są możliwości stosowania minimaszyn w budownictwie, przemyśle czy wojsku. Lecz można zadać pytanie, jaki to ma związek z programowaniem? Okazuję się, że istotny.

Systemy rozproszone

Zsynchronizowanie działania setek lub tysięcy samodzielnych urządzeń to poważne zagadnienie informatyczne. Lecz moc obliczeniowa staje się coraz tańsza, a procesory coraz mniejsze. Era masowo równoległych komponentów obliczeniowych pracujących w naszym najbliższym otoczeniu jest bliższa niż nam się wydaje.

PARC nadal przoduje

Laboratoria badawcze Xeroxa PARC (Palo Alto Research Center) są znane z wielu innowacji informatycznych, które weszły do naszej codzienności informatycznej w formie produktów handlowych różnych firm. To właśnie tam Doug Engelbart i Bill English opracowali mysz, Alan Kay był głównym pomysłodawcą graficznego interfejsu użytkowego i twórcą pierwszego języka obiektowego Smalltalk.

Tradycje badań podstawowych są nadal kontynuowane w PARC. Grupą naukowców zajmujących się problemami programowania aspektowego (Aspect-Oriented Programming - AOP) kieruje Gregor Kiczales. Jego zdaniem, problemy programowania aspektowego cieszą się coraz większym zainteresowaniem w kołach naukowców, choć na razie nie widać wyników, które dałoby się wdrożyć bezpośrednio w praktyce.