SlideShare una empresa de Scribd logo
1 de 8
Descargar para leer sin conexión
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                                      melvin.greer@lmco.com
    {manuel.rodriguez7, jaime.seguel, maniel.sotomayor,
          juan.aleman1, jose.rivera63}@upr.edu


Abstract—— Cloud Computing is emerging as the next big step            In response to this paradigm shift in the way online
in the design and deployment of an increasing number of            services will be delivered, cloud researchers and engineers
distributed applications. Concurrent with this widespread          must develop appropriate architectures and design patterns to
adoption 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 that
online 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 reference
Hence, cloud researchers and engineers must develop                architecture for the development of cloud-based applications
appropriate architectures and design patterns to ensure that
                                                                   that feed mobiles devices through either native or web
clouds provide responsive, efficient, and feature-rich services
to both native and web-based applications running on mobile
                                                                   applications. Open911 is designed to help first responders
devices, desktop or laptop computers. In this paper, we present    manage emergency situations, providing a platform for
Open911 as reference architecture for the development of           collecting maps, incident reports, pictures, video, and other
cloud-based applications that feed mobiles devices through         data elements necessary to manage a crisis. Open 911 also
either native or web applications. Open911 is built on top of      provides efficient support for web applications running on
cloud services that run on a hybrid cloud that includes Google     desktop and laptop computers.
services and custom-built services deployed on a private cloud         Open911 provides two presentation views of the same
powered by Ubuntu Enterprise Cloud. We discuss the elements        data. Personnel located at a command center (set up to
of our architecture, the rationale behind our design choices,      manage an emergency) use a web interface to visualize the
the strengths of the cloud systems, and the drawbacks or           area of concern and post events to first responders on the
limitations 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 are
plus 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 positive
design and deployment of an increasing number of                   because the cloud infrastructure and associated technologies
distributed applications [1][2][3]. Cloud computing                have simplified the tasks needed to write, debug, and deploy
technologies are designed to harness the power of networks         applications. The fact that we can keep multiple application
of computers in a very cost effective way. With cloud              versions in different server instances makes it is easy to test
technologies, enterprises can dynamically deploy server            new features, roll back failed changes, and compare the
instances or entire application solutions on remote facilities     behavior of different versions. Employing JSON and HTTP
setup by cloud providers. This eliminates the need for the         as the methods to consume cloud services from mobile
enterprise to acquire hardware, software, and IT personnel.        devices helped us simplified the code to the point where only
Moreover, new resources can be added or removed as                 one class is needed to handle most data requests from the
needed, 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 their
provide capacity to serve a wide and constantly expanding          potential. These features include simplified image creation
range of information processing needs, including                   for virtual machines, dynamic management of virtual
government, 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 the
devices, specifically smart phones and tablet computers, as        systems, and the drawbacks or limitations that we found
the principal devices to access online services. Private,          during our implementation effort. This discussion will be
public or hybrid clouds will host many (if not most) of the        helpful to any practitioner trying to build applications that
online 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
describes how we implemented the server-side components.             area of damage. This would make it easy ensure that
Section 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 are
needed in future cloud solutions. Section VI contains a brief        B. System Architecture
description 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 time
A. 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 data
in the path of hurricanes that bring destruction in the form of      exchange. All requests to the system are submitted as either
heavy rain, high surf, flooding, mudslides, and high winds.          POST or GET requests to a web application server. Results
The results of these events are homes destroyed, flooded             arrive encoded in HTML, a JSON message, or as a binary
roads, power blackouts, shortage of gas, and treats to the           stream when image, voice, or video content is returned.
food and water supplies.
   Emergency management agencies at both the local and
U.S. Federal Government level need to mitigate the effects
of these events not only to save lives but also to preserve
order. They must establish command centers to coordinate
rescue and law enforcement operations before, during, and
after the storm. They rely on first responder personnel that
include firemen, policemen, emergency technicians, civil
rescue workers, and public works employees.
   Officials at the command center need to collect
information about emergency situations, and dispatch the
proper units of first responders. In turn, these first
responders become the eyes through which the officials
assess 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 data
items get exchanged between first responders and
headquarters by means of heterogeneous means such as
emails, text messages, phone calls, or papers. This makes it
difficult to get a clear, global picture of the situation at hand.
   This state of affairs can be improved by building an
Internet-enabled information system that lets headquarters
send instructions, maps, pictures, and other media directly to                 Figure 1: Open911 System Architecture
the first responders that need it. Likewise, the first                  The web application server is built using open source
responders can provide valuable feedback to the officers             components, specifically the Apache2 web server and the
back 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 data
newly discovered areas of damage, or recordings with the             and metadata related with the emergency management
testimonials of eyewitnesses.                                        scenarios is persisted with PostgreSQL, extended with
   The ingredients for such information systems are already          PostGIS functionality for spatial access method support. All
