Dezvoltarea unor capacitati de auto-intretinere pentru societati digitale

Title in English: Development of Self-Healing Capabilities for Digital Societies

Tip proiect de cercetare: PN-II-IDEI, nr. 93/1.10.2007.

Director proiect: prof. dr. ing. Liviu Miclea.
Insitutie: Universitatea Tehnica din Cluj-Napoca.

Termeni cheie: auto-intretinere, societate digitala, agent mobil, testare, arhitectura reconfigurabila.

Rezumatul proiectului: Proiectul propune cercetarea si dezvoltarea unor solutii inovative de auto-intretinere pentru sisteme digitale, organizate in societati digitale eterogene complexe. In solutia propusa, capacitatea de auto-intretinere a sistemelor se bazeaza pe componentele lor, care sunt dispozitive cu auto-intretinere. Doua tehnologii sprijina aceasta paradigma: agenti de date mobili (mobile data agents, programe software inteligente si mobile) pentru infrastructura de comunicatii si sisteme reconfigurabile (reconfigurable systems, de obicei circuite FPGA) pentru implementarea unor componente configurabile, adaptive, reparabile si cu performante ridicate. Echipa de cercetare dispune de experienta si cunostinte in ambele tehnologii.

Project summary, in English: The project proposes the research and development of innovative self-healing solutions for digital systems, organized in digital heterogeneous complex societies. In the proposed solution, the self-healing capability of the systems is based on their components, which are self-healing devices. Two technologies support this paradigm: mobile data agents (intelligent and mobile software programs) for the communications infrastructure and reconfigurable systems (usually, FPGA circuits) for implementing configurable, adaptive, repairable and high performance components. The research team has experience and knowledge in both technologies.

Descrierea proiectului

Importanta si relevanta continutului stiintific

In sistemele de calcul de azi, puterea de calcul nu mai este concentrata in cateva unitati complexe si scumpe, ci in multe unitati simple si ieftine. Puterea lor consta in colaborare. Ele au si avantajul unei fiabilitati si flexibilitati ridicate. Pot exista unitati de rezerva, gata sa „se prezinte” oricand se defecteaza unul in lucru.
De exemplu, NASA lucreaza la „roiuri” de vehicule robotice pentru explorarea spatiului in viitor [1]. Aceste roiuri au avantajul autogestionarii si supravietuirii. Dezavantajul consta in proiectarea si programarea lor complexa. Agentia a pornit lucrarile la ANTS (Autonomous Nanotechnology Swarm - Roi Autonom cu Nanotehnologie) [2], o misiune-concept, analizand diverse modele din punct de vedere al comportamentului asteptat al roiului.
O alta echipa de cercetare, de la Syracuse University, NY, SUA, lucreaza la organizarea si coordinarea unui numar mare de agenti simpli distribuiti intr-un sistem, ca sa obtina, in cuvintele lor, „un comportament global in dezvoltare dorit” [3]. Ei intentioneaza sa foloseasca tehnologia intr-o abordare distribuita in reducerea defectarilor intr-un sistem de scara larga de achizitie a datelor pentru BTeV, un experiment de Fizica Energiei („High Energy Physics”) bazate pe un accelerator de particule, in dezvoltare la Laboratorul Acceleratorului National Fermi. Ei au nevoie de capacitatile distribuite ale roiului din cauza cantitatii mari de date care trebuie transferate si analizate – peste un teraoctet in fiecare secunda, distribuit prin 2500 procesoare digitale de semnal. Rezultatele lor de simulare arata cum agenti polimorfici usori inglobati in procesoarele individuale folosesc teorii de joc pentru a se adapta mediului.
IBM isi creste eforturile de cercetare in calculul autonom [4]. Ei spun ca acesta trebuie sa ofere un nivel nemaiintalnit de auto-reglaj, in timp ce ascunde complexitatea in fata utilizatorului. Ar trebui sa fie o mutare radicala in felul in care ne imaginam si dezvoltam sisteme de calcul in ziua de azi. Acest lucru necesita mai mult decat modificarea unor sisteme vechi – calculul autonom cere un domeniu de studiu complet nou.

