t.c. marmara university faculty of …dosya.marmara.edu.tr/eng/cse/documents/2016/cse497-498...1...
TRANSCRIPT
1
T.C.
MARMARA UNIVERSITY
FACULTY of ENGINEERING
COMPUTER ENGINEERING DEPARTMENT
CSE497 - Project Specification Document
Title of the Project
INCENTIVE MECHANISMS FOR USER PROVIDED NETWORKS
Group Members
150711047 – Ahmet Özlü
Supervised by
Assist. Prof. Ömer Korçak
19.12.2016
2
1. Problem Statement
In this project, we will study on developing a user provided network where users are
incentivized to share their communication capabilities with others. We will model cost
(energy, etc.) of providing connectivity to others through experiments. Then we will
develop a tethering protocol between users, utilizing appropriate cost and utility models.
We will develop an Android application for applying and testing the proposed system.
2. Problem Description and Motivation
Increase in the number of mobile users demanding Internet connectivity gave rise to a
cooperative solution called User Provided Network (UPN) which is a promising paradigm
to remedy Internet connectivity needs of mobile users. In this model participants
cooperate to enable a group of mobile users to access Internet while they have no or
limited connectivity. One of the key research problems in UPN is giving incentives to
mobile network subscribers to promote active participation [1]. In this work, I will
develop software and hardware solutions to have some tests which are necessary for
determining costs and benefits of using UPN. These costs and benefits will be used for
cost modelling. The benefits of UPNs are at client user side and the costs of UPNs are at
server user side. Accessing Internet while they have no or limited connectivity can be
given as a benefit of UPN for client users and battery (energy) consumption or mobile
data usage can be given as the costs for server users.
Actually, my project has four main subtitles, the first one is researching the theoretical
information about UPNs and the second subtitle is testing that theoretical information and
various cases of UPNs on the real life by using my software and hardware solutions. The
third subtitle is comparing, interpreting these test results, doing cost modelling and
determining the incentive mechanisms by using these comparisons (costs and benefits).
After all of these steps, an Android application will be developed for applying and testing
that architecture and the benefits of our UPN system on the current cellular network
technology will be measured.
3
3. Aims of the Project
These are the aims of the project;
Project aim 1:Developing communication system between mobile devices by using
network protocols(WiFi-Direct and Bluetooth).
Project aim 2:Developing a bargaining protocol which will be built on the
communication system that is given at the first aim.
Project aim 3: Developing tethering application.
Project aim 4:Measuring the consumed energy and the other costs on the different
scenarios for determining the parameters which will be used forbargain and doing
cost modelling by using these measurements.
Project aim 5: Developing UPN system which includes incentive mechanism by
using cost modelling with strategic decisions of users and operators.
Project aim 6: Implementing that system on the Android platform.
Project aim 7: Measuring the benefits of our UPN system on the current cellular
network technology.
4
4. Related work
UPNshave a great potential to reduce network congestion and network access costs, to
better utilize unused capabilities and improveuser-perceived network performance Both
the industry and academia have observed this potential, and several UPNapplications were
developed recently[2]. Two of the most important ones and their features are given at the
below.
4.1 Open Garden
Open Garden shares Internet connections between multiple phones and tablets. No root
access is required. It is similar to a Wi-Fi hotspot, but it uses Bluetooth and Wi-Fi Direct.
To use it, install it on both your phone and your tablet, so they can connect.[3]
Features:
Sharing your Mobile Internet (Wi-Fi or 3G/4G) for free with your Android phones
or tablets.
Accessing more Wi-Fi hotspots through other phones and tablets running Open
Garden.
Staying connected to the Internet automatically whenever your tablet doesn't have
access to Wi-Fi.
Extending the range of existing networks by linking multiple devices together.
Faster and more reliable Internet by crowdsourcing connectivity from nearby
devices running Open Garden.
4.2 M-87
M87's Proximity Services Software expands the reach and improves the performance of
the modern mobile network.[4]
Features:
Mobile Internet (Wi-Fi or 3G/4G) can be shared via device to device
communication.
It uses the connection of a nearby node with better strength when the signal of
a node is weak.
It is a special software which is deployed onto nodes.
5
Client node's connection is tunnelled through a nearby node still charging to
client's quota.
-Our project A47,
It is a special software.
It has energy consumption, data usage costs and utility functions to determine
utilizes and costs.
Mobile Internet (Wi-Fi or 3G/4G) can be shared via Bluetooth or WiFi-Direct.
The bandwith of shared Internet can be limited.
It has incentive mechanism ( fornow, we are planning to use virtual currency
as an incentive mechanism).
The users can have 3 options which are being gateway, being client and begin
relay by our project.
As a result, our project has novelties which are listed below;
The server user has power consumption and data usage costs but the related
applications don’t care them! In our project, it has energy consumption, data usage
costs and utility functionscosts of server user and utilities of client user are
determined.
In the related applications, they don’t limit the bandwith of shared Internet but in
our applicationthe bandwith of shared Internet can be limited.
Our application has incentive mechanism.
6
5. Scope of the Project
The measuring consumed energy of mobile phones is important task for our project
because the consumed energy will be an important variable for our utility funtion. We can
measure the consumed energy of mobile phones by hardware and software(consumed
energy is measured both hardware and software solutions so we can compare hardware
and software measurement results thus we can be sure that our measurements are true) and
we have some scopes of the measuring energy part. It is explained at the below.
We can measure the energy which is consumed by our Android application with
using Arduino microcontroller and some basic electronic components at hardware
solution for measuring energy. In that hardware measurements, we observed some
unexpected noises. These noises can be filtered by using some complex electrical
components or electrical circuits but we don’t have enough time and energy to
develop that filter so designing that kind of filter circuit is out of scope for our
project.
We can measure the energy which is consumed by our Android application with
software.The energy which consumed by background application of smart mobile
phones should not be added the energy which is consumed by our Android
application but we ignore that problem. That problem can be solved by rooting
smart phones so the background applications can be terminated but rooting mobile
phones is risky so elimination of the energy which is consumed by background
application is out of scope for our project.
Constraints of the project:
The consumed energy cannotbe measured 100%accurately by hardware because of
the electrical noise. So, we will assume the electrical noise as a part of consumed
energy in this study.
The consumed energy cannot be measured 100%accurately by software because
the background applications of mobile phones runperiodically and they consume
additional energy. In order to address this problem we will assume the consumed
energy of background applications are jointly included in the observed energy.
The UPN system which will be implemented on Android platform will be tested
with maximum 5 users because we foresee that our test environment (composed of
Android application software) has the risk to overcome multiuser application with
7
more than 5 users. In further studies more advanced approaches like parallel
processing or effective load sharing algorithms can be addressed.
For the sake of simplicity and proof-of-concept, the virtual currency amounts of
users will be saved on a simple database rather than a professional server-based
system.
The UPN system which is implemented on an Android platform will be tested in
ideal conditions for indoor and outdoor experiments for the sake of stable
execution. Here, good weather conditions will be followed to prevent problems
affecting the communication and bargaining protocols.
The security level of the paired devices with UPNs will not be high, malicious
users can reach the device storages by leaking our UPN system so the user data
might be under the risk of a cyber attack. The security concerns can be considered
in further studies.
The assumptions for our project are listed below;
Consumed energy is measured both hardware and software solutions so we can
compare hardware and software measurement results thus we are sure that our
measurements are true but there are some differences between the hardware and
software results however these differences are under 5% so we assumed that there
are not any differences between measurement results.
We will create utility function by using cost modelling. First of all, we will prepare
the dataset and after that we will create our function by using IBM SPSS Statistics
tool. The function will not work 100% truely but our aim is that make that function
work under 10% errror rate. We will assume that it works perfectly if we can reach
under 10% error rate.
8
6. Success Factors and Benefits
6.1 Measurability/Measuring Success
Developing an UPN system which includes realistic incentive mechanism, implementing
that system on Android platform and measuring the benefits of our UPN system on the
current cellular network technology is main aim of my project.The indicators which show
that we have satisfied the requirements of our project are listed below;
Developing communication system between mobile devices by using network
protocols (WiFi-Direct and Bluetooth).
Developing a bargaining protocol
Measuring the consumed energy
Measuring data consumption of client users
Limiting the bandwidth of shared Internet
Creating the utility function
Doing cost modelling
Developing UPN system which includes incentive mechanism
Measuring the benefits of our UPN system on the current cellular network
technology.
6.2Benefits/Implications
The potential benefits of my project are;
The mobile users can access Internet while they have no or limited connectivity.
The mobile data traffic will be decreased so the cost of Internet service will be
decreased and the quality of the Internet service will be increased by our project
The server users can convert their excess mobile data to virtual currency (our
planning is that users can get opportunities by using virtual currency) so they can
use their virtual currency for getting new opportunities which are provided the
mobile operators.
As a result, the users can have more stable, faster and cheaper Internet and getting
new opportunities via our project!
9
7. Methodology and Technical Approach
In this project, we will study on developing a user provided network where users are
incentivized to share their communication capabilities with others. The main modules of
our project is in Figure 1.
Figure 1 - Main modules of our project – General Architecture
As illustrated in Figure 1, the main modules and their explanations are as follow;
Communication System Module: It consists of developing communication system
between mobile devices by using WiFi-Direct and Bluetooth protocols.
Bargaining Protocol Module: Developing bargaining protocol.
Tethering Application Module: Developing tethering application on Android platform
by using communication system and bargaining protocol modules.
Cost Modelling Module: In this module, cost modelling will be done and utility
function will be created by using consumed energy and mobile data. These are
subtasks for that module
Developing software to measure consumed power.
Developing hardware to measure consumed power.
Preparing dataset for cost modelling and utility function.
10
Cost modelling.
Creating utility function.
UPN System Module: UPN system will be created by using Communication System
Module,Bargaining System Module and Cost Modelling Module.
Android Implementation Module: The created UPN system will be implemented on
Android platform.
Test Module:In this module, the benefits of our UPN system will be measured on the
current cellular network technology.
Among presented modules in Figure 1, the foremost ones are:
The Communication System Modulewhich is expected to utilize effective
communication among mobile devices (See Section 7.1).
The Cost Modelling Module which is supposed to measure three main factors:
First the consumed energy of smart mobile phone by both hardware and software
(See Section 7.2); Second the consumed mobile data amount by clients (See
Section 7.3); and third cost and utility (See Section 7.4)
In addition to the tasks related to the foremost modules presented above, the following
tasks will also be covered throughout the project. :
Developing UPN system.
Implementing UPN system on Android platform.
Measuring the benefits of our UPN system on the current cellular network
technology.
A summary of the implementation strategy regarding the specified tasks above can be
seen in Figure 2.
11
Figure 2 - General solution approach
7.1Developing communication system between mobile devices by using network
protocols (WiFi-Direct and Bluetooth)
As presented in Figure 2, developing communication system between mobile devices is
another important task for our project because server and client users will bargain and deal
on the virtual currency amount by using that communication protocol. That
communication protocol will work autonomously(without user interaction) in the future
part of our project. Android libraries which were used for doing that task are listed below;
java.net.ServerSocket
java.net.Socket
java.net.InetSocketAddress
java.net.InetAddress
java.io
12
android.net.wifi
android.net.ConnectivityManager;
android.net.NetworkInfo;
android.net.wifi.ScanResult;
android.os.Message
android.bluetooth
content.BroadcastReceiver
Communication system between devices has already been developed by socket
programming in the first phases of the project.
-Socket Programming:Sockets provide the communication mechanism between two
computers using TCP. A client program creates a socket on its end of the communication
and attempts to connect that socket to a server.
When the connection is made, the server creates a socket object on its end of the
communication. The client and the server can now communicate by writing to and reading
from the socket.
The java.net.Socket class represents a socket, and the java.net.ServerSocket class provides
a mechanism for the server program to listen for clients and establish connections with
them.
The following steps occur when establishing a TCP connection between two computers
using sockets
The server instantiates a ServerSocket object, denoting which port number
communication is to occur on.
The server invokes the accept() method of the ServerSocket class. This method waits
until a client connects to the server on the given port.
After the server is waiting, a client instantiates a Socket object, specifying the server
name and the port number to connect to.
The constructor of the Socket class attempts to connect the client to the specified
server and the port number. If communication is established, the client now has a
Socket object capable of communicating with the server.
On the server side, the accept() method returns a reference to a new socket on the
server that is connected to the client's socket.
13
After the connections are established, communication can occur using I/O streams. Each
socket has both an OutputStream and an InputStream. The client's OutputStream is
connected to the server's InputStream, and the client's InputStream is connected to the
server's OutputStream.
Figure 3 - The TCPServer process has two sockets[5]
TCP is a two-way communication protocol which is given in theFigure 3, hence data can
be sent across both streams at the same time. Following are the useful classes providing
complete set of methods to implement sockets[6].
7.2 Measuring the consumed energy of smart mobile phones by hardware and software
Measuring the consumed energy will be used in the utility function and utility function
will be used for determining the virtual currency amount. As a result measuring the
consumed energy is very important task for our project. The block diagram is in the
Figure 4 and it has detailed explanation for our road map to complete that task.
14
Figure 4 - Block diagram of measuring the consumed energy of mobile phones task
15
Figure 5 - Energy measurement hardware[7]
We are planning to design and build a circuit which is given in the Figure 5 for measuring
the consumed energy of mobile phones. Our circuit was designed already, we used these
components for our circuit;
Arduino microcontroller
Breadboard
Resistors(1 ohm)
Special component which is designed by us will be used for connecting mobile
phone serially to our circuit.
In the software part for measuring the consumed energy, we will use some Android
libraries. The most important ones are listed below;
android.os.BatteryManager
android.net.TrafficStats
7.3Measuring the consumed mobile data amount by client users
Consumed mobile data amount will be used in the utility function as a very important
variable so the measuring the consumed mobile data amount is very important task for our
project. We have to measure that data by software so we are planning to develop Android
program to measuring consumed mobile data by client users and Android libraries which
will be used for doing that task are listed below;
android.net.TrafficStats
android.net.wifi.WifiManager
android.net.ConnectivityManager
android.net.NetworkInfo
16
7.4Creating cost and utility function
After the prepared dataset which includes consumed energy, mobile data and signal
strength values, we will create cost and utility function. SPSS Statistics tool[8] will be
used for creating that function.
17
8. Professional Considerations
8.1 Methodological considerations/engineering standards:
Themethodological considerations/engineering standards which will be used in the project
are at the Table I.
Methodological considerations/
Engineering standards
Aim
Bitbucket To manage and share the software project
UML diagrams To model the software application structures
Table I -Methodological considerations/engineering standards
We have a bitbucket account for managing and sharing our software project. I and
supervisor Assistant Prof. Ömer Korçak use it for managing and developing our software
works.
We will plan to use UML diagrams in the implementing UPN system on Android platform
task. We predict that implementing UPN system on Android platform will requires some
hard problems to solve. Therefore, we will have to develop some algorithms tosolve these
problems and we will use UML diagrams to model our software application structures.
We have not developed a complicated software solution so we have not encountered any
programming problems which were hard to solve. Therefore, we have not needed to use
UML diagrams until now.
8.2 Societal/ethical considerations
The mobile data traffic is increasing day by day and the base stations of mobile operators
are working under extreme strain so mobile operators serve Internet with high price and
low quality because of that extreme strain. The extreme strain on the current mobile
network system will be decreased by using autonomous UPNs so the mobile Internet
service provider will serve more efficient and cheaper. As a result, UPNs can be useful
solution for mobile operators at the mobile data traffic problem. Therefore, after the
completing our project, we are planning to present our project to the research and
development departments of mobile operators to have economical gains or technical and
economic support for developing our project more.
18
At the UPN systems, server users have costs which are additional battery and mobile data
consumption, client users have benefit which is accessing Internet while they have no or
limited connectivity. This is not fair and ethic. Therefore, the incentive mechanisms for
UPNs will be developed so a fair system will be provided for UPNs.
Our project is about computer networking and it will not cause any environmental issues.
Moreover, it has not any health and safety problems for users.
Our project has high potential to improve performance of recent innovativestartups (such
as Open-Garden, M-87, Karma) which have huge customer base.Moreover, completed
version of our project can be developed so it can be implemented on the various computer
networking technology. Therefore, our project is a sustainable project and it has
manufacturability.
8.3 Legal considerations
There are not any legal issues for developing our project now but we must deal with the
mobile operators, if we will release our project to Android application market in the
future.
19
9. Management Plan
9.1 Description of task phases
These are description of task phases;
Researching and learning the theoretical information about UPNs and basic
networking terminology
First Android programming task: Developing communication system between
mobile devices by using network protocols (WiFi-Direct and Bluetooth).
Second Android programming task: Developing a bargain protocol which will be
built on the communication system.
Third Android programming task: Developing tethering application.
Designing and building an electronic hardware for measuring consumed energy.
Fourth Android programming task: Developing application for measuring the
consumed energy
Preparing dataset which includes consumed energy values when server device is
work actively at the different scenarios for cost modelling.
Cost modelling.
Creatingthe utility function.
Fifth Android programming task: Developing the database for keeping user
information and virtual currency amount.
SixthAndroid programming task: Developing more user friendly graphical
interface for Android application.
Seventh Android programming task: Testing application and fixing the bugs.
Measuring and reporting the benefits of our UPN system on the current cellular
network technology.
9.2 Division of responsibilities and duties among team members
I will do my project without team, so i will do all duties and complete my project with my
personal effort under the leadership of Assistant Prof. Ömer Korçak.
20
9.3 Time line
We determined the works for completing our project and detailed project time line is
given in Figure 6.
Figure 6 - Time line with milestones
9.4Risk Management
WiFi-Direct Received Signal Strength Indicator(RSSI) will be an important variable for
cost modelling and utility function so measuring that value is an important task for our
project but there are not any API or framework for determining that signal in the current
Android platform. RSSI value is hard-coded (mRssi = 60; //TODO: fix) [9] for old and
current Android versions. It can be fixed with new Android versions but if it will not be
fixed, we have an alternative solution that using WiFi Hotspot RSSI instead of WiFi-
Direct RSSI.
21
REFERENCES
Journal Paper:
[1] George Iosifidis, Lin Gao, Jianwei Huang, and Leandros Tassiulas, Incentive
Mechanisms for User-Provided Networks,2013
Journal Paper:
[2] Sofia, R., Mendes, P. 2008. "User-provided networks: consumer as provider." IEEE
Communications Magazine, 46(12), 86-91.
Web Page
[3] Open Garden Inc., Home Page. [Online].Available:
http://opengarden.com
(Date of Access: 03 / 11 /2016)
Web Page
[4] M87 Inc., Home Page. [Online].Available:
http://www.m-87.com
(Date of Access: 03 / 11 /2016)
Book:
[5]James F. Kurose, Keith W. Ross, Computer Networking Top Down Approach, Sixth
Edition, Pearson Publishing.
Web Page
[6] Tutorials Point, Java-Networking page. [Online]. Available:
https://www.tutorialspoint.com/java/java_networking.htm
(Date of Access: 03 / 11 /2016)
22
Conference Paper:
[7]Narendran Thiagarajan, Gaurav Aggarwal, Angela Nicoara, Who Killed My
Battery:Analyzing Mobile Browser Energy Consumption, 2012
Web Page
[8] IBM Inc., Home Page. [Online]. Available:
https://www.ibm.com/marketplace/cloud/statistical-analysis-and-porting/resources/us/en-
us
(Date of Access: 03 / 11 /2016)
Web Page
[9] Android Google Source, Home Page. [Online]. Available:
https://android.googlesource.com/platform/packages/apps/Settings/+/c8ee999/src/com
/android/settings/wifi/p2p/WifiP2pPeer.java
(Date of Access: 03 / 11 /2016)