in place, but need integration. First responders can be              these components run on Linux virtual server instances that
equipped 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 complex
information about the current situation. Back at command             queries and data analytics operations. This module is
centers, officers can use workstations and mobile devices to         implemented as a lightweight python web service running
collect up-to-date operational information and decide the            atop the Hive data-warehousing server. Hive provides
next course of action. Both sets of applications should be           storage and parallel data processing capabilities. Hive is
powered by highly available web services. Since the storm            built atop Hadoop, which is an open source implementation
might have damaged the data centers used by emergency                of the MapReduce [8] framework for large-scale data
management agencies, the web services should also be                 processing in computer clusters. Like previous components,
deployed inside cloud infrastructures located outside the
Figure 2: Open911 Web interface
the analytics server and Hive run on Linux virtual servers
                                                                D. iPhone Interface
provisioned inside a Ubuntu Enterprise Cloud deployment.
                                                                    As in the case for the web interface, the iPhone provides
C. 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 provides
and desktop machines to manage all data regarding the           just two lines of information about the event, following
emergency at hand. For this purpose, we developed a web         Apple’’s UI guidelines, represents each marker. The first line
interface 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 disclosure
makes sense since geographic location is one the principal      button on the pin, a new view appears showing the details of
criteria used to track emergencies, and assign resources. All   the event. From this view, the user can use the iPhone
the events being tracked are represented by a collection of     camera and microphone to capture images, voice, or video
markers 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 a
emergency management agency in charge, d) date and time         letter i) to change the type of the map (satellite, map, or
of 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, using
filters 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 al
Django’’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. Each
method call is sent over HTTP to a specific Django view
controller for processing and result generation.
•    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 Server
E. 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, thus
occur as part of an emergency situation. The data include       acting also as an application server. Moreover this content
geographic location, dates, description, media, and so on.      might be HTML, JSON, or binary. These requirements lead
Figure 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 response
The 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
of the data access objects (DAOs) to access the underlying        Apache2, Django 2.0, Pyhton 2.7, PostgreSQL 9.0, and
database. 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 of
provided 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 Apache
Finally, the DB API provides the DAO with the necessary           Tomcat. Yet, we decided to build our application with
code to read data from the database. This layer includes not      Python because many cloud platforms used it as the major
only code to access PostgreSQL, but also code to make             language for application development. These include
appropriate 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 always
issued by the user, it delivers those results back to the view    switch back to using the previous version while we
controller that invoked it. This view controller then
                                                                  corrected the new, buggy version.
instantiates the result handler that is associated with the
given 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 the
could either be an HTML page, a JSON stream, or a binary          process to setup the Linux OS image out of which the virtual
file. The request handler follows the template view design        server runs. Typically, you start out with a basic image
pattern.                                                          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 a
inside an Infrastructure as a Service Cloud (IaaS).
                                                                  custom image out of your modified image. The process to do
Specifically, we used the Ubuntu Enterprise Cloud platform,       this is tricky and poorly documented. One option involves
which features a Eucalyptus distribution integrated with          using the kvm hypervisor and a Linux distribution to create a
Ubuntu 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 cloud
Apache2 web server, Django web container, and                     controller the following items: a) a file containing the RAM
PostgresSQL 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, your
is 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
want applied to it. This snapshot copies all the files in the       1) Server Organization
virtual 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 on
into 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 the
and give litter feedback to the user about what is going on.      analytics server are always returned as JSON streams. For
The natural tendency is to then wait until you have enough        this reason, we have a set of classes that implement a web
packages in the virtual server so your deployment is stable,      service façade to the analytics server. At this point, there is
in 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 analytics
cloud 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-interface
frameworks 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 the
a command that takes a running instance and creates an            web application server is that the former uses Hive for data
image out it. Amazon EC2 has such feature, but it provides        storage. We used the Python libraries provided by Hive to
little feedback on how it is progressing. This leaves the user    submit SQL-like queries and receive the records resulting
in an anxious state waiting to see if the new image will be       from these.
created or not.                                                     2) Deployment on a IaaS Cloud
B. 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 Experience
is to enable monitoring and analysis applications that
empower officials to see historical trends, and then make              a) Status -As of this writing, the analytics server is
decisions 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 work
temperature, humidity, rainfall, and population size for a        well to manage large data sets in clusters of virtual
given location and use this information to help forecast          machines. But, working with Hadoop and Hive can be
expected 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 of
readings 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 this
flooding 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
functionality that gets run on a separate thread of execution.   names in the expected result to adapt it to process different
The 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 Experience
in an iOS application deals with the events in the user-           1) Status –– The iPhone application runs on iOS 4.2 and
interface. Any request to access the network, or expensive       has been deployed on the iPhone 3GS, iPhone4, iPad, and
file 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 if
organization that is similar to that in the web application      we had used Android. But the development tools for the
server 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 back
strategy, in which their methods get register with the request       V.    FUNCTIONALITY REQUIRED IN FUTURE CLOUDS
operation and invoked depending on the results received          Based on our experience developing Open911, we argue in
from the web server. The HTTP/JSON APIs are used for the         favor of adding the following functionality to future open
data 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 needed
controls the process to request data from the web application
                                                                     to simplify the creation of customized virtual machine
