Universitatea Tehnică din Cluj-Napoca


Agenţi mobili hardware cu auto întreţinere



Yüklə 226,16 Kb.
səhifə5/5
tarix12.11.2017
ölçüsü226,16 Kb.
#31486
1   2   3   4   5

Agenţi mobili hardware cu auto întreţinere


In contextul descris al Societăţii de Sisteme Digitale, un scenariu ideal este unul în care erorile, defectările, noile caracteristici ai mediului, cerinţele de securitate nesatisfăcute şi schimbările în implementările serviciilor sunt detectate dinamic şi automat, şi „reparate”, la nevoie, de sistemele însele, fără a necesita intervenţie umană externă, şi imediat ce apar în timpul funcţionării. Sistemele digitale capabile să detecteze şi, eventual, să corecteze propriile funcţionări greşite, se numesc sisteme cu auto întreţinere.

Pentru moment, sistemele cu auto întreţinere sunt populare şi eficiente doar în proiectarea şi producţia de dispozitive integrate hardware (cum ar fi plăci de memorie), dar investigarea aplicaţiilor lor în domeniul sistemelor eterogene este încă într un stadiu preliminar. Diferenţa principală dintre un dispozitiv cu auto întreţinere şi o „societate cu auto întreţinere” este posibilitatea folosirii cunoştinţelor şi expertizei tuturor membrilor societăţii digitale la rezolvarea unor probleme critice şi complexe. Într o societate cu auto întreţinere, un dispozitiv defect poate fi reparat pe baza cunoştinţelor altor indivizi, chiar dacă aceştia original nu au fost proiectaţi să trateze problema detectată. De exemplu, societatea digitală poate avea capacitatea de partajare a unei baze de cunoştinţe pentru a rezolva probleme pe care dispozitivele individuale nu ar fi în stare să le rezolve.

Figura 1 ilustrează cerinţele principale pentru un sistem generic cu auto întreţinere (blocurile semi colorate se referă la facilităţi opţionale). Sunt necesare capabilităţi şi mecanisme de monitorizare pentru observarea comportamentului unui sistem şi pentru a permite tehnologiei de Auto Întreţinere să controleze automat ducerea la bun sfârşit a cerinţelor. Sunt necesare şi mecanisme de detecţie pentru a detecta când comportamentul observat şi indicatorii deviază de la domeniul de acceptare stabilit. Poate fi nevoie de mecanisme şi strategii de diagnoză pentru a determina dacă deviaţiile detectate ar dice la probleme reale (adică defect). Mecanisme de rezolvare permit schimbări automate şi intervenţii în sistem pentru repararea eventualelor defecte diagnosticate. Mecanisme de prevenţie pot anticipa, uneori, problemele, bazându se pe informaţia monitorizată. În final, strategii de învăţare pot oferi întregii societăţi o bază de cunoştinţe online pentru susţinerea procesului decizional la toţi paşii auto întreţinerii.



Figura 1: Mecanisme cu auto întreţinere
Pentru atingerea acestui obiectiv, infrastructura cu auto întreţinere trebuie să fie extrem de flexibilă, independentă de platformă, autonomă, portabilă şi scalabilă. Utilizarea tehnologiei cu Agenţi de Date Mobili pare a fi cea mai inovativă, mai puternică, mai economică, mai flexibilă şi mai scalabilă alegere. Agenţii de Date Mobili garantează posibilitatea observării comportamentului sistemului, a evaluării constrângerilor impuse de mediul extern şi a aplicării corecţiilor adecvate, cu minim de supraîncărcare.

Cele mai atractive şi inovatoare avantaje ale Societăţilor Digitale cu Auto Întreţinere, bazate pe Agenţi, includ:



  • Costuri globale reduse: versiuni noi de agenţi, implementând facilităţi noi de auto întreţinere, pot fi încărcaţi în dispozitivele ţintă, fără necesitatea vreunei sarcini specifice de mentenanţă;

  • Mai puţin hardware şi software integrat: Agenţii Mobili sunt module software care nu au nevoie de hardware dedicat, nici să fie stocaţi pe dispozitiv, cu excepţia momentului execuţiei lor;

  • Bază de cunoştinţe: Agenţii Mobili pot returna multe informaţii despre condiţii de defect şi proceduri de reparare, care pot fi extrem de utile în studierea unor facilităţi noi de auto întreţinere şi care pot fi refolosite de alte dispozitive;

  • Extindere la diferite clase de sisteme sau nivele de abstractizare: infrastructura de agenţi mobili de bază poate fi aplicată la sisteme diferite, astfel făcând soluţia independentă de platformă; posibilitatea reîmprospătării capacităţilor de auto întreţinere extind aplicaţia la tot ciclul de viaţă, depăşind mult testarea şi analiza.

