An Evaluation of
Oracle Power Objects

 

Building Cost-effective Workgroup Applications With Oracle Power Objects

A Review By Richard Finkelstein
Performance Computing, Inc.

July 1995

Introduction

Targeting Workgroup Applications With Oracle Power Objects

Oracle Power Objects (OPO) is an application development tool specifically designed to address the unique requirements of the client/server workgroup environment. It is easy-to-learn, easy-to-use, and consists of the right blend of functionality, productivity, and efficiency. These characteristics makes it particularly suitable for workgroup applications.

Workgroup computing can be broadly classified as applications which are servicing up to fifty business users - of which ten to twenty may be actually performing some work at any given time. Workgroup computing, when measured in terms of the number of applications actually deployed, is the largest and fastest growing segment of client/server computing. While workgroup applications are physically smaller than enterprise-wide systems, there are tens of thousands of workgroup client/server applications that are being deployed, making workgroup computing critical to even very large enterprises.

As a result of the upsurge in workgroup client/server computing, the demand for trained developers, administrators, and system support personnel continues to grow exponentially and unabated. In order to address this demand, it is necessary to adopt application development tools which can be easily learned and employed. It is imperative that developers become productive as quickly as possible because of the sheer size and demand for workgroup applications. OPO is designed to help organizations fulfill this demand. It achieves its objective by simplifying the development environment without sacrificing any functionality that is critical to workgroup level applications.

In addition, Oracle Power Objects helps ensure that the applications are not only built rapidly but are also built correctly. Client/server computing is very complicated and even the most skilled developers are susceptible to making costly mistakes. This can adversely affect the integrity of data or the performance of the overall system. It is critically important that software tools are designed to minimize or eliminate this exposure. Oracle Power Objects addresses this issue by automatically managing the complex mechanics of accessing a relational database - and doing it in a correct and appropriate manner.

Oracle Power Objects, because of its ease-of-use and easy-of-learning, is a logical “entry point” for client server computing. When coupled with the Oracle7 Workgroup Server it is particularly appropriate for:

• Large organizations that are building new workgroup level applications

• Organizations that are deploying distributed branch office applications

• Organizations that must renovate existing file server-based applications - which may utilize desktop databases such as dBASE, FoxPro, Paradox, or Access - and “upsize” them into more robust client/server databases

• Small and medium size organizations that are looking to replace centralized mainframe or mini-based applications with client/server systems

How Oracle Power Objects Addresses the Requirements of Workgroup Application Development

Unlike enterprise-wide application development projects which may span very large networks, encompass many database systems, and involve dozens or hundreds of developers, workgroup applications tend to be much more homogenous, local, and smaller in project size and scope. The differences in application requirements and development modes between these types of application development projects should be reflected in the development tools that are selected. It is a useless endeavor to overload a workgroup-oriented tool with complex, enterprise-related features if those features are inappropriate and will never be used. Overloading a product with inapplicable features makes it more difficult to learn and use, puts a burden on hardware resources, and introduces complexities which can often lead to product instabilities.

Oracle Power Objects combines the ease-of-use features usually only found in low-end desktop tools with powerful development capabilities normally associated with high-end client/server tools. Straddling these two worlds is a difficult balancing act. It requires a focused product design which takes into account what the industry has learned during the last several years about the requirements of workgroup client/server applications.

Ease of Learning

Among the more important ease-of-learning characteristics that have been designed into Oracle Power Objects are:

• Visual Drag-and-Drop Programming: Oracle Power Objects uses a visual application development paradigm which decreases the learning curve and increases productivity. Objects such as database tables, fields, views, and indexes can be created and dragged into screen forms by using simple mouse actions. The drag-and-drop operation automatically connects (i.e. binds) the data aware screen objects (e.g. forms, list boxes, scroll bars) to the database tables and fields. This is all accomplished without any programming.

