科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道用于Java的SCA客户机和实现模型

用于Java的SCA客户机和实现模型

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

SCA Java 实现模型提供了用于在 Java 中实现 SCA 组件的框架。组件实现可以提供服务,也可以充当其他服务的客户机。本文将说明 SCA Java 组件实现和非 SCA Java 组件实现可以如何获得对服务的访问和调用服务方法。

作者:Sreedevi Penugonda 来源:论坛整理 2007年11月17日

关键字:

  • 评论
  • 分享微博
  • 分享邮件

在本页阅读全文(共4页)

 从非 SCA 组件实现访问服务

  属于 SCA 模块一部分的非 SCA 组件使用模块上下文获取对服务的访问。它们在其实现中使用 ModuleContext 查找服务。它们通过 CurrentModuleContext 类获取对 current ModuleContext 的访问,如清单 15 中所示。

  清单 15. CurrentModuleContext 类

package org.osoa.sca;
public final class CurrentModuleContext {
public static ModuleContext getContext() {... }
}

  非 SCA 组件实现将包括与以下所示类似的代码行,以获取对模块上下文的访问:ModuleContext moduleContext = CurrentModuleContext.getContext();

  错误处理

  调用服务方法客户机时可能会遇到以下异常:

  • 业务异常——由被调用的服务方法的实现引发。
  • SCA 运行时异常——由 SCA 运行时引发,指示组件的异常管理及与远程服务的交互中存在的问题。当前受支持的 SCA 运行时异常有服务运行时异常和服务不可用异常。

  异步编程

  在服务的异步编程中,客户机调用服务,并在不等待服务执行的情况下继续进行自身的执行。

  SCA 异步编程模型支持三种类型的异步调用。即:

  • 非阻塞方法调用
  • 对话服务
  • 回调
  • 非阻塞调用

  通过使用非阻塞调用,客户机可调用服务并立即继续进行后续处理,而不必等待服务执行。非阻塞方法使用 @Oneway Annotation 进行调用。当前 SCA 支持对返回“void”且没有已声明异常的方法进行非阻塞调用。

  对话服务

  服务的客户机和服务提供者之间的对话经常在远程服务执行期间发生。传统编程模型要求编写大量的代码来支持此模式。SCA 简化了对话服务的设计,而将 ID 生成、状态管理和路由的细节留给 SCA 容器处理。

  在 SCA 中,使用会话来维护有关客户机和远程服务间的单个对话的信息。SCA 使用 @Scope、@Session 和 @SessionID Annotation 来实现对话服务。

  回调

  回调服务提供从服务提供者回到其客户机的异步通信。双向服务使用的回调是具有两个接口的服务,一个供服务提供者使用,另一个供客户机使用。

  SCA 通过在远程服务接口上使用 @Callback Annotation 来提供回调服务(接受接口的 Java Class 对象作为参数)。

  清单 16 显示了 @Callback Annotation 的使用。

  清单 16. @Callback Annotation

package somepackage;
import org.osoa.sca.annotations.Callback;
import org.osoa.sca.annotations.Remotable;
@Remotable
@Callback(MyServiceCallback.class)
public interface MyService {
public void someMethod(String arg);
}
@Remotable
public interface MyServiceCallback {
public void receiveResult(String result);
}

  开放源代码运行时和工具

  有一个开放源代码项目提供服务组件体系结构的运行时实现,可用于运行 SCA 应用程序。此项目称为 Tuscany,目前在 Apache 处于孵化期。此项目的主要参与者有 IBM、BEA、Oracle、Sybase、SAP、IONA 和 Siebel。

  结束语

  本文分别通过 Java 接口和 Java 类组件实现描述了服务的表示形式和实现。文中说明了使用 Java Annotation 的服务实现的配置属性。您了解了从 SCA 和非 SCA 组件访问服务的各种方式,还了解了各种错误处理机制、异步编程模型和各种异步调用。

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章