Utilizarea tehnologiei de agenţi mobili ca infrastructură de bază a mecanismelor cu auto întreţinere este o alegere nouă, care poate constitui o realizare tehnologică şi o contribuţie ştiinţifică relevantă la cunoaşterea şi înţelegerea domeniului. De asemenea, din punctul de vedere al producătorilor de dispozitive digitale, alegerea Agenţilor Mobili este extrem de atractivă, deoarece, pentru a face parte dintr o Societate Digitală cu Auto Întreţinere, un dispozitiv trebuie doar să fie compatibil cu Agenţii Mobili, adică să permită unui agent să se încarce în dispozitiv şi să permită agentului mobil acces extins dar controlat la hardware ul local, servicii şi date.

Contribuţia majoră a acestei cercetări este trecerea conceptului de Agent Mobil la nivelul hardware, introducând Agenţii Hardware Mobili, adică agenţi software capabili să se mişte, luând cu ei codul executabil de program, datele şi componente hardware. Componentele hardware sunt mutaţi sub forma unor şiruri de biţi de configurare FPGA, sistemul client fiind un Sistem Reconfigurabil în timpul funcţionării, în care hardware ul reconfigurabil este disponibil agenţilor şi pentru socpuri de testare şi reparare.

Utilizarea logicii nededicate, a cărei funcţie poate fi modificată în timpul funcţionării, pentru înlocuirea unei componente hardware defecte sau pentru a implementa o componentă de autotestare înglobată (Built-In Self-Test) nouă, este foarte atractivă. Acest concept nu a mai fost aplicat la sisteme cu auto întreţinere, unde poate deveni o inovaţie importantă.

Astfel de scenarii sunt susţinute de abilitatea de reconfigurare a hardware ului după implementarea iniţială. În particular, reconfigurabilitatea parţială şi dinamică, chiar dacă nu sunt strict esenţiale, sunt două aspecte fundamentale care permit o multitudine de scenarii noi de aplicaţie. În principiu, reconfigurabilitatea parţială permite proiectantului să partiţioneze aria reprogramabilă a cipului în regiuni diferite, cărora li se vor aloca şirurile de biţi aşteptate. Această abordare pare potrivită în special pentru a susţine paradigma agenţilor hardware mobili. Partiţionarea propriu zisă poate fi statică sau dinamică. În primul caz, ea este definită rigid în momentul primei configurări complete a FPGA ului. În cazul al doilea, se recurge la tehnici mai sofisticate pentru varierea dinamică a mărimii ariilor alocate încărcării modulelor noi în FPGA.

A doua abordare permite optimizarea mai adâncă a resurselor hardware, dar este o provocare mai mare din punct de vedere al realizării tehnice. În ambele cazuri, aplicaţia implementată necesită logică fixă care să guverneze interacţiunea dintre module şi comunicaţia cu lumea exterioară. Logica fixă este parte vitală a Sistemelor de Agenţi Mobili care trebuie plasaţi în fiecare nod compatibil cu agenţi al reţelei.

Următoarea figură prezintă o diagramă bloc de nivel înalt a unui nod compatibil cu agenţi hardware mobili:





Prezentare de nivel înalt a unui nod compatibil cu agenţi hardware mobili

Sistemul de Agenţi Mobili acţionează ca un strat de abstractizare, ascunzând caracteristicile specifice sistemelor gazdă. El constituie, de fapt, interfaţa de sistem de operare expus agenţilor găzduiţi. Platformele tradiţionale de agenţi totdeauna vin cu agenţii hardware mobili construiţi pe un sistem de operare „nativ” care asigură toată funcţionalitatea nivelului de jos. În schimb, în scenariul planificat, agenţii sunt aplicaţii speciale ce execută o parte a sarcinilor ca şi componente hardware. Ca şi consecinţă, sistemul de operare mai are rolul crucial de a expune resursele hardware ului reconfigurabil unor astfel de aplicaţii, sub forma unei interfeţe consistente de nivel înalt. Sisteme de operare care oferă o astfel de interfaţă au fost doar recent propuse (suportând aplicaţii generice, non mobile). Ele sunt uneori numite sisteme de operare pentru hardware reconfigurabil (reconfigurable hardware operating systems – RHOS). Abstractizând într un mod consistent detaliile software ului de sistem, pe de o parte, şi resursele hardware ului reconfigurabil, pe de altă parte, se poate dovedi o provocare.

