IBM®
跳转到主要内容
    中国 [选择]    使用条款
 
 
Select a scope: Search for:    
    首页    产品    服务与解决方案     支持与下载    个性化服务    
跳转到主要内容

developerWorks 中国  >  WebSphere  >

为 WebSphere Application Server Enterprise,V5 创建扩展的消息传递应用程序

developerWorks
文档选项

未显示需要 JavaScript 的文档选项

样例代码


级别: 初级

Doina Klinger (dklinger@uk.ibm.com), WebSphere Platform Development, IBM 赫斯利(Hursley)实验室,英国

2003 年 7 月 01 日

扩展的消息传递通过集成 WebSphere Application Server 提供的消息传递与 Enterprise JavaBeans(EJB)组件模型来增强基本的消息传递。

© Copyright International Business Machines Corporation 2003. All rights reserved.

引言

扩展的消息传递(Extended Messaging)通过把 WebSphere Application Server 提供的消息传递与 Enterprise JavaBeans(EJB)组件模型集成在一起增强了前者的功能。WebSphere Application Server Enterprise,V5 中提供了扩展的消息传递服务(Extended Messaging Service,EMS)。WebSphere Studio Application Developer V5 集成版中提供了工具支持,通过为您生成发送、接收消息并处理应答的真实代码使得基于 EJB 开发复杂的消息传递应用程序更容易、更快。

本教程将指导您构建一个简易的发送方-接收方(sender-receiver)EMS 应用程序,同时帮您:

  • 理解基本的 EMS 概念。
  • 使用各种 WebSphere Studio Application Developer V5 集成版向导创建 EMS 应用程序。
  • 使用 WebSphere Studio Application Developer 集成版的企业单元测试(Enterprise unit test)配置、运行并测试 EMS 应用程序。

本教程是为想体验消息传递的 EJB 开发者或想使用 EJB 的消息传递开发者编写的,并且假定读者对 EJB 2.0 的概念有基本的理解,特别是对 WebSphere Studio Application Developer 中的消息驱动 Bean(Message Driven Bean)与 EJB 支持要有基本的理解。为遵照本教程中的指示执行,您将需要 WebSphere Studio Application Developer V5 集成版(以下称为 Application Developer)。





回页首


扩展的消息传递服务概览

EMS 提供了一个简易的编程模型,它本质上是一个 EJB 编程模型,用来处理传入消息与外发消息、发送应答和关联响应。EMS 建立在 Java 消息传递服务(Java Messaging Service,JMS)的基础之上。它通过使用两个主要的简单消息传递模型:单程(one-way)与请求-应答(request-reply),鼓励把业务逻辑与消息传递逻辑分开。可以把这些模型组合在一起来创建复杂的消息传递应用程序,并且还可以用两种类型的消息 bean - sender bean 和 receiver bean - 支持它们:

  • sender bean 是一个无状态的会话 EJB,它包含发送消息和接收响应的方法。它通常是把给定的参数从发送消息转换为 JMS 消息,然后把响应消息转换回期望的返回格式和异常类型。sender bean 用一种被称为输出端口的资源来表示传输配置。
  • receiver bean 可以是异步的,也可以是同步的:
    • 异步 receiver bean 基于消息驱动 Bean(Message Driven Bean),侦听器服务一接收到消息就调用它。receiver bean 对消息解包,然后使用其内容调用目标业务逻辑 EJB 上的方法并将返回值作为应答消息送回(最后的返回步骤可选)。
    • 同步 receiver bean,也被称为应用程序可调用接收器 Bean(Application Callable Receiver Bean),基于无状态会话 EJB 并包含接收数据和发送应答的方法。没有用于这种 bean 的侦听器,并且从名称上也可以看出,应用程序需要调用 receiver bean 上的相关方法。同步 receiver bean 使用输入端口来表示传输配置。

欲了解有关扩展的消息传递这个概念的更多信息,请参阅 相关信息





回页首


样本应用程序

我们来看一个非常简单的 EMS 应用程序来了解它究竟是怎么运行的。

假定我们有一个称为 ShopBean 的 EJB,它包含销售书籍和 CD 的逻辑。它有两个方法: sellBook(title,author,ISBN)sellCD(title,author) ,用来查询和更新数据库,然后返回各个商品的价格。我们想一接收到消息就调用 ShopBean EJB。为什么?主要是想利用消息传递提供的好处:松散耦合的系统与异步性。通过 EMS,我们不必对 ShopBean 作任何修改就可以调用消息驱动的 receiver bean 中的一个 ShopBean 方法。receiver bean 将由工具生成。

