FAIR considers a multi-tier scenario. First, the client application (on the bottom) requests a video from the service provider (on the top). The cloud distributes the content for each client request, and also orchestrates/controls all communications among network elements in a centralized way. In case of poor QoE, the cloud deploys a fog node to perform video adaptations to meet the stringent QoE/delay requirements. Hence, fog nodes can be deployed anywhere in a network, organized in tiers between the cloud and the mobile devices.
For instance, local fog nodes, i.e., Tier 4, can be mobile devices that relay the video content via D2D wireless communication for mobile devices with high and similar traffic demands. The neighborhood fog node, i.e., Tier 3, can be any device in the Radio Access Network (RAN), e.g., Base Station (BS) or Access Point (AP), which provides cloud services to a few dozen or hundred of mobile devices. Regional fog node, i.e., Tier 2, can be any device in the Cloud-RAN, such as, baseband unit (BBU) or Internet Service Provider (ISP). Tier 2 provides services to a city-wide area. On the top of such multi-tier scenario, there is the cloud, i.e., Tier 1. Each fog node has open interfaces to support the control, change and management of policies on-the-fly. The use of open interfaces enables FAIR to reach its full potential regarding to flexibility and adaptability features. Since these interfaces are open, they can more easily integrate nodes with different architectural styles as well as software components in different programming languages. In addition, it is possible to adapt legacy systems to communicate with FAIR. In this context, a fog Application Programming Interface (API) specifies the data structures and the methods of communication between the roles described in FAIR. This API treats fog elements as single programmable entities, instead of a set of components that has3 been configured individually. This decreases the human administrator burden required to perform multiple configuration tasks for such elements.
The FAIR API follows the REpresentational State Transfer (REST) as a software architectural pattern. REST has become a de facto standard for network and infrastructure provisioning. Such pattern describes a way to exchange information rather than the structure of that information; the supported actions are Create, Read, Update and Delete (CRUD) using a JSON encoded payloads. Thus, the communication between distributed software components over the fog is performed by using HTTP.
REST pattern enables the reuse of software components, which can be modified without significant impact for the fog as a whole. In addition, it improves scalability features, since it is easier to add new instances of software components. Fig. 2 depicts the four modules and their components which compose FAIR. It relies in two kind of nodes: centralized cloud computing and distributed fog. They work collaboratively to provide video services for client applications. Cloud nodes perform control functions, while fog nodes execute data processing; the client application requests and displays the multimedia content to users. Besides that, specific action flows and procedures corresponding to the functionality of the proposed entities are also described in this figure. Next, we introduce the functionality of each component in the modules.
Client/Local Fog Module
The client/Local Fog module consists of a Video Controller that manages communication among five components: Video Player, Authentication, Authorization, and Accounting (AAA) Client, Streaming Unit, QoE/QoS Meter, and Relay Connection Manager. The video Controller plays the role of an interface between the controller module and client/local Fog module, synchronizing the control and data flow in both directions. Hence, the video Controller requests and applies decisions received from the Cloud Controller, such as, starts becoming a local fog node, where JSON encodes such decision using the REST API. The AAA Client component is responsible for satisfying the AAA requirements considering key information security properties, i.e., Confidentiality, Integrity, and Availability (CIA). The Video Player component downloads the video content from the Streaming Unit located in a given tier and shows the content to the user. The architecture is compatible with existing video players, such as ffplay2. During video content displaying, the QoE/QoS Meter collects QoE and QoS measurements, such as, playback start time, duration of freezes, and Mean Opinion Score (MOS), throughput, Round Trip Time (RTT), packet loss, and others. These measurements are needed to understand the user experience on consuming video services, and thus take decisions to meet the user needs. For instance, the CoLisEU architecture delivers these metrics. A given mobile device could become a local fog node (i.e., Tier 4) to download and share the content among its neighbouring devices using Wi-Fi direct, Bluetooth, or another D2D wireless technology.
Particularly, the Video Application Controller starts the Streaming Unit and the Relay Connection Manager components, as soon as it receives an assignment from the Cloud Application Controller to become a fog node. The Relay Connection Manager allows the mobile device to relay the video content via D2D communication, to discover neighbours mobile device, and to manage the existing D2D connections. Finally, the Streaming Unit enables the mobile device to stream the video content to neighbour, such as, provided by HTTP server application.
Regional and Neighborhood Fog Modules Tier 3 consists of a Cache Application Controller connecting the Data Update Unit, Cache Unit, Streaming Unit, and QoE/QoS Under Test components. Also, Tier 2 is composed of an Enforcement Controller connecting the Cache Unit, Streaming Unit, Data Update unit, QoE/QoS Under Test, and ABR Unit components. Both Cache Application and Enforcement Controllers have similar functionality compared to the Video Application Controller, which represent the designed of the management and control plane communications.
However, the Tier 3 entities have more computing power, thus they can support advanced capabilities. These controllers play the role of an interface between the Cloud modules and Regional and Neighborhood Fog Modules, synchronize the control and data flow exchange in both directions, and manage/provide communication among internal modules. The ABR Unit running on the Regional Module adapts the video codec, bit rate, or resolution according to the network conditions, device capabilities, or QoE. The Regional Controller receives a role in adapting a given video, and it starts the ABR Unit to apply for such role. The ABR unit runs only on Tier 2, since it requires more processing, data exchange, and memory capabilities. The Cache Unit runs on both Regional and Neighborhood fog modules to store redundant copies of a given video content near to the user. The Data Update Unit maintains updated the video content copies stored in the Cache Unit, and Streaming Unit streams the content for each Video Player request. The QoE/QoS Under Test collects QoE/QoS measurements and replays the requests made by the Orchestrator.
The Cloud Module comprises the following components: Cloud Controller, Orchestrator, Database, Fog Manager, AAA Server, Dissemination Fog Unit, Request Service, QoE/QoS Under Test, and Streaming Unit. The Orchestrator component steers decision-making on management and operations tasks, i.e., it orchestrates the communications between all network elements, decides about fog deployment, and considers specific algorithms to decide where, what, and when the video must be cached and/or adapted. It considers input from the QoE/QoS Under Test, and high-level management information, such as network-wide policies or Service Level Agreements (SLAs). The Cloud Controller manages communication among internal modules, synchronizes control and data flow exchange, and sends decisions taken by the Orchestrator to fog nodes.
These decisions generate control flows for the following components: Regional Controller, Neighborhood Controller, and Video Controller. The Cloud Controller sends the requests using the REST API, in order to provide information on such flows, considering the programmability of the control plane. The Database stores the videos, Streaming Unit distributes the video to the video player, and Request Service indicates from which tier the Video Player must download the content. Fog Manager leads the instantiated fog nodes, and Dissemination Fog Unit distributes the multimedia content in different fog nodes. AAA Server monitors the consumption of resources and services as well as users activities. This unit interacts with other modules to perform security measures (e.g., auditing) and management tasks (e.g., billing). For this, an identity management system, for instance, can be integrated to the architecture to support the control and authorization of who is downloading the content. The literature in identity management system will need to be advanced in this case to provide identity management service with a very low latency.