Astazi, sistemele digitale se folosesc pretutindeni. Tendinta de a produce medii digitale este in crestere, si este foarte probabil ca in viitor, vom fi inconjurati de multe dispozitive eterogene, de la sisteme domestice la aplicatii complexe ca aplicatii de industria automobilelor, transport si sisteme de control medical, care comunica intre ele prin interfete distribuite si fara fir. Vom vedea o noua societate de sisteme digitale „traind si evoluand” in jurul si in societatea noastra [5]. Indivizii acestei noi societati vor fi sisteme eterogene digitale si omniprezente ce vor oferi productivitate si flexibilitate ridicata. Infrastructura de comunicatii a acestei societati se va baza aproape in intregime pe conexiuni fara fir. Citandu-l pe Paul Saffo, directorul Institutului pentru Viitor („Institute for the Future”): „In Era Comunicatiilor, dispozitivele fara fir vor interactiona cu mediul exterior si nu vor mai fi limitate la Departamentul Informatic. Pe cand metafora comunicatiei erau telefoanele – adica, oameni vorbind cu oameni – metafora viitorului un dispozitiv prin care masinile vorbesc cu alte masini in numele oamenilor. Aceasta dezvoltare va elibera oamenii pentru lucrul cu media, in timp ce masinile se ocupa de informatie.” Noi preconizam ca in 10-20 ani complexitatea sistemelor de acest tip va creste la dimensiuni inimaginabile: cum gestionam peste de un miliard de oameni care-si folosesc telefoanele mobile, agendele electronice si alte dispozitive inteligente cu fir si fara fir, comunicand intre ei si interactionand cu alte dispozitive ca terminale POS, sisteme de mesagerie, automobile, terminale GPS, datele firmei si  Internetul? In viziunea multor companii importante americane si europene (ca IBM, Tryllian si Warp 9), rezolvarea acestei probleme este urmatoarea mare provocare pentru industria TI si cercetare. Totusi, infrastructurile folosite astazi  tin cu greu pasul cu astfel de inovatii tehnologice, si este dificil de crezut ca solutiile de azi vor putea fi scalate si adaptate la sisteme complexe, distribuite si interactive. In particular, complexitatea ridicata va aduce multe aspecte noi care pot afecta adanc calitatea si functionalitatea sistemului, si nu vor fi tratate prin tehnici traditionale de proiectare software:
Defecte tranzitorii [6,7]: In societatea sistemelor digitale, o defectare poate avea multe alte cauze noi, altele decat imprecizia din timpul dezvoltarii. Defecte noi pot aparea din interactiuni neasteptate dintre dispozitive si aplicatii dezvoltate independent, stres imprevizibil si interferente cu mediul, sau imbatranirea hardware-ului (de exemplu, ruperi si interferente de circuite, cauzand defecte de memorie si procesor). Vorbim despre aceste defecte ca defecte tranzitorii, deoarece ele sunt dificil de reprodus in testare. Astfel, este rezonabil sa presupunem ca in viitorul apropiat, procentul defectelor detectate prin tehnici traditionale de verificare si validare, ca, de exemplu, testarea la sfarsitul productiei, nu vor fi suficiente pentru garantarea nivelului cerut de calitate, disponibilitate, fiabilitate si siguranta in functionare. Pe langa acestea, solutionarea unui defect tranzitoriu (detectat in timpul functionarii) prin interventie manuala este impracticabila in societatea sistemelor digitale, din mai multe motive, incluzand costurile enorme legate de reparatiile post-productie, flexibilitatea inacceptabila a metodelor opreste-repara-reconfigureaza-reporneste, si imposibilitatea tehnicilor de detectie traditionale de a fi scalate la complexitatea mare a sistemelor destinatie.
Situatii de lucru imprevizibile: Tehnologiile bazate pe componente si orientate pe servicii sunt vazute, de obicei, ca cea mai buna solutie pentru aplicatii cu complexitate crescanda, directie demonstrata si de disponibilitatea multor componente si servicii de tip COTS – Commercial Off The Shelf – comerciale, de pe raft. Aceste tehnologii contribuie la sporirea problemei, ridicand intrebari noi si dificile pentru testare si analiza. Tehnicile de testare si analiza de regula presupun o cunoastere completa a sistemului sub test, ca si a cerintelor si mediului de executie. Din pacate, aceasta situatie nu este valabila in societatea de sisteme digitale. De cele mai multe ori, componentele si serviciile sunt proiectate si dezvoltate independent, la producator, apoi sunt achizitionate, montate si folosite in aplicatii cu necesitati, scopuri si proprietari diferiti. Producatorii nu pot identifica cerintele tuturor situatiilor de utilizare, astfel ca testarea izolata a componentelor si a serviciilor, de catre producatori, in general nu este suficienta. Este probabila aparitia unor defecte noi de fiecare data cand o componenta este utilizata intr-un context neprevazut. Testarea integrarii in mediul de folosire poate detecta o parte din defectele ce pot aparea, dar eficienta tehnicilor traditionale este limitata de indisponibilitatea codului sursa, a specificatiilor functionale si non-functionale si a cunoasterii detaliate a deciziilor interne de proiectare, caracteristici comune componentelor si serviciilor COTS. In final, chiar daca un defect a unei componente este diagnosticat cu succes, procesul de reparare presupune colaborarea cu producatorul componentei, ceea ce este dificil, daca nu chiar imposibil de realizat.
Probleme si pericole de securitate: Securitatea va fi o tema fierbinte in societatea sistemelor digitale. Componentele  si serviciile care „nu sunt de incredere”, adica acelea care nu sunt proiectate din punct de vedere a securitatii (dar pot interactiona cu si in societate), pun in pericol functionarea corecta a intregului sistem. Totusi, data fiind prezenta dispozitivelor eterogene (de regula mobile), ale caror hardware si software poate evolua independent unul de celalalt, cerintele de securitate sunt dificil de definit apriori pentru toate dispozitivele si aplicatiile. Probleme si pericole de securitate neasteptate pot aparea de fiecare data sunt stabilite noi interactiuni in timpul functionarii, ducand la necesitatea impunerii si verificarii dinamice a securitatii de catre societatea in sine.
Probleme de interoperabilitate: In societatea sistemelor digitale, dispozitivele interactioneaza folosind serviciile unele altora, cateodata descoperind dinamic existenta si disponibilitatea serviciilor dorite. Totusi, data fiind independenta completa dintre multe dispozitive, in general nu exista control asupra implementarii propriu-zise a serviciilor folosite. De exemplu, un ofertant de servicii poate decide introducerea unei noi versiuni a unuia din serviciile sale, independent de utilizatorii serviciului. Uneori, utilizatorii pot fi chiar inconstienti de faptul ca au inceput sa foloseasca o noua versiune a serviciului. n alte cazuri, serviciile disponibile (si detectabile dinamic) pentru un scop anume pot avea implementari diferite in spatele interfetei identice. Capacitatea de a verifica si evalua dinamic si a garanta interoperabilitatea cu servicii care pot avea implementari „instabile” devine o problema proeminenta in societatea sistemelor digitale [8]. In principiu, ofertantii de servicii trebuie sa aiba capacitatea de a modifica, introduce, retrage, reintroduce si oprirea serviciilor lor, fara periclitarea functionalitatea intregului sistem sau a dispozitivelor care participa la el.
Dat fiind acest scenariu, este destul de greu sa credem ca solutiile de azi vor fi scalabile si adaptabile la sisteme complexe, distribuite si interactive de viitor.
Pe de alta parte, sunt doua tehnologii care ies in evidenta in sprijinirea acestei paradigme: Agenti de Date Mobili („Mobile Data Agents”) pentru infrastructura de comunicatii si Sisteme Reconfigurabile („Reconfigurable Systems”) pentru implementarea unor „indivizi” configurabili, adaptivi, reparabili si cu performante ridicate [9,10].
Agentii de Date Mobili [11,12] sunt o tehnologie gata disponibila si relativ viabila. Ei sunt agenti software care pot fi deplasati de la un sistem la altul si pot fi transportati pe un dispozitiv la distanta pentru executie. Ajungand la calculatorul de la distanta, Agentii Mobili se prezinta si obtin acces la hardware-ul local, servicii si date. Cand un Agent se deplaseaza, ia cu el codul program executabil, dar si datele sale. Agentii de Date Mobili sunt mici, siguri, dinamici si, in general, independenti de hardware.
Sistemele Reconfigurabile au capacitatea de reprogramare a circuitelor hardware in timpul functionarii. De exmplu, este posibila schimbarea din mers a protocolului de comunicatie a unei interfete de iesire, sau programarea logicii reconfigurabile sa implementeze un bloc de procesare specific unui algoritm de procesare imagini. In general, sistemele reconfigurabile sunt folosite la obtinerea celei mai bune performante cu utilizarea la maxim a hardware-ului. Circuitele sunt incarcate si descarcate dinamic din hardware in timpul functionarii sistemului. Suprafata folosita de astfel de sisteme este deci mai redusa fata de un sistem static, datorita descarcarii circuitelor neutilizate. Sistemele reconfigurabile sunt, de regula, proiectate cu un amestec de logica fixa si cipuri FPGA. Sistemele Reconfigurabile bazate pe tehnologie FPGA vor domina proiectarea sistemelor inglobate in aproximativ zece ani. Ele vor transforma telefoanele celulare, camerele foto si video, PLD-urile simple, microcontrolerele si memoriile in variante revolutionare ale predecesorilor lor.

