Universitatea Tehnică din Cluj-Napoca

Facultatea de Automatică şi Calculatoare

Catedra de Automatică

Str. G. Bariţiu 26-28, 400027 Cluj-Napoca, ROMÂNIA

Tel.:      +40-264-594469

Fax/Tel.: +40-264-594469

 

CONTRACT TIP PN-II-IDEI, nr. 93/1.10.2007

Faza I, unică pe anul 2007

Valoare fază: 53.412 lei

 

Sinteza lucrării

Dezvoltarea unor capacităţi de auto-întreţinere pentru societăţi digitale

Varianta detaliata (in extenso) este aici.

 

Faza 2007 - Adunarea şi sistematizarea datelor existente privind societatea digitală.

 

Activităţi:

1. Analiza de sistem pentru societatea digitală.

2. Cauzele şi factorii care influenţează evoluţia societăţii digitale.

1. Introducere

Dezvoltarea exponenţială a informaticii şi microelecronicii în ultima perioadă, creşterea continuă a gradului de integrare a sistemelor, miniaturizarea şi realizarea unor sisteme digitale tot mai complexe şi integrate la o scară din ce în ce mai largă, precum şi pătrunderea electronicii digitale în cadrul unor sisteme răspândite pe o arie geografică largă, formate dintr-un număr mare de subsisteme eterogene, dau naştere necesităţii unor noi metode de testare.

În cadrul acestor sisteme, testarea şi repararea clasică, locală, nu poate oferi rezultate cu o vedere de ansamblu asupra sistemului, datorită numărului extrem de mare de subsisteme elementare şi a naturii eterogene a acestora. O soluţie descentralizată, distribuită, pe de altă parte, este mult mai uşor de proiectat, implementat, întreţinut şi utilizat [1].

În tehnologia software îşi face loc din ce în ce mai mult în ultima vreme un nou concept: agent inteligent [2]. Acesta este un program independent, mobil, care este capabil de a funcţiona înspre îndeplinirea unor scopuri de o manieră flexibilă, şi într-un mediu în continuă schimbare. Prin gruparea agenţilor în societăţi digitale, în cadrul cărora ei comunică, învaţă unii de la alţii, se alătură pentru a rezolva probleme care le depăşesc capabilităţile individuale, se formează ceea ce se cheamă sisteme multiagent.

2. Agenţi inteligenţi

Un agent este orice entitate care poate fi văzută ca percepând mediul prin intermediul unor senzori şi acţionând asupra acestuia prin intermediul unor efectori. Un agent uman are ochi, urechi şi alţi analizatori pe post de senzori, şi mâini, picioare, gură şi alte părţi ale corpului pe post de efectori. Un agent robotizat, spre exemplu, foloseşte camere şi detectori cu infraroşu pe post de senzori, şi diverse motoare pe post de efectori. Un agent software îşi reprezintă acţiunile şi percepţiile ca şiruri codificate de biţi. Un agent generic este schematizat în figura 2.1.

O definiţie care pare a fi cuprinzătoare a fost dată de J. Ferber şi care are următorul enunţ: „Se numeşte agent inteligent o entitate reală sau abstractă care este capabilă de a acţiona asupra ei înşişi si asupra mediului său, care dispune de o reprezentare parţială a acestui mediu, care într-un mediu multi-agent poate comunica cu alţi agenţi şi al cărui comportament este consecinţa observaţiilor sale, cunoştinţelor sale şi interacţiunilor cu alţi agenţi”.

Un agent raţional este un agent care face întotdeauna lucrul care trebuie făcut. În mod evident, aceasta este mai bine decât a face lucrul incorect, dar ce înseamnă lucrul corect? Într-o primă aproximare, vom spune că acţiunea corectă este cea care duce agentul înspre succesul maxim. Rămâne de decis când şi cum se evaluează succesul agentului.

Definiţia unui agent raţional ideal rezultă deci ca fiind următoarea: pentru orice secvenţă de percepţii, un agent raţional ideal trebuie să efectueze acţiunea de la care se aşteaptă să îi maximizeze performanţele, pe baza datelor provenite din secvenţa de percepţii şi din cunoştinţele încorporate pe care agentul le are.

