快捷搜索:  as  test  1111  test aNd 8=8  test++aNd+8=8  as++aNd+8=8  as aNd 8=8

澳门新葡亰925588aapp:使用 Eclipse SOA Tools Platform 插件和 Apache Tuscany



开始之前

本教程适用于必要懂得若何应用 Eclipse SOA Tools Project 创建 RMI 办事和懂得 STP 若何能简化 SOA 开拓的新手和拥有富厚履历的 Web 开拓职员。

关于本教程

SOA 的基础特点是能够把新办事和现有办事整合起来,创建可以包孕各类技巧的新利用法度榜样。SCA 将为构造、整合和开拓不依附于说话的办事收集定义基于办事的简单模型。经由过程容许 Eclipse 开拓职员(在本例中为 Eclipse STP 开拓职员)应用 SCA 在 SOA 情况中开拓 Java 办事组件,Apache Tuscany 有效地为开拓职员供给了 SCA Java 运行时。

在本教程中,将构建一个基于 RMI 的办事,将它注册到办事器的 RMI 命名注册表。将根据经由过程 Apache Tuscany 实现的 SCA 规范构建办事,这将成为完备 SOA 办理规划的一部分。您将懂得:

若何把 SCA 绑定到 SOA 中

若何安装 Eclipse STP 和 Apache Tuscany 运行时

若何创建基于 SOA Tools SCA RMI 的办事

若何开拓办事 Time Bomb 功能

若何创建和开拓 Java RMI 客户机

若何运行和测试 RMI 办事

系统要求

本教程将把 Eclipse 和 Apache 技巧与 STP 插件结合应用进行开拓:

Eclipse Classic Ecli澳门新葡亰925588aapppse 是 Eclipse SOA Tools 插件运行的主要平台。本教程应用的是 V3.3.1。Eclipse STP 及依附性插件 这些是应用 STP 进行开拓所需的核心插件。本教程将应用版本 I200710300730。可供下载的插件有多少个,是以请确保下载带有 stp-all-in-one- 后缀的插件。此下载包括 “要求” 题眼前目今列出的所有依附性。Apache Tuscany SCA Java Apache Tuscany 包孕在应用 SCA 标准开拓办事时应用的 Eclipse STP 插件的 Java SCA 实现。

稍后将详细懂得若何安装和筹备 SCA 开拓中要应用的 Eclipse 安装。

简介

添加 Eclipse STP 插件后将在很大年夜程度上简化 SOA 开拓。此部分将先容本教程若何应用 Eclipse SOA Tools Platform 的 SCA 插件部分。

SOA 和 SCA

SOA 包孕多少个经由过程 Internet 可以造访和彼此交互操作的办事。这与开拓职员和 IT 职员难于掩护的单个利用法度榜样形成对比。SOA 更易于掩护和支配,由于它将每次实现一项办事。

办事组件体系布局(Service Component Architecture,SC澳门新葡亰925588aappA)规范只是用于构建办事的模型。经由过程 Eclipse SOA Tools Platfo澳门新葡亰925588aapprm,可以获得应用 SOA 和 SCA 所需的对象:根据 SCA 规范每次构建并支配一个办事,同时所创建的各个办事组成整体 SOA,一次性构建和支配相符 SCA 规范的办事。换言之,SOA 将指定全部布局,而 SCA 将指定若何构建应用 SOA 的办事。可以看到,SOA 和 SCA 实际上密弗因素。结合应用 SCA 与 SOA 将使在本教程中构建的办事生效。

在本教程中,除了常用 STP 插件和核心 STP 插件之外,还将应用 Service Creation Service Oriented Architecture (SC.SCA) 插件。经由过程集成 Apache Tuscany,这些插件容许应用 SCA 和 Apache Tuscany 办事注释来注释办事。

经由过程容许应用 SCA 在 SOA 情况中开拓 Java 组件,Apache Tuscany 有效地为您供给了 SCA Java 运行时。斟酌把 Apache Tuscany 作为实现 SCA 规范的推动力,用 Eclipse STP 插件考试测验所有操作来实现 SCA —— 从属性和代码到运行时设置设置设备摆设摆设和调试 —— 容许构造一个真实的 SOA 办理规划。

您现在该当周全懂得了 SOA 与 SCA 若何结合应用,那么让我们经由过程预览将在本教程中构建的 Time Bomb 办事来查看示例的一些具体信息。

安装第一个主要的 Eclipse ZIP 文件,您该当已经把它(对付本教程为 eclipse-SDK-3.3.1-win32.zip)下载到了 programs 目录中(对付本教程为 F:\programs),措施为先把 ZIP 移到该位置中,然后解压缩。现在该当有 F:\programs\eclipse。

接下来,把 STP 整套 (all-in-one) ZIP 文件(对付本教程为 stp-all-in-one-incubation-R-R200710080602-200710080602.zip)移到 programs 目录中并解压缩其内容。这样做将把下载的 STP ZIP 文件的内容自动放到 eclipse 目录的响应位置中。假如系统扣问您是否调换文件,请单击 Yes to All。

现在按照上述安装 STP 插件的措施来安装必需的依附性插件下载(对付本教程为 stp-jsr-R20070912.zip),首先把 ZIP 文件移到 programs 目录并解压缩内容。假如系统再次扣问是否调换文件,请单击 Yes to All。