Bibliografie

  1. Christopher A. Rouff, Michael G. Hinchey, James L. Rash, Walter F. Truszkowski, Towards a Hybrid Formal Method for Swarm-Based Exploration Missions, 9th Annual IEEE/NASA Software Engineering Workshop, pp. 253-264.
  2. NASA, Autonomous NanoTechnology Swarm, http://ants.gsfc.nasa.gov/.
  3. Derek Messie, Jae C. Oh, SWARMs of Self-Organizing Polymorphic Agents, Fifth International Conference on Hybrid Intelligent Systems (HIS'05), pp. 469-476.
  4. IBM, Autonomic Computing, http://www.research.ibm.com/autonomic/.
  5. Verkest, D., Machine chameleon, Spectrum Magazine, IEEE, 2003.
  6. Abramovici, M., Breuer, M.A., Friedman, A.D., Digital systems testing and testable design, Wiley Press, 1994, ISBN: 978-0-7803-1062-9.
  7. M.L. Bushnell, V.D. Agrawal, Essentials of Electronic Testing for Digital, Memory, and Mixed-Signal VLSI Circuits. Springer, 2000, ISBN 978-0792379911.
  8. S.E. Czerwinski, B.Y. Zhao, T.D. Hodes, An.D. Joseph, R.H. Katz, An Architecture for a Secure Service Discovery Service, of MobiCom '99, 1999. Seattle, USA.
  9. H. Valean, L. Miclea, Enyedi Sz., Surveillance of a Complex Heterogeneous System Using Software Agents – Case Study on a Hydroelectric Power Plant Chain, Proceedings of the 19th International Conference on Computer Applications in Industry and Engineering CAINE 2006, Las Vegas, USA, November 13-15, 2006, ISBN 978-1-880843-61-1, pp. 126-131.
  10. 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.
  11. D. Kotz, R. Gray, and D. Rus, Future Directions for Mobile-Agent Research, IEEE Distributed Systems Online, vol. 3, n.8, August 2002.
  12. R. Unland, M. Klusch, M. Calisti, Software Agent-Based Applications, Platforms and Development Kits, ed. Birkhauser, 2005, ISBN 978-3764373474.

Obiectivele proiectului

In contextul prezentat, scenariul ideal este unul unde defectele, noi caracteristici ale mediului, cerinte de securitate nesatisfacute si schimbari in implementarea serviciilor sunt detectate dinamic si automat, si, daca este necesar, “reparate”, de catre sistemele insele, fara a fi necesara interventia umana externa, imediat cand aceste probleme apar. Sistemele digitale capabile sa detecteze si, eventual, sa corecteze propriile lor greseli in functionare se numesc sisteme cu auto-intretinere.
Definitia sistemelor cu auto-intretinere vine din contextual calculului autonom, adica a sistemelor de calcul care sunt in stare sa se gestioneze pee le insele si primesc obiective de nivel inalt de la administratori.  Ideea calculului autonom a fost introdus de vicepresedintele de cercetare senior de la IBM, Paul Horn, in prezentarea sa la „National Academy of Engineers” de la universitatea Harvard in Martie 2001, ca singura cale eficienta de a trata obstacolul major in dezvoltarea continua a industriei IT, anume complexitatea software. Momentan, IBM si alti producatori sponsorizeaza cercetarea pentru identificarea, gasirea si determinarea cauzei de baza a defectarilor in sistemele de calcul complexe, scopul final fiind construirea unor sisteme care pot trata aceste probleme in mod automat. Totusi, in ciuda utilitatii sperate, cercetarea sistemelor cu auto-intretinere este inca la inceputuri si investitiile din industrie sunt limitate, pentru ca inovatiile propriu-zise vor apare doar in timp si cu riscuri majore.
Azi, sistemele cu auto-intretinere sunt populare si eficiente doar in proiectarea si productia de dispozitive integrate hardware (cum sunt placile cu memorii), dar cercetarea aplicatiilor lor in domeniul software si sisteme eterogene este inca in stadiu preliminar. Diferenta majora dintre un dispozitiv cu auto-intretinere si o societate digitala cu auto-intretinere  este posibilitatea folosirii cunostintelor si experientei tuturor membrilor societatii digitale pentru rezolvarea problemelor critice si complexe. Intr-o societate digitala cu auto-intretinere, un dispozitiv defect poate fi reparat cu ajutorul cunostintelor celorlalti indivizi, chiar daca nu a fost proiectat initial pentru a trata problema detectata. De exemplu, societatea digitala poate avea abilitatea de a partaja o baza de cunostinte pentru rezolvarea problemelor pe care dispozitivele individuale nu le-ar putea rezolva.
Scopurile principale ale acestui proiect sunt investigarea sistemelor eterogene cu auto-intretinere din puncte de vedere teoretice si practice, urmand a raspunde (macar partial) la intrebarile care marcheaza acest domeniu promitator, provocator si inovator, si contribuirea la tehnologiile de varf romanesti si europene. Proiectul are in vedere stabilirea unui nou nivel de maturitate a sistemelor cu auto-intretinere, mutandu-se de la conceptul de dispozitive cu auto-intretinere la conceptul de societate de sisteme digitale cu auto-intretinere. Aceasta va fi o dezvoltare  tehnologica relevanta, care va contribui la succesul noilor generatii de infrastructuri ce vor constitui viitorul e-Europei.

Prezentare scurta a solutiei

Pana acum, experimentele de inceput in domeniul sistemelor cu auto-intretinere au explorat conceptual de auto-intretinere din diferite puncte de vedere, uneori fara a observa legaturile posibile. Cateodata, studiile s-au focalizat asupra asigurarii unor cerinte si performante de sistem specifice, sau la folosirea unei strategii particulare de reparare, de exemplu reconfigurarea arhitecturii, sau la monitorizarea si controlarea unei caracteristici de sistem, de exemplu conectivitate instabila in retele fara fir. Aceasta viziune fragmentata a problemelor se reflecta si in terminologia diferita:

Intr-o viziune mai larga a conceptului de auto-intretinere, diferite auto-facilitati identifica mecanisme complementare ce pot coexista in aceleasi sisteme pentru adresarea problemelor diferite. De exemplu, un sistem software poate trata cerinte de performanta cu mecanisme de auto-adaptare, proprietati arhitecturale cu o arhitectura auto-configuratoare, conectivitate instabila cu management auto-reparator a stabilitatii, problemele de securitate cu capacitati de auo-protectie si asa mai departe.
Cercetarea noastra imbratiseaza toate categoriile de sisteme si cerinte de mai sus, prin investigarea unor mecanisme si strategii pentru tehnologii de auto-intretinere eficiente. Rezultatul va fi un set de reguli, metodologii si unelte pentru proiectarea unui sistem complex cu auto-intretinere care se va adapta, optimiza, configura, detecta, diagnostica si repara si va face acelasi lucru pentru indivizii sai, in scopul tratarii problemelor localizate si distribuite care rezulta din greseli si defecte in software si hardware, interactiuni neasteptate, schimbari de mediu sau probleme de securitate.
Pentru a-si atinge scopul principal, proiectul isi propune sa investigheze:

Dorim urmarirea directiilor de cercetare de mai sus intr-o maniera integrate, pentru a beneficia din progresele si rezultatele din diferitele domenii.

Caracterul de cercetare fundamentala a temei

Tema se incadreaza in tema 3 “Information and Communication Technologies” din cadrul programului cadru 7 al Comunitatii Europene pentru perioada 2007-2011, pentru activitatile: “ICT Technology Pillars: security and dependability, embedded systems”, acesti piloni dand si caracterul de cercetare fundamentala al temei abordate. Tema abordata este de varf, in care cercetatorii europeni concureaza cu cei americani si din Asia.

Impactul potential (estimat) si concordanta cu IST FET Open Programme

O societate de sisteme digitale poate avea miliarde de utilizatori potentiali, sute de milioane de dispozitive conectate ce ruleaza aplicatii comerciale, sute de miliarde de mesaje online si tranzactii. Ele vor face posibil mCommerce, vor sustine oferirea multor servicii diferite, vor intari aplicatiile mari si vor misca cantitati imense de date. Pentru a face aceste aplicatii viabile, de incredere si sigure este obligatorie realizarea acestor predictii si permiterea companiilor romanesti si europene de a obtine o parte mare din aceasta piata. Consideram ca stabilirea unui cadru de tehnologie de auto-intretinere solid ca principalul rezultat al acestui proiect va permite gestionarea lina si automata a complexitatii enorme a acestor aplicatii, astfel oferind un element cheie pentru succesul lor.

Cunostintele despre sistemele cu auto-intretinere este inca la inceputuri in comunitatea internationala de cercetare, si sunt necesara multa cercetare de baza si exemple functionale pentru a face aceste idei promitatoare viabile pentru industrie. Cercetarea industriala in acest domeniu atesta interesul in crestere in domeniu, dar investirea in aceasta tehnologie presupune mari riscuri, in ciuda profitului promitator pe termen lung. Din aceste motive, proiectul este aliniat la principiile Programului IST FET.

Metodologia cercetarii

Metodele/modalitatile de conducere, coordonare si comunicare pentru realizarea proiectului au in vedere urmatoarele aspecte: ►Planificarea obiectivelor si urmarirea realizarii lor; ►Stabilirea responsabilitatilor celor implicati in realizarea proiectului; ►Programarea activitatilor pe etape; ►Stabilirea categoriilor de cheltuieli necesare si a necesarului de resurse umane si materiale; ►Stabilirea documentelor de monitorizare si a indicatorilor de realizare; ►Sistematizarea rezultatelor de cercetare si dezvoltare si planificarea modului de valorificare/diseminare.
Obiectivele generale si cele specifice ale proiectului au fost stabilite pe baza urmatoarelor elemente: ►Definirea unei strategii de realizare a obiectivelor propuse (se stabilesc etapele, obiectivele si activitatile) si a planului de actiune care evidentiaza resursele (umane, materiale si financiare); reducerea la maximum a ciclului de timp pentru realizarea proiectului) ►Verificarea periodica a stadiului de realizare a proiectului.
Rezultatele obtinute vor fi evaluate, corelate si interpretate impreuna cu colaboratorii si vor fi raportate periodic prin referate de specialitate. Totodata se va asigura reproductibilitatea lor in vederea promovarii in practica. Corelarea activitatilor cu alocarile bugetare se va finaliza prin planul anual al proiectului dupa aprobarea si semnarea proiectului in functie de nivelul de finantare.
Directorul de proiect va efectua planificarea proiectului care va contine:  ►Plan anual; ►Plan pe etape; ►Plan de lucru semestrial; ►Plan anual de diseminare si valorificare a rezultatelor.
Directorul de proiect va efectua planificarea si organizarea raportarilor: ►Raport final de activitate - la sfarsitul proiectului; ►Raport de valorificare- la sfarsitul proiectului; ►Raport de activitate la sfarsitul fiecarei etape -  conform planului de realizare ►Raport anual de autoevaluare.
Responsabilitati administrative:
Directorul de proiect: ▲asigura managementul proiectului si comunicarea operativa cu Autoritatea Contractanta si cu partenerii; ▲mobilizeaza resursele umane, materiale si financiare necesare realizarii proiectului, in conformitate cu propunerea de proiect; ▲elaboreaza si preda la termenele stabilite in contractul de finantare rapoartele intermediare si finale; ▲asigura secretul profesional pe durata proiectului.
Membrii echipei: ▲participa la realizarea proiectului din faza propunerii pana la finalizare; ▲asigura comunicarea operativa cu directorul de proiect si cu colegii de echipa; ▲elaboreaza si predau la termen rapoartele de faza pentru activitatile/lucrarile desfasurate, prevazute in proiect.

