Language selection

Search

Patent 2556777 Summary

Third-party information liability

Some of the information on this Web page has been provided by external sources. The Government of Canada is not responsible for the accuracy, reliability or currency of the information supplied by external sources. Users wishing to rely upon this information should consult directly with the source of the information. Content provided by external sources is not subject to official languages, privacy and accessibility requirements.

Claims and Abstract availability

Any discrepancies in the text and image of the Claims and Abstract are due to differing posting times. Text of the Claims and Abstract are posted:

  • At the time the application is open to public inspection;
  • At the time of issue of the patent (grant).
(12) Patent: (11) CA 2556777
(54) English Title: METHOD AND SYSTEM FOR SELECTING A TRANSCODER TO CONVERT BETWEEN CONTENT TYPES
(54) French Title: METHODE ET SYSTEME DE SELECTION D'UN TRANSCODEUR DE CONVERSION ENTRE DES TYPES DE CONTENUS
Status: Deemed expired
Bibliographic Data
(51) International Patent Classification (IPC):
  • H04L 12/16 (2006.01)
  • G06F 5/00 (2006.01)
(72) Inventors :
  • YU, KOON WAH (Canada)
(73) Owners :
  • RESEARCH IN MOTION LIMITED (Canada)
(71) Applicants :
  • RESEARCH IN MOTION LIMITED (Canada)
(74) Agent: GOWLING WLG (CANADA) LLP
(74) Associate agent:
(45) Issued: 2012-01-31
(22) Filed Date: 2006-08-22
(41) Open to Public Inspection: 2008-02-22
Examination requested: 2006-08-22
Availability of licence: N/A
(25) Language of filing: English

Patent Cooperation Treaty (PCT): No

(30) Application Priority Data: None

Abstracts

English Abstract

A server may provide transcoding services (e.g. to transcode Web content for mobile devices) using a plurality of transcoders. To facilitate transcoder selection, server operations may be configured using a configuration framework in which the transcoders and respective mapping priorities are specified. The framework also supports the specification of, for any of the transcoders: a) respective device profile matching data for selecting a particular transcoder in response to a requesting device's profile; and b) a respective next transcoder to invoke thereby to chain transcoder invocations. The framework may be prepared in accordance with an XML schema. The server may be a wireless gateway or proxy server for mobile devices accessing Web-based content.


French Abstract

Un serveur peut fournir des services de transcodage (p. ex transcoder un contenu Web pour des dispositifs mobiles) en utilisant plusieurs transcodeurs. Afin de faciliter la sélection d'un transcodeur, des opérations du serveur peuvent être configurées en utilisant un cadriciel de configuration dans lequel les transcodeurs et les priorités de mappage respectives sont précisés. Le cadriciel soutient aussi la spécification, pour chaque transcodeur, des éléments suivants : a) des données de correspondance de profil de dispositif respectif pour sélectionner un transcodeur spécifique en réponse à un profil de dispositif demandeur; et b) un a transcodeur suivant respectif pour demander d'enchaîner des déclencehements.de transcodeur. Le cadriciel peut être préparé conformément à un schéma XML. Le serveur peut être une passerelle sans fil ou un serveur mandataire pour les dispositifs mobiles ayant accès à du contenu sur le Web.

Claims

Note: Claims are shown in the official language in which they were submitted.





WHAT IS CLAIMED IS:


1. A method of configuring a server to provide transcoding services, said
method comprising:

providing a configuration framework for specifying to the server a plurality
of transcoders for transcoding content types to facilitate selection
of a one of the transcoders to perform the transcoding, said
framework specifying, for respective ones of the transcoders, a
mapping priority for an input content type transcodable by the
respective ones of the transcoders, such that the selection is
responsive to the mapping priority,

wherein the configuration framework is further defined for specifying for
any of the transcoders respective device profile matching data for
comparison with a device profile of a device requesting the
transcoding services, such that the selection is further responsive
to the device profile.


2. The method of claim 1 wherein the framework is further defined for
specifying for any of the transcoders a respective next transcoder, such that
selection of a one of the transcoders also selects the respective next
transcoder
for invocation next.


3. The method of claim 1 wherein the framework is further defined for
specifying for any of the transcoders a respective initialization parameter
for
configuring the initialization of the transcoder.


4. The method of claim 1 wherein the framework comprises an XML schema.

5. A computer program product, comprising a computer readable medium
having code embodied therein, for execution by a processor for configuring a
server to provide transcoding services, said computer program product
comprising:



14




a configuration framework for specifying to the server a plurality of
transcoders for transcoding content types to facilitate selection of a
one of the transcoders to perform the transcoding, said framework
specifying, for respective ones of the transcoders, a mapping
priority for an input content type transcodable by the respective
ones of the transcoders, such that the selection is responsive to the
mapping priority,

wherein the configuration framework is further defined for specifying for
any of the transcoders respective device profile matching data for
comparison with a device profile of a device requesting the
transcoding services, such that the selection is further responsive
to the device profile.


6. The computer program product of claim 5 wherein the framework is further
for specifying any one or more of the following for any of the transcoders:

(a) a respective next transcoder, such that selection of a one of the
transcoders also selects the next transcoder for invocation next;
and

(b) a respective initialization parameter for configuring the initialization
of the transcoder.


7. The computer program product of claim 5 wherein the framework
comprises an XML schema.


8. A method of providing transcoding services comprising:

selecting a one transcoder from among a plurality of transcoders to
transcode content having an input content type, said selecting
responsive to a transcoder selection configuration specifying the
plurality of transcoders and for respective ones of the transcoders,
a mapping priority for an input content type transcodable by the


15




respective ones of the transcoders, such that the selection is
responsive to the mapping priority,

wherein the transcoder selection configuration is further for specifying a
respective next transcoder, such that said step of selecting also
selects the next transcoder for invocation next.


9. The method of claim 8 wherein the transcoder selection configuration is
further for specifying a respective next transcoder, such that said step of
selecting also selects the next transcoder for invocation next.


10. The method of claim 8 wherein the transcoder selection configuration is
further for specifying for any of the transcoders a respective initialization
parameter for configuring the initialization of the transcoder and wherein the

method comprises the step of initializing the transcoders in accordance with
any
respective initialization parameter.


11. A computer program product, comprising a computer readable medium
having code embodied therein, for execution by a processor of a server to
provide transcoding services in accordance with the method of claim 8.


12. A computer program product, comprising a computer readable medium
having code embodied therein, for execution by a processor of a server to
provide transcoding services in accordance with the method of claim 9.


13. A computer program product, comprising a computer readable medium
having code embodied therein, for execution by a processor of a server to
provide transcoding services in accordance with the method of claim 10.


14. A server for providing transcoding services using a plurality of
transcoders, said server comprising:

(a) a processor coupled to a memory storing software for execution by
the processor, said software comprising:



16




(i) a transcoder configuration module for specifying the plurality
of transcoders and, for respective ones of the transcoders, a
mapping priority for an input content type transcodable by
the respective ones of the transcoders; and

(ii) a transcoder selection modules operably responsive to said
transcoder configuration module to select a one transcoder
from among the plurality of transcoders such that selection
among transcoders capable of transcoding the input content
type is responsive to the respective mapping priority,

wherein the transcoder configuration module further specifies a
respective next transcoder, such that said selection operations also
select the next transcoder for invocation next.


15. The server of claim 14 wherein the transcoder selection configuration
module further specifies respective device profile matching data for
comparison
with a device profile of a device requesting the transcoding services, such
that
selection operations are responsive to the device profile; and

(a) a respective next transcoder, such that said selection operations
also select the next transcoder for invocation next.


16. The server of claim 14 wherein the transcoder configuration module
further specifies for any of the transcoders a respective initialization
parameter
for configuring the initialization of the transcoder and wherein the server
initializes the transcoders in accordance with any respective initialization
parameter.


17. The server of claim 14 comprising a proxy server providing proxy services
to devices on a network coupled to the server and wherein the transcoding
services are providing in association with the proxy services.



17

Description

Note: Descriptions are shown in the official language in which they were submitted.



CA 02556777 2006-08-22

Method and System for Selecting a Transcoder to
Convert Between Content Types
COPYRIGHT NOTICE

[0001] A portion of the disclosure of this patent document contains material
which is subject to copyright protection. The copyright owner has no objection
to
the facsimile reproduction by any one of the patent document or patent
disclosure, as it appears in the Patent and Trademark Office patent file or
records, but otherwise reserves all copyright whatsoever.

