Customizing a packaged application for a J2EE environment

flashyfarctateInternet και Εφαρμογές Web

30 Ιουλ 2012 (πριν από 4 χρόνια και 11 μήνες)

334 εμφανίσεις

www.odtug.com

1

ODTUG Kaleidoscope 2006

C
USTOMIZING A
P
ACKAGED
A
PPLICATION FOR A
J2EE

E
NVIRONMENT
:

A

C
ASE
S
TUDY

Leslie Tierstein, newScale Inc

Overview

I recently got a job as a professional services consultant supporting a package that runs over the web in a Java Enterprise
Edition (J2EE) envir
onment.
P
rogramming in a J2EE environment

was a shock to my system. Have things really gotten that
much more complicated, or was I, as a Forms programmer and Oracle Designer user, shielded from the complexity of the
multi
-
tier architectures my teams were b
uilding for and deploying into?

The answer is, a little of both.

Oracle has done a masterful job of hiding most J2EE complexity from

Forms

and Designer

programmers. Stepping into any other development and deployment environment forces you to face this comp
lexity head
-
on
.
Until recently, I was
a relative Java and J2EE newbie.
Granted, I'd deployed several Forms
-

and Designer
-
based applications
to the Oracle Application Server. And the application had used some Java plug
-
ins and services. Nevertheless, I've n
eeded to
master n
ew methodologies, technologies, and terminologies
, as well as using and helping to develop
some best practices
for
managing application development and deployment in this environment
.

Some of these methodologies and technologies
are

propri
etary, but
Open Source tools and packages
always seem to pop up
as part of a J2EE solution.

So, let me share with you some of my recent learning experiences in working in a J2EE environment, hoping that this
somewhat impressionistic account is general en
ough so that other people can
learn
from my adventures

in

developing and
deploying in the J2EE environment
.

These experiences have been wide ranging, including work in
the application's user
interface and reports; services to interface with external applic
ations; and the deployment environment where the application
resides.

The
Deployment Environment

Who remembers the first time their eyes glazed over trying to decipher one of Oracle's compatibility matrixes


that is, which
versions of Forms, Designer, the

database, and the application server would work on the hardware and operating system
where the client proposed to deploy the application you were developing. The interlocking parts all had to mesh perfectly, or
,
best case, support wouldn't talk to you; wo
rst case, you couldn't get the combination to work.

In the J2EE and Open Source world, the jigsaw puzzle has become much more intricate and complex. First of all, the
software

needed to run an application

is divided into four tiers:



the client workstation

which needs to host the browser



the application server



the web server



the database server

This leads to the question:

Question:


How many physical pieces of hardware do these four logical tiers correspond to?

Answer:


Yes


Typically, the application alm
ost always has to be able to run on one piece of hardware, either a Linux or Windows PC.
Even if the
designers

swear up and down
that this is
not supported in real life, the sales people have to be able to demonstrate
it on their laptops. For example,
to
run a J2EE application
on this laptop, I have
:



Internet Explorer and Windows



IIS
web server



JBoss

application

server




The
Oracle (and, for good measure,
SQLServer
)

database
s

J2EE Development and Deployment …


Tierstein

www.odtug.com

2

ODTUG Kaleidoscope 2006

Of course, I am
a
single user
and am
typically
demonstrating a fairly simple versi
on of the application and database.

At any rate, a survey of our customers reveals the matrix

shown in Figure 1
:





RequestCenter Environments





Web

SW

Web OS

App

Server

App

OS

DB

DB OS

#

Sites

Apache

Linux

WebLogic

Linux

Oracle9i

Linux

1

Apache

Solaris

WebLogic

Solaris

Oracle9i

Solaris

1

Apache

Solaris

WebSphere

Solaris

Oracle9i

Solaris

1

IHS
1

AIX 5.2

WebSphere

AIX 5.2

Oracle9i

Solaris

1

IHS

AIX 5.2

WebSphere

AIX 5.2

Oracle9i

AIX 5.2

4

IHS

AIX 5.2

WebSphere

AIX 5.2

Oracle9i

HP
-
UX

1

IHS

Sol
aris

WebSphere

Solaris

Oracle9i

Solaris

2

IHS

Win2003

WebSphere

Win2003

MSSQL2000

Win2003

3

IIS

Win2003

JBoss

Win2003

MSSQL2000

Win2003

7

IIS

Win2003

WebSphere

Win2003

MSSQL2000

Win2003

1

IIS

Win2003

