留学生python题目,互联网系统移动技术
当前位置:以往案例 > >留学生python题目,互联网系统移动技术
2017-12-31

Department of Computer Science
17COP505 – Internet Systems project
Semester 1 2017
1 Introduction
Mobile  phones  are  a  convenient way  of  communication.  There  were  54,403  unique  Base
Stations in the UK* providing coverage for millions of mobile phone users. Whenever your
phone is switched on, it is connected  to a base station at a certain signal strength. As you
move around, it is connected to a different base station at a different signal strength. These
data are collected by mobile phone companies and processed in order to identify areas for
improvement: e.g. areas that have poor coverage, or extremely busy areas that might need
more base stations to balance  the load. In  this project we will simulate such a mobile
phone network monitoring system.
By doing this project, you will gain practical experience in:
• Python programming
• RESTful API design and implementation
• HTTP communication between client and server
• Storing data in mongoDB
• Problem-solving and system design skills

You will work in groups and groups will be allocated during the first week of the module.  In
order to arrive at an individual mark for each group member we will use a peer assessment
system that will ask you to reflect on the performance of yourself in relationship to the others
in your group.  This will be shown during the lectures.
2 Base Station Simulator (25%)
Your  first  task  is  to  create  a  program  in  Python  that simulates a  Base  Station. Each  Base
Station should have the following properties:
• Unique ID
• Location (Street Name, Town/City, County)
• Capacity (how many users can connect to it at the same time)
Your Base Station should have the following functionalities:
• At  startup,  it  should  inform  the  rest  of  the  system  its  properties  and  the  time
(timestamp) it started.
• Your  program  should  simulate  mobile  phones  connecting  to  the  Base  Station and
leaving it, and generate random (but realistic) information. Each time a mobile phone
is connected to a Base Station, the phone number, time of connection, and which Base
Station it connects to is recorded. Upon leaving the Base Station, its record is deleted.
• Your program should send these data to the Data Processor on the server-side to be
stored.
• The flow rate of traffic – when new mobile phones join the Base Station– should be
random, not hard coded.
• Offline functionalities: your program should be able to save messages in memory (in
a data structure of your choice) when an Internet connection is not available, and send
them when the connection is established again.
Multiple instances of Base Station are expected to run on a local computer, to simulate the
network of Base Stations in an area.
3 Data Processor (25%)
Another task of the system is a data processor in Python deployed on the co-project server,
which receives the messages sent from the Base Stations and stores them for future analysis.
In this coursework we will use a mongoDB database to store the data. Instructions on using
sci-project will be given in the lecture or lab.
The data processor should provide the following functionalities:
• Run continuously
• Provide series of well-designed RESTful APIs, and communicate with  the client-side
(Base  Station  Simulator  and  Network  Monitoring  Application) using  HTTP  request
response.
• Store the Base Station information and the mobile phone connection information in
two separate collections.
4 Network Monitoring Application (20%)
The network monitoring application is a separate Python program that queries the store data
to provide interesting insights. It should be able to:
• Produce a list of Base Stations and their details in a given area (town, city, county)
• Produce a list of busiest Base Stations  (those that have reached 90% or more of its
capacity)
5 Report (30%)
You  should  submit  a  report  summarising  the  work  carried  out  and  evaluating  what  you
achieved. The report should include but is not limited to:
• Clear instructions on how to use your system, including any pre-requisite conditions
• Details of system design and implementation of each task
• Justification of any assumptions made and any decisions made
• Test plan and result analysis
• Reflection on any difficulties met, problems solved, lessons learned, and any possible
future improvement
6 Submission
One person per group should submit all the source code and the group report in a single .zip
file on Learn by 4pm on Thursday in week 3.

在线提交订单