Mar 11, 2014

My PhD research was in the area of service allocation in mobile cloud computing. In this post I want to write about mobile cloud computing and my research problems. let's start with mobile computing!
As you know, mobile computing is expanding beyond the traditional approach on voice and data delivery to encompass new classes of rich mobile applications and technologies such as location based services, mobile social networks, crowd computing, sensory based applications and wearable technologies to name a few. These classes of mobile applications and technologies have quantitative and qualitative criteria of growing importance like efficiency and performance, scalability, privacy and reliability. Due to the resource limitation of mobile devices, cloud computing could be a good potential candidate to solve these problems.

Cloud computing could be simply defined as a style of scalable and elastic computing and storing where IT-related capabilities are provided “as a service” to external customers using Internet. It could provide computation, software, and storage services that do not require end-user knowledge of the physical location and system configuration and maintenance.

Fig. 1 shows service model in cloud computing environment. 3 main different service layers could be seen in this stack. The first one is the Software as a Service (SaaS) which provides end users access to the apps like Gmail, Facebook, Microsoft Office 365. The second layer is the Platform as a Service (PaaS) which provides API and programming environments for the application developers. The last layer is the Infrastructure as a Service (IaaS). It provides computation and storage facilities through virtualization technology.Mobile Cloud Computing (MCC) could be simply viewed as using cloud services to empower mobile applications. Fig. 2 shows the general ecosystem of MCC and some of its important residents. In MCC public cloud providers serve scalable and elastic high computation and storage facilities which could be accesses anywhere, anytime. They have distributed data centers in whole world like Amazon, Google App Engine, etc. We also could see local and private cloud providers. They are not scalable and elastic but could provide high QoS services like, data privacy and security, real time services like in games or video streaming, etc. Content and service providers are providing usable services and data contents for the end mobile users like news, videos, email, games, etc. Network providers provide the network infrastructures (wired or wireless) which all MCC components could communicate with each other. Finally the last players are smart-devices and sensors like tablets, traffic cameras and sensors or wearables.

My PhD research lies in the intersection of mobile computing, cloud computing and optimization. I concentrate on three main parts: (i). System modeling and problem formulation, (ii) Service and resource provisioning algorithms, (iii) System performance testing and prototyping. In the following I will describe each part in more details.

System modeling and problem formulation:
The main problem that I focused on, was to optimally assign services to mobile users based on their mobility patterns and service requests. The service could be multimedia streaming, voice recognition or everything as a service (XaaS). I mainly focused on power consumption on mobile device, delay and price of the service as the main criteria for optimization. In the modeling part I designed and developed a unique framework borrowed from Service Oriented Computing (SOC) called location-time workflow (LTW). LTW captures a mobile user service usage pattern and his mobility. I used LTW for modeling two different classes of mobile applications: One is single user mobile apps (like OCR or signal processing applications) and the other class is social and collaborative mobile applications (like multimedia file sharing and editing). For each class different utility functions were defined which model single mobile users’ performance or group performance. This leads us into two main different optimization problems which are NP-Hard. I proposed heuristics to optimally solve the mentioned service allocation problems.

Service and resource provisioning algorithms:
In the algorithmic part, I worked on different heuristics, like greedy-based and simulated annealing-based for solving the two mentioned optimization problems. I considered their optimal (compared with optimal solution), running time and scalability as the performance. I developed MapReduce-based algorithmic model for the mentioned resource provision algorithms for solving scalability issues when the search space for optimization is large (~ 5 Tera of feasible solutions).

System performance testing and prototyping:
In the deployment and the experimental part, I used 2-Tier Cloud Architecture, one is public cloud and the other one is local cloud (UCI local server) [2][3][4]. This 2-Tier Cloud architecture provides better performance, elasticity and scalability in comparison to using public cloud only. I developed MapCloud (Architecture: archVideo, Demo: demoVideo) prototype, a middlewaresolution which contains all the required part of such a service allocation system. To study MapCloud and algorithms performance, OCR+Speech (OCRS), video streaming and transcoding, and multimedia file sharing applications have been developed as the rich mobile applications. For the mentioned mobile applications different services were extracted such as image filtering, noise cancellation, transcoding, etc. We measured the delay and power consumption of services in different situations for both local and public cloud (UCI local servers as the local cloud and Amazon Web Services as the public cloud). The experimental results obtained by profiling real applications have been used to tune the simulation environment. The simulation platform was used to test the performance and scalability of the proposed system architecture and algorithms. We used two important mobility model in our simulation environment, Random Waypoint and Manhattan models. The simulation and experimental results show the optimal of the architecture and algorithms.

Fig 3: 2-Tire Mobile Cloud Computing Architecture

MCC tries to empower the mobile user by providing ubiquitous and rich functionality, regardless of the resource limitations of mobile devices. The future of MCC could be explored in an autonomous digital environment and technologies like wearable technologies in which different devices with standard interface could be connected and plugged in easily and get their computation, storage and other resources to do their processing, monitoring, communication and storing tasks [1].

Mar 6, 2014

After I did my undergrad in electrical engineering, I was working a couple of years in hardware and software industries. I decided to continue my studies in the area of computer science. I experienced lots of interesting things during my studies and work. I want to share some of them with you:

If you don't write and present yourself in effective way, you don't exist!

I got that good writing and presentations are very important factors in success in your career and life, but why? First of all as many of you knows these are basic skills that you need to communicate with others. The second things is that writing makes you Smarter! Yes Smarter! but why?
This is an interesting fact that I got during my studies in computer science. It could be simply explained as the computational power of Finite State Machines/Automata (FSM), and Turing Machine (TM). TM writes while FSM does not! It could be easily proved that TM is Stronger (It's not the exact scientific term but I want to give you a sense!). This motivated me to continue my writing after graduation and I chose blogging and Slideshare as one of my main and effective tools and medias for writing and presenting.

If you don't code you don't do research and development!

I have a feeling that the scientific research and development will change ( and are changing now! ) from Papers to Executable Demo/Pilot Codes. Now there are lots of high level Domain Specific Languages (DSLs like R, Matlab, SQL, ...) and libraries that could translate concepts and ideas efficiently from different research domains into executable codes. The future scientific journals will contain brief writing about idea and its related detailed documented codes. I believe this is the future trend in research and development. If you don't code you don't do research!

Cloud Computing: A Framework for Software Systems Mass Production!

Finally, my last word is about Cloud Computing, the dream that comes finally true. We are in the era that I want to compare it when Gutenberg introduces mass communication and printing. Gutenberg's invention revolutionized human history. Now we are in the era in which a small number of people could code and affect human society in large and this is because of cloud computing. This will provide and open new opportunities for entrepreneurs!
Reza

Mar 3, 2014

I am a PhD.D candidate in the school of information and computer science, university of California, Irvine. I will graduate in the next couple of months and I start this blog to continue writing in the area of information technology and its effects on human life. I chose Recursion as my blog name. Recursion is one of the famous theorem in the computer science and I will explain in the future posts why I chose this name.