What you can do with IBM WebSphere sMash

IBM® WebSphere® sMash addresses the increased pressure, in the market climate today, to build applications quickly to meet the situational needs of a business. Examples include applications to handle specific budget issues, users registering for an event, or the flow of an online transaction.

With this increased pressure in the market climate, many of these situational applications are not written because they are not affordable or not timely enough.

To make a situational application feasible from a cost and benefit perspective, it must have the following characteristics:

  • Simple to create
  • Support reuse and sharing of services
  • Quickly adaptable as the needs of the group or user change

WebSphere sMash excels at creating these situational applications by supporting new programming approaches including dynamic scripting, REST, Rich Web Interfaces, and Feeds.

Applications that meet your needs

Situational applications are developed when a developer automates or facilitates a particular business function, process or activity by producing a special-purpose piece of software. In addition to any added capability, the new application can modify, enhance, customize or extend an existing application, or include and combine parts or components (or both) from multiple existing applications. These applications have the following characteristics:

  • Frequently not recognized outside of the immediate department or business unit
  • Built to solve an immediate, specific business problem with little concern whether the application fits other situations
  • Developed in the most efficient, quick and easy manner possible

Speed, simplicity, and agility

WebSphere sMash is for developers who are looking for speed, simplicity, and agility. The features and capabilities it provides, as described in the following sections, provide those functions:

Speed

WebSphere sMash provides the following functions to promote speed in your development process:

Dynamic scripting languages
Increases productivity with reusable components and situational applications that require less time, fewer lines of code, and less specialized skill to produce. WebSphere sMash provides agile programming options using dynamic scripting with very few restrictions. The dynamic scripting languages currently supported are Groovy (for users with a strong affinity for Java™) and PHP.
An integrated runtime environment
The application is the server, so no deployment is necessary. Also, WebSphere sMash follows the convention over configuration approach that eliminates unnecessary manual coding. To optimize running agile scriptable applications, the virtual machine has also been enhanced.
Agile applications that perform and scale
As the need, scale, and volume of Web 2.0 situational applications grows, management systems like IBM WebSphere Extended Deployment can help run and manage these agile applications in an efficiently and cost effectively.

Simplicity

WebSphere sMash provides the following functions to promote simplicity in your development process:

REST services expose and leverage preexisting content
The popularity of REST is due to its simplicity, which WebSphere sMash provides by using REST to expose and leverage services. Other simple technologies are used to expose feeds (RSS) and access content in other applications (for example HTTP and JMS).
REST-style architecture maintains SOA principles
REST-style architecture embraces both SOA and the Web, enabling a component-centric model in which various server-side and client components can be reused in a scalable but simplistic way.
Assembly-style development produces fast composite applications
For extreme efficiency, you can build applications by assembling existing services and feeds (from both internal and external sources) into composite situational applications. Assembly-style development can be achieved using dynamic scripting (for example, by writing a Groovy or PHP script to catch a feed, merge it, and aggregate it). You can also use a visual assembly editor in the following ways:
  • Use a visual UI editor, based on the Dojo toolkit, to create AJAX clients and other components.
  • Use a visual flow-based editor to assemble, combine, and coordinate a series of service calls together into a flow, or to configure components that can connect to other internal or external systems.

Agility

WebSphere sMash provides the following functions to promote agility in your development process:

End-to-end development and runtime environment
You can develop situational applications and components in highly agile ways. Creating assembly-style applications, for example, requires far fewer different development roles than traditional Web development, your work is not handed to multiple people. Also, the end-to-end browser-based tooling enables you to develop on both the client-side and server-side, plus you can deliver front end widgets for other tools that enable you to wire components together.
Component-style development and delivery
WebSphere sMash provides the ability to build reusable building blocks, content, templates, and patterns, and the ability to reuse any WebSphere sMash content in the form of front end widgets.
Integrated environment to manage agile applications
The integrated environment of WebSphere sMash is ideal for cost effectively enabling and managing Web 2.0 applications in highly optimal ways.

Leveraging REST

WebSphere sMash simplifies the task of creating applications using the Representational State Transfer (REST) architectural style. The most important HTTP methods are POST, GET, PUT and DELETE. These are often compared with the CREATE, READ, UPDATE, DELETE (CRUD) operations associated with database technologies. RESTful designs often make use of collections. A collection is a simple model for manipulating a set of resources. Collections have member items that you can add, remove, update and delete. You can also get a list of members in the collection, as shown in the following table.

HTTP Method URI Description
GET /people list members
POST /people create member
GET /people/1 retrieve member
PUT /people/1 update member
DELETE /people/1 delete member

You can find more information about REST on the following wikipedia page.

Why PHP and Groovy?

Groovy is a scripting language that supports Java syntax and provides template capability. This allows the large community of developers with Java skills to script WebSphere sMash applications quickly. Groovy scripts are converted, under the covers, into Java classes and run in the same JVM as the rest of the WebSphere sMash Java code.

PHP is a popular scripting language that enables developers to quickly and easily develop Web applications. The large community of developers with PHP skills and the availability of reusable PHP assets on the Web, make PHP a logical choice for scripting WebSphere sMash applications. WebSphere sMash includes an implementation of a runtime to support the PHP language, written in Java. Currently supported functions are listed in the core functions information found in the PHP function information in the PHP Guide. Currently supported language features are listed in the PHP language features information in the PHP Manual. Background information about PHP can be found on this wikipedia page.

Version 1.1.26825