jMaki: The power of Ajax made easy

Slides:



Advertisements
Similar presentations
AJAX Development By Gary Mandela December 26,
Advertisements

Extreme User Interfaces for Alfresco Kevin Dorr Sr. Solutions Engineer Americas Channel.
Web Server Programming
Web 2.0 and Java Greg Murray Ajax Architect Sun Microsystems The Zen of jMaki December 12, 2006.
DEV392: Extending SharePoint Products And Technologies Through Web Parts And ASP.NET Clint Covington, Program Manager Data And Developer Services - Office.
© 2007 IBM Corporation IBM Emerging Technologies Enabling an Accessible Web 2.0 Becky Gibson Web Accessibility Architect.
Fast Track to ColdFusion 9. Getting Started with ColdFusion Understanding Dynamic Web Pages ColdFusion Benchmark Introducing the ColdFusion Language Introducing.
Web Page Behavior IS 373—Web Standards Todd Will.
Dynamic Web Pages Bert Wachsmuth. Review  Internet, IP addresses, ports, client-server, http, smtp  HTML, XHTML, XML  Style Sheets, external, internal,
Introduction to Liferay Copyright © Liferay, Inc. All Rights Reserved. No material may be reproduced electronically or in print without written.
Jiří Balej, Martin Podborský, Petra Čačková.  Tools, which enables to produce content without source code knowledge  Text document ◦ MS Word/OO Writer.
Web 2.0 with AJAX Students : LASC Ioana KELEMEN Csilla POP Dan Adrian CIOBANU Dumitru Daniel Project leader : Ahmed RHIAT.
© Internna Technologies 1 IWebMvc Features, Possibilities & Goals.
© 2006 by IBM 1 How to use Eclipse to Build Rich Internet Applications With PHP and AJAX Phil Berkland IBM Software Group Emerging.
Customer Forum OTech’s New Web Publishing Service Web Services Section – April 29, 2015.
Agenda What is AJAX? What is jQuery? Demonstration/Tutorial Resources Q&A.
1 Web Developer & Design Foundations with XHTML Chapter 6 Key Concepts.
MVC New release IE8 Beta 1 Deep Zoom (sea dragon) Silver light 2.0 Beta 1 Expression Blend 2.5 Preview Instant Messaging API Enhancements to Virtual Earth.
JavaServer Faces: The Fundamentals Compiled from Sun TechDays workshops (JSF Basics, Web-Tier Codecamp: JavaServer Faces, Java Studio Creator; IBM RAD)
Configuring Social Media, Google Analytics, and Gadgets Lila Bronson Training Manager, OmniUpdate, Inc.
Pittsburgh Java User Group– Dec Java PureFaces: A JSF Framework Extension.
Copyright 2007 Adobe Systems Incorporated. 1 ColdFusion 8 : Advanced AJAX Development Rakshith N Computer Scientist Jan 02, 2008.
EQUELLA Product Strategy and Development
Session 1 SESSION 1 Working with Dreamweaver 8.0.
Peter Laird. | 1 Building Dynamic Google Gadgets in Java Peter Laird Managing Architect WebLogic Portal BEA Systems.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
Building Rich Web Applications with Ajax Linda Dailey Paulson IEEE – Computer, October 05 (Vol.38, No.10) Presented by Jingming Zhang.
WebSphere Portal Technical Conference U.S Creating Rich Internet (AJAX) Applications with WebSphere Portlet Factory.
PHOBOS Javascript Engine By Daniel Reeves. What is Phobos? Lightweight application framework for Java Used by NetBeans Supports multiple scripting languages.
Dean Anderson Polk County, Oregon GIS in Action 2014 Modifying Open Source Software (A Case Study)
ICM – API Server Gary Ratcliffe. 2 Agenda Webinar Programme API Server Overview JSON-RPC iCM API Service API Server and Forms New services under.
Introduction to ASP.NET development. Background ASP released in 1996 ASP supported for a minimum 10 years from Windows 8 release ASP.Net 1.0 released.
June 30, 2005 Public Web Site Search Project Update: 6/30/2005 Linda Busdiecker & Andy Nguyen Department of Information Technology.
Enterprise Library 3.0 Memi Lavi Solution Architect Microsoft Consulting Services Guy Burstein Senior Consultant Advantech – Microsoft Division.
Portlet Development Konrad Rokicki (SAIC) Manav Kher (SemanticBits) Joshua Phillips (SemanticBits) Arch/VCDE F2F November 28, 2008.
Social Enablement of Xpages - Linoy K George & Mervin Thomas.
Web Services with Netbeans 6.0 Your Name Sun Campus Ambassador Your Address.
Technologies For Creating Rich Internet Applications Presenter's name
1 NetBeans New and Cool Sun Microsystems, Inc.. 2 Goal of the Talk Learn how NetBeans IDE can help you become more productive Learn about the new features.
1 ODF and Web Mashups Basic techniques Rob Weir, IBM :15.
Introduction to Silverlight Development Pavel Yosifovich CTO, Matrix Global; Senior Instructor, Hi-Tech College
Lotus Symphony Extension Model ● Jin Hua, Chen ● IBM.
JMaki, Phobos Ludovic Champenois Sun Microsystems Tools story February 23, 2007.
Visual Web & AJAX with Netbeans 6.0 Your Name Sun Campus Ambassador Your Address.
Chapter 1 Getting Started with ASP.NET Objectives Why ASP? To get familiar with our IDE (Integrated Development Environment ), Visual Studio. Understand.
Web Technology Solutions
ADVANCED HOSTING Adrian Newby, CTO.
Web Programming Language
The Share Widget Library
Cms Full-featured Flexible Web Content Management System for All Your Needs.
Overview Blogs and wikis are two Web 2.0 tools that allow users to publish content online Blogs function as online journals Wikis are collections of searchable,
Google Web Toolkit Tutorial
Business in a Connected World
Project 1 Introduction to HTML.
Platform as a Service.
A technical look at new capabilities and features
Application with Cross-Platform GUI
Introduction to SharePoint 2007
PHP Training at GoLogica in Bangalore
By Gary Mandela December 26, 2006
Pentaho and Yahoo User Interface (YUI)
PHP / MySQL Introduction
jQuery The Easy JavaScript Nikolay Chochev Technical Trainer
Practical guide to build Modern Intranet sites with SharePoint Communication Sites Asish Padhy.
Distributed System Using Java 2 Enterprise Edition (J2EE)
ASP.NET Module Subtitle.
JavaServer Faces: The Fundamentals
A technical look at new capabilities and features
J2EE Lecture 1:Servlet and JSP
Dreaming up a CMS in Go (golang)
Presentation transcript:

jMaki: The power of Ajax made easy Carla Mott, Staff Engineer, Sun Microsystems Jennifer Myers, Staff Engineer, Sun Microsystems Daniel Ziaoure, Lead Web Developer, TravelMuse, Inc Greg Murray, Ajax Architect, Sun Microsystems

Learn how to write Ajax enabled web applications using jMaki framework

Agenda What is jMaki? jMaki model jMaki events Tooling Demos Ajax Performance in jMaki jMaki Webtop More Demos Summary

What is jMaki? Open Source (BSD) Lightweight framework Use the best of breed libraries and tools Dojo, Yahoo, Script.aculo.us, Spry, Google, Gears, Flash, and your code Support for Java, Server JavaScript, PHP, Ruby Netbeans, Eclipse, Ant support

Why use jMaki? Performance enhancments built-in Defaults set out of the box Convention over configuration Portable Widget libraries Share your extensions / widgets libraries Standardizes Event / Data Models Consistent programming model Use the tool of your choice Theming Support

jMaki Framework Client runtime services Widget component model Data Models Events = Actions / Glue Layouts / Theming model Server side services XmlHttpProxy Extensions

Multi-Server Support JSP / JSF technology: index.jsp PHP: index.php <%@ taglib prefix="a" uri="http://jmaki/v1.0/jsp" %> <a:widget name="hello" args="{name: 'Greg'}" /> PHP: index.php <?php require_once 'Jmaki.php'; ?> <?php addWidget( array( name=>"hello", args => "{name: 'Greg'}")); ?> Ruby: index.php <%= jmaki_widget name='hello', args => {:name => 'Greg'} -%> Phobos index.ejs <% library.jmaki.insert({ component:"hello", args: {name: 'Greg'} }); %>

Agenda What is jMaki? jMaki model jMaki events Tooling Demos Ajax Performance in jMaki jMaki Webtop More Demos Summary

jMaki widgets

Hello World Widget component.htm component.js index.jsp <div id="${uuid}"></div> component.js jmaki.namespace("jmaki.widgets.hello"); jmaki.widgets.hello.Widget = function(wargs) { var mydiv = document.getElementById(wargs.uuid); mydiv.innerHTML = "Hello " + wargs.args.name; } index.jsp <%@ taglib prefix="a" uri="http://java.sun.com/jmaki" %> <a:widget name="hello" args="{name: 'world'}" />

jMaki Data Value Inline for simple components Service Uses Ajax request to fetch data

jMaki Data - value <a:widget name="jmaki.tabMenu" value="{menu : [ { label: 'Link', href : 'http://www.jmaki.com' }, { label: 'Action', action :{topic: '/tabview/select', message: { targetId : 'main'}} } ] }" />

jMaki Data - service <a:widget name=”yahoo.dataTable" service=“tabledata.jsp" /> tabledata.jsp returns: {"columns":[ { "label" : "Title", "id" : "title"}, { "label":"Author", "id" : "author"}, { "label": "ISBN #", "id" : "isbn"}, { "label": "Description", "id" : "description"} ], "rows":[ { "title" : "Book Title 1", "author" : "Author 1", "isbn": "4412", "description" : "A Some long description"}, { "id" : "foo", "title" : "Book Title 2", "author" : "Author 2", "isbn": "4412", "description" : "A Some long description"} ] }

