SlideShare a Scribd company logo
1 of 34
Download to read offline
The Duke and the Elephant: PHP meets
JavaTM Technology. The best of both
worlds.
Rob Nicholson
                                .
IBM Senior Technical Staff Member
Agenda

 Whys and Whats of PHP on the Java Virtual Machine
 (JVM™) software

 How we mix PHP, Java platform and Groovy

 Demonstration of PHP and Java Platform Interaction

 ProjectZero Community




    © 2008 IBM Corporation
                                    2008 JavaOneSM Conference | java.sun.com/javaone |   2
Agenda

 Whys and Whats of PHP on the Java Virtual Machine
 (JVM™) software

 How we mix PHP, Java platform and Groovy

 Demonstration of PHP and Java Platform Interaction

 ProjectZero Community




    © 2008 IBM Corporation
                                    2008 JavaOneSM Conference | java.sun.com/javaone |   3
Why PHP?
 PHP present on 20M+ web domains (34% of internet)
  • Validated by significant web properties
 PHP snippets and extensions exist to do almost anything
 Language has evolved in open source
  • Survival of the simplest and fastest
 Simple syntax and dynamic typing encourage situational applications


Gartner (Dec 2007)                      TIOBE Programming Community Index (March 2008)

   • PHP Developers to grow from 3
     to 5.5 million by 2013
   • PHP Developers in Commercial
     or Corporate IT to grow from
     13% to 60% by 2013
   • “Pay special attention to
     opportunities to leverage PHP in
     combination with Java
     development efforts”
     © 2008 IBM Corporation
                                                     2008 JavaOneSM Conference | java.sun.com/javaone |   4
Introducing WebSphere sMash
 WebSphere sMash is an Agile Web Application Platform
 • Architected around Dynamic Scripting, REST, Rich Web Interfaces,
   AJAX, and Feeds
 • Optimized for
    • Speed
    • Simplicity
    • Agility
 Key Scenarios
 • Enables developers to build web 2.0-style applications by easily pulling in,
     composing, and “cobbling together” pre-existing assets (PHP assets, services,
     feeds, code snippets) using dynamic scripting languages and simple
     consumption principles based on REST
 •   Leverages existing SOA investments by enabling rapid development of dynamic
     web applications that are assembled from enterprise assets and publicly
     available APIs
 System language is Java platform
 Application languages are      and
 • Contains a PHP 5 interpreter written in Java programming language


     © 2008 IBM Corporation
                                                        2008 JavaOneSM Conference | java.sun.com/javaone |   5
Project Zero
Incubating the Technology
  Project Zero is the development and incubation
  community for WebSphere sMash
  • Live on the Internet since June 2007

  Project Zero represents
  • The people that build and use WebSphere sMash
  • The incubation of new technology that will deliver in future versions of
       WebSphere sMash
  •    The community of 3rd party assets that leverage the WebSphere sMash platform


  All released versions are called WebSphere sMash




      © 2008 IBM Corporation
                                                         2008 JavaOneSM Conference | java.sun.com/javaone |   6
The Duke and the Elephpant




                                         © Hideyuki Shimooka

   © 2008 IBM Corporation
                            2008 JavaOneSM Conference | java.sun.com/javaone |   7
Top Level Architecture
                                                                                           App components




                                                                                     Runtime
                              Dojo                                        Events




                                                                                      PHP
                                                            HTTP server
                                                                                                     app
                              Browser
                                          REST
                                                                          Global
                                                                          Context




                                                                                     Runtime
                                                                                                     app




                                                                                     Groovy
                                         Local repository
                                                                 Package
                                                                                               JavaTM app
                                        Remote repository        Manager

                                        Remote repository     Zero Application

 Loose coupling:                                                               Java Virtual Machine


  • Event driven architecture
  • Global Context
  • Virtual Directories
     © 2008 IBM Corporation
                                                                 2008 JavaOneSM Conference | java.sun.com/javaone |   8
PHP Runtime Architecture
                    CLI      PZ Http
PHP Scripts
                                                             • Runtime for PHP 5 scripts
                            SAPI-J
                                                             • Implemented in Java code, runs on any Java
                                                               platform 5.0+ VM
                           PHP Engine                        • PHP language elements represented as Java code
 Variables
                Parser
                                      Cache                    objects

                                              Debug (DBGp)
  Stack                         IR
                 P8 Runtime
                                                             • Parse script to Intermediate Representation (IR)
Resources                                                       • Cache and Interpret IR
                   Interpreter
 Classes                                                        • Compile ->bytecode prototype
 Objects                  Runtime
                                                             • Extensibility via XAPI
                                                                • XAPI-C for C extensions from php.net
      XAPI-C
                       XAPI-J                                    • XAPI-J for new Java platform extensions,
                             Java
                                                                   native libraries invoked over JNI™ API and
        C                 Extensions    Native                     Project Zero interface
    Extensions                           code
                                                                 • Extension language choice opaque to PHP script
                      PZ Extensions
                                                             • Java Platform Bridge
                                                             • Debug using via DBGp using Eclipse with PDT

             © 2008 IBM Corporation
                                                                                   2008 JavaOneSM Conference | java.sun.com/javaone |   9
