SlideServe
Menu
Préférences
© SlideServe · v2026

Asynchronous Message Service (AMS) Prototype Status

nguyet avatar
10 diapositives · 197 Views · Sep 21, 2014

Asynchronous Message Service (AMS) Prototype Status. Scott Burleigh Jet Propulsion Laboratory, California Institute of Technology 25 August 2005. AMS Continuum. configuration MIB. configuration service. Message space for application Q, authority R. new zone specification. zone

Asynchronous Message Service (AMS) Prototype Status - slide 1
01 / 10Asynchronous Message Service (AMS) Prototype Status
1 / 17

Télécharger la présentation

Asynchronous Message Service (AMS) Prototype Status
Une image / un lien ci-dessous est fourni (tel quel) pour télécharger la présentation

Politique de téléchargement : le contenu du site vous est fourni TEL QUEL pour votre information et votre usage personnel ; il ne peut être vendu, concédé sous licence ni partagé sur d’autres sites sans l’accord de son auteur.Le contenu vous est fourni TEL QUEL, pour votre information et votre usage personnel uniquement. Téléchargez la présentation en cliquant sur ce lien. Lors du téléchargement, si vous ne parvenez pas à télécharger une présentation, l’éditeur a peut-être supprimé le fichier de son serveur.Pendant le téléchargement, si vous ne parvenez pas à obtenir une présentation, le fichier a peut-être été supprimé par l’éditeur.

F I N

Plus de contenu associé

Transcription de la présentation
  1. Asynchronous Message Service (AMS) Prototype Status Scott Burleigh Jet Propulsion Laboratory, California Institute of Technology 25 August 2005

  2. AMS Continuum configuration MIB configuration service Message space for application Q, authority R new zone specification zone registration registrar location query and response Zone A Zone B Registrar Registrar reconfig messages node registration heartbeat, ack, reconfig heartbeat, ack, reconfig application messages remote AMS messages Node Z Node X Node Y (a new node) RAMS gateway application messages application messages application messages

  3. Example programs (1 of 2) #include "ams.h" static int runCatcher() { AmsNode me; AmsEvent event; int cn, zn, nn, len, ct; char *sname, *txt; ams_register(NULL,NULL,NULL, 0, "amsdemo", "test", "301", "catch", &me); ams_invite(me, "text", AmsPriorityStandard, AmsAssured); while (1) { ams_get_event(me, AMS_BLOCKING, &event); if (ams_get_event_type(me, event) == AMS_MSG_EVT) break; else ams_recycle_event(me, event); } ams_parse_msg(me, event, &cn, &zn, &nn, &sname, &len, &txt, &ct); printf("%d received '%s'.\n", getpid(), txt); ams_recycle_event(me, event); ams_unregister(me); return 0; }

  4. Example programs (2 of 2) static int runPitcher() { AmsNode me; AmsEvent event; AmsStateType state; AmsChangeType change; AmsPriority priority; AmsDiligence diligence; int zn, nn, textlen; char buffer[80], *zname, *nname, *sname; sprintf(buffer, "Hello from %d.", getpid()); textlen = strlen(buffer) + 1; ams_register(NULL,NULL,NULL, 0, "amsdemo", "test", "301", "pitch", &me); while (1) { ams_get_event(me, AMS_BLOCKING, &event); ams_parse_notice(me, event, &state, &change, &zname, &zn, &nname, &nn, &sname, &priority, &diligence); ams_recycle_event(me, event); if (state == AmsInvitationState) { printf("%d sending '%s'.\n", getpid(), buffer); ams_send(me, 0, zn, nn, "text", textlen, buffer, AmsReportNone, NULL, 0); ams_unregister(me); return 0; } } } int main(int argc, char **argv) { if (fork() == 0) return runCatcher(); else return runPitcher(); }

  5. Management Information Base <?xml version="1.0" standalone="yes"?> <ams_mib_load> <ams_mib_init continuum_nbr="1" continuum_name="jpl" ptsname="dgr"/> <ams_mib_add> <csendpoint epspec="2357:loretta.jpl.nasa.gov"/> <application name="amsdemo"> <role nbr="1" name="shell"/> <role nbr="2" name="log"/> <role nbr="3" name="pitch"/> <role nbr="4" name="catch"/> <role nbr="5" name="benchs"/> <role nbr="6" name="benchr"/> <subject nbr="1" name="text" desc="ASCII text"/> <subject nbr="2" name="noise" desc="more ASCII text"/> <subject nbr="3" name="bench" desc="numbered msgs"/> </application> <msgspace nbr="1" appname="amsdemo" authname="test"> <zone nbr="1" name="301"/> <continuum nbr="2" name="apl" desc="Johns Hopkins APL"/> </msgspace> </ams_mib_add> </ams_mib_load>

  6. Initial Performance Statistics Publisher on a Pentium III, Red Hat 8.0 Linux. Subscriber(s) on a second Pentium III, Fedora Core 3. Underlying transport is TCP/IP over a 100 Mbps Ethernet switch.

  7. GDS Sim Spacecraft Sim SPOF router admin VxWorks RAMS gateway RAMS gateway SMC controller libams ION ION ION libams libams DGR IP MC SPOF CLA (C) SPOF CLA (S) SPOF CLA (C) DGR DGR UDP TCP TCP TCP UDP (80) (80) UDP SMC target SMC controller amsd libams libams DGR VxWorks Msg queue DGR amsd IP MC DGR UDP Linux UDP DGR UDP UDP Linux SMC target Solaris libams VxWorks Msg queue DGR UDP Cygwin or Interix The Internet SMC target SMC controller libams libams VxWorks Msg queue DGR IP MC DGR UDP UDP SMC controller libams IP MC DGR firewall firewall UDP

  8. What’s Done • Automatic discovery and dynamic reconfiguration • Startup, shutdown, registration • Exchange of subscriptions and invitations • Application message flow • Publish/subscribe • Private messages (send/reply) • Clean interface to underlying transport systems. Two adapters implemented so far: TCP and DGR (datagram retransmission, a reliable UDP system). • Heartbeat exchange, detection of unannounced crash.

  9. What’s Not Done Yet • Test/debug failover among configuration servers • Non-trivial encryption; test/debug authentication and authorization • Periodic resynchronization • Other transport service adapters with other QOS features: vxWorks message queues, IP multicast, probably UDP • Remote AMS gateway • Port to Interix (Windows); port to Solaris; finish port to vxWorks

  10. Other stuff for FY06 • Dynamic updating of MIBs, e.g., in response to changes in an information model • Message marshalling/un-marshalling per message definitions in MIB • JMS wrapper (JNI interface) • LabView wrapper • Matlab wrapper • Tcl/Tk wrapper