Wednesday, April 20, 2005

mod_plsql

mod_plsql is an Apache module that lets you call Oracle stored procedures to generate a webpage. Never in my whole life would I have imagined that something like this would exist... but it does, and apparently it’s sweet (but there are a few problems I'm seeing with it).
mod_perl and mod_python are for the weak of mind. Wrap around an application stored entirely in a database. Now imagine what a headache migrating between versions of Oracle might cause. Another thing to think about: how are the source files version controlled? Since they’re not actual files, how do you version them with an existing versioning program (Subversion, CVS, etc)?
I'll give you 2 guesses what multi-national aerospace conglomerate might have a critical application using mod_plsql (if you guessed ANYTHING other that Boeing… you belong with the unwashed masses). Now guess who gets to bring the system up to workable state. If you guessed "Adam," you're half right... they chose the 2 youngest people in my group... me and Alan (well, to be honest... you would be more like .75 right, because Alan is kind of a small guy).
One GIGANTICLY awesome advantage to working on this project is that it’s already rock-solid stable. So, there isn't a big time rush to get it fixed. But here is the condensed list of things we are going to do:

  • Get a test environment set up. A new database, a new web server, a new Oracle Internet Application Server, and a metric crapload of configuration files.
  • Lead the development of a configuration management system. Currently their source versioning system is: “source.file,” “copy of source.file,” “copy (2) of source.file,” ad nausem (did I use that correctly, I don’t know… I didn’t take Latin in high school). I think one of the things I get to do on this project is to take it from a “Joel Test” level 1, to a level 12 (or a 10, because its hard for an application in Boeing to get the support needed to meet #8 and #9).
  • Migrate from Oracle 8i to 10g. If you listened to Oracle, this should be no problem at all. But, if you’ve ever done an Oracle migration of anything more complex than the ‘scott/tiger’ demo… you know better than that.

This is cool, because it’s more non-DBA work. I’m not saying there is anything wrong with DBA work… but diversifying my portfolio is something my career broker told me to do.

Sitting in front of my new 19” LCD makes me happy… that’s why you’re getting a flood of new posts to the site. Plus I've gotten some new music in the last couple days. Snuff rules.

For those keeping score at home. I've moved over to using MS Word to write my posts... then I paste it into blogger. Seems to work, but blogger claims they've fixed the problem. I haven't used Word in a while, but Office 2003 is really pretty looking and works wonderfully well.

1 comment:

Zach Skyles Owens said...

I’m not a very big fan of mod_plsql, but I’ve had the 'pleasure' of working with it a few times.

Configuring mod_plsql should be pretty straight forward. It’s just a couple of config files and shared objects.

As far as source file control what I’ve seen work pretty well is individual files for the package spec and body kept in your source control system. If you are using TOAD it will save those off from the Procedure Editor without any problem. You can use a shell script to build the application in different environments using command line SQL*Plus. You can even setup a Java-centric solution using a flavor of the ‘doc,etc,lib,src,web’ directories and use Ant to build it all.

The real nightmare may be trying to maintain the application. All of the applications that I’ve seen written in PLSQL have no concept of n-tier architecture. Often times the database interaction is deeply tied to the interface. I think the real downfall is the lack of an HTML embedded scripting language like JSP, PHP etc. It’s like writing a web application only using servlets.

You should probably be able to get the application in a more maintainable state in terms of change management, but if you don’t have a lot of time to reengineer it you will probably be stuck hacking your way through maintaining it.

Good Luck!