* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download NetPlus White Paper
Entity–attribute–value model wikipedia , lookup
Open Database Connectivity wikipedia , lookup
Microsoft Jet Database Engine wikipedia , lookup
Team Foundation Server wikipedia , lookup
Serializability wikipedia , lookup
Relational model wikipedia , lookup
Extensible Storage Engine wikipedia , lookup
Clusterpoint wikipedia , lookup
Microsoft SQL Server wikipedia , lookup
Concurrency control wikipedia , lookup
DATAEASE DataEase Plus / NetPlus and ActiveServer Technical overview October 1997 Copyright Sapphire International, September 1997 Copyright Sapphire International, September 1997 Page 1 DATAEASE Table of Contents Executive Summary ................................................................................................... 3 Product summary ....................................................................................................... 4 The Evolution of Client/Server Application Development ..................................... 6 Complexity of Client/Server Transaction Logic .................................................................. 6 First-Generation Client/Server Tools ................................................................................... 7 The New Generation of Client/Server Tools ........................................................................ 7 Role of Internet in the Evolution .............................................................................. 8 DataEase Technology Overview................................................................................ 9 Familiarity for DataEase Developers ..................................................................... 10 Familiar Business Rule Definitions ..................................................................................... 10 Familiar Relational Model ................................................................................................... 10 Familiar Form and Report Creation .................................................................................. 10 SCALE Dynamic Repository ................................................................................... 10 SCALE Centralized Business Model .................................................................................. 11 DataEase Facilities for Business Model .............................................................................. 11 SCALE DataLinks .................................................................................................... 12 SCALE Migration Express ...................................................................................... 13 SCALE Rules Server ................................................................................................ 13 SCALE Trigger Express ...................................................................................................... 14 Enforcement of Business Rules ........................................................................................... 14 Centralized Business Rules .................................................................................................. 14 SCALE Automated Transactions ........................................................................... 15 Automated Master-Detail Processing ................................................................................. 17 Automated Optimistic Concurrency .................................................................................. 18 Application Deployment .......................................................................................... 18 DataEase ActiveServer ......................................................................................................... 19 Automated Run-Time Performance ................................................................................... 19 Optimized Query Partitioning ............................................................................................ 20 Optimized Query Generation .............................................................................................. 21 Intelligent Caching of Data ................................................................................................. 21 Heterogeneous Distributed Database Access ..................................................................... 22 Deployment ........................................................................................................................... 23 The DataEase Programming by Exception Model ................................................ 24 Visual Development .................................................................................................. 25 Transaction Builder ............................................................................................................. 26 Form Styles ............................................................................................................... 27 Building the Form ................................................................................................................ 28 DataSmart Controls ............................................................................................................. 29 DataFrame Control .............................................................................................................. 31 Users Visual Forms Editors ................................................................................................. 32 Open Object Architecture ................................................................................................... 33 Integrated Reporting and Online Decision Support ......................................................... 34 SCALEScript Language .......................................................................................... 35 SCALEScript Features ........................................................................................................ 35 Data Access Statements ........................................................................................................ 36 Object-Oriented Features .................................................................................................... 36 Use of SCALEScript ............................................................................................................. 37 Interactive Editor ................................................................................................................. 38 Testing and Debugging ........................................................................................................ 39 Team Development Features ................................................................................... 39 DataEase Benefits ..................................................................................................... 40 Conclusion ................................................................................................................. 41 DataEase .................................................................................................................... 42 The beginning ....................................................................................................................... 42 The mission ........................................................................................................................... 42 The future .............................................................................................................................. 43 Page 2 Copyright Sapphire International, September 1997 DATAEASE Executive Summary Today, more than ever before, companies are faced with intensified competition and changing customer preferences, leading to a drive to reduce operating costs and improve efficiency in response. Information technology has a major role to play in helping them to achieve this. All corporations are in the information business and the best-use of this information produces the required competitive advantage and bottom-line results. But one overriding factor has a tremendous bearing - it has to be the right technology, otherwise critical response times are not achieved and important information is neither used or managed effectively. To ensure success, companies must use technology to empower not overpower their employees. That way they make better business decisions, quicker. But if desktop based decision support is suffering from the current applications backlog of 24 - 30 months for maintenance and enhancement, it becomes increasingly unlikely they will be receiving the latest decision support information they need. As client/server has increased this dependency on desktop decision support, any applications environment that doesn’t support the rapid implementation and deployment of changes, runs this risk. The DataEase scalable RAD2 line of development tools now offers a fast, easy-touse and highly cost-effective solution. One that significantly reduces the elapse time between the critical design and final implementation stages of the application development process. By doing so, it enables companies to invest their often overworked resources at the key design phase and significantly reduces, if not eliminates, any need for time-consuming and risk-inherent coding. This is achieved by automating the process of repeatedly coding transaction logic and by housing the business rules in a central, database independent repository to simplify maintenance and increase reusability. We have christened our approach scalable RAD2 for a very good reason. Rapid Application Development alone is only half the battle. Rapid and flexible Deployment is equally important, hence RAD2. The flexibility of the DataEase deployment architecture is such that you can deploy an application easily, using the traditional client/server method where the EXE and DLLs are loaded on the client machine. Or you can choose to deploy using a “thin” client on the Internet or corporate intranet, again easily and quickly. Moreover, Web-enabling your applications means any PC, Macintosh or UNIX client machines that support an Internet browser can access the applications, giving your decision-support applications a low cost, enterprise wide scale and scope. DataEase scalable RAD 2 speeds up application development and deployment, whilst making maintenance easier and far more accessible. Which means your employees no longer have to make decisions based on old news. DataEase truly delivers on the rich promise of second-generation client/server computing. It handles the rapid application development and deployment of mission-critical enterprise-wide solutions easily and quickly, giving you important cost savings of between 50% and 80% over the life cycle of the applications. Copyright Sapphire International, September 1997 Page 3 DATAEASE Product summary DataEase Plus, NetPlus and ActiveServer These DataEase scalable RAD 2 tools are true second-generation client/server, providing business model-driven, object-oriented and event-driven database development. Designed from day one to meet the exacting requirements of the client/server architecture, they let the developers focus on business requirements by making everything as simple as possible. This is achieved by means of the central business model repository and the SCALE structure. Central business model repository The central repository handles the core management of the application logic as a set of all the business rules and shares the objects and forms that are used during the life cycle of all applications. It also handles the optimised link to multiple back-end servers automatically, including simultaneous access to heterogeneous engines. All changes are made centrally and then automatically enforced throughout all the related applications. There’s no need to code and re-code applications as business needs change, because all the instructions and information required to calculate, validate and pass data to and from a company’s database/s are stored in this central repository. Or to learn complex multiple SQL dialects, to keep pace with the growing demand to produce applications for the diverse range of engines most companies have acquired. SQL is automatically optimised for each server type, with connection by DataEase supplied direct drivers or Intersolv ODBC drivers. The central repository significantly reduce the amount of programming (both coding and debugging) required for application development, deployment, modification and maintenance throughout the applications’s life cycle. These new DataEase client/server tools are truly database server independent, scalable and open. This provides companies with six key benefits: 1. Powerful DataEase client/server applications can be built rapidly and easily, with great predictability and less risk; deployed faster and more flexibly; with far easier and more accessible maintenance. 2. Applications are a lot more robust than traditional RAD solutions and they are always consistent and predictable across multiple platforms. 3. Companies can make better use of their existing database servers and extend the life of these valuable assets. 4. Developers can prototype, test and modify an application on one platform, SQL Anywhere for example, and then scale up and deploy to others, such as Oracle and Informix, for live implementation. Easily and quickly achieved without changing the application logic or having to worry about SQL coding. 5. Choice of flexible deployment options to maximise highly scalable and low cost application usage: standard client/server or via corporate intranets and Internet. 6. The costs of application development, deployment and maintenance are significantly reduced across the application/s life cycle, providing major savings of between 50% and 80%. Page 4 Copyright Sapphire International, September 1997 DATAEASE For companies who use DataEase for DOS for business-critical core applications there is a seventh major benefit - the specialised DataEase DOS conversions tools. Companies can use these tools themselves, to undertake the conversion of their DataEase for DOS application or have it done for them, by one of the fully accredited DataEase DeveloperPlus Service providers. Either way, and once the full conversion is complete, the result is a fully functionally intact, Windows enhanced and secure DataEase Plus or NetPlus application, produced quicker and at much lower cost and risk than building from scratch. DataEase Plus For individual client/server developers working alone. They can quickly and easily develop and deploy simple to maintain applications, that scale up in range from stand-alone to complex enterprise-wide solutions. DataEase NetPlus Offers the same scope and is designed for team development, where all developers, each with their own copy of DataEase NetPlus, have access to the central repository. This makes large-scale application building, deployment and maintenance not only more efficient but far more cost-effective throughout the life cycle of all the applications. Client/server deployment DataEase Plus and NetPlus provide applications bound as EXE and DLL files in traditional client/server deployment, with the options of automatic update of the repository, forms and graphics. Intranet/Internet deployment DataEase ActiveServer, in conjunction with DataEase NetPlus provides unlimited ‘thin client’ user access across corporate intranets or the Internet to any application developed with DataEase NetPlus. A standard Web browser is the only software required on the client workstation. The HTML view is created dynamically at execution time, so no HTML has to be written by the developer or the users. The client user gets the look and feel of master detail, client/server based applications. All changes are handled automatically at the central server and are immediately reflected the next time a client user logs on. Familiar DataEase look and feel Current DataEase developers and their end-users will immediately notice the levels of similarity that have been maintained. Familiar keystrokes such as F2, F3 and CTRL-F10 execute the same functions. The underlying design principles have carried DataEase’s highly efficient and much acclaimed intuitive approach to easy application building to the second-generation client/server environment. When compared to any competing product, DataEase Plus and NetPlus have been designed to make development and maintenance easier and quicker, using default processing, reduced programming sets and automatic optimised SQL, to produce totally predictable results. DataEase Plus, NetPlus and ActiveServer are Millennium compliant. Copyright Sapphire International, September 1997 Page 5 DATAEASE The Evolution of Client/Server Application Development The client/server environment is very different from and more complex than previous information system architectures. In mainframe and PC file server systems, one machine contains the user interface logic, the database logic, and the transaction logic. Indeed, in a typical PC database system, a single tool contains them. Client/server architecture places these types of logic in their appropriate machines. The user interface logic clearly belongs in the client computer; it’s design resembles typical PC applications. The database logic belongs on the server and is implemented similarly to mainframe and mine database systems. And the highly complex transaction logic has its own requirements. Client User Interface Logic Transaction Logic Server Data Database Logic Client versus Server • Enforcement of Business Rules • Multi-user Concurrency • Run-Time Performance - Engine Optimization - Partioning of Query - Caching of Data • Distributed Database Processing • Data Scalability • Application Maintenance Figure 1. Logic placement in client/server architecture Complexity of Client/Server Transaction Logic Transaction logic that connects the user interface to the databases is the source of uncertainty and complexity in a client/server system. Some of the reasons for its complexity follow: • Business rules need to be enforced at the point of entry in the client and at the point of commit on the server. Currently, these rules are hard-coded in the proprietary languages of the client tools and the server databases. A single rule may exist in a procedural form in several places—in every application and database that it affects. • Multi-user concurrency needs to be implemented without locking records for an indefinite time and without losing updates. • A client/server transaction requires significant fine-tuning. Each database engine is different and needs its unique form of optimization, the query has to be appropriately partitioned between the client and the server, and the transaction data must be intelligently cached to deliver optimum performance. • Distributed databases require complex query and update processing. • Optimal data scalability of an application, which makes the applicaPage 6 Copyright Sapphire International, September 1997 DATAEASE tion independent of the source data across a broad range of data engines, is difficult to achieve. • Application maintenance in a dynamic business environment is cumbersome when the business rules are fused with the user interface logic in each application. In first-generation client/server development, users spend their time overcoming these complications rather than reaping the benefits of client/server computing in solving business problems. APPLICATION USER LOGIC Hard-Coded Transaction Logic • Master Detail Processing • Business Rules • Retrieval Processing • Commit Processing • Distributed Databases • Windows SDK + simple data access • Transaction logic is fused with user logic • Modest Master-Detail transactions requrie difficult programming • Data location and business rules are hard-coded into applications • Advanced transaction processing is very complex and often not implemented Figure 2. Distribution of transaction logic First-Generation Client/Server Tools First-generation client/server tools generally provide user interface design facilities with modest amounts of automation for data access. Implementation of even routine business transactions requires a significant amount of hard-coded transaction logic, which is enmeshed with user interface logic. Complex programming is necessary to handle master-detail processing, enforce business rules, implement optimistic concurrency, fine tune the transaction, and perform distributed database access and update. With most first-generation tools, the relatively simple single-level transactions can be developed without difficulty. However, even modest master-detail transactions require significant effort and skills. Only elite developers can develop applications that demand more complex types of transactions, such as requiring multiple levels of master-detailed and distributed database access. Extensive programming makes these applications hard to maintain. Moreover, they are not scalable and have to be reprogrammed if the data Location or the business rules change. They may not scale up well to support many users or high transaction rates because of a lack of performance optimization. The New Generation of Client/Server Tools The new generation of client/server tools will be built with an underlying client/ server architecture. Such architecture has two objectives: (1) a centralized business model and (2) automated transaction processing. Copyright Sapphire International, September 1997 Page 7 DATAEASE Application User Logic FEATURES • Centralized Business Rules Isolated and Automated Business Model • Automated Master-Detail Processing • Automated Optimistic Concurrency Client-Server Transaction Processor Logical Model Business Rules Data Location • Optimized Run-Time Performance • Programming by Exception • Auto-Maintenance Databases Figure 3. The next generation of client/server tools Applications should be designed against a logical business model and should be shielded from specific knowledge of the data-dependent features, such as data engine type, data Location, and business rules. These data-dependent features should also be stored with the logical data model, but not directly accessed by the applications. The intricate interaction between the client application and the server varies according to data Location, data distribution, and data engine type. A significant leap can be made in client/server architecture by automating much of this interaction in an isolated architecture. This allows the interaction to be optimized, supplying the scalability to build enterprise-wide systems. Automated transaction processing also frees the application developer for the burden of complex data orchestration, leading to rapid application development and easy maintenance of applications. Role of Internet in the Evolution The explosion of the Internet or corporate intranet as a medium to connect people to information has opened possibilities that were never conceived before. Analysts, gurus and vendors providing Internet related tolls are overflowing with ideas about the immense benefit the Internet will bring to the user community. The applications on the Internet today are primarily static in nature with very simplistic user interfaces. The information being accessed is truly one dimensional. Examples of these applications range from reviewing documents/images to the simple registrations of products. Corporations are being asked to view the Internet as another advertising medium like magazines and television. These advertising services might be a compelling way to leverage Internet in itself, but such use will not match the hype and hence will eventually lead to widespread dissatisfaction. To be truly successful, the Internet must empower large corporations by provid- Page 8 Copyright Sapphire International, September 1997 DATAEASE ing the tools to better support the management of their information systems. This includes delivering information to all employees in support of their job function, and better matching information to business process. It may be that the Internet can truly fulfill the promise of client/server. Historically, accessing databases from a client always had a series of issues database client software, client environment, network protocol and other connectivity tools - issues going far beyond the application itself. In a conventional environment, the “client” side of a client/server application requires ongoing investment in execution overheads, such as minimum hardware requirements, maintenance of the client based application, and licensing of vendor related software. The Internet is an enabling technology that allows corporations a new medium to deliver enterprise mission critical, client/server applications. Changes to applications will be immediately accessible by end users the next time they log-in. DataEase Technology Overview DataEase comprises a number of technology components which together produce a robust, rapid application development and deployment environment for building mission critical applications. The core technology is based on DataEases’ unique SCalable Architecture for Large Enterprises (SCALE). SCALE is the engine which provides a centralized business model, automated transaction processor for optimized processing of complex queries and updates, and fine-tuned data links to popular database engines. DataEase is an object oriented, repository-driven environment which enhances team development using a centralized data model, declarative business rules language, visual transaction builder and auto-generation of HTML pages. The unique architecture of DataEase makes complex client/server or Internet/intranet applications scalable so data can be upsized, downsized, distributed, or upgraded automatically - without changing the application. It eliminates the need to repeatedly code transaction logic, and it houses business rules in a central, database independent repository to ease maintenance and increase reusability. DataEase comprises the following components: • SCALE Dynamic Repository • SCALE DataLinks • SCALE Migration Express • SCALE Rules Server • SCALE Automated Transactions Copyright Sapphire International, September 1997 Page 9 DATAEASE • Applications Deployment - DataEase Active Server This paper will also discuss other features of the product including: • Programming By Exception • Visual Model • SCALEScript • Team Development Familiarity for DataEase Developers Although DataEase Plus/NetPlus incorporates a fully event-driven, Object-Oriented, Visual, client-server development environment, there is much in common with the traditional DataEase LAN products that make the transition from these products to DataEase Plus/NetPlus an easy option. Familiar Business Rule Definitions The BRL ( Business Rules Language ) used by DataEase Plus/NetPlus is , with a few additions , exactly the same as the traditional syntax used in the LAN products for field derivations and validations. Functions and relational operators perform the same task in both. This not only makes for a shallow learning curve, but also guarantees that any solution constructed in DataEase Plus/NetPlus WILL be capable of offering the same validation and prompting as an existing system in the LAN products. Attempts to emulate the functionality of such legacy systems by a re-write in other development tools carries the risk of not meeting the users’ expectations, or being cost-prohibitive to implement. Familiar Relational Model The concept of pre-defined relational criteria reusable in lookups, pick-lists, master-detail data-entry screens and nested relational reporting is identical in DataEase Plus/NetPlus and the LAN products, so again the is a shorter learning time for existing developers to be up and running with a client-server solution. Familiar Form and Report Creation The visual development tools for form creation, control placement and definition, report specification and formatting are identical in DataEase Plus/NetPlus and the Windows version of DataEase LAN, so developers familiar with the latter tool can immediately start to take advantage of the extra power offered by the programmability of the visual controls inherent in DataEase Plus/NetPlus via SCALEScript . SCALE Dynamic Repository The SCALE Dynamic Repository represents the most open and powerful repository architectures on the market. It is completely extendible for a vendor’s specific requirements, can accommodate virtually any meta-data type, and is portable to virtually any SQL database. The repository stores and provides one central location for the creation and maintenance of business rules, logical data models, and database connections. Changes made once can be used multiple times throughout an application. The SCALE Business Model Repository architecture provides an open technology for designing, implementing, and maintaining business models separate from physical implementation model. No other tool offers a business model that is actively used throughout the development and deployment phases of the application life cycle. Whether the problem being solved is the modeling of a simple data model or a large data warehouse, an entity relationship or an object process, SCALE Business Model Repository provides a flexible technology capable of Page 10 Copyright Sapphire International, September 1997 DATAEASE incorporating the most demanding business models. The ER (Entity Relationship) Diagrammer is embedded in the repository and provides a mechanism for generating diagrams for your existing databases or interactively design new data structures. The repository modeling and manipulation tool gives the user an intuitive and efficient graphical environment for viewing a business model. It allows you not only to create an ER diagram but will also reverse engineer a data model from an existing data source, modify a data model, synchronize the logical data model with the physical model and view the logical model by database, application or see an overview of the entire enterprise. E -R M o de l R ev erse E n gine er D a ta b a se C a ta lo g s B us ines s M od el • L o g ica l D a ta M o d e l • Da ta Ro a d m a p • Bu s in es s R u les P rototyp e G en erate and S yn ch ro nize Cu sto m er I nfo rm a tio n De t a il s Cu st o m er _ I D CU ST 19 8 2 Co m p a n y Ca l Co r p Di s co u n t Cr e d i t L in e Co n fi g _ ID Pa r t _I D G W 48 6 /3 3 G W 86 0 H D G W 48 6 /5 0 G W 36 0 H D 1 5% 7 5, 0 00 . 00 O rde rs Pa y m e n t s Pr i ce Q u a n ti ty Ch ec k _ Nu m b e r Am o u n t 1 ,9 9 5. 0 0 2 ,6 9 5. 0 0 2 ,4 9 5. 0 0 3 2 2 MMM8909 1 8, 2 70 . 00 D a ta b a se C a ta lo g s Figure 5. Centralized business model SCALE Centralized Business Model SCALE centralizes the business model in a repository and automates the processing of client/server transactions optimized to each data source. SCALE isolates the enterprisewide logical data model in a central active repository. This repository also contains the data road map, which includes the type of data engine and the location of the data. It also stores centralized business rules, which are defined in a declarative manner and complete the business model. The repository reverse-engineers existing databases, creating an entity relationship model. New entities can be created in the repository and then generated into physical tables. Repository information represented in the SCALE business model is automatically incorporated in DataEase applications. Alternatively, when DataEase operates as a rapid prototyping tool, SCALE automatically captures the business model in the background. In essence, by leveraging information in the business model, SCALE automates transaction processing and optimizes access to relational database management systems. DataEase Facilities for Business Model DataEase has built-in facilities for defining and managing the business model. It provides a form-based interface, as well as a graphic entity relationship diagram method. DataEase provides the following facilities for managing the business model: Copyright Sapphire International, September 1997 Page 11 DATAEASE • Repository - Create and delete • Database links - Create and delete - Generate database catalogs - Reverse-engineer database catalogs - Resynchronize with database catalogs • Entity - Define - Generate physical table - Synchronize with physical table • Attribute - Define • Index - Define - Generate • Business rules - Define • Relationships - Define - Define referential integrity SCALE DataLinks DataEase SCALE DataLinks optimize connectivity to both local and mission critical database engines. This technology component makes it easy for an application to simultaneously use multiple tables from one or multiple heterogeneous databases. Each database driver takes advantage of the unique characteristics of the different database engines so connectivity is dramatically improved insulating the developer from specific knowledge of the backend databases. SCALE DataLinks provides direct optimized connections to Sybase, Oracle, Informix, SQL Server and AS/400. It uses DRDA to make optimized connections to IBM’s relational databases including DB2 on many platforms. SCALE also use ODBC-drivers to access an extensive range of other datasources. The unique ability of DataEase to reverse engineer SAP R/3 and Oracle Financials data into DataEase repository is a powerful add-on to the SCALE DataLink technology. These application specific databases are complex and closed environments. DataEase’s DataLinks can open them and integrate with other corporate databases, thus providing a virtual DataWarehousing capability. These DataLinks can also be integrated with DataMart, DataMining, DataWarehousing and OLAP tools. SCALE Data Links for Optimized Data Access SCALE makes direct optimized connections to SYBASE, ORACLE, MS SQL Server, and AS/400. It uses DRDA to connect to IBM’s relational databases, including DB2 on many platforms. These finetuned optimized connections take Page 12 Copyright Sapphire International, September 1997 DATAEASE advantage of engine-specific features. SCALE also uses gateways such as ODBC. Form-Based Tools Diagramming Tool Database Entity Relationship Model Entity Customer Business Rules Attribute Salesperson Order Relationship Order_Item Reverse Engineer Business Model Product Generate Out Figure 7. Design of business model SCALE Migration Express The SCALE Migration Express automates the conversion of database schema (table, column, keys and indexes) and data from one database to another (eg. From SQL Server to Oracle). All the datatypes are properly recreated (Integer to Number(10)) and the entities can also be redirected as part of this process. It provides a significant benefit to large corporations who constantly deal with multiple or changing data sources. You can use this functionality to upsize or downsize an application through a simple point and click interface. During the development cycle, the Migration Express may be used to migrate data from a production environment to an intermediate or development data source. SCALE Rules Server In traditional client/server systems, proper implementation of business rules has become a difficult process. Because the client is an unsecured environment, the rules must be enforced on the server. However, servers only apply the business rules at the point of commitment of the transaction. To provide an acceptable user interface, these same business rules must also be applied at the point of entry in the application. Today’s client/server systems replicate these rules in both the client and the server and therefore, programming and maintenance of these rules has become quite a complex task. DataEase SCALE Rules Server technology accomplishes this by creating and storing business rules in one central place, an active business-model repository. When a rule changes, DataEase automatically enforces it on all the Forms that use the associated attribute, eliminating the need for additional programming. Since the business knowledge is captured in the business-model repository, business rules can be reused across applications or modified as needed. This will provide an easy, flexible, and maintainable system of applying business rules. Copyright Sapphire International, September 1997 Page 13 DATAEASE SCALE Trigger Express The Trigger Express allows the developers to generate engine specific triggers for the rules defined in the repository. The type of rules that are supported are: · Referential Integrity Rules · Derivation Rules · Forward Chaining Rules · Validations Rules Enforcement of Business Rules In client/server systems, proper application of business rules has become a difficult issue. Because the client is an unsecured environment, an ideal client/server system must enforce the rules on the server. Indeed, server-based business rules were critical to the success of SYBASE and ORACLE 7.0. However, servers only apply the business rules at the point of commitment of the transaction. To provide an acceptable user interface, these same business rules must also be applied at the point of entry in the application. As a result, in client/server systems today, the business rules are being defined in databases as well as in applications. To make the problem worse, the business rules change over time and need to be revised and maintained easily. Furthermore, many rules need to be enforced across databases. The programming and maintenance of these rules has become complicated. All these arguments lead to the need for centralized business rules. To enforce the rules in many different places by multiple tools, applications, and database management systems, they need to be defined declaratively rather than procedurally. Declarative rules are also much easier to create and maintain. SCALE defines declarative business rules in the logical data model stored in the repository. It then enforces these rules in each application that accesses the relevant data and generates triggers and stored procedures for the databases. Centralized Business Rules Page 14 Copyright Sapphire International, September 1997 DATAEASE Table 1 shows, different business rules are used to handle different tasks. Column derivations occur in either a forward- or backward-chaining mode. In a backward-chaining mode, the value is calculated when needed by looking up all the constituent values and performing the calculation. Derived columns are either virtual or stored. Virtual columns minimize storage requirements and are always up to date. Virtual columns are always derived in a backward-chaining mode. Used when the derivation consumes significant processing, stored columns are derived in the backward-chaining mode only when the record is first inserted. Afterward, these stored columns are updated in a forward-chaining mode; their values are updated through triggers as their constituent values change. • Declarative Language • Easy Central Definition • Enforced at Client and Server Derivation Rules Orders Order ID Customer Discount Product Qty Price Value OrderID = Sequence from 1001 Value = Qty*Price* (1 - LOOKUP Order Discount) Subtotal = SUM OF OrderItem Value Tax = Subtotal* LOOKUP TaxTable Sales Tax Total = Subtotal + Tax Subtotal Validation Rules Tax Total Qty < LOOKUP Product Stock_at_Hand Total < Lookup Customer BalanceCredit Figure 8. Example of SCALE declarative business rules for an order entry system SCALE Automated Transactions DataEase uses the SCALE Automated Transaction Builder to quickly and visually specify complex master detail transactions. It then relies upon the SCALE Transaction Processor to execute the transaction in an optimal manner. SCALE leverages the information in the business model (logical data links and business rules) to automate and optimize client/server transactions, using a transaction data model and processor. The transaction is defined using a point-and-click interface. Each transaction has a master entity and can invoke any number of related detail entities. Selection, projection, aggregation, sorting, and grouping can be specified for each entity in the transaction. Additionally, the transaction cache buffer can be controlled at each level and users can also customize join partitioning for each detail level. This transaction model is based on the logical data model stored in the repository and is independent of the data location. Indeed, the data location can be changed later without requiring any changes to the transaction. Copyright Sapphire International, September 1997 Page 15 DATAEASE Once the transaction is defined, the SCALE Transaction Processor automatically provides a full range of functionality. SCALE retrieves the transaction data optimally from any number of heterogeneous databases. It splits the query into multiple queries and generates SQL statements fine-tuned to each data source and also translates the retrieved data into a common format. SCALE enables browsing and data entry of the transaction. Business rules are automatically applied at the point of entry. When data is committed, SCALE automatically performs a distributed update using two-phase commit logic as necessary. It also provides optimistic concurrency to enable maximum sharing of information while preventing lost updates. The SCALE transaction processor automatically supplies all the client/server interaction needed in an application. Business Model Transaction Object Transaction Data Entry Customer SQL Commit Processor Calls Payment Order Data Access and Drill-Down Retrieval Processor Results Business Rule Enforcer Figure 6. Model of transaction processor SCALE Automated Transaction Processor SCALE furnishes an innovative transaction processor to automate optimized processing of client/server applications. The SCALE transaction processor features: • Multilevel master detail transactions • Automatic enforcement of business rules • Optimum retrieval processing - Caching of retrieved data - Query partitioning - SQL generation • Optimized commit processing - Optimistic concurrency - Two-phase commit for distributed updates • Heterogeneous distributed database support Page 16 Copyright Sapphire International, September 1997 DATAEASE Automated Master-Detail Processing The SCALE transaction object provides multiple levels of master-detail processing automatically. The transaction object is specified by selecting a master entity and any number of detail entities that may be nested to any depth. Customer 3 Customer 2 Customer 1 Order 33 Items Order 32 Items Order 31 Items Cust 3 Payments Cust 2 Payments Cust 1 Payments Cust 3 Orders Order2 1Orders 1 Cust Order Order 11 2 Cust 1 1Orders Order Order Order 1 11 21 3 Order Order Order 1 21 31 4 Order Order 1 31 4 Order 1 4 Order 13 Items Order 12 Items Order 11 Items Order 23 Items Order 22 Items Order 21 Items Figure 9. Model of automated master-detail processing SCALE provides the following automated master-detail processing: • It maintains the integrity of the transaction during data entry. It applies referential integritv rules, derivation rules, and validation rules between levels to ensure that a transaction is correctly entered. • It commits the transaction as a whole, across one or more databases. If necessary it implements a two-phase commit logic. • For updates, it implements optimistic concurrency on the whole transaction. • It automatically issues the requisite optimized queries to retrieve the data for each nested level. • It allows customization to determine whether the details should be joined up-front or on a recordby-record basis. • It caches the data for each level, maintaining any number of records for each level. The developer can control the amount of caching for each level. • It supports fully scrollable cursors at each level. The cursors at each level are linked so that browsing through the master record automatically switches the details. Thus, SCALE supports complex nested master-detail transactions through a simple specification and handles all the complex tasks of processing them automatically. Copyright Sapphire International, September 1997 Page 17 DATAEASE Automated Optimistic Concurrency Database transactions have two conflicting objectives: (1) allowing maximum concurrent access to data by any number of users and (2) minimizing the adverse effects that users running concurrent transactions have on each other. Consistency provides the illusion of “serialization,” the impression that users are running one transaction at a time in isolation. With automated optimistic concurrency, three types of adverse effects are prevented or minimized: • No lost updates. Lost updates can occur when users A and B read the same record. User A updates it, then user B updates it overwriting user A’s data. Transactions preventing lost updates offer a basic level of isolation. • No dirty reads. Dirty reads can occur when user A is reading while user B is writing through the same set of information. Some of the information read by A may precede user B’s update and some may follow, thereby providing an inconsistent set of information. Transactions preventing dirty reads and lost updates provide a higher level of isolation. • No repeatable reads. Reads can become unrepeatable if user A has read the information, then user B writes over it. If user A has to read it again, the information will be different. Transactions preventing all three adverse effects are isolated to the highest level. SCALE automatically implements the best combination of concurrency and consistency through an optimistic concurrency control system. Optimistic concurrency has two principles: • Do not lock any data while the user is thinking and entering data. This provides the best concurrency. • Implement the best consistency at the time of commitment. SCALE implements optimistic concurrency as follows: • No data is left locked after a query • The result set is buffered and is used for browsing/ updating. • As data is updated, the original values of data as well as the new updated data are buffered until the point of commitment. • When the user decides to commit the transaction, a check is included to ensure that the data being updated has not been modified by another user. This prevents lost updates. • All the updates occur as one transaction, preventing any dirty reads. This well-implemented optimistic concurrency control can go a long way toward building optimal mission-critical client/server systems. Because optimistic concurrency requires buffering of transaction data in the workstation application, it is not a server feature and must be built into the tools and applications. Application Deployment DataEase NetPlus’s flexible deployment environment provides the developer with options when deploying a new application or changing an existing application. Page 18 Copyright Sapphire International, September 1997 DATAEASE Developers can choose to deploy the application, or modules of the application, in the traditional client-server method where the EXE and DLL’s are loaded onto the client machine, or can elect to deploy using ActiveServer and “thin” clients via the Internet or corporate intranet. DataEase ActiveServer The HTML view is created dynamically at execution time with DataEase ActiveServer. No HTML coding is required, or is seen, by the application developer. The UI is visible on the client via the Internet, or corporate intranet communications capability, delivering high speed response with the look and feel of a master detail, client/server based application. This new deployment paradigm uses a thin client (popular Internet browsers), and DataEase ActiveServer. Changes are made to the central ActiveServer, so the next time a user logs onto the system the changes are immediately reflected in the application. This architecture allows programmers to focus on the business application rather than learning multiple programming languages. The web deployed application automatically maintains the state and thus maintains the transaction integrity during INSERT, UPDATE or DELETE functions. In addition, the deployment tools include a multi-threaded DataEase Broker that manages multiple applications either on a single machine or across multiple machines. DataEase will soon support ActiveX, Java/Script, Visual J++, Java and related generators, together with certain proprietary tools from other vendors. Automated Run-Time Performance One key consideration for performance optimization in a client/server environment involves reducing the response time to a transaction. This can be done by minimizing the up-front processing and delivering the results to the user as soon as they are available. Ongoing performance can be enhanced by caching data in the workstation. Another consideration concerns network traffic. Client/server systems behave best when network traffic is minimized. This reduces not only the load on the network but also the amount of data that the server and the workstations have to process. Most performance strategies are aimed at reducing network traffic. Effective server capacity can be increased by reducing the load on the server for any given transaction. Fine-tuning the transaction to each data engine, caching data on the workstation, partitioning work so that the workstation performs its share of work, and avoiding unnecessary work are four ways to reduce the server’s workload. By reducing the load on the workstation, the response time can be reduced, and the workstation can handle more complex transactions. SCALE uses three strategies to optimize performance: • Optimized query partitioning • Optimized query generation • Intelligent caching of data Copyright Sapphire International, September 1997 Page 19 DATAEASE Optimized Query Partitioning Join Select Project Group Aggregate Project Figure 10. Optimized query partitioning involves dividing the transaction between the client and the server. There are six different dimensions for optimizing queries in a client/server architecture. Join Joining is preferred on the server, because it has the index mechanisms to optimize the join. However, when the user is browsing through records, and is likely to view only a few records, then a “Join As Needed” strategy is preferable. In this case, as the user browses to a record, the join is performed only for the accessed record. This avoids burdening the server with performing the entire join. Select Selection is always preferred on the server, because the server has the indexing mechanisms to optimize the selection, and it results in less data transfer. Sort If the server has the indexing mechanism to do the sort, then the sort is performed on the server. Otherwise, if the workstation can to do the sort with acceptable performance, then the sort is preferably performed on the workstation. It shifts the load away from the shared server resource. Group If grouping is used to select certain groups, then it is better performed on the server. If grouping is used to normalize data into control breaks, then it is better performed on the workstation. Aggregate If only the aggregates are needed without the detail, then they are better performed on the server. If both detail and aggregates are needed, then they are better performed on the workstation. Project Displays of data on the screen are best managed by the client machine. Page 20 Copyright Sapphire International, September 1997 DATAEASE Optimized Query Generation Optimizing involves understanding the specific strengths and weaknesses of individual databases. In client/server systems today, database independence is typically achieved at the expense of performance. Database management systems— even RDBMS products such as SYBASE, ORACLE, and DB2—are very different from each other. As a class, they differ substantially from the hierarchical and index sequential systems of the past. In the future, relational database systems will become more object oriented, encapsulating the data logic with the data objects. The implementation of triggers and stored procedures in SYBASE and ORACLE is a move in that direction. Many of the current data-independence architectures, such as ODBC and EDA/ SQL, have taken a lowest common denominator approach. They take the user requests as a generic SQL brand and translate them into the corresponding engine queries, thereby missing most of the engine specific features. SCALE provides optimized data independence for the many generations of database management systems through a well-designed architecture. It gives the user a superset of database engine capabilities. As an example, SCALE supplies a sequence number facility. Oracle is among the few engines explicitly supporting this feature, and SCALE takes advantage of it. For other engines, SCALE implements sequencing through procedural means. In addition, SCALE overcomes deficiencies in database engines. As an example, DB2 does not provide an outer join facility. SCALE implements it by using a UNION. It also generates an efficient and precise translation of the user intent into an optimized engine request. The result set is translated into a common format for the user. SCALE offers an efficient bridge to the legacy data under non-relational database management systems, and its architecture will work well with object-oriented database systems in the future. Without compromising optimized, fine-tuned performance for each engine, SCALE provides data independence. Intelligent Caching of Data In client/server systems, intelligent caching of data can maximize the use of precious resources such as networks, servers, and workstations. SCALE performs intelligent data caching as follows: • To optimize network and server resources, data already retrieved in the workstation remains buffered in the workstation and is not accessed again. • To optimize network and workstation resources, data remains on the server until needed at the workstation. • To optimize workstation resources, data is not buffered any longer than needed in the transaction and is not buffered at the cost of overall workstation performance. SCALE’s unique multilevel transaction object allows buffering of data not only for the master table in the transaction but also for all levels. SCALE retrieves data into the transaction buffer as needed by the transaction and leaves it buffered. This data is discarded only when: Copyright Sapphire International, September 1997 Page 21 DATAEASE • The transaction is over. • Data is not needed anymore in this transaction (for example, batch mode operations such as printing). • Memory on the workstation becomes a premium. • A specific transaction request is made to refresh or discard the buffer. Heterogeneous Distributed Database Access SCALE allows the application to define a transaction object that uses multiple tables from multiple databases on multiple engines. Thus, a form or report may access data from many different sources, without being aware of where it physically resides. SCALE transparently handles the data access, distributed query, and distributed join. Moreover, if the tables accessed in a document are later migrated by a database administrator to a different set of databases, the application will continue to operate without any change. SCALE Repository DataEase Plus SCALE Visual Objects Client/Server Processor SCALE Transaction Processor Business Model Optimized Direct SCALE Data Links Gateway DRDA ODBC EDA/SQL ODBCOmni SQL SQL Server, SYBASE ORACLE, AS/400 DB2, DB2/2, DB2/6000 SQL Anywhere, XDB, WATCOM, Ingres,Informix... Informix Ingres, Rightsize IBM Relational Other Relational MDI Other data-sources VSAM, IMS, through Intersolve IDMS, ODBC ADABAS, RMS Legacy Other databases Figure 11. SCALE handles multiple data sources Distributed Query SCALE automatically performs a query that joins data from two or more databases. It splits the query optimally so that each database can perform as much of the selection and join as possible on the engine itself. Then it joins the results in the workstation. To avoid overloading the system, it performs these workstation joins individually for each record. Distributed Update SCALE performs a distributed update by using a two-phase commit logic, if it is supported by the engines involved. In the first prepare phase, it issues the update request(s) to each database and determines whether they can perform the update, without actually committing them. If the first phase is successful, the second commit phase commits the updates. Page 22 Copyright Sapphire International, September 1997 DATAEASE Deployment Run-Time Environment - Generating an Application An application consists of its start-up menu, toolbar, and events. From these, the application can directly or indirectly invoke a number of forms that then constitute the application forms. These forms in turn use various entities in the repository, and they may invoke a number of external objects. Installing a DataEase Application To install an application, first the DataEase run-time environment is installed. This run-time environment needs to be installed only once for any number of DataEase applications. All of these applications can share the same run-time environment. The DataEase application can then be installed. Each DataEase application has its own icon and may be accessed independently from the Program Manager. When the application is invoked, its start-up processing is automatically performed. The application may be installed with an auto-maintenance option, so that it can automatically keep up to date with any changes in a master application in a run-time repository. Application Server3 Application Server2 Agent Scheduler WEB Interface GUI Layer Transaction Layer Business Rules Data Link Management Agent DBMS Scheduler Browser WEB Server Application Server Figure 21. Internet/Intranet Deployment Architecture Internet or Corporate Intranet DataEase’s ability to automatically generate HTML pages allows programmers to focus on the business application rather than learning multiple programming languages. There is no need to distribute any runtime environment, saving time and money associated with the deployment of an enterprise-wide application. The client only requires an Internet browser that supports HTML tables 2.0 or greater. Changes are made to the central application server, so the next time a user logs onto the system the changes are immediately reflected in the application. Copyright Sapphire International, September 1997 Page 23 DATAEASE Auto-Maintenance of Installed Applications The installed DataEase applications can be auto-maintained from a central deployment repository. Deployment Repository Master Application Auto-Update of Application Changes • Data Location • Business Rules • Objects Figure 23. Model of deployment of applications The application can be installed with an auto-maintenance option and directed to the master deployment repository that will be used for updating and installed version of the application. Then the repository can be updated at any time. Typical changes in the repository involve adding or revising forms or their constituent objects, changing data location, or altering business rules. All of the installed applications synchronized to the repository are then updated. The applications are updated at a predetermined time or the next time they are started at the workstation. With Internet or corporate intranet applications, changes made to the central application server are reflected immediately the next time the user accesses the application. The DataEase Programming by Exception Model DataEase uses a programming-by-exception model of development. Complex client/server forms can be designed in minutes without programming using the Forms Builder and visual editors. These forms can be extended using SCALEScript or by using the open object architecture to access external objects and programs. The most powerful applications can thus be built and maintained with minimal effort. Page 24 Copyright Sapphire International, September 1997 DATAEASE Distribution of Effort Rapid Visual 4GL 3GL Power Development Feature Visual Forms Builder • Transaction Builder • Forms Builder • DataSmart Controls • Forms Editor • Menu, Toolbar Editors • Windows, Print Editors • Tab Order Editor SCALEScript 4GL • Event Action Programming • Extended Objects • Inheritance and Polymorphism Open Object Architecture • Custom Functions - DLL • Custom Objects and Controls Figure 12. High-level default processing offers flexibility so users can alter or extend programming to fit their needs Visual Development Most forms can be designed visually with minimal programming. To define a form, the developer first uses the Transaction Builder to define a transaction model based on the logical data model in the SCALE repository. The developer then selects a form style and a form layout, and the form is automatically designed from the transaction specification. The form can then be customized by using the form editor and by adding new controls. Other visual editors can be used to customize the menu, toolbar, window, print, and tabs. This quickly built form is automatically provided with a full range of built-in run-time functions: data entry, look-ups, commit, browsing, drill-down, printing, and query by form. Users can design full-function forms visually with minimal effort. These forms can then be extended using the built-in 4GL, as well as by using external functions, objects, and controls through the open object architecture. SCALEScript 4GL The built-in SCALEScript language allows any object on the form to be extended and any event on any object to be customized through a custom SCALEScript method. Every object on the form receives its own events, even though it may be nested several levels deep. This makes most SCALEScript methods short and easy to maintain. SCALEScript comes with an interactive full-function debugger, including breakpoints, an inspector, watch points, and a log. OLE/DDE DataEase can exchange data with other tools through dynamic data exchange (DDE). It can also embed visual objects provided by other tools that act as object linking and embedding (OLE) servers. Such OLE objects can have embedded DDE links, so that DataEase data can be sent to other products, which then can process or visualCopyright Sapphire International, September 1997 Page 25 DATAEASE ize the data and send the results back as visual objects. External Functions in DLL DataEase forms can also be extended using external functions. These functions are linked into dynamic link libraries (DLLs). Any function in a DLL can be registered with DataEase and called from SCALEScript or the business rules language. External Objects and Controls Finally, external C+ + class libraries can extend the features of DataEase. External controls can be added to the DataEase control palette, and other external object classes can be called from the SCALEScript language. Point-and-Click Spec. DataEase Transaction Transaction Builder • Nested Detail • Select • Sort, Group • Aggregate • Cache Control • Query Partitioning Add Related Entity Select by Sort by Summarize <New Relationship> Add_On_Item Customer Order_Item Payment Group by Payment ORDER ENTRY TERMS CARD_TYPE SHIP_MODE PO_DATE ESP_DATE CARD_NUMBER ORDER_ID ORDER_DATE CUSTOMER_ID Repository Business Model Order Item Order_ID Config_ID Description Price Quantity Value OK Add_On_It emm Config_ID Part_ID Order_ID Description Price Quantity Value Cancel Remove Entity Entity Filter... Data Retrieval... SCALE Automation Customer Payments • E-R Model • Business Rules Orders Item • Transaction Processing • Business Rule Enforcement • Optimized SQL Generation • Distributed Database Support • Scalability Figure 13. Transaction Builder model for DataEase Transaction Builder DataEase uses a Transaction Builder to quickly and visually specify SCALE transactions. It then relies upon the SCALE transaction processor to execute the transaction in an optimal manner. SCALE leverages the information in the business model to automate and optimize client/server transactions, using a transaction data model and processor. Transaction Data Model Specification The transaction data model is specified in a point-and-click manner. Each transaction has a master entity and can invoke any number of related detail entities. Selection, projection, aggregation, sorting, and grouping can be specified for each entity in the transaction. Additionally, the transaction cache buffer can be controlled at each level. Users can also customize join partitioning for each detail level.This transaction model is based on the logical data model stored in the repository and is independent of the data location. Indeed, the data location can be changed later without requiring any changes to the transaction. Page 26 Copyright Sapphire International, September 1997 DATAEASE SCALE Transaction Processor Once the transaction is defined, the SCALE transaction processor automatically provides a full range of functionality. SCALE retrieves the transaction data optimally from any number of heterogeneous databases. It splits the query into multiple queries and generates SQL statements fine-tuned to each data source. It also translates the retrieved data into a common format. SCALE enables browsing and data entry of the transaction. Business rules are automatically applied at the point of entry. When data is committed, SCALE automatically performs a distributed update using two-phase commit logic as necessary. It also provides optimistic concurrency to enable maximum sharing of information while preventing lost updates. The SCALE transaction processor automatically supplies all the client/server interaction needed in an application. Form Styles Inherited Form Preplaced Controls GateWell Corporation • Inherits All Properties and Methods • Automatic Update OK GateWell Corporation Save Cancel CUSTOMER_ID CUSTOMER_ID Auto Placed Company Company C.O.D . Disc ount Disc ount Company PO Credit_Line Cand idate Con tro ls Candidate Controls Field Label EditBox1 Yes No Maybe x CheckBox2 Save x CheckBox1 Delete Delete Credit Card Credit_Line Price Qu an tity C heck _No A mo un t Price Qu an tity C heck _No A mo un t 2 2 3 3 Available Dial Fax Figure 14. Form Styles Form Styles Form Styles allow the common aspects of a number of forms to be pre-designed, saved, reused, and centrally maintained. Form Styles store the following elements: • Form structure: This includes its menu, toolbar, window style, print specification, and background style. • Pre-placed controls: These controls are included on every inherited form and typically include title(s), logos, common buttons, and any common fields such as system date/ time. • Candidate control styles: These are the common styles to be used in the inherited forms. Any number of candidate control styles may be defined for any type of control. Some of them may be marked as default. Copyright Sapphire International, September 1997 Page 27 DATAEASE Inheritance A form, or a control on a form, inherits all its properties and methods from the Form Styles. If any property or method is revised on the form, it is then subsequently disinherited. When a form style is subsequently revised, all the properties and methods changed in the style are propagated to every inherited form. Transaction Form Styles Transaction Builder Add Related E ntit y Can didate Controls Sort by S elect by <New Relati onship> Add_On_I tem Cust om er Order_Item Payment Sum mari ze Field Label Group by Payment ORDE R ENTRY TERMS CARD_TY PE SHIP _MODE PO_DATE ES P_DATE CARD_NUM BE R ORDE R_ID ORDE R_DATE CUS TOMER_ID OK Order I tem Add_On_I t emm Conf ig_ID Part_I D Order_ID Descri pt ion Price Quant ity Value Order_ID Conf ig_ID Descri pt ion Price Quant ity Value Can cel Rem ove E nti ty EditBox1 Form Layout Transaction Builder Yes No Maybe x CheckBox2 Save x CheckBox1 Delete 1 A B Generate Layout C D E F 2 New 3 4 Scripts Tabular Custom Definition Dial Fax x Record Layout Scroll Spacing DateEase NetPlus Built-In Features Vertical Can didate Controls Field Label Can cel <Unstyled> Number of Records Enti ty Fi lter.. . OK Defined Style Title Labeled Fields Data Retri eval .. . • Browsing • Data-Entry • Query by Form • Drill Down • Printing Tabular EditBox1 Size Label Field Label Field Label Field Horizontal Yes No Maybe x CheckBox2 Save x CheckBox1 Delete Dial Fax DateEase NetPlus Form Figure 15. Form Builder Building the Form The Form Builder lets users build DataEase forms within minutes without requiring any programming. First the transaction model is defined using the point-and-click Transaction Builder; then the user selects a form style, as well as a layout. The layout may be a form, table, mailing label, or custom. The records in the form can be arranged vertically, horizontally, or in a grid. The Form Builder then automatically creates the form. The background and the pre-placed controls are taken from the Form Styles. Each table level in the transaction is represented in a DataFrame control. Each column within each level is represented as an Edit or PickList control using the default dynamic controls. The DataFrame controls are nested to represent each table level in the transaction, and their master-detail interaction is automatically provided. This automatically built form is complete and is immediately ready to use. Type of Forms DataEase forms can be one of three types: • Entry forms are primarily designed for data-entry but automatically come with a full set of online browsing and printing functions. • Report forms provide online decision support and printing functions. • Dialog forms are not built on transactions and do not have an automatic data connection. These forms are for user interaction or for developers who want to custom design the data interaction logic. Page 28 Copyright Sapphire International, September 1997 DATAEASE Built-in Run-Time Actions DataEase furnishes a complete set of run-time functions for every entry and report form. If a developer were to program these functions for each form, it would be a very complex and time consuming process. With DataEase, a form can be designed visually in a matter of minutes, and all the run-time actions are immediately usable. These actions are available in the default menus and toolbar, or they can be assigned to buttons, custom menus, or custom toolbars. As a result, a full-function form can be built in a few minutes without any programming and is ready for use immediately. Even with a complex form using many different related tables and sophisticated business rules, designing it is quick and straightforward. As needed, users can then customize this form using visual editors, programming, and external objects. Form/Report Built-In Run-Time Actions Customer Information Details Customer_ID CUST1982 Company CalCorp Discount 15% Credit Line Config_ID Part_ID GW486/33 GW860HD GW486/50 GW360HD 75,000.00 Orders Payments Price Quantity Check_Number Amount 1,995.00 3 MMM8909 18,270.00 2,695.00 2 2,495.00 2 Data Entry • Add Records • Modify Records • Delete Records • Clear Form • Look-up Related Tables Online Decision Support • Browsing • Multilevel Scrolling • List View • Form View • Query by Form • Navigate to Related Tables Reporting • Print Figure 16. Functions available for form design DataSmart Controls DataEase has a rich and open control architecture with an extensive set of built-in controls. In addition to standard controls, DataEase provides two types of DataSmart controls that are automatically linked to SCALE transactions: The DataSet controls display a set of data items and are linked to a Table Level in the transaction object. The Dataltem controls a single data item linked to a column in the transaction object. DataEase supports DataSet, Dataltem, and standard controls. Copyright Sapphire International, September 1997 Page 29 DATAEASE Control Palette DataSet Controls DataSmart Links DataFrame Table Chart Linked OLE Edit Image Field Column CheckBox DropDown Linked ListBox ComboBox RadioButton Standard Controls DataItem Controls Table Linked Column Linked Transaction Object Orders Order Items Data Discount Ship To Total Terms Product Quantity Unit Price Item Total Picture Label Button ImageButton Image Line Ellipse Rectangle Child Windows Figure 17. DataSmart controls available for SCALE transactions DataSet Controls Linked to a table level in the transaction object, DataSet controls, represent three types of records in the table: • DataFrame controls the most important controls supported by DataEase, show the table information in a table, form, or grid. They can be nested within each other and can also embed other types of controls. • Chart control provides two- or three-dimensional charting of the table information. • OLE uses an external tool to embed a visual object. The data from the table level is optionally linked to another tool using DDE, and an object provided by the tool is displayed as the control. Dataltem Controls These controls are linked to a column in the transaction object and represent the information in the column. Most of them are placed inside DataFrame controls. When they are placed outside a DataFrame in a dialog box, for example-they lack an automatic data connection and are manually programmed. Dataltem controls include the following: • Edit controls show the information in a text format. Date, Time and Numeric String, and Fixed Decimal data types appear with the appropriate edit masks. • Multiline edit controls allow display and entry of word processing text stored in a text format of variable length. • Image Fields present image data stored in the column, which may either store the image as a binary large object or as a reference to an image file. • PickList controls show data stored as a Choice List in the repository. DataEase supports five types of PickList controls: CheckBox, Drop Page 30 Copyright Sapphire International, September 1997 DATAEASE Down, ListBox, Combo Box, and Radio Button. Standard Controls DataEase supports a full range of standard controls, including Label, Button, Image, Line, Ellipse, and Rectangle. It also has a Child Window control that can be placed in the form and can specify another form to be displayed inside the Child Window. DataFrame Control The most powerful control in DataEase, the DataFrame Control is used in reports as well as in forms. • Nested Multiple Levels • Side by Side • May Contain Any Type of Controls • Vertical, Horizontal, or Grid Layout • Used in Data-Entry and Reporting DataFrames GateWell Corporation CUSTOMER_ID Credit Card Save C.O.D. Company Company PO Discount Delete Credit_Line Price Quantity Check_No Amount DataFrames Figure 18. Model of DataFrame Control Data for the DataFrame A DataFrame displays a set of selected records in a table level in the transaction object. SCALE can select, sort, and aggregate records within the DataFrame. Master-Detail Nested DataFrames Master-Detail forms can be built easily by nesting DataFrames, which can be nested to any depth. For nested DataFrames, the cursors in each level are linked so that record scrolling in the master automatically selects a different set of records in the detail. DataFrame Format Each DataFrame has a header, repeating records, and trailer area where aggregates are generally placed. The records can be presented in form, table, mailing label, or custom layout. They can be arranged in vertical, horizontal, or grid formats. At run time, the records in a DataFrame can be scrolled vertically or horizontally. Because DataFrame editing is part of the Form editing environment, it does not require switching to a separate editor. Any type of control can be placed within a DataFrame record. Copyright Sapphire International, September 1997 Page 31 DATAEASE Events and Scripts Each control in a DataFrame receives its own independent events and can be independently programmed. The DataEase Event Processor performs the processing to determine which control will receive the event. Users Visual Forms Editors Users can customize DataEase forms with the built-in visual editors. These six editors define forms as well as form styles. Menu Editor Pop-up Menus Items Separators Call Actions Call Scripts E dit Form View Record Find GateWell Corporation ToolBar Editor Predesigned User Designed Call Actions Call Scripts CUSTOMER_ID Disco unt Config_ID GW386/33 #Cong 0 Disco unt Credit_L ine Descr iption 80386, 4MB, 120MB, 1FDD Pa rt_ID Help Ord er ID Debug Ord er Da te Cust1 003 Compan y Compan y Credit_L ine Window From Editor Cut, Copy, Paste Move Size Zoom Multiple Select Descr iption C red it C a rd C .O.D. C omp an y PO AME X Ma sterC ard Vi sa Exp Date Pri ce 1,295.00 Pri ce N ext Da te Se con d D ay U PS Gr ou nd Card # Qu antity 6 Va lue 6,604.50 Qu antity Va lue BPrint Editor Paper Size Orientation Margins Quality Window Editor Window Size Placem ent Window Type Window/Frame Style Total 6,604 .50 Tab O rder Editor Colum n Tab O rder Default Tab Order Point and Click Figure 19. Features of built-in visual editors Form Editor As its name indicates, the Form Editor allows editing of forms. The form can be custom designed on a blank window, or it can be first automatically designed by the Form Builder and then customized using the Form Editor. It provides a control palette to place new controls and lets users select, cut, copy, move, and size controls. Each control also has its own menu (accessed through the right mouse button) that allows customization of the control’s appearance and functionality. Menu Editor The Menu Editor enables users to customize the menu of a form and the main menu of an application. The menu items can perform the full range of functions possible within the product, including the ability to call methods written in SCALEScript. Toolbar Editor Using the Toolbar Editor, end users can define a custom toolbar for the form. They can construct the toolbar from a selection of predefined icons or design custom toolbar icons. The icons call the same range of functions that can be invoked from the menus. Page 32 Copyright Sapphire International, September 1997 DATAEASE Window Editor The Window Editor allows customization of the window for the form. The window may be a child window, an MDI window, or a modal dialog box. The frame can be controlled to optionally omit titles, size ability, and minimization features. Window size and placement can also be customized. Print Editor With the Print Editor, users can customize printing of the form. Paper size and orientation, margins, and print quality can be specified. Many of these specifications can be overridden at the time of printing. Tab Order Editor Tab Order Editor permits specification of a custom tab order for the form. This occurs by clicking the fields in the order in which tabbing is desired. Open Objects User-Defined, Third-Party, or Environment OLE Visual Object from OLE Server DataEase Plus ID Company Ti me GateWell Corporation ID 1 9 91 1 9 92 1 99 3 1 99 4 1 99 5 1 99 6 19 9 7 Company ORDER_ID ORDER_DATE TOTAL ORDER_ID ORDER_DATE TOTAL DDE Data Exchange with DDE Client-Server User Controls Class Library Class: ebEditBox Objects ebEditBox Properties ebBorder Methods Number Parameters Number x , y ; Bar_graph.hide ( ) ; x = (String - Credit_Line.value) / 1000; Bar_Graph.rect.right = Bar_graph.rect.left + Abs (x) ; if ( x >= 0 ) then Bar_graph.Border.color.setRGB(255,0,0) ; else User Objects Class Library DLL Function Library Figure 20. Features of open object architecture Open Object Architecture DataEase Forms can be extended by using its open object architecture, which integrates external tools, objects, and programs into DataEase applications. Object Linking and Embedding (OLE) The OLE control incorporates other tools that act as OLE servers. A unique feature of this control is the ability to pass data from the DataEase form to the OLE server using dynamic data exchange. For example, map data can be passed to a mapping tool, which then draws the map and returns it to the DataEase form as a Map control. Copyright Sapphire International, September 1997 Page 33 DATAEASE Dynamic Data Exchange (DDE) DDE allows exchange of data between a DataEase form and another product such as a word processor or a spreadsheet. It can be specified as an integrated part of the OLE server. It also can be used at run time to paste records in or remove them from a DataFrame on the form to another tool. For example, name and address data can be passed for mailing list processing to a word processor, and financial data can be passed to a spreadsheet. Dynamic Link Libraries (DLL) SCALE repository provides a system to register any user functions contained in dynamic link libraries. These functions can be called either from the Business Rules Language used by SCALE or the SCALEScript language used in DataEase. DLL’s can handle custom validation and derivation rules, calling remote procedures, and custom financial functions. Integrated Reporting and Online Decision Support DataEase has successfully integrated the method for building forms, reports, and online decision support systems into a single unified development environment. As a result, the development environment supports all the features necessary for all three types of functions. Four of the key advantages of this approach follow: Single Tool for Full Application Development A typical database application requires all three types of functions, so a complete application can be built with a single integrated tool. Integrated Access from a Single Form DataEase allows development of full-function forms. The same form works for data entry and online retrieval, as well as printed reports. As an option, selected features of the form can be disabled to access only a subset of these capabilities. Powerful Reporting Features DataEase reports furnish many powerful features not often found in report writers. These features include: • Side-by-side tables: This frequent need is rarely satisfied. Because SCALE transactions support disjoint queries, and DataEase Forms can support side-by-side DataFrames, DataEase Reports can be easily designed to have side-by-side tables. • Programming by exception: Even though most reports can be designed without any programming, very sophisticated reports may be designed using programming by exception and the open object architecture. • Printing elements: These are page headers and footers; prevention of splitting objects such as tables and paragraphs into multiple pages; print in text, line, or WYSIWYG modes; paper size and orientation; and margins. Online Decision Support Features DataEase enables development of online decision support systems. Some of the key features that enable building of these systems are browsing, Query by Form, Page 34 Copyright Sapphire International, September 1997 DATAEASE Drill-Down, and OLE/DDE support. SCALEScript Language DataEase includes an integrated object-oriented 4GL, used for attaching custom actions to events on form objects. Each visual object in a document can have custom actions attached to its events. The scripts are attached in the SCALEScript language using the interactive editor and debugger. As a full-function object-oriented programming language, SCALEScript includes control statements, procedures, database statements, and object oriented expressions. The objects used in the language are defined and registered in the object dictionary. A range of objects are available in this dictionary, including data objects defined by SCALE, visual objects, and other third-party and environment objects. The power of the SCALEScript language can be enhanced significantly by adding more object classes to the dictionary. Each visual object class has a list of events to which custom actions can be attached. For example, the Field object has the events PreEdit and PostEdit. Users can attach a SCALEScript Action to any event on any object. SCALEScript Features Among the features of the SCALEScript language are the following three standard elements. Control Statements SCALEScript provides the traditional flow of control statements. WHILE IF CASE FOR I = 1 TO N Expressions and Functions SCALEScript offers a rich set of built-in operators and functions that operate on number, text, date, and time classes: • Arithmetic Operators • Comparison Operators • Logical Operators • Functions: If, Date, Time, String, Financial, Scientific • Relational Operators (Subquery) Lookup, Count, Sum, Mean, Highest, Lowest, Exists, Any, All • Custom-Defined Functions Relational subquery functions are available to operate on data from related tables. A developer can also call custom-defined functions with any 3GL that uses the FAR PASCAL convention. Procedures Common SCALEScript procedures can be defined for each application, form, or control on a form. The parameters can be of any class and can be passed either by value or reference. Examples of procedures follow: Copyright Sapphire International, September 1997 Page 35 DATAEASE SetColorSize(Color NewColor, Rect NewSize) …. End SetColorSize(CurrColor,CurrSize) ; Data Access Statements SCALEScript offers two ways to customize data interaction. The EXEC SQL method provides a way to write a customized query directly in the dialect of each engine. The part of the application that uses EXEC SQL is not portable across data engines. The second method invokes the SCALE transaction processor and is fully transparent to the data engine type. EXEC SQL for Custom SQL Generation An EXEC SQL statement can be used for generating custom SQL statements. Users can employ it as a select statement whose results are retrieved into a form’s MultiView. A server based procedure can also be used to process data on the server and then return the results into a Transaction Object. The following EXEC SQL statements are examples of object-oriented language: EXEC SQL SELECT * From Customer INTO Mview ; EXEC SQL EngProc(………) INTO Mview ; EXEC SQL UPDATE ……. ; EXEC SQL statements can also be used for INSERT, DELETE, and other transaction processing functions, as well as data definition and administrative functions. Object-Oriented Features SCALEScript provides object-oriented features that allow it to access any type of functionality that can be defined in an object. In this open environment, functionality is easily expanded by adding more object classes. The Object Dictionary defines the object classes. Object instances can either be created automatically by the Form Painter or they can be instantiated in the language script. Objects can be used in the following ways: Field NewField, OldField, &Field_ptr ; Color NewColor (0, 100, 20) ; IF (NewField not = OldField) THEN NewField = OldField ; SetFieldColor(NewField, NewColor) ; NewField.Rect.Fill = NewColor ; NewField.Show() ; END Page 36 Copyright Sapphire International, September 1997 DATAEASE The following object-oriented characteristics are available with SCALEScript: • Object Instance Definitions • Object Comparisons • Object Assignments • Objects as Parameters • Object Expressions • Object Methods Object Properties and Methods Examples of types of SCALEScript properties and methods follow: Properties Entity.Location Attribute.Type Field.Color Methods Entity.Open(…) ; Attribute.Add(…) ; Field.Edit(…) ; Field.Rect.Top Record.Fill.Color.Blue Each object class is defined in the Object Dictionary with its properties and methods. SCALEScript can obtain and set properties of these objects. It can also invoke any of the methods defined for the objects. Object Property Navigation The property of an object may be an object of another class. An object expression can access the sub-properties of a property. This can be nested at any number of levels. Contained Objects and Navigation Formx.Record [N].Fieldz.Propertyx Applicationx.Documenty.Propertyx An object may contain an array of objects of the same class—for example, an Entity contains many attributes. Each of these objects may have a unique name or a unique number. An object expression can navigate to contained objects. These can be nested at any number of levels. Use of SCALEScript Following are some of the ways that users can employ SCALEScript to customize and extend the forms. Customized Visual Interaction • Conditional object properties - Prevent entry - Appearance - Visibility - Size and location Copyright Sapphire International, September 1997 Page 37 DATAEASE • More control over field processing - Keystroke-by keystroke checking - Arbitrary validation logic - Complete message control • Dynamic Field Processing - Determine tab order at run time - Prompts and messages • Combine DataFrame and visual manipulation to build visual presentation of data - Maps - Gantt charts - Bar charts - Interior layout Customized Data Interaction • Custom form data processing - Attach complex database logic directly to form - Process DataFrame records before they are posted • Custom SQL • Stored procedure calls Function Extension • Call custom functions • Operating system calls • Remote procedure calls • Invoke external objects - Modem - Network - Fax - E-mail Interactive Editor SCALEScript supplies an interactive editor for easy attachment of scripts to events and for editing of scripts. The editor lists the following items: • Visual objects on which events may be customized • Events for the selected visual object, highlighting those that have been customized • Script for the currently selected event • Object classes in the Object Dictionary • Object instances for these classes • Properties for the selected class • Methods and parameters for the selected class Users can easily construct a script by choosing from these items. Page 38 Copyright Sapphire International, September 1997 DATAEASE Incremental Compilation Each action is independently compiled and is ready to run immediately. Thus, SCALEScript development can proceed in an incremental fashion: by scripting, compiling, and testing each step before moving to the next. Testing and Debugging SCALE lets developers either test the unit of each form as it is developed or test the entire application. The test mode can be invoked easily anytime during the design process. DataEase simulates the run-time environment of the form or the application, while preserving the design time environment. When developers return to the design mode, the design time environment is fully preserved. DataEase has a full-featured debugger. It can set breakpoints on any events on objects or on any statement in a SCALEScript method. The debugger supports the following features: • Debugging events - Events on any objects - Any statement within a script • Debugging modes - Break - Step - Trace - Log • Inspector - Inspect and change objects and properties • Watchpoints - Set and monitor global watch points Team Development Features DataEase NetPlus offers version control features that allow a number of developers to create applications in a cooperative and coordinated manner. There are three types of features: shared multi-user repository; check-in and check-out; and version control. Shared Multi-User Repository A server based, shared multi-user repository in DataEase NetPlus contains all application objects for workgroup development. The project leader can control the repository and grant varying access rights to each of the developers on the team. A shared common business model centralizes the business rules, providing a single update point. Since everyone on a project team can use the same business model, all applications they create consistently use the same business rules and definitions. Changes to the physical database architectures, business rules and application objects need only be made in one place for the whole team to be up to date. Copyright Sapphire International, September 1997 Page 39 DATAEASE C h e c k - In C h e c k-O u t R e p o s i to ry F o ld e rs A p p li c a ti o n s F o rm s V e r s i o n C o n tr o l PVCS V e r s i o n C o n tr o l S y s te m or LBM S R e p o s i to ry Figure 22. Features of Team DataEase Folders, Forms, and Applications The basic element of development is a form. A folder can store all the forms for a given project or sub-project. The application is the actual deliverable and can combine forms from several folders. Applications can share forms, which is convenient for producing application versions. Check-In and Check-Out Developers can check in and check out any application document. Check-out is for exclusive use only. No two developers can check out the same document. Version Control Version control is supported through an interface to the LBMS or PVCS version control system. With version control, when a revised document is checked back in, the original version is placed in the history log. A historical version of a document can be retrieved at any time. DataEase Benefits DataEase brings client/server development to a new level by making it more methodical and easier and quicker than ever and enabling developers to build more powerful and scaleable applications. These key benefits-rapid application development, power, data scalability, and client/server development methodology-are summarized here. Rapid Application Development DataEase’s programming-by-exception model combined with the automated SCALE Transaction Processor allow full-function database transactions to be designed quickly without any programming. This methodology makes client/server development accessible to a broader range of developers and makes developers far more productive. An important benefit is that these applications are much easier to maintain and will not impose a heavy ongoing burden as client/server applications are widely deployed. Page 40 Copyright Sapphire International, September 1997 DATAEASE Power The powerful DataEase environment provides a fully integrated facility for developing transaction processing and decision support applications, a built-in 4GL for full programmability, and an open object architecture for extending the functionality of the product. It has a powerful debugger, team development features, and easy deployment and maintenance of applications. A key distinction of DataEase is that delivers this power without compromising its ease of use and rapid application development capabilities. Data Scalability During the next decade, there will be a significant transition in large organizations in how data is stored and managed. Building applications that are tied to specific data configurations will mean an ongoing burden of application redevelopment. DataEase and SCALE let users build applications that are fully scalable across any kind of data changes. This flexibility allows organizations to start building the delivery systems, while independently migrating data to its new destination. Flexible Deployment DataEase’s flexibility provides you with a choice of how to deploy your application. With DataEase’s deployment architecture, you can choose to deploy your application in the traditional client/server method where the EXE and DLL’s are loaded onto the client machine, or you can elect to deploy using a “thin” client on the Internet or corporate intranet. No Application Repartitioning IMS, DB2 SQL Server, XBASE One Server SQL SERVER or ORACLE SYBASE10, ORACLE 6 Downsize Upsize Distribute Database Shift Version Shift SYBASE DB2/6000 ORACLE, SYBASE Multiserver Other SYBASE11, ORACLE 7 Conclusion DataEase enables enterprise-wide development of client/server systems through its SCALE architecture and tools. Organizations can implement these systems following a sound methodology, make client/server development easily accessiCopyright Sapphire International, September 1997 Page 41 DATAEASE ble to a broader range of developers, build applications quickly and cost effectively, and maintain them easily. The open and powerful SCALE tool allows building of complex applications with minimal programming. At the same time, these applications can optimally access enterprise-wide data sources simultaneously and are scaleable to changes in data configurations. DataEase The beginning The first DataEase product was released in 1983 in the US and UK, when most PC databases confronted users with little more than a dot on the screen to build from. DataEase proved to be a ground-breaking database product; the first rapid application development tool to deliver truly useable power to the desktop. Providing a user interface that was at once reassuringly easy-to-use and very intuitive. Soon users found they could do in minutes what had previously taken days to achieve. Within a few years DataEase became the PC database market leader, scooped the lion’s share of the major database awards and proved unbeatable in every public PC Database Shoot-Out and Challenge staged by independent adjudicators in the US and UK. DataEase was the first PC database to provide a desktop database evolution - a line of database products that grew to match the need for easy-to-use Rapid Application Development tools. It was also the first PC database to be supported by a dedicated network of software partners across the world; each one supplying a locally focused and integrated support, training and application development consultancy service to ensure the DataEase users prospered. Today, the impressive world-wide list of blue-chip users is testimony to the fact that the DataEase desktop products, (DataEase for DOS and DataEase for Windows), remain the easiest-to-use and most powerful rapid application development solutions for the desktop. Over one and a half million users world-wide and growing have found out what real ease of use means. The DataEase ‘application first’ philosophy DataEase succeeded because it captured the essence of the business logic and structured it in a clear and easily managed format. It provided a highly efficient and very intuitive user interface that users readily understood and found extremely easy to use. With such a stable and secure platform, they were able to spend their time where it counted most - concentrating on the applications that addressed the business issues involved, not on attempting to master a bewildering succession of complex technologies. They had recognised an important fact - change for change sake can mean minimal gain and high risk. That when it comes to developing applications, the business needs only truly change when the business itself changes, not when the technology changes. The mission The DataEase mission remains unchanged. We still believe the key to success is ease-of-use allied to power, delivered quickly at the point of need and in a manPage 42 Copyright Sapphire International, September 1997 DATAEASE ner which makes application development, deployment and maintenance secure and easy to achieve. It sounds simple but in practise few companies have managed to achieve it. Today we are extending that mission, so that applications can move forward cost-effectively and as easily as possible from one DataEase enabled platform to the next, as appropriate to the changes in business needs of the DataEase users. The future With the release of the new second-generation Windows client/server database front-end tools, DataEase Plus and DataEase NetPlus and the Web deployment server software, DataEase ActiveServer, the mission moves forward. DataEase users now have a future-proofed and open architecture. We call our approach - through the line scalable RAD2. Scalable RAD2 means quicker, easier and more powerful development, faster and more flexible deployment and easier and more accessible maintenance, scaling up to any number of users and across multiple platforms. Now users can continue to develop and run DataEase DOS applications, confident in the knowledge they can scale up from DOS to Windows client/server, using the DataEase SolutionPlus Conversion tools. They can build stand alone and file server Windows applications with DataEase for Windows. And new second-generation and database independent Windows client/server solutions with DataEase Plus/ NetPlus for the state-of-the-art (e.g. NT, WIN95) client/server platforms. Whilst, by combining DataEase NetPlus and ActiveServer, they can deploy second-generation client/server applications across the emerging intranet/Internet platforms. As part of the mission to ensure DataEase users gain the maximum productivity from their DataEase investment we have opened up the DataEase for DOS and DataEase for Windows technology to specialised add-on providers, resulting in the recent releases of DataEase add-ons such as ConnectEase, LinkEase, DFWPrint, WebEase and Report Tool. By working in alliance with specialised technology providers such as InterMax Solutions, Inc, on the development of DataEase Plus, NetPlus, ActiveServer and other emerging products and LANimation Technology for ConnectEase, there is now a line of DataEase products, specialised add-ons and integrated services that span multiple platforms and deployment options, enabling those users with DataEase DOS applications to move forward to either desktop/fileserver Windows or an open and full-featured second-generation Windows client/server future, encompassing the emerging intranet/Internet deployment opportunities. Copyright Sapphire International, September 1997 Page 43