3. Componenţa unui agent inteligent

Un agent inteligent evoluează într-un mediu. El trebuie să fie în măsura să primească informaţii din acest mediu prin intermediul receptorilor şi de a acţiona asupra mediului prin intermediului efectorilor, având un comportament stabilit, plecând de la observaţiile şi raţionamentul propriu. Existenţa modulelor de comunicare este esenţială, cu atât mai mult cu cât mediul este constituit din alţi agenţi cu care agentul poate coopera pentru a-şi atinge obiectivul.

Figura. 3.1. Componentele unui agent inteligent

- Motorul este „ creierul agentului”.

- Cunoştintele reprezintă ceea ce agentul ştie, crede şi gândeşte. Cunoştintele pot fi bazate pe aplicaţii existente cum ar fi, de exemplu, o bază de date sau un agent mesager. Cunoştintele sunt stocate in librării.

- Interfaţa cu alte aplicaţii, care poate fi, de exemplu, cu curierul electronic sau cu web-ul, determina domeniul de aplicare al unui agent.

- Interfaţa cu utilizatorul permite comunicarea între agent şi utilizator. Utilizatorul dă instrucţiuni agentului şi acesta din urmă trimite înapoi rezultatele sau datele despre informaţiile cerute. Aceasta interfaţă poate fi una grafică uzuală, dar se preconizează realizarea de interfeţe complexe care să permită utilizarea limbajului natural vorbit, care va permite utilizatorului o interacţiune prietenoasă cu agentul. O asemenea interfaţă va trebui sa conţină o unitate de recunoaştere a vorbirii, de sinteză vocală şi de întelegere a limbajului natural.

4. Caracteristicile agentului inteligent

4.1. Inteligenţa

Inteligenta este capacitatea de a rationa si de a invata. Datorita ei agentul accepta intrebarile utilizatorului si tot ea il conduce in activitatea pe care trebuie sa o desfasoare. In cazul unui grad de inteligenta minim, utilizatorul poate specifica preferintele sale, de exemplu sub forma de reguli, iar agentul este inzestrat cu un mecanism de rationament care actioneaza in raport cu aceste preferinte.

La un grad de inteligenţă mai elevat, agentul va trebui să înţeleagă ceea ce utilizatorul vrea şi să planifice mijloacele necesare atingerii scopului.

4.2. Interactivitatea

In figura 4.2.1 sunt arătate componentele mediului cu care un agent poate reacţiona: oamenii, hardware-ul, alti agenţi şi software-ul care nu este al agenţilor. Aceste interacţiuni au nivele diferite în funcţie de complexitatea componentelor.

Figura 4.2.1. Interacţiunile agentului inteligent

4.3. Mobilitatea

Unii agenţi pot fi ficşi, adică ei sunt rezidenţi fie în calculatorul utilizatorului, fie pe server. Alţi agenţi pot fi mobili, putându-se deplasa prin reţea. Ei se pot deplasa din calculator în calculator, transportând pe durata execuţiei lor datele acumulate. Aceşti agenţi se pot adresa altor agenţi pentru a li se face anumite servicii. Mobilitatea implică rezolvarea unor probleme de securitate, de protecţie a vieţii private şi a datelor confidenţiale. In consecinţă, va trebui să se facă apel la agenţi de securitate care să supravegheze activitatea agenţilor care se instalează pe un dispozitiv. Pe termen lung trebuie să se ia necondiţionat în calcul posibilitatea deplasării şi a comunicării între agenţi.

5. FIPA

Necesităţile menţionate până acum, împreună cu alte caracteristici susceptibile a fi cerute din partea unor eventuale platforme multiagent în general, au fost observate de multă vreme, şi din necesitatea standardizării acestora s-a fondat organizaţia internaţională de standardizare FIPA (Foundation for Intelligent Physical Agents Fundaţia pentru agenţi fizici inteligenţi) [5]. Această organizaţie s-a format în 1996, cu scopul declarat de a produce standarde software pentru agenţi şi sisteme multiagent eterogene şi aflate în interacţiune. Pentru producerea acestor standarde, FIPA nu acţionează singură, ci solicită colaborarea membrilor săi şi a diverselor firme şi persoane implicate în dezvoltarea sistemelor multiagent. Scopul final al specificaţiilor realizate de FIPA este de a obţine interoperabilitatea între sisteme bazate pe agenţi dezvoltate de către diverse companii şi organizaţii.