我们还将用工具构造一个发送方,这个发送方将生成接收方期望的消息。客户机将能够调用 sender bean 的方法,可能还不知道消息传递甚至还可以用来触发处理过程。在这种情况下,客户机可以是任何 EJB 客户机:servlet、Java 应用程序或者另一个 EJB。

在购书时,我们订购书并收到一个相关因子。稍后我们将检索应答,也就是价格。这种被称为"延迟响应的发送(send with deferred response)" 的交互方式演示了我们通过 EMS 得到的消息传递操作的松散耦合。


图 1:EMS 样本
EMS 样本

下一部分概括了创建样本 EMS 应用程序的步骤。您可以选择下载应用程序而不必从零开始构建应用程序。如果您选择下载应用程序的话,请跳到 配置、运行和测试 EMS 应用程序这一部分。





回页首


构建 EMS 应用程序

EMS 样本应用程序 emsSample.ear 将包含两个 EJB 项目:

  • Receiver: 包含应用程序 EJB ShopBean 以及由工具生成的 EMS bean Receiver
  • Sender: 包含由工具生成的 EJB Sender

因此,为构建 EMS 应用程序您需要:

  1. 创建应用程序 EJB
  2. 创建 receiver bean
  3. 创建 sender bean

下面几部分概括了完成上述每一项任务的步骤。

A. 创建应用程序 EJB

  1. 启动 Application Developer。

    在下面几个步骤中,您将创建一个 EJB 项目。

  2. 选择 Window => Open Perspective => J2EE以进入 J2EE 透视图。若所列选项中没有 J2EE,请选择 Other => J2EE
  3. 选择 File => New => EJB => EJB Project => Create EJB 2.0 project
  4. 在对话框中输入下列值(图 2):
    • Project name: Receiver
    • Enterprise application project: New
    • New project name: emsSample
    选择 Finish
    图 2. 创建一个 EJB 项目
    创建一个 EJB 项目

    在下面几个步骤中,您将创建 EJB 应用程序 ShopBean。为简单起见,应用程序 EJB 将和 receiver bean 创建在同一个 EJB 项目中。

  5. 选择 File => New => EJB => Enterprise Bean
  6. 为 EJB project 选择 Receiver,然后选择 Next
  7. 在对话框中输入下列值(图 3):
    • EJB 2.0 type: Session bean
    • Bean name: ShopBean
    • Default package: ems
    先选择 Next,然后选择 Finish
    图 3. 创建目标 EJB
    创建目标 EJB
    该应用程序 EJB 将包含应用程序的业务逻辑,通常由各种数据库查询和更新组成。考虑到本示例的目的,我们将把业务方法设置为返回常量值。

  8. 编辑 ShopBeanBean.java 文件以添加方法,如下所示:

    public String sellBook(String title, String author, String ISBN)
    { // Do something useful here
          return "?0";
    }

    public String sellCD(String title, String author)
    { // Do something useful here
          return "?5";
    }
  9. 在 Application Developer 的 Outline 视图(图 4)中,将 sellBooksellCD 方法一起选择,右键单击并选择 EnterpriseBean => Promote to remote interface
  10. 通过选择 File => Save All保存这些变动。
    图 4. 添加到远程接口
    添加到远程接口

B. 创建 receiver bean


在下面的几个步骤中您将创建 receiver bean,创建方法是定义该 bean 所基于的属性并选择它一接收到消息就调用的方法。
  1. 在 Application Developer 的 J2EE Hierarchy视图中,展开 EJBProject组。
  2. 右键单击 Receiver ,然后从弹出窗口选择 Extended Messaging => Create Receiver Bean
  3. 单击 Create Receiver按钮。这样将启动 Create an Enterprise Bean 向导(图 5)。
  4. 在对话框中输入下列值:
    • Bean name: Receiver
    • Default package: ems
    选择 Next
    图 5. 创建 receiver EJB
    创建 receiver EJB
  5. 在下一个对话框中输入下列值:
    • Destination type: Queue
    • Listener port name: emsLPort
    选择 Finish
  6. 返回到向导(图 6),输入下列值:
    • Reply information: Send reply
    • Message format identifier: BOOK
    选择 Finish
    图 6. 创建 receiver bean
    创建 receiver bean
    Message format identifier 用于把发送端和接收端关联在一起,因此 sender bean 和 receiver bean 使用相同的标识相当重要。

  7. 选择 Next
  8. 在 Application EJB 对话框(图 7)中,您需要选择 receiver bean 将调用的方法。请输入或选择下列值:
    • 选择 Call method on the remote or local interface of a target ejb
    • Application EJB Project: Receiver
    • Application EJB: ShopBean
    • 选择 Remote interface
    • Application method: sellBook
    • 接受 EJB Reference Information 域的缺省值。
    • 选择 Next

    图 7. 选择 receiver bean 的目标
    选择 receiver bean 的目标
  9. Summary 页面将显示向导完成时所发生的事情的描述:
    • receiver bean 被生成
    • onMessage 方法被更新为调用目标方法
    • 为 receiver bean 生成了一个 EJB 引用
    • 为目标 EJB 生成了一个 WebSphere 绑定。
    选择 Finish

