Changes between Version 10 and Version 11 of TrafficModelATMSOverview


Ignore:
Timestamp:
01/08/2018 10:23:25 AM (8 years ago)
Author:
jtorres
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • TrafficModelATMSOverview

    v10 v11  
    11= Traffic Model / FEP / ATMS Overview Document = 
    22 
    3 == Terminology == 
     3== Table of Contents == 
     4 
     51. [#terminology Terminology] 
     61. [#purpose Purpose] 
     71. [#architecture System Architecture] 
     81. [#overview Overview of System] 
     9 1. [#trafficmodeloverview Traffic Model] 
     10 1. [#fepsimoverview FEP Simulator] 
     11 1. [#atmsoverview ATMS] 
     12 1. [#systembehavior System Behavior] 
     13 1. [#whyfep Why do we need FEP Sim?] 
     141. [#detailedcomponentoverviews Detailed Component Overviews] 
     15 1. [#trafficmodeldetail Traffic Model] 
     16 1. [#fepsimdetail FEP Simulator] 
     17 1. [#atmsdetail ATMS] 
     18 
     19== Terminology == #terminology 
    420 
    521- FEP = Front End Processor 
     
    824- RPC = Remote Procedural Calls 
    925 
    10 == Purpose == 
     26== Purpose == #purpose 
    1127 
    1228This document provides an overview of the Traffic Model, the FEP Simulator, and the ATMS. Each of these components work together in the TMC Simulation System to simulate traffic conditions, and display them to trainees. This document will explain to the reader, at a high level, how the components work together to simulate the traffic conditions, the protocols between each component, and lastly, an overview of each individual component. 
    1329 
    14 == System Deployment / Component Diagram == 
     30== System Architecture == #architecture 
    1531 
    1632The [wiki:DeploymentDiagram System (Traffic Model / FEP / ATMS) Deployment/Component Diagram] is a UML Deployment / Component diagram which helps to describe the system architecture.  
    1733 
    18 == Overview of System == 
    19  
    20 === What is the Traffic Model? === 
     34== Overview of System == #overview 
     35 
     36=== What is the Traffic Model? === #trafficmodeloverview 
    2137 
    2238The Traffic Model is a loose term that describes the components of the Java CAD Server that model the simulated traffic conditions of the highways during the simulation. It consists of the Traffic Model Manager and the Highways model. 
    2339 
    24 === What is the FEP Simulator? === 
     40=== What is the FEP Simulator? === #fepsimoverview 
    2541 
    2642The FEP Simulator simulates the actual FEP that is used in production systems at Cal Trans. It is a C++ program that runs on a Linux VM on the TMC network. It acts as a mediator between the Traffic Model and the ATMS. Its purpose is to receive the traffic condition data over a socket from the Traffic Model, parse and reformat this received data into fep_reply structs, and send the fep_reply structs to the ATMS via RPC. 
    2743 
    28 === What is the ATMS? === 
     44=== What is the ATMS? === #atmsoverview 
    2945 
    3046The ATMS is a production server, purchased from Cal Trans, that accepts the fep_reply structs from the FEP Simulator via RPC. The ATMS uses the fep_reply structs, which contain traffic condition data, to feed the ATMS Client. The ATMS Client displays traffic condition data on an interactive map GUI to the trainees. 
    3147 
    32 === How do these components work together? === 
     48=== System Behavior / How do these components work together? === #systembehavior 
    3349 
    3450Reference the [wiki:TrafficFEPATMSActivityDiagram Traffic Model / FEP / ATMS Activity Diagram] while reading this section. It helps to describe system behavior. 
     
    4056The ATMS receives the fep_reply structs from the FEP Simulator, and then communicates the fep_reply data, which contains the traffic conditions, to the ATMS Client. The end result is the traffic conditions being displayed to trainees on the interactive map GUI. 
    4157 
    42 === Why do we need the FEP Simulator? === 
     58=== Why do we need the FEP Simulator? === #whyfep 
    4359 
    4460Why do we need the FEP Simulator as a mediator? Can't we just send the fep_replys directly to the ATMS via RPC? The short answer to this question is no. Java does not support RPC natively, whereas C and C++ do. It is possible to use RPCs with Java, but to do so it would require a great deal of work or money. Read more about this decision in the [wiki:LessonsLearned Lessons Learned Document]. 
    4561 
    46 == Detailed Component Overviews == 
     62== Detailed Component Overviews == #detailedcomponentoverviews 
    4763 
    4864This section will describe each component individually in more detail, to give a better understanding of how they work. 
    4965 
    50 === Traffic Model === 
     66=== Traffic Model === #trafficmodeldetail 
    5167 
    5268Reference the [wiki:TrafficModelClassDiagram Traffic Model Class Diagram] while reading this section. 
    5369 
    5470==== Behavior ==== 
     71 
    5572As previously stated, the Traffic Model consists of the Traffic Model Manager and the Highways model. The Traffic Model Manager contains an instance of the Highways class. Both the Traffic Model Manager and the Highways model and instantiated upon CAD Server start up. Once instantiated, the Traffic Model Manager spawns an instance of the WriteToFEPThread, which sends the current traffic conditions of the Highways to the FEP Simulator by calling the Highways class' writeToFEP() method, on every 30 second interval. 
    5673 
     
    6986The next section "FEP Simulator" will give a better understanding of FEPLines and why their representation is necessary in the simulation system. 
    7087 
    71 === FEP Simulator === 
     88=== FEP Simulator === #fepsimdetail 
    7289 
    7390Reference the [wiki:FEPSimClassDiagram FEP Simulator Class Diagram] while reading this section. It is not quite as helpful as the Traffic Model Class Diagram, because the FEP Simulator is really just a functional program. 
     
    8198The FEP Simulator runs persistently on the Linux Virtual Machine on the TMC network and awaits messages. 
    8299 
    83 === ATMS === 
     100=== ATMS === #atmsdetail 
    84101 
    85102The ATMS is a complete production server purchased from CalTrans. We do not know much about it, other than its ability to receive fep_reply structs via RPC and feed the received data to the ATMS Client interactive map GUI.