Re: Universal Server
Posted in 1996
I'm involved with the product. Since I work for Informix, it might be easy for me to be accused of being rather biased. However I'm not a salesman, so I won't answer with a bunch of hype ;) Universal Server is based on 7.2. It has all of the features of the 7 product line, such as parallelism, performance, fragmentation, etc. This means that the eventhough it is somthing rather new, it is a rather mature, robust product. It supports all of the things that 7.2 supports, and appears at this point to be a rather stable product for somthing in beta. It contains the object database features such as user defined types, table inheritance, operator over-rides, complex types, opaque (i.e. private attributes) data types, distinct redefinitions of previously defined types. The 'methods' are implemented by user defined routines which include stored procedures(functions), and programs written in 'c'. There is also work currently being done to provide support for Java. By allowing SPL (stored functions) to be used to implement a user defined data type, it is possible to define some rather complex logic within the database, without having to worry about coding 'c' programs to manage these types. The 'c' user defined routines can be executed either on the client or actually in the engine. This allows us to place code where it seems to belong. For instance, if a 'select' is done on a vidio file, the UDR might make more sense on the client and actually 'play' the vidio on the client terminal. The UDR can also reside in the engine on one of the cpuvp's or on a 'special purpose' vp. Since we don't do 'blocking' calls within a normal CPUVP, we wouldn't want a UDR executing on a normal CPUVP if it did blocking calls. For instance, if the UDR/UDT were a mail system, the 'insert' statement might actually cause a fax to be sent. I might not want the insert to be considered complete until the fax had actually been sent, at that point, a jpeg version of the fax might be saved in the database as well. While this could be done async, it might be easier for all of this to be done in sync mode. Of course, this is a rather slow process, so it wouldn't make sense for this to execute on the normal CPUVP. Another feature of the system is that non-traditional storage media is allowed. For instance, supposed that I wanted to build a database of vcr tapes. The actual storage media would be the physical tape library itself. This would allow a statement such as "select movie where title = "Star Wars" to literally cause a vcr tape from a library to be retrieved.