Download - ERTICO.com
Download - ERTICO.com
Download - ERTICO.com
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Global System for<br />
Telematics<br />
! "<br />
#$%$&%'$$( #$%$&%'$$(<br />
! "<br />
) * +#' ' ,$$ $- ,'<br />
. * / " 0 " / / "<br />
1)234.2) 14<br />
) * +#' ' ,$$ $- #5<br />
. * 6/ 6 0 " / / "<br />
) # 7 ) 46<br />
8 " 7.6 /<br />
! " 46 8 " 7.6 9 2 6 /<br />
#<br />
#<br />
$<br />
$<br />
1 6<br />
% #
%<br />
0<br />
%<br />
) 46 8 " 9 2 6<br />
$/< $'/$&/'$$( ! " 2 " 78<br />
39<br />
$/& $>/$&/'$$( ! " 6<br />
" 8<br />
8 "<br />
#<br />
) 46 8 " 9 2 6<br />
6 ! " ''%$#%'$$5<br />
1 ! 3 " ''%$#%'$$5<br />
9 ? ! " ''%$#%'$$5<br />
6 ''%$#%'$$5<br />
6 3 "" ''%$#%'$$5<br />
0<br />
'#%$#%'$$5 222
) 46 8 " 9 2 6<br />
0<br />
PART 1 - INTRODUCTION AND ENTERPRISE VIEW.................................11<br />
Chapter 1 - Introduction ........................................................................................12<br />
1.1 Intended Audience ....................................................................................12<br />
1.2 Organisation .............................................................................................12<br />
1.3 Typographic Conventions .........................................................................13<br />
1.4 Objectives.................................................................................................13<br />
Chapter 2 - Executive Summary............................................................................14<br />
Chapter 3 - Methodology for the Deliverable........................................................15<br />
3.1 Introduction ..............................................................................................15<br />
3.2 Architecture Documents............................................................................15<br />
3.2.1 Content of the IP-level Deliverables ..................................................15<br />
3.2.2 Content of the SP-level Deliverables .................................................16<br />
3.3 The Viewpoint Approach of RM-ODP [1] ................................................16<br />
3.4 The Unified Modelling Language (UML) [2]............................................16<br />
3.5 Structure of this Document........................................................................17<br />
3.6 Conventions..............................................................................................18<br />
3.7 Consistency with IP-level Deliverables .....................................................18<br />
Chapter 4 - System Overview ................................................................................20<br />
4.1 Introduction ..............................................................................................20<br />
4.2 The Open Systems architecture and design................................................20<br />
4.3 Architecture Elements...............................................................................21<br />
4.4 Short Description per Element ..................................................................22<br />
PART 2 - LOGICAL VIEW.............................................................................27<br />
Chapter 5 - Protocol Definition..............................................................................28<br />
5.1 The OSI 7 Layer protocol model and the GST derived model....................28<br />
5.2 Identified Protocols...................................................................................29<br />
5.3 The Vehicle to PSAP protocol Stack.........................................................30<br />
5.3.1 Payload Layer ...................................................................................30<br />
5.3.2 Transport Layer.................................................................................31<br />
5.4 The Vehicle To Vehicle protocol Stack.....................................................31<br />
5.4.1 Payload Layer ...................................................................................31<br />
5.4.2 Transport Layer.................................................................................31<br />
5.5 Bi-directional Client System to Service Centre Communication................31<br />
5.5.1 Payload Layer ...................................................................................31<br />
5.5.2 Transport protocols ...........................................................................31<br />
5.6 Client System to Control Centre Protocol Stack ........................................31<br />
5.6.1 Payload layer.....................................................................................31<br />
5.6.2 Transport Layer.................................................................................32<br />
'#%$#%'$$5 ,
) 46 8 " 9 2 6<br />
5.7 Business to Business Protocols..................................................................33<br />
5.8 Service Centre to Client System Broadcasting...........................................33<br />
5.9 Nomadic Device to Client System Protocols .............................................33<br />
5.9.1 Payload Layer ...................................................................................33<br />
5.9.2 Transport Layer.................................................................................34<br />
Chapter 6 - Application Runtime Environment....................................................37<br />
6.1 Introduction ..............................................................................................37<br />
6.2 Use Case Diagram ....................................................................................37<br />
6.3 Basic OSGi functionality ..........................................................................39<br />
6.3.1 Core OSGi framework.......................................................................39<br />
6.3.2 What is an OSGi service....................................................................39<br />
6.3.3 What is a bundle................................................................................39<br />
6.3.4 Importing and exporting packages.....................................................41<br />
6.3.5 Log Service.......................................................................................41<br />
6.3.6 Configuration Service and Metatype..................................................42<br />
6.4 Connection Manager.................................................................................44<br />
6.4.1 Introduction.......................................................................................44<br />
6.4.2 Interfaces ..........................................................................................44<br />
6.4.2.1 Domain Model ..................................................................................44<br />
6.4.2.2 Communication Management from the application point of view ......46<br />
6.4.2.3 Connection manager from the Scheme Handler point of view............47<br />
6.4.2.4 SOAP Connection Factory ................................................................48<br />
6.4.3 API Specifications.............................................................................50<br />
6.5 Positioning................................................................................................59<br />
6.5.1 Introduction.......................................................................................59<br />
6.5.2 Interfaces ..........................................................................................59<br />
6.5.3 API Specification ..............................................................................60<br />
6.6 Event mechanisms ....................................................................................62<br />
6.6.1 Introduction.......................................................................................62<br />
6.6.2 Events <strong>com</strong>ing from the vehicle environment ....................................62<br />
6.6.3 Events <strong>com</strong>ing from the Control Centre.............................................63<br />
6.6.4 Events <strong>com</strong>ing from a Service Centre................................................63<br />
6.6.5 Events exchanged between service applications in the Client System 63<br />
Chapter 7 - Interface To Vehicle Sensors..............................................................64<br />
7.1 Introduction ..............................................................................................64<br />
7.2 Problem Description .................................................................................64<br />
7.3 High-Level requirements...........................................................................65<br />
7.4 Use Case Diagram ....................................................................................66<br />
7.4.1 Actors ...............................................................................................66<br />
7.4.2 Use Cases..........................................................................................67<br />
7.5 Entities......................................................................................................69<br />
1.5.1 Vehicle Admin <strong>com</strong>ponents .....................................................................70<br />
7.5.1 Data providers ...............................................................................71<br />
7.6 Class View................................................................................................73<br />
7.6.1 Vehicle Admin layer class diagram ...................................................73<br />
7.6.2 Data providers class diagram.............................................................76<br />
7.6.3 Cells Class Diagram (part of data providers layer).............................78<br />
'#%$#%'$$5 (
) 46 8 " 9 2 6<br />
7.7 Sequence View .........................................................................................80<br />
7.7.1 Get Status Element Value..................................................................80<br />
7.7.2 Request Status Element Value Change Notification...........................82<br />
7.7.3 Execute Status Command..................................................................82<br />
7.7.4 Manage Status Elements....................................................................84<br />
7.8 Considered Solution alternatives ...............................................................85<br />
7.9 Vehicle Tree .............................................................................................86<br />
7.9.1 UNITS ..............................................................................................87<br />
7.9.2 Vehicle Tree Description...................................................................88<br />
Chapter 8 - Nomadic Device Integration.............................................................111<br />
8.1 Disclaimer ..............................................................................................111<br />
8.2 Introduction ............................................................................................111<br />
8.3 Terminology Used ..................................................................................111<br />
8.4 Services and Service Repository Synchronization ...................................112<br />
8.5 Use Cases and Collaborations .................................................................112<br />
8.5.1 Initial Connect.................................................................................113<br />
8.5.2 Authentication and Authorization....................................................121<br />
8.5.3 End Point Tree Synchronization ......................................................129<br />
8.5.4 Vehicle Status Service Discovery and Initialization.........................132<br />
8.5.5 eCall discovery and initialization.....................................................137<br />
8.5.6 Service Consumption ......................................................................137<br />
8.5.7 Service Provisioning .......................................................................138<br />
8.6 Protocols.................................................................................................140<br />
8.6.1 Protocol Stack .................................................................................140<br />
Chapter 9 - Deployment And Provisioning .........................................................141<br />
9.1 Introduction ............................................................................................141<br />
9.1.1 Protocol-oriented.............................................................................141<br />
9.1.2 Domain Model ................................................................................141<br />
9.2 Use Case Diagram ..................................................................................142<br />
9.3 Deployment ............................................................................................143<br />
9.3.1 Scope ..............................................................................................143<br />
9.3.2 Solution...........................................................................................144<br />
9.3.3 The gst-deployment.xml file............................................................144<br />
9.3.4 Physical Structure............................................................................150<br />
9.3.5 Example gst-deployment.xml ..........................................................151<br />
9.4 Provisioning Protocol..............................................................................152<br />
9.4.1 OMA Device Management Bootstrap..............................................152<br />
9.4.2 OMA DM Device Description Framework DTD .............................152<br />
9.4.3 OMA Device Management Notification Initiated Session................152<br />
9.4.4 OMA Device Management Protocol................................................153<br />
9.4.5 General ...........................................................................................153<br />
9.4.6 Large Object Handling ....................................................................153<br />
9.4.7 Generic Alerts .................................................................................154<br />
9.4.8 User Interaction <strong>com</strong>mands .............................................................154<br />
9.4.9 OMA Device Management Representation Protocol........................155<br />
9.4.10 OMA Device Management Security................................................155<br />
9.4.11 OMA Device Management Standardized Objects............................155<br />
9.4.12 OMA Device Management Tree and Description ............................155<br />
'#%$#%'$$5 5
) 46 8 " 9 2 6<br />
9.4.13 OMA Device Management Tree and Description Serialization........156<br />
9.5 GST Provisioning Device Management Tree (DMT) ..............................156<br />
9.5.1 Node Name Conventions.................................................................157<br />
9.5.2 Components Management Object....................................................157<br />
9.5.3 Services Management Object ..........................................................160<br />
9.5.4 Users Management Object...............................................................163<br />
9.6 Behaviour Associated with the Management Objects ..............................167<br />
9.6.1 User Display Interactions ................................................................167<br />
9.6.2 Components Management Object....................................................167<br />
9.6.3 Services Management Object ..........................................................170<br />
9.6.4 Users Management Object...............................................................170<br />
9.7 Use Case Realizations.............................................................................171<br />
9.7.1 Subscribe to service from client.......................................................171<br />
9.7.2 Subscribe to service from Control Center with user intervention......171<br />
9.7.3 Subscribe to service from Control Center without user intervention.172<br />
9.7.4 Upgrade of a service without user intervention ................................174<br />
9.7.5 Activate new <strong>com</strong>ponent .................................................................175<br />
9.7.6 Upgrade <strong>com</strong>ponent ........................................................................175<br />
9.7.7 Remove <strong>com</strong>ponent.........................................................................175<br />
Chapter 10 - Identity, Authentication, Authorization ........................................177<br />
10.1 Introduction ............................................................................................177<br />
10.2 Use Case Diagram ..................................................................................179<br />
10.3 Interfaces ................................................................................................179<br />
10.4 Protocol Stack and Specification.............................................................179<br />
10.5 Message Structure...................................................................................179<br />
10.6 API Specification....................................................................................179<br />
10.7 Interactions .............................................................................................180<br />
PART 3 - IMPLEMENTATION VIEW AND CONCLUSIONS.......................181<br />
Chapter 11 - Reference Model .............................................................................182<br />
11.1 Components............................................................................................182<br />
11.2 Nodes .....................................................................................................185<br />
Chapter 12 - Architectural Issues and Decisions.................................................188<br />
12.1 ARE: considered alternatives for positioning...........................................188<br />
12.2 Protocols: Using SIP as a Transport/Routing Protocol.............................188<br />
12.3 Vehicle Interface: considered solution alternatives..................................188<br />
Chapter 13 - Conclusions and Next Steps............................................................191<br />
13.1 Compliancy matrix indicating how each requirement is covered by the<br />
design 191<br />
PART 4 - APPENDIX SECTION..................................................................199<br />
Appendix A - Terms and abbreviations ..............................................................200<br />
Appendix B - References ......................................................................................204<br />
'#%$#%'$$5 -
) 46 8 " 9 2 6<br />
Appendix C - Overview of the UML terminology used in this document ..........208<br />
13.2 Collaborations.........................................................................................208<br />
13.3 Work Item...............................................................................................208<br />
13.4 Components............................................................................................208<br />
13.5 Diagrams ................................................................................................208<br />
13.5.1 Class Diagram.................................................................................208<br />
13.5.2 Sequence Diagram ..........................................................................208<br />
13.5.3 Activity Diagram.............................................................................208<br />
13.5.4 Component Diagram .......................................................................208<br />
13.5.5 Deployment Diagram ......................................................................208<br />
13.6 Views .....................................................................................................208<br />
13.6.1 The Enterprise View........................................................................209<br />
13.6.2 Logical View...................................................................................209<br />
13.6.3 Implementation View......................................................................209<br />
Appendix D - Index ..............................................................................................210<br />
'#%$#%'$$5 >
) 46 8 " 9 2 6<br />
Figure 1 - Sub-project Components ..........................................................................14<br />
Figure 2 Workpackage 3 Deliverables ......................................................................18<br />
Figure 3 High Level Overview of Open Systems ......................................................20<br />
Figure 4 System Overview, Reference Points and Collaborations for the Open<br />
SystemsSub-Project ..........................................................................................21<br />
Figure 5 GST and OSI Protocol Layers <strong>com</strong>parison..................................................28<br />
Figure 6 Authorizing service access with SAML assertions......................................33<br />
Figure 7 Main Protocol Stacks..................................................................................36<br />
Figure 8 Application Runtime Environment .............................................................38<br />
Figure 9 Class Diagram for Connection Manager .....................................................45<br />
Figure 10 An application getting a connection..........................................................47<br />
Figure 11 Registering new transport protocols..........................................................48<br />
Figure 12 A SOAP extension of the ConnectionFactory ...........................................49<br />
Figure 13 Sending a SOAP message.........................................................................50<br />
Figure 14 Class Diagram for Positioning ..................................................................59<br />
Figure 15 – Example vehicle hardware system architecture ................................64<br />
Figure 16 – Use Case Diagramm ..............................................................................66<br />
Figure 17 System Overview ...................................................................................111<br />
Figure 18 TCU FEP Activation ..............................................................................114<br />
Figure 19 TCU FEP Activation ..............................................................................114<br />
Figure 20 Nomadic Device FEP Activation ............................................................115<br />
Figure 21 Nomadic Device FEP Activation ............................................................115<br />
Figure 22 Initial Connect Sequence Diagram..........................................................116<br />
Figure 23 Nomadic Device FEP discovery .............................................................118<br />
Figure 24 Initial Connect Nomadic Device Classes.................................................119<br />
Figure 25 Initial Connect TCU Class Diagram........................................................120<br />
Figure 26 Setup and Management Phase.................................................................121<br />
Figure 27 ND Class Diagram..................................................................................124<br />
Figure 28 Tcu Verify ND Credentials.....................................................................125<br />
Figure 29 Service Info Object.................................................................................129<br />
Figure 30 Service Synchronization .........................................................................130<br />
Figure 31 Two Way Synchronization .....................................................................131<br />
Figure 32 Vehicle Status Discovery........................................................................134<br />
Figure 33 Vehicle Status Discovery........................................................................135<br />
Figure 34 NDIService.............................................................................................138<br />
Figure 35 Use Case Overview ................................................................................139<br />
Figure 36: Provisioning and Deployment domain model.........................................142<br />
Figure 37 Use cases for Provisioning and Deployment ...........................................143<br />
Figure 38 Top-level structure of gst-deployment.xml..............................................144<br />
Figure 39 Structure of the system type definition element......................................145<br />
Figure 40 Structure of the service definition element ..............................................146<br />
Figure 41 Structure of service application element..................................................147<br />
Figure 42 Structure of the supported system types element.....................................149<br />
Figure 43 Structure of the supported locales element ..............................................150<br />
Figure 44 GST Provisioning Management Objects .................................................157<br />
'#%$#%'$$5 &
) 46 8 " 9 2 6<br />
Figure 45 Components Management Object. ..........................................................158<br />
Figure 46 Services Management Object..................................................................160<br />
Figure 47 Users Management Object......................................................................164<br />
Figure 48 Data upload via OMA DM. ....................................................................168<br />
Figure 49 Data upload though OMA DL.................................................................168<br />
Figure 50 Component diagram ...............................................................................182<br />
Figure 51 Deployment Diagram .............................................................................185<br />
'#%$#%'$$5
) 46 8 " 9 2 6<br />
91) < . 2=)14 3)24= 9=<br />
=) 1 12 2<br />
'#%$#%'$$5
Chapter 1 - INTRODUCTION<br />
1.1 Intended Audience<br />
) 46 8 " 9 2 6<br />
) " 6 " 8! " "7 7.<br />
"6 " ) 46 8 " " ! / " " !<br />
7 2 # ) 3) 39 2 . . 6 6 / )<br />
! 7 9/<br />
1.2 Organisation<br />
) " ! *<br />
• 2 6 !<br />
o 2 A 6<br />
o B "" 8A 6 ! "<br />
6 78 " / 1 6 8 8 7<br />
6 " 78<br />
7 /<br />
o 8 7 A 2 6 "<br />
46 8 " 66 78 7<br />
" 8/ ) " 6 78 6 ! 6<br />
8 6 ! 6<br />
7 7 " " /<br />
o 8 " 4 ! A ) 6<br />
B "6 78! 6 # 6 " 78<br />
46 8 " '/< 7 C#D/<br />
• : ! A ! 6 / )<br />
6 " 87 8 ! " 6 * "<br />
6 B"6 %4 7 6 / )<br />
B"6 7 " 6 !<br />
" 78 6 " 7 /<br />
o A 9 " 6<br />
"" " 6 /<br />
6 6 ! 7 " )<br />
" /<br />
o 966 1 " " A ) 46 8 " " !<br />
7 " 6 3 8 "/<br />
o 2 A ) 6 6 ) 8 " !<br />
66 " .6 6 8! 8/ )<br />
78 6 " .<br />
" 8 "/<br />
o = " 2 A ) 6 6<br />
"6 "" 7 ! "<br />
9E 3 6 ! "7 . 3<br />
8 " /<br />
'#%$#%'$$5
) 46 8 " 9 2 6<br />
o 6 8" A 6 / ) 6<br />
6 8" 66 "<br />
6 3 3 6 8 6<br />
966 " 3 3 3 8 "/<br />
o 2 8 9 9 ? A ) 46<br />
8 " 6 " 6 8<br />
? 7 66 /<br />
• 2"6 " ! 3 A ) 6 6 #/'<br />
7 6 8 ) 46 8 " "6 " /<br />
o 1 A "6 6 8" " !<br />
1 2"6 " /<br />
o 3 = B 6 A 1 6 "<br />
6 6 ! ! 7 78 )<br />
/<br />
1.3 Typographic Conventions<br />
) ! 86 6 " *<br />
9 ! ! 6 2 6 " B6 78<br />
66 B) " 77<br />
Code Examples 3 B"6 6<br />
C:\Project\MyCode.c " 6 /<br />
1 6 " 6<br />
7<br />
C
Chapter 2 - EXECUTIVE SUMMARY<br />
) 46 8 " 9 2 6<br />
) " 6 " # G9<br />
2 6 H 46 8 " 7.6 /<br />
Figure 1 - Sub-project Components<br />
9 6 " 8 6 7<br />
8 " ! 7.6 / ) 8 " ! 7 8 7.<br />
8 " 6 " 7.6<br />
B " 6 /<br />
) ! 6 8 8 46 8 " 7.6<br />
6 6 7.6 / 6<br />
6 " . I! F "<br />
" " 'J ! 8<br />
6 /<br />
#<br />
Use cases &<br />
system requirements<br />
! " # !<br />
"$ !<br />
" #<br />
&' # # "<br />
WP1<br />
Architecture &<br />
interface specifications<br />
Project management<br />
Dissemination and<br />
exploitation<br />
To and from all WPs<br />
WP2 WP3 WP4 WP5 WP6<br />
WP7<br />
Prototype<br />
development<br />
To and from all WPs<br />
Field trials<br />
Validation<br />
WP Manager<br />
WP Participants<br />
% # !<br />
'#%$#%'$$5
) 46 8 " 9 2 6<br />
Chapter 3 - METHODOLOGY FOR THE DELIVERABLE<br />
3.1 Introduction<br />
) " 8 7 7 1 .4 I !6 66 J C
• 9 " 8<br />
• ).!<br />
) 46 8 " 9 2 6<br />
• ) 7 . 2 . . " /<br />
) 2 . " 8 ! "<br />
) ! B ! 7.6 7<br />
" 8 7 /<br />
) " 6 2 . 7 . $<br />
" 6 ! 8 "<br />
" ! 8/<br />
3.2.2 Content of the SP-level Deliverables<br />
) " *<br />
• 7.6 I " J<br />
• 6 " I 6 J<br />
• ) 7 . 2 . . " /<br />
3.3 The Viewpoint Approach of RM-ODP [1]<br />
1 "6 ! "6 B 8 7 8 " 1 .<br />
4 8 " " $ " 6 !<br />
/ !6 6<br />
7 7 8 " ! "<br />
7 /<br />
) ! !6 *<br />
% "<br />
6 6 8 "<br />
: 2 " "6 " 7<br />
8 7 ! 7<br />
2"6 " 9 "6 " 8 "<br />
Table 2 - GST Viewpoints<br />
3.4 The Unified Modelling Language (UML) [2]<br />
) ) 6 7 !6 78"<br />
: I :J " / ) : 6 7 ""<br />
B6 ) 6 "6 "<br />
"6 " I 7 ! J 6 86 "6 " /<br />
) ! : " *<br />
'#%$#%'$$5
% " 2 1<br />
6 3 " + 7<br />
) 46 8 " 9 2 6<br />
: 3 " I " 6 J<br />
2"6 " 3 "6 "<br />
F " I " 7 6 J<br />
. " I " 7 6 J<br />
6 8" "<br />
Table 3 - Principal UML Diagrams used in GST<br />
= 7 B " 66 "<br />
"" 8 " 6 : " "<br />
7 " " 6 I 7 !<br />
) 8 " ! " 9K 4 : ) J/<br />
3.5 Structure of this Document<br />
) B 6 6 8 " ! 7.6 8 7<br />
" 7. 8 " 6 I J 7<br />
7.6 /<br />
) " " ! *<br />
I J<br />
2 "<br />
2 3 "<br />
6<br />
2 6<br />
L 82 F "<br />
L 8: 8 3<br />
2 6<br />
: 8 6<br />
1 3 "6 3 "6 "<br />
3 "6 6<br />
= 6 8" "<br />
= 6<br />
Table 4 - Structure of this Document<br />
'#%$#%'$$5
3.6 Conventions<br />
) 46 8 " 9 2 6<br />
) 8! G )H G ) =4)H G1 M 21 H G 9::H G 9:: =4)H<br />
G 4 : H G 4 : =4)H G1 34 = H G 9KH G4 )24=9:H<br />
" 7 6 7 C,'D/<br />
) 6 " ! " 86 " *<br />
• 9 6 A " " 6 ! ) 7 66 /<br />
• 9 7 A 6 " 7 7 6<br />
4 I46 8 " ! 82 J " / ) 7<br />
! 6 6 *<br />
o 2 6 3 6 78"<br />
! . 8 B/ 8<br />
6" ! ! ! 8 6<br />
! 7 "7 7 6" /<br />
o 2 8 6 " " 4<br />
" ! / ) " B"6<br />
7 46 ) " " ! 7 4 )24=9:/<br />
Reference Implementation Development Tools<br />
Reference Implementation<br />
Protocol Binding<br />
Protocol and State Specification<br />
Hardware Requirements<br />
Additional APIs<br />
(e.g. vehicle)<br />
Figure 2 Workpackage 3 Deliverables<br />
3.7 Consistency with IP-level Deliverables<br />
9 8 " 2 . 7 7 8 6 78<br />
2 . 7 G) 3 % 3 H " / 2<br />
7 " . 7 7 " 7 8<br />
! 2 . 7 ! /<br />
GST Protocols<br />
Architecture<br />
GST In-vehicle Software<br />
Execution Environment<br />
'#%$#%'$$5
) 46 8 " 9 2 6<br />
) 2 . 7 7 *<br />
• :; );4 ;39 ;#;
Chapter 4 - SYSTEM OVERVIEW<br />
4.1 Introduction<br />
) 46 8 " 9 2 6<br />
46 8 " 6 8 6 7 8 " ) "<br />
I )J/ ) 7.6 ? "6 ! ""<br />
! 7 ) " G " H78<br />
) 7.6 /<br />
) ! 6 ! "6 !<br />
7 46 8 " /<br />
Payment and<br />
Billing<br />
Develop, Offer and Operate Services<br />
Service<br />
Deployment<br />
Service Centres<br />
Subscribe Authentication Client System<br />
Management<br />
Control Centre<br />
Service<br />
Usage<br />
Service<br />
Provisioning<br />
Figure 3 High Level Overview of Open Systems<br />
4.2 The Open Systems architecture and design<br />
End Users<br />
2 "6 B 2 ! 8 7 ""<br />
6 7 / 2 " 8 " .<br />
"6 6 ! 7 ! 7 7<br />
66 / ) 8E "6 6 " 78 6<br />
7 ! 6 " 7 "6 /<br />
) ) 46 8 " 7.6 6<br />
! 66 6 6 " 7<br />
"6 8 " / ) 8 " 7 "7 . ! !<br />
6 " 7 8 " 9 I 9J<br />
" 7 6 / 2 B 7 8 " ) " 46 8 "<br />
6 7 8 ! ! ) 7.6<br />
1 3 83 6 7 /<br />
9 46 8 " " 7 7 7 6 " 7<br />
6 " / ) " " 46 8 " 7.6 ! 7 * )<br />
6 ! 6 6 / 2 ! 6<br />
"6 " 78 .<br />
) " 7 "6 " ) 3 "6 8 " /<br />
'#%$#%'$$5 '$
) 46 8 " 9 2 6<br />
) . 78 6<br />
" / ) 7<br />
" 8 " 8 "/<br />
9 6 6 46<br />
8 " 3 3 / 2 ! 8 3 3 " 7<br />
! )/ 2 " 6 6 7 966<br />
. /<br />
) 66 966 ! "6 "<br />
6 8" 6 / 6 8" 966<br />
? 6 ! 8 6 86 8<br />
) 3 "6 3 3 / ! 8 7<br />
87 6 6 6 86 7 66 " /<br />
2 8 6 ! 6 8"<br />
966 " ) "6 3 3 /<br />
) " 78 " 966<br />
7 . / 4 " 7 7 3 3<br />
6 . 3 8 " ! 966 /<br />
9 3 3 6 8 8 "<br />
7 7 66 /<br />
3 " 78 3 "<br />
78 . . " 8 //<br />
4.3 Architecture Elements<br />
, ! ! 8 " 6 A<br />
6 A 8 7 46 8 " 7.6 /<br />
Figure 4 System Overview, Reference Points and Collaborations for the Open SystemsSub-<br />
Project<br />
'#%$#%'$$5 '<
) 46 8 " 9 2 6<br />
1 6 8 7 ! 7 "<br />
6 8 )/ 2 6 " 78"<br />
! 9K ) 7 "6 " 78 ) < /<br />
4.4 Short Description per Element<br />
) 46 8 " 7.6 78 , 6 6<br />
! ! 3 8 " "" ! ) "<br />
" 3 3 / ) 6 6<br />
! 3 8 " " 8 7 78 966<br />
6 "6 " /<br />
$ 0 ! ! ! % #<br />
! "$ ! ! # $ "<br />
# % ! # # !<br />
# "<br />
) 6 6 7<br />
! " 6 7 /<br />
9 B6 " 7 6 ) 7 (/<br />
8= " 8" 7 " !<br />
" " I $J<br />
'#%$#%'$$5 ''
) 46 8 " 9 2 6<br />
" " /<br />
2 " 6 ) 6 " " 7<br />
2 "/<br />
Table 5 - Definition of Terms Used when Presenting the System Overview<br />
'#%$#%'$$5 '#
) 46 8 " 9 2 6<br />
3 # 5 3 ) $ 5<br />
3 I3J = ) 3 7 .<br />
6 8 6 8<br />
966 / 2 F 8 "6 " IJ 66<br />
66 "" ! 966<br />
3 8 "/<br />
) " 3 3 8 " ) ) " 3 " "<br />
"6 6 78 46 8 " 966 1 "<br />
" /<br />
3 8 "<br />
"<br />
9<br />
9 ?<br />
3 3 ) 6 3 3 !<br />
" " 3 8 " !<br />
66 " " 6 /<br />
3 8 " 2 " 8 6 " /<br />
2 B ) 3<br />
8 " 7 ! B ! /<br />
3 3 ) "6 3 3 6 7<br />
? / 2 @ !<br />
/<br />
Table 6 - Entities for the Open SystemsSub-Project<br />
''%$#%'$$5 ',
#<br />
6 8"<br />
2 I .2J<br />
8 " "<br />
2 I .2J<br />
I .2J<br />
2<br />
2 I .2J<br />
= "<br />
2<br />
) 46 8 " 9 2 6<br />
6 7 # 0<br />
• Provisioning and Deployment<br />
• Protocol Definition<br />
• Provisioning and Deployment<br />
• Protocol Definition<br />
'#%$#%'$$5 '(
) 46 8 " 9 2 6<br />
2 6 2 ! 966<br />
4 : ) 3 "6 ! "<br />
6 8" 6 1 M 21 6 8" 6<br />
6 6<br />
2 8 9<br />
9 ?<br />
) ! " 6 6 6 78<br />
8 7. 8 "/<br />
= " 2 6 1 34 = ""<br />
7 ! = " )3 /<br />
Table 8 - Descriptions of the Work Items for the Open Systems Sub-project<br />
'#%$#%'$$5 '5
) 46 8 " 9 2 6<br />
91) ' . :4 239: 2<br />
''%$#%'$$5 '-
Chapter 5 - PROTOCOL DEFINITION<br />
) 46 8 " 9 2 6<br />
5.1 The OSI 7 Layer protocol model and the GST derived model<br />
"" 6 4 2 - : 8 " 6 "<br />
" ? 8 6 / 6<br />
8 / " 7 " 6 6 6<br />
78 / 6 6 7 "6<br />
F " .6 6 78 " /<br />
6 6 ) -. 8 " "6 ! 7 8 8 *<br />
6 8 6 8 / ) 6 8 8 6 !<br />
8 6 7 8<br />
8 66 8 " 86 / ) 6 8 6<br />
" /<br />
) ! 6 ! 7 ! ! /<br />
Figure 5 GST and OSI Protocol Layers <strong>com</strong>parison<br />
) ) 46 8 " 6 - 6 *<br />
• % . 6 78 2<br />
7 "6 " 78 ) 1 "6 966 !<br />
" " " I J 7 89 ! I 9 J C,#D/<br />
• % % A 6 78 2 7 "6 "<br />
78 966 ! 66 ""<br />
3 C,#D@ C,#D "" C,,D/<br />
• $ 0 0 ) A<br />
6 78 2 7 "6 " 78 966<br />
! "" 7 ! 3 3 8 " 7.<br />
/<br />
'#%$#%'$$5 '>
) 46 8 " 9 2 6<br />
• % 0 0 A 6 78 2 7<br />
"6 " 78 3 8 " 66 ! "68 6<br />
6 " /<br />
• 8 8 A 6 78 2 7 "6 "<br />
78 3 3 3 . "6 ""<br />
C,#DC,,DC,(D/<br />
• $ 0 % 2 ) A 6 78<br />
2 7 ! "6 " ) 83 6 C,(D/<br />
• # $ 3 . 6 78<br />
7 = " 2 6 "<br />
2 7 "6 " 78 966 "68 6 /<br />
) ! 6 6 6 6 6 *<br />
5.2 Identified Protocols<br />
) ! 7 6<br />
/ " 7 " 6/<br />
7 9 :<br />
% C(
0<br />
8<br />
8<br />
$ 0<br />
% 2 )<br />
# $<br />
3<br />
) 46 8 " 9 2 6<br />
7 9 :<br />
2 I5JCD 1 F<br />
)3 23 C(#DC(,DC((D 1 F<br />
)) C,>D 1 F I ))<br />
2 J<br />
9 C'#D 1 F<br />
9 :CDC''D 1 F<br />
9 :C
5.3.2 Transport Layer<br />
) 46 8 " 9 2 6<br />
66 " 8 I2 3$'/
) 46 8 " 9 2 6<br />
) "6 " 6 2 "68 ! 46<br />
7 9 I4 9J
5.7 Business to Business Protocols<br />
) 46 8 " 9 2 6<br />
) @ . .@ 8 6 ) B 6<br />
8 6 /<br />
) ) 3 " 3
) 46 8 " 9 2 6<br />
9 ) "6 = " 2 "6 2 "6 "<br />
! 6 *<br />
4 9 8 : 1 6 C
) 46 8 " 9 2 6<br />
'#%$#%'$$5 #(
) 46 8 " 9 2 6<br />
Figure 7 Main Protocol Stacks<br />
''%$#%'$$5 #5
) 46 8 " 9 2 6<br />
Chapter 6 - APPLICATION RUNTIME ENVIRONMENT<br />
6.1 Introduction<br />
2 3 8 " 7 6 66 6 78<br />
6 8 " 8<br />
66 B /<br />
) ! " "6 9 2 3 8 "<br />
66 "" 8 3 8 " *<br />
•<br />
• 6 I " J<br />
• " "<br />
• "" " "<br />
•<br />
" B 7<br />
Q ! 7 / 6 7 ) .<br />
B "6 ! "<br />
. 8" 7 /<br />
6.2 Use Case Diagram<br />
> ! 7 " 66 "/<br />
''%$#%'$$5 #-
ud Use Cases and collaborations<br />
UC-OS-0001<br />
Check Client<br />
System Status<br />
ClientSystemStatus<br />
RQ-OS-0066<br />
automatically<br />
choosing the<br />
connection<br />
depend<br />
UC-OS-0024<br />
Application<br />
«realize»<br />
<strong>Download</strong>(from WI<br />
deployment and<br />
prov isioning)<br />
depend<br />
ConnectionManager<br />
This interface will<br />
allow the dynamic<br />
registration of new<br />
protocol handlers.<br />
Interface<br />
for registering<br />
new transport<br />
protocols<br />
«extend»<br />
Connection<br />
interface to<br />
applications<br />
«realize»<br />
«extend»<br />
This module will take<br />
care of choosing which<br />
connection is to be<br />
used if there are<br />
several available.<br />
) 46 8 " 9 2 6<br />
depend<br />
«include»<br />
depend<br />
UC-EFCD-0005<br />
Message and<br />
Communication<br />
Handling<br />
UC-OS-0023<br />
Serv ice<br />
Consumption<br />
UC-OS-0057<br />
Monitoring<br />
Monitoring_and_testing<br />
UC-OS-0058<br />
Testing<br />
Logging<br />
Positioning<br />
'#%$#%'$$5 #>
6.3 Basic OSGi functionality<br />
6.3.1 Core OSGi framework<br />
) 46 8 " 9 2 6<br />
2 6 )<br />
4 7 / ) 7 7 6 7 8 66<br />
3 8 " . 78 "" 6 "" 4<br />
"" " ! ) 9 2 8 ! 7<br />
7 ! 66 ) 3 8 "/<br />
) 4 6 6 " !<br />
! 66 8 " " 8 "<br />
7 ! 66 6 8 " "<br />
8 " " ! 8/<br />
2 " ! ! 66 8 " 8 6<br />
"" 6 7 ! 8! / ) " !<br />
6 6" 6 " "6 .7 !<br />
R 7 8 ! " ! /<br />
6.3.2 What is an OSGi service<br />
9 4 . "6 7 /<br />
" 87 " " ! / 9 !<br />
6 *<br />
•<br />
• "6 " IJ<br />
) 6 8 I/ / ! J/ 4<br />
6 7<br />
6 "6 " /<br />
9 " 6 "6 " 6 78 /<br />
B"6 " 8 " 8/<br />
9 6 7 "6 / 2<br />
6 6 6 " !<br />
1 8! 7 7<br />
6 6 /<br />
) 8 " 6 8 " /<br />
6.3.3 What is a bundle<br />
) 7 7 " ! "6 " " 7 6 /<br />
"6 " 6 7 / @ " 87 "<br />
" ! / 9 7 91 *<br />
'#%$#%'$$5 #&
) 46 8 " 9 2 6<br />
• "6 " ? " / )<br />
" 87 ! ) : 6<br />
I J /<br />
• " 7 91 6<br />
" 7 7 / ) 6 86 "<br />
" ! 8 7 /<br />
• 6 7 7 / )<br />
B 6 7 / 2 ! " 6<br />
! 78 " ! 7 /<br />
• 6 " 4 2.4 ) 8 91<br />
7 / ) " 7 7 /<br />
8 7 6 5 *<br />
• 2= )9:: ///////// 7 7 8 /<br />
• 1 4: //////// % 7<br />
7 / ) 7 8 7<br />
66 /<br />
• )91)2= ////////// 7 7 @ 9 /<br />
" 7 8 /<br />
• )4 2= ////////// 7 7 66 @ 9 / 6<br />
" 7 8 /<br />
• 93)2 /////////////// 7 8 /<br />
• =2= )9:: //// 7 7 / 2 "<br />
/<br />
'#%$#%'$$5 ,$
6.3.4 Importing and exporting packages<br />
) 46 8 " 9 2 6<br />
@ 4 " ! 6 / 7 B6 8<br />
6 /<br />
9 7 6 7 B6 .<br />
" 2"6 .<br />
" /<br />
) 2"6 . " ! 7 F 6<br />
7 B6 78 7 4 " /<br />
) 8 F 6 " " 7 7 E 2"6 .<br />
" 6 7 B 6 6 " 7 ! *<br />
/S<br />
7 "6 6 " 7<br />
6 87 ! ! 7 / 9 6 8 7 78<br />
" ! I/ / 7 B6 6 7 7 J 7<br />
6 7 7 /<br />
6.3.5 Log Service<br />
96 " 7 " ! 8 4 6<br />
7 8 ! " 4 66 /<br />
4 : /<br />
) : 8 " ! / 2<br />
6 6 " 4 " / 2 8<br />
! 6 I J A / / / /:<br />
/ / / /: 1 /<br />
9 8 " " 6 " "<br />
6 " " /<br />
) : 6 7 8 ! " / :<br />
6 F ! . 6 8/ " 8<br />
" " F 7 /<br />
: " F ! F 6<br />
" " 6 /<br />
2 4 " ! "6 7 6 "" 8<br />
: 8 7 / ) 8 6 78: 1 /<br />
) : ! 6 *<br />
T 6 8 " % B 6 7 /<br />
T 668 6 8 " 7 /<br />
) 7 : /<br />
T 6 8 ! F /<br />
'#%$#%'$$5 ,<
) 46 8 " 9 2 6<br />
@8 7 : 7 " " ! 8 66<br />
" : 7 78 :<br />
" / 9 : 7 8" 7 6 " 8<br />
6 /<br />
; ; $ ; ;1 $<br />
Type: public abstract «interface» Interface<br />
Package: Logging<br />
org.osgi.service.log.LogService Interfaces<br />
Method Type Notes<br />
log (int,<br />
String)<br />
log (int,<br />
String,<br />
Throwabl<br />
e)<br />
log<br />
(ServiceR<br />
eference,<br />
int,<br />
String)<br />
log<br />
(ServiceR<br />
eference,<br />
int,<br />
String,<br />
Throwabl<br />
e)<br />
public: void param: level [ int - in ]<br />
param: message [ String - in ]<br />
public: void param: level [ int - in ]<br />
param: message [ String - in ]<br />
param: exc [ Throwable - in ]<br />
public: void param: service [ ServiceReference - in ]<br />
param: level [ int - in ]<br />
param: message [ String - in ]<br />
public: void param: service [ ServiceReference - in ]<br />
param: level [ int - in ]<br />
param: message [ String - in ]<br />
param: exc [ Throwable - in ]<br />
6.3.6 Configuration Service and Metatype<br />
3 6 7<br />
7 ! 8 4 " /<br />
) 3 9 " 6 " *<br />
US9 ! /6 6 6 8<br />
S2"6 " 8 /<br />
) 8 7 3 ) /<br />
'#%$#%'$$5 ,'
) 46 8 " 9 2 6<br />
3 9 " " !<br />
6/ 3 8 7 8% 6 / L 8<br />
! 8 7 86 *<br />
86 V W 2 W : W W 7 W @8 W W @ 2 W<br />
@ " W3 W@ W W 8<br />
6 " V W W W W78 W7 W 7 W<br />
8 V 6 " XCDEW 86 XCDE<br />
V 86<br />
) 6 8I2 J 3 ) 8<br />
6 / 9 2 F 6<br />
" 6 " ! / 2 7 66<br />
" 2 7 /<br />
) 3 9 " " 1 8 ! !<br />
3 ) 2 /<br />
/<br />
3 9 " "<br />
6 6 IJ " 6<br />
@8 3 8 G !H 8<br />
! 6 8 6 " 7 6<br />
B6 86 / ) 6 "<br />
6 . " 86 /<br />
) 86 6 ! 7 6 7<br />
7 86 "6 7 " . " /<br />
"7 ! 3 86 6 " 7<br />
8 " 7 ? " 6<br />
86 8/<br />
9 " *<br />
" ) 4 3<br />
) 2 ) ) 7 F 8 6<br />
3 8 "/ ) " 6 )<br />
4 : 6 " 6 B 2 /<br />
'#%$#%'$$5 ,#
6.4 Connection Manager<br />
6.4.1 Introduction<br />
) 46 8 " 9 2 6<br />
) " " "6 B F " " "<br />
"" 3 8 "/ ) 8"<br />
7 7 " 7 ! ! 6 "<br />
M 6<br />
8 ! 6 / " " " 6 7<br />
6 M 7 ! ! 7 Q " " 8<br />
" 7 ! 7 8 " ! "6 7<br />
/<br />
9 " " 66 7 " "6 B7<br />
" 6 7 /<br />
) F " 3 7 "<br />
*<br />
cd ConnectionManager<br />
«interface»<br />
org.osgi.service.io.ConnectorService<br />
+ open(String) : javax.microedition.io.Connection<br />
+ open(int, String) : javax.microedition.io.Connection<br />
+ open(boolean, int, String) : javax.microedition.io.Connection<br />
+ openDataInputStream(String) : java.io.DataInputStream<br />
+ openDataOutputStream(String) : java.io.DataOutputStream<br />
+ openInputStream(String) : java.io.InputStream<br />
+ openOutputStream(String) : java.io.OutputStream<br />
1<br />
uses<br />
1..*<br />
«interface»<br />
org.osgi.service.io.ConnectionFactory<br />
+ close() : void<br />
+ getScheme() : String<br />
+ createConnection(string, int, boolean, Dictionary) : javax.microedition.io.Connection<br />
+ open() : void<br />
) 46 8 " 9 2 6<br />
1<br />
«interface»<br />
javax.microedition.io.Connection<br />
+ close() : void<br />
OSGi<br />
Framework<br />
Application<br />
'#%$#%'$$5 ,(
) 46 8 " 9 2 6<br />
# ) $ 5<br />
B/" / /3 9 B /<br />
2 B 78<br />
63<br />
"3<br />
2 6 3<br />
4 6 3<br />
/ / / /3 8 9 B<br />
' 3 4<br />
1 # 3 8<br />
/ / / /3 B " 4 1#<br />
' 3 4<br />
1 # 3 8<br />
Table 10 - Descriptions of Interfaces for Connection Manager<br />
6.4.2.2 Communication Management from the application point of view<br />
) ! F " ! 6 ! 66 6<br />
*<br />
''%$#%'$$5 ,5
sd An application geting a connection<br />
) 46 8 " 9 2 6<br />
Application OSGi Framework «interface»<br />
ConnectionFactory<br />
org.osgi.service.io.ConnectorService<br />
Application<br />
getService(Connector service)<br />
Connector service object<br />
open(String)<br />
searches for a suitable<br />
ConnectionFactory in<br />
the service registry<br />
returns the<br />
ConnectionFactory<br />
returns a Connection object<br />
createConnection(String uri,<br />
int mode, boolean timeout)<br />
Figure 10 An application getting a connection<br />
Application<br />
implementing an<br />
org.osgi.service.io.ConnectionFactory<br />
e.g. for handling the<br />
"HTTP" scheme<br />
As you can see, the getting of the Connection is done in two steps: first the application<br />
acquires the Connector Service from the Service Registry, and then asks the<br />
Connector Service for a Connection object. Once a Connection object is obtained, its<br />
methods will be used for sending messages during the lifecycle of the application.<br />
6.4.2.3 Connection manager from the Scheme Handler point of view<br />
) ! F " ! ! 3 8 66<br />
6 ! " I6 J 7 8 " 8 3<br />
8 " ! /<br />
'#%$#%'$$5 ,-
sd Registering new transport protocols<br />
ConnectionFactory<br />
Application<br />
register the<br />
ConnectionFactory in the<br />
Application<br />
Service Registry<br />
implementing an<br />
org.osgi.service.io.ConnectionFactory<br />
e.g. for handling the<br />
"HTTP" scheme<br />
6.4.2.4 SOAP Connection Factory<br />
) 46 8 " 9 2 6<br />
OSGi Framework<br />
Figure 11 Registering new transport protocols<br />
'#%$#%'$$5 ,>
cd ConnectionManager<br />
«interface»<br />
org.osgi.service.io.ConnectorService<br />
+ open(String) : Connection<br />
+ open(int, String) : Connection<br />
+ open(boolean, int, String) : Connection<br />
+ openDataInputStream(String) : java.io.DataInputStream<br />
+ openDataOutputStream(String) : java.io.DataOutputStream<br />
+ openInputStream(String) : java.io.InputStream<br />
+ openOutputStream(String) : java.io.OutputStream<br />
«interface»<br />
org.osgi.service.io.ConnectionFactory<br />
+ close() : void<br />
+ getScheme() : String<br />
+ createConnection(string, int, boolean, Dictionary) : Connection<br />
+ open() : void<br />
«interface»<br />
SOAPConnectionFactory<br />
1<br />
1<br />
«interface»<br />
AdapterManager<br />
ConnectionPolicy<br />
«realize»<br />
1<br />
1<br />
uses<br />
1..*<br />
«interface»<br />
SOAPConnection<br />
+ close() : void<br />
0..*<br />
GPRS Adapter<br />
IEEE 802.11<br />
Adapter<br />
) 46 8 " 9 2 6<br />
«interface»<br />
javax.microedition.io.Connection<br />
+ close() : void<br />
OSGi<br />
Framework<br />
Application<br />
'#%$#%'$$5 ,&
) 46 8 " 9 2 6<br />
send messages, block low-priority messages if a high-priority message has to be sent,<br />
and request connecting over a fixed network adapter as opposed to the automatic<br />
connecting that the Operating system does when you simply open a socket.<br />
The process of sending a SOAP message is shown on the following diagram:<br />
sd SendingSOAPMessage<br />
Application OSGi Framework «interface»<br />
«interface»<br />
«interface» «interface»<br />
open(URL with soap header)<br />
ConnectorService<br />
searches for a suitable ConnectionFactory in the service registry<br />
returns the SOAPConnectionFactory<br />
return the SOAPConnection object<br />
SOAPConnectionFactory SOAPConnection<br />
createConnection("soap://priority=2")<br />
create<br />
createRequestObject(String targetObjectURI, String methodName, Vector<br />
params,Properties headerAttributes, String encodingStyle, int priority)<br />
return SOAP request object<br />
invoke(URL soapServerURL, String SOAPActionURI)<br />
return SOAPResponse<br />
6.4.3 API Specifications<br />
create<br />
SOAPRequest<br />
'#%$#%'$$5 ($
&$ 4; ; ;0<br />
Type: public abstract «interface» Interface<br />
Package: ConnectionManager<br />
) 46 8 " 9 2 6<br />
An existing standard interface.<br />
It is extended by HttpConnection, DatagramConnection, InputConnection,<br />
OutputConnection etc.<br />
javax.microedition.io.Connection Interfaces<br />
Method Type Notes<br />
close () public: void<br />
; ; $ ; ;0 '<br />
Type: public abstract «interface» Interface<br />
Package: ConnectionManager<br />
An existing interface<br />
See J2ME Connector and OSGi Release 3 ConnectionFactory<br />
org.osgi.service.io.ConnectionFactory Interfaces<br />
Method Type Notes<br />
close () public: void<br />
getScheme () public: String<br />
createConnection<br />
(string, int, boolean,<br />
Dictionary)<br />
public:<br />
javax.microedition.io<br />
.Connection<br />
param: uri [ string - in ]<br />
param: mode [ int - in ]<br />
param: timeouts [ boolean - in ]<br />
param: options [ Dictionary - in ]<br />
open () public: void MUST be called by the implementation of the<br />
Connector service before any create-<br />
Connection method is called. It MAY be used<br />
to create resources that are<br />
need for the correct operation of this package.<br />
; ; $ ; ;0 $<br />
Type: public abstract «interface» Interface<br />
Package: ConnectionManager<br />
Existing interface from OSGi R3<br />
'#%$#%'$$5 (<
org.osgi.service.io.ConnectorService Interfaces<br />
Method Type Notes<br />
open (String) public:<br />
javax.microed<br />
ition.io.Conne<br />
ction<br />
open (int, String) public:<br />
javax.microed<br />
ition.io.Conne<br />
ction<br />
open (boolean, int,<br />
String)<br />
openDataInputStrea<br />
m (String)<br />
openDataOutputStre<br />
am (String)<br />
openInputStream<br />
(String)<br />
openOutputStream<br />
(String)<br />
0 '<br />
public:<br />
javax.microed<br />
ition.io.Conne<br />
ction<br />
public:<br />
java.io.DataI<br />
nputStream<br />
public:<br />
java.io.DataO<br />
utputStream<br />
public:<br />
java.io.InputS<br />
tream<br />
public:<br />
java.io.Output<br />
Stream<br />
Type: public abstract «interface» Interface<br />
Implements: ConnectionFactory.<br />
Package: soap<br />
) 46 8 " 9 2 6<br />
param: address [ String - in ]<br />
param: mode [ int - in ]<br />
READ, WRITE, READ_WRITE<br />
param: address [ String - in ]<br />
The address of the destination, in URI format<br />
param: timeout [ boolean - in ]<br />
param: mode [ int - in ]<br />
READ, WRITE, READ_WRITE<br />
param: address [ String - in ]<br />
The address of the connection, in URI format<br />
param: address [ String - in ]<br />
The address of the destination, in URI format.<br />
param: address [ String - in ]<br />
The address of the destination, in URI format.<br />
param: address [ String - in ]<br />
The address of the destination, in URI format.<br />
param: address [ String - in ]<br />
The address of the destination, in URI format.<br />
'#%$#%'$$5 ('
) 46 8 " 9 2 6<br />
Attribute Type Notes<br />
public static : The name of the priority property in the<br />
PRIORITY_PROP_NA String SOAPRequest headers.<br />
ME<br />
Initial Value: "priority";<br />
HIGH_PRIORITY public static :<br />
int<br />
Initial Value: 3;<br />
public static : Initial Value: 2;<br />
NORMAL_PRIORITY int<br />
LOW_PRIORITY public static :<br />
int<br />
Initial Value: 1;<br />
SOAP_SCHEME public static : The value of the service property IO_SCHEME It<br />
String provides the scheme for which the<br />
SOAPConnectionFactory is able to create<br />
Connection objects.<br />
Initial Value: "soap";<br />
An extension of the Connection Factory defined in OSGi R3 for getting connections<br />
over the SOAP protocol. The SOAP Connection Factory adds prioritization and<br />
connection management on top of a SOAP stack.<br />
SOAPConnectionFactory Attributes<br />
0<br />
Type: public abstract «interface» Interface<br />
Extends: Connection.<br />
Package: soap<br />
This interface provides methods for creating the objects needed for a <strong>com</strong>munication<br />
over the SOAP protocol.<br />
SOAPConnection Interfaces<br />
Method Type Notes<br />
createRequestObject<br />
()<br />
public:<br />
SOAPRequest<br />
Creates an empty request object that can later be filled<br />
in by using its set methods<br />
'#%$#%'$$5 (#
Method Type Notes<br />
createRequestObject<br />
(String, String,<br />
Vector, Properties,<br />
String)<br />
createParameterObje<br />
ct ()<br />
createParameterObje<br />
ct (String, Class,<br />
Object, String)<br />
9<br />
public:<br />
SOAPRequest<br />
public:<br />
SOAPParame<br />
ter<br />
public:<br />
SOAPParame<br />
ter<br />
) 46 8 " 9 2 6<br />
param: targetObjectURI [ String - in ]<br />
The object ID of the service being invoked<br />
param: methodName [ String - in ]<br />
The name of the method to invoke on the service<br />
param: params [ Vector - in ]<br />
The parameters of the method as a Vector of<br />
SOAPParameter objects<br />
param: headerAttributes [ Properties - in ]<br />
The attributes that are part of the SOAP header (e.g.<br />
authentication headers)<br />
param: encodingStyleURI [ String - in ]<br />
The encoding of the parameters<br />
Creates a request object that can be used to send a<br />
request over SOAP.<br />
@return A SOAP request object that is used to invoke<br />
the request<br />
Type: public abstract «interface» Interface<br />
Package: soap<br />
Creates an empty parameter object that can later be<br />
filled in by using its set methods<br />
param: name [ String - in ]<br />
The key of the parameter<br />
param: type [ Class - in ]<br />
The Java type of the parameter<br />
param: value [ Object - in ]<br />
The value of the parameter<br />
param: encodingStyleURI [ String - in ]<br />
The encoding of the value<br />
A request interface that can be used to send a request over SOAP.<br />
Creates a parameter object that can be provided in the<br />
createRequestObject method<br />
SOAPRequest Interfaces<br />
Method Type Notes<br />
getTargetObjectURI<br />
()<br />
public: String<br />
setTargetObjectURI<br />
(String)<br />
public: void param: targetObjectURI [ String - in ]<br />
getMethodName () public: String<br />
setMethodName<br />
(String)<br />
public: void param: methodName [ String - in ]<br />
'#%$#%'$$5 (,
) 46 8 " 9 2 6<br />
Method Type Notes<br />
getParams () public: Vector<br />
setParams (Vector) public: void param: params [ Vector - in ]<br />
getHeaderAttributes public:<br />
()<br />
Properties<br />
setHeaderAttributes<br />
(Properties)<br />
public: void param: attr [ Properties - in ]<br />
getEncodingStyle () public: String<br />
setEncodingStyle<br />
(String)<br />
public: void param: encodingStyle [ String - in ]<br />
invoke (URL, String) public: param: url [ URL - in ]<br />
SOAPRespons The URL of the remote server<br />
e<br />
param: SOAPActionURI [ String - in ]<br />
The action to be called at the specified URL<br />
Type: public abstract «interface» Interface<br />
Package: soap<br />
Invokes the request. If there were problems<br />
connecting to the remote server or if the<br />
ConnectionManager decided to abort the request due<br />
to low priority this method will throw a<br />
SOAPException. If there was a problem while<br />
invoking the method on the remote server this method<br />
will return a fault encapsulated in a SOAPResponse<br />
object.<br />
@return A response object that encapsulates either the<br />
return value of the remote method or a fault<br />
representing a remote error<br />
throws = 'SOAPException'<br />
An interface representing a parameter for a method invocation.<br />
SOAPParameter Interfaces<br />
Method Type Notes<br />
setName (String) public: void param: name [ String - in ]<br />
getName () public: String<br />
setType (Class) public: void param: type [ Class - in ]<br />
getType () public: Class<br />
setValue (Object) public: void param: value [ Object - in ]<br />
getValue () public: Object<br />
'#%$#%'$$5 ((
) 46 8 " 9 2 6<br />
Method Type Notes<br />
setEncodingStyleURI<br />
(String)<br />
public: void param: encodingStyleURI [ String - in ]<br />
public: String<br />
getEncodingStyleUR<br />
I ()<br />
34<br />
Type: public Class<br />
Implements: Exception.<br />
Package: soap<br />
An exception thrown by the invoke method of the SOAPRequest to indicate a<br />
connection error.<br />
SOAPException Attributes<br />
Attribute Type Notes<br />
embeddedThr private :<br />
Throwable<br />
SOAPException Methods<br />
Method Type Notes<br />
SOAPException () public:<br />
SOAPException public: param: reason [ String - in ]<br />
(String)<br />
SOAPException<br />
(String, Throwable)<br />
public: param: reason [ String - in ]<br />
param: cause [ Throwable - in ]<br />
SOAPException<br />
(Throwable)<br />
public: param: cause [ Throwable - in ]<br />
getCause () public:<br />
Throwable<br />
getMessage () public: String<br />
34<br />
Type: public Class<br />
Extends: SOAPException.<br />
Status: Proposed. Version 1.0. Phase 1.0.<br />
Package: soap<br />
9 B 6 ! 78 " 49 1 F<br />
" F I ! 6 8<br />
7 .6 8" /J/<br />
'#%$#%'$$5 (5
'<br />
Type: public abstract «interface» Interface<br />
Package: soap<br />
) 46 8 " 9 2 6<br />
A fault object represents an error in the remote invocation of the Web service method.<br />
SOAPFaultMessage Interfaces<br />
Method Type Notes<br />
getFaultCode () public: String Returns the fault code of the fault (the possible fault<br />
codes are defined in the SOAP specification).<br />
getFaultString () public: String A user-friendly readable string describing the fault.<br />
Type: public abstract «interface» Interface<br />
Package: soap<br />
An interface representing the remote answer of a request invocation. It contains either<br />
the return value of the remote method or a fault indicating an error during the remote<br />
invocation.<br />
SOAPResponse Interfaces<br />
Method Type Notes<br />
getReturnValue () public: The return value of the remote method or null if the<br />
SOAPParamet<br />
er<br />
response encapsulates a fault.<br />
faultReturned () public:<br />
boolean<br />
True if the response encapsulates a fault.<br />
getFault () public: Returns a fault object if the response encapsulates a fault<br />
SOAPFaultMe<br />
ssage<br />
or null if not.<br />
Type: public abstract «interface» Interface<br />
Package: adapter<br />
Represents a management interface for the native network adapters. MAY be used by<br />
the ConnectionManager to check the connectivity and to connect to the network using<br />
a specific network adapter as opposed to automatically using the default one by the<br />
Operating System when a socket is opened by the JVM.<br />
AdapterManager Interfaces<br />
Method Type Notes<br />
'#%$#%'$$5 (-
) 46 8 " 9 2 6<br />
Method Type Notes<br />
connect (String) public: void param: adapterType [ String - in ]<br />
connect () public: void<br />
disconnect () public: void<br />
isConnected () public:<br />
boolean<br />
listAdapterTypes () public:<br />
Enumeration<br />
connectedAdapterTy<br />
pe ()<br />
0 $ 3$<br />
public: String<br />
throws Exception<br />
throws Exception<br />
throws Exception<br />
Type: public abstract «interface» Interface<br />
Package: adapter<br />
An event indicating the presence or absence of connectivity.<br />
ConnectivityEvent Attributes<br />
Attribute Type Notes<br />
CONNECTED public static :<br />
int<br />
Initial Value: 0;<br />
DISCONNECTED public static :<br />
int<br />
Initial Value: 1;<br />
ConnectivityEvent Interfaces<br />
Method Type Notes<br />
getEventType () public: int<br />
getAdapterType () public: String<br />
0 $ 1<br />
Type: public abstract «interface» Interface<br />
Package: adapter<br />
A listener for connectivity.<br />
ConnectivityListener Interfaces<br />
'#%$#%'$$5 (>
) 46 8 " 9 2 6<br />
Method Type Notes<br />
connected<br />
(ConnectivityEvent)<br />
public: void param: event [ ConnectivityEvent - in ]<br />
6.5 Positioning<br />
6.5.1 Introduction<br />
9 "" 6 6<br />
"" 7 ! 66 6 78 6<br />
/ ) ! "" A<br />
B"6 7 ! 3 66 Q7 !<br />
8 " Y 7 G 66 Q7 ! 3 66 !<br />
! 8 ! 83 66 /<br />
) 8 6 6 ! ! 8<br />
6 6 66 /<br />
) 7 "6 7 ! 7<br />
8 " I J 7 6 6 " /<br />
6.5.2 Interfaces<br />
) 7 / 9 66 9K<br />
F 6 9K<br />
78 "6 " : 4<br />
1 8/<br />
cd Positioning<br />
«interface»<br />
org.gstproject.os.position.PositionService<br />
+ getPosition() : org.osgi.util.position.Position<br />
provides<br />
«interface»<br />
org.osgi.util.position.Position<br />
provides<br />
Figure 14 Class Diagram for Positioning<br />
«interface»<br />
org.gstproject.os.position.PositionListener<br />
+ positionChanged(org.osgi.position.Position) : void<br />
9 B6 " 7 ) 7
) 46 8 " 9 2 6<br />
2 = " " 7 " !<br />
" " /<br />
2 6 ) 6 " " 7<br />
/<br />
2 . O ) INJ " 6 "<br />
G H I "" 7.6 J 2 .<br />
I C#D . . C,DJ/<br />
3 "" B6 8 ! ! 7<br />
7 /<br />
'#%$#%'$$5 5$ , 8 " I 8 "<br />
,J/<br />
! 4 2 6 !<br />
7 7 7 / ) 4 6 4<br />
7 / " 87 8 ) !<br />
7 ) ! 66 /<br />
= E " 8<br />
/ 2 7 7<br />
8<br />
4
) 46 8 " 9 2 6<br />
76 ) ! A / / 6 83 3<br />
/<br />
) 86 " 7 "6 /<br />
) ! " 7 7 6 I " "6<br />
J ! ! 8 7<br />
8 "6 /<br />
: 6 / 1 7<br />
! ! " ! *<br />
V I % 2J S$<br />
3 8 ! !<br />
8 "/ ) 66 "6 B 8 6 7 6<br />
8 ? F 8! 8/ 9<br />
2 8 " / / 8 /<br />
@ ; & ; ; ; 1<br />
Type: public abstract «interface» Interface<br />
Package: Positioning<br />
Listener for position change events.<br />
The listener MUST use the whiteboard model for registration - it MUST be registered<br />
as a service in the OSGi service registry<br />
Positioning::org.gstproject.os.position.PositionListener Interfaces<br />
Method Type Notes<br />
positionChanged<br />
(org.osgi.position.P<br />
osition)<br />
public: void param: newPosition [ org.osgi.position.Position - in ]<br />
@ ; & ; ; ; $<br />
Type: public abstract «interface» Interface<br />
Package: Positioning<br />
Position service interface registered in the OSGi service registry.<br />
Positioning::org.gstproject.os.position.PositionService Interfaces<br />
Method Type Notes<br />
getPosition () public:<br />
org.osgi.util.p<br />
osition.Positi<br />
on<br />
'#%$#%'$$5 5<
@ ; ; ; ;<br />
Type: public abstract «interface» Interface<br />
Package: Positioning<br />
Existing OSGi interface - see OSGi R3<br />
) 46 8 " 9 2 6<br />
It MUST hold an exact, unique location, based on the WGS84 System (World<br />
Geodetic System 1984).<br />
Positioning::org.gstproject.os.position.Position Interfaces<br />
Method Type Notes<br />
getAltitude() public:<br />
org.osgi.util.<br />
Measurement<br />
Returns the altitude of this position in meters.<br />
getLatitude () public:<br />
org.osgi.util.<br />
Measurement<br />
Returns the latitude of this position in radians.<br />
getLongitude () public:<br />
org.osgi.util.<br />
Measurement<br />
Returns the longitude of this position in radians.<br />
getSpeed () public: Returns the ground speed of this position in meters<br />
org.osgi.util.<br />
Measurement<br />
per second.<br />
getTrack () public: Returns the track of this position in radians as a<br />
org.osgi.util.<br />
Measurement<br />
<strong>com</strong>pass heading.<br />
6.6 Event mechanisms<br />
6.6.1 Introduction<br />
2 8 " " 8 " " 8 6 7<br />
78 I 66 7 //J/ ) 7<br />
7 8 " " ) 8 "/<br />
) " 86 " " ) 78 *<br />
• " " " A 2%4 /<br />
• " " 3 3<br />
• " " 3<br />
• B 7 ! 66 3 8 "<br />
6.6.2 Events <strong>com</strong>ing from the vehicle environment<br />
2 " " 6 %<br />
" 6 I 2%4 " J /<br />
'#%$#%'$$5 5'
6.6.3 Events <strong>com</strong>ing from the Control Centre<br />
) 46 8 " 9 2 6<br />
8 : 4 9 ! 7 " " 3 8 " 78<br />
3 3 " " 6 4 9 6<br />
4 " ) 6 /<br />
6.6.4 Events <strong>com</strong>ing from a Service Centre<br />
) " " 8 6 966<br />
"" 6 "" ! 3 /<br />
6 7 " 66 "<br />
"" 66 4 ! 7 "<br />
7 B 6 6 /<br />
6.6.5 Events exchanged between service applications in the Client System<br />
2 "" B 7 ! 66 1 8<br />
! 4 ! 7 " 7 7 !/<br />
) ! 7 6 4 " ! E 8<br />
"6 " 6 8 F 78 6 / 2<br />
" !<br />
! 7 6 " ! 4<br />
" ! / 7<br />
) 8/<br />
1 " 78 ! " ! / )<br />
" 7 ! 7 6 8 "<br />
"6 " / ) .7 6 87 !<br />
78 " ! F "<br />
7 /<br />
'#%$#%'$$5 5#
) 46 8 " 9 2 6<br />
Chapter 7 - INTERFACE TO VEHICLE SENSORS<br />
7.1 Introduction<br />
) 6 " 8 7 ! " 6 8<br />
66 ! ! " 2=<br />
6 "6 6 / ) 9 2 !<br />
7 ! 66 66 6 F 8 6 7<br />
! 66 3 .3 /<br />
2 6 ! !*<br />
) 46 8 " 9 2 6<br />
4 ).7 " 8 7 39=.7 "<br />
! " " 39= 4 ) 3<br />
4 ).39= ! 8/ ) B"6 6 8<br />
/<br />
9 " " ! 78 * 2Z 6 6 8/<br />
6 7 " ? " 6 7<br />
"" " ! " 86<br />
6 8 66 7 6<br />
66 / " 7<br />
7 " "" " 7 8 !<br />
F 8" " 7 66 ! 7<br />
66 6 7 " /<br />
9 " 66 66 8 " 8 / / .<br />
7 6 6 " 3 8 "/ )<br />
6 " " 8 " 7 /<br />
8 " 7 7 " 8 / / " 7<br />
78 4 9 6 ! ! 7 ) /<br />
) ! ! ) 3 3 I33J I J<br />
" " 7 33 " "<br />
/ / 78 " / ) " !<br />
6 4 9 8 ! "<br />
) 66 3 1 F 8 "/<br />
7.3 High-Level requirements<br />
) ! F " " 7 *<br />
3
) 46 8 " 9 2 6<br />
3
) 46 8 " 9 2 6<br />
• 1 % $ @ ! "6<br />
" 7 " 7<br />
" 66<br />
7.4.2 Use Cases<br />
• 3 @2 6 7 6 7 8<br />
" " .<br />
! /<br />
@<br />
1 " : 3<br />
8 3$ ' "@<br />
) F " 6 12/ 2<br />
" 6 /<br />
$ 3$ "<br />
) F " 6 12/ )<br />
B / 9 " /<br />
)<br />
) " 6 " 66 6<br />
/ ) " 7 7 9 " /<br />
• 3 % @ " / 6<br />
" " !<br />
! ! 86 ! 7 6 .7 6<br />
"6 /<br />
@<br />
1 " : 3<br />
8 3$ ' "@<br />
) F " 6 12/ 2<br />
6 /<br />
$ 3$ "<br />
) F " 6 12/ )<br />
B / 9 " /<br />
)<br />
) " 6 " 66 6<br />
/<br />
• 9 3 % # @ ) "<br />
: 3<br />
@<br />
8 3$ ' "@<br />
'#%$#%'$$5 5-
) 46 8 " 9 2 6<br />
) F " 6 12/ 2<br />
/<br />
$ 3$ "<br />
) F " 6 12/ )<br />
B / 9 " /<br />
)<br />
) " 6 " 66 6<br />
/ ) " 7 7 9 " /<br />
• 34 0 @3 G6 " H<br />
/ B"6 ) "6 93 @ 3 "6 /<br />
: 3<br />
@<br />
8 3$ ' "@<br />
) F " 6 12/ 2<br />
"" 7 B "" 66 6 /<br />
$ 3$ ",<br />
) F " 6 12/ )<br />
B / 9 " /<br />
$ 3$ "*<br />
) F " 6 12/ )<br />
B 7 "" B 8 7<br />
! 6 " / 9 " /<br />
)<br />
) " 6 " 66 6<br />
/ ) " ! 66 "" 6 " /<br />
• 3 @9 . "6 / / 6<br />
8 "/ 9 ! "6 ) !<br />
" " 7<br />
66 " / ) ! "6 7<br />
! 78 ) 6 6 /<br />
@<br />
: 2 " /<br />
8 3$ ' "@<br />
: " 6 7 8 " 7<br />
6 12/ ) 9 " 6 7 6 !<br />
" / ) 6 " 7 I ! " 6 G !<br />
H /J<br />
$ 3$ "<br />
'#%$#%'$$5 5>
) 46 8 " 9 2 6<br />
) ! " / ) 6 8<br />
78 " 6 "6 / 8 " !<br />
" 7 /<br />
=<br />
)<br />
7.5 Entities<br />
) ! ! " 7 7 / ) 6 #<br />
7 8 / ) 8 G H 6 "<br />
6 7 6 " ""<br />
! 6 7 / G 9 " H ? "<br />
6 66 6 " / ) G4<br />
" ) H 7 ! 4 1, 6 C4 D !<br />
6 ! 8 ? 4 9 "6 7<br />
/ 2"6 " 6 . 9 " " "<br />
7 4 ) / @ ) 66<br />
4 9 "6 " /<br />
'#%$#%'$$5 5&
1.5.1 Vehicle Admin <strong>com</strong>ponents<br />
) 46 8 " 9 2 6<br />
Figure 3 – Entities for the interface to vehicle sensors<br />
) " 8 ? 6 78 "<br />
6 66 6 " /<br />
) " 66 I !. . J 8<br />
7 7 ! " 8 . ) . / )<br />
6 7 " 66 " 7<br />
/ 2 ! B 6 "<br />
" 66 " 6 4 8/ 9<br />
6 9 " 7 66 6 7<br />
6 / ) 6 ! 8<br />
7 I J ! /<br />
'#%$#%'$$5 -$
) 46 8 " 9 2 6<br />
2 ! " " 6 2 I J<br />
6 / 2 6 7 6 8<br />
6 7 8 9 2 "<br />
7 F /<br />
) " 8/ ) " 7<br />
6 78 ) . 6 7 66 6 7.<br />
/ 9 2 " 8 B 8 " ! 2<br />
/ ) B " " 6 9 2 "6 "<br />
" 8 8 B " " "6 4<br />
9 " /<br />
Vehicle Admin interface<br />
9 " 86 66 /<br />
9 " 66 " 8 F 6 6 /<br />
9 86 . 9 2 7 78<br />
3 = " / " "<br />
6 6
CellProvider<br />
) 46 8 " 9 2 6<br />
) 3 " 6 ! 8<br />
/ "6 " 3 6 7<br />
6 " " 7 7 7<br />
6 " I . G3 HJ . I 3 7 6 7<br />
" J/<br />
'#%$#%'$$5 -'
7.6 Class View<br />
) 46 8 " 9 2 6<br />
) ! 7 ! , " 7 ! 78<br />
66 6 / 2 7 ! 6 .<br />
7 ! (/ 8 "<br />
"6 " "6 " . 6 /<br />
Figure 4 – Class Diagramm Vehicle Admin Layer<br />
7.6.1 Vehicle Admin layer class diagram<br />
) ! 3 " 7 9 " 8 / )<br />
! 8 "6 66 6 /<br />
VehicleTreeNode<br />
) ) = 6 / 2<br />
6 6 I" . J ! Q 6 "<br />
" "2 6 7 !<br />
3 = IJ " /<br />
9 " 6 7 6 9 2 F !<br />
) = / " / 9<br />
6 7 "6 " 6 7 " 66 6 B8<br />
" ) = / ) 6 B8<br />
6 B 6 "<br />
'#%$#%'$$5 -#
) 46 8 " 9 2 6<br />
) = / ) B ! 8 6 B8<br />
86 8 6 9 "<br />
"6 " 7 8 B " " 4<br />
9 " / 2 9 " !<br />
7 ! " 6 " 66 7 !<br />
6 " 86 / ) 6 B8<br />
" 6 " I 9 " B"6 J 7 B "<br />
) = / ) B8. ) = $ "
VehicleAdmin<br />
) 46 8 " 9 2 6<br />
) 9 2 F !<br />
12 /<br />
@ 2 9 " "6 " 6 7 6<br />
! "6 " ) = / / 2 !<br />
" 7 " / 7 "6 "<br />
8 7 ! 6 ) = "6 " !<br />
"6 " 66 ! 66<br />
9 2/<br />
NodeValueListener<br />
9 " " " 7 !<br />
6 ! I 6
7.6.2 Data providers class diagram<br />
CoreHandler<br />
) 46 8 " 9 2 6<br />
Figure 5: Class Diagramm Data Provider Layer<br />
Data providers Entry point interface (OSGi service). Using the interface clients may<br />
register listeners, request and send cells.<br />
CellProvider<br />
" 6 " 3 6<br />
9 " ! B 3 IJ "<br />
) = /The CellProvider module provides the access to the lowest<br />
layers of the vehicle sensors interface. Modules implementing the CellProvider<br />
interface are responsible for translating the specific vehicle data <strong>com</strong>ing from a<br />
vehicle bus into an abstract bus independent format (the “Cells”) and vice-versa (a<br />
Cell object to a specific bus format).<br />
) 6 " 7 2 3 "<br />
F 3 /<br />
'#%$#%'$$5 -5
) 46 8 " 9 2 6<br />
'#%$#%'$$5 --
Cell Listener<br />
) 46 8 " 9 2 6<br />
) 6 / "<br />
G 3 9 = 8H 6 7 8 6 "<br />
! 3 8" 66 6<br />
3 " / ) 6 7<br />
8 8 F 6<br />
8! "6 " 8<br />
" 3 IJ " / )<br />
! F B6 ! " 6 7839=<br />
! 6 / 3 ! 7 6<br />
7 6 " "
Cell<br />
) 46 8 " 9 2 6<br />
9 3 7 7 /<br />
Data Cell<br />
) 6 7 78" 9 2/ 2 6 8<br />
/<br />
Complex Cell<br />
) " ! " / 9 B"6<br />
" 6 / ) 6<br />
/ 9 6 " " I 6 J<br />
6 / 9 6 6 " 7<br />
"6 7 6 6 7 8<br />
/ 2 ! 7 "6 B<br />
" 6 3 "6 B3 /<br />
) "6 B / / " 6<br />
"6 B 6 78 / 3 "6 B 78<br />
" 78 B/<br />
String Descriptor<br />
Represents string status value. Such a status value could be the VIN, or registration<br />
number of the vehicle.<br />
Measurement<br />
6 7 F " " 7 /<br />
" 7 6 1# 4 6 /<br />
9 ¢¡¤£¤¥§¦¤¨©¡¡ 7 " 6 " .<br />
"6/ ) 6 7 " "<br />
" " 8<
StateDataCell<br />
) 46 8 " 9 2 6<br />
! 6 / 2 9 2 !<br />
" B ! "" 7 8 8 /<br />
1 6 / ) 9 2 ! 4 47 7<br />
" 3 /<br />
State<br />
7 7 F 3 / 7 6<br />
7 3 6 " /<br />
RemoteMethodCell<br />
" 8<br />
B " " 8/ @ " " 6<br />
7 "6 7 9 2 F 1 " 3 / 2<br />
" " 6 8<br />
8 " 6 " / F " "<br />
/<br />
7.7 Sequence View<br />
7.7.1 Get Status Element Value<br />
2 9 2 F ) = "<br />
9 " / 2 6 7<br />
7 I J 6 / ) 3 = IJ<br />
" / ) " 7 / 9 7<br />
6 78 " 3 IJ/ 9 6 7 8<br />
6 8 " " I B"6<br />
3 J/<br />
'#%$#%'$$5 >$
) 46 8 " 9 2 6<br />
Figure 7: Sequence “Get Status Element Value”<br />
'#%$#%'$$5 ><
) 46 8 " 9 2 6<br />
7.7.2 Request Status Element Value Change Notification<br />
2 F 9 2 F ) = "<br />
9 " B " = 3 : / 2"6 "<br />
66 6 " 7 6 /<br />
7.7.3 Execute Status Command<br />
Figure 8: Sequence “Status Value Notification”<br />
2 9 2 F ) = "<br />
9 " = "" ? ""<br />
7 ! " "" 47 CD/ 4 ?<br />
"" B " B = 3 "" !<br />
"6 " " " 3 3<br />
? /<br />
'#%$#%'$$5 >'
) 46 8 " 9 2 6<br />
Figure 9: Sequence “Execute Status Command”<br />
'#%$#%'$$5 >#
7.7.4 Manage Status Elements<br />
) 46 8 " 9 2 6<br />
9 2 ! " " /<br />
6 6 " ) 4 / )<br />
9 " ! 8 6<br />
6 / 2 6 B ) =<br />
" ! / 9 " 6 B<br />
9 " 6 6 6 I" @ J/<br />
! 7 " 66<br />
" 6 B " 3 =<br />
7 ! 7 /<br />
Figure 10: Sequence “Manage Status Elements”<br />
'#%$#%'$$5 >,
7.8 Considered Solution alternatives<br />
) 46 8 " 9 2 6<br />
2 % 3 )3 '& ! ! % ! 4 "<br />
2 7 9 " : 8<br />
7 B6 8 4 9 ) 4 / ) 6 6<br />
G H 7 !/<br />
9 8 G 6 H 7 ! " "<br />
7 7 7 / 2 " 6 8<br />
8 6 7 6 / 2 6<br />
" 6 / = ! " F G! ! 6<br />
8H/ 6 8 7 B 7<br />
7 / 9 ! ! 7 ! 8 6 8<br />
8 8! 4 9 )O F "<br />
8 6 " ! 7 " 66 / )<br />
! F 6 4 9 ) 4 ) 6 6 8<br />
/<br />
3 6 8 4 9 4 ) ! 66 B .<br />
" " 9 2 7 4 " !<br />
7 " G H 8 : 6 / 86 9 2<br />
6 . I " " 6 . 6 . /J/<br />
4 9 ) 6 . 6 B87 ! 4 9 ) 4 9 2<br />
66 6 9 2 8<br />
8 " 66 "6 / 2 " 4 4 9 ) 6 6 8<br />
B"6 3 " 4 4 9 ) 6 . " 66<br />
7 ) 6 . " 8" 6<br />
B 7 8 8/<br />
8G H 7 6 /<br />
2 ! ! 6 8 4 9 ) 6 !<br />
6 7 " 6 . " ! !<br />
! ! 6 " " 7<br />
8 " 6 . " 7 6 ! G6 .<br />
6 . H 4 9 ) 6 7 7 8<br />
66 /<br />
6 " 6 6 7 " 6 7 " " 4<br />
) 8 86 66 6 7 " ! ! 9 2<br />
8 4 4 9 )/ @8G! H " 6 "<br />
6 7 6 / 2 6 7<br />
3 7 4 4 9 ) 9 2/ ) 4 9 ) 9 2 "<br />
6 B6 " 6 78 "6 4 " ! 7<br />
6 6 " 6 ! ! ! /<br />
" " G H 9 2 ! 784 4 9<br />
) 7 " 8 : /<br />
" 7 12 " 7 6 / 8<br />
! / @8 ! E" 4 4 9 ) 9 2<br />
7 8 7 " 8 : 6<br />
7 " 6 /) 8 : 4 49 ) !<br />
7 8 4 9 ) 6 /<br />
'#%$#%'$$5 >(
) 46 8 " 9 2 6<br />
3 " 9 " 8 !<br />
! 66 ! 6 " 7 "<br />
! 8 7 8GB6 7 H 7 8 : 78 "6 " "<br />
4 9 ) 6 ! ! 87 6 B87 ! 4 9 )<br />
" ! 8 4 9<br />
) 6 . / ) ! 6 ! ! 8* )<br />
6 78 6 / 4 ? 78<br />
9 " / B6 ! 78 4 9 )<br />
6 /<br />
) !3 % # "<br />
4 5* 3 "" 3 " " " 7 / 4<br />
" 87 " G 8 H "<br />
7 " G 9 " IJ/ IJH/ )<br />
" G 7 H " " 7<br />
6 " F " B 7 / )<br />
7 6 ! !<br />
7 / ) " "" 7 / )<br />
"" " 7 !<br />
6 " ! ! ! / 2"" 7 8<br />
66 6 7 8<br />
! ! 6 " " I<br />
J/ 7 ! 8 ! 6 7 "<br />
8 7 /<br />
7.9 Vehicle Tree<br />
9 66 )3 78<br />
9 " / ) 7 ! 6<br />
/<br />
) ! " 6 *<br />
2 8* /% % 2 8<br />
9 " * /% % 9 "<br />
) 8 7 6 " 7<br />
2= 86 " /<br />
) " 7 6 8 " " 6<br />
7 . G % H 7 /<br />
) 7 6 ! !<br />
6 " 7 B<br />
" /<br />
'#%$#%'$$5 >5
) 46 8 " 9 2 6<br />
Figure 11: Grafical representation of the vehicle subtree<br />
) 7 6 )/ ) 2 8<br />
3 7 ! " 8 )<br />
66 3 1 F /<br />
7.9.1 UNITS<br />
6 8 7 2 I8 \" 2 E ]J 6 /<br />
) 2 - 7 "7 / ) 7 - *<br />
2 #<br />
: "<br />
) "<br />
$<br />
L ""<br />
9"6 9<br />
) "6 L L<br />
9" 7 "<br />
: " 8 3<br />
9 7 " 7 86 /<br />
'#%$#%'$$5 >-
7.9.2 Vehicle Tree Description<br />
) 46 8 " 9 2 6<br />
) 6 " 7 78 66<br />
7 / ! 7 !<br />
6 /<br />
) 6 6 86<br />
7 86 6 8 /<br />
;:% :%<br />
) 6 "<br />
7 / 2 8/<br />
%<br />
Figure 12: VehicleIdentity Subtree<br />
% #<br />
1<br />
0<br />
1<br />
%<br />
8<br />
0<br />
'#%$#%'$$5 >>
;:$ :% :% #<br />
1 6 "7 /<br />
Request:<br />
Cell Type: StringDecsriptor<br />
Acess Type: getString()<br />
Reply:<br />
Data Type: 17 character string value<br />
;:$ :% :<br />
) 6 /<br />
) 46 8 " 9 2 6<br />
Request:<br />
Cell Type: StringDescriptor<br />
Acess Type: getString()<br />
Reply:<br />
Data Type: =(0,9999); =(1,12) =(1,31)<br />
Example: 2005-09-30<br />
;:$ :% :<br />
) 7 " " /<br />
Request:<br />
Cell Type: StringDescriptor<br />
Acess Type: getString()<br />
Reply:<br />
Data Type: 32 character max<br />
;:$ :% : %<br />
6 " " /<br />
Request:<br />
Cell Type: SringDescriptor<br />
Acess Type: getString()<br />
Reply:<br />
Data Type: 32 character max<br />
;:$ :% : 8<br />
) 7 7 8 86 /<br />
Request:<br />
Cell Type: StringDescriptor<br />
Acess Type: getString()<br />
Reply:<br />
Data Type: 32 character max<br />
Occurrence: One<br />
Scope: Static<br />
;:$ :% : 0<br />
'#%$#%'$$5 >&
1 6 8 86 /<br />
Request:<br />
Cell Type: StringDescriptor<br />
Acess Type: getString()<br />
Reply:<br />
Data Type: 32 character max<br />
;:$ :% :1<br />
) 46 8 " 9 2 6<br />
) 7 78 2/ )<br />
7 78 ! . ? 2 4 5#&/<br />
Request:<br />
Cell Type: StringDescriptor<br />
Acess Type: getString()<br />
Reply:<br />
Data Type: 2 char code<br />
en = English it = Italien sv = Swedish<br />
es = Spanish de = German pt = Portuguese<br />
fr = French nl = Netherlands el = Greek<br />
ru = Russian ja = Japanese zh = Chinese<br />
ko = Korean<br />
;:$ :% :0<br />
7 /<br />
Request:<br />
Cell Type: SringDescriptor<br />
Acess Type: getString()<br />
Reply:<br />
Data Type: 16 character max<br />
;:$ :% :1<br />
) 6 /<br />
Request:<br />
Cell Type: SringDescriptor<br />
Acess Type: getString()<br />
Reply:<br />
Data Type: 16 character max<br />
;:$ :% :<br />
) "7 /<br />
Request:<br />
'#%$#%'$$5 &$
Cell Type: StateDataCell<br />
Acess Type: getValue()<br />
Reply:<br />
Data Type: int<br />
;:$ :% :6 "<br />
) "7 6 ! ! ! /<br />
Request:<br />
Cell Type: StateDataCell<br />
Acess Type: getValue()<br />
Reply:<br />
Data Type: int<br />
;:$ :% :<br />
) 7 "7 6 ! /<br />
Request:<br />
Cell Type: StateDataCell<br />
Acess Type: getValue()<br />
Reply:<br />
Data Type: int<br />
;:$ :%<br />
) 46 8 " 9 2 6<br />
'#%$#%'$$5 &<
) 6 8 " /<br />
%<br />
Figure 13: VehicleStatus Subtree<br />
;:$ :% :<br />
) 46 8 " 9 2 6<br />
1<br />
6<br />
0<br />
38<br />
00<br />
) 6 6 " /<br />
0<br />
'#%$#%'$$5 &'
;:$ :% : :0<br />
) 46 8 " 9 2 6<br />
7 6 " ! 6 /<br />
Request:<br />
Cell Type: DataCell<br />
Acess Type: getPhysicalValue()<br />
Reply:<br />
Data Type: double<br />
Unit: m/s<br />
;:$ :% : :<br />
1 6 ! 6 " /<br />
Request:<br />
Cell Type: DataCell<br />
Acess Type: getPhysicalValue()<br />
Reply:<br />
Data Type: double<br />
Unit: m/s<br />
;:$ :% :1<br />
This node is the parent of all light sensor data.<br />
'#%$#%'$$5 &#
1<br />
;:$ :% :1 : 7 1<br />
) 7 6<br />
Request:<br />
Cell Type: StateDataCell<br />
Acess Type: getValue()<br />
Reply:<br />
Data Type: int<br />
Code : 0: all off<br />
1: left side only on<br />
2: right side only on<br />
3: all on<br />
;:$ :% :1 :E<br />
) 7<br />
Request:<br />
Cell Type: StateDataCell<br />
Acess Type: getValue()<br />
Reply:<br />
Data Type: int<br />
Code : 0: off<br />
1: on<br />
;:$ :% :1 :E 8<br />
) 7 7 "<br />
E<br />
Request:<br />
Cell Type: StateDataCell<br />
Acess Type: getValue()<br />
7 1<br />
E 8<br />
' 1<br />
8 7 1<br />
E = 1<br />
1 0<br />
) 46 8 " 9 2 6<br />
'#%$#%'$$5 &,
Reply:<br />
Data Type: int<br />
Code : 0: off<br />
1: on<br />
;:$ :% :1 :' 1<br />
1 6 :<br />
Request:<br />
Cell Type: StateDataCell<br />
Acess Type: getValue()<br />
Reply:<br />
Data Type: int<br />
Code : 0: all off<br />
1: only front foglight on<br />
2: only rear fog light on<br />
3: all on<br />
;:$ :% :1 :8 7 1<br />
) 7 7<br />
Request:<br />
Cell Type: StateDataCell<br />
Acess Type: getValue()<br />
Reply:<br />
Data Type: int<br />
Code : 0: off<br />
1: on<br />
;:$ :% :1 :E = 1<br />
) 7 ?<br />
Request:<br />
Cell Type: StateDataCell<br />
Acess Type: getValue()<br />
Reply:<br />
Data Type: int<br />
Code : 0: off<br />
1: on<br />
;:$ :% :1 :1 0<br />
) 46 8 " 9 2 6<br />
This node returns information, if the driving light should be<br />
switched on because of the environmental conditions.<br />
Request:<br />
Cell Type: ComplexCell<br />
Acess Type: getValue()<br />
'#%$#%'$$5 &(
Reply:<br />
Data Type: StateDataCell []<br />
StateDataCell [0] = Dawn<br />
Code: 0: no<br />
1: yes<br />
StateDataCell [1] = Darkness<br />
Coede: 0: no<br />
1: yes<br />
StateDataCell [2] = Rainfall<br />
Code: 0: no<br />
1: yes<br />
StateDataCell [3] = Tunnel<br />
Code: 0: no<br />
1: yes<br />
StateDataCell [4] = Underground Parking<br />
Code: 0: no<br />
1: yes<br />
StateDataCell [5] = High Speed<br />
Code: 0: no<br />
1: yes<br />
;:$ :% :6<br />
) 46 8 " 9 2 6<br />
This node is the parent of all wiper sensor data.<br />
6<br />
' 6<br />
;:$ :% :6 :' 6<br />
Returns front wiper status.<br />
Request:<br />
Cell Type: StateDataCell<br />
Acess Type: getValue()<br />
Reply:<br />
Data Type: int<br />
Code : 0: off<br />
1: intervall/automatic (rain sensor activ)<br />
6<br />
' 6<br />
'#%$#%'$$5 &5
2: normal<br />
3: fast<br />
;:$ :% :6 : 6<br />
Returns rear wiper status.<br />
Request:<br />
Cell Type: StateDataCell<br />
Acess Type: getValue()<br />
Reply:<br />
Data Type: int<br />
Code : 0: off<br />
1: on<br />
2: not equipped<br />
;:$ :% :6 :' 6<br />
Returns the relativ value of front wiper speed.<br />
) 46 8 " 9 2 6<br />
Request:<br />
Cell Type: StateDataCell<br />
Acess Type: getValue()<br />
Reply:<br />
Data Type: int<br />
Value: 0..255;<br />
0 = wipers are not moving<br />
255 = wipers are moving as fast as possible<br />
;:$ :% :<br />
Returns the relativ rain intencity in percent (%).<br />
Request:<br />
Cell Type: StateDataCell<br />
Acess Type: getValue()<br />
Reply:<br />
Data Type: int<br />
Code : 0…100<br />
Unit : %<br />
;:$ :% :<br />
'#%$#%'$$5 &-
) 46 8 " 9 2 6<br />
) B "6 L I$ 3 V '-#
0<br />
;:$ :% :0 :0<br />
) 6 /<br />
Request:<br />
Cell Type: StateDataCell<br />
Acess Type: getValue()<br />
Reply:<br />
Data Type: int<br />
Code : 0: no crash detected<br />
1: front crash<br />
2: side crash left<br />
3: side crash right<br />
4: rear crash<br />
;:$ :% :0 : 9<br />
1 " F 7/<br />
Request:<br />
Cell Type: StateDataCell<br />
Acess Type: getValue()<br />
Reply:<br />
Data Type: int<br />
Range: 0…254<br />
0: no squib triggered<br />
;:$ :% :0 :0 $<br />
) 8 ! ! 7<br />
/<br />
Request:<br />
Cell Type: StateDataCell<br />
Acess Type: getValue()<br />
Reply:<br />
Data Type: int<br />
Code : 0: no crash detected<br />
0<br />
0 $<br />
$<br />
) 46 8 " 9 2 6<br />
9<br />
'#%$#%'$$5 &&
) 46 8 " 9 2 6<br />
1-4: crash severity (1: easy; 4: serious)<br />
;:$ :% :0 : $<br />
) . 7 /<br />
Request:<br />
Cell Type: StateDataCell<br />
Acess Type: getValue()<br />
Reply:<br />
Data Type: int<br />
Code : 0: no deploy<br />
1: release roll-over bar<br />
;:$ :% :<br />
) 6 " 7 68 /<br />
;:$ :% : :'<br />
1 6 8 " /<br />
Request:<br />
Cell Type: ComplexCell<br />
Acess Type: getValue()<br />
Reply:<br />
Data Type: StateDataCell [0..1]<br />
StateDataCell [0] = Passenger<br />
Code: 0: no<br />
1: yes<br />
2: not available<br />
StateDataCell [1] = MiddleFront<br />
Code: 0: no<br />
1: yes<br />
2: not available<br />
'<br />
"<br />
' "<br />
' "<br />
"<br />
0 40<br />
0 40<br />
0 40<br />
0 40<br />
0 40<br />
'#%$#%'$$5
;:$ :% : : "<br />
Request:<br />
Cell Type: ComplexCell<br />
Acess Type: getValue()<br />
Reply:<br />
Data Type: StateDataCell [0..2]<br />
StateDataCell [0] = SecondRowLeft<br />
Code: 0: no<br />
1: yes<br />
2: not available<br />
StateDataCell [1] = SecondRowMiddle<br />
Code: 0: no<br />
1: yes<br />
2: not available<br />
StateDataCell [2] = SecondRowRight<br />
Code: 0: no<br />
1: yes<br />
2: not available<br />
;:$ :% : : "<br />
Request:<br />
Cell Type: ComplexCell<br />
Acess Type: getValue()<br />
Reply:<br />
Data Type: StateDataCell [0..2]<br />
StateDataCell [0] = ThirdRowLeft<br />
Code: 0: no<br />
1: yes<br />
2: not available<br />
StateDataCell [1] = ThirdRowMiddle<br />
Code: 0: no<br />
1: yes<br />
2: not available<br />
StateDataCell [2] = ThirdRowRight<br />
) 46 8 " 9 2 6<br />
'#%$#%'$$5
Code: 0: no<br />
1: yes<br />
2: not available<br />
;:$ :% : :' "<br />
Request:<br />
Cell Type: ComplexCell<br />
Acess Type: getValue()<br />
Reply:<br />
Data Type: StateDataCell [0..2]<br />
StateDataCell [0] = ForthRowLeft<br />
Code: 0: no<br />
1: yes<br />
2: not available<br />
StateDataCell [1] = ForthRowMiddle<br />
Code: 0: no<br />
1: yes<br />
2: not available<br />
StateDataCell [2] = ForthRowRight<br />
Code: 0: no<br />
1: yes<br />
2: not available<br />
;:$ :% : :' "<br />
Request:<br />
Cell Type: ComplexCell<br />
Acess Type: getValue()<br />
Reply:<br />
Data Type: StateDataCell [0..2]<br />
) 46 8 " 9 2 6<br />
StateDataCell [0] = FifthRowLeft<br />
Coede: 0: no<br />
1: yes<br />
2: not available - wo braucht man das ??<br />
StateDataCell [1] = FifthRowMiddle<br />
Coede: 0: no<br />
1: yes<br />
2: not available<br />
StateDataCell [2] = FifthRowRight<br />
Code: 0: no<br />
1: yes<br />
2: not available<br />
;:$ :% : 8<br />
8<br />
'<br />
"<br />
"<br />
'#%$#%'$$5 ' "
;:$ :% : 8 :'<br />
) 46 8 " 9 2 6<br />
Request:<br />
Cell Type: ComplexCell<br />
Acess Type: getValue()<br />
Reply:<br />
Data Type: StateDataCell [0..1]<br />
StateDataCell [0] = Passenger<br />
Code: 0: no<br />
1: yes<br />
2: not available - wo braucht man das ??<br />
StateDataCell [1] = MiddleFront<br />
Code: 0: no<br />
1: yes<br />
2: not available<br />
;:$ :% : 8 : "<br />
Request:<br />
Cell Type: ComplexCell<br />
Acess Type: getValue()<br />
Reply:<br />
Data Type: StateDataCell [0..2]<br />
StateDataCell [0] = SecondRowLeft<br />
Code: 0: no<br />
1: yes<br />
2: not available<br />
StateDataCell [1] = SecondRowMiddle<br />
Code: 0: no<br />
1: yes<br />
2: not available<br />
StateDataCell [2] = SecondRowRight<br />
Code: 0: no<br />
1: yes<br />
2: not available<br />
;:$ :% : 8 : "<br />
Request:<br />
Cell Type: ComplexCell<br />
Acess Type: getValue()<br />
Reply:<br />
Data Type: StateDataCell [0..2]<br />
StateDataCell [0] = ThirdRowLeft<br />
Code: 0: no<br />
1: yes<br />
2: not available<br />
StateDataCell [1] = ThirdRowMiddle<br />
Code: 0: no<br />
'#%$#%'$$5
1: yes<br />
2: not available<br />
StateDataCell [2] = ThirdRowRight<br />
Code: 0: no<br />
1: yes<br />
2: not available<br />
;:$ :% : 8 :' "<br />
Request:<br />
Cell Type: ComplexCell<br />
Acess Type: getValue()<br />
Reply:<br />
Data Type: StateDataCell [0..2]<br />
StateDataCell [0] = ForthRowLeft<br />
Code: 0: no<br />
1: yes<br />
2: not available<br />
StateDataCell [1] = ForthRowMiddle<br />
Code: 0: no<br />
1: yes<br />
2: not available<br />
StateDataCell [2] = ForthRowRight<br />
Code: 0: no<br />
1: yes<br />
2: not available<br />
;:$ :% : 8 :' "<br />
Request:<br />
Cell Type: ComplexCell<br />
Acess Type: getValue()<br />
Reply:<br />
Data Type: StateDataCell [0..2]<br />
) 46 8 " 9 2 6<br />
StateDataCell [0] = FifthRowLeft<br />
Code: 0: no<br />
1: yes<br />
2: not available - wo braucht man das ??<br />
StateDataCell [1] = FifthRowMiddle<br />
Code: 0: no<br />
1: yes<br />
2: not available<br />
StateDataCell [2] = FifthRowRight<br />
Code: 0: no<br />
1: yes<br />
2: not available<br />
;:$ :% :38<br />
This node is the parent of all Electronic Brake Management (EBM)<br />
Systems<br />
'#%$#%'$$5
38<br />
;:$ :% :38 : 8<br />
) 9 . @ 8 " /<br />
Request:<br />
Cell Type: StateDataCell<br />
Acess Type: getValue()<br />
Reply:<br />
Data Type: int<br />
Code : 0: off<br />
1: on<br />
2: engaged<br />
3: malfunction<br />
;:$ :% :38 : 0<br />
) 6 9 . 3 8 "<br />
3<br />
Request:<br />
Cell Type: StateDataCell<br />
Acess Type: getValue()<br />
Reply:<br />
Data Type: int<br />
Code : 0: off<br />
1: on<br />
2: engaged<br />
3: malfunction<br />
;:$ :% :38 :3<br />
) 46 8 " 9 2 6<br />
) 6 7 8 8 " I@ * 3 @ *<br />
/J<br />
Request:<br />
Cell Type: StateDataCell<br />
Acess Type: getValue()<br />
Reply:<br />
8<br />
0<br />
E8<br />
3<br />
'#%$#%'$$5
Data Type: int<br />
Code : 0: off<br />
1: on<br />
2: engaged<br />
3: malfunction<br />
;:$ :% :38 :E8<br />
) 6 8 @ 8 "<br />
Request:<br />
Cell Type: StateDataCell<br />
Acess Type: getValue()<br />
Reply:<br />
Data Type: int<br />
Code : 0: off<br />
1: on<br />
2: engaged<br />
3: malfunction<br />
;:$ :% :38 :3<br />
) 46 8 " 9 2 6<br />
) 6 ) F 3 I 1J<br />
Request:<br />
Cell Type: StateDataCell<br />
Acess Type: getValue()<br />
Reply:<br />
Data Type: int<br />
Code : 0: off<br />
1: on<br />
2: engaged<br />
3: malfunction<br />
;:$ :% : 00<br />
00<br />
%<br />
'#%$#%'$$5
;:$ :% : 00:<br />
) /<br />
Request:<br />
Cell Type: StateDataCell<br />
Acess Type: getValue()<br />
Reply:<br />
Data Type: int<br />
Code : 0: ACC not operable<br />
1: radar on<br />
2: radar off<br />
;:$ :% : 00:<br />
) 6 9 3 3 "<br />
Request:<br />
Cell Type: StateDataCell<br />
Acess Type: getValue()<br />
Reply:<br />
Data Type: int<br />
Code : 0: passiv<br />
1: stand by<br />
2: normal<br />
3: increased dynamic<br />
4: active brake pressure<br />
5: driver passed over<br />
;:$ :% : 00: %<br />
) 46 8 " 9 2 6<br />
) 6 7 "<br />
Request:<br />
Cell Type: DataCell<br />
Acess Type: getPhysicalValue()<br />
Reply:<br />
Data Type: double<br />
Range: 1…250<br />
Unit: m<br />
;:$ :% :# $<br />
# $<br />
E<br />
E E =<br />
0<br />
0 40<br />
'#%$#%'$$5
) 46 8 " 9 2 6<br />
;:$ :% :# $ :<br />
Die Nachricht enthält die durch GPS übermittelte absolute horizontale<br />
und vertikale Position des Fahrzeugs.<br />
Request:<br />
Cell Type: ComplexCell<br />
Acess Type: getPhysicalValue()<br />
Reply:<br />
Data Type: DataCell [0..2]<br />
DataCell [0] = PositionLongitude<br />
Range: -180 degree to 180 degree<br />
DataCell [1] = PositionLatitude<br />
Range: -90 degree to 90 degree<br />
DataCell [2] = StatusHeight<br />
Range: -32767 m …32767 m<br />
;:$ :% :# $ :E<br />
Returns the height of the vehicle in m.<br />
Request:<br />
Cell Type: DataCell<br />
Acess Type: getPhysicalValue()<br />
Reply:<br />
Data Type: double<br />
Range: 0..360<br />
Unit: degrees<br />
;:$ :% :# $ :E E =<br />
Returns the absolute direction of the vehicle in degrees.<br />
Request:<br />
Cell Type: DataCell<br />
Acess Type: getPhysicalValue()<br />
Reply:<br />
Data Type: double<br />
Range: -32767…32766<br />
Unit: m<br />
;:$ :% :# $ :0<br />
) 8 ! 78<br />
Request:<br />
'#%$#%'$$5
Cell Type: StringDescriptor<br />
Acess Type: getString()<br />
Reply:<br />
Data Type: 32 character max<br />
;:$ :% :<br />
) 46 8 " 9 2 6<br />
This node returns the time acording to “Coordinated Universal Time”<br />
UTC. It´s<br />
Request:<br />
Cell Type: StringDescriptor<br />
Acess Type: getString()<br />
Reply:<br />
Data Type: =(0,23); =(0,59); =(0,59)<br />
Example: 23:20:19<br />
;:$ :% :<br />
) 8 78<br />
Request:<br />
Cell Type: StringDescriptor<br />
Acess Type: getString()<br />
Reply:<br />
Data Type: =(0,9999) =(1,12); =(1,31)<br />
Example: 1995-04-02<br />
;:$ :% :<br />
) "6 " "<br />
Request:<br />
Cell Type: DataCell<br />
Acess Type: getPhysicalValue()<br />
Reply:<br />
Data Type: double<br />
Unit: km<br />
C4 2D 4 6 6*%%!!!/ / /<br />
'#%$#%'$$5
) 46 8 " 9 2 6<br />
'#%$#%'$$5
) 46 8 " 9 2 6<br />
Chapter 8 - NOMADIC DEVICE INTEGRATION<br />
8.1 Disclaimer<br />
= " 2 ) 6 7<br />
"6 6 7 7 6" 6 6<br />
7 " / 9 F 46 8 " !<br />
6 "6 " 7 "6 "<br />
6 , ! 6 /<br />
8.2 Introduction<br />
) 6 = " 2<br />
/ = " 2 " "<br />
9 7 6 "7 8 " 8 78<br />
4 F 6" I4 J . 8 "/ 2<br />
B ) "7 8 " 6 ) " 3 )3<br />
78C#D/<br />
) = " 2 ! " 6 / 9 6<br />
= " 7 = " 2 / ) = "<br />
! 8 7 6 )3 / ) = "<br />
! 8 ) "6 ! "/<br />
@ 6 8 . ! 7 6 ! !<br />
" "" ! /
) 46 8 " 9 2 6<br />
8.4 Services and Service Repository Synchronization<br />
@ ! B 8<br />
G H B = " 2 /<br />
2 B = " 2 6 7 8<br />
! 78 )3 " / 9 B"6<br />
7 " # E F 6" /<br />
9 " ! 6 / ) 6 " 6<br />
" / 2 B"6 # 6 8 = "<br />
7 # 6 8 6 " I # "J<br />
)3 6 6 " /<br />
) 7 ! 6 8 "6 "<br />
6 8 "6 / " ! ! ! 6<br />
"6 " = " # 3<br />
#3 6 )3 02 3 3 /<br />
9 = 2 6 ) /<br />
2 " 7 = ) 6 78 2 7 / ) 7<br />
6 " 7 = ) / ) 2<br />
" 6 /<br />
2 7 ! =<br />
) / ! = ) /<br />
• 4 )3 = ! 7<br />
= " /<br />
• 4 = " ) ! 7<br />
)3 /<br />
@ 2 7 8 8 ? ! G !H 7<br />
7 6 78 6 /<br />
9 " 66 7 78 B ! 7<br />
8 " 8 ? = ) 83 ! "<br />
6 / ) G)! . 8 8 H<br />
8 ? 86 7 78 8 : 8 ?<br />
8.5.1 Initial Connect<br />
) 46 8 " 9 2 6<br />
) 3 7 B 78 = "<br />
! 8/ ) "7 8 " I J . 6<br />
6 6 / ) 6 6 " 7 ! = "<br />
7 " 7 = " ) 3 "6 = "<br />
2 7 /<br />
) 3 ? 78 ! 7 * I<br />
3 %3 7 ! 6 78 #(J<br />
0<br />
02 '3 $ ) 7 ? .<br />
6 = " ! 8/ )<br />
B<br />
B6 " 7<br />
" " " 7<br />
" ! 8 = "<br />
2 2 /<br />
# '3 $ 8 6<br />
= " /<br />
# '3 $ " 86 78<br />
)3 9 7 7<br />
= " /<br />
TCU Front End Processor Activation<br />
9 B6 = " ! 8" 7<br />
) 46 8 " B " / 2<br />
= " ! 8 "6 7 ! 8 7 78 ! "<br />
966 1 " " 2 /<br />
) 6 78 ! )3 ! 78<br />
8 6 / 4 )3 7<br />
B " 2 = " 86 /<br />
! B 8 B " "6 "6 "<br />
6 6 /<br />
'#%$#%'$$5
) 46 8 " 9 2 6<br />
Figure 18 TCU FEP Activation<br />
State Diagram<br />
) " ! = " ! 86<br />
! 8 ! / = ! @<br />
? B " / 6 "<br />
B6 6 8" ! "/<br />
Figure 19 TCU FEP Activation<br />
Nomadic Device Front End Processor Activation<br />
" )3 = " 2 =<br />
! ! /<br />
'#%$#%'$$5
) 46 8 " 9 2 6<br />
Figure 20 Nomadic Device FEP Activation<br />
) ! " 6 6 6 = "<br />
7 /<br />
Figure 21 Nomadic Device FEP Activation<br />
Starting the Nomadic Device Front End Processor makes the FEP discoverable by the<br />
Embedded Gateway.<br />
The ND FEP Discovery Collaboration<br />
) 7 8 ! *<br />
) 46 8 " 9 2 6<br />
'/ 9 = " " "7<br />
= " = " 2 /<br />
#/ 2 6 ! = " 66<br />
! "7 8 " = " ! 8<br />
= " /<br />
,/ 8 = " ! 8 = " 2 78"<br />
8 : 6 $ I " J " 7 78 4 9<br />
= 2 C#(D/<br />
) ! F " 6 " 6<br />
/<br />
Figure 22 Initial Connect Sequence Diagram<br />
) "6 ! F " 8<br />
"6 ! ! = " ! 8 = " 2<br />
'#%$#%'$$5
) 46 8 " 9 2 6<br />
/ 9 F = " ! )3 6 2<br />
F /<br />
) "6 ! *<br />
0 '<br />
02 ' 3 ) 7<br />
= " ! 8/ ) "6 !<br />
"" ! = " 7<br />
6 6 = " ! 8 !<br />
= " /<br />
02 0 ) "6 8 6 = "<br />
! 8 7 6 ""<br />
78 = " ! 8/ )<br />
7 @ "6 "<br />
/<br />
# 0 = " 3 " A " 8<br />
" )3 3 " 7<br />
= " /<br />
# ' 3<br />
# '3 J<br />
' @<br />
) = " " )3<br />
6 @ = " / 9<br />
! ! = 7<br />
" 6 78 )3 /<br />
) 2 = " = "<br />
6 / 2 )3 2<br />
6 8/ " !/<br />
) # $*'"<br />
# '3 $<br />
( ) # 32 ! (<br />
4 )3 6 7 G = " H<br />
8 6 2 / 9 F F "<br />
'' ! 6 ! " 6 / )3 2<br />
! 7 8 = " / = B )3 2<br />
! ) "6 "<br />
/ 2 7 " /<br />
2 ! (<br />
) # " # % !<br />
# ! 3'- "<br />
% ( / 21 0<br />
"<br />
) ! " ! 8 /<br />
'#%$#%'$$5
Class View<br />
) 46 8 " 9 2 6<br />
Figure 23 Nomadic Device FEP discovery<br />
) 3 " 8 6 8 ! 2 7<br />
"6 " 78 ) "6 = " 2 "6 " /<br />
02<br />
) 7 " ! 7 7<br />
" 7 ! "6 *<br />
• 9 )3 A ) "6 ! 8*<br />
o 3 7 8 = " /<br />
o 2 8 "<br />
o 3 = "<br />
o 3 $ P<br />
o " = "<br />
• 9 " 6 6<br />
'#%$#%'$$5
) 46 8 " 9 2 6<br />
• 9 9 78 B " 86<br />
? 6<br />
• 9 6 ^$ " "6 6 6 "<br />
" 7 . .7 6 ^$ 8 : " /<br />
• 9 4@ N C''DC'-D "6 ! !<br />
6 ^$ " 4@ N 6 / ) ! "<br />
! = "<br />
7 *<br />
Figure 24 Initial Connect Nomadic Device Classes<br />
) 6 6 ^$ " !<br />
= " ! 7 " )3 / ) 7 6<br />
" " / ) 6 " 78 8<br />
" ! " " ! ^$<br />
" / ) " 8 8 = "<br />
"6 " / ) * = " 9 2 2 "6 " "<br />
7 F "6 " "68/<br />
'#%$#%'$$5
) 46 8 " 9 2 6<br />
" " ^$ " 7<br />
6 6 6 6 /<br />
) " )3 7 ! *<br />
Figure 25 Initial Connect TCU Class Diagram<br />
) 3 " = " 2 3<br />
7 / @ ! ! 8 / 2 )3<br />
3 78 I6 ^$J "<br />
= " / 4 6 " 3 6<br />
"6 " ! "" " /<br />
% 5-67 ' % 89 % # ! : ' '<br />
! " 32 ( 0"&<br />
2 % !( ) # 2 # ! (<br />
) # ! ' %89 % # : ';<br />
'#%$#%'$$5
8.5.2 Authentication and Authorization<br />
) 46 8 " 9 2 6<br />
4 6 "6 8 "" B 7 !<br />
)3 3 = " / ) 6 ^$<br />
" = " 6 /<br />
) ! 6 ^$ "<br />
! )3 /<br />
) 6 2 7 "6 4 9 8 : 8<br />
6 6 '( C'>D/ ) !<br />
! *<br />
sd Authentication message flow.OS<br />
ND Front End<br />
Processor<br />
Setup<br />
Package #0, Alert form TCU FEP<br />
Package #1:Credentials and Device<br />
information<br />
Package #2: Acknowledge message<br />
and Server Credentials including list<br />
of authorized services<br />
Management<br />
Package #3: Client response to server<br />
authentication, contains list of authorized<br />
services<br />
Package #n: Vehicle Status and<br />
eCall services setup<br />
Figure 26 Setup and Management Phase<br />
9 7 78C'>D 66 6 ! 6*<br />
TCU Front End<br />
Processor<br />
) 46 8 " 9 2 6<br />
@ 6 2 "68 ! 7 78 C'>D 6 6 ><br />
9 / ) "68! 6 7 3 2 6<br />
/ " = " 2<br />
/ ) )3 2 6 ! '
sd ND Transmit Credentials ot TCU<br />
) 46 8 " 9 2 6<br />
TCU Nomadic Dev ice TCU<br />
TCU Connection<br />
Manager<br />
(from Initial Connect)<br />
Package #0<br />
ND FEP Serv er ND FEP Client TCU FEP Serv er<br />
Instantantiate<br />
Prepare Package #1 message<br />
Send Package#1<br />
9 6 ^$ " " )3 = " 4 :<br />
3 "6 / ) "6 6 6 ^< "<br />
78" 8 :%4@ N 6 " 66 6<br />
3 )3 /<br />
) " ! 78 ', ! B ! *<br />
'#%$#%'$$5
ud ND Transmit credentials to TCU<br />
SyncML Parser<br />
SyncML<br />
Formatter<br />
«interface»<br />
intf::Authenticator<br />
+ Authenticate(char[]) : int<br />
+ RetrieveAuthorizedServices(int) : ServiceInfo[]<br />
+ CreateCredentials() : char[]<br />
NDI Dev ice<br />
Management Tree<br />
TCU Verify ND Credentials<br />
Use<br />
«interface»<br />
intf::FepServer<br />
+ Accept() : byte[]<br />
1..*<br />
Instantiates<br />
«interface»<br />
intf::FepClient<br />
+ FormatRequestMessage() : byte[]<br />
+ SendMessage(SyncMLMessage) : void<br />
+ ParseResponseMessage() : SyncMLMessage<br />
1<br />
) 46 8 " 9 2 6<br />
1 0..*<br />
«interface»<br />
helpers::SyncMLMessage<br />
«thread»<br />
intf::MessageThread<br />
- fepClient: FepClient<br />
- SyncMLMessage:<br />
+ «property get» getfepClient() : FepClient<br />
+ «property set» setfepClient(FepClient) : void<br />
+ HandleMessage(byte[]) : void<br />
Needs to be<br />
detailed<br />
'#%$#%'$$5 <br />
86 7 3 /
id TCU Authentication and Authorization<br />
«interface»<br />
intf::Sessions<br />
- session: Session<br />
+ AddSession(int, String) : long<br />
+ RemoveSession(String) : boolean<br />
+ RetrieveSession(long) : Session<br />
intf::Session<br />
- SessionId: long<br />
- SourceURL: String<br />
- DeviceId: int<br />
+ «property get» getDeviceId() : int<br />
+ «property get» getSourceURL() : String<br />
+ «property set» setDeviceId(int) : void<br />
+ «property set» setSourceURL(String) : void<br />
+ «property get» getSessionId() : long<br />
1<br />
Contains<br />
0..*<br />
1<br />
Uses<br />
) 46 8 " 9 2 6<br />
1<br />
Uses<br />
SyncML Parser<br />
Triggers<br />
FEP Serv er FEP Client<br />
«interface»<br />
intf::Authenticator<br />
NDI Dev ice<br />
Management Tree<br />
SyncML<br />
Formatter<br />
+ Authenticate(char[]) : int<br />
+ CreateCredentials() : char[]<br />
+ RetrieveAuthorizedServices(int) : ServiceInfo[]<br />
Also contains the<br />
Session<br />
information on a<br />
per Nomadic<br />
device basis.<br />
'#%$#%'$$5
) 46 8 " 9 2 6<br />
= " / 2 B 6 = " F #<br />
"6 ^< /<br />
= " 2 ! 6 7 78C'>D 6<br />
> 6 '(/ 9 2 66 7 7 ( I
) 46 8 " 9 2 6<br />
• 2 2 # /<br />
I F " '>J<br />
"68 87 6<br />
/<br />
• ) = " E 11 # ^< " !<br />
/ 2 78 )3 )3<br />
2 6 ! ,$< 6 6 2<br />
#<br />
/<br />
TCU synchronize list of available services with ND<br />
^' " 78 )3 7<br />
? = / ) "<br />
! 7 " 78 " 4 9 8 :<br />
" ) I )J 78 6 8" / )<br />
7 = " 2<br />
F " 7 / 6 8" 6<br />
6 " " 6 /<br />
< % % )3 # ! !<br />
! # ! ! !<br />
% 0 ) ' # %<br />
2 # ! # "<br />
TCU Submit Credentials to Nomadic Device<br />
9 = " )3 2 6 !<br />
6 ^' " ! 8 )3<br />
! = " /<br />
) )3 2 6 @ 5, ( 86<br />
/<br />
4 6 ^' " )3 = " 2 !<br />
! 8 6 " 6 *<br />
• 2 " = " 2 G= 8<br />
3 )3 H 7 /<br />
• 2 " = " 7 ""<br />
78 ,**/" / )<br />
E 21 # 6 " _<br />
ND Verify Credentials of TCU<br />
) 7 8 6 )3 / )3<br />
78 ^' " )3 B6<br />
6 6 6 / ) = 6 6 B<br />
" ) / ) 6<br />
3 The reason for this rigid termination of the setup process if the credentials are not send or not<br />
recognized by the TCU is explained by the specific situation of a driver switching on the engine and<br />
driving the car. The setup process takes place when the driver is probably on the road and he or she<br />
should not be disturbed by this setup phase. In other words, if the setup fails this Nomadic Device<br />
Integration remains inactive. The user could eventually be warned about this situation by means of an<br />
orally warning or a message on the phone.<br />
'#%$#%'$$5
) 46 8 " 9 2 6<br />
)3 / 2 = 2<br />
6 ,$< " / ) " 2 7 6<br />
6 6 7 )3 = " /<br />
2 6 =<br />
? " )/<br />
) 78" = " " ) / 4<br />
= 2 ? )3<br />
" ) " ! 6 '
) 46 8 " 9 2 6<br />
Figure 29 Service Info Object<br />
) N : " 7 "6 " 6 /<br />
8.5.3 End Point Tree Synchronization<br />
9 B6 78 7 6 6 6 6<br />
"6 ! 8 ? = ) !<br />
! ! 78 9 "6 ? / )<br />
8 ? 6 ! 6 6 78 4 9 8 :<br />
8
) 6 *<br />
) 46 8 " 9 2 6<br />
Figure 30 Service Synchronization<br />
• 4@ N 6 6 C'-D<br />
• 4 9 8 : 8 C'>D 8 : 6 6 C
Two-Way Sync<br />
) 46 8 " 9 2 6<br />
= 8 78<br />
7 ! 6 78<br />
= " 3 /<br />
) 86 8 ? 2 9 6<br />
7 8 7 ? / ) 7 )<br />
"6 ! ! 8 8 ? 7 "6 ! C'>D 6
Slow-Sync<br />
) 46 8 " 9 2 6<br />
2 " 8 8 ? / 2 !. 8<br />
"6 7 / 9 !. 8 B<br />
7 46 8 F 7 B<br />
7 ! = " )3 /<br />
8.5.4 Vehicle Status Service Discovery and Initialization<br />
4 7 )3 = )3<br />
8 ? ! 7 / ) 3
0<br />
Trigger Vehicle Status Discovery<br />
) F " ! 6 /<br />
) 46 8 " 9 2 6<br />
" " 8<br />
4 '
sd Trigger Vehicle Status Discovery<br />
Vehicle Status<br />
Serv er<br />
) 46 8 " 9 2 6<br />
ND Dev ice<br />
Management<br />
Tree<br />
getService(ServiceDescription)<br />
Instantiate Service<br />
Start Service<br />
Service Code<br />
ND FEP Serv er TCU FEP Client TCU Management<br />
Tree<br />
Prepare Vehicle Status Server<br />
Status respons<br />
In case of a failure<br />
at this point the TCU<br />
FEP Client MUST<br />
abort the setup<br />
process and the<br />
system needs to go<br />
back in its initial<br />
polling mode.<br />
Connect<br />
Figure 32 Vehicle Status Discovery<br />
''%$#%'$$5
) 3 " 7 ! *<br />
c d TC U V e h ic le S ta tu s D is c o v e r y<br />
« i n te rfa c e »<br />
in tf::S e r v e r L is te n e r<br />
+ o n D i sc o v e ry E v e n t() : v o i d<br />
A u th e n tic a tio n<br />
a n d A u th o riz a tio n :<br />
:S yn c M L<br />
F o r m a tte r<br />
U se s<br />
A u th e n tic a tio n<br />
a n d A u th o r iz a tio n :<br />
:O b e x P a rs e r<br />
) 46 8 " 9 2 6<br />
U se s<br />
A u th e n tic a tio n<br />
a n d A u th o r iz a tio n :<br />
:S yn c M L P a r s e r<br />
U se s<br />
« i n te rfa c e »<br />
i n tf::F e p C l i e n t<br />
- se rv i c e R e p o si to ry : S e rv i c e R e p o si to ry<br />
- sy n c M L M e ssa g e : S y n c M L M e ssa g e<br />
+ « p ro p e rty g e t» g e ts y n c M L M e s s a g e () : S y n c M L M e s s a g e<br />
+ o n D i s c o v e ry E v e n t() : v o i d<br />
+ « p ro p e rty s e t» s e ts y n c M L M e s s a g e (S y n c M L M e s s a g e ) : v o i d<br />
+ S e n d (b y te []) : v o i d<br />
+ fo rma tO b e x M e s s a g e (b y te []) : S tri n g<br />
+ p a rs e O b e x M e s s a g e (b y te []) : b y te []<br />
+ fo rma tS y n c M L M e s s a g e (S y n c M L M e s s a g e ) : S tri n g<br />
+ p a rs e S y n c M L M e s s a g e () : S y n c M L M e s s a g e<br />
+ c re a te N D T ri g g e r() : v o i d<br />
e x te n d s<br />
« i n te rfa c e »<br />
in tf::S e r v ic e R e p o s ito r y<br />
- se rv i c e In fo L i st: S e rv i c e In fo []<br />
+ a d d S e rv i c e (S e rv i c e In fo ) : v o i d<br />
+ re m o v e S e rv i c e (S e rv i c e In fo ) : v o i d<br />
+ i sS u p p o rte d (S tri n g ) : b o o l e a n<br />
+ re tri e v e S e rv i c e In fo () : S e rv i c e In fo<br />
- S e ssi o n Id : l o n g<br />
- S o u rc e U R L : S tri n g<br />
- D e v i c e Id : i n t<br />
'#%$#%'$$5
) 46 8 " 9 2 6<br />
1 " " )3<br />
1 6 8/ ) 6 8 "6 "<br />
= " ! 8 / : ! ! B 8!<br />
8/ ) 8! 7 /<br />
Respond to Vehicle Status Discovery<br />
9 B6 78 #' 8 = "<br />
8 : B "" 6<br />
/ 4 G 7 H = "<br />
7 6 " " )3 "<br />
/ " 6 ! ""<br />
7 . 6 /<br />
) " = " ! *<br />
cd Nomadic Device Vehicle Status Server initiation<br />
«interface»<br />
RequestHandler<br />
+ StartService (String) : void<br />
+ SendResponse() : void<br />
«interface»<br />
intf::<br />
ServiceRepository<br />
«interface»<br />
intf::ServiceInfo<br />
Nomadic Device TCU<br />
«interface»<br />
intf::FepServer<br />
+ Accept() : byte[]<br />
«interface»<br />
intf::FepClient<br />
- serviceRepository: ServiceRepository<br />
- syncMLMessage: SyncMLMessage<br />
ServerListener<br />
+ «property get» getsyncMLMessage() : SyncMLMessage<br />
+ onDiscoveryEvent() : void<br />
+ «property set» setsyncMLMessage(SyncMLMessage) : void<br />
+ Send(byte[]) : void<br />
+ formatObexMessage(byte[]) : String<br />
+ parseObexMessage(byte[]) : byte[]<br />
+ formatSyncMLMessage(SyncMLMessage) : String<br />
+ parseSyncMLMessage() : SyncMLMessage<br />
+ createNDTrigger() : void<br />
«interface»<br />
intf::ServiceInfo<br />
- ServiceLocator: String<br />
- ShortDescription: String<br />
- LongDescription: String<br />
- MajorVersion: int<br />
- MinorVersion: int<br />
«interface»<br />
intf::ResponseHandler<br />
+ StartService(String) : void<br />
+ «property get» getLongDescription() : String<br />
+ «property get» getMajorVersion() : int<br />
+ «property get» getMinorVersion() : int<br />
+ «property get» getServiceLocator() : String<br />
+ «property get» getShortDescription() : String<br />
+ «property set» setLongDescription(String) : void<br />
+ «property set» setMajorVersion(int) : void<br />
+ «property set» setMinorVersion(int) : void<br />
+ «property set» setServiceLocator(String) : void<br />
+ «property set» setShortDescription(String) : void<br />
+ equals() : boolean<br />
+ toString() : String<br />
= 7 ! "<br />
= " )3 8 / ) = 6<br />
6 ! 1 F / ) ! " / )<br />
" 6 8 B / !<br />
B 8 "6 " 6 8 "6<br />
/ = B " " " 8<br />
66 / 8 1 F 7 6 )3 /<br />
''%$#%'$$5
) 46 8 " 9 2 6<br />
) )3 63 6 6 ! 1 6 / 2<br />
1 6 ! 6 8 B )3<br />
" " 8 /<br />
" . ! 8 "" /<br />
8.5.5 eCall discovery and initialization<br />
9 ! 30 3# 3 / )<br />
3 ! )3 ! " I J "<br />
" 6 ! " 6 " " )<br />
1 6 C,#D 9 < / ) B<br />
6 " / 7 8<br />
" " 6 " 7 7 6 ! )3<br />
! 7 /<br />
) 3 B 8 6<br />
/<br />
) "6 6 6 ! /<br />
3 2 # " . 66 / ) 8 "<br />
" 8 ! F / ) 3<br />
# 1 B 6 /<br />
) ! 7 "6 " *<br />
0<br />
0 $ ) )3 86 78<br />
8 7<br />
= "<br />
0 $ ) = " 6<br />
8 " 78 3<br />
" " 8<br />
/<br />
8.5.6 Service Consumption<br />
3 "6 " 7 ! =<br />
) / ) "" ! 7 ? "6 " 6 6<br />
6 " /<br />
" " " 8 ! " B<br />
"6 / ) 7 6 G 6H" 7 "6 " 78<br />
8) = / 9 ) = "6 " 7<br />
* = 2 / ) !<br />
! " /<br />
'#%$#%'$$5
8.5.7 Service Provisioning<br />
) 46 8 " 9 2 6<br />
cd Serv ice Consumption Interface<br />
«interface»<br />
service::<br />
NDIServ ice<br />
+ start() : boolean<br />
+ stop() : boolean<br />
Figure 34 NDIService<br />
) 4 9 8 ? 6<br />
6 " 8 ? 7 !<br />
= " )3 / ! B 8 8 ? B6<br />
B 786 6 >/(/# . ) 8 ? /<br />
2 2 7 78 "6 7<br />
= ) / 4 2 8 ?<br />
6 2 7 9= 3 6 78 7 /<br />
! B 8 6 " "6 "<br />
6 / " B"6 *<br />
• ! " " 3 3 78" 6<br />
6 78 6 8" 3 6 /<br />
• 2 78" B 3 .14 @ 8<br />
/<br />
) " " ! 6 E 21 "<br />
6 6 8 /<br />
) " ! 2 2 7 !<br />
7 ) = 2"6 " /<br />
8 ? 2 ! ! 6 ! "<br />
6 ! 8 ? 6 *<br />
• 4 " I9 6 J = " 8 ?<br />
) 8! = 8 )3 /<br />
• 4 " I9 6 J )3 8 ? = 8<br />
! ) 8 = " /<br />
) = 1 6 / ) = 8 )3<br />
2 7 "6 " ! = "<br />
" )3 ! ) = "<br />
! )3 " = " /<br />
(*' *' 32 # # =<br />
" ! !<br />
(*' *' % "<br />
'#%$#%'$$5
ud Nomadic Dev ice Gateway Use Case Overv iew<br />
) 46 8 " 9 2 6<br />
Nomadic Gateway<br />
Nomadic Device<br />
Accept<br />
FEP<br />
Activ ation<br />
Embedded<br />
Device<br />
FEP to FEP<br />
connection «realize»<br />
Initial Connect «realize»<br />
Nomadic<br />
Dev ice<br />
Submit<br />
Credentials<br />
Activate<br />
Autorized<br />
Serv ices on<br />
Nomadic Device<br />
Respond<br />
to eCall<br />
discov ery<br />
Create<br />
and Send<br />
MSD to PSAP<br />
Connect<br />
to Serv ice<br />
Model on<br />
Embedded Dev ice<br />
Verify<br />
Remote Serv ice<br />
View av ailability<br />
(Nomadic)<br />
Verify<br />
Credentials of<br />
Embedded<br />
Dev ice<br />
Modify<br />
Nomadic<br />
Dev ice<br />
Operation<br />
Nomadic<br />
Serv ice<br />
Browser<br />
«realize»<br />
«realize»<br />
Respond<br />
to Vehicle<br />
Status<br />
Discovery<br />
«realize»<br />
«realize»<br />
«realize»<br />
«realize»<br />
«realize»<br />
«realize»<br />
«realize»<br />
«realize»<br />
Authenticate and<br />
Authorization<br />
Vehicle Status<br />
Serv ice Discov ery<br />
and initialization<br />
eCall discovery<br />
and initialization<br />
Vehicle Status<br />
Change<br />
On eCall<br />
Serv ice<br />
Consumption<br />
Serv ice<br />
Prov isioning<br />
«realize»<br />
Serv ice<br />
View<br />
<strong>Download</strong> and<br />
Activ ate<br />
«realize»<br />
«realize»<br />
«realize»<br />
«realize»<br />
«realize»<br />
«realize»<br />
Figure 35 Use Case Overview<br />
«realize»<br />
Verify<br />
Credentials of<br />
Nomadic<br />
Dev ice<br />
«realize»<br />
«realize»<br />
«realize»<br />
«realize»<br />
Trigger<br />
Vehicle<br />
Status<br />
Discovery<br />
Send<br />
Vehicle Status<br />
Change Ev ent to<br />
Service<br />
«realize»<br />
Dispatch<br />
list of<br />
Available<br />
Serv ices<br />
Handle<br />
Nomadic<br />
Dev ice Data<br />
Verify<br />
Remote Serv ice<br />
View av ailability<br />
(Embedded)<br />
Poll<br />
Nomadic<br />
Device<br />
Embedded<br />
Device<br />
Submit<br />
Credentials<br />
Activ ate<br />
Authorized<br />
Serv ices on<br />
Embedded Dev ice<br />
Trigger<br />
eCall<br />
discov ery<br />
Activ ate<br />
eCall listener<br />
Send<br />
eCall vehicle<br />
trigger to<br />
Nomadic<br />
We still need to check this with the Rescue team. It<br />
is not clear what the eCall service will send as event<br />
data to the eCall client. Could be a formatted MSD<br />
message but it could also be an object containing<br />
some basic eCall info. This leaves the Nomadic<br />
device with the task to <strong>com</strong>pile the MSD message<br />
before sending it.<br />
''%$#%'$$5
8.6 Protocols<br />
8.6.1 Protocol Stack<br />
) 46 8 " 9 2 6<br />
= " 2 B6 78 6 "<br />
7 6 ! 6 4 9 8 : 8 ? C
) 46 8 " 9 2 6<br />
Chapter 9 - DEPLOYMENT AND PROVISIONING<br />
9.1 Introduction<br />
) 6 6 8" 6 /<br />
7 6 6 " # 7<br />
/ ) 6 6 66<br />
"6 " 3 3 3 /<br />
$ 7 6 6 7 #<br />
/ ) 6 6 66<br />
"6 66 3 8 "/<br />
6 8" 6 7 " "<br />
" 83 3 /<br />
9.1.1 Protocol-oriented<br />
) ) 6 8" 6 . 66 /<br />
) " 7 7 B ""<br />
! . 6 / ) ! 6<br />
6 7 6 "6 " /<br />
9.1.2 Domain Model<br />
) " " ! #5 7 ! 6<br />
6 6 7 ! "*<br />
''%$#%'$$5
cd Domain Model<br />
Service subscription concepts (optional)<br />
« entity »<br />
LocalizedServiceInfo<br />
- Name: string<br />
- Description: string<br />
- Icon: image<br />
1..*<br />
« entity »<br />
Service<br />
- SymbolicName: string<br />
- Version: version<br />
0..*<br />
« entity »<br />
Subscription<br />
0..1<br />
A subscription is an abstract concept that<br />
can be implemented in a number of ways.<br />
A subscription can be associated with an<br />
end user, a client system, the <strong>com</strong>bination<br />
of the two and/or any number of<br />
parameters available in the backend.<br />
The service is the<br />
concept that is visible<br />
to the end user.<br />
« entity »<br />
SubscriptionConstraints<br />
- BeginDate: date<br />
- EndDate: date<br />
- Renew: boolean<br />
« entity »<br />
Locale<br />
- Language: string<br />
0..1<br />
OsgiBundle<br />
) 46 8 " 9 2 6<br />
« entity »<br />
ServiceApplication<br />
« entity »<br />
Component<br />
« entity »<br />
- SymbolicName:<br />
DynamicComponent<br />
string<br />
- Version:<br />
- ServerTimestamp:<br />
version<br />
timestamp<br />
- MimeType: string<br />
UnixHostsFile<br />
The service application is the<br />
provisioning unit. It groups and orders a<br />
number of <strong>com</strong>ponents. It also contains<br />
an optional reference to the service it<br />
realizes. This is to enable feedback to<br />
the end user based on lifecycle events.<br />
LinuxBinary<br />
« entity »<br />
ClientSystemType<br />
A given dynamic <strong>com</strong>ponent is not<br />
necessarily the same over time or for<br />
different client systems. It can be a<br />
configuration 0..* that is derived from a number<br />
of parameters available in the control<br />
center, e.g. end user, client system,<br />
language, time etc. The ServerTimestamp<br />
indicates when the current instance was<br />
created by the control center.<br />
0..* {ordered}<br />
'#%$#%'$$5
ud Use Cases and Collaborations<br />
UC-OS-0025<br />
Deployment<br />
UC-OS-0022b<br />
Control Centre<br />
Initiated<br />
Prov isioning<br />
without the need<br />
for End User<br />
Acceptance<br />
UC-OS-0022a<br />
Control Centre<br />
Initiated<br />
Prov isioning with<br />
End User<br />
Acceptance<br />
UC-OS-0040<br />
Application<br />
Installation by<br />
Operator<br />
«include»<br />
UC-OS-0024<br />
Application<br />
Upload/<strong>Download</strong><br />
«include»<br />
UC-OS-0041<br />
Application Update<br />
by Operator<br />
«extend»<br />
«extend»<br />
«include»<br />
UC-OS-0006<br />
Upgrade of a<br />
Serv ice<br />
Application<br />
9.3 Deployment<br />
9.3.1 Scope<br />
«include»<br />
«include»<br />
«realize»<br />
UC-OS-0042<br />
Application<br />
Remov al by<br />
operator<br />
UC-OS-0022<br />
Control Centre<br />
Initiated Serv ice<br />
Prov isioning<br />
«extend»<br />
UC-OS-0020<br />
Serv ice<br />
Prov isioning and<br />
Application<br />
<strong>Download</strong><br />
«extend»<br />
UC-OS-0021 End<br />
User initiated<br />
Serv ice<br />
Prov isioning<br />
UC-OS-0007<br />
Automatic<br />
Upgrade of a<br />
Serv ice<br />
Application<br />
) 46 8 " 9 2 6<br />
«realize»<br />
«realize»<br />
«include»<br />
«include»<br />
Deployment<br />
Client System<br />
Management<br />
(CSMgmt)<br />
(from System Overview.OS)<br />
Prov isioning<br />
UC-OS-0053<br />
Serv ice<br />
Fullfilment<br />
«i ncl ude»<br />
UC-OS-0055<br />
Serv ice Discov ery<br />
Service Deployment Interface (SD-I)<br />
System Management Interface (SM-I)<br />
Figure 37 Use cases for Provisioning and Deployment<br />
Serv ice Centre<br />
(SC)<br />
(from System Overview.OS)<br />
Service Consumption Interface (SC-I)<br />
Telematics<br />
Control Unit<br />
(TCU)<br />
(from System Overview.OS)<br />
) 6 6 6 " 6 8 ) 966<br />
? ) 3 3 / 2 6 !<br />
6 " 3 3 / ) "6 "<br />
3 3 Q 86 ! 8 ! 7 78 6 6 ! 7<br />
3 3 /<br />
) 6 6 6 " 6 "<br />
"6 966 3 8 "/<br />
) " 7 " *<br />
• 2<br />
•<br />
• 8 " 1 F "<br />
'#%$#%'$$5
• " 7 6<br />
9.3.2 Solution<br />
) 46 8 " 9 2 6<br />
) ) " ?6 "6 !<br />
B" " . 6 8" /B" " 7 6 8"<br />
"6 / ) 8 B . 6 8" /B" 7 &/#/# ) .<br />
6 8" /B" / ) 6 8 ?6 7 &/#/, 8<br />
/<br />
9.3.3 The gst-deployment.xml file<br />
) . 6 8" /B" 6 8" 6 " / )<br />
" 9K " " 9K 8 " 86<br />
" 9K " )<br />
66 " / " 86 ! 7 7<br />
! 6 /<br />
Figure 38 Top-level structure of gst-deployment.xml<br />
2 6 8" 6 E 8 8 " 86<br />
3 3 6 " "" ! 7 8 " 86<br />
7 /<br />
If the deployment descriptor doesn’t contain any service definitions the Service<br />
Provider and Control Centre Operator either has to agree on the service definitions out<br />
of band or the Service Provider simply provides an application and leaves the<br />
definition of the service to the Control Centre Operator.<br />
'#%$#%'$$5
The Vendor Information Element<br />
) 46 8 " 9 2 6<br />
The purpose of the vendor information element is for the creator of the<br />
deployment package to be able to provide contact information in a textual<br />
non-structured textual format.<br />
The System Type Definition Element<br />
) 6 6 8 " 86 " 8 7 8 "<br />
86 7 66 78 66 /<br />
) 8 " 86 " ) B 8 6 "<br />
9K " /<br />
Figure 39 Structure of the system type definition element<br />
) 8 " 86 " ) ! 7 *<br />
• system-type-id – This attribute contains a string identifier for the system type.<br />
The exact syntax of this identifier is left undefined and can either use existing<br />
standards or can be generated by either the Service Provider or the Control<br />
Centre Operator. E.g. a Control Centre Operator could <strong>com</strong>municate to its<br />
Service Providers that it supports 2 system types with the identifiers<br />
“<strong>com</strong>.gstproject.terminal.osgi.r3” and “<strong>com</strong>.gstproject.terminal.linux”. The<br />
Control Centre Operator is responsible for setting a naming policy that<br />
prevents namespace collisions between system type identifiers when<br />
interacting with Service Providers.<br />
) 6 " ) B 6 8 " 86 / )<br />
" " 3 3 46 !<br />
" 8 " 6 "6 " 66 8 " 86 /<br />
) " " 8 " 6 8 "<br />
86 / ) " " 7 6 B " " 7 78<br />
3 3 7 " " ! 8 "<br />
66 78 66 8 " 86 /<br />
The feature element MUST have the following attribute:<br />
• feature-id – This attribute contains a string identifier for a feature. The exact<br />
syntax of this identifier is left undefined and can be generated by either the<br />
Service Provider or the Control Centre Operator. E.g. a Control Centre<br />
Operator could <strong>com</strong>municate to Service Providers that it recognizes and can<br />
check for presence of the following features<br />
“<strong>com</strong>.gstproject.feature.vehicle.sensor.odometer” and<br />
“<strong>com</strong>.gstproject.feature.gps”. The Control Centre Operator is responsible for<br />
setting a naming policy that prevents namespace collisions between features<br />
when interacting with Service Providers.<br />
'#%$#%'$$5
The Service Definition Element<br />
) 46 8 " 9 2 6<br />
) " . / )<br />
" ) " ? " /<br />
Figure 40 Structure of the service definition element<br />
) " ) ! 7 *<br />
• service-id - This attribute contains a string identifier for the service. The exact<br />
syntax of this identifier is left undefined and can be generated by either the<br />
Service Provider or the Control Centre Operator. The Control Centre Operator<br />
is responsible for setting a naming policy that prevents namespace collisions<br />
between services when interacting with Service Providers.<br />
• version – This attribute contains the version of the service in<br />
.. format. E.g. 1.12.0. The micro part is optional.<br />
) " 9K ! 7 *<br />
• default-locale – This attribute contains the default locale of the service<br />
definition. This is the locale that should be used if there is no information<br />
available for a requested locale. Locales are constructed by <strong>com</strong>bining 2-letter<br />
language codes [58] with 2-letter country codes [59] separated by a ‘-‘. If this<br />
attribute is not present the default locale is assumed to be en-US.<br />
) ? " " 6 / 2<br />
) " " 6 " / 2 9K "<br />
"<br />
) ? " 9K ! 7 *<br />
• locale – This attribute contains the locale of the service definition. Locales are<br />
constructed by <strong>com</strong>bining 2-letter language codes [58] with 2-letter country<br />
codes [59] separated by a ‘-‘. If this attribute is not present the locale is<br />
assumed to be en-US.<br />
) " " ) ? " /<br />
) 6 " ) ? 6 /<br />
) " 7 " 87 6 6<br />
/<br />
) " ) ! 7 *<br />
• height – The height in pixels of the icon.<br />
• width – The width in pixels of the icon.<br />
'#%$#%'$$5
) 46 8 " 9 2 6<br />
• mime-type – The mime-type of the file containing the data for the icon.<br />
• path – The path to the icon file relative to the root of the containing zip file.<br />
The Service Application Element<br />
) 6 6 66 " 7 ! "6<br />
"6 " 8 " 86 /<br />
) 66 " 9K 66 8 " 86 "<br />
66 " " " / 2<br />
) " 8 "6 " /<br />
Figure 41 Structure of service application element<br />
2 66 " 66 8 " 86 "<br />
! ! 8 " 86 66 / ) 8 "<br />
86 9K " " 8 " 86 " " . 6 8" /B"<br />
7 "" 7 7 ! 3 3<br />
46 / 2 66 " E 66 8 " 86<br />
" " ! 8 " 86 66 7<br />
"" 7 7 78 3 3 46 /<br />
2 66 " 66 "<br />
66 87 6 8 " ! 8<br />
F 78 8 "/ 2 66 " E<br />
66 " 66 ! 8 7 6<br />
F /<br />
) 66 " ) ! 7 *<br />
• 66 . A ) 7<br />
66 / ) B 8 B<br />
78 9K 7 7 " 3<br />
'#%$#%'$$5
) 46 8 " 9 2 6<br />
3 46 / ) 3 3 46 6 7<br />
" 6 8 6 " 6 7 ! 66<br />
! ! /<br />
• A ) 7 66<br />
`" a/`" a/`" a " / / /
) 46 8 " 9 2 6<br />
) 66 8 " 86 " 9K 66 8 " 86 "<br />
F " B F " " /<br />
Figure 42 Structure of the supported system types element<br />
2 66 8 " 86 66 8 " 86 " 8 " 86<br />
78 " 66 / 9 66 8 " 86 " 9K<br />
F B F " " 6 8 !<br />
7 66 78 8 " / 2 F "<br />
78 " ) 7 6 8 "<br />
7 66 / 2 B F " 3 3 46<br />
4 : " 8 8 F " /<br />
2 66 8 " 86 F "<br />
8 " 86 ) 66 78 " /<br />
2 66 8 " 86 B F " "<br />
3 3 46 4 : " 8 8 F "<br />
8 " 86 /<br />
) 66 8 " 86 " ) ! 7 *<br />
• 8 ". 86 . . ) 7 8 " 86 / )<br />
B 8 B B<br />
7 78 3<br />
3 46 / / / 3 3 46 ""<br />
66 ' 8 " 86 !<br />
G "/ 6 / " / / #H G "/ 6 / " / BH/ )<br />
3 3 46 6 7 " 6 8 6<br />
" 6 7 ! 8 " 86 ! !<br />
/<br />
) F . " ) ! 7 *<br />
• . . ) 7 / ) B<br />
8 B 7 78<br />
3 3 46 / / / 3 3 46<br />
"" ?<br />
6 !<br />
'#%$#%'$$5
) 46 8 " 9 2 6<br />
G "/ 6 / / / / " H<br />
G "/ 6 / / 6H/ ) 3 3 46 6 7<br />
" 6 8 6 " 6 7 !<br />
! ! /<br />
) B F " " B F " 7<br />
78 8 " 7 6 / ) 3 3 46 4 :<br />
" 86 F " /<br />
) 66 " 66 / 2 )<br />
" " /<br />
Figure 43 Structure of the supported locales element<br />
) " " 8 / ) " )<br />
! 7 *<br />
• . ) 7 '. C(>D<br />
) " 9K ! 7 *<br />
• 8A ) 7 '. 8 C(&D/<br />
2 " E 8 7 "<br />
7 " 66 /<br />
) 6 6 " 7 7<br />
6 6 6 " 7<br />
"" /<br />
) " 7 " 86 "<br />
" /<br />
) 6 " " ) 7 *<br />
• " . ) " 6 "<br />
• . ) 6 "<br />
• 6 . 9 6 6 "<br />
9.3.4 Physical Structure<br />
) 6 8 ) 6 8" 6 ?6 C5$D! .<br />
6 8" /B" 8 "6 6 78<br />
/<br />
) 7 "" ! *<br />
` ?6 a% . 6 8" /B"<br />
` ?6 a%` 6 a%` "6 a<br />
` ?6 a%` 6 a%` 6 a<br />
B"6 *<br />
. B"6 . 6 8" /?6<br />
'#%$#%'$$5
% . 6 8" /B"<br />
% . B"6 .7 /<br />
% . B"6 . / 6<br />
9.3.5 Example gst-deployment.xml<br />
@ ! B"6 . 6 8" /B" *<br />
) 46 8 " 9 2 6<br />
<br />
<br />
<br />
Any OSGi R3 implementation running J2ME<br />
CDC/Foundation<br />
<br />
<br />
<br />
<br />
GST Demo Service<br />
This Service Demonstrates GST<br />
<br />
<br />
<br />
<br />
<br />
<br />
Must have a minimum of 16 MB ram<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
) 46 8 " 9 2 6<br />
mime-type="x-application/osgi-bundle"><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
9.4 Provisioning Protocol<br />
) 6 6 4 9 " I4 9 J/<br />
" 6 784 9 7<br />
7 / 9 6 F "<br />
6 4 9 / ) 6 " 7 ! 4 9<br />
6 6 6 ! )/ B6 8<br />
! 6 6 ! 4 9 6 / @ !<br />
6 6 4 9<br />
6 ! F " ! 8 / )<br />
6 % " 4 9 6 7 4 9 7<br />
1 " C5$D/<br />
9.4.1 OMA Device Management Bootstrap<br />
) 66 7 66 C#'D 6 4 9 7<br />
78 6 / 2 6<br />
7 8 6 6 6 " "<br />
" 7 66 4 9 / ) 7 66 "<br />
7 C#'D "" ! 6<br />
6 ! /<br />
9.4.2 OMA DM Device Description Framework DTD<br />
) 6 6 6<br />
F " 4 9 ) / 2"6 " 6 6<br />
) ) C,$D/<br />
9.4.3 OMA Device Management Notification Initiated Session<br />
) 6 6 F 6 7 78<br />
3 3 ! 78 / ) = 2<br />
" " 4 9 C#(D / 2 ! 3 3<br />
! . " " B"6<br />
9 / ) " ! 6 /<br />
= 6 4 9 7 " 8 6 /<br />
0<br />
9 $<br />
31. .=4)2.3.$$< 46 ) 66<br />
'#%$#%'$$5
) 46 8 " 9 2 6<br />
31. .=4)2.3.$$' 46 ) 3 66<br />
31. .=4)2. .$$< 46 ) 66 .<br />
" "<br />
31. .=4)2. .$$' 46 ) 66<br />
F " . 14. .3.$$< C#5D/<br />
Table 13: Provisioning protocol requirements.<br />
9.4.4 OMA Device Management Protocol<br />
) 6 6 " 6 4 9<br />
C#5D " 66 " 8*<br />
9.4.5 General<br />
0<br />
9 $<br />
. 14. .3.$$< 46 ) 66<br />
. 14. . .$$< 46 ) 66 I J<br />
. 14. .3.$$# 46 ) . " "<br />
. 14. .3.$$, 46 ) 3 . " "<br />
. 14.3.$
9.4.7 Generic Alerts<br />
) 46 8 " 9 2 6<br />
) 6 6 " 6 9 4 9<br />
" " 8/<br />
0 9 $<br />
DM-PRO-GAlert-C-001 46 ) A Generic Alert have a<br />
relation to a MO.<br />
. 14. 9 .3.$$# 46 ) : 12<br />
DM-PRO-GAlert-C-005 46 ) Type info must be<br />
included.<br />
DM-PRO-C-011 46 ) Sending of Generic<br />
Alerts by clients<br />
DM-PRO-C-010<br />
DM-PRO-GAlert-S-002<br />
9.4.8 User Interaction <strong>com</strong>mands<br />
46 ) Client Support for<br />
asynchronous data via<br />
alerts<br />
46 ) Actions are performed<br />
by the server as a result<br />
of a Generic Alert.<br />
Table 16: Provisioning protocol requirements.<br />
2"6 " 6 6 ) 66<br />
6 8 3 " 78C#5D/ 4<br />
9K 7 66 /<br />
DM-PRO-C-007<br />
0 9 $<br />
46 ) Client support for executing<br />
User Interaction Commands<br />
DM-PRO-UI-C-001 46 ) Client support for Display<br />
DM-PRO-UI-C-002 46 ) Client support for<br />
Confirmation<br />
DM-PRO-UI-C-006 46 ) Ordering of user interaction<br />
<strong>com</strong>mands<br />
DM-PRO-S-007<br />
46 ) Server support for sending<br />
User Interaction Commands<br />
DM-PRO-UI-S-001 46 ) Server support for Display<br />
DM-PRO-UI-S-002 46 ) Server support for<br />
Confirmation<br />
DM-PRO-UI-S-006 46 ) Ordering of user interaction<br />
<strong>com</strong>mands<br />
'#%$#%'$$5
) 46 8 " 9 2 6<br />
Table 17: Provisioning protocol requirements.<br />
9.4.9 OMA Device Management Representation Protocol<br />
66 6 Atomic Exec "" C#-D F<br />
6 /<br />
9<br />
0<br />
DMREPPRO-PCE-C-004 ) ) 66 9 "<br />
"" "<br />
DMREPPRO-PCE-C-005 ) ) 66 B<br />
"" "<br />
Table 18: Provisioning protocol requirements.<br />
9.4.10 OMA Device Management Security<br />
) 6 6 8 4 9 C#>D/ 2<br />
7 8 F 4 9 % 6 6<br />
8 6 8 78 8 6<br />
8 / ) 6 6 8 )) / 7<br />
)) 7 4 9 C#$D/<br />
9.4.11 OMA Device Management Standardized Objects<br />
2"6 " 6 6 ) 66 4 9<br />
? 47 78 C#& D/ 2 "6 " )<br />
66 6 2 7 B 12 " " 7 " 6 7<br />
" " 7 7 8/ ) ! 8<br />
" " 7 " 6 6 6 /<br />
0 9 $<br />
31. . ) 4@ .3.$$, 46 ) 3 66 2 7 B<br />
12<br />
31. . ) 4@ . .$$, 46 ) 66 2 7 B<br />
12<br />
Table 19: Provisioning protocol requirements.<br />
9.4.12 OMA Device Management Tree and Description<br />
) 6 6 F I93:J/<br />
) 6 B ! " 8 8<br />
'#%$#%'$$5
) 46 8 " 9 2 6<br />
)/ 2"6 " 9K 66 93: 6 6 8 ) 7<br />
4 : =4) 6 8/<br />
9 6 6 F 66 6<br />
6 6 ! 4 9 F " C,$D/<br />
9 *<br />
0 9 $<br />
)= . 6.3.$$< 8 9K 3 66 93:<br />
6 6 8<br />
)= . 6. .$$< 8 9K 66 93:<br />
6 6 8<br />
)= . 6.3.$$<<br />
)= . 6.3.$$'<br />
)= . 6.3.$$#<br />
)= . 6.3.$$(<br />
)= . 6.3.$$><br />
)= . 6. .$$
$<br />
) 46 8 " 9 2 6<br />
GST<br />
'#%$#%'$$5
$/GST/<strong>com</strong>ponents<br />
$<br />
GST<br />
<strong>com</strong>ponents<br />
) 46 8 " 9 2 6<br />
*<br />
+<br />
Figure 45 Components Management Object.<br />
) 6 "6 3 "/<br />
Access type: Get<br />
Format: node<br />
Occurrence: One<br />
Scope: Permanent<br />
$/GST/<strong>com</strong>ponents/<br />
'#%$#%'$$5
Scope: Dynamic<br />
) 46 8 " 9 2 6<br />
$/GST/<strong>com</strong>ponents///State<br />
) "6 8 "/<br />
* % % % # % # ) # %/ )<br />
" " ) 6 = / ) 8 " 9K<br />
" ! " " /<br />
Access type: Get<br />
Format: int<br />
Occurrence: One<br />
Scope: Dynamic<br />
Default value: Staging<br />
$/GST/<strong>com</strong>ponents///Transition<br />
) "6 /<br />
B " " 3 " ! 8 8 "6<br />
"6 / 2 B "" )<br />
($$ 3 "" 6<br />
) '$$ 4L/ ) "<br />
B "" / * % #/ $<br />
6 "6 / )<br />
6 78 I . J " " !<br />
7 / ) B "" ) G,$#<br />
7 H "6 / ) B<br />
"" " 8 6 8 /<br />
Access type: Exec<br />
Format: null<br />
Occurrence: One<br />
Scope: Dynamic<br />
$/GST/<strong>com</strong>ponents///Failure<br />
) 8 "6 / B<br />
Transition " 7 6 6 B /<br />
2 6 " /<br />
$/<br />
Access type: Get<br />
Format: int<br />
Occurrence: ZeroOrOne<br />
Scope: Dynamic<br />
$/GST/<strong>com</strong>ponents///Data<br />
) 7 8 ! "6 / ) 2 86<br />
86 "6 / ) ! ! 8<br />
6 "6 786 " Add Replace "" / )<br />
URL / % " /<br />
Access type: Get, Replace<br />
Format: bin<br />
Occurrence: ZeroOrOne<br />
Scope: Dynamic<br />
$/GST/<strong>com</strong>ponents///URL<br />
'#%$#%'$$5
) 46 8 " 9 2 6<br />
) 1: ! ! 6 / )<br />
1: ! " " 6 @ / )<br />
! 7 7 ! 2 86<br />
6 " 1:/ ) ! ! 8 6 "6 /<br />
) Data 8/ $<br />
7 ! " " /<br />
Access type: Add, Get, Replace, Delete<br />
Format: chr<br />
Occurrence: ZeroOrOne<br />
Scope: Dynamic<br />
9.5.3 Services Management Object<br />
) 7. 86 8 7 !<br />
8 "/ 2<br />
" /<br />
$<br />
GST<br />
$/GST/services<br />
services<br />
*<br />
+<br />
CurrentLocale<br />
'#%$#%'$$5
Access type: Get<br />
Format: node<br />
Occurrence: One<br />
Scope: Permanent<br />
$/GST/services/<br />
) 46 8 " 9 2 6<br />
) 6 " 7 / ) "<br />
8"7 " " " / ) 7<br />
! 7. /<br />
Access type: Add, Get, Replace, Delete<br />
Format: node<br />
Occurrence: ZeroOrMore<br />
Scope: Dynamic<br />
$/GST/services//<br />
) 6 / ) "<br />
" " / ) 6<br />
7 7 6 b / / " . " 7 /<br />
Access type: Add, Get, Replace, Delete<br />
Format: node<br />
Occurrence: OneOrMore<br />
Scope: Dynamic<br />
$/GST/services///CurrentLocale<br />
) 6 8 / 2 6<br />
8 7. / 2 86 8 8<br />
/ 2 6 7 8 6<br />
8/ 2 B 7 4 : 7<br />
7. /<br />
Access type: Get, Replace, Delete<br />
Format: chr<br />
Occurrence: ZeroOrOne<br />
Scope: Dynamic<br />
$/GST/services///locales<br />
) 6 ? " 7 /<br />
Access type: Add, Get<br />
Format: node<br />
Occurrence: One<br />
Scope: Dynamic<br />
$/GST/services///locales/<br />
<br />
) 6 ! ? " 7 /<br />
Access type: Add, Get, Replace, Delete<br />
Format: node<br />
Occurrence: ZeroOrMore<br />
Scope: Dynamic<br />
$/GST/services///locales/<br />
/Name<br />
'#%$#%'$$5
) 46 8 " 9 2 6<br />
) 6 8 " 6 78 6<br />
/<br />
Access type: Get, Replace, Delete<br />
Format: chr<br />
Occurrence: ZeroOrOne<br />
Scope: Dynamic<br />
$/GST/services///locales/<br />
/Description<br />
) 6 6 78 6<br />
/<br />
Access type: Get, Replace, Delete<br />
Format: chr<br />
Occurrence: ZeroOrOne<br />
Scope: Dynamic<br />
$/GST/services///locales//Icon<br />
) 6 78 6 /<br />
Access type: Get, Replace, Delete<br />
Format: bin<br />
Occurrence: ZeroOrOne<br />
Scope: Dynamic<br />
$/GST/services///<strong>com</strong>ponents<br />
) 6 "6 ? /<br />
Access type: Get<br />
Format: node<br />
Occurrence: ZeroOrOne<br />
Scope: Dynamic<br />
$/GST/services///<strong>com</strong>ponents/<br />
<br />
) 6 " "6 ? / ) "<br />
8"7 " "6 " " /<br />
) 7 ! 7. / 2<br />
6 7 8 6 8/<br />
Access type: Add, Get, Delete<br />
Format: node<br />
Occurrence: ZeroOrMore<br />
Scope: Dynamic<br />
$/GST/services///<strong>com</strong>ponents/<br />
/<br />
) 6 "6 ? / )<br />
"6 c% )% "6 /<br />
B "6 ! " " / ) "<br />
"6 " " / 2 6 7 8<br />
6 8/<br />
Access type: Add, Get, Delete,<br />
'#%$#%'$$5
Format: null<br />
Occurrence: OneOrMore<br />
Scope: Dynamic<br />
) 46 8 " 9 2 6<br />
$/GST/services///settings<br />
) 6 6 6 " /<br />
Access type: Get<br />
Format: node<br />
Occurrence: ZeroOrOne<br />
Scope: Dynamic<br />
$/GST/services///settings/<br />
<br />
) 6 6 6 " 78<br />
" / ) 6 6 " /<br />
Access type: Add, Get, Replace, Delete<br />
Format: chr<br />
Occurrence: ZeroOrMore<br />
Scope: Dynamic<br />
9.5.4 Users Management Object<br />
) 4 6 " ! 7 6<br />
" " /<br />
'#%$#%'$$5
$/GST/users<br />
$<br />
GST<br />
users<br />
) 46 8 " 9 2 6<br />
*<br />
FirstName ?<br />
LastName ?<br />
'#%$#%'$$5
) 46 8 " 9 2 6<br />
) " / 8 6 ? 6 8<br />
6 6 /<br />
Access type: Get, Replace, Delete<br />
Format: chr<br />
Occurrence: ZeroOrOne<br />
Scope: Dynamic<br />
$/GST/users//LastName<br />
) " / 8 6 ? 6 8<br />
6 6 /<br />
Access type: Get, Replace, Delete<br />
Format: chr<br />
Occurrence: ZeroOrOne<br />
Scope: Dynamic<br />
$/GST/users//Email<br />
) " / 8 6 ? 6 8<br />
6 6 /<br />
Access type: Get, Replace, Delete<br />
Format: chr<br />
Occurrence: ZeroOrOne<br />
Scope: Dynamic<br />
$/GST/users//CreatedDate<br />
) ! ! 8 "/ 8<br />
6 ? 6 86 6 /<br />
Access type: Get, Replace, Delete<br />
Format: chr<br />
Occurrence: ZeroOrOne<br />
Scope: Dynamic<br />
$/GST/users//Locale<br />
) 6 / 2 7 / /<br />
? / 2 ? " 7 66 78 /<br />
Access type: Get, Replace, Delete<br />
Format: chr<br />
Occurrence: ZeroOrOne<br />
Scope: Dynamic<br />
$/GST/users//subscriptions<br />
) 6 7 6 /<br />
Access type: Get<br />
Format: node<br />
Occurrence: ZeroOrOne<br />
Scope: Dynamic<br />
$/GST/users//subscriptions/<br />
) 6 " 7 6 3 "/ ) "<br />
8"7 " 7 6 " " / 2<br />
'#%$#%'$$5
) 46 8 " 9 2 6<br />
7 7 7 7 / 4<br />
6 " State ! %.<br />
Access type: Add, Get, Replace, Delete<br />
Format: node<br />
Occurrence: ZeroOrMore<br />
Scope: Dynamic<br />
$/GST/users//subscriptions//<br />
ServiceID<br />
) 6 ! 7 6 / 2<br />
! ` 8"7 = " a ` a "<br />
7. 6 78 I*J/ 2 6 7 8<br />
6 8/<br />
Access type: Add, Get, Replace, Delete<br />
Format: chr<br />
Occurrence: one<br />
Scope: Dynamic<br />
$/GST/users//subscriptions//State<br />
) 6 7 6 / * %<br />
2 % 2 / $ / "<br />
9K 7 F 3 " 9 C#5D/ 2 6 7 8<br />
"" " 7 6 /<br />
Access type: Get, Replace<br />
Format: int<br />
Occurrence: One<br />
Scope: Dynamic<br />
$/GST/users//subscriptions//<br />
Transition<br />
) 78 F I " J 7 6 / ) 7 6<br />
3 " ! 8 8 "6 7 6<br />
! B / 2 B "" )<br />
G($$ 3 "" H 6 )<br />
G'$$ 4LH/<br />
2 B ! ) 6 78<br />
I . J " " ! 7<br />
/<br />
) " B "" /<br />
* / ) B "" ) G,$#<br />
7 H "6 / ) B ""<br />
" 8 6 8 /<br />
Access type: Exec<br />
Format: null<br />
Occurrence: One<br />
Scope: Dynamic<br />
$/GST/users//settings<br />
) 6 6 6 " /<br />
'#%$#%'$$5
Access type: Get<br />
Format: node<br />
Occurrence: ZeroOrOne<br />
Scope: Dynamic<br />
$/GST/users//settings/<br />
<br />
) 46 8 " 9 2 6<br />
) 6 6 6 "<br />
78 8"7 " /<br />
Access type: Add, Get, Replace, Delete<br />
Format: node<br />
Occurrence: ZeroOrMore<br />
Scope: Dynamic<br />
$/GST/users//settings//<br />
<br />
) 6 6 6 " 78<br />
" / ) 6 6 " /<br />
Access type: Add, Get, Replace, Delete<br />
Format: chr<br />
Occurrence: ZeroOrMore<br />
Scope: Dynamic<br />
9.6 Behaviour Associated with the Management Objects<br />
9.6.1 User Display Interactions<br />
6 8 B " "<br />
4 9 6 2 3 "" C#5D/ = 6 )<br />
"6 6 8 /<br />
9.6.2 Components Management Object<br />
3 . " 4 "6 4 B 7<br />
6 / ) 2 7 7 / )<br />
8 " 8 ! "6 ?<br />
! 8 F / 9 "6 7 7<br />
" " 1: ! " " .<br />
" 7 7 6 " " 4 ;<br />
Semantics of Transition execution and <strong>Download</strong> of <strong>com</strong>ponent<br />
) 4 9 ! 6 6 B7 6 7<br />
! 6 !<br />
6 / ) 3 "6 4 ! 6 !<br />
4 9 I / / 9 %1 6 J 8 7 !<br />
" " I B"6 6 7 ! 6 4 9<br />
!
Upload of Data via OMA DM<br />
) 46 8 " 9 2 6<br />
) ! B"6 ! ! 4 9 8 " "6<br />
6 G1 6 H ""<br />
6 7 86 / ) ) )<br />
B /<br />
Client<br />
OMA DM<br />
“Discovery + <strong>Download</strong>”<br />
Push Initiation<br />
Device Information Exchange<br />
Replace $/<strong>com</strong>ponents///Data<br />
Replace …../targetstate<br />
Exec Mgmt Tree Object -> Transition<br />
Figure 48 Data upload via OMA DM.<br />
Upload of Data through an Alternative <strong>Download</strong> Mechanism<br />
Control Center<br />
(OMA DM<br />
Server)<br />
) ! B"6 ! ! 4 9 B !<br />
" G1 6 H "" 6 8 1: !<br />
6 7 IB ?J 7 86<br />
! " 7 / ) ) )<br />
B ! 1: 7 86 /<br />
Mobile<br />
Device<br />
OMA DM<br />
“Discovery”<br />
Push Initiation<br />
Device Information Exchange<br />
Replace $/<strong>com</strong>ponents///URL<br />
Replace ……./targetstate<br />
Exec Mgmt Tree Object -> Transition<br />
Request D/L Descriptor<br />
D/L Descriptor<br />
Request Update Package<br />
Update<br />
OMA DL<br />
“<strong>Download</strong>”<br />
Figure 49 Data upload though OMA DL.<br />
Control Center<br />
(OMA DM<br />
Server<br />
Content<br />
Server<br />
2 "6 "68 B !<br />
F "6 1:<br />
"6 / 2 1: "68 ! G($' A 1:H/<br />
'#%$#%'$$5
4 9 : ! " "/<br />
Use of Generic Alert for Notifications<br />
) 46 8 " 9 2 6<br />
9 ! ! B I<br />
J )<br />
9 " / ) " ! *<br />
* )<br />
G1 2 * ) 12 3 "6 7 6 . 8<br />
/ ) 7 8<br />
* / /<br />
0 * 78 6 6 B "" /<br />
2 6 B "" )<br />
) "<br />
9 /<br />
2 6 B ""<br />
) ) =4)<br />
9 /<br />
9 6 4 : 6 8<br />
2 " " /<br />
Result codes<br />
) ! 7 7 "6<br />
/ 2 "6 " ! /<br />
0 3<br />
$ 0<br />
2<br />
'$$ ) "6 8<br />
,$$ 3 3 6 ". 6 "<br />
6<br />
,$< = 6 .<br />
!<br />
) 6<br />
! "6<br />
,$' = 6 A 2 ) 6<br />
! "6 7<br />
,$, " 7<br />
,$(<br />
9<br />
6 8<br />
,$5 = 9 6 7 3 = 9 6 7<br />
B"6 ! "<br />
'#%$#%'$$5
) 46 8 " 9 2 6<br />
,$- 9 9 ! 1 F 7<br />
9 !<br />
,$> 1 F ) " .4 3 " .<br />
,$& ! ) 6 1:<br />
!<br />
,
7 7 <<br />
7 7 '<br />
7 7 ,<br />
7 7 ><br />
9.7 Use Case Realizations<br />
) 46 8 " 9 2 6<br />
Table 23: Subscription state encoding.<br />
) 7 ! 3 &/' ?<br />
6 / 9 B"6 !<br />
" . 78 B"6 /<br />
9.7.1 Subscribe to service from client<br />
) 7 6 . 3.4 .$$'
) 46 8 " 9 2 6<br />
9 c% )% % % 7 6 % B"6 7 6 %<br />
2<br />
B"6 *
9 "<br />
) 46 8 " 9 2 6<br />
Table 25: Command sequence.<br />
2 7 6 6 ! ! " "<br />
3 3 " 8 7 6 %! 6 "<br />
7 6 6 /<br />
6 B 7 6 %/ 2<br />
7 6 " "<br />
! 3 3 9 ! *<br />
* / /<br />
0 * B ""<br />
:1 2 * c% )% % % 7 6 % B"6 7 6 %<br />
* 7 7 I 'J 7 7 I >J<br />
Upgrade of a service with user intervention<br />
) 6 . 3.4 .$$$5/ 2 B6 6<br />
6 GB"6 H "
) 46 8 " 9 2 6<br />
) ! ! 9 ! 6 "<br />
68 ! ! 7 6 ! 6 /<br />
6 B 7 6 %/ 2<br />
7 6 " "<br />
! 3 3 9 ! *<br />
* / /<br />
0 * B ""<br />
:1 2 * c% )% % % 7 6 % B"6 7 6 %<br />
* 7 7 I 'J 7 7 I >J<br />
9.7.4 Upgrade of a service without user intervention<br />
) 6 . 3.4 .$$$-/ 2 B6 6<br />
6 GB"6 H "
9.7.5 Activate new <strong>com</strong>ponent<br />
) 46 8 " 9 2 6<br />
) 66 . 3.4 .$$,$/ 2<br />
6 ! ! "6 ? / ) "<br />
B"6 "6 GB"6 H G
0 0 H 0<br />
) 46 8 " 9 2 6<br />
0 # %<br />
@ 9 "<br />
B c% )% "6 % B"6 %
) 46 8 " 9 2 6<br />
Chapter 10 - IDENTITY, AUTHENTICATION,<br />
AUTHORIZATION<br />
10.1 Introduction<br />
9 ' ! 6 3 8 " 1 F "<br />
.4 I 3.4 .$$(&J ! / ) !<br />
! 8 ! 8<br />
" . " "<br />
Z " " "6 /<br />
7 6 " 6 6 6 6 " "<br />
! 8 F " 6 8 ?<br />
6 / I J<br />
.4 6 I6 78 ) J ! " 8<br />
6 8" 6 6 " /<br />
? 6 3 3 !<br />
6 7 % ? /<br />
8 F " ) .4 6 6<br />
! 6 ) 8 76 // :; 3;#/
) 46 8 " 9 2 6<br />
7 8 )) % )) 49 / ) 6<br />
) 6 / 9 6 7<br />
7 7 ! ?<br />
6 6 ? F /<br />
• 2 6 6 8 6<br />
/<br />
• 6 " ?<br />
• ) N : 86 N :<br />
"6 " 8" " 9 : /<br />
) 9 : 6 6 G<br />
H " G H 6 ?<br />
6 ! 8 .4 6 " 8 E6<br />
" ! 6 " "" 8<br />
? " " /<br />
" ? .4 6 ""<br />
" I 8" J 7 78 ) I/ / 3<br />
3 J / @ 8 6 *<br />
• G 7 86 H "" 8<br />
• 78 3 3 I6 ) 9 Z<br />
J<br />
• 8" 66 " " 7 ! 9<br />
2 6 ) 6 ! *<br />
• " 78 9 ! 78<br />
" 0 " I/ / 0 7"!/ "J<br />
9 "6 6 8 _<br />
To address privacy issues identity mapping mechanisms (see illustration below) based<br />
on specific needs of GST between an Aggregator and federated Service Providers and<br />
between GST Aggregators as are required.<br />
'#%$#%'$$5
10.2 Use Case Diagram<br />
10.3 Interfaces<br />
) 46 8 " 9 2 6<br />
Figure 2 – Distributed Authentication in GST Nodes<br />
:; 3;#/< 9 2 6 3 6 5 9 ?<br />
3 7 3 6 - 9 3 7 Q 6 8<br />
2 /<br />
10.4 Protocol Stack and Specification<br />
:; 3;#/< 9 2 6 3 6 5 9 ?<br />
3 7 3 6 - 9 3 7 Q 6 8<br />
2 /<br />
10.5 Message Structure<br />
:; 3;#/< 9 2 6 3 6 5 9 ?<br />
3 7 3 6 - 9 3 7 Q 6 8<br />
2 /<br />
10.6 API Specification<br />
:; 3;#/< 9 2 6 3 6 5 9 ?<br />
3 7 3 6 - 9 3 7 Q 6 8<br />
2 /<br />
'#%$#%'$$5
10.7 Interactions<br />
) 46 8 " 9 2 6<br />
:; 3;#/< 9 2 6 3 6 5 9 ?<br />
3 7 3 6 - 9 3 7 Q 6 8<br />
2 /<br />
'#%$#%'$$5 $
) 46 8 " 9 2 6<br />
91) # . 2 : =)9)24= 2 9=<br />
34=3: 24=<br />
'#%$#%'$$5 <
Chapter 11 - REFERENCE MODEL<br />
) 46 8 " 9 2 6<br />
) 6 7 "6 ! 6<br />
7 78 6 / ) " 7<br />
? "6 " ! 6 7 8<br />
/ ) " "6 ! "<br />
6 "6 " ! 6 8"<br />
"6 ) ) " " ! /<br />
11.1 Components<br />
Figure 50 Component diagram<br />
9 B6 " 7 ) 7 #
) 46 8 " 9 2 6<br />
• $ A ) 6 8 . /<br />
966 "" ! 78" 3<br />
78 46 8 " /<br />
• $ 3 $ A 9 6" " 6<br />
6" 6 8" 8 6 8<br />
966 3 3 / ) 46 8 " " 6<br />
6 8 66 7" /<br />
3 "6 = " "6 " 7 " !<br />
" " /<br />
3 "6<br />
6<br />
'#%$#%'$$5 #
) 46 8 " 9 2 6<br />
0 # 0 ) $ 5<br />
3 9 ! 966<br />
3 78 " ? 3<br />
/ ) 3 6<br />
966 66 6 8" "<br />
7 M /<br />
2<br />
''%$#%'$$5 ,
11.2 Nodes<br />
) 46 8 " 9 2 6<br />
Figure 51 Deployment Diagram<br />
9 B6 " 7 ) 7 ##/<br />
''%$#%'$$5 (
) 46 8 " 9 2 6<br />
= = " " 7 " !<br />
" " /<br />
= 6 ) 6 " " 7<br />
/<br />
2 . O ) INJ " 6 "<br />
G H I "" 7.6 J 2 .<br />
I C#D . . C,DJ/<br />
Table 33 - Definition of Terms Used when Describing Collaborations<br />
'#%$#%'$$5 5
) 46 8 " 9 2 6<br />
# # # 0 ) $ 5<br />
3 8 " = ) G ! H "6 78<br />
966 1 " 2<br />
= " 2 ! " / )<br />
"6 "<br />
3 /<br />
3 1 7 6 / 46<br />
8 " 6 3 "<br />
966 ! )<br />
6 3 8 " 3<br />
""<br />
' 1 6 8" "6 78 4<br />
6 / 9 66<br />
6 3 3 8 78<br />
) : 9<br />
8 , ) 46 "6 "<br />
8 : 7 / ) 6 6<br />
) 6 7<br />
6 "6<br />
9 8 ! 6<br />
7 6 8 " / "<br />
''%$#%'$$5 -
) 46 8 " 9 2 6<br />
Chapter 12 - ARCHITECTURAL ISSUES AND DECISIONS<br />
) 6 7 "<br />
/ ) 6 /<br />
12.1 ARE: considered alternatives for positioning<br />
! " "6 " 7 *<br />
9 2.3 I / " / / 86 / J<br />
1
) 46 8 " 9 2 6<br />
6 . I " " 6 . 6 . /J/<br />
4 9 ) 6 . 6 B87 ! 4 9 ) 4 9 2<br />
66 6 9 2 8<br />
8 " 66 "6 / 2 " 4 4 9 ) 6 6 8<br />
B"6 3 " 4 4 9 ) 6 . " 6<br />
7 ) 6 . " 8" 6<br />
B 7 8 8/ .<br />
8G H 7 6 /<br />
2 ! ! 6 8 4 9 ) 6 . !<br />
6 7 " 6 . " ! !<br />
! ! 6 " " 7<br />
8 " 6 . " 7 6 ! G6 .<br />
6 . H 4 9 ) 6 . 7 7 8<br />
66 /<br />
6 " 6 6 7 " 6 7 " " 4<br />
) 8 86 66 6 7 " ! ! 9 2<br />
8 4 4 9 )/ @8G! H " 6 "<br />
6 7 6 / 2 6 7<br />
3 7 4 4 9 ) 9 2/ ) 4 9 ) 9 2 "<br />
6 B6 " 6 78 "6 4 " ! 7<br />
6 6 " 66 ! ! ! /<br />
" " G H 9 2 ! 784 4 9<br />
) 7 " 8 : /<br />
" 7 12 " 7 6 / 8<br />
! / @8 ! E" 4 4 9 ) 9 2<br />
7 8 7 " 8 : 6<br />
7 " 6 / ) 8 : 4 4 9 ) !<br />
7 8 4 9 ) 6 . /<br />
3 " 9 " 8 !<br />
! 66 ! 6 " 7 "<br />
! 8 7 8GB6 7 H 7 8 : 78 "6 " "<br />
4 9 ) 6 . ! ! 87 6 B87 ! 4 9 )<br />
" ! 8 4 9<br />
) 6 . / ) ! 6 ! ! 8* )<br />
6 78 6 / 4 ? 78<br />
9 " / B6 ! 78 4 9 )<br />
6 . /<br />
) !3 % # "<br />
4 5* 3 " 3 " " " 7 / 4<br />
" 87 " G 8 H "<br />
7 " G 9 " IJ/ IJH/ )<br />
" G 7 H " " 7<br />
6 " F " B 7 / )<br />
7 6 ! !<br />
7 / ) " "" 7 / )<br />
"" " 7 !<br />
6 " ! ! ! / 2"" 7 8<br />
66 6 7 8<br />
'#%$#%'$$5 &
) 46 8 " 9 2 6<br />
! ! 6 " " I<br />
J/ 7 ! 8 ! 6 7 "<br />
8 7 /<br />
'#%$#%'$$5
1M.4 .<br />
$$$<<br />
1M.4 .<br />
$$$,<br />
1M.4 .<br />
$$$(<br />
1M.4 .<br />
$$$-<br />
1M.4 .<br />
$$
1M.4 .<br />
$$'$<br />
1M.4 .<br />
$$'<<br />
1M.4 .<br />
$$''<br />
1M.4 .<br />
$$'#<br />
1M.4 .<br />
$$',<br />
1M.4 .<br />
$$'(<br />
1M.4 .<br />
$$'5<br />
1M.4 .<br />
$$(<<br />
) 8 ) "<br />
7 6 "<br />
8 " " 4 : 7<br />
" 7 7 ! 8<br />
7 /<br />
) 46 8 " 9 2 6<br />
0 $<br />
F " /<br />
) " 7 !<br />
"6 " )/ ) )<br />
6 ! !<br />
6 "<br />
/<br />
) ) 6 7<br />
6 6 7 /<br />
F " 7<br />
8 78 8<br />
86 ) 6<br />
F " 7 78<br />
"6 " /<br />
) 6 " ) F " 78 8<br />
7.6 /<br />
) 3 3 ) 7 7<br />
" " 6<br />
3 " "<br />
$<br />
9 3 9:: 7 7<br />
6 8 66 8<br />
). "6 3 3<br />
6 "<br />
6 8"<br />
9 ) 7<br />
3 3<br />
" 6 8 "<br />
66 "6 " /<br />
) 9:: 7 ! 8<br />
6<br />
66 6 !<br />
6 8 66 E<br />
6 " F "<br />
0<br />
3 78 3 6 & A 6 8"<br />
/<br />
3 78 3 6 & A 6 8"<br />
/<br />
3 78 3 6 & A 6 8"<br />
/<br />
3 78 3 6 & A 6 8"<br />
/<br />
3 78 3 6 & A 6 8"<br />
/<br />
1M.4 . 9 8 ). "6 ) 3 783 6 & A 6 8" 3<br />
'#%$#%'$$5
$$#$ 7 7 8 ).<br />
"6 3 3<br />
" /<br />
1M.4 .<br />
$$#<<br />
1M.4 .<br />
$$#'<br />
1M.4 .<br />
$$#(<br />
1M.4 .<br />
$$#5<br />
1M.4 .<br />
$$#-<br />
1M.4 .<br />
$$#><br />
1M.4 .<br />
$$#&<br />
1M.4 .<br />
$$,<<br />
1M.4 .<br />
$$,'<br />
) ) 7<br />
%6 8<br />
3 8 "<br />
3 3<br />
) 3 3 9K 7 7<br />
" 8<br />
3 8 "<br />
966 8 "<br />
/<br />
) ) 8 " ) 6<br />
! . 8 " "<br />
966 /<br />
) ! 3 8 " !<br />
" IB 6 " 8 !<br />
6 "6 J ) 7<br />
" 8" 7 /<br />
2 9K 7 6 7 !<br />
! "6 "<br />
" " 999<br />
I9 9 ?<br />
9 J . "6<br />
6 8<br />
6 ! 6<br />
7 8 "/<br />
966 8 "<br />
9:: 7 6 . 7 /<br />
6 " "<br />
) " ) 6<br />
" 7<br />
966 8 "<br />
I " 6 J/<br />
) " ) 6<br />
! ! 8 7<br />
) 46 8 " 9 2 6<br />
$ '<br />
0 $<br />
'#%$#%'$$5
1M.4 .<br />
$$,#<br />
1M.4 .<br />
$$,,<br />
1M.4 .<br />
$$,(<br />
1M.4 .<br />
$$,5<br />
1M.4 .<br />
$$,&<br />
1M.4 .<br />
$$($<br />
1M.4 .<br />
$$(-<br />
1M.4 .<br />
$$(><br />
1M.4 .<br />
$$(&<br />
1M.4 .<br />
$$5$<br />
6 7 !<br />
966 8 " /<br />
) " 9K 7 7<br />
! ! 6<br />
3 8 "<br />
I/ / . .<br />
1 @<br />
@ 3 J<br />
2 ) 7 6 7<br />
7 ! 6<br />
6 ! "6 /<br />
2 9:: 7 6 7 "<br />
B<br />
66 6 !<br />
" 7 7<br />
6 6 /<br />
) ) 7 8<br />
" "<br />
2 9:: 7 6 7 8 " 8<br />
3 8 "E<br />
6 7 /<br />
) 46 8 " 9 2 6<br />
0 $<br />
3 78 3 6 & A 6 8"<br />
/<br />
3 78 3 6 & A 6 8"<br />
/<br />
3 78 3 6 & A 6 8"<br />
/<br />
3 78 3 6 & A 6 8"<br />
/<br />
3 78 3 6 & A 6 8"<br />
/<br />
3 7 ) F " 7 8<br />
8 6 8<br />
I ! J/<br />
) 6 8 8<br />
F " / 2 7<br />
78 "6 " /<br />
6 66 "<br />
8 !<br />
3 783 6 5 A 966 1 "<br />
" /<br />
4 6 8 3 783 6 5 A 966 1 "<br />
" /<br />
966 6 . 6 " ) F "<br />
"6 " )/ )<br />
6 /<br />
966 6 " ) F "<br />
"6 " )/ )<br />
'#%$#%'$$5
1M.4 .<br />
$$5<<br />
1M.4 .<br />
$$5'<br />
1M.4 .<br />
$$5#<br />
1M.4 .<br />
$$5,<br />
1M.4 .<br />
$$5(<br />
1M.4 .<br />
$$55<br />
1M.4 .<br />
$$5-<br />
1M.4 .<br />
) " ) 7 7<br />
8<br />
66 F " 3<br />
3 3 /<br />
) 6 8 "<br />
) 7 6 7 I!<br />
3 3 J/<br />
2 9K 7 6 7<br />
66<br />
! "6 !<br />
3 3 7 /<br />
) ) 8 " 9:: 66<br />
86 ""<br />
7 ! 3 8 "<br />
3 3 * 8<br />
9 8<br />
) " /<br />
) ) 8 " 9:: 6<br />
"" 9 2 6<br />
7 ! 3 8 "<br />
3 3 6<br />
" 7 ""<br />
6 "" " /<br />
2 6<br />
I " J 3<br />
8 " 9K " 8<br />
" ""<br />
" " 6 "<br />
" /<br />
) " 9K 66<br />
1 3 I " 6 J<br />
" /<br />
) 3 8 " 9K 66<br />
B "<br />
0<br />
) 46 8 " 9 2 6<br />
)<br />
"6 " /<br />
0 $<br />
) 78<br />
8 7.6 /<br />
6 /<br />
3 783 6 5 A 966 1 "<br />
" /<br />
'#%$#%'$$5
$$5> I/ /<br />
@ @ 3 J<br />
1M.4 .<br />
$$5&<br />
1M.4 .<br />
$$-$<br />
1M.4 .<br />
$$-<<br />
1M.4 .<br />
$$-#<br />
1M.4 .<br />
$$-,<br />
1M.4 .<br />
$$-(<br />
1M.4 .<br />
$$-5<br />
1M.4 .<br />
$$--<br />
1M.4 .<br />
$$-><br />
) " 9:: 7 7<br />
"" ! 6<br />
/ ) 8<br />
" 7 " " "<br />
" 7 6 /<br />
) 3 8 " 9K 7<br />
@<br />
. . I 7 J<br />
! 78 .<br />
6 3 /<br />
) 46 8 " 9 2 6<br />
0 $<br />
"6 " 6 /<br />
3 783 6 - A 2<br />
/<br />
) E 6 8 8<br />
! 7 ! / 2 ! 7<br />
"6 " 6 /<br />
! 7 ! " ) E 6 8 8<br />
! 7 ! / 2 ! 7<br />
"6 " 6 /<br />
966 " 3 783 6 5 A 966 1 "<br />
" /<br />
) 3 8 " 9:: 6<br />
7<br />
6<br />
/<br />
'#%$#%'$$5
1M.4 .<br />
$$>$<br />
1M.4 .<br />
$$><<br />
1M.4 .<br />
$$>'<br />
1M.4 .<br />
$$>#<br />
1M.4 .<br />
$$>,<br />
1M.4 .<br />
$$>5<br />
1M.4 .<br />
$$>-<br />
1M.4 .<br />
$$>><br />
1M.4 .<br />
$$>&<br />
1M.4 .<br />
$$&$<br />
3 8 "/<br />
) 46 8 " 9 2 6<br />
0 $<br />
6 6 " ) 7 78 "6 "<br />
6 3 6 & A 6 8"<br />
/<br />
1 " ) 7 78 "6 "<br />
6 3 6 & A 6 8"<br />
78<br />
6 8<br />
1 " " ) 7 78 "6 "<br />
6 3 6 & A 6 8"<br />
78<br />
6 8<br />
8 " ) ) 6 !<br />
"6 " 6 8<br />
? ) 7 78 "6 "<br />
6 3 6 & A 6 8"<br />
78<br />
6 8<br />
)) 9 2 ) 4 6<br />
F " /<br />
9@ 9 2 ) 4 6<br />
F " 9 .3 9= " 6<br />
" //<br />
7 3 8 " ) F " 3 6 > A<br />
= " 2 /<br />
3 "" 7 ! 3<br />
8 " B<br />
) 8 " I" 7 6<br />
9 P J<br />
) F " 3 6 > A<br />
= " 2 /<br />
) " "6 ) F " 7 78<br />
8 6 " ) "6 "<br />
6 /<br />
1M.4 . 3 7 ! ) F " 7 78<br />
8 6 " ) "6 "<br />
'#%$#%'$$5
$$&< 6 /<br />
1M.4 .<br />
$$&'<br />
1M.4 .<br />
$$&#<br />
1M.4 .<br />
$$&(<br />
1M.4 .<br />
$$&5<br />
1M.4 .<br />
$$&-<br />
1M.4 .<br />
$$&><br />
1M.4 .<br />
$$&&<br />
1M.4 .<br />
$
) 46 8 " 9 2 6<br />
91) , . 9 = 2N 3)24=<br />
'#%$#%'$$5
) 46 8 " 9 2 6<br />
Appendix A - TERMS AND ABBREVIATIONS<br />
9' 9 9 7 I@)J<br />
93: 9 8 3 . I@)J<br />
9 9 8<br />
9 =/< 97 8 B=<br />
9 13 9 1 " 3 I@)J<br />
@'@ @ ) @<br />
@2 @ 2" I@)J<br />
@ ! ""<br />
@ @ I@)J<br />
@) @ @<br />
3'3 3 ) 3<br />
3'2 3 2<br />
32 3 "" 2 = 9 I@)J<br />
341 1 F " 3 6<br />
3 3<br />
3) 3 ) "<br />
3) 3 ) 6 8 I@)J<br />
9@ 9 @<br />
2= 4 . 2 " 8<br />
) " )<br />
= 6= ! 6 I@)J<br />
3 " 83<br />
9 B 7 9<br />
3 6 3 ""<br />
3 3<br />
3 3<br />
B 8 I@)J<br />
B " 1 " " ) 966<br />
B I@)J<br />
5 " ! "" 5<br />
) ) I@)J<br />
) ) I@)J<br />
'#%$#%'$$5 '$$
9 9 "78<br />
9 9 I@)J<br />
) 46 8 " 9 2 6<br />
9 9 7 I@)J<br />
4 47 B I@)J<br />
7 8 " 7 3 ""<br />
) 7 8 " ) "<br />
32 3 2 I@)J<br />
31 683 7 1 6 " I@)J<br />
1 . I@)J<br />
2 " 2 I@)J<br />
6 I@)J<br />
) : 86 B 6:<br />
)) 86 B ) 6<br />
2 2<br />
2 ) 2 )<br />
2 2<br />
2 2 " I@)J<br />
2 2<br />
2 I5J 2 5<br />
2 2 "<br />
2 1 2 6 81<br />
2 2 I 2 # J<br />
2 ) 2 ) "<br />
I 2 # )J<br />
2 9 2 9<br />
:'39 : : 9 6 8 I@)J<br />
:9 : 9 = ! 9 6 I@)J<br />
: : I@)J<br />
93 " 9 3<br />
B<br />
)4 ) " 46 " ? "<br />
= = "<br />
= = "<br />
) )3<br />
= " 7 7 "6 "<br />
= " 2<br />
'#%$#%'$$5 '$<
) 46 8 " 9 2 6<br />
= " ! 8 "7 !<br />
= "<br />
= " 2 " ! = "<br />
8! . )3<br />
49 2 4 ? 9 "<br />
2 "<br />
4@ N 47 B<br />
43) 4 . 3 7 )<br />
4 4 F 6"<br />
4 9 46 7 9<br />
4 47 I@)J<br />
4 46 8 "<br />
4 2 46 8 " 2<br />
9= 9 = ! I@)J<br />
K 8<br />
9 7 9<br />
M M 8<br />
1 3 1 F 3 ""<br />
1 34 " I@)J<br />
1 1 8 8<br />
1 3 1 " 3<br />
9 : 89 6:<br />
9 9 I@)J<br />
3 3 ""<br />
34 8 3 4 I@)J<br />
9 89 I@)J<br />
2 7 7 2 "<br />
2 2<br />
) "6 )<br />
49 4 9<br />
49 "6 47 B 9<br />
7.<br />
8 I@)J<br />
'#%$#%'$$5 '$'
) 46 8 " 9 2 6<br />
8 ? I@)J<br />
I@)J<br />
8 : 8 ? 6:<br />
)3 ) 6 3<br />
)3 ) " 3 "6<br />
) ) 6 B6 6<br />
)19 34 ) 9 3 "7 7 8<br />
) )<br />
@ @<br />
66 " 8<br />
) >%
Appendix B - REFERENCES<br />
) 46 8 " 9 2 6<br />
" ) ! " 7<br />
6 7 / "<br />
! 7 " /<br />
C
) 46 8 " 9 2 6<br />
C'$D 8 :* 4 9. 8 :. 8 .
) 46 8 " 9 2 6<br />
C#>D G4 9 " 8H 46 7 9<br />
4 9.) . . 8.
) 46 8 " 9 2 6<br />
C5
) 46 8 " 9 2 6<br />
Appendix C - OVERVIEW OF THE UML TERMINOLOGY<br />
USED IN THIS DOCUMENT<br />
13.2 Collaborations<br />
G9 7 8 " !<br />
6 " 6 7 E 7 " 6 / 9<br />
7 6 ! " I<br />
"6 J 6 ? 78<br />
6 8 6 6 ! 8HC'D/<br />
3 7 6 7 " ! B6<br />
? 3 78C#D/<br />
13.3 Work Item<br />
) " ! " 7 " : 7 B )<br />
" 7 ! ! 8 "<br />
/ 9 B"6 7 6 966<br />
3 8 " 7 6 8" ! "/<br />
13.4 Components<br />
3 "6 " 7 7 7 B ! 8 6<br />
"6 B ! / 3 "7 "6<br />
7 78 8 " 4 ! 6 / 3 "6 7 "6 "<br />
! 7 8 6 "6 " /<br />
13.5 Diagrams<br />
13.5.1 Class Diagram<br />
9 " ! ? 7 ! I86 J<br />
7 /<br />
13.5.2 Sequence Diagram<br />
? 8 " 7 ! 47 % 3 "6 / 47<br />
! 7 ! 6<br />
66 /<br />
13.5.3 Activity Diagram<br />
2 B 7 9 8 " " ! / 9<br />
6 F " 8 " 6 " 7<br />
8 " 6 7 /<br />
13.5.4 Component Diagram<br />
? "6 ! 6 1 2"6 " /<br />
13.5.5 Deployment Diagram<br />
13.6 Views<br />
" ! 8 "/<br />
1 .4 B6 " !6<br />
! ! 6 ? ! ! 8/<br />
'#%$#%'$$5 '$>
) 46 8 " 9 2 6<br />
2 B ) !6 66 / ) 6 !<br />
: ! 2"6 " !<br />
13.6.1 The Enterprise View<br />
" G H6 8 " 4 !/<br />
" " ! 7 "<br />
7 / ) 6 ! 7 7 " /<br />
13.6.2 Logical View<br />
) ! 6 8 3 3 7<br />
78 '/< 3 1 F " 7 6 !/<br />
) 6 "<br />
" 7 /<br />
13.6.3 Implementation View<br />
) 3 47 78 : ! 7<br />
3 "6 " 6 8" "/<br />
'#%$#%'$$5 '$&
Appendix D - INDEX<br />
C+*;,, *( '><br />
9<br />
1223, 130<br />
66 .
"6 " .
1 *. '> #$ #< <br />