Întrebarea dacă o astfel de abstractizare este sau nu posibilă este încă discutabil şi nu are răspuns uşor, dată fiind influenţa aspectelor tehnologice ale nivelului de jos. Totuşi, este clar că îngustarea domeniului paradigmei calculului reconfigurabil şi considerarea domeniilor de aplicabilitate mai specifice, va duce la obţinerea unor straturi de abstractizare consistente. De exemplu, sistemele cu auto întreţinere cu tipar arhitectural fix şi partiţionare hardware/software au mai multe şanse de a corespunde unor modele abstracte decât sistemele generice cu partiţionare dinamică. Este mai probabilă dezvoltarea verticală a agenţilor hardware mobili, în domenii de aplicare specifice, beneficiind astfel de eforturile de abstractizare.

În particular, se prevede o dezvoltare a două aplicaţii principale pentru Agenţi Hardware Mobili în cazul Sistemelor Reconfigurabile cu Auto Întreţinere:



  • Auto testare: după ce ajunge la sistemul destinaţie, Agentul analizează sistemul şi comunică cu Baza de Cunoştinţe a Societăţii de Agenţi, pentru definirea celui mai bun plan de testare a dispozitivului ţintă. Aceasta poate include reconfigurarea parţială a logicii nededicate pentru implementarea unor arhitecturi de autoreparare înglobată sau module de generare de teste.



Agenţi Hardware Mobili în auto testare

  • Auto reparare: Agentul, la găsirea unui dispozitiv defect, este capabil să localizeze un Agent Hardware Mobil pentru înlocuirea fizică a componentei defecte, încărcând şirul de biţi de reconfigurare corect.



Agenţi Hardware Mobili în auto reparare

Experimente


Vom prezenta aici un sistem experimental autoreparator, bazat pe agenţi mobili hardware. Prototipul construit este axat pe o infrastructură de reţea şi o arhitectură cu o Gazdă de Agenţi centrală (o maşină de calcul performantă) şi mai multe noduri periferice cu capabilităţi reconfigurabile. Această organizare este reprezentativă pentru o clasă largă de sisteme distribuite şi poate fi folosită în modelarea, de exemplu, unui sistem de control distribuit.

În experimentul nostru, nodurile sunt sisteme înglobate cu resurse foarte limitate, bazate pe hardware reprogramabil (FPGA). Sistemul de Agenţi Mobili este împărţit în două componente: un strat comun software inclus în Gazda Centrală şi câteva rutine locale de nivel redus instalate în fiecare nod periferic. Această structură este prezentată în următoarea figură.





Arhitectura adoptată în sistemul experimental

Agenţii trăiesc în Gazda de Agenţi, care implementează cea mai mare parte a interfeţei expusă lor. Printre alte funcţii, agenţii pot interacţiona cu nodurile periferice, primi şirul de biţi de la FPGA, pune propriile componente hardware în FPGA („partea hardware” a agenţilor hardware mobili), adică pot încărca şiruri parţiale de biţi în FPGA. Diferiţi agenţi pot implementa diferite strategii de testare/reparare şi pot trata nodurile în feluri diferite. Mai mult, agenţii pot accesa memoria de sistem în fiecare nod şi pot schimba unele detalii software, de exemplu adrese de periferice (ceea ce poate fi necesar după o reconfigurare de hardware).

În principiu, agenţii pot dezvolta dinamic strategiile lor prin explorarea secvenţială a diferitelor noduri şi adunând tot mai multe cunoştinţe despre sistem. Agenţii pot chiar să migreze la/de la alte Gazde de Agenţi şi pot fi schimbate în timpul funcţionării pentru a implementa strategii nou definite.

Am implementat un sistem distribuit demonstrativ, în care nodurile periferice tratează date confidenţiale (de exemplu, date de la senzori în aplicaţii medicale). În acest scenariu, fiecare nod achiziţionează, procesează şi codifică propriile date şi transmite datele procesate la un server central (care este şi Gazdă de Agenţi). Codificarea locală se bazează pe algoritmi cu chei simetrice (codificare AES [8]) şi este efectuată cu hardware dedicat la fiecare nod. În particular, nucleul de codare AES [12] este implementat în FPGA ul periferic. Un agent de testare este responsabil de migrarea la Gazda de Agenţi centrală, executarea unor proceduri de testare pe blocul criptografic (critic pentru integritatea datelor colectate) şi, eventual, aplicarea unor strategii de reparare. Mai precis, paşii urmaţi de către agent sunt următoarele:



  • autoinstalarea în Gazda de Agenţi;

  • accesarea listei de noduri şi a tipurilor nodurilor de la Gazda de Agenţi;

  • pentru fiecare nod, descărcarea şi salvarea şirului original de biţi;

  • încărcarea interactivă în FPGA a unor şiruri de biţi speciale cu vectori de test;

  • descărcarea şirurilor de biţi de test din FPGA;

  • în cazul unui defect, detectarea în cipul FPGA a zonelor care sunt considerate fără defect şi sunt destul de largi pentru o copie a nucleului de codare AES (alegere bazată pe o partiţionare predefinită a cipului FPGA);

  • dacă este posibil, încărcarea unui şir de biţi diferit, creat anterior, care foloseşte doar zonele fără defect ale cipului.

