Ndjin Technical Overview
A server engine in the cloud
Ndjin is a server engine developed specifically for the Cloud computing paradigm. Ndjin runs on different Infrastructure as a Service (IaaS). Ndjin is accessible only and entirely through web services. Ndjin delivers services in a cross platform, cloud environment.
A Platform to develop and deploy SaaS
Ndjin is a Platform as a Service (PaaS) aimed at easing the deployment of Software as a Service (SaaS) applications.
Ndjin is aimed at developing and deploying cloud based applications, not informational or corporate web site.
An engine encompassing both the Business Logic and Data persistence tiers
The most prominent classical software architecture is based on the 3-tiers model. Each application is made of 3 tiers : a presentation tier (display information and interact with data), a business logic tier (processing of the data according to business specific rules), and a data tier (data persistence).
Here are 3 common implementations of the 3-tiers architecture in the internet age :
Ndjin is a server engine covering both the Business Logic and the Data tiers.
Ndjin interact with the Presentation tier via Web Services. Presentation tier is open : AJAX, Flash/Flex, RIA (Rich internet Application) running in the user browser or on the user desktop (Java Swing, Adobe Air, .net,...), or even a web server presentation layer (PHP, JSP, ASP,...).
A web service
Ndjin is a web service. Developers interact with the engin through public API. Ndjin support HTTP web service protocol and common data format (XML and JSON).
Interaction with the engine is only made through web services. There is no Ndjin graphical interface per se (just like Amazon S3 ou EC2 for instance), but we provide several tool to help developers to create their data structures and define their processes. These tools are open sourced from the scratch, and anyone is able and welcome to develop new tools, or improve the existing one.
One engine, one business model, one data repository, several interfaces
Using the provided tools, or directly via web services, a developer can describe the data structures for the application he needs. He can also add relations between the data structures, define states for these structure, and provide the business logic needed for the data to change state. He also has access to additional common services such as a mail service (in and out), authentication services, and of course, any external web services from tiers. The result is a core application engine, fitted to a specific business, entirely accessible via web services. Then, The developer is free to develop any user interface, through the technology of his choice, and/or make the data and processes accessible to other application over the internet.
Run on the grid
Ndjin is built from the ground up to run on any grid infrastructure. The first (and current) implementation run on Amazon EC2, but it can be easily adapted to any grid services based on vitualization, or even more proprietary grid model such as Google Engine.