Keywords

1 Introduction

In mobile computing environment, we study two fundamental information delivery methods. The two methods are point-to-point access and broadcast. In comparison to point-to-point access, data broadcast is a more attractive method. Though the broadcast concept is not new and has been applied in our surroundings for decades including the radio programs, TV programs, and newspaper to name a few. Along with reducing access time, what also makes it more efficient and effective is that any data broadcast program can scale up to an arbitrary number of users. Hence, data broadcasting has become a promising technique to disseminate data items to mobile clients due to its high scalability factor.

With broadcast as the medium of data delivery various information systems can be served to reciprocate services. Few of the many industrial fields that can benefit and utilize advantages of data broadcast are stock markets, weather forecast services, security alerts, and telecommunication service providers as discussed in [1].

2 Literature Review

In this section, the prior research work and the analysis of the existing systems in the field of mobile computing environment is covered. In [2], the authors studied the working of three basic information delivery models, i.e., push data broadcast, on-demand data broadcast and hybrid data broadcast. In case of push data broadcast, the information is disseminated without the intervention of mobile users. While in pull-based data broadcast the information is disseminated on the request the mobile users. Since, a hybrid model is a combination of pull and push, the advantages and disadvantages of each are equally complemented and balanced to provide optimal solution.

In [2], the research provides a comparative analysis of various broadcast scheduling techniques in a mobile environment. The authors design approach in [1] is closely relevant to the idea of the proposed system presented in this paper. However, there is a huge scope of improvement in terms of allocation of data items and bandwidth utilization to reduce the access time of mobile users. Various channel allocation methods have been proposed in [3] and have been improved and covered during the design and implementation of the proposed system. While in [4], the authors provide architecture for wireless information dissemination of broadcast and the on-demand services. However, the existing system model and approach are different from proposed, i.e., the prior work considers only limited parameters like limited number of channel, limited workload, limited bandwidth.

In [5], different schemes for the allocation of data on broadcast and on-demand channels are explored. However, it fails to demonstrate scenarios of replication of data items with higher request rates, which is overcome by incorporating the proposed mechanism. While [6], provides working of channel allocation for heterogeneous data broadcasting but with limited number of channels and bandwidth.

Since, prior research topics in the field of data broadcasting are mainly based on the assumption that the disseminated data items are of the same size and sequential ordering of data items [7]. Also noticed patterns of existing research have been restricted to limited resources of channel [8]. Motivated by the fact that various kinds of data items may be disseminated in advanced mobile information systems, we explore the scope of generating dynamic broadcast programs in a heterogeneous mobile environment. While heterogeneous refers to, data items of different sizes, different frequencies that can be disseminated over multiple channels with varying bandwidth. This approach serves to be the base idea for the proposed system discussed in this paper.

3 Proposed Work

To differentiate proposed research from traditional and conventional methods, proposed system considers data items with varying sizes and frequencies to be termed as heterogeneous data items. The flow of proposed system works in the following sequence: First, identify hot and cold items amongst mobile user preferences. Then generate two arrays that hold index of only hot data items to be broadcast. This is done considering the access frequency of data items at the end of every hour and similarly at the end of every day. This will give an understanding of data items with high access frequency amongst users. The arrangement is based on the descending order of the access frequency. Second, is to allocate these arrays over multiple channels in a broadcast cycle followed by calculated replication broadcast.

The ability to maintain multiple information queries in spite of the high frequency of requests and large number of mobile clients, data broadcast mechanism proves to be a desirable technique. Such efficient data dissemination will reduce the average waiting time of mobile user to access the desired data item. The average access time is made of up two components: the probing time and downloading time. The probing time is defined as the time that a mobile user is expected to wait until the item of interest appears on the broadcast channel. While the downloading time, is when a mobile user spends on downloading the desired data item from the broadcast channel.

To access the desired data item, the mobile users are expected to wait and capture the data of interest once it arrives on the broadcast channel. As our proposed functionality, the index of the data items to be broadcast will give a prior idea of arrival time. This will enable mobile users to switch to between active and doze mode. Hence, it is fulfilling the purpose of saving the battery power of mobile devices.

3.1 Proposed System Architecture

The system architecture in Fig. 1 is divided into three modules A, B, and C; which includes one controller, multiple local servers, and zero or more clients connected to each local server at any given time. A local server is also known as BSS i.e. Module ‘A’. For instance, A controller will handle only one region say Mumbai. A region will contain multiple cells say Dadar, Bandra, Andheri, and so on. While another region, could be Vasai-Virar. This region will have its own controller. This region may also have multiple cells say Vasai, Virar, Palghar, and so on. A controller may be connected to multiple neighboring controllers. Consider a single region to understand the working of the proposed system.

