Components of IBM WebSphere sMash

IBM® WebSphere® sMash consists of several components that work together to simplify building and deploying applications in a Web 2.0 environment. This article describes the basic components of WebSphere sMash and how you can use them.

The following components provide the speed, agility and simplicity of WebSphere sMash:

Core
Assemble
Reliable Transport Extension
Deployment
App Builder (experimental only)

Core

The WebSphere sMash core provides a simple programming model as a guideline for building Web 2.0 applications using RESTful principles. The programming model allows developers to create RESTful resource handlers using either the Groovy scripting language (available by default) or the PHP programming language. The scripting support in WebSphere sMash allows developers to build applications quickly by following a few basic conventions. For basic database backed applications that have a Create/Retrieve/Update/Delete (CRUD) based interaction, the programming model includes the Zero Resource Model (ZRM) technology to easily model and access data as RESTful resources. Using the engine, you can create the database tables and run the appropriate SQL queries for retrieving the resource representations using either Javascript™ Object Notation (JSON) encoding or as ATOM feeds for easier integration with AJAX based clients. The engine also supports building rich user interfaces using AJAX technology provided by the Dojo toolkit.

WebSphere sMash includes a data abstraction layer to allow developers to work directly with SQL to query and update data associated with the application. This works with an API to update or retrieve remote resources using, for example HTTP(S) or using e-mail. WebSphere sMash also provides a host of features to secure the application. These features include the standard authentication methods as well as features to do third-party authentication using the OpenID protocol. With WebSphere sMash, you can use filters to remove active content from requests and responses. You can also prevent cross-site request forgery. These features provide secure development of content-centric Web 2.0 applications.

The core engine of WebSphere sMash delivers simplicity by providing a command line utility that allows you to manage and create applications and their dependencies. The application structure builds on the convention over configuration theme by using a simple directory and artifact naming convention.

Assemble

The WebSphere sMash Assemble component provides the capability to access different services and assemble them into a WebSphere sMash application.

Reliable Transport Extension

The reliable transport extension allows WebSphere sMash applications to communicate with each other using asynchronous messages.

Deployment

Each WebSphere sMash application is a self contained entity containing all of the components necessary to run the application. This application centric approach removes the error prone task of deploying an application into a server. By adopting an application centric model WebSphere sMash not only simplifies deployment but also maximizes isolation.

App Builder (experimental only)

App Builder is a Web-based tool for developing WebSphere sMash applications. App Builder is itself a WebSphere sMash application, which means you acquire and manage it the same way you do other WebSphere sMash applications.

Note: App Builder is not a released feature. It is only available in WebSphere sMash DE and the latest release under development.

Putting the pieces together

The following grapic shows the components of WebSphere sMash working together:

This screen graphic shows the components of sMash working together.

Version 1.1.26825