Sélection de la langue

Search

Sommaire du brevet 2220580 

Énoncé de désistement de responsabilité concernant l'information provenant de tiers

Une partie des informations de ce site Web a été fournie par des sources externes. Le gouvernement du Canada n'assume aucune responsabilité concernant la précision, l'actualité ou la fiabilité des informations fournies par les sources externes. Les utilisateurs qui désirent employer cette information devraient consulter directement la source des informations. Le contenu fourni par les sources externes n'est pas assujetti aux exigences sur les langues officielles, la protection des renseignements personnels et l'accessibilité.

Disponibilité de l'Abrégé et des Revendications

L'apparition de différences dans le texte et l'image des Revendications et de l'Abrégé dépend du moment auquel le document est publié. Les textes des Revendications et de l'Abrégé sont affichés :

  • lorsque la demande peut être examinée par le public;
  • lorsque le brevet est émis (délivrance).
(12) Demande de brevet: (11) CA 2220580
(54) Titre français: PROCESSUS DE TRAITEMENT DE DEMANDES D'ACCES AUX DONNEES PROVENANT D'UTILISATEURS CONNECTES A UN RESEAU DE SERVICE REPARTI
(54) Titre anglais: METHOD OF SERVICING DATA ACCESS REQUESTS FROM USERS CONNECTING TO A DISTRIBUTED SERVICE NETWORK
Statut: Réputée abandonnée et au-delà du délai pour le rétablissement - en attente de la réponse à l’avis de communication rejetée
Données bibliographiques
(51) Classification internationale des brevets (CIB):
  • H04L 12/12 (2006.01)
  • H04L 41/00 (2022.01)
(72) Inventeurs :
  • CRADDOCK, ARTHUR JULIAN PATTERSON (Canada)
  • PARSONS, ERIC WALTER (Canada)
(73) Titulaires :
  • NORTHERN TELECOM LIMITED
  • NORTEL NETWORKS LIMITED
(71) Demandeurs :
  • NORTHERN TELECOM LIMITED (Canada)
  • NORTEL NETWORKS LIMITED (Canada)
(74) Agent: GOWLING WLG (CANADA) LLP
(74) Co-agent:
(45) Délivré:
(22) Date de dépôt: 1997-11-10
(41) Mise à la disponibilité du public: 1999-05-10
Requête d'examen: 2002-10-25
Licence disponible: S.O.
Cédé au domaine public: S.O.
(25) Langue des documents déposés: Anglais

Traité de coopération en matière de brevets (PCT): Non

(30) Données de priorité de la demande: S.O.

Abrégés

Abrégé anglais


A method of servicing data access requests from users connected to a distributedservice network comprises determining the user, the communications client used to connect to
the network and the data stream conversions required for the user to communicate between the
communications client and one or more accessed services. The method provides that the data
access is provided independent of the connection point and the data communications client.

Revendications

Note : Les revendications sont présentées dans la langue officielle dans laquelle elles ont été soumises.


We claim:
1. A method of servicing data access requests for a user accessing a network via a
communications client connected to any one of two or more network regions, comprising the
steps of:
(i) determining at said network region the type of communications client and transferring
said connection to a bridge at said network region which is appropriate for said determined type
of client;
(ii) verifying the identity of said user;
(iii) determining any predefined preferences of said identified user and the services which
said identified user is able to access by accessing a user profile stored for said user by said
network; and
(iv) allowing said user to access any of said determined services, said network region
converting data streams to and from said client between a format appropriate to said determined
type of client and a format employed by said accessed service.
2. A method according to claim 1 wherein step (ii) further comprises the step of
determining if said network region is a home region defined for said user or a remote region.
3. A method according to claim 2 wherein, when said network region is determined to be a
remote region for said user, in step (iv) said access to said determined services is provided from
said home region, via a communication backbone linking said remote region and said home
region, such that address and other identifying information from said home region to said
accessed service corresponds to the address and other identifying information of said home
region.
4. A method according to claim 2 where in step (iii) at least a portion of said user profile is
replicated to said remote region when said user has connected to said network at a remote region.
5. A method according to claim 4 wherein said portion of said user profile in maintained in
a persistent cache in said remote region.

21
6. A method according to claim 5 wherein said user profile further includes information
providing access to said services.
7. A method according to claim 6 wherein said remote region communicates with said
home region to update said user profile in said home region with changes to said user profile
resulting from user activities at said remote region.
8. A method according to claim 6 wherein said remote region and said home regions
maintain said portion of said user profile at said remote region and said user profile at said home
region in correspondence by transmitting updates through said network reflecting changes in said
information at either of said home and said remote region to the other of said home and said
remote region.
9. A method according to claim 5 wherein, after said user disconnects from said network,
said information is maintained in said persistent cache at said network region until the earlier of
a predefined time period and the time at which the user reconnects to said network at a different
network region.
10. A method according to claim 1 further comprising the step of monitoring said connection
to determine changes to said connected client and, upon detection of a change in the type of said
connected client, re-performing steps (iii) and (iv).
11. A method of processing data access requests of users connected to a distributed service
network, said users employing at least one of a plurality of types of communications clients and
said network connected to a plurality of services, comprising the steps of:
(i) determining the type of communications client employed by the user and retrieving
parameters defining required characteristics of said communications client from a storage
location in said network;
(ii) receiving a data access request from said user for a service selected by said user from
said plurality of services;
(iii) determining the required characteristics of data to and from said selected service; and

22
(iv) automatically converting data transferred between said service and said
communications client in accordance with said required characteristics of said communications
client and said determined characteristics of said user-selected service.
12. The method of claim 11 where in step (iv) said data is converted also in accordance with
user-defined preferences stored in said network.
13. A method according to claim 11 further comprising the step of monitoring said
connection to determine changes to said connected communications client and, upon detection of
a change in the type of said connected communication client, re-performing steps (i) through
(iv).
14. A method of processing data access requests from users connected to a distributed
service network including multiple connections points, comprising the steps of:
(i) establishing a connection to a user at a connection point to said network;(ii) locating information defined for said user and stored at a defined location within said
network;
(iii) transferring a copy of at least a portion of said information from said defined
location to said connection point through said network;
(iv) processing data access requests from said user in accordance with said copied
information and transferring a copy of additional information required to fulfill said requests
from said defined location to said connection point;
(v) transmitting, over said network between said defined location and said connection
point, updates representing changes effected at each of said stored information defined for said
user and said copy of said information to each of the other of said stored information defined for
said user and said copy of said information to maintain correspondence therebetween.
15. A method according to claim 14 wherein said portion comprises identification defined
for said user.
16. A method according to claim 14 wherein said information defined for said user further
comprises a personal agent defined for said user.

