首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 开源软件 >

应用 Tuscany 域管理器部署 SCA 应用程序

2012-07-01 
使用 Tuscany 域管理器部署 SCA 应用程序web-services 包含了描述 Web 服务目录和流通性的组合应用(请参见

使用 Tuscany 域管理器部署 SCA 应用程序



web-services 包含了描述 Web 服务目录和流通性的组合应用(请参见图 2)。

图 2. web-services 项目
应用 Tuscany 域管理器部署 SCA 应用程序

store 包含商店组合应用,如图 3 所示。

图 3. store 项目
应用 Tuscany 域管理器部署 SCA 应用程序

将这些项目作为 JAR 文件导出到 c:\repository 目录中。如果下载完整的 Tuscany 1.3.1 分发包,您将在 Tuscany 分发包目录的 tutorial 子目录中发现已经导出的该商店示例的 JAR 文件。这些文件包括:

/tuscany-sca-1.3.1/tutorial/assets/target/tutorial-assets.jar/tuscany-sca-1.3.1/tutorial/store/target/tutorial-store.jar/tuscany-sca-1.3.1/tutorial/web-services/target/tutorial-web-services.jar





图 5. 商店应用程序的贡献包
应用 Tuscany 域管理器部署 SCA 应用程序

在图 4 中,商店组合包含在 tutorial-store.jar 贡献包中,目录和流通性组合包含在 tutorial-web-services.jar 贡献包中,导入实现包含在 tutorial-assets.jar 贡献包中。store.composite 引用包含在 tutorial-web-services.jar 贡献包中的组合所描述的组件。组合应用:描述构成应用程序的组件、每个组件提供的服务、组件对其他组件提供的服务的引用,以及联系它们的连接。有些组合包括在其他组合中。 可部署的组合应用:为进行部署而打包在一起的顶级组合。本文示例中的 store.composite、catalog.composite 和 currency.composite 全都是可部署的组合。节点:包装 Tuscany 运行时,该运行时由 Tuscany 分发包库组成。在 Tuscany 中,每个 SCA 可部署组合在一个节点中运行。每个节点使用某个贡献包、某个组合和运行节点的环境的属性(例如主机和端口)进行配置。域:在其中配置贡献包、组合和节点的范围。

域中的所有 SCA 资源——贡献包、组合和节点——全都是可通过 HTTP 进行访问的 Web 资源。这些资源的集合可通过 Atom 进行访问,并且可以使用 Atompub 进行管理。这是 SCA 和 Tuscany 标准。(有关 Atom 发布协议的描述,请参阅参考资料。)





单击 Add。该贡献包现在应该已经添加到域,并出现在贡献包列表中。使用各自的 URI(例如 http://mywshttp://mystore)分别对 tutorial-web-services.jar 和 tutorial-store.jar 重复上述步骤。如果正确添加了贡献包,您现在应该看到如图 8 所示的列表。

图 8. 带有所有已添加的贡献包的 Contributions 页面
应用 Tuscany 域管理器部署 SCA 应用程序

在此示例中,您使用 GUI 将贡献包添加到了 SCA 域。还可以使用程序添加贡献包。在 Tuscany 1.3.1 中,这可以通过将包含贡献包的贡献包名称和 URI 的表单发送到域管理器 URL(<domainURL>/workspace)来完成。例如,要为 tutorial-web-services.jar 贡献包发送的条目类似于清单 1。


清单 1. 用于添加贡献包的示例条目

?

在清单 2 中,contributionLocation 是贡献包存储库中或磁盘上的贡献包存档的 URL。在本文使用的示例中,tutorial-web-services.jar 的贡献包位置将是 file:/c:/repository/tutorial-web-services.jar。

清单 2 使用了 post() 方法。这个本地方法使用 Java java.net.URLConnection 类将字符串发送到某个 URL。(有关用于将字符串发送到 URL 的代码,请参阅参考资料。)将此表单发送到 URL 时,将 URLConnection 对象的 Content-Type 请求属性设置为 "application/atom+xml",如清单 3 所示。


清单 3. 设置 URLConnection 对象的 Content-Type 请求属性



这里的命名空间和名称标识贡献包中的该组合,而贡献包 URI 则是您在前一步中为贡献包提供的 URI。单击 Add。该组合将出现在页面顶部的列表中。重复上述步骤添加 currency.composite 和 store.composite。如果正确完成所有操作,您将看到如图 10 所示的内容。

图 10. 带有已添加的组合的 Composites 页面部分
应用 Tuscany 域管理器部署 SCA 应用程序

还可以通过脚本或程序添加组合。在此示例中,您可以通过将清单 4 中的 XML 发送到 URL http://localhost:9990/composite,从而将 catalogs.composite 添加到域。


清单 4. 用于添加组合的示例条目

?



Node name:您可以使用任何名称。Node URI:此选项指定您希望用于运行节点的主机和端口。Composite namespaceComposite name:这两个选项标识您在为其创建节点的组合。这是您在添加组合时输入的相同命名空间和名称。Contribution URI:这是您在第一步中添加的对应贡献包的 URI。单击 Add。该节点将出现在节点列表中。类似地,为 currency 和 store 组合添加节点。如果正确地添加了节点,您将看到如图 12 所示的页面。

图 12. 带有已添加的节点的 Cloud 页面部分
应用 Tuscany 域管理器部署 SCA 应用程序

您还可以通过将清单 6 中的条目发送到位于 cloud 上下文根的域,从而在 Java 程序中将节点添加到域。在此示例中,您可以通过将清单 6 所示的条目发送到 http://localhost:9990/cloud,从而添加 catalogs.composite 的节点。

如果在上面的步骤中手动添加节点,您可以单击节点的名称。您将看到清单 6 所示的条目的内容确切对应于您单击该节点时所看到的内容。这是描述该节点的组合文件。其中包括节点名称(在此例中为 MyCatalogsNode)、您在为其创建节点的组合(在此例中为 catalogs)、为其创建节点的组合的命名空间(这里为 http://services),以及在支持该节点与其他节点之间通信的绑定中指定的节点的主机和端口信息。


清单 6. 用于添加节点的示例条目

?

请注意,此示例将 http://localhost 用于节点的 URI。如果将在与域管理器的主机不同的计算机上启动节点,则需要指定将运行节点的计算机的名称,而不是指定 localhost

清单 7 中的示例 Java 代码将清单 6 中的条目发送到域。


清单 7. 用于将节点添加到域的示例代码

?

您现在可以使用该应用程序从目录中选择商品,将商品添加到购物车,清空购物车,以及付款后离开。

结束语

您了解了如何使用 Tuscany 域管理器应用程序在 SCA 域中部署 SCA 应用程序。在此示例中,您在没有 Web 容器或应用程序服务器的 J2SE 中运行 Tuscany 运行时。对于更复杂的配置,SCA 域还可以包括运行 IBM WebSphere Application Server、IBM WebSphere Process Server、Apache Geronimo、Apache Tomcat 或其他应用程序服务器的节点。后续的相关文章将进一步深入介绍有关如何将组合应用程序部署到这些不同环境的细节。

?

参考资料

学习

您可以参阅本文在 developerWorks 全球站点上的 英文原文 。

阅读 Getting Started with Tuscany 指南,了解在 Eclipse 中安装 Tuscany、为 Tuscany 设置 Eclipse、创建商店应用程序以及在 Eclipse 中测试该应用程序的步骤。

查看 Apache Tuscany SCA Java Architecture 指南,了解 Tuscany 体系架构的高级视图,包括诸如贡献包、组合和节点等基本概念的相关详细信息。

阅读 Apache Tuscany SCA User 指南,获得关于 SCA 和 Tuscany 概念的详细说明。

查看 Open SOA SCA 参考资料,获得许多描述 SCA 规范的各个方面的红皮书。

阅读文章“Getting to know the Atom Publishing Protocol, Part 1:Create and edit Web resources with the Atom Publishing Protocol”(developerWorks,2006 年 10 月),其中提供了对 Atom 发布协议的介绍。

获取 The Java Developers Almanac 1.4 中用于将字符串发送到 URL 的示例代码。

IBM developerWorks SOA and Web services 专区提供了大量的文章,以及关于如何开发 Web 服务应用程序的初级、中级和高级教程。

使用 IBM SOA 沙箱进行试验!通过 IBM SOA 进行实际的亲手实践来提高您的 SOA 技能。

IBM SOA 网站提供 SOA 的概述,并介绍 IBM 是如何帮助您实现 SOA 的。

了解关于 developerWorks 技术事件和网络广播的最新信息。

访问 Safari 书店,浏览有关这些技术主题以及其他方面的书籍。

查看快速的 Web 服务按需演示。

获得产品和技术

下载 IBM 产品评估版,获得来自 DB2?、Lotus?、Rational?、Tivoli? 和 WebSphere? 的应用程序开发工具和中间件产品。

讨论

参与 developerWorks Blog,从而加入到 developerWorks 社区中来。

?

来自 http://www.ibm.com/developerworks/cn/webservices/ws-sca-tuscany/index.html

热点排行