1 / 33

The Past, Present and Future of Rich Internet Applications

The Past, Present and Future of Rich Internet Applications. Anders Norås Solutions Architect, MCSD http://dotnetjunkies.com/weblog/anoras/. Speaker.getDetails();. Solutions Architect for Objectware. Ten years of experience developing business applications.

acacia
Télécharger la présentation

The Past, Present and Future of Rich Internet Applications

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. The Past, Present and Future ofRich Internet Applications Anders NoråsSolutions Architect, MCSD http://dotnetjunkies.com/weblog/anoras/

  2. Speaker.getDetails(); • Solutions Architect for Objectware. • Ten years of experience developing business applications. • Mainly using J2EE & Microsoft .NET technologies.

  3. Agenda • What are Rich Internet Applications? • Ajax’ history. • How can I use Ajax to build ”Chubby Clients”? • Creating an agile ”Chubby Client” architecture. • The future of Rich Internet Applications.

  4. Rich Internet Applications (RIA)& Smart Clients The Ebb and Flow of Client Technologies 2005 Reach 1998 1992 Richness

  5. Why Rich Internet Applications? • Users and IT-organizations frustrated with the limitations of HTML. • Providing a superior customer experience is a key business differentiator. • The “boom” resulted in web applications that are difficult to use, costly to support and ineffective.

  6. Elements of Rich Internet Applications • Asynchronous capabilities. • Gives more responsive applications. • Multi-step processes. • Interaction-support aid users. • Proper client side validation. • Helps users fill in forms with greater speed and accuracy. • Direct manipulation. • Enables more intuitive user interfaces.

  7. Key RIA Technologies • Macromedia Flex • Microsoft Extensible Application Markup Language (XAML) • Mozilla XML User Interface Language (XUL) • Java Networked Desktop Components (JNDC) • Windows Forms Smart Clients (.NET) Plain old HTML pages

  8. C ”Chubby Client”? DHTML AJAX

  9. Smart vs. “Chubby” Smart Data Management Tough ToDeploy Rich UserExperience NetworkDependency Easy To Update Offline Capable Tough To Update Easy To Deploy Limited UserExperience High Developer Productivity Easy To Manage Fragile “DLL/ CLASSPATH hell” Responsive & Flexible Complex To Develop Smart Connection Management Thin Clients Rich Clients “Chubby” Clients Smart Clients

  10. Examples of ”Cubby Client” Applications Outlook 2003 Web Access Custom CRM application

  11. Examples of ”Cubby Client” Applications • Microsoft SharePoint • Amazon A9 • Google.*

  12. Ajax’ History 96 97 98 99 00 01 02 03 04 05 Netscape 2.0 released.First browser to support Java, frames and JavaScript The Browser Wars Revenge of the ”Smart Client”

  13. Application Page (HTML) Hidden Frame (JSP) The Birth of “Ajax”:Frames-Based RPC Callback Function Biz Logic RPC Stub HTTP Get

  14. Ajax’ History 96 97 98 99 00 01 02 03 04 05 Netscape 2.0 released.First browser to support Java, frames and JavaScript .NET released. Strong focus onWinForms &Web Services ASP.NET 2.0 Macromedia Flex released Java WebStartFirst “Smart Client” framework Netscape 4.0ß1 released.DHTML is born. AJAX Microsoft Remote Scripting released Ashley IT Continues develop MSRS JDNCA new birth for desktop Java SOAP 98. Microsoft Web ServiceBehavior released Sun advocate thin clients The Browser Wars Revenge of the ”Smart Client”

  15. JS Phone Home: XMLHttpRequest

  16. Using Ajax to Build ”Chubby Clients” • Ajax as seen today is great for enriched user experiences… • …but most web based business applications can be radically improved by adopting client / server like features.

  17. Java Script Object Notation (JSON) • Lightweight data-interchange format. • Based on ECMA 262 object literal, but is language independent. • Built on two data structures: • Name/value pair collections. • Ordered lists of values. • Implementations exist for a variety of programming languages. • JavaScript, Java, C#, Ruby, Perl amongst others.

  18. Remote Procedure Calls using JSON-RPC function doStuff(){ var sql=“SELECT * FROM users WHERE clue > 0”;} JSON-RPC

  19. JSON RPC – Pros and Cons • Elegant, lightweight, human readable format. • Good framework support. • The technology isn’t widely adopted. • Applications can become chatty if used without caution.

  20. Building Manageable ”Chubby Clients” • Write JavaScript code as if it was Java code. • Separate features in different libraries instead of writing one “big ball of mud”. • Use JSUnit to test your code. • Use platform features, such as XMLHttpRequest. • Use common design patterns to ”abstract away” browser differences. • Be careful what you bring into your projects from the web. • Avoid passing overly complex types between server code and the browser. • Keep the service boundaries explicit.

  21. Serializing Beans Using XMLEncoder & XMLDecoder <xml>

  22. XMLEncoder / XMLDecoder - Pros and Cons • Lightweight • Streams are small • Few lines of code in both client and server application • Proprietary • Tightly coupled • XML representation isn’t self contained • Server  Client is a breeze; Client  Server isn’t.

  23. Using Web Services from the Browser • Microsoft Web Service Behavior • Gecko WSDL proxying

  24. How Stuff Works: SOAP Style XML Serialization <Customer> Customer Customer <Firstname>..</Firstname> <MiddleName>..</MiddleName> <Surname>..</Surname> <Address>..</Address> Address Address <Postalcode>..</Postalcode> City City <City>..</City> <Country>..</Country> Country Country </Customer> Firstname Firstname MiddleName MiddleName Postalcode PostalCode Surname Surname

  25. XML Serialization: Passing a JavaScript Object as an Argument to an Axis Web Service <xml>

  26. Where doI belong? What am I? I NEEDHELP!!!!! What am I supposed to do? XML Schema How Stuff Works: Xml Deserialization <Customer> <Address>..</Address> <City>..</City> <Country>..</Country> <Firstname>..</Firstname> <MiddleName>..</MiddleName> <Postalcode>..</Postalcode> <Surname>...</Surname> </Customer> Postalcode Postalcode

  27. Returning an Object from an Axis Web Service to a Java Script Client <xml>

  28. XmlSerialization – Pros and Cons • SOAP Document Literal is the de facto data- interchange format. • Web Service endpoints can easily be reused across a variety of applications. • Messages are self-contained when paired with WSDLs. • Integration code can be “heavy”. • The aftermaths of the browser wars make cross browser development difficult.

  29. Creating an Agile “Chubby” Architecture • Leverage existing business logic. • Decompose presentation, integration and data. • Rely on browser features and third party controls before rolling your own. • Write script code as if it was server code. • Ensure Document / Literal style when developing web services. • Use self-contained, disconnected entities as often as possible to avoid chatty RPC interfaces.

  30. The Future of “Chubby” Clients • The rumors of the browser’s death are greatly exaggerated. • The emergence of Smart Clients will increase the demand for intuitive web UIs. • “Chubby Clients” enables a gradual transition to richer UIs for key applications in your portfolio. • Exploit SOAs in web clients.

  31. Summary • Increasing demand for more intuitive UIs. • If you can; create Smart Clients, otherwise fatten thin clients. • “Chubby Clients” are trivial to develop in modern browsers.

  32. Resources • JSON • JSON: http://www.json.org • JSON for Java:http://www.crockford.com/JSON/java/index.html • JSON-RPC Java ORB:http://oss.metaparadigm.com/jsonrpc/ • Web Services • Apache AXIS: http://ws.apache.org/axis/ • Microsoft Web Service Behavior:http://msdn.microsoft.com/workshop/author/webservice/overview.asp • Gecko WSDL Proxying:http://developer.mozilla.org/en/docs/Accessing_Web_Services_in_Mozilla_Using_WSDL_Proxying • XML Serialization: • JavaScript XML Serializer: http://dotnetjunkies.com/WebLog/anoras/archive/2004/08/13/21962.aspx • Tools • Fiddler HTTP Debugger: http://www.fiddlertool.com/fiddler/ • MindReef SOAP Scope: http://www.mindreef.com • JSUnit: http://www.edwardh.com/jsunit/

More Related