WEB 2.0: BUILDING RICH INTERNET APPLICATIONS WITH PHP

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    3 Favorites

    WEB 2.0: BUILDING RICH INTERNET APPLICATIONS WITH PHP - Presentation Transcript

    1. WEB 2.0: BUILDING RICH INTERNET APPLICATIONS WITH PHP Wil Sinclair Manager, Advanced Technology Group
    2. Zend TestRunner Prototype
      • Implemented by Stas Malyshev and Matthew Weier O’Phinney in just 3 developer days
      • Built with Zend Framework 1.5 and Dojo 1.0
      • Data is provided by PHPUnit running against the full suite of Zend Framework unit tests
      • Data is pushed to the client by a prototype Comet server implemented in pure PHP
      | Jun 2, 2009 Name of this section |
    3. Under the hood: System Diagram | Jun 2, 2009 Name of this section | Full Page Request/Response AJAX Request/Response Long Polling Request Unit Test Data Push
    4. Under the hood: Zend Framework 1.5
      • Actually 1.5 RC1, the 1.5 GA will be available in the next few weeks
      • Components used include Zend_Controller, Zend_View, Zend_Form, and Zend_Layout
      • Filtering, validating, and displaying error messages are performed by the Zend_Form object and friends
      • Asynchronous request for autocompletion is serviced by an action on the main controller
      | Jun 2, 2009 Name of this section |
    5. Under the hood: Zend Framework Snippet | Jun 2, 2009 Name of this section | Initialization of Zend_Form
    6. Under the hood: Dojo 1.0
      • dojox.charting and dojox.cometd used heavily
      • Dojo implements the current draft version of the Bayeux spec for the Comet data protocol
      | Jun 2, 2009 Name of this section |
    7. Under the hood: Dojo Snippet | Jun 2, 2009 Name of this section | Bayeux Message Dispatch Method
    8. Under the hood: Comet Server | Jun 2, 2009 Name of this section | Comet Server Send Method
    9. Comet?
      • An approach to application design, not a technology
      • Server push adapted for today’s technologies and infrastructures, both on the client and everything between the client and the server
      • Enables event-driven and real-time applications
      • There are several specific techniques for implementing the transport layer on top of HTTP
      • All of these techniques can be classified as either ‘streaming’ or ‘long polling’
      • To understand the rationale behind Comet, one must know something about the history of the web
      | Jun 2, 2009 Name of this section |
    10. Evolution of the Rich Internet Application
      • Simple request/response model
      • Only full HTML documents can be downloaded
      • User ‘widgets’ confined to HTML form elements and links
      • Dramatically affects application design!
      | Jun 2, 2009 Name of this section | Traditional Web (Web 0.5a?)
    11. Evolution of the Rich Internet Application
      • Simple request/response model doesn’t change
      • Only full HTML documents can be downloaded, but some elements can be hidden
      • ‘ Widgets’ still confined to HTML form elements and links, but now we can decorate them with styling and behavior
      • Still affecting application design a lot
      | Jun 2, 2009 Name of this section | DHTML/JavaScript/CSS Web (Web 1.0)
    12. Evolution of the Rich Internet Application
      • Re-uses request response model from Web 1.0
      • Now partial pages can be downloaded and the current page updated through DOM
      • Application ‘widgets’ now explode in both number and popularity
      • Still entirely client-driven
      • Application design, it is affected
      | Jun 2, 2009 Name of this section | AJAX Web (Web 2.0)
    13. Evolution of the Rich Internet Application
      • Re-uses request response model from Web 1.0 A LOT
      • Partial pages can still be downloaded and the current page updated through DOM
      • ‘ Widgets’ similar to AJAX Web except they can now be updated without user input
      • Still entirely client-driven, but we create the illusion of two-way communications
      • Application design is affected, but mostly for performance and scalability reasons
      • Particulaly bad for non-volatile data that changes aperiodically
      | Jun 2, 2009 Name of this section | Polling AJAX Web (Web 2.1)
    14. Evolution of the Rich Internet Application
      • Abuses request response model from Web 1.0
      • Partial pages updates can be initiated by a server event
      • ‘ Widget’ similar to AJAX Web except they can now be updated without user input- just like polling AJAX
      • True two-way communication*
      • Application design is not affected
      • Scalability issues exist, but are now solvable
      • Uses technology built in to every major browser
      | Jun 2, 2009 Name of this section | AJAX/Comet Web (Web 2.5?)
      • Comet is a giant hack. Even when it works flawlessly and efficiently, bringing us real-time interactive applications, deftly weaving around firewalls and browsers, avoiding unfriendly side effects, and cutting latency to near zero, it does so using mechanisms unforeseen by browser vendors, and unspecified by web standards.
      • - Jacob Rus
      PERFECT! NOT QUITE. | Jun 2, 2009 Name of this section |
    15. Issues with Comet
      • That whole transport layer thing
      • There is currently no technique that implements streaming Comet consistently across all major browsers
      • Some Comet techniques create visual artifacts
      • Firewalls are sometimes configured to drop long-lived HTTP connections
      • There are no standards for the data protocol
      | Jun 2, 2009 Name of this section |
    16. Solutions for Comet
      • WHATWG's HTML 5 specification addresses the transport problems
      • Dojo Foundation’s Bayeux specification aims to standardize the client-server communication protocol
      | Jun 2, 2009 Name of this section |
    17. Bayeux?
      • All messages are encoded in JSON
      • Implements a publish/subscribe model using named channels
      • Uses 2 connections for 2-way communication
      • Agnostic of transport layer, may be used on top of HTTP or other protocols
      • May be used with or without authentication
      | Jun 2, 2009 Name of this section |
    18. Bayeux Channels
      • Clients usually subscribe and/or publish to channels typically named like “/segment-name/channel-name”
      • Channels within the “/meta/” segment are reserved for the Bayeux protocol itself
      • Channels within the “/service/” segment are reserved for request/response-style messaging between client and server
      | Jun 2, 2009 Name of this section |
    19. Example of Bayeux Message
      • [
      • {
      • "channel": "/some/channel",
      • "clientId": "Un1q31d3nt1f13r",
      • "data": "some application string or JSON object",
      • "id": "some unique message id“
      • }
      • ]
      | Jun 2, 2009 Name of this section |
    20. Alternatives to Comet/Bayeux
      • Java Applets
      • Java Web Start
      • JavaFX
      • Flash/Flex
      • Silverlight
      • Desktop Applications using web services
      • AJAX polling
      | Jun 2, 2009 Name of this section |
    21. ANY QUESTIONS?
    22. THANKS!

    + zendzend, 2 years ago

    custom

    6328 views, 3 favs, 7 embeds more stats

    SDWest presentation by Wil Sinclair, Manager, Adva more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 6328
      • 4001 on SlideShare
      • 2327 from embeds
    • Comments 0
    • Favorites 3
    • Downloads 286
    Most viewed embeds
    • 2175 views on http://devzone.zend.com
    • 126 views on http://elblogdeinwe.com
    • 18 views on http://www.planetacodigo.com
    • 3 views on http://static.slideshare.net
    • 3 views on https://devzone.zend.com

    more

    All embeds
    • 2175 views on http://devzone.zend.com
    • 126 views on http://elblogdeinwe.com
    • 18 views on http://www.planetacodigo.com
    • 3 views on http://static.slideshare.net
    • 3 views on https://devzone.zend.com
    • 1 views on http://honyaku.yahoofs.jp
    • 1 views on http://209.85.135.104

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories