对于TOB的分布式访问支持, 原来总是从分布的TOB实例出发考虑方案, 思路一直不够成熟.
今天突然获得灵感, 其实完全可以通过最近总结的 HBI (Hosting Based Interfacing) 思路去实现. 原始想法在
http://www.iteye.com/topic/34848 提出讨论过, 表面上扯得比较远, 不过用在 TOB 的分布式访问上, 就可以得到这样的结果方案:
分布式的架构中, TOB 实例运行于一个专门的JVM中, 实现一个 TOB Host 服务器程序, 对它来说是以嵌入方式启动TOB实例, 自己实现线程池, 然后侦听网络端口, 从网络接受 客户端应用 通过网络, 以XML为载体 传递来的命令对象, 并执行这些对象, 对象本身通过应用编写的代码, 决定处理逻辑和结果内容等等.
为了能在 TOB Host 上执行应用定义的对象, 随应用程序开发的 命令对象类, 它们编译出来的bytecode代码要部署到 TOB Host 上, 这个过程可以和部署J2EE Web应用类似. 或者更理想的, 也可能在客户端鉴权认证以后, 每连接由客户端提供 ClassLoader 的数据源, 类似 URLClassLoader 通过 HTTP/FTP 的 URL 加载远程代码的方式, 这样很方便开发时重编译后动态替换代码.
另外持久模型类也会需要进行部署, TOB本身已经支持重新编译后的动态代码替换, 只需再实现一个代码更新的检测/通知机制.
这样一个分布式的 TOB 系统, 就是一个JVM跑数据库实例, 然后多个客户端应用, 各自或者相互依赖的开发好自己的 持久模型类 和 请求命令类, 部署到 TOB Host 上, 之后应用程序执行时不是像传统关系数据库那样发送SQL获得返回结果集, 而是发送 可执行的命令对象 到TOB数据库实例上执行, 然后获得自己写的这些命令对象代码的执行结果.
这个架构至少可以有以下好处:
1. 设计开发这些 命令对象类 时, 就是认为在访问一个嵌入的TOB实例, 因而其实就是访问/操作一张内存中的 持久对象图, 结构清晰明了, 逻辑不带杂质.
2. 超级性能. 因为是在数据库端执行, 性能指标和存储过程是一个层次的, 而且因为是用Java而不是用带各种局限的 PL/SQL 之类的专有编程语言, 仔细编码以后很有可能比SP性能更高.
3. Java的丰富类库, 灵活性和健壮性, 全盘保留.
其实思路朝这个方向想以后, 再看看 WoW 的架构, 完全可以认为是运行在广大浏览器里的Applet客户端应用, 通过互联网连接去访问服务器上的TOB数据库实例, 它各个部分的代码量统计结果, 完全支持这个观点.
美国那边的合作伙伴已经动手开始开发Flash版本的WoW浏览器端界面, 在这个方向上, 以后很有可能会衍生出TOB的Flash客户端库.
分享到:
相关推荐
HBI-P48编程数据表HBI-P48编程数据表HBI-P48编程数据表HBI-P48编程数据表
EtherCAT网络结构简单,通过主站设备与多个从站设备之间的通信,实现分布式自动化系统的实时控制。 在STM32F407与LAN9252集成实现EtherCAT HBI(Hardware Bus Interface)的项目中,主要涉及以下几个关键知识点: ...
EtherCAT通过使用较小的帧大小和优化的协议栈解决了这些问题,实现了高带宽利用率(超过90%)和低延迟通信。此外,由于其灵活的拓扑结构, EtherCAT可以支持线形、环形、星形和树形布局,而且不需要额外的交换机...
本项目"Ajax_asp2.0_Message_Hbi"是一个基于Asp.NET 2.0框架的内部网络消息收发系统,利用Ajax技术实现了类似于MSN的消息接收模式。这意味着用户可以在不刷新页面的情况下,实时接收和发送消息,保持在线交谈的流畅...
HBI——医院全面运营管理系统.ppt
总结起来,用VHDL实现视频信号分离是一项涉及信号处理、同步机制理解和硬件描述语言编程技术的复杂任务。通过精确的VHDL设计,我们可以高效地从复合视频信号中提取关键同步信息,实现清晰、稳定的视频显示。
在STM32上利用LAN9252实现EatherCAT总线技术,该文档为系统原理图
在Xilinx FPGA设计中,Vivado工具是用于开发、综合和实现IP核的主要平台。Vivado中的“Vbyone”(有时写作“vby1”)是一种专用的IP核,它为高速数据传输提供了高效的接口解决方案。本文将深入探讨Vbyone IP网表文件...
通过整合各级医疗机构、科研机构、药厂和个人的数据,构建医疗卫生一体化信息平台,实现个人健康To C、区域卫生To G和医疗机构To B的全方位服务。这有助于提升基层医疗机构的服务能力,优化公共卫生管理,并推进医疗...
HP官方网站通常会提供最新的驱动下载,建议用户定期访问以获取最新版本。 此外,对于多语言环境下的计算机,可以选择安装所有语言版本的驱动,这样用户可以根据实际需求切换语言;但如果计算机主要使用一种语言,只...
教育精品资料
描述中提到的“add support for VBI & HBI data service”是指该代码更新或实现了对垂直消隐期信息(Vertical Blanking Interval, VBI)和水平消隐期信息(Horizontal Blanking Interval, HBI)的支持。在电视信号...
3. 使用SSC生成的代码作为参考,移植到自己的项目中,实现特定逻辑。 代码层面,EtherCAT协议栈很复杂,主要关注`HW_Init()`、`MainInit()`和`while(1)`循环内的`MainLoop()`。还需要配置MCU的GPIO和资源,如SPI...
- 分布式时钟支持与其他EtherCAT设备同步,提高整体系统的精确度。 - 4KB DPRAM存储器,用于数据缓存与临时存储。 **3. 8/16位主机总线接口** - 支持索引寄存器或复用总线模式,适应不同的嵌入式控制器架构。 - ...
直流有刷电机驱动程序,基于STM32F4
这些.cab文件的目的是为了覆盖不同地区和语言环境下的用户需求,确保全球用户都能顺利安装和使用HP LaserJet 1010打印机。 在安装过程中,用户应遵循以下步骤: 1. 首先,解压下载的压缩包到一个临时文件夹。 2. ...
在Oracle数据库管理中,权限管理是一项重要的功能,它允许数据库管理员(DBA)控制用户对数据库对象的访问级别。本文将详细解释Oracle中的授权语法,并通过具体的例子来阐述如何进行不同类型的权限授予。 #### 一、...
针对前馈神经网络模型的BP算法自身存在的易陷人局部极小和收敛速度慢等缺陷,祸合同伦理论与BI神经网络模型,建立了基于同伦BI神经网络的转炉终点预测模型分别对转炉终点钢水的碳含量及温度进行预测,并在相同构造下同...