Composite是部署的基本单元。在装配文件中,composite元素是根元素。
composite元素可以包含composite、service、component、reference等其他元素,component是非常重要的元素。
component元素可以包含0...n个Service,Reference,property 和0...1个implementation。
实现component中的implementation的方式可以有Java、BPEL、Composite等,如下图。
在这个例子中,就是使用Composite方式实现composite中包括的component的implementation。
在基于Web应用的SCA服务组件的装配文件中,是这样表示composite实现component的。
文件名为default.scdl
<?xml version="1.0" encoding="UTF-8"?>
<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
name="CalculatorComposite">
<component name="CalculatorServiceComponent">
<implementation.composite name="CalculatorComposite" jarLocation="lib/sample-calculator-1.0-incubator-M2.jar"/>
</component>
</composite>
在发布的web应用目录的WEB-INF中,有一个lib目录,里面保存着运行SCA应用运行需要的环境,也包括包含着当前web应用需要的代码和装配文件组成的jar包 sample-calculator-1.0-incubator-M2.jar 。这个jar包的内容就是前面举例(Tuscany SCA以独立应用方式运行的简单例子 )使用的jar包,通过default.scdl应用装配文件加载到运行环境中。
与可独立运行的SCA服务组件不同的是,web应用服务组件环境的建立和装配过程是通过web.xml中servlet的组件listener和filter来完成的。
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" >
<display-name>Apache Tuscany Simple Webapp Sample</display-name>
<welcome-file-list id="WelcomeFileList">
<welcome-file>calc.jsp</welcome-file>
</welcome-file-list>
<filter>
<filter-name>TuscanyFilter</filter-name>
<filter-class>org.apache.tuscany.runtime.webapp.TuscanyFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>TuscanyFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>org.apache.tuscany.runtime.webapp.TuscanyContextListener</listener-class>
</listener>
</web-app>
web服务启动后,可以通过jsp访问SCA服务组件。
calc.jsp
<%@ page import="calculator.CalculatorService" %>
<%@ page import="org.osoa.sca.CompositeContext" %>
<%@ page import="org.osoa.sca.CurrentCompositeContext" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
CompositeContext context = CurrentCompositeContext.getContext();
CalculatorService calc = context.locateService(CalculatorService.class, "CalculatorServiceComponent");
%>
<html>
<head><title>Calculator sample</title></head>
<body>
<table>
<tr>
<th>Exdivssion</th><th>Result</th>
</tr>
<tr>
<td>2 + 3</td><td><%= calc.add(2, 3) %></td>
</tr>
<tr>
<td>3 - 2</td><td><%= calc.subtract(3, 2) %></td>
</tr>
</table>
</body>
</html>
<END>
分享到:
相关推荐
基于SCA和SDO服务组件开发,本科毕业论文
WebSphere基于OSGi的应用部署和SCA集成.doc
非功能性需求的获取和表达是服务定义的一个重要部分,在组件和构件的生命周期中对SCA 有很大的影响。从组件设计到具体部署,SCA 提供了一个框架来支持约束、性能和QoS 期望的规范。此规范描述这个框 架和它的用法。
本文内容包括:简介基本SCA概念场景Tuscany调用架构概述结束语下载参考资料服务组件架构(SCA)是一项可以抽象底层计算机服务的新技术,这样,系统就可以更加灵活地合并由不同技术实现的子系统。SCA将业务逻辑中有关...
FPGA上SCA波形组件接口的设计与实现.pdf
服务组件体系结构(Service ComponentArchitecture,SCA)是下一代编程模型,此编程模型提供了三种异步调用模式。您可以使用那些模式异步地调用目标SCA服务,而不需要知道请求和响应消息是如何“魔法般地”进行处理...
使用Spring Framework 设计和开发 SCA 组件,第 1 部分.pdf.pdf 使用Spring Framework 设计和开发 SCA 组件,第 1 部分.pdf.pdf
sca知识体系了解,面向服务组件的架构(Service Component Architecture,SCA)
OpenSCA是一款开源的软件成分分析工具,用来扫描项目的第三方开源组件依赖及漏洞信息
术语缩写:SCA:ServiceComponentArchitectureWPS:WebSphereProcessServerWSIF:WebServiceInvocationFrameworkWID:WebSphereIntegrationDeveloperSDO:...使用服务组件的客户端可以选择使用WSDL接口或Java接口
SCA Web Services Binding V1.00,SCA JMS Binding V1.00,SCA JCA Binding V1.00,SCA EJB Session Bean Binding V1.00等等关于sca的规范翻译版
引言在这一系列文章的第1部分,我们引入了服务组件体系结构(ServiceComponentArchitecture,SCA)作为编程模型来构建和组装集成解决方案,包括简要介绍什么是SCA,以及一些相关术语的定义。我们还提供了一个通过...
在应用程序运行时测试应用程序和 API 是否存在潜在漏洞。 Static Analysis 静态分析(SAST) 在开发过程的早期分析应用程序和 API 中的源代码是否存在潜在漏洞。 Interactive Analysis 交互式分析(IAST) 监控...
基于SCA的可移植FPGA波形组件接口设计.pdf
软件路由系统中SCA的实施,邓红,,SCA(Service Component Architecture)是一种面向服务组件的架构,核心是服务及其相关实现,其具有跨平台、跨语言、松散耦合的特性。软件路
IBM提出了一种新的服务组件模型,它提供了一种统一的调用方式,从而使得客户可以把不同的组件类型都可以通过一种标准的接口来封装和...本文将介绍SCA编程模型中的基本概念,并以一个简单的例子来说明它的一些基本用法。
NULL 博文链接:https://virusfu.iteye.com/blog/1396645
本文将说明开发和部署SCA应用程序的主要概念。我们将说明如何创建组件实现来提供远程服务、本地服务、配置属性和服务引用以及如何创建组件、入口点、外边服务和模块。示例应用程序:InnovaSolutions开发我们将详细...