Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1799140
  • 博文数量: 600
  • 博客积分: 10581
  • 博客等级: 上将
  • 技术积分: 6205
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-06 10:13
文章分类
文章存档

2016年(2)

2015年(9)

2014年(8)

2013年(5)

2012年(8)

2011年(36)

2010年(34)

2009年(451)

2008年(47)

分类:

2009-08-22 13:27:31

第一章 开发BEA Tuxedo应用程序

§1.1 开发前的思考

在开发BEA Tuxedo应用程序之前,你需要先搞清楚一系列和设计开发相关的概念,如识别什么是客户机,有哪些方法可以从外界收集数据并提交服务器进行业务处理;识别什么是服务器,哪些程序包容了可以处理客户机输入的商业逻辑;识别什么是类型缓冲区,客户程序在向其这程序发送数据前如何分配内存区域;什么是BEA Tuxedo的消息范例等。最后你还要弄明白客户程序是通过调用ATMI库来访问BEA Tuxedo系统的。

§1.2 创建BEA Tuxedo的客户程序

创建BEA Tuxedo的客户程序与在CC++编程语言中创建其它应用程序一样,BEA Tuxedo提供了一个其于C语言的编程接口,即应用程序事务监控接口ATMI,这套接口很容易使用,以便用于开发客户程序和服务程序。除了C语言接口外,BEA Tuxedo还提供了COBOL接口。

客户程序的任务

客户程序一般执行如下任务:

⑴.    调用tpchkauth()决定加入一个应用程序所需的安全级别。可能出现的响应包括:没有安全级别,应用程序口令,应用程序授权,访问控制列表,连接级加密,公钥加密,审计。这些可以根据你的需求进行选择;

⑵.    调用tpinit()来连接到一个BEA Tuxedo应用程序,所需的安全信息作为tpinit()的参数传给了应用程序;

⑶.    执行服务请求;

⑷.    调用tpterm()来断开和BEA Tuxedo应用程序的连接。

§1.3 创建的服务程序

尽管开发者使用ATMI编程接口来创建BEA Tuxedo客户程序和服务程序,但服务程序不全部由开发者来编写,开发者只需写一些称为服务的商业函数,然后和BEA Tuxedo的一些二进制程序联编成一个可执行的服务程序。BEA Tuxedo服务程序启动后,它总是保持运行状态,只到接收到一个shutdown消息为止。一个典型的BEA Tuxedo服务程序在shutdownreboot之前都在执行着数千个服务。

服务程序的任务

⑴.    BEA Tuxedo服务程序启动时,执行tpsvrinit()函数,可以在里面打开一些如数据库之类的资源供以后使用;

⑵.    BEA Tuxedo服务程序关闭时,执行tpsvrdown()函数,可以在里面关闭tpsvrinit()中打开的资料;

⑶.    BEA Tuxedo服务程序以服务的形式来响应客户程序的请求,客户程序不是通过名字来调用服务程序的,而是调用服务,客户程序不知道处理它请求的服务程序的位置;

⑷.    服务程序调用tpreturn()函数来结束服务请求,并返回一个缓冲区,必要时,将它传给客户程序;

§1.4 在应用程序中使用类型缓冲区

Bea Tuxedo系统中的所有通信过程都是通过类型缓冲区来完成的,Bea Tuxedo系统提供了大量的类型缓冲区来供开发者使用。所有类型缓冲区都必须通过Bea Tuxedotpalloc(), tprealloc(), tpfree()这些ATMI来分配回收,它们都有特定的头部。

 

统一定义的类型缓冲区可以使它们在跨越不同网络、不同协议、不同CPU构架以及不同操作系统之间得到统一的处理,这就使得开发者在分布式计算环境中有效地避开了异构网络和异构计算机系统带来的差异,把精力集中在商业逻辑的开发上。

§1.5 BEA Tuxedo应用程序中使用消息范例

1BEA Tuxedo系统提供多种通信模式

⑴.同步Request/Response模式;

⑵.异步Request/Response模式;

⑶.嵌套调用;

⑷.调用转发;

⑸.会话通信;

⑹.主动消息通告;

⑺.基于事件的通信;

⑻.基于队列的通信;

⑼.使用事务。

2. 同步的Request/Response模式

要进行同步调用,Bea Tuxedo客户程序使用ATMI函数tpcall()把一个请求送到服务程序,它不是通过名字来调用服务程序的,而是通过特定的服务来完成。客户程序要等到服务程序作出响应后才处理后面的工作,也就是说,它在收到服务程序的响应之前一直处于阻塞状态。

3.异步Request/Response模式

要进行异步调用,客户程序必须调用两个ATMI函数:tpacall(3c)函数,用于请求一个服务;tpgetrply(3c)函数,用于取得服务程序的响应。客户程序在请求和响应之间要完成特定任务时,可以采用这种模式。

4.使用嵌套调用

一个服务可以充当BEA Tuxedo客户程序,去调用其它BEA Tuxedo服务,换句话说,你请求的服务需要调用其它服务才能处理请求。BEA Tuxedo客户程序调用了服务X,等待它的响应,服务X调用服务Y后也处于等待状态,当服务X得到响应后,再给客户程序一个响应,这种机制的特点是效率高。

阅读(678) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~