23
17. A method according to claim 14 wherein said copied information is maintained at said
connection point until said user connects to said network at another connection point.

Description

Note : Les descriptions sont présentées dans la langue officielle dans laquelle elles ont été soumises.


CA 02220~80 1997-11-10
Method of Servicing Data Access Requests From Users
Connecting to a Distributed Service Network
FIELD OF THE INVENTION
The present invention relates to a method of servicing data access requests from5 users connected to a distributed service network. More specifically, the present invention relates
to a method of servicing data access requests wherein the data access requests are serviced
independent of the actual connection point and communications client employed.
BACKGROUND OF THE INVENTION
Recent developments in telecommunications have resulted in networks for a wide
variety of services. From conventional voice or data networks to wireless packet and enhanced
paging networks, the variety of telecommunications options available to individuals and business
is staggering. This variety of options has lead to a revolution in how people live and work and
mobile and/or nomadic workers are becoming increasingly common.
While the available telecommunications services have been adopted to various
degrees, to a large extent these services, and the networks that support them, remain separate
from each other reducing the overall potential of these services. For example, it may not be
possible to send email from a personal computer client in an of fice to a pager client used by a
20 salesman, even though both are connected to respective telecommunications networks.
This lack of integration and/or communication between networks and clients is a
recognized problem and a variety of "middleware" products have been proposed and/or
produced to transfer data between one network/system and another network/system. For
25 example, Chapter 5 of the publication, "Underst~ncling the Next Phase of Mobile Commuting",
1997, by the Yankee Group is entitled, "Evolving Middleware Solutions for Wireless Remote
Access" and discusses middleware solutions for communications with mobile users via wireless
commumcations.
While middleware can be configured to provide the desired interconnectivity for

CA 02220~80 1997-11-10
many specific situations, to date no general solution exists to interconnect various
telecommunications networks. Further, no solution exists to provide a distributed network to
supply a variety of desired services at multiple sites in an essentially transparent and convenient
manner for users and service providers. Thus, the long sought goal of communication from any
5 client or service to any other client between any two locations is still largely an unachieved goal.
SUMMARY OF THE INVENTION
It is an object of the present invention to provide a novel method of servicing data
access requests from users connecting to a network with multiple access points which obviates or
10 mitigates at least one disadvantage of the prior art.
According to a first aspect of the present invention, there is provided a methodservicing data access requests for a user accessing a network via a communications client
connected to any one of two or more network regions, comprising the steps of:
(i) detçrmining at said network region the type of communications client and
transferring said connection to a bridge at said network region which is applvpl;ate for said
determined type of client;
(ii) verifying the identity of said user;
(iii) determining any predefined prefelences of said identified user and the
services which said identified user is able to access by accessing a user profile stored for said
user by said network; and
(iv) allowing said user to access any of said determined services, said network
region converting data streams to and from said client between a format appropl;ate to said
determined type of client and a format employed by said accessed service.
According to another aspect of the present invention, there is provided a methodof processing data access requests of users intermittently connected to a distributed service
network, said users employing at least one of a plurality of types of communications clients and
said network connected to a plurality of services, comprising the steps of:
(i) det~rmining the type of communications client employed by the user and
retrieving parameters defining required characteristics of said communications client from a

CA 02220~80 1997-11-10
storage location in said network;
(ii) receiving a data access request from said user for a service selected by said
user from said plurality of services;
(iii) determining the required characteristics of data to and from said selected5 service; and
(iv) automatically converting data transferred between said service and said
communications client in accordance with said required characteristics of said communications
client and said determined characteristics of said user-selected service.
According to yet another aspect of the present invention, there is provided a
method of processing data access requests from users connected to a distributed service network
including multiple connections points, comprising the steps of:
(i) establishing a connection to a user at a connection point to said network;
(ii) locating information defined for said user and stored at a defined location15 within said network;
(iii) transferring a copy of at least a portion of said information from said defined
location to said connection point through said network;
(iv) processing data access requests from said user in accordance with said copied
information and transferring a copy of additional information required to fulfill said requests
20 from said defined location to said connection point;
(v) transmitting, over said network between said defined location and said
connection point, updates representing changes effected at each of said stored information
defined for said user and said copy of said information to each of the other of said stored
information defined for said user and said copy of said information to maintain correspondence
25 therebetween.
The present invention provides a novel method of servicing data access requests
from users ~cces~ing a network with multiple connection points, the services being provided
independent of the actual connection point and/or the communication client employed by the
30 user to connect to the network. These method is transparent to the user and to the provider of the
accessed service and can be customized for each type of client, using parameters known for that
client, and can be customized for each user's pLere~ ces for each client. Information relating to

CA 02220~80 1997-11-10
the user is copied to and m~inS~ined at the connection point to reduce latency and bandwidth
requirements through the network.
BRIEF DESCRIPTION OF THE DRAWINGS
Preferred embodiments of the present invention will now be described, by way of
example only, with reference to the attached Figures, wherein:
Figure 1 shows a schematic representation of a distributed service network in
accordance with the present invention;
Figure 2 shows a schematic representation of a region in the distributed servicenetwork of Figure l; and
Figure 3 shows a schematic representation of the replication of a personal agentfrom a home region in a distributed service network to a persistent cache in a remote region in
that network.
DETAILED DESCRIPTION OF THE INVENTION
A distributed service network in accordance with an embodiment of the present
invention is indicated generally at 14 in Figure 1. The types of data carried by network 14 is not
particularly limited and can include analog and/or digital voice, computer network
communications, email, messages for paging systems, etc. and, as will be apparent from the
discussion below, network 14 can simultaneously carry multiple types of data, as desired.
As shown in Figures 1 and 2, network 14 comprises one or more regions 18, each
of which comprises a region manager 22 and one or more region servers 24. Each region
manager 22 is connected to each region server 24 in its region 18 and each region server 24 is
connected to other region servers 24, both those in its region 18 and those in other regions 18, by
a communications backbone 28, which can be any suitable communications link, such as T3
lines, high bandwidth fibre optic links, satellite links, etc.
As shown in Figure 2, each region server 24 includes a suitable communications
host 32 for communications backbone 28 and a plurality of bridges 36 to which clients 40 of
network 14 can be connected by dedicated telecommunications lines, dial-up access, wireless