XAPI-J example
Extend PHP using Java Platform

 @XAPIExtension(quot;BigDecimalquot;)
 public class BigDecimalExt extends ExtensionBaseImpl {

     @XAPIFunction(quot;add_bigdecimalquot;)
     public void add(RuntimeContext ctxt) {
        RuntimeServices rts = getRuntimeServices();
        InvocationService inv =
        rts.getInvocationService();
        Object[] args =
               inv.parseArguments(ctxt, quot;ssquot;, false);
        BigDecimal arg1 = new BigDecimal((
               ( XAPIString) args[0]).getString());
        BigDecimal arg2 = new BigDecimal((
               ( XAPIString) args[1]).getString());
        BigDecimal result = arg1.add(arg2);
        ctxt.setReturnValue(result.toString());
 }   © 2008 IBM Corporation
                                       2008 JavaOneSM Conference | java.sun.com/javaone | 10
Java Platform Bridge
Easy access to Java Classes from PHP

  <?php
     $date = new Java(quot;java.util.Datequot;, 70, 9, 4);
     var_dump($date->toString());
     $map = new Java(quot;java.util.HashMapquot;);
     $map->put(quot;titlequot;, quot;Java Bridge!quot;);
     $map->put(quot;whenquot;, $date);
     echo $map->get(quot;whenquot;)->toString().quot;nquot;;
     echo $map->get(quot;titlequot;).quot;nquot;;
     $array = array(1,2,3,4,5);
     $map->put(quot;stuffquot;, $array); // PHP array converted to
  Java Map
     var_dump($map->get(quot;stuffquot;)).quot;nquot;;
  ?>




     © 2008 IBM Corporation
                                       2008 JavaOneSM Conference | java.sun.com/javaone | 11
Agenda

 Whys and Whats of PHP on the Java Virtual Machine
 software

 How we mix PHP, Java platform and Groovy

 Demonstration of PHP and Java Platform Interaction

 ProjectZero Community




    © 2008 IBM Corporation
                                    2008 JavaOneSM Conference | java.sun.com/javaone | 12
Virtualized Directories
Facilitate Application Composition
 Resources searched across application and
 dependencies.
 Apps behave as if directories merged.
 Applies to all script directories.
  • /public /app/resources, /app/scripts, /app/views etc.
 First-one-wins precedence.
  • Order based on dependency order in ivy files.
  • Default files searched within each directory first:
       •   {my application}/index.php
       •   {my application}/index.html
       •   {dependency1}/index.php
       •   {dependency1}/index.html


    © 2008 IBM Corporation
                                              2008 JavaOneSM Conference | java.sun.com/javaone | 13
REST Services
Made easy
    Zero provides a really simple way to create REST
    services
    Convention for create/retrieve/update/delete operations
    (CRUD)
     • You can also list the members in the collection.

  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



        © 2008 IBM Corporation
                                               2008 JavaOneSM Conference | java.sun.com/javaone | 14
REST Services in WebSphere sMash
    Each REST service is implemented by a script (called a handler)
    Scripts live in the directory: <apphome>/app/resources
    Services are accessed using a standard URL convention:
     •/resources/<collection name>[/member[/<path
     info>]]
    HTTP requests mapped to handler methods as follows:


Resource                GET        PUT             POST                   DELETE


Collection              list       putCollection   create                 deleteCollecti
                                                                          on
/people
Member                  retrieve   update          postMember             delete
/people/1




      © 2008 IBM Corporation
                                                      2008 JavaOneSM Conference | java.sun.com/javaone | 15
Demo – REST in WebSphere sMash




                     2008 JavaOneSM Conference | java.sun.com/javaone | 16
Events
Promote Loose Coupling
   All behaviour in the system is modelled as a set of events.
    • Events are programming language agnostic
   Fired by an application using fire_event().
      fire_event('my_event', array(‘data'=>'foobar'));
   Event handlers are defined in the Zero configuration file:
      /config/handlers += {
          quot;eventsquot; : my_event,
          quot;handlerquot; : test.php
      }
   Request Processing events
    • requestBegin, secure, GET, PUT, POST, DELETE, log, requestEnd
   Application specific events
    • Fired by your application



     © 2008 IBM Corporation
                                                2008 JavaOneSM Conference | java.sun.com/javaone | 17
Global Context
  Event handlers are stateless
   • interesting applications contain state
  GC provides access/management of application state
   • It is NOT persistent. Persistent data goes into the database
  Conceptually a map of data
  Divided into a set of zones with different data lifecycles
  Understands and provides intelligent access to certain
  data types
  Externalizes state from the application logic
   • Enables clustering and scaling to be added transparently



     © 2008 IBM Corporation
                                            2008 JavaOneSM Conference | java.sun.com/javaone | 18
Global Content Zones
  Divided into zones representing different data lifecycles
     Zone                        Scope/Visibility                            Lifecycle
  Config                  All requests all users.                Loaded from config
                                                                 files.
  Application             All requests for all users of the      Life of the application,
                          application                            but not “persistent”

  User                    All request for a particular user      For first access until
                          (HTTP Session equivalent)              user times out

  Request                 All handlers along the path of a       For the duration of a
                          single request                         single request
  Event                   All handlers for a single event        The duration of a single
                                                                 event


     © 2008 IBM Corporation
                                                              2008 JavaOneSM Conference | java.sun.com/javaone | 19
Versioning Dependencies
  Modules are the building blocks of an application
  A module is simply a collection of files packaged
  together
    • Includes a module name, version and author details
  An application declares the modules it depends on


  Versioning ensures applications don’t break!
   • Specific versions can be set (v1.1.34)
   • Versions upwards from a particular release (v1.0+)
   • Ranges of acceptable versions (v1.0 – v1.5)
  Remote catalog servers at PZ.net and maven2
   © 2008 IBM Corporation
                                          2008 JavaOneSM Conference | java.sun.com/javaone | 20
Deploying Applications
 The Application is the server
        Java VM

             Web server

          Application Code

        Language runtimes

Hundreds of applications per box
Applications started on demand
 • inetd style
Applications isolation
Quality of service and management built in
    © 2008 IBM Corporation
                                      2008 JavaOneSM Conference | java.sun.com/javaone | 21
Built in development tooling
Browser-Based Development IDE
  Built as a sMash application

  Provides full development lifecycle for
  Zero applications
    • Create, Edit, Test

  Provides Visual Editors for Activities and
  Web Page construction
    • Including a DOJO-enabled page editor

  Basic Eclipse-based tooling also available if
  required




        © 2008 IBM Corporation
                                                  2008 JavaOneSM Conference | java.sun.com/javaone | 22
Activities
Let Developers Visually “Mash-up” Services and Feeds

  Compose applications by “wiring” together
  REST services

  Visually or programmatically combine
  existing feeds and services that enrich,
  sort, and filter data in a pipeline

  Configure templates to alter pipeline routes,
  log events along the pipeline

  Numerous built-in activities, including
   • Get Feed, Call Service, Aggregate, Sort, Transform,
      Filter, Send Mail, XSLT, Conditionals, Loops




       © 2008 IBM Corporation
                                                           2008 JavaOneSM Conference | java.sun.com/javaone | 23
Installing WebSphere sMash
             Eclipse                                           CLI / Browser IDE

                                       Get JavaTM 1.5(+) JDK




    Get PHP Development Tools (PDT)
                                                               Download installer (<800K)
        All-in-one eclipse package




Install Zero using the Eclipse update manager                  Libraries fetched as needed.




                    Links and walkthrough on www.projectzero.org


          © 2008 IBM Corporation
                                                               2008 JavaOneSM Conference | java.sun.com/javaone | 24
Agenda

 Whys and Whats of PHP on the Java Virtual Machine
 software

 How we mix PHP, Java platform and Groovy

 Demonstration of PHP and Java Platform Interaction.

 ProjectZero Community




    © 2008 IBM Corporation
                                    2008 JavaOneSM Conference | java.sun.com/javaone | 25
Demo: Integration with SugarCRM
Scenario:

  Scheduling meetings requires
  co-ordination across the
  business

Solution:

  WebSphere sMash workflow
  triggered from SugarCRM
  PHP-Java Platform
  Interoperability
   • The best of both worlds


      © 2008 IBM Corporation
                                 2008 JavaOneSM Conference | java.sun.com/javaone | 26
Demo – Integration with SugarCRM




                       2008 JavaOneSM Conference | java.sun.com/javaone | 27
Agenda

 Whys and Whats of PHP on the Java Virtual Machine
 software

 How we mix PHP, Java platform and Groovy

 Demonstration of PHP and Java Platform Interaction

 ProjectZero Community




    © 2008 IBM Corporation
                                    2008 JavaOneSM Conference | java.sun.com/javaone | 28
Community Driven Commercial
 Development
Evolve the core platform based on developer feedback
Commercial development using a transparent development process

Enabled via an external web site providing:
                                                          http://www.projectzero.org
  A focal point for all sMash development activities
      Expose the IBM® development process to the
      external developer community
      All design decisions are discussed and
      communicated via external forums
      Registered users can post comments and feedback
      to the forums

  Frictionless download of latest code and
  documentation
      Registration not required for binary downloads
      Latest builds immediately available to developers
      Source code can be viewed by registered users


         © 2008 IBM Corporation
                                                            2008 JavaOneSM Conference | java.sun.com/javaone | 29
Site Contents
 Content
  •   Documentation
  •   Project information
  •   Roadmaps
  •   Design documents
  •   Demos and Samples
  •   iCal calendar
  •   Future plans
 Forum for interactive discussion
  •   Help and Feedback for questions from users
  •   Developer Alerts to notify users of new features and breaking changes
  •   Zero Development for publicly accessible discussion amongst the Zero development team
  •   3554 Posts on 828 Topics to date
 Blogs
  •   Development blog with interesting commentary, demos, and opinion
  •   News blog for project announcements
 Binary Downloads (257,738 and counting…)
 Bug Tracking System (Bugzilla)
 Source code (Subversion)
      © 2008 IBM Corporation                                                                      3
                                                             2008 JavaOneSM Conference | java.sun.com/javaone | 30
Features of sMash we have not covered
today
 File Serving

 Error Handling

 View Rendering

 Logging, Tracing, Debugging

 Client Programming with the Dojo Ajax Framework

 Security

 Nested resources


    © 2008 IBM Corporation
                                          2008 JavaOneSM Conference | java.sun.com/javaone | 31
Summary

 Project Zero is incubating technologies to build web
 applications in WebSphere sMash
  • Simply!

 WebSphere sMash contains a PHP runtime which runs on
 a JVM software

 WebSphere sMash enables same process interoperability
 between PHP, Java platform and Groovy




    © 2008 IBM Corporation
                                       2008 JavaOneSM Conference | java.sun.com/javaone | 32
Questions?




  © 2008 IBM Corporation
                           2008 JavaOneSM Conference | java.sun.com/javaone | 33
Rob Nicholson




                2008 JavaOneSM Conference | java.sun.com/javaone | 34

More Related Content

What's hot

Building Content Applications with JCR and OSGi
Building Content Applications with JCR and OSGiBuilding Content Applications with JCR and OSGi
Building Content Applications with JCR and OSGiCédric Hüsler
 
New Features of Java7 SE
New Features of Java7 SENew Features of Java7 SE
New Features of Java7 SEdogangoko
 
Ruby'izing iOS development
Ruby'izing iOS developmentRuby'izing iOS development
Ruby'izing iOS developmenttoamitkumar
 
Wc Mand Connectors2
Wc Mand Connectors2Wc Mand Connectors2
Wc Mand Connectors2day
 
Extending Titanium with native iOS and Android modules
Extending Titanium with native iOS and Android modules Extending Titanium with native iOS and Android modules
Extending Titanium with native iOS and Android modules omorandi
 
Flex For Java Architects Ledroff Breizh Jug V Blog Cc
Flex For Java Architects Ledroff Breizh Jug V Blog CcFlex For Java Architects Ledroff Breizh Jug V Blog Cc
Flex For Java Architects Ledroff Breizh Jug V Blog CcFrançois Le Droff
 
전문가토크릴레이 1탄 html5 전망 (전종홍 박사)
전문가토크릴레이 1탄 html5 전망 (전종홍 박사)전문가토크릴레이 1탄 html5 전망 (전종홍 박사)
전문가토크릴레이 1탄 html5 전망 (전종홍 박사)Saltlux zinyus
 
Serverless Java: JJUG CCC 2019
Serverless Java: JJUG CCC 2019Serverless Java: JJUG CCC 2019
Serverless Java: JJUG CCC 2019Shaun Smith
 
Device APIs at TakeOff Conference
Device APIs at TakeOff ConferenceDevice APIs at TakeOff Conference
Device APIs at TakeOff Conferencedianacheng
 
Enterprise OSGi at eBay
Enterprise OSGi at eBayEnterprise OSGi at eBay
Enterprise OSGi at eBayTony Ng
 
Titanium Mobile: flexibility vs. performance
Titanium Mobile: flexibility vs. performanceTitanium Mobile: flexibility vs. performance
Titanium Mobile: flexibility vs. performanceomorandi
 
Flash Iphone Fitc 2010
Flash Iphone Fitc 2010Flash Iphone Fitc 2010
Flash Iphone Fitc 2010Yagiz Gurgul
 
Apache Big Data Europe 2016
Apache Big Data Europe 2016Apache Big Data Europe 2016
Apache Big Data Europe 2016Tim Ellison
 
Java training in bangalore
Java training in bangaloreJava training in bangalore
Java training in bangalorezasi besant
 
GlassFish Tool Bundle for Eclipse
GlassFish Tool Bundle for EclipseGlassFish Tool Bundle for Eclipse
GlassFish Tool Bundle for EclipseLudovic Champenois
 
Merb For The Enterprise
Merb For The EnterpriseMerb For The Enterprise
Merb For The EnterpriseMatt Aimonetti
 
From java-to-ruby-book-summary
From java-to-ruby-book-summaryFrom java-to-ruby-book-summary
From java-to-ruby-book-summary120bi
 
Sa grid application inventory 36
Sa grid application inventory 36Sa grid application inventory 36
Sa grid application inventory 36Bruce Becker
 
LUGOD Raspberry Pi Hacking
LUGOD Raspberry Pi HackingLUGOD Raspberry Pi Hacking
LUGOD Raspberry Pi HackingStephen Chin
 

What's hot (19)

Building Content Applications with JCR and OSGi
Building Content Applications with JCR and OSGiBuilding Content Applications with JCR and OSGi
Building Content Applications with JCR and OSGi
 
New Features of Java7 SE
New Features of Java7 SENew Features of Java7 SE
New Features of Java7 SE
 
Ruby'izing iOS development
Ruby'izing iOS developmentRuby'izing iOS development
Ruby'izing iOS development
 
Wc Mand Connectors2
Wc Mand Connectors2Wc Mand Connectors2
Wc Mand Connectors2
 
Extending Titanium with native iOS and Android modules
Extending Titanium with native iOS and Android modules Extending Titanium with native iOS and Android modules
Extending Titanium with native iOS and Android modules
 
Flex For Java Architects Ledroff Breizh Jug V Blog Cc
Flex For Java Architects Ledroff Breizh Jug V Blog CcFlex For Java Architects Ledroff Breizh Jug V Blog Cc
Flex For Java Architects Ledroff Breizh Jug V Blog Cc
 
전문가토크릴레이 1탄 html5 전망 (전종홍 박사)
전문가토크릴레이 1탄 html5 전망 (전종홍 박사)전문가토크릴레이 1탄 html5 전망 (전종홍 박사)
전문가토크릴레이 1탄 html5 전망 (전종홍 박사)
 
Serverless Java: JJUG CCC 2019
Serverless Java: JJUG CCC 2019Serverless Java: JJUG CCC 2019
Serverless Java: JJUG CCC 2019
 
Device APIs at TakeOff Conference
Device APIs at TakeOff ConferenceDevice APIs at TakeOff Conference
Device APIs at TakeOff Conference
 
Enterprise OSGi at eBay
Enterprise OSGi at eBayEnterprise OSGi at eBay
Enterprise OSGi at eBay
 
Titanium Mobile: flexibility vs. performance
Titanium Mobile: flexibility vs. performanceTitanium Mobile: flexibility vs. performance
Titanium Mobile: flexibility vs. performance
 
Flash Iphone Fitc 2010
Flash Iphone Fitc 2010Flash Iphone Fitc 2010
Flash Iphone Fitc 2010
 
Apache Big Data Europe 2016
Apache Big Data Europe 2016Apache Big Data Europe 2016
Apache Big Data Europe 2016
 
Java training in bangalore
Java training in bangaloreJava training in bangalore
Java training in bangalore
 
GlassFish Tool Bundle for Eclipse
GlassFish Tool Bundle for EclipseGlassFish Tool Bundle for Eclipse
GlassFish Tool Bundle for Eclipse
 
Merb For The Enterprise
Merb For The EnterpriseMerb For The Enterprise
Merb For The Enterprise
 
From java-to-ruby-book-summary
From java-to-ruby-book-summaryFrom java-to-ruby-book-summary
From java-to-ruby-book-summary
 
Sa grid application inventory 36
Sa grid application inventory 36Sa grid application inventory 36
Sa grid application inventory 36
 
LUGOD Raspberry Pi Hacking
LUGOD Raspberry Pi HackingLUGOD Raspberry Pi Hacking
LUGOD Raspberry Pi Hacking
 

Similar to Project Zero JavaOne 2008

Php On Java (London Java Community Unconference)
Php On Java (London Java Community Unconference)Php On Java (London Java Community Unconference)
Php On Java (London Java Community Unconference)Robin Fernandes
 
PHP on Java (BarCamp London 7)
PHP on Java (BarCamp London 7)PHP on Java (BarCamp London 7)
PHP on Java (BarCamp London 7)Robin Fernandes
 
An Introduction to Websphere sMash for PHP Programmers
An Introduction to Websphere sMash for PHP ProgrammersAn Introduction to Websphere sMash for PHP Programmers
An Introduction to Websphere sMash for PHP Programmersjphl
 
Project Zero For Javapolis 2007
Project Zero For Javapolis 2007Project Zero For Javapolis 2007
Project Zero For Javapolis 2007Jason McGee
 
New Ways To Engage With Tiempo 2011
New Ways To Engage With Tiempo 2011New Ways To Engage With Tiempo 2011
New Ways To Engage With Tiempo 2011Tiempo Development
 
Mixing Java and PHP with Sugar and WebSphere
Mixing Java and PHP with Sugar and WebSphereMixing Java and PHP with Sugar and WebSphere
Mixing Java and PHP with Sugar and WebSpherejdlea
 
WebBee rapid web app development teck stack
WebBee rapid web app development teck stackWebBee rapid web app development teck stack
WebBee rapid web app development teck stackALDAN3
 
java web framework standard.20180412
java web framework standard.20180412java web framework standard.20180412
java web framework standard.20180412FirmansyahIrma1
 
The DevOps PaaS Infusion - May meetup
The DevOps PaaS Infusion - May meetupThe DevOps PaaS Infusion - May meetup
The DevOps PaaS Infusion - May meetupNorm Leitman
 
(ATS3-GS02) Accelrys Enterprise Platform in Enterprise Architectures
(ATS3-GS02) Accelrys Enterprise Platform in Enterprise Architectures(ATS3-GS02) Accelrys Enterprise Platform in Enterprise Architectures
(ATS3-GS02) Accelrys Enterprise Platform in Enterprise ArchitecturesBIOVIA
 
Kann JavaScript elegant sein?
Kann JavaScript elegant sein?Kann JavaScript elegant sein?
Kann JavaScript elegant sein?jbandi
 
What Your Jvm Has Been Trying To Tell You
What Your Jvm Has Been Trying To Tell YouWhat Your Jvm Has Been Trying To Tell You
What Your Jvm Has Been Trying To Tell YouJohn Pape
 
Memcached, presented to LCA2010
Memcached, presented to LCA2010Memcached, presented to LCA2010
Memcached, presented to LCA2010Mark Atwood
 
In Pursuit of the Holy Grail: Building Isomorphic JavaScript Apps
In Pursuit of the Holy Grail: Building Isomorphic JavaScript AppsIn Pursuit of the Holy Grail: Building Isomorphic JavaScript Apps
In Pursuit of the Holy Grail: Building Isomorphic JavaScript AppsSpike Brehm
 
What's new in Nuxeo 5.2? - Solutions Linux 2009
What's new in Nuxeo 5.2? - Solutions Linux 2009What's new in Nuxeo 5.2? - Solutions Linux 2009
What's new in Nuxeo 5.2? - Solutions Linux 2009Stefane Fermigier
 
Java keynote preso
Java keynote presoJava keynote preso
Java keynote presoArtur Alves
 
Optaros Surf Code Camp Introduction
Optaros Surf Code Camp IntroductionOptaros Surf Code Camp Introduction
Optaros Surf Code Camp IntroductionJeff Potts
 
Web App Framework at SwapSkills vol28 EN
Web App Framework at SwapSkills vol28 ENWeb App Framework at SwapSkills vol28 EN
Web App Framework at SwapSkills vol28 EN光一 原田
 
GigaSpaces Cloudify - The PaaS Jailbreaker
GigaSpaces Cloudify - The PaaS Jailbreaker GigaSpaces Cloudify - The PaaS Jailbreaker
GigaSpaces Cloudify - The PaaS Jailbreaker Uri Cohen
 
Developing Voice Applications in the Cloud
Developing Voice Applications in the CloudDeveloping Voice Applications in the Cloud
Developing Voice Applications in the CloudVoxeo Corp
 

Similar to Project Zero JavaOne 2008 (20)

Php On Java (London Java Community Unconference)
Php On Java (London Java Community Unconference)Php On Java (London Java Community Unconference)
Php On Java (London Java Community Unconference)
 
PHP on Java (BarCamp London 7)
PHP on Java (BarCamp London 7)PHP on Java (BarCamp London 7)
PHP on Java (BarCamp London 7)
 
An Introduction to Websphere sMash for PHP Programmers
An Introduction to Websphere sMash for PHP ProgrammersAn Introduction to Websphere sMash for PHP Programmers
An Introduction to Websphere sMash for PHP Programmers
 
Project Zero For Javapolis 2007
Project Zero For Javapolis 2007Project Zero For Javapolis 2007
Project Zero For Javapolis 2007
 
New Ways To Engage With Tiempo 2011
New Ways To Engage With Tiempo 2011New Ways To Engage With Tiempo 2011
New Ways To Engage With Tiempo 2011
 
Mixing Java and PHP with Sugar and WebSphere
Mixing Java and PHP with Sugar and WebSphereMixing Java and PHP with Sugar and WebSphere
Mixing Java and PHP with Sugar and WebSphere
 
WebBee rapid web app development teck stack
WebBee rapid web app development teck stackWebBee rapid web app development teck stack
WebBee rapid web app development teck stack
 
java web framework standard.20180412
java web framework standard.20180412java web framework standard.20180412
java web framework standard.20180412
 
The DevOps PaaS Infusion - May meetup
The DevOps PaaS Infusion - May meetupThe DevOps PaaS Infusion - May meetup
The DevOps PaaS Infusion - May meetup
 
(ATS3-GS02) Accelrys Enterprise Platform in Enterprise Architectures
(ATS3-GS02) Accelrys Enterprise Platform in Enterprise Architectures(ATS3-GS02) Accelrys Enterprise Platform in Enterprise Architectures
(ATS3-GS02) Accelrys Enterprise Platform in Enterprise Architectures
 
Kann JavaScript elegant sein?
Kann JavaScript elegant sein?Kann JavaScript elegant sein?
Kann JavaScript elegant sein?
 
What Your Jvm Has Been Trying To Tell You
What Your Jvm Has Been Trying To Tell YouWhat Your Jvm Has Been Trying To Tell You
What Your Jvm Has Been Trying To Tell You
 
Memcached, presented to LCA2010
Memcached, presented to LCA2010Memcached, presented to LCA2010
Memcached, presented to LCA2010
 
In Pursuit of the Holy Grail: Building Isomorphic JavaScript Apps
In Pursuit of the Holy Grail: Building Isomorphic JavaScript AppsIn Pursuit of the Holy Grail: Building Isomorphic JavaScript Apps
In Pursuit of the Holy Grail: Building Isomorphic JavaScript Apps
 
What's new in Nuxeo 5.2? - Solutions Linux 2009
What's new in Nuxeo 5.2? - Solutions Linux 2009What's new in Nuxeo 5.2? - Solutions Linux 2009
What's new in Nuxeo 5.2? - Solutions Linux 2009
 
Java keynote preso
Java keynote presoJava keynote preso
Java keynote preso
 
Optaros Surf Code Camp Introduction
Optaros Surf Code Camp IntroductionOptaros Surf Code Camp Introduction
Optaros Surf Code Camp Introduction
 
Web App Framework at SwapSkills vol28 EN
Web App Framework at SwapSkills vol28 ENWeb App Framework at SwapSkills vol28 EN
Web App Framework at SwapSkills vol28 EN
 
GigaSpaces Cloudify - The PaaS Jailbreaker
GigaSpaces Cloudify - The PaaS Jailbreaker GigaSpaces Cloudify - The PaaS Jailbreaker
GigaSpaces Cloudify - The PaaS Jailbreaker
 
Developing Voice Applications in the Cloud
Developing Voice Applications in the CloudDeveloping Voice Applications in the Cloud
Developing Voice Applications in the Cloud
 

More from Robert Nicholson

IBM Cloud Integration Platform Introduction - Integration Tech Conference
IBM Cloud Integration Platform Introduction - Integration Tech ConferenceIBM Cloud Integration Platform Introduction - Integration Tech Conference
IBM Cloud Integration Platform Introduction - Integration Tech ConferenceRobert Nicholson
 
IBM Cloud Integration Platform High Availability - Integration Tech Conference
IBM Cloud Integration Platform High Availability - Integration Tech ConferenceIBM Cloud Integration Platform High Availability - Integration Tech Conference
IBM Cloud Integration Platform High Availability - Integration Tech ConferenceRobert Nicholson
 
IBM Hybrid Integration Platform
IBM Hybrid Integration PlatformIBM Hybrid Integration Platform
IBM Hybrid Integration PlatformRobert Nicholson
 
IBM Interconnect 2016 - Hybrid Cloud Messaging
IBM Interconnect 2016 - Hybrid Cloud MessagingIBM Interconnect 2016 - Hybrid Cloud Messaging
IBM Interconnect 2016 - Hybrid Cloud MessagingRobert Nicholson
 
Platform as a Service - CloudFoundry and IBM Bluemix - Developer South Coast
Platform as a Service - CloudFoundry and IBM Bluemix - Developer South CoastPlatform as a Service - CloudFoundry and IBM Bluemix - Developer South Coast
Platform as a Service - CloudFoundry and IBM Bluemix - Developer South CoastRobert Nicholson
 
Introducing MQ Light - IBM Interconnect 2015 session AME4181
Introducing MQ Light - IBM Interconnect 2015 session AME4181Introducing MQ Light - IBM Interconnect 2015 session AME4181
Introducing MQ Light - IBM Interconnect 2015 session AME4181Robert Nicholson
 
MQ Light in IBM MQ: IBM Interconnect 2015 session AME4182
MQ Light in IBM MQ:  IBM Interconnect 2015 session AME4182MQ Light in IBM MQ:  IBM Interconnect 2015 session AME4182
MQ Light in IBM MQ: IBM Interconnect 2015 session AME4182Robert Nicholson
 
MQ Light for Bluemix - IBM Interconnect 2015 session AME4183
MQ Light for Bluemix - IBM Interconnect 2015 session AME4183MQ Light for Bluemix - IBM Interconnect 2015 session AME4183
MQ Light for Bluemix - IBM Interconnect 2015 session AME4183Robert Nicholson
 
Mq light For Guide Share Europe 2014
Mq light For Guide Share Europe 2014Mq light For Guide Share Europe 2014
Mq light For Guide Share Europe 2014Robert Nicholson
 
Messaging in the Cloud with IBM MQ Light and IBM Bluemix
Messaging in the Cloud with IBM MQ Light and IBM BluemixMessaging in the Cloud with IBM MQ Light and IBM Bluemix
Messaging in the Cloud with IBM MQ Light and IBM BluemixRobert Nicholson
 
Session 1897 messaging in the cloud with elastic mq mq light and bluemix-impa...
Session 1897 messaging in the cloud with elastic mq mq light and bluemix-impa...Session 1897 messaging in the cloud with elastic mq mq light and bluemix-impa...
Session 1897 messaging in the cloud with elastic mq mq light and bluemix-impa...Robert Nicholson
 
IBM IMPACT 2009 Session 3100 - Dynamic Scripting and Rich Web 2.0 Interfaces ...
IBM IMPACT 2009 Session 3100 - Dynamic Scripting and Rich Web 2.0 Interfaces ...IBM IMPACT 2009 Session 3100 - Dynamic Scripting and Rich Web 2.0 Interfaces ...
IBM IMPACT 2009 Session 3100 - Dynamic Scripting and Rich Web 2.0 Interfaces ...Robert Nicholson
 

More from Robert Nicholson (13)

IBM Cloud Integration Platform Introduction - Integration Tech Conference
IBM Cloud Integration Platform Introduction - Integration Tech ConferenceIBM Cloud Integration Platform Introduction - Integration Tech Conference
IBM Cloud Integration Platform Introduction - Integration Tech Conference
 
IBM Cloud Integration Platform High Availability - Integration Tech Conference
IBM Cloud Integration Platform High Availability - Integration Tech ConferenceIBM Cloud Integration Platform High Availability - Integration Tech Conference
IBM Cloud Integration Platform High Availability - Integration Tech Conference
 
IBM Hybrid Integration Platform
IBM Hybrid Integration PlatformIBM Hybrid Integration Platform
IBM Hybrid Integration Platform
 
IBM Interconnect 2016 - Hybrid Cloud Messaging
IBM Interconnect 2016 - Hybrid Cloud MessagingIBM Interconnect 2016 - Hybrid Cloud Messaging
IBM Interconnect 2016 - Hybrid Cloud Messaging
 
Platform as a Service - CloudFoundry and IBM Bluemix - Developer South Coast
Platform as a Service - CloudFoundry and IBM Bluemix - Developer South CoastPlatform as a Service - CloudFoundry and IBM Bluemix - Developer South Coast
Platform as a Service - CloudFoundry and IBM Bluemix - Developer South Coast
 
Introducing MQ Light - IBM Interconnect 2015 session AME4181
Introducing MQ Light - IBM Interconnect 2015 session AME4181Introducing MQ Light - IBM Interconnect 2015 session AME4181
Introducing MQ Light - IBM Interconnect 2015 session AME4181
 
MQ Light in IBM MQ: IBM Interconnect 2015 session AME4182
MQ Light in IBM MQ:  IBM Interconnect 2015 session AME4182MQ Light in IBM MQ:  IBM Interconnect 2015 session AME4182
MQ Light in IBM MQ: IBM Interconnect 2015 session AME4182
 
MQ Light for Bluemix - IBM Interconnect 2015 session AME4183
MQ Light for Bluemix - IBM Interconnect 2015 session AME4183MQ Light for Bluemix - IBM Interconnect 2015 session AME4183
MQ Light for Bluemix - IBM Interconnect 2015 session AME4183
 
Mq light For Guide Share Europe 2014
Mq light For Guide Share Europe 2014Mq light For Guide Share Europe 2014
Mq light For Guide Share Europe 2014
 
MQ Light for WTU
 MQ Light for WTU MQ Light for WTU
MQ Light for WTU
 
Messaging in the Cloud with IBM MQ Light and IBM Bluemix
Messaging in the Cloud with IBM MQ Light and IBM BluemixMessaging in the Cloud with IBM MQ Light and IBM Bluemix
Messaging in the Cloud with IBM MQ Light and IBM Bluemix
 
Session 1897 messaging in the cloud with elastic mq mq light and bluemix-impa...
Session 1897 messaging in the cloud with elastic mq mq light and bluemix-impa...Session 1897 messaging in the cloud with elastic mq mq light and bluemix-impa...
Session 1897 messaging in the cloud with elastic mq mq light and bluemix-impa...
 
IBM IMPACT 2009 Session 3100 - Dynamic Scripting and Rich Web 2.0 Interfaces ...
IBM IMPACT 2009 Session 3100 - Dynamic Scripting and Rich Web 2.0 Interfaces ...IBM IMPACT 2009 Session 3100 - Dynamic Scripting and Rich Web 2.0 Interfaces ...
IBM IMPACT 2009 Session 3100 - Dynamic Scripting and Rich Web 2.0 Interfaces ...
 

Recently uploaded

Yaroslav Rozhankivskyy: Три складові і три передумови максимальної продуктивн...
Yaroslav Rozhankivskyy: Три складові і три передумови максимальної продуктивн...Yaroslav Rozhankivskyy: Три складові і три передумови максимальної продуктивн...
Yaroslav Rozhankivskyy: Три складові і три передумови максимальної продуктивн...Lviv Startup Club
 
BEST ✨ Call Girls In Indirapuram Ghaziabad ✔️ 9871031762 ✔️ Escorts Service...
BEST ✨ Call Girls In  Indirapuram Ghaziabad  ✔️ 9871031762 ✔️ Escorts Service...BEST ✨ Call Girls In  Indirapuram Ghaziabad  ✔️ 9871031762 ✔️ Escorts Service...
BEST ✨ Call Girls In Indirapuram Ghaziabad ✔️ 9871031762 ✔️ Escorts Service...noida100girls
 
Understanding the Pakistan Budgeting Process: Basics and Key Insights
Understanding the Pakistan Budgeting Process: Basics and Key InsightsUnderstanding the Pakistan Budgeting Process: Basics and Key Insights
Understanding the Pakistan Budgeting Process: Basics and Key Insightsseribangash
 
7.pdf This presentation captures many uses and the significance of the number...
7.pdf This presentation captures many uses and the significance of the number...7.pdf This presentation captures many uses and the significance of the number...
7.pdf This presentation captures many uses and the significance of the number...Paul Menig
 
Tech Startup Growth Hacking 101 - Basics on Growth Marketing
Tech Startup Growth Hacking 101  - Basics on Growth MarketingTech Startup Growth Hacking 101  - Basics on Growth Marketing
Tech Startup Growth Hacking 101 - Basics on Growth MarketingShawn Pang
 
Enhancing and Restoring Safety & Quality Cultures - Dave Litwiller - May 2024...
Enhancing and Restoring Safety & Quality Cultures - Dave Litwiller - May 2024...Enhancing and Restoring Safety & Quality Cultures - Dave Litwiller - May 2024...
Enhancing and Restoring Safety & Quality Cultures - Dave Litwiller - May 2024...Dave Litwiller
 
Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...
Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...
Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...anilsa9823
 
VIP Call Girl Jamshedpur Aashi 8250192130 Independent Escort Service Jamshedpur
VIP Call Girl Jamshedpur Aashi 8250192130 Independent Escort Service JamshedpurVIP Call Girl Jamshedpur Aashi 8250192130 Independent Escort Service Jamshedpur
VIP Call Girl Jamshedpur Aashi 8250192130 Independent Escort Service JamshedpurSuhani Kapoor
 
Call Girls in Gomti Nagar - 7388211116 - With room Service
Call Girls in Gomti Nagar - 7388211116  - With room ServiceCall Girls in Gomti Nagar - 7388211116  - With room Service
Call Girls in Gomti Nagar - 7388211116 - With room Servicediscovermytutordmt
 
Boost the utilization of your HCL environment by reevaluating use cases and f...
Boost the utilization of your HCL environment by reevaluating use cases and f...Boost the utilization of your HCL environment by reevaluating use cases and f...
Boost the utilization of your HCL environment by reevaluating use cases and f...Roland Driesen
 
Insurers' journeys to build a mastery in the IoT usage
Insurers' journeys to build a mastery in the IoT usageInsurers' journeys to build a mastery in the IoT usage
Insurers' journeys to build a mastery in the IoT usageMatteo Carbone
 
VIP Call Girls In Saharaganj ( Lucknow ) 🔝 8923113531 🔝 Cash Payment (COD) 👒
VIP Call Girls In Saharaganj ( Lucknow  ) 🔝 8923113531 🔝  Cash Payment (COD) 👒VIP Call Girls In Saharaganj ( Lucknow  ) 🔝 8923113531 🔝  Cash Payment (COD) 👒
VIP Call Girls In Saharaganj ( Lucknow ) 🔝 8923113531 🔝 Cash Payment (COD) 👒anilsa9823
 
KYC-Verified Accounts: Helping Companies Handle Challenging Regulatory Enviro...
KYC-Verified Accounts: Helping Companies Handle Challenging Regulatory Enviro...KYC-Verified Accounts: Helping Companies Handle Challenging Regulatory Enviro...
KYC-Verified Accounts: Helping Companies Handle Challenging Regulatory Enviro...Any kyc Account
 
M.C Lodges -- Guest House in Jhang.
M.C Lodges --  Guest House in Jhang.M.C Lodges --  Guest House in Jhang.
M.C Lodges -- Guest House in Jhang.Aaiza Hassan
 
Progress Report - Oracle Database Analyst Summit
Progress  Report - Oracle Database Analyst SummitProgress  Report - Oracle Database Analyst Summit
Progress Report - Oracle Database Analyst SummitHolger Mueller
 
Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...
Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...
Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...Dipal Arora
 
Keppel Ltd. 1Q 2024 Business Update Presentation Slides
Keppel Ltd. 1Q 2024 Business Update  Presentation SlidesKeppel Ltd. 1Q 2024 Business Update  Presentation Slides
Keppel Ltd. 1Q 2024 Business Update Presentation SlidesKeppelCorporation
 
MONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRL
MONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRLMONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRL
MONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRLSeo
 
Sales & Marketing Alignment: How to Synergize for Success
Sales & Marketing Alignment: How to Synergize for SuccessSales & Marketing Alignment: How to Synergize for Success
Sales & Marketing Alignment: How to Synergize for SuccessAggregage
 

Recently uploaded (20)

Yaroslav Rozhankivskyy: Три складові і три передумови максимальної продуктивн...
Yaroslav Rozhankivskyy: Три складові і три передумови максимальної продуктивн...Yaroslav Rozhankivskyy: Три складові і три передумови максимальної продуктивн...
Yaroslav Rozhankivskyy: Три складові і три передумови максимальної продуктивн...
 
Nepali Escort Girl Kakori \ 9548273370 Indian Call Girls Service Lucknow ₹,9517
Nepali Escort Girl Kakori \ 9548273370 Indian Call Girls Service Lucknow ₹,9517Nepali Escort Girl Kakori \ 9548273370 Indian Call Girls Service Lucknow ₹,9517
Nepali Escort Girl Kakori \ 9548273370 Indian Call Girls Service Lucknow ₹,9517
 
BEST ✨ Call Girls In Indirapuram Ghaziabad ✔️ 9871031762 ✔️ Escorts Service...
BEST ✨ Call Girls In  Indirapuram Ghaziabad  ✔️ 9871031762 ✔️ Escorts Service...BEST ✨ Call Girls In  Indirapuram Ghaziabad  ✔️ 9871031762 ✔️ Escorts Service...
BEST ✨ Call Girls In Indirapuram Ghaziabad ✔️ 9871031762 ✔️ Escorts Service...
 
Understanding the Pakistan Budgeting Process: Basics and Key Insights
Understanding the Pakistan Budgeting Process: Basics and Key InsightsUnderstanding the Pakistan Budgeting Process: Basics and Key Insights
Understanding the Pakistan Budgeting Process: Basics and Key Insights
 
7.pdf This presentation captures many uses and the significance of the number...
7.pdf This presentation captures many uses and the significance of the number...7.pdf This presentation captures many uses and the significance of the number...
7.pdf This presentation captures many uses and the significance of the number...
 
Tech Startup Growth Hacking 101 - Basics on Growth Marketing
Tech Startup Growth Hacking 101  - Basics on Growth MarketingTech Startup Growth Hacking 101  - Basics on Growth Marketing
Tech Startup Growth Hacking 101 - Basics on Growth Marketing
 
Enhancing and Restoring Safety & Quality Cultures - Dave Litwiller - May 2024...
Enhancing and Restoring Safety & Quality Cultures - Dave Litwiller - May 2024...Enhancing and Restoring Safety & Quality Cultures - Dave Litwiller - May 2024...
Enhancing and Restoring Safety & Quality Cultures - Dave Litwiller - May 2024...
 
Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...
Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...
Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...
 
VIP Call Girl Jamshedpur Aashi 8250192130 Independent Escort Service Jamshedpur
VIP Call Girl Jamshedpur Aashi 8250192130 Independent Escort Service JamshedpurVIP Call Girl Jamshedpur Aashi 8250192130 Independent Escort Service Jamshedpur
VIP Call Girl Jamshedpur Aashi 8250192130 Independent Escort Service Jamshedpur
 
Call Girls in Gomti Nagar - 7388211116 - With room Service
Call Girls in Gomti Nagar - 7388211116  - With room ServiceCall Girls in Gomti Nagar - 7388211116  - With room Service
Call Girls in Gomti Nagar - 7388211116 - With room Service
 
Boost the utilization of your HCL environment by reevaluating use cases and f...
Boost the utilization of your HCL environment by reevaluating use cases and f...Boost the utilization of your HCL environment by reevaluating use cases and f...
Boost the utilization of your HCL environment by reevaluating use cases and f...
 
Insurers' journeys to build a mastery in the IoT usage
Insurers' journeys to build a mastery in the IoT usageInsurers' journeys to build a mastery in the IoT usage
Insurers' journeys to build a mastery in the IoT usage
 
VIP Call Girls In Saharaganj ( Lucknow ) 🔝 8923113531 🔝 Cash Payment (COD) 👒
VIP Call Girls In Saharaganj ( Lucknow  ) 🔝 8923113531 🔝  Cash Payment (COD) 👒VIP Call Girls In Saharaganj ( Lucknow  ) 🔝 8923113531 🔝  Cash Payment (COD) 👒
VIP Call Girls In Saharaganj ( Lucknow ) 🔝 8923113531 🔝 Cash Payment (COD) 👒
 
KYC-Verified Accounts: Helping Companies Handle Challenging Regulatory Enviro...
KYC-Verified Accounts: Helping Companies Handle Challenging Regulatory Enviro...KYC-Verified Accounts: Helping Companies Handle Challenging Regulatory Enviro...
KYC-Verified Accounts: Helping Companies Handle Challenging Regulatory Enviro...
 
M.C Lodges -- Guest House in Jhang.
M.C Lodges --  Guest House in Jhang.M.C Lodges --  Guest House in Jhang.
M.C Lodges -- Guest House in Jhang.
 
Progress Report - Oracle Database Analyst Summit
Progress  Report - Oracle Database Analyst SummitProgress  Report - Oracle Database Analyst Summit
Progress Report - Oracle Database Analyst Summit
 
Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...
Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...
Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...
 
Keppel Ltd. 1Q 2024 Business Update Presentation Slides
Keppel Ltd. 1Q 2024 Business Update  Presentation SlidesKeppel Ltd. 1Q 2024 Business Update  Presentation Slides
Keppel Ltd. 1Q 2024 Business Update Presentation Slides
 
MONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRL
MONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRLMONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRL
MONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRL
 
Sales & Marketing Alignment: How to Synergize for Success
Sales & Marketing Alignment: How to Synergize for SuccessSales & Marketing Alignment: How to Synergize for Success
Sales & Marketing Alignment: How to Synergize for Success
 

Project Zero JavaOne 2008

  • 1. The Duke and the Elephant: PHP meets JavaTM Technology. The best of both worlds. Rob Nicholson . IBM Senior Technical Staff Member
  • 2. Agenda Whys and Whats of PHP on the Java Virtual Machine (JVM™) software How we mix PHP, Java platform and Groovy Demonstration of PHP and Java Platform Interaction ProjectZero Community © 2008 IBM Corporation 2008 JavaOneSM Conference | java.sun.com/javaone | 2
  • 3. Agenda Whys and Whats of PHP on the Java Virtual Machine (JVM™) software How we mix PHP, Java platform and Groovy Demonstration of PHP and Java Platform Interaction ProjectZero Community © 2008 IBM Corporation 2008 JavaOneSM Conference | java.sun.com/javaone | 3
  • 4. Why PHP? PHP present on 20M+ web domains (34% of internet) • Validated by significant web properties PHP snippets and extensions exist to do almost anything Language has evolved in open source • Survival of the simplest and fastest Simple syntax and dynamic typing encourage situational applications Gartner (Dec 2007) TIOBE Programming Community Index (March 2008) • PHP Developers to grow from 3 to 5.5 million by 2013 • PHP Developers in Commercial or Corporate IT to grow from 13% to 60% by 2013 • “Pay special attention to opportunities to leverage PHP in combination with Java development efforts” © 2008 IBM Corporation 2008 JavaOneSM Conference | java.sun.com/javaone | 4
  • 5. Introducing WebSphere sMash WebSphere sMash is an Agile Web Application Platform • Architected around Dynamic Scripting, REST, Rich Web Interfaces, AJAX, and Feeds • Optimized for • Speed • Simplicity • Agility Key Scenarios • Enables developers to build web 2.0-style applications by easily pulling in, composing, and “cobbling together” pre-existing assets (PHP assets, services, feeds, code snippets) using dynamic scripting languages and simple consumption principles based on REST • Leverages existing SOA investments by enabling rapid development of dynamic web applications that are assembled from enterprise assets and publicly available APIs System language is Java platform Application languages are and • Contains a PHP 5 interpreter written in Java programming language © 2008 IBM Corporation 2008 JavaOneSM Conference | java.sun.com/javaone | 5
  • 6. Project Zero Incubating the Technology Project Zero is the development and incubation community for WebSphere sMash • Live on the Internet since June 2007 Project Zero represents • The people that build and use WebSphere sMash • The incubation of new technology that will deliver in future versions of WebSphere sMash • The community of 3rd party assets that leverage the WebSphere sMash platform All released versions are called WebSphere sMash © 2008 IBM Corporation 2008 JavaOneSM Conference | java.sun.com/javaone | 6
  • 7. The Duke and the Elephpant © Hideyuki Shimooka © 2008 IBM Corporation 2008 JavaOneSM Conference | java.sun.com/javaone | 7
  • 8. Top Level Architecture App components Runtime Dojo Events PHP HTTP server app Browser REST Global Context Runtime app Groovy Local repository Package JavaTM app Remote repository Manager Remote repository Zero Application Loose coupling: Java Virtual Machine • Event driven architecture • Global Context • Virtual Directories © 2008 IBM Corporation 2008 JavaOneSM Conference | java.sun.com/javaone | 8
  • 9. PHP Runtime Architecture CLI PZ Http PHP Scripts • Runtime for PHP 5 scripts SAPI-J • Implemented in Java code, runs on any Java platform 5.0+ VM PHP Engine • PHP language elements represented as Java code Variables Parser Cache objects Debug (DBGp) Stack IR P8 Runtime • Parse script to Intermediate Representation (IR) Resources • Cache and Interpret IR Interpreter Classes • Compile ->bytecode prototype Objects Runtime • Extensibility via XAPI • XAPI-C for C extensions from php.net XAPI-C XAPI-J • XAPI-J for new Java platform extensions, Java native libraries invoked over JNI™ API and C Extensions Native Project Zero interface Extensions code • Extension language choice opaque to PHP script PZ Extensions • Java Platform Bridge • Debug using via DBGp using Eclipse with PDT © 2008 IBM Corporation 2008 JavaOneSM Conference | java.sun.com/javaone | 9
  • 10. XAPI-J example Extend PHP using Java Platform @XAPIExtension(quot;BigDecimalquot;) public class BigDecimalExt extends ExtensionBaseImpl { @XAPIFunction(quot;add_bigdecimalquot;) public void add(RuntimeContext ctxt) { RuntimeServices rts = getRuntimeServices(); InvocationService inv = rts.getInvocationService(); Object[] args = inv.parseArguments(ctxt, quot;ssquot;, false); BigDecimal arg1 = new BigDecimal(( ( XAPIString) args[0]).getString()); BigDecimal arg2 = new BigDecimal(( ( XAPIString) args[1]).getString()); BigDecimal result = arg1.add(arg2); ctxt.setReturnValue(result.toString()); } © 2008 IBM Corporation 2008 JavaOneSM Conference | java.sun.com/javaone | 10
  • 11. Java Platform Bridge Easy access to Java Classes from PHP <?php $date = new Java(quot;java.util.Datequot;, 70, 9, 4); var_dump($date->toString()); $map = new Java(quot;java.util.HashMapquot;); $map->put(quot;titlequot;, quot;Java Bridge!quot;); $map->put(quot;whenquot;, $date); echo $map->get(quot;whenquot;)->toString().quot;nquot;; echo $map->get(quot;titlequot;).quot;nquot;; $array = array(1,2,3,4,5); $map->put(quot;stuffquot;, $array); // PHP array converted to Java Map var_dump($map->get(quot;stuffquot;)).quot;nquot;; ?> © 2008 IBM Corporation 2008 JavaOneSM Conference | java.sun.com/javaone | 11
  • 12. Agenda Whys and Whats of PHP on the Java Virtual Machine software How we mix PHP, Java platform and Groovy Demonstration of PHP and Java Platform Interaction ProjectZero Community © 2008 IBM Corporation 2008 JavaOneSM Conference | java.sun.com/javaone | 12
  • 13. Virtualized Directories Facilitate Application Composition Resources searched across application and dependencies. Apps behave as if directories merged. Applies to all script directories. • /public /app/resources, /app/scripts, /app/views etc. First-one-wins precedence. • Order based on dependency order in ivy files. • Default files searched within each directory first: • {my application}/index.php • {my application}/index.html • {dependency1}/index.php • {dependency1}/index.html © 2008 IBM Corporation 2008 JavaOneSM Conference | java.sun.com/javaone | 13
  • 14. REST Services Made easy Zero provides a really simple way to create REST services Convention for create/retrieve/update/delete operations (CRUD) • You can also list the members in the collection. 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 © 2008 IBM Corporation 2008 JavaOneSM Conference | java.sun.com/javaone | 14
  • 15. REST Services in WebSphere sMash Each REST service is implemented by a script (called a handler) Scripts live in the directory: <apphome>/app/resources Services are accessed using a standard URL convention: •/resources/<collection name>[/member[/<path info>]] HTTP requests mapped to handler methods as follows: Resource GET PUT POST DELETE Collection list putCollection create deleteCollecti on /people Member retrieve update postMember delete /people/1 © 2008 IBM Corporation 2008 JavaOneSM Conference | java.sun.com/javaone | 15
  • 16. Demo – REST in WebSphere sMash 2008 JavaOneSM Conference | java.sun.com/javaone | 16
  • 17. Events Promote Loose Coupling All behaviour in the system is modelled as a set of events. • Events are programming language agnostic Fired by an application using fire_event(). fire_event('my_event', array(‘data'=>'foobar')); Event handlers are defined in the Zero configuration file: /config/handlers += { quot;eventsquot; : my_event, quot;handlerquot; : test.php } Request Processing events • requestBegin, secure, GET, PUT, POST, DELETE, log, requestEnd Application specific events • Fired by your application © 2008 IBM Corporation 2008 JavaOneSM Conference | java.sun.com/javaone | 17
  • 18. Global Context Event handlers are stateless • interesting applications contain state GC provides access/management of application state • It is NOT persistent. Persistent data goes into the database Conceptually a map of data Divided into a set of zones with different data lifecycles Understands and provides intelligent access to certain data types Externalizes state from the application logic • Enables clustering and scaling to be added transparently © 2008 IBM Corporation 2008 JavaOneSM Conference | java.sun.com/javaone | 18
  • 19. Global Content Zones Divided into zones representing different data lifecycles Zone Scope/Visibility Lifecycle Config All requests all users. Loaded from config files. Application All requests for all users of the Life of the application, application but not “persistent” User All request for a particular user For first access until (HTTP Session equivalent) user times out Request All handlers along the path of a For the duration of a single request single request Event All handlers for a single event The duration of a single event © 2008 IBM Corporation 2008 JavaOneSM Conference | java.sun.com/javaone | 19
  • 20. Versioning Dependencies Modules are the building blocks of an application A module is simply a collection of files packaged together • Includes a module name, version and author details An application declares the modules it depends on Versioning ensures applications don’t break! • Specific versions can be set (v1.1.34) • Versions upwards from a particular release (v1.0+) • Ranges of acceptable versions (v1.0 – v1.5) Remote catalog servers at PZ.net and maven2 © 2008 IBM Corporation 2008 JavaOneSM Conference | java.sun.com/javaone | 20
  • 21. Deploying Applications The Application is the server Java VM Web server Application Code Language runtimes Hundreds of applications per box Applications started on demand • inetd style Applications isolation Quality of service and management built in © 2008 IBM Corporation 2008 JavaOneSM Conference | java.sun.com/javaone | 21
  • 22. Built in development tooling Browser-Based Development IDE Built as a sMash application Provides full development lifecycle for Zero applications • Create, Edit, Test Provides Visual Editors for Activities and Web Page construction • Including a DOJO-enabled page editor Basic Eclipse-based tooling also available if required © 2008 IBM Corporation 2008 JavaOneSM Conference | java.sun.com/javaone | 22
  • 23. Activities Let Developers Visually “Mash-up” Services and Feeds Compose applications by “wiring” together REST services Visually or programmatically combine existing feeds and services that enrich, sort, and filter data in a pipeline Configure templates to alter pipeline routes, log events along the pipeline Numerous built-in activities, including • Get Feed, Call Service, Aggregate, Sort, Transform, Filter, Send Mail, XSLT, Conditionals, Loops © 2008 IBM Corporation 2008 JavaOneSM Conference | java.sun.com/javaone | 23
  • 24. Installing WebSphere sMash Eclipse CLI / Browser IDE Get JavaTM 1.5(+) JDK Get PHP Development Tools (PDT) Download installer (<800K) All-in-one eclipse package Install Zero using the Eclipse update manager Libraries fetched as needed. Links and walkthrough on www.projectzero.org © 2008 IBM Corporation 2008 JavaOneSM Conference | java.sun.com/javaone | 24
  • 25. Agenda Whys and Whats of PHP on the Java Virtual Machine software How we mix PHP, Java platform and Groovy Demonstration of PHP and Java Platform Interaction. ProjectZero Community © 2008 IBM Corporation 2008 JavaOneSM Conference | java.sun.com/javaone | 25
  • 26. Demo: Integration with SugarCRM Scenario: Scheduling meetings requires co-ordination across the business Solution: WebSphere sMash workflow triggered from SugarCRM PHP-Java Platform Interoperability • The best of both worlds © 2008 IBM Corporation 2008 JavaOneSM Conference | java.sun.com/javaone | 26
  • 27. Demo – Integration with SugarCRM 2008 JavaOneSM Conference | java.sun.com/javaone | 27
  • 28. Agenda Whys and Whats of PHP on the Java Virtual Machine software How we mix PHP, Java platform and Groovy Demonstration of PHP and Java Platform Interaction ProjectZero Community © 2008 IBM Corporation 2008 JavaOneSM Conference | java.sun.com/javaone | 28
  • 29. Community Driven Commercial Development Evolve the core platform based on developer feedback Commercial development using a transparent development process Enabled via an external web site providing: http://www.projectzero.org A focal point for all sMash development activities Expose the IBM® development process to the external developer community All design decisions are discussed and communicated via external forums Registered users can post comments and feedback to the forums Frictionless download of latest code and documentation Registration not required for binary downloads Latest builds immediately available to developers Source code can be viewed by registered users © 2008 IBM Corporation 2008 JavaOneSM Conference | java.sun.com/javaone | 29
  • 30. Site Contents Content • Documentation • Project information • Roadmaps • Design documents • Demos and Samples • iCal calendar • Future plans Forum for interactive discussion • Help and Feedback for questions from users • Developer Alerts to notify users of new features and breaking changes • Zero Development for publicly accessible discussion amongst the Zero development team • 3554 Posts on 828 Topics to date Blogs • Development blog with interesting commentary, demos, and opinion • News blog for project announcements Binary Downloads (257,738 and counting…) Bug Tracking System (Bugzilla) Source code (Subversion) © 2008 IBM Corporation 3 2008 JavaOneSM Conference | java.sun.com/javaone | 30
  • 31. Features of sMash we have not covered today File Serving Error Handling View Rendering Logging, Tracing, Debugging Client Programming with the Dojo Ajax Framework Security Nested resources © 2008 IBM Corporation 2008 JavaOneSM Conference | java.sun.com/javaone | 31
  • 32. Summary Project Zero is incubating technologies to build web applications in WebSphere sMash • Simply! WebSphere sMash contains a PHP runtime which runs on a JVM software WebSphere sMash enables same process interoperability between PHP, Java platform and Groovy © 2008 IBM Corporation 2008 JavaOneSM Conference | java.sun.com/javaone | 32
  • 33. Questions? © 2008 IBM Corporation 2008 JavaOneSM Conference | java.sun.com/javaone | 33
  • 34. Rob Nicholson 2008 JavaOneSM Conference | java.sun.com/javaone | 34