server. 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 cloud
encoding all requests into POST/GET message, all we
                                                                     infrastructure should let the user dynamically re-size
needed 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 ““Auto
JSON 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 to
element attributes and the values are strings with the value
for an attribute, or collections (arrays or hash tables)             seamlessly migrate virtual machines between IaaS
containing more pairs of key/value results. Hence, in our            clouds can greatly simplify application development
                                                                     and deployments. Rather than creating a virtual server
code all had to do was to pass to the code the URL of the
                                                                     for each type of IaaS cloud, one could just create one
target web server application and the collection of key
                                                                     image that can be run on EC2, Eucalyptus, OpenStack,
                                                                     and so on.
•   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:
                                                                         http://www.informationweek.com/news/government/enterprise-
    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               http://research.microsoft.com/en-us/collaboration/global/asia-
typical 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 Cloud
framework [11]. Similarly, Hadoop originates as an open                  Computing””       http://csrc.nist.gov/groups/sns/cloud-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 processing
database 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 is
better 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 ACM
emerged 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 of
work in [14] surveyed several virtualization technologies for            the Cloud Landscape””, in Proc. ICSE Workshop on Software
cloud 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, et.al., ““The Eucalyptus Open-source Cloud-computing
Cloud 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, et.al., ““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, et.al, "HadoopDB: An Architectural Hybrid of
design and deployment of an increasing number of                         MapReduce and DBMS Technologies for Analytical Workloads", In
distributed 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-based
cloud services that feed mobiles devices through either                  Cloud Management Platforms””, in Proc. Proceedings of the 10th
native 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, ““Elastic
video, 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 2008
cloud that includes Google Maps and custom-built services
deployed on a private cloud powered by Ubuntu Enterprise

Más contenido relacionado

La actualidad más candente

The Nitty Gritty of Cloud Computing
The Nitty Gritty of Cloud ComputingThe Nitty Gritty of Cloud Computing
The Nitty Gritty of Cloud ComputingMike Tase
 
Pervasive Computing : You're Already Knee Deep In It
Pervasive Computing : You're Already Knee Deep In ItPervasive Computing : You're Already Knee Deep In It
Pervasive Computing : You're Already Knee Deep In ItRob Manson
 
Towards Pervasive Computing Environments With Cloud Services
Towards Pervasive Computing Environments With Cloud ServicesTowards Pervasive Computing Environments With Cloud Services
Towards Pervasive Computing Environments With Cloud Servicesijsptm
 
Cloud Computing Berkley
Cloud Computing BerkleyCloud Computing Berkley
Cloud Computing Berkleykrmartin_dal
 
Developing For The Pervasive Internet Of Things
Developing For The Pervasive Internet Of ThingsDeveloping For The Pervasive Internet Of Things
Developing For The Pervasive Internet Of ThingsVictoria Romero-Gomez
 
Internet of Things for Next-Generation Public Safety Mobile Communications
Internet of Things for Next-Generation Public Safety Mobile CommunicationsInternet of Things for Next-Generation Public Safety Mobile Communications
Internet of Things for Next-Generation Public Safety Mobile CommunicationsReza Nourjou, Ph.D.
 
QoS-Aware Middleware for Optimal Service Allocation in Mobile Cloud Computing
QoS-Aware Middleware for Optimal Service Allocation in Mobile Cloud ComputingQoS-Aware Middleware for Optimal Service Allocation in Mobile Cloud Computing
QoS-Aware Middleware for Optimal Service Allocation in Mobile Cloud ComputingReza Rahimi
 
Cloud Computing Documentation Report
Cloud Computing Documentation ReportCloud Computing Documentation Report
Cloud Computing Documentation ReportAjit Yadav
 
Quality Metrics In Ubiquitous Computing
Quality Metrics In Ubiquitous ComputingQuality Metrics In Ubiquitous Computing
Quality Metrics In Ubiquitous ComputingRutvik Pensionwar
 
Cloud computing 102711 - ccap
Cloud computing   102711 - ccapCloud computing   102711 - ccap
Cloud computing 102711 - ccapWilliam Mann
 
Cloud Expo 2010 Cloud Computing in DoD
Cloud Expo 2010 Cloud Computing in DoDCloud Expo 2010 Cloud Computing in DoD
Cloud Expo 2010 Cloud Computing in DoDGovCloud Network
 
Jagadeesha kulal J - Cloud computing
Jagadeesha kulal J - Cloud computing Jagadeesha kulal J - Cloud computing
Jagadeesha kulal J - Cloud computing JAGADEESHA KULAL J
 
Business implementation of Cloud Computing
Business implementation of Cloud ComputingBusiness implementation of Cloud Computing
Business implementation of Cloud ComputingQuaid Sodawala
 
Pervasive computing
Pervasive computing Pervasive computing
Pervasive computing BhaktiKarale
 
First step to the cloud white paper
First step to the cloud white paperFirst step to the cloud white paper
First step to the cloud white paperNewton Day Uploads
 
Cloud Computing for Universities Graduation Project
Cloud Computing for Universities Graduation ProjectCloud Computing for Universities Graduation Project
Cloud Computing for Universities Graduation ProjectMohamed Shorbagy
 
cloud computing documentation
cloud computing documentationcloud computing documentation
cloud computing documentationshilpa bojji
 
Introduction to Ubiquitous Computing
Introduction to Ubiquitous ComputingIntroduction to Ubiquitous Computing
Introduction to Ubiquitous ComputingHoneyson Joseph
 

La actualidad más candente (19)

The Nitty Gritty of Cloud Computing
The Nitty Gritty of Cloud ComputingThe Nitty Gritty of Cloud Computing
The Nitty Gritty of Cloud Computing
 
Pervasive Computing : You're Already Knee Deep In It
Pervasive Computing : You're Already Knee Deep In ItPervasive Computing : You're Already Knee Deep In It
Pervasive Computing : You're Already Knee Deep In It
 
Towards Pervasive Computing Environments With Cloud Services
Towards Pervasive Computing Environments With Cloud ServicesTowards Pervasive Computing Environments With Cloud Services
Towards Pervasive Computing Environments With Cloud Services
 
Cloud Computing Berkley
Cloud Computing BerkleyCloud Computing Berkley
Cloud Computing Berkley
 
Developing For The Pervasive Internet Of Things
Developing For The Pervasive Internet Of ThingsDeveloping For The Pervasive Internet Of Things
Developing For The Pervasive Internet Of Things
 
Internet of Things for Next-Generation Public Safety Mobile Communications
Internet of Things for Next-Generation Public Safety Mobile CommunicationsInternet of Things for Next-Generation Public Safety Mobile Communications
Internet of Things for Next-Generation Public Safety Mobile Communications
 
QoS-Aware Middleware for Optimal Service Allocation in Mobile Cloud Computing
QoS-Aware Middleware for Optimal Service Allocation in Mobile Cloud ComputingQoS-Aware Middleware for Optimal Service Allocation in Mobile Cloud Computing
QoS-Aware Middleware for Optimal Service Allocation in Mobile Cloud Computing
 
Cloud Computing Documentation Report
Cloud Computing Documentation ReportCloud Computing Documentation Report
Cloud Computing Documentation Report
 
Quality Metrics In Ubiquitous Computing
Quality Metrics In Ubiquitous ComputingQuality Metrics In Ubiquitous Computing
Quality Metrics In Ubiquitous Computing
 
Cloud computing 102711 - ccap
Cloud computing   102711 - ccapCloud computing   102711 - ccap
Cloud computing 102711 - ccap
 
Cloud Expo 2010 Cloud Computing in DoD
Cloud Expo 2010 Cloud Computing in DoDCloud Expo 2010 Cloud Computing in DoD
Cloud Expo 2010 Cloud Computing in DoD
 
Jagadeesha kulal J - Cloud computing
Jagadeesha kulal J - Cloud computing Jagadeesha kulal J - Cloud computing
Jagadeesha kulal J - Cloud computing
 
Business implementation of Cloud Computing
Business implementation of Cloud ComputingBusiness implementation of Cloud Computing
Business implementation of Cloud Computing
 
Cloud computing report
Cloud computing reportCloud computing report
Cloud computing report
 
Pervasive computing
Pervasive computing Pervasive computing
Pervasive computing
 
First step to the cloud white paper
First step to the cloud white paperFirst step to the cloud white paper
First step to the cloud white paper
 
Cloud Computing for Universities Graduation Project
Cloud Computing for Universities Graduation ProjectCloud Computing for Universities Graduation Project
Cloud Computing for Universities Graduation Project
 
cloud computing documentation
cloud computing documentationcloud computing documentation
cloud computing documentation
 
Introduction to Ubiquitous Computing
Introduction to Ubiquitous ComputingIntroduction to Ubiquitous Computing
Introduction to Ubiquitous Computing
 

Destacado

Quiz - Online Regulation
Quiz - Online RegulationQuiz - Online Regulation
Quiz - Online RegulationKesby12
 
Love the arts
Love the artsLove the arts
Love the artsslkramer
 
H Web Limo & Ultimate Brochure
H Web Limo & Ultimate BrochureH Web Limo & Ultimate Brochure
H Web Limo & Ultimate Brochuredonlibbynh
 
Cuc107 assessment3 s246576 dropbox
Cuc107 assessment3 s246576 dropboxCuc107 assessment3 s246576 dropbox
Cuc107 assessment3 s246576 dropboxkuleblue
 
Dual
DualDual
Dualmif's
 
4 panduan penelitian_ruang_terbuka_iptekor_2010
4 panduan penelitian_ruang_terbuka_iptekor_20104 panduan penelitian_ruang_terbuka_iptekor_2010
4 panduan penelitian_ruang_terbuka_iptekor_2010Efry Efry
 
Plads i bestyrelsen (actis) 45 min om nye bestyrelsesmedlemmer og regnskab
Plads i bestyrelsen (actis) 45 min om nye bestyrelsesmedlemmer og regnskabPlads i bestyrelsen (actis) 45 min om nye bestyrelsesmedlemmer og regnskab
Plads i bestyrelsen (actis) 45 min om nye bestyrelsesmedlemmer og regnskabBjarne Aalbæk
 
