Your SlideShare is downloading. ×



Published on

Published in: Technology, Business
  • Be the first to comment

  • Be the first to like this

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

No notes for slide


  • 1. Open911: Experiences with the Mobile Plus Cloud Paradigm Manuel Rodriguez-Martinez, Jaime Seguel, Melvin Greer Maniel Sotomayor, Juan P. Aleman, Jose Rivera Senior Fellow ECE Department Lockheed Martin Corporation University of Puerto Rico, Mayagüez {manuel.rodriguez7, jaime.seguel, maniel.sotomayor, juan.aleman1, jose.rivera63}@upr.eduAbstract—— Cloud Computing is emerging as the next big step In response to this paradigm shift in the way onlinein the design and deployment of an increasing number of services will be delivered, cloud researchers and engineersdistributed applications. Concurrent with this widespread must develop appropriate architectures and design patterns toadoption of cloud technologies, we are witnessing the ensure that clouds provide responsive, efficient, and feature-emergence of mobile devices as the principal tools to accesses rich services to both native and web-based applications thatonline services. Private, public or hybrid clouds will host many run on mobile devices, desktop or laptop computers.(if not most) of the online services consumed by mobile devices. In this paper, we present Open911 as referenceHence, cloud researchers and engineers must develop architecture for the development of cloud-based applicationsappropriate architectures and design patterns to ensure that that feed mobiles devices through either native or webclouds provide responsive, efficient, and feature-rich servicesto both native and web-based applications running on mobile applications. Open911 is designed to help first respondersdevices, desktop or laptop computers. In this paper, we present manage emergency situations, providing a platform forOpen911 as reference architecture for the development of collecting maps, incident reports, pictures, video, and othercloud-based applications that feed mobiles devices through data elements necessary to manage a crisis. Open 911 alsoeither native or web applications. Open911 is built on top of provides efficient support for web applications running oncloud services that run on a hybrid cloud that includes Google desktop and laptop and custom-built services deployed on a private cloud Open911 provides two presentation views of the samepowered by Ubuntu Enterprise Cloud. We discuss the elements data. Personnel located at a command center (set up toof our architecture, the rationale behind our design choices, manage an emergency) use a web interface to visualize thethe strengths of the cloud systems, and the drawbacks or area of concern and post events to first responders on thelimitations that we found during our implementation effort. field. Meanwhile, first responders use a native application on an iPhone to receive instructions, and send back photos or Keywords- Cloud Computing; Open source clouds; Mobile videos detailing the current state of affairs. Both views areplus cloud built on top of cloud services that run on a hybrid cloud that includes Google services and custom-built services deployed I. INTRODUCTION on a private cloud powered by Ubuntu Enterprise Cloud. Cloud Computing is emerging as the next big step in the Our experience with Open911 has been quite positivedesign and deployment of an increasing number of because the cloud infrastructure and associated technologiesdistributed applications [1][2][3]. Cloud computing have simplified the tasks needed to write, debug, and deploytechnologies are designed to harness the power of networks applications. The fact that we can keep multiple applicationof computers in a very cost effective way. With cloud versions in different server instances makes it is easy to testtechnologies, enterprises can dynamically deploy server new features, roll back failed changes, and compare theinstances or entire application solutions on remote facilities behavior of different versions. Employing JSON and HTTPsetup by cloud providers. This eliminates the need for the as the methods to consume cloud services from mobileenterprise to acquire hardware, software, and IT personnel. devices helped us simplified the code to the point where onlyMoreover, new resources can be added or removed as one class is needed to handle most data requests from theneeded, making the deployment ““elastic””. Current clouds iPhone. Still, however, there are several features that must be(e.g., Amazon EC2, Microsoft Azure, Google App Engine) added to cloud software frameworks to maximize theirprovide capacity to serve a wide and constantly expanding potential. These features include simplified image creationrange of information processing needs, including for virtual machines, dynamic management of virtualgovernment, military, business and education [4]. servers, spatial data types, and support for GIS operations. Concurrent with this widespread adoption of cloud In this paper, we discuss the elements of our architecture,technologies, we are witnessing the emergence of mobile the rationale behind our design choices, the strengths of thedevices, specifically smart phones and tablet computers, as systems, and the drawbacks or limitations that we foundthe principal devices to access online services. Private, during our implementation effort. This discussion will bepublic or hybrid clouds will host many (if not most) of the helpful to any practitioner trying to build applications thatonline services consumed by mobile devices [5]. This is integrate mobile and cloud computing technologies.being depicted as the ““Mobile Plus Cloud”” paradigm [6]. The rest of this paper is organized as follows. Section II provides an overview of the Open911 system. Section III
  • 2. describes how we implemented the server-side components. area of damage. This would make it easy ensure thatSection IV describes the implementation of client-side services are available at all times during the emergency.components. Section V presents a list of features that areneeded in future cloud solutions. Section VI contains a brief B. System Architecturedescription of related work. Finally, section VII presents the The architecture of Open911 is depicted in Figure 1.paper summary. Supported client devices include smartphones, tablets, laptops and workstations. All these devices communicate II. SYSTEM OVERVIEW with the cloud services in Open911 via HTTP. This ensures communications simplicity, while at the same timeA. Motivation leveraging on existing security mechanisms such as The Caribbean and the southeastern coast of the USA lie firewalls, encryption, and certificates to protect the datain the path of hurricanes that bring destruction in the form of exchange. All requests to the system are submitted as eitherheavy rain, high surf, flooding, mudslides, and high winds. POST or GET requests to a web application server. ResultsThe results of these events are homes destroyed, flooded arrive encoded in HTML, a JSON message, or as a binaryroads, power blackouts, shortage of gas, and treats to the stream when image, voice, or video content is and water supplies. Emergency management agencies at both the local andU.S. Federal Government level need to mitigate the effectsof these events not only to save lives but also to preserveorder. They must establish command centers to coordinaterescue and law enforcement operations before, during, andafter the storm. They rely on first responder personnel thatinclude firemen, policemen, emergency technicians, civilrescue workers, and public works employees. Officials at the command center need to collectinformation about emergency situations, and dispatch theproper units of first responders. In turn, these firstresponders become the eyes through which the officialsassess the situation and adjust their response plans. Often,this information comes in the form of maps, reports,pictures, videos, and other data items. However, these dataitems get exchanged between first responders andheadquarters by means of heterogeneous means such asemails, text messages, phone calls, or papers. This makes itdifficult to get a clear, global picture of the situation at hand. This state of affairs can be improved by building anInternet-enabled information system that lets headquarterssend instructions, maps, pictures, and other media directly to Figure 1: Open911 System Architecturethe first responders that need it. Likewise, the first The web application server is built using open sourceresponders can provide valuable feedback to the officers components, specifically the Apache2 web server and theback at the headquarters. This feedback can include current Django web application framework. Django is a Python-weather conditions, new pictures of the damage, maps of based web container just like apache Tomcat. All the datanewly discovered areas of damage, or recordings with the and metadata related with the emergency managementtestimonials of eyewitnesses. scenarios is persisted with PostgreSQL, extended with The ingredients for such information systems are already PostGIS functionality for spatial access method support. Allin place, but need integration. First responders can be these components run on Linux virtual server instances thatequipped with smartphones that carry the application(s) reside inside a cloud deployed with Ubuntu EC.necessary to receive instructions, or send back updated The analytics server provides support for complexinformation about the current situation. Back at command queries and data analytics operations. This module iscenters, officers can use workstations and mobile devices to implemented as a lightweight python web service runningcollect up-to-date operational information and decide the atop the Hive data-warehousing server. Hive providesnext course of action. Both sets of applications should be storage and parallel data processing capabilities. Hive ispowered by highly available web services. Since the storm built atop Hadoop, which is an open source implementationmight have damaged the data centers used by emergency of the MapReduce [8] framework for large-scale datamanagement agencies, the web services should also be processing in computer clusters. Like previous components,deployed inside cloud infrastructures located outside the
  • 3. Figure 2: Open911 Web interfacethe analytics server and Hive run on Linux virtual servers D. iPhone Interfaceprovisioned inside a Ubuntu Enterprise Cloud deployment. As in the case for the web interface, the iPhone providesC. Web Interface the user with a view based on a Google Map. The iPhone Users at the command center will most likely use laptop interface is shown in Figure 3. A pin button that providesand desktop machines to manage all data regarding the just two lines of information about the event, followingemergency at hand. For this purpose, we developed a web Apple’’s UI guidelines, represents each marker. The first lineinterface for Open911 that is based on Google Maps. Figure gives the type of event and the second line provides a one-2 shows a snapshot of this interface. Using Google Maps liner description of the situation. By pressing the disclosuremakes sense since geographic location is one the principal button on the pin, a new view appears showing the details ofcriteria used to track emergencies, and assign resources. All the event. From this view, the user can use the iPhonethe events being tracked are represented by a collection of camera and microphone to capture images, voice, or videomarkers on the map. For each event, we track: a) latitude related with the event at hand. In addition, the first/longitude (lat/lon) coordinates, b) type of event, c) responder can use an information button (shown with aemergency management agency in charge, d) date and time letter i) to change the type of the map (satellite, map, orof occurrence, e) current status, and f) media files (video, hybrid) or to add a new marker at its current location.voice, images). The interface provides a left-hand panel that The iPhone interface was written in Objective-C, usingfilters the events based on layers that define the agency type XCode 4.2. It runs on iPhone, iPod Touch and iPad devices.and the event type. It communicates with the web application framework by The web interface is implemented with Javascript, means of HTTP GET/POST commands, and receives alDjango’’s page templates, and Dajaxie. The latter is a library results as either JSON data steams or binary file streams.that implements AJAX inside Django-based projects. Eachmethod call is sent over HTTP to a specific Django viewcontroller for processing and result generation.
  • 4. • Layer –– provides information about which layer is associated with a marker. Each emergency management agency has a separate layer that covers the types of markers it is interested in seeing. • LayerMarkerType –– provides the association between a Layer and MarkerType associated with the layer. • Incident –– describes an incident that has occurred at a given location. A marker represents each location. Notice that a marker might contain multiple incidents. For example, a flooded road might also have several people trapped in a car. In such case, the flooded road and trapped people are two separate incidents. • IncidentStatus –– keeps track of the different status changes for a given incident. The complete trail of status changes must be kept in the database. Example statuses include: in-progress, solved, and imminent. We used PostgreSQL and PostGIS to store, index, and maintain all the records in the data model. III. IMPLEMENTING SERVER-SIDE FUNCTIONALITY Figure 3: Open911 iPhone interface A. Web Application ServerE. Application Data Model The web application server works as the entry point into Open911 needs to represent data about the incidents that the system. It serves both dynamic and static content, thusoccur as part of an emergency situation. The data include acting also as an application server. Moreover this contentgeographic location, dates, description, media, and so on. might be HTML, JSON, or binary. These requirements leadFigure 4 depicts the collection of tables that form the data us to develop our solution based on the Model-View-model Open911. Controller design pattern. But, as we started our development process, we quickly found out that straightforward application of MVC was not enough to get our implementation right. We now go into the discussion of this application. 1) Server Organization Figure 5 depicts the organization of the web application server stack. The server is hosted inside the Django web container, which in turn is hosted inside Apache2. This layer was implemented in Python, specifically Python 2.7, and Django 2. Requests for data are received by either GET or POST messages. These request are received by one of our custom- built Django view controllers, which are Python objects. Figure 4: Open911 data model Each request is examined to determine if an HTML responseThe description of these tables is as follows: or a JSON response is expected. HTML responses are • Place –– collection of named locations on the Earth. returned to browser applications, while JSON responses are Yahoo’’s Where on Earth Ids (WOEID) are used to given to native applications running on the mobile devices. identify them. These places could be countries, Based on this determination, the view controller object cities, states, and so on. instantiates a request handler object to manage the data • Marker –– a registered marker that is shown on the extraction process. The request handler follows the map and is stored in the local database. Notice that functionality of the front controller and the façade patterns. each marker has lat/lon coordinates to identify it on The request handler instantiates objects in the data model the map. in order to: a) query the underlying database to fetch records necessary to answer the request from the user, b) assemble • MarkerType –– provides information about the type model objects from database records, c) perform any of event that a marker represents (e.g., Civil Defense, necessary business logic, and d) build collections with the Police, etc.) results of the operation. The request handlers use the services
  • 5. of the data access objects (DAOs) to access the underlying Apache2, Django 2.0, Pyhton 2.7, PostgreSQL 9.0, anddatabase. In turn, the DAOs use a simple representation of PostGIS 1.5.the database records that has no business logic and is b) Web Development –– Our team has over five years ofprovided by the classes at the Data Transfer Objects (DTO)layer. Notice that both DAOs and DTOs are design patterns. experience building web applications with Java and ApacheFinally, the DB API provides the DAO with the necessary Tomcat. Yet, we decided to build our application withcode to read data from the database. This layer includes not Python because many cloud platforms used it as the majoronly code to access PostgreSQL, but also code to make language for application development. These includeappropriate manipulation of spatial objects supported by Google’’s App Engine and NASA Nebula Project. At first,PostGIS. we were concerned about the potential problems and unknowns that arise when a new platform is employed. But, as soon as we started working with Python and Django, our concerns began to diminish. Compared with Java JSP and Servlets, Django provides a cleaner and easier to use framework. We were able to build pages, view controllers, and models easily. Thanks to the PyDev Eclipse Plug-in, we had access to a modern IDE for debugging and testing. Moreover, the modular structure of Django enabled us to easily test the classes for the view and model layers without writing any HTML or native client code. In fact, we could test our code in an interactive Python session, thus reducing the amount of setup time for testing. On the down side, the facilities for error diagnostics are somewhat lacking in Django. Several times we found ourselves trying to decipher the error messages returned by the code, as they often pointed to a technical issue but gave little insight into what might have caused it. In this sense, Django should try to mimic the error stack trace found in Java applications. c) Cloud Deployment –– Once the virtual server was properly setup with all the packages needed to run our application, we were able to easily deploy multiple instances Figure 5: Web Application Server Organization at both EC2 and Eucalyptus. This enabled us to run multiple version of the application to test or demo new features. If When the request handler has solved the request for data something went wrong with a new feature, we could alwaysissued by the user, it delivers those results back to the view switch back to using the previous version while wecontroller that invoked it. This view controller then corrected the new, buggy version.instantiates the result handler that is associated with thegiven request handler. Each result handler takes care of However, setting up the virtual server was challenging,producing a result that is delivered to the client. This result tedious and often times plain frustrating. It all starts with thecould either be an HTML page, a JSON stream, or a binary process to setup the Linux OS image out of which the virtualfile. The request handler follows the template view design server runs. Typically, you start out with a basic imagepattern. provided by the cloud vendor. You boot and run an instance 2) Deployment on a IaaS Cloud out of this image, connect to it, and install the software you We deployed our web server application completely need. The problem is that if you terminate your instance, all your changes are lost. To avoid this, you need to create ainside an Infrastructure as a Service Cloud (IaaS). custom image out of your modified image. The process to doSpecifically, we used the Ubuntu Enterprise Cloud platform, this is tricky and poorly documented. One option involveswhich features a Eucalyptus distribution integrated with using the kvm hypervisor and a Linux distribution to create aUbuntu 10.04 LTS. We also successfully deployed the web virtual server on which you install all the software you need.server application into Amazon’’s EC2. In both cases, the Then you need to upload and register with the cloudApache2 web server, Django web container, and controller the following items: a) a file containing the RAMPostgresSQL server ran on the same virtual server instance. disk of the virtual server, b) a file containing the kernel 3) Status and Development Experience image of the virtual server, and c) the kvm image file where a) Status -As of this writing, the web application server the Linux installation was saved. After this process, youris operational and running inside our Eucalyptus cloud and image is ready to use for instantiating servers.inside Amazon EC2. This version of the system requires The second method involves creating a snapshot of the currently running virtual server with all the changes you
  • 6. want applied to it. This snapshot copies all the files in the 1) Server Organizationvirtual server’’s file system, and stores them in a compressed Figure 6 presents the organization of the analytics server.file(s). You then upload and register this ““bundled’’’’ image Like the web application server, the analytics server is run oninto the cloud. Django. The components are essentially the same as those in Both processes are difficult to understand, error prone, the web application server. However, the results in theand give litter feedback to the user about what is going on. analytics server are always returned as JSON streams. ForThe natural tendency is to then wait until you have enough this reason, we have a set of classes that implement a webpackages in the virtual server so your deployment is stable, service façade to the analytics server. At this point, there isin order to minimize the pain of building custom images. The no HTML output from the operations in the analytics server.problem and danger of this approach is that a failure in the The rationale for this is that the functionality of the analyticscloud might wipe out your changes (it happened to us!). server will be invoked from the web application server. The missing ingredient in current open source IaaS Hence this component will take care of the user-interfaceframeworks is an easy and intuitive method to build custom presentation issues.images. Preferably, it should be a point-and-click solution or The other difference between the analytics server and thea command that takes a running instance and creates an web application server is that the former uses Hive for dataimage out it. Amazon EC2 has such feature, but it provides storage. We used the Python libraries provided by Hive tolittle feedback on how it is progressing. This leaves the user submit SQL-like queries and receive the records resultingin an anxious state waiting to see if the new image will be from these.created or not. 2) Deployment on a IaaS CloudB. Analytics Server The analytics server was deployed on four Linux virtual server instances running inside our Eucalyptus cloud. We ran The purpose of the data analytics server is to support data Hive 0.6 and Hadoop 0.20 to support the analytics server.processing operations on massive data sets. One of our goals 3) Status and Development Experienceis to enable monitoring and analysis applications thatempower officials to see historical trends, and then make a) Status -As of this writing, the analytics server isdecisions on new data that arrives and is related with the old operational and running inside our Eucalyptus cloud.information. For example, officials might want to track b) Development Experience –– Hadoop and Hive worktemperature, humidity, rainfall, and population size for a well to manage large data sets in clusters of virtualgiven location and use this information to help forecast machines. But, working with Hadoop and Hive can beexpected flooding and the damage that it will cause. As challenging because of the lack of good debugging tools,another example, public works engineers might want to track and scattered documentation. Although, there are plenty ofreadings from the sensors placed on a bridge that crosses a examples on the Internet on how to use Hadoop and Hive,river. This information can be useful to determine if the the vast majorities are for simplistic scenarios. Moreover,bridge is structurally secure, special if high winds or river there is no support for spatial indexing in Hive at thisflooding is expected. moment. This limited our capabilities for spatial search operation only to equality queries. There is recent work in [9] investigating methods to include spatial access methods and GIS support into cloud frameworks. However, no solution has found its way into open source cloud frameworks for data processing such as Hive or Cassandra. IV. IMPLEMENTING CLIENT-SIDE FUNCTIONALITY The client application implemented for the iPhone follows the navigation application template provided by Apple’’s XCode IDE. A. Application Organization Figure 7 shows the internal organization of the application. As mentioned in section II.D, the first view controller seen by the user shows a map with the markers that are relevant to the area in which the first responder is located. As the user interacts with the application, additional view controllers appear to customize the map, show details of markers, upload media files, or add new markers. The view controllers execute the requests from the user thanks to the functionality implemented by request operations, which are objects that inherit from the NSOperation defined in iOS. Figure 6: Analytics Server Organization Basically, an NSOperation is a class that implements
  • 7. functionality that gets run on a separate thread of execution. names in the expected result to adapt it to process differentThe NSOperation abstracts away the details of thread types of result sets.manipulation; just like the Thread class does in Java.NSOperation instances are needed because the main thread B. Status and Development Experiencein an iOS application deals with the events in the user- 1) Status –– The iPhone application runs on iOS 4.2 andinterface. Any request to access the network, or expensive has been deployed on the iPhone 3GS, iPhone4, iPad, andfile operations should be implemented in a separate thread by iPod Touch. It has been demonstrated to officials at UPRM,means of an operation. Lockheed Martin, and at the 2010 USA Science and Engineering Festival, held in Washington, DC. 2) Development Experience –– At first, Objective-C seemed to us like a complex language to learn, compared with Java or C++. But, once we passed a couple of weeks of acclimating to the language, we were able to write code quickly, leveraging on the very complete set of libraries supplied with iOS and the power of the XCode IDE. XCode really shines as a tool to enhance software development productivity. It makes it easy to put together a complex, multi-window application with little configuration effort on the part of the user. Also, its associated tool for GUI design, named Interface Builder, lets the developer assemble a intuitive yet professional looking application in matter of hours. The iPhone simulator application does an excellent job as initial application testbed. But its lack of support for location services made us quickly move to testing on actual devices. The iOS platform is well-documented, with many books and online resources that show how to build software that performs non-trivial tasks. The only downside that we encountered in this development effort was the need to port part of the code for Figure 7: iPhone application organization the models, and the entire set of data transfers object from Underneath the request operation layers, we find an Java to Objective-C. That would not have been necessary iforganization that is similar to that in the web application we had used Android. But the development tools for theserver and the analytics server. The result delegates are the iPhone are much mature and robust that those for Android,objects that will handle the results obtained by the request driving us to pick the latter platform the client development.operations. The delegates follow a function call backstrategy, in which their methods get register with the request V. FUNCTIONALITY REQUIRED IN FUTURE CLOUDSoperation and invoked depending on the results received Based on our experience developing Open911, we argue infrom the web server. The HTTP/JSON APIs are used for the favor of adding the following functionality to future opendata exchange with the web server. source cloud software offerings: A special case is the data source operation layer, which • Simplified image creation –– Software tools are neededcontrols the process to request data from the web application to simplify the creation of customized virtual machineserver. At first, we thought we would need multiple classes images with the required software packages.for this. But, we soon realize that by using JSON and • Automated scaling of virtual machines –– The cloudencoding all requests into POST/GET message, all we infrastructure should let the user dynamically re-sizeneeded was a single class to handle most (if not all) the amount of resources that the virtual machines use,requests. The secret to this has to do with the way iOS in response to noticeable changes in the workload.libraries process JSON. These libraries parse the results in a Amazon EC2 provides such feature with its ““AutoJSON stream, and convert the data elements into a hash Scaling”” technology.table. The keys in the hash table are the names of the • Virtual machine portability –– The capacity toelement attributes and the values are strings with the valuefor an attribute, or collections (arrays or hash tables) seamlessly migrate virtual machines between IaaScontaining more pairs of key/value results. Hence, in our clouds can greatly simplify application development and deployments. Rather than creating a virtual servercode all had to do was to pass to the code the URL of the for each type of IaaS cloud, one could just create onetarget web server application and the collection of key image that can be run on EC2, Eucalyptus, OpenStack, and so on.
  • 8. • Spatial Access Methods for Data Processing Clouds –– Cloud. Our experience with Open911 has been quite Proven solutions such as R* tree, GIST, and Quadtrees positive because the cloud infrastructure and associate should be incorporated into systems like Hive and technologies have simplified the tasks needed to write, Cassandra. This will simplify and accelerate the debug, and deploy applications. Still, however, there are development of cloud-based, large-scale scientific several features that must be added to cloud solutions to applications that require spatial data types and maximize their potential. These features include simplified functions. image creation for virtual machines, dynamic management• Support for Geographic Information Systems (GIS) –– of virtual servers, spatial data types, and support for GIS Simply adding spatial types to the cloud software is not operations. enough. GIS applications need complex mathematical models that make distance calculations between points, REFERENCES perform geometric computations, and nearest neighbors [1] R. H. Katz, ““Tech titans building boom,”” IEEE Spectrum, vol. 46, no. 2, pp. 40––54, February 2009. type of queries. For example, PostGIS provides types [2] D. A. Patterson. ““Technical Perspective: The Data Center is the that calculate distances between points on the surface of Computer””. Communications of the ACM, 51(1):105––105, 2008. the Earth. These distances are calculated based on arcs [3] M. Rodriguez-Martinez, J. Seguel, and M. Greer, ““Open Source over a sphere, not lines on a plane. Moreover, these Cloud Computing Tools: A Case Study with a Weather Application””. distances are expressed in degrees. If your application 2010 IEEE Cloud Computing Conferene, Miami, FL, 2010. needs distances in meters, then you need to use the [4] J. Nicholas Hoover, ““Federal Budget Lays Out Government Cloud Geography data types included in PostGIS or create one Computing Plans””, Information Week, May 12, 2009. URL: that fits your needs. The latter task is not for the faint- architecture/showArticle.jhtml?articleID=217400505. Access date: hearted. Clearly, this functionality should be a built-in September 22, 2009. service provided by the cloud software. [5] G. Huerta-Canepa, and D. Lee, ““A virtual cloud computing provider for mobile devices””, 1st ACM Workshop on Mobile Cloud VI. RELATED WORK Computing & Services, San Francisco, CA, 2010 [6] Microsoft Research, ““Mobile Plus Cloud Computing”” The work in [10] provides an architectural overview of cloud technologies. Eucalyptus is rooted on a pacific/programs/mobile-cloud.aspx Access date: February 20, 2011.research effort with the goal of building an open source IaaS [7] Peter Mell and Tim Grance, ““The NIST definition of Cloudframework [11]. Similarly, Hadoop originates as an open Computing”” .source implementation of the MapReduce framework Access date: December 7, 2009.developed at Google [8] for PaaS. Recent work from the [8] J. Dean and S. Ghemawat., ““Mapreduce: Simplified data processingdatabase research community [12] has shown that Hadoop is on large clusters,”” in Proc. of 2004 OSDI, San Francisco, CA, USA, 2004, pp. 137––150.very slow when compared with parallel databases, but it isbetter in terms of fault-tolerance. HadoopDB [13] has [9] J. Wang, S. Wu, H. Gao, J. Li, and B. Ooi, ““Indexing multi- dimensional data in a cloud system””, in Proc. of 2010 ACMemerged as a hybrid solution that uses a relational database SIGMOD Conf, Indianapolis, IN, 2010.engine as computing node in a Hadoop installation. The [10] A. Lenk, et. al, ““What’’s Inside the Cloud? An Architectural Map ofwork in [14] surveyed several virtualization technologies for the Cloud Landscape””, in Proc. ICSE Workshop on Softwarecloud computing. The work in [15] studied a methodology Engineering Challenges of Cloud ComputingVancouver, Canada,for combining traditional cluster-based services in a cloud 2009, pp. 23-31.environment. For many research issues associated with [11] D. Nurmi,, ““The Eucalyptus Open-source Cloud-computingCloud Computing the user is referred to [16]. System””, in Proc. 9th IEEE/ACM International Symposium on Cluster Computing and the GRID, Shangai, China, 2009, pp. 124-131. VII. SUMMARY [12] A. Pavlo,, ““A comparison of approaches to large-scale data analysis,”” in Proc. 2009 SIGMOD, Providence, RI, USA, 2009. Cloud Computing is emerging as the next big step in the [13] A. Abouzeid,, "HadoopDB: An Architectural Hybrid ofdesign and deployment of an increasing number of MapReduce and DBMS Technologies for Analytical Workloads", Indistributed applications. In this paper, we presented Proceedings of VLDB 2009, Lyon, France.Open911 as reference architecture for the development of [14] D. Cerbelaud, S. Garg, and J. Huylebroeck, ““Opening The Clouds: Qualitative Overview of the State-of-the-art Open Source VM-basedcloud services that feed mobiles devices through either Cloud Management Platforms””, in Proc. Proceedings of the 10thnative or web applications. Open911 is designed to help first ACM/IFIP/USENIX International Conference on Middleware,responders manage emergency situations, providing a Urbana, Illinois, 2009.platform for collecting maps, incident reports, pictures, [15] R. Moreno-Vozmediano, R. S. Montero, and I. M. Llorente, ““Elasticvideo, and other data elements necessary to manage a crisis. Management of Cluster-based Services in the Cloud””, in Proc. 1st workshop on Automated Control for Datacenters and Clouds,Open 911 also provides efficient support for web Barcelona, Spain, 2009, pp. 19-24.applications running on desktop and laptop computers. Our [16] B. Hayes, Cloud computing, Communications of the ACM, v.51 n.7,solution is built on top of cloud services that run on a hybrid July 2008cloud that includes Google Maps and custom-built servicesdeployed on a private cloud powered by Ubuntu Enterprise