Project description

In today’s computing systems, computing power is no longer concentrated in a few, complex and expensive units, but in many, simple and inexpensive ones. Their strength is in the collaborative force. They also have the advantage of higher reliability and flexibility. There may be spare units, ready to “step up” whenever a working one fails.
For example, NASA is working on “swarms” of robotic vehicles for future space exploration [1]. These swarms have the advantage of self management and survivability. The disadvantage lies within their design and complex programming. The agency started work on ANTS (Autonomous Nanotechnology Swarm) [2], a concept mission, analyzing various models with respect to desired swarm behavior.
Another research team, from Syracuse University, NY, USA, is working on organization and coordination of a large number of simple agents distributed across a system to obtain, in their words, “some desirable global emergent behavior” [3]. They intend to use the technology for a distributed approach to fault mitigation within a large-scale data acquisition system for BTeV, a particle accelerator based High Energy Physics experiment currently under development at Fermi National Accelerator Laboratory. They need the swarm’s distributed capabilities because of the large amount of data to be transferred and analyzed – over 1 terabyte every second, distributed across 2500 digital signal processors. Their simulation results show how lightweight polymorphic agents embedded within the individual processors use game theory to adapt to the environment.
IBM is increasing its research efforts in autonomic computing [4]. They say it must provide an unprecedented level of self-regulation while hiding complexity from the user. It should be a radical shift in the way we conceive and develop computing systems today. This will call for more than retooling old systems – autonomic computing calls for a whole new area of study.