Lis656 class 1
Lis656 class 1Lis656 class 1
Lis656 class 1b4andp
 
Adolescentes en conflicto con la ley. Armine Cantero
Adolescentes en conflicto con la ley. Armine CanteroAdolescentes en conflicto con la ley. Armine Cantero
Adolescentes en conflicto con la ley. Armine CanteroSilvia Profesora
 
WEB 2.0 MIXTOS
WEB 2.0 MIXTOSWEB 2.0 MIXTOS
WEB 2.0 MIXTOSLOSMIXTOS
 
Q2工作总结
Q2工作总结Q2工作总结
Q2工作总结xuluxi
 
Polimedicación y prescripción inapropiada de medicamentos en adultos mayores ...
Polimedicación y prescripción inapropiada de medicamentos en adultos mayores ...Polimedicación y prescripción inapropiada de medicamentos en adultos mayores ...
Polimedicación y prescripción inapropiada de medicamentos en adultos mayores ...Jorge Pacheco
 

Destacado (20)

Actividad2
Actividad2Actividad2
Actividad2
 
1
11
1
 
Newsletter
NewsletterNewsletter
Newsletter
 
Quiz - Online Regulation
Quiz - Online RegulationQuiz - Online Regulation
Quiz - Online Regulation
 
Love the arts
Love the artsLove the arts
Love the arts
 
6 psico 08
6 psico 086 psico 08
6 psico 08
 
H Web Limo & Ultimate Brochure
H Web Limo & Ultimate BrochureH Web Limo & Ultimate Brochure
H Web Limo & Ultimate Brochure
 
Cuc107 assessment3 s246576 dropbox
Cuc107 assessment3 s246576 dropboxCuc107 assessment3 s246576 dropbox
Cuc107 assessment3 s246576 dropbox
 
Dual
DualDual
Dual
 
Grafica
GraficaGrafica
Grafica
 
Cuentas web
Cuentas webCuentas web
Cuentas web
 
4 panduan penelitian_ruang_terbuka_iptekor_2010
4 panduan penelitian_ruang_terbuka_iptekor_20104 panduan penelitian_ruang_terbuka_iptekor_2010
4 panduan penelitian_ruang_terbuka_iptekor_2010
 
Plads i bestyrelsen (actis) 45 min om nye bestyrelsesmedlemmer og regnskab
Plads i bestyrelsen (actis) 45 min om nye bestyrelsesmedlemmer og regnskabPlads i bestyrelsen (actis) 45 min om nye bestyrelsesmedlemmer og regnskab
Plads i bestyrelsen (actis) 45 min om nye bestyrelsesmedlemmer og regnskab
 
Japón
JapónJapón
Japón
 
Lis656 class 1
Lis656 class 1Lis656 class 1
Lis656 class 1
 
Adolescentes en conflicto con la ley. Armine Cantero
Adolescentes en conflicto con la ley. Armine CanteroAdolescentes en conflicto con la ley. Armine Cantero
Adolescentes en conflicto con la ley. Armine Cantero
 
WEB 2.0 MIXTOS
WEB 2.0 MIXTOSWEB 2.0 MIXTOS
WEB 2.0 MIXTOS
 
Q2工作总结
Q2工作总结Q2工作总结
Q2工作总结
 
Polimedicación y prescripción inapropiada de medicamentos en adultos mayores ...
Polimedicación y prescripción inapropiada de medicamentos en adultos mayores ...Polimedicación y prescripción inapropiada de medicamentos en adultos mayores ...
Polimedicación y prescripción inapropiada de medicamentos en adultos mayores ...
 
Lucas Sarmiento
Lucas SarmientoLucas Sarmiento
Lucas Sarmiento
 

Similar a Open911

Ijirsm choudhari-priyanka-backup-and-restore-in-smartphone-using-mobile-cloud...
Ijirsm choudhari-priyanka-backup-and-restore-in-smartphone-using-mobile-cloud...Ijirsm choudhari-priyanka-backup-and-restore-in-smartphone-using-mobile-cloud...
Ijirsm choudhari-priyanka-backup-and-restore-in-smartphone-using-mobile-cloud...IJIR JOURNALS IJIRUSA
 
Cloud computing final format(1)
Cloud computing final format(1)Cloud computing final format(1)
Cloud computing final format(1)ahmed elmeghiny
 
Cloud computing
Cloud computingCloud computing
Cloud computingMIDAUTEL
 
A Review And Research Towards Mobile Cloud Computing
A Review And Research Towards Mobile Cloud ComputingA Review And Research Towards Mobile Cloud Computing
A Review And Research Towards Mobile Cloud ComputingSuzanne Simmons
 
