Skip to content

Latest commit

 

History

History
50 lines (27 loc) · 4.36 KB

SYSTEM_ARCHITECTURE.md

File metadata and controls

50 lines (27 loc) · 4.36 KB

System architecture

OneBusAway Android is a client application that requires real-time server access in order to provide information to users.

OneBusAway uses a multi-region architecture where each region (e.g., Tampa, Seattle) is responsible for running their own open-source OneBusAway server (the onebusaway-application-modules project).

The OBA Android app uses the Regions API to discover regions and their server API endpoints, based on the real-time location of the device and the region geographic boundaries available in the Regions API response.

Each region can run one or more servers (details in next section) to add features to the OneBusAway Android app. The following sections present three different regional deployment examples:

  1. A simple deployment that uses only the OneBusAway server
  2. A deployment that adds trip planning and bike share information
  3. A deployment that adds issue reporting via an Open311 server

Note that you can have all three of the above active at once - the Tampa Bay region currently uses all three.

The below system architecture diagrams come from this Google Drawing.

Simple deployment

The simplest way to get started is to deploy a OneBusAway server, which will give you estimated arrival times and service alerts in the app. Here's the basic system architecture diagram for this configuration:

onebusaway system architecture-basic

Add trip planning and/or bike share (Optional)

If you want to add trip planning and/or bike share information, you'll need to set up an OpenTripPlanner server. See this article for details about the bike share features. Here's the system architecture for a region that's added trip planning and bike share information (e.g., Tampa Bay, FL and Puget Sound, Washington):

onebusaway system architecture-otp

Add issue reporting via Open311-compliant system (Optional)

If you use an issue management system that supports the Open311 standard, you can have OneBusAway Android submit problem reports to this system, including metadata from the stop/trip they are reporting the problem about as well as an attached picture. See this presentation for details about the enhanced issue reporting feature. Here's the system architecture for a region that's added issue reporting via Open311 (e.g., Tampa Bay):

onebusaway system architecture-open311

Configure your own servers

OneBusAway and OpenTripPlanner

See the Getting Started section of the onebusaway-application-modules project to set up your own OneBusAway server - this is a good place to start, and will give you arrival estimates and service alerts in the OneBusAway Android app.

After you have the OneBusAway server set up, see the Custom Servers documentation in this project to see how you can test OneBusAway Android with your new OBA server.

After you've tested arrival information, if you want to add trip planning and/or bike share information, see the Basic Tutorial documentation for setting up an OpenTripPlanner server.

When you have this set up, see the Custom Servers documentation again to point your OBA Android app to your new OTP server.

Open311

Currently we don't have a way to easily plug an Open311 server URL directly into the OBA Android app UI to test, but let us know if you'd like to test it out and we'll help out.