Procesul de reparare poate fi rezumat în figura următoare.



Reparare prin mutarea unităţii funcţionale
Nodurile periferice trebuie să susţină doar interacţiuni la nivel redus cu agenţii şi, astfel, ele includ părţi din Sistemul de Agenţi Mobili („Mobile Agent System” – instalat pe şi partajat prin Gazda de Agenţi). Agenţi diferiţi pot fi implementaţi folosind strategii de testare/reparare diferite. Mai mult, se pot folosi agenţi inteligenţi care să efectueze strategii distribuite de reparare, unde un nod să fie replicat, la nevoie, prin activarea unui alt nod neutilizat.

În ceea ce priveşte echipamentul, configuraţia experimentală include:



  • placă ARM Integrator Board cu un cip ARM7TDMI şi FPGA Xilinx Virtex2000E (nod periferic);

  • sistem de operare de timp real uCLinux, rulând pe nodul periferic;

  • staţie de lucru DELL Precision 360 (Gazdă Agenţi);

  • Windows-XP, Mediu Java 1.5.0, rulând pe staţia de lucru centrală.

Gazda de Agenţi se bazează pe tehnologie Java Aglet [1], extinsă cu câteva pachete pentru interacţiunea la nivel redus cu nodurile periferice. Pe nodurile periferice s au instalat biblioteci C pentru interacţiunea cu agenţii Java (notificarea începerii procesului de testare şi suspendarea activităţilor nodului).

Concluzii şi posibilităţi de dezvoltare


Direcţiile moderne în dezvoltarea mediilor digitale vor duce tot mai mult la scenarii în care sisteme digitale eterogene şi disponibile pretutindeni interacţionează prin interfeţe distribuite şi fără fir şi care asigură productivitate şi flexibilitate crescută. Caracterul eterogen şi complexitatea în creştere a unor astfel de scenarii vor ridica multe probleme noi (de exemplu defecte tranzitorii, medii de lucru imprevizibile, probleme şi pericole de securitate care pot apare, probleme de interoperabilitate), probleme care pot afecta funcţionalitatea sistemului, şi pot deveni următoarea provocare pentru industria tehnologiei informaţiei şi comunitatea de cercetare. Ca răspuns promiţător la aceste probleme, se poate vorbi despre două tehnologii: Agenţi de Date Mobili („Mobile Data Agents”), pentru a ataca complexitatea şi eterogenitatea infrastructurilor de reţea, şi Sisteme Reconfigurabile („Reconfigurable Systems”), pentru implementarea sistemelor digitale flexibile, adaptabile şi cu performanţe ridicate.

Am analizat aici felul în care aspectele inovatoare ale acestor două tehnologii promiţătoare pot fi folosite pentru implementarea unor strategii de testare şi reparare eficiente şi complet noi. Pe de altă parte, am încercat prezentarea trecerii la nivel hardware a testării şi reparării cu Agenţi Mobili, introducând conceptul de Agent Hardware Mobil.

De asemenea, am prezentat un sistem autoreparator experimental cu capacitatea de a găzdui şi interacţiona cu agenţi hardware mobili. Am explorat o arhitectură specifică, bazată pe o gazdă de agenţi centrală şi mai multe noduri periferice simple, arhitectură reprezentativă pentru o clasă largă de sisteme distribuite şi care poate fi folosită la modelarea, de exemplu, a unei aplicaţii de control distribuit.

Sunt multe lucruri legate de conceptul agenţilor hardware mobili, pe care nu le am prezentat, dar care vor fi analizate în viitor. Câteva dintre aceste sunt:

Problemele interoperabilităţii, descoperirii, securităţii pentru integrarea agenţilor. Este necesară definirea unor interfeţe care să descrie servicii ale agenţilor hardware mobili, accesibile prin reţea, prin protocoale de mesagerie standardizate şi flexibile. Interoperabilitatea şi accesibilitatea sunt cerinţe cheie în medii eterogene şi care se schimbă dinamic. De asemenea, este importantă investigarea dimensiunea securităţii şi dependabilităţii, care ridică probleme datorită naturii directe a agenţilor, în special a agenţilor hardware mobili care pot schimba porţiuni ale sistemului gazdă la nivel de circuit. Aşadar, este crucială definirea unor situaţii precise în care agenţii sunt permişi să lucreze şi să şi execute acţiunile.

