SunGuide TM Software Development Project Test Readiness Review (TRR) Meeting October 1, 2007
SunGuide SM Software Development Project Software Design Review May 12, 2004
description
Transcript of SunGuide SM Software Development Project Software Design Review May 12, 2004
SunGuideSunGuideSMSM Software Development Project Software Development Project
Software Design ReviewSoftware Design ReviewMay 12, 2004May 12, 2004
May 12, 2004Software Design Review 2
AgendaAgenda
High-Level Design Concepts Dellenback / Heller
– Subsystems
– XML based ICDs Core Processes: Dellenback
– Status Logger
– Executive Handler
– Notify Manager GUI Strain Generic Subsystem Moczygemba Data Bus Moczygemba DMS Randolph CCTV Randolph TSS Randolph Incident Management Dellenback Overall SDD Discussion Dellenback
May 12, 2004Software Design Review 3
High-Level Design Concepts
May 12, 2004Software Design Review 4
Subsystem ConceptSubsystem Concept
Robust
Extensible
Flexible
Scalable
Configurable
Proven
May 12, 2004Software Design Review 5
XML ICD ConceptXML ICD Concept
Goals:– Provide real time status– Distribute commands
List of ICDs:– CCTV Driver– CCTV Client– CCTV Switch Driver– TSS Driver– TSS Client– DMS Client– HAR Client– IM Client– Data Bus Client– Data Bus Provider Template
May 12, 2004Software Design Review 6
Software ScalabilitySoftware Scalability
Highly scalable / extensible, many configurations possible RTMC (Regional Transportation Management Center):
– Multiple server based– “Owns” equipment– Many users
STMC (Satellite/Secondary) Transportation Management Center):– Local servers to host equipment– Utilize “Data Bus” of an associated RTMC– User interface hosted in the RTMC
VTMC (Virtual Transportation Management Centers):– No code locally installed– Utilize browser interface
PTMC (Portable Transportation Management Centers):– Laptop based– Database limiting factor– Network connections required (to access devices)
May 12, 2004Software Design Review 7
Core Processes
May 12, 2004Software Design Review 8
Status Logger and Executive Status Logger and Executive Handler ImplementationHandler Implementation
May 12, 2004Software Design Review 9
Status Logger:Status Logger:High Level Design ConceptHigh Level Design Concept
May 12, 2004Software Design Review 10
Status Logger:Status Logger:Detailed Design InformationDetailed Design Information
Centralized message logging TCP/IP socket based User-defined content in optional message fields Three primary components
– Status Logger Server• Windows Service• Multi-client• Several log file archiving options• Control Panel applet configurable
– Status Log Viewer• Supports remote log file access• Comprehensive message filtering• Efficient log file refreshing
– Client Access Library• Supports .NET, Win32/MFC, and Java clients• Registry-based or client-supplied connect info
May 12, 2004Software Design Review 11
Executive Handler:Executive Handler:High Level Design ConceptHigh Level Design Concept
May 12, 2004Software Design Review 12
Executive Handler:Executive Handler:Detailed Design InformationDetailed Design Information
Supports application control from central location Supports control of distributed applications
– By server– By sub-system
Supports update of client application logging level Four primary components
– Executive Handler Server• Windows Service• Supports multiple controlled processes• Supports connections from multiple EH Viewers• Supports error notification via Notify Manager
– Executive Handler Editor• Supports Services and Applications• Supports parameter and sub-system definition
– Executive Handler Viewer• Supports connections to multiple EH Servers• View process status by host or by sub-system• Control processes by groups or individually
– Client Access Library• Supports .NET and Win32/MFC clients• Supports asynchronous notifications
May 12, 2004Software Design Review 13
Notify Process:Notify Process:High Level Design ConceptHigh Level Design Concept
May 12, 2004Software Design Review 14
Notify Process:Notify Process:Detailed Design InformationDetailed Design Information
Supports SMTP-based notifications from central location TCP/IP socket based XML message based Supports severity-based recipient lookup from
SunGuide database Two primary components
– Notify Manager Server• Windows Service• Multi-client• Executive Handler compatible• Configurable SMTP host
– Client Access Library• Supports .NET clients• Registry-based or client-supplied connect info
May 12, 2004Software Design Review 15
Generic Subsystem
May 12, 2004Software Design Review 16
Generic Subsystem:Generic Subsystem:High Level Design ConceptHigh Level Design Concept
Main Process
XMLInterface
UserPermissions
Service andHeartbeat
StatusLogger
DatabaseAccess
Config File
May 12, 2004Software Design Review 17
Generic Subsystem:Generic Subsystem:Detailed Design InformationDetailed Design Information
Main Process – Core controller of the system – Extended and customized by each subsystem
Database – Single access point to SunGuide database – Customized code for each provider
XML Interface – Asynchronous XML over TCP/IP sockets – Listeners manage client and driver connections – XML forwarded to the appropriate handlers • Authenticate Handler
• Default Handler• Properties Handler• Subsystem-specific Handlers
Queue
Queue
request
request
request
request
sendrequest
response
response
response
sendresponse
response
Client
Client Manager
Device Manager
Interface Manager
Device Driver
XML Interface Data Flow
May 12, 2004Software Design Review 18
Generic Subsystem:Generic Subsystem:Detailed Design Information - continuedDetailed Design Information - continued
If the request is something that needs to be sent to the driver, a request will be returned.
Otherwise, the handler performs whatever data actions should occur (add to database and current system data) and returns a response.
When a response is sent to the handler, the handler performs any data actions that need to occur (add to database and current system data) and forwards the response on for the client.
XMLInterfaceManager
Handler
SendsXML
Request
Returns requestor response
Forwards toappropriate
handler
Client
Send Requestor Response
Database
Sends Requestto Device Driver
DeviceDriver
Returns Response
Stored Data
ReturnsResponse
Forwards toappropriate
handler
Returns response
Returns Response
May 12, 2004Software Design Review 19
Generic Subsystem:Generic Subsystem:Detailed Design Information - continuedDetailed Design Information - continued
Status Logger – Single access point to SunGuide StatusLogger
– Configurable logging levels
Service and Heartbeat – Generic framework supports services
– A built-in Executive Handler client heartbeats to the Executive Handler
– Configurable logging via the Executive Handler is supported within this framework
User Permissions – System issues a security token for each authenticated user
– User subscriptions are tracked
– Security controller supports permission checking
Config File – XML file stores port and server settings
– System supports configurable XML handlers
May 12, 2004Software Design Review 20
Data Bus
May 12, 2004Software Design Review 21
Data Bus:Data Bus:High Level Design ConceptHigh Level Design Concept
DATABUS
Data Archiving
EmergencyEvacuation
Web Server
Inventory andMaintenance
Travel Time
IncidentManagement
GUI
C2C Plugin
Commands
Status
Status
Executive Handler
Status Logger
AllSunGuideProcesses
Provider1Subsytem
.
.
.
.
.
.
.
ProviderNSubsystem
DMSCCTVTSSHARRampRWISIMP
GUIPC2CP
AdministrativeEditorDatabase
May 12, 2004Software Design Review 22
Data Bus:Data Bus:High Level Design Concept - continuedHigh Level Design Concept - continued
Common access point to provider subsystems
– fewer socket connections
– location transparency
– increases flexibility of the deployed system
– reduces network traffic for status distribution
Data Bus
Provider A
Client AProvider B
Provider C
Provider D
Client B
(n x m connections removed)
Data Bus
Provider A
Client AProvider B
Provider C
Provider D
Client B
May 12, 2004Software Design Review 23
Data Bus:Data Bus:Detailed Design InformationDetailed Design Information
Inherits and extends generic subsystem functionality
The Data Bus Main Process initializes main components: – Command Distributor
– Status Collector
– Status Distributor
– Data Bus XML Interface
Provider Template ICD standardizes the system’s provider interface to ensure schema compatibility
– Allows Data Bus to easily expand to support new provider subsystems
Configuration file used to determine providers, their subscriptions, and their status updates
May 12, 2004Software Design Review 24
Data Bus:Data Bus:Detailed Design Information - continuedDetailed Design Information - continued
Provider 1 Subsytem
ProviderType 1Thread
<providerType1-cache> <subsystem name=”subName”> <providerType1> <id> </id> <status> </status> </providerType1> . . . </subsystem></providerType1-cache>
DATA BUS
.
.
.
.
.
.
.
.
.
.
Subscription Code
modify, delete, status update
Subscription Code
modify, delete, st
atus update
C2C Plugin
Data Archiving
ClientICD
Provider N Subsystem
EmergencyEvacuation
Web Server
Inventory andMaintenance
GUI
Travel Time
IncidentManagement
RealtimeDistribution
Thread
ProviderType NThread
<providerTypeN-cache> <subsystem name=”subName”> <providerTypeN> <id> </id> <status> </status> </providerTypeN> . . . </subsystem></providerTypeN-cache>
Commands
Status
XML
XML
CommandThread
CommandThread
CommandThread
DistributeRequest/Response
Process Command/Response
Provider
ICD
Data Bus Configuration File
Provider
ICD
DMSCCTVTSSHARRampRWISIMP
GUIPC2CPTvTP
Database
Command and Control
May 12, 2004Software Design Review 25
Data Bus:Data Bus:Detailed Design Information - continuedDetailed Design Information - continued
Status Collector
– Data snapshot stored for each
new resource type
– Providers push status
updates to the Data Bus
– Status trees are modified as
appropriate
<dms-cache> <subsystem name=”dms1”> <dms> <id providerName=”dms1” resourceType=”dms” centerId=”Tampa”>7</id> <status> . . . </status> </dms> . . . <dms> <id providerName=”dms1” resourceType=”dms” centerId=”Orlando”>8</id> <status> . . . </status> </dms> </subsystem> . . . <subsystem name=”dmsN”> <dms> <id providerName=”dmsN” resourceType=”dms” centerId=”Tampa”>1</id> <status> . . . </status> </dms> . . . <dms/> </subsystem></dms-cache>
May 12, 2004Software Design Review 26
Data Bus:Data Bus:Detailed Design Information - continuedDetailed Design Information - continued
Status Distributor
– Clients can retrieve data types from the system
– Status may be requested on demand
– Updates are sent to subscribed clients
<cctv> <host>descartes</host> <port>40009</port> <maxConnections>20</maxConnections> <compressionSize>200</compressionSize> <commTolerance>3</commTolerance> <lockTimeout>120</lockTimeout> <handlers> <gov.its.cctv.xml.CctvLockHandler/> <gov.its.cctv.xml.CctvPresetHandler/> </handlers> <subscriptions> <cameraStatus/> <monitorStatus/> </subscriptions> <statusUpdates> <camera> <changeCameraStateResp/> <changeVideoBlackoutStateResp/> <lockCameraResp/> <deleteCameraResp/> </camera> <monitor> <changeMonitorRestrictedStateResp/> <updateConnectionsMsg/> <deleteMonitorResp/> </monitor> </statusUpdates>
.
.
.
May 12, 2004Software Design Review 27
GUI
May 12, 2004Software Design Review 28
GUI / MAP:GUI / MAP:High Level Design ConceptHigh Level Design Concept
May 12, 2004Software Design Review 29
GUI / Map:GUI / Map:Detailed Design InformationDetailed Design Information
Browser based operator interface
Rationale
– Workstation configuration management
– Potential of remote use
– Uses open standards
Key technologies
– PHP (PHP Hypertext Preprocessor)
– SVG (Scalable Vector Graphics)
– JavaScript (also known as: ECMAScript - European Computer Manufactures Association Script)
May 12, 2004Software Design Review 30
GUI / Map:GUI / Map:Detailed Design Information - continuedDetailed Design Information - continued
Browser to server communication
– Browser environment• HTTP• Synchronous client request
– SunGuide environment• XML over TCP/IP• Asynchronous, bidirectional messaging
Data sources
– Typically static data (geography, roadways)• Built from shapefiles
– Typically dynamic data (equipment, events)
May 12, 2004Software Design Review 31
GUI / Map:GUI / Map:Detailed Design Information - continuedDetailed Design Information - continued
Dynamic updates
– Icons placed by latitude and longitude
– Updates regularly retrieved from system
– Equipment status indications• Color or shape change of icons• Detailed information in dialogs
User interaction
– Validity checking performed in GUI
– Commands sent to system immediately• Some commands, like CCTV control, may be
buffered to avoid overloading network
– System messages placed in message window
May 12, 2004Software Design Review 32
DMS
May 12, 2004Software Design Review 33
DMS:DMS:High Level Design ConceptHigh Level Design Concept
DMS Driver
Database
DMSConfiguration
Handler
DMS Polling
DMS ControlHandler
XML Interface
DMS Subsystem Components
DMS Main
DMS ConfigureMessageHandler
DMS RetrieveDMS InfoHandler
. . . nthHandler
May 12, 2004Software Design Review 34
DMS:DMS:Detailed Design InformationDetailed Design Information
Existing system
– Minor modifications needed
– Generic subsystem design based on DMS Drivers
– Existing driver framework
– New commands added
• Mark IV
• NTCIP Florida MIB
May 12, 2004Software Design Review 35
CCTV
May 12, 2004Software Design Review 36
CCTV:CCTV:High Level Design ConceptHigh Level Design Concept
Camera Driver
Database
CameraConfiguration
Handler
MonitorConfiguration
Handler
CameraConnection
Handler
SwitchConfiguration
Handler
Switch Driver
CameraControlHandler
CCTV Main
Camera LockHandler
Video TourHandler
EquipmentGroup
ConfigurationHandler
CCTV Subsystem Components
May 12, 2004Software Design Review 37
CCTV:CCTV:Detailed Design InformationDetailed Design Information
Inherits Generic Subsystem functionality Handlers for configuration
– Locks– Equipment group– Video tours
Handlers forwarding to camera driver– Camera configuration– Camera control
Handlers forwarding to switch driver– Monitor configuration– Switch configuration– Camera connection
May 12, 2004Software Design Review 38
CCTV:CCTV:Detailed Design Information - continuedDetailed Design Information - continued
Camera locks
– Expire after a configurable time period
– Can be overridden with permission Equipment may be dynamically added Active video tours resume on system restart Camera presets
– Locations are saved in camera
– Descriptions of the preset stored in database Blackout mode—cannot connect input/output
– Restricted monitor
– Blacked out camera
May 12, 2004Software Design Review 39
TSS
May 12, 2004Software Design Review 40
TSS:TSS:High Level Design ConceptHigh Level Design Concept
TSS Driver
Database
TSSConfiguration
Handler
DetectorMappingHandler
TSS Subsystem Components
DetectorStatus Handler
TSS Main
DetectorUpdateHandler
Database
May 12, 2004Software Design Review 41
TSS:TSS:Detailed Design InformationDetailed Design Information
Inherits Generic Subsystem functionality Handlers for configuration
– Detector mapping Handlers forwarding to driver
– Detector configuration
– Detector status changes (Active/Out of Service) Handlers receiving data from driver
– Detector updates
May 12, 2004Software Design Review 42
TSS:TSS:Detailed Design Information - continuedDetailed Design Information - continued
Detector mapping
– Contains links/lanes
– Maps links/lanes to highways Equipment may be dynamically added Detector updates
– Converter to link/lane updates
– Compared to alarm threshold
• Thresholds set for time frames
• Smoothing algorithm (rolling average)
• Triggers alarms if less than threshold
May 12, 2004Software Design Review 43
Incident Management
May 12, 2004Software Design Review 44
Incident Management :Incident Management :High Level Design ConceptHigh Level Design Concept
IMSubsystem DATA
BUS
Data Archiving
EmergencyEvacuation
Web Server
Inventory andMaintenance
Travel Time
IncidentManagement
GUI
C2C Plugin
ExecutiveHandler
AdministrativeEditor
Status LoggerCommands
Status
Status
Database
Both a Client and Provider
May 12, 2004Software Design Review 45
Incident Management:Incident Management:Detailed Design InformationDetailed Design Information
Design based on Maryland’s Chart system
Communications Infrastructure – Manages client connections over TCP/IP – Abstracts communication with the client via XML – Supports compression and XML validation
XML Handlers: – Configuration handler
• Processes event changes • User can specify radius to search for devices
– Route handler • Determines alternate routes for an incident
– Incident Management handler • Manages a database of incident data • Pulls data from other SunGuide providers • Supports the creation of events • Client can activate/deactivate response plans • Handles planned roadwork and weather events
– Plan handler • Manages pre-defined response plans
Communications Framework
Business Logic Objects
PluggableRequestHandler
PluggableRequestHandler
PluggableRequestHandler
Request Handler Framework
EventManager
PlanManager
ResponseResourceManager
RouteManager
Plan ResourceEvent Route
Client
XML XML
Java Object(Request)
Java Object(Response)
Java Method Calls
JDOM
May 12, 2004Software Design Review 46
Overall SDD Discussion
May 12, 2004Software Design Review 47
Software Design Document:Software Design Document:Appropriate Format and Content?Appropriate Format and Content?
Impressions:– Level of Detail– Usefulness
Traceability
Updates to occur:– As subsystems are
added– End of release
Hardcopies: hard to produce due to HTML technology
Any FDOT requests?
May 12, 2004Software Design Review 48
Questions?