• No results found

A Software Engineering Framework for Next-Generation Mobile Cloud Computing

N/A
N/A
Protected

Academic year: 2020

Share "A Software Engineering Framework for Next-Generation Mobile Cloud Computing"

Copied!
7
0
0

Loading.... (view fulltext now)

Full text

(1)

International Journal of Emerging Technology and Advanced Engineering

Website: www.ijetae.com (ISSN 2250-2459, Volume 2, Issue 10, October 2012)

245

A Software Engineering Framework for Next-Generation

Mobile Cloud Computing

R.Veeranjaneyulu

1

, S.Srinivasulu

2

1Assoc.Professor,2Asst.Professor,Department of Information Technology, PACE institute of Technology & Sciences, Ongole,

India.

Abstract — Recent development of mobile cloud computing [10] constructed a new service oriented framework that recruits mobile devices as service providers to build a sensing-based new application platform. In such a framework, each mobile device (usually an embedded device) is a service provider. First, an embedded device senses its surrounding information, such as wireless communication channel status, neighboring nodes information, environmental information,, personal information (e.g., medical and health information using bio sensors), etc. Second, the mobile cloud creates a dual computing model in that embedded devices can outsource its computing-intensive tasks to the cloud. Cloud computing is a common term for applications where remote processing and data storage are accessed via the Internet (such as Software as a Service [SaaS] and Platforms as a Service [PaaS]) has become a popular buzz word on many IT forums. MCC integrates cloud computing into the mobile environment and overcomes obstacles related to performance (e.g. battery life, storage, and bandwidth), environment (e.g. heterogeneity, scalability, availability) and security (e.g. reliability and privacy).This paper provides an overview of important software engineering framework related to the development of MCC applications that run on mobile devices and a software framework of Service Oriented Architecture (SOA) for mobile cloud computing. Among the topics are development processes, tools, user interface design, application portability, quality, and security.

Keywords - Cloud Computing, Cloud Model, Security Model, Cloud, Mobile Cloud Computing, software engineering, programming environments, user interface design, research agenda.

I. INTRODUCTION

Mobile devices, of all shapes and forms, are the fastest-growing computing segment. While mobile devices are ubiquitous, they offer limited computation, storage, and power. Cloud computing promises to fill this gap by providing computation and storage to mobile devices connected to the network. The market of mobile phones has expanded rapidly. According to IDC [1], the premier global market intelligence firm, the worldwide Smartphone market grew 42.5% year over year in the first quarter of 2012. The growth of mobility has changed our lives fundamentally in an unprecedented way.

According to Cisco IBSG [2], close to 80 percent of the world’s population has access to the mobile phone and new devices like the iPhone, Android smartphones, palmtops and tablets have brought a host of applications at the palms of people’s hands. At the same time, Cloud Computing has emerged as a phenomenon that represents the way by which IT services and functionality are charged for and delivered. NIST (National Institute of Standards and Technology, USA) definition [3] from September, 2011 released in its “Special Publication 800-145” of Cloud Computing is: “Cloud Computing is a model for enabling convenient, on-demand network access to a shared pool of configurable resources (e.g. networks, servers, storage, applications and services) that can rapidly be provisioned and released with minimal management effort or service provider interaction.

A more formal definition that encapsulates the key benefits of cloud computing from a business perspective as well as its unique features from a technological perspective given by Sean Martson et al. [4] in their research paper is as follows:“It is an information technology service model where computing services (both hardware and software) are delivered on demand to customers over a network in a self-service fashion, independent of device and location. The resources required to provide the requisite quality-of service levels are shared, dynamically scalable, rapidly provisioned, virtualized and released with minimal service provider interaction. Users pay for the service as an operating expense without incurring any significant initial capital expenditure, with the cloud services employing a metering system that divides the computing resource in appropriate blocks.”

We have recently conducted a small survey of mobile developers [1], using available mobile developer forums to solicit respondents. A key goal of the survey was to gain a better understanding of development practices for mobile cloud computing applications.

