Thursday, 30 April 2015

Jolie 1.3 released

Jolie 1.3 has been released. This is a stabilisation release: much effort has been put into improving the implementation of the interpreter and its extensions, and in extending our test suite for backwards compatibility.


  • Empty bodies for Request-Response inputs have been made optional.
  • Performance improvements to communications with embedded Javascript services.
  • gwt-dev.jar has been removed, as it is no longer needed (this reduced the size of a Jolie installation to a third).
  • Fixed a bug that prevented using HTTPs with the default settings (SSLv3 is no longer the default).
  • Improvements to the jolie2java tool, which now correctly compiles access methods to root values.
  • Many fixes to how charset encodings are handled, especially with respect to UTF-8.
  • Bugfix: invoke@Reflection did not use runtime type checking correctly.
  • Internal refactoring of HTTP and HTTP-based protocols to share the basic underlying logic, e.g., error handling.
  • Fetching WSDL documents no longer prints debug messages on screen.
  • Some API cleanups in the standard library (e.g., NetworkService).
  • Improvements to handling GWT messages.

Wednesday, 1 April 2015

Jolie to support groundbreaking +aaMS, *aaMS, picoservices!

With the advent of microservices, it was clear to us in the Jolie team that it was time to reinvent everything there is about computing. We call this initiative XaaMS: X as a MicroService. But what is X? Today, we can share some of our most exciting plans for the future.

X as +: +aaMS

How many times it happens that you have to make some additions, e.g., x = 3 + 2, in your programs? Additions in current programming languages are painfully slow, as they are executed locally and risk to be run sequentially in case you do not have enough CPU cores. To address this problem, the next version of Jolie will run every addition on the cloud!

From now on, whenever Jolie is run, it will start a cloud cluster on Amazon to run your additions. Anytime a sum has to be calculated, Jolie will contact a cloud node to run the sum remotely and then wait to receive the result. In this way, all your additions can be efficiently parallelised and take advantage of modern cloud computing!
When possible, the Jolie interpreter will use multiple cloud nodes for the same addition, and then decide later which cloud node computed the best result using an advanced (patent-pending) heuristics.

Rigorous scientific testing (patent pending) has shown us that the perfect number of cloud nodes to support each Jolie program is exactly 100, so that is our unchangeable default.

X as *: *aaMS

Multiplications will also be run on the cloud! This is beautifully crafted on top of our +aaMS innovation. Suppose that you have to compute:

x = 6 * 7

Instead of running it locally, we split the multiplication into additions, using a new procedure we invented that we call "Multiplication Cloudification":

x = 6 + 6 + 6 + 6 + 6 + 6 + 6

Observe that, as strange as it may seem at first, the two operations yield the same result (we are currently trying to publish this important result in a math journal, but we are encountering disbelief)! Now that we have additions, we can split them and run them in parallel in the cloud.
For example, from above, we get the following additions that we have to do:

6 + 6, 6 + 6, 6 + 6, 6 + 0

We get the following results from our cloud nodes:

12, 12, 12, 6

Now we contact our cloud nodes to do the following additions, in parallel:

12 + 12, 12 + 6

We get:

24, 18

We finally contact our 100 cloud nodes to sum 24 and 18 in parallel, pick the best result, and after a mere thousand years of round-trip communications we get:


which is what this example is all about.

X as Pico

Recent business surveys suggest that the more microservices you have in your microservice architecture, the better! For this reason, the next version of Jolie will introduce the outstanding concept of Picoservices! Picoservices are launched from the command line, for example

jolie --pico 1000 program.ol

will launch Jolie with a thousand (!) picoservices, which are a special kind of microservices. What do picoservices do? Nothing! That is the beauty of it. They are microservices finely optimised to be hanging around and consume as little resources as possible (but still convincing, in a business sense).

Thanks to our lightweight picoservices, we are able to have microservice architectures that scale up to thousands of picoservices (if not millions!). Your business competitor will not be able to keep up!