Sei sulla pagina 1di 28

Building Dynamic Google Gadgets in Java

Peter Laird Managing Architect WebLogic Portal BEA Systems

Peter Laird. | 1

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 Cisco

DBA

CCNA

Regular contributor to BEAs developer website


http://dev2dev.bea.com

BEA Confidential

Agenda
Introduction to iGoogle and Google Gadgets Google Gadgets, Why Should You Care? Inside a Google Gadget Building a Gadget in Java

BEA Confidential

Housekeeping
This is a 30 Minute Presentation
A

lot to cover, will move very fast focus more on Gadgets, less on Java web development

Will

No network connectivity in this building


Google Will

Gadgets necessarily require internet access for live demos

show movies of demos instead

BEA Confidential

Agenda
Introduction to iGoogle and Google Gadgets Google Gadget: Why Should You Care? Inside a Google Gadget Building a Gadget in Java

BEA Confidential

Introduction to iGoogle (demo)

DEMO

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 users account and retrieved when logging in again

BEA Confidential

Google Gadgets
Gadgets are small user interface components
Could

also be called portlets or widgets

Example: eBay Search Plus Gadget

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 User User

dynamic the content changes over time, e.g. a news gadget

input dynamic the content changes via a user interacting with the gadget (forms, links, etc) preference dynamic the user sets preferences that persist across user sessions (eBay example)

BEA Confidential

Gadgets are Dynamic Web Applications


Gadgets support user preferences for dynamic behavior

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 capability

Preferences Minimize

Gadgets can also live on pages other than iGoogle


Called

Google Gadgets For Your Webpage

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

BEA Confidential

Agenda
Introduction to iGoogle and Google Gadgets Google Gadgets: Why Should You Care? Inside a Google Gadget Building a Gadget 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 Googles 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

BEA Confidential

Agenda
Introduction to iGoogle and Google Gadgets Google Gadget: Why Should You Care? Inside a Google Gadget Building a Gadget in Java

BEA Confidential

Two Types of Google Gadgets


URL
Implementation Content

is hosted on the web and is addressed via a URL

is usually dynamic

HTML
Implementation Content

is contained wholly within the gadget descriptor

is static, though may have JavaScript

We will focus on URL gadgets

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 PHP Ruby ASP Java

web server

on Rails Application Servers (Servlet Containers)

.NET

Important: Your server must be exposed to the internet!

BEA Confidential

Google Gadget Descriptor


XML file that describes the attributes of the Gadget For URL Gadget, identifies the Gadget implementation URL
URL URL

can be any web page 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

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>

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

BEA Confidential

Agenda
Introduction to iGoogle and Google Gadgets Google Gadget: Why Should You Care? Inside a Google Gadget Building a Gadget 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

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 Java

Server Pages (JSP) Templates Server Faces (JSF)

Velocity

We will use JSP


Intermixes

dynamic capabilities into HTML files

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>
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

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>
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>

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

BEA Confidential

Potrebbero piacerti anche