API Development │ Model-View-Controller │ Streaming Software
The rise of modular television has ignited a new technological framework for content delivery. Content distribution must navigate multiple users, cloud storage, and repositories that ebb and flow with consumer demands. The demands do not stop there; while maintaining back-end technologies, Content Delivery Networks (CDN) must sustain accessibility and speed on the front-end for growing user base.
Our client is an integral part of the CDN and streaming climate, and required developmental support for a middleware application they were looking to add to their software net. Prior to development, the client was using an off-the-shelf media server middleware called Telebreeze for their admin panel, content management, dashboards, reporting, and other IPTV functionalities.
For the middleware, we needed to engineer an MVC, API-based application that would be leveraged to manage content, an integral component to the IPTV operation. The middleware would be directly responsible for streaming the requested content to the end-user’s device.
In addition, the Chetu team was tasked an Initial Coin Offering (ICO) project, where they would publish a new token on Ethereum Blockchain Network using smart contracts. After publishing a new cryptocurrency on the exchange, the client would instrument it into their marketing strategy, granting tokens to their subscribers along with normal subscriptions.
To complement the middleware and ICO, the client was also looking to increase cross-channel accessibility with an iOS application for content delivery. This application would have different options to show channels with live streaming capabilities.
In other words, there are three phases of development: the middleware application, the blockchain/ICO, and then the app for iOS from which the user can access the content.
First, we began working on the middleware, as per the client’s request. We had to go through the content management and streaming section for existing middleware and understand the requirements, replicating these elements and modules for the proprietary middleware. To fully digest the components, we focused on the architecture of the middleware and compartmentalized the following:
Next came the Blockchain implementation. It is a token based in Ethereum ERC20 standard and an ICO for offering token. The blockchain will be leveraged to incentivize subscription.
Of course, last but not least, we turned our attention to the iOS application, the streaming epicenter. The streaming will be controlled by channel servers and all encoding/decoding will be part of content/channel server. The service would contain both on-demand and live streams for the end-user, and each channel’s content will be managed by the channel itself.
We incorporated the following technologies during the Middleware API Multi-Tenant Application development…
The Middleware application has an admin portal for all customer and reseller settings, an admin dashboard, and a robust set of reporting modules to document application performance. For the middleware application and REST API, the functional modules layered like this:
The development environment was prepared by our team, while the staging and production environment was supplied by the client. For the development environment we chose to integrate the technologies listed above. We used MVC pattern for the application architecture along with multi-tenant architecture of data isolation since the client planned to white label the application for resellers.
MVC or Model-View-Controller is an architecture best-suited for multi-tenant environments. It is a flexible architecture where all the concerns are separated with one specific problem to solve. The controller acts as a mediator between View and Model. Model helps load data for a request, while the View is used for display purposes.
In ASP.NET, we implemented Razor syntax to create the views. From there, the controller selects the view after authorizing a request and formulating a response. In order to successfully build a multi-tenant app in MVC, we had to handle separate authorizations.
Below we discuss the three components of MVC in greater detail.
Model: The model defines what data the app should contain. If the state of this data changes, then the model will notify the view so that the display can be recalibrated to the new data. Sometimes the model communicates with the controller, as well, if different logic is required to accommodate the change in dataset.
View: The view defines how the app’s data should be displayed. This is the top layer of the application. As the name indicates, the user will be interacting with this layer of the app. No direct communication between the presentation layer and the data layer occurs. Instead, this layer is responsible for taking actions from the user and passing the information onto the controller. The only calculations occurring in this layer are client-side validations.
Controller: The controller contains logic that updates the model and (or) view in response to input from the end-user. This layer receives any requests from the view-layer, processes the information, and initiates whatever response is necessary, passing the processes information to the data layer.
Although this project is ongoing, the middleware has been tested and implemented into the client’s streaming ecosystem. The multi-tenant application supports multiple users and represents the adaptability and dynamism the IPTV environment demands.
Currently we are continuing to engineer the final two components of this project—the ICO and the iOS application, which will operate in conjunction with the middleware to forge a holistic and intelligent platform that the client plans to white label.
Contact us to learn more about Chetu and our custom software services
Copyright © 2000-2022 Chetu Inc. All Rights Reserved.