Today, the use of digital systems pervades all areas of our lives. The trend of producing digitally-aware environments keeps growing, and it is very likely that in the future we will be surrounded by many heterogeneous devices, from domestic systems to complex applications like automotive, transportations, and medical control systems, which communicate each other through distributed and wireless interfaces. We will see a new society of digital systems “living and evolving” around and within our society [5]. The individuals of this new society will be ubiquitous and heterogeneous digital systems that will provide high productivity and great flexibility. The communication infrastructure of this society will rely almost entirely on wireless connections. To quote Paul Saffo, futurist and director of the Institute for the Future, “In the Communication Age, wireless devices will interact with external environment rather than being limited to the IS department. Whereas the metaphor of communication used to be telephones – that is, people talking with people – the metaphor of the future will be a device by which machines talk to other machines on behalf of people. This development will free up people to deal with media, while machines take care of the dirty work of dealing with information.” We envision that in 10-20 years the complexity of this class of systems will grow to unimaginable dimensions: How do you deal with 1+ billion people using their cell phones, PDAs, and other wired or wireless computer devices, simultaneously communicating with each other, and interacting with other devices such as POS terminals, messaging systems, cars, GPSs, central corporate data, and the Internet? As many important American and European companies (such as IBM, Tryllian, and Warp 9) understood, solving this problem is the next major challenge for IT industry and research. However, the infrastructures used today are hardly able to keep the pace of such technology innovations, and it is really hard to believe that today solutions will be able to scale and adapt to future high complex, distributed, and interacting systems. In particular, the increased complexity will come with many new aspects that may greatly affect system quality and health, and will not be addressed by traditional software engineering best-practices:
Transient faults [6,7]: In the society of digital systems, a failure may have several new causes other than inaccuracy during development. New faults can stem from unexpected interactions between independently developed devices and applications, unpredictable stress and interferences of the environment, or hardware aging (e.g., circuits breaks and interferences causing memory or processor faults). We refer to these faults as transient faults because they share the characteristics to be difficult to reproduce in testing and debugging environments. Thus, it is reasonable to believe that in the near future the percentage of faults detected by traditional verification and validation techniques, such as end-of-production testing, will not be enough to guarantee the delivering of the required levels of quality, availability, reliability, and security in the applications. In addition, solving a transient fault (revealed during operation) with hand-on intervention would be impracticable in the society of digital systems for several reasons including, but not limited to, the enormous costs generally associated with post-release bug fixing, the unacceptable scarce flexibility of the stop-repair-redeploy-restart approaches, and the impossibility for traditional debugging techniques to scale to the enormous complexity of the target systems.
Unpredictable working contexts: Component-based and service-oriented technologies (generally agreed as the ultimate means for coping with applications of continuously growing complexity, as demonstrated by the increasing availability of COTS –commercial off the shelf– components and services) further contribute to increase the dimensions of the problem, pointing new and difficult questions for testing and analysis. Traditional testing and analysis techniques usually assume that testers have complete knowledge of the system under test, as well as of its requirements and execution environment. Unfortunately, this will not be the case in the society of digital systems. Most of the times, components and services will be designed and developed independently at some producer sites, and then acquired, deployed and used in sets of applications with different needs, goals and stakeholders. Producers are not able to identify requirements and profiles of all possible usage contexts, and thus testing of components and services in isolation (performed by producers) is in general not enough. New faults are very likely to emerge every time a component is used in an unforeseen context. Integration testing in the deployment environments can reveal part of the emerging faults, but the effectiveness of traditional techniques is limited by the unavailability of source code, functional and non-functional specifications, and detailed knowledge about the internal design choices, which are common cases for COTS components and services. Finally, even if a component fault is successfully diagnosed, the fixing process often requires collaborating with the component producer, which is difficult when not even impossible to achieve.
Emerging security flaws and threats: Security will be a hot issue in the society of digital systems. “Not trustable” (maliciously or not) services and components, i.e., designed without the necessary care for security (but still able to interact with and within the society), pose a threat to the correct behavior and functionality of the whole system. However, given the presence of heterogeneous (often mobile) devices, whose hardware and software may evolve independently of one another, security requirements are difficult to define a-priori for all devices and applications. Unforeseen security flaws and threats are likely to emerge whenever new interactions are established during operation, leading to the necessity for security to be dynamically checked and enforced by the society itself.
Interoperability issues: In the society of digital systems, devices interoperate using each other services, sometimes dynamically discovering the existence and availability of the desired services. However, given the complete independence between many devices, there is generally no control on the actual implementation of the services that are being used. For example, a service provider may decide to dynamically deploy a new version of one of its services independently from the users of the service itself. Sometimes the users can be not even aware when they start using a new implementation of a service. In other cases, the available (and dynamically discoverable) services for a specific job may have different implementations behind their identical interface. Being able to dynamically check, assess and guarantee interoperability with services that can have “unstable” implementations becomes a prominent issue in the society of digital systems [8]. In principle, service providers must be given the capability of modifying, un-deploying, re-deploying or shutting down their services, without jeopardizing the functionality of either the whole system or the devices that participate in it.
Given such a scenario, it is really hard to believe that today’s solutions will be able to scale and adapt to future high complex, distributed, and interacting systems.

