There's a huge difference between perl and Oracle. A database server on its own might not be so interesting, but it's still an "entity": it's a process that runs, it manages disks and data. I would classify Oracle as "Enterprise Software". I don't think there's a clear definition of it, and if there is, I don't think many people know what it is. Most people seem to use the term "enterprise software" of software that
- Is scalable. It can handle large amounts of data/transactions/users/traffic before showing more than a linear decrease in performance. It is also be able to use multiple CPUs "out of the box", if there are more CPUs available on the box. When it makes sense for the application, it should be able to run in "distributed mode", run on several boxes, but act as a single one service when seen from the outside world (for instance, a distributed database server, or a cluster of webservers with a level-4 or level-5 switch).
- Is reliable. Databases should lose (or corrupt) data. If the application doesn't cluster itself, it should be cluster-aware.
- Plugins. Enterprise software should come with plugins (or have them available) for at least the most important monitoring (for instance HP Openview), backup (for instance Veritas Netbackup) and cluster software (for instance SUN Cluster). Companies usually already have monitoring, backup and cluster licenses and expertise in house, and now software should fit it, and don't require a different solution. Or to be more general: enterprise software should fit in the existing infrastructure.
- Support. You should be able to get (buy) a support contract from the vendor. On different levels. If you don't
give your customers the options to buy a 365x24x7 support contract, you probably aren't producing "enterprise software".
I classify "Oracle" as "enterprise software". I classify "Solaris" as "enterprise sofware" as well. I certainly don't classify perl as "enterprise software". I consider "Apache" and "Red-Hat Linux" as borderline.
However, I don't think whether a piece of software is labelled "enterprise software" or not is important. There are some good pieces of "enterprise software" (is a piece of software could ever be 'good'), and there's horrible "enterprise software". And there's good software that isn't "enterprise software", and there's horrible software that isn't "enterprise software".