CA 02220~80 1997-11-10
services, a public packet network such as the internet, or any other suitable means. For clarity,
Figure 1 shows three region servers 24 in each region 18, but it is contemplated that the number
of region servers 24 will vary according to contemplated load for the region and/or the services
provided at the region. It is contemplated that at least one region 18 will be created for each
5 geographic area where it is desired to provide a local "point of presence" where a client 40 can
connect to network 14. However, network 14 is very flexible and it is also contemplated that
two or more regions 18 can be located in a single geographic area with a relatively high number
of clients 40, etc., if desired, and in such a circumstance, regions 18 and their respective region
servers 24 can be interconnected via backbone 28 or any other suitable means and region
10 managers 22 can perform load and/or service balancing between regions 18.
As is also shown in Figure 2, region servers 24 include a data stream conversionsystem comprising set 44 of transducers 46 and a transducer matrix switch 48 to convert data
streams between various formats, protocols and standards as required. Region servers 24 also
15 include a set 52 of adapters and service agents, which can communicate with other external
services and/or networks 56, such as the internet, to communicate with servers running POP3,
SMTP, etc., to perform email tasks, faxing, web browsing, etc.
Each adapter in set 52 provides a layer of transparency between the protocols
20 and/or API's used by the external service or services to which it connects. Specifically, the
adapter operates to convert any service specific protocol or API into a simple "post" and "get"
protocol understood by the region server 24. For example, the IMAP4 email protocol is
converted by the adapter to and from a "get inforrnation from an email server" and a "post
information on an email server" syntax used by the region server 24 to the IMAP4 service
25 protocol. Thus, the region server 24 and services local to that region server need only employ
the simple "get" and "put" protocol and not the complexity of the IMAP4 protocol. This also
allows new services and/or amended services to added to region servers 24, as desired, by merely
adding additional protocol conversion adapters.
Clients 40 can comprise a wide variety of telecommunications and/or computing
devices including, without limitation, personal computers, cellular or PCS handsets, pagers,
wireless-capable personal digital assistants (PDAs) and any other device or system which

CA 02220~80 1997-11-10
requires voice or data telecommunications services.
Region manager 22 includes a database engine 38, which m:~int~in.~ a variety of
information regarding the users of network 14 and which m:~int~in~ a registry of information
5 relating to clients 40 which can connect to network 14. This client registry includes information
on how to establish and m~inl~in a connection to each client 40, as well as the capabilities and
limitations of each client 40. Region manager 22 monitors each region server 24 to perform load
balancing between region servers 24, and to manage the establishment of connections, as
described below in more detail.
When a client 40 wishes to connect to network 14, either by a dial up line,
wireless connection or other data link, a connection, referred to herein as a preliminary
connection, is established between the client and one of bridges 36. The region server 24 which
is connected to the bridge 36 to which the preliminary connection has been made notifies the
15 region manager 22 which determines the type of client 40. In some circumstances, such as
wherein the preliminary connection is established with a GSM cellular telephone employing the
SMS protocol, the bridge 36 with which the preliminary connection is established will implicitly
identify to the region manager 22 the type of client 40. In other cases, such as the case of a dial
up line, region manager 22 and the bridge 36 with which the preliminary connection is
20 established must determine the type of client 40 employed with the connection, such as a digital
voice telephone, analog voice telephone, html browser employing http, etc. This determination
can be effected by analyzing initialization procedures, by querying the client 40, or by any other
suitable method as will occur to those of skill in the art.
Once the type of client 40 is identified, region manager 22 checks the client
registry in database engine 38 for the characteristics of client 40 and ensures that the preliminary
connection is transferred to an appropliate bridge 36, either at the region server 24 to which the
preliminary connection was originally made, or to another region server 24, as ~plol)liate. The
selection of which region server 24 is to handle the connection can be based upon a number of
criteria, including the present workload of each of the region servers 24, the type of client 40,
etc. For example, one or more region servers may be configured with specific hardware or
otherwise optimized to handle connections to http browser clients 40 and another for voice mail.

CA 02220~80 1997-11-10
If a user changes the type of client 40 being employed while connected to a
region server 24, for example ch~nging from a POP3 email client to a web browser client, or if a
region server 24 has an excessive load, region manager 22 can kansfer control of the connection,
5 if a~propl;ate, to a different region server 24 in region 18.
Next the identity of the user of client 40 is verified. This verification can
comprise: an explicit step, such as the user hll~ullil1g a user ID and password; or an implicit step,
such as the connection being to a known IP address; etc. and can be performed by the region
manager 22, or one or more region servers 24 within region 18 which have capacity allocated for
this task. In Figures 1 and 2, the former alternative is illustrated and verification information is
compared to information in database engine 38 to verify the identity of the user. Once the
identity of the user has been verified, the preliminary connection becomes a complete connection
and data access requests from the user are serviced.
In one embodiment of the present invention, once the identity of a user is verified
and a complete connection is established, a personal agent for the user is accessed from database
engine 38, onto a server 24. The personal agent m~int~in~ a record, referred to herein as a user
profile, of the services to which the user subscribes, user preferences for various possible client
20 devices employed by that user and any other pl~r~lellces of the user and billing information for
the user. In addition to the user profile and plerelellces, the personal agent also provides access
to all relevant services data for user data access requests, including Email services for the user,
passwords and user identifications for other services, etc.
While the use of a personal agent is presently preferred, network 14is not limited
25 to the use of a personal agent, and user profiles and related information can be stored in network
14 in any suitable manner as will occur to those of skill in the art.
If the user has connected to a region 18 which is not the "home" region 18 of the
user, the verification is performed by either: consulting a registry of users m~int:~ined in database
30 engine 38 to identify the home region 18 of the user; by sending a query to a centralized user
registry server (not shown) which is connected to network 14 via communications backbone 28,
or by sending a query from the connected (local) region manager 22 to the region managers 22 of