Our conclusions included the following points:

(2)

International Journal of Emerging Technology and Advanced Engineering

Website: www.ijetae.com (ISSN 2250-2459, Volume 2, Issue 10, October 2012)

246

2)there was a sharp divide between “native” applications, those that run entirely on the mobile device, and web applications, which have a small device-based client with execution occurring on a remote server;

3)developers adhered quite well to recommended sets of “best practices” but rarely used any formal development processes, and;

4)developers did very little organized tracking of their development efforts and gathered few metrics

There are numerous comprehensive programming environments available for the major mobile platforms. Apple’s iOS Dev Center offers the Xcode package, which includes an Interface Builder, an iPhone emulator, and a complete development environment that can be used across all Apple products [2]. For Android, developers can use the Android Development Tools plug-in [3] for the Eclipse programming environment [4]. For Winows Phone, developers can use a specialized version of Microsoft’s Visual Studio environment [5]. Similarly, there are application development tools for BlackBerry, Symbian, and other platforms. In addition, there are now some cross-platform development tools, such as RhoMobile’s Rhodes and the open source PhoneGap, which can be used to create native applications on various brands of Smartphones. Along the same lines, Netbiscuits, Appcelerator, Kyte, and other companies provides tools and frameworks to support the creation of mobile web and hybrid sites using their SDK or one of the previously mentioned environments.

These powerful development tools and frameworks greatly simplify the task of implementing a mobile application. However, they are predominantly focused on the individual developer who is trying to create an application as quickly as possible. For small and medium-sized mobile applications that can be built (and easily updated) by a single developer, they represent a vast improvement on the previous generations of tools, and encourage developers to adhere to the important principles of abstraction and modularity that are built into the platform architectures.

However, as mobile applications become more complex, moving beyond inexpensive recreational applications to more business critical uses, it will be essential to apply software engineering processes to assure the development of secure, high-quality mobile applications. While many “classic” software engineering techniques will transfer easily to the mobile application domain, there are other areas for new research and development. The remainder of this paper identifies some of these areas.

II. SOFTWARE ENGINEERING AND MOBILE CLOUD

COMPUTING APPLICATION DEVELOPMENT

We define “software engineering” as a process by which an individual or team organizes and manages the creation of a software-intensive system, from concept through one or more formal releases.

Developing software applications utilizing mobile platforms and cloud based services requires innovations in software engineering and availability of specialized tools.

2.1 The Present scenario of mobile cloud computing

To better understand mobile cloud computing, it helps to know about cloud computing in general. The two key features important here are:

