This project is read-only.

MaxBlox Architecture

Overview

Software as a Service (Saas), also known as on-demand computing, is changing the way in which web applications works for various services required by the user. Rather than utilizing the local resources, these applications are made capable to use the resources where it is deployed. By having a framework like MaxBlox to build SaaS based Apps, a perfectly scalable, secure and more reliable web application can be made and deployed within few days of time.

What is MaxBlox?

MaxBlox is a complete application development platform on SaaS. In simple terms, it can create tables, pages without the need for coding. The underlying tables and pages for these tables will become automatically available for the users in the system based on the security settings. On top of these already created tables and pages, customizable Reports and Dashboards, Workflow Rules, Logging, Menus, Queries can be created. This effort is so seamless that this drastically reduces the amount of time and cost necessary for any web application to get created and deployed.

MaxBlox Architecture and SaaS

SaaS

One working definition for SaaS can be “Software deployed as a hosted service and accessed over the Internet." In Simple terms, SaaS applications provide a centralized, network-based access to data with less overhead than is possible when using a locally-installed application. Here, the data and the application that works on the data are placed at different locations communication to each other. They are served to the user as a service as requested. This also helps to share the load and to avoid the usage of local resources usage for application delivery. Let’s see each of the SaaS’ core features separately.

Multi-tenancy

Conceptually, this refers to the ability of an application to behave differently based on the underlying data for each tenant who uses the application. Each tenant will be provided with his own data-application share for a unique experience per tenant. Technically, this refers to the way of maintaining the data for each SaaS customer, also known as tenant. SaaS, by default, supports following ways for doing this.

clip_image001

It starts from a point where each customer/tenant has a separated database, where the data is kept, to a point where the entire customer’s data is kept in a single database, single schema.

Separate Databases

Storing tenant data in separate databases is the simplest approach to data isolation.

clip_image002

Shared Database, Separate Schemas

Another approach involves housing multiple tenants in the same database, with each tenant having its own set of tables that are grouped into a schema created specifically for the tenant.

clip_image003

Shared Database, Shared Schema

A third approach involves using the same database and the same set of tables to host multiple tenants' data. A given table can include records from multiple tenants stored in any order; a Tenant ID column associates every record with the appropriate tenant.

clip_image004

Among the above configurations, MaxBlox supports Separate Database as well as the separate schema configurations. All the data maintained for MaxBlox are uniquely identifiable by each row. Fail-safe algorithm like GUID is being used in the row id generation logic for MaxBlox, thus making it unique within 10 million transactions. This, in turn, is used to maintain the relationship between records in different tables making the bond unbreakable even if the data gets modified in whatever way possible.

Scalability

One of the import aspects of any web app is that it should be able to support as many customers as possible. This means that the application should automatically scale to meet the needs of increasing number of customer base.

In SaaS model, Scalability is a feature inherited from Multi-tenancy. As the application being developed works on its own part of the data, the application can support any number of clients at any given instant. The only limitation that comes immediately in to the picture is the web server’s capability to handle the requests and the database storage capacity. These limitations can be easily overcome by having multiple database instances and increasing the web server’s support for handling web requests.

Meta-data

In simple words, Meta-data is the data about the data, a key MaxBlox technology, which makes it possible to create applications just with collections of meta-data. Here, all the information that can be used to customize the application as well as the objects defined in the system is maintained as meta-data. One of the advantages of this model is that, by using simple point-and-click configuration, it becomes possible to create sophisticated applications without code. As a result, meta-data lets users unfamiliar with programming actually create applications, while it speeds development for experienced programmers.

Significantly, the use of metadata also creates an implicit boundary between an application and the platform, which is essential for the multi-tenant model. As applications are customized and extended, new versions of the application can be rolled out without affecting the end user— all applications and integrations continue to run without modification and the deployment process never delays the release of new functionality.

Security

Typically, access to resources and business functions in a SaaS application is managed by using roles that map to specific job functions within an organization. Each role is given one or more permission that enables users assigned to the role to perform actions in accordance with any relevant business rules.

clip_image005