CA 02220~80 1997-11-10
neighboring regions 18 via backbone 28 to locate the database engine 38 with required
information to verify the user. In this last case, if none of the neighboring regions 18 are the
home region 18 of the user and thus do not have the necessary information for the user on their
database engine 38, the query is relayed to additional regions 18 until either the home region 18
5 is identified. If at any point it is determined that the user is not an authorized user for network
14, the preliminary connection between client 40 and bridge 36 is terminated.
Once the home region 18 has been identified for the user and the user's identityhas been confirmed and a complete connection established, the personal agent at the home
region 18 can be accessed, via communication backbone 28, by the remote region 18 or the
personal agent can be replicated to the local region 18 from the home region 18, via back bone
28. The determination of whether to access the personal agent via backbone 18 or whether to
replicate the personal agent at the remote region 18 is based upon a suitable preselected quality
of service (QoS) metric and can include a consideration of: the communications latency between
the remote region 18 and the home region 18 over communications backbone 28; the length of
the time the user is expected to require access to the data at the local region 18; the amount of
data the user requires access to; and other relevant factors as will occur to those of skill in the art.
If the personal agent for a user is replicated to remote region 18, the entire
20 personal agent is not necess~rily replicated and, preferably, only information which is
immediately required, or which is likely to be required imminently, is replicated to reduce the
transfer and/or storage of unnecessary data. To further reduce the storage of unnecessary data,
the replication of the personal agent in a local region 18 is stored in a persistent cache, as will be
described in more detail below.
Once a full connection is established with a region server 24, the user has
complete access to all services through network 14 which the user is authorized to access, as
determined from the user' s personal agent or other user profile information, essentially
independent of the client 40 he has employed to connect to the network and all authorized data
30 access requests are served by network 14 to client 40. This client independence is accomplished
via the client registry and set 44 of transducers 46 and transducer matrix switch 48.

CA 02220~80 1997-11-10
Specifically, as mentioned above, region manager 22 and bridge 36 determine
what type of client 40 is communicating with bridge 36. This information is used to identify the
entry for that client in the client registry and the characteristics of that client, including its
requirements, capabilities and limitations are provided to tr~n~ducer matrix switch 48, as are the
5 characteristics of the type of service being accessed which is determined from the adapter 52
making the connection to the service. The user profile is also accessed to determine any user
specified p~ferellces for that type of client.
Transducer matrix switch 48 arranges, configures and/or connects one or more
10 transducers 46 in set 44, as necessary, to convert between the data formats (types and/or
protocols) employed by client 40 and the data formats employed by the service being accessed.
If no single transducer 46 exists in set 44 which can effect the necessary conversion, then
transducer matrix switch 48 will chain two or more transducers 46 together, with the output of
one transducer being the input to the next, to accomplish the necessary conversion. In one
15 embodiment, transducer matrix switch 48 receives an input from bridge 36 as to the format
employed by client 40 and receives an input from set of adapters 52 as to the data format
employed by the external service and these two inputs are used as indices to a look up table in
matrix switch 48 of all possible conversions. The indicated entry in this table defines the
required transducer 46, or combination of tr~n~ducers 46, to effect the desired conversion. As
20 new transducers 46 are added to set 44, the conversion look up table is updated accordingly.
Further, in some circumstances two or more transducers 46, or chains of
transducers 46, can be employed in parallel. For example, a Group IV facsimile message can be
received by one of set 52 of adapters for access by a PCS telephone client 40. In such a case, a
25 first tr~n~ducer 46 can be employed to perform an optical character recognition (OCR)
conversion from the facsimile format to ASCII text and then a pair of transducers 46 can
simultaneously examine the resulting text, one to locate to locate the facsimile sender's name
and/or telephone number, and the other to locate the subject matter of the facsimile from a
"subject" line. The located "from" and "subject" information is then sent to the user's PCS
30 telephone, in accordance with the client registry information for PCS clients and the users
l~t;rerellces for that client, from the user's profile.

CA 02220~80 1997-11-10
As will be appalent to those of skill in the art, in order to efficiently utilize
transducers 46, kansducer matrix switch 48 only employs transducers 46 as needed and thus, a
transducer 46 performing a conversion for one client connection will be immediately available
for reuse in another connection when the first conversion is complete. As set 44 can contain
5 redlln~l~nt transducers 46, i.e. - two or more transducers 46 which perform the same conversion,
a connection which employs one transducer 46 for conversion of a first data stream can employ a
dirr~lel~t tr~n~lucer 46 for a subsequent, but identical, conversion.
As an example of the use of a data conversion system in accordance with the
10 present invention, if a user has connected to network 14 via an analog voice telephone client 40
and wishes to access email services, a touch tone response transducer 46 and a text to speech
transducer 46 are selected and configured by transducer matrix switch 48 and portions of the
email messages will be read to the user. Depending upon the preferences and/or set-up defined
by the user for the client 40, as stored in the user's personal agent or other user profile, the user
15 can be provided with the email in a variety of manners. For example, the user can be provided
with a prompt, via the text to speech transducer 46, informing the user of the number of new
Email messages which have been received and/or the messages or their subject lines can be read
to the user via the text to speech transducer 46. A touch tone response transducer 46 can allow
the user to select messages of interest to be read or messages to be deleted, etc. by pressing keys
20 on a touch tone phone. A speech recognition transducer 46 can also be employed, either in
instead of or in addition to, the touch tone response transducer 46. In such a case, the user can
dictate responses to Email, etc. Alternatively, the user can have set their preferences in their
personal agent or user profile such that they are only informed of the number of new email
messages, and their time of receipt.
As will be al)pa~ , the user's personal agent or user profile can include
different preferences for each service when delivered on each different client 40. For example,
when the user connects to network 14 via a dial up line with a personal computer running an
email program as client 40, the user' s email will be fully available to them from the email
30 program in a conventional manner, rather than being read to them via text to speech transducer
46. If that personal computer has connected to network 14 via a cellular modem, with a limited
and/or costly bandwidth, the email can be presented as subject lines only, except for messages