Ijirsm poornima-km-a-survey-on-security-circumstances-for-mobile-cloud-computing
Ijirsm poornima-km-a-survey-on-security-circumstances-for-mobile-cloud-computingIjirsm poornima-km-a-survey-on-security-circumstances-for-mobile-cloud-computing
Ijirsm poornima-km-a-survey-on-security-circumstances-for-mobile-cloud-computingIJIR JOURNALS IJIRUSA
 
Cloud computing
Cloud computing Cloud computing
Cloud computing Anant Verma
 
Cloud security deep dive infoworld jan 2011
Cloud security deep dive infoworld jan 2011Cloud security deep dive infoworld jan 2011
Cloud security deep dive infoworld jan 2011Kim Jensen
 
Cloud computing
Cloud computingCloud computing
Cloud computingJawhar Ali
 
Cloud computing on smartphone
Cloud computing on smartphoneCloud computing on smartphone
Cloud computing on smartphoneAlexander Decker
 
Introduction to Cloud Computing and Cloud Infrastructure
Introduction to Cloud Computing and Cloud InfrastructureIntroduction to Cloud Computing and Cloud Infrastructure
Introduction to Cloud Computing and Cloud InfrastructureSANTHOSHKUMARKL1
 
Cloud computing applicatio
Cloud  computing  applicatioCloud  computing  applicatio
Cloud computing applicatioChetan Sontakke
 
Cloud computing course and tutorials
Cloud computing course and tutorialsCloud computing course and tutorials
Cloud computing course and tutorialsUdara Sandaruwan
 
Security aspects-of-mobile-cloud-computing
Security aspects-of-mobile-cloud-computingSecurity aspects-of-mobile-cloud-computing
Security aspects-of-mobile-cloud-computingSHREYASSRINATH94
 
Mobile cloud computing; Future of Cloud Computing
Mobile cloud computing; Future of Cloud ComputingMobile cloud computing; Future of Cloud Computing
Mobile cloud computing; Future of Cloud ComputingVineet Garg
 

Similar a Open911 (20)

Ijirsm choudhari-priyanka-backup-and-restore-in-smartphone-using-mobile-cloud...
Ijirsm choudhari-priyanka-backup-and-restore-in-smartphone-using-mobile-cloud...Ijirsm choudhari-priyanka-backup-and-restore-in-smartphone-using-mobile-cloud...
Ijirsm choudhari-priyanka-backup-and-restore-in-smartphone-using-mobile-cloud...
 
Cloud computing final format(1)
Cloud computing final format(1)Cloud computing final format(1)
Cloud computing final format(1)
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 
A Review And Research Towards Mobile Cloud Computing
A Review And Research Towards Mobile Cloud ComputingA Review And Research Towards Mobile Cloud Computing
A Review And Research Towards Mobile Cloud Computing
 
Ijirsm poornima-km-a-survey-on-security-circumstances-for-mobile-cloud-computing
Ijirsm poornima-km-a-survey-on-security-circumstances-for-mobile-cloud-computingIjirsm poornima-km-a-survey-on-security-circumstances-for-mobile-cloud-computing
Ijirsm poornima-km-a-survey-on-security-circumstances-for-mobile-cloud-computing
 
Ajay
AjayAjay
Ajay
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 
call for papers, research paper publishing, where to publish research paper, ...
call for papers, research paper publishing, where to publish research paper, ...call for papers, research paper publishing, where to publish research paper, ...
call for papers, research paper publishing, where to publish research paper, ...
 
Cloud computing
Cloud computing Cloud computing
Cloud computing
 
Cloud security deep dive infoworld jan 2011
Cloud security deep dive infoworld jan 2011Cloud security deep dive infoworld jan 2011
Cloud security deep dive infoworld jan 2011
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 
Cloud computing on smartphone
Cloud computing on smartphoneCloud computing on smartphone
Cloud computing on smartphone
 
Introduction to Cloud Computing and Cloud Infrastructure
Introduction to Cloud Computing and Cloud InfrastructureIntroduction to Cloud Computing and Cloud Infrastructure
Introduction to Cloud Computing and Cloud Infrastructure
 
Cloud computing applicatio
Cloud  computing  applicatioCloud  computing  applicatio
Cloud computing applicatio
 
cloud computing basics
cloud computing basicscloud computing basics
cloud computing basics
 
Cloud computing course and tutorials
Cloud computing course and tutorialsCloud computing course and tutorials
Cloud computing course and tutorials
 
Security aspects-of-mobile-cloud-computing
Security aspects-of-mobile-cloud-computingSecurity aspects-of-mobile-cloud-computing
Security aspects-of-mobile-cloud-computing
 
Mobile cloud computing; Future of Cloud Computing
Mobile cloud computing; Future of Cloud ComputingMobile cloud computing; Future of Cloud Computing
Mobile cloud computing; Future of Cloud Computing
 
Mobile Cloud Computing
Mobile Cloud ComputingMobile Cloud Computing
Mobile Cloud Computing
 
Cloud computing.pptx
Cloud computing.pptxCloud computing.pptx
Cloud computing.pptx
 

Último

Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 

Último (20)

Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 

