MESSAGE PROCESSING
The present invention relates to message processing, and in particular to a system and method for processing a message containing application data on a computing device, such as a PDA, and for launching an appropriate application and providing the data to it.
Mobile computing devices are becoming essential tools for many people. In particular, personal data assistants (PDAs) such as those manufactured by Palm™, Handspring™, Compaq™, Sony™ and others are used by many business people to organise their daily activities. These PDAs typically come equipped with a number of standard applications, such as a calendar, a text processor, an address book, and a to-do list. However, thousands of third party applications have been developed for PDAs, providing an extremely wide range of features and capabilities. Connectivity is an important requirement for PDAs. In particular, for the traveller, it is important to be able to transfer information to and from the PDA whilst away from the office. For this reason, many PDAs provide the ability to connect to a mobile telecommunications network, either directly, as in the case of the Palm™ VII, or indirectly via an infrared link to a similarly equipped mobile telephone. For example, PDAs can send and receive textual data by using the mobile network's short message service (SMS). Currently, SMS messages are used to send text messages to the PDA user without any application-specific content. For example, an SMS message might be sent to alert a traveller of a new appointment. The traveller would read the message, start up a calendar program on his PDA, and manually enter the appointment details. This manual data input is inefficient and inconvenient. It is desired, therefore, to provide a system and method for processing a message containing application data on a computing device, and for launching and providing the data to an appropriate application, or at least provide a useful alternative.
In accordance with the present invention there is provided a message processing method, executed by a personal digital assistant (PDA), including: parsing a message to determine whether the message includes application data;
parsing the message containing said application data to determine an application type; translating said application data into translated data suitable for an application of said application type; and providing said translated data to said application.
The present invention also provides a message processing method, executed by a server system, including: receiving a network address and application data for a personal digital assistant (PDA);
• generating a message including an application identifier and said application data; and sending said message for transmission as a short message service (SMS) message using said network address.
The present invention also provides a parser for execution on a personal digital assistant (PDA), said parser including: code for parsing a message containing application data to locate an application identifier; code for identifying an application on the basis of said application identifier; code for translating said application data into translated data suitable for said application; and code for providing said translated data to said application.
The present invention also provides a micro-data service (MDS) message comprising a short text message with respective fields for identifying said message as an MDS message, identifying at least one application of a PDA and data for said at least one PDA application.
Preferred embodiments of the present invention are hereinafter described, by way of example only, with reference to the accompanying drawings, wherein:
Figure 1 is a block diagram of a preferred embodiment of an application data messaging system; and
Figure 2 is a flow diagram of a preferred method for processing application data messages on a PDA in the application data messaging system.
An application data messaging system 1, as shown in Figure 1, includes a computer 2, a mail server 9, a micro-data service (MDS) server 4, and a gateway 7 to a telecommunications network 8, connected by the Internet 6. The system 1 also includes a mobile telephone 10 and a PDA 12. The computer 2 is a standard computer device or system, such as a PC, that is able to establish a connection to a network such as the Internet 6, and is able to execute a standard browser application, such as Microsoft Internet Explorer. The mail server 9 is a standard computer server system that runs an email server platform, such as Microsoft Exchange, and also maintains a connection with the Internet. The MDS server 4 is a standard computer server system with web server software, such as Microsoft IIS, that is able to execute program scripts and serve HTML pages over the Internet 6. The gateway 7 is a standard SMS or GSM packet radio service (GPRS) gateway that is able to transmit (and receive) SMS messages to the mobile telecommunications network 8. The messages may be those received from the MDS server 4. The mobile telephone 10 is a standard mobile telephone, such as those produced by Ericsson and Nokia for the GSM network, and which includes the ability to connect to a PDA by a communications link, such as an infrared link. The PDA 12 is a standard personal digital assistant running the PalmOS or Microsoft Pocket PC OS.
The MDS server 4 includes HTML pages and forms, for serving to a user with a computer 2, and program code for executing the messaging process steps described below, and in particular which enable the MDS server to generate a message in an MDS format and forward this as an SMS message from the gateway 7. The PDA 12 includes an MDS
Centre application that is able to process the MDS messages received, as described below.
Whilst the steps of the messaging process are most efficiently executed under the control of the program code included in the MDS server 4 and the PDA 12, the steps may also be executed, at least in part, by dedicated hardware circuits included in the server 4 and the
PDA 12.
The messaging system 1 allows messages to be sent from any computer 2 connected to the Internet 6 to the PDA 12 via the mobile telephone 10. For example, if a salesman is travelling with his mobile telephone 10 and PDA 12, the salesman's secretary can send him the details of a new meeting that has just been scheduled. The secretary connects to the MDS server 4 via the Internet 6 using a web browser application on the computer 2. The MDS server 4 sends an HTML form to the web browser to allow the secretary to fill in the appointment details and thereby to create a meeting invitation. The form contains the following (note that HTML presentation code such as <table> has been omitted for clarity):
<for method="get" action="http: //ww .mds . telstra. com. au/mds .php3">
Mobile number:
<input type="text" name="phone_number"Xbr> Sender :
<input type="text" name="sender"><br> Date:
<select name="year">
<option value="2000 ">2000</option> <option value="2001 ">200K/option>
<option value="2002 ">2002</option> </select> <select name="month">
<option value="01">January</option> < ! -- February to November omitted for clarity --> <option value="12">December</option> </select> <select name="day">
<option value=" 01 ">K/option> < ! — 2 to 30 omitted for clarity — >
<option value=" 31 ">31</option> </select> <br> Time Start :
<select name=" start_time">
<option value="0000">12am</option> <! — lam to 10pm omitted for clarity —> <option value="2300">llpm</option> </select> End: <select name="end_time">
<option value="0000">12am</option>
<! — lam to 10pm omitted for clarity —> <option value="2300">llpm</option> </select> <br> Reminder:
<input size="3" type="text" name="reminder_time"> <input type="radio" name="reminder_unit" value="M" checked>Minute</input>
<input type="radio" name="reminder_unit" value="H">Hour</input>
<input type="radio" name="reminder_unit" value=" D">Day</input> <br> Message : <textarea name="message" cols=" 40 " rows="2 "x/textarea><br>
<input type="submit" name="butSend" Value="Send"> </form> The secretary completes this form with the following data:
Mobile number = 0407040254 Sender = sender@home.com Date = 2000, September 7 Start = 10am End = 11am
Reminder = 10 reminder__unit = M
Message = Mr Elmo Raine: Fish Project Meeting
When the secretary then presses the "Send" button on the form, the web browser sends the following data to the MDS Web server: phone_number=04070 0254&sender=sender%40home. com&year=2000&m onth=10&day=03&start_time=1100&end_time=1300&reminder_time=l 0&reminder_unit=M&message=Mr%20Elmo%20Raine%3A%20Fish%20Proj ect%20Meeting&butSend=Send
In an alternative embodiment, a copy of the appointment is sent from the MS Exchange Server 9 to the MDS server 4 which subsequently converts the appointment into the an MDS format, as described below.
Whether the MDS message is created on the computer 2 or the MS Exchange server 9, it is sent to the MDS server 4 for conversion into the MDS format. The MDS Server 4 then
sends the MDS message via the gateway 7 to a telecommunications network 8, from which it is transmitted as an SMS message to the salesman's mobile telephone 10. The message is sent to the gateway 7 as a text string or a suitable format recognised by the gateway, which can be constructed into an SMS message.
The MDS data format may be described in a notation system based on Backus-Naur Form. In this notation system:
(a) text within angled brackets (<>) denotes a symbol;
(b) symbols on the left of a definition symbol ( : : =) are defined by symbols on the right of a definition symbol;
(c) text within double quotes (" ) is a string constant;
(d) parentheses ( ( ) ) are used to group symbols;
(e) square brackets ( [ ] ) represent possible characters for a symbol, e.g [A-Z ] means "any character from A to Z"; (f) a vertical bar ( I ) is the inclusive-OR operator;
(g) a superscript number, n, with a minus symbol (-) means "at most n repetitions";
(h) a superscript number, n, with a plus symbol (+) means "at least n repetitions";
(i) a superscript number, n, means "exactly n repetitions"; The MDS message format is defined in this notation as:
<MDS Message> ::= <Fixed Tag> <Separator> <Application Identified <Separator> <Payload> <Fixed Tag> ::= "MDS"
<Separator> ::= ":"
<Application Identified ::= [A-Za-z]4
An example of an MDS message is:
MDS :DATE:<Payload>. The format of <Payload> depends on the specific application. For example, an input message for the particular calendar application with the identifier "DATE" is:
<Payload> ::= <From Address> <Separator> <Date> <Separator> <Start Time> <Separator> <End Time> <Separator> <Reminder Time> <Separator> <Reminder Unit> <Separator> <Note>
<From Address> ::= <Alphanumeric>x
<Date> ::= YYYYMMDD
<Start Time> ::= HHMM
<End Time> ::= HHMM <Reminder Time> : := [0-9]2"
<Reminder Unit> ::= {M | H | D} (M = minute, H = hour, D = day)
<Note> ::= <Alphanumeric>y
<Alphanumeric> ::= [A-Za-zO-9@.J
The size of x and y is constrained by the size of the underlying message transport system.
The salesman's new meeting appointment is with a Mr Elmo Raine on 7 September 2000, from 10 am to 11 am, with a reminder 5 minutes before the meeting, and a brief note, "Fish project meeting". The payload or calendar program MDS data representing the salesman's new appointment is therefore:
Mr Elmo Raine:20000907: 1000:1100:5 :M:Fish project meeting
The entire MDS message containing this data is then:
MDS:DATE:Mr Elmo Raine:20000907: 1000:1100:5:M:Fish project meeting
This MDS message is received from the telecommunications network 8 as an SMS message on the salesman's mobile telephone 10. The salesman is able to recognise the message as an MDS message by the leading "MDS:" characters. The mobile telephone 10 and the PDA 12 are both equipped with infrared (IR) ports, allowing them to communicate with each other. The link may also be provided by other short-range links such as a serial cable or a radio-frequency protocol such as Bluetooth. The salesman runs the MDS Centre software application on the PDA 12, and instructs the application to enter a mode for receiving messages via the IR port on the PDA 12. He points the IR ports of the two
devices at each other and instructs the PDA software to retrieve SMS messages from the mobile telephone 10.
The MDS Centre application receives the SMS messages and begins processing them according to the flowchart shown in Figure 2. After receiving the SMS messages in step 20, the messages are parsed (step 22) to determine whether they contain MDS data or are just ordinary text messages (step 24). For example, messages beginning with the four characters "MDS:" are deemed to be MDS messages. Messages that do not contain MDS data are discarded (step 26). MDS messages are stored, but the leading four characters are removed to reduced memory consumption and improve readability on the PDA screen. After all of the new SMS messages have been processed, the MDS Centre application exits the mode for receiving messages (steps 20-26) and enters a message browsing mode.
The list of unprocessed MDS messages are now displayed (step 28), and the MDS Centre application waits for a message to be selected for further processing. The salesman chooses the new appointment message for further processing (step 30). The message is now parsed (step 32) and the application identifier "DATE" is extracted from the MDS data. The application searches a configuration file of the application for an entry matching the application identifier (step 34). If an entry is not found, an error message is displayed (step 36). Otherwise, the matching entry is processed by a translator module of the MDS Centre application in order to determine how to translate the MDS data string into the appropriate format for the matching application. For the example, the configuration file contains the following translation entry:
[DATE]
APPLICATION="Calendar"
APPDATA="
BEGIN: VCALENDAR\015\012
BEGIN: VEVENT\015\012 DTSTART: {$2}T{$3}00Z\015\012 DTEND: {$2}T{$4}00\015\012 DESCRIPTION: {$7}\015\012 END: VEVENT\015\012 END: VCALENDAR\015\012 "
and the MDS data contains the following:
Mr Elmo Raine:20000907: 1000:1100:5:M:Fish project meeting
The numbered arguments of the translation entry denote the corresponding fields of the MDS data. For example, the seventh field, "Fish project meeting" is represented by "{$7}" in the translation entry. Hence the MDS data is translated (step 38) in accordance with the translation entry to produce:
BEGIN: NCALENDAR\015\012 BEGIN: NENENT\015\012
DTSTART: 20000907T 100000Z\015\012
DTEND: 20000907T110000Z\015\012
DESCRIPTION: Fish project meeting\015\012
END: VEVENT\015\012 END : VC ALEND AR\015\012
Only some of the possible fields were used in this example. Carriage returns and line feeds in the translation entry are ignored, and if these or other special characters are desired in the translated output, they are represented by their octal ASCII codes using C notation, as in the example above.
Now that the MDS data has been translated into an appropriate form that the application can understand, the Calendar application is launched by the MDS Centre application and the translated data is sent to the application (step 40). For example, in Palm™ PDAs, the PalmOS™ Exchange Manager is used by the MDS Centre application to launch the Calendar application, and pass it the translated data on startup. The MDS message is then removed from the list of unprocessed messages displayed by the MDS Centre application. The Calendar application processes the translated message and enters the new meeting data into the calendar on the PDA 12 for the salesman.
For implementation with the PalmOS™, two additional records may need to be defined in the parser of the application: the first is the identifier for the target application (e.g. Calendar has an identifier called "sysFileCDatebook") and the second is a string containing the file name extension used by the target application (e.g. a Calendar
application expects a file name extension of " . vcs"). Additional records of this nature may or may not be required depending on the PDA's operating system.
To support the extensibility of the MDS application (for supporting new PDA applications), new translator modules can be delivered to and stored on the PDA in the same way as delivering and storing any new applications on the PDA. For example, on a PDA running PalmOS™, the translation module would be delivered in the same manner as a Palm application and stored as a Palm™ DataBase.
The flexible MDS message format defined above supports new applications from any source. All that is required is to reserve a new application identifier for a new application. However, a single application may support many application identifiers.
In an alternative embodiment, individual PDA applications are able to examine the list of unprocessed MDS messages, translate selected messages which contain the application identifier of the running application, and process the resulting data. In a further embodiment, the task of receiving the SMS messages from the network 8 may also be performed directly by the application, as the PDA 12 could receive SMS messages directly from the telecommunications network 8, avoiding the need for the mobile telephone 10.
The system 1 may be used in a range of applications, including the transmission of security tokens (such as authentication codes) for mobile commerce and application service providers, and the transmission of 'fill-in' forms to obtain machine-readable responses from mobile users.
Many modifications will be apparent to those skilled in the art without departing from the scope of the present invention as herein described with reference to the accompanying drawings.