CA 02220~80 1997-11-10
flagged as urgent. Many other possible configurations and/or options will occur to those of skill
in the art.
As mentioned above, transducers 46 can be chained, as necessary, by transducer
matrix switch 48 to provide required conversions. For example, if a user wishes to access a web
page from an analog voice telephone, transducer matrix switch 48 can employ an HTML to
ASCII transducer to receive the HTML definition of the web page and to convert it to ASCII text
which would then be passed to a text to speech transducer 46 to convert that ASCII text to
speech that the user can receive on their telephone. Similarly, speech recognition or touch tone
10 response transducers can be employed to receive input from the user as to hot links to be
followed or other inputs desired.
Set 44 of trAn~d~lçers 46 and transducer matrix switch 48 provide transparent
conversion of services within network 14. It is contemplated that, at least to some extent, all
15 services will be transparent or accessible, in accordance with user defined preferences stored in
the users' personal agents and that such transparency will not require any steps on the part of the
service provider. For example, a user can define that only a count of new Email messages
received be downloaded to their pager, or that a count of all new messages received and the
subject lines of messages marked urgent be downloaded, etc. and yet the sender of the email
20 message need not concern themselves with such details.
It is contemplated that, in some circumstances, different region servers 24 in aregion 18 can have different transducers 46 in their set 44. For example, a region server 24 can
have one or more transducers 46 for text to speech conversions which require special purpose
25 hardware in region server 24. In such a case, only one region server 24 in a region 18 may be
equipped with such special purpose hardware and a connection to a client 40 which requires a
text to speech transducer 46 can either be transferred, as necessary, by region manager 22 to the
region server 24 which has the necessary transducer or matrix transducer switch 48 in the region
server 24 h~nclling the connection can access the necessary transducer 46 in another region
30 server 24 in region 18 via region manager 22.
In addition to performing service to client conversions, network 14 can also

CA 02220~80 1997-11-10
perform transport protocol conversions as well. An adapter in set 52 can receive data in one
transport protocol and can forward it to another adapter in set 52 wherein it is re-transmitted via
another transport protocol. For example, data can be received via TCP/IP by a first adapter in set
52 and transmitted from a second adapter in ATM or Frame Relay protocol. It is contemplated
5 that set 52 can also include encryption and/or decryption engines as well. It is also contemplated
that, in some circumstances, tr~n~dllcers 46 can be employed to perform protocol conversions
and/or encryption and decryption if desired.
As mentioned above, there is preferably a personal agent defined for each user
10 which accomplishes several tasks. For example, the personal agent provides access to the
information necessary to identify the user to network 14, by a user ID and password, a known IP
address, a pager number, a cellular EIN, etc. Additionally, the personal agent can provide access
to information such as account and/or password information for third party services to which the
user subscribes. For example, for the user can subscribe to a stock quotation and information
15 service which requires the user to identify themselves to the service before being allowed to
access the desired the information. While such uses of the personal agent provide convenience
to the user, in not having to remember account numbers, passwords, etc., the personal agent can
in fact do much more.
Specifically, the user can instruct their personal agent to perform a variety oftasks, ranging from the simple to the quite sophisticated. For example, the user can have defined
that their personal agent contact the above-mentioned stock quotation service once every hour to
determine the current price of one or more stocks and, if the prices reach a certain price, to
contact the user in a defined manner, such as by sending them an email, or paging them,
providing them with a synthe~i7~1 voice message in a voice mailbox or by contacting them on
their analog cellular telephone. As will be ~pa~ , set 44 of transducers 46 and transducer
matrix switch 48 will be employed, as necessary, in contacting the user via an a~plopfiate client
40, such as by employing a text to speech transducer 46 to provide them with a voice notification
on their cellular telephone. It is contemplated that a PC-based graphical user interface will be
available to users to allow them to select and define tasks for their personal agents which tasks
are then transferred to the personal agent via network 14. The construction and operation of such
a PC-based interface, or other suitable means for defining tasks and options for a personal agent,

CA 02220~80 1997-11-10
will be apparent to those of skill in the art.
As also mentioned above, the present invention includes a persistent caching
system for personal agents. As shown in Figure 3, the home region 18a for a user includes a
master personal agent 80 stored in database engine 38a. When a user connects to network 14
through a remote region 18b, and if a predefined QoS metric is not met by accessing the master
personal agent 80 via communications backbone 28, master personal agent 80 is replicated, as
replicated personal agent 80r, via communications backbone 28 to remote region 18b where it is
placed in the persistent cache of database engine 38b. As mentioned above, in the initial
10 replication only a minimum portion of the personal agent is replicated. For example, only the
information required to identify the user, the services to which the user is subscribed and the
user's billing information is transferred.
Once a complete connection is established, depending upon the user's activities,15 additional information can be transferred to replicated personal agent 80r and/or updates from
replicated agent 80r are transmitted to master personal agent 80. For consistency, master
personal agent 80 is always updated by a replicated personal agent 80r to reflect all changes and
some changes which occur at master personal agent 80 are automatically updated to replicated
personal agent 80r. This minim~l replication reduces bandwidth and messaging requirements by
20 keeping as much activity as possible within the local region 18b, reducing communications
through collllllullications backbone 28.
For example, a user can connect to remote region 18b and the region manager in
25 region 18b locates the master personal agent 80 for the user in region 18a, the user's home
region. A replicated personal agent 80r for the user is transferred to region 18b from region 18a
and is employed to verify the identity of the user. At this point, depending upon the activities of
the user, a variety of transfers can occur between the persistent cache in database engine 38b of
region 18b and master personal agent 80. If the user merely places a voice mail message in
30 another user's voice mail box, a billing entry can be added to replicated personal agent 80r and
an update transferred to master personal agent 80 to reflect this billing entry.