• Predefined “Database Aware” Objects: Oracle Power Objects comes with a rich set of pre-defined screen objects which can be used to automatically and easily connect to and retrieve data from databases. These include: scrollable repeater displays which manage multiple displayed rows, list boxes which display values and choices that are stored in a database table, bitmap objects which display images, and chart boxes which contain graphics. Developers can learn to use these objects in a minimal amount of time and do not need to have programming experience.

• Standalone SQL Database “Blaze”: Oracle Power Objects comes packaged with a desktop SQL database called “Blaze” which is upwards compatible with Oracle7 Workgroup Server and Oracle7 on other supported platforms. Developers will find this configuration an excellent vehicle for learning OPO and developing small standalone workgroup applications.

• Oracle Basic Language: Oracle Power Objects adopts a language which is similar to Microsoft's Visual Basic but has been extended in order to make database access and handling easier. The millions of developers who are already familiar with the Basic and Visual Basic programming languages can leverage their knowledge, allowing them to quickly adopt and become productive with Oracle Power Objects.

Ease of Use

Many client/server development tools look easy to use but upon deeper inspection it becomes clear that substantial programming is required in order to access important features or to connect to databases. Object oriented programming capabilities contained in these products may have great value but may be inaccessible to the average developer because of the amount of training and development time required to make use of these capabilities. Oracle Power Objects addresses these issues by simplifying the approach and techniques necessary to implement these features:

• Optimized and Simplified Database Access:
Oracle Power Objects automatically takes care of the mechanics of connecting client/server applications to the Oracle database as well as other SQL database servers. Developers do not have to be involved with the long education process associated with learning how to correctly access, manage, and manipulate data in a client/server environment. Tasks such as locking, result-set retrieval, scrolling, and deadlock detection are automatically managed by OPO in a fashion that is optimized for the target relational database (Oracle7, Sybase SQL Server, and Microsoft SQL Server).

Furthermore, since OPO has been specifically optimized for workgroup client/server computing, application developers will be able to achieve good performance and reliability with substantially less effort than what was previously possible. For example, OPO utilizes native SQL drivers instead of ODBC when connecting to Oracle7, Microsoft SQL Server and Sybase SQL Server. Direct connections allow OPO to utilize specialized database server functions and achieve optimal performance.

• Automatic Maintenance of Multi-Table Relationships: Oracle Power Objects automatically synchronizes data that is being retrieved from multiple tables. For example, if data from an invoice is retrieved, OPO automatically retrieves related detail line data without any additional programming. OPO ensures that referential integrity is properly enforced. For example, a user can not delete invoices if there are still detail lines associated with that invoice in the database.

Object-Oriented Capabilities

At the heart of object-oriented programming is the notion of program reusability. By reusing code when it is appropriate, developers can substantially reduce their programming and maintenance efforts. OPO's data aware objects are examples of how object reusability can greatly increase programmer productivity. Objects such as the repeater displays, list boxes, scroll controls, etc., are, in essence, reusable objects that are most commonly needed when developing database applications. With OPO, developers can easily reuse these objects without having to be concerned with how these objects work.

It is often desirable for development teams to build their own object classes and reuse these objects within one or more applications. For example, objects can be developed that can be used to standardize screen displays (e.g., font styles, colors, and logos). However, building reusable objects is sometimes easier said than done. Object-oriented programming can be very complicated, making it difficult to learn and use. Any savings in reuse can be dissipated by learning, deployment, and maintenance costs associated with complex object-oriented languages and paradigms. In order to build objects efficiently, developers must:

1) Know how to design and create reusable objects

2) Be able to transfer knowledge about the objects to other developers so that they are correctly reused

3) Allow objects to be easily reused

Oracle Power Object's visual object model is a novel way of addressing component reuse and thereby making object oriented programming more accessible to the average developer.

• Visual Object-Oriented Programming: OPO relies on visual component reuse. User defined object classes can be created visually and reused by simply dragging and dropping them into other components. Visual objects can inherit the characteristics of other objects. It is possible to break object inheritance if an object truly needs to become an independent object. This is very important when maintaining objects which exist in a parent-child relationship but which over time may no longer have a true parent-child relationship. Linkages between parent and child objects can be reestablished if necessary.

