36
Web Forms: What Works and What Doesn’t? Peter Koletzke

Web Forms: What Works and What Doesn’t? Peter Koletzke

Embed Size (px)

Citation preview

Page 1: Web Forms: What Works and What Doesn’t? Peter Koletzke

Web Forms: What Works and

What Doesn’t?

Peter Koletzke

Page 2: Web Forms: What Works and What Doesn’t? Peter Koletzke

You can always deploy client/server forms on the Web without changes.

Perception

Page 3: Web Forms: What Works and What Doesn’t? Peter Koletzke

Agenda

• Overview of the architecture

• Tips and techniques

• What’s new with R.6/6i?

• Advice and conclusions

Page 4: Web Forms: What Works and What Doesn’t? Peter Koletzke

Framework for this Talk

• Attempting Web Forms in production Developer 1.5, 1.6, 2.1, 6.0 Your mileage may vary

• Observations and comments by other users

• Paper reviewed by Oracle

Page 5: Web Forms: What Works and What Doesn’t? Peter Koletzke

Survey

• Who’s tried Web Forms?(a.k.a., Web-deployed forms, Forms Server)

• Used it in production R.2, R.6?, R6i?

• Happy with it?• Favorite thing?• Unhappy with it?• Least favorite thing?

Page 6: Web Forms: What Works and What Doesn’t? Peter Koletzke

Why is this Question Worth Asking?

• Oracle is seriously promoting the technology

• Mixed reports – from Oracle and from users What else is new? Different because this is the Web

• Some people are confused about how Web Forms works

• Some try it, and become frustrated and discouraged

• Some rush in like a pack of lemmings diving into the ocean

Page 7: Web Forms: What Works and What Doesn’t? Peter Koletzke

Architecture• Multi-tier

Client Application server (also called “the client”) Database server

• New Developer working environment Need to copy files to app server Need to compile on app server Pre-R.6: run the browser to test R.6: use the “Run Form Web” button

• Best understood by examining the communication flows

Page 8: Web Forms: What Works and What Doesn’t? Peter Koletzke

Forms Server Flow: Form Startup

• Client browser requests the startup HTML file using the Uniform Resource Locator (URL)

• Web Listener finds file in the file system

• Listener sends HTML back to the browser

Client Application Server

Web ListenerWWWbrowser

HTML

Startup File

File System

Page 9: Web Forms: What Works and What Doesn’t? Peter Koletzke

Forms Server: Flow Form Running

• HTML file requests loading of Java files Class libraries and applet window (JInitiator)

• Listener sends files to client browser• Browser starts applet window (“Forms

Client”)• Listener requests runtime session

from Forms Server Listener• Forms Listener connects Forms

Runtime to client• Forms app runs on app server but

displays on client in applet window

Page 10: Web Forms: What Works and What Doesn’t? Peter Koletzke

Application Server

Database Server

Applet window

Java Files

Forms Files

GIF Files

File System

Database

Client

Web Listener

Forms Server Listener

Forms RuntimeEngine

WWWbrowser

Page 11: Web Forms: What Works and What Doesn’t? Peter Koletzke

Why is This Better?

Centralization of runtime

Centralization of code

Centralization of maintenance

Centralization of administration

“Thin” client

Easily scalable

Highly available

0

50

100

150

200

250

300

350

400

450

Data entry Navigation Query Validation

Developer WebWindows TerminalDeveloper C/S

Average Number of Packets

Page 12: Web Forms: What Works and What Doesn’t? Peter Koletzke

Why is This Different?

• The form is running on the app server not the client

• Only the presentation layer is on the client

• The presentation layer uses a Java window

• Forms objects are rendered in Java classes

• The environment is Java

Page 13: Web Forms: What Works and What Doesn’t? Peter Koletzke

Where Does Web Forms Run?

Page 14: Web Forms: What Works and What Doesn’t? Peter Koletzke

Tip: Read The Manuals• Yes, there are manuals - online

Form Builder menu: HelpManuals, Online Manuals

• Guidelines for Building Applications “Deploying Applications on the Web” chapter

• Configuring the Oracle Developer Server• Mandatory reading

“Feature restrictions” Font mapping Startup HTML file Introduction to the Forms Server

• Search for Note 68814.1 on MetaLink for setup tips OOW 2000 Paper on Forms Server

