📄 熟悉 midas (2001年1月18日).txt
字号:
熟悉 MIDAS (2001年1月18日)
网友更新 分类:数据库 作者:Jani Jarvinen 推荐:jennykiller 阅读次数:525
(http://www.codesky.net)
--------------------------------------------------------------------------------
你可能已经注意到了DELPHI中的缩写MIDAS,然而你可能和多数DELPHI的开发者一样,并未意识到这种技术带来的巨大进步。Jani Jervinen 描述了MIDAS-Multi-tier Distributed Application Services Suite是如何让你把CLIENT/SERVER应用转换成多层应用的。
传统的CLIENT/SERVER应用已经延续了很长时间,多数的DELPHI开发者通过编写应用程序来提高水平。CLIENT/SERVER技术对需要访问远端数据的简单数据库应用来说是个好的解决方案。
例如,DELPHI可以很方便的访问ORACLE或MICROSOFT SQL SERVER 数据库。然而,随着应用的增大,维持它会消耗越来越多的资源。同时,随着应用程序的用户增加,性能会成为重要的问题。
而且,INTERNET时代需要系统每天24小时不间断运行。在CLIENT/SERVER应用中,后端数据库管理系统DBMS扮演着重要角色。如果服务器处理客户端的请求失败,会导致客户端应用的失败。
把多层变为视图
为解决这个问题可以用多种解决方案。分布式就是其中一种,我确信你已经不止一次听到过这个词。然而,分布式应用的一个必须认真考虑的问题就是你必须对前面提到的问题非常熟悉。
虽然有很多方式来建立分布式应用,DELPHI的用户仍然会对MIDAS技术感兴趣。MIDAS已经成为DELPHI3及其后继版本的一部分。如果你用的是DELPHI CLIENT/SERVER的企业版,MIDAS的强大优势仍然值得另外的花费。
通过MIDAS,你可以把CLIENT/SERVER应用分发到层,每一层实现一种逻辑上独立的功能。多层应用的优点就是你可以很方便的替换应用中的每一层,因为每一层都不知道其他层是如何实现它们的功能的。并且,每一层通过特殊的方式和其他层通讯,并只对其他层提供的服务感兴趣,而不是如何提供这种服务。
最简单的分布式应用是三层式应用。在三层式应用中,客户端的角色就是显示数据。中间层处理所有的交易逻辑,第三层是数据库服务器。如图1所示。
图1
为什么多层?
多层应用的优势在你比较传统应用和多层应用的维护时会变得很明显。当你不得不修改CLIENT/SERVER应用时,你需要重建一个新的版本并重新部署它。如果有很多客户,你可能需要整周的时间来做这件事。
例如,假设你在创建一个用于计算销售人员工资的工资表的应用。工资依赖于销售人员的销售情况,突然,老板告诉你计算方法需要修改。
在CLIENT/SERVER应用中,你需要修改客户端的程序。然而,如果你已经把交易逻辑(计算方法)从用户接口中分离出来,你就只需要替换中间层的应用。比较修改100个客户端和只修改中间层的花费,不言而喻。
然而,节省开支并不是建立多层应用的唯一理由。当第一层只是用来显示数据,建立INTERNET应用就会变得更经济。例如,我的很多客户问我如何创建他们最好的基于WEB的应用。我通常告诉他们解决这个问题的最好方法就是首先用MIDAS建立一个多层应用的版本,然后为它创建一个WEB用户接口。当然,分布式应用对多层式来说解决起来并非难事,但是一旦你体会到了这项技术的优越性,你就会很快知道它什么时候有用或无用。
MIDAS 很容易创建
现在你已经知道了为什么多层式对传统的CLIENT/SERVER应用来说是种很好的选择了,现在是更进一步学习MIDAS的时候了。第一个版本的MIDAS是在DELPHI 3 CLIENT/SERVER中发布,所以在DELPHI 5 企业版中MIDAS已经是第三个版本了。虽然MIDAS最初是设计用于DELPHI,它同样可以用于DELPHI的姊妹产品C++BUILDER。和DELPHI的其他应用开发一样,MIDAS的开发就是把控件放到FORM上。所有的MIDAS控件可以在组件模板‘MIDAS’(见图2)中找到。由于MIDAS是用来在层间传送数据库数据,多数控件跟共享和操作数据有关。表1对DELPHI 5 中所见到的控件给出了简单的描述。
图2
表 1. DELPHI 5 中的MIDAS 控件。
控件 描述
TClientDataSet (Enhanced TTable replacement to be used in MIDAS client applications)用于MIDAS的客户端应用的增强的Ttable替代控件
TDCOMConnection (Connection component for using DCOM)用DCOM连接的连接控件
TSocketConnection (Lightweight connection component that uses TCP/IP)用TCP/IP连接的方便的连接控件。
TDataSetProvider (Component to "export" a dataset from a MIDAS application server)从MIDAS应用服务器‘输出’数据集的控件
SimpleObjectBroker (Simple component to help in load-balancing MIDAS applications)用于MIDAS应用的负载平衡的简单控件
TWebConnection (Component for tunneling database data through HTTP)通过HTTP访问数据库数据的控件
TCorbaConnection (Can be used to connect CORBA and MIDAS applications)可以用来连接CORBA和MIDAS应用
在MIDAS应用中,客户端应用通过应用服务器来取数据,应用服务器依次从数据库取数据。应用服务器把数据库中的数据打包并返回给客户端。在MIDAS术语中,应用服务器成为提供数据给客户端。
MIDAS 提供了三种不同的连接方式(CORBA 连接是特殊的并且通常不包含在内),一个应用服务器可以同时支持所有连接。应用服务器使用常规的数据库控件来访问数据库,然后用一个数据provider控件来允许客户端应用来访问数据。客户端应用使用连接控件来连接应用服务器。连接方式依赖于客户端的应用—例如,简单连接可以用TCP/IP,然而复杂的客户端应用就要用DCOM连接。
客户端的应用在使用连接控件的同时使用Client Dataset控件,它的作用就象平常的Ttable一样。例如,Client Dataset控件支持合计字段,过滤器,和主/从关系,使你对MIDAS感到适应。
建立一个应用服务器
现在你可以用你的MIDAS知识来建立一个真正意义上的应用了。和所有的MIDAS应用一样,最好从应用服务器端开始开发。首先,启动DELPHI并选择一个New Application。改变自动生成的FORM的大小以使它可以放一个Tlable控件,然后在它上面放一个Tlable控件,改变它的Caption属性,比如改为‘My MIDAS Server’。 Label 和 form 的大小并不重要,因为它们只是用来在屏幕上指示MIDAS应用服务器。通常应用服务器根本不包含任何用户接口,但为了学习,最好有个简单的用户接口。它只是让你来控制服务器。
我在建立MIDAS应用服务器时最喜欢的一步就是设置窗口的背景颜色。改变主窗体的颜色对于确信应用服务器处于运行状态来说是个很好的方法。当然,这只是在你创建服务器的用户接口时才有用。
现在,选择绿颜色,并设置label的字体颜色为白色,以增加对比度。然后从FILE菜单中选择NEW,图3显示了NEW对话框中的选项,从中你要选择的是 位于Multitier 页面中的Remote Data Module图标。我在此不想详细描述,但是必须是一个Remote Data Module,因为MIDAS 是建立在COM基础之上的。因此,你的Remote Data Module 会在后面的例子中自动说明。这里有三个不同的data modules 可用的原因就是MIDAS服务器可以用于不同的环境。例如,你的MIDAS应用可以和CORBA应用通讯。
图3
现在回到代码中,按New Items 对话框的OK按钮后,你就会看到图4所示的向导。因为remote data module是一个COM对象,你需要为它指定一个 CoClass 名称。这个名称在你的系统中必须是唯一的,所以我选择‘MyGreenMIDASServer’为它的名称。其他选项用它的缺省值,你需要参考表2来了解这些选项的用途。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -