Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Separated storage layer
    • Allow for resources to be stored in files or different database systems
  • Isolate storage details from pipeline functionality
    • Change providers without changing pipeline configuration
  • Allow extremely large dictionary resources to be stored and used centrally
    • For example, in a REDIS or similar distributed key-value system
  • Allow for Dev, Staging, and Production publishing
  • Allow for business user editors to edit dictionaries and publish updates
  • Allow for publishing of dynamic updates linguistic resources

...

Note

Note that  many of these goals are just goals for now and are in the process of being implemented.

Resource Providers

A resource provider provides access to a specific set of resources from a particular storage technology. For example, a file system directory of resource files or a collection of tables.

Available Resource Provider Implementations

Add-on Resources

Children Display
pageAdd-on Resources
excerptTypesimple

Built-in Resources

Children Display
pageBuilt-in Resources
excerptTypesimple

Note

Note that only the FileSystem implementation is provided as part of the core system. Others are provided in separate Jar files which specifically included on the class path when needed.

Locating the Resource Provider Class

The "type" parameter is used in resource configuration to locate the resource provider class. for example:

...

Code Block
languagejs
themeEclipse
"type":"FileSystem"

or

...

Code Block
languagejs
themeEclipse
"type":"com.accenture.saga.resourcemgr.filesystem.FileSystemProvider"

The type parameter is used to locate the class using the following steps:

  1. If the type parameter has periods in it

    1. Try and look for the class as specified

      1. For example:  com.accenture.saga.resourcemgr.filesystem.FileSystemProvider

  2. Otherwise:

    1. Try and find the class in the "com.accenture.saga.resourcemgr.filesystem" package

      1. For example:  "FileSystemProvider" → "com.accenture.saga.resourcemgr.filesystem.FileSystemProvider"

    2. Try and find the class with a "Provider" suffix in the "com.accenture.saga.resourcemgr.filesystem" package

      1. For example:  "FileSystem" → "com.accenture.saga.resourcemgr.filesystem.FileSystemProvider"

Types of Resources

Currently, there are three types of resources defined:

...

The following is a sample resource providers configuration:

Code Block
languagejs
themeEclipse
titleSample Resource Configuration
{
  "providers": [
    {
      "name":"pipeline-provider",
      "type":"FileSystem",
      "baseDir":"config"
    },
    {
      "name":"dict-provider",
      "type":"MongoDB",
      "uri":"mongodb://localhost:12345",
      "database":"dictionaries"
    }
  ]
}

...