On the other hand, two emerging technologies seem to be ahead of the others in supporting this new paradigm: Mobile Data Agents for the communication infrastructure and Reconfigurable Systems for the implementation of configurable, adapting, repairable, and high performance “individuals” [9,10].

Mobile Data Agents [11,12] are an already available and relatively viable technology. They are software programs that can be dispatched from one system to another and transported to a remote device for execution. Arriving at the remote computer, Mobile Agents present their credentials and obtain access to local hardware, services, and data. When an Agent moves, it takes along its program executable code as well as its data. Mobile Data Agents are lightweight, secure, dynamic, and, in general, hardware platform independent.

Reconfigurable Systems have the capability of reprogramming the hardware circuits at run-time. For example, it is possible to change at run-time the communication protocol of an output interface, or to program the reconfigurable logic to implement a particular processing block needed by an imaging algorithm. In general, run-time reconfigurable systems are used to get best performance with maximum hardware utilization. The circuits are loaded into the hardware and unloaded from it dynamically during the operation of the system. The area used by such systems is therefore less than in a static system due to the unloading of idle circuits. Reconfigurable systems are usually designed using a mix of fixed logic and FPGA chips. Reconfigurable Systems based on FPGA technology will dominate embedded system designs 10 years from now. They will transform cell phones, cameras, video recorders, simple PLDs, microcontrollers and memory solutions into revolutionary variants of their predecessors.

