|
Omnis Studio: Bringing Database Application Development to Linux
Creating Cross-Platform Applications Under LinuxWe like the way Omnis Software's Omnis Studio brings multiplatform, database application development and delivery to Linux. Omnis has a long track record on Windows and Macintosh with its rapid application deployment (RAD) tools. Omnis provides matching development and delivery tools on all platforms, and applications created on one platform can run on the others, assuming platform-specific features are not used. Omnis Studio can be used to develop stand-alone or multiuser database applications as well as Web-based applications. The latter is handled through the Omnis Web Client, which supports Netscape Navigator and Internet Explorer. The Client provides a secure channel back to the Omnis Server. Of course, we tested the whole system using Linux. Omnis applications have run-time costs associated with them. For standalone or multiuser applications, users must purchase a runtime license that can be as low as $10 per user. The same run time can be used with as many Omnis applications as necessary. Web-based solutions are priced based upon the number of connections supported by the server. Subscription pricing with continued tech support is available as well. Omnis Studio uses Ominis' own single inheritance, object-based programming language. Omnis Studio comes with its own database system and includes, in addition to its own Data Access Module (DAM) interface, DAM support for most major SQL servers such as Oracle, Informix, Sybase and IBM DB2. ODBC support is available on some platforms. Omnis Studio is similar to Microsoft Access in that both incorporate an interactive development environment with database creation and manipulation tools, but there are major differences. Omnis Studio uses Object Oriented Programming versus programming with objects as in Visual Basic for Microsoft Access (VB/Access). Omnis tasks are actually groupings of components like forms, objects, and databases. Actually everything is an object, and the basic set of objects is small, just over half a dozen, making the system easy to understand. Inheritance makes creation of enhanced objects easy. We used Omnis Studio's wizards to quickly set up applications. Borrowing components from other samples made experimentation easy, although we had to call on our own development experience when developing new objects. Omnis Studio's programming environment is purely event driven. This has an interesting impact when it comes to development. As with most graphical integrated development environments (IDE), Omnis has a design mode and a run-time mode. The big difference is that, because of its event-driven design, it is possible to start running code associated with an object at any point. This is difficult or even impossible to do with other IDEs. This approach is very effective when combined with breakpoints, since it is easy to test snippets of code instead of the complete application. I found even testing boundary conditions to be possible using this approach, something that would be very time consuming on other platforms.
Some Platform DifferencesThe IDE provides the multiwindow environment that programmers have come to expect. There is a properties window when graphical items are selected on a form design. The code window is an object hierarchy browser with syntactic hints presented in panes instead of popup windows as with Visual Basic. The advantage is the ability to search for methods and arguments even when you don't know the exact spelling. Also, the IDE includes a version-control system that is invaluable for group development. We also found this useful when creating applications individually making it easy to back track to working versions. Omnis's support for database includes its embedded Omnis Data Manipulation Language (DML) that works with DAM connections. DML provides most features found in SQL, including joins, although the syntax is different. SQL can be used but certain features like joins are not support using Omnis's database. SQL statements sent to SQL servers can take advantage of features found on the server such as inner and outer joins and programming support such as Oracle's PL/SQL. Omnis even supports BLOBs (binary large objects). Omnis does a better job linking Omnis variables within SQL queries than competing products. Omnis has relatively good Web support. This includes access to SMTP/POP3 electronic mail, FTP and HTTP support as well as direct TCP socket support. Omnis has special functions like the HTMLSplitHTML that converts a web page into an Omnis list. It is possible to create pure, cross-platform Omnis applications and most applications fall into this category. While this makes training and support of these applications easier, it does not take advantage of many of the features that make a particular platform unique. For example, while using the Apple MacOS events and Publish and Subscribe features will make an Omnis application more functional in a Macintosh environment, these features will not translate directly to Linux or Windows. Windows dynamic data exchange (DDE) support allows integration with other applications easier but this support does not translate well. The support for SQL server-specific code has already been mentioned, and is another source of potential incompatibilities among platforms. Of course, in most instances, the reason for taking advantage of platform-specific features is to support environments that will be using the platform exclusively, making cross platform distribution less of an issue. Omnis object underpinnings make it relatively easy to determine on which platform an application is running, so it can compensate accordingly. Conversion of applications from other languages such as C++ or Visual Basic is not a straightforward task. As with most conversions, it will be a one way operation. Christopher Cozad, Chief Technology Officer at consentsys.com, inc., moved a major Visual Basic application to Omnis and has not looked back since. Chris finds Omnis to be a major improvement over Visual Basic and has taken advantage of its added functionality, making reverse migration a non-issue. I agree with his assessment that Omnis Studio has a steep learning curve, but no more than with VB/Access. Programmers definitely need to know about object-oriented programming and relational databases, especially SQL, to make the most of Omnis. Our only major concern is its inability to generate standalone apps. This is a non-issue for Web client-based solutions. It is also of little importance in environments where multiple Omnis applications are deployed, since the run time must be configured only once. The main consequence is that installation for applications is slightly more involved. Omnis Studio is targeted primarily at developers looking for cross-platform delivery, vertical market applications and in-house application development. Its pricing is well suited for these environments. Check out Omnis' Web site for third-party apps and a new developer portal now being set up for sharing code and development expertise. With Microsoft Access and Visual Basic stuck on Windows and Borland's Kylix Linux tool still in the works, Omnis Studio stands out as the development tool which supports the three major PC platforms.
|