FIELD
[0002] The present application relates to the conversion of data from one
content type to another and more particularly a method and system for
transcoder selection where multiple transcoders may be available to transcode
the same content type.

BACKGROUND
[0003] Content in the form of data is made available on the Web in a variety
of
data formats or content types (e.g. HTML, CSS, javascript, SVG, XML, WML,
tiff,
gif, jpg, mpg, etc). However, devices requesting Web content, particularly
handheld and other pervasive devices (Web-enabled cellular phones, PDAs,
etc.) and more particularly those devices that communicate wirelessly with the
Web, often have device or other constraints which may limit or skew
preferences
for the types of data the devices handle.

[0004] Transcoding technology enables the provision of content economically
and efficiently to meet device constraints or other preferences. Transcoding
uses
specialized programs to perform conversions such as from one content type to
another. For example, transcoding may be used to convert HTML for a browser
to WML for a Web-enabled cellphone.

1


CA 02556777 2006-08-22

[0005] Typically, a server providing transcoding services is configured on the
data network (e.g. Internet) between a data source (e.g. Web page) providing
data in one content type and the requesting device (e.g. mobile device) that
requires the data to be of a second content type. The server may be a wireless
gateway or proxy server performing one or more other services for devices the
server is assisting to communicate with the data network. The server may
perform the transcoding services for a variety of types of devices. For
example,
the server may provide wireless gateway services to a family of handheld
mobile
devices. These devices may have different device capabilities such that some
prefer one content type to another or are not capable of handling certain
content
types.

[0006] In some instances these servers are coupled to or otherwise
configured with more than one transcoder. Some of the transcoders may not be
capable of transcoding for specific device types serviced by the server.
Sometimes two or more of the transcoders may be capable of transcoding the
same content format for the server (i.e. Transcoder_A and Transcoder_B may
both be capable of transcoding content format_1. Both may convert to content
format_2 or one to content format_2 and the other to content format_3 that may
also be acceptable for some devices.)

[0007] Further, it may be preferred to use one transcoder over another. One
transcoder may be more efficient at transcoding a particular content type than
another transcoder. This efficiency may result in, among other things, more
accurate image depictions, reduced file sizes, reduced network load, and
faster
processing times. There is therefore a need for a way to configure a server to
select a transcoder to convert content types.

[0008] A solution that addresses one or more of these issues is therefore
desired.

2


CA 02556777 2006-08-22
SUMMARY

[0009] To facilitate transcoder selection, server operations may be configured
using a configuration framework in which the transcoders and respective
mapping priorities are specified. The framework also supports the
specification
of, for any of the transcoders: a) device profile matching data for selecting
a
particular transcoder in response to a requesting device's profile; and b) a
next
transcoder to invoke thereby to chain transcoder invocations. The framework
may be prepared in accordance with an XML schema. The server may be a
wireless gateway or proxy server for mobile devices accessing Web-based
content.

[0010] In accordance with one aspect, there is provided a method of
configuring a server to provide transcoding services. The method comprises
providing a configuration framework for specifying to the server a plurality
of
transcoders for transcoding content types to facilitate selection of a one of
the
transcoders to perform the transcoding. The framework is defined for
specifying
for any of the transcoders a mapping priority for an input content type
supported
by the respective transcoder. As such, selection among transcoders capable of
transcoding the input content type is responsive to the mapping priority.

[0011] The framework may be further defined for specifying for any of the
transcoders device profile matching data for comparison with a device profile
of a
device requesting the transcoding services. As such selection of a one of the
transcoders is responsive to the device profile. As well, the framework may be
further defined for specifying for any the transcoders a respective next
transcoder. Selection of a one of the transcoders also selects its respective
next
transcoder, if specified, thus chaining transcoder invocation.

[0012] The framework may also be defined for specifying for any of the
transcoders an initialization parameter for configuring the initialization of
the
transcoder.

3


CA 02556777 2006-08-22

[0013] Preferably, the framework comprises an XML schema.

[0014] In another method aspect, there is a method of providing transcoding
services. This method comprises selecting a one transcoder from among a
plurality of transcoders to transcode content having an input content type
where
the selecting is responsive to a transcoder selection configuration specifying
the
plurality of transcoders and for any transcoder a mapping priority for the
input
content type supported by the respective transcoder such that selection among
transcoders capable of transcoding the input content type is responsive to the
mapping priority.

