Skip to main content

FMP 3.0: Same API for invoking local and distributed services

Posted by rexyoung on September 12, 2013 at 11:06 PM PDT

The coming FMP 3.0 provides the same API to invoke local and distributed messengers each of which may be running on a different computer and/or written in a different language.




Figure 1: A single messenger

(1) messenger.sendMessage ("Bob : serviceB1", args);

(2) messenger.sendRequest ("Dave : serviceD1", args, /*reply*/{"Mike : serviceM1", args2});

(3) future = messenger.callService ("Mike : serviceM2", args);




Figure 2: Several connected messengers

// the following messenger could be any of "m1" - "m3" in the figure 2

(1) messenger.sendMessage ("m2 :: Jack : serviceJ1", args);

(2) messenger.sendRequest ("m3 :: Ava : serviceA1", args, /*reply*/{"m1 :: Mike : serviceM1", args2});

(3) future = messenger.callService ("m1 :: Mike : serviceM2", args);




Figure 3: Network of messengers

// the following messenger could be any of "m1" - "m16" in the figure 3

(1) messenger.sendMessage ("m4 :: Bob : serviceB1", args);

(2) messenger.sendRequest ("m13 :: Dave : serviceD1", args, /*reply*/{"m14 :: Mike : serviceM1", args2});

(3) future = messenger.callService ("m3 :: Mike : serviceM2", args);
Related Topics >>