• Mass Market Program Reuse: Oracle is establishing an Object Marketplace which will act as a central clearinghouse for developers who are selling or looking for specific types of objects. The objective of the Marketplace is to provide an electronic sales environment whereby a wide selection of objects are available for purchase on the World Wide Web at an inexpensive price. For example, a developer could purchase an “address” object that automatically reads an address in an Oracle table, validates the data, and formats it in a correct display format (capitalization, justification, etc.).

Flexible Deployment

It is not feasible to find, train, and assign skilled on-site personnel to manage each workgroup application. Workgroup applications must be easy to install and require the minimum amount of manual intervention. In addition, applications should require a small hardware “footprint” so as to minimize hardware costs and to leverage current hardware environments. Oracle Power Objects meets these objectives in the following ways:

• Small Footprint: Oracle Power Objects can be deployed on PC equipped with 8 megabytes of RAM. This is very competitive with other desktop products and less than the requirements of many high-end application development tools.

• Simplified Installation: Oracle Power Objects is designed to complement the Oracle7 Workgroup Server. Oracle7 Workgroup Server comes with easy installation procedures and configuration defaults which make it relatively easy to install and manage on various Intel-based operating systems including Windows NT, OS/2, and Netware. In general, these configurations are easier to install and manage than Unix based systems.

• Product Integration: Oracle Power Objects and Oracle7 Workgroup Server are well integrated client/server configurations which are supported by a single vendor - i.e., Oracle Corporation. Single vendor support usually means that problems can be resolved quicker since a single vendor has ownership of both pieces of software. This eliminates potential vendor conflicts.

• Windows/Macintosh Portability: OPO applications can be deployed on both Windows and Macintosh machines without the need to modify application code. This minimizes the amount of training, programming, and maintenance required to maintain applications in multi-platform organizations. An OS/2 version of OPO is in development and will probably not be delivered before the fourth quarter of 1995.

• Disconnected and Desktop Applications: Customers can use “Blaze”, the standalone SQL database, to deploy applications in field offices which are not connected full-time to a centralized database server. For example, “Blaze” applications can be used to capture order and customer information. Then the information can be uploaded in a batch mode to a centralized Oracle database. This is relatively easy to accomplish since “Blaze” has a small footprint (300K), is upwards compatible with Oracle7, and supports Oracle communication links. It is also possible to build applications that do not require any Oracle connectivity. “Blaze's” small footprint and free runtime deployment make it appropriate for creating small desktop database applications.

Future Directions For Oracle Power Objects

Oracle Power Objects is scheduled to be enhanced with new features in the next release. The objective of these enhancements is to increase the usability and functionality of the development and end user environment:

• Reporting Capabilities: Oracle's report writer is a good basic report writer which can satisfy most reporting needs. The report writer can be improved by adding end user prompts - sometimes referred to as wizards - which would make the report writer more accessible to end users when designing simple reports.

The Query-By-Forms capability is an adequate end user query facility but it has some limitations. For example, it would be better to have a query tool which can submit more complex query requests.

Application developers will at times need a report writer which can create: very complex reports, reports that can be run in a batch environment, or reports that can be run - for performance reasons - on the server. In these cases, OPO's report writer will probably be augmented with third-party reporting and query tools. There are several such tools available on the market and most support direct access to Oracle - as opposed to less optimized ODBC connections.

• Development Environment Usability: The Forms Designer is very flexible and powerful but needs enhancements such as larger code windows for editing and modifying Oracle Basic code.

It would be worthwhile to include a spreadsheet-like grid control object in OPO that has built-in horizontal scrolling capabilities. With horizontal scrolling capabilities, the number of fields that can be displayed on a single line is not limited by the width of the screen. The repeater display object that comes in the current version of OPO provides most of the necessary capabilities for managing multiple rows in a grid-like fashion, but does not support horizontal scrolling. Instead, developers can fetch fields from a single database record and display them in multiple lines stacked on top of each other. This approach takes up more screen space since a single record is being displayed on multiple lines instead of one scrollable line. Alternatively, it is possible to pop up a window which will display all of the information associated with a row. Both of these approaches are reasonable, though it would be better to have the option of using horizontal scrolling.

• Error Message Handling: At this time it is not possible to intercept all database messages with program code. Under these circumstances developers must accept the default processing and screen display messages that are provided by OPO. Under some circumstances it is preferable to override default behavior in order to better handle exception conditions.

• Group Development Facilities: As workgroup applications are normally built by small teams of developers, it is not that important that OPO include team development features such as program check-in/check-out and versioning. Third-party versioning tools can be used with the current version of OPO, but it would be desirable to have these facilities integrated into the product.

Conclusion

Oracle Power Objects is a well balanced product which effectively incorporates extensive usability features into a powerful application development environment. OPO coupled with Oracle7 Workgroup Server is a very attractive offering. They will appeal to organizations who are looking to deploy workgroup or branch office applications. Developers who are looking to move up from traditional desktop-based systems to more robust client/server architectures will also find them appealing.

OPO is very accessible and aggressively priced. It comes with a standalone SQL database called “Blaze” which is upwards compatible with Oracle7 on supported platforms. With a very modest software investment, organizations and individual developers will be able to evaluate and learn OPO and then scale up to Oracle7 on supported platforms.

Oracle Power Objects is a very well thought out product which addresses a wide variety of needs. It should be widely embraced by the current Oracle user community and by new customers who are looking for a low-cost and powerful tool for implementing new client/server workgroup applications.

Oracle Power Objects - In Depth

Oracle Power Objects gives application developers the ability to rapidly develop client/server applications with minimal coding. It helps developers to easily and productively extend the functionality of applications with powerful internal functions, a robust standard language, and the power of object orientation. OPO was specifically designed to create client/server database applications and includes a sophisticated set of default “database aware” objects for data access. Oracle Power Objects also makes it easy for a developer to seamlessly deploy their applications in a variety of different environments.

Rapid Application Development

Oracle Power Objects gives developers an environment where they can rapidly develop the framework of their applications.

Graphical application design

Oracle Power Objects offers an unparalleled ease of rapid application development. Oracle Power Objects lets a developer easily create application systems, forms, and database connections through pointing and clicking actions. A developer can easily view the structure of a database table or view, or the data contained in the table or view, by merely clicking on an icon. The developer can select the data columns that are required in the application and drag the selected columns to the form window. Oracle Power Objects will automatically create data fields that are connected to the selected data columns and labels that are derived from the names of the columns. A scroll bar can be dragged onto a form to provide a method for users to move through the data. The result is a completely functional application in less than one minute.

Default database interaction

The default application automatically handles all of the interaction with the database. The user can retrieve data from the database by simply clicking on one of the default toolbar buttons in the toolbar. Users have the ability to scroll through the results of their database queries by using the scroll bar in the application. Oracle Power Objects will automatically detect if a user has made changes to data. Toolbar buttons enable a user to commit or rollback database transactions. In comparison, other language-based tools, such as Visual C++ and Visual Basic, require a lot of programming to handle database transactions. For example, in order to access databases such as Oracle7, Sybase SQL Server, and Microsoft SQL Server, developers are forced to work with the low-level and very labor intensive application programming interfaces (APIs). Oracle Power Objects does an excellent job of managing result-set retrieval. By merely specifying a property, the developer can control how the data retrieved from the database is handled in the client.

Automatic Query-By-Form capabilities

OPO automatically provides a Query-By-Form capability. By simply clicking on a toolbar button, a user can enter selection criteria for the form and retrieve the data. This is a simple way of providing the end user with some default query capabilities. This works with both forms and reports. Other products require extensive coding to achieve the same functionality. In order to emulate the same capability in other products, it would be necessary for the developer to create a screen to collect the query conditions, correctly formulate a query behind the scenes that can be sent to the database server, and then retrieve and display the results of the query.

Easy graphical application modification

Developers can change the size and positions of the objects on their forms by dragging them within the form. They can control the appearance and functionality of the objects in their forms by selecting different values for their properties from a list of possible choices. Oracle Power Objects makes it easy to modify a group of objects in the form by giving developers the ability to select all of the desired objects and change their common properties at the same time.

With Oracle Power Objects, a developer can rapidly create applications The applications will have a high level of built-in client/server functionality, with minimal or no coding involved.

Extending Application Functionality

While Oracle Power Objects gives developers the ability to rapidly create simple applications, it also gives them a way to extend a basic application with a combination of the power of object orientation, built-in functions and methods and an industry standard language.

True object-oriented architecture

Oracle Power Objects is built on a solid object-oriented architecture. Whenever a developer creates an object in Oracle Power Objects, the object comes with a large amount of functionality built into the methods of the object. Methods are either triggered by a user action, such as a click on a toolbar button or radio button, or called on automatically as the OPO applications perform actions, such as changing a data value of an object or writing to the database. It is important to note that these are objects that are built directly into OPO as opposed to VBX controls that may be required in other development tools. The problem with VBXs is that they introduce a third party which developers must depend on to deliver the necessary functionality with appropriate reliability, and to resolve any problems that may arise.

Multi-level inheritance and complex classes

OPO developers can create their own object classes. They can also create their own methods used to implement logic within an object class. An object class can inherit its functionality from another object class, and a developer can extend or modify the methods of the parent class. Developers can create multiple levels of inheritance. They can design their object classes to gradually build in additional functionality.

An OPO class can contain many other classes within it. A developer can create complex classes that provide a broad range of functionality. All of the functionality of a class can be included in an application by simply dropping an instance of the class into the application.

Since all classes are thought of as containers, navigation through a deep class structure can be challenging, although OPO allows users to navigate to the topmost class in a nested class structure with the GetTopContainer() function.

The power of object orientation can dramatically improve the productivity of an entire development staff. As developers create applications, they can also be creating a library of reusable objects which can simply be added to the new applications, or extended and modified to provide more specific functionality. Using an instance of an object class not only improves developer productivity by removing the need to reimplement functionality, but reduces the amount of testing necessary. Since the object classes have already been tested, the maintenance burden is reduced. Maintenance can be preformed on object classes and the changes will cascade into the instances of the classes. Without object orientation, developers are forced to use a 3GL scheme of code libraries to achieve some degree of reusability. This is more awkward and time consuming than object-oriented design and reuse.

Built-in functions

Oracle Power Objects supplements the Oracle Basic language with many built-in functions and methods. OPO functions provide powerful logic operations through a single command, such as the ability to look up values in a database column based on another value, the ability to provide the user feedback through a message box, or the ability to perform complex financial calculations. Developers can also create their own piece of application logic that can be called throughout their applications.

Robust Basic Language

Oracle Power Objects includes Oracle Basic, a robust version of the standard Basic language. A developer can use Oracle Basic to create virtually any type of logic required in the applications. Although the actual code development environment in Version 1.0 of OPO is not as productive as more mature tools, future incremental releases are slated to address these shortcomings.

Multi-window development interface

Oracle Power Objects gives developers the ability to open a separate window for each form, application or database connection at the same time. A developer can view multiple forms, applications or database connections at the same time, which makes the development of multiple form applications much simpler. Developers can easily navigate between different sections of their workspace.

Appropriate Client/Server Application Design

The client/server revolution has been driven by the dramatic increase in the demand for user-friendly applications. Client/server applications are deployed into a hardware environment that is significantly different from a traditional environment.

In a traditional computing environment, database software and applications communicated by sharing machine resources. An application program and a database shared the same memory pool, CPU and hard disk. The separation of an application and its data played a functional role, and communications between these components was not a bottleneck. Database servers could deliver data a row at a time, since the transfer of data was extremely fast. The problem of protecting updates from being lost was handled through a variety of locking schemes, designed to protect the integrity of data.

