`
kinkding
  • 浏览: 147924 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

SCA了解

    博客分类:
  • JAVA
阅读更多

1、在公司看到一个《SOA与SCA,SDO》的培训PPT,看到SCA的编程模型(具体见附件),有些看不到懂,特从网上找了一些相关资料分析,具体参考:http://www.ibm.com/developerworks/cn/webservices/ws-sca/

 

资料摘取:

 

服务组件是SCA中的基本组成元素和基本构建单位,也是我们具体实现业务逻辑的地方。我们可以把它看成是构建我们应用的积木。我们可以非常容易地把 传统的POJO,无状态会话BEAN等包装成SCA中的服务组件。 SCA服务组件的主要接口规范是基于WSDL(Web Service Description Language)的,另外为了给Java编程人员提供一个比较直接的接口,SCA的部分服务组件也提供了Java接口。因此,使用服务组件的客户端可以 选择使用WSDL接口或Java接口。

服务组件提供给别的服务调用的入口叫Interface(接口)。而服务组件本身可能也需要调用别的服务,这个调用出口叫Reference(引 用)。无论是接口还是引用,其调用规范都是WSDL或Java接口



1.3 同步调用和异步调用

我们知道,常见的方法调用都是同步调用,这种调用方式是一种阻塞式的调用方式,即客户端(主调用方)代码一直阻塞等待直到被服务端(被调用方)返回 为止。这种调用方式相对比较直观,也是大部分编程语言直接支持的一种调用方式。但是,如果我们面对是基于粗粒度的服务组件,面对的是一些需要比较长时间才 能有响应的应用场景,那么我们就需要一种非阻塞式调用方式,即异步调用方式。

SCA编程模式提供了三种方式的异步调用,它们分别是:

1. 单向调用方式。

2. 延迟响应方式。

3. 请求回调方式。

单向调用

单向调用方式是最为简单的异步调用方式,在这种调用方式中,客户端发出请求之后就不再关心服务端的情况,包括是否执行成功,返回值是什么等等。我们 可以用下面的图 4示来描述这种单向调用方式:


图 4: 单向调用
图 4: 单向调用

单向调用方式是一种不管调用结果的方式,但是在很多情况下我们是需要知道调用结果的。我们需要知道调用是否成功,需要知道调用的结果,就算调用失败 我们也希望知道错误代码等信息。在这种情况下,延迟响应和请求回调就是两种能够让我们知道调用结果的方式。

延迟响应方式

延迟响应方式是指客户端在发出调用请求之后继续执行,但是经过一段时间之后,客户端再调用相应的方法去检索返回结果,并通过参数指定如何根据调用的 结果而执行进一步动作。由于是异步调用方式,因此,在第一次发出调用请求的时候,服务端需要返回一个称为票据(Ticket)的对象。这个对象会作为第二 次发出检索结果请求时的一个参数。显然,这个Ticket对象的作用与WEB编程的SessionID非常类似。我们可以用图 5 来表示延迟相应调用方式:


图 5:延迟响应调用方式
图 5:延迟响应调用方式

请求回调

与延迟响应方式类似,请求回调方式也能得到服务端的响应,但是不同的是这个响应是由服务端通过回调方式来触发的,而不像延迟响应方式由客户端来主动 检索的。请求回调方式的原理与许多编程语言中的回调机制类似,不同的是这里实现的层次比较高一点。我们可以用图6来表示请求调用方式:


图 6:请求回调方式
图 6:请求回调方式

 


 

1.4 SCA客户端的两种调用方式

从接口的角度,SCA的客户端编程模型有两种方式:

1. 静态调用方式

2. 动态调用方式

静态调用方式

静态调用方式是一种类型安全的方式,也是在一般Java编程中最为常见的方式。所谓类型安全指的就是在编译的时候就做类型的检查,而不是等到运行的 时候发现类型错误问题。说明示例如下:


在SCA客户端编程中,静态方式就是直接拿到实际实现的接口类型,也即直接拿到Java接口。

动态调用方式

与静态调用方式相对,动态调用方式是一种非安全的方式。它的优点是调用非常灵活,但同时带来的不利之处是部分问题在编译的时候是发现不了的,只有等 到运行的时候才能发现。说明示例如下:


像上面例子所示,在动态调用方式中,客户端通过invoke方法的字符串参数的方式来指定具体要调用的方法名称。很显然,在这种方式下,如果方法名 有误是不能在编译时发现的。

关于动态调用方式另外要注意的一点是,在这种调用方式下,所有参数传递都是通过DataObject的方式,即SDO的方式。哪怕实际参数只是一个 字符串,也需要包装成一个DataObject的方式。

接口类型与调用方式

实际上客户端采用哪种调用方式是与接口类型有密切的关系。当提供的接口类型是WSDL类型的,那么客户端的调用方式只能是动态调用方式。由于 WSDL是SCA模型中主要的接口方式,这样就导致动态调用方式在SCA编程模型中非常普遍。但是如果提供的接口类型时Java类型的,那么客户端的调用 方式可以是动态调用方式,也可以是静态调用方式。

 

"

 

同时,上面网址中,还编写了一个具体WPS编写的实例:

1)创建模块

2)创建接口

3)创建组件,绑定接口,创建实现类

4)创建调用(有WSDL和JAVA两种模式)

5)创建JSP来进行调用(也分为WSDL及JAVA两种模式)

分享到:
评论

相关推荐

    sca知识体系了解应用

    sca知识体系了解,面向服务组件的架构(Service Component Architecture,SCA)

    深入剖析SCA异步调用模式

    服务组件体系结构(Service ComponentArchitecture,SCA)是下一代编程模型,此编程...了解如何开发中介处理程序来监视SCA异步消息,以及如何使用中介处理程序来分析异步调用。IBMWebSphereIntegrationDeveloper和IBM

    SCA(ServiceComponentArchitecture)编程模型入门

    本文内容包括:概览1.1SCA的起源1.2SCA中的基本概念1.3同步调用和异步调用1.4SCA客户端的两种调用方式1.5SCA的第一个例子――HelloWorld1.6结束语本文将介绍SCA编程模型中的基本...,并为读者以后深入了解SCA打下基础...

    揭秘WebSphereProcessServer中SCA组件的事务实现机制

    SCA作为一种新的编程模型,自然也需要提供完整的事务支持。...要了解SCA的事务是如何运作的,首先得先知道SCA容器是如何工作的。和大部分的容器一样,SCA容器的设计也是基于责任链的——在请求被路由到

    使用服务组件架构(SCA)从不同技术调用组件

    通过本文了解如何针对不同的协议绑定和实现类型执行组件调用。本文的示例使用了开源的ApacheTuscanySCA运行时来解释底层复杂性。简介在商业世界中有两个重要的驱动因素:变化和异构性(heterogeneity)。不论您当前...

    基于PIC16F877A单片机和SCA60C芯片实现帆船姿态仪的设计

    从赛场实时采集数据指导训练和减轻帆船教练工作强度方面考虑,设计帆船姿态仪,可使教练员了解每位运动员具体的训练细节,提高工作效率。 1、帆船姿态仪的系统设计 基于PIC16F877A设计的帆船姿态仪,能采集帆船...

    浅析微软ServiceLayerGuidelines和OSOA架构体系(SCA,SDO等)之间的关系

    注:本文假设您已了解熟悉了SOA的一些重要概念,包括SCA,SDO,BPEL,ESB,以及微软体系下的WCF,消息队列,WorkFlow等概念。因为下文中将会通过对比一下这两个SOA技术体系的架构图来介绍一下其中的一些有意思的东西。首先...

    matlab运行代码暂停-progress:SCA(三叉戟)进度服务

    matlab运行代码暂停SCA进度服务 背景 作业进度报告对于向用户提供有关系统正在执行,已完成以及将要执行的操作的准确视图至关重要,即使用户只是偶尔估算,也能使用户了解该任务需要花费多长时间,这一点至关重要。 ...

    上海普元EOS6.0程序员教程

    Primeton EOSTM(以下简称EOS)作为全球领先的SOA应用平台,采用了先进的SOA架构和SCA1.0、SDO2.1标准规范。比起单独学习SOA的枯燥难懂的理论,学会EOS的开发和了解其实现原理是帮助您理解SOA核心思想的最好切入点。...

    EOS6.0 程序员教程

    Primeton EOSTM(以下简称EOS)作为全球领先的SOA应用平台,采用了先进的SOA架构和SCA1.0、SDO2.1标准规范。比起单独学习SOA的枯燥难懂的理论,学会EOS的开发和了解其实现原理是帮助您理解SOA核心思想的最好切入点。...

    EOS6.0程序员教程

    Primeton EOSTM(以下简称EOS)作为全球领先的SOA应用平台,采用了先进的SOA架构和SCA1.0、SDO2.1标准规范。比起单独学习SOA的枯燥难懂的理论,学会EOS的开发和了解其实现原理是帮助您理解SOA核心思想的最好切入点。...

    SOA核心技术及应用(全书)第三部分

    本书立足于技术底层,试图指引读者理解构建SOA的基础编程模式。这一技术模式也并非耳熟能详 的Web服务,而是新兴的SOA技术标准——服务组件架构(Service ...业的在校学生,以及任何希望了解SOA的广大技术人员。

    SOA核心技术及应用(全书)第一部分

    本书立足于技术底层,试图指引读者理解构建SOA的基础编程模式。这一技术模式也并非耳熟能详 的Web服务,而是新兴的SOA技术标准——服务组件架构(Service ...业的在校学生,以及任何希望了解SOA的广大技术人员。

    SOA核心技术及应用(全书)第二部分

    本书立足于技术底层,试图指引读者理解构建SOA的基础编程模式。这一技术模式也并非耳熟能详 的Web服务,而是新兴的SOA技术标准——服务组件架构(Service ...业的在校学生,以及任何希望了解SOA的广大技术人员。

    TuscanySCA启动过程分析

    本文将针对其最新代码,通过对其启动过程进行分析,来了解Tuscany中对资源的加载及模型组装的处理。Tuscany作为SCASpec1.0实现,现在已接近Release1.0的尾声,在近期将发布。其结构相对7月份发布的0.91版本进行了较...

    构建简单的C++服务组件,第1部分:服务组件体系结构C++API简介

    此项目的目标之一是获得实现以下服务组件体系结构(ServiceComponentArchitecture,SCA)规范的C++运行时(有关更多信息,请参见参考资料):SCA组装模型(SCAAssemblyModel)SCAC++客户机和实现(SCAC++...

Global site tag (gtag.js) - Google Analytics