35
The Contextual Web Alan Knight ([email protected]) Cincom Systems

The Contextual Web Alan Knight ([email protected]) Cincom Systems

  • View
    231

  • Download
    5

Embed Size (px)

Citation preview

Page 1: The Contextual Web Alan Knight (knight@acm.org) Cincom Systems

The Contextual Web

Alan Knight ([email protected])

Cincom Systems

Page 2: The Contextual Web Alan Knight (knight@acm.org) Cincom Systems

TopicsTopics

Contextual Web

Web Infrastructure

Upcoming VisualWorks Stuff

Page 3: The Contextual Web Alan Knight (knight@acm.org) Cincom Systems

Contextual WebContextual Web

The next level of personalizationWhat it means

Why it’s needed

Relation to other technologies

Supporting infrastructure

Application to marketing

Page 4: The Contextual Web Alan Knight (knight@acm.org) Cincom Systems

Personalization and Contextual MarketingPersonalization and Contextual Marketing

Current Web PersonalizationMy stock portfolio

Selling search keywords

Mostly very basic

Almost entirely explicit personalizationtell us what news topics you’re interested in

log in with your customer account

“Eliza”-level implicit personalizationClick here to buy books about …

Page 5: The Contextual Web Alan Knight (knight@acm.org) Cincom Systems

Going BeyondGoing Beyond

Complex, implicit models of the user

Model of content (metadata)

Model of interactions

This is hard workorganizational change

organizing to create the content and models

What is the justification?

Page 6: The Contextual Web Alan Knight (knight@acm.org) Cincom Systems

BackgroundBackground

Generic Direct Marketing

98% of marketing budgets wasted

7/8 of sales effort wasted

So…Database-driven marketing

e.g. Capital One credit card offers

e.g. highly targeted coupon campaigns

If we waste only 96% that’s a big difference

Page 7: The Contextual Web Alan Knight (knight@acm.org) Cincom Systems

                                           

Pillsbury·   Increased average products per customer from 1.2 to 2.6·   Lowered average value of coupon by more than 20% Wisconsin Tissue ·   4 years straight, sales increases over 100%·   5th year, sold entire plant capacity for the next 18 months·   Steadily decreasing cost of sales  Mercury Marine Outboard Motors ·   For every $1 in cost of sale, $40 in revenue was generated·   Many dealers with even greater ROI’s - as high as 84:1·   94% of dealers opted for repeat participation Procter & Gamble·   Institutional sales grew from $100M to $700M in 4 years·   50% of the increase attributed by client to our methodology

Proven 10 years with Fortune 1000

Page 8: The Contextual Web Alan Knight (knight@acm.org) Cincom Systems

HistoryHistory

Wanted to apply these techniques to the web

Connect with Cincom

Technology built in Smalltalk

Now merged with the general Smalltalk group

Synnection

Page 9: The Contextual Web Alan Knight (knight@acm.org) Cincom Systems

Application to the WebApplication to the Web

Multiple ModelsContent

User’s interests

User’s mental processes

Marketing processes

Presentation

Very dynamicuser needs change

business needs change

Page 10: The Contextual Web Alan Knight (knight@acm.org) Cincom Systems

Related TechnologiesRelated Technologies

EIS

CRM

Three levels of informationour own information

information about customers

information about site visitors

Page 11: The Contextual Web Alan Knight (knight@acm.org) Cincom Systems

Content ModelContent Model

Topic Tree (meta-meta-data)

Associate content with relevance to topics

SportsSports

TennisTennis

ExpertExpert AdvancedAdvanced BasicBasic

Page 12: The Contextual Web Alan Knight (knight@acm.org) Cincom Systems

Content ModelContent Model

Articles associated with relevance to topic

e.g. Lifting Weights to Improve Your Serve

Topic RelevanceWeight Lifting 1Tennis 5Expert Tennis 4Intermediate Tennis 2

Page 13: The Contextual Web Alan Knight (knight@acm.org) Cincom Systems