CA 02220~80 1997-11-10
14
In a more interesting example, the user can conduct an email session, reading,
replying, deleting and creating various messages as desired. In such a case, the user's inbox and
address list will be replicated at personal agent 80r and a~propliate updates transmitted to master
personal agent 80 to flag messages as having been read and/or to remove messages which have
5 been deleted and to update the address list to reflect any changes made by the user. When the
user creates new email messages, those messages are sent in a conventional manner and placed
in the user's outbox in the persistent cache and updates are sent to master personal agent 80 to be
placed in the users' outbox therein. Any email messages received at master personal agent 80
can be automatically replicated to replicated personal agent 80r, if desired. As will be apparent
10 to those of skill in the art, this replication technique can also be employed for GSM voice
services to accommodate the Home Location Registry and the Visitor Location Registry
employed therein.
Further, in some circumstances data will be transferred from a personal agent
(either master personal agent 80 or replicated personal agent 80r) to a client 40 and subsequently
changed in that client 40. When that client 40 next connects to network 14, master personal
agent 80 can be updated to reflect those changes, either directly or via an update from replicated
personal agent 80r. For example, a list of telephone numbers can be downloaded into a client 40
such as a personal digital assistant (PDA) or cellular telephone and the user can subsequently
20 add, delete or amend entries in that list. When that client 40 is again connected to network 14,
the copy of that list in master personal agent 80 is updated from client 40 to reflect the additions,
deletion and amendments made by the user.
As will be apparent to those of skill in the art, the operation of the persistent
25 cache is transparent to the user and is employed to enhance performance of network 14 by
reducing latency time, and in conjunction with the replication strategies, to reduce bandwidth
consumption too, where possible. The persistent cache can employ any suitable caching
strategy, as will occur to those of skill in the art, but it is contemplated that a FIFO (first in first
out) strategy will be employed wherein replicated personal agents 80r in the persistent cache are
30 ranked according to their age in the cache and, when a portion of the cache must be flushed, the
oldest entries are removed. This strategy can be enhanced by also tracking for each entry in the
persistent cache whether its corresponding master personal agent 80 has been accessed at the

CA 02220F780 1997-11-10
home region 18a, or replicated to another remote region, after the last access time of the
replicated personal agent 80r in the persistent cache. Replicated personal agents 80r at a region
18b whose corresponding master personal agents 80 have been accessed or replicated since the
last access to the replicated personal agent 80r, are flushed from the cache in region 18b.
As will be apparent to those of skill in the art, once a complete connection is
established between a client 40 and a region 18, security is m~int~ined by network 14. All
connections through communications backbone 28 are secure and/or encrypted to ensure that the
identity of the user is authenticated and that the data communications within network 14 are
private. Further, communications via set 52 of adapters and service agents with other services
can be encrypted and decrypted, as required.
Regions 18 have been constructed of components which are preferably
implemented in software, where appropriate, to allow for easy upgrading, enhancement and to
provide "hot-plugability", i.e.- the ability to add or remove services and/or hardware while
network 14 is in operation. Specifically, bridges 36 comprise the necessary hardware to
establish connections to client 40 and comprise a software-implemented control which manages
the communication with region servers 24. Similarly, database engine 38 includes a suitable
database engine and a software-implemented control which manages the persistent cache and
other functions of the database engine 38. Set 44 of transducers 46, and transducer matrix switch
48 also comprise software-implemented components which either control haldw~e and/or
firmware to perform their necessary functions, or which perform these functions themselves.
Similarly, set 52 of adapters and service agents include the necessary hardware to perform
~plul)l;ate communications tasks and a software-implemented control which manages and
controls these tasks.
In a pler~ d aspect of the present invention, these software-implemented
controls are constructed as Java servlets, Java Beans and Java Enterprise Beans, as documented
in Sun's JavaSoft Java Servlet documentation and in the JavaSoft V1.1 documentation and inter-
servlet communications is accomplished by way of Java's RMI services, also documented
therein.

CA 02220~80 1997-11-10
16
In an embodiment of the present invention, a wrapper has been added the
conventional Java servlets to provide rapid synchronous and asynchronous communications.
Specifically, the wrapper extends the functionality of the servlets from their conventional http-
based "post" and "get" API to a fully functional asynchronous mess~ging API by which
5 messages can be sent to any servlet and received from any servlet via a sustained connection, or
by a connection which is asynchronous. A servlet extended with this wrapper can communicate
synchronously with any other servlet (extended or non-extended) and can also communicate
asynchronously with any other extended servlet.
Essentially the wrapper comprises methods which the servlet must implement.
The first method is "perform()" which is the synchronous event handler. It is called with an
event, returns a value when complete and is blocked while an event is being processed. The
second method is "performAsynch()" which is the asynchronous event handler. This method
returns a "FutureReply" placeholder object as soon as possible. When event processing is
complete, the method then sends an asynchronous reply event to the caller servlet. The
FutureReply placeholder includes a unique identifier which allows the receiving servlet to match
a subsequently received reply event to the original event. With this method, the caller servlet is
free to perform other processing while the event is being processed.
To accommodate these two types of event h~n(lling, two different types of eventsare defined. Specifically, "ServletEvent" and "ServletAsynchEvent" are employed, the former
being used for synchronous events and the latter for asynchronous events. In this system, events
comprise an identifier of type String, an argument, which can be any Object, and a Session.
Because more than one servlet can send an event to an extended servlet, a Session, which is an
object that includes a unique identification, is provided to assist the extended servlet in
processing synchronous events by allowing the servlet to identify the ordering of events.
While Java servlets, Java Beans, Java Enterprise Beans and the Java RMI
interface is presently preferred for implementing the software components of network 14, it will
be al)paLelll to those of skill in the art that the present invention is not limited to such an
implementation and CORBA (Common Object Request Broker) or other suitable
implementations can be employed, in part or in whole, if desired.

