使用 Tuscany 域管理器部署 SCA 应用程序
web-services 包含了描述 Web 服务目录和流通性的组合应用(请参见图 2)。
图 2. web-services 项目
store 包含商店组合应用,如图 3 所示。
图 3. store 项目
将这些项目作为 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. 商店应用程序的贡献包
在图 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://myws
和 http://mystore
)分别对 tutorial-web-services.jar 和 tutorial-store.jar 重复上述步骤。如果正确添加了贡献包,您现在应该看到如图 8 所示的列表。
图 8. 带有所有已添加的贡献包的 Contributions 页面
在此示例中,您使用 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 请求属性
还可以通过脚本或程序添加组合。在此示例中,您可以通过将清单 4 中的 XML 发送到 URL http://localhost:9990/composite,从而将 catalogs.composite 添加到域。
清单 4. 用于添加组合的示例条目
?
Node name:您可以使用任何名称。Node URI:此选项指定您希望用于运行节点的主机和端口。Composite namespace 和 Composite name:这两个选项标识您在为其创建节点的组合。这是您在添加组合时输入的相同命名空间和名称。Contribution URI:这是您在第一步中添加的对应贡献包的 URI。单击 Add。该节点将出现在节点列表中。类似地,为 currency 和 store 组合添加节点。如果正确地添加了节点,您将看到如图 12 所示的页面。
图 12. 带有已添加的节点的 Cloud 页面部分
您还可以通过将清单 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 全球站点上的 英文原文 。获得产品和技术
下载 IBM 产品评估版,获得来自 DB2?、Lotus?、Rational?、Tivoli? 和 WebSphere? 的应用程序开发工具和中间件产品。讨论
参与 developerWorks Blog,从而加入到 developerWorks 社区中来。
?
来自 http://www.ibm.com/developerworks/cn/webservices/ws-sca-tuscany/index.html