WebLogic

Solaris

Oracle9i

Solaris

1

IIS

Win2003

Web
Logic

Win2003

Oracle9i

2

Win2003

1

Figure
1

.
Web, Application, and Database Server Matrix

What is notable/striking about this?

1.

"IHS" is the IBM HTTP Web Server. No, I hadn't heard of it before I saw this matrix. It's based on Ap
ache.

2.

Oracle on Windows?
It is v
ery rare in this sample
.


3.

The Oracle Application Server?
Alas, no.
We have had some inquiries, but nothing materialized.

In learning about the deployment process, I've also learn
ed

one of the reasons JBoss is popular


it's
certainly easi
er

to install,
deploy software against, and configure than, say, WebSphere. On the other hand, it lacks some scalability, security, and, I'm

sure, other features
.

Contending with these environments can be so challenging that newScale has one

consultant whose specialty is installing our
software and making sure it gets deployed correctly to the various application servers. That's not me although I do
occasionally get called on to diagnose upgrade or performance issues at a particular client si
te.

A Day in the Life

As a consultant in the Professional Services Group for newScale, Inc, my job is to customize newScale
RequestCenter

to
conform to
the requirements (and Statements of Work) of newScale's clients.
RequestCenter

is a web
-
based applicati
on that
im
plements the principles of ITIL,
the IT Infrastructure Library
, a methodology for IT service management.
M
ore detail will
be provided in some of the examples that follow,
but, basically,
RequestCenter allows IT shops to automate and track the
pro
cess of users requesting, and the IT department delivering, typical services, such as installing hardware or software, both
on the desktop and for server configuration.

T
ypically
four

types of
work
need to be
done
:



External interface design

Interfaces wi
th external processes need to be built or customized.



User interface design

The user interface need
s

to be branded, and other UI changes made to screens that comprise
RequestCenter
.

J2EE Development and Deployment …


Tierstein

www.odtug.com

3

ODTUG Kaleidoscope 2006



Service design

Services need to be designed and/or customized to refle
ct the client's business and approval
structure.



Reports

Additional reports need

to be built
.

Rather than simply listing some current technologies, let's take a look at which sets of technologies are involved in
each of
these tasks.

External Interface D
esign

These days, no application can be an island, and the days of using sneaker
-
net to get information from one system to another
(except in some very security
-
conscious corners of the government) are long gone. Therefore, an application
such as
RequestCe
nter
typically
needs
several external interfaces
to feed data to or get data from another application running


somewhere


in the client's environment
.

One type of external interface that is almost always required, and has
a fairly well
-
defined set of r
equirements across
different sets of users is with Identity Management systems. However, other external interfaces will vary greatly from system

to system and client to client, and more flexibility is required in implementing these interfaces.

LDAP

and Ide
ntity Management

The Lightweight Directory Access Protocol
(
LDAP
)

is
used to access information stored in an information directory (also
known as an LDAP directory).

An LDAP directory can hold any number of object types, each having a different attribute
s
tructure. A typical use of an LDAP directory is hold information about a company employee, the list of applications the
employee is authorized to use, and the credentials required for accessing each application.

Single Signon

Once the

directory contain
s u
ser credentials, Single Sign
on (SSO) can be enabled.
SSO allows users to login once

for any
number of applications
. The single signon
service
authenticates users via the LDAP directory, and allows them to access all
the applications they have been given th
e rights to, eliminating authentication prompts from enterprise applications

and
centralizing all user information
.

LDAP Integration

A standard set of LDAP APIs is available, for use with any number of commercially available LDAP directories. Among the
LD
AP product suites we have had to support are: Microsoft Active Directory; OpenLDAP, IBM Tivoli Access Manager
(TAM), Oblix (bought by Oracle in 2005; to be integrated in Fusion?), and Netegrity SiteMinder.

An application supporting LDAP/SSO will certainly

have at least one integration point:
the
actual user login to the
application via credentials retrieved from the LDAP directory. However, the need may arise for other integration points
, such
as
passing
the
user’s

authorized roles
to all the applications

the user visits
.
Before LDAP integration, most web applications
had to be written to include
a user profile, including name, contact information
,

organizational unit,
and access levels to
portions of the application. Do you continue to maintain that infor
mation in the application's database? How much of
what
you maintain is

redundant with data within the LDAP directory?

I
n fact, it can all be stored in
the
LDAP

directory
!