Roles are managed within the application itself; they can contain individual user accounts. Individual user accounts can be assigned several different roles as required.

Depending on the roles to which a user is assigned, he or she is granted one or more permissions to perform specific operations or actions. These actions typically map directly to important business functions, or to the management of the application itself. For example, a purchasing application might include permissions for creating, submitting, approving, and rejecting purchase orders; an application for mortgage brokers might include permissions for checking a borrower's credit and granting a loan; and so forth. A single permission can be assigned to one or several roles, as necessary; each user will be granted the union of the permissions assigned to all roles to which the user belongs.


MaxBlox Architecture.

 

MaxBlox Application Stack
app_stack

 

MaxBlox Architecture diagram

mb_architecture

MaxBlox – Features at a Glance 

Features

Description

Meta-Data 

Entire application works on top of Meta data. Application behavior can be totally customized by just changing the meta-data

Theme Support

Every page element is customizable as per the user’s needs

Security

As inherited from SaaS, MaxBlox supports all the security features as inherited from SaaS. Additionally, User based security can be set for pages being accessed.

Multi-Tenant

A single code base can run on individual instances of the underlying database. Thus each user in every organization gets a separate application as per the needs.

Table Designer

Designing the tables necessary will be too easy. In few minutes, all the necessary tables needed for any complex application can be setup, that too along with the security access for editing/copying/deleting of the data per user.

Page Designer

Pages that are needed for the manipulation of the data can be easily created and customized. MaxBlox supports different layouts as per the customer needs.

Menu

For easy access of the pages, MaxBlox supports Menus that works on top of pages. The underlying security can be again customized by providing access to the menu per user.

Reports

Dynamic Reports can be generated using the tables defined in the system. They can be customized and works automatically based on the security access.

Queries

Queries can be provided in the system so that reports and analytics can be generated from multiple tables for complex requirements.

Dashboards

Just like reports, dashboards can be setup to provide a meaningful representation of the data.

Workflow

Workflow rules can be configured based on the needs respecting the organizational hierarchy. This supports customizable actions at each rule levels.

Analytics

For easy analysis of the complicated data, analytics can be configured to work on the tables defined in the system.

Currency Management

Support for User level currency management. Currency fields can be easily setup and the system will automatically convert the values as per the settings configured.

Localization

Supports all the standard Locales available over the web. User can be configured for a specified locale thus changing the data representation over the whole system for that user.

Help Customization

Customizable Help pages can be created for the pages created over a table. This help will become immediately accessible as per the settings defined.

Logging

Data exchanges and user sessions can be logged for auditing purposes. The system also logs the errors as it happens in the system.

Processes

For complicated manipulation of data, that takes huge time to process, can be schedule d to work at specified intervals and can be configured. The detail report for the scheduled process is also available.

Customizable E-mail

For the communications using MaxBlox, the system automatically provides the capability to send email through a server as per the settings that can be configured by the administrator.

Customizable Logo

The Logo that gets displayed on the MaxBlox pages customized as needed.

Extensibility

Additional to the basic features provided by MaxBlox, MaxBlox can be extended in following ways.

  1. Multi-database Support

Can be extended easily to support any .net supported databases

  1. Creating custom pages

Complex custom functionalities can be included by providing them in separate pages. These pages can be embedded along with the application easily

  1. Extending existing system tables

System defined tables supports user defined fields. These tables can be extended as desired.

  1. Services for custom actions

For tasks that involve complicated iterative actions on the underlying data, exclusive services can be built and deployed easily. The system can automatically provide templates for this.

System Requirements

Windows XP and above

.net Framework 4.0

SQL Server 2005 and above

IIS 6.0 and above

512MB Free RAM

Summary

MaxBlox, as a framework, optimizes application development by cutting down the huge amount of time needed to develop an application from scratch. Moreover, MaxBlox reduces the amount needed for testing of any new application since the framework already works on top of a tested system. The application being developed gets the immediate benefit of SaaS’ security and scalability and it’s readily deployable with very less amount of resources and time.

logo

Last edited Aug 16, 2012 at 6:49 AM by sanalksankar, version 5

Comments

No comments yet.