Modifying the Information Service Configuration

Overview of the Information Service Configuration

The Information Service does the following:
  • provides a mechanism to perform a federated search of any repositories that a user has a connection to. The term federated means connected and treated as one. The classes in the Information Service package enable the creation of a single filter, which can search disparate repositories (for example, SAS Metadata Repositories and LDAP repositories).
  • allows repository-specific searches to be performed, so that efficient searching can be achieved.
  • provides a convenient method for fetching an item from a repository by using a URL.
  • can be used in conjunction with the User Services and the Authentication Service to authenticate users, create User Contexts, locate servers that the user has access to, and create repository definitions to use in making server connections.
For more information about the Information Service, see com.sas.services.information in the SAS Foundation Services class documentation at http://support.sas.com/rnd/javadoc/93.
The Information Service configuration consists of the following items:
protocols
map the repository protocol to a Java class that implements the com.sas.services.information.RepositoryInterface interface. When connecting to a repository, the protocol class definition is used to create the new repository object.
repositories
are persistent storage mechanisms for metadata and content. The repository definitions specify how to connect to the repository and how to allow client software to connect to a repository by name. You must create a repository definition for each repository that your application accesses. (You must also define a repository when using the getPathUrl method of the MetadataInterface.)
repository groups
identify a set of repositories that can be searched together.
smart objects
act as wrappers for metadata entries in order to hide the details of repository-specific metadata types. A smart object definition consists of the following:
  • the protocol of the repository that contains the metadata
  • the interface for the smart object
  • the repository-specific type of metadata
  • the action to take in order to implement the object
  • the filter class to use in order to search for this type of object
You can use smart objects to specify implementations (smart object action definition) for one or more repositories. You must specify an implementation (smart object action definition) for at least one repository type. In the smart object action definition, you can also specify a filter to use for implementing different smart objects for the same repository type.
factories
act as wrappers for metadata entries in order to hide the details of repository-specific metadata types. However, with factories, you cannot specify an interface or filter to use when creating the object. In addition, within each factory, you can specify implementations (factory object action definitions) for only one type of repository. A factory definition consists of the following:
  • the protocol of the repository that contains the metadata
  • the repository-specific type of metadata
  • the action to take in order to implement the factory
You must use smart object definitions if you want to specify the following:
  • an interface for the object
  • a filter to use when implementing the object
  • multiple repositories for the actions of an object

Configure the Information Service

To configure the Information Service, perform the following steps:
  1. Open SAS Management Console and connect to a metadata repository.
  2. In the navigation tree, locate and select the Information Service that you want to modify.
  3. Right-click the Information Service and select Properties. The Information Service properties window appears.
  4. On the Service Configuration tab, click Configuration. The Information Service Configuration window appears.
  5. On the Protocols tab, click New to add a protocol, or select a protocol and click Edit to edit a protocol. Enter the following information:
    Protocol
    specifies the protocol for the information service.
    Class
    lists the fully qualified Java class for the selected protocol. When requesting a connection to a new repository, this class is used in the connect method.
  6. (Optional) Define a server on the Servers tab. Click New to add a server, or select a server and click Edit to edit a server. Enter the appropriate information for accessing the server. Click OK.
  7. (Optional) Define repositories on the Repositories tab. Click Newto add a repository, or select a repository and click Edit to edit a repository. Enter the appropriate information for accessing the repository, and then click Finish.
  8. (Optional) Define repository groups on the Groupstab. Click New to add a repository group, or select a repository group and click Edit to edit a repository group. Enter the following information:
    Name
    specifies the repository group name.
    Member Repositories
    specifies the repositories that are members of the repository group. Select a repository from the Available Repositories panel and click the arrow button to move it to the Member Repositories panel.
  9. (Optional) Define smart objects on the Smart Objects tab. Click New to add a smart object or select a smart object and click Edit to edit a smart object. Enter the following information:
    Name
    specifies the smart object type name. This string should exactly match the string that is returned from the smart object implementation's getType() method.
    Interface Class
    specifies the fully qualified Java interface that objects of this type will implement.
    Filter Class
    specifies the fully qualified Java class to use to most effectively search for objects of this type. This class probably contains specific extensions to the com.sas.services.information.Filter class to make searches more efficient.
    Creation Actions
    defines how and when objects of this type are created. An action definition contains a protocol, a repository-specific type, a fully qualified Java class for the implementation to instantiate when that type is encountered, and an optional filter to run against an object which it must match for the action to be taken. Click Add to define a new action, or click Edit to change an existing action and enter the following information:
    Protocol
    specifies the repository protocol that this action applies to. Select omi for SAS Open Metadata Interface, ldap for LDAP directory server, or dav for WebDAV server.
    Type
    specifies the repository-specific type to look for when creating this type of object.
    Class
    specifies the fully qualified Java class to create when encountering this type in the repository.
    Filter
    specifies an optional filter, which an object must validate against before this action is taken. The format of the filter is
    [*association/]@attribute='value'
    association specifies the name of an association from the specified repository type; the objects in the association will be tested against the attribute portion of the filter.
    attribute specifies an attribute to test for validation. The attribute can be an attribute on the objects in the association or, if no association is specified, an attribute can be an attribute on the object itself.
    value specifies the attribute value to test the object against to be sure it is the correct type.
  10. (Optional) Define factory definitions on the Factories tab. Select the Protocol for the factory, and then click New to add a factory, or select a factory and click Edit to edit a factory. Enter the following information:
    Type
    specifies the factory types that are associated with the Information Service and the selected protocol. Specify Class (a class to generate the smart object), Constructor (a constructor for a Java class that implements the smart object), or Service (a Foundation Service).
    Action
    specifies the action that is associated with the selected factory. The Action table lists the type, class, method, and filter for each action. Click Add to define a new action, or click Edit to change an existing action and enter the following information:
    Class
    specifies the fully qualified Java class to instantiate for the action.
    Filter
    specifies the fully qualified Java class to use to search for objects of this type. The class probably contains extensions to the com.sas.services.information.Filter class to make searches more efficient.
  11. (Optional) Define consumers on the Consumers tab. For each consumer, specify a name for the consumer, and then select which resources in the service configuration are consumed.
  12. Click OK to save the Information Service configuration to the metadata repository.