Aktivt meddelande
Ett aktivt meddelande (in computing ) är ett meddelandeobjekt som kan utföra bearbetning på egen hand. Det är ett lätt meddelandeprotokoll som används för att optimera nätverkskommunikation med tonvikt på att minska fördröjningen genom att ta bort programvarukostnader förknippade med buffring och ge applikationer direkt åtkomst till nätverkshårdvaran på användarnivå. Detta står i kontrast till traditionella datorbaserade meddelandesystem där meddelanden är passiva enheter utan processorkraft.
Programmering av distribuerat minne
Aktiva meddelanden är kommunikationsprimitiva för att utnyttja den fulla prestandan och flexibiliteten hos moderna datoranslutningar. De klassificeras ofta som en av de tre huvudtyperna av distribuerat minnesprogrammering, de andra två är dataparallell och meddelandeöverföring . Synen är att Active Messages faktiskt är en mekanism på lägre nivå som kan användas för att implementera data parallellt eller meddelandeöverföring effektivt.
Grundidén är att varje meddelande har en rubrik som innehåller adressen eller indexet för en användarutrymmeshanterare som ska exekveras vid ankomst av meddelandet, med innehållet i meddelandet som ett argument till hanteraren. Tidiga aktiva meddelandesystem skickade den faktiska fjärrkodadressen över nätverket, men detta tillvägagångssätt krävde att initiatorn visste adressen till fjärrhanterarens funktion när han komponerade ett meddelande, vilket kan vara ganska begränsande även inom ramen för en SPMD-programmeringsmodell ( och förlitar sig i allmänhet på enhetlighet i adressutrymmet som saknas i många moderna system). Nyare aktiva meddelandegränssnitt kräver att klienten registrerar en tabell med programvaran vid initialiseringstidpunkten som mappar ett heltalsindex till den lokala adressen för en hanterarfunktion; i dessa system tillhandahåller avsändaren av ett aktivt meddelande ett index i fjärrhanterartabellen, och vid ankomsten av det aktiva meddelandet används tabellen för att mappa detta index till hanteraradressen som anropas för att hantera meddelandet.
Andra varianter av aktiva meddelanden [ citat behövs ] bär själva koden, inte en pekare till koden. Meddelandet innehåller vanligtvis vissa data. Vid ankomst till den mottagande änden inhämtas mer data, och beräkningen i det aktiva meddelandet utförs, med användning av data i meddelandet såväl som data i den mottagande noden. Denna form av aktiv meddelandehantering är inte begränsad till SPMD , även om avsändaren och mottagaren måste dela vissa föreställningar om vilken data som kan nås vid den mottagande noden.
Integration, användning för mikrotjänster, orkestrering, ESB-arkitektur
En implementering på högre nivå för aktiva meddelanden heter också Swarm communication i SwarmESB-projektet. Grundmodellen för de aktiva meddelandena utökas med nya koncept och Java Script används för att uttrycka koden för de aktiva meddelandena.
- ^ Thorsten von Eicken, David E. Culler, Seth Copen Goldstein, Klaus Erik Schauser, " Aktiva meddelanden: en mekanism för integrerad kommunikation och beräkning ", Proceedings of the 19th annual international symposium on Computer architecture (ISCA'92), maj 1992, ACM.
- ^ Alan M. Mainwaring och David E. Culler, "Aktivt meddelandeapplikationsprogrammeringsgränssnitt och kommunikationsdelsystemorganisation" (AM-2 specifikation), EECS-avdelning, University of California, Berkeley teknisk rapport nr. UCB/CSD-96-918 , oktober 1996.
- ^ "Den operativa semantiken för ett aktivt meddelandesystem", ACM-portal. Åtkomst 20 juli 2009
- ^ Dan Bonachea och Paul H. Hargrove. "GASNet-specifikation, v1.8.1" . Lawrence Berkeley National Laboratory Technical Report LBNL-2001064 , augusti 2017.
Källor och externa länkar
- https://web.archive.org/web/20070610055547/http://www.tc.cornell.edu/Services/Education/Topics/Parallel/Distributed/%2B6.3%2BActive%2BMessages.htm
- https://github.com/salboaie/SwarmESB/
- GASNet - Ett kommunikationsmedellager som inkluderar Active Messages och Remote Memory Access (RMA), implementerat över en mängd olika nätverkshårdvara
- AMUDP - Active Messages (AM-2) över UDP (en standardkomponent i TCP/IP-protokollstacken )
- AMMPI - Aktiva meddelanden (AM-2) över MPI