Cache is a new generation of ultra-high-performance database technology. It combines an object database, high-performance SQL, and powerful multidimensional data access – all of which can simultaneously access the same data. Data is only described once in a single integrated data dictionary and is instantly available using all access methods. Cache provides levels of performance, scalability, rapid programming, and ease of use unattainable by relational technology.
1. What is CACHE?
Cache is a post-relational database that uniquely offers three integrated data access options which can be used simultaneously on the same data: a robust object database, high performance SQL, and rich multidimensional access. No mapping is required between object, relational, and multidimensional views of data, resulting in huge savings in both development and processing time. Cache enables rapid Web application development, extraordinary transaction processing speed, massive scalability, and real-time queries against transactional data.
2. Why we choose CACHE?
Cache: A high-performance database and rapid application development environment optimized for transaction processing in Web and client/server architectures.
2.1 Scalable Performance
Cache’s efficient Multidimensional Data Server provides lightning-fast access, retrieval, and updating of data, even when applications scale up to thousands of users
2.2 Rapid Web Development
The combination of Cache and Cache Server Pages is unbeatable as an integrated environment for rapidly creating dynamic data-driven Web applications.
Cache data can be accessed via SQL, Objects, and multidimensional arrays, giving developers the ability to work with data in the form that makes the most sense for their application. Caches Unified Data Architecture eliminates the “impedance mismatch” between relational and object data definitions.
Cache Objects can be used with Java, C++, or any technology (such as ActiveX) that uses the COM interface. This makes Cache compatible with a wide variety of development tools and environments, including Visual Basic, Delphi, PowerBuilder, etc.
2.5 Platform Portability
Cache applications can be ported from one platform to another without changing a single line of code. Cache runs on Windows 95/98, Windows NT 4.0, all major UNIX platforms, Digital OpenVMS, and Red Hat LINUX.
Cache applications require less hardware and less system management than comparable relational applications.
3. Combination of Power and Productivity.
Cache combines a high performance database and rapid development technology for complex applications in Web and client/server environments. Cache seamlessly integrates relational and object technologies to give professional developers the capabilities they most want and need: the power to build fast, scalable applications, and the productivity to build them quickly.
Power comes from Cache’s multidimensional data engine. All Cache data is stored in super-efficient multidimensional arrays. Not only are these arrays ideal for storing complex, real-world data, but accessing them is fast. Blazingly fast. That’s why Cache-based applications can scale up to many thousands of users without sacrificing performance.
Productivity comes from open data access. Different technologies excel at different tasks. Object technology is good for modeling complex data and for Web compatibility. Relational technology is favored for data analysis and reporting. Plus, developers work best when they can use familiar tools. Cache’s open and seamless data access is designed to let developers use the appropriate tool – and technology – for the job. If that job includes some Web development (and it probably does) Cache further enables productivity with its Cache Server Pages technology.
4. Multidimensional Data Engine
One key element of Cache’s outstanding performance and scalability is its multidimensional data server, optimized for transaction processing.
“Multidimensional” means that data can be indexed by as many parameters as needed – it is not constrained to fit into rows and columns. This allows for much richer data models than can be achieved using relational technology. Complex data can be stored and used in a much more natural way.
Relational databases have a difficult time representing complex data because they break up information so that it fits into flat, two-dimensional tables. When relational technology is used to describe real-world data, tables pile upon tables and sub-tables, and a great deal of processing is required to “reassemble” the information needed to complete transactions.
Multidimensional data does not have to be “reassembled” from its component parts. The Cache multidimensional data server eliminates the processing overhead associated with relational technology, resulting in a significant boost in transactional application speed.
5. Open Data Access.
Developers will be most productive when they can use tools and technologies that are familiar to them. That is why, although all Cache data are stored in multidimensional arrays, Cache allows that data to be accessed in a variety of ways. All data access modes may be used concurrently with the same data.
6. Unified Data Architecture
By virtue of Cache’s Unified Data Architecture, all data are automatically accessible as both objects and tables. This unique technology means that there is never a need to “map” from one form to the other, and no processing overhead required to convert between forms. The Unified Data Architecture increases both productivity and performance.
Faster SQL Access for Relational Connectivity
Cache’s SQL data access makes Cache data available to the myriad of applications that use SQL as their query language. Not only that, but SQL queries run faster against Cache’s efficient multidimensional data engine. In addition, the Cache SQL Gateway allows Cache applications to access data stored in relational databases – very useful when there is a need to integrate data from a variety of sources.
Object Access for Developer Productivity
These days, virtually all new application development is done using object modeling techniques. Objects bundle information and behavior (i.e., how the information is used) together in a sensible, intuitive way. Developers can create and use human-centric data structures: “Customer”, “Invoice”, “Book”, etc., which can be much more complex and rich than mere strings, integers, or other computer-centric data types. In addition, objects are modular, with well-defined interfaces. Thus, they are reusable and can be shared between applications (for example, a “Customer” object might be common to many different applications) resulting in significant productivity gains.
These productivity gains are why so many modern development tools and technologies are object-based. Cache supports a full range of object modeling concepts, and can expose Cache objects as Java, ActiveX, or C++ objects, boosting productivity by allowing developers to use familiar tools. Cache Objects are also compatible with CORBA and XML.
Multidimensional Access for Maximum Control
Multidimensional data access gives developers complete control of how data is stored in Cache. It is particularly useful for transaction processing applications that must integrate data from other multidimensional data stores.
7. Cache and XML
Cache is an excellent match for XML, which is fast becoming a favored method for sharing data between applications. You can use Cache objects as a direct representation of XML documents and vice versa. Cache offers the following capabilities:
- Cache classes can automatically project themselves as XML documents which can be served either as files or as on-line content. Cache classes can also automatically create their own XML DTD (document type definition) files.
- XML documents can automatically be transformed into an equivalent Cache object. Incoming XML can be read from files, streams, or HTTP requests. Cache can validate any incoming XML defined using industry-standard XML DTD.
- Cache’s XML support can be customized to fit the special needs of your applications.
8. Cache’s Security Model
Cache has a modern security model, designed to support application development in three ways:
- By securing the Cache environment itself.
- By making it easy for developers to build security features into their applications.
- By ensuring that Cache works effectively with – and does not compromise – the security technologies of the operating environment.
Cache provides these security capabilities while minimizing the burden on application performance.
Privileges: Cache’s security features work by controlling access to Cache resources: data, programs, services, utilities, etc. Privileges (such as READ, WRITE, or DELETE privileges) can be assigned in several ways:
Users: Privileges (permission to use various resources) are assigned to users or applications. A “user” is not necessarily a human being. It could, for example, be a measurement device generating data to be stored in Cache, an application, or another Cache system.
Roles: Privileges can be grouped into roles, and roles assigned to users. This makes it easier to manage privileges.
Applications: If permission to use certain resources is assigned to applications, then it is not necessary to grant those privileges to individual users. Instead, users are allowed to run the appropriate applications. In addition to being more secure (users cannot directly access Cache resources), this makes it easier to manage privileges.
The assignation and management of privileges is performed through the Cache Management Portal.
Authentication: Cache supports various levels of authentication, ranging from none, to the use of passwords, to the use of the Kerberos protocol to authenticate the identity of users. Kerberos provides very strong authentication, and has the advantages of being fast, scalable, and easy to use. With Kerberos, passwords are never transmitted over the network, which provides an extra measure of security.
Cache supports the implementation of a single sign-on.
Database Encryption: Cache enables database encryption (the encryption of data-at-rest) with minimal effect on application performance. Developers can mark which databases, or even which blocks of data within a database, they wish to encrypt. In Cache, databases are encrypted at the data level, so all data and indexes are secured.
By default, Cache encrypts data with an implementation of the Advanced Encryption Standard (AES), a symmetric algorithm that supports keys of 128, 192, or 256 bits. Encryption keys are stored in a protected memory location. Cache provides full capabilities for key management.
Auditing: Many applications, especially those that must comply with government regulations like HIPPA or Sarbanes-Oxley, need to provide some sort of secure auditing. In Cache, all system and application events are recorded in an append-only log, which is compatible with any query or reporting tool that uses SQL.