Express (Distributed operating systems), v8.0 > Secure applications and their environment > Authenticate users > Select a registry or repository > Manage realms in a federated repository > Virtual member manager > Develop with virtual member manager > Extend virtual member manager functionality in the application
Dynamic model schema loading process
If virtual member manager is configured to use the dynamic model, the dynamic process of loading schema occurs when virtual member manager starts up.
When virtual member manager starts, the Configuration Manager loads the wimconfig.xml file into configuration data graph. The Schema Manager is then passed with configuration data graph.
The Schema Manager gets the name of the XSD file (wimextension.xsd) from data object, dynamicModel, and loads the schemas from this file. Because this XSD file imports all other virtual member manager built-in schema XSD files, both the custom extension schemas ( //www.ibm.com/websphere/wim/ext ) and the virtual member manager built-in schema ( //www.ibm.com/websphere/wim ) are loaded into memory as ECore models in the form of an EPackage. At the same time, the Schema Manager also registers these models.
The Schema Manager then reads the wimxmlextension.xml file to retrieve the additional schema information and makes the following changes:
- If the entity types or property types are already defined in the XSD files, virtual member manager throws an initialization exception even if they are not defined in the same namespace.
- If the entity or property types belong to a different namespace other than the existing ones, Schema Manager creates a new ECore model (EPackage) and adds the schema of these types into the Ecore model. For example, if the entity type, ContactPerson is defined under a new namespace URI ( //publib.boulder.ibm.com/infocenter/wasinfo/v8r0/index.jsp?topic=/ ://www.yourco.com/yourext ), a new ECore model is created.
- If the entity or property type belongs to an existing namespace, the schema of these types is added to the ECore model of this namespace and makes any permitted changes to the existing schema of this model. For example, a property type cellPhone is defined in namespace URI ( //www.ibm.com/websphere/wim ), the schema of this property type is added to the existing ECore model with this namespace URI (virtual member manager built-in model). As this property is applicable to both entity types ContactPerson and PersonAccount, the Schema Manager modifies the schema of ContactPerson and PersonAccount to include this property type.
If the instance of the Local Service Provider is in the same Java Virtual Machine (JVM) as the virtual member manager instance, the process is complete because the ECore models are already registered by Schema Manager.
If the instance of the Local Service Provider is not in the same JVM as the virtual member manager instance, an instance of Local Service Provider is created remotely, the Local Service Provider calls the virtual member manager API getEPackages to retrieve the schemas of all namespaces by passing the nsURI parameter as null.
The Schema Manager receives the API call. Because the ECore models are not serialized and cannot be passed to the remote client, the Schema Manager converts the ECore models into the form of a byte array and passes the schemas back to the Local Service Provider. The Local Service Provider converts the schemas from byte array to ECore models and registers them in the client's JVM.
- Dynamic model: adding new properties to virtual member manager entities at runtime
Virtual member manager is configured to use the dynamic model. We can create new property types and add them to existing virtual member manager built-in entity types dynamically at runtime.- Dynamic and static models: creating new entities and properties at runtime
Virtual member manager is configured to use either the dynamic model or the static model. We can create at runtime new entity types, new property types and add existing or new property types to the new entity types.- Dynamic model: adding new properties to virtual member manager built-in entities at deployment time
Virtual member manager is configured to use the dynamic model. We can create new property types and add them to existing virtual member manager built-in entity types at deployment.- Dynamic model: adding new entities and properties at deployment time
Virtual member manager is configured to use dynamic model. We can create new entity types and their associated new property types at deployment time.- Dynamic model: adding new control type at deployment time
Virtual member manager is configured to use the dynamic model. We can create control types at deployment time.
Parent topic: Extend virtual member manager functionality in the application