Microsoft Word - Java卡调试平台设计与实现



Similar documents
Total Internet Connectivity in a Single Chip

Microsoft Word - A doc

電機工程系認可證照清單 /7/1

Microsoft Word - A _ doc

Landscape Theory & Study 17

目次 

IP TCP/IP PC OS µclinux MPEG4 Blackfin DSP MPEG4 IP UDP Winsock I/O DirectShow Filter DirectShow MPEG4 µclinux TCP/IP IP COM, DirectShow I

100Mbps 100Mbps 1000Mbps 100Mbps 1000Mbps 100Mbps 100Mbps PD LXT Mbps 100Mbps 100Mbps 1

CH01.indd

<4D F736F F D C2E0BEC7A6D2A4ADB14DB0EAA4E52DB8D5C344A8F72E646F63>

Java 1 Java String Date

标题

/ 理 论 研 讨 /Theoretical Discussion 的 样 子 其 次, 残 疾 人 有 接 受 教 育 的 能 力 据 专 家 介 绍, 一 个 人 除 非 是 植 物 人, 都 有 学 习 和 劳 动 的 能 力, 这 是 人 与 生 俱 来 的 天 性 前 些 年, 香 港 理

陶艳.doc

(procedure-oriented)?? 2

<4D F736F F F696E74202D20C8EDBCFEBCDCB9B9CAA6D1D0D0DEBDB2D7F92E707074>

中国科技论文在线中文稿件模板

從詩歌的鑒賞談生命價值的建構

附件9 电梯运行安全监测管理信息平台技术规范 第11部分:系统信息安全技术规范(征求意见稿)

財金資訊-84期.indd

untitled

. 1 4 Web PAD

Microsoft Word - 贺小凤,王国胜.doc

Microsoft Word doc

经华名家讲堂

XML SOAP DOM B2B B/S B2B B2B XML SOAP

Microsoft Word - SWRH-B series of Shielded SMD Power Inductor.doc

普 卡 : 賠 償 金 額 實 支 實 付 最 高 以 新 台 幣 柒 仟 元 整 為 限 ( 持 卡 人 及 家 屬 實 支 實 付 合 計 最 高 以 新 台 幣 壹 萬 肆 仟 元 整 為 限 ) 2. 行 李 延 誤 ( 六 ~ 二 十 四 小 時 ) 被 保 險 人 於 其 所 搭 乘 之

基于CDIO一体化理念的课程教学大纲设计

Shanghai International Studies University THE STUDY AND PRACTICE OF SITUATIONAL LANGUAGE TEACHING OF ADVERB AT BEGINNING AND INTERMEDIATE LEVEL A Thes

A VALIDATION STUDY OF THE ACHIEVEMENT TEST OF TEACHING CHINESE AS THE SECOND LANGUAGE by Chen Wei A Thesis Submitted to the Graduate School and Colleg

北 京 师 范 大 学 庆 祝 抗 日 战 争 胜 利 70 周 年 暨 纪 念 12.9 运 动 80 周 年 歌 咏 比 赛 掠 影 党 委 书 记 刘 川 生 指 挥 唱 校 歌 党 委 书 记 刘 川 生 分 别 为 获 得 一 等 奖 和 获 得 精 神 风 貌 奖 单 位 颁 奖 党 委

ebook

Learning Java

% GIS / / Fig. 1 Characteristics of flood disaster variation in suburbs of Shang

Sian L.Yen , 1980 Sian L.Yen


g 100mv /g 0. 5 ~ 5kHz 1 YSV8116 DASP 1 N 2. 2 [ M] { x } + [ C] { x } + [ K]{ x } = { f t } 1 M C K 3 M C K f t x t 1 [ H( ω )] = - ω 2