CA 02220~80 1997-11-10
As will be appalellt to those of skill in the art, several advantages are realized
with the use of software-implemented controls. Specifically, regions 18 can have components
added or removed while the network is in operation, without requiring network 18 to be shut
down with the result that network 14is scalable and network 14, regions 18 and region servers
24 remain operational while such component changes are being effected. Thus, for example,
additional bridges 36 or dirrelell~ transducers 46 can be added to or removed from a region 18 as
desired. Further, new services and/or capabilities can also be added to regions 18 and merely
requires that approp,;ate servlets be registered in the regions 18.
To implement this "hot-plugability", a layer of indirection is employed between
components of region 18 and requests for services of these components. In a presently pl~r~ d
embodiment of the invention, region manager 22 m~int~in~ a record, or availability list,
indicating the available components within a region 18 and each request for services of a
15 component is made by accessing this list to determine the available components. To add new
components and/or services to a region 18, an approp~iate addition is made to this availability
list when the component/service is available. To remove a component for preventative
maintenance, etc., the component is removed from the availability list and the component can be
removed or "downed" when it has completed its present task.
This also allows for hardware and/or license balancing to be performed. For
example, a region 18 may include one or more text to speech transducers 46 which rely upon
special purpose har.lw~ or software which is capable of performing (or which is only licensed
to perform) a fixed number of simultaneous transformations. In such a case, the service list can
25 identify services/components which are to be employed before others and can also refer to
components/service in other regions which can be accessed via communications backbone 28.
In the text to speech example, once the fixed number of simultaneous text to
speech transformations is being performed, additional requests for text to speech transformations
30 can be referred, via references in the service list, to another region 18 which has similar special
purpose hardware, or which has additional licenses. In such a case, the service list can instead
indicate an alternative transducer 46 which is less efficient than the licensed system, and which

CA 02220~80 1997-11-10
18
can be employed only once all of the special purpose hardware transducers 46 are occupied. In
this manner, requests for text to speech are met and the license, if any, is not exceeded and/or
utilization of haldwale is improved. As will be ~palenl, if a transducer 46 is not fully occupied,
region manager 22 can permit other regions 18 to employ the surplus capacity, by reporting
available capacity to these other regions 18 via backbone 28, thus permitting efficient use of the
haldw~e and/or licensed capacity of network 14.
In a similar fashion, the level of utilization of each region server 24 can be
monitored by the region manager 22 and the service list can be a~plopliately updated by the
10 region manager 22 to indicate that components at under utilized region servers 24 be employed
before similar components at regions servers 24 with higher utilization levels.
Thus, efficient use can be made of existing network resources and resources can
be added or removed, as desired. While it is presently preferred that region manager 22 m~int~in
15 the service list for all components available in a region 18, it is also contemplated that in some
circumstances service lists may be m~in1~ined at each region server 24 for some or all services
provided therein. For example, it is contemplated that one or more region servers 24 m~int~in a
list of transducers 46 available at the region server 24. It is also contemplated that, if a region
server 24 does not find a required component available in its list, a request can be sent to other
20 region servers 24, either directly or via region manager 22, via communications backbone 28 for
access to the required component.
Another advantage of network 14 is its ability to provide tunneling for IP
addresses (or similar addressing schemes). Specifically, many network security models include
25 the recognition of a user's IP address, as contained in the IP header on each IP packet, as part of
the security model. A message received from an unrecognized IP address is generally refused by
the network. While this model can provide reasonable results in many cases, it fails with mobile
or nomadic users. For example, the IP packets sent by a salesman trying to access his
employers' network from a remote location will have a different IP address, once the packet is
30 routed, than they would when sent from the salesman's home location, and the messages will
thus be refused by the employers' network. With a network in accordance with the present
invention, such as network 14, IP packets are "tunneled" between the home region and the

CA 02220~80 1997-11-10
19
remote region. A packet sent from the remote region will be sent as an encapsulated packet to
the home region, to preserve its IP address, and the home region will de-encapsulate the received
packet and forward it to the desired service with the original IP header/address intact. Similarly,
packets received at the home region from the service will be encapsulated and sent to the remote
5 region where they will be de-encapsulated and transmitted to the user. This tunneling is
performed transparently to the user whenever a user connects to a remote region and is presently
believed to provide significant advantages for users of networks employing IP address-based
security models.
While only specific combinations of the various features and components of the
present invention have been discussed herein, it will be apparent to those of skill in the art that
desired sub-sets of the disclosed features and components and/or alternative combinations of
these features and components can be utilized, as desired.
The present invention provides a novel method of servicing data access requests
from users accessing a network with multiple connection points, the services being provided
independent of the actual connection point and/or the communication client employed by the
user to connect to the network. These method is transparent to the user and to the provider of the
accessed service and can be customized for each type of client, using parameters known for that
20 client, and can be customized for each user's preferences for each client. For example, the user
need take no special steps to access the user's Email from a remote region with a PCS telephone.
These access requests are also serviced transparently to the service provider, for example the
author of the Email message does not need to alter the message to allow the user to access it via
a PCS telephone. Information relating to the user is transferred through the network to the
25 connection point at which the user has connected to the network and is m~int~ined at the
connection point to reduce latency and bandwidth utilization for the connection.

Dessin représentatif
Une figure unique qui représente un dessin illustrant l'invention.
États administratifs

2024-08-01 : Dans le cadre de la transition vers les Brevets de nouvelle génération (BNG), la base de données sur les brevets canadiens (BDBC) contient désormais un Historique d'événement plus détaillé, qui reproduit le Journal des événements de notre nouvelle solution interne.

Veuillez noter que les événements débutant par « Inactive : » se réfèrent à des événements qui ne sont plus utilisés dans notre nouvelle solution interne.

Pour une meilleure compréhension de l'état de la demande ou brevet qui figure sur cette page, la rubrique Mise en garde , et les descriptions de Brevet , Historique d'événement , Taxes périodiques et Historique des paiements devraient être consultées.

Historique d'événement