Deşi accentul este pus pe aspectul comercial şi industrial al sistemelor bazate pe agenţi, FIPA îşi propune mai mult decât specificarea caracteristicilor acestora, şi anume specificarea agenţilor inteligenţi sau cognitivi, adică sistemele software capabile de a raţiona despre ele însele sau despre alte sisteme software sau fizice întâlnite în decursul vieţii lor. Această sarcină asumată implică dezvoltarea unor specificaţii pentru acte comunicative complexe, logică bazată pe predicate, ontologii publice şi semantică.

Comunicaţia interagent se leagă strâns de specificaţia FIPA ACL (Agent Communication LanguageLimbajul de comunicare interagent).

6. Model de referinţă societate digitală de agenţi

Modelul de referinţă pentru o societatea digitală de agenţi oferă o structură normativă cu care agenţii FIPA sunt compatibili să existe şi să funcţioneze. Combinaţi cu ciclul vieţii unui  agent  formează contexte logice şi temporale pentru creaţie, funcţionare a agenţilor.

Platforma agent conţine:

·         Facilitator (Directory Facilitator – DF)

·         Sistem de administrare a agentului (Agent Administration System – AAS)

·         Canal de comunicaţie interagent (Agent Communication Channel – ACC)

·         Platformă de transport a mesajelor interne (Internal Message Transport Platform – IMTP)

 

Figura 6.1. Platforma agent

 

6.1. Facilitatorul

Facilitatorul oferă un fel de servicii de pagini aurii, de informare totală pentru alţi agenţi şi doar el are această împuternicire. El trebuie să livreze informaţia corectă despre agenţii ce subscriu fără nici o discriminare faţă de agenţii autorizaţi. Facilitatorul poate să limiteze accesul la informaţie din propria bază de date şi poate să analizeze permisiunile pentru accesul altor agenţi pentru a îl informa despre statul lor. Facilitatorul nu controlează ciclul de viaţă al oricărui agent. Agenţii pot să-şi înregistreze serviciile cu ajutorul Facilitatorului ca să afle ce tip de servicii poate oferi un agent sau care agenţi pot oferi un serviciu similar.

Cel puţin un DF trebuie să fie rezident în fiecare platformă agent.

6.2. Sistemul de management al agentului

Aşa ca un sistem este o necesitate absolută pentru o platformă agent. E un agent care exersează un control de supervizor pe toate accesele si va folosi canalul comunicare al agentului. Numai un AMS va exista pe o platformă agent. AAS trebuie să se înregistreze pe ea însăşi cel puţin implicit Facilitatorului. El este responsabil cu administrarea platformei agent având sarcinile următoare.

·         Creare agenţi

·         Afişare agenţi

·         Decizia dacă un agent poate să se înregistreze dinamic cu platforma

·         Supravegherea migrării de şi la alte platforme agent

7. Platforma multiagent

Societatea multiagent pentru testarea distribuită are anumite caracteristici care impun tipuri de funcţionalitate corespunzătoare platformei multiagent care suportă această societate. Astfel, pentru a forma o societate, capabilitatea de bază a agenţilor trebuie să fie comunicarea. De asemenea, pentru a face posibilă distribuţia agenţilor de testare în spaţiul reţelei distribuite în funcţie de variaţiile de sarcini de testare din diverse puncte ale acesteia, o altă capabilitate a acestora trebuie să fie mobilitatea. Vorbind despre comunicare, trebuie observat că un agent nu are de unde să “ştie” a priori cu ce agent să comunice pentru a rezolva un anumit tip de sarcină. Pentru a face posibilă publicarea diverselor tipuri de servicii pe care un agent este capabil să le execute, precum şi obţinerea de referinţe de către un agent interesat într-un anumit tip de serviciu înspre agenţii care îl furnizează, este nevoie de ceea ce se numeşte un sistem de management al societăţii de agenţi. De asemenea, la nivel de implementare, platforma trebuie să asigure un model de acţiune coerent, flexibil şi intuitiv pentru agenţi.

