Shopping Cart

No products in the cart.

BS EN 15531-2:2015

$215.11

Public transport. Service interface for real-time information relating to public transport operations – Communications

Published By Publication Date Number of Pages
BSI 2015 134
Guaranteed Safe Checkout
Categories: ,

If you have any questions, feel free to reach out to our online customer service team by clicking on the bottom right corner. We’re here to assist you 24/7.
Email:[email protected]

SIRI uses a consistent set of general communication protocols to exchange information between client and server. The same pattern of message exchange may be used to implement different specific functional interfaces as sets of concrete message content types.

Two well-known specific patterns of client server interaction are used for data exchange in SIRI: Request/Response and Publish/Subscribe.

  • Request/Response allows for the ad hoc exchange of data on demand from the client.

  • Publish/Subscribe allows for the repeated asynchronous push of notifications and data to distribute events and Situations detected by a Real-time Service.

The use of the Publish/Subscribe pattern of interaction follows that described in the Publish-Subscribe Notification for Web Services (WS-PubSub) specification, and as far as possible, SIRI uses the same separation of concerns and common terminology for publish/subscribe concepts and interfaces as used in WS-PubSub. WS-PubSub breaks down the server part of the Publish/Subscribe pattern into a number of separate named roles and interfaces (for example, Subscriber, Publisher, Notification Producer, and Notification Consumer): in an actual SIRI implementation, certain of these distinct interfaces may be combined and provided by a single entity. Although SIRI is not currently implemented as a full WS-PubSub web service, the use of a WS-PubSub architecture makes this straightforward to do in future.

Publish/Subscribe will not normally be used to support large numbers of end user devices.

For the delivery of data in responses (to both requests and subscriptions), SIRI supports two common patterns of message exchange, as realised in existent national systems:

  • A one step ‘Direct Delivery’, as per the classic client-server paradigm, and normal WS-PubSub publish subscribe usage; and

  • A two-step ‘Fetched Delivery’ which elaborates the delivery of messages into a sequence of successive messages pairs to first notify the client, and then to send the data when the client is ready. Fetched Delivery is a stateful pattern in its own right.

Each delivery pattern allows different trade-offs for implementation efficiency to be made as appropriate for different target environments.

A SIRI implementation may support either or both delivery methods; in order to make the most efficient use of the available computational and communication resources. The delivery method may either be preconfigured and static for a given implementation, or each request or subscription may indicate the delivery method required by the client dynamically as part of the request policy, and the server may refuse a request if it does not support that method, giving an appropriate error code.

The Interaction patterns and the Delivery patterns are independent aspects of the SIRI protocol and may be used in any combination in different implementations.

For a given SIRI Functional Service type (Connection Monitoring, Stop Monitoring, etc.), the message payload content is the same regardless of whether information is exchanged with a Request/Response or Publish/Subscribe pattern, or whether it is returned by Direct or Fetched Delivery.

The SIRI Publish/Subscribe Protocol prescribes particular mediation behaviour for reducing the number of notifications and the amount of network traffic arising from subscriptions.

The mediation groups the various subscriptions from a subscriber into one or more Subscriber Channels, and is able to manage notifications and updates for the aggregate.

Only partial updates to the data set since the last delivery for the subscription need to be sent.

The SIRI Communication protocols are designed to fail gracefully. Considerations for resilience and recovery are covered below.

PDF Catalog

