QuickBurro(快驴)中间件是一套由中国程序员(Jopher Software Studio, 樵夫软件工作室)研发设计的软件包,目前主要适用于Borland/CodeGear Delphi软件开发环境,用来进行广域网分布式应用项目的开发。系统由网络节点系统(可执行程序)和应用开发组件(VCL Components)两部分组成,短小精悍、便于安装使用及二次打包发布。通过QuickBurro的节点系统核心服务程序,您可以快速地在广域网上架构“树状层次型应用网络”(因上下分级联机,我们专门称其为“级联网”);而通过其中第二部分的各种开发控件,应用程序员能轻松实现在不同广域网节点之间进行诸如数据库记录远程存取、多媒体数据交换、即时信息播发等实用的信息交换功能。事实上,树形级联状的分布式应用模型是一种极为典型、与客户业务最为接近的网络架构,如大型物流公司、大型分销系统、大型集团公司、政府组织机构等等,——因而,QuickBurro中间件系统具有良好的开发应用价值。 
    系统采用Borland Delphi开发工具设计编写,其中的客户端应用开发组件包因此主要适用于Borland/CodeGear Delphi软件开发环境。系统研发时涉及到多线程、Socket、UDP、ADO、数据压缩技术、数据加解密技术、环型队列、连接池、线程池等各种核心技术,大都采用Delphi标准的函数或组件加以解决。设计时对各种Socket通信模式进行了全面的对比测试,最终在服务端选择了响应性高、不易丢失连接请求的非阻塞通信模式,加上采用了环型队列等数据结构,使得系统能处理成百上千用户的并发请求,稳定可靠;对于8K以下数据量的短消息传递,系统采用UDP通信进行实现,并采用了自主研制的“可靠UDP传输”技术,来解决UDP丢包问题;数据的传输采用了短消息加密/大容量数据压缩等技术措施,因通信协议的私密性及密钥的客户自定义,确保了通信的安全可靠;系统在节点之间、节点与用户之间都实现了双向的通信,使消息的传递更及时畅通、因此不再有因轮询中间层状态而导致的中间层资源消耗等弊端;系统特有的业务逻辑部件接口标准、模块热插拔、模块内存驻留等技术,使得应用项目中研制业务逻辑部件及进行快速部署等都很方便;系统支持的中间层计划任务,为在中间层部署并适时激发外部进程创造了条件......而新版本加入的多数据库支持、数据包裹类、任务同步执行控件等,在系统功能、使用的方便性等方面锦上添花。
    QuickBurro中间件是一套旗帜鲜明、个性十足的系统。在这里找不到让人“崇敬不已”的专业术语、找不到“忘了又记、记了又忘”的COM规范或接口,这里只有能干事情的一系列函数或方法、帮助你实现以前“心里痒痒想实现”的各种远程交互功能。下面例举QuickBurro中间件的特色:
     支持服务器集群、适合组建大型广域网应用网络     独特的网络对象命名规则,具备应用程序员透明的自动寻址/地址解析功能     流式二进制数据传输、高效的远程数据传输能力     长连接与短连接共存、分工合作、扬长补短,显著提升系统效率     无状态的中间层服务、保证较为高效的任务处理过程     非阻塞型套接字模型+环型任务队列+线程池,并发通信能力强     切实可靠的“安全UDP通信”技术,UDP丢包率极低     任务优先级分级处理机制,满足“紧急的任务先处理”的要求     消息加密传输、用户自定义密钥、协议私密性强,确保通信安全可靠     节点之间、节点与用户之间的全部双向传输,不再需要单向的状态轮询     综合性的中间件功能,满足实际项目复杂多变的功能需求     客户端组件较为明确的功能性封装方式,充分减轻应用开发的复杂程度和工作量     应用服务器端不需要进行基本框架方面的编程,只需要作业务逻辑部件的开发     简便的业务逻辑部件接口规范,没有复杂的技术理论和术语,一学就会、一试就通     同时支持线程方式的DLL部件及进程方式的Exe部件,扩展性能极好,系统越用功能越强     异构数据库类型的支持、多数据源的支持、多种远程数据库存取方式     异步与同步两种客户端开发方式,适应不同应用项目的编程要求     独特的数据包裹构造类(TQBParcel),较好地满足“对象序列化/传输/还原”的需要     服务方式运行的中间层软件,适合在无人职守的用户现场部署
    QuickBurro的作者认为,中间件充其量不过一座桥而已,如果过桥时还要背个门板铺垫,那是要人命的泸定桥;若此桥让人渡河时没额外的负担,那是一般桥功能上的实现;如果过桥比较轻松、还能看点风景什么的,那是桥设计得巧妙;当然,如果能坐着轿子、吃着点心过桥,那自然更是造桥者的匠心独运了。市面上这么多中间件,分别是什么样的一座桥呢?还是留给用户来评价吧。    产品主页: http://www.quickburro.net/
   技术论坛: http://qburro.bbs.pepo.cn/
   QQ高级群: 79114999