[0015] The transcoder selection configuration may further specify any one or
more of the following for any of the transcoders:

(a) a device profile matching data for comparison with a device profile
of a device requesting the transcoding services, such that said step
of selecting is responsive to the device profile; and

(b) a next transcoder, such that said step of selecting also selects the
next transcoder for invocation after the one of the transcoders.
[0016] The transcoder selection configuration may further specify for any of
the transcoders a respective initialization parameter for configuring the
initialization of the transcoder and the method further comprise a step of
initializing the transcoders in accordance with any respective initialization
parameter.

[0017] In another aspect, there is a server for providing transcoding services
using a plurality of transcoders. The server comprises a processor coupled to
a
memory storing software for execution by the processor. That software defines:
a
transcoder selection configuration specifying the plurality of transcoders
and, for
any of the transcoders, a respective mapping priority for an input content
type
supported by the respective transcoder; and transcoder selection operations
4


CA 02556777 2006-08-22

responsive to the transcoder selection configuration to select a one
transcoder
from among the plurality of transcoders. As such, selection among transcoders
capable of transcoding the input content type is responsive to the mapping
priority.

[0018] The transcoder selection configuration may further specify any one or
more of the following for any of the transcoders:

(a) a device profile matching data for comparison with a device profile
of a device requesting the transcoding services, such that selection
operations are responsive to the device profile; and

(b) a next transcoder, such that selection operations also select the
next transcoder for invocation after the one of the transcoders.
[0019] The transcoder selection configuration may further specify for any of
the transcoders a respective initialization parameter for configuring the
initialization of the transcoder. As such, the server may initialize the
transcoders
in accordance with any respective initialization parameter.

[0020] In one embodiment, the server comprises a proxy server providing
proxy services to devices on a network coupled to the server and the
transcoding
services are providing in association with the proxy services.

[0021] Other system and computer media aspects will also be apparent to
those of ordinary skill in the art.

BRIEF DESCRIPTION OF THE DRAWINGS

[0022] In order that the subject matter may be readily understood,
embodiments are illustrated by way of examples in the accompanying drawings,
in which:



CA 02556777 2006-08-22

[0023] Figure 1 is a simplified block diagram that illustrates pertinent
components of an example proxy server employing transcoder selection in
accordance with one embodiment, implementing priority among transcoder
selection, the ability to reject profiles from selection based on device type
profile,
and the chaining of transcoders; and

[0024] Figure 2 is an example XML schema for configuring transcoder
selection in the server of Figure 1;

[0025] Figure 3 is an example of part of an XML document coded in
accordance with the schema of Figure 2; and

[0026] Figures 4-5 are flowcharts of operations to configure a server for
selecting a transcoder and to select a transcoder when in operation in
accordance with an embodiment.

DETAILED DESCRIPTION

[0027] Figure 1 is a block diagram that illustrates pertinent components of an
example proxy server 100 employing transcoder selection in accordance with an
embodiment. Briefly, transcoder selection operations are employed to select
from
a plurality (N) transcoders to perform transcoding of content (e.g. HTTP-based
content) from a content source (e.g. a Web-server, not shown) for a requesting
device (e.g. a wireless Web-enabled mobile device, not shown).

[0028] Persons of ordinary skill in the art will appreciate that teachings
herein
are applicable to servers employing transcoder selection wherein the servers
communicate data between a user mobile data communication device and a
content server. Though transcoding with respect to the particular flow of data
from the content server to the user mobile data communication device is
discussed in the examples, no limitations should be imposed as transcoding may
also occur with respect to data originating from the user wireless mobile data
communication device that is destined for the content server.

6


CA 02556777 2006-08-22

[0029] Proxy servers are well known in the art and persons of ordinary skill
will appreciate that Figure 1 is simplified, illustrating only representative
components. There is shown RAM or other memory 102 with which to load and
run software (instructions and data for configuring one or more processors
(not
shown) of the server). Memory 102 is coupled to a long-term storage device 104
(e.g. disk drive, etc.) for storing the software. The storage device 104 may
be
locally coupled as shown or remotely coupled to server 100 such as via a
network connection 106. Network connection 106 also couples server 100 for
communication with the requesting devices for which the server provides proxy
services and, as necessary, transcoding services. Requesting devices may
request content through proxy server 100 from content sources (e.g. HTTP
servers (not shown)) also coupled to server 100 by network connection 106.