Page 15: Web Forms: What Works and What Doesn’t? Peter Koletzke

Tip: Read the White Papers

• 1. Oracle Developer Server - Technical FAQ

• 2. Oracle Developer Server: How to Tune Deployment of Internet Applications

• Oracle Technology Network Link from the opening page

to products - Forms, Developer

http://technet.oracle.com/products/developerhttp://technet.oracle.com/products/forms

These may change

Page 16: Web Forms: What Works and What Doesn’t? Peter Koletzke

System Variables

• Some values are different from client/server :SYSTEM.MOUSE_BUTTON_SHIFT_STATE

In c/s,“Ctrl+” for control key and mouse button In Web Forms, it is “Control+”

:SYSTEM.MOUSE_BUTTON_PRESSED Normally “1” and “3”

– For left and right button Web Forms: “1” and nothing

• Test for the environment:

The docs mention that this is O/S-specific

get_application_property(USER_INTERFACE) = ’WEB’

Page 17: Web Forms: What Works and What Doesn’t? Peter Koletzke

Use :SYSTEM.MOUSE_BUTTON_MODIFIERS

• O/S independent• No need to test for

USER_INTERFACE

• Returns values like: "Shift+” "Command+"

"Caps Lock+” "Super+""Control+” "Hyper+”"Alt+"

• Documented in the help system Use the Find tab to locate the topic

Page 18: Web Forms: What Works and What Doesn’t? Peter Koletzke

Operating System Calls

• Forms runs on the app server The host operating system is on the app server

• HOST built-in works on the application server• Registry reads and writes go to the app

server• OCX, OLE, DDE, HINT.PLL don’t work• ORA_FFI and TEXT_IO operate on the app

server If the server can see the client machine, you can read and

write client files with TEXT_IO Same idea with printers FFI calls may break if you port to another O/S

Page 19: Web Forms: What Works and What Doesn’t? Peter Koletzke

Why Worry About This?

Page 20: Web Forms: What Works and What Doesn’t? Peter Koletzke

Trigger Considerations

• Some mouse triggers don’t work WHEN-MOUSE-ENTER WHEN-MOUSE-LEAVE WHEN-MOUSE-MOVE

• Be careful with form-level mouse triggers• Avoid other mouse triggers

WHEN-MOUSE-CLICK, WHEN-MOUSE-UP, and WHEN-MOUSE-DOWN

Extra network traffic

• Trigger events are bundled and sent as one packet Item triggers, for example

Page 21: Web Forms: What Works and What Doesn’t? Peter Koletzke

Other Tips and Differences

• Use the most current version of JInitiator No client install - downloads when needed You can use IE or Netscape - any version after 3 Not required for IE v.5, but recommended

• Key mappings are different Uses FMRWEB.RES by default Substitute FMRPCWEB.RES for

the same key mapping as client/server These are editable ASCII files

• No magic menu items for Cut, Copy, Paste Ctrl-X, Ctrl-C, Ctrl-V do work In ORACLE_HOME/

FORMS60 directory

Page 22: Web Forms: What Works and What Doesn’t? Peter Koletzke

Tuning

• Simplify the user interface (UI) features, in general

• Reduce the size of the first form Faster to start up the application Use the splash page trick Syntax later

• Reduce Bandwidth Avoid timers

One-time triggers are OK

Avoid extra graphics Use rectangles and lines, no circles or curves

Page 23: Web Forms: What Works and What Doesn’t? Peter Koletzke

More Tuning

• Use the prompt property not boilerplate text

• Hide objects not initially required Set the Visible property to “No”

• Development tuning: use a form “shell” A form that starts other forms Compile your forms and start from a running form (the

shell) Helps speed up development Especially useful in the Web environment

Page 24: Web Forms: What Works and What Doesn’t? Peter Koletzke

Windows and Canvases• There is no MDI window in R.1

and R.2 You can show multiple windows To show the console (status line), set the form

property Console Window No MDI toolbar - use menu or window toolbar

• Developer R.6 has MDI windows • Consider not using a

toolbar Not an HTML standard Use canvas buttons instead

File Edit View Insert Window Help

Page 25: Web Forms: What Works and What Doesn’t? Peter Koletzke