解决方案 »

  1.   

       尽管分布式应用开发是一件复杂而困难的事情,但在使用了QuickBurro之后,您会发现这样的情形会有很大改善,轻松和有趣将会伴随您项目开发的始终,因为问题简化了、写程序轻松自如啦。您的开发工作将最终归结到下图中绿色的那部分内容,即包括位于中间层的业务逻辑部件(Business Modules)的开发、计划任务程序(Schedule Tasks)的编写以及位于客户端的Client程序开发三部分内容,应用服务器的主体不用再花大力气重新设计: 
        由于通过QuickBurro中间件您能实现业务逻辑的剥离和封装,并部署于中间层,因此从此您将拥有“软总线”形式的软件复用机制,随着您开发工作的深入,可以直接使用的各种部件将越积越多,促使您的应用开发效率得到长足的提高;您也可以感受到三层架构中“瘦客户端”模式所带来的安装维护等方面的好处;当然,最重要的是,QuickBurro已经为您提供了由几十个控件组成的开发包,功能强劲,您在应用开发时可直接使用,而随着版本的不断升级,公用的扩展模块将不断公布,您所能获得的支持将不断加强。
      

  2.   

    V3.00版本2009年4月9日完成,本次升级内容如下:a、修正了核心服务中UDP发送线程的失败重发算法,去掉了线程内的定时器(被证明了是不可靠的),避免了向不在线节点发送消息时容易引起的线程对象无法释放问题
    b、客户端组件包中增加了一个公共函数单元QBCommon,存放公用的函数或过程
    c、增加四个服务监视控件:TBasicChecker、TMessageChecker、TActTransChecker、TPsvTransChecker,分别用于在服务端监视基本状态、UDP消息通信状态、主动TCP传输状态、被动TCP数据传输状态
    d、增加了一个TQBSvcInstall控件,用于在服务端安装节点核心服务程序文件到用户现场指定的文件夹
    e、增加了一个TQBSvcControl控件,用于在服务端控制节点核心服务的开启/停止
    f、修改了卸载程序卸载窗口的标题“Form2”
    g、增加了一个中间层多频道DOS环境计划任务,服务启动时自动运行,为远程DOS终端提供目标DOS环境
    h、增加了一个远程DOS桥接部件(业务逻辑部件),用于客户端与DOS环境程序的桥接
    i、核心服务程序中增加了注册/注销固定IP地址节点、注册/注销应用程序认证项等4个新的服务
    j、客户端组件包新增TFixedNodePropBlock和TAppRegPropBlock两个对象描述基础类
    k、客户端组件包新增TFNodeManager和TARegManager两个对象管理控件
    l、在TSyncBurro控件中,增加注册/注销固定IP地址节点、注册/注销应用程序认证项的四个方法
    m、从TRemoteRun控件中分离出了一个 TSchManager控件,并修正TSyncBurro中的对应程序段
    n、TLocalBroad控件中增加一个本地广播消息到指定端口的方法、增加一个本地发送消息到指定IP/端口的方法
    o、TSyncBurro控件增加BroadToLocalPort、PostToLocalIPPort两个方法
    p、TRemoteBroad空间中增加了一个向目标节点(及其下属节点)的LAN某端口广播消息的方法
    q、TSyncBurro控件相对应地增加一个BroadToLanPort方法,完成向远程节点LAN某端口广播消息
    r、为了是客户端组件包能在Borland C++ Builder环境下使用,去掉了TQBParcel中很少用的Real48相关的两个方法
    s、为业务逻辑部件增加了一个基本属性:线程模式,同时修改相关的核心服务程序、客户端控件等
    t、增加TConnectionConfig控件,用于在服务端进行节点互联参数的设置
    u、增加TGeneralConfig控件,用于在服务端进行基本参数的设置
    v、增加TUDPConfig控件,用于在服务端进行UDP通信参数的设置
    w、增加TTCPConfig控件,用于在服务端进行TCP通信参数的设置
    x、增加TRhythmConfig控件,用于在服务端进行运行节奏参数的设置
    更多内容请浏览: http://www.quickburro.net/
      

  3.   

    咦?为什么管理员把CBX的广告给删了呢?CBX RIA框架同样应该是一套优秀的Delphi BS框架啊。CBX的可扩展性也不亚于QuickBurro。大家体验一下CBX RIA:http://61.128.123.88/cbx/appsvr.dll/Splash.ao
    超震撼,相比之下,Java简直就是破烂儿。
      

  4.   

    QuickBurro V3.01最新发布:中间件服务器程序:http://www.quickburro.net/download/quickburro.exe应用开发组件包:http://www.quickburro.net/download/qburrosdk301.rarQuickBurro Demo程序合集:http://www.quickburro.net/download/qburrodemo.rarQuickBurro技术资料合集:http://www.quickburro.net/download/qbdocuments.rar
    高级QQ群:79114999(已满)、27104132 普通QQ群:84945607、18594635、55465145
    网站地址: http://www.quickburro.net/
    技术论坛: http://qburro.bbs.pepo.cn/
    本次升级内容如下:(2009年5月5日完成)
    a、修正安装程序安装完成时未清除安装原文件引起的新版本安装错误Bug
    b、修正了“被动数据传输事务”计数上的缺陷,去掉了计数器,直接在查询时统计
    c、对文件传输服务进行了改进,增加了获取远程文件总长度、创建指定长度的远程文件两个服务
    d、对TRemoteFTP、TSyncBurro控件,均增加GetRemoteFileSize及CreateRemoteFile两个方法
    e、将客户端文件块传输控件从原来的只能逐块串行化传输改成多块并发传输方式,修改了核心服务程序 关于文件传输方面的基础协议、客户端控件中的TQBConnection控件及TRemoteFTP控件
    f、修改了TSyncBurro控件,将原来的两个文件块传输方法改成了远程文件读取方法(ReadRemoteFile) 和远程文件写入方法(WriteRemoteFile),并为TSyncBurro控件增加文件读取进度事件和文件写入 进度事件。新版本因此在文件传输方面的编程得到了明显的加强。
    g、在TRPCaller、TPsvReceiver及TSyncBurro控件中增加了一个ReadDataToCDS方法,读结果到CDS,这样,对于返回一个数据集数据的远过程调用或被动接收事件,就能方便地将数据置入CDS
    h、新增一个“QuickBurro Advance”控件面板,用以存放通过插件扩充而增加的扩展控件
    i、增加一个TRemoteFiles控件,用于封装RemoteFiles插件的功能,向应用程序提供远程节点文件存取的多个功能
    j、增加一个TRemoteScreen控件,用于封装RemoteScreen插件,向应用程序提供远程屏幕截图的功能
    k、增加一个TRemoteMouse控件,用于封装RemoteMouse插件,向应用程序提供鼠标控制的功能
    l、针对系统定时器TTimer控件的不足,另外增加了一个基础定时器控件TQBTimer
    m、修改应用开发包中的所有控件,使它们支持Delphi IntraWeb环境下的开发模式,为QBurro进入 B/S编程领域创造了条件。从V3.01版本起开始支持IntraWeb环境下的Web应用开发。
    n、对计划任务程序的存放位置作了规定,约定放在文件夹“.../QuickBurro/NodeServer/Schedule” 下,在登记计划任务程序时,使用相对路径表示,以便实现节点程序的“随拷随用”。
    o、安装包随带了计划任务程序DosServer.exe,提供多用户远程DOS环境
    p、增加一个TRemoteDos控件,用于实现远程DOS终端的桥接功能
    q、去掉了QBurro V1.x版本下的RemoteSQLDBA插件,因支持多数据库之后该插件已废弃,故删除之
    r、排除了用户非正常退出后又再重新登陆时出现登陆失败的Bug,经分析是会话号唯一性带来的问题
    s、为TQBParcel类增加了LoadFromFile和SaveToFile方法,以便序列化对象的文件形式存储
    t、修改了文件传输相关的几个Demo程序、增补修正了SDK开发资料,以及安装程序等
      

  5.   

    QuickBurro V3.22版本发布。
    V3.22版本升级内容如下:(2010年5月25日完成)
    a、修正了通信密钥修改后因线程对象中的密钥未修改而引起的用户登陆失败Bug
    b、修改了TQBClientDataset的CommitToRemote方法,在成功完成时执行MergeChangeLog
    c、修正了RemoteFiles.dll插件及TRpcRemoteFiles的ListFiles方法对文件属性失效的Bug
    d、修正了TSoftWarrant控件在多CPU/多核状态下,出现多个机器码的Bug,确保用户特征代码唯一
    e、修正了应用软件认证时硬件特征代码获取方法上的Bug,不再有多CPU/多核引起的硬件代码不唯一现象
    f、修正了ChkRegiste控件的GetRegCode方法中用户未登陆时无法获得应用程序注册信息的Bug
    g、修正了数据表分页查询上的一个Bug,使用户任意指定每页记录数时,都能得到正确的分页结果
    h、改进了TQBClientDataset的Delta提交方法,使得非完整记录结构的Delta数据提交时,也能正确写入
    i、修改了SyncBurro及QBClientDataset两个单元,使事务处理中的CommitToRemote方法不立即合并Delta
    j、修正了SDK中任务提交前检出参数错误未给出错误信息的缺陷,给出了Invalid Parameters错误信息
    k、修正了QBConnection单元Destroy方法中的UDP线程对象释放先后次序问题,该问题会偶尔引发程序退出时的AV错误
    l、新增一个RemoteRegistry.dll插件,用以访问注册表
    m、SDK里新增一个TRpcRemoteRegistry控件,用以进行远程注册表访问
    n、在QBMisc.pas单元里新增了几个文件日期读写的函数
    o、在RemoteFiles.dll插件内增加一个取文件属性的方法、设置文件时间的方法
    p、在TRpcRemoteFiles控件内增加读取单个文件属性的方法及设置文件最后修改日期的方法
    q、增加了一个Internet时间同步控件TQBTimeSync,用于实现和标准时间的同步
    r、SDK中增加了一个Tea加解密算法单元QBTea.pas,丰富加解密算法库
    s、修改了RemoteORM.dll插件及相关实体类模板内容,优化了实体类代码,新增了主从实体类的生成功能
    t、修改了TRpcRemoteORM控件,增加了生成主从实体类的两个方法
    u、升级了周边的GetEntity.exe工具(中文版、英文版),使之能生成主从关系构造型实体的类代码
    v、新增一个RemoteSysInfo.dll插件,用来获取远程节点的各种系统参数(14大类280余个参数)
    w、新增一个TRpcRemoteInfo控件,实现对RemoteSysInfo.dll插件RPC功能的封装
    x、新增一个RemoteSvcManager.dll插件,用来远程注册管理系统服务、COM模块、自动启动模块等
    y、新增一个TRpcRemoteSvc控件,实现对RemoteSvcManager.dll插件的RPC功能封装,便于用户使用
    z、调整了TCP默认的请求接收超时、数据块接收超时两个通信参数,去掉了原来的两个演示用插件
    z1、新增了若干Demo程序、修正用户指南等技术资料、完成产品网站的改版
    截止到目前版本,本系统已经过众多用户的实际使用、试用,所有发现的缺陷都已得到修正,数据库、文件传输、消息传输、RPC框架等各个方面都得到了功能增强与完善。SDK部分已经多达70余个控件(类),如下图示:其中,数据库交互部分的应用开发已经变得非常方便,用户可以用实体对象法、Delta提交法、RPC交互法三种方式进行编写,前两种数据库编程的接口如下图:
      

  6.   

    QuickBurro是否是好的中间件?跟JBoss比较如何?