XSL & Stuff

Albert P Tobey albert.tobey at priority-health.com
Thu Sep 20 16:12:48 CDT 2001


> Is anyone using XML in Perl?  Perl.Net?  Visual Perl?  Komodo? Ruby?
> Anything cool in West Michigan? (No, use cgi; does not count.)
> 
  I'm using XML in perl using the XML::Parser::PerlSAX module for
parsing some configuration files and sending some data across the
network.  It'd be really nice if perl could validate the XML first, but
I'll just have to make do with eval { $parser->parse() };.  Nothing I'm
doing is over a couple kilobytes/object, so I'm not playing in the RDBMS
world (Joel will sleep better).  
  I don't see XML as being useful for data _storage_, but it's great for
middleware and the like.  I can publish data in XML and any hoser with
some kind of XML library (perl,python,C,Java,?) can come along and
interpret it however he pleases.  The downside is that XML will always
consume more resources (disk,cpu,bandwidth,etc) due to it's verbose
nature.


> >What do you mean by an "XML database"?
> 
> Here's the deal.  Use a nifty, propietary way to store
> data in a compact format.  Create a process to turn a
> single item (product, set of products, whatever) into into
> XML using MS Tools.  This is done on-demand, so
> we don't need to store the data in XML format.
> 
> Use XSL to transform that XML into HTML.
> 
> This allows us to separate the data storage layer (proprietary)
> from the business logic (make XML) from the presentation
> layer ("Stock" HTML pages that are filled dynamically).
> 

There is no such thing as a 'nifty' proprietary data storage layer.  The
only thing nifty about it is that the developer (you?) can buy himself
some more job security.  Why not just use compressed XML and feed it
through a SAX (PerlSAX) parser so that you don't waste a lot of disk
space?  While it's not a great way to store data, it does remove another
layer of complexity in your application, and when you get hit by a
Greyhound bus, the poor guy who has to maintain your app can read it
because it's standards-based stuff.  Plus, you can use common tools like
'patch' on the xml to save on the bandwidth for updates (yes, you can
obtain these tools for Win32 native).

> Too much disk space.
> And too expensive.  (Or hard to maintain, if you're an open-sourcer)
> And takes too many clock cycles.
> 
> If I _had_ to have the functionality of a database with >10,000,000 records
> and I _needed_ to beat the performance of MS Access, I'd probably look
> for a Indexed Squential Access Method (ISAM) database product, like the
> old informix.

Lies, Lies (another lie), Lies.  Depending on what you want, you can get
BerkelyDB, Mysql, PostgreSQL, and any number of other database type
applications for free or very low cost.  Most of them (esp. BerkelyDB
and MySQL) are very easy to administer/maintain and embed well into
applications.  If you're working in perl, BerkelyDB is very nice to use
and is extremely fast even up to 2gb of data if you use it correctly. 
Mysql has very little disk/memory overhead, is fast even on 200mhz
pentium boxes, can be accessed from just about any language (C, perl,
Java (JDBC), VB (ODBC), and can run on many platforms, including win32. 
Once you set it up, you forget about it, so it'd work well embedded in
an application.  I have a fairly heavily used MySQL instance on a linux
machine here that hardly ever registers on my load monitor, and I
haven't had to even think about it in months.
Make sure you know the facts before you make assertions in the future.
Oh yeah - MySQL can do ISAM IIRC.

-Al Tobey
Priority Health

-- 
 "Open source" means that anyone can get a copy of the source code.
Developers can find security weaknesses very easily with Linux.
The same is not true with Microsoft Windows.

Microsoft, "What Every Retailer Should Know", February 2001



********************************************************************
This email and any files transmitted with it are confidential
and intended solely for the use of the individual or entity
to whom they are addressed.  If you have received this 
email in error please notify the Priority Health Information
Services Department at (616) 942-0954.
********************************************************************



More information about the grand-rapids-pm-list mailing list