About Brian Leach Expertise I can answer questions relating to IBM U2 PostRelational databases - predominently UniVerse and to a lesser extent UniData. My particular emphasis lies in client/server and internet development, platform migrations, interfacing with external systems, and the various forms of middleware that serves to bind the MultiValue model to mainstream languages and technologies.
Experience I have been working with UniVerse since 1989 as a consultant, trainer and head of development for a software house producing reporting, data integration, administration and Windows 4GL tools. My previous roles were developing local government software using various MultiValue platforms. I now work as an independent IBM U2 consultant with a range of developer, web building and reporting products.
Organizations Serving President, International IBM U2 User Group.
Publications International Spectrum Magazine.
IBM U2 User Group.
Education/Credentials I originally graduated with English Mediaeval Studies, but have gained plenty of experience working with all sizes and shapes of MultiValue systems.
Question Brian, I was recently asked to detail the differences between jBase and Universe(U2). I have worked with jBase for approximately six years and with Rev G. for approx twelve years. I have "NO" exposure to Universe. I am looking to possibly work in the Universe environment and would like to know the differences I might encounter primarily in the area of language and secondarily in environment. Thanks in advance for you help. Sincerely, Lance
Answer HI Lance
That's quite a wide ranging question, so I'll precis an answer here and let you follow up more directly if you wish (info@brianleach.co.uk).
Both jBase and UniVerse implement the multivalue data model. Architecturally both a very different, though as jBase has progressed the two have converged at a functional (not archictectural) level.
Here are some of the main differences:
jBC: jBase routines are fully compiled, UniVerse compiles to p-code that is interpreted. In truth there is little if any performance difference in execution, though you don't need to mess about with library paths etc so much. UniVerse is probably more of a superset, and supports the idea of 'account flavors' to emulate different formats of multivalue. As a general rule, jBASE began as a REALITY emulator whereas UniVerse has always been primarily PRIME INFORMATION based. However, both meet in the middle functionally now, since jBase added support for I-Descriptors.
File system: UniVerse supports a wider range of file types, with good dynamic file support. All accounts use an MD/VOC file.
Query Language: generally the same, UniVerse has more reliance on D and I type dictionaries (it also supports A and S) and handles things like WHEN clauses elegantly.
SQL: UniVerse has a fully developed SQL engine in addition to the native enquiry language. THis provides a number of more powerful features in terms of enquiry, update and contraints. UniVerse supports SQL tables and native files, both multivalued.
Interfaces: Here is the main area of difference. UniVerse has always been very outward looking and has a wide range of APIs ranging from external database support, socket handling, HTTP and SOAP, a number of different APIs for working with XML, and a raft of different middlewares for external access: native (UniObjects is similar to jRCS), OleDb, ODBC, JDBC, .Net provision, upcoming .Net entity support etc. You will find it a very open system.
If you want to find out more, you can download a personal edition from IBM and you might want to take a look at an article on the www.u2ug.org website "Writing your first UniVerse application." Much of this will be familiar but it covers the file system, dictionaries, language and developing a .Net based client over the UniObjects middleware.