Skip to main content
Login | Suomeksi | På svenska | In English

Browsing by discipline "Networking and Service"

Sort by: Order: Results:

  • Pesola, Laura (2020)
    The Internet of Things (IoT) is the Internet augmented with diverse everyday and industrial objects, enabling a variety of services ranging from smart homes to smart cities. Because of their embedded nature, IoT nodes are typically low-power devices with many constraints, such as limited memory and computing power. They often connect to the Internet over error-prone wireless links with low or variable speed. To accommodate these characteristics, protocols specifically designed for IoT use have been designed. The Constrained Application Protocol (CoAP) is a lightweight web transfer protocol for resource manipulation. It is designed for constrained devices working in impoverished environments. By default, CoAP traffic is carried over the unreliable User Datagram Protocol (UDP). As UDP is connectionless and has little header overhead, it is well-suited for typical IoT communication consisting of short request-response exchanges. To achieve reliability on top of UDP, CoAP also implements features normally found in the transport layer. Despite the advantages, the use of CoAP over UDP may be sub-optimal in certain settings. First, some networks rate-limit or entirely block UDP traffic. Second, the default CoAP congestion control is extremely simple and unable to properly adjust its behaviour to variable network conditions, for example bursts. Finally, even IoT devices occasionally need to transfer large amounts of data, for example to perform firmware updates. For these reasons, it may prove beneficial to carry CoAP over reliable transport protocols, such as the Transmission Control Protocol (TCP). RFC 8323 specifies CoAP over stateful connections, including TCP. Currently, little research exists on CoAP over TCP performance. This thesis experimentally evaluates CoAP over TCP suitability for long-lived connections in a constrained setting, assessing factors limiting scalability and problems packet loss and high levels of traffic may cause. The experiments are performed in an emulated network, under varying levels of congestion and likelihood of errors, as well as in the presence of overly large buffers. For TCP results, both TCP New Reno and the newer TCP BBR are examined. For baseline measurements, CoAP over UDP is carried using both the default CoAP congestion control and the more advanced CoAP Simple Congestion Control/Advanced (CoCoA) congestion control. This work shows CoAP over TCP to be more efficient or at least on par with CoAP over UDP in a constrained setting when connections are long-lived. CoAP over TCP is notably more adept than CoAP over UDP at fully utilising the capacity of the link when there are no or few errors, even if the link is congested or bufferbloat is present. When the congestion level and the frequency of link errors grow high, the difference between CoAP over UDP and CoAP over TCP diminishes, yet CoAP over TCP continues to perform well, showing that in this setting CoAP over TCP is more scalable than CoAP over UDP. Finally, this thesis finds TCP BBR to be a promising congestion control candidate. It is able to outperform the older New Reno in almost all explored scenarios, most notably in the presence of bufferbloat.
  • Iseri, Semih (2020)
    Sleep is a very integral part of human life. Our happiness and overall productivity greatly depend on how well we sleep. It is even more important for kids and babies as it directly affects growth and future well being. Today, it is possible to use a variety of devices to monitor sleep duration and sleep quality, helping us improve how well we sleep. However, most common sleep tracking methods require wearing an electronic device, e.g. a smartwatch or a smart bracelet, to monitor vital signs, and sleep quality information is estimated based on this information. Wearing a watch or a bracelet while sleeping is, however, considered uncomfortable by many and may not be applicable for babies. In this thesis, we study a non-invasive method for measuring the respiration rate to be used for sleep monitoring. We aim to obtain the breathing rate of an individual with no contact. We use a frequency-modulated continuous-wave radar to track chest movements and estimate the breathing rate from this signal. We use the phase component of the raw radar signal in the frequency domain to emphasize the small movements and autocorrelation function to detect the periodicity of the signal. During the study, we carried out an experiment, and we have compared our method to a traditional vital sign measurement device, and we found that our method matches the performance of the commercial device for breathing rate measurement, and outperforms it when it comes to comfort and practicality. Although it may be necessary to collect more data to better verify our results, the outcome of the experiment indicates that this method can provide the needed vital sign measurement performance without being invasive, i.e. without needing to wear any electronic devices.
  • Zhou, Qian (2019)
    Energy plays a central role in mobile computing, especially energy-intensive activities such as watching videos or playing games on mobile devices have increased in popularity. These activities accelerate energy usage in the device, as a result, the question of economizing the energy consumption on mobile devices becomes relevant. Some research efforts have focused on energy management applications to prolong battery life by detecting energy-hungry applications and recommending users to close those applications. However, the recommended applications could be uniquely important to users’ mobile experience and usage might continue even if it means decreased battery life. Except increase battery life by economizing mobile behavior, it is relevant for the design of energy-saving applications to know how users behave when receiving both helpful and redundant recommendations. We conduct a study on mobile application user behavior when there is a mobile energy-aware application (Carat) present on the devices. This thesis provides an approach by using application usage as implicit feedback to study if user behavior changes when recommendations on energy-hungry applications are given over the study period. Firstly, the thesis describes procedures for pre-processing and cleaning the study datasets, such as running applications in sample dataset and energy-hungry applications recommended by Carat in bug dataset and hog dataset. Secondly, this thesis provides statistical analysis methods for analyzing mobile data in different aspects. For example, applications are divided into system and installable applications. We found that users have more common system applications on their devices while less overlapped installable applications. We also separately study bugs and hogs which are the two types of energy-hungry applications. In general, there are more unique energy-hungry applications detected as hogs than bugs. For an average user, system applications are slightly more often bugs than installable applications while installable applications are more often hogs when compared with system applications. Thirdly, this thesis utilizes point biserial correlation to study application usage and Carat recommendations. We found there is no relationship between application usage and recommended energy-hungry applications. We also found that Carat users previously collected information to make recommendations. In addition, we found applications might needed by users. Based on our findings, we suggest that Carat and other energy-hungry applications recommend actions based on recent data only, and do not recommend actions against user’s needs. ACM Computing Classification System (CCS): General and reference → Cross-computing tools and techniques → Empirical studies Probability and statistics → Statistical paradigms → Exploratory data analysis Human-centered computing → Human computer interaction → Empirical studies in HCI
  • Toivonen, Tuomas (2020)
    Efficient payment services form part of the critical infrastructure of a modern economy. In this thesis we investigate the technical, regulatory and commercial aspects of payment systems. We describe the concepts of payment systems, payment schemes and payment infrastructures. We review the common structures of payment systems and develop a taxonomy of payment system characteristics. We leverage the taxonomy in three ways. First, we analyse payment system structures using the concepts of addressing and routing from the theory of data networks. Second, we develop a prototype of a payments router software. Third, we review in detail the primary retail (SEPA and FPS) and wholesale (TARGET2 and CHAPS) payment systems in the Eurozone and the UK. In addition to its academic contribution, we aim for this thesis to serve as an introductory text on payment services and payment systems for software engineers who are new to the domain.
  • Suomalainen, Lauri (2019)
    Hybrid Clouds are one of the most notable trends in the current cloud computing paradigm and bare-metal cloud computing is also gaining traction. This has created a demand for hybrid cloud management and abstraction tools. In this thesis I identify shortcomings in Cloudify’s ability to handle generic bare-metal nodes. Cloudify is an open- source vendor agnostic hybrid cloud tool which allows using generic consumer-grade computers as cloud computing resources. It is not however capable to automatically manage joining and parting hosts in the cluster network nor does it retrieve any hardware data from the hosts, making the cluster management arduous and manual. I have designed and implemented a system which automates cluster creation and management and retrieves useful hardware data from hosts. I also perform experiments using the system which validate its correctness, usefulness and expandability.
  • Lehtonen, Samuli Johannes (2020)
    Online gaming is more popular than ever and many video game companies are reliant on the cash flow generated by online games. If a video game company wants its game to be successful, the game has to be resilient against cheating, the presence of which can ruin an otherwise successful game. Cheating in a video game can bankrupt an entire company as the non-cheating players leave the game because of unscrupulous individuals using cheats to gain an unfair advantage. Cheating can also involve criminal activity where maliciously acquired in-game items are traded against real money online. Commercial cheat programs are sold on online black markets and are available even to players who have no deep technical knowledge. The widespread availability and easy accessibility of cheats compounds the issue. This thesis will categorize different anti-cheat techniques and give a brief history of anti-cheat starting from the early 1980s. The history section describes how the fight against online cheating began and how it has evolved over the years. This thesis will compare different anti-cheat methods, both on the client-side and server-side, and draw conclusions about their viability. It will also look at scenarios where different anti-cheat methods are combined to create more powerful systems. All the anti-cheat methods will be evaluated based on five different criteria on a scale of 1 to 4, with one being the lowest score and four the highest. The thesis will use a custom-built client-server game as an example to illustrate many of the anti-cheat techniques. Requirements of different types of games, such as first-person shooters and strategy games, will also be considered when reviewing the anti-cheat techniques. Lastly, the thesis will look into the future of anti-cheat and introduce video game streaming and the use of machine learning as possible new solutions to tackle cheating. The conclusion will summarize the advantages and disadvantages of different methods and show which techniques are preferable based on the analysis.
  • Dobrodeev, Vladimir (2020)
    Mobile networks become more and more pervasive. The growing demand for mobile connectivity fosters installations of new base stations and various low-power network elements. Furthermore, the upcoming 5th generation of mobile networks (5G) will require to significantly increase network elements' density. The growing number of network elements introduces new challenges for network management. Among these challenges there are scalability and an ability to handle larger volumes of data, which also have higher variety and require higher processing velocity for faster reaction on abnormal situations. The requirements introduced by data volume, variety and processing velocity require Big Data solutions. Data exchange in Big Data can be organized with a special Message Oriented Middleware (MOM), which is a software solution providing a scalable and reliable message-based communication. A popular communication paradigm for MOM is publish/subscribe. There are two main approaches to design of systems based on this paradigm, namely, topic-based and content-based. The first one offers lightweight message routing but has limited capabilities to describe required content. The second one eliminates these limitations at a cost of added complexity of the message routing resulting in higher requirements to middleware performance and message processing cost. The solution proposed in the thesis utilizes benefits of these two approaches. The solution combines expressiveness in describing interests and easy message routing from topic-based approach. In the core of the solution is an algorithm realizing a perfect matching between interests and topics. Constructing such a matching offers more efficient usage of system resources, e.g., network traffic, by utilizing overlaps between interests
  • Touronen, Ville (2019)
    In this thesis the GraphQL query language was studied in the context of the microservice architecture. The thesis was a combination of a literary study and expert interviews. Most prevalent microservice architecture patterns were gathered from peer reviewed studies and grey literature. Four expert interviews were held to detect which patterns were used in projects which used a microservice architecture and GraphQL APIs. Based on the interviews, a typical GraphQL microservice architecture consists of up to 10 REST or GraphQL microservices exposed to public networks using a GraphQL API gateway. The studied microservice architectures typically had a flat structure where a GraphQL API gateway exposed the other microservices in a protected network, which used a persistence layer to store data. Most of the microservice architectures seemed to rely on synchronous communication patterns, using a platform provided service discovery mechanisms to implement load balancing. The most prominent authorization mechanism was to use web tokens via an authorization header. An aggregating GraphQL service seemed to work well as an API gateway layer, which exposes the functionality of underlying microservices to clients. A pattern called schema stitching was successfully used in some of the interviewed projects to automatically combine multiple microservice GraphQL schemas together. Overall the interviewed developers had a positive experience using GraphQL in their projects. The API exploration tools and built-in documentation enabled by the GraphQL schema introspection functionality made client application development easier.
  • Kestilä, Veli-Pekka (2020)
    This Masters Thesis compares Elixir, Go and JavaScript (Node.js) as programming language candi- dates for writing concurrent RESTful webservice backends. First we describe each of the languages. Next we compare the functional concurrency characteristics of the languages to each other. Finally we do scalability testing for each of the languages. Scalability testing is done using the Locust.io framework. For testing purposes we introduce for simple REST-api implementations for each of the languages. Result from the tests was that JavaScript performed the worst of the languages and Go was the most verbose language to program with.
  • Ghasemi, Mandana (2019)
    Over the last years, Location-Based Services (LBSs) have become popular due to the global use of smartphones and improvement in Global Positioning System (GPS) and other positioning methods. Location-based services employ users' location to offer relevant information to users or provide them with useful recommendations. Meanwhile, with the development of social applications, location-based social networking services (LBSNS) have attracted millions of users because the geographic position of users can be used to enhance the services provided by those social applications. Proximity detection, as one type of location-based function, makes LBSNS more flexible and notifies mobile users when they are in proximity. Despite all the desirable features that such applications provide, disclosing the exact location of individuals to a centralized server and/or their social friends might put users at risk of falling their information in wrong hands, since locations may disclose sensitive information about people including political and religious affiliations, lifestyle, health status, etc. Consequently, users might be unwilling to participate in such applications. To this end, private proximity detection schemes enable two parties to check whether they are in close proximity while keeping their exact locations secret. In particular, running a private proximity detection protocol between two parties only results in a boolean value to the querier. Besides, it guarantees that no other information can be leaked to the participants regarding the other party's location. However, most proposed private proximity detection protocols enable users to choose only a simple geometric range on the map, such as a circle or a rectangle, in order to test for proximity. In this thesis, we take inspiration from the field of Computational Geometry and develop two privacy-preserving proximity detection protocols that allow a mobile user to specify an arbitrary complex polygon on the map and check whether his/her friends are located therein. We also analyzed the efficiency of our solutions in terms of computational and communication costs. Our evaluation shows that compared to the similar earlier work, the proposed solution increases the computational efficiency by up to 50%, and reduces the communication overhead by up to 90%. Therefore, we have achieved a significant reduction of computational and communication complexity.
  • Tilles, Jan (2020)
    Serverless Computing aka Function as a Service is a cloud service model in which cloud provider manages computing resources and tenants deploy their code without knowing the details behind the underlying infrastructure. The promise of serverless is to drive the costs down so that a tenant pays only for the computing resources that it actually utilizes instead of paying for idle containers or virtual machines. In this thesis, we discuss that Serverless Computing does not always fulfill these requirements. For instance, some serverless frameworks keep certain resources, such as containers or functions, idle in order to reduce latency during function invocation. This may be particularly problematic in edge domains where computing power and resources are limited. In Function as a Service, the smallest unit of deployment is a function. These functions can be used, for example, to deploy traditional microservice-based applications. Serverless computing allows a tenant to run and scale functions with high availability. Serverless Computing also includes some tradeoffs: developers does not have so much of control over the underlying environment, testing of serverless functions is cumbersome, and commercial cloud service providers have a high degree of lock-in in their serverless technologies. A serverless application is stateless by its nature, and it runs in a stateless container that is event-triggered and managed by the cloud provider. A serverless application can access databases but, in general, state related to the function itself is not stored in files or databases. A number of commercial offerings and a wide range of open-source serverless frameworks are available. In this thesis, we present an overview of the different alternatives and show a qualitative comparison. We also show our benchmarking results with OpenFaaS running on an Kubernetes edge cloud (Raspberry Pi) based on algorithms typically utilized in machine learning.
  • Zhen, Shi (2020)
    Location tracking has been quite an important tool in our daily life. The outdoor location tracking can easily be supported by GPS. However, the technology of tracking smart device users indoor position is not at the same maturity level as outdoor tracking. AR technology could enable the tracking on users indoor location by scanning the AR marker with their smart devices. However, due to several limitations (capacity, error tolerance, etc.) AR markers are not widely adopted. Therefore, not serving as a good candidate to be a tracking marker. This paper carries out a research question whether QR code can replace the AR marker as the tracking marker to detect smart devices’ user indoor position. The paper has discussed the research question by researching the background of the QR code and AR technology. According to the research, QR code should be a suitable choice to implement as a tracking marker. Comparing to the AR marker, QR code has a better capacity, higher error tolerance, and widely adopted. Moreover, a web application has also been implemented as an experiment to support the research question. It utilized QR code as a tracking marker for AR technology which built a 3D model on the QR code. Hence, the position of the user can be estimated from the 3D model. This paper discusses the experiment result by comparing a pre-fixed target user’s position and real experiment position with three different QR code samples. The limitation of the experiment and improvement ideas have also been discussed in this paper. According to the experiment, the research question has being answered that a combination of QR code and AR technology could deliver a satisfying indoor location result in a smart device user.