Akademia Górniczo - Hutnicza
im. Stanisława Staszica
Projekt z przedmiotu:
Podstawy Telekomunikacji
Sieci inteligentne i realizacja usług zintegrowanych
Projekt wykonali:
Grzegorz Łuczywo
Wojciech Pluszyński
Marek Pałka
Sieci inteligentne na przykładzie produktów Alcatel'a.
wstęp
wprowadzenie SCE
komponenty wchodzące w skład SCE
ewolucja SCE
ewolucja technologii
proces ewolucji sfery programowej
niezależność sieci
otwartość
nowe wyzwania
nowa architektura
nowy model rozwoju
hierarchia usług
nowe zastosowania
podsumowanie
Architektury oprogramowania, linie produktów i ramki.
wprowadzenie
wymagania
rozwój linii produktów
analiza i modelowanie rodzin produktów
definicja i opis linii produktów
pochodzenie odmian nowego produktu
początki architektur linii produktów
ramka dla aplikacji czasu rzeczywistego
zatwierdzenie architektury i opracowanie narzędzi
ramka: model i technologia
model obiektu i usługi
konfiguracja
niezawodność
ewolucja on - line
migawkowa technologia ramek
podsumowanie
Technologia agenta i jego aplikacje.
wprowadzenie
co to jest agent?
klasyfikacja agentów
mobilni agenci
- zdalna procedura wezwania a agenci
- najważniejsze pojęcia
- platformy mobilnych agentów
mobilne skrypty
zaawansowane aplikacje telekomunikacyjne
potencjalne strefy
zarządzanie siecią
zarządzanie serwisami
sieci inteligentne
inne aplikacje bazujące na agencie
handel elektroniczny
PDA
osobisty asystent podróży
elektroniczna sekretarka
wyszukiwanie informacji
kontrolowanie działania platform
inne dziedziny
inteligentni agenci
podsumowanie
Sieci inteligentne na przykładzie produktów Alcatel'a
Wstęp
Pomysł Inteligentnych Sieci (IN) narodził się pod koniec lat osiemdziesiątych i miał na celu wprowadzenie pełnego zakresu usług. Głównym celem było rozszerzenie usług dla większej liczby odbiorców tj: dostawców sieci inteligentnych (IN) a w szczególności dostawców usług tych sieci. Następnie pojawiła się potrzeba umożliwienia modernizacji i dostosowywania usług do potrzeb klienta.
Alcatel napotkał na te wszystkie wymagania poprzez rozwijanie usługi tzw. tworzenia środowiska (ang. Service Creation Environment) (SCE) która została wprowadzona w roku 1993, kiedy Alcatel świadczył usługi w zakresie sieci inteligentnych dla Singapore Telecom. W zakres usług oferowanych dla międzynarodowego oddziału Singapore Telecom wchodziły:
Alternatywna usługa Billingu (ang. Alternate Billing Service ABS) która jest podobna do usług związanych z wirtualnymi kartami kredytowymi,
Zaawansowana usługa tzw. darmowych numerów (ang. Advanced Freephone Service AFS) oraz szereg usług pochodnych,
Międzynarodowa prywatna, wirtualna siec (ang. International Virtual Private Network IVPN).
To są trzy główne rodziny usług sieci inteligentnych.
Wprowadzanie SCE
Pierwsze uruchomienie usługi SCE przez Alcatel'a znacząco unowocześniło świadczenie usług w szczególności jeżeli chodzi o koszty (zmniejszenie o około sześć razy) oraz czas wdrażania (zmniejszone o około 1/3). Było to możliwe dzięki pełnemu wykorzystaniu następujących cech:
Możliwość wielokrotnego wykorzystania programów:
SCE może być używane w celu stworzenia usługi logicznej (np. skrypty) poprzez montowanie poprzednio zdefiniowanych bloków programowych znanych pod nazwą (ang. Service Independent Building Blocks (SIB)). Podczas pierwszego wprowadzania SCE, analiza możliwości ponownego użycia programów wykazała ze 47% SIB-ów zostało użytych w trzech rodzinach usług wymienionych powyżej, podczas gdy dalsze 22% zostało użyte w przypadku dwóch usług a 33% użyto tylko do jednego rodzaju usług.
Sprzętowa generacja kodu.
SCE zawiera sprzętowy generator kodu który wytwarza logiczny kod usługi. Automatyczna generacja posiada ważną cechę, która pozwala eliminować potrzebę ludzkiej interwencji przez to redukuje czas rozwoju i powoduje wzrost wydajności.
Dostrzeżono potrzebę umożliwienia klientowi tworzenia jego własnych usług. Głównym powodem była struktura SCE Alcatel'a która bazowała na dwóch blokach:
SCE (lub SCE wysokiego poziomu) używana do tworzenia logicznych usług poprzez montowanie SIB-ów.
Service Development Environment SDE - usługa rozwoju środowiska używana do budowania bloków programowych stosowana przez SCE do stworzenia usługi.
Aby stworzyć kompletna usługę, projektant musi użyć SDE w celu rozwinięcia SIB-ów które powinny zostać przetestowane w punkcie kontroli Alcatel'a (ang. Alcatel Service Control Point (SCP) ) . W pierwszym przypadku SCP pracował na zastrzeżonej maszynie Alcatel'a z jej własnym systemem operacyjnym. Aby umożliwić klientom rozwijanie ich własnych SIB-ów przy pomocy SDE zaistniała potrzeba większej otwartości i dostępności.
Tym niemniej klienci posiadali możliwość używania SCE wysokiego poziomu i mogli używać predefiniowanych ustawień SIB-ów aby wprowadzić ich usługi. Istotnie, od początku kiedy Alcatel wprowadził swoje SCE różniły się one od tych oferowanych przez konkurencję ponieważ produkty Alcatel'a pokrywały wszystkie programowe komponenty w zintegrowanej formie. I to odegrało kluczową rolę w sukcesie inteligentnych sieci (IN) Alcatel'a.
Komponenty wchodzące w skład SCE to:
usługi logiczne: programy związane z kontrolą, wywołaniem i oferowaniem usług (pracujące na SCP).
zarządzanie usługami: programy dotyczące modelu jak i skojarzonej zdolności zarządzania usługą ( pracujące na Service Management Point SMP - punkt zarządzania usługą ).
Graficzny interfejs zarządzania usługą (GUI) (ang. Service Management Graphical User Interface) : graficzny interfejs ułatwia zarządzanie usługami pod względem zaopatrywania, kolekcji statystyk , zarządzanie powiadamianiem itp.
Ewolucja SCE
Od samego początku firma Alcatel nieustannie dążyła do podniesienia jakości SCE i kierowała się wymaganiami stawianymi przez klientów.
Ewolucja Technologii.
Pierwsza racjonalną podstawą do wprowadzenia zmian była potrzeba radzenia sobie z nieustanną ewolucją technologiczną i trendami rynku, który coraz częściej skłaniał się w kierunku systemu operacyjnego UNIX. SCE rozwinął się w celu uwzględnienia nowych potrzeb rynku. Produkty SCE serii `0' dla platformy inteligentnych sieci (zarówno SCP jak i SMP ) bazowały na Alcatel 8300.
Wraz z produktami serii `1' , SCE dostarczyło funkcje SMP pracujące na komercyjnych platformach sprzętowych pod systemem UNIX..
Produkty serii `2' posiadały funkcje SCP dostarczane przez SCE i pracujące pod UNIX-em, dlatego też nawet programy czasu rzeczywistego pracowały w tym systemie używając standardowej komercyjnej bazy danych.
Jądro SCE zostało zaadoptowane aby wspierać nowy sprzęt i oprogramowanie. Tym niemniej istotne jest aby wspomnieć , że koncepcja SCE oraz interfejsu użytkownika pozostała niezmieniona. Unowocześnienie dotyczyło generatora kodu różnych elementów SCE / SDE. Zamiast pisać programy w języku C i używać podstawowych OS dla Alcatel'a 8300, SCE produkuje teraz programy w C++ używając systemu UNIX.
Narzędzia produkcyjne, które są częścią SCE zostały przystosowane aby współpracować z nowym sprzętem, nową architekturą i UNIX-owym środowiskiem rozwoju programów. Główną korzyścią owej ewolucji był fakt, że zachowywano ten sam zasadniczy projekt usług. Konsekwentnie graficzne źródło usług w produktach serii `0' SCE jest takie samo w produktach np. serii `2'.
Proces ewolucji sfery programowej.
Kolejną siłą wymuszającą zmiany była potrzeba modernizacji oprogramowania w celu zredukowania czasu wdrażania. Odnośnie zmian dotyczących dostępnego oprogramowania to łatwość użycia SCE pozwoliła na znaczne zmniejszenie kosztów ( ok. połowy jeżeli porównamy produkty serii `0' a `1' ). Czas wdrażania nowych produktów na rynek zmniejszył się do sześciu miesięcy. Tym niemniej aby poprawić jakość oprogramowania i jednocześnie uporać się z eksplozją nowych wersji usług w SCE zintegrowano jednocześnie trzy z nich.
W produktach serii `1' emulator składa się z dwóch części, pierwsza symulująca zachowanie się sieci i kolejna symulująca Alcatel 8300 OS. Celem było uruchomienie usługi na platformie UNIX-owej. W produktach serii `2' narzędzie to zintegrowano z SCE aby dać możliwość testowania usługi we własnym zakresie. W produktach tej serii sieć jest symulowana na samym szczycie systemu (ang. SS7 Signaling System No 7) posiadającego charakter stosu chociaż testowana usługa pracuje na platformie docelowej .
Kolejną modernizacją wprowadzoną w SCE jest powiązanie możliwości tworzenia i utrzymywania baz danych zawierających informacje o przeprowadzonych testach. Nowa SCE dostarcza również szereg metod pozwalających na automatyczne kojarzenie wyników owych testów. To pozwala na przeprowadzanie w pełni odwracalnych testów z `dnia na dzień'.
Trzecią zmianą dostarczającą pełen łańcuch narzędzi ma na celu integracje bazy danych z pełną historią umożliwiająca wszelkie modyfikacje dotyczące środowiska programowego.
SCE został uzupełniony o programowy proces poprawy (SPI Software Process Improvement) - program wprowadzający w życie proces modernizacji.
Niezależność sieci.
Trzecią racjonalna podstawą unowocześnienia SCE była ewolucja samej sieci. Dwa główne nurty to - ewolucja protokołu sieci inteligentnych (ang. Intelligent Application Part (INAP)) i generalizacja funkcji punktu przełączeniowego usługi (ang. Service Switching Point (SSP)). Kiedy sieć złożona jest z przełączników od różnych dostawców SCE musi radzić sobie z problemem niejednorodności sieci. Sposób w jaki koncepcja SIB-ów została wprowadzana osiągnęła jeden z głównych celów tj. prawdziwą niezależność bloków programowych od sieci (także tych niejednorodnych). Istotnie SCE może być powiązany z różnymi bibliotekami SIB-ów dostosowanych do różnych zachowań przełączników i różnych wersji protokołów INAP. W wielu sieciach SCE Alcatel'a zezwala aby usługi komunikowały się z różnymi przełącznikami, przystosowując usługi logiczne do zachowań przełączników w sposób niewidoczny dla użytkownika. Innymi słowy usługa jest przez to unikatowa i zarządzana centralnie przez SMP.
Otwartość
Czwarta zmiana jest ściśle związana z wymogami stawianymi przez rynek w celu większej integracji systemów sieci inteligentnych istniejących w niejednorodnych systemach informacyjnych klienta: (ang. Customer Care and Billing Service - Opieka nad klientem i usługa billingu (CCBS)) oraz (ang. Operations Support Systems - wspomagające systemy operacyjne (OSS). Wymaga to otwartego interfejsu SMP.
Możliwości WEB interfejsu : SCE zostało tak przystosowane aby produkować usługi podczas cyklu rozwoju, applety JAVA które uruchamiają zarządzanie usługami GUI dla klientów SMP.
Interfejs COBRA zdefiniowany przez IDL: SCE generuje również definicje interfejsu SMP w standardowym formacie IDL razem ze skojarzonym serwerem COBRA (ang. Common Object Request Broker Architecture ) To daje klientowi dostęp do standardowych aplikacji programujących interfejs (ang. Application Programming Interface API) co pozwala na pełną integracje SMP z systemem informacyjnym klienta poprzez rozwijanie klienta COBRA.
SCE zawiera narzędzia modelujące dane które pozwalają projektantowi usługi importować bądź eksportować część wzoru spokrewnionego z usługą.
Nowe wyzwania, Nowe ewolucje.
Jak tylko rynek powiększał się a oczekiwania użytkowników dotyczące możliwości usług wzrastały, SCE stanął przed nowymi wyzwaniami:
Architektura IN jest coraz mocniej wykorzystywana aby kontrolować publiczną tradycyjną sieć telefoniczną (ang. Public Switched Telephone Network (PSTN)) i publiczną mobilną sieć telefoniczną (ang. Public Land Mobile Network (PLMN)). To powoduje ogromny rozwój sieci inteligentnych. Wywiera mocny wpływ na obecna architekturę pod względem zarządzania (statystyki, zaopatrywanie) i dostępu do baz danych.
Wzrastająca popularność protokołu internetowego IP(ang. Internet Protocol) w celu wymiany danych i szybki rozwój Internetu wymaga aby sieci inteligentne posiadały odpowiednią architekturę.
Liczba dostarczanych usług rośnie w miarę jak rośnie liczba dostawców tych usług.
Te nowe wyzwania powodują , że koncepcja sieci inteligentnych zmienia się na kilka sposobów.
Nowa architektura.
Kilka architektonicznych ulepszeń pomogą złagodzić obecne ograniczenia:
Klaster SMP: Aby przezwyciężyć ograniczenia w zarządzaniu działalnością, która spowodowana jest ekspansją funkcji SMP.
Koncepcja SDP: Pozwala logicznej usłudze być odizolowanej od danych. Sposobem na przezwyciężenie ograniczeń dostępu do baz danych jest przemieszczanie ich pomiędzy różnymi węzłami sieci. Adresowanie odpowiedniego SDP jest realizowane przez SCP w której usługa logiczna pracuje. Obecnie powszechna staje się standaryzacja SDP (ang. Service Data Point (SDP))
Nowy model rozwoju.
Aby być w stanie rozwinąć dużą liczbę usług , Alcatel jako lider w dziedzinie sieci inteligentnych zmuszony jest ponownie podnosić wydajność programową. Założeniem architektury SDP jest oddzielenie usług logicznych. Nowy model rozwoju oddziela dane softwarowe od maszyny, która będzie używała tych danych. Separacja pozwoli na wydajniejsze ponowne użycie kodu przeważnie niezależnego od zewnętrznych interfejsów. W modelu tym maszyna pozostaje niezmieniona bez względu na interfejs, natomiast zmienione zostają dane. Można powiedzieć, że główny krok w kierunku zmian został wykonany. Osiągnięcie celu - umożliwienie klientom rozwijania usług we własnym zakresie jest możliwe jeżeli ten nowy model zostanie rozszerzony również do usług danych sterowanych (ang. data driven services).
Hierarchia usług.
Hierarchia usług musi być wprowadzona aby umożliwić dystrybucję inteligencji na różne części sieci (terminal - klient - serwer ). To są naturalne dążenia do osiągnięcia w pełni koncepcji SCE dotyczącej możliwości ponownego wykorzystania produktów: jako że SCE jest narzędziem pozwalającym na budowanie `inteligencji' poprzez składanie bloków programowych to ponowne wykorzystanie zależne jest od definicji bloków. Początkowo blok został zdefiniowany jako SIB, który wprowadza w życie daną funkcję , później blok zaczęto traktować jako `makro SIB' który wprowadza kilka funkcji jednocześnie. W ostatniej fazie rozszerzono definicję bloku do całkowitej logiki usługi. Centrum porozumiewawcze przerodzi się w całkowicie odseparowane od przepływu wiadomości procedury porozumiewania. W fazie produkcji projektant decyduje jak i gdzie wprowadzić usługi i jak wiadomość będzie przekazywana.
Nowe zastosowania.
Dzisiaj głównym atutem SCE Alcatel'a jest fakt , że potrafi używać aplikacji niezależnie od protokołu interfejsu a zatem otwiera drogę do szerszego wykorzystywania SCE. To poszerza możliwości używania SCE w przypadku usług, które nie bazują na protokole INAP. W rezultacie pełen potencjału SCE może być teraz używany do rozwijania elementu bądź aplikacji. W przeszłości ewolucja platform IN zmierzała w stronę rozszerzenia usług do usług głosowych. Teraz ten sam rodzaj ewolucji rozszerzy usługi IN do usług zarządzającymi danymi. Połączenie tych platform pozwoli na rozwinięcie usług, które korzystają zarówno z możliwości IP jak i głosowych ze znaczną korzyścią ponieważ te oba środowiska są teraz połączone w jeden.
Podsumowanie.
Zastosowanie SCE doprowadziło do tego, że Alcatel stał się światowym liderem w technologii sieci inteligentnych (IN). Tym niemniej obecny rynek IN przyciąga coraz to więcej nowych klientów zarówno ze świata technologii jak i z obozu software - owego. Zważywszy na te wszystkie zmiany jest rzeczą zasadniczą dla firmy Alcatel aby podnieść jakość SCE żeby sprostać nowym wymaganiom rynku i zachować pozycję lidera w dziedzinie IN. Wykonuje się to w bardzo spójny sposób w pełni wykorzystując istniejące atuty i łącząc je z nadchodzącymi technologiami.
2. Architektury oprogramowania, linie produktów i ramki.
Wprowadzenie
Kluczową sprawą podtrzymania wzrostu znaczenia produktów informatycznych w telekomunikacji jest potencjał dla gwałtownego rozwoju i efektywnego wykorzystania wielkiej ilości oprogramowania stanowiącego bogatą część produktów. Podstawą tego jest przenikanie się rynków telekomunikacyjnego i informatycznego, które zarówno tworzą możliwości wspólnego rozwiązywania problemów jak i skupiają technologie w obu sektorach w obszarze usług, zaawansowanych aplikacji, systemów i platform. Im bardziej konkurencyjne rynki naciskają na gospodarowanie kosztami i czasem dostaw tym bardziej przetwarzanie oprogramowania, metod i technik stają się kluczowymi czynnikami konkurencji. To jedna z wielu okoliczności, które promują rozwój oprogramowania 'montowanego' jako ważna reakcja na techniczne i komercyjne wymagania rynków 'hi-tech'. Budowa architektoniczna, ponowne użycie składników oprogramowania, wrażliwe aplikacje, wydajne struktury; to wszystko obrazuje możliwości technologiczne. Wszystko to pomaga osiągnąć wysoki poziom wydajności oprogramowania oraz pozwala na obniżenie kosztów przez zwiększenie produkcji a jednocześnie oferuje szybką niskonakładową przeróbkę aby sprostać potrzebom różnych rynków, których wymagania stają się coraz bardziej ważne na arenie telekomunikacji.
Wymagania
Produkty informatyczne w telekomunikacji, szczególnie usługi i zaawansowane aplikacje stawiają czoła ważnym, krytycznym wyzwaniom biznesu pod względem wydajności, szybkości rozwoju, dużej dynamiki w reakcjach na zmieniające się wymagania rynku zarówno dla wielkich informatycznych systemów jak i dla małych zakorzenionych wysoko cenionych systemów. W tym spektrum oprogramowania rozwijającego się od programowania 'in the large' bezpośrednio do programowania 'in the small', architektura wyłania się jako dominujący czynnik w określeniu konstrukcji odniesienia (wzmianek) przez które wzrastają inwestycje w oprogramowanie już używane, przemodelowane, wielokrotnie wykorzystywane jako część złożonego produktu w którym usługi programu wciąż się rozwijają. Produkcja oprogramowania 'leading-edge' dojrzewa i zbliża się do punktu w którym szybki rozwój oprogramowania jest w dużej mierze oparty na składnikach użytych ponownie dla dostarczenia przerobionych rozwiązań i jest aktualnie czynnie stosowana. Korzyści osiągane przez takie ujęcie mogą być rozszerzone przez równoczesne użycie ramek (frameworks) - specjalizowanego 'middleware' (specyficznej i ogólnej trzeciej grupy) - która wykorzystuje różne komercyjne systemy operacyjne. Oferują one dodatkowy stopień różnorodności i elastyczności w wykorzystaniu właściwości programu. Zdolność do wsparcia modelu klient-serwer w szeroko rozpowszechnianych systemach także wymaga oprogramowania w formie składników ułatwiających ich montaż na podstawie architektury oraz ich dynamiczne rozmieszczenie na wielostronnych, niejednorodnych systemach i platformach.
W oprogramowaniu telekomunikacyjnym to wymaganie dotyczy wykorzystania architektur różnych wielkości (multi-scaled), składników różnozapisowych (multi-notation), rozpowszechnionych, silnych środków programowo-sprzętowych czasu rzeczywistego, szeroko dostępnych platform. Bardziej niż kiedykolwiek potrzeba inżynierii przekształcających na wielką skalę rozwiązania używających ogólnych ale modyfikowalnych składników opartych na różnych technologiach i być może na różnych pomysłach. W tym artykule uwaga jest skupiona na architekturze i na jej użyciu do budowy rodzin produktów. Ponadto przyjrzymy się określeniu i zabezpieczeniu ramek zdolnych do wspierania wieloskładnikowych systemów wymagających rozpowszechniania, czasu rzeczywistego i ostatecznie ciągłej gwarancji usług.
Rozwój linii produktów (product - line)
Wiele sprawdzonych produktów bazuje na pomyśle linii produktów ('product - line'), które można definiować jako grupę produktów działających wspólnie, charakteryzujących się cechami, które zaspokajają potrzeby poszczególnych rynków (pod względem rozmiaru, rozwinięcia technologicznego, wymagań, itp. ). Przystosowanie systemu do struktury rodzin produktów pozwala podzielić wysiłek projektowy między całą grupę produktów, a tym samym zaradzić wzrastającej złożoności. Pomaga to podtrzymać rozwój rynków i wprowadzanie do nowych rynków.
Do tej pory, dojrzała inżynieria oprogramowania rozwijała się głównie przez tworzenie pojedynczych produktów, które istnieją teraz nieprzystosowane do linii produktów. Pomysłem sprzyjającym rozwojowi 'product - lines' jest konstruowanie nowych systemów i aplikacji ze wspólnego zestawu elementów, określanego podczas tworzenia poprzednich produktów należących do tej samej rodziny. Składniki oprogramowania można traktować, jako opis cząstkowych rozwiązań postawionego problemu. Może to być gotowy składnik lub znajomość wymagań lub też elementy projektu, które projektujący użył poprzednio do budowy lub modyfikacji oprogramowania.
Wyróżnia się dwie podstawowe struktury w 'product - line' :
Inżynieria branżowa (Domain engineering) :
odpowiada za projektowanie i zarządzanie , zawiera Inżynierię Rodzin Aplikacji (Application Family Engineering) , Architekturę Odniesienia (Reference Architecture) i Inżynieria Systemu Składników (Component System Engineering).
Inżynieria Aplikacji (Application engineering) :
odpowiada za rozwój nowych produktów ; zawiera Inżynierię Systemu Aplikacji (Application System Engineering).
Główne zadania tych dziedzin są opisane poniżej:
Analiza i modelowanie dla Rodzin Produktów
Wyznaczenie elementów z istniejących systemów jest podstawowym zadaniem, które wymaga odkrycia znacznej części ciała produktu oraz umiejętności inżynierskich. Znalezienie potrzebnych informacji wymaga głębokiej analizy, w którą trzeba zaangażować zespół złożony ze specjalistów wielu dyscyplin. Jest to niezbędne, żeby wydobyć całą istniejącą wiedzę o rodzinie produktów (wiedzę techniczną, niezawodność, zmienność, itp) i skonstruować architekturę rodzin produktów, która stworzy podstawy dla bardziej konkurencyjnych produktów w wielokrotnych wersjach, częstych dostawach środowiska projektowego. Pewne analizy muszą być przeprowadzone: analiza branżowa, analiza architektury, analiza perspektyw i analiza systemowa.
Definicja i opis linii produktów
Mimo, że w ostatnich latach główną uwagę poświęca się technicznym i metodologicznym elementom ujęcia 'product - line', ostateczna odpowiedź jest nadal w stadium początkowym. Kluczowym celem jest dostarczenie kompletnej technologii pakietów, zawierającej procesy, metody, i techniki konieczne do budowy różnych elementów (wymagania, architektura linii produktów, składniki) używanych w 'product line'. Projektowanie linii produktów wymaga określenia architektury wspólnych i zmiennych cech wszystkich elementów, po to żeby wykorzystać je w fazie przystosowywania do konkretnych potrzeb.
Pochodzenie Odmian Nowego Produktu
Żeby odmiany produktu mogły być dostarczone muszą być tak skonstruowane, aby sprostać specyficznym funkcjonalnym lub jakościowym wymaganiom. W szczególności należy dokonać wyboru dotyczącego: składników, które będą tworzyć system aplikacji, parametrów (właściwości, atrybutów) rzeczywistych, wykonawczych ogólnych składników, interfejsu (aspekt jakościowy), i ostatecznie architektury indywidualnego produktu decydującej o specyficznych cechach produktu (bazującej jednak na ogólnej architekturze odniesienia).
W takim ujęciu jest to odesłanie do projektowania systemu aplikacji. Wykorzystuje się procesy wymagające opanowanej, silnej analizy, projektowania, implementacji, testowania i pakietowania systemu.
Początki architektur linii produktów
Stworzenie architektury wymaga analizy branżowej, żeby dopracować architekturę odniesienia : określenie modeli architektur w dziedzinach pokrewnych, ocena aktualnych architektur w porównaniu z proponowanymi modelami, określenie zmienności architektur i dostarczenie narzędzi do pomiaru wydajności, dokumentacji i użycia ich wersji np. UML (Unified Modeling Language).
Możliwość nakreślenia kryteriów wzorcowych dla architektury odniesienia ( wyszczególnienie związków między tymi kryteriami a elementami architektury - zwłaszcza planowanie potrzeb poszczególnych rynków) jest zasadniczą częścią pełnego ujęcia po to, żeby wszystkie ograniczenia projektowe i ich związek ze spełnieniem wymagań projektu mogły być w pełni sprawdzone.
Niektóre godne uwagi próby mogą być przytaczane jako świadczące o potencjalnym rozwoju przemysłowym. W ciągu ostatnich pięciu lat Ministerstwo Obrony USA rozpoczęło kilka obszernych programów mających na celu opracowanie linii produktów dla systemów z silnym oprogramowaniem.
Programy takie jak DSSA i STARS przyniosły z sobą kampanie zaangażowane w obie sfery: cywilną i obronną. Programy te umożliwiły redukcję kosztów, ulepszenie planowania i podniesienie jakości systemów informatycznych. Na przykład projekt demonstracyjny STARS pokazał znaczenie przemiany w zakresie rozwoju oprogramowania od klasycznego ujęcia do ujęcia product-line. Ten demonstracyjny projekt wymagał zmniejszenia czasu opracowania i kosztów o jedną czwartą w obszarze systemów sterowania, inteligentnej elektroniki, systemów telekomunikacyjnych i systemów symulacji. Żeby pozostać konkurencyjnym w dziedzinach biznesu, w których ma zastosowanie ujęcie linii produktów, wszystko to wymaga strategii redukcji kosztów.
Podstawy dla aplikacji czasu rzeczywistego
Głównym celem jest oferowanie wsparcia dla składników middleware opartych na technologii CORBA (Common Object Request Broker Architecture ) i niezależnych pomysłach platform, wraz z narzędziami inżynierskimi , które są w stanie szybko przekształcić źródłowe składniki w wykonawcze i później rozmieścić je efektywnie na firmowych i komercyjnych platformach.
Taka struktura jest zaprojektowana, aby umożliwić bezpośrednie, przemysłowe eksperymentowanie na technologii (która jest daleko posunięta) i która jest przekształcalna do produktów o architekturze składnikowej (umożliwiającej wykorzystanie działania linii produktów). Model UML będzie stosowany jako wspólny punkt wyjścia dla fundamentalnych pojęć struktury i dla narzędzi do projektowania i zatwierdzania architektur, symulacji działania i rozmieszczenia urządzeń.
Zatwierdzenie architektury i rozmieszczenie narzędzi
UML jest de facto standardem dla analizy i projektowania obiektowo orientowanego oprogramowania. Definicja architektury, projektowanie aplikacji i rozmieszczenie składników wymaga planowania i narzędzi przeznaczonych do dystrybucji oprogramowania czasu rzeczywistego. Formalizm UML i komercyjne rozszerzenia narzędzi UML do tworzenia kodu, tworzenia testów wykonania i zatwierdzenie architektury (funkcjonalnej i niefunkcjonalnej) będą definiowane w powiązaniu z zewnętrznymi badaniami instytutów. To znacząco zwiększy zdolność automatyzacji ramek (framework) , zmniejszyć czas opracowania i zgrać programy o różnej jakości .
Ramka (framework) : model i technologia
Ujęcie strukturalne korzysta z potencjału UML (i jego rozszerzenia dla czasu rzeczywistego) do scalenia aplikacji i ich środowisk na wyższym stopniu abstrakcji niż normalnie, co zmniejsza skłonność do popełniania błędów a tym samym polepsza podstawową jakość. Jest to silnie związane ze wsparciem platformy przy projektowaniu i w stadium rozwoju oraz ze wsparciem odpowiednich narzędzi (platforma komputerowo wspierana zestawem inżynierskich narzędzi). Ma to na celu uprościć proces opracowywania poprzez dostarczenie narzędzi i pomysłów, które przystosują niektóre właściwości aplikacji. Narzuca to na narzędzia UML automatyczną generację porcji kodu, który może być systematycznie czerpany z formalizmu UML. W dodatku daje to szerokie zastosowanie technologii CORBA i jej integracji z UML w celu rozwiązywania problemów związanych z przenoszeniem, dystrybucją, otwartością i niejednorodnością. Pozwala to wykorzystywać komercyjne składniki (COTS - Components Off The Shelf ) dopóki zachowuje wymagane właściwości.
Struktura używa UML do opisu komponentów i aplikacji. Dodatkowo UML umożliwia wykorzystanie ich potencjału w dziedzinie czasu rzeczywistego i przedstawianiu formalnych właściwości, pozwalających sprawdzenie tych właściwości w późniejszym etapie. Jeśli to tylko możliwe, wszystkie aspekty zastosowań są precyzowane z użyciem struktury UML i jego rozszerzeń, a w ten sposób tworzenia składnicy modeli informacyjnych obiektów. Ostatecznym celem jest użycie tego modelu do określenia następujących zadań :
Zatwierdzenie architektury z użyciem symulacji
Generacja kodu
Obecność testu generacyjnego i zatwierdzanie na bieżąco (on-line validation)
Konfiguracja i rozpatrzenie aspektów całego systemu, szczególnie wymagań wykonawczych aplikacji.
W procesie opracowywania struktury wykorzystuje się zestaw narzędzi do modelowania aplikacji z różnych perspektyw użycia UML. Niektóre z tych narzędzi są używane do generacji wspierającego kodu, który będzie włączony w końcową wersję aplikacji wraz z usługami platformy. Dodatkowo do projektowania i modelowania struktura dostarcza usługi aplikacyjne i platformę separującą. Te dostarczają aplikacji programistom wraz ze specyficznymi dla danej dziedziny właściwościami i usługami które mogą łatwo być integrowane z projektami aplikacji używających istniejących konstrukcji UML. Platforma strukturalna dostarcza podstawowych funkcji i usług wymaganych w rozprowadzanych złożonych aplikacji. Funkcje te mogą być podzielone na kilka klas:
Model obiektu i usługi
Konfiguracja
Niezawodność
Przekształcanie na bieżąco (On-line evolution)
Model obiektu i usługi
Aplikacja strukturalna jest złożona z zestawu obiektów z którymi związane są określone właściwości. Obiekty mogą być statyczne bądź dynamiczne. Statyczne obiekty są tworzone w czasie inicjalizacji podczas gdy obiekty dynamiczne są w razie potrzeby tworzone i niszczone przez aplikację.
Tworzenie obiektu może być przeprowadzone jawnie i zdalnie dla spełnienia wymagań zdefiniowanych przy konfiguracji aplikacji. Obiekty mogą być pierwotnie przydzielone, aby uniknąć tworzenia obiektów w szczycie krytycznych okresów (np. gdy są rygorystyczne wymagania czasu rzeczywistego). Pierwotne przydzielenie jest określone w konfiguracji aplikacji
Dystrybucja i przeźroczystość architektury są głównymi cechami, które CORBA wprowadza do aplikacji, co daje programistom dostęp do obiektów bez względu na to gdzie się one znajdują. Konkretnie pozwala to na uniezależnienie opracowania aplikacji od aktualnego rozmieszczenia składników w systemie. Dzięki temu system może się zmieniać, może być rekonfigurowany tyle razy ile potrzeba oraz składniki mogą być przenoszone z jednej maszyny na drugą bez naruszania kodu aplikacji. Częściowo jest to spowodowane tym, że opis interfejsu (w IDL - Interface Description Language ) jest oddzielony od definicji obiektu (e ODL - Object Definition Language ).
Struktura nasuwa pomysł zasłaniania przeźroczystości , dlatego, że tworzenie obiektów napotyka przeszkody, i że obiekty mogą być tworzone jeśli to konieczne w różnych kapsułach (jednostkach wykonawczych platformy). Ta cecha jest opcjonalna i sterowana przez dynamiczny składnik nadzorujący.
Usługi strukturalne gwarantują dodatkowe możliwości. Bieżące usługi pokrywają podstawowe sprawy i pomysły, ale liczba dostępnych będzie rosła i będzie się rozwijać w specyficznych dziedzinach aplikacji. Aktualne usługi strukturalne obejmują następujące obszary:
Konfiguracja aplikacji
Nadzór aplikacji
Pierwotna alokacja (rozmieszczanie)
Nazywanie obiektów
Cykl życia obiektu i `wybieranie śmieci'
Trwałość obiektu
Konfiguracja dla czasu rzeczywistego
Przekształcanie na bieżąco (on-line evolution)
Adresowanie logiczne
Niektóre usługi zajmują się gromadzeniem danych i są używane przez usługi tolerancji błędu. Jest to trwała usługa obiektowa zajmująca się problemami magazynowania obiektowego i niezawodności usług z tym związanych, zapewniających satysfakcjonującą trwałość.
Konfiguracja
Konfiguracja jest procesem, który decyduje o rozmieszczeniu elementów w aplikacji. Należy brać pod uwagę wszystkie aspekty konfiguracji : istotę, liczbę i właściwości obiektów aplikacji. Proces konfiguracji jest częściowo wykonywany przy użyciu narzędzi UML, a częściowo przy użyciu specjalistycznych narzędzi wizualizacyjnych. W praktyce, aktualna konfiguracja jest realizowana przez plik konfiguracyjny, który zbiera stosowne informacje z różnych źródeł zanim ruszy generacja kodu.
Struktura aplikacji jest opisana niezależnie od implementacji elementów składowych, co pozwala rozdzielić te dwie rzeczy i uprościć rekonfigurację. Taka struktura została uzyskana w wyniku syntezy opisu aplikacji przez UML i jest integrowana przez specjalistyczne narzędzia konfiguracyjne. Rozróżnia się dwa poziomy konfiguracji. Konfiguracja aplikacji reprezentuje rozmieszczanie składników w jednostkach wykonawczych (kapsułach) na różnych maszynach tworzących system, podczas gdy konfiguracja platformy odpowiada konfiguracji fizycznych maszyn w systemie, wykonania ramki (framework) i middleware, które stanowi wsparcie dla aplikacji.
Niezawodność
Niezawodność oprogramowania może być zwiększona przez ramkę (framework) na kilka sposobów w czasie różnych faz produkcji. Po pierwsze w fazie projektowania oprogramowanie jest dzielone na dobrze izolowane elementy z przejrzystymi interfejsami - co jest podstawowym celem ujęcia linii produktów. Takie zachowanie jest stymulowane przez specyfikację UML. Po drugie precyzowane są dodatkowe właściwości obiektu, niektóre związane z właściwościami architektury (tolerancja błędu, trwałość), niektóre z właściwościami uruchomieniowymi (np. czasu rzeczywistego), a inne z właściwościami funkcjonalnymi. Właściwości funkcjonalne wspomagają automatyczne narzędzia w sprawdzaniu czy zachowanie elementów składowych jest dostosowane do specyfikacji. Weryfikacja może być przeprowadzona albo podczas opracowywania przy użyciu metod formalnych (stosowanych do szczególnie rozpoznanych elementów) albo podczas symulacji. Właściwości obiektu mogą być także użyte do generacji testowych wzorców do zatwierdzenia elementów zanim zostaną zmontowane. Po trzecie poziom sprawdzania właściwości może być znany w czasie wykonywania, co pozwala na ewentualne poprawianie sprawozdania z etapu testowego opracowania. Cechy platformy takie jak `wybieranie śmieci' także zwiększają niezawodność struktury poprzez redukcję podatnych na błędy zadań alokacji i dealokacji.
Ostatecznie, kiedy zaprojektowana i zaimplementowana aplikacja zostaje uruchomiona, system śledzący pozwala programiście kierować wykonaniem aplikacji w wydajny, pożądany sposób. Jest to użyteczne nie tylko podczas debuggingu aplikacji, ale także jako efektywny sposób śledzenia wykonania kiedy aplikacja jest rozmieszczana. Kiedy niesprawności programowe zostaną wykryte, korekcja musi być przeprowadzona na zainstalowanych systemach, które są najprawdopodobniej uruchomione i mogą być trudne do zatrzymania. Tutaj odwołujemy się do możliwości zainstalowania składników i późniejszej konfiguracji podczas uruchamiania : odnosi się to do przekształcania na bieżąco (on-line evolution).
On-line evolution
Aplikacja ramki (framework application) jest złożona z systemów, które są instalowane na miejscu. Systemy te nie mogą być usunięte w celu zastąpienia ich nowszymi wersjami (upgrade), albo z tego powodu, że wymagania dyspozycyjności są niekompatybilne z opóźnieniami, albo z powodu całkowitej niedostępności (np. w przypadku systemów satelitarnych). Dalszym uzasadnieniem dla on-line evolution jest to, że wymagania i potrzeby mogą się bardzo różnić, a więc upgrade'y oprogramowania nie są już wyjątkowymi wydarzeniami dla których koszt i znaczenie usług może być lekceważone.
Z tych powodów, struktura ma możliwości ewolucji na bieżąco. Może załadować moduły oprogramowania i przeprowadzić rekonfigurację w czasie wykonania. Jest to zintegrowane z tolerancją błędu systemu : jeśli możliwe jest dynamiczne powielanie zacznie powielać nowe wersje, a później niszczyć starsze wersje używając narzędzi nadzorczych. Mechanizmy błędu tolerancji zapewniają, że zmiany są jawne dla zastępowanych składników. Na przykład przy normalnym działaniu, kiedy struktura wykrywa, że aktywny obiekt zawodzi, inna replika obiektu jest wybierana jako aktualnie aktywna i odzyskuje ostatnio zapamiętany stan odnoszący się do poprzednio aktywnego obiektu. Ten rodzaj mechanizmu może wspierać cele tolerancji błędu.
Migawkowa technologia strukturalna (snapshot)
Struktura opiera się na technologii CORBA dla przenośności i niejednorodności. Istnieją obecnie implementacje dla ORBACUS and VisiBroker dla Unix i Windows NT. To daje rozległe zastosowania architekturze CORBA i nakłada wymagania i tworzy nowe specyfikacje do późniejszej jej ewolucji . To prowadzi do bezpośredniego zaangażowania w proces standaryzacji CORBA odnośnie czasu rzeczywistego i błędu tolerancji.
Podsumowanie
Treść tego artykułu odpowiada kluczowym zadaniom Alcatel/Thomson Common Laboratory ustalonym we wrześniu 1998 roku. Celem tego Laboratorium jest przedstawienie realizacji architektur linii produktów i ich szybkie przejście do łatwo dostępnych ramek czasu rzeczywistego mogących wspierać aplikacje typowe dla portfeli produktów obu kompani. Typ rozpatrywanej ramki uwypuklający rolę architektury, kryteria symulacji określanej na podstawie żądań umożliwia dokładne ale zarazem elastyczne powiązanie między product-line, a inżynierią opartą na składnikach i ostateczną platformą pełniącą rolę hosta.
Głównymi zadaniami Common Laboratory są : dostarczenie przemysłowych rozwiązań dla efektywnej eksploatacji usprawnionych technik produkcji oprogramowania dopasowanych do linii produktów i szybkie rozmieszczenie tego oprogramowania na ramce skonstruowanej z najlepiej dopasowanych komercyjnych mechanizmów i komponentów
3. Technologia agenta i jego aplikacje.
Wprowadzenie
Technologia agentów jest obiecującą i gwałtownie wzrastającą nową sferą w polu technologii informatycznych ( IT ). Obejmuje ona różne technologie , takie jak mobilne szyfry i w pełni rozprowadzalne zastosowania, które mają powszechne zastosowania w działaniu autonomicznym w imieniu innych jednostek (np. osób). Istnieje kilka powodów dla których istnieje potrzeba rozpowszechniania się agentów i zastępczych technologii. Po pierwsze generalizacja internetu daje możliwości i wprowadza techniczne środki dla budowy w pełni rozpowszechnionych zastosowań i serwisów (np. handel elektroniczny, wyszukiwanie informacji). Po drugie technologia agentów oparta na programowaniu jest naturalną metodą dla rozwiązania wielu problemów. Po trzecie ludzie zawsze byli zainteresowani w zdawaniu zadań i otrzymywaniu pomocy ( Osobista Cyfrowa Pomoc, elektroniczne sekretarki). Ostatecznie wiele Distributed Artificial Inteligence ( DAI ) technik dojrzało i mogą być teraz użyte do rozwoju bardziej inteligentnych i wymyślnych serwisów.
Ta część mówi o różnych technologiach agenta i jego charakterze, w szczególności zostały tutaj omówione dwa rodzaje agenta tj. mobilny i inteligentny agent. Główną częścią tego artykułu obejmuje istniejące i możliwe potencjalnych aplikacji agentów , w szczególności na polu telekomunikacji.
Co to jest agent?
Nawet to proste pytanie nie ma prostej odpowiedzi, która jest akceptowalna przez całe środowisko. Prawie każdy badacz ma swą własną definicję agenta. W dużej mierze dlatego, że agent zasadniczo jest zgodny z dziedziną w której jest stosowany. Niektóre poboczne filozoficzne aspekty muszą być brane pod uwagę kiedy definiujemy agenta : co tak naprawdę chcemy żeby agent robił ?Czy agent działa tylko w swoim imieniu ? Czy ufamy mu ? Czy jesteśmy gotowi złożyć w jego ręce naszą kartę kredytową ( PIN ) aby dokonywał transakcji w internecie ? Czy chcemy żeby działał autonomicznie czy pod kontrolą ? Czy chcemy aby się uczył o nas i otaczającym środowisku ?
Odpowiedzi na te proste pytania doprowadzają naturalnie do różnych definicji czym jest agent . Pomimo to większość definicji zgadza się z tym iż agent jest kawałkiem oprogramowania, które działa w imieniu innej jednostki ( jednostka może być osobą lub innym programem) i które posiada pewną autonomię. W dodatku do tych dwóch głównych charakterystyk (autonomii i wyręczaniu w działaniu), agent może także posiadać inne właściwości lub zdolności, włączając w to : racjonalność w działaniu, zdolność do reagowania i samodzielnego działania na określone bodźce, planowanie, zdolności dostosowawcze, rozumność, godny zaufania, możliwość modelowania środowiska użytkownika, podstawowa wiedza i mobilność. Oczywistym jest, że agent nie może mieć tych wszystkich cech, agent znajdzie się w jednej z kategorii które zostaną przedyskutowane w następnym rozdziale.
Większość z terminów przedstawionych powyżej pochodzi z dziedziny DAI, która może być uważana za główną dziedzinę która stworzyła tak zwaną `inteligentną' technologię agenta. Pomimo to DAI nie jest jedyną dziedziną tworzącą technologie agenta. Inną klasą agenta znaną jako Mobilny Agent, pojawiła się ona ostatnio: może być uważana za jeden krok poza klasycznie zorientowany cel w programowaniu. Technologia mobilnego agenta oferuje atrakcyjną i oczywistą nową technologię w której mobilność kodów ma swoje ważne miejsce. Ci agenci są w dużym stopniu różni od inteligentnych agentów.
Dla wyjaśnienia różnych typów agentów technologicznych i ich celowości, jest pomocne zdefiniowanie różnych rodzajów kategorii agentów. Jako pierwszą propozycję dla zdefiniowania różnic można porównać mobilnego agenta i inteligentnego, głównie dlatego że pochodzą oni z dwóch różnych dziedzin i technologii. Inną naturalną przyczyną dla zrobienia różnic jest taka że agent inteligentny jest generalnie w fazie rozwoju podczas gdy agent mobilny jest u szczytu rozwoju, jest dostępny i bardzo szeroko stosowany w przemysłowych programach badawczych. Pomimo to, czytając ten artykuł jest oczywiste , że to prosta propozycja klasyfikacji nie jest ani satysfakcjonująca ani wystarczająca.
Klasyfikacja agentów
Jest możliwe naszkicowanie bardziej szczegółowej klasyfikacji agentów opartych na następujących kryteriach : inteligencja, racjonalność, mobilność, komunikacja, pośrednictwo. Spróbujmy najpierw wprowadzić niektóre z powyższych terminów:
Inteligencja : Inteligencja jest naturalnie trudna do precyzyjnego zdefiniowania. Kiedy stosujemy to do agentów, skrótowo można powiedzieć, że inteligencja składa się z pewnego poziomu zdolności, takich jak zdolność uczenia się, umiejętność wnioskowania i planowania późniejszych działań w porządku pozwalającym na osiągnięcie celów. W tej sprawie inteligencja ma ten sam sens jak sztuczna inteligencja.
Autonomia : Są różne drogi dla zrozumienia terminu autonomia. W najbardziej powszechnym sensie tego terminu, autonomia umożliwia nieprzewidywalne działanie agenta : większa nieprzewidywalność większa autonomia. Pomimo to absolutna autonomia nie jest zbyt dobra w zastosowaniach dla agentów, dlatego że zgodnie z definicją agenta ma on służyć. Bardziej użytecznym typem autonomii jest tak zwana społeczna autonomia, która przekazuje autonomie agentowi kiedy znajduje się w środowisku innych agentów. Jednakże więcej - społeczne związki takie jak współpraca, koordynacja, zobowiązania ograniczają agenta. Ostatecznie autonomia agenta ma na celu możliwość agenta do wybrania i przeprowadzenia prawidłowej akcji we właściwym czasie ( techniki planowania ). Właściwie, kiedy projektujemy agenta dobra równowaga pomiędzy autonomią a służeniem powinna być zachowana. W reszcie tego artykułu największy stopień autonomii zostanie ustalony przez `bezpośrednie cele agenta'. Niższy poziom autonomii może reprezentować agent reprezentujący użytkownika dobrze znany jako Personal Digital Assistant ( PDA )
Racjonalność : Racjonalność w gruncie rzeczy stosowana jest w inteligentnych i autonomicznych agentach. Racjonalni agenci doglądają wyboru i wykonania działań według ich oczekiwań, użyteczności według warunków ich postrzegania i własnej wiedzy. Racjonalnością jest także wybranie działania które jest spójne z jego przeznaczeniem.
Mobilność : Mobilność jest zdolnością agenta do rozpoczęcia i przeprowadzenia w jednym miejscu działania a następnie przeniesiony do innego miejsca ( zabiera ze sobą kody i dane) wznawia wykonanie działania. Właściwie pojęcie mobilności dzieli środowisko naukowców na dwie szkoły : tych którzy uważają, że mobilność nie jest niezbędną sprawą (DAI środowisko wielu agentów, zasadniczo naukowcy akademiccy ) i tych którzy uważają, że mobilny agent jest przyszłością agentów (społeczeństwo programistów ). Jak zwykle , prawda jest gdzieś pomiędzy. Jeśli wydaje się oczywiste, że nic nie może zostać zrobione z mobilnymi agentami, mogą zostać użyte konwencjonalne techniki programowania, w gruncie rzeczy mobilni agenci oparci na programowaniu pokazują i uwydatniają elastyczność i sprawność rozprowadzonych aplikacji - zaprojektowanie, wykonanie i redukcja wymaganych połączeń.
Komunikacja : Komunikacja jest kluczową sprawą dla agenta , który, z definicji ma się komunikować w całej rozpiętości działania, obojętnie w imieniu jakiej jednostki działa czy też współpracuje z innymi agentami. Poziom interakcji silnie zależy od wiedzy agenta, których ranga jest pomiędzy `danymi', `informacją' i `wiedzą'. Dane pokrywają się z bazowym poziomem, które mogą składać się z różnych zwartości np. plik i tym podobne. Informacja jest znaczniej bardziej skomplikowana i może składać się z opisu kawałka telekomunikacyjnego wyposażenia, XML dokument ( handel elektroniczny ) lub e-mail ( możliwość dołączenia danych ). Wiedza zawiera obie struktury informacji i logiczne zależności. Odpowiedni język komunikacji lub protokołu może być skojarzony z każdym poziomem informacji. Dla przykładu agent może używać Plikowego Protokołu Transferowego ( FTP ) przy przesłaniu pliku, lub wezwać metodę innego agenta w porządku otrzymanych i przesyłanych informacji. HTTP może być użyte do transmisji XML. Ostatecznie, języki bazujące na Speech Act Theory, takie jak Knowledge Query i Manipulation Language/Knowledge Interchange Format (KQML/KIF),Foundation for Intelligent Physical Agents ( FIPA ) Agent Comunication Language może być użyty do wymiany wiedzy.
Prosta klasyfikacja agentów bazujących na mobilnych agentach. Mobilne arkusze i inteligentni agenci są wprowadzani poniżej. Mobilne skrypty i mobilni agenci, którzy są szeroko używani w przemyśle, są rozważane w dwóch następujących kategoriach. Inteligentni agenci ( lub multi-agenci ), którzy są w dużej mierze w fazie badawczej, rozważani są pod koniec : jest to grupa bardzo obiecująca i mająca perspektywy w przyszłości.
Mobilni agenci
Mobilni agenci są to ( generalnie małe ) kawałki oprogramowani które mają możliwość rozpoczęcia i przeprowadzenia ich zadań w jednym miejscu ( komputer ), zawiesić działanie, przemieszczać się w inne miejsce w sieci, zakończyć działanie i tak dalej.
Jeśli się przyjrzymy z powrotem `minimalnej' definicji, autonomia mobilnych agentów zasadniczo polega na ` autonomii przestrzeni'. To oznacza iż agent `ma wolną rękę' przy przemieszczaniu się w sieci : może on przeprowadzać zadanie wymagając połączenia z lub być kontrolowanym z rejonu powstania. Generalnie, mobilni agenci nie otrzymują absolutnej autonomii (proszę zobaczyć kategorię `Inteligentnych Agentów' ).
Zdalna procedura wezwania a agenci.
Mobilni agenci mogą być uważani jako rozwiązanie problemów powstałych przez wykonywanie pracy na komputerze w niejednorodnym środowisku. W szczególności, są oni naturalną alternatywą dla klasycznego połączenia klient / serwer .
Rozważając szczegółowe zadania klienta ,który potrzebuje wywoływać zdalne serwisy ( powiedzmy N ) w odpowiednim porządku dla ich przeprowadzenia. W modelu klient / serwer, klient ma dostęp do N zdalnego serwisu używając sekwencje Remote Procedure Calls ( RPC ), każdy składający się na żądanie i odpowiedź na jeden z potrzebnych serwisów.W konsekwencji sieć musi przekazać 2N pośrednich wiadomości.
Technologia mobilnych agentów proponuje ciekawą alternatywę dla tej sytuacji. W tej sprawie, klient składa się z agenta, który porusza się w sieci bezpośrednio do serwera i ma on lokalny dostęp do wymaganych serwisów. Wszystkie interakcje pomiędzy klientem i serwisem mają miejsce lokalnie : agent może powrócić do jego początkowej lokacji ta szybko jak szybka jak praca zostanie ukończona.
Są liczne korzyści używania technologii agenta w tym przypadku. Po pierwsze klient i serwer nie potrzebują uzgadniać protokołu. Jest oczywistym dla klienta agenta wiedzieć o interfejsie dostarczonym przez serwer. Po drugie, tylko `interesujące' informacje są przesyłane przez sieć (agent sam dba o poprawny rezultat działania ). W konsekwencji użycie technologii mobilnego agenta wymaga mniejszej liczby połączeń. Po trzecie, nie ma potrzeby utrzymywać fizycznego połączenia pomiędzy klientem a usługą w całym czasie operacji : to jest tylko wymaganie podczas przemieszczania się agenta. Ostatecznie, agenci przynoszą dużo elastyczności pod względem rozwijania się oprogramowania i integracji.
Najważniejsze pojęcia
Aby umożliwić mobilnym agentom możliwość interoperacji, niektóre generalne koncepcje zostały wprowadzone i ustandaryzowane przez Object Managment Group ( OMG ). W dodatku, OMG wyznaczył jak mobilność agenta i wprowadzenie najważniejszych możliwości dla agenta może być wsparte w i przez Common Object Request Broker Architecture ( CORBA ) [ OMG ]. Ta sekcja wprowadza informacje dotyczące tych koncepcji. Więcej informacji na ten temat można uzyskać w OMG Mobile Agent Systems Interoperability Facility ( MASIF ).
System agentów jest platformą która ma możliwość tworzenia, nazywania, wykonania, wysłania i zakończenia. Podczas przemieszczania się agenta porusza się on pomiędzy środowiskami wykonawczymi, zwanymi `miejscami', w którym agent może wykonywać zadanie. Dodatkowo `miejsce' wprowadza bezpieczeństwo serwisu, takie jak kontrola dostępu, do źródeł systemowych agenta. System agenta może być wsparty więcej niż w jednym miejscu; wielu agentów może wykonywać zadań w tym samym miejscu, i agenci mogą poruszać się w różne miejsca które są pod tą sama władzą. Transfer agentów jest realizowany poprzez możliwość nie nadawania i nadawania w odcinkach kodów agenta do obiektu i z powrotem. Ostatecznie większość z najwyższych poziomów dostarczonych przez system agenta i `miejsce' zależy od serwisu CORBA.
Mobilność kodów wzrasta i nawet gorzej, wzrasta też problem, który już istnieje z bardziej klasycznym oprogramowaniem : bezpieczeństwo. Powiązania pomiędzy mobilnym agentem i szkodnikami jakimi są wirusy i brak bezpieczeństwa jest łatwy do ustalenia. W rzeczywistości jest sprawą najwyższej wagi mieć możliwość autentyfikacji przybywającego agenta i jednostki którą ten agent reprezentuje , do kontrolowania dostępu agentów do odwiedzanych fizycznych źródeł , aby kontrolować integralność i zagwarantować dodatkowe właściwości, takie jak niemożliwość odmówienia ( agent nie może odmówić że coś zrobił ) i poufność. Niektóre dodatkowe problemy powstają w przypadku gdy agent wejdzie kilka razy, dla których to jeszcze nie ma technicznego rozwiązania. Wartym jest zauważenia iż większość z istniejących technicznych rozwiązań dla mobilnych agentów zależy od rozwiązań bezpieczeństwa budowanych na CORBA lub Javie. W sprawie appletów jawy, bezpieczeństwo jest ubezpieczone przez szperacza który akceptuje tylko oznakowane applety lub kanał bezpieczeństwa przy komunikacji z macierzystym miejscem. Dla przykładu jest nim Secure Socket Layer ( SSL ).
Platformy mobilnych agentów
Pomimo że rynek platform dla agentów zmienia się gwałtownie, kilka pewnych i niezawodnych platform jest możliwych w użyciu w przemyśle : Aglets WorkBench by IBM Corp., Odyssey by General Magic ( sukcesor Telescript ), Grasshopper (jedyny podległy platformie MASIF [ IKV++ ] ) i Voyager. Wszystkie te platformy są w stu procentach zbudowane na bazie Javy, dlatego też aplikacje te dziedziczą nizależność platform zbudowanych na bazie Javy. Inną konsekwencją jest to iż Java Develpment Kit ( JDK ) jest niezbędna do wykonania systemu agenta i samego agenta. W przypadku platform bazujących na Javie ważnym momentem jest współpraca pomiędzy różnorodnymi środowiskami.
Mobilne skrypty
Mobilne skrypty są kawałkami oprogramowań, napisanych w języku skryptowym, które mogą zostać wykonany zdalnie. Istnieją różne rodzaje mobilnych skryptów, najbardziej znanym jest applet Javy który rusza po uruchomieniu sesji Netscape'a lub Internet Explorera. Bardziej precyzyjnie, applet jest ( generalnie mały ) programem Javy który zawarty jest w stronie HyperText Markup Language ( HTML ). Kiedy strona HTML jest otwierana razem z przeglądarką, związane z nią applety wgrywają się automatycznie z odległej strony, używając protokołu HTTP i są wykonywane w przeglądarce.
Innym typem mobilnego skryptu, mianowicie agenci XML, składają się ze skryptów, są osadzone wewnątrz strony XML które mogą wgrane i wykonane przez jakąkolwiek platformę XML. Oczekuje się iż XML będzie stanowić przyszłość dla sieci, zastępując istniejący obecnie standard HTML i pozwalając na bardziej złożone informacje.
W tym momencie można pokazać różnice pomiędzy mobilnymi skryptami a agentami. Mobilne skrypty są wykonywane zdalnie, ale nie mają tak zwanego biletu powrotnego do ich punktu macierzystego, ponadto nie są autonomiczne.
Wynik operacji wykonanych przez appleta ( np. informacje użytkownika, informacje dotyczące bezpieczeństwa takie jak kod PIN ) może zostać odesłane używając mechanizmu socketa. Dla kontrastu mobilny agent może poruszać się przez pojedyncze lub nawet wielokrotne skoki i może powrócić do swego macierzystego miejsca.
Zaawansowane aplikacje telekomunikacyjne
Technologia agenta może być zastosowana w dużej ilości aspektów telekomunikacyjnych, takich jak zarządzanie siecią, inteligentne sieci i serwisy on-line.
Potencjalne strefy
Zarządzanie siecią
Większość ( błędne konfiguracje, rachunkowość, osiągi , bezpieczeństwo zarządzanie siecią ) stref może być pokryte aplikacjami bazującymi na agencie. Dla przykładu, system bazujący na agencie może być użyty do szerzenia konfiguracji poprzez Telecomunications Managment Network, aby opiekować się tłem, rewidować zadania, wiązać ze sobą rozprowadzone alarmy, sprawdzać zawartość rozprowadzanych baz danych, pracować poza systemem i diagnozować uszkodzenia, planować właściwe poczynania itd..
Zarządzanie serwisami.
Systemy wieloagentowe mogą być użyte do dynamicznego zabezpieczenia telekomunikacyjnych serwisów, takich jak wideokonferencje ( aplikacje [FIPA/TC7] i projekt FACTS ACTS ).
MIAMI inny projekt ACTS celuje w dostarczaniu platform które pozwalają na tworzenie i zarządzanie wirtualnymi przedsięwzięciami. Wirtualne przedsięwzięcia pozwalają swym członkom wprowadzić nawzajem serwisy zbudowane na podstawie zasobów telekomunikacyjnych źródeł, według `kontraktu'. W szczególności stanowiska partnerów decydują o złożoności i różnorodności podstawowych źródeł i poprzez negocjacje z różnymi dostawcami usług telekomunikacyjnych wprowadzają podstawy do najlepszego stosunku jakości do ceny.
Inteligentne sieci
Obecnie sieci inteligentne ( IN ) uważane są jako rozwiązania dla gwałtownie rozwijających się serwisów telekomunikacyjnych ( zaopatrywanie w nie i przełączanie pomiędzy nimi ). Architektura IN w oczywisty sposób oddziela część kontrolną i część przełączającą pomiędzy serwisami. Część przełączająca jest zlokalizowana w Service Switching Point ( SSP ) w środku przełącznik , podczas gdy serwisy z danymi ( data service ) i usługi logiczne ( logic service ) są umieszczone w przeznaczonych do tego platformach sprzętowych, znanych jako Servis Control Points ( SCP ), na zewnątrz przełącznika. Usługi logiczne są dostępne za pomocą zdalnej procedury wezwania. Jako rezultat architektury , SCP może być wąskim gardłem zmniejszającym wydajność dostarczani usług przez IN.
Technologia mobilnego agenta może być użyta do poprawienia architektury IN przez wprowadzenie pojęcia mobilnych usług IN, przynoszących usługi (inteligentne ) wprost do klienta. Agenci bazujący na serwisach IN są także bardziej elastyczniejszą i potężniejszą drogą umożliwiającą nowe serwisy.
Inne aplikacje bazujące na agencie
Inne aplikacje, poza czystym telekomunikacyjnym polem, już wykorzystują technologię agenta. Niektóre z nich będą bardzo ważne w przyszłości i będą w coraz większym użyciu każdego dnia. Jest to drogą rozwoju dla handlu elektronicznego i PDA.
Handel elektroniczny
Handel elektroniczny jest obecnie rzeczywistością. Więcej i więcej firm jest podłączonych do internetu aby sprzedawać lub kupować produkty i towary. Pomimo to proces ten jeszcze nie jest automatyczny i zawsze wymaga ludzkiej interwencji. Razem z pomocą technologii agenta , te rzeczy mogą stać się bardziej automatyczne. Agenci mogą się przemieszczać w sieci w imieniu kupujących z zamierzeniem znalezienia najlepszej transakcji. Jeżeli każda ze stron jest godna zaufania ( także sieć ) wówczas jest nawet możliwe aby agent zajął się przesłaniem numeru karty kupującego do sprzedawcy. Jednakże, wymaga to najwyższego poziomu zaufania które może być tylko zagwarantowane poprze użycie kryptograficznych technik.
PDA
Personal Digital Asistance ( PDA ), jest najszerszą klasą aplikacji agenta. Dąży się do upraszczania codziennego życia. Różne klasy aplikacji mogą być zasymilowane przez PDA.
Osobisty asystent podróży
Osobisty asystent podróży organizuje wycieczki w imieniu użytkownika. Ten rodzaj agenta jest wyposażony w model użytkownika ( informacje o użytkowniku które są potrzebne w czasie procesu rezerwacji). Wycieczka jest zorganizowana od samego początku do samego końca, tak powinien działać agent użytkownika :
kontaktuje się z firmą przewozową dla otrzymania biletu jeśli np. klient potrzebuje przewozu z obecnego miejsca na lotnisko;
kontaktuje się z liniami lotniczymi aby zatwierdzić rezerwacje;
zamówić taksówkę lub wynająć samochód na miejscu docelowym;
i ostatecznie wynajmuje pokoju w hotelu.
Aby zadbać o odpowiednie przeprowadzenie operacji agent musi dokładnie znać swego właściciela bardzo dobrze : palący czy nie, pierwsza lub normalna klasa, zasoby finansowe, wszystkie informacje o liniach lotniczych, hotelu i tym podobne. PTA może także być wykorzystany do negocjowania najlepszej usługi za najlepszą cenę. Takie aplikacje już istnieją i działają. Jedna z nich znana jako MOTIV ( wykonany przez Simens Benz i inne firmy ) jest obecnie wprowadzany w trzech landach w Niemczech; zapewnia on także porady samochodowe (możliwość użycia systemu GPS ) i wyszukuje miejsca parkingowe. Warte jest zauważenia to iż modelowanie przez użytkownika aplikacji agenta jest bardzo ważną i złożoną sprawą.
Elektroniczna sekretarka
Ta klasa agenta wykonuje podstawowe czynności takie jak organizacja spotkań. Biorąc na własny rachunek swoje własne wymagania i preferencje agent kontaktuje się z innymi agentami znajdującymi się w środowisku i ustala taki termin który zadawala wszystkich. Agent może także negocjować miejsce spotkania, lub też może się ograniczyć do ograniczenia kosztów spotkania ( koszty dojazdu ) lub też liczby ludzi muszących podróżować.
Inne aplikacje zawierają możliwości obsługi poczty elektronicznej.
Wyszukiwanie informacji
Ogromna ilość informacji jaka się znajduje w World Wide Web i potrzeba użycia Unified Resourse Location ( URL ) dla zlokalizowania ich, powodują iż szybkie zlokalizowanie pożądanych informacji i usług staje się coraz trudniejsze do wykonania. Ta niedogodność jest właśnie załatwiana przez agenta wyszukującego interesujące nas informacje. Wyszukiwane informacje mogą być obarczone wieloma zastrzeżeniami.
Kontrolowanie działania platform
Systemu zawierające kilku agentów mają duże zastosowania w kwestii kontrolowania. Dla przykładu OASIS jest systemem multi agentów kontrolujących pracę lotniska w Sydney inny system multi agentów używany jest także w laboratoriach CERN i wielu innych miejscach.
Inne dziedziny
W wielu innych dziedzinach życia jest możliwe znalezienie odpowiednich zastosowań technologii agenta z korzyścią właśnie dla tych dziedzin w szczególności : sztuczna inteligencja, robotyka , bankowość, finanse, produkcja, edukacja, zdrowie, gry.
Inteligentni agenci
Ta klasa agenta jest trzonem dziedziny DAI. Inteligentni agenci zwiększają możliwości takie jak : planowanie, uczenie się, rozumowanie, i współpraca. Systemy multi agentów odsyłają do zespołu inteligentnych agentów, należących do tak zwanej społeczności, która pracuje i współpracuje aby osiągnąć zamierzony cel.
Istnieją dwie szkoły myśli dotyczącej inteligentnych agentów : rozważna, umyślna i reakcyjna. Ostatnia szkoła stwierdza iż agenci uczestniczą w globalnym multi agentowym systemie nie muszą posiadać indywidualnej inteligencji. Zatem więc reakcyjni agenci powinni współpracować ze sobą i posiadać mechanizm pozwalający im na reagowanie na nadchodzące wydarzenia i bodźce.
W przypadku pierwszego z powyższych typów agentów każdy z nich posiada własną wiedzę zawierającą podstawowe informacje dotyczące wykonania zadań jak też dawać sobie radę w czasie interakcji z innymi agentami i ze swym środowiskiem. W czasie współpracy między agentami możliwa jest negocjacja pomiędzy nimi jak też rozwiązywanie istniejących problemów. Generalnie ta klasa jest projektowana poprzez nadanie takich cech agentom jak : przekonanie, wiara, chęć, intencja jest to architektura która pozwala na modelowanie i projektowanie agentów przy czym należy zwracać uwagę na ich wiedze, cele i plany. Problem komunikacji jest kluczowy w środowisku zawierającym kilku agentów, wynika to z tego iż teoria właściwej komunikacji obejmie całą subtelność wymiany informacji. W szczególności musi objąć intencje działania agentów. Przykładowy model teorii komunikacji może być zaadoptowany ze znanej pozycji Speach Act Theory napisanej przez J.L.Austin i J.R.Searle. Książka ta mówi o filozofii komunikacji pomiędzy ludźmi, która stwierdza iż `mówić znaczy działać `. W szczególności ta teoria odróżnia się trzema aspektami dotyczącymi wypowiedzi zdania i jej konsekwencji :
wypowiedź, który składa się z fizycznej wypowiedzi przekazującej budowę zdania używając gramatyki i słownictwa.
odpowiedź, która odsyła do samodzielnego działania, które jest wykonane przez mówiącego.
zapowiedź, która zawiera ( pojmowanie ) wszystkie efekty działania (pośrednie lub bezpośrednie ), które mogą wpływać na umysłową postawę.
W książce Speach Act Theory odpowiedź jest objęta przez tak zwane słowo związane z wykonawstwem. Wewnątrz języka angielskiego , Austin zidentyfikował dużą ilość wyrazów wykonawczych ( czasowników ), które posiadają odpowiednią siłę. Pomiędzy nimi jest : pragnąć, żądać, potwierdzać, zapewniać, obiecywać.
Na podstawie tych właśnie wyrazów można budować bazę potrzebną do komunikacji pomiędzy agentami. KQML i FIPA ACL są dwoma komunikacyjnymi językami które są powszechnie używane przez środowiska multi agentów.
KQML oferuje duży komplet takich czasowników i jest łatwy do użycia. Pomimo to posiada on kilka wad : niektóre z tych czasowników są bezużyteczne i nawet zbędne; innych brakuje takich jak dotyczących zobowiązań. W sumie KQML nie ma zbyt dobrze zbudowanej semantyki w konsekwencji używanie tych czasowników może doprowadzić do niezrozumienia a nawet do dwuznaczności.
Lekarstwem na te problemy może być język oparty na konstrukcji FIPA, która ma ścisłą formę semantyki ( pierwszy logiczny porządek ) oparty na odpowiednich przymiotach ( wiara, niepewność, wybór, chęć itd. ). Bardziej precyzyjnie każdy z czasowników jest skojarzony z :
tym co jest założeniem wysyłającego
jaki efekt jest oczekiwany na otrzymaną wiadomość z punktu widzenia wysyłającego ( racjonalny efekt )
Czasowniki są tylko jednym z aspektów porozumiewania się. Drugim składnikiem jest zawartość wiadomości. Dla przykładu w zdaniu : `I request you to buy all avaible Alcatel stacks', gdzie `I' i `You' są finansowymi agentami , czasownikiem jest `request' tematem żądania, zwanym `content', jest `to buy all...'. W przypadku dwóch współpracujących ze sobą agentów takich jak `I', `You' głównym problemem jest dzielenie się wspólnym słownictwem i ustalenie wspólnych pojęć ( `buy', `all', `stocks','Alcatel' ), które to pozwala im nawzajem na zrozumienie się. To wspólne ustalenie nazywane jest ontologią ( ontologia - pojęcie filozoficzne które mówi o pierwszych zasadach i ostatecznych przyczynach ). Ontologia istnieje ( lub powinna istnieć ) dla każdych dostępnych dziedzin, takich jak elektroniczny handel, podróże, chemia i zarządzanie siecią. Zdefiniowanie ontologii nie jest łatwym zadaniem i generalnie potrzebuje specjalistycznych umiejętności i wiadomości na temat trzeciej części wiadomości ( np. finansowy ekspert zajmujący się handlem elektronicznym ), lista koncepcji i związków pomiędzy nimi musi być kompletna i solidna. Pozwolenie agentom na współpracę nie jest łatwym zadaniem, w głównej mierze dlatego że różne niejednorodne i zastrzeżone technologie istnieją obecnie. Dlatego też pewne aspekty inteligentnego agenta muszą być ustandaryzowane w porządku pozwalającym na ich umieszczenie w środowidku. FIPA ma na celu wprowdzić odpowiednie standardy aby zapewnić najwyższy stopień współpracy pomiędzy agentami zaprojektowanymi przez różne firmy. W dziedzinach zainteresowania FIPA znajdują się agenci i interfejsy różnych składników w środowisku w którym agenci mogą ze sobą współpracować (np. ludzie, inni agenci, fizyczny świat ). Podstawową zasadą jest to iż w środowisku zewnętrznym zachowanie się musi być ustandaryzowane zaś w środowisku wewnętrznym może być pozostawione kreatywności twórcy tego środowiska. Dwie różne specyfikacje zostały zrealizowane w 1997 i 1998 roku. Więcej szczegółów można znaleźć w FIPA URL.
Podsumowanie
Technologia agenta jest czymś więcej niż tylko jeszcze jedną nową technologią, według wielu ekspertów ta technologia zrewolucjonizuje świat telekomunikacji, aplikacji sieciowych i usług. Jest to w szczególności z odpowiednią korzyścią dla handlu elektronicznego i w najwyższym stopniu dla nowych możliwościach w internecie. Wprowadza to naturalną możliwość projektowania aplikacji służących handlowi elektronicznemu, zarządzaniu siecią,, usługom on-line, wirtualnym prywatnym sieciom, prywatnym asystentom.
Jednakże aby pozwolić i ułatwić rozmieszczanie aplikacji bazujących na agencie w środowisku, pewne kwestie nadal są rozwiązywane. Po pierwsze agent musi być bezpieczny ponieważ musimy mu zaufać. Dlatego też bezpieczeństwo jest kluczową sprawą w przyszłości. Po drugie technologia, lub w końcu różne jego aspekty, muszą jeszcze być ustandaryzowane tak aby agenci mogli współpracować i rozumieć się nawzajem.. Ostatecznie jest kilka pytań odnośnie co do społecznych i etycznych oddziaływań. Jaka jest lub będzie tak naprawdę relacja pomiędzy agentem a jego właścicielem ? Czy ludzie nie staną się zbyt zależni od oprogramowania ? Czy wyszukiwanie informacji i filtrowanie ich wprowadzi cenzurę lub też uderzy w prywatność innych? Jak będą pasować do istniejących już struktur ?.
Na wszystkie te pytania należy odpowiedzieć i osiągnąć konsensus w tych kwestiach zanim agent zostanie użyty bezpiecznie i owocnie.