[0030] Memory 102 is shown comprising software for proxy service operations
108. Proxy services may include connectivity, security and authentication,
caching and other services to assist requesting devices with network
communications. In addition memory 102 comprises software for a plurality (N)
of transcoders (collectively 110 and individually 110_1, 110_2, ... 110_N).
Transcoders 110 each transcode content of an input content type to an output
content type. The input type and output type may be the same type however,
such as when scaling images or reducing colours. A transcoder may accept more
than one input type for transcoding and it is also noted that two or more
transcoders 110 may transcode the same input content type though not
necessarily to the same output content type.

[0031] Though all N transcoders 110 are shown as loaded in memory 102,
persons of skill in the art will appreciate that an individual transcoder
(e.g. 110_i)
may be loaded as the need arises and others unloaded in accordance with
memory management techniques. Transcoders 110 may be configured as plug-
ins to the proxy services. Transcoders 110 need not be local to server 100 and
may be loaded and run on another device(s) (not shown) coupled to server 100 .
7


CA 02556777 2006-08-22

In such a case transcoders 110 represent logical connections to the remote
transcoders.

[0032] As the need for transcoding HTTP content arises, server 100 selects
the appropriate transcoder 110. Memory 102 is configured with software 112
transcoder selection operations including transcoder selection configuration
parameters 114. Parameters 114 are discussed further with reference to Figure
2. Briefly, parameters 114 identify the available transcoders 110 and may
identify (among other things):

= selection priority among the transcoders 110 for particular
input/output pairs;

= whether a specific transcoder 110 accepts or rejects transcoding
requests for specific device profiles; and

= a next transcoder to be invoked after a specific transcoder thereby
to chain specific transcoding operations.

[0033] In the present embodiment, transcoding selection parameters 114 are
generated during a set-up phase of memory 102 from an Extensible Mark-up
Language ("XML") document (e.g. HttpContentTranscoderList.xml 116). The
XML file may be loaded using compiled Java classes 118 generated from an
XML schema 120 (e.g. transcoder.xsd). XML configuration of software per se is
well known and routine aspects thereof will not be discussed further. Though
shown stored in storage 104, persons of ordinary skill will appreciate that
the
XML 116 and Java classes 118 were loaded in memory 102 during the set-up
phase. The software of operations 108 and 112 was also loaded into memory
102 from a store (not shown), which could be store 104. Loading the
configuration information in this manner allows for selection decisions to be
made
(e.g. comparing the data type of input or output data against the various
content
types accepted by transcoders that are available to perform transcoding on the
8


CA 02556777 2006-08-22

server) without having to read the configuration file from storage 104 each
time a
comparison is needed.

[0034] Figure 2 illustrates a representative XML schema, transcoder.xsd 120.
Portions (e.g. names space references) not relevant to the teaching hereof
have
been omitted. Elements of the XML schema will be discussed with reference to
its lines numbered 1-61.

[0035] As well as configuring transcoder selection parameters, the
configuration framework of the schema 120 provides a placeholder for each of
the transcoders 110 to use an initialization string for its own configuration
on
loading and each may specify its own format. Configuration of the XML file 116
in
accordance with the schema 120 and the requirements of each of the
transcoders 110 may be performed by an administrator or other technicians for
proxy server 100 as is well-known. Schema notes are as follows.

[0036] For the sake of code simplicity, an empty element is not allowed (Line
3). The transcoder-name element is mainly for information purposes. Its value
need not have any effect (Line 8).

[0037] The transcoder-class element specifies the suffix of the fully
qualified
transcoder Java class name (Line 9). The suffix may identify what content type
can be transcoded by the transcoder. The init-param element specifies a
configuration string for each individual transcoder. The format is of the
string is
up to each transcoder implementation (Line 10).

[0038] The input and output elements specify respectively the input and
output media types (i.e. content type) of the transcoder mapping (Lines 11-
12). It
could be "*/*" for a wildcard match for an output type.

[0039] The accept element specifies device profile matching data preferably
as a regular expression used to match against the device profile sent in a
device
9


CA 02556777 2006-08-22

