Changes between Version 10 and Version 11 of TrafficModelATMSOverview
- Timestamp:
- 01/08/2018 10:23:25 AM (8 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
TrafficModelATMSOverview
v10 v11 1 1 = Traffic Model / FEP / ATMS Overview Document = 2 2 3 == Terminology == 3 == Table of Contents == 4 5 1. [#terminology Terminology] 6 1. [#purpose Purpose] 7 1. [#architecture System Architecture] 8 1. [#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?] 14 1. [#detailedcomponentoverviews Detailed Component Overviews] 15 1. [#trafficmodeldetail Traffic Model] 16 1. [#fepsimdetail FEP Simulator] 17 1. [#atmsdetail ATMS] 18 19 == Terminology == #terminology 4 20 5 21 - FEP = Front End Processor … … 8 24 - RPC = Remote Procedural Calls 9 25 10 == Purpose == 26 == Purpose == #purpose 11 27 12 28 This 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. 13 29 14 == System Deployment / Component Diagram ==30 == System Architecture == #architecture 15 31 16 32 The [wiki:DeploymentDiagram System (Traffic Model / FEP / ATMS) Deployment/Component Diagram] is a UML Deployment / Component diagram which helps to describe the system architecture. 17 33 18 == Overview of System == 19 20 === What is the Traffic Model? === 34 == Overview of System == #overview 35 36 === What is the Traffic Model? === #trafficmodeloverview 21 37 22 38 The 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. 23 39 24 === What is the FEP Simulator? === 40 === What is the FEP Simulator? === #fepsimoverview 25 41 26 42 The 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. 27 43 28 === What is the ATMS? === 44 === What is the ATMS? === #atmsoverview 29 45 30 46 The 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. 31 47 32 === How do these components work together? ===48 === System Behavior / How do these components work together? === #systembehavior 33 49 34 50 Reference the [wiki:TrafficFEPATMSActivityDiagram Traffic Model / FEP / ATMS Activity Diagram] while reading this section. It helps to describe system behavior. … … 40 56 The 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. 41 57 42 === Why do we need the FEP Simulator? === 58 === Why do we need the FEP Simulator? === #whyfep 43 59 44 60 Why 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]. 45 61 46 == Detailed Component Overviews == 62 == Detailed Component Overviews == #detailedcomponentoverviews 47 63 48 64 This section will describe each component individually in more detail, to give a better understanding of how they work. 49 65 50 === Traffic Model === 66 === Traffic Model === #trafficmodeldetail 51 67 52 68 Reference the [wiki:TrafficModelClassDiagram Traffic Model Class Diagram] while reading this section. 53 69 54 70 ==== Behavior ==== 71 55 72 As 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. 56 73 … … 69 86 The next section "FEP Simulator" will give a better understanding of FEPLines and why their representation is necessary in the simulation system. 70 87 71 === FEP Simulator === 88 === FEP Simulator === #fepsimdetail 72 89 73 90 Reference 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. … … 81 98 The FEP Simulator runs persistently on the Linux Virtual Machine on the TMC network and awaits messages. 82 99 83 === ATMS === 100 === ATMS === #atmsdetail 84 101 85 102 The 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.
