software engineering challenges: a cloud based ...

8 downloads 127341 Views 253KB Size Report
also describes evolution of cloud computing, advantages of cloud ... Keywords: Cloud computing, Cloud Architecture, Software engineering for Cloud, ...
Sci.Int(Lahore),26(5),2309-2313 ,2014

ISSN 1013-5316; CODEN: SINTE 8

2309

SOFTWARE ENGINEERING CHALLENGES: A CLOUD BASED ARCHITECTURE FOR EARTHQUAKE FORECASTING



Aamir Khan, Nauman A. Qureshi, Umair Abdullah NUST School of Electrical Engineering and Computer Science, Islamabad Pakistan Foundation University Islamabad, Pakistan {12msitakhan, nauman.qureshi}@seecs.edu.pk, [email protected]

ABSTRACT: Cloud technology is successful for data processing intensive applications having requirement of high scalability, where conventional software systems cannot perform better. This paper presents software engineering challenges faced by cloud applications, and proposes a cloud based architecture – to overcome these challenges – for a sample cloud application of earthquake forecasting. In past few years cloud computing has emerged as distributed environment, with great potential for providing IT services over the internet. Generally, cloud consists of thousands of computing machines to provide virtually unlimited computing resources. The advantages of using cloud includes: reduced infrastructure cost, reduced maintenance cost, reduced risk, and high scalability. To give better understanding, this paper also describes evolution of cloud computing, advantages of cloud technology, and comparison of commercial cloud providers. Keywords: Cloud computing, Cloud Architecture, Software engineering for Cloud, Earthquake forecasting system.

1. INTRODUCTION Cloud computing can be defined as an environment that share computational power over the network nodes [1]. It provides on-demand Information Technology (IT) resources i.e. users can customize according their needs and pay according to consumption. It is considered as the next generation of computing. For home users cloud computing is the way to have anywhere anytime accessibility. For Enterprise organizations cloud computing provides improved and on-demand infrastructure. Figure 1 displays the architecture of cloud computing [2]. The cycle begins from user who selects a service with the help of the interface provided by cloud service provider. For the service requested by the user an appropriate cloud service is initiated by system management and at the end web application is launched. While using software engineering principles cloud computing also face some challenges such as; data security, network latency, customization issues etc. which may occur in requirements engineering phase, or in developing new cloud based application or when migrating existing application to cloud based architecture. With the help of a scenario of using cloud computing i.e. earthquake prediction a cloud based architecture has been proposed in this paper to overcome these challenges. Section II presents advantages of cloud computing. Section III provides overview of cloud computing technology, while some cloud products are mentioned in section IV. Section V describes challenges faced by cloud computing. Section VI presents a scenario of cloud based application i.e. earthquake prediction, with the proposed design in section VII. At the end concluding remarks have been given.

Figure 1: Cloud computing architecture

2. ADVANTAGES OF CLOUD TECHNOLOGY Recently many organizations have shifted their existing infrastructure to cloud in order to capitalize benefits of cloud computing technology [2]. Business drivers towards usage of cloud computing includes: A. Capacity Management For a business having peaks and troughs of demands, scalability is the central requirement. Because in IT, user demands keep on changing therefore identification of future needs and demands is required. It is a complex job to deal with rapidly changing demand requirements. Cloud computing provides the solution towards this problem by providing on-demand access to IT resources.

2310

ISSN 1013-5316; CODEN: SINTE 8

