All informations you will fill into the wizard's pages are settable directly with the simulator. The wizard just offer you to easily edit basic informations about the simulation.

+

All informations you will fill into the wizard's pages are settable directly with the simulator. The wizard just offer you an easy way to edit basic informations about the simulation.

===== Step 1: Select wizard page =====

===== Step 1: Select wizard page =====

−

To create a new OMA-DM simulator you just have to select “OMA DM Simulator” in “File” → “New” → “Other” → “OMA Dm Simulator”.

+

To create a new OMA-DM simulator you just have to select “OMA DM Simulator” in “File” → “New” → “Other” → “OMA Dm Simulator”.

+

+

<u>'''Warning:'''</u> the new OMA-DM simulator have to be into a project ("New" → "Project" → "General") , else, it doesn't work.

[[Image:Wizard_page_1.png|center]]

[[Image:Wizard_page_1.png|center]]

Line 19:

Line 21:

===== Step 2: OMA DM simulation file page =====

===== Step 2: OMA DM simulation file page =====

−

Chose the location and the name of the future simulator file.

+

Choose the location and the name of the future simulator file.

[[Image:Wizard page 2.png|center]]

[[Image:Wizard page 2.png|center]]

Line 37:

Line 39:

[[Image:Wizard page 3.png|center]]

[[Image:Wizard page 3.png|center]]

+

+

<u>'''Warning:'''</u> The simulator just supports the basic authentication. It doesn't yet support the auth-md5 authentication.

Click on the "Next" button.

Click on the "Next" button.

Line 42:

Line 46:

===== Step 4: Device informations page =====

===== Step 4: Device informations page =====

−

In this page you can fill basic information about the device. At the difference of other informations, <u>the Device ID must not be empty</u>.

+

In this page you can fill basic information about the device. <u>the Device ID must not be empty</u>. Other informations could be empty.

<u>Explications</u>

<u>Explications</u>

−

* Device id: it's the same ID than the device ID in the previous step

+

* Device id: the same ID than the device ID in the previous step

* Manufacturer Name: the manufacturer's name of the device

* Manufacturer Name: the manufacturer's name of the device

* Model Name: the model's name of the device

* Model Name: the model's name of the device

Line 75:

Line 79:

== Description of the OMA-DM protocol ==

== Description of the OMA-DM protocol ==

−

