BS EN 15531-2:2015 – TC:2020 Edition
$280.87
Tracked Changes. Public transport. Service interface for real-time information relating to public transport operations – Communications
Published By | Publication Date | Number of Pages |
BSI | 2020 | 280 |
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 |
---|---|
1 | compares BS EN 15531-2:2015 |
2 | TRACKED CHANGES Text example 1 — indicates added text (in green) |
150 | Contents Page |
152 | European foreword |
153 | Introduction |
154 | 1 Scope |
155 | 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 |
156 | Figure 1 — Request / Response Interaction 5.1.3 Publish/Subscribe Pattern |
157 | Figure 2 — Simple Publish/Subscribe Interaction 5.1.4 Publish/Subscribe with Broker Pattern |
158 | Figure 3 — Brokered Publish/Subscribe Interaction 5.1.5 Request/Response – Compound Requests Figure 4 — Request/Response: Compound Requests |
159 | 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 |
160 | 5.2.3 Fetched Delivery Figure 7 — Fetched Delivery |
161 | Figure 8 — Fetched Delivery for Publish/Subscribe 5.2.4 Data Horizon for Fetched Delivery |
162 | Figure 9 — Fetched Delivery for Request/Response 5.2.5 Get Current Message 5.2.6 Multipart Despatch of a Delivery |
163 | Figure 10 — Multipart Delivery 5.2.7 Multipart Despatch of a Fetched Delivery – MoreData Figure 11 — Fetched Multipart Delivery |
164 | 5.3 Mediation Behaviour 5.3.1 Introduction 5.3.2 Mediation Behaviour – Maintaining Subscription Last Updated State |
165 | Figure 12 — Mediation: Update Tracking and sensitivity threshold for Direct Delivery |
166 | Figure 13 — Mediation: Handling Fetched Delivery Latencies 5.3.3 Mediation Behaviour – Subscription Filters |
168 | Figure 14 — Mediation: Subscription Filter 5.4 Recovery Considerations for Publish Subscribe 5.4.1 Introduction |
169 | 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 |
170 | 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 |
171 | 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 |
172 | 5.5 Recovery Considerations for Direct Delivery Figure 20 — Robust Direct Delivery — UML Sequence 5.6 Request Parameters and Interactions |
173 | Table 1 — SIRI Request and Subscription Parameters |
174 | Table 2 — Topics and Policies for SIRI Functional Service Types |
175 | 5.7 Error Conditions for Requests Table 3 — System and Application Error Conditions |
176 | Table 4 — Application Error Conditions Related to Request Parameters |
177 | 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 |
178 | 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 |
179 | 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 |
180 | 5.11 Capability Matrix 5.11.1 Introduction 5.11.2 SIRI General Capabilities Table 6 — SIRI General Capabilities |
181 | 6 Request/Response 6.1 Making a Direct Request 6.1.1 Introduction Table 7 — SIRI Request Delivery Types |
182 | 6.1.2 ServiceRequest Message — Element Table 8 — ServiceRequest — Attributes |
183 | 6.1.3 The ServiceRequestContext — Element 6.1.3.1 General |
184 | Table 9 — ServiceRequestContext Parameters |
185 | 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 |
186 | Table 12 — SIRI Functional Service Common Request — Attributes 6.1.5 ServiceRequest — Example 6.1.6 Access Controls on a Request |
187 | 6.2 Receiving a Data Delivery 6.2.1 Introduction |
188 | Table 13 — Delivery Content Elements 6.2.2 ServiceDelivery 6.2.2.1 ServiceDelivery— Element |
189 | Table 14 — ServiceDelivery— Attributes |
190 | 6.2.2.2 Common Properties of SIRI Functional Service Delivery Messages Table 15 — SIRI Function Service xxxDelivery— Attributes |
191 | 6.2.2.3 ServiceDelivery — Example |
192 | 7 Subscriptions 7.1 Setting up Subscriptions 7.1.1 Introduction |
193 | Table 16 — SIRI Request and Delivery Types |
194 | 7.1.2 SubscriptionRequest 7.1.2.1 SubscriptionRequest — Element Table 17 — SubscriptionRequest — Attributes |
195 | 7.1.2.2 SubscriptionRequestContext — Element Table 18 — SubscriptionContext — Attributes |
196 | 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 |
197 | Table 20 — SubscriptionResponse — Attributes |
198 | Table 21 — ResponseStatus — Attributes 7.1.3.2 SubscriptionResponse — Example |
199 | 7.2 Subscription Validity 7.3 Terminating Subscriptions 7.3.1 Introduction 7.3.2 The TerminateSubscriptionRequest 7.3.2.1 TerminateSubscriptionRequest — Element |
200 | Table 22 — TerminateSubscriptionRequest — Attributes 7.3.2.2 TerminateSubscriptionRequest — Example 7.3.3 The TerminateSubscriptionResponse 7.3.3.1 TerminateSubscriptionResponse — Element |
201 | Table 23 — TerminateSubscriptionResponse — Attributes 7.3.3.2 TerminateSubscriptionResponse — Example |
202 | 7.3.4 The SubscriptionTerminatedNotification (SIRI 2.0) 7.3.4.1 SubscriptionTerminatedNotification — Element Table 24 — SubscriptionTerminatedNotification — Attributes |
203 | 7.3.4.2 SubscriptionTerminatedNotification — Example 8 Delivering data 8.1 Direct Delivery 8.1.1 Introduction |
204 | 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 |
205 | 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 |
206 | 8.2.2.4 DataReadyAcknowledgement— Element Table 27 — DataReadyAcknowledgement — Attributes 8.2.2.5 DataReadyAcknowledgement — Example |
207 | 8.2.3 Polling Data (DataSupplyRequest/ServiceDelivery) 8.2.3.1 Procedure 8.2.3.2 DataSupplyRequest Message — Element Table 28 — DataSupplyRequest — Attributes |
208 | 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 |
209 | 9.3 Recovery after Server Failure 9.4 Reset after Interruption of Communication Table 29 — Error Statuses and Actions in Communication Failure Conditions |
210 | 9.5 Alive Handling 9.5.1 Introduction 9.5.2 CheckStatusRequest 9.5.2.1 CheckStatusRequest Message — Element Table 30 — CheckStatusRequest — Attributes |
211 | 9.5.2.2 CheckStatusRequest — Example 9.5.3 CheckStatusResponse 9.5.3.1 CheckStatusResponse Message — Element Table 31 — CheckStatusResponse — Attributes |
212 | 9.5.3.2 CheckStatusResponse — Example |
213 | 9.5.4 HeartbeatNotification 9.5.4.1 Heartbeat Message — Element Table 32 — HeartbeatNotification — Attributes 9.5.4.2 HeartbeatNotification — Example |
214 | 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 |
215 | Table 33 — Server Logical Endpoints Table 34 — Client Logical Endpoints 10.2.2 Endpoint Address — Examples |
216 | Table 35 — Client Logical Endpoints 10.3 Parallelism and Endpoint Addresses |
217 | 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 |
218 | Figure 21 — SIRI Schema Packages 10.4.5 Siri.XSD – Use of XML Choice |
219 | Figure 22 — Example for XML choice |
220 | 10.4.6 SiriSG.XSD – Use of XML Substitution groups Figure 23 — Example: XML Substitution groups |
221 | 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) |
222 | 10.5.2.3 WSDL (Web Services Definition Language) |
223 | 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 |
224 | 10.5.5 SIRI WSDL structure Table 36 — SIRI Producer functional services |
225 | Table 37 — SIRI Producer communication management and utility services Table 38 — SIRI Consumer notification |
226 | 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 |
227 | 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 |
228 | Table 40 — SOAP Example Message: GetStopMonitoring Answer |
231 | 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 |
232 | Table 42 — CapabilityDiscoveryRequest |
233 | 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 |
234 | Table 44 — CapabilityDiscoveryResponse — Attributes 11.3.3 Functional Service Capability Discovery Response — Element 11.3.3.1 General |
235 | Table 45 — SIRI Common Capability Responses 11.3.3.2 CommunicationsTransportMethod — Allowed values |
236 | Table 46 — CommunicationsTransportMethod — Allowed Values (SIRI 2.0) 11.3.3.3 CompressionMethod — Allowed values Table 47 — CompressionMethod — Allowed Values (SIRI 2.0) |
237 | 11.3.4 Service Capability Response — Example |
238 | 11.4 Functional Service Capability Permission Matrix 11.4.1 Introduction |
239 | Table 48 — SIRI Functional Service Common Permission — Attributes 11.4.2 OperatorPermissions — Element Table 49 — OperatorPermissions — Attributes |
240 | 11.4.3 LinePermissions — Element Table 50 — LinePermissions — Attributes 11.4.4 ConnectionLinkPermissions — Element Table 51 — ConnectionLinkPermissions — Attributes 11.4.5 StopMonitorPermissions — Element |
241 | Table 52 — StopMonitorPermissions — Attributes 11.4.6 VehicleMonitorPermissions — Element Table 53 — VehicleMonitorPermissions — Attributes 11.4.7 InfoChannelPermissions — Element Table 54 — InfoChannelPermissions — Attributes |
242 | 12 SIRI for Simple Web Services – SIRI Lite (+SIRI v2.0) 12.1 Introduction 12.1.1 General |
243 | 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 |
244 | 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 |
245 | 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 |
246 | 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 |
247 | 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 |
248 | 12.3.2.5 Simple Stop Monitoring response to return stop departures – JSON Example |
250 | 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 |
251 | 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 |
252 | 12.3.3.5 Simple Vehicle Monitoring response to return vehicle positions – JSON Example |
253 | 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 |
256 | 12.3.4.5 Complex Vehicle Monitoring response to return monitored journeys – JSON Example |
259 | 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 |
260 | 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 |
261 | 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 |
262 | 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 |
263 | 13.2 Introduction 13.3 Base Data Types 13.3.1 W3C Simple Types Table 57 — W3C XML simple data types used in SIR |
264 | 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 |
265 | 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 |
266 | 13.4.3.2 Error Conditions — Elements Table 62 — Error Conditions 13.5 Shared groups of elements 13.5.1 ServiceInfoGroup — Group |
267 | Table 63 — ServiceInfoGroup — Elements 13.5.2 JourneyInfoGroup — Group Table 64 — JourneyInfoGroup — Elements 13.5.3 VehicleJourneyInfoGroup — Group 13.5.3.1 General |
268 | Table 65 — VehicleJourneyInfoGroup — Elements |
269 | 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 |
270 | 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 |
271 | Table 70 — FacilityChangeElement — Elements |
272 | 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 |
273 | Table 73 — JourneyProgressGroup — Elements 13.5.6.2 MonitoringError — Allowed values Table 74 — MonitoringError —Allowed Values |
274 | 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 |
275 | 13.5.6.6 CallStatus — Allowed values Table 78 — CallStatus —Allowed Values 13.5.6.7 VehicleStatus — Allowed values Table 79 — VehicleStatus —Allowed Values |
276 | 13.6 OperationalBlockGroup — Group Table 80 — OperationalBlockGroup — Elements 13.7 OperationalInfoGroup — Group Table 81 — OperationalInfoGroup — Elements |
277 | Bibliography |