`
`[191
`
`[11]
`
`Patent Number:
`
`5,509,000
`
`Oberlander
`
`Date of Patent:
`[45]
`Apr. 16, 1996
`
`I|||l|llllllll|||IlllllllllIllllIllllIllllIllllIlllllllllllllllllllllllllll
`USOOSSO9000A
`
`[54] METHOD AND APPARATUS FOR ROUTING
`INFORMATION IN A COMMUNICATION
`SYSTEM
`
`[75]
`
`Inventor: Lewis B. Oberlander, Bufialo Grove,
`1]].
`
`[73] Assignee: Motorola, Inc., Schaumburg, Ill.
`
`[21]
`
`[22]
`
`[51]
`[521
`
`[58]
`
`[5 6]
`
`Appl. No.:
`Filed:
`
`257,842
`
`Jun. 10, 1994
`
`Int. Cl.6 ............................... H04L 9/00; H04L 12/16
`U.S. Cl. ................................. 370/17; 370/54; 370/62;
`370/110.1; 379/93; 379/211
`Field of Search .................................. 370/13, 17, 54,
`370/60, 60.1, 61, 62, 94.1, 94.2, 110.1;
`379/93, 94, 95, 211, 220, 221
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`5,341,366
`5,406,557
`5,414,698
`
`8/1994 Soumiya et a1.
`.......................... 370/17
`
`4/1995 Baudoin ........
`370/61
`5/1995 Adams ...................................... 370/17
`
`Attorney, Agent, or Firm—Val Jean Hillman; Kevin A.
`Buford
`
`[57]
`
`ABSTRACT
`
`A method and apparatus for routing information within a
`communication system (100) is based upon evaluating vari-
`ous attributes (310) of the information to be routed. The
`methodology employs processing steps including, but not
`limited to receiving a message (300) having a key (304) and
`a first set of message attributes (310), each attribute having
`a value. Extracting the key (304) from the message to index
`a data base (400) in order to retrieve records (410) having
`the key and containing a representation of a logic function
`(406) that describes a second set of message attributes. The
`first set of attributes values are applied to the logic function
`(406) of the first retrieved record to determine whether the
`function is true or false. If true, that data base record is
`selected for use in routing the information. Otherwise, the
`first set of attribute values are applied to the logic functions
`of each indexed data base record (410) until a true condition
`is encountered. This methodology is employed with the
`selection of a destination device as well as the selection of
`a communication network.
`
`Primary Examiner—Melvin Marcelo
`
`29 Claims, 5 Drawing Sheets
`
`900
`
`902
`
` 904
` 906
` 908
`
`970
`
`EXTRACT FUNCTION FROM RECORD
`
`EVALUATE EXTRACTED FUNCTION
`
`
`
` 912
`
`
`
`
`RETREIVE A NEXT
`
`RECORD FROM
`
`DATABASE VIA KEY
`
`
`IS
`
`EVALUATION
`
`TRUE 0R FALSE
`?
`
`
`918
`
`COPY NETWORK ID
`
`LIST FROM RECORD
`
`INTO MESSAGE
`
`
`
`GOOG 1038
`IPR of U.S. Patent No. 8,572,279
`Page1 of 12
`
`GOOG 1038
`IPR of U.S. Patent No. 8,572,279
`Page 1 of 12
`
`
`
`U.S. Patent
`
`Apr. 16, 1996
`
`Sheet 1 of 5
`
`5,509,000
`
`
`
`
`
` 250
`
`
`
`272
`
`2 72
`
`INTERFACE
`
`TRANSCEIVER
`
`220
`
`230
`
`SUBSCRIBER
`
`ID
`
` SOURCE
`
`
`302
`
`
`
`304
`
`306
`
`
`
`ATTRIBUTES
`
`DATA
`
`.308
`
`310
`
`
`
`20
`
`3
`
`F]G'.3
`
`10.0
`
`GOOG 1038
`IPR of U.S. Patent No. 8,572,279
`Page 2 of 12
`
`GOOG 1038
`IPR of U.S. Patent No. 8,572,279
`Page 2 of 12
`
`
`
`U.S. Patent
`
`Apr. 16, 1996
`
`Sheet 2 of 5
`
`5,509,000
`
`
` IIIII""'
`
`406
`FIG.4
`
`404
`
`——-
`
`SUBSCRIBER
`ID
`
`DEVICE
`
`NETWDORK
`
`LIST
`
`M7
`
`LOGIC
`
`
`
`S_UBSCRIBER
`
`502——50'
`
`
`ID
`
`504
`
`1F” if (:3. :5?
`
`FUNCTION
`
`510
`
`570
`
`510
`
`
`
`
`
`505
`
`fl)
`
`GOOG 1038
`IPR of U.S. Patent No. 8,572,279
`Page 3 of 12
`
`SUBSCRIBER
`191
`
`DEVICE
`
`FUNCTION
`
`LOGIC
`
`—-D— 410
`—-- 4'0
`_-— 4w
`SUBSCRIBER
`410
`102
`
`
`
`
`GOOG 1038
`IPR of U.S. Patent No. 8,572,279
`Page 3 of 12
`
`
`
`U.S. Patent
`
`Apr. 16, 1996
`
`Sheet 3 of 5
`
`5,509,000
`
`
`
`
`
`
`614
`
`614
`
`614
`
`614
`
`610
`
`610
`
`610
`
`F I G . 6
`
`£95.
`
`605
`
`TIME OUT
`
`
`
`NETWORK ID
`
`0
`
`NETWORK 101
`
`NETWORK 102
`
`O O
`
`FLAG
`
`O
`
`FLAG1
`
`FLAG2
`
`FLAGN_1
`
`‘
`
`NETWORK IDN_1
`
`)610
`
`
`
`
`
`
`512
`
`512
`
`612
`
`612
`
`
`
`
`
`
`
`702
`
`CONSTRAINT
`
`CODE
`
`704
`
`705
`
`
`UE
`
`COMPARED
`VAL
`
`COMPARISON
`CODE
`
`702
`SIZE
`
`704
`1024 BYTES
`
`706
`LESS OR EQUAL
`
`F I g; 7 A
`
`[116,- 73
`Z92
`716
`
`712
`
`714
`
`CONSTRAINT
`CODE
`
`MATCH ITEM
`NUMBER
`
`f” 716
`
`
`
`
`
`F]G.7C
`
`m
`
`712
`
`714
`
`716
`
`718
`
`DATA
`
`
`EQUAL
`
`F I C . 7 D
`710
`
`722
`
`724
`
`CONSTRAINT
`CODE
`
`MATCH ITEM
`NUMBER
`
`(726
`
`MATCH ITEM
`ENTRY
`
`
`
`
`
`26
`
`7
`
`MATCH ITEM
`ENTRY
`
`MATCH
`CODE
`
`
`
`F]G’.7E 129
`
`722
`
`724
`
`725
`
`725
`
`728
`
`F I G . 7 F
`
`GOOG 1038
`IPR of U.S. Patent No. 8,572,279
`Page 4 of 12
`
`GOOG 1038
`IPR of U.S. Patent No. 8,572,279
`Page 4 of 12
`
`
`
`U.S. Patent
`
`Apr. 16, 1996
`
`Sheet 4 of 5
`
`5,509,000
`
`
`
`
`
`732
`
`734
`
`736
`
`736
`
`CONSTRAINT
`CODE
`
`COMBINED
`ITEM NUMBER
`
`ITEM
`ENTRY
`
`ITEM
`ENTRY
`
`736
`
`, , ,
`
`ITEM
`ENTRY
`
`
`
`F]C.7C M
`
`732
`
`734
`
`ORIGIN
`
`
`
`EMPLOYER
`
`SPOUSE
`
`EQUAL
`
`DATA l
`
`
`
`
`EQUAL
`
`
`
`
`736
`736
`
`F]C.7H 7_Q
`
`START
`
`800
`
`>
`
`RECEIVE MESSAGE
`
`,
`
`EXTRACT KEY
`
`INDEX DATABASE VIA KEY
`
`RETREIVE DATABASE RECORDS
`
`
`
`
`EXTRACT FUNCTION FROM RECORD
`
`
`
`EVALUATE EXTRACTED FUNCTION
`
`
`
`IS
`
`
`RETREIVE A NEXT
`
`EVALUATION
`TRUE
`
`
`RECORD FROM
`TRUE 0R FALSE
`DATABASE VIA KEY
`
`
`?
`Flag 8’4
`
`302
`
`804
`
`806
`
`808
`
`810
`
`872
`
`878
`
`COPY SUBSCRIBER
`ID INTO MESSAGE
`
`I!!!
`
`GOOG 1038
`IPR of U.S. Patent No. 8,572,279
`Page 5 of 12
`
`GOOG 1038
`IPR of U.S. Patent No. 8,572,279
`Page 5 of 12
`
`
`
`U.S. Patent
`
`Apr. 16, 1996
`
`Sheet 5 of 5
`
`5,509,000
`
`START
`
`900
`
`RECEIVE MESSAGE
`
`EXTRACT KEY
`
`INDEX DATABASE VIA KEY
`
`RETREIVE DATABASE RECORD
`
`90
`
`2
`
`90
`
`4
`
`90
`
`6
`
`908
`
`910
`
`912
`
`
`
`
`IS
`
`RETREIVE A NEXT
`EVALUATION
`RECORD FROM
`
`TRUE OR FALSE
`DATABASE VIA KEY
`
`
`?
`TRUE
`
`EXTRACT FUNCTION FROM RECORD
`
`EVALUATE EXTRACTED FUNCTION
`
`
`
`
`978
`
`COPY NETWORK ID
`LIST FROM RECORD
`
`INTO MESSAGE
`
`F[€.9
`
`GOOG 1038
`IPR of U.S. Patent No. 8,572,279
`Page 6 of 12
`
`GOOG 1038
`IPR of U.S. Patent No. 8,572,279
`Page 6 of 12
`
`
`
`1
`NIETHOD AND APPARATUS FOR ROUTING
`INFORMATION IN A COMMUNICATION
`SYSTEM
`
`FIELD OF THE INVENTION
`
`The present invention pertains generally to communica-
`tion systems and particularly to a method and apparatus for
`routing information to a particular person (i.e., subscriber)
`via a particular destination device and over a particular
`network within a communication system.
`
`BACKGROUND OF THE INVENTION
`
`In today’s fast paced business environment, individuals
`on—the-move, often need to receive information, such as, but
`not limited to voice messages and/or electronic files, docu-
`ments and/or messages, be they multimedia or otherwise,
`said information being transmitted from a remote location
`and destined for the mobile individual. For their data com-
`
`municating needs, these individuals may employ a plethora
`of communicating devices such as, for example, pagers,
`radio telephones, personal computers, personal digital assis-
`tants (PDAs) and the like. Each of these above devices is
`typically optimized to carry a specific type or format of data
`over a particular type of communication network.
`Notwithstanding these limitations, the typical business
`individual may nonetheless prefer to receive a particular
`type of information at a particular one of her communicating
`devices. For example, she may desire to receive all elec-
`tronic mail messages (i.e., E—Mail) at her desktop personal
`computer when she is in the office. When at home or
`traveling, however, she may prefer to receive all E-Mail
`messages at her notebook personal computer. Depending
`upon the urgency of the information,
`the recipient may
`prefer to receive the information immediately or instead
`have it routed to a colleague. As an alternative, low priority
`information may be sent to yet another destination device for
`storage and later retrieval. Where the information is routable
`to the recipient via more than one communication network,
`issues relating to cost, security, transmit time, etc., may be
`taken into consideration.
`
`Unfortunately, the party seeking to transmit the inforrna—
`tion typically has no idea of the recipient’s location or of the
`recipient’s
`communication preferences,
`such
`as,
`for
`example, where she desires E-Mail messages to be deliv-
`ered.
`It would be extremely advantageous therefore to
`provide a method and apparatus for routing information
`within a communication system which takes into consider-
`ation subscriber specified preferences.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`FIG. 1 illustrates in block diagram form a communication
`system anticipated by the present invention;
`FIG. 2 is a block diagram representation of a structure
`common to the subscriber devices of FIG. 1;
`
`FIG. 3 depicts the structure of a message for use within
`the communication system of FIG. 1;
`FIG. 4 depicts an embodiment of a data base structure as
`anticipated by the present invention;
`FIG. 5 depicts another embodiment of a data base as
`anticipated by the present invention;
`FIG. 6 depicts the structure of a network ID list as shown
`in FIG. 5;
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`5,509,000
`
`2
`
`FIGS. 7a—7h depict data structures which describe vari-
`ous logic functions as anticipated for use by data base 400
`and 500 of FIGS. 4 and 5;
`
`FIG. 8 is a flow chart diagram illustrating the steps
`performed by the server of FIG. 1 in order to route infor-
`mation to a particular destination device in accordance with
`the present invention; and
`FIG. 9 is a flow chart diagram illustrating the steps
`performed by either the server or a subscriber device of FIG.
`1 in order to route information over a particular communi-
`cation network in accordance with the present invention.
`
`DETAILED DESCRIPTION OF A PREFERRED
`EMBODIMENT
`
`The purpose of the information routing scheme of the
`present
`invention is to permit a communication system
`subscriber to selectively operate a plurality of different
`communication devices, each at different times, or to use
`said plurality of different communication devices simulta—
`neously and for different tasks, according to the subscriber’s
`preference. In addition, for reasons of cost, security, urgency
`or efficiency, it permits the selection of one of a plurality of
`potential communication networks for use in transporting
`said information to the selected subscriber device.
`
`For the purpose of discussion, and not for the purpose of
`limitation, FIG. 1 illustrates in block diagram form a com—
`munication system 100 that may be used by the present
`invention. As depicted,
`the communication system 100
`employs both wireless and wireline communication net-
`works comprising a server 110 and a plurality of subscriber
`devices 120—124.
`
`For the purpose of clarity, a system subscriber or sub-
`scriber as used herein, shall refer to any individual who
`employs one or more devices 120—124 wherein each device
`is capable of communicating over one or more of the
`communication networks within the communication system
`100.
`
`As depicted, devices 120 and 124 communicate with
`server 110 via a wireless communication media such as, but
`not limited to radio frequency (RF) and/or Infrared (IR)
`communication channels. In accordance with the preferred
`embodiment, the present invention anticipates both RF and
`IR communications as wireless carriers of choice. In addi-
`
`tion, the present invention anticipates that more than one RF
`communication network may be available for the transmis-
`sion of information. Device 122 communicates with server
`110 over a wireline communication network via connection
`130 as well as via a wireless network as mentioned above.
`In accordance with the preferred embodiment, the present
`invention anticipates that any wireline based communication
`technique may be utilized to provide the wireline commu~
`nication connection 130.
`
`By way of example and not by way of limitation, device
`122 may communicate with server 100 via the Public Switch
`Telephone Network (PSIN), a Local Area Network (LAN)
`such as Ethernet, a Token Ring network, an Integrated
`Service Digital Network (ISDN) or any of a plurality of
`other public or private networks employing protocols such
`as, for example, an R8232 format or any other data format
`suitable for providing data packet communication.
`Shown within server 110 is a partial data flow diagram
`119 depicting some of the steps performed by server 110
`upon receipt of an incoming information message from, for
`example, device 120. In particular, data flow diagram 119
`shows various linked work sessions 111, 113 and 115 which
`
`GOOG 1038
`IPR of U.S. Patent No. 8,572,279
`Page 7 of 12
`
`GOOG 1038
`IPR of U.S. Patent No. 8,572,279
`Page 7 of 12
`
`
`
`5,509,000
`
`4
`
`question and may include information such as, but is not
`limited to message originator, message priority, message
`data format, message logical size, message security require—
`ments, message transmitted size, and message compressed
`size. Each attribute as identified within field 310 will have
`
`5
`
`3
`each operate upon the received message prior to delivery to
`the appropriate destination device. Work session 111 is a
`communication manager (CM), work session 113 is a device
`mobility manager (DMM) and work session 115 is a net—
`work mobility manager (NMM).
`In accordance with the preferred embodiment, CM 111 is
`a software program (i.e., process) that controls all commu-
`nication resources allocated to server 110. Thus, all mes-
`sages entering and exiting server 110 must necessarily pass
`through CM 111. DMM 113 is a software program that 10
`operates to select a destination device address to be
`appended to the received message. In a similar fashion,
`NMM 115 is a software program that receives the message
`from DMM 113 and selects one of a plurality of commu-
`nication networks for transmission of the message. To assist 15
`in this effort, DMM 113 maintains a DMM data base 112
`while NMM 115 maintains a NMM data base 114 as
`described herein below in more detail.
`
`20
`
`25
`
`associated therewith a corresponding value. For example,
`the value for the message attribute, message logical size,
`may be i024 bytes (i.e., 11? byte),.thereby indicating the
`1051931 srze 0f the message in question.
`FIG. 4 depicts an embodiment of a data base structure as
`anticipated by the present invention. The structure of FIG. 4
`is employed by data base 112 of FIG. 1 and used by DMM
`113 in order to select a destination device for receipt of the
`message in question. The structure comprises a plurality of
`records 410, each record comprises a subscriber ID field
`402, a device ID field 404 and a logic function field 406.
`In practice, each record 410 represents a rule that condi-
`tionally maps a subscriber to one of his communicating
`As will be appreciated by those skilled in the art, other
`devices 120—124. Each rule equates to a communication
`linked work sessions may be employed by server 110.
`preference that is typically selected by the subscriber for
`Moreover, rather than existing as stand alone software
`whom the message is intended. In accordance with this
`embodiment subscriber ID field 402 contains a subscriber ID
`programs, each session 111, 113 and 115 may comprise a
`subroutine of a larger software program or may be imple-
`that
`identifies the individual
`to whom the message is
`mented in hardware logic.
`intended. For each subscriber ID there is typically associated
`therewith one or more records 410, each record identifying
`FIG. 2 illustrates a block diagram of a structure 200
`common to server 110 and devices 120— 124 of FIG. 1. A
`a device 120—124 and its conditioning logic function.
`wireless transceiver 201 utilizes digital data to modulate a
`When a message 300 arrives at server 110, the server will
`carrier signal to transmit the desired data and its receiver
`extract the subscriber ID from the header of message 300
`and index data base 400 using the extracted subscriber ID as
`converts received RF signals into corresponding digital data.
`In accordance with the present invention, transceiver 201 is
`a key in order to determine which device to route the
`an RF transceiver. Notwithstanding, it may comprise any
`message to. This is accomplished by applying the set of
`other well known wireless communication technology such
`attribute 310 values from the message in question to the
`logic function within field 406 of a first retrieved data base
`as, but not limited to infrared (IR) technologies.
`400 record 410 as indexed by the key. When the outcome of
`Transceiver 201 employs one or more antennas desig-
`such an evaluation is true, the device ID within device ID
`nated 212 for communicating with server 110 as shown in
`field 404 is written to Null field 306 of the header of the
`FIG. 1. A processing unit 220, such as, for example, a
`message in question.
`microprocessor, operates under the control of an operating
`system contained in read only memory 230 and utilizes
`FIG. 5 depicts an embodiment of a data base structure as
`random access memory 240 to control inbound and out-
`anticipated by the present invention. The structure of FIG. 5
`bound data trafiic carried by path 250 and transceiver 200.
`is employed by data base 114 of FIG. 1 and used by NMM
`115 in order to select a communication network for trans-
`An interface 210 may consist of line drivers and input/output
`buffers and registers as is conventional in processor based
`mission of the message in question. The structure comprises
`systems. The path 250 corresponds to the wireline commu-
`a plurality of records 510, each record comprises a sub-
`nication channel 130 of FIG. 1 between server 110 and a
`scriber ID field 502, a device ID field 504, a network ID list
`field 505 and a logic function field 506. In practice, each
`device 120. The processing unit 220 operation relating to 45
`record 510 represents a rule that conditionally maps a
`message routing is explained in more detail below.
`subscriber and aselected device 120—124 to aprioritized list
`FIG. 3 depicts the structure of a message 300 for use
`0f communication networks. Each rule equates to a com-
`within the communication system of FIG. 1. As depicted
`each message comprises a header portion and a body. The 50 munication preference that
`is typically selected by the
`header portion of a message 300 consists of a Source ID field
`subscriber for whom the message is intended.
`302, Subscriber ID field 304, Null fields 306 and 308, and
`In accordance with this embodiment ,the subscriber ID
`Attributes field 310. The body of message 300 comprises
`field 502 and the device ID field 504 are used collectively as
`data field 320 which contains the information to be com—
`a key to index into data base 500. The key is generated as an
`municated.
`55 output of the selection process that selects a destination
`Source ID field 302 contains infomation identifying a
`device pursuant to the discussion of FIG. 4 and as described
`device 120 that originated the message, subscriber ID field
`in greater detail herein below. For each key (subscriber ID
`304 contains information which identifies to server 110 the
`502 and Device ID 504) there may in association therewith,
`subscriber
`(i.e.,
`individual)
`to whom the message is
`be one or more records 510, each record identifying a
`intended. Null field 306 is a field which shall be filled by 60 prioritized list of communication networks as set forth in
`server 110 with the address of a destination device which is
`field 505 and its conditioning logic function 506»
`to receive the data portion of the message in question. Null
`When a key, as generated by DMM session 113 of server
`field 308 is a field which shall be filled by server 110 with
`110, is presented to NMM session 115, NMM session 115
`a list of network lD’s identifying those communication
`indexes data base 500 using the key in order to determine
`networks which may be used to communicate the message 65 which network to use for transmission of the message. This
`in question to the selected destination device. Attributes field
`is accomplished by applying the set of attribute 310 values
`of the message in question to the logic function within field
`310 maintains information specific to the message 300 in
`
`30
`
`35
`
`40
`
`GOOG 1038
`IPR of U.S. Patent No. 8,572,279
`Page 8 of 12
`
`GOOG 1038
`IPR of U.S. Patent No. 8,572,279
`Page 8 of 12
`
`
`
`5
`
`6
`
`5,509,000
`
`506 of each data base 500 record as indexed by the key.
`When the outcome of such an application is true,
`the
`network ID list within field 505 of the evaluated record is
`
`written to Null field 308 of the header of the message in
`question.
`FIG. 6 depicts the structure of a single network ID list 505
`as shown in FIG. 5. Each list 505 comprises a time out
`information field 605 and a plurality of entries 610 num—
`bered 0 to N-l, where N is the maximum number of entries
`in the list. Each entry 610 comprises a flag field 612 and a
`network identifier field 614.
`
`The time out information within field 605 is used by CM
`111 of FIG. 2 in order to determine how long a particular
`network, as identified by a network identifier field 614, will
`be queried prior to default to a next entry 610 (i.e., network)
`in the list.
`
`Each flag field 612 comprises a bit map, wherein each bit
`controls various aspects of CM 111 operation. Such opera-
`tions include, but are not limited to, transmission of an entire
`message 300, transmission of a partial message 300, trans-
`mission of a notification that a message 300 is queued at
`server 110 and the like. Network identifier field 614 contains
`information which uniquely identifies a particular commu—
`nication network that mat be available for transmission of a
`message 300.
`In accordance with the present invention, each network ID
`list 505 is organized such that the most favored network
`appears in the first network identifier field (e.g., Network
`Identifier 0). In this fashion the most favored network is
`always tried first, prior to attempting to transmit a message
`over a lower priority or less desirable network.
`FIGS. 7a—7h depict data structures which describe logic
`functions as stored within data base 400 and 500 of FIGS.
`4 and 5. These logic functions further describe conditions
`which permit server 110 to determine which device and/or
`network are to be used for message routing in accordance
`with the present invention. In accordance with the preferred
`embodiment, the logic functions depicted in FIGS. 7a— 7h
`employ Boolean algebra. It will nonetheless be appreciated
`by those skilled in the art that other forms of logic, such as,
`but not limited to Fuzzy logic, may also be employed by the
`logic functions discussed herein.
`FIGS. 7a and 7b are graphical representations of a logic
`function 700 for describing the size,
`the priority or the
`security requirements for a particular message 300. The
`logic function 700 of FIG. 7a comprises a constraint code
`702, a comparend value 704 and a comparison code 706.
`By way of example, and not by way of limitation, let us
`assume that in the communication system of FIG. 1, devices
`122 and 124 are operated by a single individual. Let us
`further assume that device 122 is a personal computer
`maintained at the individual’s office, while device 124 is a
`personal digital assistant that the individual carries person-
`ally. Let us further assume that it is desirableto receive small
`messages at device 124 while larger messages are to be sent
`to device 122.
`
`FIG. 7b is a graphical representation of a logic function
`700 that delimits messages based upon size. In accordance
`with this example, constraint code field 702 is set to SIZE,
`thereby providing an indication of the delimit function to be
`performed. Comparend value 704 is set to, for example,
`1024 bytes or 1K byte. Finally comparison code field 706 is
`set to LESSOREQUAL, which corresponds to less than or
`equal to. In accordance, the logic function 700 of FIG. 7b
`asks the question whether the received message is less than
`or equal to 1K byte of information.
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`This logic function is representative of the type of infor-
`mation that may be stored in a data base 400 or 500 entry
`within logic function fields 406 or 506 of FIGS. 4 or 5. To
`assist in generating other logic functions, comparison code
`field 706 may also be set to LESS for less than, EQUAL for
`equal
`to, GREATER for greater
`than, GREATER-
`OREQUAL for greater than or equal to and NOTEQUAL for
`not equal.
`As previously mentioned, this same construction is used
`to delimit the transmitted size, the priority and the security
`of a particular message. In accordance, other constraint
`codes, such as, for example, XSIZE for transmitted size,
`PRIORITY for message priority and SECURITY for mes-
`sage security are used by the present invention in association
`with constraint code field 702.
`
`FIGS. 7c and 7d are graphical representations of a logic
`function 710 for testing the data format of a message. Logic
`function 710 comprises a constraint code field 712, match
`item number field 714, match item entries 716, number l—N
`and a match code 718.
`
`Referring back to FIG. 1, let us remember that devices
`122 and 124 are operated by a single individual; that device
`122 is a personal computer maintained at the individual’s
`office; and that device 124 is a personal digital assistant that
`the individual carries personally. Let us assume that it is
`desirable to receive E—Mail at device 124 while all other
`messages are to be sent to device 122.
`FIG. 7d is a graphical representation of a logic function
`710 that delimits messages based upon their content. In
`accordance with this example, constraint code field 712 is
`set to DATA, thereby providing an indication the delimit
`function to be performed. Match item number field 714 is set
`to 1 because only one data format type is being delimited.
`Were we delimiting both E-Mail messages and spreadsheets
`messages, then field 714 would contain the numeral 2.
`Match item field 718 contains the data format being
`tested; namely E—Mail. Were we delimiting both E-Mail
`messages and spreadsheet messages, match item field 718
`would contains two entries; namely E—Mail and Spreadsheet.
`Finally match code field 718 is set to EQUAL. In accor-
`dance, the logic function 710 of FIG. 7d asks the question
`whether the received message is an E—Mail message. This
`logic function represent the type information that may be
`stored in a data base 400 or 500 entry within logic function
`fields 406 or 506 of FIGS. 4 or 5. To assist in generating
`other logic functions, other match items such as, but not
`limited to: ASCII Text, FORMATTED Text, VOICEMAIL,
`VOICECIRCUIT, FACSIMILE, VIDEO, and/or GRAPH-
`ICS can be specified such that any set of data formats in the
`message body can be tested against a set of specified data
`formats. The testing will look for proper SUBSET, SUPER-
`SET,
`IMPROPERSUBSET,
`IMPROPERSUPERSET,
`NOTEQUAL (inequality), INTERSECT (intersection) and
`DISJOINT as specified in match code field 718.
`FIGS. 7e and 7f are graphical representations of a logic
`function 720 for testing the origin of a message. The logic
`function 720 comprises a constraint code 722, match item
`number field 724, match item entries 726, number l—N and
`a match code field 728.
`
`Referring again to FIG. 1, let us remember that devices
`122 and 124 are operated by a single individual; that device
`122 is a personal computer maintained at the individual’s
`office; and that device 124 is a PDA that the individual
`carries personally. Let us assume that it is desirable to
`receive messages
`from the
`individual’s
`spouse
`and
`employer, at device 124 while all other messages are to be
`sent to device 122.
`
`GOOG 1038
`IPR of U.S. Patent No. 8,572,279
`Page 9 of 12
`
`GOOG 1038
`IPR of U.S. Patent No. 8,572,279
`Page 9 of 12
`
`
`
`5,509,000
`
`7
`
`5
`
`8
`function 406 is extracted from the first data base record and
`FIG. 7fis a graphical representation of a LOGIC function
`evaluated. In this etfort, the attributes 310 values of the
`720 that delimits messages based upon their origin. In
`accordance with this example, constraint code field 722 is
`received message 300 are applied to the logic function of the
`set to ORIGIN, thereby providing an indication the delimit
`retrieved record at block 812 by DMM 113. Then, at block
`814 a check is performed by DMM 113 to determine
`function to be performed. Match item number field 724 is set
`whether the logic function, when evaluated using the mes—
`to 2 because we are delimiting messages from two sources.
`sage attribute value is true or false.
`In accordance, match item field 726 contains two entries;
`Iffalse, flow proceeds to block 816 where a next data base
`namely SPOU'SE 311d EMPLOYER, which are identifier’ S
`record is indexed via the key of step 804 in order to retrieve
`for the mdrvrduals spouse and employer,
`respectively.
`Flnally match.code field 728 15 set to EQUAL 1h accor- 10 yet another data base record. From block 816, flow branches
`dance, the 10310 fhhethh 720 Of HG- 7F asks the guestron
`back to blocks 810 through 814 where the next retrieved
`whether the received message ts from the lndrvrdual’s
`logic function is evaluated to determine whether it is true or
`spouse or employer.
`false. This process continues until all matching database
`FIGS. 7g and 7h are graphical representations of a logic
`records have been retrieved and evaluated per steps 810-816
`function 730 for
`logically combining those functions 15 or a true condition is meet at step 814.
`described herein above. The logic function 730 comprises a
`Assuming a true condition is encountered at step 814,
`constraint code 732: combined item number field 734, and
`flow proceeds to block 818, where the Device ID stored in
`item entnes 736 number I'N-
`field 404 of the retrieved record is copied, i.e., written by
`Referring again to FIG. 1, let us remember that devices
`DMM 113 into Null field 306 of the message 300. As a final
`122 and 124 are operated by a single individual; that device 20
`step DMM 113 passes the message 300 to NMM 115 for
`122 is a personal computer maintained at the individual’s
`further processing.
`ofiice; and that deVlce 124 rs a PDA that.“ rnleldual
`FIG. 9 is a flow chart diagram illustrating the steps
`carries personally. Let us assume that it ls desrrable to
`rf
`d b
`'th
`110
`b
`'b
`f FIG 1 .
`receive E-Mail messages from the individual’s spouse and
`pe orme
`y el er “TV”
`or a 51.1 scrl er 0
`.
`'
`.m
`employer, at device 124 while all other messages are to be
`order to route information over a partrcuiar commumcatron
`sent to device 122.
`25 network in accordance w1th the present invention.
`FIG. 7h is a graphical representation of a logic function
`Commencing at start bIOCk 900 flow proceeds to bIOCk
`730 that logically combines logic functions 700, 710 and
`902 Upon receipt of a message 300 by NMM 115 of server
`720 as described herein above. In accordance with this
`110 or subscriber device 120424 0f FIG- 1- As previously
`example, constraint code field 732 is set to AND, thereby
`mentioned NMM 115 receives the message from DMM 113
`providing an indication the logical function to be performed. 30 and at block 904 NMM 115 extracts a key from the message
`Combined item number field 734 is set to 2 because two
`300- For the purpose 0f NMM 115,
`the key comprises
`logic expressions are being combined. Finally,
`the two
`subscriber ID field 304 and Null field 306 Of FIG- 3- Where
`respective logic functions are entered in item entries 736. In
`NMM 115 is employed within server 110 Of FIG- 1, DMM
`accordance, the logic function of FIG. 7h asks the question
`113 Will fill Nhh field 306 Of FIG- 3 With a value COtTe'
`whether the received message is an E_Mafl message from 35
`sponding to the selected destination device. When NMM
`either the individual’s spouse or the individual’s employer.
`115 is employed within a subscriber device 120f124 0f FIG-
`Other logic expressions can be generated by entering
`1, Null field 306 has a default value corresponding to server
`logical operations including AND, OR, NAND and NOR in
`110 0f ”6- 1-
`constraint code field 432. Moreover, the expressions entered
`At block 906, NMM 115 indexes database 500 Of FIG- 5
`in item field 436 may themselves comprise compound logic 40 via the extracted key in order to retrieve a first record from
`functions like the one described in association with FIG. 7g.
`said database at block 908 whose subscriber ID field 502 and
`As is necessary and from time to time, subscriber’s will
`devrce ID field 504 matches the extracted key.
`transmit messages to mobility managers DMM 113 and
`Proceeding to block 908 all records indexed via the key
`NMM 115 within server 110 and locally within the indi- 45
`are retrieved. Thereafter, at blocks 910 through 914 the logic
`vidual’s subscriber device, requesting the alteration of the
`function 506 is extracted from the first database record and
`mobility preferences; i.e., the records within data bases 400
`evaluated. In this effort, the attribute 310 values 0f the
`and 5011 By changing the mobility preferences, including
`received message 300 are applied to the logic filnction of the
`the logic functions of fields 406 and 506, the subscriber can
`retrieved record at block 912 by NW 115- At block 914 a
`effectively change the device and network selection per— 50 check ls performed by NMM 115 to determine whether the
`formed by DMM 133 and NMM 115 as described herein
`loglc function is true or false when evaluated usrng the set
`below.
`o