Beruflich Dokumente
Kultur Dokumente
Two-Tier Architecture
(as used by 10.7 Character Based Applications)
Oracle
Database
PC
Database Server
PC with Terminal emulation software Probably a mid-sized computer
OR running the UNIX Operating System
dumb terminal and containing not just all the data but
also all the forms and reports software
The Oracle software included the relational database itself, the Forms, which present the data on
screen, and the Reports, which provided formatted output for printing.
Each of these products has an associated version or release level. At the time of 10.7, that would
have been about Version 7 of the database, Forms 2.4 and Reports 2.N. Understanding which
OAUG Connection Point 2004 ©2004 by EduSource, Solution Beacon, LLC Page 1
version of the software products will work together is the subject of the certification matrix found on
MetaLink.
Later in this paper, we’ll have a quick look at the file structure used to store this software.
Client Server
4
The Smart Client / client server architecture effectively moved the Forms and Reports software on to
the users PC (creating a ‘fat-client’ issuing requests for data across a network to the data server). It
was made available in 10.6 and retired after 10.7.5
Oracle
Database
PC
Client Server architecture facilitated the use of the GUI interface provided by Windows for the PC (or
Apple for the Mac). It made Oracle Applications much easier to learn and much easier for occasional
users, however, regular users found it slower than the earlier architecture and IT administrators
discovered that applying patches to each and every PC was almost a full-time job in itself as many
organisations didn't have software management tools to update the software on user's desktops
automatically.
Internet Architecture
Oracle’s NCA architecture (NCA = Network Computing Architecture, released with 10.7) moved the
Forms and Reports software to a middle tier so that individual user PCs required only “thin client”
software. This made maintaining an implementation much easier and is effectively still the model
being used today in Release 11.5.9 – although the technology utilised has changed significantly, and
is now called Internet Architecture or Internet Computing Architecture (ICA).
So let’s have a look in detail at how it all works. Initially, we will look at the technology behind the core
Applications (like GL, AP, Projects) and subsequently we’ll look at the self-service or web-
Applications.
OAUG Connection Point 2004 ©2004 by EduSource, Solution Beacon, LLC Page 2
11i Applications Architecture
Oracle
Database
PC
Here is how the Oracle Financials Handbook by D James and G H Seibert describes Oracle’s Internet
architecture:
“The Web implementation of the Applications also uses Forms. It runs on the Web Server, a
middle tier in the architecture, generating Java windows to be viewed through a browser on the
client machine.
The Forms Client applet that runs on the browser supports screen and local data management
functions for all Oracle Applications. The browser downloads the applet and caches it locally.
Thereafter, the traffic exchanged -between the browser/applet and the Web Server is quite
succinct: Java presentation displays data from the server to the browser, and captures data going
back. …
Just as with Smart Client, forms presented by the browser can access the database as required
on a field-by-field basis to fetch lists of values and to validate field entries. Whereas the
browser/applet will have the program intelligence to validate a Yes/No entry, it will need to
perform a query to determine whether a customer number is valid.”
A “tier” according to Oracle’s Concepts manual6 is “a grouping of services, potentially across physical
machines. The tiers that compose Oracle Applications are the database tier, which manages the
Oracle database; the application tier, which manages Oracle Applications and other tools; and the
desktop tier, which provides the user interface display”. For many implementations, the tiers are
implemented physically on separate hardware, for example your database might run on a big Sun
server, your Applications server might run on a smaller Dell server possibly using Linux as an
Operating System, and your desktop tier would be the users’ desktop PCs. It is, however, equally
valid to have all 3 logical tiers on one piece of hardware (for example a consultant’s laptop), or to
have both the Applications layer and the database on the one server.
The actual design of your system will be dependent on your specific needs, however, logically all 3
tiers will always exist. The actual physical design of the system is a specialisation in its own right and
has immense business significance: We will touch on some of these issues later in this paper.
OAUG Connection Point 2004 ©2004 by EduSource, Solution Beacon, LLC Page 3
The database tier has not changed conceptually in recent releases (although the database itself has
been significantly enhanced) so this paper will not include a great deal of additional detail about it. If
you are new to Oracle, it may be helpful to understand that maintaining the database is the work of a
Database Administrator (DBA). Typically a DBA will have done 3 – 4 weeks of Oracle specific training
in addition to probably having an undergraduate degree in computing (and hopefully some years of
experience). Your database is the heart of your Applications system, thus your DBA has a very great
responsibility and their skills, which may seem esoteric to many functional users, are absolutely key to
your system’s “wellbeing”.
SQL, or Structured Query Language, is the language used to read and write to / from the database,
so for example, when you save a new record in Oracle Applications, the system is issuing a SQL
command on your behalf. Users interested in this topic further, are referred to the author’s SQL for
End-Users paper, available in the OAUG conference archive. SQL is not a “procedural” language, i.e.
it does not allow the programmer to issue a specific series of instructions. SQL is “declarative”: you
tell the database what output you want and the system figures out how to get the data for you. To
complement SQL, Oracle therefore released PL/SQL, which is a procedural language and can be
used for things like creating the logic that checks your data entry on screen in Oracle Applications. IT
specialists in this area are typically called Developers. Although reading both SQL and PL/SQL is not
all that difficult for functional users, writing efficient code in either language is a real skill and should
not be underestimated.
The latest version of the Oracle database is 10g (soon to be available with the Oracle Applications)
and as most of us know the g stands for grid. There are probably 2 key points of interest for business
users in the grid concept. (Grid simply means that a database can reside on more than one piece of
hardware and use the hardware resources efficiently and dynamically.) The first point is that by having
more than one piece of hardware involved, you are eliminating a single point of failure i.e. if server A
goes down, server B will continue running. Given that system failure can cost your business a great
deal in lost productivity, this is a significant business benefit. The second point is that if your system
requires a lot of database processing power, in the past the solution was to buy “a bigger server” i.e.
one with more CPUs and memory and could therefore do more things at once quickly. Such hardware
is proportionally much more expensive, i.e. costs do not rise in direct proportion to the number of
CPU’s. Oracle’s Grid technology now allows you to buy smaller servers and harness them together to
achieve the same (or better) outcomes than having one very large and expensive server. The
hardware savings can be significant and in addition it allows your business to grow incrementally
rather than have to make a large hardware investment ahead of the actual need.
An Excursion to Java
Understanding the other two system tiers, first requires some understanding of Java. Sun developed
the Java language / programming system during the 1980’s but it really gained popularity in the
1990’s. Here are some reasons for its popularity:
• Java is platform independent: it will run on any Operating System.
It does this by means of something called a Java Virtual Machine (JVM), which is a piece of
software that “translates” the generic Java code into something a specific Operating System
can execute. This is valuable when the programmer cannot know what sort of system their
code will be run on, for example, when used over the internet (and this is why the use of the
internet stimulated the use of Java in the 1990s). Platform independence (or portability)
reduces the cost of developing software because only the JVM has to be OS specific (rather
than the entire software) and those savings hopefully flow on to users.
• Java will run inside a web-browser.
(More on this when we examine the desktop tier).
• Java is “free”
Strictly speaking Java is not Open Source8 software (because users are not licensed to
change the source code), but the business effect is similar to Open Source. There are
probably 2 major implications of the Open Source software movement: a general downward
pressure on software prices and the reduction in dependence on certain vendors. (The other
well-known and increasingly popular OpenSource product is the Linux operating system).
• Java is actually a whole programming system, not just a language
(More of this when we look at the middle tier).
OAUG Connection Point 2004 ©2004 by EduSource, Solution Beacon, LLC Page 4
• Java is an Object Oriented (OO) language
By its structure, it encourages good programming practices and reusability of software
components. Object Oriented analysis also emphasises “abstraction” and perhaps this may
explain the development of a more business savvy approach by some IT staff.
In addition to the Java language, Sun provide a number of programming frameworks applicable to
different needs. For example if you are writing a Java application for a cell-phone or PDA, you would
use the resources in the J2ME framework. The standard that applies for multi-tiered Internet
deployable applications (like Oracle Apps) is J2EE i.e. the Enterprise Edition of Java 2 (ironically Java
2 is actually version 1.4 but let’s not dwell on that…)
Oracle has made a significant commitment to using and supporting the use of the Java framework.
This is consistent with their on-going commitment to open systems (i.e. via the Open Interfaces and
published API’s9) and Oracle’s long commitment to industry standards. By comparison, other vendors
are only now moving away from proprietary building blocks towards Java. Oracle’s vision in this
respect is one of the things that should inspire confidence in those who have made an investment in
Oracle technology.
Most of Oracle’s products now support Java. This includes the JDeveloper product, which is a
sophisticated Integrated Development Environment (IDE) for J2EE developers.10
We will have to master some Java terminology before proceeding11, so that as these terms are used
in context later in the paper they will mean a bit more:
A Java Class is a program unit or file containing Java code. (Object Oriented purists will probably
want you to know that it is a lot more than that too, but this is a start…)
JAR Files are groups of Java Classes packages together into an archive format (like a self-
extracting zip file).
An Applet is a Java program that is downloaded to a desktop client from an HTTP server, and run
within a Java-enabled web browser on a PC.
A JavaBean is reusable Java class which can be used to perform well–defined tasks, such as
connecting to a database, maintaining client information, or rendering a screen page. Typically they
focus on intra-process communication and are assembled to create Java applications.
Java Servlets are programs that run within a Web-Server on the middle tier in a similar way to that
in which an Applet runs within a browser on the desktop. Thus they provide a “pluggable” extension
to a server that will enhance the server’s functionality. Java servlets are a key component of
server–side Java development.
Java Server Pages (JSPs) are an extension to the servlet functionality that enables a simple
programmatic interface to Web pages. They were developed by Sun as an alternative to Microsoft's
ASPs (Active Server Pages) . JSPs have dynamic scripting capability that works in tandem with
HTML code, separating the page logic from the static elements. JSPs are HTML pages with
special tags and allow for the embedding of Java servlet code within HTML pages. The Java code
that is executed on the Web server or application server providing dynamic functionality to HTML
pages. JSPs are actually compiled into servlets when first requested and run in the server's JVM.
OAUG Connection Point 2004 ©2004 by EduSource, Solution Beacon, LLC Page 5
browser is a program running on a desktop client that views documents formatted in HTML. The
simplicity and power of this has been one of the genuine revolutions in computing.
HTML works by using so-called “markups” which tell the browser how to display a Web page's words
and images for the user. Each individual markup code is referred to as an element or tag. Some
elements come in pairs that indicate when some display effect is to begin and when it is to end. Here
are two views of the one simple web page: what you see on the web as well as the HTML behind it:
Of themselves, HTML pages are “static” i.e. they can only display pre-defined text and images. To
make web pages “dynamic” (i.e. allow them to respond to the user) and to add logic, web-developers
use JavaScript (a scripting language created by Netscape for this purpose and no relation to Java) or
similar technologies. There are a number of such technologies and they are definitely out of the scope
of this paper, however, the Web itself is a great source of information on these topics.12
XML (eXtensible markup language) uses a similar tag type of approach to extend the concepts behind
HTML to allow transmission of the syntax and structure of a document or data set between computer
systems13. The tags are a kind of meta-data i.e. they describe the data itself in a similar way to which
a table of contents describes a book – or more exactly, for those with some background knowledge,
the way that the Oracle Data Dictionary describes the Oracle database.
XML is "extensible" because no tags are predefined. Elements and tags may be defined as needed to
share data across various platforms, for example to and from Oracle databases across the web.
Oracle now provide significant support for XML e.g. SQL functions for dealing with XML data and the
JDeveloper product now uses XML generation to allow Java developers to build database
applications almost as easily as Forms Developers do.
Desktop Tier
When you start Oracle Applications on your desktop, you do so from a browser, typically by clicking
on a hyperlink to open the Applications log on page. The Personal Home page provides unified
navigation to access Forms-based, HTML-based Applications, or Business Intelligence products. It
also supports single-sign on. Each of these is described briefly in this section.
The E-Business Suite includes both core Applications (e.g. General Ledger or Order Management)
and self-service Applications (like iProcurement). What are the differences?
From a business perspective, the core Applications probably form your back-office functions. Users of
these products are probably finance, or other specialized staff (e.g., order management, purchasing)
and will have had some training in using them, reflecting the complexity of the functionality they
provide. By contrast, the self-service Applications are likely to be more widely deployed in your
organisation and require minimal training.14
From a technical perspective, the core Applications use a Java Applet i.e. a Java client program
created using the Oracle Forms product. This client program can be called in a browser using HTML
and is optimised for use across a LAN (i.e. within your enterprise).
The self-service Applications use an HTML (and JavaScript) interface that is also presented in a
browser, but may be used more easily over a wider network. The self-service Apps are created using
Oracle’s JDeveloper product and they appear on your desktop directly from a Web-server (rather than
from the Forms Server – both of which will be described below.)
When you log into the core Applications from your desktop, your successful login calls the Forms
client applet which presents the Applications user interface. The Forms client applet is packaged as
Java archive (JAR) files. The JAR files contain all Java classes (programs units) required to run the
OAUG Connection Point 2004 ©2004 by EduSource, Solution Beacon, LLC Page 6
presentation layer of Oracle Applications forms. If the applet is available locally, your browser uses
that. If the applet is not available locally, it downloads it. One more thing is necessary however before
the Applet can run…
The Microsoft Operating Systems most of us have on our desktops, e.g. Windows XP, support a fairly
15
old version of Java. Oracle provide an alternative JVM called JInitiator (oajinit.exe ), as a plug-in, this
enables Oracle Applications to use Java’s newest features So when you log into Oracle Applications,
the first thing which happens is that Oracle tries to run JInitiator. If it has not been installed, you will be
prompted to download it. Once installed, Oracle JInitiator runs the Forms client applet and starts an
Oracle Applications session. This explains why Oracle Applications is slow to start the first time we
use it on a new PC.
The Desktop Tier
PC
Web Server
Forms Server
Java enabled Web Browser
Concurrent Processing Server
with Jinitiator (Oracle's JVM)
Reports Server
Admin Server
Discoverer Server
OAUG Connection Point 2004 ©2004 by EduSource, Solution Beacon, LLC Page 7
an on-going challenge – to find ways of getting computers which may store data in different formats
(e.g. ASCII or EBCDIC) using different Operating Systems (e.g. Unix or Windows) which access and
store data differently. The general solution has been to agree standard methods or protocols for
doing this.
Thus the string you type into your browser address field in order to connect to Oracle Applications is
called a Uniform Resource Locator (URL). This is a standard way of specifying the location of an
object, typically a web page, on the Internet. This is the format of such a string:
http://<host name>.<domain name>:<HTTP port>/oa_servlets/AppsLogin
Before we can understand this string, a few definitions:
The Internet Protocol (IP) is the method by which data is sent from one computer to another on the
Internet. The Internet is really the interconnection of many individual networks. To be part of the
Internet, an organization needs an Internet network number, which it can request from a registration
body. This unique network number is included in any packet sent out of the network onto the Internet.
Each computer (known as a host) on the Internet has at least one IP address that uniquely identifies it
from all other computers on the Internet.
In addition to the network address or number, information is needed about which specific machine or
host in a (local) network is sending or receiving a message. So the IP address needs both the unique
network number and a host number (which is unique within the network). The host number is
sometimes called a local or machine address.
The IP address is usually expressed as four decimal numbers, each representing eight bits,
separated by periods, for example 199.0.0.2 The number version of the IP address can (and usually
is) represented by a name or series of names called the domain name. This string is likely to be in a
format like the following: network.network.network.local. We probably already recognise parts of that
string, for example the com or org piece as telling us something about the type of organisation which
owns the IP address and the au piece will tell us something about its location.
Thus an IP address has two parts: the identifier of a particular network on the Internet and an
identifier of the particular device (which can be a server or a workstation) within that network. On the
Internet itself - that is, between the router that move packets from one point to another along the route
- only the network part of the address is looked at.
TCP (Transmission Control Protocol) is a set of rules (protocol) used along with the Internet Protocol
(IP) to send data in the form of message units between computers over the Internet. While IP takes
care of handling the actual delivery of the data, TCP takes care of keeping track of the individual units
of data (called packets) that a message is divided into for efficient routing through the Internet.
For example, when an HTML file is sent to you from a Web server, the Transmission Control Protocol
(TCP) program layer in that server divides the file into one or more packets, numbers the packets, and
then forwards them individually to the IP program layer. Although each packet has the same
destination IP address, it may get routed differently through the network. At the other end (the client
program in your computer), TCP reassembles the individual packets and waits until they have arrived
to forward them to you as a single file.
So let’s have another look at that connection string you pass to the middle tier to connect with Oracle.
For example:
https://ebsapp.au.mycompany.com:9943/OA_HTML/US/INDEX.htm
URL strings contain three parts or sub-strings:
1. Network protocol.
The part before the first colon specifies the access scheme or protocol. Commonly implemented
schemes include: ftp, gopher, WAIS, news, telnet or mailto (e-mail).
The specific protocol used to request web pages from a web-server is called Hypertext Transfer
Protocol, or HTTP.17
The HTTPS protocol includes the use of Secure Sockets Layer (SSL) as a sub-layer under the
regular HTTP application layer.
2. Host / IP Address
The part after the colon is interpreted according to the access scheme. In general, two slashes
after the colon introduce a hostname.
OAUG Connection Point 2004 ©2004 by EduSource, Solution Beacon, LLC Page 8
It consists of the dotted quad notation include the domain and local host. This is followed by
another colon indicating the port over which the connection is made. A port is a logical channel
used by the TCP transport layer to distinguish between different logical inputs on the same
network interface of the same host machine. The port number maybe omitted and defaults to the
standard port for the scheme, e.g. port 80 for HTTP.
3. File location
For an HTTP or FTP URL the next part is a pathname which is usually related to the pathname of
a file on the server. The file can contain any type of data but only certain types are interpreted
directly by most browsers. These include HTML and images in gif or jpeg format. The file's type is
given by a MIME type in the HTTP headers returned by the server, e.g. "text/html", "image/gif",
and is usually also indicated by its filename extension. A file whose type is not recognised directly
by the browser may be passed to an external "viewer" application, e.g. a sound player. (MIME
means Multipurpose Internet Mail Extensions).
In the case of this example, we are accessing the OA_HTML directory which contains the Oracle
Applications html sign-on screen and html files used by the Oracle Self-Service Applications.
Some URL’s contain one more (optional) part, which may be a query string preceded by "?" or a
"fragment identifier" preceded by "#". The later indicates a particular position within the specified
document.
When you connect to Oracle Applications, your URL is processed by an Apache/Jserv module. To
complete the connection, the Web server on the middle tier connects you to an Applications 11i
database on the enterprise tier. After the connection is made, your URL is likely to also contain an
Oracle SID following another colon after the port number. A SID identifies a specific database.
Before leaving this topic, let’s take a quick look at Firewalls.
Firewalls protect a company's IT infrastructure by providing the ability to restrict network traffic by
examining each network packet and determining the appropriate course of action. Firewall
configuration typically involves restricting the ports that are available to one side of the firewall, for
example the Internet. It can also be set up to restrict the type of traffic that can pass through a
particular port such as HTTP. If a client attempts to connect to a restricted port (a port not covered by
a security `rule') or uses a protocol that is incorrect, then the client will be disconnected immediately
by the firewall. Firewalls can also be used within a company Intranet to restrict user access to specific
servers.
Some firewalls masks the true IP address of a client by translating it to a different IP address. Packets
sent from a remote client to a server through the firewall will be known to the server by this translated
address. As the client and server communicate, the NAT software handles the mapping of the true IP
address to its translated address.
Internet
PC PC
Laptop
Intranet
Applications
Gateway
Data
Laptop
OAUG Connection Point 2004 ©2004 by EduSource, Solution Beacon, LLC Page 9
This diagram shows an application gateway controlling traffic between internal and external networks
and providing a single checkpoint for access control and auditing. As a result, unauthorized Internet
hosts cannot directly access the database inside a corporation, but authorized users can still use
Internet services outside the corporate network. This capability is critical in Internet environments to
restrict remote access to sensitive data.
OAUG Connection Point 2004 ©2004 by EduSource, Solution Beacon, LLC Page 10
Web Server Processing
Applications / Middle Tier
Desktop Tier
HTTP HTTP
HTTPS Listener
Database Tier
Servlet
PC Engine Metadata
Dictionary
JSP Oracle
Java enabled Database
Web Browser Data
OAUG Connection Point 2004 ©2004 by EduSource, Solution Beacon, LLC Page 11
Forms Server
Desktop Tier Applications / Middle Tier
Forms Oracle
Forms Database
Client within
Server
that browser
HTTP
Report Page Forms Server
Database Tier
Report
PC Report
Review
Agent Oracle
Database
Concurrent Required
Processing Data
Server
The Concurrent Processing server communicates with the data server using Net8. The resultant log
or output file from a concurrent request is passed back to the Report Review Agent, also known as
the Web Review Agent. The Report Review Agent passes a file containing the entire report to the
Forms server. The Forms server passes the report back to the user’s browser one page at a time.
You can use profile options to control the size of the files and pages passed through the system.
Reports Server
The Reports Server is automatically installed on the same node as the Concurrent Processing server
and its reports are contained in the same directory with the concurrent processing reports. However,
reports generated by the Reports server are monitored and administered separately from concurrent
processing reports (and used primarily to produce reports for Business Intelligence System (BIS)
products.
OAUG Connection Point 2004 ©2004 by EduSource, Solution Beacon, LLC Page 12
Reports Server
Desktop Tier Applications / Middle Tier
Web Listener
Database Tier
Reports CGI
PC
Oracle
Reports Server Database
Reports Runtme
Engine
Discoverer Server
The Discoverer server complements the Reports server as a tool to perform ad hoc queries and
analysis of the resultant query output. It also allows users to perform projections as various business
and strategic factors are changed.
Admin Server
The Admin server is usually located on the same machine as your Oracle Applications database. You
carry out the following operations from this server:
• Upgrading Oracle Applications
Using the AutoUpgrade utility (adaimgr).
• Applying database patches to Oracle Applications
Using the AutoPatch utility (adpatch) to perform these updates
• Maintaining Oracle Applications data
Some features such as Multiple Reporting Currencies require regular maintenance to ensure
updates are propagated to the additional tables and schemas used by this feature. The AD
Administration utility (adadmin) allows you to do this.
Most of these tasks are performed by the DBA, who will probably also administer your Applications
Server (9iAS).
OAUG Connection Point 2004 ©2004 by EduSource, Solution Beacon, LLC Page 13
Web Applications Dictionary also serves as a real time execution engine to retrieve information from
the database. Oracle Self Service applications reference the data dictionary at run time to retrieve
data from the database and generate dynamic HTML pages. The Web Applications Dictionary
provides a means of defining business flows which can then be web–enabled. The Web Applications
Dictionary is part of the “AK Common Modules”. Once installed, it is accessed in the same manner as
all of the core Oracle Applications.19
Web Services
Just before we leave the Middle Tier a few words about the Web Services. We have already seen that
Oracle Applications Middle Tier is a cluster of various services that can be called as required by client
machines. The Web Services concept is similar but goes beyond Oracle Applications context.
The excitement around Web services can be understood in terms of the way they:
• Exploit the opportunities provided by the Web
• Promote the use of reusable components
• Are firmly based on the sort of standardisation which facilitates easy integration between
heterogenous systems
• Reflect the move to a view of software services (rather than products).
Web services leverage a concept known as Service-Oriented Architecture (SOA). A "service" is a
network-enabled component. Like components, services in general (and Web services in particular)
represent functionality that can be easily reused without knowing the details of how the service is
implemented. And, since Web protocols are completely independent across vendor, platform, and
language implementations, the result is an application that integrates well with the rest of the
enterprise while being flexible enough to modify as business needs change.
Web services, in the general meaning of the term, are services offered via the Web. In a typical Web
services scenario, a business application sends a request to a service at a given URL using the
SOAP protocol over HTTP. The service receives the request, processes it, and returns a response.
Web services and consumers of Web services are typically businesses, making Web services
predominantly business-to-business (B-to-B) transactions. These systems must have the ability to
link up to each other, grant permissions through a system other than the Internet, and which would
make all the systems network with each other like an Intranet.
Web Services is probably not the first solution to such a problem. COM, CORBA and EDI also
address the same problem space. So, what would make Web Services so special and different from
the rest?
Web Services is based on the already existing and well-known HTTP protocol, and uses XML as the
base language. This makes it a very developer-friendly service system and uses technologies that do
not require a steep learning curve for most developers.
Also, Web Services are based on a set of standardised rules and specifications, making it more
portable. This was not the case with the technologies mentioned earlier. In Web Services, SOAP,
UDDI, and WSDL are the key enablers.
SOAP (Simple Object Access Protocol) is the method by which you can send messages across
different modules. This is similar to how you communicate with the search engine that contains an
index with the Web sites registered in the index associated with the keywords.
UDDI (Universal Description, Discovery, and Integration) is the global look up base for locating the
services. In the example mentioned earlier, this is analogous to the index service for the search
engine, in which all the Web sites register themselves associated with their keywords.
WSDL (Web Services Definition Language) is the method through which different services are
described in the UDDI.
By extending the business applications as Web Services, the information systems of different
companies can be linked. These business systems then can be accessed by using simple SOAP
messages over the normal HTTP Web protocol. For example, a manufacturing company requires
some raw materials to be supplied whenever the material in stock reaches the threshold levels. These
levels can be constantly monitored by the business system of a trusted supplier, and promptly
replenished, without having to wait for a supervisor to notice it and generate a work order.20
OAUG Connection Point 2004 ©2004 by EduSource, Solution Beacon, LLC Page 14
File Systems
We have discussed how Oracle software is distributed across multiple hardware tiers. We know that
software requires files to be installed on a computer and that at run-time that software is loaded into
memory for execution. Oracle software is no different; it is stored in the file system of the (database
and applications) servers described in the previous sections.
OAUG Connection Point 2004 ©2004 by EduSource, Solution Beacon, LLC Page 15
The applications software is contained on the Applications Server in a file system called
<dbname>APPL.
File Systems –
Applications Tier
<dbname>APPL the APPL_Top Directory
contains the Applications software
<dbname>.env GL AP AU AD
11.5.x
Database Schemas
So much for the physical organisation of the software files, we will now look briefly at the ‘logical
organisation of the Oracle Applications database.
Within the database, there are product ‘schemas’ (database user areas).
For every application which is installed, you will have a schema which stores its data, for example GL,
AP, PA, etc. The GL schema contains all the tables, views and other database objects belonging to
the General Ledger Application.
The Apps Schema has access to the complete Oracle Applications data model. It consists mainly of
logic rather than storage (in packaged procedures and views). Much of this logic is there to enable
Oracle’s Multi-Org technology.
Since the advent of Multi-Org technology all users write to the various tables in GL, AP etc through
procedures stored in the APPS schema which ensure that new records are ‘tagged’ with the
OAUG Connection Point 2004 ©2004 by EduSource, Solution Beacon, LLC Page 16
organisation ID linked to that user (usually through a profile option at Responsibility level). In the
same way when users retrieve data, the APPS schema ‘filters’ the data so that users only see the
data relating to their organisation.
So the APPS schema is a sort of gatekeeper to the other schemas. In this way, Multi-Org technology
allows multiple organisations to secure data within a single database.
It is supported by an ORG_ID column on tables and a MO:Operating Unit profile option for each
Responsibility (which creates an implicit ‘where clause’ linking the user’s organisation only with
records which have the appropriate Org_ID value).
Each Application has a Technical Reference Manual (TRM) which details the objects belonging to its
schema. In Release 11i – for the first time – the TRMs are available in softcopy from MetaLink.
Glossary22
API
An API (Application Programming Interface) is a set of published ways for programmers to interact
with a specific application. For example, the TCA (Trading Community Architecture) API is a set of
PL/SQL programs which allow programmers to insert customer data into the Oracle database (as an
alternative to the Customer Open Interface.
Applet
OAUG Connection Point 2004 ©2004 by EduSource, Solution Beacon, LLC Page 17
A Java program that is downloaded to a desktop client from an HTTP server, and run within a Java-
enabled web browser.
BC4J objects
Business Components for Java, a J2EE application development framework that comes with
JDeveloper. BC4J is an object-relational mapping tool that implements J2EE Design Patterns.
Common Gateway Interface (CGI)
The industry standard technique for running applications on a web server. Oracle HTTP Server
supports this standard.
Forms Client
A Java applet that runs on a desktop client and provides the user interface and interaction with a
Forms server.
GUI (Graphical User Interface)
An interface used with personal computers and workstations that allows the user to access fields and
regions of the screen with a pointing device, typically a mouse.
HTML (Hypertext Markup Language)
A simple language used to format documents, predominantly for viewing with a Web browser.
Portions of text or images, called hypertext, can be associated with other documents.
HTTP (Hypertext Transfer Protocol)
The TCP/IP-based network protocol used to transmit requests and documents between an HTTP
server and a Web browser.
HTTPS
The use of Secure Sockets Layer (SSL) as a sub-layer under the regular HTTP application layer.
HTTP listener
A program on an HTTP server that accepts and processes incoming HTTP requests from Web
browsers.
HTTP server
An application server that runs an HTTP listener, and sends out Web pages in response to HTTP
requests from remote browsers.
Intranet
A network of computers that are internal to a company. A company’s intranet is basically a local
extension to the globally distributed Internet, which is a global interconnected network of computers
and smaller computer networks.
Java
A computing language used to produce programs that can be downloaded and run on a desktop client
using a Web browser. It is also used to produce platform-independent programs that run on a server,
either interactively or when invoked through a request from a Web browser.
JAR (Java Archive) file
A collection of Java classes compressed into a file for faster download to a desktop client.
Java class
Components of a Java program that define objects and operations performed on objects. Java class
also identifies an operating system file that contains a program or part of a program written in Java.
JavaBeans
A reusable Java class which has specific naming conventions for its methods and variables.
JavaBean components can be used to perform well–defined tasks, such as connecting to a database,
maintaining client information, or rendering a screen page.
Javascript
Javascript is a scripting language that adds significant power to HTML files without the need for
server–based CGI programs.
Java Server Pages
An extension to the servlet functionality that enables a simple programmatic interface to Web pages.
JSPs allow for the embedding of servlet code within HTML pages. JSPs are HTML pages with special
tags and embedded Java code that is executed on the Web server or application server providing
dynamic functionality to HTML pages. JSPs are actually compiled into servlets when first requested
and run in the server's JVM.
Java Servlets
OAUG Connection Point 2004 ©2004 by EduSource, Solution Beacon, LLC Page 18
A small, ”pluggable” extension to a server that will enhance the server’s functionality. Java servlets
are a key component of server–side Java development.
JDBC (Java Database Connectivity)
A Java programming interface that enables Java programs to access the Oracle9i server.
JVM (Java Virtual Machine)
An interpreter that translates a compiled Java program, called bytecode, to machine code. JVM
makes Java portable, because each operating system’s JVM translates bytecode to instructions that
the microprocessor can execute. A Java-enabled web browser has an internal JVM that allows it to
execute applets or applications written in Java.
Net8
The Oracle product that enables network connectivity between a client machine and the Oracle9i
server. Net8 manages communication sessions between these machines by opening and closing
sessions and by packaging and sending SQL statements and data responses.
Servlet
A Java program executed on an HTTP server, rather than downloaded to a desktop client.
TCP/IP (Transmission Control Protocol / Internet Protocol)
A widely used industry-standard networking protocol used for communication among computers.
Web Applications Dictionary
An active data dictionary that employs the Oracle Forms–based interface. The data dictionary stores
specific information about Self–Service Web Applications data, including prompts, language,
navigation, and security.
Web Browser
A program running on a desktop client that views documents formatted in HTML and runs Java
applets. A Web browser sends requests to a HTTP server using a special protocol (HTTP) to retrieve
documents and Java applets.
Notes
1
Two terms here might puzzle some business users: Architecture is used here to indicate how
various software and hardware components are organised. An Application in Oracle’s E-Business
Suite sense is one Oracle module or product (e.g. General Ledger), consisting of all the technology
required for that business function within the E-Business Suite; in the broader sense an application is
any piece of software developed from a development tool: for example your timesheet application
may have been written using Excel software.
2
The term interface in computing parlance is used to refer to the way systems interact, connect and
communicate with one another. It can be either a user interface (UI) i.e. the way a human user
interacts with a computer system, or a programmatic interface e.g. Oracle’s Open Interfaces, or a
physical interface e.g. the plug which connects my laptop with a printer. We tend just to abbreviate
this all just to interface and infer from the context what exactly is meant.
3
For more detail on the development of Graphical Interface see:
http://en.wikipedia.org/wiki/History_of_the_GUI
4
The client server model was another innovation pioneered by the amazing minds at Xerox PARC
http://www.parc.xerox.com/about/history/default.html
5
For a fascinating account of the Oracle organisation’s experience of the client server experiment,
see Matthew Symonds’ SoftWar published by Simon and Shuster
6
Oracle Applications Concepts, Release 11i (11.5.9) – this manual is the major reference for this
paper; you can find it on your Applications Documentation CD or download it from OTN at
http://otn.oracle.com/documentation/index.html
7
Oracle Magazine’s summary of 25 years of Oracle history (Nov – Dec 2001)
http://otn.oracle.com/oramag/oracle/01-nov/o61cover.html
and Codd's obituary - http://www.research.ibm.com/resources/news/20030423_edgarpassaway.shtml
8
For a definition of OpenSource see http://en.wikipedia.org/wiki/Open_source
9
API = Application Programming Interface: a predefined way for programmers to interact with a
system. In the case of Oracle Applications, most API’s consist of published PL/SQL procedures which
allow programmers to insert data into the Applications in a supported manner.
OAUG Connection Point 2004 ©2004 by EduSource, Solution Beacon, LLC Page 19
10
You may also see the acronym ADF, meaning Application Development Framework. Both
acronyms i.e. IDE and ADF attempt to convey the productivity-support which such an environment
provides to programmers. Oracle Applications Framework Architecture also supports Java in a
number of ways including:
- BC4J (Business Components for Java), included in Oracle JDeveloper, is used to create Java
business components for representing business logic. It also provides a mechanism for mapping
relational tables to Java objects. It allows the separation of the application business logic from the
UI.
- AOL/J provides the Oracle Applications Framework with underlying security and applications Java
services. It provides the Oracle Applications Framework with its connection to the database and
with application-specific functionality, such as flexfields and attachments.
11
For a readable introduction to Java see Steve Patient The Bluffer’s Guide to Java at
http://www.webdevelopersjournal.com/articles/java_jargon.html
12
Refer to the Links page on the EduSource website for some useful links to general reference on
technical topics (www.edusource.com.au/links.html) Oracle Magazine is also an excellent source of
data on new developments in Oracle technology http://otn.oracle.com/oramag
13
For a good introduction to XML, refer to John King’s paper XML Survival Skills which can be
downloaded from http://www.kingtraining.com
14
The Oracle Self–Service Web Applications, including Self–Service Expenses, Self–Service Human
Resources, Internet Procurement, Internet Receivables, Self–Service Time, Web Suppliers, iStore,
iPayment, iSupport, iMarketing, and eTravel from Oracle, extend the functionality of Oracle
Applications by adding a browser–based, walk up and use functionality that supplements Oracle
Applications. Oracle Self–Service Web Applications can be either inquiry or transactional. Inquiry
modules read but do not update the Oracle Applications database; transactional modules update the
database. The architecture consists of the following components:
• A web browser
• The Oracle HTTP Server, powered by Apache
• HTML documents
• Java Server Pages, JavaBeans and Servlets
15
There are several other files associated with the JInitiator Including adsign.txt and identitydb.obj,
(See Installing Oracle Applications Release 11i.)
16
This short description does not really do Portal justice. Key features of Portal include abilities to
integrate presentation of information (including data from legacy systems) accessed via a single sign
on, allows the users to manage content and personalise the interface for themselves. One of the
techniques used to manage the development of this integrated presentation is to identify different
screen regions within the browser page and dedicate them to specific information sources. These
sections of the screen are known as Portals. An excellent introduction to Portal is contained in Diane
Turner’s paper on Administration using Oracle Portal from the NZOUG which can be downloaded
from http://nzoug.org.nz/Conference/2004%20Presentations/NZOUG.htm
17
From http://whatis.techtarget.com/ which is an excellent plain English guide to computing
terminology.
18
mod_cgi is an Apache module that provides for the execution of Common Gateway Interface (CGI)
applications through the invocation of an operating system shell that runs the application and uses the
CGI to deliver data to the application..
mod_jserv is an Apache module that routes all servlet requests to the Apache JServ Servlet engine.
The servlet engine provides the runtime environment to execute servlets. The servlet engine executes
from within a Java Virtual Machine (JWM) running on the same node, or a different node, to the
Apache HTTP Server.
mod_plsql or Webdb PL/SQL Gateway is an Oracle specific Apache module. This module routes
PL/SQL requests to the Oracle Pl/SQL service, running within the Oracle Universal Server, through
the use of Database Access Descriptors (DADs). The PL/SQL service delegates the request servicing
to PL/SQL programs. mod_plsql will also handle Portal Service requests – the HTTP requests for
WebDB are dispatched by mod_plsql to the Oracle8i PL/SQL engine. The PL/SQL service may be
running in the database tier or within iAS itself.
19
See also Oracle Self–Service Web Applications Implementation Manual
20
Most of this section is based on material on http://www.developer.com
OAUG Connection Point 2004 ©2004 by EduSource, Solution Beacon, LLC Page 20
21
For those not familiar with the Hitchhikers Guide to the Galaxy, some of the allusions will be lost….
So Long and Thanks for the Fish was the final book in this series
22
Largely drawn from the Oracle Concepts Manual
OAUG Connection Point 2004 ©2004 by EduSource, Solution Beacon, LLC Page 21