Skip to main content

Rex Young

Fast Messenger Programming (FMP) is a new object-based model for general concurrent programming with NO threads. &


rexyoung's blog

[obsolete] Fibonacci function: An example of how to write concurrent programs without multi-threading

Posted by rexyoung on March 12, 2014 at 8:30 PM PDT


M123 a first FMP 3 demo

Posted by rexyoung on October 9, 2013 at 11:56 PM PDT

FMP 2 focuses on local services that run concurrently to each other while FMP 3 focuses on distributed services that work together seamlessly. And uses of these services are sharing a unified API and programming model.

M123 is a first demo about FMP 3. The demo contains three standalone programs:,, and The setup around them is illustrated by figure 1.

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.

FMP Tutorial: Standard APIs to invoke active objects

Posted by rexyoung on August 17, 2013 at 9:42 AM PDT

Fast Messenger Programming (FMP) introduces two types of objects. Active objects are designed to represent business logics while messenger objects are designed to support active objects on underlying programming languages. As Figure 1 illustrates, messenger objects are native objects written using the underlying programming language. Active objects, on the other hand, are virtual objects.

FMP Tutorial: Messenger.sendMessage ()

Posted by rexyoung on July 26, 2013 at 1:20 PM PDT

In previous tutorials, we have introduced that an active object behaves like an human individual who takes jobs and executes them one at a time from his private FIFO inbox. It means for a user program that the most straightforward way to invoke a service on an active object would be placing a request in the inbox of the target active object.

FMP Tutorial: Messenger API

Posted by rexyoung on July 26, 2013 at 12:11 AM PDT

We introduced a new visual element (see figure 1) that can be used to represent active objects in your mind and/or on a diagram along with other visual elements of classes, objects, human actors, etc. They are very appropriate for expressing high-level designs or conceptual models.

FMP Tutorial: Visualizing Active Object

Posted by rexyoung on July 24, 2013 at 11:22 PM PDT

FMP is a very flexible programming model. You can use it as simple as injecting just a single active object into your existing application. You would be able to do so after read a few API docs. However, if you like to master FMP and unleash its full potential, you would be better able to effectively think in active object as if it is one of your native thought elements.

FMP Tutorial: Active Object Is Asynchronous and Sequential

Posted by rexyoung on July 17, 2013 at 1:37 AM PDT

In the last tutorial, we introduced a FMP program that contains an active object "calculator" for any user program that wants a product from two big integers. In this tutorial, we will address concerns some FMP beginners might have. For example, why don’t we get a product of n1 and n2 by using less code?

    new Calculator ().multiply (n1, n2);

FMP Tutorial: First FMP Program

Posted by rexyoung on July 14, 2013 at 11:51 PM PDT

FMP stands for Fast Messenger Programming a new object-based general programming model for concurrent programming with no threads.

In this tutorial, we examine a minimal set of FMP elements and how they are structured and interacted in a working FMP program.

[obsolete] Basic Elements of Fast Messenger Programming Model

Posted by rexyoung on November 9, 2012 at 9:24 PM PST