building dynamic google gadgets in java

28
Peter Laird. | 1 Building Dynamic Google Gadgets in Java Peter Laird Managing Architect WebLogic Portal BEA Systems

Upload: ebayworld

Post on 19-May-2015

2.854 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Building Dynamic Google Gadgets in Java

Peter Laird. | 1

Building Dynamic Google Gadgets in Java

Peter LairdManaging ArchitectWebLogic PortalBEA Systems

Page 2: Building Dynamic Google Gadgets in Java

BEA Confidential

About the Speaker

Has 10 years of server side Java development experience

Leads the architecture team for BEA WebLogic Portal, a leading Java enterprise portal product

Has worked on WebLogic Portal for 7 years as a developer and architect

Holds the following certifications Oracle DBA Cisco CCNA

Regular contributor to BEA’s developer website http://dev2dev.bea.com

Page 3: Building Dynamic Google Gadgets in Java

BEA Confidential

Agenda

Introduction to iGoogle and Google Gadgets

Google Gadgets, Why Should You Care?

Inside a Google Gadget

Building a Gadget in Java

Page 4: Building Dynamic Google Gadgets in Java

BEA Confidential

Housekeeping

This is a 30 Minute Presentation A lot to cover, will move very fast Will focus more on Gadgets, less on Java web development

No network connectivity in this building Google Gadgets necessarily require internet access for live demos Will show movies of demos instead

Page 5: Building Dynamic Google Gadgets in Java

BEA Confidential

Agenda

Introduction to iGoogle and Google Gadgets

Google Gadget: Why Should You Care?

Inside a Google Gadget

Building a Gadget in Java

Page 6: Building Dynamic Google Gadgets in Java

BEA Confidential

Introduction to iGoogle (demo)

DEMO

Page 7: Building Dynamic Google Gadgets in Java

BEA Confidential

iGoogle

iGoogle portal is a free Google service

Is a customizable web portal

Users can add “Gadgets” to the page

Customizations are saved to the user’s account and retrieved when logging in again

Page 8: Building Dynamic Google Gadgets in Java

BEA Confidential

Google Gadgets

Gadgets are small user interface components Could also be called portlets or widgets

Example: eBay Search Plus Gadget

Page 9: Building Dynamic Google Gadgets in Java

BEA Confidential

Gadgets are Dynamic Web Applications

Gadgets can be static, but then are of limited use

Dynamic Gadgets are more common

Three general approaches when making a dynamic gadget: Time dynamic – the content changes over time, e.g. a news gadget User input dynamic – the content changes via a user interacting with the

gadget (forms, links, etc) User preference dynamic – the user sets preferences that persist

across user sessions (eBay example)

Page 10: Building Dynamic Google Gadgets in Java

BEA Confidential

Gadgets are Dynamic Web Applications

Gadgets support user preferences for dynamic behavior

Page 11: Building Dynamic Google Gadgets in Java

BEA Confidential

Gadgets live on a web page

Gadgets need not include a page header/footer, they focus on the specific application they surface

iGoogle provides services to the Gadgets Page layout Preferences Minimize capability

Gadgets can also live on pages other than iGoogle Called Google Gadgets For Your Webpage

Page 12: Building Dynamic Google Gadgets in Java

BEA Confidential

Gadgets are NOT hosted by Google

Google Gadgets can be created by anyone

Gadget must be deployed on a public web server

Once deployed, anyone can use the Gadget

iGoogle supports a Gadget library to help users find Gadgets they may want to use It is optional to submit the Gadget for inclusion in the directory

Page 13: Building Dynamic Google Gadgets in Java

BEA Confidential

Agenda

Introduction to iGoogle and Google Gadgets

Google Gadgets: Why Should You Care?

Inside a Google Gadget

Building a Gadget in Java

Page 14: Building Dynamic Google Gadgets in Java

BEA Confidential

Gadgets, Why Should You Care?

Google Gadgets were the fastest growing product offered by Google in 2006 and had strong growth again in 2007 “The star performer for [2007] was Google’s personalized start page

service iGoogle which increased traffic in the 12 months to November by 267.64%.” (TechCrunch)

Useful Gadgets get heavily used “The Google gadget ecosystem received 960 million pageviews last

week” (Niall Kennedy)

Consider how your enterprise can benefit from deploying Google Gadgets A new channel to your customers

Page 15: Building Dynamic Google Gadgets in Java

BEA Confidential

Agenda

Introduction to iGoogle and Google Gadgets

Google Gadget: Why Should You Care?

Inside a Google Gadget

Building a Gadget in Java

Page 16: Building Dynamic Google Gadgets in Java