References

  1. Christopher A. Rouff, Michael G. Hinchey, James L. Rash, Walter F. Truszkowski, Towards a Hybrid Formal Method for Swarm-Based Exploration Missions, 9th Annual IEEE/NASA Software Engineering Workshop, pp. 253-264.
  2. NASA, Autonomous NanoTechnology Swarm, http://ants.gsfc.nasa.gov/.
  3. Derek Messie, Jae C. Oh, SWARMs of Self-Organizing Polymorphic Agents, Fifth International Conference on Hybrid Intelligent Systems (HIS'05), pp. 469-476.
  4. IBM, Autonomic Computing, http://www.research.ibm.com/autonomic/.
  5. Verkest, D., Machine chameleon, Spectrum Magazine, IEEE, 2003.
  6. Abramovici, M., Breuer, M.A., Friedman, A.D., Digital systems testing and testable design, Wiley Press, 1994, ISBN: 978-0-7803-1062-9.
  7. M.L. Bushnell, V.D. Agrawal, Essentials of Electronic Testing for Digital, Memory, and Mixed-Signal VLSI Circuits. Springer, 2000, ISBN 978-0792379911.
  8. S.E. Czerwinski, B.Y. Zhao, T.D. Hodes, An.D. Joseph, R.H. Katz, An Architecture for a Secure Service Discovery Service, of MobiCom '99, 1999. Seattle, USA.
  9. H. Valean, L. Miclea, Enyedi Sz., Surveillance of a Complex Heterogeneous System Using Software Agents – Case Study on a Hydroelectric Power Plant Chain, Proceedings of the 19th International Conference on Computer Applications in Industry and Engineering CAINE 2006, Las Vegas, USA, November 13-15, 2006, ISBN 978-1-880843-61-1, pp. 126-131.
  10. 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.
  11. D. Kotz, R. Gray, and D. Rus, Future Directions for Mobile-Agent Research, IEEE Distributed Systems Online, vol. 3, n.8, August 2002.
  12. R. Unland, M. Klusch, M. Calisti, Software Agent-Based Applications, Platforms and Development Kits, ed. Birkhauser, 2005, ISBN 978-3764373474.

Planul de realizare. Obiective si activitati.

An

Obiective
(Denumirea obiectivului)

Activitati asociate

2007

1

Adunarea si sistematizarea datelor existente privind societatea digitala

1. Analiza de sistem pentru societatea digitala.

2. Cauzele si factorii care influenteaza evolutia societatii digitale.

2

Coordonarea desfasurarii si finalizarii fazei

1.  Stabilirea protocoalelor de analiza periodica.

2.  Elaborare raport stiintific si financiar al fazei.

2008

1

Definirea caracteristicilor, echipamentelor si a infrastructurii necesare

1. Analiza functionala pentru dezvoltarea modulelor FPGA cu autointretinere.

2. Analiza functionala a mecanismelor multiagent pentru structuri cu autointretinere.

2

Dezvoltare dispozitive cu autointretinere

1. Dezvoltare interfata de reconfigurare dispozitive (wrapper).

2. Experimentare functii de autotestare (BIST – Built In Self Test).

3. Implementare module cu autointretinere bazate pe reconfigurare.

3

Coordonarea desfasurarii si finalizarii fazei

1.  Stabilirea protocoalelor de analiza periodica

2. Sistematizarea procedurilor de dezvoltare dispozitive cu autointretinere.

3. Elaborare raport stiintific si financiar al fazei.

2009

1

Proiectare model functional al sistemului cu autointretinere bazat pe agenti

1. Elaborare specificatii de realizare model functional.

2. Adaptare si configurare medii de dezvoltare agenti.

2

Realizare model functional societate digitala cu autointretinere

1. Elaborarea infrastructurii societatii digitale cu autointretinere, bazata pe sisteme multiagent si comunicatii fara fir.

2. Integrare mecanisme multiagent cu structuri cu autointretinere.

3

Coordonare realizare model

1. Stabilirea protocoalelor de proiectare/realizare model si urmarirea respectarii lor.

2. Elaborare raport stiintific si financiar al fazei.

2010

1

Prezentarea si demonstrarea functionalitatii modelului

1. Demonstrarea functionalitatii modelului.

2. Elaborare manual de prezentare si utilizare al modelului functional.

2

Diseminarea rezultatelor

1. Diseminarea pe scara larga a rezultatelor (comunicarea si publicarea rezultatelor la nivel national si international).

3

Coordonarea finalizarii activitatii

1. Asigurarea conditiilor pentru publicare rezultate.

2. Elaborare raport de faza. Elaborare raport final de activitate – stiintific si financiar.

Rezultate obtinute

2009

2008

2007

Diseminare

2009

Lucrari in reviste:

Lucrari invitate:

Lucrari la conferinte

2008

Lucrari in reviste:

Lucrari la conferinte:

2007

Lucrari invitate: