05.11.2015 Views

Apress.Expert.Oracle.Database.Architecture.9i.and.10g.Programming.Techniques.and.Solutions.Sep.2005

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

CHAPTER 1 ■ DEVELOPING SUCCESSFUL ORACLE APPLICATIONS 41<br />

that it is a very rare application that can simply be picked up <strong>and</strong> moved from one database<br />

to another. Differences in the way the SQL is interpreted (e.g., the NULL=NULL example) <strong>and</strong><br />

processed will always be there.<br />

On a recent project I was involved in, the developers were building a web-based product<br />

using Visual Basic, ActiveX controls, IIS server, <strong>and</strong> the <strong>Oracle</strong> database. I was told that the<br />

development folks had expressed concern that since the business logic had been written in<br />

PL/SQL, the product had become database dependent. I was asked, “How can we correct<br />

this?”<br />

I was a little taken aback by this question. In looking at the list of chosen technologies,<br />

I could not figure out how being database dependent was a “bad” thing:<br />

• The developers had chosen a language that locked them into a single OS supplied by a<br />

single vendor (they could have opted for Java).<br />

• They had chosen a component technology that locked them into a single OS <strong>and</strong><br />

vendor (they could have opted for J2EE).<br />

• They had chosen a web server that locked them into a single vendor <strong>and</strong> a single platform<br />

(why not Apache?).<br />

Every other technology choice they made locked them into a very specific configuration—in<br />

fact, the only technology that offered them any choice as far as operating systems<br />

went was the database.<br />

Regardless of this (they must have had good reasons to choose the technologies they did),<br />

we still have a group of developers making a conscious decision to not use the functionality<br />

of a critical component in their architecture, <strong>and</strong> doing so in the name of openness. It is my<br />

belief that you pick your technologies carefully, <strong>and</strong> then you exploit them to the fullest possible<br />

extent. You have paid a lot for these technologies—would it not be in your best interest to<br />

exploit them fully? I had to assume that they were looking forward to using the full potential of<br />

the other technologies, so why was the database an exception? This was an even harder question<br />

to answer in light of the fact that it was crucial to their success.<br />

We can put a slightly different spin on this argument if we consider it from the perspective<br />

of openness. You put all of your data into the database. The database is a very open tool. It<br />

supports data access via a large variety of open systems protocols <strong>and</strong> access mechanisms.<br />

Sounds great so far—the most open thing in the world.<br />

Then, you put all of your application logic <strong>and</strong>, more important, your security, outside of<br />

the database. Perhaps in your beans that access the data. Perhaps in the JSPs that access the<br />

data. Perhaps in your Visual Basic code running under Microsoft Transaction Server (MTS).<br />

The end result is that you have just closed off your database—you have made it “nonopen.” No<br />

longer can people hook in existing technologies to make use of this data; they must use your<br />

access methods (or bypass security altogether). This sounds all well <strong>and</strong> good today, but what<br />

you must remember is that the whiz-bang technology of today—EJBs for example—is yesterday’s<br />

concept <strong>and</strong> tomorrow’s old, tired technology. What has persevered for over 25 years in<br />

the relational world (<strong>and</strong> probably most of the object implementations as well) is the database<br />

itself. The front ends to the data change almost yearly, <strong>and</strong> as they do, the applications that<br />

have all of the security built inside themselves, not in the database, become obstacles—roadblocks<br />

to future progress.<br />

The <strong>Oracle</strong> database provides a feature called fine-grained access control (FGAC). In a nutshell,<br />

this technology allows developers to embed procedures in the database that can modify

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!