全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:5689
推到 Plurk!
推到 Facebook!

我做了个delphi三层架构的系统,欢迎各位评价

 
wpy020327
一般會員


發表:2
回覆:23
積分:5
註冊:2007-06-30

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-08-16 09:09:45 IP:122.234.xxx.xxx 訂閱
一套专门为delphi程序员编写的国产三层架构开发系统,中间件部分封装了多节点组网、寻址路由、信息交换等部分的实现过程与细节,而客户端部分包含了应用开发的组件包,由16个控件组成。

系统架构清晰合理、功能强大,支持业务逻辑部件的开发及远程自动挂接与调用。系统没有不宜理解的各种Com/DCom/Com 及Midas等相关概念,只要有初步的delphi开发经验就能轻松上手。

系统组网灵活、配置与部署省力、功能扩充能力强,是Delphi程序员开发三层架构系统或其它跨Internet应用项目的有力工具。

更多内容请浏览:
http://computer.mblogger.cn/wpy020327

联系作者:QQ 779545524


QBurro中间件的组网及对象命名规则
QuickBurro中间件的优势在于灵活的组网、寻址、路由及信息交换能力。凡是使用该中间件的多个局域网或个人电脑,可以在Internet环境逻辑上“联结”成一个虚拟专用网,并由中间件软件自动维持连接及互相通信。 如下图所示,信息的交换可分成两类,一是WAN通信,另一种是LAN通信,中间件实现前者,而后者则是利用客户端开发包实现的与节点服务器之间的通信或其它类型的内网通信。中间件实现的通信部分已经实现封装,故对客户端应用程序透明。这样的组网非常灵活,大到可以是有大量法人单位参与的大型网络,小则可以仅有一个根接点和一个子节点。 而数据库服务器与应用服务器(运行中间件的服务器)的部署也是很灵活的,若一个节点有大量应用数据的,则可以将数据库服务器与应用服务器分离,否则,两者可以合在一个物理服务器上运行;对于没有应用数据的,可以使用QuickBurro自带的SQL Server高度精简版来存储节点系统数据。 上图所标出的节点代码是示例性质的,但您不难看出这种带“#”号形式的节点代码的编码规则。这样的节点代码层次分明、一目了然,在进行实际的信息交换时,中间件能很好地实现这种代码与实际的IP地址之间的转换,比如,客户端在发送一个群发请求“BroadToNodeUsers('浙江#中国','一则消息')”时,中间件软件能自动根据节点代码'浙江#中国'确定其IP地址,然后将一个群发任务提交给它,让它来完成群发的任务。 而一个节点内的各个用户的代码(在整个网络中的全局代码),则是其本地帐号 @符号 所在节点的节点代码,比如,用户代码“zs@浙江#中国”表示'浙江#中国'节点内的'zs'这个用户,直观、易于理解记忆。


基于QuickBurro中间件的应用开发
QuickBurro中间件为Delphi程序员实现了大部分的服务器端软件开发的工作(也许就剩下业务逻辑部件的编写还需要应用程序员来写),所有组网、连接维持、寻址、路由、数据交换等细节都实现了封装,对应用程序是透明的。这种应用开发模型(以数据库存取为例)如下图所示: 在这种模型下,应用程序员的主要精力放在解决应用问题上,远程相关的部分只需要掌握QBClient客户端开发组件包的使用即可,需要访问哪个节点的资源,只需指定“节点代码”,而不需要与IP地址、端口、协议等打交道。而业务逻辑部件的中间层挂接(节点中间件软件处)和客户端的远过程调用,既实现了由应用程序员参与对业务逻辑进行封装、也可扩充节点服务程序的功能。
QBClient组件包控件结构图
TQBConnection是基础连接控件,建立的实例将作为后面15个控件实例的一个属性。TUserLogin是用于实现本地用户登陆的控件,因大部分的其它控件都是需要用户事先登陆的,因此,它也是相对基础性的控件。而其它14个控件都是功能性的控件,比较容易理解。

------
软件匠
wpy020327
一般會員


發表:2
回覆:23
積分:5
註冊:2007-06-30

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-08-31 03:25:29 IP:122.234.xxx.xxx 訂閱
有关这套系统的技术交流论坛已经开通:

地址:
http://qburro.bbs.pepo.cn/
内含:
Delphi三层架构技术讨论
QuickBurro中间件技术交流
Delphi编程技术交流等

欢迎台湾的兄弟去访问,如有可能,咱专门做个BIG5版本的,多谢各位!
------
软件匠
wpy020327
一般會員