Fig. 1
figure 1

Proposed broadcast mechanism

Module ‘A’ functions via a request from a mobile user is initiated. If the requested item is not found in the cache the user request is forwarded to the local server. Module ‘B’ that is the Local server, which is the most important entity of the architecture. Each local server is connected to the controller. A local server is connected to zero or more neighboring local servers. For the purpose of broadcasting data, the system deals with services and not individual data items in those services. For the purpose of storing and indexing data, the system deals with individual data items of the services. Wherever the term ‘data items’ is used, it is assumed that these data items are properly categorized into different services. Services may be replicated across multiple Local Servers. The user request is processed by the local server. Next the query generator converts the data item request into a query format to be forwarded to the query manager. The query cache responds on the existence in cache. While query analyzer, will look for history of a requested data item and its affinity towards the threshold of high request rate. The local data manager will maintain the local data of the services and also stores the data from a remote server for a response for some particular time interval. This module is looked for, after the response for a particular query is not present in query cache manager. If found it forwards to the xml generator. The xml generator converts the response to an xml format to make it independent of any platform and feeds input to communication and broadcast manager. The communication and broadcast manager is the heart of the proposed system. This module helps in dissemination of data in an efficient manner to the user. The working is explained in detail in Sect. 3.2. While the Module ‘C’ that is the central server acts as head of all the local servers to provide data and to manage all the local servers using request handler, pull and push data manager and central information database. This sums up at the controller where all the data items of all the services will always be present.

3.2 Proposed Broadcast Mechanism

The broadcast mechanism in Fig. 2, is the heart of the system. It is the core functionality proposed to disseminate data over multiple channels to mobile clients. The major modules of the proposed broadcast scheme based on the algorithm are:

Fig. 2
figure 2

Proposed broadcast algorithm

INPUTS: Data items with high frequency will be termed as ‘Hot’ data items, while with low frequency is termed as ‘Cold’ data items. Consider the following example, If data items d1, d2, d3, d4, and d5 were accessed very frequently at BSS1 during 9 a.m. to 10 a.m. on 1st January; then the same data items are expected to be accesses on January 2 in the same time duration. Hence, these items will be considered ‘Hot’ items in that time slot and will be pushed to clients during that period on 2nd January. Also an algorithm will execute at the end of every hour. This algorithm will remove ‘cold’ items from the local servers. An item will be tagged as cold item if its requests (of the whole day, i.e., 24 h) drop below a certain threshold value. The two inputs are

  • A1 holds an array of data items sorted in descending order as per their access frequency and is generated in form of one full list in a day.

  • A2 holds an array of data items sorted in descending order as per their access frequency of that hour and is generated after every hour.

The arrays are converted into XML file by XML generator to make it independent of any platform for further compilation, processing and execution.

Step 1: Calculating Access Probability of Data Items: Calculate the access probability \( {\mathbf{p}}_{{\mathbf{i}}} \) for each data item \( {\mathbf{d}}_{{\mathbf{i}}} \) with their corresponding frequency \( {\mathbf{f}}_{{\mathbf{i}}} \) till all data items n in array A2, have not be covered. The value of \( {\mathbf{p}}_{{\mathbf{i}}} \) will be in the range [0, 1].

$$ {\text{p}}_{\text{i}} = \frac{{{\text{f}}_{\text{i}} }}{{\mathop \sum \nolimits_{{{\text{j}} = 1}}^{\text{n}} {\text{f}}_{\text{j}} }} $$
(1)

Step 2: Cost of Broadcast Cycle: The initial total \( {\mathbf{cost}}_{{\mathbf{i}}} \) of broadcasting all the data items can be calculated based on the access frequency and size prior to any partitioning or replication. It is defined by the formula

$$ cost = \left( {\mathop \sum \limits_{j = 1}^{n} f_{j} } \right) *\left( {\mathop \sum \limits_{j = 1}^{n} z_{j} } \right) $$
(2)

Step 3: Calculating Multiplication Factor M: The Multiplication Factor is denoted by M and lies in the range of [0, 2] which is selected arbitrarily. The value of \( {\mathbf{M}} \) is adjusted in such that the length of Broadcast cycle B is shorter, when \( {\mathbf{cost}} \) is higher, and longer when \( {\mathbf{cost}} \) is lower.

