The trends and technologies available today are changing the way many developers are approaching application development. More and more developers are using dynamic languages, more reusable assets are available than ever before, and new Web 2.0 technologies and rich clients are redefining the user experience. With a growing availability of services (both within the enterprise and out on the Web), and new programming approaches around dynamic languages to leverage them, there is a significant growth in applications being created to target a situational need. With these changing conditions, you need a more agile way to leverage your organization’s existing SOA investments, and a way to build situational applications faster, simpler, and at a lower cost.
In early 2007, IBM launched Project Zero, a highly acclaimed, community-driven incubator project that focuses on radical simplification of building Web-based applications using dynamic scripting. Project Zero combined Java™ (JSE), dynamic scripting language support, popular Web technologies known for simplicity (REST and RSS), and the notion of the JVM (Java Virtual Machine), and then added a new concept: "the application is the server." This means that there is no deploying applications to a server; rather the application is the server. In addition, Project Zero delivered an environment with templates, patterns, and an end-to-end platform of capabilities with browser-based visual tools that help with both server-side and client-side Web development.
In short, the result of the effort and dedication of the Project Zero community is a product that provides an agile environment for quick and simple delivery of Web-based applications, based on dynamic scripting languages and assembly-based development. This is product is IBM WebSphere sMash.
WebSphere sMash provides a development and execution environment that enables agile development of dynamic Web applications using SOA principles. WebSphere sMash gives developers the power to create, assemble, and execute situational composite applications by using dynamic scripting languages, lightweight application assembly, and REST-style service invocation. Developing with WebSphere sMash reduces complexity and risks, shortens development time, and minimizes learning curves.
With WebSphere sMash, you can:
- Build Web 2.0-based applications by pulling in, composing, and "assembling" pre-existing assets (such as PHP assets, services, feeds, code snippets, and so on) using dynamic scripting languages and simple consumption principles based on REST.
- Build Web applications that can access external systems or coordinate a set of activities.
- Build reusable components that enable different forms of business logic.
- Expose, compose, and coordinate a series of service calls together, or connect to external systems.
- Enable easy customizations around a packaged application that might not have previously been considered cost effective.
- Leverage existing SOA assets and publicly available APIs by enabling rapid development of dynamic Web applications that extend enterprise systems.
WebSphere sMash was created for developers looking for speed, simplicity, and agility, and the features and capabilities it provides can be looked at in these terms:
Experience improved productivity with dynamic scripting languages.
If you need quick ways to deliver reusable components, plus situational applications that require less time, fewer lines of code, and less specialized skill to produce, WebSphere sMash offers agile programming options using easy-to-learn dynamic scripting with very few restrictions. The dynamic scripting languages currently supported are Groovy (ideal for users with a strong affinity for Java) and PHP.
Use an integrated runtime environment that is built for speed.
What makes WebSphere sMash inherently fast? Since the application is the server, no deployment is necessary. In addition, WebSphere sMash provides a framework that follows "convention over configuration," eliminating the need for unnecessary manual coding. Enhancements have also been made around the virtual machine to optimize the running of these agile scriptable applications.
Build agile applications that perform and scale.
As the need, scale, and volume of Web 2.0-based situational applications grow, management systems like IBM WebSphere Extended Deployment will be able to help you run and manage these agile applications in an efficient and cost effective manner.
Services using REST can easily expose and leverage pre-existing content.
The popularity of REST is rooted in 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 (HTTP, JMS).
SOA principles are maintained using a REST-style architecture.
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 yet 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 that will catch a feed, merge it, aggregate it), or with a visual assembly editor:
- 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.
An end-to-end development and runtime environment with fewer complexities.
WebSphere sMash enables you to 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, so there aren’t multiple people to hand your work off to. 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 together" components.
Component-style development and delivery for maximum flexibility.
The component-style development and delivery provided by WebSphere sMash gives you 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 enable and manage agile applications.
WebSphere sMash’s integrated environment is ideal for cost effectively enabling and managing Web 2.0-based applications in highly optimal ways.
WebSphere sMash is one of several new, revolutionary IBM products announced recently that can help you use Web 2.0 technology to solve problems more effectively, reach new customers, optimize integration efficiency, improve internal collaboration, and to expose and consume SOA resources:
- IBM Lotus® Mashups is a lightweight mashup environment for rapidly assembling Internet and enterprise content into simple, flexible, and dynamic Web applications. Web-savvy business users can use Lotus Mashups to easily create and share new Web applications that address their immediate business needs.
- IBM InfoSphere Mashup Hub is an enterprise-grade solution that can be used to Web 2.0-enable enterprise, Web, and departmental systems without requiring changes to the underlying information sources. The "unlocked" information can be mixed and transformed to meet specific needs and the demands of situational applications, while security and governance are managed to enterprise standards.
Each of these products apply Web 2.0 technology to your enterprise's existing inventory of services in different ways so you can reuse your assets in ways never before practical or possible. Of course, these products also work easily together; for example, components created in WebSphere sMash can be managed through InfoSphere Mashup Hub and then assembled in Lotus Mashups.
Watch for more information on all three products as they become available.
IBM WebSphere sMash is a platform for delivering your dynamic Web 2.0-based situational applications in a way that reduces risks and minimizes costs. IBM WebSphere sMash Developer Edition provides the (cost-free) tooling for building these applications with speed, simplicity, and agility.
It costs nothing for you to develop with or to evaluate WebSphere sMash. Project Zero is (and will continue to be) the development community for WebSphere sMash, so to get a head start with everything that WebSphere sMash has to offer you, your environment, your applications, and your existing SOA investments, simply download Project Zero now and begin working with it today.
WebSphere sMash resources
WebSphere sMash documentation
WebSphere sMash product information
IBM developerWorks Web development zone
IBM developerWorks WebSphere zone