content request (e.g. HTTP(S) GET) (Line 13). If a match is found, this
transcoder can support requests from devices having this profile. Device
profiles
are often used to identify device types, specifying device requirements.
Though
not illustrated, proxy and transcoding operations may be further configured in
response to device profiles to specify how proxy and/or transcoding operations
are to be performed. The reject element specifies device profile matching data
preferably as a regular expression used to match against the device profile
sent
in a device HTTP(S) GET request (Line 14). If a match is found, this
transcoder
will not be used for this device request. Thus the configuration framework is
defined for specifying device profile matching data so that selection of a one
of
the transcoders can be responsive (either accepting or rejecting) a request in
view of the device profile of the device making the request.

[0040] The mapping-priority element specifies a priority for the transcoder
for
the input content type (Lines 15-31). If there is more than one transcoder
defined
in the XML document that supports the same input content type, selection of a
one of the transcoders for invocation will be responsive to the mapping
priority.
Priority in this embodiment is defined as a non-negative decimal number, e.g.
0.0, 0.3, or 1Ø If the highest priorities are the same, the last transcoder
defined
in the XML document will be used. If the priority is 0.0, it means that the
transcoder will not be invoked to transcode the input content type. If no
mapping
priority is specified, a default value may be applied.

[00411 The next-transcoder-class specifies the next transcoder to be invoked
after the selected transcoder (Line 32) effectively chaining transcoder
operations
together.

[0042] The device profile pattern specifies the regular expressions used to
accept and reject the device request (Lines 33-40). A transcoder element
consists of a sequence of transcoder-name, transcoder-class, optional init-
param, optional mapping-priority, optional next-transcoder-class, optional
device-
profile-pattern (Lines 41-53).



CA 02556777 2006-08-22

[0043] Lines 54-60: The root element transcoders consists of a sequence of
transcoder elements.

[0044] Figure 3 illustrates an extract of an XML file 300 in accordance with
the
schema 120. For example, the configurations provide for a transcoder named
CONNECT.HTML 302. The transcoder 302 has a reject device profile pattern
304. If a device profile URL provided with a content request to proxy server
100
(e.g. an HTTP GET) in accordance with a device/proxy protocol matches the
expression pattern 304 (e.g.
http://www.bbb.net/mobile/profiles/7290/4.1Ørdf),
the transcoder 302 would not be used. According to mapping priority
configurations 308 for transcoder name Image 306, that transcoder would not be
used to transcode TIFF data format images since the priority is 0Ø

[0045] However, if a device profile URL is
http://www.bbb.net/mobile/profiles/7290/4.1Ørdf, the transcoder HTML 310
might be used since the profile URL matches its "accept" regular expression
pattern 312. Transcoder First 314 illustrates a chaining to another transcoder
316. Initialization parameters (e.g. 318) may take a CDATA format to include
XML tags not defined in the schema 120 for initializing the specific
transcoder.
[0046] Figure 4 illustrates operations 400 to configure a proxy server 100 for
transcoder selection in accordance with an embodiment. At step 402, available
transcoders and their respective capabilities are determined. At step 404, XML
document 116 is configured (i.e. edited with an XML editor (not shown) to
specify
the required configuration data). Persons of skill in the art will appreciate
that
with the configuration framework described (e.g. as embodied in schema 120),
there is flexibility in how the XML document may be coded. The order in which
the transcoders are specified is not material except as between transcoders
for
the same input content type and having the same priority. Thus ordering the
listing of transcoders or specifying a priority or both may be used to
indicate
which transcoder is to be selected. Initialization parameters may be
specified.
Device profile expressions may be coded to accept or reject a transcoding

11


CA 02556777 2006-08-22

operation for specified device types, etc. Though steps 402 and 404 are shown
as distinct steps, operations in practice may overlap or cycle. Coding of XML
document 116 may be performed by a server administrator or other technician on
a computing device other than server 100 (not shown) and the document 116
copied to the server 100.

[0047] At step 406, the server 100 is loaded with the software discussed
previously (among other software as desired) and brought on-line ready for
proxy
and transcoding services. When server 100 is started, the configuration data
from the XML document 116 are loaded in accordance with the various
instantiated objects as determined by the compiled XML schema 120.
Initialization may be delayed as described below.

[0048] Operations to code the XML schema and compile it for loading the
XML document for a particular server may be performed on a different computing
device (e.g. a technicians work station, PC or laptop, (not shown)) than
server
100. As well, changes may be made to the XML document, and the server
restarted to reload the new configuration set forth in that XML document, as
desired, such as when new transcoders or device types are added.

[0049] Figure 5 is a flowchart of operations 500 of server 100 showing an
instance of simplified proxy services with transcoding. At step 502, server
100
receives a content request with a device profile URL. At step 504, server 100
gets the content having an input content type from a content source as
specified
in the request. At step 506, proxy server 100 selects a transcoder in
accordance
with the transcoder selection configuration. The selection may be responsive
to
the device profile type and input content type for example. A selected
transcoder
may refer to a next transcoder to invoke after the invocation of the selected
transcoder.

[0050] At step 508, the selected transcoder (and any linked next transcoder)
are invoked to transcode the content received from the content source to an
12


CA 02556777 2006-08-22

output content type. Persons of skill in the art will appreciate that loading
of a
transcoder 110 may be performed at his time rather than when the proxy server
100 is brought on-line Step 408.

[0051] At step 510, server 100 replies to the request of step 502 with the
transcoded content.

[0052] Though a proxy server is described other servers such as a Web
content server may be configured to transcode and select transcoders as
described. For example, a Web server may transcode its standard content for
wired devices to suitable content for mobile devices. A GET request may
include
a device profile to aid in the transcoding.

13

Representative Drawing
A single figure which represents the drawing illustrating the invention.
Administrative Status

For a clearer understanding of the status of the application/patent presented on this page, the site Disclaimer , as well as the definitions for Patent , Administrative Status , Maintenance Fee  and Payment History  should be consulted.

Administrative Status

Title Date
Forecasted Issue Date 2012-01-31
(22) Filed 2006-08-22
Examination Requested 2006-08-22
(41) Open to Public Inspection 2008-02-22
(45) Issued 2012-01-31
Deemed Expired 2016-08-22

Abandonment History

There is no abandonment history.

Payment History

Fee Type Anniversary Year Due Date Amount Paid Paid Date
Request for Examination $800.00 2006-08-22
Registration of a document - section 124 $100.00 2006-08-22
Application Fee $400.00 2006-08-22
Maintenance Fee - Application - New Act 2 2008-08-22 $100.00 2008-08-19
Maintenance Fee - Application - New Act 3 2009-08-24 $100.00 2009-08-07
Maintenance Fee - Application - New Act 4 2010-08-23 $100.00 2010-07-13
Maintenance Fee - Application - New Act 5 2011-08-22 $200.00 2011-07-12
Final Fee $300.00 2011-11-14
Maintenance Fee - Patent - New Act 6 2012-08-22 $200.00 2012-07-16
Maintenance Fee - Patent - New Act 7 2013-08-22 $200.00 2013-07-11
Maintenance Fee - Patent - New Act 8 2014-08-22 $200.00 2014-08-18
Owners on Record

Note: Records showing the ownership history in alphabetical order.

Current Owners on Record
RESEARCH IN MOTION LIMITED
Past Owners on Record
YU, KOON WAH
Past Owners that do not appear in the "Owners on Record" listing will appear in other documentation within the application.
Documents

To view selected files, please enter reCAPTCHA code :



To view images, click a link in the Document Description column. To download the documents, select one or more checkboxes in the first column and then click the "Download Selected in PDF format (Zip Archive)" or the "Download Selected as Single PDF" button.

List of published and non-published patent-specific documents on the CPD .

If you have any difficulty accessing content, you can call the Client Service Centre at 1-866-997-1936 or send them an e-mail at CIPO Client Service Centre.


Document
Description 
Date
(yyyy-mm-dd) 
Number of pages   Size of Image (KB) 
Abstract 2006-08-22 1 20
Claims 2006-08-22 4 158
Description 2006-08-22 13 562
Drawings 2006-08-22 4 113
Claims 2011-07-19 4 162
Representative Drawing 2008-02-07 1 8
Cover Page 2008-02-07 2 42
Claims 2010-10-19 5 159
Cover Page 2012-01-04 2 42
Assignment 2006-08-22 6 218
Prosecution-Amendment 2011-03-14 2 45
Prosecution-Amendment 2011-07-19 12 426
Prosecution-Amendment 2010-08-04 11 594
Prosecution-Amendment 2009-04-27 1 33
Fees 2009-08-07 1 43
Prosecution-Amendment 2010-10-19 10 366
Correspondence 2011-11-14 2 50