- Project Zero
Infobox_Software| name = WebSphere sMash
caption =
developer =IBM
latest_release_version = 1.0.0.0
latest_release_date = 28 May 2008
latest_preview_version =
latest_preview_date =
operating_system =Cross-platform
genre = Application Server
license = Proprietary
website = http://www.projectzero.orgWebSphere sMash is a development and runtime environment from
IBM for the creation of dynamicweb applications using thescripting language sGroovy andPHP . It contains a PHPruntime written in Java.Project Zero is the experimental software development community in which new versions ofWebSphere sMash are incubated.WebSphere Smash integrates with Eclipse and produces
REST -style services on top of Groovy or PHP cite web |work=Project Zero Site |title= About Project Zero |url=http://www.projectzero.org/about/ |accessdate=2008-06-23 ] .Architecture
There are a number of distinguishing aspects to the architecture of WebSphere sMash.
Event based Programming model
WebSphere sMash uses an Event Driven Programming Model. Applications are typically composed of a number of small modules which communicate with each other by firing events which are then caught by other handlers that have registered to catch the events. The code firing the event does not have any knowledge of the code that will handle the event. This architecture allows application to be built up from a mixture of code written using PHP, Java, Groovy or the Flow language.
Global Context
Since events are stateless, a mechanism is required to share data between event handlers. This mechanism is the Global Context. The Global context functions basically as a large map of data divided up into various zones with different lifetimes, properties and persistence.
Repository management system
sMash makes use of the Ivy dependency manager. sMash applications are composed of models which can specify dependenccies on other modules which may be present in a local Ivy repository or which can be fetched from a remote repository. IBM maintains a repository of useful modules at projectzero.org and dependencies can also be specified on the maven2 repository.
Language runtimes
Features
Flow Language
Connection API
REST Framework
Community-Driven Commercial Development
PHP Support
The PHP support in WebSphere sMash is provided by a
PHP runtime implemented in Java. cite web |work=Project PHP FAQ |title= Project Zero PHP FAQ |url=http://www.projectzero.org/about/zerofaq.php#PHP_FAQ |accessdate=2008-06-30 ] .PHP scripts are compiled into Java Bytecodes which then run on the JavaVirtual Machine (JVM ). This is similar in concept to the approach taken by other projects such asJRuby andJython which run the Ruby and Python Languages respectively against the JVM. Running on the JVM allows direct, same process calls between PHP, Java and Groovy code allowing applications to be assembled using a variety of languages.In contrast to the approach taken by Quercus, the other JVM based PHP implementation, sMash is able to re-use existing PHP extensions from PHP.net attaching them to the Java virtual machine via the Java Native Interface (JNI) and an API layer called XAPI-C.
The runtime has a DBGp debug port allowing debug access from IDEs and debuggers which support the DBGp protocol such as the Eclipse PDT project.
The PHP runtime does not have an identity outside of sMash so it is simply referred to as the "WebSphere sMash runtime for PHP."
As of October 2008 webSphere sMash is capable of running several well known PHP applications on a Java Virtual Machine. These include
SugarCRM cite web |work=Smash 4 Sugar |title= Smash4Sugar project at SugarForge |url=http://www.sugarforge.org/projects/sugar4smash |accessdate=2008-06-30 ] ,phpBB cite web |work=phpBB on PZ |title= PhpBB running on Project Zero |url=http://www.projectzero.org/blog/index.php/2008/01/13/phpbb-running-on-project-zero/ |accessdate=2008-06-30 ] , andWordPress cite web |work=WordPress on PZ |title= Try out PHP Application WordPress on sMash |url=http://www.projectzero.org/blog/index.php/2008/10/02/try-out-php-application-wordpress-on-smash/ |accessdate=2008-10-09 ] .References
External links
* [http://ostatic.com/160611-blog/oss-developers-project-zero-aims-for-next-gen-web-applications OSS Developers: Project Zero Aims for Next-Gen Web Applications]
Wikimedia Foundation. 2010.