12.07.2015 Views

VisiBroker Edition

VisiBroker Edition

VisiBroker Edition

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

使 用 服 务 激 活 方 法服 务 的 延 迟 对 象 激 活 实 例以 下 几 节 描 述 服 务 激 活 的 odb 实 例 , 该 实 例 位 于 您 的 <strong>VisiBroker</strong> <strong>Edition</strong> 安 装 的examples/boa/odb 目 录 下 。 实 例 目 录 包 含 以 下 文 件 :表 31.1用 于 服 务 激 活 的 odb 实 例 中 包 含 的 文 件名 称odb.idlServer.C (C++)Server.java (Java)Creator.C (C++)Creator.java (Java)Client.C (C++)Client.java (Java)Makefile说 明DB 和 DBObject 界 面 的 IDL使 用 服 务 激 活 器 创 建 对 象 , 返 回 对 象 的 IOR,并 去 激 活 对 象 。调 用 DB 界 面 创 建 100 个 对 象 并 将 生 成 的 字串 化 对 象 引 用 存 储 在 一 个 文 件 (objref.out)中 。从 一 个 文 件 中 读 取 对 象 的 字 串 化 对 象 引 用 , 并调 用 这 些 引 用 , 让 服 务 器 中 的 激 活 器 创 建 对象 。当 在 odb 子 目 录 下 调 用 make 或 nmake ( 在Windows 上 ) 时 , 构 建 以 下 的 客 户 和 服 务 器程 序 :Server.exe (C++) 或 Server(Java); Creator.exe (c++) 或 Creator(Java); Client.exe (C++) 或 Client(Java)odb 实 例 说 明 单 个 服 务 如 何 创 建 任 意 数 量 的 对 象 。 服 务 单 独 在 BOA 上 注 册 , 而 不是 每 个 对 象 在 BOA 上 注 册 , 每 个 对 象 的 引 用 数 据 存 储 为 IOR 的 一 部 分 。 这 有 利于 面 向 对 象 的 数 据 库 (OODB) 集 成 , 因 为 您 可 以 将 对 象 关 键 字 存 储 为 对 象 引 用的 一 部 分 。 当 一 个 客 户 请 求 尚 未 创 建 的 对 象 时 , BOA 调 用 一 个 用 户 定 义 的Activator。 然 后 , 应 用 会 从 永 久 存 储 库 中 载 入 相 应 的 对 象 。在 本 实 例 中 , 我 们 创 建 了 一 个 Activator , 它 负 责 激 活 和 去 激 活 命 名 为"DBService" 的 服 务 的 对 象 。 由 该 Activator 创 建 的 对 象 引 用 包 含 足 够 的 信 息 , 使<strong>VisiBroker</strong> ORB 可 以 重 新 定 位 DBService 服 务 的 Activator, 并 可 以 使 Activator根 据 要 求 重 建 这 些 对 象 。DBService 服 务 负 责 用 于 实 现 DBObject 界 面 的 对 象 。 我 们 提 供 了 一 个 可 以 允 许 人 工创 建 这 些 对 象 的 界 面 ( 包 含 在 odb.idl)。odb.idl 界 面odb.idl 界 面 允 许 人 工 创 建 实 现 DBObject odb 界 面 的 对 象 。interface DBObject {string get_name();};typedef sequence DBObjectSequence;interface DB {DBObject create_object(in string name);};DBObject 界 面 表 示 由 DB 界 面 创 建 的 对 象 , 可 以 被 视 为 一 个 服 务 对 象 。31-4 <strong>VisiBroker</strong> 开 发 者 指 南

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!