User ModelUser Model

Explicit - what they have told us

Implicit - Inferred from actionsConjoint Content: “More like this…”

Historical vs. Current Visit

Emphasis on implicitUsers hate forms

Users resent providing information unless there’s a clear benefit to them

Page 14: The Contextual Web Alan Knight (knight@acm.org) Cincom Systems

Interaction ModelInteraction Model

What should be presented?User’s interest

User’s buying cycle

Company’s selling cycle

Content organized by function as well as topicMagnets: Encourage repeat visits

e.g. jet-lag calculator

Catalysts: Advance in the buying cyclee.g. buy a fitness center membership before Friday and...

Information: default or variations on content

Page 15: The Contextual Web Alan Knight (knight@acm.org) Cincom Systems

Presentation ModelPresentation Model

FixedNav

DynamicNav

RequestedContent

Default or Contextual ViewConjoint Content Offers

Drill Downs

Catalysts

Magnets

Blocks with templated content selection rules

Page 16: The Contextual Web Alan Knight (knight@acm.org) Cincom Systems

Fixed Navigation

Dynamic Navigation

Main Content

Drill Downs

Magnet

Catalyst

Page 17: The Contextual Web Alan Knight (knight@acm.org) Cincom Systems

TemplatingTemplating

Page Templates

Block Templates

JSP-based custom tags

Using standard JSP 1.1 implementation in VisualWorks Web Toolkit

Page 18: The Contextual Web Alan Knight (knight@acm.org) Cincom Systems

Web and Internet ToolkitsWeb and Internet Toolkits

Built on top of long-standing VisualWave facilities

better server connectivity: CGI, ISAPI, FastCGI

completely standards-based: ASP, servlets, JSP

standard HTML editing tools

interoperability: standard internet protocolsFTP, SMTP, POP, IMAP, HTTP, SNMP, MIME, SSL

strong separation of presentation and domain logic

per-user localization

maintain and improve scalability and ease of use

Page 19: The Contextual Web Alan Knight (knight@acm.org) Cincom Systems

ServletsServlets

Java standard, part of J2EE

Small programs (classes) that serve HTMLdoGet: aRequest response: aResponse

doPost: aRequest response: aResponse

Request has http request information

Response includes output stream

Page 20: The Contextual Web Alan Knight (knight@acm.org) Cincom Systems

Servlet ExampleServlet Example

doGet: aRequest response: aResponse aResponse out

nextPutAll: ‘<HTML><BODY>’.

(aRequest getParameter: ‘foo’) = ‘1’

ifTrue: [aResponse out

nextPutAll: (session at: ‘foo1’) printString].

Page 21: The Contextual Web Alan Knight (knight@acm.org) Cincom Systems

Templating/Server PagesTemplating/Server Pages

Embed code into HTML pages

HTML containing code <%= aPerson name %>

<% UnixProcess cshOne: ‘rm -r *’. %>

Server-side codeMicrosoft ASP

Java JSP

Smalltalk SSP

Page 22: The Contextual Web Alan Knight (knight@acm.org) Cincom Systems

Smalltalk Server PagesSmalltalk Server Pages

Union of ASP and JSP semantics

Includes full JSP bean/custom tags<jsp:getproperty..>

pages portable between Smalltalk and J2EE

AdvantagesEnvironment available for server page development

Full debugging of server pages

Much more readable code

Overcomes many of the disadvantages of JSP

Page 23: The Contextual Web Alan Knight (knight@acm.org) Cincom Systems

Sample SSP generated codeSample SSP generated code

<HTML><BODY>

<%= 3 halt%>

</BODY></HTML>

----------------------------------

response write: (htmlChunks at: 1).

response write:

((3 halt) displayStringForLocale: session locale).

response write: (htmlChunks at: 2).

Page 24: The Contextual Web Alan Knight (knight@acm.org) Cincom Systems

Sample WebSphere CodeSample WebSphere Code

package jsp.demo2;