B. Cost Reduction Cloud computing provides an answer to cost reduction as to reduce cost and maximize profit is one of the main objective of the business. Software and hardware cost is reduced by cloud. Cloud computing consumers can avoid return on investment risk by reducing capital expenditures (CapEx). Cloud computing consumers also reduce the operation expenditures (OpEx) as maintenance is carried by cloud service providers. C. Mobility Nowadays users do not need to carry computers everywhere for working with their documents. Cloud computing has provided anytime, anywhere access facility. Moreover, sharing of documents is possible on cloud. Multiple users can work on same document simultaneously and can view the changes in real time. 3. OVERVIEW OF CLOUD COMPUTING TECHNOLOGY Cloud computing is not relatively new concept. In 1960s John McCarthy visualized the idea of provision of computing as utility to general public [3]. However, in 2006 Google’s CEO Eric Schmid described cloud as delivering services over the internet, after that this term starts getting popularity. For many years standard definition of cloud computing not exist. Few years back there has been work to define cloud computing and several cloud computing definitions have been introduced. The definition followed in this paper is the one that is provided by National Institute of Standards and Technology (NIST). Services offered by cloud have been grouped in three different classes [4]: 1. Infrastructure as a service: Provision of infrastructure resource on demand refers to infrastructure as a service. Cloud owner offering such type of services is called IaaS provider. Infrastructure of cloud is changed to multi-tenant environment using the concept of virtual machines without compromising over the security and privacy of each user. 2. Platform as a service: Provision of platform layer resources refers to platform as a service. Platform layer resource includes Operating Systems (OSs) and software development toolkits (SDKs). 3. Software as a service: Provision of software applications over the internet refers to software as services (SaaS). High services are provided by SasS application to end users by reducing, these services can be access anywhere anytime. All these services are provided on pay as on go bases i.e. users are only charged for the time for which they use these resources. IaaS and PaaS are often offered by the same organizations called cloud providers. Figure 2 depicts the cloud computing services business model [3]. Cloud computing models can be further divided into four classes: [5]: 1. Private Cloud: Cloud services that are operated and managed by single organization, no matter located within or outside of that organization. Driving factors behind having private cloud include: maximum utilization of the resources and organizations having secure information prefer to have private cloud e.g. NASA.

Sci.Int(Lahore),26(5),2309-2313 ,2014

End User Web Interface Service Provider (SaaS) Utility Computing Infrastructure Provider (IaaS,PaaS) Figure 2: Cloud computing services business model

Community Cloud: Cloud services that are shared by multiple organizations having same point of interest and policies e.g. health care organization. It provides the degree of economic scalability. Infrastructure can be hosted by third part or organizations sharing that infrastructure. 2. Public Cloud: This is the most common cloud computing deployment model. In this type of cloud computing deployment model cloud owner has the authority and it is used by the general public and organizations. Service level agreement (SLA) defines the services offered to users. Renowned public cloud providers are Amazon EC2, Google App Engine and SalesForce.com. 3. Hybrid Cloud: This cloud deployment model is mix of two more cloud deployment model (private, community and public). 4. CLOUD BASES PRODUCTS As discussed earlier many organizations have replaced their existing infrastructure due to facilities offered by cloud computing. This section discusses most dominant cloud computing applications. D. Amazon EC2 Amazon Web Services (AWS) is set of cloud services that provide computing and storage resources [7]. AWS can be accessed over HTTP and uses REST and SOAP protocols for communication. Amazon Elastic Compute Cloud also known as Amazon EC2 provides an API that enables users to launch and manage server instances over Amazon data centers. EC2 creates virtual machines against each instance created by users which run over the top of Xen virtualization engine. Users have full control over EC2 instances and can scale up or scale down resources according to their needs. Amazon Simple Storage Service (S3) is used to retrieve the image of virtual machines. Amazon also offers Virtual private cloud that provides the facility of hybrid cloud of company’s current infrastructure with AWS cloud. Amazon provide CloudWatch tool that facilitate the user from management perspective by converting the user’s AWS raw data into readable information. E. Microsoft Windows Azure platform Microsoft’s Windows Azure is a platform service provided by Microsoft using its own technologies [8]. It can be divided into three components by grouping set of services provided.

Sci.Int(Lahore),26(5),2323-2327,2014

ISSN 1013-5316; CODEN: SINTE 8

2325

Table 1: Comparison of services provided by commercial cloud providers Cloud Provider

Amazon EC2

Windows Azure

Google App Engine

Classes of Utility Computing Target Applications

Infrastructure service

Platform service

Platform service

General purpose applications

Computation

OS level on a Xen Virtual Machine

Traditional web applications with supported framework Predefined web application frameworks

Storage

Elastic Block Store; Amazon Simple Storage Sercie (S3); Amazon SimpleDB Automatically changing the number of instances based on parameters that users specify

General purpose windows applications Microsoft Common Language Runtime (CLR) VM; Predefined roles of app. instances Azure storage service and SQL Data Services Automatic scalling based on application roles and a configuration file specified by user

Automatic scalling which is transparent to user

Auto Scalling

1. Windows based environment: Platform to run applications and data storage on data centers. 2. SQL Azure: Provide SQL Server services over the cloud. 3. .Net Services: Provide distributed infrastructure services to cloud based as well as local applications. Applications running on cloud and local system can access the Windows Azure platform. Applications built in .Net framework are supported by Windows Azures. Other ordinary languages including C#, Visual Basic and C++ are also supported. Microsoft’s Windows Azure platform use software called fabric controller for monitoring of physical resources and virtual machines in data centers. F. Google App Engine Google App Engine is platform service provided by Google Incorporation that is used to access Google data center [9]. Programming languages supported by Google App Engine are Python and Java. It provides support to web applications as well independent of platform. Deployment of application, maintenance of resources and failover services are handled by Google. App Engine provide read only access to developers on file systems. Table 1 provides an overview of these clouds computing application. Comparison between these applications is on the basis of type of computing services provided, their model of computation, storage and their ability to automatically scale up or down according to the needs of users. User can select any one of these or can have combinations of multiple offerings to satisfy it organizational and business needs. 5. KEY CHALLENGES FOR CLOUD APPLICATIONS In previous sections we have discussed the benefit of the cloud computing. However in addition to these benefits cloud computing also have some challenges or disadvantages while using software engineering principles and techniques in developing cloud based applications. Developing software as a service application challenges may occur in: requirement engineering, deployment of new application or migrating existing application to cloud and maintenance.

BigTable and MegaStore

Migrating existing software application from local system to cloud is a challenging process. Due to infrastructure difference between cloud and local resource it cannot be guaranteed the health of the application will be same as it was on the local machines. Developers need to change the application portions which are not suitable for cloud environment and sometime even whole applications needs to be redesigned and developed. Compatibility of software applications with hardware infrastructure over the cloud is another challenge. Nonfunctional requirement are important part of the application and some applications’ nonfunctional requirements have same significance as functional requirements. Few of them are mentioned below: 1. Data Security: Data Security is one of the main challenges in cloud computing. Due to the multi-tenant in cloud environment, confidentiality of the application becomes doubtful. Cloud service providers give access to only virtual instances of the physical resources called virtual machines. For physical security system of the data centers user must have to rely on cloud services providers. There is a need to build trust level at every layer of the cloud infrastructure i.e. hardware layer must be secured; monitors should be used to make virtual machines confidential. 2. Network Latency: Network latency is the main problem for real time applications. Due to the distributed nature of the cloud, physical resources may spread over multiple locations, which can cause network latency and reduce the performance of the application. So applications developed for cloud must cater this problem as well. 3. Customization of resources: Customization of resources can be the issue for dynamic applications where applications quickly scale up and scale down. Because in cloud resources are shared between multiple clients can cause problem and reduce the efficiency of the problem. 4. Denial of Service and Down Time: Real time applications need to be available 24/7. Though cloud service providers have the backup of the resources, however any malicious users inside can take the advantage of shared resources and

2312

ISSN 1013-5316; CODEN: SINTE 8

