Monarch: Next Generation REST Web Services

Network-centric computing has been gaining significant mind-share over the past decade. We have started to shift our thinking of our computing environment from applications and documents that strictly reside on our personal computers to applications and documents that may reside on a variety of websites on the Internet. From Gmail, to Dropbox, to Facebook, to Twitter – the landscape of how we interact with computers is changing.

The companies that understand this shift to Web Services and build out technology to track this shift in usage will emerge as the leaders of the computing industry in the next several years. Their infrastructure will be a competitive advantage, specifically – how quickly and efficiently their developers will be able to grow their services while keeping costs down.

To help the industry take advantage of this shift, we have released Monarch as an open source project. Monarch is a state-of-the-art Web Services framework. It is used to build the core web services that a company will provide its customers. Scaling up and out while reducing costs will separate the market leaders from the rest of the pack – Monarch provides this competitive advantage.

Monarch, the MOdular Networking ARCHitecture, is a set of libraries and tools for creating high-performance REST-based, native JSON Web Services. The framework is best suited for sites that rely on thousands of AJAX calls per minute to provide their core functionality. We have discussed the excellent performance characteristics of Monarch before – today we release it as open source software for the rest of the world to use.

A few of Monarch’s more notable features are provided below:

It is native and cross-platform, the same framework can be utilized in Windows, Mac OS X and Linux. The framework is designed to scale from the beginning. Developers create pluggable modules that can easily and automatically scale when used with multi-cpu and multi-core systems.

Monarch generates small, high-performance executables – small enough to run on modern cellphones or other portable devices. It is modular, which allows the developer to only include the modules that are necessary for the particular application.

Security is a very important concern for modern web services, which is why Modest contains a complete SSL/TLS and AES encryption/decryption stack. At its core is a network-centric design, containing everything necessary to create a high-performance AJAX backend including a light-weight, high-performance, multi-threaded HTTP server. Web service calls can be placed into XML or JSON data containers, which integrate well with current and next generation technologies such as XMLHttpRequest and HTML5. The data validation features ensure the validity of incoming or outgoing JSON data to AJAX front-end services.

All incoming and outgoing data to Modest allows for a stream-based computing and processing model, thus saving on memory and disk usage. The networking core is capable of in-line encryption, steganography and decryption of very large audio and video data streams.

Monarch doesn’t try to establish a “center of the world” development model. Rather, it integrates very well with existing libraries and network services like SMTP, UPnP, Sphinx, sqlite, and MySQL.

Its microkernel architecture rounds out the impressive throughput that Modest is capable of achieving. The microkernel enables hundreds of thousands of simultaneous micro-processes (fibers) to operate without operating system intervention.

There are many more details about Modest that can be found on the wiki page. You can download and compile the source yourself from github.

Trackbacks/Pingbacks