23.08.2013 Views

Download - ERTICO.com

Download - ERTICO.com

Download - ERTICO.com

SHOW MORE
SHOW LESS

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 />

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!