Description Date
Inactive : CIB expirée 2022-01-01
Inactive : CIB du SCB 2022-01-01
Demande non rétablie avant l'échéance 2006-06-13
Inactive : Morte - Aucune rép. à dem. art.29 Règles 2006-06-13
Réputée abandonnée - omission de répondre à un avis sur les taxes pour le maintien en état 2005-11-10
Inactive : Abandon. - Aucune rép dem par.30(2) Règles 2005-06-13
Inactive : Abandon. - Aucune rép. dem. art.29 Règles 2005-06-13
Inactive : Dem. de l'examinateur art.29 Règles 2004-12-13
Inactive : Dem. de l'examinateur par.30(2) Règles 2004-12-13
Lettre envoyée 2002-11-29
Toutes les exigences pour l'examen - jugée conforme 2002-10-25
Exigences pour une requête d'examen - jugée conforme 2002-10-25
Requête d'examen reçue 2002-10-25
Lettre envoyée 2000-10-13
Inactive : Transferts multiples 2000-08-31
Inactive : Inventeur supprimé 2000-05-24
Inactive : Inventeur supprimé 2000-05-24
Inactive : Lettre officielle 2000-04-26
Inactive : Lettre officielle 2000-04-20
Demande visant la nomination d'un agent 2000-03-31
Inactive : Transferts multiples 2000-03-31
Demande visant la révocation de la nomination d'un agent 2000-03-31
Inactive : Transferts multiples 2000-01-06
Lettre envoyée 1999-07-22
Inactive : Page couverture publiée 1999-06-04
Demande publiée (accessible au public) 1999-05-10
Inactive : Transfert individuel 1999-03-26
Inactive : Lettre de courtoisie - Preuve 1999-01-25
Inactive : Transfert individuel 1998-12-01
Inactive : Inventeur supprimé 1998-03-27
Inactive : CIB attribuée 1998-02-26
Symbole de classement modifié 1998-02-26
Inactive : CIB attribuée 1998-02-26
Inactive : CIB en 1re position 1998-02-26
Inactive : Correspondance - Formalités 1998-02-18
Inactive : Certificat de dépôt - Sans RE (Anglais) 1998-02-02
Exigences de dépôt - jugé conforme 1998-02-02
Demande reçue - nationale ordinaire 1998-01-30

Historique d'abandonnement

Date d'abandonnement Raison Date de rétablissement
2005-11-10

Taxes périodiques

Le dernier paiement a été reçu le 2004-10-27

Avis : Si le paiement en totalité n'a pas été reçu au plus tard à la date indiquée, une taxe supplémentaire peut être imposée, soit une des taxes suivantes :

  • taxe de rétablissement ;
  • taxe pour paiement en souffrance ; ou
  • taxe additionnelle pour le renversement d'une péremption réputée.

Les taxes sur les brevets sont ajustées au 1er janvier de chaque année. Les montants ci-dessus sont les montants actuels s'ils sont reçus au plus tard le 31 décembre de l'année en cours.
Veuillez vous référer à la page web des taxes sur les brevets de l'OPIC pour voir tous les montants actuels des taxes.

Historique des taxes

Type de taxes Anniversaire Échéance Date payée
Taxe pour le dépôt - générale 1997-11-10
Enregistrement d'un document 1998-12-01
TM (demande, 2e anniv.) - générale 02 1999-11-10 1999-10-21
TM (demande, 3e anniv.) - générale 03 2000-11-10 2000-10-27
TM (demande, 4e anniv.) - générale 04 2001-11-12 2001-10-26
TM (demande, 5e anniv.) - générale 05 2002-11-11 2002-10-25
Requête d'examen - générale 2002-10-25
TM (demande, 6e anniv.) - générale 06 2003-11-10 2003-10-22
TM (demande, 7e anniv.) - générale 07 2004-11-10 2004-10-27
Titulaires au dossier

Les titulaires actuels et antérieures au dossier sont affichés en ordre alphabétique.

Titulaires actuels au dossier
NORTHERN TELECOM LIMITED
NORTEL NETWORKS LIMITED
Titulaires antérieures au dossier
ARTHUR JULIAN PATTERSON CRADDOCK
ERIC WALTER PARSONS
Les propriétaires antérieurs qui ne figurent pas dans la liste des « Propriétaires au dossier » apparaîtront dans d'autres documents au dossier.
Documents

Pour visionner les fichiers sélectionnés, entrer le code reCAPTCHA :



Pour visualiser une image, cliquer sur un lien dans la colonne description du document. Pour télécharger l'image (les images), cliquer l'une ou plusieurs cases à cocher dans la première colonne et ensuite cliquer sur le bouton "Télécharger sélection en format PDF (archive Zip)" ou le bouton "Télécharger sélection (en un fichier PDF fusionné)".

Liste des documents de brevet publiés et non publiés sur la BDBC .

Si vous avez des difficultés à accéder au contenu, veuillez communiquer avec le Centre de services à la clientèle au 1-866-997-1936, ou envoyer un courriel au Centre de service à la clientèle de l'OPIC.


Description du
Document 
Date
(aaaa-mm-jj) 
Nombre de pages   Taille de l'image (Ko) 
Dessin représentatif 1999-05-30 1 7
Description 1997-11-09 19 1 054
Abrégé 1997-11-09 1 12
Dessins 1997-11-09 3 38
Revendications 1997-11-09 4 140
Certificat de dépôt (anglais) 1998-02-01 1 165
Demande de preuve ou de transfert manquant 1998-11-11 1 110
Demande de preuve ou de transfert manquant 1999-01-24 1 110
Courtoisie - Certificat d'enregistrement (document(s) connexe(s)) 1999-05-03 1 117
Rappel de taxe de maintien due 1999-07-12 1 112
Rappel - requête d'examen 2002-07-10 1 128
Accusé de réception de la requête d'examen 2002-11-28 1 174
Courtoisie - Lettre d'abandon (R30(2)) 2005-08-21 1 166
Courtoisie - Lettre d'abandon (R29) 2005-08-21 1 166
Courtoisie - Lettre d'abandon (taxe de maintien en état) 2006-01-04 1 174
Correspondance 1998-02-02 1 33
Correspondance 1998-02-17 3 71
Correspondance 1999-01-24 1 14
Correspondance 2000-02-07 1 14
Correspondance 2000-03-30 2 69
Correspondance 2000-04-19 1 9
Correspondance 2000-04-25 1 9
Taxes 2001-10-25 1 26
Taxes 2002-10-24 1 31
Taxes 2000-10-26 1 29