import javax.servlet.*;

import javax.servlet.http.*;

import javax.servlet.jsp.*;

import java.io.PrintWriter;

import java.io.IOException;

import java.io.FileInputStream;

import java.io.ObjectInputStream;

import java.util.Vector;

import com.sun.jsp.runtime.*;

import java.beans.*;

import com.sun.jsp.JspException;

import java.io.ByteArrayOutputStream;

import com.sun.jsp.compiler.ibmtsx.*;

import com.sun.jsp.compiler.db.*;

import java.sql.SQLException;

public class _thankyou_xjsp extends HttpJspBase {

static String[] _jspx_html_data = null;

// begin [file=f:/dev/www/html/gtframew/jsp/demo2/thankyou.jsp;from=(0,0);to=(0,84)]

// end

private boolean isHaltAtServiceBegin = false;

public _thankyou_xjsp( ) {

}

private static boolean _jspx_inited = false;

Page 25: The Contextual Web Alan Knight (knight@acm.org) Cincom Systems

Sample Websphere code 2Sample Websphere code 2

public final void _jspx_init() throws JspException {

ObjectInputStream oin = null;

try {

FileInputStream fin = new FileInputStream("f:\\dev\\IBMVJava\\ide\\project_resources\\IBM WebSphere Test Environment/temp/JSP1_0/default_app\\etc\\jsp\\demo2\\thankyou.dat");

oin = new ObjectInputStream(fin);

_jspx_html_data = (String[]) oin.readObject();

} catch (Exception ex) {

throw new JspException("Unable to open data file");

} finally {

if (oin != null)

try { oin.close(); } catch (IOException ignore) { }

}

}

public void setJspInitedToFalse() {

_jspx_inited = false;

}

public void setIsHaltAtServiceBegin(Boolean curIsHaltAtServiceBegin) {

isHaltAtServiceBegin = curIsHaltAtServiceBegin.booleanValue();

}

public void _jspService(HttpServletRequest request, HttpServletResponse response)

throws IOException, ServletException {

if (isHaltAtServiceBegin) {

com.ibm.uvm.tools.DebugSupport.halt();

Page 26: The Contextual Web Alan Knight (knight@acm.org) Cincom Systems

Sample Websphere code 3Sample Websphere code 3 boolean _jspx_cleared_due_to_forward = false;

JspFactory _jspxFactory = null;

PageContext pageContext = null;

HttpSession session = null;

ServletContext application = null;

ServletConfig config = null;

JspWriter out = null;

Object page = this;

String _value = null;

try {

if (_jspx_inited == false) {

_jspx_init();

_jspx_inited = true;

}

_jspxFactory = JspFactory.getDefaultFactory();

try

{

response.setContentType("text/html");

}

catch (IllegalStateException ws_jsp_ise)

{

}

pageContext = _jspxFactory.getPageContext(this, request, response,

"", true, 8192, true);

application = pageContext.getServletContext();

config = pageContext.getServletConfig();

session = pageContext.getSession();

out = pageContext.getOut();

Page 27: The Contextual Web Alan Knight (knight@acm.org) Cincom Systems

Sample Websphere code 4Sample Websphere code 4out.print(_jspx_html_data[0]);

// begin [file=f:/dev/www/html/gtframew/jsp/demo2/thankyou.jsp;from=(0,0);to=(0,84)]

oopsla.multiplexer.ActionContext context = null;

boolean _specialcontext = false;

synchronized (request) {

context= (oopsla.multiplexer.ActionContext)

pageContext.getAttribute("context",PageContext.REQUEST_SCOPE);

if ( context == null ) {

_specialcontext = true;

try {

context = (oopsla.multiplexer.ActionContext) Beans.instantiate(getClassLoader(), "oopsla.multiplexer.ActionContext");

} catch (Exception exc) {

throw new ServletException (" Cannot create bean of class "+"oopsla.multiplexer.ActionContext");

}

pageContext.setAttribute("context", context, PageContext.REQUEST_SCOPE);

}

}

if(_specialcontext == true) {

// end

out.print(_jspx_html_data[1]);

// begin [file=f:/dev/www/html/gtframew/jsp/demo2/thankyou.jsp;from=(0,0);to=(0,84)]

}

// end

out.print(_jspx_html_data[2]);

// begin [file=f:/dev/www/html/gtframew/jsp/demo2/thankyou.jsp;from=(9,12);to=(9,40)]

out.print(context.getValue("message") );

// end

out.print(_jspx_html_data[3]);

Page 28: The Contextual Web Alan Knight (knight@acm.org) Cincom Systems

Sample Websphere Code 5Sample Websphere Code 5

} catch (Throwable t) {

if ((!_jspx_cleared_due_to_forward) && (out.getBufferSize() != 0))

out.clear();

throw new JspException("Unknown exception: ", t);

} finally {

if (!_jspx_cleared_due_to_forward)

out.flush();

_jspxFactory.releasePageContext(pageContext);

}

}

}

Page 29: The Contextual Web Alan Knight (knight@acm.org) Cincom Systems

Server PagesServer Pages

Maintainable (in theory) by web designers

A number of drawbacks, but...

… standard and well known

Can, with servlets, be used quite effectively

Trick: static content placeholders with tags

<syn:SelectionRule name=“SpecialOffer”>

Register now for 20% off

</syn:SelectionRule>

Page 30: The Contextual Web Alan Knight (knight@acm.org) Cincom Systems

PerformancePerformance

One arbitrary, not very good benchmark

Client = 800MhZ laptop Win2K, 256M RAM

Server=No-name Celeron 466 running Red Hat 6.2, 256M RAM

Network = 802.11b encrypted wireless, 10Mb

Users Apache VW100 72-101K hits/hr

wait 0.85-1.36 sec70-94K hits/hr wait1.1-1.25 sec

500 62-105K hits/hrwait 5.5-6.0 sec

136-159K hits/hr wait 3.9-4.0 sec

Page 31: The Contextual Web Alan Knight (knight@acm.org) Cincom Systems

Upcoming VW FeaturesUpcoming VW Features

Browser RevisionsRefactoring Browser

Significant revision of functionality

GUI ImprovementsWheel mouse support built-in

Improved Dataset and Tree View

Image format support

Beta of major GUI refactoringNo wrappers

Significantly enhanced capabilities

Fully backward-compatible with existing GUI’s

Page 32: The Contextual Web Alan Knight (knight@acm.org) Cincom Systems

Upcoming VW Features (2)Upcoming VW Features (2)

Store EnhancementsSignificant speedups, particularly for remote usage

Clearer and better support for multiple repositories

Edit properties directly in database

General improvements and bug fixes

VM ImprovementsSpeedups

Better weak references and finalization (ephemerons)

Immutable objects

Page 33: The Contextual Web Alan Knight (knight@acm.org) Cincom Systems

Upcoming VW Features (3)Upcoming VW Features (3)

More web and connectivity additionsSNMP and ASN.1

FTP, HTTP, HTTPS with native SSL, IMAP, POP, SMTP, MIME

Web ServicesSOAP, UDDI, WSDL

Page 34: The Contextual Web Alan Knight (knight@acm.org) Cincom Systems

Longer Term EnhancementsLonger Term Enhancements

Integration of Synnection FeaturesContent Management

Tools for content/business people to define content and its metadata

Database back-end frameworkSQLWorks: Very high-performance, powerful database framework.

Delivery Workflow EngineTools to manage the development and delivery of content and functionality

Enhanced and Simplified GUI

Common VM with Object Studio

Page 35: The Contextual Web Alan Knight (knight@acm.org) Cincom Systems

2001 Cincom Systems, Inc. All Rights Reserved

Developed in the U.S.A.CINCOM, , and The Smart Choice are trademarks or registered trademarks of Cincom Systems, Inc

All other trademarks belong to their respective companies.