俺给delphi程序员定制的超级中间件! ( 积分: 100 )

  • 主题发起人 主题发起人 wpy020327
  • 开始时间 开始时间
W

wpy020327

Unregistered / Unconfirmed
GUEST, unregistred user!
系统是俺用delphi做的,功能强大,且扩充性能很强。
下面给个简介,详细的请到俺的网站上浏览、研究。
http://www.quickburro.com/

QuickBurro(快驴)系统是一套由我处独立研制开发的、专门用于进行广域网分布式应用开发的中间件产品(middleware),由网络节点系统(可执行程序)、节点Web服务系统(可执行程序)、应用开发控件QuickBurro(For Borland Delphi)三大部分组成。通过直接安装使用前两部分程序,可以快速地在Internet上架构稳定、可靠、安全的“树状层次型专用应用网络”(因上下分级联机,我们专门称其为“级联网”);然后,通过其中第三部分的开发控件,应用程序员能轻松实现在不同的广域网网络节点之间进行诸如数据库记录远程存取、多媒体数据交换、即时信息播发等实用的信息交换功能。鉴于树形级联状的分布式应用模型是目前最为典型、与客户业务最为接近的一种架构,如大型物流公司、大型分销系统、大型集团公司、政府组织机构等等,因而,QuickBurro系统具有非常良好的开发应用价值。

系统采用Borland Delphi开发工具设计,涉及到多线程、Socket、UDP、ADO、数据压缩技术、数据加解密技术、环型队列、连接池、线程池等大量核心技术。设计过程中对各种Socket通信模式进行了全面的对比测试,最终选择了响应性高、不易丢失连接请求的非阻塞通信模式,源代码几经翻版、改进、修正,最终产品则经过大量的第三方测试工具或自行开发的测试工具的测试。

俗话说“工欲善其事、必先利其器”,在分布式应用软件开发需求日益旺盛的今天,选择一个功能丰富、强大、可复用的中间件或应用服务器产品(application server),对于提高软件开发工程的开发效率与质量,是非常必要的。建议您选择我们的这套系统,它能使您只需要写一小段简单的代码,即能实现把数据可靠地传递到远程节点,或者快速地从远端索取您想要的数据资料,充分减轻程序设计人员对于广域网环境编程的沉重负担,而将主要精力移放到应用逻辑的实现上。

所谓“中间件”(middleware),是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。中间件是基础软件的一大类,属于可复用软件的范畴。顾名思义,中间件处于操作系统软件与用户的应用软件的中间。中间件在操作系统、网络和数据库之上,应用软件的下层,总的作用是为处于自己上层的应用软件提供运行与开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件。

中间件大致可分为终端仿真/屏幕转换中间件、数据访问中间件、远程过程调用中间件、消息中间件、交易中间件、对象中间件等,而QuickBurro系统直接支持其中第2、3、4类中间件中的重要功能,而对其它类别的功能,则提供了进行功能扩充的机制,可让程序员扩充基础协议、开发插件并挂接到系统运行。

QuickBurro系统较准确地抓住了分布式应用开发的核心问题,不仅分布式开发的“数据库-中间件-瘦客户端”这种三层模型设计思想得到了很好的贯彻,同时进一步向程序员提供了实现横跨Internet广泛区域内的软件开发共性部分:组网、命名、寻址、连接维持、远程数据交换、数据压缩传输、加密传输、通信并发性能改善、同步事件等等,并以“基础协议—通信软件—API接口”机制进行技术实现。系统主要功能特色如下:

□ 在Internet上架构大型树状级联网
□ 升级动态IP的Internet节点成为树状级联网节点
□ 升级企业内网节点成为树状级联网用户
□ 独特的节点代码和用户代码命名规则
□ 支持对级联网中任意节点的快速寻址,并对应用程序透明
□ 上下层节点间自动维持连接,断开后自动重建连接
□ 智能分担根节点压力,有效利用固定IP节点的资源
□ UDP技术与Socket技术结合,并发性能及响应速度优异
□ 采用小容量信息加密、大容量信息压缩机制,传输速度快
□ 支持对任意节点内网数据库的读写,并对应用程序透明
□ 支持内网用户间、外网节点间、用户与节点间的各种数据通信
□ 支持信息群发,一句代码完成向成千上万的各地用户发布信息
□ 支持业务逻辑插件的本地挂接和远程自动挂接及远程调用
□ 支持自定义格式数据的传输,具备无限的业务扩展能力
□ 监控功能丰富、系统稳定可靠、可无人值守运行
□ 提供应用编程控件,应用程序接口(API)极佳

本系统与三层结构中的CORRBA、.NET、COM/DCOM等技术在实现的效果上有些类似,但编写应用程序的过程则区别较大。后者并不支持专用网的组建、分层的命名/动态IP寻址、UDP形式的连接维持等,因而在广域网上组件专用级联网并编写应用程序时,仍然需要程序员额外编写大量代码,技术难度仍然较大/较多;而使用本系统,这些问题都不再需要考虑,程序员的主要精力将更多地投放到应用逻辑的实现上,因此负担更轻。
 
底层用到的是什么技术,是否自己封装ICMP与IPV4?小顶一下下~~
 
用的是UDP和Socket,不在底层实现。
 
还在扩充更多功能,比如,实现远程节点的文件管理:
取远程节点系统状态
取驱动器列表
取文件列表
目录创建、删除
文件复制、改明、改属性、删除
文件上传下载
远程压缩、解压缩
文件遍历搜索
注册OCX控件
增加/删除自动运行项
...

只需要做一个DLL,挂接到系统,就完成功能扩充。
 
1.版本稳定性如何? 看起来只经过了自测和测试工具测试, 没有大面积使用过?
2.目前此中间件在哪里有应用?
3.支持的最大连接数是多数?
4.有没有采用IOCP技术?
5.Delphi编写的这个东东, 没有跨平台的优势, 服务端不能在类UNIX系统上运行。那如何使用了Windows平台的稳定技术和优点?
6.有没有考虑过做得开源的形式? 以便于此项目以后发展, 也算是为广大Delphi开发人员提供真正长期的支持
 
有人用过吗。。。怎么样
 
来的例子看看
 
1、稳定,经过了大量测试(功能测试与压力测试等)。

2、已经在3个项目中成功应用,一个物流的、一个政府的、一个电子商务方面的。

3、最大连接数理论上是65535,但实际上取决于应用数据的类型以及带宽、服务器性能等因素,因此,是不能明确下定论的。

4、采用的是非阻塞多线程模式,与IOCP原理相同,但不同的是,我不采用API的Socket实现。性能上相差不大,曾做过压力测试,Web服务部分性能胜过网上可下载的许多WebServer。

5、跨平台性能是差些,只能用在Windows系列OS中,但通过远程级联实现Windows服务器集群等方面有很多特色,应用范围仍然较广。

6、客户端API、插件编写等可以开源。支持肯定是要持续的,因为这是我十多年开发经验的结晶体,用处也较大,是不会轻易丢掉的。
 
1、开发工程建立

我们用Delphi建立一个新的工程,命名为Broad,并在第一个Form上加上TEdit、TCheckBox、TMemo、TBitBtn等各种控件,以便输入要群发的内容,做成一个群发短信息的对话框,如下图所示:

<无法贴图,抱歉>

2、控件属性设置

将数据源控件AdoConnection1的参数设置好,并连接上应用程序的数据库,然后设置Burro1对象的属性、事件,如下图示:

<无法贴图,抱歉>


3、编写代码

对Form1中各控件的某些事件进行编程,最终实现软件功能。该实例的程序清单如下:

unit BroadMain;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Db, ADODB, QuickBurro, StdCtrls, Buttons, ExtCtrls;

type
TForm1 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
CheckBox1: TCheckBox;
Label2: TLabel;
Memo1: TMemo;
Bevel1: TBevel;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
Burro1: TBurro;
ADOConnection1: TADOConnection;
procedure FormCreate(Sender: TObject);
procedure Burro1TaskFail(Sender: TObject);
procedure Burro1TaskSuccess(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
commandtype: integer; {任务类别标记}
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

//
// 程序启动时,进行内网用户登陆...
procedure TForm1.FormCreate(Sender: TObject);
begin
//
// 初始化...
edit1.text:='杭州分拨#中通';
checkbox1.Checked:=true;
memo1.lines.text:='这是一个群发的文本信息!'#13#10;
memo1.lines.add('有疑问请联系我。'#13#10);
bitbtn1.Enabled:=false; {未登陆前不能发送}
//
// 用户登陆...
commandtype:=1; {登陆任务标志}
burro1.LoginUser; {用户登陆}
end;

//
// 任务失败时...
procedure TForm1.Burro1TaskFail(Sender: TObject);
begin
case commandtype of
//
// 登陆失败时...
1: begin
application.MessageBox('对不起,用户登陆失败,请检查节点系统是否已经运行!','登陆失败',mb_ok+mb_iconinformation);
end;
//
// 群发失败时...
2: begin
application.MessageBox('对不起,消息群发失败,请检查节点系统是否正常!','群发失败',mb_ok+mb_iconinformation);
end;
end;
end;

//
// 群发...
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
commandtype:=2; {短消息群发标记}
//
// 不包含下属节点的群发...
if checkbox1.Checked then
burro1.BroadToNodeAndSons(trim(edit1.text),trim(memo1.lines.text))
//
// 包含下属时的群发...
else
burro1.BroadToNode(trim(edit1.text),trim(memo1.lines.text));
end;

//
// 群发成功时...
procedure TForm1.Burro1TaskSuccess(Sender: TObject);
begin
case commandtype of
//
// 登陆成功时...
1: begin
bitbtn1.Enabled:=true; {允许群发}
end;
//
// 群发成功时...
2: begin
application.MessageBox('短信息群发成功!','群发成功',mb_ok+mb_iconinformation);
end;
end;
end;

//
// 关闭程序...
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
burro1.LogoffUser; {关闭前登出}
close;
end;

end.


4、程序调试运行

对上面设计的Project进行Build,便得到broad.exe程序,运行之后可以看出,群发信息任务顺利完成。运行界面如下:

<无法贴图,抱歉>
 
看上去不错:)
是否要付费?多少¥?
与dbanywhere的区别?
可以稳定的实现 sql 和 fb 大量数据的多异地 互联网 的稳定传送吗?

后附:
哦,我看过你网站介绍了,呵呵;先研究一下..........
 
付费肯定是要的,不然俺饿肚子了。
价格好商量。
用于单个项目开发,费用少点;
无开发项目限制的,付费多点;
提供源代码时,费用肯定让你伸舌头。

系统当然可以稳定实现大量数据的异地互传了,这是最重要的功能之一。
网络节点分布情况和数据库分布情况随你自己规划,但再复杂的结构,
该系统都可以支持(比如,4-5层的分层级联)。
 
我用该系统做一个大型物流系统时,结构有四层:
总公司——各中转中心——各市级公司——各承包区

总公司Oracle、其它用SQL Server,远程数据存取非常轻松,采用加密/压缩传输,速度快、安全。由于数据库服务期都是放在各个点的局域网的内部,不直接上网,因此数据库的安全性能得到有效保证(那些数据库服务器直接面对Internet的方案,就不一定咯)。
 
与dbanyware有一些相似的地方,如加密/压缩传输,但区别也很明显:

1、产品定位
dbanywhere是开发平台,而QuickBurro是中间件

2、组网能力:
dbanyware没有实现将各服务器通过Internet组成大型专用网的功能。而QuickBurro则全面支持:树状分层、节点与用户的全局命名、节点IP寻址、网络连接维持、消息路由等等。因此,用QuickBurro开发大型分布式应用系统时更省力。

3、功能区别:
dbanywhere支持java平台,QuickBurro不支持。
dbanywhere不支持业务逻辑插件,而QuickBurro则支持。因此,扩充性能上QuickBurro更好,随着新插件的加入,QuickBurro系统的功能会越来越强。
dbanywhere主要完成远程数据库存取,而QuickBurro除此之外还提供各种自
定义数据的传输,应用程序员可自定义应用层协议,实现各种应用领域的软件开发。
dbanywhere的P2P能力因服务器端的功能局限而受到限制,而QuickBurro则
能实现更大规模的广域网消息服务。
 
呵呵,看来销售的对象不是一般人;
价格对于我们这些 写些 进销存 或小功能 做 共享软件的 个人soho、工作室、1~2个人的小小公司 有点太高了...
而且做 共享软件的一般有很多种类:如 进销存 可能就分 商场,送水,物流,酒店,球场管理。。那不同项目的 价格太高了..

不过对 大点的公司,有¥的公司应该不错的...功能确实不错;顶一下.....
 
做个节点层数限制版,低价给小公司,如何?
 
路过,如果需要专业的加密方案,可以找我~
 
呵呵,价格优惠那肯定可以的罗...
dbanywhere 旧版本有个问题,如果网络不同:如 电信 到 网通、铁通等等,数据传输会有问题,如:慢 或 经常断线(现在不知道改进了没有,我是 测试它比较前版本的);
因为 用户的 上网方式我们是无法 控制,甚至 用 modem 拨号的(56K那种), 分店之间 无法 控制 上网方式 或 速度。。。。
特别 是 如 广东 到 山东 ,是 电信 对 网通,传输只有 2~3K;
《同网一般没问题,直接用 动态域名 就可以了;》
1:可能总店 是电信,其它分店 五花八门 都有,你的 中间件 可以解决吗?
2:总店 和 各分店 都是 局域网,用路由上网的,各有服务器,各店各自保留数据;然后将数据 实时提交总服务器,其实就是服务器 之间 实时的数据交换;可以实现吗?

呵呵,我也是做 共享软件不久,一些 用户提出的,我还没能 实现....


希望你能做得好...
 
可以适应你说的复杂上网的问题,即使数据库服务器在局域网内部都可以,
因为节点系统是一个运行于网关的Application Server,数据代理存取是其功能之一。
也不需要动态域名,只要根节点是固定IP一个要求,系统能自动对动态IP进行寻址。

至于电信与网通之间的问题以前确实是这样的,我以前做程序时就碰到过。
这是恶性竞争的结果。但现在互相妥协了,应该可以了吧。没试过。
 
各位:
新版本1.06今天发布了,
上个版本的Bug被killed,
新增了一个远程文件存取插件(16个具体功能)。
公布了好几套源程序(插件编写和客户端编写的)
请到网站去下载哟: http://www.quickburro.com/
 
散分咯!!!!!
 
后退
顶部