1. Cloud computing enables convenient, on-demand network access to a shared pool of configurable computing resources (such as networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction.

2. There are three basic models of cloud service: Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Software as a Service (SaaS). Mobile cloud computing was defined in a 5 March 2010 entry in the Open Gardens blog as "the availability of cloud computing services in a mobile ecosystem. This incorporates many elements, including consumer, enterprise, femtocells, transcoding, end-to-end security, home gateways, and mobile broadband-enabled services." (A femtocell is a small cellular base station.)

2.2 Mobile Cloud Computing Changes App Development

With the advent of mobile cloud computing, increasing effort has been put into developing platforms that simplify the development of cloud-based mobile applications. Creating apps for the mobile cloud is significantly different than developing apps for a native smartphone platform like the iPhone or Android. But over the long run, the mobile cloud computing model may prove more profitable for app developers, and open the field to a larger number of developers.

2.3 Mobile Cloud Computing vs. Standard Cloud Computing

(3)

International Journal of Emerging Technology and Advanced Engineering

Website: www.ijetae.com (ISSN 2250-2459, Volume 2, Issue 10, October 2012)

247

These include software-as-a-service (SaaS), platform-as-a-service (PaaS), and infrastructure-as-platform-as-a-service (IaaS), and database-as-a-service (DBaaS). With SaaS, clients can purchase a piece of software that is accessed online, or possibly data that will be stored online. While SaaS can almost generally be applied to all types of software, in the context of cloud computing we take it to represent software that is accessed from a machine residing on the Internet as opposed to software that is downloaded and installed locally. Salesforce.com is a major SaaS provider.

The PaaS type systems are especially useful for Web servers. Instead of having to purchase their own infrastructure and hosting that hardware somewhere, users can purchase the rights to host their web site in the cloud on somebody else’s infrastructure. Google App Engine is a popular example of a PaaS provider.

IaaS providers deliver computer infrastructure, typically at the level of a virtualized environment, as a service including storage and networking. Clients can buy these resources as a fully outsourced service. The amount of services consumed by the client determines the cost. Amazon’s EC2 is major provider of IaaS services.

There is a relatively new concept to the cloud computing community being termed as Database-as-a-Service (DBaaS). Microsoft recently released a beta version of SQL Server called SQL Server Data Services (SSDS).They intend this to be used in cloud environments so that customers of a specific cloud provider can still use the mainstream database they have come to depend upon without having to purchase full licenses that would have to be installed by the cloud provider.

These services are charged by the hour, like the electric company charges their clients per kilowatts an hour of usage. The multitude of service platforms offered allow consumers to tailor their service subscriptions meet their specific needs and ultimately provide both operational and financial benefits to their company.

In mobile cloud computing, cloud services converge with Mobile Multimedia Broadcasting (MMB). Mobile cloud computing more-or-less requires an everything-as-a service concept where software, platform, and database services are really all required to be in the cloud to provide small devices with reasonable battery-life quick access to information and the ability to manipulate large quantities of data. Additionally, the concept of offering Networking-as-a Service (NaaS) is added too.

III. SOFTWARE ENGINEERING BEST PRACTICES

With all of the recent experience in creating mobile applications, much is known about how to build them and about how people use their devices and these applications.

At the same time, all but the largest and most complicated software and system development projects have moved away from a process-intensive approach toward a more agile approach, with the Scrum approach [7] and other agile techniques, e.g., testdriven development, finding widespread acceptance. That’s particularly true of applications developed for the Web, where the development model relies on many successive releases of the evolving product. The Scrum development process is a sequence of short (2-4 weeks) “sprints” where a team addresses a set of tasks as a product increment, with each sprint addressing a “backlog” of requirements. Our survey of mobile developers [1] suggested that even individual developers are following a Scrumlike process as they develop mobile applications. Above and beyond the process, though, is the systematic codification of knowledge about the best practices to follow for application development. The World Wide Web Consortium has issued a candidate set of recommendations for mobile web (not native) applications [8]. Apple has published an iPhone Application Programming Guide [9] with guidelines for various aspects of iPhone development. The Developer’s Guide for Android includes a Best Practices section that addresses application compatibility, user interface guidelines, and designing for performance and responsiveness, among other things [10].In short, developers can find a lot of guidance to assist them with programming their applications. Platform developers have drawn on decades of software engineering knowledge to create software architectures and SDKs that provide developers with access to needed device resources. However, these technical aspects don’t address the larger issues of creating large-scale applications.

3.1 Finding the Balance

One of the long-term challenges in every engineering discipline is “scaling up”: finding appropriate techniques for managing increasingly complex projects. Approaches that work well for an individual engineer don’t always work when the tasks of a project are divided among members of a team. The team (and any supervisory management) need mechanisms for coordination and reporting. The added complexity of larger projects often demands greater attention to [changing] requirements, product architectures, and testing, as well as to key project properties, such as robustness, usability, reliability, and more.

(4)

International Journal of Emerging Technology and Advanced Engineering

Website: www.ijetae.com (ISSN 2250-2459, Volume 2, Issue 10, October 2012)

248

Many large-scale and enterprise-oriented mobile applications will be part of a product family. These applications will often be mobile web applications, rather than native mobile applications, and will often complement or augment an existing application. As a result, development of the mobile application will typically be done within the context of the overall software development effort, thus providing a management framework for the mobile application. However, the unique qualities of the mobile environment makes it important not to treat the mobile application as an afterthought, but rather as an independent task with its own software engineering process and product requirements

IV. MOBILE CLOUD COMPUTING SOFTWARE

FRAMEWORK

Service-oriented software engineering incorporates the best features of both the services and cloud computing paradigms, offering many advantages for software development and applications, but also exacerbating old concerns. Services computing focuses on architectural design that enables application development through service discovery and composition. Mobile Cloud computing focuses on the effective delivery of services to users through flexible and scalable resource virtualization and load balancing.

Service-oriented software engineering incorporates the best of these two paradigms. Initially, SOSE was based on services computing, but it evolved to include cloud computing. In SOSE, a service-oriented architecture (SOA) provides the architectural style, standard protocols, and interfaces required for application development, and cloud computing delivers the needed services to users through virtualization and resource pooling. Combining services and cloud computing in a software engineering framework can help application developers and service providers meet the individual challenges of each paradigm.Although SOSE is conceptually promising, its realization will require additional research in software engineering to address the challenges, such as security and quality-of-service (QoS) management, that arise in services or cloud computing.

4.1 Service Computing

Service developers follow SOA, an architectural model for creating and sharing computing processes, packaged as services.

2 Each service is an independent software entity with a well-defined standard interface that provides certain functions over networks. Developers can dynamically compose services as a workflow, which forms the basis of an application.

In this context, software itself can be a service—a self-contained, stateless, and platform-independent entity with a URL, an interface, and functions that can be described and discovered as XML data.

Fig 1

Using standard protocols and interfaces, application developers can dynamically search, discover, compose, test, verify, and execute services in their applications at runtime. SOA-based application development is through service discovery and composition, which involves three stakeholders:

 A service provider (or developer) is the party who develops and hosts the service.

 A service consumer is a person or program that uses a service to build an application.

 A service broker helps service providers publish and market their services and helps service consumers discover and use the available services.

Application developers need not integrate service code into applications because the service runs at its provider’s site and is loosely coupled with applications through standard messaging protocols.

4.2 Mobile Cloud Computing

(5)

International Journal of Emerging Technology and Advanced Engineering

Website: www.ijetae.com (ISSN 2250-2459, Volume 2, Issue 10, October 2012)

249

Fig 2

Figure 2. Mobil Cloud computing architecture. The top layer allows users and application developers to access services that third parties host and manage. The second layer consists of computing platforms and development services, and the third layer provides the computing resources that users can tap on demand.

Software as a service

Software that performs various tasks is not on the client machine. Instead, third-party service providers host and manage the software services in the cloud. SaaS includes both software components (for application developers) and applications (for users). An SaaS application is often a service-oriented program so that it is easy to integrate with other SaaS applications.

Platform as a service

PaaS provides a development platform with services to assist application design, implementation, testing, deployment, monitoring, and hosting in the cloud. It requires no software download or installation and supports geographically distributed collaborative work.

Infrastructure as a service

IaaS virtualizes the data centers’ computing power, storage, and network connectivity. Users can scale these computing resources up and down on demand.

4.3 Application Development with Two Paradigm

The Services computing and cloud computing are two separate paradigms, and each provides many advantages for software development and application. Application developers can use services computing alone, cloud computing alone, or a combination of the two.

We believe that combining these two paradigms in a software engineering framework will help alleviate some of the software engineering challenges that services and cloud computing have individually. For example, a major challenge of services computing is to manage the runtime QoS of loosely coupled services involving distributed service providers. Cloud computing can help meet that challenge through resource allocation and virtualization. On the other hand, cloud computing struggles both with providing interoperability across different clouds and with the rapid development of, and adaptation to, ever-changing business environments and requirements. SOA’s standard interfaces and protocols could help address this interoperability challenge, while its dynamic service discovery and composition can provide the capabilities needed for dynamic adaptation in cloud computing environments.

Figure 3 shows the concept of developing applications using SOA and delivery through the cloud. Service providers could publish SaaS, PaaS, IaaS, and software artifacts, such as application templates, user interfaces, data schema, policies (including security policies), and testing tools in a service directory cloud.

Fig 3

The SOSE vision: Service providers publish their services to a federated cloud directory. Application developers discover and compose the services to build an application, which is delivered to users through the cloud.

V. DEVELOPMENT WITH ASERVICE-ORIENTED

ARCHITECTURE(SOA)

[image:5.612.346.537.408.575.2]
(6)

International Journal of Emerging Technology and Advanced Engineering

Website: www.ijetae.com (ISSN 2250-2459, Volume 2, Issue 10, October 2012)

250

Application development in SOA is different from software development approaches such as object-oriented programming, component-based software development, and aspect-oriented programming. The construction of an application from smaller software components in other software development methodologies is static and manual and depends on the components’ technology and platform. In contrast, service composition in SOA is automated through standard protocols and interfaces, and thus does not depend on a specific technology or platform. In addition, service development, service publishing, and service composition (or application building) are parallel processes in SOA.

The challenge for developing applications using SOA is in addressing its distributed nature. Not only are the services under development distributed among different machines in various locations, but the development process is also distributed because the application developers, service brokers, and service providers work independently in different locations. Hence, these three stakeholders must collaborate through well-defined standards and interfaces.

Fig 4

Figure 4 shows some key tasks and interactions among these individuals. As in other software development methodologies, SOSE starts with requirements engineering. During this phase, the application developer develops a business model; works with the customer to analyze, clarify, and refine requirements; designs a workflow for the business model; and decomposes requirements.

The application developer then sends each decomposed part of the requirements to the service broker to find available services that satisfy these requirements parts.

After successfully discovering all the needed services to satisfy each part, the application developer selects the needed services for all requirements parts and composes them into an application, essentially the business model workflow.

If no services are available for some parts, the application developer can register them in the service broker’s directory and wait until the needed services are available. From the service providers’ view, service development is similar to what happens in other software development processes, except that services must also comply with standard protocols and interfaces.

Software development in SOSE is highly flexible because SOA makes it possible to publish and reuse not only software services, but also numerous application development artifacts. Application developers can publish business models, application templates (workflow structures), requirements, services, application interfaces, testing tools, testing scripts, and policies in a service broker’s directory, making them available for reuse. This flexibility facilitates the rapid development of large-scale Mobile cloud distributed applications.

5.1 Delivery through cloud computing

Software engineering must address not only the software development processes, but also the effective delivery of the developed software to users, which includes software deployment and maintenance. However, SOA does not address how a developed application is to be delivered to users or how service providers will effectively manage the applications during runtime. Cloud computing can help SOSE ensure effective application delivery by providing

 easy application deployment and maintenance for service providers through service virtualization,

 interfaces to facilitate users’ access to and use of applications, and

 QoS management for service providers through dynamic resource virtualization and allocation.

VI. MCC APPLICATION DEVELOPMENT CHALLENGES

[image:6.612.56.281.383.568.2]
(7)

International Journal of Emerging Technology and Advanced Engineering

Website: www.ijetae.com (ISSN 2250-2459, Volume 2, Issue 10, October 2012)

251

 Confidentiality and integrity

 Service reliability and availability

 Quality-of-service monitoring

 Mobile computing

 Security in a multitenant environment

 Unknown risk profile

VII. CONCLUSION

We have described the design and implementation of, a software framework for Mobile cloud computing. Although services computing and cloud computing have great promise in meeting the increasingly severe requirements of dynamic application development and use, fully realizing this potential requires some kinds of application development structure. Software engineering can help combine these Mobile computing paradigms and harness their considerable advantages for application development. We believe that this framework will significantly simplify the development of complex cloud applications, by incorporating fundamental distributed computing functionality and abstractions into the system and by promoting the use of design patterns that promote scalability and reliability. Although many challenges remain in moving this idea from vision to implementation, the benefits of such an environment should serve to motivate the software engineering research that can meet those challenges.

REFERENCES

[1 ] Y. Chen and W.-T. Tsai, Service-Oriented Computing and Web Data

Management: From Principles to Development, Kendall Hunt, 2010.

[2 ] K. Channabasavaiah, E. Tuggle, and K. Holley,“Migrating to a

Service-Oriented Architecture,” 16

Dec.2003;www.ibm.com/developerworks/webservices/library/ws-migratesoa.

[3 ] S.S. Yau and H.G. An, “Confidentiality Protection in Cloud

Computing Systems,” Int’l J. Software Informatics, vol. 4, no. 4, 2010, pp. 351-365.

[4 ] Eclipse web site. http://eclipse.org. Accessed on 6 September 2010.

[5 ] Windows Phone developer site

http://developer.windowsphone.com/windows-phone-7-series/Accessed 6 September 2010.

[6 ] Fring, Brian. 2009. Mobile Design and Development. O’Reilly.

[7 ] Schwaber, K. 2004. Agile Project Management with

Scrum.Microsoft Press.

[8 ] Hoang T. Dinh, Chonho Lee, Dusit Niyato, and Ping Wang, “A

survey of Mobile Cloud Computing: Architecture,Applications and Approaches”, Wireless Communications and Mobile Computing, 2011

[9 ] I. Foster, Y. Zhao, I. Raicu, and S. Lu, “Cloud Computing and Grid

Computing 360-Degree Compared,” in Proceedings of Workshop on Grid Computing Environments (GCE), Pages 1-10, 2009

[10 ]L. Youseff, M. Butrico, and D. Da Silva, “Toward a unified

ontology of cloud computing,” in Grid Computing Environments Workshop, IEEE, Pages 1-10, 2008

[11 ]World Wide Web Consortium, Mobile Web Application Best

Practices W3C Working Draft, 13 July 2010.

http://www.w3.org/TR/mwabp/ Accessed on 6 September 2010.

[12 ]Apple. iPhone Application Programming Guide.

http://developer.apple.com/iphone/library/navigation/index.html. Accessed on 6 September 2010.

[13 ]Android Developers. The Developer’s

Guide.http://developer.android.com/guide/index.html Accessed on 31 May 2010.

[14 ]11. Thomas ERL, ―Service-oriented Architecture: Concepts,

Technology, and Design‖, Upper Saddle River: Prentice Hall PTR. ISBN 0-13-185858-0, 2005.

[15 ]D. Kyriazis et al., ―A Real-time Service Oriented Infrastructure‖,

International Conference on Real-Time and Embedded Systems (RTES 2010), Singapore, November 2010

AUTHOR’S PROFILE

.

R.Veeranjaneyulu Hod & Assoc. Professor, Dept of IT

Figure

Figure 2. Mobil Cloud computing architecture. The top Fig 2  using SOA and delivery through the cloud
Fig 4  QoS management for service providers through Figure 4 shows some key tasks and interactions among   dynamic resource virtualization and allocation

References

Related documents

 Invitation: It is a great pleasure on the part of University Institute of Technology , Burdwan University to announce a one week Management Development Programme (MDP) on Total

The proportion of passive verbs varies with the type of prose: scientific prose, for instance, may show far more passives than narrative prose. But to point this out is not

It appears that both body and resin color pigments are derived through laccaic acid D, which is a component of the body color pigments in wild type crimson insect and only

DICAL HOUSE gifts and wine hampers are always well received, and there is a hamper for every taste so step inside the flagship Store located on the outskirts of Mosta, or if more

The purpose of this study is to explore human capital productivity strategies used by THL business leaders in southern Nigeria that have improved employee productivity. This

3 shows that the developed FE models predicted the strain distributions and the curvatures of the tested slabs reasonably well considering the large variability in

While the former, like headcount poverty, measures the proportion of the population who financed healthcare ‘catastrophically’ the latter, like the severity of poverty

In contrast, for the HPRs, ‘ comprehension monitoring ’ was used more frequently with the expository text than the narrative text (see the highlighted) and their