C. 创建 sender bean


在下面的几个步骤中,我们将创建一个 sender bean,它能生成 receiver bean 期待的消息类型。由于使用的交互方式是“延迟响应的发送”,所以 sender bean 会有一个方法用于发送请求,一个方法用于接收响应。这种交互方式的好处是把两个消息传递操作分开了。客户机可以调用第一个方法来执行发送,然后去做一些其他工作,稍后再检索响应。正如下面所述,相关因子用于连接请求与后来的响应。
在接下来的几个步骤中,您将创建一个 EJB 项目。
  1. 在 Application Developer 中,选择 File => New => EJB => EJB Project => Create EJB 2.0 project
  2. 输入下列值:
    • Project name: Sender
    • Enterprise application: emsSample
    选择 Finish

    在接下来的几个步骤中,您将创建 sender bean。

  3. 在 Application Developer 的 J2EE Hierarchy视图中,展开 EJBProject组。
  4. 右键单击 Sender ,然后选择 Extended Messaging => Create Sender Bean
  5. 单击 Create Sender按钮。这样将启动 Create Sender Bean 向导(图 8)。
  6. 在下一个对话框中输入下列值:
    • Bean name: Sender
    • Default package: ems
  7. 先选择 Next,然后选择 Finish。您将返回到 Create Sender bean 向导。
  8. 返回到这个向导,输入下列值:
    • Output port JNDI name: oPort
    • Response information: Deferred response
    • Message format identifier: BOOK

    图 8. 创建 sender bean
    创建 sender bean
    Message format identifier 用于把发送端和接收端关联在一起,因此确保 sender bean 和 receiver bean 使用相同的标识相当重要。Output port JNDI name 是将被配置在运行时环境中的资源的 JNDI 名称。

  9. 选择 Next
  10. 在 Send with deferred response 对话框(图 9)中,输入下列值:
    • Sending method name: orderBook ,并选择 Add to remote interface
    • Response timeout option:选择 No timeout
    • Method name: getBookPrice ,并选择 Add to remote interface
    选择 Add to remote interface将新生成的方法提升为 sender bean 的远程接口。
    图 9. 发送方法
    发送方法
    为了使 EMS 运行时能够标识与响应关联的初始请求,发送方法会返回一个相关因子,并将这个相关因子作为第一个参数传回接收方法。发送方法的返回类型是 CMMResponseCorrelator对象类型。

  11. 接下来将决定如何定义方法说明。您可以:
    • 通过输入发送方法的参数、返回值和异常(将发送的对象类型以及您期望返回的响应)来显式地定义方法特征符。
    • 定义并验证方法说明。这一步的选项与上面的选项基本相同,不同的是您可以选择对象类型(而不是手工输入它们)并且向导为您验证这些对象类型。
    • 如果能获得发送方法将在接收端调用的方法,就可以通过选择它来定义发送方法的说明。对于本示例来说这是最容易的选择,因为我们具有所需的信息,并且它能确保两端所期望的消息格式相匹配。
    请记住,发送方法的属性(例如,参数的数目、顺序、类型和返回类型)与在接收端被调用的目标方法的属性要完全匹配这一点至关重要。

    先选择 Use method signature from the target bean,然后选择 Next

  12. 在 Target Receiver Bean method 对话框(图 10)中,选择将被 receiver bean 调用来构造发送方法说明的方法。输入下列值:
    • Application EJB Project: Receiver
    • Application EJB: ShopBean
    • Application method:选择 Remote interface,然后从下拉列表中选择 sellBook
    对话框将显示如何根据您的选择构造被生成的方法的说明。
    图 10. 使用 receiver bean 目标获得发送方法的说明
    使用 receiver bean 目标获得发送方法说明
  13. 先选择 Next,然后选择 Finish