PDF Pages PDF Title
4 Contents Page
6 European foreword
7 Introduction
8 1 Scope
9 2 Normative references
3 Terms and definitions
4 Symbols and abbreviations
5 Common communication aspects
5.1 Data Exchange Patterns of Interaction
5.1.1 Introduction
5.1.2 Request/Response Pattern
10 Figure 1 — Request / Response Interaction
5.1.3 Publish/Subscribe Pattern
11 Figure 2 — Simple Publish/Subscribe Interaction
5.1.4 Publish/Subscribe with Broker Pattern
12 Figure 3 — Brokered Publish/Subscribe Interaction
5.1.5 Request/Response – Compound Requests
Figure 4 — Request/Response: Compound Requests
13 5.1.6 Publish/Subscribe – Compound Subscriptions
Figure 5 — Publish/Subscribe: Compound Subscriptions
5.2 Delivery Patterns
5.2.1 Introduction
5.2.2 Direct Delivery
Figure 6 — One Step Direct Delivery
14 5.2.3 Fetched Delivery
Figure 7 — Fetched Delivery
15 Figure 8 — Fetched Delivery for Publish/Subscribe
5.2.4 Data Horizon for Fetched Delivery
16 Figure 9 — Fetched Delivery for Request/Response
5.2.5 Get Current Message
5.2.6 Multipart Despatch of a Delivery
17 Figure 10 — Multipart Delivery
5.2.7 Multipart Despatch of a Fetched Delivery – MoreData
Figure 11 — Fetched Multipart Delivery
18 5.3 Mediation Behaviour
5.3.1 Introduction
5.3.2 Mediation Behaviour – Maintaining Subscription Last Updated State
19 Figure 12 — Mediation: Update Tracking and sensitivity threshold for Direct Delivery
20 Figure 13 — Mediation: Handling Fetched Delivery Latencies
5.3.3 Mediation Behaviour – Subscription Filters
22 Figure 14 — Mediation: Subscription Filter
5.4 Recovery Considerations for Publish Subscribe
5.4.1 Introduction
23 5.4.2 Check Status – Polling
Figure 15 — Check Status — UML Sequence
5.4.3 Heartbeat – Pinging
Figure 16 — Heartbeat Message — UML Sequence
5.4.4 Degrees of Failure
24 5.4.5 Detecting a Failure of the Producer
5.4.5.1 Detecting a Failure Using Check Status
Figure 17 — Check Status with Recovery & Re-subscribe — UML Sequence
5.4.5.2 Detecting a Failure Using Heartbeat
25 Figure 18 — Heartbeat Monitoring – Loss of Service — UML Sequence
Figure 19 — Heartbeat Monitoring – Interruption of Service — UML Sequence
5.4.6 Detecting a Failure of the Consumer
26 5.5 Recovery Considerations for Direct Delivery
Figure 20 — Robust Direct Delivery — UML Sequence
5.6 Request Parameters and Interactions
27 Table 1 — SIRI Request and Subscription Parameters
28 Table 2 — Topics and Policies for SIRI Functional Service Types
29 5.7 Error Conditions for Requests
Table 3 — System and Application Error Conditions
30 Table 4 — Application Error Conditions Related to Request Parameters
31 5.8 Versioning
5.8.1 Introduction
5.8.2 The Overall SIRI Framework Version Level
5.8.3 The SIRI Functional Service Type Version Level
5.9 Access Controls: Security and Authentication
5.9.1 Introduction
5.9.2 System Mechanisms External to SIRI Messages
5.9.2.1 General
32 5.9.2.2 Authentication Key (+SIRI v2.0)
5.9.2.3 Application Level Authentication
5.9.2.4 The Access Permission Matrix
5.9.2.5 Request Authentication
5.10 Service Discovery
5.10.1 Introduction
5.10.2 Discovery of Servers that Support SIRI Services
33 5.10.3 Discovery of the Capabilities of a SIRI Server
5.10.4 Discovery of the Coverage of a Given SIRI Functional Service
Table 5 — SIRI Discovery Service Matrix
34 5.11 Capability Matrix
5.11.1 Introduction
5.11.2 SIRI General Capabilities
Table 6 — SIRI General Capabilities
35 6 Request/Response
6.1 Making a Direct Request
6.1.1 Introduction
Table 7 — SIRI Request Delivery Types
36 6.1.2 ServiceRequest Message — Element
Table 8 — ServiceRequest — Attributes
37 6.1.3 The ServiceRequestContext — Element
6.1.3.1 General
38 Table 9 — ServiceRequestContext Parameters
39 6.1.3.2 DeliveryMethod — Allowed values
Table 10 — DeliveryMethod —Allowed Values (SIRI 2.0)
6.1.3.3 AllowedPredictors — Allowed values
Table 11 — AllowedPredictors —Allowed Values (SIRI 2.0)
6.1.4 Common Properties of ServiceRequest Messages — Element
40 Table 12 — SIRI Functional Service Common Request — Attributes
6.1.5 ServiceRequest — Example
6.1.6 Access Controls on a Request
41 6.2 Receiving a Data Delivery
6.2.1 Introduction
42 Table 13 — Delivery Content Elements
6.2.2 ServiceDelivery
6.2.2.1 ServiceDelivery— Element
43 Table 14 — ServiceDelivery— Attributes
44 6.2.2.2 Common Properties of SIRI Functional Service Delivery Messages
Table 15 — SIRI Function Service xxxDelivery— Attributes
45 6.2.2.3 ServiceDelivery — Example
46 7 Subscriptions
7.1 Setting up Subscriptions
7.1.1 Introduction
47 Table 16 — SIRI Request and Delivery Types
48 7.1.2 SubscriptionRequest
7.1.2.1 SubscriptionRequest — Element
Table 17 — SubscriptionRequest — Attributes
49 7.1.2.2 SubscriptionRequestContext — Element
Table 18 — SubscriptionContext — Attributes
50 7.1.2.3 The Common Properties of SIRI Functional Service Subscription Requests
Table 19 — SIRI Functional Service Common Subscription — Attributes
7.1.2.4 SubscriptionRequest — Example
7.1.3 SubscriptionResponse
7.1.3.1 SubscriptionResponse — Element
51 Table 20 — SubscriptionResponse — Attributes
52 Table 21 — ResponseStatus — Attributes
7.1.3.2 SubscriptionResponse — Example
53 7.2 Subscription Validity
7.3 Terminating Subscriptions
7.3.1 Introduction
7.3.2 The TerminateSubscriptionRequest
7.3.2.1 TerminateSubscriptionRequest — Element
54 Table 22 — TerminateSubscriptionRequest — Attributes
7.3.2.2 TerminateSubscriptionRequest — Example
7.3.3 The TerminateSubscriptionResponse
7.3.3.1 TerminateSubscriptionResponse — Element
55 Table 23 — TerminateSubscriptionResponse — Attributes
7.3.3.2 TerminateSubscriptionResponse — Example
56 7.3.4 The SubscriptionTerminatedNotification (SIRI 2.0)
7.3.4.1 SubscriptionTerminatedNotification — Element
Table 24 — SubscriptionTerminatedNotification — Attributes
57 7.3.4.2 SubscriptionTerminatedNotification — Example
8 Delivering data
8.1 Direct Delivery
8.1.1 Introduction
58 8.1.2 Acknowledging Receipt of Data (DataReceivedAcknowledgement)
8.1.2.1 DataReceivedAcknowledgement — Element
Table 25 — DataReceivedAcknowledgement — Attributes
8.1.2.2 DataReceivedAcknowledgement — Example
8.2 Fetched Delivery
8.2.1 Introduction
59 8.2.2 Signalling Data Availability (DataReadyNotification / DataReadyResponse)
8.2.2.1 Procedure
8.2.2.2 DataReadyNotification— Element
Table 26 — DataReadyNotification — Attributes
8.2.2.3 DataReadyNotification — Example
60 8.2.2.4 DataReadyAcknowledgement— Element
Table 27 — DataReadyAcknowledgement — Attributes
8.2.2.5 DataReadyAcknowledgement — Example
61 8.2.3 Polling Data (DataSupplyRequest/ServiceDelivery)
8.2.3.1 Procedure
8.2.3.2 DataSupplyRequest Message — Element
Table 28 — DataSupplyRequest — Attributes
62 8.2.3.3 DataSupplyRequest — Example
8.2.3.4 ServiceDelivery Message
8.3 Delegated Delivery +SIRI 2.0
9 Recovery from system failure
9.1 Introduction
9.2 Recovery after Client Failure
63 9.3 Recovery after Server Failure
9.4 Reset after Interruption of Communication
Table 29 — Error Statuses and Actions in Communication Failure Conditions
64 9.5 Alive Handling
9.5.1 Introduction
9.5.2 CheckStatusRequest
9.5.2.1 CheckStatusRequest Message — Element
Table 30 — CheckStatusRequest — Attributes
65 9.5.2.2 CheckStatusRequest — Example
9.5.3 CheckStatusResponse
9.5.3.1 CheckStatusResponse Message — Element
Table 31 — CheckStatusResponse — Attributes
66 9.5.3.2 CheckStatusResponse — Example
67 9.5.4 HeartbeatNotification
9.5.4.1 Heartbeat Message — Element
Table 32 — HeartbeatNotification — Attributes
9.5.4.2 HeartbeatNotification — Example
68 9.6 Additional Failure modes for delegated delivery (+SIRI v2.0)
10 Transport of SIRI messages
10.1 Separation of Addressing from Transport Protocol
10.2 Logical Endpoint Addresses
10.2.1 Endpoint Addresses
69 Table 33 — Server Logical Endpoints
Table 34 — Client Logical Endpoints
10.2.2 Endpoint Address — Examples
70 Table 35 — Client Logical Endpoints
10.3 Parallelism and Endpoint Addresses
71 10.4 Encoding of XML messages
10.4.1 Principles
10.4.2 Encoding of Errors in XML
10.4.3 Character Set
10.4.4 Schema Packages
72 Figure 21 — SIRI Schema Packages
10.4.5 Siri.XSD – Use of XML Choice
73 Figure 22 — Example for XML choice
74 10.4.6 SiriSG.XSD – Use of XML Substitution groups
Figure 23 — Example: XML Substitution groups
75 10.5 Use of SIRI with SOAP / WSDL
10.5.1 Introduction
10.5.2 Web Services
10.5.2.1 General
10.5.2.2 SOAP (Simple Object Access Protocol)
76 10.5.2.3 WSDL (Web Services Definition Language)
77 Figure 24 — WSDL 1.1 and 2.0 main concepts (source http://en.wikipedia.org/wiki/File:WSDL_11vs20.png)
10.5.3 Use of SOAP
10.5.4 SIRI WSDL
10.5.4.1 SIRI WSDL Definition
10.5.4.2 WSDL 1.1 encoding styles
78 10.5.5 SIRI WSDL structure
Table 36 — SIRI Producer functional services
79 Table 37 — SIRI Producer communication management and utility services
Table 38 — SIRI Consumer notification
80 Figure 25 — SIRI SOAP Producer Document/Literal WSDL
Figure 26 — SIRI SOAP Consumer RPC/Literal WSDL
10.5.6 SIRI RPC WSDL
10.5.6.1 General
81 10.5.6.2 WSDL RPC Example: StopTimetable Service
Figure 27 — SIRI SOAP WSDL GetStopTimetable detail
10.5.6.3 SOAP Example: Monitoring Service
Table 39 — SOAP Example: GetStopMonitoring request
82 Table 40 — SOAP Example Message: GetStopMonitoring Answer
85 10.5.7 SIRI Document WSDL (+SIRI v2.0)
Table 41 — SOAP Message Structures; XSD files
10.5.8 SIRI WSDL 2.0 (+SIRI v2.0)
10.5.9 SIRI WSDL Status
11 Capability Discovery Requests
11.1 General
11.2 Capability Request
86 Table 42 — CapabilityDiscoveryRequest
87 11.3 Service Capability Discovery
11.3.1 Service Capability Discovery Request — Element
Table 43 — SIRI Service CapabilityDiscoveryRequest — Attributes
11.3.2 Service Capability Discovery Response — Element
88 Table 44 — CapabilityDiscoveryResponse — Attributes
11.3.3 Functional Service Capability Discovery Response — Element
11.3.3.1 General
89 Table 45 — SIRI Common Capability Responses
11.3.3.2 CommunicationsTransportMethod — Allowed values
90 Table 46 — CommunicationsTransportMethod — Allowed Values (SIRI 2.0)
11.3.3.3 CompressionMethod — Allowed values
Table 47 — CompressionMethod — Allowed Values (SIRI 2.0)
91 11.3.4 Service Capability Response — Example
92 11.4 Functional Service Capability Permission Matrix
11.4.1 Introduction
93 Table 48 — SIRI Functional Service Common Permission — Attributes
11.4.2 OperatorPermissions — Element
Table 49 — OperatorPermissions — Attributes
94 11.4.3 LinePermissions — Element
Table 50 — LinePermissions — Attributes
11.4.4 ConnectionLinkPermissions — Element
Table 51 — ConnectionLinkPermissions — Attributes
11.4.5 StopMonitorPermissions — Element
95 Table 52 — StopMonitorPermissions — Attributes
11.4.6 VehicleMonitorPermissions — Element
Table 53 — VehicleMonitorPermissions — Attributes
11.4.7 InfoChannelPermissions — Element
Table 54 — InfoChannelPermissions — Attributes
96 12 SIRI for Simple Web Services – SIRI Lite (+SIRI v2.0)
12.1 Introduction
12.1.1 General
97 12.1.2 Existing Implementations
12.1.3 Using SIRI-LITE services in combination
12.1.3.1 General
12.1.3.2 Providing real-time Stop Arrivals & Departures – Use Case for SIRI LITE
12.1.3.3 Vehicle positions – Use Case for SIRI LITE
98 12.1.4 Alternative Response Encoding
Table 55 – Alternative Response Encodings for SIRI Simple Web Services
12.1.5 Lossless transforms
12.1.6 Simple transforms
12.2 Encoding of URL Requests
12.2.1 Complete Request Encoding in HTTP URL’s
99 12.2.2 General format of SIRI Lite request URL
12.2.3 Endpoints and Service Identification
12.2.4 Encoding of Service Parameters on http request
100 12.2.5 Naming of Request Parameters with Hierarchy
12.2.6 Naming of Parameters with Plural Cardinality
12.2.7 Handling of invalid request combinations
12.2.8 Specifying the encoding of the Response
12.3 Examples
12.3.1 General
101 12.3.2 SIRI-SM Simple Stop Monitoring request to fetch stop departures – SIRI LITE Examples
12.3.2.1 General
12.3.2.2 Simple Stop Monitoring request to fetch stop departures – XML Example
12.3.2.3 Simple Stop Monitoring request to return stop departures – JSON Example
12.3.2.4 Simple Stop Monitoring response to return stop departures – XML Example
102 12.3.2.5 Simple Stop Monitoring response to return stop departures – JSON Example
104 12.3.3 SIRI-VM Simple Vehicle Monitoring request to fetch vehicle positions – SIRI Lite Examples
12.3.3.1 General
12.3.3.2 Simple Vehicle Monitoring request to fetch vehicle positions – XML Example
105 12.3.3.3 Simple Vehicle Monitoring request to fetch vehicle positions – JSON Example
12.3.3.4 Simple Vehicle Monitoring response to return vehicle positions – XML Example
106 12.3.3.5 Simple Vehicle Monitoring response to return vehicle positions – JSON Example
107 12.3.4 SIRI-VM Complex Vehicle Monitoring to obtain journeys – SIRI Lite Examples
12.3.4.1 General
12.3.4.2 Complex Vehicle Monitoring request to fetch monitored journeys – XML Example
12.3.4.3 Complex Vehicle Monitoring request to fetch monitored journeys – RESTful Example
12.3.4.4 Complex Vehicle Monitoring response to return monitored journeys – XML Example
110 12.3.4.5 Complex Vehicle Monitoring response to return monitored journeys – JSON Example
113 12.3.5 SIRI-SM Stop Monitoring failed request with Exception – SIRI LITE Examples
12.3.5.1 General
12.3.5.2 Simple Stop Monitoring response to return exceptions – XML Example
114 12.3.5.3 Simple Stop Monitoring response to return exceptions – JSON Example
12.4 Mapping of SIRI XML to Alternative encodings
12.4.1 Use of syntactic features of alternative rendering formats
12.4.2 Mapping of SIRI data types to alternative encodings
115 12.5 Recommendations for the use of SIRI Simple Web Services
12.5.1 General
12.5.2 Services useful for device Passenger Information Services
12.5.3 Response filtering
12.5.4 Incorporation of reference data in responses
12.5.5 Multiple functional service deliveries in the same response
116 12.5.6 Support a choice of response encodings
12.5.7 Provide reporting identifiers
13 Common SIRI elements & Data Types
13.1 General
Table 56 SIRI – NETEX equivalents
117 13.2 Introduction
13.3 Base Data Types
13.3.1 W3C Simple Types
Table 57 — W3C XML simple data types used in SIR
118 13.3.2 SIRI Simple Types
Table 58 — SIRI simple data types used in SIRI
13.3.3 NationalLanguageStringStructure — Element
13.4 Shared Elements & Structures
13.4.1 FramedVehicleJourneyRef — Element
119 Table 59 — FramedVehicleJourneyRef
13.4.2 Location — Element
Table 60 — Location
13.4.3 Error — Element
13.4.3.1 General
Table 61 — Error Code
120 13.4.3.2 Error Conditions — Elements
Table 62 — Error Conditions
13.5 Shared groups of elements
13.5.1 ServiceInfoGroup — Group
121 Table 63 — ServiceInfoGroup — Elements
13.5.2 JourneyInfoGroup — Group
Table 64 — JourneyInfoGroup — Elements
13.5.3 VehicleJourneyInfoGroup — Group
13.5.3.1 General
122 Table 65 — VehicleJourneyInfoGroup — Elements
123 13.5.3.2 FirstOrLastJourney — Allowed values
Table 66 — FirstOrLastJourney —Allowed Values (SIRI 2.0)
13.5.4 JourneyPatternInfoGroup — Group
13.5.4.1 General
Table 67 — JourneyPatternInfoGroup — Elements
124 13.5.4.2 VehicleMode — Allowed values
Table 68 — VehicleMode — Allowed Values (SIRI 2.0)
13.5.5 DisruptionGroup — Group
13.5.5.1 General
Table 69 — DisruptionGroup — Elements
13.5.5.2 FacilityChangeElement — Element
125 Table 70 — FacilityChangeElement — Elements
126 13.5.5.3 EquipmentStatus — Allowed values
Table 71 — EquipmentStatus —Allowed Values
13.5.5.4 MobilityFacility — Allowed values
Table 72 — MobilityFacility —Allowed Values
13.5.6 JourneyProgressGroup — Group
13.5.6.1 General
127 Table 73 — JourneyProgressGroup — Elements
13.5.6.2 MonitoringError — Allowed values
Table 74 — MonitoringError —Allowed Values
128 13.5.6.3 ConfidenceLevel — Allowed values
Table 75 — ConfidenceLevel —Allowed Values
13.5.6.4 ProgressRate — Allowed values
Table 76 — ProgressRate —Allowed Values
13.5.6.5 Occupancy — Allowed values
Table 77 — Occupancy —Allowed Values
129 13.5.6.6 CallStatus — Allowed values
Table 78 — CallStatus —Allowed Values
13.5.6.7 VehicleStatus — Allowed values
Table 79 — VehicleStatus —Allowed Values
130 13.6 OperationalBlockGroup — Group
Table 80 — OperationalBlockGroup — Elements
13.7 OperationalInfoGroup — Group
Table 81 — OperationalInfoGroup — Elements
131 Bibliography
BS EN 15531-2:2015
$215.11