發表:2
回覆:23
積分:5
註冊:2007-06-30

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-09-07 23:18:25 IP:122.234.xxx.xxx 訂閱
各位好! QuickBurro 2.40版本于9月7日升级完成,请下载: http://www.taomaba.com/thread-121606-1-1.html 或者: http://www.winu.cn/viewthread.php?tid=111530 本次升级内容如下: 1、修改了核心服务的长耗时线程部分代码,增强了数据库存取部分的可靠性 2、修改了核心服务启动部分代码,确保能连上数据库,增强了开机自动启动服务的可靠性 3、修改了客户端开发包,使得UserLogin、NodeManager、UserManager、RemoteADO、RemoteFTP、 RemoteRUN等控件中的主动传输方法可以多任务并发运行(提交一个方法对应的任务后,马上 提交另一个方法对应的任务),客户端与节点服务之间的数据交换能力得到大幅提升。 4、修改了核心服务的停止服务部分的代码,确保Windows关机时不会由于该服务无法关闭引起的 Windows无法关闭问题 5、去掉了核心服务程序在程序启动和退出时自动登记事件消息的功能,因为在“系统事件”里 存在关于BurroService服务的信息,不必要重复。 6、修改了服务管理器界面上的一些东西,加了点皮肤。 7、将演示、资料部分的文件夹移到上一层,让客户能方便点 8、对演示程序进行了重新Build,不再依赖Delphi的运行时库,另外增加了几个压力测试程序
------
软件匠
wpy020327
一般會員


發表:2
回覆:23
積分:5
註冊:2007-06-30

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-09-14 01:50:39 IP:122.234.xxx.xxx 訂閱
本次升级内容如下: a、采用了密钥自定义机制,确保在协议格式可知的情况下外人仍会由于不知道通信加密密钥而无法侵入 网络,同时,这一机制为公布客户端开发组件的源代码创造了条件 b、核心服务中将连接数据库、SystemInit过程放到OnExecute事件中,确保OnStart不超时失败(经最近 在不同操作系统环境下测试,2.40版本仍不可靠,原因是启动过程连接数据库超时) c、改变业务逻辑部件的加载、卸载方式,修改了核心服务程序,不再需要在默认文件夹下生成dll文件 d、修改了核心服务,使调用插件时的模块代码大小写无关(以前版本DllId区分大小写,不是很方便) e、修改了服务控制程序,增加了“网络通信密钥”和“未用插件内存驻留时间”等参数设置功能 f、修改了客户端开发包,在TQBConnection控件中,增加了一个“TransferKey”属性,用于指定密钥 g、服务管理器的基本运行状态监视页中增加了对活动插件数、挂接的计划任务数的监视 h、服务管理器增加了程序启动、界面恢复时的身份验证功能,防止被管理员之外的人查阅系统敏感资料 i、将核心服务程序的资源释放定时器从1秒激发一次改为2秒激发一次,防止主线程过于繁忙 j、修改了因TQBConnection控件增加了密钥属性而需要修正的演示程序,修改了1.X版本的客户端开发控件 k、界面上作了一些细微的调整;安装后的文件夹作了些调整,特别是把各个delphi版本的组件分在不同文 件夹下了;修改了客户端开发包用户手册;对修改后的系统重新作了一次近、远程测试 l、正式对外公布客户端组件的源代码,本系统用户从此可以Build出不带任何BPL运行时库的程序了 产品论坛: http://qburro.bbs.pepo.cn/ 下载页面: http://www.taomaba.com/viewthread.php?tid=121606&page=1&extra=page=1http://www.winu.cn/viewthread.php?tid=111530&extra=page=1
------
软件匠
wpy020327
一般會員


發表:2
回覆:23
積分:5
註冊:2007-06-30

