Web applications and Oracle

Download Report

Transcript Web applications and Oracle

Web applications and Oracle
FIS 432/632
Intranets, Extranets, and the
Internet
The Ideal Client
The Five Ways of Building Oracle
Web Applications
• Java Servlets (and Java Server Pages)
• PL/SQL Stored Procedures (and PL/SQL
Server Pages)
• Designer PL/SQL Web Generator
• Oracle 9i Application Server Portal
(previously called WebDB)
• Oracle Developer (Forms and Reports)
Java Servlets
Java Servlets
• The user requests a Web page (by typing in a URL, clicking a link, or
pressing a button).
• The Apache HTTP server determines that the request is for a Java
servlet and passes the request to the mod_jserv module.
• The mod_jserv module passes the request to the JServ servlet engine.
• The JServ servlet engine loads the requested servlet, creates a request
object, which includes all the information from the request, and a
response object, and passes both to the servlet.
• The servlet class executes, using JDBC to connect to the database if
necessary. It writes the output to the response object.
Advantages and Disadvantages
Advantages
Disadvantages
Java is a more modern and feature-rich
programming language than PL/SQL
New language to learn for many Oracle
developers
Java Servlets are not bound to a specific
vendor
Need much code (JDBC) or nonstandard features (SQLJ) to retrieve
data from database
Some overhead in establishing a
database connection
PL/SQL Web Applications
PL/SQL Web Applications
• The user requests a Web page by typing in a URL, clicking a linkor
pressing a button.
• The Apache HTTP server determines that the request is for a PL/SQL
stored procedure and passes it to mod_plsql.
• The mod_plsql module uses the information in the URL along with the
configuration information in the Database Access Descriptor to
determine to which Oracle user in which database it should connect. It
then invokes the procedure in the database.
• The stored procedure runs, using the procedures in the HTTP package
to write output in a buffer.
• The mod_plsql module returns the output in the buffer through the
Apache HTTP server to the Web browser.
Advantages and Disadvantages
Advantages
Disadvantages
Within the limitations of HTML,
”everything” is possible
All code is hand-written
(Documentation? Maintainability?
Quality?)
Easy and fast to set up
Lack of integrated tools:
1) Write HTML in HTML tool
2) Convert to PL/SQL
3) Add business logic in a PL/SQL tool
Leverages existing PL/SQL skills
Oracle Designer
• Normal PL/SQL Web applications, i.e.
HTML-based
• Desired functionality is modelled in the
Designer tools together with the data model
• Designer PL/SQL Web Generator produces
PL/SQL code from the model
Advantages and Disadvantages
Advantages
Disadvantages
High quality documentation generated
automatically
Steep learning curve
High maintainability
Difficult to control the generated
application through preferences and
templates
Option to change front end (Forms,
PL/SQL Web, maybe Java?)
Some limitations to the applications
possible
Oracle Portal
• HTML-based (using PL/SQL)
• Browser-based: All development work is
done in the browser with Wizards
• Portal generates PL/SQL stored procedures
making extensive use of special Portal
packages
Advantages and Disadvantages
Advantages
Disadvantages
Fast and easy - Power users can develop
small apps
Strictly limited to the functionality
offered by the Portal wizards
No client installation needed
No documentation (and no place to put
documentation in the code)
Also does site management and some
basic DBA functions
Oracle Forms: Getting the Forms
Applet to the User
Oracle Forms: Getting the Forms
Applet to the User
• The user requests the first Web page of the application.
• The Apache HTTP server determines that the request is for a CGI
program and passes the request to the mod_cgi module.
• The mod_cgi module starts the Forms CGI program.
• The Forms CGI program produces an HTML page with an instruction
to load the Forms applet.
• The HTML page is passed back to the Web browser through the
mod_cgi module and the HTTP server.
• The Web browser automatically requests the Forms applet from the
HTTP server (and possibly the JInitiator Java plug-in).
• The HTTP server delivers the Forms applet (and JInitiator) to the Web
browser, that starts the JVM and the applet.
Oracle Forms: Running a Web
Forms Application
Oracle Forms: Running a Web Forms
Application
• The Forms applet contacts the Forms Listener to
start a session. This connection does not involve
the Apache HTTP server in any way—it goes
straight from the applet to the Forms Listener.
• The Forms Listener starts a Forms Runtime
Engine for that client.
• The Forms Runtime Engine establishes a
connection to the database and to the client applet.
Advantages and Disadvantages
Advantages
Disadvantages
Full control over the user interface
Needs a specific Java Virtual Machine
(IE5 or separate plug-in to download)
Leverage existing Forms skills
Longer startup time
(applet download, JVM initialization)
Obvious first migration path for
Client/Server applications
Needs more hardware
(Server: 10+ MB RAM per client, Client:
64+ MB RAM)
Oracle Reports
•
•
•
•
•
•
•
•
•
Oracle Reports
The user requests the report by typing in a URL or clicking a link.
The HTTP server passes the request to the mod_cgi module.
The mod_cgi module invokes the Reports CGI program.
The Reports CGI or servlet reformats the request and passes it on to
the Reports Server.
The Reports Server checks whether the desired report already exists in
the report cache. If the report is not in the cache, the Reports Server
assigns the report to the next available Reports Runtime Engine.
The Reports Runtime Engine connects to the database, retrieves and
formats the data, and writes the report in the cache.
The Reports Server instructs the requesting Web browser to pick up the
report through the HTTP server.
The Web browser requests the report from the Web server.
The Web server delivers the report.
Advantages and Disadvantages
Advantages
Disadvantages
Familiar tool
Complicated to control
layout
Productive wizards
Choice of output formats:
HTML, HTML with CSS, PDF
Choose Your Weapon
• Who will be using
your application?
Intranet, extranet,
Internet users?
• How complex is
the user interface
you need?
Building Applet-Based
Applications
• Using Web Forms
• Using Java applets
•
Building HTML-Based
Applications
What language
skills do your
developers
have?
• Is it important
to be
independent of
Oracle?
Generating Applications
If you can live with the user interface they offer, Oracles code-generating tools allow much higher
developer productivity
• Oracle Portal is fully browser-based: The
application developer defines the application by
filling in fields in a form
• Oracle Designer is a full-featured CASE tool:
The developer uses a number of development
tools that work against a common repository
storing a model of your application.
Could I Have That in Writing?
• Printing from Java applets is tedious (and is for
security reasons disabled by default)
• Printing from HTML gives only rudimentary
control over the appearance of the printed page.
• PDF format allows you to produce good-looking
reports in a Web browser and on paper
• Oracle Reports can produce reports in both HTML
and PDF
Summary
• Heads-down users might need a Java applet application:
Use Oracle Forms
• Casual users and Internet users need an HTML-based application
• Build HTML-based applications with Oracle Designer if you can
• You can use either PL/SQL or Java for handwritten parts of HTMLbased applications:
– Java is vendor independent and offers the advantages of modern object-oriented
programming
– PL/SQL offers unbeatable performance for database-intensive applications.
• Portal is promising as integration point for all applications, but not a
real alternative for application development
The Designer Approach
•
•
•
•
Computer-Aided Software Engineering
A Model stored in a Repository
Generates code at the push of a button
Many ways to use
– Information Engineering
– Rapid Application Development
• Version Control possible
The Designer Tools
Building Applications with
Designer
Logical Data
Design
Data/Function
Mapping
Transform
Physical Table
Design
Function
Design
Transform
Table/Module
Mapping
Database
Tables etc.
PL/SQL
packages
Module
Design
Building the Database
When building the database, the end result is the same: tables in the
database. But you have two ways of getting there: you can either start
with an Entity-Relationship model in the E-R modeler or go directly to
the Design Editor.
Using the
E-R Diagrammer
Using the
Design Editor
Advantages
Disadvantages
Focus on
logical design
Several tools
involved
Entire design
in one step
Must code PK
and FK columns
Design Capture
• Reading the definition of existing
database objects into the
Repository
• Making changes in Designer
• Generating a script to implement
the changes
Building an Employee List
The hierarchy of
objects:
• Module
• Module Component
• Table Usage
Context items:
The columns appearing
on the Record List
The Basic Employee List
Without setting
preferences and
applying formatting,
the application
doesn't look very
appealing
Important Generator Preferences
Name
Description
Value
Comment
MODSUB
Substitute HTML
Reserved Characters
No
To allow HTML tags in user
text
MODALR
Startup Page: About
Page Hyperlink
No
To remove the About link
PKGLST
PL/SQL Package
List
MODSFA
Standard Footer on
All Pages
MODSFT
Standard Footer
MODSHA
Standard Header on
All Pages
MODSHD
Standard Header
Format
Yes
format.pageEnd
Yes
The HTML-generating packages recognized by Designer
Instruction to use footer
A call to the Format package
Instruction to use header
format.pageStart A call to the Format package
('Module Title')
Formatted Employee List
Using a format
package and a
standard preference
set improves the look
Adding a Query Form
• Appears automatically if any items are queryable
• Intelligent date interval
• Oracle interMedia Text querying
The Query Form for the
Employee List
From and To
date with
pop-up calendar
Maintain Employees
• Continue your work on a copy
• Add insert, update, delete functionality
to the module component
• Define operations on bound items
Building an Employee List
The hierarchy of objects:
• Module
• Module Component
• Table Usage
• Lookup tables
Adding Lookups
Employee Detail with Lookup
Department name
comes from lookup
table
Manager name
selected via
List-of-Values
Multi-Record View Forms
Multi-record View
Forms are a
Designer6i feature
Master-Detail Design
Master-Detail Web Page