当向导完成时就生成了 sender bean,包括也将被添加到远程接口的消息传递方法。同时还创建了输出端口的资源引用以及它的 WebSphere 绑定。

故障诊断

下面的提示可以帮助您在执行上述步骤时避开一些常见的错误:

  • 上述向导会显示一个 Summary 页面,列出向导将完成的操作。如果其中有与您的期望不一样的地方,请在结束该向导前返回并更改您的选项。建议您不要修改已生成的代码。
  • 请确保选择了 Promote to remote interface。如果您没有选择该选项,就需要通过显式方式 将发送方法提升为远程接口。
  • 请确保添加了输出端口的 JNDI 绑定,或者 receiver bean 的 EJB 目标或侦听器端口。另外,您还需要用部署描述符(Deployment Descriptor)编辑器编辑 EJB 项目。




回页首


配置、运行并测试 EMS 应用程序

为查看运行中的扩展的消息传递应用程序,您需要:

  1. 创建服务器与服务器配置
  2. 配置 JMS 资源与 receiver bean 的侦听器端口
  3. 创建 sender bean 的输出端口
  4. 安装并运行应用程序
  5. 用通用测试客户机测试应用程序

下面几部分概括了完成上述每一项任务的步骤:如果您选择了绕过上面的应用程序构建阶段,您同样需要下载并安装本文附带的应用程序:

  • 下载本文提供的 emsSample.ear 文件。
  • 通过选择 File => Import => EAR File将 EAR 导入 Application Developer,并使用下列值:
    • Project name: emsSample
    • 选择下载的文件。
  • 修改 EJB 项目 ReceiverSender 的类路径,方法是进入 Application Developer 的 J2EE 透视图:
    1. 在 J2EE hierarchy 视图中,展开 EJBProject组。
    2. 右键单击 Receiver ,选择 Properties => Java Build Path => Libraries
    3. 选择 Add Variable
    4. 先选择 WAS_EE_V5 ,然后选择 Expand
    5. 先选择 lib\cmm.jar ,然后选择 OK
    6. Sender 重复以上操作。
    这种处理应该能减少可能会发生的编译错误。

A. 创建服务器与服务器配置


通过下面几个步骤,您将创建并配置 WebSphereApplication Server Enterprise V5.0 测试环境。
  1. 在 Application Developer 中,选择 Window => Open perspective => Other => Server
  2. 选择 File => New => Server => Server and Server Configuration
  3. 在 Create a New Server and Server Configuration 对话框中输入下列值(图 11):
    • Server name: WASEE
    • Folder: Servers
    • Server type:选择 WebSphere version 5.0 => EE Test Envitronment

    图 11. 创建新服务器
    创建新服务器
  4. 选择 Finish。如果被提示创建一个新的 Servers 文件夹的话,请选择 Yes

B. 配置 JMS 资源和侦听器端口


