3.8创建分布式应用程序
分布式应用程序分布于不同的机器和平台上,一般在网络上共同动作以执行一组相关的功能。例如,一家全国性的公司的关于订单和销售追踪系统,需要在每个销售点上都有单独的客户应用程序,能处理这些客户端的请求的主服务器以及存储与交易有关的所有信息数据库接口,通过创建分布式客户应用程序(例如基于Web的应用程序),大大简化了维护和更新各个客户端的工作。
C++Builder提供了分布式应用程度实现模式的几种选项:
· TCP/IP应用程序。
· COM和DCOM应用程序。
· CORBA应用程序。
· 数据库应用程序。
3.8.1 使用TCP/IP的分布式应用程序
TCP/IP是答应编写基于网络通信的应用程序的通信协议,在应用程序中可以实现任意的设计。TCP/IP提供了传输层,但没有强制规定创建分布式应用程序的特定结构。
Internet的发展使得大部分计算机都已具有某种TCP/IP访问功能,从而简化了分布式应用程序的分布与设置。使用TCP/IP的应用程序可以是基于消息的分布式应用程序(如服务于HTTP请求报文的Web服务器应用程序),也可以是分布式对象应用程序(如使用Windows套接字(Socket)通信的分布式数据库应用程序)。
给应用程序加入TCP/IP功能的最基本的方法是客户端和服务器套接字。C++Builder也支持应用程序生成CGI文件或DLL以扩充Web服务器。此外,C++Builder还支持以TCP/IP为基础的数据库应用程序
1.在应用程序中使用套接字
TClientSocket和TServerSocket两个VCL类能够创建TCP/IP套接字连接和其他远程应用程序通信。
2.创建Web服务器应用程序
要创建新的Web服务器应用程序,可选择FileNew,并在NewItems对话框中选择Web服务器应用程序的类型。
· ISAPI和NSAPI。
· 独立的CGI程序。
· 独立的Win-CGI程序。
CGI和Win-CGI应用程序用到很多服务器系统资源,因此最好将复杂性的应用程序创建为ISAPI和NSAPI应用程序。
(1)ISAPI和NSAPI服务器应用程序
选择这种类型的应用程序需设置工程为DLL。ISAPI和NSAPIWeb服务器应用程序是通过Web服务器装入的DLL,由Web服务器将信息传递给DLL,处理后返回给客户端。
(2)独立的CGI服务器应用程序
CGI服务器应用程序是控制面板应用程序,它通过标准输入从客户端接收请求处理后由标准输出返回给客户端。
(3)独立的Win-CGI服务器应用程序
Win-CGI服务器应用程序是Windows应用程序,它通过由服务器写入而生成的INI文件接收客户端送来的请求,并将结果写入文件,再由服务器发送给客户端。
3.8.2使用COM和DCOM的分布式应用程序
COM(组件对象模型)提供基于Windows的分布式对象结构,它使用预定义的例程调用接口提供具有互操作性的对象,COM应用程序使用的对象是由一个其他进程实现的,或者,假如使用DCOM,则有可能存在于另一台独立的机器上。
1.COM和DCOM
使用C++Builder的类和向导可以很轻易地创建COM、OLE或ActiveX应用程序的基本元素。用C++Builder创建基于COM的应用程序提供了广泛的可能性,从通过在应用程序中使用内部接口改进软件设计,到创建能与系统中其他基于COM对象(比如Windows95扩充和DirectX多媒体支持)进行交互的对象。
2.MTS和COM+
在大的分布式环境中,C++Builder应用程序能够扩展治理对象的非凡的服务,这些服务包括事务服务、安全保护和由Mircosoft事务服务器(MTS,Windows2000以前的版本)或COM+(Windows2000以后的版本)支持的资源治理服务。
3.8.3使用CORBA的分布式应用程序
CORBA(通用对象请求代理结构)是一种在应用程序内使用分布式对象的方法,许多平台使用CORBA标准,因此,编写CORBA应用程序可以使用不在Windows机器上运行的程序。
类似COM、CORBA是一种分布式的对象结构,这就意味着客户端应用程序可以使用在远程服务器上所实现的对象。
3.8.4分布式数据库应用程序
C++Builder提供使用MIDAS技术创建分布式数据库应用程序,这一强大技术包括一组协同工作的组件,可用它们创建范围广泛的多级数据应用程序,分布式数据库应用程序创建在多种通信协议的基础上,包括DCOM、TCP/IP和OLEnterprise。
分布式数据库应用程序通常除了应用程序文件之外,还需要分布式Borland数据库引擎(BDE)。