Expanding the Python modules to allow M8 files to be created by all tools #43
Replies: 6 comments 4 replies
-
These are my initial thoughts on how to re-architect the Python modules in the Application Provider so that multiple tools can manage the M8 published files and also provide ways to expand this to formats like DVB-I service lists. It may also be possible to split the work for this into multiple work items so that multiple people can work on this at once. The diagrams above are my first attempt at using the C4 diagramming language so are likely to need improvement, feel free to edit. I've been using the Mermaid live editor to prototype the diagrams, but this has limits on the C4 functions that can be used. Please provide any feedback on my proposed design. |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
Creation of |
Beta Was this translation helpful? Give feedback.
-
@stojkovicv and I have had a discussion via a Zoom meeting to talk through this proposed design and we're both fairly happy that this will accomplish what we want. A proposal was put forward to split this design down into 3 implementation steps:
Item 1 must be done first, but the other two can then be done in parallel. To this end I will raise 3 new issues to separate the work into these three areas. |
Beta Was this translation helpful? Give feedback.
-
@davidjwbbc @stojkovicv Thank you for driving this forward, this looks excellent. I agreed with @stojkovicv that the Some additional comments / discussion items:
@davidjwbbc Do you want to create the Github issues as mentioned in your last post? Otherwise I can take care of it and you can add missing information. |
Beta Was this translation helpful? Give feedback.
-
Created project https://github.com/orgs/5G-MAG/projects/40/views/1 to track progress of these tickets and started creating draft issues for these 3 steps. I'll flesh these out when I get a moment. |
Beta Was this translation helpful? Give feedback.
-
Introduction
As discussed briefly on the call a few weeks ago, we need to allow other Application Provider tools to recreate the
m8.json
file. Thinking about future changes we may also want to have a similar mechanism in place for DVB-I xml files to be published via M8. With this in mind I've been doing some thinking around a possible architecture for the Python modules to accomodate this.Existing architecture
At present the only tool which outputs
m8.json
is themsaf-configuration
app and the formatting and output code is held within the app code as it is directly derived from the app'sstreams.json
configuration file.Proposed architecture
In order to enable the other components,
m1-session
and the server side components of the Web UI, to also manage the data presented via M8 we need to do two things. The output formatting form8.json
needs teasing out frommsaf-configuration
and placing into a reusable Python module so that multiple components can all use it as necessary. Also the model of media assets needs teasing out frommsaf-configuration
, into its own Python module, as this will be needed to feed the output formatting. Please note that the media assets model inmsaf-configuration
goes beyond the simple model in the 5GMS AF (and therefore the model handled by thert_m1_client
Python module) by understanding media assets which share a single provisioned root media node. While we are doing this it seems a good opportunity to make these new modules a little more generic and expandable, especially since there is ambition to provide a DVB-I M8 service rather than (or as well as) our proprietarym8.,json
format file.So I would propose that we create two new Python modules based on the current
msaf-configuration
tool. One for modelling media assets that can then use thert_m1_client.M1Session
class to reflect that model on 5GMS AF/AS and also call a second Python module which contains M8 output formatters. We can then use a local configuration to determine which output formatters should be used, possibly making the default them8.json
formatter and adding the DVB-I formatter once it has been developed.It would also be a good opportunity to introduce a new Python module for the proprietary Ref-tools 5GMS AF "MAF-Management" API interface, which would allow the Web UI access to the full list of configured provisioning session as known by the AF.
My proposed new architecture would look like this:
rt_m1_client.M1Session
to read the current 5GMS AF configuration and push changes to that configuration to reflect the modelled media assets. It can also usert_m8_output.M8Output
to write model changes as M8 published data files.m8.json
format file.Beta Was this translation helpful? Give feedback.
All reactions