Agenda What is jMaki? jMaki model jMaki events Ajax Performance in jMaki Tooling jMaki Webtop Demo Summary

jMaki Events Based on publish and subscribe mechanism Anonymous communication Allows for dynamic number of consumers and producers Decouples producers from consumers Declarative events Action property No additional JavaScript code Programmatic events Allows you to provide un-obtrusive application behavior in a single place Ties the widgets together (loosely) based on topic names

jMaki Events using Actions <a:widget name="yahoo.button" value=" {label : 'select row 2', action : {topic : '/table/select', message: {targetId:'row2'}} }"/> action property publishes to topic /table/select message sends targetId row2

jMaki Events using Actions <a:widget name="dojo.table" subscribe=”/table” value="{columns : [ { label : 'Title', id : 'title'}, { label :'Author', id : 'author'}, { label : 'ISBN', id : 'isbn'}, { label : 'Description', id : 'description'} ], rows : [ { title : 'Book Title 1', author : 'Author 1', isbn: '4412', description : 'A Some long description'}, { id : 'row2', title : 'Book Title 2', author : 'Author 2', isbn : '4412', description : 'A Some long description'} ] }" />

Agenda What is jMaki? jMaki model jMaki events Tooling Demos Ajax Performance in jMaki jMaki WebTop More Demos Summary

Netbeans and Eclipse Tool Support Same source, build, dev team, releases Same web site, forums download area Deploy only once Save Reload page in browser Edit, save, test, edit, save, test Debug with FireBug / jMaki debugger as needed

Agenda What is jMaki? jMaki model jMaki events Tooling Demos Ajax Performance in jMaki jMaki Webtop More Demos Summary

jMaki Project Miso TravelMuse, Inc

Miso/jMaki Demo Introduction Miso provides search and indexing services Deep, fast and broad searching capability Supports various documents (ODF, PDF, MS) Exposes RESTful web services OpenSearch 1.1; RSS 2.0, Atom 1.0 or JSONP formats Initial release focused on E-Mail, Calendar, Instant Messaging Has a plug-in architecture to enable support for other data types, e.g., source code

Miso/jMaki Demo Implementation jMaki used to rapidly develop a sample client No prior experience with Ajax Started with bundled sample code add/customize widgets use pub/sub to communicate to new widgets Source code and demo available at the OpenOffice.Org Pod during JavaOne Future direction: integrate jMaki Webtop into Sun Convergence web-based communications services client

jMaki: The power of Ajax made easy Daniel Ziaoure Lead Web Developer TravelMuse, Inc. 24

TravelMuse Company founded in April 2007 Imagine. Experience. Share Company founded in April 2007 Alpha site launched in January 2008 and “Almost Beta” site launched in April 2008 11 full-time employees, 40 freelance writers, 5 developers in India Public beta site launch scheduled for June 2008 Funded by Azure Capital Partners, California Technology Ventures and other investors TravelMuse: Helps travelers save time and make better decisions at every step of the travel planning process by providing the Web’s most user-friendly travel planning experience. Understands the specific requirements of traveling with children and enables families to make the best travel decisions Provides inspiration, planning and booking services to the user through an advanced and unique Web 2.0 experience, unlike the competition which provides commodity user experience, fragmented services, and generic content

TravelMuse JSP Page Architecture

Agenda What is jMaki? jMaki model jMaki events Tooling Demos Ajax Performance jMaki Webtop More Demos Summary

Ajax Performance in jMaki 1.8 Minimizes number of HTTP requests Combines CSS and Script resources Put CSS at the beginning of documents Puts scripts at the end of documents Writes correct Expires Headers Removes duplicate JavaScript and CSS requests Writes the correct headers Cache-Control Etag Expires Gzips Content

Agenda What is jMaki? jMaki model jMaki events Tooling Demos Ajax Performance in jMaki jMaki Webtop More Demos Summary

jMaki Webtop Problem Trying to Solve Create Mashups Features Needed Create a Ajax User interface Manage Widget State Mange Users Integrate Services

jMaki Webtop - What is it? Like a wiki but the core unit of modularity is a widget, gadget, or included URL Optimized for building mashups Using publish subscribe Service integration using the XmlHttpProxy https://jmaki-webtop.dev.java.net

jMaki Webtop - Features Visual Palette Resizable column based layout Available as a widget Widget state managed JSON based Available with widget management PHP JSP

jMaki Webtop - Architecture View JavaServer Pages JSP tag based jMaki Widget Management Java Persistence / MySQL User Management

Agenda What is jMaki? jMaki model jMaki events Tooling Demos Ajax Performance in jMaki jMaki Webtop More Demos Summary

Summary jMaki Provides a comprehensive solution for Ajax Component model Data Models Events Performance enhancements Tooling Support is essential Templates Customization jMaki allows you to create sophisticated mashups easily

Carla Mott, Staff Engineer, Sun Microsystems Jennifer Myers, Staff Engineer, Sun Microsystems Daniel Ziaoure, Lead Web Developer, TravelMuse, Inc Greg Murray, Ajax Architect, Sun Microsystems