Un agent nu poate „supravieţui” fără serviciile de bază mai sus amintite:  Directory Facilitator, Agent Management System şi Agent Communication Channel. Acest lucru este destul de evident pentru că agentul trebuie să comunice. Aceşti agenţi speciali sunt puşi la un loc cu alte facilităţi din platforma agent. Fără această platformă un agent nu poate exista, trăi şi atinge scopurile, eventual să “moară”.

Sunt multe tipuri de platforme dezvoltate de-a lungul anilor de multe companii, unele având ca şi scop doar cercetarea, altele special construite pentru munca actuală şi rezolvarea nevoilor acelor companii şi unele care la început se ocupau doar cu cercetarea şi ulterior au devenit viabile din punct de vedere economic şi practic.

Pentru dezvoltarea unui agent trebuie să avem un limbaj de programare care să fie:

-          orientat pe obiecte;

-          nivel reţea – pentru a comunica date altor dispozitive

-          securizat – pentru a preveni accesul neautorizat la informaţii importante

-          fiabil – deoarece echipamentele clientului să nu intâmpine probleme sau sa fie resetate sporadic.

-          platformă independentă – pentru compatibilitatea binară între marea diversitate de dispozitive

-          multifir – pentru a permite mai uşor ca o activitate să se petreacă în mod simultan cu o alta

-          dinamic – pentru a permite încărcarea şi descărcarea a unor software-uri variate

-          cod sursă de o dimensiune redusă necesar pentru dispozitivele cu memorii mici, precum şi pentru costul scăzut al dispozitivelor clientului

-          simplu şi familiar – uşor de programat

8. Hardware cu autoîntreţinere

Creşterea nivelului de integrare a microelectronicii a adus, pe lângă beneficii, şi înmulţirea defectelor tranzitorii şi permanente, ceea ce a dus la scăderea fiabilităţii. Desigur, pentru contracararea acestei probleme, există soluţii vechi şi bine puse la punct, dar majoritatea acestora presupun intervenţie umană, sau cel puţin intervenţia unui factor extern.

Autoîntreţinerea hardware, pe de altă parte, este o metodă relativ recentă şi presupune ca dispozitivul defect sau pe cale să se defecteze să se „sesizeze”  şi să‑şi revină singur. Acest lucru se poate realiza, de obicei, printr-un surplus sau duplicare a funcţiilor, în hardware, şi prin utilizarea unui software local sau electronică de decizie, care să testeze sau/şi să dezactiveze partea defectă, predându‑i sarcinile părţii de rezervă a dispozitivului.

Există diferite soluţii pentru logica decizională şi înlocuirea sarcinilor. De exemplu, dacă funcţionalitatea este implementată în FPGA, în caz de defect, o parte nefolosită a matricii se poate reconfigura, preluând funcţionalitatea defectă [4,5]. Pentru o structurare mai bună, se poate folosi o detecţie a părţilor defecte similară sistemului imunitar uman: celulele găsite defecte sunt înlocuite cu celule de rezervă, care le preiau funcţiile [6]. Pentru sisteme multiprocesor, se experimentează chiar şi compilatoare noi care optimizează încărcarea diferitelor procesoare atât pentru performanţă, cât şi pentru disponibilitate ridicată [7].

Există problema comunicării modulelor hardware reconfigurabile cu restul sistemului, deoarece aceste module nu au canale de comunicaţie optimizate pentru interfaţarea cu sistemul, ele fiind proiectate pentru flexibilitate în reconfigurare, nu neapărat viteză a comunicaţiei. Una din soluţiile eficiente este utilizarea unei zone de memorie comună, partajată între modulele reconfigurabile şi celelalte module, de regulă procesoare [8].

9. Evoluţia societăţii digitale

Evoluţia societăţii digitale trebuie privită din două perspective: pe de o parte, evoluţia societăţii digitale în uz, iar pe de altă parte, evoluţia cercetării pe tema societăţilor digitale.

