Article Preview
Top1. Introduction
In recent years, the hardware of mobile devices such as smartphones and tablets have been dramatically improved. Most of modern smart phones have four-core ARM CPU, several GB RAM, powerful graphic process unit (GPU) (Owens, Houston, Luebke, Green, Stone, & Phillips, 2008) and high-capability power cells. The execution performance of mobile devices becomes comparable with that of common computers. This advanced hardware development causes the applications of mobile devices are rapidly increased and enriched. Nowadays, an enormous number of APPs have been proposed in App Store and Google Play. Many popular PC applications such as Office, Skype and Photoshop have supported a simplified version, i.e., APPs for mobile devices. Using these APPs, users can do many things in mobile devices as well as in computers. Consequently, more and more people rely on mobile devices to handle their daily affairs including communicating, working, learning, shopping, gaming and so on. Mobile devices have replaced PCs and laptops to be the most important computer equipment for users.
Reacting to this trend, some mathematical-computation APPs such as Addi (Corbin Champion, 2011) and Octave (John, 1988) recently have appeared in App store and Google Play. These APPs basically provide a MATLAB (MathWorks, 1984)-like working environment for users to perform mathematical computation and simulation of science and engineering in their mobile devices anytime anywhere. For mobile scientists and engineers, these APPs enable them to analyze collected data, and make decisions in live to increase their work efficiency and achieve the best time effectiveness. However, these APPs don’t support the whole set of MATLAB instructions, and parallel computation like Parallel Computation Toolkit (PCT) (MathWorks, n.d.) of MATLAB. As a result, they cannot completely satisfy user’s demands on functions and execution speed. In addition, the memory and electricity capacities of mobile devices are finite although the computational speed of mobile devices have been greatly promoted. Consequently, they cannot process a large amount of data or compute data for a long time because of lacking enough memory space and electrical power. For resolving this problem, users can make use of the APPs of remote desktop to execute MATLAB programs on their office computers through Internet. However, they must have and renew the license codes of MATLAB every year, and keep their PCs standby at all times. If they want to improve the speed of massive data computation with the PCT of MATLAB, they have to pay additional fee for getting the license of PCT and constructing a dedicated computational cluster. Obviously, this is not an economic solution for any users.
Fortunately, the technique of cloud computing (Buyya, Yeo, Venugopal, Broberg, & Brandic, 2009; Zhang, Cheng, & Boutaba, 2010; Agrawal, Das, & El Abbadi, 2011) recently raised up to provide a pay-as-you-go service for users to make use of software and hardware resources available in data centers by means of time or space sharing. Basically, cloud services can be classified into three models: IaaS (Infrastructure as a service), PaaS (Platform as a service), and SaaS (Software as a Service). IaaS such as Amazon EC2 (Amazon, 2007) and Microsoft Azure (Microsoft, 2010) provides virtualized computing resources over the Internet. PaaS like Google APP Engine (Sanderson, 2009) delivers a working platform with abstracting infrastructure, OS, and middleware for application developers. SaaS such as Salesforce Service Cloud (Salesforce, 1999) and Citrix GoToMeeting (Citrix, n.d.) supports users to access software and its functions remotely as a web-based service without caring the installation and maintenance of software and its license. With the supports of clouds services, users can exploit various software and hardware resources to resolve their problems with an economic cost while they need not invest a lot of money in buying and maintaining these resources.