案例正文:(幼圆、小三、加粗)(全文段前与段后0

具有多个输入 特别是多个输出的 部门 或 单位 ( 称为 决策单元 Decision Making Unit 简称 DMU) 间的相对有效 8 性 C2R 模型是 DEA 的个模型 也是 DEA 的基础 和重要模型 假设有 n 个决策单元 DMUj( j = n) 每个 DMU 有 m

2 第 章 绪 论 Internet 2.0 使 得 消 费 型 电 子 产 品 用 户 可 以 通 过 多 种 不 同 的 数 据 网 络 访 问 互 联 网 内 容 用 户 可 以 使 用 便 携 式 消 费 型 电 子 设 备, 如 智 能 手 机 触 屏 平 板 电 脑 电 子 书, 甚 至

給 訪 問 員 的 話 親 愛 的 訪 問 員 您 好 : 首 先 歡 迎 您 參 加 本 次 原 住 民 族 就 業 狀 況 家 戶 訪 問 工 作 調 查 訪 問 工 作 就 好 比 自 然 科 學 領 域 裡 的 實 驗 工 作 一 樣, 是 經 驗 研 究 裡 最 基 礎 的 工 作, 對

UDC Empirical Researches on Pricing of Corporate Bonds with Macro Factors 厦门大学博硕士论文摘要库

0896-电力信息与系统通信-02期.indb

通 过 厂 变 带 电, 这 种 设 计 减 少 了 机 组 自 带 厂 用 电 负 荷 能 力, 降 低 了 锅 炉 满 足 FCB 时 最 低 稳 燃 工 况, 同 时 造 成 燃 烧 调 整 量 加 大 本 电 厂 在 FCB 试 验 时, 电 泵 不 联 启, 始 终 保 持 汽 泵 运 行

92


<4D F736F F D20312D3120D5D0B9C9CBB5C3F7CAE9A3A8C9EAB1A8B8E5A3A9>

背 景 概 述 企 业 需 要 一 种 灵 活 的 平 台 来 快 速 构 建 测 试 和 扩 展 新 的 应 用 程 序 服 务 并 对 市 场 中 发 生 的 数 字 化 变 革 作 出 反 应 数 字 化 变 革 正 在 加 快 步 伐, 因 为 流 程 和 信 息 的 日 益 融 合 带 来

Microsoft Word 谢雯雯.doc


WebST 3.0管理员手册

m 3 /a t /a m 3 /a t /a 4 t 6 t 8 t t 10 t 8 t 3

表 2 电 缆 导 体 主 要 技 参 数 表 警, 切 断 高 压 输 出 ; 8) 短 路 保 护 : 当 传 输 线 路 中, 某 处 电 缆 的 正 极 与 负 极 短 接 时, 为 了 保 证 设 备 和 线 路 的 安 全, 系 统 告 警, 切 断 高 压 输 出 ; 9) 漏 电 保

epub 30-12

目 录

Microsoft Word _Java_術科 .doc

/ / /

《中文信息学报》投稿模版

Java手機遊戲—菊島歷險記

27 :OPC 45 [4] (Automation Interface Standard), (Costom Interface Standard), OPC 2,,, VB Delphi OPC, OPC C++, OPC OPC OPC, [1] 1 OPC 1.1 OPC OPC(OLE f

170 中 南 大 学 学 报 ( 社 会 科 学 版 ) 2012 年 第 18 卷 第 4 期 周 末 九 鼎 沦, 必 以 亡. 者 为 神, 三 山 九 鼎 有 知 也? 或 时 吏 知 怨 家 之 谋, 窃 举 持 亡, 惧 怨 家 怨 己, 云 自 去 凡 人 能 亡., 足 能 步 行

Microsoft PowerPoint - 数据通信-ch1.ppt

Cloudy computing forEducation

symmetrical cutting patterns with various materials for visual designing; ii. This part combined costumes, bags and oilpaper umbrellas with the tradit

Transcription:

Java 卡 调 试 平 台 设 计 与 实 现 刘 剑 周 晓 光 ( 北 京 邮 电 大 学 自 动 化 学 院 北 京 100876) 摘 要 : 从 Java 语 言 源 代 码 级 调 试 的 一 般 性 原 理 入 手, 经 过 对 Java 卡 调 试 协 议 规 范 和 Java 调 试 规 范 的 深 入 分 析 和 对 Java 虚 拟 机 工 作 原 理 的 了 解, 模 仿 Java 平 台 调 试 体 系 设 计 出 一 个 合 理 的 Java 卡 调 试 平 台 的 设 计 方 案 并 且 文 章 还 给 出 了 设 计 实 现 调 试 软 件 设 计 的 要 点, 包 括 run-to-line 获 取 变 量 值 等 功 能 最 终 的 实 验 测 试 表 明, 该 调 试 设 计 方 案 是 可 行 的 关 键 词 :Java 卡 调 试 规 范 Java 调 试 规 范 Java 虚 拟 机 Java 平 台 调 试 体 系 设 Java 卡 调 试 平 台 The Design And Achievement Of Java Card Debug Platform LiuJian Zhou Xiaoguang (Beijing University of Posts and Telecommunication, Beijing 100876 ) Abstract: The paper deep analyzes Java Card Debug Protocol Specifications and Java Debug wire Protocol and understands the principle of work of Java virtual machine,using Java language,imitating Java Platform Debugger Architecture presents reasonable debugger architecture for Java Card debug tool. Furthermore, the paper also gives the details about the key points involved in the imp lementation of the debugger, including the function of run-to-line watching the values of variables and so on, the results of testing show that this debugger architecture is feasible. Keywords:Java Card Debug Protocol Specification Java Debug Wire Protocol Java Card Vitual Machine Java Platform Debugger Architecture Java Card Debugger Platform 1 引 言 [1] 随 着 Java 卡 地 越 来 越 智 能,Java 卡 的 优 点 越 来 越 被 人 认 可, 应 用 范 围 也 越 来 越 广 泛, 从 而 使 得 越 来 越 多 的 商 家 开 发 生 产 Java 卡 然 而 与 这 相 矛 盾 的 是 :Java 卡 的 开 发 调 试 确 实 一 个 漫 长 而 复 杂 的 过 程, 并 且 目 前 的 JPDA [2] 并 不 适 用 于 JCPDA(Java 卡 平 台 调 试 体 系 ), 因 此 设 计 开 发 一 个 新 的 JCPDA 是 必 要 的 利 用 新 的 JCPDA 解 析 处 理 来 自 Debugger Card 和 Terminal Application 信 息, 完 成 对 java 卡 上 applet [1] 的 调 试 JCPDA 是 一 个 基 于 JDWP [3] (JAVA DEBUG WIRE PROTOCOLS) 1

JCDPS [4] (JAVA CARD DEBUG PROTOCOL SPECIFICATION) 和 SUN_JC2.2.1-VirtualMachine [5] 等 协 议 且 遵 循 GEMCORE V1.1-BASED READER PROTOCOLS [6] 或 TLP224 [6] 协 议 中 规 定 的 命 令 格 式 设 计 开 发 出 的 Java 卡 平 台 调 试 体 系 它 弥 补 了 我 们 无 法 用 直 接 使 用 JVM [7] 调 试 Java Applet 的 不 足, 且 在 此 基 础 上 还 增 加 了 接 收 并 处 理 来 自 Terminal Application(Eclipse Ucard Snooper) 发 送 的 命 令, 并 将 命 令 转 发 给 卡 片 或 JDI(Java Debugger Interface) 2 JCPDA 概 述 JCPDA 主 要 采 用 代 理 模 式 [8], 如 图 1 所 示 在 图 中, 我 们 可 以 清 晰 的 看 出 JCPDA 主 要 有 四 个 功 能 模 块 和 一 个 Agent 四 个 功 能 模 块 分 别 为 MY_JPDA( 与 Debugger 相 互 通 信 模 块 ), 用 于 实 现 Java 卡 调 试 软 件 中 所 需 要 的 JVM 扮 演 的 角 色 的 功 能, 主 要 用 于 管 理 对 Applet 程 序 调 试 的 工 作 ; 与 Terminal Application 相 互 相 应 的 模 块, 即 应 用 代 理, 主 要 用 于 接 收 Java 卡 调 试 人 员 利 用 终 端 应 用 设 备 发 送 过 来 的 命 令, 并 将 命 令 解 析 再 转 发 给 Card Reader 或 Debugger; 解 析 Applet.jar 的 功 能 模 块, 即 jar [5] 包 解 析, 主 要 用 于 获 得 调 试 Java 卡 上 Applet 时 所 必 须 的 关 于 Applet 的 信 息 ; 与 Card Reader 相 互 通 信 的 模 块, 即 MY_JCDI( 我 的 java card 调 试 接 口 ), 主 要 用 于 与 Card 相 互 作 用 实 现 对 卡 片 状 态 或 行 为 的 控 制 Agent 主 要 负 责 整 个 JCPDA 中 模 块 间 的 相 互 协 作, 以 及 在 公 共 变 量 的 管 理 等 工 作 图 1 JCPDA 调 试 体 系 模 型 图 3 设 计 原 理 根 据 Java 卡 调 试 软 件 所 要 实 现 的 功 能 以 及 在 整 个 软 件 架 构 中 所 处 的 位 置, 决 定 采 用 代 理 模 式 的 设 计 模 式 代 理 模 式 是 一 种 结 构 型 设 计 模 式, 一 种 典 型 的 调 试 体 系 结 构, 著 名 的 JPDA(Java 平 台 调 试 体 系 ) 结 构 即 采 用 了 该 模 式 其 中, 调 试 的 目 标 环 境 是 Applet 的 运 行 时 环 境, 即 eclipse 调 试 的 服 务 器 是 JVM, 用 于 执 行 Java [9] 程 序 ( 因 该 调 试 软 件 为 Java 语 言 实 现 的 ); 调 试 客 户 端 是 终 端 应 用, [10] 如 Ucard eclipse 等, 最 终 将 该 调 试 软 件 以 Eclipse 插 件 的 形 式 应 用 在 Eclipse 2

中 4 实 现 细 节 下 面 我 们 将 借 助 一 个 基 于 Eclipse Debug 插 件 中 的 run-to-line 功 能 来 重 点 说 明 JCPDA 四 个 功 能 模 块 的 实 现 及 他 们 之 间 的 相 互 交 互 虽 然 这 只 是 一 个 功 能 实 例, 但 却 几 乎 涉 及 到 了 调 试 软 件 工 作 的 方 方 面 面 4.1 MY_JPDA: 与 (JDI)Debugger 通 信 的 模 块 这 一 模 块 在 整 个 JCPDA 中 功 能 类 似 于 一 个 标 准 的 JPDA 中 的 JVMTI 层 和 JDWP 层 的 功 能, 由 于 我 们 最 终 是 要 将 这 款 调 试 软 件 以 插 件 的 形 式 放 置 到 Eclipse 中, 借 助 于 Eclipse 中 的 Debug 插 件 来 实 现 JDI 角 色 部 分 的 功 能, 所 以 我 们 的 JCPDA 中 的 JDI 层 与 MY_JVMTI 之 间 的 通 信 仍 然 是 基 于 标 准 的 JDWP 协 议, 因 此 我 们 的 JCPDA 中 的 MY_JVMTI 层 要 能 够 实 现 对 JDWP 协 议 的 解 析, 但 和 标 准 的 JDI 层 与 JVMTI 层 基 于 JDWP 协 议 通 信 不 同 的 是, 我 们 对 JDWP 协 议 的 解 析 采 用 单 线 程 按 顺 序 解 析 来 自 JDI 层 的 命 令 ( 即 执 行 完 当 前 命 令 之 前 不 会 接 收 下 一 条 命 令 ) 其 模 型 层 次 如 下 图 所 示 : 图 2 JPDA 模 型 层 次 其 中, 在 实 现 run-to-line 功 能 过 程 中, 这 一 次 主 要 要 完 成 打 断 点 step_run 删 除 断 点 等 命 令 的 任 务 即 Debugger 向 JVMTI 发 送 上 述 三 个 命 令, 但 要 想 完 成 上 述 任 务 还 需 要 与 MY_JCDI 和 jar 包 解 析 模 块 的 帮 助 才 能 真 正 完 成 任 务 4.2 应 用 代 理 : 与 Terminal Application 通 信 的 模 块 这 一 层 我 们 采 用 基 于 TLP-224 协 议 的 通 信 格 式, 调 试 软 件 将 接 收 到 命 令 分 解 为 header 和 data 两 部 分 以 备 响 应 来 自 卡 片 端 IO_RECEIVE_HEADER 和 IO_RECEIVE_BYTES 的 命 令, 当 和 与 (JDI)Debugger 通 信 的 模 块 一 样, 这 一 功 能 模 块 我 们 也 将 采 用 单 线 程 的 方 式 完 成 调 试 软 件 与 Terminal Application 的 相 互 交 互 这 一 模 块 在 实 现 run-to-line 功 能 过 程 中 主 要 完 成 选 中 被 调 试 的 Applet 程 序 的 功 能 4.3 jar 包 解 析 : 解 析 Applet.jar 的 功 能 模 块 3

此 模 块 是 利 用 IO 流 将 Applet.jar 包 根 据 Sun 公 司 关 于 JavaCard 虚 拟 机 规 范 中 关 于 Cap 文 件 格 式 的 部 分, 将 Applet.jar 解 析, 然 后 将 信 息 交 给 Agent 管 理, 以 准 备 我 们 在 调 试 Applet 时 所 须 要 的 信 息 其 中 解 析 Applet.jar 时, 调 试 软 件 主 要 解 析 jar 包 中 的 header.cap 和 debug.cap 两 个 cap 文 件 header.cap 文 件 中 包 含 我 们 需 要 的 packageid, 此 packageid 是 用 于 区 分 Java 卡 上 各 个 Applet 所 在 的 package 且 我 们 利 用 packageid 从 卡 上 获 得 调 试 Applet 时 所 须 要 的 classcomponentid 等 必 需 的 信 息 debug.cap 文 件 包 含 了 调 试 Applet 时 的 几 所 所 有 必 须 的 信 息, 如 Applet 类 的 名 字, 此 Applet 类 在 卡 中 的 相 对 位 置 等, 这 些 都 是 调 试 Applet 时 的 必 须 信 息 在 实 现 run-to-line 功 能 过 程 中, 此 模 块 为 我 们 提 供 了 Applet 的 所 有 必 要 信 息 4.4 MY_JCDI: 与 Card Reader 相 互 通 信 的 模 块 由 于 Java 卡 是 有 状 态 的, 且 其 在 不 同 的 状 态 时, 只 能 接 收 特 定 的 命 令 或 返 回 特 定 的 信 息, 因 此, 我 们 首 先 要 了 解 Java 卡 的 状 态 如 下 图 示 : 图 3 卡 片 状 态 图 图 3 中 / 左 边 的 字 符 表 示 命 令, 右 边 的 为 响 应 由 图 中, 我 们 可 以 看 出 当 卡 片 接 收 到 命 令 或 返 回 响 应 信 息 时 会 改 变 它 的 状 态, 圆 角 方 框 中 字 符 表 示 卡 片 正 在 等 待 来 自 调 试 软 件 的 命 令 时 的 状 态 这 一 功 能 模 块 是 整 个 JCPDA 中 最 重 要 最 关 键 的 一 块, 因 为 我 们 对 JavaCard 调 试 的 整 个 过 程 都 需 要 也 必 须 通 过 这 一 模 块 完 成, 如 对 Applet 程 序 的 某 一 行 打 断 点 查 看 程 序 中 的 某 变 量 值 信 息 以 及 处 理 来 自 Terminal Application 的 命 令 等 功 能 此 模 块 基 于 JCDP, 与 卡 之 间 相 互 发 送 符 合 IOS7816 规 定 的 APDUs(Application Protocol Data Unit 应 用 协 议 数 据 单 元 ) 或 DPDUs(Debugging Protocol Data Unit, 每 个 APDU 可 以 被 分 解 转 换 成 调 试 协 议 数 据 单 元 在 调 试 软 件 与 卡 之 间 交 互, 其 实 DPDU 就 是 APDU, 只 是 在 卡 处 于 调 试 挂 起 状 态 时, 即 图 3 中 的 suspended 状 态, 只 能 接 收 DPDUs), 以 完 成 与 卡 之 间 的 交 互 该 模 块 也 是 采 用 单 线 程 的 模 式 来 解 析 处 理 MY_JCDI 与 卡 片 之 间 的 命 令 的 在 实 现 run-to-line 功 能 过 程 中,MY_JCDI 主 要 完 成 处 理 由 Agent 解 析 的 来 自 JDI 的 命 令, 即 真 正 4

的 在 卡 上 完 成 打 断 点, 运 行 至 断 点 处 取 消 断 点 功 能 图 4 为 实 现 run-to-line 功 能 的 时 序 图, 在 图 中 我 们 可 以 清 晰 的 看 出 在 实 现 这 一 功 能 过 程 中, 调 试 软 件 是 如 何 与 Debugger 和 Card 相 互 交 互, 以 完 成 这 一 任 务 的 图 4 时 序 图 Watch 功 能 Watch 是 查 看 变 量 值 的 一 种 调 试 手 段, 以 下 是 查 看 Applet 中 当 前 对 象 静 态 成 员 的 过 程 的 命 令 组 合, 实 现 该 功 能 主 要 由 JCPDA 中 MY_JPDA 和 jar 包 解 析 两 个 模 块 完 成 jar 包 解 析 模 块, 从 jar 包 获 得 该 静 态 成 员 的 值 并 将 该 值 交 给 Agent 管 理, 而 JCPDA 则 主 要 完 成 与 JDI 之 间 的 交 互 : 图 5 命 令 组 合 图 5 中 我 们 给 出 了 完 成 查 看 功 能 时 JCPDA 与 JDI 之 间 交 互 的 几 个 主 要 命 令, 其 中 步 骤 3 是 由 Agent 直 接 将 从 jar 中 获 得 的 该 静 态 成 员 变 量 的 值 返 回 给 JDI, 但 是 如 果 是 查 看 其 他 非 静 态 变 量 值, 我 们 必 须 还 要 借 助 MY_JCDI 模 块 来 从 卡 上 获 5

取 变 量 值, 此 处 不 再 赘 述 4.5 Eclipse 插 件 最 终 我 们 将 该 调 试 平 台 以 插 件 的 形 式 嵌 入 Eclipse 中, 但 如 何 将 该 平 台 制 作 成 Eclipse 插 件 不 是 本 文 讨 论 的 重 点, 所 以 我 们 将 不 再 赘 述 5 总 结 文 章 给 出 了 Java 卡 平 台 调 试 体 系 的 设 计 过 程 和 实 施 过 程 中 的 关 键 细 节, 是 调 试 体 系 规 范 制 定 和 调 试 平 台 实 施 的 一 个 参 考 这 个 研 究 方 法 也 适 用 于 所 有 的 Java 系 列 平 台, 对 于 其 他 语 言 的 调 试 体 系 研 究 也 有 很 大 的 参 考 价 值 笔 者 的 实 践 证 实 了 方 案 是 可 行 的 参 考 文 献 [1] 张 大 伟 Java 智 能 卡 原 理 与 应 用 开 发 [Z]. 北 京. 电 子 工 业 出 版 社. 2008 年 5 月 [2] 邱 小 侠, 吕 晶. JPDA 体 系 概 览 [Z]. http://www.ibm.com/developerworks/cn/java/j-lo-jpda1/?s_tact=105agx52&s_cmp=te c-csdn[eb/ol]. 2008-09-03 [3] Sun Microsystems, Inc. Java TM Debug Wire Protocol[EB/OL]. http://java.sun.com/j2se/1.3/docs/guide/jpda/jdwp-spec.html.2009-03-01 [4] Alexandre Frey. Java Card Debug Protocol Specification[Z]. 2001-09 [5] Sun Microsystems, Inc. Java Card TM Specification[Z]. Sun Microsystems, Inc.2003. [6] GEMPLUS.GemCore V1.10-Based Reader Reference Manual[Z]. GEMPLUS.1999 [7] JVM. http://baike.baidu.com/view/374952.htm[eb/ol]. 2009-07 [8] 阎 宏. Java 与 模 式 [Z]. 电 子 工 业 出 版 社. 2007-03. [9] Bruce Eckel. Java 编 程 思 想 [Z]. 机 械 工 业 出 版 社. 2007.06 [10] Eric Clayberg, DanRubel. Eclipse 插 件 开 发 [Z]. 人 民 邮 电 出 版 社. 2006-10 6