newScale chose the approach of coding a User Discovery Module (UDM). When the user lo
gs in to the application, user
information is retrieved from the LDAP directory, and corresponding row(s) are created or updated, as appropriate, within
newScale's repository. But in addition to ordering a service for themselves, users can order on behalf
(OOB) of another
person; for example, a supervisor, administrative personnel, or help desk employee may typically request services for other
people. In this case, the pop
-
up window where users select the recipient of the service needs to be driven off the
LDAP
directory not the local database. Once a person is selected, his/her data is saved to the application's database, and any
subsequent references to the person (for example, to send email) are directed to that database

Technologies/
Skills:

LDAP,

LDAP Br
owser

Other External Interfaces

An application

typically needs both outgoing and incoming interfaces to external applications.
In today's enterprise IT
environment, packaged applications are deployed just about everywhere for common tasks like Customer Rel
ationship
Management

(Siebel)
,
Call Center Management (Remedy),
and increasingly important in these days of Sarbanes Oxley,
Identity Management. This somewhat simplifies the job of supplying an interface, when the target program is one of a set of
known ap
plications and not a custom, in
-
house development effort. But
custom programs, developed and enhanced over
J2EE Development and Deployment …


Tierstein

www.odtug.com

4

ODTUG Kaleidoscope 2006

years and critical to the mission of the enterprise, have by no means gone away. And
even the interfaces
for
Commercial Off
the Shelf (
COTS
)

packages

may be different, depending on which portions of the application are in use, and how they have
been customized at the client site.

The
principal
questions
to address when coding an external interface

are
:



How am I going to deliver the data?



What data is r
equired by the receiving programming, and in what format?


RequestCenter has an ingenious solution for external data delivery, via its ServiceLink component.


Adapters

In this component, a
n
adapter

provides

the physical protocol by which the data is delive
red to the external system.
newScale
is shipped with five standard adapters. Luckily, through previous jobs supporting Enterprise Application Integration (EAI)

and data warehousing
, I was familiar with the concepts of:



T
he database adapter
, which can be co
nfigured for via

information about the database connection and
JDBC
drivers
to use

to write and read information from specified database tables



The file adapter, which writes to or reads from a text file



The
MQ adapter

which
rout
es

inbound and outbound mes
sages via
IBM's MQ series
queues

I needed to leverage that knowledge about external interfaces to the new
(to me)
adapter types
,

especially common in a J2EE
environment:



The Java Message Services (
JMS
) adapter which provides

publish/subscribe messaging vi
a topics

as well as via
queues



The HTTP
a
dapter
, which

supports Service Oriented Architecture (SOA) by allowing the exchange of XML
messages via HTTP or HTTPS.

newScale also provides an Adapter Development Kit (ADK) which allows us consultants to develop
custom adapters using a
Java API. And, of course, we always need to debug/diagnose problems when the standard adapters are used.

Transformations

An external interface may be outgoing, oncoming, or both. The outgoing data is typically formatted by apply
ing

a
transformation

to

a well
-
formed document in newScale XML (nsXML). The person configuring external interface (
that
would be me
) is responsible for writing XSL to transform the XML document into the data expected by the receiving
application. The XSLT,
th
ankfully, is usually fairly straightforward
, as shown in

Figure 2.


Figure
2
. XSL Transformation for an Interface Agent

J2EE Development and Deployment …


Tierstein

www.odtug.com

5

ODTUG Kaleidoscope 2006

Technology/
Skills:

Java, XML, XSL
, WSDL, SOA, JDBC (whew)

User Interface Design

Professional Services Consult
ants are typically called on to do two types of
changes

to the user interface:



T
he way it looks



T
he way it works

New Skins/Styles

The
first page of
RequestCenter
that most users see is the MyServices module, which allows them to order services for
themselv
es or others and review the status of services they have previously ordered. When RequestCenter is initially
installed, this page
is
fairly

non
-
descript, using
a very simple color

scheme, and keeping branding (a corporate logo and
mention of newScale) to a

minimum

as shown
in Figure 3
:


Figure
3
. Out
-
of
-
the
-
Box
Home
Page Appearance

Some users actually deploy the application with the out
-
of
-
the
-
box color scheme and logos. Most, however, need to brand the
a
pplication so that it fits with the corporate image and RequestCenter is seen as an integral part of their IT infrastructure
, not
as a newScale product
.
Figure 4 is

a fairly simple example
:

J2EE Development and Deployment …


Tierstein

www.odtug.com

6

ODTUG Kaleidoscope 2006


Figure
4
. C
ustomer
-
Branded
Home
Page Appearance

Notice:



The use of company
-
specific graphics (the logos
, edited for this presentation,

at the top right and bottom left)



The company
-
specific color scheme (the striped banner across the top, as well as the use of
shades

of
blue

for other
regions
)



Change
s

to some text


the module shown is no longer

called

"newScale Request
Center
", but just "Request Center

Doing this customization is quite straightforward
. Most of the changes are the result of using custom style sheets. T
his
requires an understanding of HTML and cascading style sheets (CSS). The newScale UI allows users to designate
a custom
style sheet, and gives a template for styles that may be changed.
Using a style sheet is not only a best
-
practice, it's an only
pract
ice. Even if you wanted to apply different HTML formatting to a particular page (a non
-
maintainable and non
-
upgradeable solution), all the pages are dynamically generated, so that's not possible.

In principle, this sounds easy,
and
usually
is. For example,

I see that a logo is specified in my style sheet for an object with an
ID of "header"
, hopefully with some helpful comments about the use of the header object:

/** The header class provides the branding logo at the top
-
right of the page.*/

#header

{


bac
kground: #ffffff url(/RequestCenter/images/custom/mylogo.jpg) …;

}


Then I need to check the generated web page for usage of the "header" ID


that's where my new logo should appear.

<div
id="header"
>


<div id="nav">


<span class="nsmenu" onclick="
processmenu(event);">


newScale RequestCenter Module


</span>




<h1>MyServices</h1>


.

.

.


Sometimes, it's not so easy
.

F
or example,
a style may apply
only to a <td> table data cell with a particular ID which occurs
within a <table> row
<tr> of a particular class
.

You need to know your <div>'s from your <span>'s
, and your Mozilla from your IE (to provide multiple browser support)
.

The application architects needs to be consistent and rigorous in their UI design and you need to become i
ntimately
acquainted with the styles, classes, and ID's used in each generated
page
.

Logo

J2EE Development and Deployment …


Tierstein

www.odtug.com

7

ODTUG Kaleidoscope 2006

Technol
og
ies/
Skills:

HTML, CSS

Boilerplate Text

In an application that's internationalizable
/localizable
, there is really no such thing as "boilerplate" text. All text
must be
stored external to the application, typically in a "resource bundle" which is keyed to the locale in which the user is locate
d.
Notice in the examples above how "newScale Request Center" is now just "Request Center" and the question mark (?)
by
whi
ch users request context
-
sensitive help has morphed into the word "Help". So, to customize application textual/string
prompts, clients need to replace or, preferably, override, the default strings.

If your application uses standard Java resource bundle cla
sses (see, for example
the Javadoc for the ResourceBundle class at
http://java.sun.com/j2se/1.4.2/docs/api/java/util/ResourceBundle.html
), you may be able to use a share
ware Resource Bundle
browser. But, at any rate, the application designers had better provide an easy way for you to (a) determine the key of the
string in the resource bundle you want to modify (b) change or override the string's value and (c) deploy your
changes.

Luckily

for me
, newScale's engineers provide those capabilities.

RequestCenter includes instrumentation to allow
analysts to
easily view

the value for each string
along with its

key

and to

create additional resource bundle file
s

containing the ne
w key
-
value pairs for revised strings
; and instructions for deploying

the
new
file
s
. So, no Java coding is required, but understanding
the J2EE best practice of using resource bundles facilitates doing the customization.

And having that instrumentation
cer
tainly decreases the amount of time required to do the customization

Technologies/
Skills:

(Java), patience

Customized
UI
Functionality

As a vendor of a packaged application, newScale discourages its clients from doing any customizations to the user interfa
ce
that are not supported by the framework. The Site Configuration options
allow

administrative
users

to
customiz
e

the
appearance and behavior of the interface. For example, if a site has turned on LDAP/SSO authentication,
you

probably want
to
suppress al
lowing a user to edit their personal information


after all, it will just be overwritten, based on data in the LDAP
directory, when the user next logs in or has a service ordered for him/her. A site configuration option can anticipate this n
eed,
and make
the User Maintenance Screen read
-
only.

However, sometimes, custom changes are needed (and called for in the SOW): the user only wants to make some fields read
-
only, or not display them, or allow users to access the RequestCenter online help from a portal.

Then you will end up
programming in one of the languages used for the user interface. Take, for example, a JavaServer Page (JSP) which, of
course, generates HTML for display in the browser.

JDeveloper was helpful when I needed to review or modify HTML pr
operties


I could edit a web page in JDeveloper and,
by using the Property Inspector and then viewing the source it generated, not have to worry about memorizing or typing my
attribute names and syntax. However, JDeveloper was less than helpful when it ca
me to editing the JSP source which
generated the web page. The Design View didn't know quite what to do with Java Server Tags (but, to be honest, neither did
any of the other IDEs I tried): Figure 5 shows
four

views of the
same portion of the
RequestCente
r Person Profile Page:

J2EE Development and Deployment …


Tierstein

www.odtug.com

8

ODTUG Kaleidoscope 2006

JDeveloper's
design view



The page as
displayed


The JSP
code

in
JDeveloper's
source view


The
generated
HTML code


<table class="formTable" width="100%" cellpadding="0" cellspacing="0">


<tr>


<td class="formReq"></td>


<
td class="formLabel">


<label for="formItem1">Login Name</label>


</td>


<td class="formElement"> admin


<input type="hidden" name="loginName" value="admin">


</td>


<td class="formInfo">&nbsp;</td>


Figure
5
.
Four

Views

of
a Portion of
one Web Page

In doing UI work, you will probably end up programming in several languages, because several languages are used for the
typical J2EE/web interface. The day I needed to customize that Profile Page, I found myself having to writ
e (or debug) code
in JSP, HTML, and CSS (notice the class labels in the HTML embedded in the JSP above). Another day I was using
JavaScript

and ColdFusion

to customize the behavior of a dynamically generated page and writing XML to formulate queries
J2EE Development and Deployment …


Tierstein

www.odtug.com

9

ODTUG Kaleidoscope 2006

being

performed in the onChange and onSubmit HTML events in the page.

It's no wonder that, at the end of the
week
, I was
speaking CSS in my JavaScript, probably with an XML accent.

Technologies/
Skills:

J2EE UI programming


Java
Server Pages, Cold Fusion, HTML
,
CSS
, JavaScript

Service Design

The raison d'etre of newScale RequestCenter is Service Catalog Management


the ability for a person to order an IT or
Facilities related service, have that service approved and fulfilled, and to track the amount of time (and

money) it has taken to
provide

the service. newScale provides a set of service catalogs that can be installed at customer sites. For example, "End
User Computing" covers such services as provisioning users with accounts, software applications ("I need Vi
sio")
,

or
hardware installations or upgrades ("Now that I've got Visio, I need more memory")
.

The service catalogs can serve as
templates for the services to be implemented at individual customer sites, but customization is always required.

Luckily, newSc
ale engineers have done a remarkable job of providing a UI for most of the tasks involved in designing

and
deploying such services, so I didn't have to learn yet another "hard" technology. However, my understanding of workflow,
having previously implemente
d systems that involved extensive business rules, customized and conditional approval
processes, email and other notifications, and customer dashboards, was probably one of the reasons I got hired. And, of
course,
extensive analysis of user requirements is

necessary before implementing any services!

Technologies/
Skills:

Workflow,
business rules, "
soft" skills

such as
requirements gathering, analysis, and design

Report
s

In the J2EE world, reporting always seems to get short shrift.
I've written a few adhoc r
eports using JSPs, ColdFusion, and,
yes, SQL*Plus, but these were for personal or team use, not for delivery to the customer. In fact, all newScale reports are
provided by a third
-
party tool, Cognos ReportNet. And the reports run off a series of data marts
, refreshed daily, rather than
directly off the OLTP database. I'll soon be helping customers convert some custom reports and possibly ETL scripts from a
previous Cognos product to this newer reporting tool. It will be a learning experience, but I'm hoping

my non
-
J2EE
experience with ETL and other reporting tools, including Discoverer, will help.

Technologies/
Skills:

JSPs, Cold Fusion, SQL, SQL*Plus, third
-
party repository
-
based reporting tools

More Details on the Learning Curve

In the near future, it looks

like two technologies that I am far from mastering



Java and JavaScript



wi
ll be key to my
work at newScale
.

Java 101

There are numerous presentations at this conference and previous conferences on learning Java and object orientation.
Frankly, all of
these are insufficient for doing any real
-
world work in Java.


Learning the Java language should be quite easy for people familiar with any other programming language including
C
,
Pascal, and, yes, PL/SQL

and Forms
. To learn the Java language, you can get
any number of books on Java Certification,
complete with quizzes. Yes, there is a Java Certification program, administered by Sun. The problem with the certification
program is the problem with any certification program