Open911

  • 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 melvin.greer@lmco.com {manuel.rodriguez7, jaime.seguel, maniel.sotomayor, juan.aleman1, jose.rivera63}@upr.edu Abstract—— Cloud Computing is emerging as the next big step In response to this paradigm shift in the way online in the design and deployment of an increasing number of services will be delivered, cloud researchers and engineers distributed applications. Concurrent with this widespread must develop appropriate architectures and design patterns to adoption 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 that online 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 reference Hence, cloud researchers and engineers must develop architecture for the development of cloud-based applications appropriate architectures and design patterns to ensure that that feed mobiles devices through either native or web clouds provide responsive, efficient, and feature-rich services to both native and web-based applications running on mobile applications. Open911 is designed to help first responders devices, desktop or laptop computers. In this paper, we present manage emergency situations, providing a platform for Open911 as reference architecture for the development of collecting maps, incident reports, pictures, video, and other cloud-based applications that feed mobiles devices through data elements necessary to manage a crisis. Open 911 also either native or web applications. Open911 is built on top of provides efficient support for web applications running on cloud services that run on a hybrid cloud that includes Google desktop and laptop computers. services and custom-built services deployed on a private cloud Open911 provides two presentation views of the same powered by Ubuntu Enterprise Cloud. We discuss the elements data. Personnel located at a command center (set up to of our architecture, the rationale behind our design choices, manage an emergency) use a web interface to visualize the the strengths of the cloud systems, and the drawbacks or area of concern and post events to first responders on the limitations 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 are plus 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 positive design and deployment of an increasing number of because the cloud infrastructure and associated technologies distributed applications [1][2][3]. Cloud computing have simplified the tasks needed to write, debug, and deploy technologies are designed to harness the power of networks applications. The fact that we can keep multiple application of computers in a very cost effective way. With cloud versions in different server instances makes it is easy to test technologies, enterprises can dynamically deploy server new features, roll back failed changes, and compare the instances or entire application solutions on remote facilities behavior of different versions. Employing JSON and HTTP setup by cloud providers. This eliminates the need for the as the methods to consume cloud services from mobile enterprise to acquire hardware, software, and IT personnel. devices helped us simplified the code to the point where only Moreover, new resources can be added or removed as one class is needed to handle most data requests from the needed, 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 their provide capacity to serve a wide and constantly expanding potential. These features include simplified image creation range of information processing needs, including for virtual machines, dynamic management of virtual government, 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 the devices, specifically smart phones and tablet computers, as systems, and the drawbacks or limitations that we found the principal devices to access online services. Private, during our implementation effort. This discussion will be public or hybrid clouds will host many (if not most) of the helpful to any practitioner trying to build applications that online 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 that Section 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 are needed in future cloud solutions. Section VI contains a brief B. System Architecture description 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 time A. 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 data in the path of hurricanes that bring destruction in the form of exchange. All requests to the system are submitted as either heavy rain, high surf, flooding, mudslides, and high winds. POST or GET requests to a web application server. Results The results of these events are homes destroyed, flooded arrive encoded in HTML, a JSON message, or as a binary roads, power blackouts, shortage of gas, and treats to the stream when image, voice, or video content is returned. food and water supplies. Emergency management agencies at both the local and U.S. Federal Government level need to mitigate the effects of these events not only to save lives but also to preserve order. They must establish command centers to coordinate rescue and law enforcement operations before, during, and after the storm. They rely on first responder personnel that include firemen, policemen, emergency technicians, civil rescue workers, and public works employees. Officials at the command center need to collect information about emergency situations, and dispatch the proper units of first responders. In turn, these first responders become the eyes through which the officials assess 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 data items get exchanged between first responders and headquarters by means of heterogeneous means such as emails, text messages, phone calls, or papers. This makes it difficult to get a clear, global picture of the situation at hand. This state of affairs can be improved by building an Internet-enabled information system that lets headquarters send instructions, maps, pictures, and other media directly to Figure 1: Open911 System Architecture the first responders that need it. Likewise, the first The web application server is built using open source responders can provide valuable feedback to the officers components, specifically the Apache2 web server and the back 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 data newly discovered areas of damage, or recordings with the and metadata related with the emergency management testimonials of eyewitnesses. scenarios is persisted with PostgreSQL, extended with The ingredients for such information systems are already PostGIS functionality for spatial access method support. All in place, but need integration. First responders can be these components run on Linux virtual server instances that equipped 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 complex information about the current situation. Back at command queries and data analytics operations. This module is centers, officers can use workstations and mobile devices to implemented as a lightweight python web service running collect up-to-date operational information and decide the atop the Hive data-warehousing server. Hive provides next course of action. Both sets of applications should be storage and parallel data processing capabilities. Hive is powered by highly available web services. Since the storm built atop Hadoop, which is an open source implementation might have damaged the data centers used by emergency of the MapReduce [8] framework for large-scale data management 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 interface the analytics server and Hive run on Linux virtual servers D. iPhone Interface provisioned inside a Ubuntu Enterprise Cloud deployment. As in the case for the web interface, the iPhone provides C. 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 provides and desktop machines to manage all data regarding the just two lines of information about the event, following emergency at hand. For this purpose, we developed a web Apple’’s UI guidelines, represents each marker. The first line interface 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 disclosure makes sense since geographic location is one the principal button on the pin, a new view appears showing the details of criteria used to track emergencies, and assign resources. All the event. From this view, the user can use the iPhone the events being tracked are represented by a collection of camera and microphone to capture images, voice, or video markers 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 a emergency management agency in charge, d) date and time letter i) to change the type of the map (satellite, map, or of 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, using filters 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 al Django’’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. Each method call is sent over HTTP to a specific Django view controller 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 Server E. 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, thus occur as part of an emergency situation. The data include acting also as an application server. Moreover this content geographic location, dates, description, media, and so on. might be HTML, JSON, or binary. These requirements lead Figure 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 response The 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, and database. 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 of provided 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 Apache Finally, the DB API provides the DAO with the necessary Tomcat. Yet, we decided to build our application with code to read data from the database. This layer includes not Python because many cloud platforms used it as the major only code to access PostgreSQL, but also code to make language for application development. These include appropriate 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 always issued by the user, it delivers those results back to the view switch back to using the previous version while we controller that invoked it. This view controller then corrected the new, buggy version. instantiates the result handler that is associated with the given 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 the could either be an HTML page, a JSON stream, or a binary process to setup the Linux OS image out of which the virtual file. The request handler follows the template view design server runs. Typically, you start out with a basic image pattern. 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 a inside an Infrastructure as a Service Cloud (IaaS). custom image out of your modified image. The process to do Specifically, we used the Ubuntu Enterprise Cloud platform, this is tricky and poorly documented. One option involves which features a Eucalyptus distribution integrated with using the kvm hypervisor and a Linux distribution to create a Ubuntu 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 cloud Apache2 web server, Django web container, and controller the following items: a) a file containing the RAM PostgresSQL 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, your is 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 Organization virtual 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 on into 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 the and give litter feedback to the user about what is going on. analytics server are always returned as JSON streams. For The natural tendency is to then wait until you have enough this reason, we have a set of classes that implement a web packages in the virtual server so your deployment is stable, service façade to the analytics server. At this point, there is in 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 analytics cloud 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-interface frameworks 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 the a command that takes a running instance and creates an web application server is that the former uses Hive for data image out it. Amazon EC2 has such feature, but it provides storage. We used the Python libraries provided by Hive to little feedback on how it is progressing. This leaves the user submit SQL-like queries and receive the records resulting in an anxious state waiting to see if the new image will be from these. created or not. 2) Deployment on a IaaS Cloud B. 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 Experience is to enable monitoring and analysis applications that empower officials to see historical trends, and then make a) Status -As of this writing, the analytics server is decisions 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 work temperature, humidity, rainfall, and population size for a well to manage large data sets in clusters of virtual given location and use this information to help forecast machines. But, working with Hadoop and Hive can be expected 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 of readings 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 this flooding 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 different The 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 Experience in an iOS application deals with the events in the user- 1) Status –– The iPhone application runs on iOS 4.2 and interface. Any request to access the network, or expensive has been deployed on the iPhone 3GS, iPhone4, iPad, and file 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 if organization that is similar to that in the web application we had used Android. But the development tools for the server 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 back strategy, in which their methods get register with the request V. FUNCTIONALITY REQUIRED IN FUTURE CLOUDS operation and invoked depending on the results received Based on our experience developing Open911, we argue in from the web server. The HTTP/JSON APIs are used for the favor of adding the following functionality to future open data 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 needed controls the process to request data from the web application to simplify the creation of customized virtual machine server. 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 cloud encoding all requests into POST/GET message, all we infrastructure should let the user dynamically re-size needed 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 ““Auto JSON 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 to element attributes and the values are strings with the value for an attribute, or collections (arrays or hash tables) seamlessly migrate virtual machines between IaaS containing more pairs of key/value results. Hence, in our clouds can greatly simplify application development and deployments. Rather than creating a virtual server code all had to do was to pass to the code the URL of the for each type of IaaS cloud, one could just create one target 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: http://www.informationweek.com/news/government/enterprise- 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 http://research.microsoft.com/en-us/collaboration/global/asia- typical 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 Cloud framework [11]. Similarly, Hadoop originates as an open Computing”” http://csrc.nist.gov/groups/sns/cloud-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 processing database 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 is better 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 ACM emerged 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 of work in [14] surveyed several virtualization technologies for the Cloud Landscape””, in Proc. ICSE Workshop on Software cloud 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, et.al., ““The Eucalyptus Open-source Cloud-computing Cloud 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, et.al., ““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, et.al, "HadoopDB: An Architectural Hybrid of design and deployment of an increasing number of MapReduce and DBMS Technologies for Analytical Workloads", In distributed 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-based cloud services that feed mobiles devices through either Cloud Management Platforms””, in Proc. Proceedings of the 10th native 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, ““Elastic video, 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 2008 cloud that includes Google Maps and custom-built services deployed on a private cloud powered by Ubuntu Enterprise