BEA Confidential

Two Types of Google Gadgets

URL Implementation is hosted on the web and is addressed via a URL Content is usually dynamic

HTML Implementation is contained wholly within the gadget descriptor Content is static, though may have JavaScript

We will focus on URL gadgets

Page 17: Building Dynamic Google Gadgets in Java

BEA Confidential

Google Gadgets are Web Pages

Google Gadgets are implemented behind public URLs

Any public server that speaks HTTP and returns HTML can be a Gadget host Apache web server PHP Ruby on Rails ASP .NET Java Application Servers (Servlet Containers)

Important: Your server must be exposed to the internet!

Page 18: Building Dynamic Google Gadgets in Java

BEA Confidential

Google Gadget Descriptor

XML file that describes the attributes of the Gadget

For URL Gadget, identifies the Gadget implementation URL URL can be any web page URL should return HTML that can render in a small area

Descriptor also provides metadata about the Gadget

Must exist somewhere on a public web server on the internet

Page 19: Building Dynamic Google Gadgets in Java

BEA Confidential

Google Gadget Descriptor

<?xml version="1.0" encoding="UTF-8" ?>

<Module>

<ModulePrefs

title="Simplest Gadget"

directory_title="Simplest Gadget"

title_url="http://wlp.bea.com"

description="Very very simple gadget."

height="120"

author="Peter Laird"

/>

<Content href="http://wlp.bea.com/blogs/simplest.html"

type="url" />

</Module>

Page 20: Building Dynamic Google Gadgets in Java

BEA Confidential

Add a Custom Google Gadget to iGoogle

Click on “Add Stuff”

Click on “Add gadget”

Enter the URL to the Gadget Descriptor

Done!

You have created your first Google Gadget

DEMO2

Page 21: Building Dynamic Google Gadgets in Java

BEA Confidential

Agenda

Introduction to iGoogle and Google Gadgets

Google Gadget: Why Should You Care?

Inside a Google Gadget

Building a Gadget in Java

Page 22: Building Dynamic Google Gadgets in Java

BEA Confidential

Java Servlets

Apache Tomcat, BEA WebLogic Server, and many others

Each provides an implementation of an HttpServlet Container

HttpServlets are Java classes that emit dynamic markup (usually HTML) over HTTP

Servlets can therefore be used to implement Google Gadgets

A programmer can implement a Servlet directly

Page 23: Building Dynamic Google Gadgets in Java

BEA Confidential

Related Java Servlet Technologies

Programming a Servlet can be tedious

Higher level rendering technologies are built on Servlets

They make this easier Java Server Pages (JSP) Velocity Templates Java Server Faces (JSF)

We will use JSP Intermixes dynamic capabilities into HTML files

Page 24: Building Dynamic Google Gadgets in Java

BEA Confidential

Helloworld.jsp<%@ page import="java.util.*" %>

<html>

<body>

<h1>Hello World JSP</h1>

<%

// Java code here

String color = “Red”;

%>

<p>My color: <%= color %> </p>

</body>

</html>

Page 25: Building Dynamic Google Gadgets in Java

BEA Confidential

Hello World Gadget

<?xml version="1.0" encoding="UTF-8" ?>

<Module>

<ModulePrefs title=“Hello World" />

<Content href=“http://host/helloworld.jsp” type="url" />

</Module>

DEMO5

Page 26: Building Dynamic Google Gadgets in Java

BEA Confidential

Helloworld.jsp using a preference<%@ page import="java.util.*" %>

<html>

<body>

<h1>Hello World JSP</h1>

<%

// Pick up the Google Gadget preference

String color = request.getParameter(“up_color”);

%>

<p>My color: <%= color %> </p>

</body>

</html>

Page 27: Building Dynamic Google Gadgets in Java

BEA Confidential

Hello World Gadget with Pref

<?xml version="1.0" encoding="UTF-8" ?>

<Module>

<ModulePrefs title=“Hello World" />

<UserPref name="color"

datatype="enum"

default_value="blue"

display_name="Background Color" >

<EnumValue value="blue" display_value="blue" />

<EnumValue value="green" display_value="green" />

<EnumValue value="orange" display_value="orange" />

<EnumValue value="yellow" display_value="yellow" />

</UserPref>

<Content href=“http://host/helloworld.jsp” type="url" />

</Module>

Page 28: Building Dynamic Google Gadgets in Java

BEA Confidential

Conclusion

Google Gadgets are popular

Gadgets are easy to implement

Gadgets can be placed on any page

Pick your favorite web technology

Java Servlet technology is a quick way to build dynamic Gadgets in Java