a lot of what is on the test you w
ill never be required to know in real
life. For me, this included threads

and streams
(critical for
J
ava, but not relevant
for the UI and interface work I've
be
en

doing)
. It also included

AWT and
S
wing work,
which are
not relevant to a Web 1.0 thin
-
client
environment or
a
Web 2.0
rich
-
client environment.

Learning enough Java to pass Java certification is like learning a natural language's grammar with the equivalent of a third
grade vocabulary: You might be able to order food and find the bathroom, but you
'll be hard pressed to have an interesting
conversation with anybody. The advanced vocabulary that you need is two
-
fold.

First are all the methods that come with Java and its objects. You absolutely must learn to navigate the Javadoc. But extern
al
docu
mentation is also critical


Javadoc is great if you know (more or less) what you're looking for. Like so much online
documentation, it fails to provide a good overview of the terrain. For example, to compile a simple piece of code, you'll nee
d
classes (o
r, actually, JAR files) which you need to download to your development environment


from Sun, the application
server vendor/provider, the LDAP vendor/provider, and any number of sources.

J2EE Development and Deployment …


Tierstein

www.odtug.com

10

ODTUG Kaleidoscope 2006

Second, you'll need to learn the conceptual framework that has grow
n up around Java development and best practices.
JDeveloper, for example, provides several technology stacks for implementing the "Model
-
View
-
Controller" design pattern.
But this is just one of many design patterns you should be familiar with. Even getting

through the forthcoming book on
Oracle JDeveloper 10g for Forms & PL/SQL Developers : A Guide to Web Development with Oracle ADF


(
Peter Koletzke,
and
Duncan Mills
; Osborne Oracle Press)

can be a struggle

if you're not familiar with J2EE patterns and

the
terminology

used
to name and describe them
.

JavaScript 101

I've been coding more consistently in JavaScript

than in Java
, with better results. Like Java, it's easy to get started, but not
-
so
-
easy to master. Mastery will involve learning all the objects and

methods available via the Document Object Model (DOM)
which allows dynamic building and manipulation of page contents.
My JavaScript development so far has been hampered by
two factors:



Debugging is fairly primitive. (Install a JavaScript debugger and tur
n it on for your main browser;
y
ou'd be amazed
to see JavaScript errors even in some commercial sites.)



The browser wars are alive and well. I've been saved so far, since RequestCenter is only certified on IE, but the next
release will include Firefox supp
ort
. If

Microsoft and Mozilla
don't

reconcile anytime soon, it means
my
Java
S
cript
will need to
become
more complex.

But I'm hoping that increased use of A
JAX

(Asynchronous Java
S
cript and
XML) for more interactive web applications may lead to some sort of
reconciliation.

Conclusion

Pithy
S
hort
C
onclusion

Life is a Learning Experience


Potentially More Useful Conclusion
s

I can support the thesis advanced by numerous speakers numerous times at
numerous

conferences: you will lose productivity
in going from a
4GL development environment (such as Forms) to a 3GL environment (such as Java). The key to
productivity in such an environment will be reducing the amount of time you have to spend there, for example, by being able
to do more work in code generators or ad
jacent/helper technologies such as JavaScript and XML.

About the Author

Leslie Tierstein in a Principal Technical Architect at newScale, Inc, a company that provides software for Service Catalog
Management. She has over 20 years of IT experience, includin
g extensive work with Oracle Designer and the Oracle
database; data warehousing with very large databases; and leading teams which implemented mission
-
critical web and
client/server applications for government and commercial clients. She is an award
-
winnin
g speaker and writer who has given
presentations at ODTUG, IOUG, VOUG, NYOUG, and other Oracle user groups, and "moonlights" as a Technical Editor for
books on Oracle
-
related topics published by Osborne/McGraw Hill and other publishing houses. She can be r
eached at
ltierstein@earthlink.net
. Her web site is accessible at
http://home.earthlink.net/~ltierstein

.

About ITIL and Service Catalog Management

The
IT Infrastructure Library was initially formulated in the UK, and information is available at
http://www.itil.co.uk

.

ITIL and Service Catalog Management are gaining ground in the US (according to both newScale's mark
eting literature and
studies by industry groups such as Gartner and Forrester). The foremost source of ITIL information and training in the US is
Pink Elephant (
http://www.pinkelephant.com

).

The newScale websit
e contains several white papers and customer profiles. It is accessible at
http://www.newscale.com

.