Professional Documents
Culture Documents
Acronym/term Description
AM Application Module
ANC Nokia Active Naming Context
ANSI American National Standards Institute
API Application Programming Interface
APN Access Point Name
CLDC Connected Limited Device Configuration
CORBA Common Object Request Broker Architecture
CSD Circuit Switched Data
DIS Device Information Storage
DNS Domain Name Server
EGPRS Enhanced General Packet Radio Service
ERP Enterprise Resource Planning
GGSN Gateway GPRS Service Node
GIOP General Inter-ORB Protocol
GPRS General Packet Radio Service
GPS Global Positioning System
HLA Home Location Agent
HSCSD High Speed Circuit Switched Data
HTTP Hypertext Transfer Protocol
IDL Interface Definition Language
ILC Java™ IMlet Loading Component
I/O Input/Output
IMP Information Module Profile
IOR Interoperable Object Reference
ISDN Integrated Services Digital Network
J2ME™ Java 2 Micro Edition
J2SE™ Java 2 Standard Edition
J2RE™ Java 2 Runtime Environment
JAR Java Archive
JSSE™ Java Secure Socket Extension
1/67
Acronym/term Description
LAN Local Area Network
M2M Machine-to-Machine
MIDP Mobile Information Device Profile
MIOR Mobile Information Module Profile
MSISDN Mobile Subscriber International ISDN Number
NAT Network Address Translator
NMEA National Marine Electronics Association
OMG Object Management Group
ORB Object Request Broker
PDP Packet Data Protocol
PIN Personal Identification Number
RADIUS Remote Authentication Dial-in User Service
SDK Software Development Kit
SIM Subscriber Identity Module
SMS Short Message Service
SMSC Short Message Service Centre
SP1 M2M System Protocol 1
SP2 M2M System Protocol 2
SSL Secure Sockets Layer
TCP Transmission Control Protocol
TMC Terminal Management Component
UI User Interface
UDP User Datagram Protocol
VPN Virtual Private Network
WDP Wireless Datagram Protocol
WMA Wireless Messaging API
WTP Wireless Transaction Protocol
2/67
DEFINITIONS
Term Definition
Application Module A runtime environment for the customer
remote application that is connected to the
Nokia GSM Connectivity Terminal or Nokia
12 GSM module via local connectivity.
Typically it is a part of the remote device
(such as a vending machine) or a separate
bridging element (such as the Nokia Smart
Adapter).
Customer remote application An application in the remote end of the
M2M solution. It can be executed in the
Application Module, Java™ 2 Runtime
Environment (J2RE™) of the Nokia 12
GSM module, or in both.
Customer server application Can vary from a standalone application to a
larger enterprise solution in the server end
of the M2M solution. The customer server
application is typically located in the
customer intranet.
Remote device A remote element (such as a vending
machine) that is a part of the M2M solution.
3/67
1 ABOUT THIS DOCUMENT
This document provides an overview of software development in the Nokia
M2M Platform (hereon Platform). The document describes the basic software
development principles from the software developer’s point of view. That is,
software developers working within the Platform can use this guide to get a
system level view of programming before starting the actual programming
tasks.
For more detailed information about Nokia M2M products and for extensive
application development documentation, see the Forum Nokia pages at
http://www.forum.nokia.com/m2m.
4/67
2 THE NOKIA M2M SOLUTION DESCRIPTION
M2M connectivity
Remote system Intranet
5/67
GSM
network
Nokia GSM
Connectivity
Terminal
Wireless Intranet
Remote connectivity
Local connectivity
device(s)
Nokia 12
GSM
module
Figure 2. The Nokia terminal and Nokia 12 module in the Platform system
architecture
The local connectivity set-up in the Platform system architecture varies
depending on whether the Nokia terminal or Nokia 12 module is used. As
illustrated in Figure 3, the key difference is related to the possibility to execute
customer remote applications. The Nokia terminal and Nokia 12 module also
provide a different variety of connection types for local connectivity. For more
information on the local connectivity solutions available via the Nokia terminal
and Nokia 12 module, see Chapter 2.3
6/67
Remote
device Intranet
Nokia M2M
Nokia GSM Gateway
Connectivity Service Provider
Terminal Edition Gateway Customer
Access server
Software application
Local
connectivity GSM
Internet
network
Nokia 12
GSM module
Remote
Customer
device
remote
application
Customer
server
GGSN NAT/Firewall application
Public
Nokia 12 APN
Remote GSM module
device
GSM
network Internet 1
Local
Private
connectivity APN
2
GGSN Customer
Customer server
remote application
application
7/67
Although the Platform system architecture supports the use of IP traffic, its use
is limited due to the security solutions that the operators use in their network
infrastructure.
As Figure 4 illustrates, two-way IP traffic between the Nokia 12 module and the
customer server application is not possible without tunnelling. The Nokia 12
module is able to communicate towards the customer server application by
using an internal IP address generated dynamically in the operator’s network.
However, the customer server application cannot use the internal IP address to
communicate towards the Nokia 12 module because the firewall/Network
Address Translator (NAT) settings (1) used in the operator’s network do not
recognize the private IP addressing space to which the Nokia 12 module IP
address belongs to.
Thus two-way IP traffic between the Nokia 12 module and the customer server
application is possible only if the network operator provides tunnelling towards
the customer server application (2). If the Nokia 12 module and the customer
server application share the same Local Area Network (LAN), static IP
addresses can be used to route the traffic between the Nokia 12 module and
the customer server application via a leased line.
If there is a public IP network between the Nokia 12 module and the customer
server application, tunnelling is needed to hide the structure of the transit
network and to route the IP traffic between the specified endpoints. When
tunnelling is used, the configuration of the private access point specifies the
tunnelling method.
The Platform provides tools to overcome the problems related to using IP traffic
in M2M connections. The following chapters provide more information on the
Nokia implementation of local (Chapter 2.3) and wireless connectivity (Chapter
2.5), and the usage of the Nokia terminal and Nokia 12 module (Chapter 2.4).
Note: The Nokia terminal and Nokia 12 module do not have separate physical
interfaces for each connection type. The way that data is routed via the physical
interfaces depends on the connection type and the Platform components that are
used.
8/67
Local connectivity between the Nokia terminal and a remote device can be built
using CORBA, AT command or I/O control connections. Figure 5 illustrates the
local connectivity options that are available via the Nokia terminal.
Nokia GSM
Remote Connectivity Wireless
device Terminal connectivity
CORBA
AT
AM
I/O
Figure 5. The local connectivity options available via the Nokia terminal
CORBA is used to enable communication with the customer server application
over the Platform. In order to use CORBA, a communication infrastructure has
to be built within the Application Module (AM). For more information, see
Chapter 3.1.1.1.
Note: The AM runtime environment can be a part of the remote device (as
illustrated in Figure 5) or it can be a separate bridging element.
The Nokia terminal has analog/digital input pins and digital output pins that can
be used to control simple I/O applications. The I/O pins of the Nokia terminal
can be controlled remotely from the customer server application or from a
mobile handset using short messages. For more information, see the Nokia
GSM Connectivity Terminal Guide for User Control Mode.
9/67
RS-232
GSM
network
2.3.2 Local connectivity between the Nokia 12 GSM module and a remote
device
Local connectivity between the Nokia 12 module and a remote device can be
built using the Socket interface, asynchronous serial connection, AT
commands, I/O control connection, or National Marine Electronics Association
(NMEA) connection. Figure 7 illustrates the local connectivity options that are
available via the Nokia 12 module and its JavaTM 2 Runtime Environment
(J2RETM).
AT J2RE
AM
I/O
NMEA
GPS
Figure 7. The local connectivity options available via the Nokia 12 module
The socket interface is used to enable communication with the customer server
application over the Platform. If CORBA is used, a communication infrastructure
has to be built within the AM. For more information, see Chapter 3.1.1.1 and the
Nokia M2M Platform, M2M System Protocol 2 Integrator’s Manual.
The socket interface also makes it possible to use IP traffic (via TCP/UDP
sockets) between the remote device and the Nokia 12 module. For more
information on using TCP/UDP sockets in the Platform, see Chapter 2.2, the
10/67
Nokia M2M Platform M2M System Protocol 2 Integrator’s Manual, and Nokia
M2M Platform Nokia 12 GSM Module IMlet Programming Guide.
As with the Nokia terminal, the modem functionality of the Nokia 12 module
enables the use of AT commands. The AT commands can be used, for
example, for faxing. AT commands can also be used to test software and
Platform components in the application development phase. For more
information, see the Nokia 12 GSM Module AT Command Guide.
When compared to the Nokia terminal, the Nokia 12 module has more
analog/digital input pins and digital output pins available that can be used to
control simple I/O applications. The I/O pins of the Nokia 12 module can be
controlled remotely from the customer server application, IMlet or from a mobile
handset using short messages. For more information, see the Nokia 12 GSM
Module User Control Mode Guide.
11/67
For more information on the Nokia terminal, see:
Note: When compared to the Nokia terminal, the key difference is the possibility
to make Java applications, IMlets, to the Nokia 12 module. For more information
on making IMlets to the Nokia 12 module, see Chapter 3.1.2.
12/67
2.5.1 The Nokia M2M Gateway Trial Version
The Trial Version is intended for trying out the Platform technology and for
testing software in the development phase. Figure 8 illustrates the test systems
available for testing Platform functions and the customer’s own software.
RS-232
SMS
TCP/IP
Nokia GSM
Nokia GSM Nokia 12
Connectivity Nokia 12
Connectivity Terminal GSM module
GSM module (with test board)
Terminal (with RS-232
data adapter)
13/67
GSM network Intranet
Remote
devices
SM
S
SMSC
S
SM
Customer
server
application
GP
R S
GGSN
RS
GP S
PR
EG
Nokia M2M
Gateway
Corporate
CS
Edition
D
HS
CS
D* Modem
D pool
CS
D*
CS
HS
Nokia GSM
Connectivity Nokia 12
Terminal GSM module
* The Nokia 31 terminal and Nokia 12 module (RX-9) do not support HSCSD.
The service provider maintains the Gateway and offers M2M services to its
customers. The service provider also delivers Gateway Access Software to its
customers and establishes a connection between the Gateway Access
Software and the Gateway. In addition, the service provider provides the
customer company with necessary configuration details for the Gateway
Access Software.
14/67
The Gateway Access Software serves as an access point for customer
companies in the network. Each company creates a so-called domain in the
M2M system. The term domain is a logical entity containing all the terminals
and server applications that belong to a certain company or a certain
application. Each customer company has control over its own domain(s). Figure
10 illustrates the Service Provider Edition.
A SM
S
SMSC
S
A SM
VPN/SSL
B GP
R S
GGSN
RS
GP S
PR
B EG
Nokia M2M
Gateway
Service Provider
Edition
CS
A HS
D
CS
D* Modem
pool
D
CS
D*
B CS
HS
Domain A Domain B
intranet intranet
* The Nokia 31 terminal and Nokia 12 module (RX-9) do not support HSCSD.
15/67
Figure 10. The Nokia M2M Gateway Service Provider Edition
Note: In this document the Service Provider Edition is used as the default
Platform solution (in figures and examples).
All the key components and connections required for wireless connectivity are
illustrated in Figure 11. The numbering in the figure is used in the following
descriptions to help the reader to locate each component and connection in the
Platform system architecture.
16/67
GSM network Service provider network Internet
Remote
devices
A SM
S
SMSC
S
A SM
1 3 VPN/SSL
B GP 2
RS
GGSN
RS
GP S
PR
B EG
Nokia M2M
Gateway
Service Provider
Edition
CS
A HS D
CS
D* Modem
D
pool
CS
*
C SD
B HS
Domain A Domain B
intranet intranet
5 4
* The Nokia 31 terminal and Nokia 12 module (RX-9) do not support HSCSD.
Wireless bearers
Both the Nokia terminal and Nokia 12 module utilize wireless bearers (1) to
communicate with the server application via the GSM network. Due to the vast
variety of possible customer cases, there are several bearers available. The
17/67
bearers supported by the different Platform components are listed in Chapter
4.1.
In the Platform the selection of the bearer does not have to be hard coded in
the application. Instead, bearers can be configured flexibly for each case.
For more information on bearers and their usage, see Chapter 4.1.
Network devices
When establishing wireless connectivity, the bearer that is used determines the
use of the network device (2):
Note: The tasks related to the network devices are handled by the Gateway
administrators.
18/67
Gateway can be seen as a transparent communication channel that hides the
details of the GSM network and the Internet from the application developer. The
Gateway administrator typically establishes the connections to different GSM
network devices, such as SMSCs or GGSNs, together with some GSM
operator.
For more information on the Gateway, see the Nokia M2M Gateway 3.0
Corporate Edition Administration Manual and Nokia M2M Gateway 3.0 Service
Provider Edition Administration Manual.
Through the Gateway Access Software, the client company can operate their
own set of Nokia terminals and/or Nokia 12 modules. The Nokia terminals
and/or Nokia 12 modules in the remote end and the servers of the company
intranet form a so-called domain. Each domain belongs to a certain client, and
the client can control the access to its domain.
Communication through the Nokia M2M Platform is possible only inside the
client’s own domain. For example, CORBA requests are routed from the
Gateway to the right Gateway Access Software according to domain names. In
addition, the client can check the authentication details provided by the Nokia
terminal or Nokia 12 module before allowing access.
The Gateway Access Software tunnels traffic to the Gateway, easing firewall
traversal between domains. Security can be enhanced by encrypting traffic
between the Gateway Access Software and Gateway. Encryption can be done
using a Secure Sockets Layer (SSL) mechanism, which delivered as part of an
encryption-enabled version of the Gateway Access Software, or an external
Virtual Private Network (VPN) connection. The Gateway Access Software also
handles access control from Nokia terminals and Nokia 12 modules to the
company intranet, so that the company can freely manage the access rights.
Note: Utilising SSL is possible if the used Java Virtual Machine (JVM) supports
the Java Secure Socket Extension (JSSE™). The service provider also has to
provide the client with SSL credentials.
For more information on the Gateway Access Software, see the Nokia M2M
Gateway, Gateway Access Software 3.0 Administration Manual.
19/67
remote applications. Typically the customer server application is located in the
intranet, and it functions as a server (5) that controls the remote customer
applications, updates their configuration (for instance pricing data in vending
machines), and gathers data from the remote devices. However, as the roles of
the client and server can change dynamically in the Platform, the customer
server application can also act as a client requesting services from other
Platform components. The communication in the Platform is always routed via
the Gateway, but any of the components involved can initiate the
communication.
RADIUS authentication
EGPRS/GPRS and CSD/HSCSD communication is authenticated with a
Remote Authentication Dial-in User Service (RADIUS). The terminal ID and
password of the Nokia terminal/Nokia 12 module are authenticated by the
Gateway against the user information in the Device Information Storage (DIS).
Figure 12 illustrates the RADIUS authentication process for EGPRS/GPRS
communication.
20/67
Nokia M2M Gateway Gateway
Service Provider Access
Edition Software
Nokia 12 GSM 3
module
RADIUS
server
1 6
2 7 4
5
GGSN Device
Information
Storage
The RADIUS server in the Gateway forwards the request to the Gateway
Access Software (3), which requests the authentication information from the
DIS (4). When the DIS returns the authentication information (5), the Gateway
Access Software authenticates the terminal ID and password of the Nokia 12
module against the user information in the DIS.
MSISDN authentication
21/67
With SMS communication authentication is based on Mobile Subscriber
International ISDN Number (MSISDN). The MSISDN of the Nokia
terminal/Nokia 12 module is authenticated by the Gateway against the user
information in the DIS. Figure 13 illustrates the MSISDN authentication process.
SMSC Device
Information
Storage
If the phone number of the Nokia terminal/Nokia 12 module exists in the DIS,
the Gateway Access Software informs the SMSCP of the Gateway that the
Nokia terminal/Nokia 12 module in question is allowed to access the domain. If
the phone number does not exist in the DIS, the Gateway Access Software
informs the SMSCP of the Gateway that Nokia terminal/Nokia 12 module in
question is not allowed to access the domain (6).
22/67
3 DEVELOPING APPLICATIONS ON TOP OF THE NOKIA
M2M PLATFORM
Software developers can develop the following applications on top of the
Platform:
This chapter describes the basic requirements and options for developing the
Platform applications listed above. It also introduces the services that can be
used for developing the Platform applications. Figure 14 illustrates the elements
to which Platform applications can be made, and the elements via which
application development services/APIs can be used.
Nokia GSM
Connectivity GSM
Terminal network
Nokia M2M
Terminal Gateway Gateway
Application services Service Provider Access
Module Edition Software Server
Gateway
Java
services
APIs
Customer Customer
remote server
application application
Module
services
Java
APIs
IMlet
Nokia 12
GSM module
23/67
3.1 APPLICATION DEVELOPMENT IN THE PLATFORM
The latest version of the Nokia M2M Software Development Kit (SDK) is also
needed. It includes the required Platform software libraries (for M2M System
Protocols and CORBA), as well as additional documentation and example
applications. The Nokia M2M SDK can be downloaded from
http://www.forum.nokia.com/m2m.
Note: The Nokia M2M SDK includes a ready-made example application for
Windows (Win32) that can be used, for example, to test communication towards
the Nokia terminal/Nokia 12 module.
When the AM is integrated with the Nokia terminal, the communication within
the Application Module requires an Object Request Broker (ORB). A Nokia-
specific ORB is available for this purpose, but it is also possible to use a
custom-made ORB as long as it is Nokia M2M Platform compatible. The M2M
System Protocol 1 (SP1) provides the integration interface between the AM and
the Nokia terminal as illustrated in Figure 15.
24/67
Nokia GSM
Application Module
Connectivity
Terminal
Customer Serial
remote ORB SP1
application connection
Figure 15. Using the M2M System Protocol 1 to build Application Module
communication infrastructure
When the Nokia 12 module is used, the communication within the Application
Module is conveyed either via an ORB (Nokia ORB/custom-made ORB) or
directly between the customer remote application and the M2M System
Protocol 2 Socket API. Although the Nokia 12 module supports the M2M
System Protocol 1 as well, the integration interface between the AM and the
Nokia 12 module is typically built by using M2M System Protocol 2. Figure 16
illustrates the options that can be used to build a communication infrastructure
within the Application Module when the M2M System Protocol 2 is used.
Figure 16. Using the M2M System Protocol 2 to build Application Module
communication infrastructure
For more information on how to use the M2M System Protocol 2 to integrate the
AM with the Nokia 12 module, see the Nokia M2M Platform, M2M System
Protocol 2 Integrator’s Manual.
25/67
Note: The M2M System Protocol 1 is used with Nokia 12 module only when there
is a need to replace the Nokia terminal with the Nokia 12 module without changing
the M2M System Protocol 1 integration interface.
For more information on the M2M System Protocol 1, see the Nokia M2M
System Protocol 1.0 Specification.
The M2M System Protocol 2 enables IP traffic between the AM and the Nokia
12 module. From the IP addressing point of view M2M System Protocol 2
functions as a tunnel that combines the AM and the Nokia 12 module. Because
the AM and the Nokia 12 module share the same IP address and TCP/UDP
stack (located in the Nokia 12 module), all other Platform components view
them as one entity. The actual communication between the AM and the Nokia
12 module is handled using local sockets.
For more information on the M2M System Protocol 2, see the Nokia M2M
Platform M2M System Protocol 2.0 Specification.
Nokia 12 IMP 1.0 Concept Simulator is a tool that simulates the real product
functions. It can be used to develop and test IMlets in a simulated environment
without the actual Platform hardware. For more information on how to use the
Nokia 12 IMP 1.0 Concept Simulator, see Chapter 4.2.3, the Nokia M2M
Platform Nokia 12 IMP 1.0 Concept Simulator Installation Guide, Nokia M2M
Platform Nokia 12 IMP 1.0 Concept Simulator User Guide and Nokia M2M
Platform Nokia 12 GSM Module IMlet Programming Guide. The Nokia 12 IMP
1.0 Concept Simulator can be downloaded from
http://www.forum.nokia.com/m2m.
26/67
COM3 COM2 COM1
Making IMlets also requires that a software developer has access to application
development services. The Nokia 12 module includes several Java APIs that
can be used for making IMlets. For more information on the Java APIs
available, see Chapter 3.2.2.
When IMlets are made to the Nokia 12 module using CORBA, a software
developer can utilize the Nokia-specific CORBA services form the Nokia 12
module, or the CORBA services of the customer remote and customer server
27/67
applications. For more information on the Nokia–specific CORBA-services
available for making IMlets, see Chapter 3.2.1.
IMlets are packed in IMlet Suites. An IMlet Suite is a package – typically a Java
Archive (JAR) file – that contains one or more IMlet applications and a manifest
file that contains information about the IMlet Suite. For more information on
IMlets and IMlet Suites, refer to the Nokia M2M Platform Nokia 12 GSM Module
IMlet Programming Guide and Nokia M2M Platform JavaTM IMlet Loading
Component User Guide.
The Nokia 12 IMP 1.0 Concept Simulator and the Trial Version are needed
when IMlets are tested form the customer server application. For more
information, see Chapter 4.2.3, the Nokia M2M Platform Nokia 12 IMP 1.0
Concept Simulator Installation Guide, Nokia M2M Platform Nokia 12 IMP 1.0
Concept Simulator User Guide, and Nokia M2M Platform Software
Development Kit and Nokia M2M Gateway Trial Version Installation Guide.
28/67
In addition to the CORBA services, the Gateway provides three Java APIs: the
Java IMlet Loading Component (ILC), Terminal Management Component
(TMC) and Remote AM Update. For more information on the Java APIs
available for developing customer server applications, see Chapter 3.2.3.
Note: It is not possible to make applications to the Nokia terminal. The Nokia-
specific CORBA services that can be accessed via the terminal ORB are there to
be used by other Platform applications. However, it is possible to make additional
CORBA services to the Nokia 12 module.
Wireless Device
This service is used for retrieving basic device information and for obtaining,
setting, and observing device properties. Both the Nokia terminal and the Nokia
12 module offer this service. For more information, see the Nokia GSM
Connectivity Terminal and Nokia 12 GSM Module Interface Definition
Reference Guide.
Properties
This service is used for defining the parameters and events that are used
through the Wireless Device interface. Both the Nokia terminal and the Nokia
12 module offer this service. For more information, see the Nokia GSM
Connectivity Terminal and Nokia 12 GSM Module Properties Reference Guide.
29/67
Embedded Terminal
This service is used for controlling the basic GSM functionalities (such as PIN
codes, SMS messages, Phonebook, and GSM connections). Both the Nokia
terminal and the Nokia 12 module offer this service. For more information, see
the Nokia GSM Connectivity Terminal and Nokia 12 GSM Module Interface
Definition Reference Guide.
I/O
This service is used for controlling and observing the I/O pins of a specified
device. Both the Nokia terminal and the Nokia 12 module offer this service. For
more information, see the Nokia GSM Connectivity Terminal and Nokia 12
GSM Module Interface Definition Reference Guide.
GPS
This service is used for reading the Global Positioning System (GPS) -specific
parameters from a GPS module that is physically attached to the Nokia 12
module. The service is available only via the Nokia 12 module. For more
information, see the Nokia GSM Connectivity Terminal and Nokia 12 GSM
Module Interface Definition Reference Guide.
Remote AM Update
This service is used for updating the AM software over-the-air. The service is
available only via the Nokia 12 module. For more information, see the Nokia
GSM Connectivity Terminal and Nokia 12 GSM module Interface Definition
Reference Guide and Nokia M2M Platform Remote Application Module Update
User Guide. .
Note: The Java APIs of the Nokia 12 module are available only for making IMlets.
30/67
Socket API
The javax.microedition.io.Connector class provides the connection to this Java
API. The Socket API is used for creating client and server TCP sockets and for
reading/writing data from/to them. The Socket API also supports Datagram
(UDP) sockets. For more information, see the Nokia M2M Platform Nokia 12
GSM Module IMlet Programming Guide.
Serial API
The javax.microedition.io.Connector class provides the connection to this Java
API. The Socket API is used for reading data from and writing data to the serial
port of the Nokia 12 module. For more information, see the Nokia M2M Platform
Nokia 12 GSM Module IMlet Programming Guide.
Watchdog API
This API makes it possible to set a reset timer from the IMlet. If the Watchdog
timer is set during the IMlet execution, it should be reset before the timer
reaches the limit, or otherwise the timer will reset the Nokia 12 module in
question. For more information, see the Nokia M2M Platform Nokia 12 GSM
Module IMlet Programming Guide.
I/O API
This Java API is used for retrieving and setting the I/O pin values of the Nokia
12 module. For more information, see the Nokia M2M Platform Nokia 12 GSM
Module IMlet Programming Guide.
ORB API
This API provides the mapping of the OMG CORBA APIs to the Java
programming language, including the class ORB, which is implemented so that
a programmer can use it as a fully functional Object Request Broker (ORB).
Through this API an IMlet can access the Nokia-specific CORBA services via
the module ORB as well as the CORBA services implemented in the AM and
the customer server application.
Also, by using this API IMlets can offer their own services to customer remote
applications located in the AM and customer server applications. For more
information, see the Nokia M2M Platform Nokia 12 GSM Module IMlet
Programming Guide.
31/67
3.2.3 The Nokia M2M Gateway and Gateway Access Software services
It is not possible for the customer to make applications to the Gateway.
However, the following services that the Gateway and Gateway Access
Software provide can be used to make customer server applications.
Remote AM Update
The Remote AM Update Java API enables over-the-air update of AM firmware
via the GSM network. The Remote AM Update component has a Reference UI
that uses the Remote AM Update API. In addition to AM firmware update,
typical functions in which the Remote AM Update service can be used are
pricing data updates and configuration data changes. For more information, see
the Nokia M2M Platform Remote Application Module Update User Guide.
Smart Messaging
The Smart Messaging CORBA service can be used to configure Nokia
terminals and Nokia 12 modules to communicate with a specified Gateway. The
Gateway provides the Smart Messaging interface that offers methods to send
Smart Messaging data to a Nokia terminal or Nokia 12 module. The Smart
Messaging configuration can be done over-the-air by using a Reference UI.
Note: When Smart Messaging is used to configure Nokia terminals and/or Nokia
12 modules, the target terminals and/or modules must not have any connection
bearers configured and they must be switched on.
For more information, see the Nokia M2M Platform Smart Messaging
Programming Guide.
32/67
Text Messaging
The customer server application can send textual short messages via the text
messaging interface of the Gateway Access Software or Corporate Edition. The
Text Messaging functionality also makes it possible to send textual short
messages from a mobile handset to the customer server application via the
Gateway.
Note: The use of the Text Messaging service requires that the Gateway is
connected to a SMSC.
When the Text Messaging service is used, the Gateway processes all SMSC
communication. The customer server application needs only to send or receive
textual short messages through the Messager interface.
For more information, see the Nokia M2M Platform Text Messaging
Programming Guide.
Note: When the Service Provider Edition of the Gateway is used, the interfaces of
the DIS are used by the Gateway Access Software.
33/67
4 COMMUNICATION IN THE NOKIA M2M PLATFORM
The bearers supported by the different Platform components are listed in Table
1.
The Platform uses all the GSM bearers listed above either on top of the
Wireless Application Protocol (WAP1) or TCP/IP.
1
Wireless Transaction Protocol (WTP) and Wireless Datagram Protocol (WDP) are used in the Nokia
M2M environment.
34/67
4.1.1.2 General Packet Radio Service
With GPRS data is transferred over the network in small, standardized packets.
Transferring data as packets makes the transfer more efficient. With GPRS a
mobile can send and receive data packets using several time slots at the same
time, and time slot usage is presented as the number of downlink and uplink
slots used.
Note: Replacing the Nokia terminal with the Nokia 12 module requires a hardware
update as well. Nokia does not provide the hardware update.
For M2M applications EGPRS provides a platform for more efficient data
delivery and more robust services at higher data speeds. To utilize EGPRS, the
Gateway needs a connection to a GSM operator’s GGSN, where a dedicated
Access Point needs to be configured. In addition, the SIM card in the Nokia 12
module must be permitted to use EGPRS and the dedicated Access Point.
35/67
4.1.1.5 High Speed Circuit Switched Data
When High Speed Circuit Switched Data (HSCSD) is used, the Nokia
terminal/Nokia 12 module can send and receive data with several time slots at
the same time, which enables higher data transfer rates. The time slot usage is
presented as the number of downlink and uplink slots used. Like CSD, HSCSD
can be chosen as a bearer when large amounts of data needs to be
transferred. HSCSD offers higher data transfer rates than CSD, but an HSCSD
connection also costs more than a CSD connection.
Note: The network may adjust the speed of an HSCSD connection (depending on
the traffic load, for example). Thus HSCSD may correspond to a regular CSD
connection.
To utilize HSCSD, the SIM card used in the Nokia terminal/Nokia 12 module
must have HSCSD enabled. In addition, the Gateway requires a modem pool to
utilize HSCSD. The modem pool is typically connected to the GSM operator’s
network using some landline connection, such as ISDN or modems. Depending
on the model used, the modem pool can usually handle several connections,
thus making it possible to establish concurrent connections.
In the Platform bearer settings can be configured locally using the Configurator
or remotely using the TMC. If bearer settings are configured locally to the Nokia
terminal/Nokia 12 module using the Configurator, the same settings must be
configured separately to the DIS. If bearer settings are configured remotely to
the Nokia terminal/Nokia 12 module using the TMC, the TMC updates the
settings to the DIS automatically. The bearer settings are stored in non-volatile
memory.
For more information, see the Nokia M2M Platform Configuration Manual and
Nokia M2M Platform Terminal Management Component User Guide.
Figure 18 illustrates the Platform components to which the bearer settings are
configured (C).
36/67
Remote
device Nokia M2M
Gateway
Nokia GSM
Service Provider
Connectivity Customer
Edition Gateway
Terminal server
Access
Software application
C
Local GSM
connectivity network Internet
C
Nokia 12
GSM module C
Device
Remote Information
device Storage
Note: Dynamic connections can only be used for tasks that require temporary
connections (such as maintenance).
37/67
* Only applicable, when the bearer is a messaging bearer.
** This size applies to the binary messages used in the Platform.
The bearer-based maximum messages sizes for the Nokia 12 module are
presented in Table 3. Note, that when fragmentation is used, the maximum
message length depends only on the ORB used in both ends of the application.
Note: The bearer-specific message size limitations for GPRS, EGPRS, CSD, and
HSCSD presented in Table 3 apply only when WAP is used with the Nokia 12
module.
When TCP/IP is used with the Nokia 12 module, the GPRS, EGPRS, CSD, and
HSCSD message sizes are limited only by the memory capacity of the AM
and/or IMlet. The memory capacity available in the Java heap of the IMlet is
256 kbit, which is partly used by the internal functions of the IMlet. The
customer defines the memory capacity of the AM.
If an application uses CORBA messages in which the data packets exceed the
size limitations specified in Chapter 4.1.3, CORBA fragmentation is needed. If
messages that exceed the size limitations are sent without fragmentation, they
are discarded due to memory limitations of the Nokia terminal/Nokia12 module
If CORBA ORB software with GIOP 1.2 fragmentation support is used, the
terminal and module ORBs fragment CORBA messages automatically without
modifications in the application. The ORBs need to be configured to use
38/67
fragmentation and the maximum message sizes must be set according to the
limitations specified in Chapter 4.1.3.
For more information on how to configure ORBs to use fragmentation, see the
Nokia M2M Platform Remote Application Programming Guide and Nokia M2M
Platform Server Application Programming Guide.
GSM network
Application
Module/PC
1 SMS/
CSD
Nokia M2M
Gateway
Trial Version
Customer
Application server
Module/PC application
2
SMS
Application
Module/PC Nokia 12 IMP 1.0
Concept Simulator
3 TCP/IP
39/67
describes the communication when the Nokia terminal (1) is used, and Chapter
4.2.2 when the Nokia 12 module (2) is used. Chapter 4.2.3 describes the
communication of an entirely simulated environment (3) that is available for
developing and testing Java IMlets.
When applications are developed with the Nokia terminal using wireless
connectivity, SMS and CSD bearers can be used to access the GSM network
as illustrated in Figure 19. The Nokia terminal that is connected to the Trial
Version with an RS-232 serial cable functions as a modem, and its connection
type must be set to use either HW detection (default) or AT commands.
40/67
When wireless connectivity is used for application development with the Nokia
terminal, it is also possible to create a partly simulated Platform in which the
application logic of the AM, Trial Version and the customer remote application is
located inside a PC. Although located on the same PC, the simulated
applications communicate with each other wirelessly through the Platform (not
through the computer’s TCP/IP stack or shared memory) as illustrated in Figure
21.
GSM
network
Customer
PC server
application
41/67
Figure 22. Simulating PC connected to the Nokia module (mounted in the
test board) with an RS-232 cable
If a real embedded AM is used instead of a PC, the AM is connected to the
Nokia 12 module with the M2M System Connector (the Nokia 12 module is
mounted to the AM).
When applications are developed with the Nokia 12 module using wireless
connectivity, SMS bearer can be used to access the GSM network as illustrated
in Figure 19. The Nokia 12 module (mounted in the test board) that is
connected to the Gateway (Trial Version) with an RS-232 serial cable functions
as a modem, and it communicates using AT commands via the COM1 port.
Note: When applications are developed with the Nokia 12 module using wireless
connectivity and Trial Version, the Java environment of the IMlets is not available.
42/67
GSM
network
Customer
PC server
application
43/67
COM3 COM2 COM1
Note: Java IMlet serial data transfer to/from the Nokia 12 test board can only be
established via the COM3 port.
For more information on the Nokia 12 test board, see the Product Specification
for Nokia 12 GSM Module and Nokia M2M Platform Nokia 12 GSM Module
IMlet Programming Guide.
44/67
PC
Nokia 12 Nokia M2M
Application C IMP 1.0 Gateway
Module O Concept Trial Version
M Simulator
Local
TCP/IP
stack
Customer
server
application
45/67
programming languages (such as ANSI C).
The internal method invocation call of the client application is captured by the
stub, and it is converted into a general method call protocol called General
Inter-ORB Protocol (GIOP) before it is sent to the server application. After
receiving the GIOP message, the skeleton of the server application converts it
to the internal method call format that is used in the server application.
The use of CORBA requires middleware elements for routing method calls
between different applications. In CORBA the middleware elements used for
routing method calls are called Object Request Brokers (ORB). An ORB can
route the messages to a target object in the same device or to another device
through a data connection. ORBs and the generated stub and skeleton codes
hide the transmission technology complexities completely; the objects in the
client and server applications can only see each other’s method call interfaces.
The basic CORBA architecture is illustrated in Figure 26.
IDL
Client Server
methodCall() methodCall()
Stub Skeleton
Request
ORB ORB
46/67
4.3.1 Clients and servers in the Nokia M2M Platform
As described in Chapter 4.3, the CORBA interface definitions are used in the
Platform to define the interfaces that are used for communication between
system entities like customer remote and server applications. An interface
definition can be used to generate a stub (client) or a skeleton (servant) code,
or both.
The Platform does not set restrictions on the use of clients and servants. An
application can include both the client and servant.
To avoid redundant traffic, the customer server application can set an ‘I/O pin’
observer to each Nokia 12 module, and let the observers inform whenever
there is an I/O pin state change in one of the Nokia 12 modules that is controls.
Figure 27 illustrates a case in which an ‘I/O pin’ observer is set to a Nokia 12
module.
Customer
Nokia 12 GSM Nokia M2M server
module Gateway application
2
ORB ORB
ORB 1
3
Observer Listener
47/67
First a listener object is created to the customer server application ORB (1).
Then the customer server application sets an observer that is designed to
observe I/O pin states to the Nokia 12 module ORB (2), and gives it an object
reference to the listener object located in the customer server application ORB.
When the observer in the Nokia 12 module ORB registers a change in an I/O
pin status, it sends an I/O event to the customer server application (3).
If there are other applications that are interested in the same event, it is
recommended that the event is distributed to them (4).
First, if there are several applications that need to be informed about the same
event, only one of them should set the desired observer. Once the observer has
been set, the other applications can request for the observed events from the
application that is registered to listen to the specified events.
Note: To avoid redundant traffic over the wireless network, the other applications
should use TCP/IP over LAN when requesting for the observed events.
The CORBA Naming Service can be compared to the Domain Name System
(DNS) used in Internet addressing. Whereas the DNS translates host names
like www.nokia.com into numerical IP addresses, like 147.243.3.73, the
48/67
CORBA Naming Service translates object reference names (aliases) like
‘HelloWorldServer’ into IORs.
A typical M2M application has a large number of objects that implement the
same interface, but are located in separate Nokia terminals or Nokia 12
modules. Furthermore, the details of these Nokia terminals and Nokia 12
modules are stored in some application-specific data storage. Before the client
application can access objects located in remote Nokia terminals and/or Nokia
12 modules, it must receive an object reference to that object. Due to this, there
are two issues that need to be considered.
Firstly, the Interoperable Object References (IORs) in the Nokia M2M platform
must contain an Internet Inter-ORB Protocol (IIOP) profile with TCP/IP address
that points to the Nokia M2M Gateway. The real addressing details of a Nokia
terminal or Nokia 12 module must be stored in the object key field of the IIOP
profile.
Secondly, how to publish the IOR to the client software must be defined. In
CORBA applications, object references are typically published by binding IORs
to the Naming Service. In that case information is stored in two places: an
application-specific data storage and the Naming Service. This may introduce
some synchronisation problems.
Also, binding to the Naming Service tends to be rather static. This means that
the object reference cannot change dynamically, for example, to reflect the
preferred bearer.
For more information on how the Nokia ANC is used, refer to Chapter 4.4.3.1.
• Named references
• The standard CORBA Naming Service
• Object reference transfer
49/67
• Generating IORs using IMlets
Nokia GSM
Connectivity
Terminal/ Nokia M2M Gateway Customer
Application Nokia 12 GSM Gateway Service Access server
Module module Provider Edition Software application
2 3
6
4 5
CORBA
Naming
Service
50/67
Once the servant has been registered, the customer remote application creates
a named reference by using its ORB, and makes a request using the named
reference it created (2).
The Gateway (Service Provider Edition) sends the request to the corresponding
Gateway Access Software (3). The Gateway Access Software requests for the
corresponding IOR from the Naming Service, and the Naming Service returns
the requested IOR (4) (5).
Note: The Gateway and the customer server application must share the same
Naming Service.
After the Gateway Access Software has received the requested IOR, it
regenerates the CORBA request and sends it to the customer server
application (6). Finally the customer server application sends a reply message
to the customer remote application via the Gateway (7).
51/67
Nokia M2M Gateway Customer
Nokia 12 GSM Gateway Service Access server
module Provider Edition Software application
6
IMlet
2 3
4 5
Port: 19760
1
CORBA
Naming
Service
Figure 29. Obtain an IOR using the standard CORBA Naming Service
In this case the customer server application has to bind the servant (server
application object reference) to the Naming Service (1) before the IMlet (in the
Nokia 12 module) can make a Naming Service look-up.
Once the servant has been bound to the Naming Service, the IMlet can make a
CORBA request for the servant (2). The Gateway (Service Provider Edition)
sends the request to the corresponding Gateway Access Software (3). The
Gateway Access Software requests for the corresponding IOR from the Naming
Service, and the Naming Service returns the requested IOR (4) (5).
Note: The use of the standard CORBA Naming Service requires that the IMlet
knows the IP address and the port number of the Naming Service.
The Gateway Access Software forwards the reply from the Naming Service to
the IMlet (6) via the Gateway. At this point the IMlet is able to open a
connection to the customer server application via the Gateway and Gateway
Access Software (7).
Note: If the standard CORBA Naming Service is used, it must be ensured that
the IOR of the customer server application remains unchanged.
52/67
4.4.1.3 Obtaining IORs using object reference transfer
It is possible to transfer CORBA object references in the Platform. That is, one
object can return a reference to another object. For example, object A can
request for an object reference to object C from object B, and object B can
return the object reference of object C to object A.
Note: The use of the createReference method requires that the object key and
the location of the target object are known.
For more information on the createReference method, see the Nokia M2M
Platform Nokia 12 GSM Module IMlet Programming Guide.
53/67
Nokia GSM
Connectivity
Terminal/ Customer
Nokia 12 Nokia M2M server
GSM module Gateway application
1 3
2
The Gateway recognizes that the CORBA request has an encapsulated target
address. It decapsulates the target address from the object key and
regenerates a new CORBA message (2).
On the basis of the target information the Gateway is able to send the new
CORBA request to the customer server application (3).
54/67
4.4.2.1 Publishing IORs dynamically
The customer remote application utilizes Mobile IORs (MIOR) for publishing
object references dynamically. A Mobile IOR is a special IOR that hides the
mobility of the customer remote application from clients that invoke operations
on target objects located in the Nokia 12 module/AM. Figure 31 illustrates the
process of using a MIOR.
4 3
Home Location Agent
6 5
Device
Information
Storage
The server application invokes the process by sending a CORBA request to the
remote application. The remote application replies by sending a special MIOR
(2) that includes a mobile terminal profile, which refers to the requested object.
After receiving the MIOR the server application sends an object reference
request on the basis of the addressing information in the MIOR’s IIOP profile
(3). Instead of pointing to the target object in the remote application, the IP
address, and the port number in the IIOP Profile point to the Home Location
Agent (HLA) of the domain to which the remote application belongs to (3).
55/67
The HLA examines the mobile terminal profile of the MIOR to find out the
location of the target object (4). Once the HLA has identified the target object, it
requests the addressing details of the remote application from the Device
Information Storage (DIS) (5), which returns the requested addressing details
(6).
56/67
CORBA
Naming
Service
Nokia M2M
Gateway Service 3
Provider Edition
4
Application Nokia 12 2
Module GSM module
Customer
1 server
application
9
10
5
8
6
7
Device Home
Information Location
Storage Agent
Figure 32. Publishing an IOR with the Nokia 12 module/AM using the
standard CORBA Naming Service
In this case the customer remote application must publish its object reference
by binding it to the CORBA Naming Service before the customer server
application can make a reference request. The remote application binds its
object reference to the Naming Service via the Gateway (1) (2).
Once the remote application has bound its object reference (IOR that includes a
MIOR) to the Naming Service, the server application can make a reference
request for it. It requests for the corresponding IOR from the Naming Service
(3), and the Naming Service returns the requested IOR (4).
Note: The use of the standard CORBA Naming Service requires that the
Gateway and the customer server application know the IP address and the port
number of the Naming Service, and that they share the same Naming Service.
The server application makes an object reference request on the basis of the
addressing information in IOR (5).
57/67
The HLA examines the mobile terminal profile of the MIOR to find out the
remote application on which the target object is located. Once the HLA has
identified the target object, it requests the addressing details of the remote
application from the Device Information Storage (DIS) (6), which returns the
requested addressing details to the HLA (7).
After receiving the addressing details from the DIS, the HLA sends a
location_forward CORBA message to the ORB in the server application (8). The
ORB examines the location_forward message and sends it to the remote
application in question (9). Finally the remote application sends a reply to the
server application (10).
Note: If the standard CORBA Naming Service is used to with the Nokia 12
module to publish object references (for example to establish a connection
between two Nokia 12 modules), it must be ensured that the actual CORBA object
in the IMlet is always given the same persistent reference when it restarts.
Otherwise the original object reference in the CORBA Naming Service becomes
invalid when the IMlet restarts.
58/67
Nokia GSM
Connectivity
Terminal/ Nokia M2M Gateway Customer
Application Nokia 12 GSM Gateway Service Access server
Module module Provider Edition Software application
6
7 5
1
4
Nokia ANC
iorgen M2MDevices
2 3
Device
Information
Storage
Figure 33. Obtaining an IOR using the Nokia Active Naming Context
In this case the customer server application invokes the communication by
sending an object reference request to the CORBA Naming Service. In the
request the customer server application requests the Naming Service to resolve
the addressing details of a specific customer remote application by using the
Nokia ANC that the Gateway Access Software has registered to the Naming
Service (1).
Depending on the contents of the reference request, the Nokia ANC resolves
the addressing details using either the IOR generator (‘iorgen’) or ‘M2MDevices’
ANC instance. The use of the ‘iorgen’ requires that the original reference
request includes the bearer, object key, type identification, and port number
information in addition to the terminal ID. On the basis of that information set
59/67
the ’iorgen’ is able to generate the required IOR for the remote application in
question.
The use of the ‘M2MDevices’ instance is easier because it can generate the
required remote application IOR on the basis of the terminal ID and alias name.
As described in Figure 33, the ‘M2MDevices’ instance uses the DIS application
to obtain the required bearer and class information (object key, type
identification and port number) (2). After receiving the request from the
‘M2MDevices’ instance, the DIS returns the corresponding IOR back to the
‘M2MDevices’ instance (3).
Note: The use of ‘M2MDevices’ instance requires that the bearer and class
information is configured in the DIS. Nokia provides a text-based implementation
of DIS that is intended to be used in development phase only. In end-use, it is
recommended to make a DIS implementation that uses a database.
Once the Nokia ANC has resolved the requested addressing details (either
using ‘iorgen’ or ‘M2MDevices’), it sends an IOR to the server application (4).
The server application then sends a request to the Gateway (Service Provider
Edition) via the Gateway Access Software (5). The Gateway solves the final
destination of the request from the IOR (6), and then opens up a connection to
the corresponding remote application (7). Finally the remote application in
question sends a reply to the server application (8).
• Named references
• The standard CORBA Naming Service
60/67
4.4.4.2 Publishing IORs using the standard CORBA Naming Service
Chapter 4.4.1.2 describes how to publish an IOR with the customer server
application using the standard CORBA Naming Service.
61/67
5 DEPLOYMENT AND CONFIGURATION OF THE PLATFORM
SERVICES
This chapter provides an overview of the deployment and configuration of the
Platform services. The overview includes a configuration and deployment
example and short descriptions on the key components and techniques used in
the deployment/configuration process.
Note: The Nokia M2M solution enables flexible deployment and configuration of
the Platform services. The customer can utilise the interfaces and components
provided by Nokia can to build a custom-made configuration/deployment solution.
This chapter provides one possible example of deploying and configuring the
Platform services. The use of the different Nokia interfaces and components is
illustrated in Figure 34.
2
4
3
Nokia GSM
Connectivity Device
Terminal/ Information
Nokia 12 GSM Storage
module
Note: In this example the customer is responsible for implementing the customer
server application and DIS.
62/67
First the maintenance person installs the Nokia terminal or Nokia 12 module
and sends a short message that includes the terminal/module MSISDN to the
customer server application via the Gateway (1).
Then the Terminal Management Component (TMC) that runs on the customer
server application is used to configure the Nokia terminal/Nokia 12 module (2).
When the Nokia terminal/Nokia 12 module is configured for the first time, a
Smart Messaging interface is used via the TMC API.
When the TMC is used, the system also stores the configuration information
into the Device Information Storage (DIS) (3).
Once the configuration information has been stored, the customer server
application is used to test the connection to the Nokia terminal/Nokia12 module
(4). If necessary, the configuration can be reconfigured at this point.
When the process has been completed, the customer server application is used
to inform the maintenance person of the configuration status (5). The
maintenance person can be notified by sending a short message to his/her
mobile equipment (or by sending a LED indication to the remote device).
63/67
The configuration options consist of user-defined parameters and parameters
that are set in the Service Provider Edition. The user can define only certain
parameters (such as proper bearer types, terminal IDs and dial numbers). The
Gateway parameters are collected automatically by TMC. For more information
on TMC, see the Nokia M2M Platform Terminal Management Component User
Guide.
When the TMC stores the configuration information in the DIS, it configures the
user and bearer information of the DIS. The user information contains
identification information (IDs and passwords) related to the Nokia
terminals/Nokia 12 modules. The bearer information contains information on the
bearers (used bearers, ports, and timeouts) that are used by the Nokia
terminals/Nokia 12 modules.
64/67
Customer remote Nokia Server
application M2M
Gateway
Application
Module
Remote AM Customer server
Update bootloader application
Remote
AM Update API
Protocol calls
Nokia 12
GSM module
Note: When the Remote AM update feature is used, the customer is responsible
for implementing the customer server application and Remote AM Update
bootloader.
65/67
functioning as a proxy. It translates messages coming from the API to a suitable
format for the bootloader. The CORBA Servant uses the Remote AM Update
CORBA interface to communicate with the customer server application, and the
Remote AM Update Protocol is used for communicating with the bootloader.
The bootloader is part of the AM software. The bootloader code implements the
Remote AM Update process in the AM. It facilitates communication with the
CORBA Servant, receives new firmware, erases the non-volatile memory of the
AM, and writes new firmware into it.
When the update procedure for all the blocks has been completed successfully,
the customer server application requests the Nokia 12 module to exit the
Remote AM Update mode. The Nokia 12 module resets the AM and restores
the M2M System Protocol operation. An exit is requested also in the case of a
failure. A new update procedure cannot be started before finishing the old one.
For more information on the Remote AM Update feature, see the Nokia M2M
Platform Remote Application Module Update Programming Guide.
66/67
Nokia 12 GSM
module
GSM/GPRS network
TCP/IP
CORBA ORB
Computer
The ILC API provides IMlet Suite download functions that can be used in
customer applications. The IMlet Suite download process options are
configurable, for example the download packet size can be modified, and a
specified IMlet can be started once the downloading is finished. IMlet Suites
can also be downloaded asynchronously to multiple Nokia 12 modules (one at
a time).
67/67