Académique Documents
Professionnel Documents
Culture Documents
A Commercial Project
With development done in the open and limited no-cost use.
Download for free at http://projectzero.org.
Application Server
Java
Enterprise
Edition
Dynamic Scripting
Number of Applications
5 © 2009 IBM Corporation
Accelerate business and IT alignment
Dynamic Scripting
PHP
Groovy (JavaTM Language Syntax)
Effortless creation of RESTful
Services
Simple event-based execution
environment
State externalized into a shared
memory space (Global Context)
Repository of pre-built templates,
services, libraries, and connectors
Clean execution
Applications are isolated and
secured from each other
Periodic re-cycling of applications
reduces failures
HTTP server
• Extensibility via XAPI
• XAPI-C for C extensions from php.net
Zero Programming Model • XAPI-J for Java extensions, native libraries invoked
over JNI and Project Zero interface
• Extension language choice opaque to PHP script
Java- Bridge
JAR
JAR
PHP runtime • Java Bridge
TM
Groovy
Debug
XAPI-J
XAPI-C
Java
C Extensions
Extensions
WebSphere sMash
PDT2
java_import("java.util.HashMap");
$map = new HashMap();
$map->put("stuff", array(1,2,3,4,5)); Types are automatically
var_dump($map->get("stuff")); converted at boundary of
// prints: array(5) { ... PHP runtime
<?php
Static methods and fields java_import("java.lang.System");
are accessible too echo System::currentTimeMillis();
try {
System::getProperty(FALSE);
Java exceptions can be } catch (JavaException $exception) {
caught and handled in PHP echo $exception->getMessage();
}
function isThisCool() {
return TRUE; // Way cool
}
}
<?php
java_import("java.lang.String");
$signature = new JavaSignature(JAVA_INT);
var_dump(String::valueOf($signature, 1234567890));
<?php
java_import("java.lang.Comparable"); PHP reflection works on Java
echo(ReflectionClass::export("Comparable")); classes
<?php
java_import("java.io.File");
$file = new File("/home/robinf");
var_dump($file->Parent);
//equivalent to:
Java bean support provides field
var_dump($file->getParent());
access for get/set method calls
Forums Ajax
wiki
Debugging
FirePHP
CRM
Content Desktop
Management Virtualisation Blogging
Visit http://projectzero.org
Download sMash for free
View “Getting Started” guides
Watch videos of sMash in action
Access our source, bug tracker,
developer discussions…
Chat with the community on the
forum