Societatea digitală, în funcţiune, se dezvoltă. Agenţii din societăţile multiagent „învaţă” din propriile greşeli, dar şi de la alţi agenţi ai societăţii. Teoretic, cu trecerea timpului, ei se adaptează, păstrând cunoştinţele care s‑au dovedit utile în întreţinerea sistemului şi „uitându‑le” pe cele nefolositoare. Desigur, acest lucru depinde de capacitatea de memorare a agenţilor, limitat fizic, dar şi de variaţia sistemului în timp, adică schimbarea proprietăţilor componentelor sau a funcţiilor, eventual adăugarea unor componente/funcţii noi.

Cercetarea în acest domeniu evoluează rapid, cercetătorii descoperind noi scopuri de utilizare a societăţilor digitale, dar şi a unor noi tehnici de programare şi de implementare a facilităţilor de autoîntreţinere oferite de aceste societăţi. Evoluţia acestora depinde atât de resursele de cercetare alocate domeniului, cât şi de dezvoltarea tehnologiei ca platformă pentru aceste societăţi digitale, dar şi a ideilor noi de implementare şi optimizare a lor.

10. Concluzii

Sistemele distribuite, mai ales cele cu multe module în componenţă sau distribuite pe arie geografică largă, sunt mai uşor de monitorizat, testat şi întreţinut cu ajutorul unor societăţi digitale cu autoîntreţinere. Această soluţie se bazează, pe de o parte, pe o decentralizare a controlului, iar pe de altă parte, pe agenţi inteligenţi, implementând un sistem decizional distribuit, cu autoîntreţinere.

Acest fapt duce la un număr semnificativ de avantaje, printre care putem aminti:

-          creşterea flexibilităţii şi scalabilităţii sistemului de întreţinere, ceea ce permite aceleaşi calităţi pentru sistemul întreţinut;

-          capacitatea modulelor de întreţinere de a ajunge adânc în nivelele de jos ale sistemului;

-          viteză mai mare datorită paralelismului şi distribuţiei sarcinilor;

-          scădere a încărcării comunicaţiei, datorită administrării descentralizate;

-          mentenanţă uşoară şi dezvoltarea continuă a aplicaţiei, permisă de nivelul înalt de modularitate.

11. Bibliografie

1.      Sz. Enyedi, L. Miclea, H. Vălean, I. Stoian, On-line monitoring and testing of a power plant chain, Proceedings of ICPS'07, Cluj-Napoca, Romania, July 9-11, 2007, ISBN 978-973-713-180-5, pp. 228-233.

2.      R. Unland, M. Klusch, M. Calisti, Software Agent-Based Applications, Platforms and Development Kits, ed. Birkhauser, 2005, ISBN 978-3764373474.

3.      ***FIPA SC00001, Abstract Architecture Specification, http://www.fipa.org/specs/fipa00001/SC00001L.html

4.      A. Benso, A. Cilardo, N. Mazzocca, L. Miclea, P. Prinetto, Enyedi. Sz., Reconfigurable Systems Self-Healing using Mobile Hardware Agents, Proceedings of International Test Conference 2005, Austin, TX, USA, November 8 - 10, 2005.

5.      S. Habermann, R. Kothe, H. T. Vierhaus, Built-in Self Repair by Reconfiguration of FPGAs, Proceedings of IEEE International On-Line Testing Symposium, 2006, ISBN 0-7695-2620-9/06.

6.      P. K. Lala, B. Kiran Kumar, An Architecture for Self-Healing Digital Systems, Proceedings of IEEE International On-Line Testing Workshop, 2002, ISBN 0-7695-1641-6/02.

7.      Dennis Sylvester, David Blaauw, Eric Karl, ElastIC: An Adaptive Self-Healing Architecture for Unpredictable Silicon, IEEE Design & Test of Computers, Nov-Dec 2006, ISSN 0740-7475/06, pp. 484-490.

8.      Philip Garcia, Katherine Compton, A Reconfigurable Hardware Interface for a Modern Computing System, Proceedings of International Symposium on Field-Programmable Custom Computing Machines, 2007, ISBN 0-7695-2940-2/07, pp. 73-81.

 

Cluj-Napoca, 05 dec. 2007

                                                                                                         Director proiect,

                                                                                                         Prof.dr.ing. Liviu MICLEA