静态模型模式装入进程

您可以将新的实体类型、属性类型和控件类型添加到扩展模式 XSD 文件,例如 wimextension.xsd。这些 XSD 文件会导入 virtual member manager 内置模型 XSD 文件。 然后可以通过 Eclipse 或 RAD 开发环境或类似工具从扩展模式 XSD 文件生成静态模型代码。生成的方式代码会压缩到 JAR 文件(例如,wimmodel.jar 和 wimmodelext.jar)并放在类路径下。

当 virtual member manager 启动时,配置管理器会将 wimconfig.xml 文件装入到配置数据图中。然后会将配置数据图与模式管理器一起传递。

模式管理器从数据对象 staticModel 获取包接口的标准名称 com.ibm.websphere.wim.model.ModelPackage 和 com.ibm.websphere.wim.model.ext.ExtPackage,然后会注册这些静态包。 模式管理器读取 wimxmlextension.xml 文件以检索其他动态模式信息,并进行以下更改: 如果本地服务提供程序的实例与 virtual member manager 实例位于同一 Java 虚拟机 (JVM) 中,那么进程会完成,因为 ECore 模型已经由模式管理器进行注册。

如果本地服务提供程序的实例与 virtual member manager 实例不在同一 JVM 中,那么会远程创建本地服务提供程序的实例,本地服务提供程序通过将 nsURI 作为空值传递来调用 virtual member manager API getEPackges 以检索所有名称空间的模式。

概要文件管理器接收 API 调用并将其传递到模式管理器。由于 ECore 模型未序列化而无法传递到远程客户机,因此模式管理器会将 ECore 模型转换成字节数组格式,然后将模式传回本地服务提供程序。

本地服务提供程序将字节数组中的模式转换为 ECore 模型并在客户机的 JVM 中注册这些 ECore 模型。

如果客户机和服务器位于同一 JVM 中,那么客户机可以将静态包中定义的数据对象强制类型转换为其静态类型并使用静态方法。例如,数据对象 PersonAccount 可以强制类型转换为 PersonAccount 对象,并且可以使用类似 getSn 的静态方法(而不是类似 getString(“sn”) 的静态方法)。这些情况并不适用于在 wimxmlextension.xml 中定义的数据对象(例如 ContactPerson),因为它们是动态包。

如果客户机和服务器位于不同 JVM 中,那么无法使用静态类型和方法,即便对于在静态包中定义的数据也是如此,原因是在客户机的 JVM 中无法访问静态包。



使用条款 | 反馈