The OMA-DM Protocol is based on the HTTP protocol. XML messages are exchanged between the client and the OMA-DM server through HTTP requests. The complete specification of the OMA-DM protocol and of standard tree nodes is available here: [http://www.openmobilealliance.org/Technical/current_releases.aspx www.openmobilealliance.org/Technical/current_releases.aspx]

+

The OMA-DM Protocol is based on the HTTP protocol. XML messages are exchanged between the client and the OMA-DM server through HTTP requests. The complete specification of the OMA-DM protocol is available here: [http://www.openmobilealliance.org/Technical/current_releases.aspx www.openmobilealliance.org/Technical/current_releases.aspx]

===== Data representation =====

===== Data representation =====

−

The device's data are represented by a tree nodes. This tree is store twice. Once on the client device and once on the OMA-DM server. The synchronization of these two trees is made during the exchanges between the client device and the server.

+

The device's data are represented by a tree nodes. This tree is stored twice. Once on the client device and once on the OMA-DM server. The synchronization of these two trees is made during the exchanges between the client device and the server.

There are two types of nodes in the tree: nodes and leaf.

There are two types of nodes in the tree: nodes and leaf.

Line 90:

Line 94:

For the leaf, all informations have to be fill.

For the leaf, all informations have to be fill.

+

For the nodes, Type an Data information must be empty. Name is the name of the node. The value of Format is "node".

For the nodes, Type an Data information must be empty. Name is the name of the node. The value of Format is "node".

Line 96:

Line 101:

===== OMA-DM commands =====

===== OMA-DM commands =====

−

The protocol provides some commands which could be send by the server and executed on the client device. Below is the list of commands which are supported by the simulator:

+

The protocol provides some commands which could be sent by the server and executed on the client device. Below is the list of commands which are supported by the simulator:

* Add: insert a new node in the tree

* Add: insert a new node in the tree

Line 113:

Line 118:

== Simulate one connection by the client device to one OMA-DM server ==

== Simulate one connection by the client device to one OMA-DM server ==

−

The simulator is divided in three tags: Configuration, Simulation and Dashboard. These tags allow you to configure the simulator before to run connections on the OMA-DM server. The first and the second tag offer you to configure the simulator. The last tag is use to run connections to one OMA-DM server.

+

The simulator is divided in three tabs: Configuration, Simulation and Dashboard. These tabs allow you to configure the simulator before to run connections on the OMA-DM server. The two first tabs offer you a way to configure the simulator. The last tab is use to run connections to one OMA-DM server.

−

===== The Configuration tag =====

+

===== The Configuration tab =====

−

The first tag is Configuration. It allows to fill basic informations to identify the OMA-DM server and authenticate the client device on the server. These informations are similar with the [http://wiki.eclipse.org/Koneki/Simulators/OMA-DM/User_Guide#Step_3:_Device_configuration_page Device Configuration page of the wizard].

+

The first tab is Configuration. It allows to fill basic informations to identify the OMA-DM server and authenticate the client device on the server. These informations are similar with the [http://wiki.eclipse.org/Koneki/Simulators/OMA-DM/User_Guide#Step_3:_Device_configuration_page Device Configuration page of the wizard].

This section allows to edit the OMA-DM tree. By default, the simulator create one basic tree with non optional nodes. This section is the most important section of this tag. With this section, you can insert or delete nodes and leafs directly into all the tree. Delete non optional nodes is forbidden by the editor.

+

This section allows to edit the OMA-DM tree. By default, the simulator create one basic tree with non optional nodes. This section is the most important section of this tab. With this section, you can insert or delete nodes and leafs directly into all the tree. Delete non optional nodes is forbidden by the editor.

−

You can recognize into the tree the informations that you filled in the [http://wiki.eclipse.org/Koneki/Simulators/OMA-DM/User_Guide#The_Configuration_tag Configuration tag]. Below is the correspondence between information in the Configuration tag and leafs into the OMA-DM tree:

+

You can recognize into the tree the informations that you filled in the [http://wiki.eclipse.org/Koneki/Simulators/OMA-DM/User_Guide#The_Configuration_tab Configuration tab]. Below is the correspondence between information in the Configuration tab and leafs into the OMA-DM tree:

* Server URI: ./DMAcc/AppAddr/Default/Addr

* Server URI: ./DMAcc/AppAddr/Default/Addr

Line 138:

Line 143:

* Device ID: ./DevInfo/DevId

* Device ID: ./DevInfo/DevId

−

The node "./DMAcc/AppAuth/Default" and "./DMAcc/AppAddr/Default" are optional nodes. The leafs "AuthName", "Addr" and "AuthSeret" can be stored anywhere in the node "./DMAcc/AppAuth". You can edit all informations about nodes and leafs in the next section: [http://wiki.eclipse.org/Koneki/Simulators/OMA-DM/User_Guide#Section_2:_Node_properties Node properties]. If you change data of nodes which are listed above, the new values will be directly updated in the Configuration tag.

+

The node "./DMAcc/AppAuth/Default" and "./DMAcc/AppAddr/Default" are optional nodes. The leafs "AuthName", "Addr" and "AuthSeret" can be stored anywhere in the node "./DMAcc/AppAuth". You can edit all informations about nodes and leafs in the next section: [http://wiki.eclipse.org/Koneki/Simulators/OMA-DM/User_Guide#Section_2:_Node_properties Node properties]. If you change data of nodes which are listed above, the new values will be directly updated in the Configuration tab.

===== Section 2: Node properties =====

===== Section 2: Node properties =====

−

In this section you can change all informations about the current node or leaf which is selected in the Device tree. You can edit all informations which are described in the [http://wiki.eclipse.org/Koneki/Simulators/OMA-DM/User_Guide#Data_representation Data representation section].

+

This section allows you to edit informations about the current node or leaf which is selected in the Device tree. These informations are described in the [http://wiki.eclipse.org/Koneki/Simulators/OMA-DM/User_Guide#Data_representation Data representation section].

+

+

As you can see in the screen shot above, you just can edit the data of the selected node. Indeed, for standard nodes, the name, format and type are not settable. But, for non standard nodes, all informations are settable.

===== Section 3: Node management =====

===== Section 3: Node management =====

−

This section allows you to choose how execute all OMA-DM commands. There are four modes to execute one command. By default the root of the tree has all commands set in automatic mode. And all other nodes have commands set in inherit mode. There are two other modes: manual and constant. Below is the explication of all management modes:

+

This section allows you to choose how execute all OMA-DM commands. There are four modes to execute one command. By default the root of the tree has all commands set in automatic mode. And all other nodes have commands set in inherit mode. There are two other modes: manual and constant. Below is the explication of all management modes:

−

* Automatic mode: the simulator perform the command like a real device

+

*Automatic mode: the simulator perform the command like a real device

−

* Constant mode: the simulator return the status code selected

+

*Constant mode: the simulator return the status code selected

−

* Inherited mode: the node management of the parent node is used

+

*Inherited mode: the node management of the parent node is used

−

* Manual mode: the simulator demand to the user the status code which must be returned

+

*Manual mode: the simulator demand to the user the status code which must be returned

−

The manual mode is very interesting, the user can change the result of any command directly during one simulation.

+

The manual mode is very interesting. The user can change the result of any command directly during the simulation. For example, during one Replace command, you can refuse to set the value of the node.

−

For example, during one Replace command, you can refuse to set the value of the node.

+

[[Image:Manual Replace OMA-DM Command.png|center]]

[[Image:Manual Replace OMA-DM Command.png|center]]

Line 162:

Line 168:

[[Image:Manual Get OMA-DM Command.png|center]]

[[Image:Manual Get OMA-DM Command.png|center]]

−

One last example of the command management is available in [http://wiki.eclipse.org/Koneki/Simulators/OMA-DM/User_Guide#Simulate_FUMO_.28Firmware_Update_Management_Object.29 this section]. Here, the command management is use during one Exec command with FUMO.

+

One last example of the command management is available in [http://wiki.eclipse.org/Koneki/Simulators/OMA-DM/User_Guide#Simulate_FUMO_.28Firmware_Update_Management_Object.29 the FUMO section]. Here, the command management is use during one Exec command with FUMO.

−

==== The Dashboard tag: three other sections ====

+

==== The Dashboard tab: three other sections ====

−

The Dashboard tag is also divided in three sections: Device tree, Node properties and session management.

+

The Dashboard tab is also divided in three sections: Device tree, Node properties and Session management.

The dashboard with the Command view.

The dashboard with the Command view.

Line 178:

Line 184:

===== Section 1: Device tree =====

===== Section 1: Device tree =====

−

This section is similar with the [http://wiki.eclipse.org/Koneki/Simulators/OMA-DM/User_Guide#Section_1:_Device_tree tree section] in the Simulation tag. But here, you just can to select one node. You can't edit the tree.

+

This section is almost similar with the [http://wiki.eclipse.org/Koneki/Simulators/OMA-DM/User_Guide#Section_1:_Device_tree tree section] in the Device Management Tree tab. But here, you just can to select one node. You can't edit the tree.

===== Section 2: Node properties =====

===== Section 2: Node properties =====

−

This section is similar with the [http://wiki.eclipse.org/Koneki/Simulators/OMA-DM/User_Guide#Section_3:_Node_management properties section] in the Simulation tag. But, here, you just can edit Data information of the selected node. You can't edit other information.

+

This section is almost similar with the [http://wiki.eclipse.org/Koneki/Simulators/OMA-DM/User_Guide#Section_3:_Node_management properties section] in the Device Management Tree tab. But, here, you just can edit Data information of the selected node. You can't edit other information.

===== Section 3: Session management: two views =====

===== Section 3: Session management: two views =====

−

This section is the most important section of this tag. With this section, you can create a new connection between the simulator and one OMA-DM server. When you click on the connect button the simulator create a connection. Then, the simulator and the OMA-DM server will exchange xml messages through HTTP requests. During these exchanges, if the OMA-DM server have to execute some commands, it will send instructions on simulator. Then, the simulator will execute each instructions. The execution of instructions depends on the node management which is associated with the concerned node.

+

This section is the most important section of this tab. With this section, you can create a new connection between the simulator and one OMA-DM server. When you click on the connect button the simulator create a connection. Then, the simulator and the OMA-DM server will exchange XML messages through HTTP requests. During these exchanges, if the OMA-DM server have to execute some commands, it will send instructions on the simulator. Then, the simulator will execute each instructions. The execution of instructions depends on the node management which is associated with the concerned node.

====== Section 3.1: Command view ======

====== Section 3.1: Command view ======

Line 226:

Line 232:

== How to configure and use the OMA-DM server provided by Funambol ==

== How to configure and use the OMA-DM server provided by Funambol ==

−

This section explains how install the OMA-DM server provide by Funambol. This server is called dm-server. The document also explain how use the web interface of the dm-server and where data are saved. To finish, the document show how interact the OMA-DM simulator with the dm-server. The official documentation about Funambol and its products is available at this address: [https://www.forge.funambol.org/download/documentation.html https://www.forge.funambol.org/download/documentation.html]. All versions of the source code and documentation about Funambol are available at this address: [http://download.forge.objectweb.org/sync4j/ http://download.forge.objectweb.org/sync4j/]

+

This section explains how install the OMA-DM server provided by Funambol. This server is called dm-server. The document also explains how use the web interface of the dm-server and where data are stored. To finish, the document shows how interact the OMA-DM simulator with the dm-server.

+

+

The official documentation about Funambol's products is available at this address: [https://www.forge.funambol.org/download/documentation.html www.forge.funambol.org/download/documentation].

+

+

All versions of the source code and documentations about Funambol are available at this address: [http://download.forge.objectweb.org/sync4j/ download.forge.objectweb.org/sync4j]

=== Prerequisites ===

=== Prerequisites ===

Line 232:

Line 242:

This tutorial has been realized with

This tutorial has been realized with

−

*Ubuntu version 11.10

+

*Ubuntu version 11.10

*Funambol Device Management server version 3.6

*Funambol Device Management server version 3.6

*JDBC 3 version 9.1-901

*JDBC 3 version 9.1-901

Line 240:

Line 250:

=== Install the Funambol Device Management server ===

=== Install the Funambol Device Management server ===

−

In this part, I will explain how install Funambol dm-server with PostgreSQL database.I suppose PostgreSQL is already installed on your machine.

+

This section explains how install Funambol dm-server with PostgreSQL database. It supposes PostgreSQL is already installed on your machine.

===== Step 1: Download required programs =====

===== Step 1: Download required programs =====

Line 246:

Line 256:

====== Funambol Device Management server ======

====== Funambol Device Management server ======

−

The dm-server is available at this address: [http://sourceforge.net/projects/funambol/files/dm-server/ http://sourceforge.net/projects/funambol/files/dm-server/]

+

The dm-server is available at this address: [http://sourceforge.net/projects/funambol/files/dm-server/v36/ sourceforge.net/projects/funambol/files/dm-server]

−

====== JBoss ======

+

====== JBoss ======

−

JBoss is available at this address: [http://www.jboss.org/jbossas/downloads/ http://www.jboss.org/jbossas/downloads/]<br>

+

JBoss is available at this address: [http://www.jboss.org/jbossas/downloads/ www.jboss.org/jbossas/downloads]<br>

−

<u>Warning:</u> Funambol dm-server only works with Jboss 5.1! With latest versions of Jboss, the dm-server doesn't work! Indeed, the latest version of Jboss has a new architecture and Funambol dm-server doesn't support it.

+

<u>'''Warning:'''</u> Funambol dm-server only works with Jboss 5.1! With latest versions of Jboss, the dm-server doesn't work! Indeed, the latest version of Jboss has a new architecture and Funambol dm-server doesn't support it.

−

====== JDBC driver for PostgreSQL ======

+

====== JDBC driver for PostgreSQL ======

−

The JDBC driver is available at this address: [http://jdbc.postgresql.org/download.html http://jdbc.postgresql.org/download.html]

+

The JDBC driver is available at this address: [http://jdbc.postgresql.org/download.html jdbc.postgresql.org/download]

−

===== Step 2: Extract archives =====

+

===== Step 2: Extract archives =====

−

I used this architecture for the tutorial:

+

The architecture which has been used for this document looks like this:

<u>'''Warning:'''</u> JBOSS_CLASSPATH variable may already exists. To don't break your system, a good solution is to use this command: <code>export JBOSS_CLASSPATH=$JBOSS_CLASSPATH":/opt/Funambol/postgresql.jar</code>. The JBOSS_CLASSPATH variable is used by dm-server during its execution. If this variable is not set, you will not be able to correctly use the server.

−

This file is use to configure the installation of the dm-server. Some parameters have to be set.

* Set the parameter jdbc.user with the name of the user of PostgreSQL. In this document the password is “funambol”

+

This file is use to configure the installation of the dm-server. Some parameters have to be set.

−

* Set the parameter jdbc.password with the password of the user of PostgreSQL. In this document the password is “funambol”

+

−

* Replace this line: “jdbc.classpath=/opt/postgresql/share/java/postgresql.jar” by this line: “jdbc.classpath=/opt/Funambol/postgresql.jar”

+

−

* You can set the line "server-name=http://localhost:8080/funambol/dm" with another IP address. It's the address which is use by the dm-server to receive OMA-DM messages. (The default value works to only use the server with your machine.)

+

−

===== Step 5: Install the dm-server =====

+

*Set the parameter jdbc.user with the name of the user of PostgreSQL. In this document the password is ''“funambol”''

+

*Set the parameter jdbc.password with the password of the user of PostgreSQL. In this document the password is ''“funambol”''

+

*Replace this line: ''“jdbc.classpath=/opt/postgresql/share/java/postgresql.jar”'' by this line: ''“jdbc.classpath=/opt/Funambol/postgresql.jar”''. This line point to the path of the JDBC driver.

+

*You can set the line "server-name=''http://localhost:8080/funambol/dm''" with another IP address. It's the address which is use by the dm-server to receive OMA-DM messages. (The default value works to only use the server with your local machine.)

−

To install the dm-server you just need 2 commands:

+

===== Step 6: Install the dm-server =====

−

* cd /opt/Funambol/dm-server/

+

To install the dm-server you just need 2 commands:

−

* sh ./bin/install.sh jboss5

+

−

The program will offer you to recreate the PostgeSQL database. Accept, and choose 'y'. If it's the first time you run the script, some errors will appear. It's not a problem. It just means the program tried to delete some SQL tables which doesn't exist...

+

*<code>cd /opt/Funambol/dm-server/</code>

−

If everything is OK, the last message should be: “BUILD SUCCESSFUL”. Then, you are ready to run the dm-server.

+

*<code>sh ./bin/install.sh jboss5</code>

−

===== Step 6: Run the dm-server =====

+

<u>'''Warning'''</u>: jboss5 is not an optional parameter. Without it, the installation doesn't work&nbsp;!

+

+

The program will offer you to recreate the PostgreSQL database. Accept, and choose 'y'. If it's the first time you run the script, some errors will appear. It's not a bug. It just means the program tried to delete some SQL tables which doesn't exist yet... If everything is OK, the last message should be: <cite>“BUILD SUCCESSFUL”</cite>. Then, you are ready to run the dm-server.

+

+

===== Step 7: Run the dm-server =====

To run the dm-server you just need 2 commands:

To run the dm-server you just need 2 commands:

−

* cd /opt/Funambol/dm-server/

+

*<code>cd /opt/Funambol/dm-server/</code>

−

* sh ./bin/start.sh

+

*<code>sh ./bin/start.sh</code>

−

After a few seconds, you should have one message which inform that the server is started.

+

After a few seconds, you should have one message which inform that the server is started.

−

=== Use the web interface of the dm-server ===

+

If you want to change the server name parameter setted in the install.properties file during the [http://wiki.eclipse.org/Koneki/Simulators/OMA-DM/User_Guide#Step_5:_Edit_the_file_.2Fopt.2FFunambol.2Fdm-server.2Finstall.properties Step 5: Edit the file /opt/Funambol/dm-server/install.properties ], you don't have to re-install the dm-server. A good way consists to edit the file ''"/opt/Funambol/dm-server/config/Funambol.properties"''. The first line (''server.uri'') set the dm-server name.

−

==== Create one new device on the dm-server ====

+

=== Use the web interface of the dm-server ===

−

To test the dm-server, go on this page: ''http://localhost:8080/dmdemo/''. You should see one page which looks like this:

+

==== Create one new device on the dm-server ====

+

+

To test the dm-server, go on this page: http://localhost:8080/dmdemo/. You should see one page which looks like this:

[[Image:OMA-DM Funambol Login.png|center]]

[[Image:OMA-DM Funambol Login.png|center]]

−

The address of the web interface is not settable. It's not the same address than the name-server parameter available in the install.properties file.

+

<u>'''Warning:'''</u> The address of the web interface is not settable. It's not the same address than the name-server parameter available in the install.properties file. The server name parameter is only use for the OMA-DM protocol, not for the web interface.

−

Then, click on “Add New device”. Choose one device Id. In this document I choose “MyID” and then, click on “Add”. If everything all right, you should have one message which inform you the device is correctly created. Now you have one new device store on the server which is identify by its ID: “MyID”.

+

+

Click on ''“Add New device”'' and choose one device ID. "MyID” has been choose for this document. Once you chose your device ID, click on “Add”. If everything all right, you should have one message which inform you the device is correctly created. Now you have one new device store on your dm-server which is identify by its ID: “MyID”.

[[Image:OMA-DM Funambol Device Created.png|center]]

[[Image:OMA-DM Funambol Device Created.png|center]]

−

Now you can go on the LogIn page and insert the ID of your new device. In this example, it's MyID. Once you’re logged in, you can choose some OMA-DM command which will be executed on the client device.

+

Now you can go on the LogIn page and insert the ID of your new device. In this example, it's "MyID". Once you’re logged in, you can choose some OMA-DM command which will be executed on the client device.

−

==== Add one new OMA-DM command to the device ====

+

==== Add one new OMA-DM command to the device ====

Once you are logged, you can choose an operation and add it in the operation list.

Once you are logged, you can choose an operation and add it in the operation list.

Once you chose which operation you want to execute, the operation is showed in one table.

+

Once you chose which operation you want to execute, it is showed in the operations table.

[[Image:OMA-DM Funambol New Command.png|center]]

[[Image:OMA-DM Funambol New Command.png|center]]

−

After the execution of the new command, its status change and the date of start time and end time are set.

+

After the execution of the new command, its status change and the date of start time and end time is set.

[[Image:OMA-DM Funambol End Command.png|center]]

[[Image:OMA-DM Funambol End Command.png|center]]

−

Now, you can launch new operations.

+

Now, you can launch new operations.

+

+

=== Use the dm-server with the OMA-DM simulator ===

−

=== Use the dm-server with the OMA-DM simulator ===

+

Using the OMA-DM simulator with the dm-server needs one specific configuration. In the Configuration tab, fill these informations:

−

Using the OMA-DM simulator with the dm-server needs one specific configuration. In the Configuration tag, fill these informations:

+

*Server URI = http://localhost:8080/funambol/dm

−

* Server URI = http://localhost:8080/funambol/dm

+

*Server Login = funambol

−

* Server Login = funambol

+

*Server Password = funambol

−

* Server Password = funambol

+

*Device ID = MyID

−

* Device ID = MyID

+

−

This parameters are those which have been fill in the [http://wiki.eclipse.org/Koneki/Simulators/OMA-DM/User_Guide#Step_4:_Edit_the_file_.2Fopt.2FFunambol.2Fdm-server.2Finstall.properties Step 4: Edit the file install.properties].

+

This parameters are those which have been fill in the [http://wiki.eclipse.org/Koneki/Simulators/OMA-DM/User_Guide#Step_4:_Edit_the_file_.2Fopt.2FFunambol.2Fdm-server.2Finstall.properties Step 4: Edit the file install.properties]. The server URI is different than the URI of the web page of the server. Indeed, the web interface is available on this URI: http://localhost:8080/dmdemo/ whereas the OMA-DM server is available on this page: http://localhost:8080/funambol/dm. The server Login and password are used to identify the user on the OMA-DM server. It's the user name and the password for the PostgreSQL account. The device ID is the ID which was use to create a new device on the dm-server.

−

The server URI is different than the URI of the web page of the server. Indeed, the web interface is available on this URI: http://localhost:8080/dmdemo/ whereas the OMA-DM server is available on this page: http://localhost:8080/funambol/dm. The Server Login and the Server Password are used to identify the user on the OMA-DM server. It's the user name and the password for the PostgreSQL account. The device ID is the ID which was use to create a new device on the dm-server.

+

−

Once all parameters are set on the simulator, you can run a new connection to the dm-server. If some commands are associated to the device which you want to simulate they will be executed. Then, you will see the result of the operations in the Command view of the dashboard and on web interface of the dm-server.

+

Once all parameters are set on the simulator, you can run a new connection to the dm-server. If some commands are associated to the device which you want to simulate they will be executed. Then, you will see the result of the operations in the Command view of the dashboard and on web interface of the dm-server.

−

=== Access to the database of dm-server ===

+

=== Access to the database of dm-server ===

−

In this document I configure the dm-server to use PostgreSQL server. The dm-server can use other SQL server like MySQL server. You can get and set its database with your PostgreSQL account (user name = funambol, password = funambol, database name = funambol). Below is the list of all tables which are created by dm-server during the installation.

+

In this document, the dm-server uses PostgreSQL server. The dm-server can use other database server like MySQL or ORACLE. You can get and set the database of the dm-server with your PostgreSQL account (user name = ''"funambol"'', password = ''"funambol"'', database name = ''"funambol"''). Below is the list of all tables which are created by dm-server during the installation.

−

* fnbl_device: Store all informations about each device

+

*fnbl_device: store all informations about each device

−

* fnbl_dm_state: Store all current commands which are waiting to be execute on on device

+

*fnbl_dm_state: store all current commands which are waiting to be execute on on device

−

* fnbl_id: Store come counters to create many unique ids

+

*fnbl_id: store come counters to create many unique ids

−

* fnbl_principal: Store the associations between one device and one user. In future version many users could manage many device and vice versa

+

*fnbl_principal: store the associations between one device and one user. In future version many users could manage many device and vice versa

−

* fnbl_role: Store different role which are available for users. It's not really use in this version of the dm-server

+

*fnbl_role: store different role which are available for users. It's not really use in this version of the dm-server

−

* fnbl_treediscovery_processor: Specific table to store only about “Discover tree”

+

*fnbl_treediscovery_processor: specific table to store only about “Discover tree”

−

* fnbl_user: Store the user name and password which are in the file install.properties during the installation of dm-server. Currently, this table is not really use

+

*fnbl_user: store the user name and password which are in the file install.properties during the installation of dm-server. Currently, this table is not really use

−

* fnbl_user_dm_demo: This table is not use yet

+

*fnbl_user_dm_demo: this table is not use yet

−

* fnbl_user_role: Strore the associations between fnbl_user and fnbl_user

+

*fnbl_user_role: store the associations between fnbl_user and fnbl_user

−

A complete description of this database is available in the document [http://download.forge.objectweb.org/sync4j/funambol_dm_server_developer_guide.pdf Funambol DM Server Developer’s Guide].

+

A complete description of this database with the foreign keys is available in the document [http://download.forge.objectweb.org/sync4j/funambol_dm_server_developer_guide.pdf Funambol DM Server Developer’s Guide].

Overview

The OMA-DM simulator provides a way to simulate communications between a client living in the Eclipse workbench, and an OMA-DM server. The simulator supports a large part of the current OMA-DM Protocol version 1.2. In a nutshell, the OMA-DM protocol allows a client to synchronize the contents of a data tree with a server. More details about the OMA-DM protocol are available in the Concepts section.

Getting started

Create a new OMA-DM simulator

All informations you will fill into the wizard's pages are settable directly with the simulator. The wizard just offer you an easy way to edit basic informations about the simulation.

Step 1: Select wizard page

To create a new OMA-DM simulator you just have to select “OMA DM Simulator” in “File” → “New” → “Other” → “OMA Dm Simulator”.

Warning: the new OMA-DM simulator have to be into a project ("New" → "Project" → "General") , else, it doesn't work.

Click on the "Next" button.

Step 2: OMA DM simulation file page

Choose the location and the name of the future simulator file.

Click on the "Next" button.

Step 3: Device configuration page

This page allows to fill some basic informations in the OMA-DM tree.

Explications

Server URI: the URI of the OMA-DM server you want to use.

Server login: the user name for the authentication on the OMA-DM server

Server password: the user password for the authentication on the OMA-DM server

Device ID: the ID of the device which is simulated

Warning: The simulator just supports the basic authentication. It doesn't yet support the auth-md5 authentication.

Click on the "Next" button.

Step 4: Device informations page

In this page you can fill basic information about the device. the Device ID must not be empty. Other informations could be empty.

Explications

Device id: the same ID than the device ID in the previous step

Manufacturer Name: the manufacturer's name of the device

Model Name: the model's name of the device

Language: the current natural language of the device, for example: "En"

Click on the "Next" button.

Step 5: Device details page

In this page you can fill other informations about the device.

Explications

Device Type: The device ID type. The default type is "FREE". Two others type are recognized; "IMEI" and "MAC". All other words will be translate in "FREE"

Data representation

The device's data are represented by a tree nodes. This tree is stored twice. Once on the client device and once on the OMA-DM server. The synchronization of these two trees is made during the exchanges between the client device and the server.

There are two types of nodes in the tree: nodes and leaf.
Each node and leaf contains four informations

Name: the name of the node

Data: the data of the node

Type: the type of the node (MIME type for leaf node and empty or Management Object Identifier for interior node)

Format: the standard OMA-DM format of the node

For the leaf, all informations have to be fill.

For the nodes, Type an Data information must be empty. Name is the name of the node. The value of Format is "node".

The OMA-DM tree must contain some specific nodes and leafs. Some other nodes are just optional. The complete description of the basic tree is available in the OMA-DM specifications. After the non optionals nodes, the tree can contain other nodes and leafs which are specific for the client device.

OMA-DM commands

The protocol provides some commands which could be sent by the server and executed on the client device. Below is the list of commands which are supported by the simulator:

Add: insert a new node in the tree

Delete: delete a node in the tree

Get: ask the data of one node

Replace: change the data of one node

Copy: copy the value of one node to another

Exec: invoke an executable file on the client device. It's usually used for FUMO (Firmware Update Managed Object).

The result of the execution of one command is send by the client device to the OMA-DM server. Once, the server receive the result, it can choose to send a new command to the client device.

Tasks

Once you have created a new OMA-DM simulator, you can simulate some connections to one OMA-DM server.

Simulate one connection by the client device to one OMA-DM server

The simulator is divided in three tabs: Configuration, Simulation and Dashboard. These tabs allow you to configure the simulator before to run connections on the OMA-DM server. The two first tabs offer you a way to configure the simulator. The last tab is use to run connections to one OMA-DM server.

The Configuration tab

The first tab is Configuration. It allows to fill basic informations to identify the OMA-DM server and authenticate the client device on the server. These informations are similar with the Device Configuration page of the wizard.

The Device Management Tree tab: three sections

Section 1: Device tree

This section allows to edit the OMA-DM tree. By default, the simulator create one basic tree with non optional nodes. This section is the most important section of this tab. With this section, you can insert or delete nodes and leafs directly into all the tree. Delete non optional nodes is forbidden by the editor.

You can recognize into the tree the informations that you filled in the Configuration tab. Below is the correspondence between information in the Configuration tab and leafs into the OMA-DM tree:

Server URI: ./DMAcc/AppAddr/Default/Addr

Server login: ./DMAcc/AppAuth/Default/AuthName

Server password: ./DMAcc/AppAuth/Default/AuthSecret

Device ID: ./DevInfo/DevId

The node "./DMAcc/AppAuth/Default" and "./DMAcc/AppAddr/Default" are optional nodes. The leafs "AuthName", "Addr" and "AuthSeret" can be stored anywhere in the node "./DMAcc/AppAuth". You can edit all informations about nodes and leafs in the next section: Node properties. If you change data of nodes which are listed above, the new values will be directly updated in the Configuration tab.

Section 2: Node properties

This section allows you to edit informations about the current node or leaf which is selected in the Device tree. These informations are described in the Data representation section.

As you can see in the screen shot above, you just can edit the data of the selected node. Indeed, for standard nodes, the name, format and type are not settable. But, for non standard nodes, all informations are settable.

Section 3: Node management

This section allows you to choose how execute all OMA-DM commands. There are four modes to execute one command. By default the root of the tree has all commands set in automatic mode. And all other nodes have commands set in inherit mode. There are two other modes: manual and constant. Below is the explication of all management modes:

Automatic mode: the simulator perform the command like a real device

Constant mode: the simulator return the status code selected

Inherited mode: the node management of the parent node is used

Manual mode: the simulator demand to the user the status code which must be returned

The manual mode is very interesting. The user can change the result of any command directly during the simulation. For example, during one Replace command, you can refuse to set the value of the node.

You can also change the value of one node during one Get command.

One last example of the command management is available in the FUMO section. Here, the command management is use during one Exec command with FUMO.

The Dashboard tab: three other sections

The Dashboard tab is also divided in three sections: Device tree, Node properties and Session management.

The dashboard with the Command view.

The dashboard with the message view.

Section 1: Device tree

This section is almost similar with the tree section in the Device Management Tree tab. But here, you just can to select one node. You can't edit the tree.

Section 2: Node properties

This section is almost similar with the properties section in the Device Management Tree tab. But, here, you just can edit Data information of the selected node. You can't edit other information.

Section 3: Session management: two views

This section is the most important section of this tab. With this section, you can create a new connection between the simulator and one OMA-DM server. When you click on the connect button the simulator create a connection. Then, the simulator and the OMA-DM server will exchange XML messages through HTTP requests. During these exchanges, if the OMA-DM server have to execute some commands, it will send instructions on the simulator. Then, the simulator will execute each instructions. The execution of instructions depends on the node management which is associated with the concerned node.

Section 3.1: Command view

In this view, you can see an abstract of all commands which have been executed.

Section 3.2: Message view

In this view, you can see the details of all OMA-DM messages which are exchange between the simulator and the server.

Simulate FUMO (Firmware Update Management Object)

This section describes all steps to simulate one firmware update with the simulator.

Step 1: Prepare the node management

If it is the first FUMO for your simulated device, this node management is recommended for the root node.

And for other nodes:

Step 2: Launch the simulation

Now click on the connect button for receive the FUMO. Perform the manual get and replace are automatically performed. At one point, the simulator demand you if you want perform a FUMO on the exec node. If you want select "Yes".

Now a pop-up appears and demand you to select FUMO result code and if you choose "Successful" the new version of the firmware version.

When you click on "OK" the FUMO work flow end. Moreover, you can put management commands of the root node in "automatic" except "exec".

Like all commands, one notification of the exec command is show in the Command view.

How to configure and use the OMA-DM server provided by Funambol

This section explains how install the OMA-DM server provided by Funambol. This server is called dm-server. The document also explains how use the web interface of the dm-server and where data are stored. To finish, the document shows how interact the OMA-DM simulator with the dm-server.

Step 1: Download required programs

Funambol Device Management server

JBoss

Warning: Funambol dm-server only works with Jboss 5.1! With latest versions of Jboss, the dm-server doesn't work! Indeed, the latest version of Jboss has a new architecture and Funambol dm-server doesn't support it.

Step 4: Set your environment variable

J2EE_HOME points to the top directory of Jboss server: /opt/Funambol/jboss

JAVA_HOME points to the top directory of your JDK

JBOSS_CLASSPATH points to the JDBC driver for PostgreSQL: /opt/Funambol/postgresql.jar

Warning: JBOSS_CLASSPATH variable may already exists. To don't break your system, a good solution is to use this command: export JBOSS_CLASSPATH=$JBOSS_CLASSPATH":/opt/Funambol/postgresql.jar. The JBOSS_CLASSPATH variable is used by dm-server during its execution. If this variable is not set, you will not be able to correctly use the server.

Step 5: Edit the file /opt/Funambol/dm-server/install.properties

This file is use to configure the installation of the dm-server. Some parameters have to be set.

Set the parameter jdbc.user with the name of the user of PostgreSQL. In this document the password is “funambol”

Set the parameter jdbc.password with the password of the user of PostgreSQL. In this document the password is “funambol”

Replace this line: “jdbc.classpath=/opt/postgresql/share/java/postgresql.jar” by this line: “jdbc.classpath=/opt/Funambol/postgresql.jar”. This line point to the path of the JDBC driver.

You can set the line "server-name=http://localhost:8080/funambol/dm" with another IP address. It's the address which is use by the dm-server to receive OMA-DM messages. (The default value works to only use the server with your local machine.)

Step 6: Install the dm-server

To install the dm-server you just need 2 commands:

cd /opt/Funambol/dm-server/

sh ./bin/install.sh jboss5

Warning: jboss5 is not an optional parameter. Without it, the installation doesn't work !

The program will offer you to recreate the PostgreSQL database. Accept, and choose 'y'. If it's the first time you run the script, some errors will appear. It's not a bug. It just means the program tried to delete some SQL tables which doesn't exist yet... If everything is OK, the last message should be: “BUILD SUCCESSFUL”. Then, you are ready to run the dm-server.

Step 7: Run the dm-server

To run the dm-server you just need 2 commands:

cd /opt/Funambol/dm-server/

sh ./bin/start.sh

After a few seconds, you should have one message which inform that the server is started.

If you want to change the server name parameter setted in the install.properties file during the Step 5: Edit the file /opt/Funambol/dm-server/install.properties , you don't have to re-install the dm-server. A good way consists to edit the file "/opt/Funambol/dm-server/config/Funambol.properties". The first line (server.uri) set the dm-server name.

Use the web interface of the dm-server

Create one new device on the dm-server

Warning: The address of the web interface is not settable. It's not the same address than the name-server parameter available in the install.properties file. The server name parameter is only use for the OMA-DM protocol, not for the web interface.

Click on “Add New device” and choose one device ID. "MyID” has been choose for this document. Once you chose your device ID, click on “Add”. If everything all right, you should have one message which inform you the device is correctly created. Now you have one new device store on your dm-server which is identify by its ID: “MyID”.

Now you can go on the LogIn page and insert the ID of your new device. In this example, it's "MyID". Once you’re logged in, you can choose some OMA-DM command which will be executed on the client device.

Add one new OMA-DM command to the device

Once you are logged, you can choose an operation and add it in the operation list.

From this page, you can chose three types of operations

Get device details: send one Get command to many important nodes (./DevInfo/Man, ./DevInfo/Mod, ./DevDetail/DevTyp, ./DevDetail/OEM, ./DevInfo/Lang, ./DevDetail/FwV, ./DevDetail/SwV, ./DevDetail/HwV, ./DevInfo/DmV)

Tree discovery: discover all or a part of the device's OMA-DM tree by sending Get commands to which node you want

Custom operation: create a collection of commands (Get, Add, Replace or Delete) on which node you want

Operations example

Tree discovery operation

Custom operation

Once you chose which operation you want to execute, it is showed in the operations table.

After the execution of the new command, its status change and the date of start time and end time is set.

Now, you can launch new operations.

Use the dm-server with the OMA-DM simulator

Using the OMA-DM simulator with the dm-server needs one specific configuration. In the Configuration tab, fill these informations:

This parameters are those which have been fill in the Step 4: Edit the file install.properties. The server URI is different than the URI of the web page of the server. Indeed, the web interface is available on this URI: http://localhost:8080/dmdemo/ whereas the OMA-DM server is available on this page: http://localhost:8080/funambol/dm. The server Login and password are used to identify the user on the OMA-DM server. It's the user name and the password for the PostgreSQL account. The device ID is the ID which was use to create a new device on the dm-server.

Once all parameters are set on the simulator, you can run a new connection to the dm-server. If some commands are associated to the device which you want to simulate they will be executed. Then, you will see the result of the operations in the Command view of the dashboard and on web interface of the dm-server.

Access to the database of dm-server

In this document, the dm-server uses PostgreSQL server. The dm-server can use other database server like MySQL or ORACLE. You can get and set the database of the dm-server with your PostgreSQL account (user name = "funambol", password = "funambol", database name = "funambol"). Below is the list of all tables which are created by dm-server during the installation.

fnbl_device: store all informations about each device

fnbl_dm_state: store all current commands which are waiting to be execute on on device

fnbl_id: store come counters to create many unique ids

fnbl_principal: store the associations between one device and one user. In future version many users could manage many device and vice versa

fnbl_role: store different role which are available for users. It's not really use in this version of the dm-server

fnbl_treediscovery_processor: specific table to store only about “Discover tree”

fnbl_user: store the user name and password which are in the file install.properties during the installation of dm-server. Currently, this table is not really use

fnbl_user_dm_demo: this table is not use yet

fnbl_user_role: store the associations between fnbl_user and fnbl_user