着末,把 Apache Tuscany 下载也解压缩到 programs 目录中。这样做该当在该位置中创建一个新目录:tuscany-sca-1.0-incubating(对付本教程,位于 F:\programs\tuscany-sca-1.0-incubating)。记着此目录,由于将必要从 Eclipse 中指向此目录。

安装完成。现在将设置设置设备摆设摆设 Eclipse 安装。

设置设置设备摆设摆设 Eclipse STP 以供 Java SCA 应用

要让 Eclipse STP 知道 Java SCA 的安装位置,必要把它添加为 Apache 运行时:

单击 Window > Preferences

展开左侧窗格中的 SOA Tools 树

选择澳门新葡亰925588aapp Installed Runtimes

向上滚动找到并展开 Apache 文件夹

选择 Apache Tuscany SCA Java 1.0,如图 1 所示,并单击 Next

浏览到 Apache Tuscany 运行时的位置(对付本教程为 F:\programs\tuscany-sca-1.0-incubating)并单击 Finish

图 5. 选择响应的运行时

现在填写项目的具体信息:

com.ibm.dw.tb 为 Package 名

TimeBomb 为 Interface 名(这样做之后,系统将自动填写另外条款的值)

选择 RMI 作为 Binding Type

图 6. 填写项目的具体信息

单击 Next 将把您带到着末一个窗口,如下所示:

图 7. 着末一个窗口

在这里,可以为项目选择其他主机、端口或办事名称,也可以保留默认值不变并单击 Finish 创建项目。单击 Yes 进入 SCA Java 透视图,然后该当会看到您的项目及其内容,如图 8 中的 Package 浏览器所示:

图 8. 创建第一个 SOA Tools SCA 项目

在教程的另外部分中,您将体验 Eclipse STP 项目所供给的 SCA 布局。

假如用户在响应的光阴内做出了相应,办事将考试测验把 Answer 参数与当前分配给该用户的问题的谜底匹配起来。

假如传入的 Answer 与问题关联的谜底相匹配,则给出以下响应:“Phew!!! You are saved from imminent spontaneous combustion!”

在这种环境下,精确谜底将使标记掉效,并且该用户可以随意再次提交该标记以查看新问题。

假如传入的 Answer 不匹配,则给出以下相应:“Uh oh!!! You better get your facts straight or spontaneous combustion is imminent! You haveseconds left!”(此中 secondsLeft 是包孕用户答出精确谜底所剩光阴量的变量,以秒为单位)。

此外,假如用户输入的标记无效,给出的相应与 activateMe 对无效标记给出的相应完全相澳门新葡亰925588aapp同。

听起来是不是很有趣?确凿是这样。然则更有趣的是创建这个游戏。此部分的另外内容将创建代码并使上述功能生效。

首先,从办事的 Java 接口开始。

TimeBomb 接口

此 Java 接口的目的是一个标准模板,供给给必要造访实现此接口的 Service 的其他 Java 类。因而,它该当包孕先前定义的两个措施(activateMe 和 submitAnswer)。该文件 (TimeBomb.java) 已在源文件夹 (src) 下并且该当已经定义,如清单 2 所示:

清单 2. TimeBomb 接口

package com.ibm.dw.tb;

import org.osoa.sca.annotations.Remotable;

import org.osoa.sca.annotations.Service;

@Service()

@Remotable()

public interface TimeBomb {

public Response activateMe(Request r);

public Response submitAnswer(Request r);

}

在这里,您看到了标记和谜底 String 变量,可以分手经由过程 getter 和 setter 措施获取和设置这两个变量。

接下来将开始编写 TimeBombImpl 类,它是包孕办事的营业措施的类。

设置 TimeBombImpl 类

此类是办事的主要驱动力,所有 RMI 哀求都将被传到这里并在此中进行处置惩罚。该类该当已在源目录 (src) 中。在 STP 的浏览器窗口中单击打开并开始定义它,如清单 5 所示:

清单 5. 启动 TimeBombImpl 类的代码

package com.ibm.dw.tb;

import org.osoa.sca.annotations.Service;

import java.util.Random;

@Service(com.ibm.dw.tb.TimeBomb.class)

public class TimeBombImpl implements TimeBomb {

static final String FAILURE =

"KABOOM!!! You have spontaneously combusted! Better luck next time!";

static final String CORRECT =

"Phew!!! You are saved from imminent spontaneous combustion!";

static final String INCORRECT1 = "Uh oh!!! You better get your facts " +

"straight or spontaneous combustion is imminent! You have ";

static final String INCORRECT2 = " seconds left!";

static final String INVALID_TOKEN = "Token invalid!";

static final int secondsToAnswer = 60;

...

}

在这里,您可以看到类定义并且它将实现 TimeBomb 接口。然后有六个以 static final 为开首的变量。这些是包孕返回给无效标记、差错相应和精确相应的消息的常量。着末一个变量将设置用户必须在若干秒超时前回答。它还将指定一个 SCA 注释,该注释用于指定经由过程编程的要领表示 RMI 办事时所应用的接口类。它还指定了一个 SCA 注释 (@Service),该注释用于指定经由过程编程的要领表示 RMI 办事时所应用的接口类。其他 SCA 注释 (@Scope) 将指定容许应用本地变量分配自力线程来处置惩罚每个客户机的哀求。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

您可能还会对下面的文章感兴趣: