存档

文章标签 ‘asta’

Asta的使用

2007年2月10日 没有评论
—-随着Internet/intranet的发展,多层应用和分布式瘦客户数据库应用程序逐渐得到广泛应用。在多层应用的开发方式中,Delphi提供了Midas构件,第三方提供了Asta、Midware等。经过使用,相比较而言,Asta所提供的构件易学易用方便灵巧,客户端程序无须任何数据库引擎或动态连结库即可方便的实现多层应用,且客户、服务器可实现实时信息传输。可以说,Asta为普通程序员提供了无须专门培训即可成为复杂多层应用程序开发高手的简单途径。
—- 1. 认识Asta
—-象普通的Delphi构件一样,在Delphi环境下安装Asta即可看到该页标上有AstaClientSocket、AstaClienDataset 、AstaServerSocket 、AstaDataSet等构件,其中关键是AstaClientSocket 、AstaClienDataset、AstaServerSocket。其中,AstaClient由一个AstaClientSocket和至少一个AstaClienDataset组成。AstaServer的核心是AstaServerSocket。Database可以是现在流行的任何数据库产品,如Sybase、Informix 、MS-SQLserver等。
—- 2. 如何实现多层应用
—- Asta本身带有两个例子服务器程序,一个是BDEserver,另一个是ODBCserver。这两个服务器程序设计的很完善,稍加改造(汉化)即可直接使用。我们使用BDE服务器。 本例以Paradox本地数据库为例,说明如何开发客户端软件。
—- 2.1 运行BDE服务器程序,出现数据连结窗口,弹开组合框选择别名BDEDEMOS,确定。
—- 2.2进入Delphi环境,建立新应用netapp.dpr,窗体上分别放置AstaClientSocket1、AstaClienDataset1。AstaClientSocket1的Adress属性填入服务器程序所在机器的IP地址。若服务器程序在同一台机器上,则IP地址默认为127.0.0.1。Port属性与服务器程序端口一致(若服务器程序未作改动此值为9000,当然也可选用其他数值)。AstaClienDataset1的属性与一般数据表Ttable相同,首先选择DataBasename属性,然后选取tablename。最后把Active 设为true(相当于执行了SQL语句:Select * from[tablename])。本例中tablename选取employee.db。
—- 3. 把结果表现出来
—- 同一般数据库应用程序一样,在窗体上放入Datasource1,其Dataset属性设为AstaClientSocket1,放入DBGrid,其Datasource设为 Datasource1,则简单客户程序就完成了。
—-运行此程序即可看到数据表格。此客户端程序无须任何动态库即可在客户端运行,是完全的瘦客户。需要注意的是,AstaClientSocket的ConnectAction属性有多种选择,分别规定了客户端到服务器端的连结状况,大家可分别试试看有何结果。至于安全性设置、实时信息传递,可参阅随机帮助文件。
分类: 未分类 标签: , ,

[转]ASTA中间件

2007年2月10日 没有评论
        几年前我用MTS的时候就听说ASTA了,后来我们公司也搞与MIDAS和ASTA类似的中间件TM+BSO,现在MTS升华到COM+,我们的TM由于稳定性和效率不够也夭折了,最近一个朋友在一家大型物流软件公司做开发,说还在使用ASTA,去ASTA网站看看,还活得很健壮,支持delphi2006、SOAP,还搞什么ASTA Wireless。
朋友说他们用ASTA最主要是节省数据库连接数量,减少数据库连接购买费用,再有就是要向客户吹嘘3-Tier,根本没有写什么Business Object,执行速度也是很慢。
我下了ASTA3版本看了看,可能他比MIDAS招人喜欢在这几个地方:
1、资料打包速度比MIDAS快,都用ADO引擎,22万笔资料,TDataSetProvider打包要980秒,ASTA只要377秒;(实际上有更绝的,直接把ADODataSet存到_Stream送到客户端,只要14秒)
2、 中间层服务器内置了资料元件(DataObject),客户端传入SQL语句就可查询出资料。这在很多刚搞3-tier的人看来认为很方便,因为他们按Borland的范例,客户端有多少DataSet,服务器就会有多少DataSet和相同数量的DataSetProvider,常常光处理资料就要在服务器大动干戈,还不要谈Business Function。
3、纯Delphi源码的服务器,可以自己增加些必须的画面,比如参数设定、日志管理、运行状况监控等等,这在COM+或别的中间件是无能为力的。
有几个疑问的地方:
1、ASTA也说Thin Client,客户端不装数据库引擎就是瘦客户端?瘦了多少,九牛一毛。那些Form无论包在bpl还是dll里都是要安装或下载到客户端去的。(除非都动态生成Form,嗯,难度大…)
2、 数据库连接真能省下来?我们知道一个TADOConnection就是一个连接,一个Session,服务器必须为每个并发的使用创建一个TADOConnection,如何省?除非ASTA在服务器限制了TADOConnection的创建数量,超过就等待。(像SQLServer的连接授权是认Session还是Workstation?)因此,要省连接除非减少并发数量,就是你的服务器Data Object和EntityObject规划得比较好,在最迟的时间以最短的时间访问数据库,因为服务器元件是无状态的,可以用完就给别人用,而C/S模式下一个客户端的Session是要一直连接的。(补记:SQLServe有两种授权模式,对设备和对CPU,对设备就是Workstation,一台PC无论开几个TADOConnection连接都只算一个,对CPU指服务器的CPU,workstation就是可以无限多。因此,有了中间层,就只需要购买中间层服务器的授权,可以大大节省授权费用。)
3、速度问题,3-tier当然不能一次把很大资料送到客户端去,送去干嘛?运算?先在服务器的Entity Object运算。浏览显示?学网页分页分批显示咯。
分类: 未分类 标签: , , ,