studier av självorganiserande system har nu nått den verktygsbyggande fasen, där en ny disciplin av självhanteringssystem kan börja växa fram. Nästa steg är att förfina principerna för självorganisering till ett system av komposerbara delar som lämpar sig för ingenjörskonst, till exempel komponenter som kondensatorer, transistorer och motstånd som fångar elektromagnetismprinciper för elektronisk ingenjörskonst. För att omvandla en vetenskap till en teknisk disciplin måste vi • koppla bort aspekter av problemet från varandra, • identifiera ett driftsområde, • skapa standardgränssnitt för sammansättning, • identifiera primitiva komponenter som överensstämmer med normerna, och • skapa abstraktionsregler som döljer komplexiteten i system av komponenter. Vi har börjat denna process inom området för sensor / aktuator nätverksprogram, observera att i många program det utplacerade nätverket approximerar ett fysiskt utrymme och att utrymmet, snarare än nätverket, programmeras. Denna iakttagelse låter oss använda den amorfta medium abstraktionen för att frikoppla självförvaltningsproblem. Så, globala beteendebeskrivningar i vårt Proto språk kan sammanställas automatiskt till lokalt exekverad kod som producerar framväxande fenomen som matchar den globala beskrivningen. Vi har experimentellt verifierat vår kod både i simulering och (för små program) på ett nätverk av sensor / aktuator noder som kallas Mica2 Motes. Överväga att installera ett nätverk av enheter för att hantera en stor gård. De uppgifter som anordningarna kommer att utföra-bevattning, skadedjurshantering, och gödsling, till exempel, anges naturligt i termer av regioner på gården: "Vatten ett potatisfält varje somany timmar under varmt väder" eller "behandla mindre alfalfa Weevil angrepp med en tidig skörd, men behandla större angrepp med bekämpningsmedel." En applikation programmerare för gårdar bör kunna skriva kod på detta abstraktion lager, snarare än att ange hur enheterna i fälten kommer att samordna för att genomföra programmen. Den amorf-medium abstraktionen fångar upp klyftan mellan specifikation och genomförande; det är ett kontinuerligt beräkningsmaterial som fyller det intressanta utrymmet. Varje punkt i mediet är en beräkningsenhet som självständigt utför samma kod som varje annan enhet i mediet. (Utföranden skiljer sig åt på grund av skillnader i sensorvärden, slumpmässighet och varje enhets interaktioner med närliggande enheter.) Varje enhet har ett område av enheter mindre än d enheter avstånd bort som den exponerar sitt inre tillstånd. Omvänt, en enhet kan läsa det interna tillståndet av enheter i dess grannskap, erhålla värden som släpas proportionellt till avståndet separera dem. Vi kan naturligtvis inte bygga ett kontinuerligt medium som innehåller oräkneligt många oändligt små datorer. Vi kan dock approximera det genom att sprida en diskret uppsättning av enheter i hela mediet. Vi beräknar sedan att använda som vår grund de relativt få system vars diskret beteende är en bra approximation av deras kontinuerliga beteende, precis som elektronisk teknik använder komponenter som fångar bara några få elektromagnetism fenomen. I båda fallen, begränsa beteendet spänner stöder engi-nering abstraktioner som ignorerar mycket av det underliggande systemets komplexitet. Den amorf-medium abstraktionen separerar det utrymme som programmeras från de enheter som utför programmet, låter oss bryta självhanterande system konstruktion i tre lager av abstraktion-global, lokal och diskret (se figur 1). Varje lager stöds av sin egen infrastrukturkomponent; detta frikopplar aspekter av självstyrande system design till till stor del oberoende subproblem: • Det diskreta lagret består av enheter inbäddade i utrymme utbyte meddelanden med närliggande grannar. Infrastruktur för denna nivå är en diskret kärna som ungefär emulerar ett amorft medium. • Det lokala lagret utförs på det amorfa mediet, med vårt Proto språk för att ange ett enhetligt beteende för varje punkt. • Det globala lagret utförs på det amorfa mediet, med hjälp av ett bibliotek av amorfa-komputerande algoritmer översatta till Proto för att kontrollera regionernas beteende. Tabell 1 illustrerar några designproblem som detta tillvägagångssätt separerar: • Vår strategis genomförande har tre infrastrukturkomponenter: en kärna som ger grannskapet abstraktion, en kompilator för Proto språk, och bibliotek av långdistans samordning och kontroll primitiva kodade i Proto. • Global-lager samordning primitiva arbetar på regioner och genomförs med lokala lager interaktioner mellan punkter och deras stadsdelar. Grannskapet genomförs i sin tur av meddelanden som skickas mellan diskreta enheter. • Detta tillvägagångssätt beskriver global kontroll som homeostatiska processer som ständigt flyttar regioner mot ett önskat beteende. Den implementerar dessa processer som nätverk av strömmar i det lokala lagret, som kompilerar för att uppdatera kod som utförs periodvis i det diskreta lagret. • Olika lager hanterar olika fellägen: kvarterets abstraktion maskerar enskilda enheter kraschar, de homeostatiska primitiva hanterar yttre händelser som förstör regioner i nätverket, och ett rent globalt lager gränssnitt minimerar buggar i användarens kod. • Förutsatt att kostnaden för kommunikation dominerar energiförbrukningen beror mängden kommunikation på hur många långsiktiga samordningsåtgärder som sker i det globala skiktet, hur många minskningar över grannstaten används för att genomföra samordning på det lokala lagret, och hur många paket som överförs och tas emot för att genomföra delad grannstat på det diskreta lagret. För information om amorf-medium forskning och annan relaterad forskning, se sidofältet "Relaterat arbete på Engineering Self-Managing Systems." Vi kan betrakta en sensor / aktuator nätverk där enheter kommunicerar endast med närliggande grannar för att vara en amorf dator. 1 Amorphous computing tar inspiration från biologiska system som arbetar med morfogenes och regenerering, där extremt många opålitliga enheter (celler) koordinerar för att uppnå förutsägbara resultat med hög precision. Vi har valt den amorfa datormodellen av två skäl. För det första innebär dess biologiskt inspirerade specifikationer självförvaltningsfrågor www.computer.org/intelligent S e l f -M a n a g i g S y s t e ms 12 www.computer.org/intelligent IEEE INTELLIGENT SYSTEM med robusthet, distribution och skalbarhet. För det andra växer de verkliga sensor- och aktuatornätverken snabbt i skala och kapacitet, vilket för dem närmare den amorfa datormodellen. I synnerhet utformade vi Proto och dess infrastruktur för att fungera på sensor / aktuator nätverk med dessa egenskaper: • Antalet enheter n kan variera från dussintals till miljarder. • Enheter distribueras godtyckligt genom utrymme och samarbeta via opålitlig sändning till grannar inte längre än r avstånd bort. • Enheter rör sig mycket långsammare än kommunikation, om alls. • Minnet och behandlingen begränsar inte resurserna. (Proflata utgifter av antingen är fortfarande dåliga, och minne är en viktig begränsning för vårt mote genomförande.) • Avrättning är delvis synkrona varje enhet har en klocka som fästs regelbundet, men frekvensen kan variera med upp till och klockor har en godtycklig inledande tid och fas. • Nätverken tillhandahåller inte namngivning, routing och koordinattjänster. (Dessa tjänster kan göras tillgängliga som sensorvärden, med lämplig karakterisering av tillförlitlighet och fel.) • Skiljepunkt och region stoppa misslyckanden och gå med kan uppstå, inklusive förändringar i nätverkets uppkopplingsförmåga. Vår specifikation för driftsområde tar inte direkt upp energiförbrukning, även om det har varit ett problem i genomförandet. Varje abstraktionsskikt kan dock självständigt ta itu med energifrågor, och vi förväntar oss att optimera genomförandet av diskret kernel Vår forskning om egenhanteringssystem bygger på tidigare arbete inom många områden: vårt bidrag ligger i att integrera de bitar som andra har utvecklat. Tidigare forskning om amorf-medium språk föreslog amorf medium abstraktion och allmänna strategier för att kontrollera en amorf medium; 1,2 denna artikel beskriver ett praktiskt genomförande. Annan forskning om amorf-komputerande språk har delat samma allmänna mål men har varit mer riktad mot problem med morfogenes och mönsterbildning än allmän beräkning. Exempel är Daniel Coores forskning om topologiska mönster 3 och forskning om geometrisk formering av Radhika Nagpal; 4 Attila Kondacs; 5 och Justin Werfel, Yaneer Bar-Yam, och Radhika Hagpal. 6 Ett anmärkningsvärt undantag är William Buteras arbete med målarbar dator, vilket möjliggör allmän beräkning men saknar en abstraktion barriär som skiljer en applikation programmerare från låg nivå detaljer i nätverksdrift. 7 En alternativ metod för att konstruera självorganiserande system är rotad i skvallerkommunikation, 8-10 en teknik som vi också använder. Men skvaller kommunikation använder mindre kraftfulla abstraktioner än vår strategi gör, eftersom det löser mer allmänna nätverksproblem. Mer avlägsna är metoder baserade på alternativa beräkningsparadigm såsom kemisk beräkning 11,12 och membranberäkning. 13 Forskare inom sensornätverk har föreslagit flera andra högnivåprogrammeringsabstractioner för att möjliggöra programmering av stora nätverk. Till exempel ger GHT (Geographic Hash Table) en hash tabell abstraktion för att lagra data i nätverket, 14 och TinyDB fokuserar på att samla in information genom frågebehandling. 15 Båda dessa tillvägagångssätt är dock data-centriska snarare än beräkning-centriska och ger inte vägledning om hur man gör distribuerad manipulation av insamlade data. TinyOS 16 och Hood abstraktion 17 ger användbara allmänna programmeringsverktyg-indeed, vårt genomförande av Proto på Motes använder TinyOS-men abstraktioner är mindre kraftfulla och leder till skrymmande, mindre återanvändbara kod. Mer liknande är regementets språk, som använder en stream-processing abstraktion för att distribuera beräkningar över nätverket. 18 Regementet distribueras dock endast när kompilatorn finner optimeringsmöjligheter, och betydande utmaningar kvarstår när det gäller att anpassa sin programmeringsmodell till sensornätverksmiljön. Slutligen, Protos struktur som ett dynamiskt nätverk av strömmar påverkas starkt av Jonathan Bachrach tidigare arbete på Gooze, 19 som är många samlingsstrategier som används för att komprimera Proto kod för körning på Motes. Det finns en lång tradition av stream bearbetning i programmeringsspråk. Det närmaste och senaste arbetet är Functional Reactive Programmering, 20 som bygger på Haskell, 21 ett statiskt inskrivet programmeringsspråk med lata utvärderingssemantik. FRP har visats på robotik, 22 grafik, 20 och användargränssnittsdesign. 23 Dessa system fokuserar mindre på runtime utrymme och tidseffektivitet än vår strategi gör, och typsystemet är fast sammansvetsade med Haskell, med alla dess styrkor och svagheter.
Ett av de tillämpningsscenarier som planerades för de (programmering) tekniker som utvecklats inom ramen för ett sådant initiativ var att konstruera uppkomsten av strukturer i sensor-aktuatornätverk REF.
Infrastructure for engineered emergence on sensor/actuator networks
{'venue': 'IEEE Intelligent Systems', 'journal': 'IEEE Intelligent Systems', 'mag_field_of_study': ['Computer Science']}