`
`ZTE Corporation and ZTE (USA) Inc.
`
`
`
`
`
`[54] METHOD AND APPARATUS FOR
`SELECIING BETWEEN A PLURALITY OF
`COMMUNICATION PATHS
`
`[56]
`
`
`
`
`
`
`
`
`
`[75]
`
`
`
`
`
`
`
`
`
`
`ABSTRACT
`[57]
`In a data communication system (100), a method is
`provided to distinguish between and select from multi-
`ple communication paths (4,6,and 8)to a designated end
`point (10). The communications path selection is done
`locally. on a portable subscriber unit (2). The communi-
`cations path is transparent to requesting software appli-
`cation (30). The method manages a plurality of commu-
`nications devices (42,44) using existing communications
`infrastructure.
`
`APPL NO’: 991392
`
`Filed?
`
`Fell 11: 1993
`
`
`
`
`
`
`
`
`
`Int. c1.6 ....................... .. H04-Q 11/04; H041 3/26
`U.S. Cl. ................................... 395/200; 370/94.1;
`364/DIG. 1; 364/284; 364/284.3; 364/284.4;
`354/24294; 354/229; 354/2293; 354/2294;
`364/229,5
`395/200, 700, 650, 300;
`Field of Search
`
`
`370/94, 94.1, 94.3, 60.1 19 Claims, 9 Drawing Sheets
`
`
`
`
`
`10 ENDPOINT
`
`
`
`
`" couuumcmou PATH
`
`SUBSCRIBER
`UNIT
`
`3 COMMUNICATION PATH
`
`ZTE Corporation and ZTE (USA) Inc.
`Exhibit 1022-00001
`
`
`lllllllllllllllllIllll||l||lllllllllllllllllllllllllllllllllllllllIllllllll
`
`US005406643A
`
`[19]
`United States Patent
`[11] Patent Number:
`5,406,643
`
`
`Burke et al,
`[45] Date of Patent:
`Apr. 11, 1995
`
`
`
`
`
`
`References Cited
`U S PATENT DOCUMENTS
`'
`‘
`4,736,363
`4/1933 Aubin et al.
`.......................... 370/so
`4,825,206 4/1939 Brice, Jr. et al.
`.. 340/325.02
`5,033,032
`2/1992 Bosack ........................ 395/200
`5,115,495
`5/1992 Tsuchiya et 211.
`.. 395/200
`5,142,622 8/ 1992 Owens ..................... 395/200
`5,168,572 12/1992 Perkins .............................. .. 395/800
`
`
`
`_
`1I1Vent0fS= C'mSt0P'1°l' -7- Burke» M3P1e Valley:
`Janice M- Chnffee, Auburn; Erez Nir.
`Bellevue; Thomas E. Kee,
`Lynnwood, all of Wash.
`
`Assignee: Motorola, Inc., Schaumburg, Ill.
`
`Primary Exan1iner—-Kevin A. Kriess
`Attorney, Agent, or Firm—Va.l Jean F. Hillman
`
`
`
`U.S. Patent
`
`Apr. 11, 1995
`
`Sheet 1 of 9
`
`5,406,643
`
`F I G ° 1
`
`ENDPOINT
`
`SUBSCRIBER
`UNIT
`
`‘
`
`ZTE Corporation and ZTE (USA) Inc.
`Exhibit 1022-00002
`
`
`
` U.S. Patent
`Apr. 11, 1995
`Sheet 2 of 9
`
`5,406,643
`
`
`PROTOTYPE
`STATUS
`FLAG
`HANDLE
`
`
`
`PATH
`CONFIGURATION
`’LIST
`
`
`
`PROTOTYPE
`ATTRIBUTE
`LIST
`
`DATA LINK
`RESOURCE LIST
`
`
`
`
`
`
`
`PROTOTYPE
`
`HANDLE
`
`DEVICE
`MANAGER
`HANDLE
`
`SESSION
`RESOURCE
`HANDLE
`
`ZTE Corporation and ZTE (USA) Inc.
`Exhibit 1022-00003
`
`
`
`
`
` Sheet 3 of 9
`5,406,643
`
`U.S. Patent
`
`Apr. 11, 1995
`
`
`
`
`STORING LIST OF COMM PATHS
`IN MEMORY
`
`SELECTING FROM LIST AN
`AVAILABLE COMM PATH
`
`ZTE Corporation and ZTE (USA) Inc.
`Exhibit 1022-00004
`
`
`
`
`
`
`
`,00
`
`no
`
`CREATE A NEW SESSION
`
`’
`
`ISSUE COMMUNICATION
`COMMAND
`
`ROUTE COMMAND
`TO DEVICE MANAGER
`
` Apr. 11, 1995
`5,406,643
`Sheet 4 of 9
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`CONTROL COMMUNICATION
`RESOURCES
`
`RETURN COMMUNICATION
`RESULTS
`
`FINISHED
`COMMUNICATING?
`
`
`
`FIG.8
`
`ZTE Corporation and ZTE (USA) Inc.
`Exhibit 1022-00005
`
`
`
`12
`
`13:
`
`14:
`
`15:
`
`
`
`Apr. 11, 1995
`
`U.S. Patent
`
`
`
`
`Sheet 5 of 9
`
`
`
`CREATE A NEW SESSION
`
`205
`
`REQUEST NEw SESSION
`
`
`
`4
`
`ALLOCATE couuunrcmou
`RE5°”R°E5
`
`3
`
`2 °
`
`
`
`210
`
`A
`EXAMINE PROTOTYPE LIST
`
`
`
`215
`
`220
`
`22 5
`
`SELECT BEST PROTOTYPE
`
`mmuzz couuuuxcmon
`RESOURCES
`
`BIND T0 PROTOTYPE
`
`MARK PROTOTYPE
`*5 "1"'”5E"
`
`ADD DATA LINK
`
`RETURN REFERENCE TO
`om LINK
`
`235
`
`240
`
`245
`
`
`
`ADD SESSION
`
`F I C; 9
`°
`
`RETURN REFERENCE
`To SESSION
`
`250
`
`255
`
`260
`
`SAVE REFERENCE
`TO SESSION
`
`255
`
`ZTE Corporation and ZTE (USA) Inc.
`Exhibit 1022-00006
`
`
`
`
`
`
`
`
`U.S. Patent
`
`Apr. 11. 1995
`
`Sheet 6 of 9
`
`
`
`
`
`DELETE A SESSION
`
` 305
`
`REQUEST DELETION
`OF SESSION
`
`
`
`ARK “IN-USE" PROTOTYP:
`As "AVAILABLE"
`
`33°
`
`
`
`
`
`
`
`
`3W
`
`
`
`315
`
`OBTAIN DATA
`LINK REFERENCE
`
`
`
`
`
`
`REQUEST DELETION or
`DATA LINK
`
`DELETE DATA LINK
`
`335
`
`I
`
`340
`
`
`
`320
`
`DE—INITALIZE & DE-
`ALLOCATE COMMUNICATION
`RESOURCES
`‘
`
`F I G . 1 0
`
`PUBLISHING DATA LINK
`9515710” RESULTS
`
`345
`
`355
`
`350
`
`RELEASE COMMUNICATION
`RESOURCES
`
`DELETE SESSION FROM
`SESSION LIST
`
`PUBLISH SESSION
`DELETIDN RESULTS
`
`REMOVE REFERENCE
`TO SESSION
`
`365
`
`ZTE Corporation and ZTE (USA) Inc.
`Exhibit 1022-00007
`
`
`
`
`
`€
`
`
`
`—mHAxzH_<p<=_mH.u¢»_ohom¢
`
`.
`
`. Patent
`
`Apr 11, 1995
`
`Sheet 7 of 9
`
`5,406,643
`
`‘
`
`0 3
`
`
`
`_mH.zoHmwum
`
`
`
`
`
`mm»_o_o=¢
`
`:¢
`
`~_¢
`
`mm»_o_o¢¢
`
`mw=-z_o
`
`um»_o»ox¢
`
`ZTE Corporation and ZTE (USA) Inc.
`Exhibit 1022-00008
`
`
`
`
`.m8m
`
`9
`
`5,406,643
`
`L=+
`HMum>_o_o¢m
`
`.3~_¢
`.1mw=-zH
`my,H._._:22_._
`
`mmn_+
`
`um>_o_o¢¢
`
`1I'IIII|llII..|IIIIl..IInl|.IIIll.IIIul||||J
`
`ZTE Corporation and ZTE (USA) Inc.
`Exhibit 1022-00009
`
`
`
`_mH.zofiwmmm
`
`
`
`
`
`hmH4.zH.<_<ohmfi.u¢»hohozm
`
`
`
`
`
`
`
`¢mo<z<zuoH>u=_
`
`
`
`
`
`U.S. Patent
`
`Apr. 11, 1995
`
`Sheet 9 of 9
`
`5,406,643
`
`
`
`
`
`pm_.zoummmm_mH.¥zH4<H<g_m_.~¢»_o_o¢¢
`
`
`u1»pepomm
`u¢».o_o¢m
`u¢»_o_°z¢
`
`
`
`
`
`
`
`
`
`mm.
`
`zo_mmum
`
`=.
`
`um=-zH
`
`~_¢
`
`n..
`
`ZTE Corporation and ZTE (USA) Inc.
`Exhibit 1o22-ooo1o
`
` J._____.__._.__.__...____muo<z<2uuH>ma.IIIIIIL
`
`
`
`
`
`
`
`5,406,643
`
`METHOD AND APPARATUS FOR SELECTING
`BETWEEN A PLURALITY OF COMMUNICATION
`PATHS
`
`1
`
`
`
`
`
`
`2
`ware applications, a common interface to communica-
`tions systems which typically employ incompatible
`communications protocols.
`Current
`techniques for providing communications
`media selection suggest routing all such inquiries to a
`central host for processing. Selection of the appropriate
`media is performed by the central host, whose decision
`may or may not be returned to the requesting device. As
`is appreciated,
`this process necessitates transmitting
`request traffic over a communications network. Such
`message traffic can significantly impact overall system
`throughput. Moreover, the centralized control of com-
`munications media selection may result in overloading
`during periods of high volume. Such systems typically
`require infrastructure upgrades and modifications in
`order to provide the requisite centralized control.
`It would be extremely advantageous therefore to
`provide a method and apparatus whereby a portable
`subscriber unit automatically selects one of a plurality
`of available communications media based on knowledge
`of the available communication paths.
`SUMMARY OF THE INVENTION
`
`Briefly described, the present invention is a method
`and apparatus for permitting a subscriber unit to select
`from amongst a plurality of communications media, that
`particular media for establishing a communications path
`to a specified end point. According to one aspect of the
`invention, the method for permitting a subscriber unit
`having memory and communication resources to select
`one of a plurality communications paths to a designated
`destination comprises the steps of: storing in memory a
`list of communication paths having associated attri-
`butes; receiving a connection command comprising
`destination and communications criteria; selecting from
`the list, at least one communications path, as a function
`of destination; and establishing a connection to the se-
`lected communications path.
`A preferred embodiment of the present invention
`comprises a packet server module and at least one de-
`vice manager module, wherein a number of software
`application programs request data communications by
`interfacing to the packet server. The packet server
`maintains a session list identifying currently available
`connections (virtual links) to a specific end point, and
`selects a communications path based at least partly upon
`knowledge of the destination. The device manager
`maintains a list specifying the possible communications
`paths to specific end points and actually controls the
`communications resources responsible for establishing a
`communications path.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`FIG. 1 depicts a subscriber unit in communication
`with an end point through one of a plurality of commu-
`nication paths;
`FIG. 2 is a block diagram of a data processing unit
`employed by the subscriber unit of FIG. 1;
`FIG. 3 is a functional block diagram of the control
`software used by the data processing unit of FIG. 2
`during data communications;
`FIG. 4 depicts the structure of a communications
`path prototype (CPP) record in accordance with the
`present invention;
`FIG. 5 depicts the structure of a data link record in
`accordance with the present invention;
`
`ZTE Corporation and ZTE (USA) Inc.
`Exhibit 1022-00011
`
`
`10
`
`20
`
`25
`
`30
`
`35
`
`45
`
`50
`
`55
`
`65
`
` RELATED INVENTION
`The present
`invention is related to the following
`inventions:
`(1) “Message Routing And Destination Selection”,
`having Ser. No. 771708, filed Oct. 4th, 1991, and as-
`signed to the assignee of the present invention.
`(2) “Simultaneous Control Of A Communications
`Channel In A Multi-Tasking System”, having Ser. No.
`876662, filed on Apr. 30th, 1992, and assigned to the
`assignee of the present invention.
`(3) “Method of Data Communication For Radio Fre-
`quency Modems Requiring Different Communications
`Protocols”, having Ser. No. 876644, filed Apr. 30th,
`1992, and assigned to the assignee of the present inven-
`tion.
`
`
`
`(4) “Method For Asynchronous Application Com-
`munication”, having Ser. No. 876889, filed Apr. 30th,
`1992, and assigned to the assignee of the present inven-
`tion.
`
` TECHNICAL FIELD
`
`
`
`This invention relates generally to data communica-
`tion and, in particular, to a method for distinguishing
`between a plurality of communication paths and select-
`ing from those a communications path for use.
`BACKGROUND OF THE INVENTION
`
`Data and voice communications technologies have
`advanced rapidly in recent years, leading to the immer-
`gence of different and typically incompatible communi-
`cation systems, such as paging, cellular, telephone data,
`and radio packet data. Initially, the users of such sys-
`tems accepted their inherent incompatibility. The mod-
`ern trend, however. is for system users to expect and
`demand higher levels of compatibility between and
`interconnection to the currently available communica-
`tions platforms. Thus, a cellular radiotelephone commu-
`nication system must interconnect with the land-line
`telephone system, and wireless LAN (local area net-
`work) systems must now operate as extensions of wired
`LANs in order to achieve and sustain commercial via-
`bility.
`In response to this pressure, manufacturers of com-
`munication-capable portable and fixed devices, such as
`personal organizers and laptop computers, are begin-
`ning to incorporate multiple communication technolo-
`gies into their products. It is anticipated that the device
`user will learn to view the different technologies as
`merely alternatives for performing the same type of
`operation.
`As the level of systems interoperability increases, the
`differences between the various communications tech-
`nologies, hereinafter referred to as media or medium,
`will become less important. Ultimately, it is anticipated
`that user involvement in the selection process will di-
`minish to a point where the user may not even know
`which media is being used at any given instant.
`To achieve this end, there is need for a method for
`enabling a portable subscriber unit
`to automatically
`select one of a plurality of available communications
`media based at least partly upon its knowledge of poten-
`tial communication paths. A need also exists for a data
`communications method that creates, for different soft-
`
`
`
`5,406,643
`
`4
`3
`FIG. 6 depicts the structure of a session in accor-
`in ROM 14 and utilizing RAM 12, to control in bound
`dance with the present invention;
`and out bound data traffic on terminal 18 and to per-
`FIG. 7 is a flow chart diagram depicting the steps
`form all tasks as initiated by the user, via data entry
`device 20.
`performed by the data processing unit of FIG. 2 under
`direction of the control software of FIG. 3 during com-
`Data entry device 20 may comprise any of the well
`known data entry devices currently available which
`munications path selection ir1 accordance with the pres-
`ent invention;
`permit a system user to enter data and commands. Such
`FIG. 8 is a flow chart diagram depicting the steps
`devices include, but are not limited to, alphanumeric
`performed by the data processing unit of FIG. 2 under
`keys, touch screens, pressure or light sensitive pens,
`direction of the control software of FIG. 3 during data 10 graphic user interfaces, computerized information pre-
`communications in accordance with the present inven-
`sentation systems, and voice activation schemes.
`tion;
`In order to present information in a human perceiv-
`FIG. 9 is a flow chart diagram depicting the steps
`able form, the data processing unit 200 employs a dis-
`performed by the data processing unit of FIG. 2 under
`play unit 22. This display unit is selectable from, but not
`direction of the control software of FIG. 3 during the 15 limited to any of the well-known visual display devices
`creation of a session in accordance with FIG. 8;
`comprising CRT displays, LCD displays, LED displays
`FIG. 10 is a flow chart diagram depicting the steps
`and/or television monitors.
`performed by the data processing unit of FIG. 2 under
`In accordance with the present invention, data and
`direction of the control software of FIG. 3 during the
`control
`information are communicated between the
`deletion of a session in accordance with FIG. 8;
`20 processing unit 200 and media communications equip-
`FIG. 11 comprises an architecture diagram of a pre-
`ment (not shown), such as an infrared transceivers,
`ferred embodiment of the present invention in a repre-
`fiberoptic transceivers, wire-line modems, and/or RF
`sentative initial state;
`modems via I/0 terminal 18. The communications
`FIG. 12 comprises an architecture diagram of a pre-
`equipment connected to 1/0 terminal 18 enables the
`ferred embodiment of the present invention depicting 25 subscriber unit 2 of FIG. 1 to communicate over the
`the creation of a session;
`communication paths 4, 6, and 8 (FIG. 1).
`FIG. 13 comprises an architecture diagram of a pre-
`It will be appreciated by those skilled in the art that
`ferred embodiment of the present invention depicting
`the structure of the processing unit 200 is presented as a
`termination of the session created in FIG. 12.
`preferred embodiment. The present invention, as here-
`DETAILED DESCRIPTION OF A PREFERRED 3°
`iféfgghgfl f;°:‘1:';‘:fo‘é’e;’s§If;“:1’jfi‘:52‘[’,°:’fl:‘1‘1’°a‘:'
`EMBODIMENT
`for example, the deletion of data entry device 200 or
`The present invention has application to data commu-
`display unit 22.
`nications between personal computers and personal
`FIG. 3 is a functional block diagram of control soft-
`communicating devices. The data communications 35 ware used by the data processing unit 200 of FIG. 2
`method provides a scheme for identifying a desired
`during data communications in accordance with the
`remote point of contact or end point, regardless of the
`present
`invention. The control software, hereinafter
`devices or networks needed to support such communi-
`referred to as runtime engine 40, comprises functional
`cations.
`blocks including packet server 34 and device managers
`FIG. 1 depicts a subscriber unit 2 communicating 40 36 and 38.
`with an end point 10 through one of a plurality of com-
`External software for use with the nmtime engine 40
`munications paths 4, 6, and 8. Subscriber unit 2 is a
`comprises application software 30 and application pro-
`communicating computer as described in detail below.
`grammer interface software (API) 32. Application soft-
`End point 10 is any well-known destination to which
`ware 30 comprises any computer software program
`the subscriber unit 2 wishes to connect, such as an Elec- 45 wishing to communicate data in accordance with the
`tronic mail system, electronic database, communica-
`present invention. API 32 is a library of communication
`tions network, or another subscriber unit. Communica-
`routines which are called by application software 30
`tion paths 4, 6, and 8 represent the set of available com-
`and allow programs written in a specific program lan-
`munication paths from the subscriber unit 2 to the de-
`guage to access a communications device (not shown)
`sired end point 10. Communications paths 4, 6, and 8 50 through a predetermined set of function calls and net-
`may consist of wireless or wireline communications
`work interface device 42,44. In a preferred embodiment
`media such as, but not limited to,
`telephone lines,
`the set of library functions comprise functions such as,
`twisted pair wire, fiber-optic links, infrared channels,
`but not
`limited to, open_session,
`close_session,
`and radio frequency channels.
`get_message,
`send_.message, get_number_message,
`FIG. 2 depicts a block diagram of a data processing 55 get_notification_configuration, set_notification_con-
`unit 200 employed by the subscriber of FIG. 1 in order
`figuration, and get_nu.I:nber_messages. One or more
`to provide communications in accordance with the
`pairings of application software 30 instructions and API
`present invention. The data processing unit 200 com-
`32 routines may interface to packet server 34 through
`prises a central processing unit (CPU) 16, random ac-
`the external software interface 33 as delimited by run-
`cess memory (RAM) 12, read only memory (ROM) 14, 60 time engine 40.
`data entry device 20, display 22, and input/output (I/0)
`Rnntime engine 40 provides a uniform abstraction of
`terminal 18.
`available communication systems by providing a stan-
`The CPU 16 with associated memory may be realized
`dard set of data communication commands for applica-
`tion software 30, which is independent of the computer
`using a conventional microprocessor
`such as an
`programming language utilized by application software
`MC68l-[C11 microprocessor which has in the past been
`from Motorla Inc. As will be appreciated, the CPU 16
`30, or the ultimate path selected. During operation, API
`32 library calls are routed to packet server 34, which
`operates under control of an supervisory control pro-
`passes requests from one or more application software
`gram (Operating System) partially or wholly contained
`
`65
`
`ZTE Corporation and ZTE (USA) Inc.
`Exhibit 1022-00012
`
`
`
`
`
`
`
`5,406,643
`
`
`6
`CONFIGURATION LIST 53 contains information
`for automatically configuring communication equip-
`ment to establish a communication path to a source or
`destination specified by END POINT NAME field 51,
`whereby the communication path has the characteris-
`tics identified in ATTRIBUTE LIST 52.
`
`5
`
`I0
`
`15
`
`20
`
`25
`
`30
`
`35
`
`50
`
`60
`
`STATUS FLAG field 54 contains a value indicating
`whether a CPP record 50 has an associated data link 60
`as described herein and below. When STATUS FLAG
`54 indicates the existence of a data link 60, the creation
`of a new data link using the present CPP record 50 is
`inhibited.
`
`PROTOTYPE HANDLE Field 55 is a secondary
`search key whereby packet server 34 can identify and
`select a specific CPP record 50 from the list maintained
`by a device manager 36 or 38.
`FIG. 5 depicts the structure of a data link record in
`accordance with the present invention. Data link re-
`cords 60 are maintained within the device managers 36
`and 38 and define a physical path to a designated end
`point 10. Device manager 36 maintains the list of data
`links, indicating at any given time the open connections
`to end points for a given device manager 36 or 38.
`As shown, the record structure consists of DATA
`LINK HANDLE field 61, ATTRIBUTE LIST 62,
`DATA LINK RESOURCE LIST 63 and PROTO-
`TYPE HANDLE field 64. DATA LINK HANDLE
`field 61 is the primary search key, by which packet
`server 34 can select a given data link from a list of data
`links maintained by device managers 36 and 38. AT-
`TRIBUTE LIST 62 is a list of pairs of the form (name,
`information) describing characteristics of the actual
`communication path represented by this data link, and
`similar to PROTOTYPE ATTRIBUTE LIST 52 of
`FIG. 4. DATA LINK RESOURCE LIST 63 is a list of
`parameters describing to device manager 36 or 38 how
`to automatically operate communication equipment
`associated with data link 60. PROTOTYPE HANDLE
`64 is a reference for a data link 60 to locate its associated
`CPP record 50 of FIG. 4 for the purpose of updating
`the STATUS FLAG field 54 of CPP record 50.
`FIG. 6 depicts the structure of a session in accor-
`dance with the present invention. Sessions 70 are main-
`tained within a list in packet server 34 and comprise the
`information required by the packet server 34 to interact
`with a data link 60 found within a device manager 36 or
`38.
`Each session '70 consists of a SESSION HANDLE
`71, DEVICE MANAGER HANDLE 72, DATA
`LINK HANDLE '73 and SESSION RESOURCE
`LIST 74. SESSION HANDLE 71 is the primary search
`key, allowing software application programs 30 of FIG.
`3 to select a particular session from a list of sessions
`maintained by packet server 34. DEVICE MANAGER
`HANDLE 72 provides a unique identifier for packet
`server 34 to select one device manager from a plurality
`of device managers 36 and 38. DATA LINK HAN-
`DLE 73 enables the packet server 34 to access a specific
`data link 60 from the data link list maintained by the
`associated device manager 36, specifically identified by
`the value of DEVICE MANAGER HANDLE 72.
`SESSION RESOURCE LIST 74 is a list of parameters
`specifying for packet server 34 how to interact with the
`selected device manager 36. Specifically, SESSION
`RESOURCE LIST 73 instructs how to perform com-
`munications on behalf of applications software 30 over
`the actual communications path associated with data
`link 60 as identified by the present session 70.
`
`ZTE Corporation and ZTE (USA) Inc.
`Exhibit 1022-00013
`
`
`
` 5
`programs 30 to one or more device managers 36 and 38.
`Thus, API 32 operates to provide a standard mapping of
`the specific computer programming language in which
`application software 30 is implemented into messages
`that can be passed to the packet server 34.
`Packet server 34 operates to manage a list of sessions.
`A session is a record representing the information re-
`quired by packet server 34 to interact with device man-
`agers 36 and 38 and a specific software application pro-
`gram 30. Device managers 36 and 38 control the wire-
`less and or wireline communications equipment han-
`dling requests from packet server 34 on behalf of appli-
`cation software 34]. Device manager 36 and 38 manage
`path prototypes and data links as described below. A
`path prototype is a record representing a potential phys-
`ical path to a designated end point. A data link is a
`record that represents an actual physical link to a previ-
`ously specified end point.
`Device managers 36 and 38 are independent executa-
`bles that interface to packet server 34 via an internal
`software interface 35 and also interface directly to the
`communications equipment (not shown) via wireless or
`wireline network interface devices 42 and 44. As will be
`appreciated, a single device manager can communicate
`with one or more network interfaces 42 and 44. Each
`network interface provides the necessary registers and
`line drivers for communicating with the communica-
`tions equipment and will
`typically include a CPU,
`RAM, and ROM if these resources are not available in
`the communications equipment. In accordance with the
`present invention, any number of device managers can
`communicate with packet server 34.
`FIG. 4 depicts the structure a communications path
`prototype (CPP) record in accordance with the present
`invention. CPP records 50 are maintained within a list
`in device managers 36 and 38, respectively, and define a
`potential path to a designated end point 10. As shown,
`each CPP record 50 comprises an END POINT
`NAME field 51, ATFRIBUTE LIST 52, CONFIGU-
`RATION LIST 53, STATUS FLAG 54, and PROTO-
`TYPE HANDLE field 55. In accordance with the
`present invention, each CPP record 50 is used to estab-
`lish a link in order to send data packets between applica-
`tion software programs 30 of FIG. 3 and an end point 10
`of FIG. 1.
`The disclosed record structure contains destination
`information, predefined communications path attri-
`butes, communication device commands, status and ID.
`END POINT NAME field 51 designates a specific
`remote message source or destination. Packet server 34
`can select a subset of all CPP records maintained within
`device managers 36 and 38 by using END POINT
`NAME field 51 as a selection criteria. This allows
`packet server 34 to identify those CPP records 50,
`herein also referred to as prototypes, which define di-
`verse physical paths to a designated end point 10.
`A'ITRIBUI‘E LIST 52 is a list of pairs in the form
`(name, information) that describes the characteristics of
`a single actual communications path. Examples of spe-
`cific prototype attributes are (name=DIRECTION-
`ALITY,
`information=TWO-WAY), or
`(name=-
`BAUD, information=4800). The packet server 34 can
`select individual attributes from ATI'RIBUTE LIST
`52 by using the value of “name" as a selection criterion.
`This allows packet server 34 to compare the “informa-
`tion” field of a selected attribute against a value known
`to the packet server.
`
`
`
`
`
`5,40
`
`20
`
`25
`
`30
`
`35
`
`7
`FIG. 7 is a flow chart diagram depicting the steps
`performed by the data processing unit of FIG. 2 under
`direction of the control software of FIG. 3 during com-
`munications path selection in accordance with the pres-
`ent invention. Commencing with begin block 80, flow
`proceeds to block 82 where a list of communication
`paths are stored in memory. This step corresponds to
`storing and maintaining prototypes (CPP records 50)
`within device managers 36 and 38. From block 82, flow
`proceeds to block 84 where the packet server 34 of 10
`FIG. 3 receives a connection command from software
`application 30 via API 32. This command contains des-
`tination information,
`i.e., END POINT NAME, and
`various communication criteria as established and de-
`sired by software application 30. Such criteria specify
`acceptable ranges of values for various communication
`attributes such as, for example, “transfer cost” must be
`less than $1.00 per kilobyte or “directionality" must be
`two-way.
`Flow proceeds from block 84 to block 86 where
`packet server 34 selects from said list at least one avail-
`able communications path based as a function of desti-
`nation. In this effort, the packet server 34 requests from
`device managers 36 and 38 all prototypes which have an
`END POINT NAME field 51 comprising information
`which corresponds to the destination information found
`within the connection command at block 82. Based
`upon receipt these prototypes, packet server 34 may
`select a communication path. In accordance with an-
`other aspect of the present invention, packet server 34
`can further delimit selection of a communications path
`based upon a comparison of the communications crite-
`ria in the communications command and the communi-
`cation path attributes as maintained in CPP records 50.
`From block 88, flow proceeds to block 90 where
`packet server 34 establishes the communication path
`connection in preparation for transmission of informa-
`tion between software application 30 of FIG. 3 and end
`point 10 of FIG. 1.
`FIG. 8 is a tlow chart diagram of the steps performed
`by processing unit 200 of FIG. 2 under directions from
`the control software depicted in FIG. 3 during data
`communications in accordance with the present inven-
`tion. Commencing with begin block 100 when a sub-
`scriber unit 2 requests communications with an end
`point 10, [low proceeds to block 110 where the process-
`ing unit 200 creates a session 70. In accordance with a
`preferred embodiment of the present invention, at least
`one of the potential communications paths 4, 6, and 8, is
`selected as a function of destination. Such selection may
`further be qualified by criteria specified by software
`application 30. The creation of a new session is de-
`scribed in more detail below.
`when a session 70 has been successfully established,
`data communication can occur. Thus at block 120 a
`communications command is issued specifying the type
`of communication, i.e. send, receive, etc., communica-
`tion parameters,
`i.e. data buffers, etc., and a session
`reference identifying a session 70 over which the com-
`munication is to occur. At block 130, packet server 34
`routes the communication command 130 and the identi-
`fied session’s DATA LINK HANDLE 73 to the appro-
`priate device manager 36 or 38 using the session’s DE-
`VICE MANAGER HANDLE 72 of FIG.6.
`At block 14-0 the appropriate device manager 36 is-
`sues the proper control sequence to the communications
`equipment in accordance with the DATA LINK RE-
`SOURCE LIST 63 of the specific data link 60 of FIG.
`
`45
`
`50
`
`55
`
`65
`
`8
`5, as identified by DATA LINK HANDLE 73, allow-
`ing the data transfer to occur over the pre-selected
`communications path. At block 150 the appropriate
`device manager returns the results of the communica-
`tion to the software applications 30 via packet server 34.
`At decision block 160 a test is performed to determine
`whether communications is complete. If software appli-
`cations 30 is finished communicating, the session 70 is
`deleted 170. The session deletion process is described
`below in more detail. If software applications 30 is not
`finished communicating, then flow returns to block 120
`to issue another communications command.
`FIG. 9 is a flow chart diagram depicting the steps
`performed by the processing unit 200 of FIG. 2 under
`directions from the control software depicted in FIG. 3
`during session creation in accordance with the present
`invention. To create a new session, software applica-
`tions 30 issues a request 205 to packet server 34 for a
`new session, specifying communication criteria and an
`end point name 10 with which the subscriber unit 2
`wishes to communicate. The communication criteria
`are various attributes desired by software application 30
`for the new session, such as baud rate, packet size, tran-
`sit time, transfer cost, carrier ID, directionality, end
`point name, channel ID, etc.
`Packet server 34 requests from all device managers
`36, 38 CPP records 50 (prototypes) with the designated
`value of END POINT NAME 51 corresponding to end
`point 10. Each device manager 36, 38 publishes only
`those prototypes having the specified value of END
`POINT NAME 51 and having the value AVAIL-
`ABLE for STATUS FLAG 54. Packet server 34 exam-
`ines at block 210, the resultant prototype list and selects
`at least one prototype at block 215 based upon the
`matched destination information and further in light of
`the communication criteria specified within the new
`session request.
`The remainder of this description assumes that the
`“best match” prototype was published by device man-
`ager 36, although, in the alternative, it could have been
`published by device manager. Packet server 34 requests
`a “binding” at block 220 to the selected “best match”
`prototype from the prototype’s device manager 36,
`passing to device manager 36 a binding request includ-
`ing the value of the “best match” prototype’s PROTO-
`TYPE HANDLE 55.
`Device manager 36 sets the value of STATUS
`FLAG 54 of the “best match” prototype to IN-USE at
`block 225. Next, device manager 36 allocates and initial-
`izes the required communication resources, specified by
`the “best match” prototype’s PATH CONFIGURA-
`TION LIST 53 at blocks 230 and 235. At block 240, the
`device manager 36 adds a data link 60, representative of
`the actual communication path now allocated, and cop-
`ies the value of the “best match” prototype’s PROTO-
`TYPE HANDLE 55 to the PROTOTYPE HANDLE
`64 field of data link 60. At block 2/I-5, the device man-
`ager 36 returns a data link reference to packet server 34
`for inclusion into the session’s DATA LINK HAN-
`DLE 73 field.
`At block 250, the session is added to the packet serv-
`er’s session list. A reference to the session is returned at
`block 255 to software application 30 for use in future
`communication related commands over that session’s
`communication path. Software application 30 saves the
`session reference 260.
`FIG. 10 is a flow chart diagram depicting session
`deletion in accordance with a preferred embodiment of
`
`ZTE Corporation and ZTE (USA) Inc.
`Exhibit 1022-00014
`
`
`
`
`
`5,406,643
`
`10
`ware application 30 now has an open communication
`path, as established by session 433, with which to com-
`municate to its designated end point. Now that the
`communication path has been set up, each message that
`is sent or received by the software application does not
`contain any routing or destination overhead.
`Note also that all information to select the best com-
`munication path is locally accessed, in device manager’s
`36 prototype list 410. Thus, the present invention can
`use existing data communication infrastructure and does
`not need a central host to control routing and path
`selection.
`,
`
`FIG. 13 depicts an architecture diagram of a pre-
`ferred embodiment of the presen