In a client/server computing environment, the situation is very different. Client applications typically exist on a client machine that communicates to a database server over a local area network or some other distributed topology. In addition, client/server systems tend to be read intensive and interactive. A user will request data and spend some time reviewing it before either making changes to the data or requesting a different set of data. Finally, in a client-driven application, a single request from a user may result in widely varying amount of data being returned to the client application.

Optimized data retrieval

Oracle Power Objects is designed to handle the problems of client/server systems. OPO offers a developer different ways to retrieve data to the client machine. The developer can choose to retrieve all requested data to the client if the application requires it immediately. The developer can also choose to fetch data only as it is requested by the user. With this option, Oracle Power Objects fetches 10 rows at a time as the application needs them. By only retrieving data when requested, OPO increases the throughput of the local area network and the database server by spreading out the delivery of data. If a user does not require the entire set of results, the database server will only retrieve what is needed and transmit it over the LAN. A count of the number of rows in a result-set can be retrieved enabling the application to make intelligent decisions based on the amount of data available and retrieved.

Developers must take care to insure complete retrieval of data before the end of a transaction when fetching data as needed. Procedural code can handle this situation.

Other 3GL-based languages do not have these capabilities. As a result, developers are forced to decide the type of scrolling to implement, the number of records to buffer, the type of locking schemes to use, and other result-set handling issues. This is a significant burden and requires a very experienced developer. Even then there is the possibility that developers will not handle the problems consistently or correctly. Oracle Power Objects relieves developers of these problems.

Automatic integrity control for client/server systems

In a client/server system, users tend to retrieve data and spend some time reviewing it before making any changes to the data. This results in relatively long transactions, which increases the possibility that the data which was retrieved by the user may have been changed by another user since it was last retrieved. Oracle Power Objects allows the developer to set the CompareOnLock property of an object. When the CompareOnLock property is true, Oracle Power Objects automatically checks to see if the data associated with the object has been changed before attempting to lock the data in preparation to changing the value. Oracle Power Objects will automatically refrain from overwriting data that has been changed and will inform the user of an application if such a situation exists. Oracle Power Objects protects the integrity of data in a client/server system.

Distinct database connection information

Client/server systems are typically deployed into a variety of different hardware and software configurations. Oracle Power Objects maintains a separation between the information that is used to connect to a database server and the application that requires the connection. This separation allows developers the maximum flexibility in designing and deploying their applications. Oracle Power Objects even lets development transparently indicate connection to different database servers in the development and the runtime environment.

OPO is the first application development tool to provide these sophisticated client/server features as defaults while still providing a very high level of developer productivity.

Seamless Deployment

The client/server environment is marked by a heterogeneous mix of hardware and software platforms. Oracle Power Objects handles the difficulty of deploying applications in a mixed environment.

Multi-platform development and deployment

The complete Oracle Power Objects development environment runs under Windows and the Macintosh operating system, with an OS/2 version due out later in 1995. A developer can use any of these platforms to create their applications and deploy them on any other supported platform with a simple re-compilation of the application. OPO is the first robust tool to support such a wide spectrum of client operating environments and, because of its low price point and small footprint, makes it an excellent alternative to 3GL languages, such as C++, for deploying cross-platform applications.

Local SQL database

Oracle Power Objects also includes a local, compact, and efficient relational database called “Blaze”. “Blaze” databases support many of the features and capabilities of larger relational databases, but require significant fewer system resources (300K) to run. They can contain all of the basic database objects: tables, views, indexes, sequences, and synonyms. As with most relational databases, they are accessed through the SQL relational querying and programming language. A developer can use “Blaze” to create client/server application systems on a standalone computer. A developer can also deploy their applications with “Blaze”. The application could use “Blaze” to keep some or all of the data needed for the application on the local machine. The ability to keep connection information separate from an application, coupled with “Blaze”, gives developers a great deal of flexibility in creating client/server applications that will operate in a variety of database environments.