diff --git a/bus.png b/bus.png index c0b9ccb..9191038 100644 Binary files a/bus.png and b/bus.png differ diff --git a/index.rst b/index.rst index 04680fb..0d69966 100644 --- a/index.rst +++ b/index.rst @@ -213,6 +213,19 @@ freely between them. Service which produces content in some form. +Meta +---- + +These are the services which together form the basis of metadata and analytics. +:doc:`Collection, storing and delivering metadata ` about everything in the system. + +:doc:`Meta Data ` + Service which stores and delivers metadata between services. + +:doc:`Meta Analytics ` + Service which analyzes the metadata stored by the Meta Data service. + + Interfaces ========== @@ -242,6 +255,9 @@ These interfaces are not bound by the standard. :doc:`CMS IF ` Between :doc:`Bazaar ` and :doc:`CMS `. +:doc:`Meta IF ` + Data Service provides an interface to query for user data from Data Providers. + Infrastructure ============== diff --git a/meta/analytics/index.rst b/meta/analytics/index.rst new file mode 100644 index 0000000..1b02639 --- /dev/null +++ b/meta/analytics/index.rst @@ -0,0 +1,6 @@ + +Meta Analytics +************** + +Analyzes the data stored in :doc:`Meta Data ` service. + diff --git a/meta/data/index.rst b/meta/data/index.rst new file mode 100644 index 0000000..78e72cd --- /dev/null +++ b/meta/data/index.rst @@ -0,0 +1,10 @@ + +Meta Data +********* + +.. toctree:: + + interface + +Service which stores and delivers metadata between other services. + diff --git a/meta/data/interface.rst b/meta/data/interface.rst new file mode 100644 index 0000000..1db5f36 --- /dev/null +++ b/meta/data/interface.rst @@ -0,0 +1,5 @@ + +Meta interface +************** + + diff --git a/meta/index.rst b/meta/index.rst new file mode 100644 index 0000000..eb0546e --- /dev/null +++ b/meta/index.rst @@ -0,0 +1,59 @@ + +Meta +**** + +.. toctree:: + + data/index + analytics/index + +Services may have data which they want to describe to other services. +Examples of this type of data is metadata of learning materials, links between +statements in curriculum and learning material, and analytics metrics. + +By having common vocabulary, the metadata, between learning materials, curriculum and +analytics metrics makes it possible to link the requirements and goals to actual user actions +and learning results. Learning material and analytics metrics are tagged with +keywords and same keywords are used inside the curriculum. + +Usage data may be collected automatically by the systems. +Collection of data happens by the services, but the data must be accessible for +services which are analyzing the data. This can be the same service of course, +but it would be much better to share the data system wide. +This way all services can see how the user is moving between services in the whole system. +This data may even be open. + +Each service collects and stores the data themselves and then periodically publishes +the data to central repository. Data is then queried back from central repository to +services which need it. Central repository behaves like a cache for the data and it +is stored there for only certain amount of time. + +Each service collects the data and pushes it to central repository in realtime. +Central repository works as a publish/subscribe message bus and publishes the data +to all listening parties. Data is not stored in the repository. + +Each service has common API which everyone else can use to query for metadata and metrics. +There would be retention policies how long the data must be accessible in the API. + +The repository for all metadata and analytics metrics could be key/value store with +graph and timeseries functionalities. Meaning the data can have complex hierarchies +and values can contain value timeseries data. +The metadata repository can be updated by everyone and it keeps track who is doing what and why. + +Requirements for the repository: + +* must have a database which stores the data for certain period +* must have REST API to query the data (with public and open part) +* must have publish/subscribe API for realtime message passing +* must have an API to register services and then it must query periodically the data + and publish it in the publish/subscribe API on behalf of the service + +Services: + +* may connect to the publish/subscribe API +* may have common API for querying metrics and register to the repository +* must either connect to the publish/subscribe API or have the common API +* must register metadata keywords + + + diff --git a/services.png b/services.png index c47882c..7c7fda1 100644 Binary files a/services.png and b/services.png differ diff --git a/sitemap.rst b/sitemap.rst index a7c7c9d..e0d4d32 100644 --- a/sitemap.rst +++ b/sitemap.rst @@ -7,6 +7,7 @@ Site Map index story/index auth/index + meta/index bazaar/index lms/index cms/index