[AIX Solaris HP-UX Linux Windows][z/OS]

多个 SCA 实现打包注意事项

本产品支持可为 SCA 服务组件提供业务逻辑的多种实现技术。 因为 SCA 的主要体系结构目标是使您能够将现有服务组合在一起,所以很容易假定包含多个组件的单个组合可能有不同的实现技术。 但是,多个 SCA 实现的打包存在一些限制。

业务级应用程序部署约束

部署 SCA 应用程序(尤其是使用 OSGi 应用程序的 SCA 应用程序)之前,请考虑以下约束:

  • 并置

    SCA 组合可以由各种实现框架组成。 这些框架的打包格式包括,例如,企业档案(EAR)文件Java™ Platform, Enterprise Edition( Java EE ) 应用程序或 OSGi 应用程序的企业捆绑存档 (EBA) 文件。 SCA 业务级别的应用程序必须包含框架打包格式和使用该格式的 SCA 组合。

    在 Network Deployment 环境中,将 implementation.osgiapp 部署在 SCA 组合单元中时,用于实现的 EBA 组合单元必须与 SCA 组合单元位于同一业务级应用程序中,并且两个组合单元的目标必须确定为同一服务器或集群。

  • 工件或共享库

    业务级别的应用程序支持共享库。 将接口工件(Java 接口类或 WSDL/XSD 工件)打包在共享库中通常是理想的做法。 业务级应用程序中配置的应用程序中的服务可以引用共享库。

    但是,OSGi 应用程序不支持共享配置库。 您必须将 Java 接口和 WSDL/XSD 工件打包在 SCA 添加项 Java 归档 (JAR) 文件中和业务级应用程序内配置的 EBA 资产中。

  • 仅一个部署

    只有一个给定 OSGi 应用程序实例(打包为 EBA 文件)可以部署在网络部署单元中。 一个 EBA 文件只能包含一个 OSGi 应用程序。 一个 EBA 资产只能包含一个 EBA 文件。 只能将一个 EBA 资产添加至一个业务级应用程序,该应用程序的作用域在单元级别确定。 因此,您只能将给定 OSGi 应用程序指定为 SCA 实现一次。

    要避开此约束,您可以从单元中的其他应用程序连接到已部署的 OSGi 应用程序,但不能将业务逻辑包含在其他组合中。

类装入

OSGi 应用程序框架的用途是,构建完全由 OSGi 服务注册表和 OSGi 应用程序设计来定义的类装入器结构,以及避免那些影响 Java EE 服务器的类装入器问题。

如果您的应用程序使用不同的实现技术,那么类装入器结构间的差异可能会导致 SCA 运行时将对象从一个环境复制到另一个环境。 OSGi 应用程序是仅限远程的接口,不允许按引用传递行为。

您的 SCA 应用程序必须为本地和远程接口使用正确的语义。