發送簡訊給我
#5 引用回覆 回覆 發表時間:2008-10-07 08:06:41 IP:60.186.xxx.xxx 訂閱
本次升级已完成部分(10月4日): ============================ 1、采用了Winsock实现的TBurroUDP控件进行UDP通信,效率更高、更易于控制,且撇开了FastNet组件包, 最大8K的UDP包长度得到了保证,另外,也便于系统兼容新的Delphi版本。 2、修改了数据库表,在两个系统表中增加了三个字段: NetDNA_DllModules表:增加了一个DllPassword字段,Char 16,即DLL模块的授权密码 NetDNA_ScheduleTasks表:增加了一个TaskPassword字段,Char 16,即授权访问密码 增加了一个ExitValueType字段,Int 4,0-无返回,1-有返回 3、进行增加三个字段引起的SysTable.sql文件的变更,修改其中的两个别结构定义的SQL语句 4、修改核心服务程序,增加了对业务逻辑部件授权密码处理: (1)、修改了主模块的Dll动态数组结构和Dll对象装入过程,以支持新增的授权密码字段 (2)、挂接DLL时,在DllFileName后增加一个DllPassword,修改客户端控件的提交参数格式 (3)、在调用Dll时,在DllId后增加一个授权密码DllPassword,修改客户端控件的提交参数格式 (4)、在删除Dll是,在DllId后增加一个授权密码DllPassword,修改客户端控件的提交参数格式 (5)、增加一个修改Dll插件授权密码的服务(CDP命令),在客户端增加一个ChangeDllPassword方法 5、修改核心服务程序,增加了对计划任务的授权密码、返回值类型的处理: (1)、修改核心服务的运行外部程序服务,增加一个返回值类别参数,修改相关客户端控件 (2)、修改了主模块的计划任务动态数组结构和对象装入过程,以支持新增的两个字段 (3)、挂接计划任务时,在最后一个参数前加密码和返回值类型,修改客户端控件提交参数的格式 (4)、在删除计划任务时,在任务号之后增加一个授权密码,修改客户端控件的提交参数格式 (5)、调用计划任务时,在任务号之后增加一个授权密码,再根据返回值类型用不同方式运行程序 (6)、修改客户端计划任务调用成功事件的入口参数,增加一个返回值 (7)、增加一个修改计划任务项授权密码的服务(CTP命令),在客户端中增加一个ChangeTaskPassword方法 6、修改节点服务管理器中的业务逻辑部件管理和计划任务管理部分功能,使它们支持新增加的三个字段 7、因自动设置端口映射的控件编写调试成功,2.60版本中重新将自动端口映射功能加入到核心服务中 8、修改核心服务的长耗时线程,对少量参数的任务不再通过数据库提交,修改相关客户端控件 9、修改了客户端控件中各个模块的单元引用语句,对本模块不需要的单元引用去掉它 10、修改了客户端控件包,增加TBurroUDP、TBServerSocket、TBClientSocket、TBurroNAT等基础开发控件, 另外,修改控件包的目录结构,将Package与控件源代码分放不同文件夹,使得各版本的Delphi能公用 控件源代码、但分属不同Package 11、增加一个从文件读数据到TBLOB字段的服务、增加一个将TBLOB字段内容写到文件的服务,增加控件方法 12、增加一个获取数据表结构到ClientDataset的服务、一个追加数据库记录的服务(同时处理自动增长的字段 并返回最新值)、一个修改数据库记录的服务 13、客户端增加了对delphi 2005/2006/2007版本的支持,D2009版本因时间过于仓促,推迟到下个版本支持 14、修改了服务管理器BurroControl.exe,对外接数据库新建数据表时的自带插件安装问题进行了修正 15、修改了安装程序、增加了卸载程序,并修改了客户端开发指南,对演示程序进行了修改、重新Build 16、增加了系统完美卸载程序 针对以前各版本用户反映数据库部分功能不够强大的意见,2.60版本增加了5个数据库服务功能,主要针对记录和字段的存取,打算在后续的版本中,继续加强这方面的功能,特别是准备实现类似Hibernate的远程数据库存取服务。
------
软件匠
編輯記錄
wpy020327 重新編輯於 2008-10-07 08:09:23, 註解 無‧
wpy020327 重新編輯於 2008-10-07 08:13:26, 註解 無‧
wpy020327
一般會員


發表:2
回覆:23
積分:5
註冊:2007-06-30

發送簡訊給我
#6 引用回覆 回覆 發表時間:2009-02-05 19:12:00 IP:122.233.xxx.xxx 訂閱
QuickBurro 版本2.70,下载地址:http://www.quickburro.net/download/quickburro.exe


本次升级增强了远程数据库功能,开始支持多数据库的连接池,主要更新内容有:

a、修正了客户端控件在本地节点搜索时的不足,使之能适应A类、B类、C类三类本地网IP地址类型,确保能
正确找到本地节点b、修正了因2.60版本客户端控件代码修改后,任务请求转发时新出现的一个BUG
c、修正了TRPCaller控件,去掉了NeedReply属性,增加了SimpRPC_NoReply等三个无应答远过程调用方法
d、对未使用MiniSQL数据库情况下,在服务管理器进行服务启动时的一个界面上的缺陷进行了修正
e、将系统表的名字进行了修改,“NetDNA_”改成了“QBurro_”,并将所有系统表放到了MiniSQL的master
数据库中
f、增加了一个新的系统表QBurro_DatabaseIndex,用来登记系统所支持的应用数据库的有关属性(库名、
连接参数等)
g、修改了因数据表改名、系统库位置改变等有关的程序
h、修改了服务管理器程序,增加了应用数据库配置页面,并与应用注册码一起组成一个新的功能组
i、修改了核心服务程序中的数据库连接池部分的数据结构及代码,开始支持对多应用数据库的支持
j、对客户端控件、基本协议等进行增补,以支持多数据库、多类型数据库等特性

k、修正了服务管理器中在节点代码配置时,父节点代码及根节点代码自动生成时的小BUG
------
软件匠
系統時間:2024-11-23 3:40:38
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!