Caché Objects | 第一章 | 简介

目录

  • 一、Caché 对象结构
  • 二、类定义和类字典
    • 2.1 创建类定义
    • 2.2 类字典
  • 三、Caché 类库

Caché Objects 技术为应用程序开发人员提供了轻松创建高性能、基于对象的数据库应用程序的方法。其功能包括:

  • 一个功能强大的对象模型,包括继承、属性、方法、集合、关系、用户定义的数据类型和流。
  • 一种灵活的对象持久化机制,允许将对象存储在本机 Caché 数据库以及外部关系数据库中。
  • 控制持久类的数据库方面,包括索引、约束和引用完整性。
  • 一个易于使用的事务和并发模型,包括通过导航加载对象的功能 - 只需引用一个对象就可以将其从数据库“旋转”到内存中。
  • 通过 Caché 统一数据架构与 Caché SQL 自动集成。
  • 与 Java、C++ 和 ActiveX 的互操作性。
  • 自动 XML 支持。
  • 功能强大的多用户对象开发环境:Studio。

您可以通过多种方式使用 Caché 对象,包括:

  • 定义事务处理应用程序的数据库和/或业务组件。
  • 使用 Caché Server Pages 创建基于 Web 的用户界面。
  • 定义可从 ODBC 或 JDBC 调用的基于对象的存储过程。
  • 提供对旧应用程序的对象/关系访问。

一、Caché 对象结构

Caché 对象技术包含以下主要组件:

  • 类字典(class dictionary) :类定义(通常称为元数据)的存储库,每个定义都描述一个特定的类。此存储库存储在 Caché 数据库中。Caché SQL 引擎也使用类字典,负责维护对 Caché 数据的同步对象和关系访问。
  • 类编译器(class compiler) : 一组将类定义转换为可执行代码的程序。
  • 对象运行时系统(object runtime system ) :Caché 虚拟机中内置的一组功能,用于支持正在运行的程序中的对象操作(例如对象实例化、方法调用和多态性)。
  • Caché 类库(Caché class library) : 每个 Caché 安装附带的一组预构建类。这包括用于为用户定义的类(如持久性或数据类型)提供行为的类,以及旨在在应用程序中直接使用的类(如电子邮件类)。
  • 各种语言绑定(language bindings ) : 代码生成器和运行时组件的组合,提供对 Caché 对象的外部访问。这些绑定包括 Caché Java 绑定、Caché ActiveX 绑定和 Caché C++ 绑定。
  • 各种网关(gateways) : 服务器端组件,使 Caché 对象能够访问外部系统。这些网关包括 Caché SQL 网关和 Caché Activate ActiveX 网关。

二、类定义和类字典

每个类都有一个定义,该定义指定它包含的成员(属性、方法等)以及类范围的特征(如超类)。这些定义包含在类字典中,而类字典本身存储在 Caché 数据库中。

2.1 创建类定义

可以通过多种方式创建类定义

  • 使用 Studio。使用 Caché 类定义的主要方法是使用 Studio 开发环境。
  • 使用 XML。类定义具有基于 XML 的外部表示形式。通常,此格式用于在外部存储类定义(例如在源代码管理系统中)、部署应用程序或仅用于共享代码。您还可以通过简单地生成相应的 XML 类定义文件并将其加载到 Caché 系统中,以编程方式创建新的类定义。
  • 使用 API。Caché 包括一组类定义类,这些类提供对类字典的对象访问。您可以使用它们来观察、修改和创建类定义。
  • 使用 SQL DDL。DDL 语句定义的任何关系表都会自动转换为等效的类定义,并放置在类字典中。

2.2 类字典

每个 Caché 命名空间都包含自己的类字典,用于定义该命名空间的可用类。有一个特殊的“CACHELIB”数据库,作为 Caché 的一部分安装,其中包含 Caché 类库的类的定义和可执行代码。这些类称为系统类,它们都是名称以“%”字符开头的包的一部分,例如 %Library.Persistent(%Library 可以缩写,因此 %String%Library.String 的缩写)。

每个 Caché 命名空间都会自动配置,以便其类字典除了包含自己的类外,还可以访问 CACHELIB 数据库中的系统类定义和代码。通过这种机制,所有命名空间都可以直接使用 Caché 类库中的类。

类字典包含两种不同类型的数据:

  • 定义数据 — 用户创建的实际类定义。
  • 编译数据 — 由于编译类定义而生成的数据也会被存储。此数据包括继承解析的结果;也就是说,它列出了给定类的所有已定义和继承的成员。类编译器使用它来使其他编译更有效率;应用程序还可以使用它(通过适当的接口)来获取有关类成员的运行时信息。

类字典将其数据存储在一组全局变量(持久数组)中,其名称以 ^odd 开头。这些数组的结构可能会随着新版本的 Caché 而改变,因此应用程序不应直接观察或修改这些结构。

三、Caché 类库

Caché 类库包含一组预生成的类。它会自动安装在 CACHELIB 数据库中的每个 Caché 系统中。您可以使用 Caché 提供的在线类文档系统查看 Caché 类库的内容。

Caché 类库包含许多包,每个包都包含一系列类。其中一些是内部的,Caché 对象将它们用作其实现的一部分。其他类提供专为在应用程序中使用的功能而设计的功能。

Caché 类库中的主要包如下:

Package 描述
%Activate Caché Activate ActiveX 网关使用的类。请参见使用 Caché ActiveX 网关。
%Compiler 类编译器使用的内部类。
%CSP Caché 服务器页面(Caché Server Pages)使用的类。请参见使用 Caché 服务器页面 (CSP)
%csr 一组生成的内部类,用于实现标准 CSP 规则。
%Library Caché“行为”类的核心集合(例如 %Persistent)。还包括各种数据类型、集合和流类。
%Net 一组类,提供各种与 Internet 相关的功能(如电子邮件、HTTP 请求等)。请参阅使用 Caché Internet Utilities
%Projection 一组投影类,用于为用户类生成客户端代码。请参阅“类投影”一章。
%SOAP 可用于在 Caché 中创建 Web 服务和 Web 客户端的类。请参见在 Caché 中创建 Web 服务和 Web 客户端。
%SQL Caché SQL 使用的内部类。
%Studio 工作室使用的内部类。
%SYSTEM 可通过$System特殊变量访问的各种系统 API 类。
%XML 用于在 Caché 中提供 XML 和 SAX 支持的类。有关信息,请参见将对象投影到 XML 和使用 Caché XML 工具。

你可能感兴趣的:(Caché,Objects,Caché,Caché,Objects)