Over their 30 year history, Oracle Forms (and Oracle Reports) application development tools, and the applications on which they’re based, have been deployed worldwide by thousands of companies. While extremely powerful and innovative when they were introduced in the 1980s, these apps limit an organization’s options to run on their platform of choice – alternative User eXperience (UX) such as HTML5 and “responsive” UI, alternative application servers, and alternative databases. In this post, I discuss 3 key concepts that must be addressed to deliver compatibility without compromising execution accuracy for customers who want to explore options to re-platform their Oracle custom apps to modern, alternative architectures that exploit low-cost cloud computing, run standards, and run everywhere.
As a former employee of and contributor to Oracle Tools Division in the 1990s, I worked in a team of impassioned developers to change the way customers build database-driven apps. I’ve seen customer usages evolve as they upgraded over successive releases of Oracle Forms, from SQL*Forms v3.0 to Oracle Forms 9i. Today, as a team of developers defining transformative technologies for Oracle custom apps, we’ve identified several salient attributes of these apps through several customer engagements, 3 of which I’ll introduce here: (1) “long running” transactions; (2) distributed session/state across all computing tiers (database, app server, and client); and (3) application-specific logic and its dependency on event architecture.
For long-running transactions, row-Level pessimistic locks that are held by users for prolonged periods – hallmark of Oracle custom apps – can lead to data inconsistency in modern HTML5 apps if not treated across all transaction use-cases. For distributed session and state management, the Oracle Database allows application state to be stored in package variables, which poses a significant challenge in modern architectures that leverage connection pooling for better system resource utilization. For customer application-specific logic, Oracle Forms is dependent on Oracle Database-specific datatypes, such as PL/SQL BOOLEAN, PL/SQL RECORD, and PL/SQL TABLE. These datatypes are not supported in modern programming languages or even other databases. For example, a BOOLEAN datatype represents only 2 states – TRUE or FALSE. In Oracle Database, a BOOLEAN datatype has 3 states – TRUE, FALSE, or NULL. This leads to unexpected behavior in certain conditional processing for custom app logic in any modern app, not just re-platformed Oracle Forms/Reports apps. In the next post, I will review these attributes in greater technical detail with code examples.
Our engagements have shown that customers’ expectations of compatibility mandate that their core information assets – applications and the data on which they operate – must run identically as releases are upgraded within the same architecture, and run identically even when re-platformed to a different architecture. As application complexity increases – in number of screens, intricacy and size of code, distributed state across the database, application server, and client tiers – a transformative change will not be adopted if the re-platformed app is not transparent to end-users. Some of these concepts have been raised before. For example, this article from Oracle Corporation discusses topics of compatibility from the viewpoint of an upgrade within the same architecture stack: http://www.oracle.com/technetwork/developer-tools/forms/documentation/formsmigration-133693.pdf. In some cases, customers demand improvement through re-platforming, without breaking execution accuracy. For example, they seek incredible ease-of-use benefits to improve usability, non-intrusively, without breaking core business process logic.
Please share your findings so we can help the broader developer community of Oracle database developers building new HTML5 apps, not just Oracle Forms and Oracle Reports customers, solve universal problems for modern enterprise application development. Tweet me @neoworksinc with your views, and come see us at Northern California Oracle User Group (NoCOUG) in San Ramon, Ca on August 20, 2015. Visit our Facebook page at: https://www.facebook.com/neoworksinc .
Have a great rest of your week!