Step 4: Calculating Replication Factor: Since, the access probability \( {\mathbf{p}}_{{\mathbf{i}}} \) for each data item \( {\mathbf{d}}_{{\mathbf{i}}} \) and the Multiplication Factor M is determined. Calculate the replication count \( {\mathbf{r}}_{{\mathbf{i}}} \) for each data item \( {\mathbf{d}}_{{\mathbf{i}}} \). It is computed using the following formula

$$ {\text{r}}_{\text{i}} = \lceil{\text{M}}\,* \,{\text{n}}\,*\,{\text{p}}_{\text{i}}\rceil $$
(3)

Step 5: Create broadcast cycle B: Calculate the length \( {\mathbf{S}} \) (no. of slots) of B with the given formula

$$ {\text{S}} = \lceil{\text{n}} + {\text{M}}\,*\,{\text{n}} \rceil $$
(4)

For each data item, repeat the following steps: Place the data items \( {\mathbf{d}}_{{\mathbf{i}}} \) in the slots \( {\mathbf{s}}_{{\mathbf{i}}} \). If data item is replicated multiple times, then place the replicated copies in the empty slots \( {\mathbf{s}}_{{\mathbf{i}}} \) sequentially. Also, consider the following scenarios:

Scenario 1: The number of slots \( {\mathbf{S}} \), and the total number of data items (along with replication), are equal. In this case, all the slots in B will be filled by the data items.

Scenario 2: The number of slots \( {\mathbf{S}} \), are more than the total number of data items (along with replication). In this case, we have empty slots in B (after placing all data items from A2 in в). These empty slots will be filled by data items from Array A1.

Step 6: Allocation of data items over multiple channels: Consider Access Probability and the Size of the Data Item as two inputs for the further processing of allocation of data items over multiple channels using Partitioning Procedure [6].

Step 7: Calculate final cost: Consider k to be the total no. of channels, \( {\mathbf{cost}}_{{\mathbf{i}}} \) to be the cost of \( {\mathbf{Channel}}_{{\mathbf{i}}} \) and \( {\mathbf{N}}_{{\mathbf{i}}} \) to be the data Items in \( {\mathbf{Channel}}_{{\mathbf{i}}} \)

$$ {\text{Cost}} = \mathop \sum \limits_{{{\text{i}} = 1}}^{\text{K}} {\text{cost}}_{\text{i}} $$
(5)
$$ {\text{cost}}_{\text{i}} = \left( {\mathop \sum \limits_{{{\text{j}} = 1}}^{\text{c}} {\text{f}}_{\text{j}}^{{({\text{i}})}} } \right) *\left( {\mathop \sum \limits_{{{\text{j}} = 1}}^{{{\text{N}}_{\text{i}} }} {\text{z}}_{\text{j}}^{{({\text{i}})}} } \right) $$
(6)

4 Performance and Result Analysis

During performance and result analysis, study shows that the proposed system overcomes issues of the existing systems adapting the conventional method. Performance testing on the systems is done to obtain stability in results, via multiple test runs to prove optimal stability. Load testing on proposed algorithm has been tested by including, data items of varying sizes and access frequencies over multiple channels and replication. In existing system, considers static sizes of data items, static access frequencies, single channel and no replication. Figures 3, 4, and 5 demonstrate the comparison of proposed method versus conventional method. Regression Testing is performed where input of data items varies to achieve optimal results. Consider input of data items as 20 in Fig. 3, input of data items as 30 in Fig. 4, input of data items as 45 in Fig. 5 along the x axis. While the y axis demonstrates average access time obtained.

Fig. 3
figure 3

Proposed system versus existing system

Fig. 4
figure 4

Proposed system versus existing system

Fig. 5
figure 5

Proposed system versus existing system

Based on results of proposed system it is noticed the average access time of the mobile users is reduced. Hence, the purpose of enhanced data dissemination is fulfilled. The results show the proposed system obtains optimal and stable results over multiple runs of the system.

5 Conclusion and Future Work

In this paper, the proposed system aims to achieve efficient data dissemination in a mobile environment. The performance and results analysis show our proposed system is an optimal solution to reduce the waiting time of the mobile user, achieve high scalability and save batter power consumption. The work majorly focuses on having developed a dynamic broadcast algorithm over multiple channels corresponding to dynamically changing access patterns in real time. Some of the future work will include an optimal index scheme along with the proposed broadcast scheme to achieve better, balanced and optimal results in a wireless environment.