may access or damage other applications, which can cause DOS or down time for the application. Service Level Agreement (SLA) between provider and consumer define these parameters. Requirement engineering process can also be the difficult task to be carried for development of cloud based applications due to the involvement of multiple stakeholders from different locations. 6. Scenario of cloud Application In past few years lot of damage has been done by natural disasters. Major earthquake disasters in Haiti (2010) and in Japan (2011) have urged the high demand of computational infrastructure to use the geographical information flow effectively for the prediction of future earthquake threats. The proposed system has been designed using Service Oriented Architecture (SOA). Output of the proposed system (i.e. probability of earthquake) can be accessed over multiple devices i.e. using smart devices applications, websites, and desktops. In SOA, a web service is deployed over cloud infrastructure. Potential users of this application includes: domain experts who will be analyzing geophysical information to predict the chances of earthquake, registered users to get notification of earthquake chances so that they can take appropriate measures, government authorities and NGOs so that they can plan before and after disaster activities, and researchers who want to analyze gathered information for research purpose. 7. DESIGN ARCHITECTURE OF THE PROPOSED SCENARIO The proposed cloud based application needs high computational power of cloud computing to perform risk analysis on collected data. Data will be stored on cloud infrastructure as well. The architectural design of the application can be divided into three major components: G. Geophysical Sensors Geophysical sensors will be placed in field area where chances of earthquake have to be measured. These sensors will collect environmental information, images, earth conditions and all other necessary. H. Web service A web service will be deployed on cloud infrastructure. This web service will import data from geophysical server, data thus accumulated will be maintained in databases. I. Web application A web application is proposed for the front end display of the information about earthquake prediction. This application will be accessible by all potential users (mentioned in previous section) according to their roles. Proposed architectural design of earthquake prediction system is depicted in Figure 3. Data collected from geophysical servers is collected through web services and stored in database. Many tools have developed for statistical analysis of geographical information. QuakeSim [10] is a NASA funded project involving earthquake researchers and computer scientists. By using software as a service property of the cloud we can use these statistical tools to perform high computational analysis of information retrieved from geophysical sensors. Web application will display these statistics along with original data to domain

Sci.Int(Lahore),26(5),2309-2313 ,2014

experts using service oriented architecture (SOA). Depending on domain experts feedback a warning message will be issued to potential users of the application that will be displayed. Geophysical Sensors

Data Retrieval

Web service layer Geospatial Data Analysis Tool Storage and database services

Data Interchange

Web based application

Figure 3: Proposed architecture design for earthquake forecasting system

8. CONCLUSION Cloud computing is becoming popular in small and medium organizations which cannot afford infrastructure cost. Organizations can also have mix of cloud and local infrastructure. However, despite advantages cloud applications also have software engineering challenges that are specific to cloud environment, such as ‘denial of service’, ‘data security’, ‘migration issues’ etc. By overcoming these challenges organizations can benefit from cloud computing technology. Moreover, as an example we have presented a cloud based earthquake management system that will use high computational power of the cloud infrastructure to forecast the chances of earthquake over a specific region. Insight of the paper can be summarized as; emergence of cloud computing, existing potential cloud applications, software engineering in cloud based applications and design description of cloud base earthquake forecasting system. REFERENCES [1] Lijun Mei, W.K. Chan, T.H. Tse, “A Tale of Clouds: Paradigm Comparisons and Some Thoughts on Research Issues”, in Proceedings of the 2008 IEEE Asia-Pacific Services Computing Conference (APSCC 2008), IEEE Computer Society Press, Los Alamitos, CA.

Sci.Int(Lahore),26(5),2323-2327,2014

ISSN 1013-5316; CODEN: SINTE 8

[2] Mehrdad Mahdavi Boroujerdi, Soheil Nazem, Cloud Computing: Changing Cogitation about Computing, World Academy of Science, Engineering and Technology 58 2009. [3] Parkhill D (1966) The challenge of the computer utility. AddisonWesley, Reading. [4] Qi Zhang, Lu Cheng, Raouf Boutaba “Cloud computing: state-of-the-art and research challenges”, J Internet Serv Appl (2010). [5] Tharam Dillon, Chen Wu and Elizabeth Chang “Cloud Computing: Issues and Challenges”, 24th IEEE

2325

International Conference on Advanced Information Networking and Applications (2010). [6] Mohammed Al-Zoube, E-Learning on the Cloud, International Arab Journal of e-Technology, Vol. 1, No. 2, June 2009. [7] Amazon Web Services, aws.amazon.com [8] Windows Azure, www.microsoft.com/azure [9] Google App Engine, http://code.google.com/appengine [10] A. Donnellan et al., “QuakeSim: Enabling Model Interactions in Solid Earth Science Sensor Webs,” in 2007 IEEE Aerospace Conference, 2007

Suggest Documents