Identificarea unei taxonomii pentru aplicaţiile care probabil vor popula scenariile gândite (de exemplu sisteme cu autoreparare, autoconfigurare, autoadaptare, partiţionare dinamică) şi definirea unor modele şi cerinţe pentru astfel de aplicaţii. Este necesară identificarea rolul potenţial şi beneficiile agenţilor hardware mobili în fiecare din clasele acestei taxonomii.

Definirea unor interfeţe consistente şi generale între sisteme gazdă şi agenţi. Scopul principal al acestora va fi abstractizarea caracteristicilor clasei specifice de aplicaţii şi decuplarea celor două procese distincte de dezvoltare sistem şi dezvoltare agenţi.

Investigarea problemelor şi limitărilor abstractizării hardware ului reconfigurabil ca funcţie a sistemului de operare gazdă şi studierea unor modele generale pentru interfeţe de sistem de operare şi vederi abstracte ale resurselor expuse agenţilor hardware mobili.


Bibliografie





  1. Aglets Specification 1.1 Draft, available at http://www.trl.ibm.com/aglets/spec11.htm

  2. A. Benso, S. Enyedi, L. Miclea, Intelligent Agents and BIST/BISR - Working together in Distributed Systems, IEEE International test Conference, Baltimore (Maryland), October 2002.

  3. B. Brewington, R. Gray, K. Moizumi, D. Kotz, G. Cybenko and D. Rus, Mobile Agents for Distributed Information Retrieval. In Matthias Klusch, editor, Intelligent Information Agents, chapter 15, Springer-Verlag, 1999.

  4. S. Fischmeister, and W. Lugmayr. The Supervisor-Worker Pattern, Pattern Languages of Programs (PLoP'99) (Allerton House, IL, August 15-18, 1999).

  5. A. Fuggetta, G. P. Picco, G. Vigna, Understanding Code Mobility, IEEE Transactions on Software Engineering, vol. 24 , n. 5, pp. 342-361, May 1998.

  6. D. Kotz, R. Gray, and D. Rus, Future Directions for Mobile-Agent Research, IEEE Distributed Systems Online, vol. 3, n.8, August 2002.

  7. S. Krishnaswamy, A. Zaslavsky, and S.W. Loke, Techniques for Estimating the Computation and Communication Costs of Distributed Data Mining, Procs. of International Conference on Computational Science (ICCS2002) - Part I, Lecture Notes in Computer Science (LNCS) 2331, Springer-Verlag. pp. 603-612, 2002.

  8. National Institute of Standards and Technology (U.S.), Advanced Encryption Standard. Available at: http://csrc.nist.gov/publication/drafts/dfips-AES.pdf

  9. H. S. Nwana, Software Agents: An Overview, Knowledge Engineering Review: Intelligent Systems Research, AA&T, BT Laboratories, UK, pages 206-244, 1996.

  10. A. Padovitz, S. Krishnaswamy, and S.W. Loke, Towards Efficient and Smart Selection of Web Service Providers Before Activation, the Workshop on Web Services and Agent-based Engineering (WSABE 2003), Melbourne, Australia, July, 2003.

  11. H. Peine, Run-Time Support for Mobile Code, Ph.D. Thesis, Universität Kaiserslautern, 2002.

  12. G. P. Saggese, A. Mazzeo, N. Mazzocca, A. G. M. Strollo, An FPGA-Based Performance Analysis of the Unrolling, Tiling, and Pipelining of the AES Algorithm, FPL2003, LNCS 2778, pp. 292-302, 2003.

  13. J. Waldo, G. Wyant, A. Wollrath and S. Kendall, A Note on Distributed Computing, technical report SMLI TR-94-29, Sun Microsystems Labs Inc, 1994.

  14. M. Wooldridge and N. R. Jennings, Agent Theories, Architectures and Languages: A Survey, Intelligent Agents: ECAI-94 Workshop on Agent Theories, Architecture and Languages, pages 1-32, 1995.

  15. B. Zeidman, The future of programmable logic, http://www.embedded.com/showArticle.jhtml?articleID=15201141

Cluj-Napoca, 23 oct. 2008

Director proiect,

Prof.dr.ing. Liviu MICLEA



1 RTL – Register Transfer Level


2 VLSI – very large scale integration

3 CAD – computer aided design




Yüklə 226,16 Kb.

Dostları ilə paylaş:
1   2   3   4   5




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©muhaz.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin