Pervasive PSQL — The Right Decision

A White Paper May 2006 of Contents

EXECUTIVE SUMMARY ...... 3 FINDING VALUE IN THE RIGHT DATABASE SOLUTION ...... 3

RELIABLE, LOW MAINTENEANCE SOLUTIONS ...... 3

VARIETY OF DEPLOYMENT OPTIONS ...... 3

DATA ACCESS AND RECOVERABILITY ...... 4

COMPARING ...... 4 PERFORMANCE ...... 4

THE BEST OF BOTH WORLDS ...... 4

THE API...... 5

ADDED PERFORMANCE FEATURES...... 5 EASY SETUP AND LOW MAINTENANCE ...... 6

KEY FEATURES OF AN SOLUTION ...... 6

TOOLS FOR INSTALLATION AND EMBEDDING...... 6

MAINTENANCE-FREE DATABASE OPERATIONS ...... 7 DEVELOPMENT FLEXIBILITY ...... 8

PERVASIVE PSQL SOFTWARE DEVELOPER KIT ...... 8

PERVASIVE DEVELOPER CENTER...... 9 DEPLOYMENT FLEXIBILITY ...... 9

OPERATING SYSTEMS PLATFORMS ...... 9

CONFIGURATION AND LICENSING ...... 9

PERVASIVE PSQL WORKGROUP ...... 9

PERVASIVE PSQL ...... 10 DATA SECURITY AND RECOVERABILITY ...... 10

PERVASIVE PSQL SECURITY ...... 10

ADDITIONAL DATA SECURITY AND RECOVERY PRODUCTS ...... 10

BACKUP AGENT ...... 10

DATAEXCHANGE ...... 10

AUDITMASTER ...... 11 SUMMARY: THE OPTIMAL DATABASE SOLUTION ...... 12

CONTACT/TRADEMARK INFORMATION ...... 13

Pervasive PSQL — The Right Decision 2 EXECUTIVE SUMMARY The purpose of this paper is to provide software developers and ISVs information that will assist in the of selecting a database for packaged application customers in the small to midsized business market. These customers have many of the same concerns as enterprise database users such as security, performance, and standards support. However, there is one characteristic that sets SMB customers apart and defines many of the criteria they require for database applications – SMB customers have limited or no IT or database administration staff. Because of the lack of IT resources, databases for SMB customers must be extremely reliable and require little or no maintenance. Ideally, an embedded database is invisible to the end user – it simply installs and operates as part of the ISV application. This means that the database should include features for embedding and easy installations and upgrades, with to allow for management of the database directly from the ISV application. Finally, because of the variety (and age) of computing infrastructure typical to most small businesses, the database needs to support a wide range of development and deployment choices, and be backwards compatible with several years of previous versions.

FINDING VALUE IN THE RIGHT DATABASE SOLUTION When picking applications, most companies focus first on finding a solution to meet their business needs; the technology behind the application is secondary. Is the database that powers the solution important? Absolutely. The ultimate goal of a database designed for small to medium businesses is to be affordable and unobtrusive. With this goal in mind, a database must meet some basic requirements, such as speed, ease-of-use, scalability, and security. For the SMB, the ideal database delivers high performance and flexibility with the lowest possible cost of ownership.

Reliable, Low Maintenance Solutions For companies without IT staff, the need for reliable, low-maintenance solutions is critical. These businesses typically rely on integrators to help install and deploy turnkey solutions. Ongoing maintenance of the application or database is often “ad hoc”, and usually involves nothing more than a scheduled of the data. The prices of applications targeted at small to mid-sized companies can’t support ongoing maintenance contracts, and unscheduled emergency support work can quickly turn a profitable software sale into a losing proposition for the integrator. So, in addition to low maintenance requirements, long-term reliability – uninterrupted ongoing operation of the customer application – is essential. The ideal database must be easy to install, require little to no maintenance, and never be a gating factor in a customer’s business performance, or worse, cause operations to halt. It must be simple, fast, and robust.

Variety of Deployment Options In addition to simplicity, speed, and stability, end users need applications that offer a variety of deployment options, ensuring that the business has the widest latitude to leverage its application investment and that it is not locked into a potentially obsolete technology. End users also need both upward and downward scalability, with an easy way to deploy applications to larger or smaller numbers of users. Application developers need to be able to rely on the availability of industry standards and a variety of development tools and access methods to have the best chance of delivering exactly what the customer wants. Development and deployment flexibility are key ingredients to success.

Pervasive PSQL — The Right Decision 3 and Recoverability Security, particularly data access and recoverability, must be planned and implemented to minimize business downtime due to data loss or corruption. Even the best application infrastructure can be the victim of either natural or man-made disasters. Businesses need to be able to secure their data by controlling access for authorized users, eliminating (or limiting) unauthorized access, and reducing the effects of security breaches when they do happen. Data backup and recovery, and file and network encryption, are all key components of a well-thought security plan. Even with a security plan in place there is still risk of damage by authorized users, either through honest mistakes or direct attacks. Businesses need a way to audit activity in the database, provide alerts for identified events, and if necessary provide an audit trail to discover what happened after the fact. Depending on the business’ regulatory environment (healthcare, for example), audit capability may even be required.

Comparing Databases When comparing Pervasive PSQL (PSQL) vs. Brand X, we would suggest that you map your business criteria to the database features you need. Ask whether the database will perform as required, with minimal repair and maintenance. Once you break it down into this simple equation, you can make a logical decision. Key factors to consider are:

FEATURE DESCRIPTION BENEFIT Performance The ability to perform major operations of your Faster application and more application quickly. productive customers. Easy Setup The database installs as part of the application. Easy installs and upgrades. Low Maintenance Does not require a database administrator. Minimal support expense and high customer satisfaction. Reliability Run uninterrupted for years without data Happy customers, no business corruption or application downtime. downtime, no data loss Development Flexibility Choice of languages, development environments Developer freedom of choice, and support for data access standards such as resulting in better applications. ODBC, JDBC, OLE DB, and .Net. Deployment Flexibility Large number of platform, licensing, and Support wide range of clients configuration options. with single database. Scalability From single user to servers with Easy to grow the application thousands of clients. with the business. Data Security and Provide multiple levels of security, with robust Keep data safe and accessible. Recoverability , backup and recovery tools. Pervasive Software database products are successful because they improve customer applications by being easy to embed, extremely fast, incredibly reliable, as well as calling for only minimal or no maintenance. PSQL is designed to be included as an integral and seamless part of the applications that it powers, transparent to the end user. With improved security features and the added capabilities of Pervasive Software’s other products for audit, data backup and recovery, PSQL provides a very secure application platform. This paper will review the features that make PSQL a success: performance, flexibility, low maintenance, easy embedding, scalability, and security.

PERFORMANCE The Best of Both Worlds PSQL’s approach gives developers a unique advantage in application development: they can build applications that provide relational access where flexibility is needed and transactional access where performance is a priority. By combining a high-speed transactional interface with Pervasive PSQL — The Right Decision 4 a highly flexible and powerful relational interface in a single package, Pervasive PSQL enables developers to provide the best business solutions for their customers. • Relational access uses standard SQL query and data manipulation operations. SQL queries are broken down and analyzed by the database engine to determine the optimal method for executing the query. Relational access is best suited to ““ad hoc”” querying and user-defined reports. • Transactional access provides great performance when the database operations (and record locations) can be charted in advance and is ideal for high-volume transactions where the speed of individual I/O operations is of utmost importance. Pervasive provides transactional access through the Btrieve API. The combination of transactional and relational access enables developers to target database performance to the application’s specific requirements – standards and flexibility for areas of the application, such as reporting and ““ad hoc”” queries, that are difficult to define in advance, and exceptional performance for known (and frequently repeated) application functions.

The Btrieve API The Btrieve API is the heart of Pervasive PSQL’s transactional data access. Btrieve has been in existence for over 20 years and is the underlying API for thousands of applications and millions of users. A low-level API that interacts directly with the database engine, Btrieve provides complete control over how the database engine accesses the data store. While relational data access is a convenient, flexible programming model that is appropriate for many situations, it can result in additional overhead when performance is a driving factor. The Btrieve API eliminates this overhead. With Btrieve, the work traditionally assumed by the query cost optimizer is performed by the application, directly accessing the database at the lowest entry point. The Btrieve API is callable from a long list of popular programming environments and allows the developer control of the file/table layout and the indexes. Although control of file/table layout is a typical part of database design, Btrieve enables developers to control how the files are accessed by the application.

Added Performance Features In addition to providing the developer with a choice of access methods for performance tuning, Pervasive has included several patented performance enhancements for minimizing disk and network I/O. • Turbo Write Accelerator (TWA) improves the performance of applications that update, delete, or insert records frequently. TWA improves performance by grouping disk write operations together and writing data to the hard disk in large sequential blocks. • Self-tuning Dynamic manages both static and dynamic cache to increase memory utilization on the server, dramatically improving read performance. • Cache greatly improves data access performance by using local caching of pages to reduce network requests.

Pervasive PSQL — The Right Decision 5 EASY SETUP AND LOW MAINTENANCE Key Features of an Embedded Database Solution Software vendors like to build great applications and application users like to focus on managing their business. Neither group prioritizes database maintenance over these other activities, but it often consumes significant time and effort. Pervasive PSQL has been designed as an embedded database for customers who have no database administrator (and often no IT staff), with features to enable automatic installation and ongoing operation without tuning or maintenance. Embedding the database engine in the application also provides developers the control over which version of the database their customers use, resulting in more manageable configurations, lowered support costs, and increased customer satisfaction. Pervasive’s goal has always been to deliver a database that requires the least possible effort to install, configure, and maintain over time, and still meet requirements for performance and flexibility. Pervasive PSQL v9 is the result of over 20 years of product development focused on delivering the industry’s best-packaged application database engine. Concentrating on the SMB customer, and not expanding into the enterprise database market, Pervasive has avoided adding complex features to PSQL that would make it more difficult to deploy and maintain. PSQL epitomizes two key characteristics of an embedded database: simple installation and maintenance-free operations.

Tools for Installation and Embedding Pervasive PSQL has several features to make it easy to embed into an application and easy to install: an Installation Toolkit, Pervasive System Analyzer, an online Component Wizard to help developers embed PSQL into their application, backward compatibility with a large number of previous versions, and the Distributed Tuning Interface. Installation Toolkit The Installation Toolkit makes the task of including PSQL in an application’s installation faster and easier with less coding. With the Toolkit, a developer can seamlessly include PSQL in their application’s installation without requiring the end user to learn the steps required to configure the database. The toolkit allows developers to encapsulate a complete PSQL installation as part of the application’s install program. The database install can be run silently so that the only GUI presented to the user is the application installation GUI. The installation can also be customized to include location, license keys, testing for conflicting components, and installation validation. For more information on the Installation Toolkit, please refer to the Installation Toolkit Handbook.

PSQL Component Wizard The Component Wizard is an online tool that delivers the exact file set needed to embed the Pervasive PSQL database engine and utility components with the developer’s application. When running the wizard, developers select items that describe their application in terms of engines, interfaces, and utility usage. At the end of the process, the wizard delivers a list of files to be included and step-by-step instructions for embedding them in the application. To use the Component Wizard, click here.

Pervasive System Analyzer The Pervasive System Analyzer (PSA), bundled with every version of PSQL, runs during installation to optimize the system, determining if there are any duplicate versions of the database running on the system and archiving the older components. PSA also verifies all communication between the client PC and the database engine.

Pervasive PSQL — The Right Decision 6 Backward Compatibility PSQL v9 can read and write to files from Btrieve 6.15 (released in 1996) and every PSQL database in between. Ten years of full backward compatibility means that upgrading the database in your application is a simple process because it won’t require a rebuild to support a newer file format.

Distributed Tuning Interface DTI is an extension of the same APIs that are used to develop tools and utilities for Pervasive PSQL databases. DTI is invaluable to developers because it provides access to low-level database engine functions, giving them control of the database from within their application. In essence, developers can create tools and utilities that interact directly with the database engine, and can embed them into their application. Using the DTI API, developers can embed code to: • Connect – Start and stop Pervasive PSQL services on remote servers. • Configure – Set database engine settings either locally or on remote servers. • Monitor – Retrieve engine statistics and resource usage (open files, connected users, etc.). • Catalog – Manage and dictionary information such as database names, table names, table properties, and data dictionary information; drop and create tables and dictionaries. The benefit of these tools is that Pervasive PSQL installation and configuration is easy, quick, and often completely hidden to the end user. End users require no support to install the database because it happens automatically with the installation of the application. This dramatically reduces ISV costs associated with application installations and upgrades.

Maintenance-Free Database Operations Pervasive PSQL has several features that make it nearly maintenance-free: auto reconnect, dynamic caching, dynamic file allocation, and index balancing. These features ensure that users don’t have to worry about monitoring and managing the database to continually optimize performance or avoid application crashes. • Auto-reconnect allows client-server or workgroup applications to endure temporary network interruptions without canceling the current database operation. • Dynamic caching reduces reads from disk and improves application performance over time. • Dynamic file allocation and index balancing help minimize disk usage requirements. Pervasive has been focused for over 20 years on delivering high-performance databases that can be embedded into applications and made transparent to the end user. The result is that Pervasive PSQL enables developers to deliver great applications and end users to focus on running their businesses, without devoting significant resources to installing, tuning, and maintaining a database.

Pervasive PSQL — The Right Decision 7 DEVELOPMENT FLEXIBILITY Pervasive PSQL gives developers the freedom to create applications in their preferred language, their development environment of choice, such as Visual Studio, and C++ Builder, and with the access method that best suits needs of the application. In addition, using either direct access to Btrieve, or the high-performance JDBC, ODBC and PDAC interfaces, developers can choose the right combination of access methods to perfectly meet customer requirements. Pervasive PSQL offers the best development interface for your application and the performance required for any situation. The transactional interface enables extremely fast, robust applications, while the relational engine, accessed through OLE DB, ODBC, JDBC and PDAC, optimizes queries for fast results.

Development Environments MS Visual Studio, Delphi, Crystal Reports, Data Access, Accucorp, etc.

Languages C, C++, Java, COBOL, Visual Basic, Visual C++, Pascal, PHP, Perl, etc.

ADO JDBC ODBC PDAC ActiveX Pervasive Data Access Components (JCL) OLE DB Btrieve

Relational Engine

Microkernel

Pervasive PSQL Software Kit The Software Developer Kit (SDK) offers a full suite of interfaces, components, and data access methods – combined with sample applications, documentation and tutorials – for of every skill level. You can download components of the Pervasive PSQL SDK at http://www.pervasive.com/developerzone/sdk. The Pervasive PSQL SDK includes everything a developer needs for application development including: • Full Text Search developer tool to enable applications to search for data in a PSQL table • DDF Builder to create and maintain DDFs for any Pervasive PSQL database • Code samples and snippets • Tutorials • Pervasive PSQL Engine for development and testing • Support from the Pervasive Developer Resource Center

Pervasive PSQL — The Right Decision 8 Pervasive Developer Center PSQL developers can navigate available downloads, documentation, product updates, sample code, and tutorials using the Developer Center. In addition to the SDK components, the Developer Center provides access to documentation, technical white papers, DevTalk (a Pervasive Developer forum), and training. The Developer Center can be found at http://www.pervasive.com/developerzone.

