Omnis Studio 1.0a delivers cross-platform object sharing

New software boxes I open tend to fall into two classes: Let's Get Started and Not for the Faint of Heart. The former category tends to be simpler systems -- they install quickly and have straightforward information, data flow modeling and good tutorials. Within an hour or two, you can be developing your applications, admittedly at a crawl as you cling to the manuals and samples for support, but you are up and moving. The latter category is reserved for products you must grok or become one with -- ones you must understand and understand well before you can begin to function. Microsoft's Visual C/MFC falls in that category; so does Omnis Studio.


Omnis Studio from Omnis Software, San Bruno, Calif., is a complete object-oriented development environment, generating modules which can be run on MacOS-based systems as well as PCs running Windows (3.1 up through 95 and into the NT era) or OS/2. It allows you to develop what Omnis calls "crossware" applications -- applications that have components (databases, functional components, viewing components, etc.) which operate on a variety of traditionally incompatible architectures. Individual components can be scripted into your application regardless of their origin. Further, in keeping with emerging technologies, the Omnis Web Integrator allows your application to function through a traditional Web interface.

A complete list of the features in Omnis Studio could well fill this space; it should be sufficient to say that this product comes with a variety of preconstructed components such as windows, menus, tables, search objects and so on. As a hierarchical object-based environment, you are expected to extend the base components to meet your needs. In effect, you construct your own libraries of components by subclassing base components. And after your components are built, others can subclass them to meet their needs, adding and removing methods to meet different applications. Omnis Studio provides a broad base of tools; you will be evolving them to meet products' needs.


The distribution of Omnis Studio consists of a single CD-ROM and four manuals. The two smaller manuals cover the database cache module and the version upgrade modules. The two larger are a reference volume and a basic user's guide ("Using Omnis Studio"). In addition, Omnis sent two of its add-in products, the Production Manager and the Data Access Manager. The former is an integrated source code control system; anyone with SCCS experience is well familiar with how these work. The latter is a SQL database interface to a broad collection of third-party databases. If you plan to be using Omnis with Informix, Oracle or ODBC databases, you will need this product. The last item distributed with the package was a CD-ROM entitled "Omnis Studio Interactive Getting Started & Examples." I do not know if this is normally part of the released product or only part of the review package; if the latter, Omnis Software should change this policy. Omnis Studio is an incredibly rich and complex product; without a large base of samples (and/or attending one of Omnis' courses), learning how to use Studio would be virtually impossible.

Installation went quite smoothly. The CD-ROM's root contains the de rigeur .txt files telling you where to find the appropriate version; browsing into the appropriate directory allows you to select either a Windows 3.1, Windows 95 or Windows NT version. The CD-ROM is labeled "Macintosh OS / Windows OS;" presumably, if you inserted it into a MacOS computer, it would instead present you with the MacOS installation options. I did not investigate this branch, though, concentrating solely on the Windows NT release. When I ran the setup procedure, it stepped me through a small set of questions and installed the product. It was one of the faster and smoother installations I have experienced.

In addition to the full set of releases, the CD-ROM also contains the source code for some of the external components, Adobe Acrobat 3.0 and a complete set of online documentation. While I commend Omnis for releasing both paper and online copies of the documentation, I must admit that I have a mild dislike for Adobe PDF as an online distribution paradigm. I consider PDF to be a well-designed model for page construction, however, I do not consider page-oriented displays optimal, or even appropriate, for screen presentation. And while Acrobat/PDF allows interactivity such as tables of contents and hyperlinking, documentation constructed towards PDF and hard copy distribution never seems to take full advantage of the interactive features. As a result, nearly every online PDF presentation has been weakened by a lack of dynamics coupled with the unaesthetic nature of a display created for physical pages (with arbitrary breaks and borders) shoehorned into the stream-oriented behavior of scrolling windows. I have, in case you haven't guessed, a strong preference for HTML-style manuals and greatly prefer the HTML model over the PDF model for interactive and online presentation of information.

Earlier, I suggested that the learning process is a daunting one. And it is. The learning curve is a long one as well, with the usual bumps and plateaus, but it is not necessarily an extremely steep one.


What aids in the process (and indeed, makes learning this product possible at all) is the reasonably intuitive and smart GUI. When you start Omnis Studio and create a new library of components, you are presented with a display, a single library and access to a set of base components. Double-clicking the SMP2 icon opens it up to another window (labeled SMP2...) which represents the SMP2 object. It will already have a New Task component. All you need to do is to drag other necessary components (New Window for each window, New Menu should you need a menu and so on) and create their component-specific behaviors.

I opened up my SMP2 library, and dragged in a new window object. (See screen shot, page 74.) After renaming the object as "Billing Report" (visible in the lower left), I added a couple of check boxes (lower center) by dragging them from the Component Store (lower right) onto my window. All that is left is to program in various activities (methods, behaviors, functions, whatever you call them) to respond to whatever messages your objects receive. The middle top window shows this, presenting, for the currently selected object, a list of what methods and variables you've defined, and the code you've written for each method.

The language of choice for direct authoring is the typical object-oriented pseudo English which can loosely be classified as "Basic-like" in the same sense that Visual Basic can be called "Basic-like." In other words, it has no resemblance to traditional Basic, but it has variables, looping and selection constructs, class-like notations, extensions related to the current product, and is neither C++ nor Java. And if it isn't C++ or Java, it must be Basic.

I consider the user interface to be an "elegant crowd;" lots of windows, many of which have lots of subwindows. All of them are logical and consistent in structure, and all of them focus in on their particular tasks well. At least under Windows NT, the product takes good advantage of the environment. However, the fact remains that there are a lot of windows.


Earlier, I described this product as one which must be understood as a whole before a developer could be effective. As you can see, the concepts are not overly complex. Within hours, you could be building some components; within days, you could be building simple applications. However, to use the product, you need to become quite knowledgeable about all of the object properties, potential methods and methods of shared data access. From this point, you need to start the construction of your own object libraries -- the ones supplied are quite minimal in structure and functionality. Learning the product will not be a short task. Omnis Software offers a variety of classes, and if they are at all like classes I've taken in the past, they will provide you with a supervised jump-start into the technology. However, nothing replaces experience.

In summary, I was quite impressed by the product. I do not think it is appropriate for a single application. However, if you are planning to develop a series of related products in a cross-platform environment, Omnis Studio would be worth considering. Its ability to share and evolve (subclass) a wide range of objects across a variety of platforms lends itself well to large, ongoing development efforts.

Omnis Studio version 1.0a comes with a variety of preconstructed components such as windows, menus, tables and search objects.

Omnis Software

San Bruno, Calif.

650 571-0222

About the Author

Stephen Platt is the Manager of Electronic Publications at National Software Testing Laboratories, Conshohocken, Pa.