创建了测试环境后,您现在可以用服务器配置编辑器来启用管理控制台客户机、创建 JMS 资源和一个侦听器端口。
  1. 在 Application Developer 的 Server Configuration 视图中,展开 Server Configurations树。双击 WASEE来启动服务器配置编辑器(图 12)。
  2. 您需要用 Application Developer 的 WebSphere Application Server Enterprise V5.0 的管理控制台创建输出端口。在服务器配置编辑器的 Configuration 窗格中,选择 Enable administration console(图 12)。
    图 12. 为服务器启动管理客户机
    为服务器启动管理客户机
    请注意服务器配置编辑器底部的选项卡(图 12 中也有显示)提供的其他窗格,特别是 JMS 和 EJB 这两个选项卡提供的窗格。在接下来的步骤中会用到它们。

    由于 EMS 是基于 JMS 的,所以您需要定义 JMS 受管对象:

    • 连接工厂:客户机用它来创建到提供者的连接
    • 目的地:用来指定已发送消息的目标以及已接收消息的源。

    对于本示例,您将在 JMS 窗格中配置下列各项:

    • 队列连接工厂: myQCF
    • 两个目的地: myQueue (请求的目的地)和 myReplyQueue (响应的目的地)。

  3. 选择服务器配置编辑器的 JMS选项卡(图 12)。
  4. 对于本示例,您将声明 JMS 资源为节点(Node)级。向下滚动到 Node Settings部分,然后展开。
  5. 在 WASQuenueConnetionFactory 部分的旁边,选择 Add(图 13)。
    图 13. 为节点配置 JMS 资源
    为节点配置 JMS 资源
  6. 在 Add WASQueueConnectionFactory 对话框(图 14)中,输入下列值:
    • Name: myQCF
    • JNDI Name: ems/myQCF
    • Node:选择 localhost
    • Server Name:选择 server1
    选择 OK
    图 14. 添加 JMS 队列连接工厂
    添加 JMS 队列连接工厂
  7. 再次到 Node Settings 部分(图 13),向下滚动到 WASQueue entries 部分,然后选择 Add
  8. 在 Add WASQueue 对话框中,输入下列值:
    • Name: myQueue
    • JNDI Name: ems/myQueue
    • Node: localhost
    选择 OK
  9. 为应答队列(reply queue)重复第 8 步,用下列域值替换上面的相应域值:
    • Name: myReplyQueue
    • JNDI Name: ems/myReplyQueue
  10. 现在您需要将队列添加到 JMS 服务器,然后激活它。在服务器配置编辑器的 JMS选项卡中,向下滚动到 Server Settings 部分。
  11. 选择 JMS Server Properties 下面 Queue Names 域旁边的 Add(图 15)。
  12. 添加您刚刚定义的队列 myQueue 。确保 Initial State 域被设置为 START
    图 15. 将 JMS 队列添加到 server settings。
    将 JMS 队列添加到 server settings
  13. myReplyQueue 重复第 12 步。

    侦听器端口被用于把 JMS 资源及已部署的消息驱动 bean 与处理传入消息的侦听器服务关联在一起。receiver bean 基于消息驱动 bean,因此需要与侦听器端口关联在一起。

  14. 选择 Application Developer 中服务器配置编辑器的 EJB选项卡(图 12),然后选择 Add
  15. 在 Add Listener Port 对话框(图 16)中,输入下列值:
    • Name: emsLPort
    • Connection Factory JNDI name: ems/myQCF
    • Destination JNDI name: ems/myQueue
    选择 OK
    图 16. 添加侦听器端口
    添加侦听器端口
  16. 保存服务器配置并关闭所有窗口。

    由于我们在运行向导时已指定了 JNDI 绑定,所以不需要将 J2EE 模块中的本地 JNDI 名称映射到服务器中定义的实际 JNDI 名称。

C. 创建输出端口


输出端口会简化您对已部署的 sender bean 的传输细节的管理。输出端口的主要条目是连接工厂和一个或更多的目的地。这就使得与输出端口关联在一起的所有已部署的 sender bean 都能够将消息发送到目的地。您也可以指定响应的细节(目的地和连接工厂)以及各种 JMS 发送参数。
  1. 为创建输出端口,您首先要启动应用程序服务器,然后打开管理控制台。为从 Application Developer 进行上述操作,请转到 Server 视图并选择 WASEE服务器。右键单击服务器名并选择 Publish => Start(图 17)。
    图 17. Servers 视图中的 WASEE 服务器的上下文菜单
    Servers 视图中 WASEE 服务器的上下文菜单
  2. 切换到 Console 视图,等待指出服务器已启动的 Server1 Open for e-business消息。返回到 Servers 视图(图 17)。
  3. 再次右键单击 WASEE,然后选择 Run administrative client(现在它应该是一个可用选项)。这样就启动了 Admin Console。

    进行输出端口配置的其余步骤将用 WebSphere Application Server 企业版测试环境的管理控制台(Admin Console)执行。

  4. 在 Admin Console 上输入任意用户 ID,然后选择 OK
  5. 在左窗格中,选择 Servers => Resources => Extended Messaging Provider(图 18)。
    图 18. 使用 EMS 提供者配置输出端口
    通过 EMS 提供者配置输出端口
  6. 选择 OutputPort链接,然后为 node settings 选择 New。输入下列值,如图 19 所示:
    • Name: oPort
    • JNDI Name: oPort
    • JMS Connection Factory JNDI Name:选择 ems/myQCF
    • JMS Destination JNDI Name:先选择 ems/myQueue ,然后选择 Add
    • JMS Reply Connection Factory JNDI Name:选择 ems/myQCF
    • JMS Reply Destination JNDI Name:选择 ems/myReplyQueue
    选择 Add。输出端口的 JNDI 名称必须与先前运行 Sender bean 向导时为 JNDI 绑定指定的 JNDI 名称相同。
    图 19. 输出端口配置
    输出端口配置
  7. 选择 OK。现在您已经创建了输出端口。
  8. 在页面顶部选择 Save => Save以保存配置。
  9. 选择 Logout以退出并关闭浏览器。

D. 安装并运行应用程序


为此,您首先要为您的应用程序生成部署代码,将这些代码添加到服务器,然后再重新启动服务器。
  1. 在 Application Developer 中,自 J2EE 透视图返回到 J2EE Hierarchy 视图,然后展开 Enterprise Application组(图 20)。右键单击 emsSample ,然后选择 Generate Deploy Code
    图 20. 为企业应用程序生成部署代码
    为企业应用程序生成部署代码
  2. 再次从 J2EE Hierachy 视图展开 Server Configuration组。右键单击 WASEE ,然后选择 Add => emsSample(图 21)。
    图 21. 向服务器添加 EMS 应用程序
    将 EMS 应用程序添加到服务器
  3. 这一步完成后,您需要重新启动服务器。在 Servers 视图中,从 WASEE 服务器的上下文菜单(图 17)选择 Restart

E. 测试应用程序


为测试应用程序,您实际需要的只是任意一个调用发送 bean 的方法的标准 EJB 客户机。一旦创建了 sender bean 实例,您只需调用适当的消息传递方法即可。下面的客户机代码展示了一个进行这种处理的示例:
..
Sender sender = ..;
CMMResponseCorrelator corr = sender.orderBook("Java in Nutshell","David Flanagan", "");
...
String price = sender.getPrice(corr);

考虑到本示例的目的,您将使用通用测试客户机( Universal Test client)来测试消息传递应用程序。
  1. 从 Servers 视图(图 17)右键单击 WASEE并选择 Run universal test client
  2. 在测试客户机启动时选择 JNDI Explorer。请确保输出端口资源定义 oPort 出现(图 22)。如果 oPort 没被列出,就是配置没有保存好。如必要的话,返回到 C部分进行纠正。
  3. 展开并选择 ejb => ems => SenderBeanHome(图 22)。
    图 22. 通用测试客户机的 JNDI Explorer 视图
    universal test client 的 JNDI explorer 视图
  4. 在 EJB reference 视图中,展开 EJB References => Sender,然后选择 create方法。
  5. 在右面板中,先选择 Invoke,然后选择 Work with Object
  6. 新创建的 Sender 对象实例 Sender_1 现在被添加到了左面板(图 23)。展开它并 Invoke orderBook 方法。在我们的例子中,业务方法总是返回相同的硬编码价格,因此发送的参数值之间没什么关联(您可以让它们保持为空)。
  7. 为返回值选择 Work with Object。相关因子被添加到 Object References 的列表。
  8. 选择 Sender_1对象下面列出的 getPrice。在参数列表上,选择先前创建的相关因子,然后选择 Invoke。被请求的书价应该出现在 Results部分。
    图 23. 通用测试客户机的 EJB reference 视图
    universal test client 的 EJB reference 视图
  9. 停止服务器并关闭客户机。




回页首


结束语

本教程阐述了如何通过 WebSphere Studio Application Developer V5 集成版创建使用扩展的消息传递的基本 EJB 应用程序。这里提供的信息也可用作体验更高级 EMS 功能的基础,关于更高级的 EMS 功能我们将在以后的文章中做进一步的探讨。





回页首


相关信息






回页首


下载

名字大小下载方法
emsSample.ear0.1 MBHTTP
关于下载方法的信息


关于作者

Doina Klinger是 IBM 赫斯利实验室的一名软件工程师。她曾设计并开发过 WebSphere Studio Application Developer V5.0 集成版中的扩展的消息传递支持,并对 Eclipse 与消息传递技术很感兴趣。Doina 在 1999 年获得柏杜大学计算机科学专业的理学硕士学位后,于 2000 年加入了 IBM。您可以通过 dklinger@uk.ibm.com与 Doina 联系。




对本文的评价










回页首


IBM 公司保留在 developerWorks 网站上发表的内容的著作权。未经IBM公司或原始作者的书面明确许可,请勿转载。如果您希望转载,请通过 提交转载请求表单 联系我们的编辑团队。
    关于 IBM 隐私条约 联系 IBM 使用条款