DEPLOYMENT FLEXIBILITY Operating Systems Platforms Pervasive supports versions of PSQL on three different operating systems: Windows, NetWare, and . Configuring the database for each of these platforms is identical, eliminating the need for platform-specific DBMS knowledge. In the simplest cases, all that is required to run your database on a new OS is to install the database on the new platform, copy the files, and point your application to the new server. Pervasive also provides reduced price licensing to move from one OS to another, allowing customers to leverage their current investment in the database across multiple platforms. For more details on support, please review the Pervasive PSQL product sheet.

Pervasive PSQL OS Deployment Options

PERVASIVE PSQL DEPLOYMENT OPERATING SYSTEM Server NetWare, Windows Server 2003, Windows 2000, Linux Workgroup Windows Server 2003, Windows 98/Me/2000/XP Client DOS, Windows 98/Me/2000/XP/NT, Linux

Configuration and Licensing Pervasive offers configuration and licensing options suitable for installations ranging from single-user PCs to thousand-user servers, and Web-served applications supporting tens of thousands of users. Pervasive PSQL is licensed in two base configurations, Workgroup and Server, allowing users to easily grow and migrate their applications. The key is to not limit flexibility or the ability to change because of the choice of database, and with Pervasive PSQL customers get exactly what they need.

Pervasive PSQL Workgroup The Pervasive PSQL v9 Workgroup is the ideal solution for applications deployed in single-user and small multi-user environments. The Workgroup edition is designed to deliver client-server multi-user performance, dependability, reliability, and to environments with no network server. Workgroup shares a common architecture with the PSQL Server engine and is fully compatible with all PSQL Server applications, so migration between the two products requires nothing but a license change. The Workgroup engine supports up to five concurrent connections. Single-user add-on licenses can be applied to increase the concurrent user count. To add concurrent users, simply install the Workgroup engine on the new system requiring access to the database and apply the add- on user license.

Pervasive PSQL — The Right Decision 9 Pervasive PSQL Server Pervasive PSQL Server edition is Pervasive’s solution for high-volume environments that require the power, performance, and administration of a true client-server solution. Pervasive PSQL Server offers licensing from six to an unlimited number of concurrent users, and is designed to handle the heaviest loads in terms of number of users or transactions. With an Internet license, vendors can provide an unlimited number of connections to Internet customers for less than the cost of a 100–user license.

DATA SECURITY AND RECOVERABILITY Pervasive PSQL Security PSQL provides a full set of utilities and security features, including database-administrator- defined user access controls at the database and table level, and encryption for database files and database-related traffic. Once access policies have been defined, the administrator has several ways in which to implement them. Database access rights can be defined at: a) the operating system level, b) at the database but using access and authentication mechanisms in the OS (the database passes username and login information to the operating system), c) independent of the operating system (separate users, groups, and access rights). Flexibility is the key to delivering a solution that fits, and the key to simplifying the changes dictated by shifting business conditions. For more details on implementing these security models, please refer to the PSQL v9 Advanced Operations Guide.

Additional Data Security and Recovery Products Even though Pervasive PSQL is an incredibly robust database (some customers have gone literally years without any problems), it’s important to provide data security and recovery features in the event disaster strikes. PSQL includes several key security features, whose capabilities can be extended with Pervasive’s other data management products: Backup Agent™, DataExchange™ and AuditMaster™.

Backup Agent One of the biggest challenges that administrators face in implementing a backup plan is that database applications must be shut down to commit changes before a backup to ensure data and file integrity in order that the backup won’t be corrupted. Pervasive’s Backup Agent works with your existing backup software such as ARCserve® and Backup Exec® to enable with continuously operating applications. Backup Agent keeps track of which files are open, records changes, and commits them after the backup is complete (ensuring that no partially completed transactions are included in the backup).

DataExchange Backup Agent is an excellent add-on product to make your tape backups easier, but there are times when backing up data to local tape drive may not be enough protection. For additional safety, data can be backed up to a remote location. DataExchange captures and replicates database changes (inserts, updates, and deletes) from a production to a backup server. DataExchange can be configured to operate several different ways for a backup procedure

Pervasive PSQL — The Right Decision 10 – either continuously, at scheduled intervals, or on demand. To catch potential problems before they occur, DataExchange can also send an email notification if a replication failure occurs (such as an inability to communicate with the remote backup server or a missed schedule for a particular replication event). In the event of a primary server outage, clients can be redirected to the up-to-date backup. With DataExchange, data loss and down time due to system crashes, hardware failures, or site disasters are minimized. DataExchange can be used to recover from a catastrophic failure at the primary site where no data is recoverable, or from a partial failure in which data is recoverable but not current.

AuditMaster Planning backups and ensuring data is synchronized across multiple remote sites provides good protection against natural disasters, and access controls and encryption will help protect data from unauthorized access. Something is still needed, however, to help protect applications from problems caused by authorized users’ inadvertent or deliberate actions. AuditMaster monitors and records all data access at the database level – inserts, deletes, modifications (recording database state both before and after the modification), logins/logouts, and reads. It also tracks database errors, such as denial of file access or failed login attempts, and provides detailed records for a thorough audit trail. For each occurrence, the event record includes date, time, network address, IP address, user name, database name, database event, application versions, process, and much more. AuditMaster also provides an alert capability, enabling system administrators to be notified of potential security problems as they are happening. Developers can define alerts for specific events in the database. AuditMaster checks each new audit record for the alert condition and executes an action (for example, sending an email) when the alert condition is found. For more information on Backup Agent, DataExchange and AuditMaster, please visit the Pervasive website at http://www.pervasive.com/products/index_data.asp.

Pervasive PSQL — The Right Decision 11 SUMMARY: THE OPTIMAL DATABASE SOLUTION Getting the most value from an application requires an underlying database that delivers the best combination of: • Performance • Easy installation and low maintenance • Development • Deployment options and scalability • Data security and recoverability With Pervasive PSQL, developers can selectively tune their applications’ performance by choosing development tools and access methods that best suit the application requirements. Applications can be delivered on a wide variety of operating systems, and data can be readily shared among different applications. Embedding and installation tools allow the developer to automate and simplify database installation and configuration, reducing both setup and ongoing support costs.

Performance — PSQL provides Btrieve access for exceptionally quick transactions and SQL access for flexibility in meeting user reporting or ““ad hoc”” query requirements. Development Options — A wide range of development environments, languages, and data access methods – combined with great developer support – provides developers with all the tools they need to meet customer requirements. Deployment Options and Scalability — Developers can deploy applications on three different operating systems with configurations and licensing options that span from single-user to an unlimited number of users accessing a database through the Internet. Easy Installation and Low Maintenance — PSQL has been designed for over 20 years as an embedded database – installed as part of the application and capable of running with little or no ongoing maintenance. Installation and embedding tools let the developer make the PSQL database setup and installation process invisible to the end user. The Distributed Tuning Interface provides an API to manage the database programmatically from the application, and features such as auto-reconnect and dynamic cache management reduce maintenance requirements. Data Security and Recoverability — Pervasive PSQL and the add-on data management products Backup Agent, DataExchange, and AuditMaster provide an excellent suite of tools for ensuring that data is secure from both natural and man-made hazards. These security features can be added without changing existing application code, further proof of Pervasive’s commitment to deliver high-value, low-overhead solutions to both developers and end users.

For more information about Pervasive PSQL, pricing or support, please visit our Web site at http://www.pervasive.com or locate one of our sales offices worldwide at http://www.pervasive.com/company/contact/index.asp.

Pervasive PSQL — The Right Decision 12 Contact Information Pervasive Software Inc. 12365-B Riata Trace Parkway Austin, Texas 78727 United States 800.287.4383 512.231.6000 Fax: 512.231.6010 [email protected] EMEAA +800.1212.3434 [email protected] http://www.pervasive.com

© 2006 Pervasive Software Inc. All rights reserved. All Pervasive brand and product names are trademarks or registered trademarks of Pervasive Software Inc. in the United States and other countries. All other marks are the property of their respective owners.

Pervasive PSQL — The Right Decision 13

WP0506A05