wiki:BluePrint/CAPBroker

Version 39 (modified by Nuwan Waidyanatha, 11 years ago) ( diff )

--

BluePrint: CAP Broker

Current Status

====Available features:====

  • built on the Emergency Data Exchange Language (EDXL) Common Alerting Protocol (CAP) version 1.2 [1]
  • manage templates, manage messages

====Missing features:====

  1. manage CAP Profiles (multiple languages, identifier format, etc)
  2. delivery options (HTTP, RSS/Atom, SMS, Email, Cell-broadcast, Twitter, HF, Voice-text (audio)
  3. common operating picture
  4. subscription management
  5. receive CAP feeds [2]
  6. visualize CAP feeds ("common operating picture")
  7. integrate with Google Alerthub [3]
  8. enable multi language "info" segments
  9. digitally sign the messages

UserGuidelines/Alerts

Introduction

Common Alerting Protocol defines a data format for sharing alerts (and re-relaying) over various media channels. This project aims to implement core CAP features into Eden and provide usable UI elements for managing CAP alerts.The module will facilitate the publishing and relaying of alerts and warning as well as offer subscribers means to receive warnings and alerts of their choice. Moreover, the module will provide a common operating picture of the published alerts for improving situational-awareness (e.g. GDACS common operating picture with message filtering). The tools are mainly for National Disaster Management Organizations for managing Multi-agency Situational-awareness with capabilities for all-hazard all-media warning/alerting.

The self-contained product, coming out of the developments, will be coined as the CAP-enabled Sahana Alerting and Messaging Broker (abbreviated as "SAMBRO"). One aspect of SAMBRO is give implementers the option to subscribe to available CAP feeds such as the National Oceanic and Atmospheric Administration's National Tsunami Warning Centre CAPXML feeds International Tsunami Warning System in Indonesia with their CAP-Atom feeds, or the Global Disaster Alert and Coordination System (GDACS) individual alert CAP files. Thereby, serving in capacity of an aggregator to present those CAP messages in the common operating picture based on spatial and temporal dimensions. Authorized SAMBRO user can choose to amend those CAP messages, received through the feeds, to relay them to the subscribers registered in the SAMBRO.

SAMBRO subscribers could be human or other systems (e.g Google's Alerthub). SAMRBO message publishers would be provided with functionality to manage reusable CAP message template and issue CAP messages over multiple channels such as HTTP posts, RSS/Atom feeds, SMS, Email, Twitter, Facebook, so on and so forth. The CAP standard also requires that implementers define a CAP-Profile. These are typically considered as CAP Country Profiles. Therefore, the module will feature those components for managing those implementation specific profiles.

Description

User stories:

  1. A Country develops their Country CAP Profile and intend to implement the profile along with the rules
    1. Authorized super-user (or implementer) starts to edit the profile
    2. define the format of the message "identifier"
    3. define the hazard event specific areaDescription template and geographic boundaries
    4. define the mandatory set of languages that all messages should be in
    5. define the hazard and areaDescription template specific roles and permissions
  2. A warning agency authorized to issue alerts for a specific hazard event wants to create CAP message templates
    1. Authorized user will create a new template
    2. The CAP Profile will determine the rules for validating the template such as forcing the implementer to generate a "info" segment for each language
    3. Implementer can choose to either allow the message issuer to change the template value for a certain attribute or lock that field with a fixed value
    4. Implementer would provide the required text with placeholders set for message issuers to complete with actual event specific values
    5. The template is saved and assigned permissions, for which only authorized users with those permissions can select the specific template when issuing a message
  3. A warning agency learns of an imminent hazard event (e.g. cyclone) and wants to issue a CAP message to warn the targeted public at risk:
    1. Authorized user chooses to create a new message
    2. If presented to select a template (e.g. Cyclone template)
    3. Completes the missing information specific to the event such as event, headline, onset, description, instructions, effective, areaDesc, etc
    4. Repeat the "info" segment of the message for each language, as specified by the profile
    5. Attach a "resource" file
    6. Saves the message as an "actual" alert with a scope set to "Public"
    7. Chooses to broadcast the message through the cellular networks, share with all TV/Radio stations
  4. A warning agency learns of a tsunami warning and wants to activate a system with a CAP message (e.g. siren towers)
    1. Similar to the previous instance, the authorized user would create a message
    2. Set the "parameter" values to trigger the sirens
    3. Select the areaDescription to determine the targeted siren towers
    4. Choose the delivery method as "siren system" and send the message
  5. A emergency management agency wants to view the current situation or get an overall picture of all the current alerts for situational-awareness
    1. Authorized user enters SAMBRO
    2. Typically, upon entry, they are presented with the "common operating picture" or they navigate to it
    3. The user may choose to filter the map of alerts by various CAP elements such as "category", "priority", or "areaDescription"
    4. The user may choose to filter the map of alert for a specific time interval
    5. The user would click on a alert icon on the map to view the short description with essential information such as the "headline" and "priority"
    6. The user may choose to further investigate the alert message by clicking more to view the full message
    7. Authorized user may choose to update that message and save it with the most current information

Sahana Agasti has a CAP broker implementation but is currently deprecated

Requirements

  • Functional:
    • CAP Profiles and CAP Templates: Data model and user interface assisting easy and correct implementation of CAP profiles and create/edit of CAP templates
    • CAP Editing: Data model and user interface for creation of CAP alerts compliant with the EDXL-CAP 1.2 standard.(see this ticket on templates)
    • CAP subscriber: data model and GUIs to manage intended users and groups when disseminating alerts via SMS and Email. (we can use s3msg module here)
  • Interoperability:
    • CAP Broadcasting: Use XSL and XSLT to generate text suitable for distribution. Generate broadcast events, broadcast media can be added by hooking up to these events generated in the system: tap in to s3msg module
    • CAP Reception: Expose a PuSH end point and allow Eden instances to subscribe to each other. Handling cancellation and update alerts gracefully.
    • Import and Export facility for CAP and CAP Profiles: Enable importing of CAP Alerts from XML files with CAP Alert elements. Allow Exporting. Use the Survey module as a reference here. Also these should be implemented inside the s3export module.

Use-Cases

Actor Use-case Description
CAP profile implementer Implement CAP profile CAP Profile defines a class of CAP alerts which may provide a structure to the CAP alert and speed up the creation of CAP Alerts and templates, for example a Profile may specify a region, a set of languages and generic templates in each language. This can be used during CAP alert creation for centering the map for example and for fast creation of alert messages
CAP template implementer Implements CAP templates CAP templates are Abstract CAP alerts with blanks that need to can be filled really fast in case of an imminent disaster to produce a CAP alert, for example a Tsunami CAP template might be of help in a coastal area, hence an implementer will create the same
CAP message editor Send a CAP alert a message editor can pick a CAP template and fill the blanks in it to send out a CAP alert (user story in description)
CAP alert subscriber Subscribes to CAP Alerts when a CAP alert is created and the subscriber is in the audience, a notification will be issued via modes prescribed by the subscriber

Design

  • The Models: The table definitions go are in modules/s3db/cap.py. Place some functions which will help in the creation, sending and receiving of CAP XML files in s3msg module where it might best fit.
  • The GUI
    • index: A map and a table of alerts sortable by the various fields of an alert. Clicking on a row on the table centers the map to the <Area> associated with the alert.
    • profiles:
      • index: View a listing of templates (We should ship some country-specific profiles by default in Eden since this is recommended)
      • edit & create: Editing / creating a profile. This should allow for specification of constraints for each field of the cap message.
    • templates:
      • index: View a listing of all templates grouped by their pertinent profiles.
      • edit & create: Allow users to create templates: This will allow for creating multiple <info> elements with placeholders for canned inputs such as [AREA] [SEVERITY] etc.which will then be substituted to produce text consumable via various media like SMS and IVR
    • create alert: A map with ability for easy input of polygons and circles, A drop-down for picking profiles and templates to use. A way to specify recipients for restricted alerts.
    • Reference and mockups: http://eden.sahanafoundation.org/ticket/1026

Implementation

References

[1] CAP 1.2 Specification
[2] Example Practices: CAP Feeds Version 1.0
[3] Google Alerthub
[4] SAMBRO User Guidelines

Notes

Common Alerting Protocol:

Originating CAP alerts is one need, receiving them and using them to actuate alerting systems, be they SMS drivers or sirens or whatever is another. Another is a message broker that can interoperate with the commercial boxes. Authentication systems are also a factor, especially where cross-jurisdictional reciprocity is required

Ideally the CAP XML should be signed end-to-end, especially in a federated system where there's more than one authority running servers/aggregators. Our current implementations sign the alerts at the originating server, so they're at least traceable to the source server but not necessarily the individual operator. Current servers check integrity when they get a message from another server, but there isn't a regional PKI.

Wireframe (ported to eden)

  • The wireframe built using Python and Eden frameworks. The code is here. Anyone can use this as the basis to continue the CAP Broker developments.
  • This ticket contains some of the screen shots and initial GUI layouts with some descriptions.

BluePrints

Attachments (6)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.