Visual Aspects• Use visual attributes for buttons

The Windows manager does not color them as it does in client/server

• Toolbar icons are .GIF files Not .ICO files Should be located with the forms files

• Fonts should have Java equivalent There are only a few fonts in Java (Dialog, Serif,

SansSerif, Monospaced, DialogInput) MS Sans Serif becomes Dialog, use 9 point Documented in Chapter 2 of the manual

Page 26: Web Forms: What Works and What Doesn’t? Peter Koletzke

Memory Issues

• Memory on the app server Each client connection takes a chunk Some memory is shared

Code segments and boilerplate

• Memory on the client OPEN_FORM takes more memory

Form startup will be faster if you return to an open form

NEW_FORM releases client and server memory

If no one else using the form Requires more startup time

Oracle can get100-500 users

per CPU

Page 27: Web Forms: What Works and What Doesn’t? Peter Koletzke

New R.6 Parameters• Used in the HTML startup file

(serverArgs)• Default is an MDI frame

You can turn Multiple Document Interface off usesdi=yes

• Run form in the browser window Not separate window separateFrame=false

• Splash page that shows while Forms loads Can “trick” the users

splashScreen=co_logo.gif

Page 28: Web Forms: What Works and What Doesn’t? Peter Koletzke

More R.6 Parameters - OLAF

• “Oracle look and feel” Rounded buttons, scrollbars, everything Animated alert icons lookAndFeel=oracle

• Pre-designed color palettes for Oracle look and feel Blue, Khaki, Olive, Purple,

Red, Teal, Titanium

colorScheme=olive

• Background density darkLook=true

Page 29: Web Forms: What Works and What Doesn’t? Peter Koletzke
Page 30: Web Forms: What Works and What Doesn’t? Peter Koletzke

More R.6 OLAF Parameters

• LOV button Button appears automatically

if item has an LOV In registry.dat file on the app server: app.ui.lovButton=true

• Required items with yellow background (registry.dat) app.ui.requiredFieldVA=true app.ui.requiredFieldVABGColor=255,242,203

• Read-only items with light gray background ServerArgs again readOnlyBackground=”true”

Page 31: Web Forms: What Works and What Doesn’t? Peter Koletzke

Other New R.6 Stuff

• You can use JavaBeans in Web Forms Replaces objects such as buttons and items Can also use a Bean Area

• HTTP 1.1 support Full production with v.6i Details in white paper 2 (mentioned above)

• Run Form Web button Tests the form in a JVM Use this frequently Also test the form on the Web

Page 32: Web Forms: What Works and What Doesn’t? Peter Koletzke

Advice• Mostly common sense

Do careful tests of this environment Note the things that work differently

• Get on the list serves & forums IOUG-A - www.ioug.org ODTUG - www.odtug.com

• Learn to use the word “deployment” (not Web Forms) Forms running on the Web using

the Forms Server

• Remember that Oracle Apps are a driving force R 10.7 is web-enabled, 11i is only Web Apps are the biggest user of Developer

Page 33: Web Forms: What Works and What Doesn’t? Peter Koletzke

Advice

• Set user expectations It’s not client/server, it’s web-deployed

Forms! Read the docs and white papers

• Keep in mind that this is a new environment There will be a new set of workarounds and

bugs for the Web Expect response time and look and

feel to be different

Page 34: Web Forms: What Works and What Doesn’t? Peter Koletzke

Conclusions• You can deploy on the Web• Performance improves daily• Centralization, centralization,

centralization• Intranet, Extranet, Internet

• Client/server apps may not run the same way on the web You must design for the Web Trigger and other differences

Page 35: Web Forms: What Works and What Doesn’t? Peter Koletzke

Conclusions

• Although it is the same tool, it is a totally new environment

• R.1 was beta• R.2 is V.1 is useable, but a bit

bumpy• R.6/6i holds some promise

Page 36: Web Forms: What Works and What Doesn’t? Peter Koletzke

Author Contacts• Peter Koletzke

http://www.quovera.com

http://ourworld.compuserve.com/homepages/Peter_Koletzke

• Oracle Press books:• Oracle Developer Advanced Forms and Reports• Designer Handbook, 2nd Ed.• Watch for JDeveloper book in early 2001• All co-authored by Dr. Paul Dorsey