`(10) Patent N0.:
`US 6,415,318 B1
`
`Aggarwal et a1.
`(45) Date of Patent:
`Jul. 2, 2002
`
`U3006415318B1
`
`(54)
`
`INTER-ENTERPRISE MESSAGING SYSTEM
`USING BRIDGEHEAD SERVERS
`
`6,185,603 B1 *
`6,233,318 B1 *
`6,260,148 B1 *
`
`709/206
`2/2001 Henderson et al.
`5/2001 Picard et a1.
`............ 379/8817
`7/2001 Aggarwal et a1.
`.......... 713/201
`
`(75)
`
`Inventors: Sudhanshu M. Aggarwal, Bellevue;
`Peter L. Beebee, Redmond; Rajeev
`Surati, Seattle; Leon C. W. Wong,
`Redmond; Martin R. Calsyn,
`Carnation, all of WA (US)
`
`(73) Assignee: MiCI‘OSOft Corporation, Redmond, WA
`US
`(
`)
`1sc a1mer,t e term 0 t is
`u ect to an
`yd’
`l
`’
`h
`f h’
`S bj
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 0 days.
`
`otice:
`N ’
`
`*
`
`(21) Appl. No.: 09/286,257
`
`(22)
`
`Filed:
`
`Apr. 5, 1999
`.
`.
`.
`Related U-S- Appllcatlon Data
`.
`.
`.
`.
`.
`(63) Contlnuatlon'm'Pa“ 0f aP19110990“ NO- 08/832758: filed on
`APR 4’ 1997’ now Pat’ NO' 5’943’478'
`Int. Cl.7 ................................................ G06F 13/00
`(51)
`('52) US. Cl.
`....................... 709/206; 709/204; 709/238;
`370/230
`(58) Field of Search ................................. 709/200, 204,
`709/206, 207, 219, 245, 238, 230, 249;
`345/741; 713/201; 370/230
`
`(56)
`
`References Cited
`‘
`7
`7‘
`‘
`U'S' PATENT DOCUMENTS
`5 550 984 A
`8/1996 Gelb ..................... 395/20017
`5,590,266 A
`12/1996 Carson et a1.
`.
`....... 395/340
`12/1997 Feigen et a1,
`..
`.. 395/18701
`5,699,513 A
`
`1/1998 Schloss .....
`707/104.1
`5,706,507 A *
`8/1998 HOffef ~~~~~~~~~~
`5,799,151 A *
`7O9/204
`
`5782330 A :
`2/1999 MaSters et aL
`709/223
`
`gfiggg 311111?“ {'1‘ “““
`‘ 3779532113
`gflgésggg : *
`.,
`,
`as erse a.
`,
`5,943,478 A *
`8/1999 Aggarwal et a1.
`713/201
`
`6,108,704 A *
`8/2000 Hutton et al.
`........
`709/227
`.......... 370/230
`6,185,184 B1 *
`2/2001 Mattaway et a1.
`
`OTHER PUBLICATIONS
`DellaFerra, et al., “The Zephyr Notification Service,” User-
`net Conference, Feb. 1988.
`LaMacchia, David, “The iFlame Client—Based Instanta-
`neous Datagram Communications Substrate,” SB Thesis,
`Massachusetts Institute of Technology, May 1996.
`* cited by examiner
`Primary Examiner—Zarni Maung
`Assistant Examiner—Wen-Tai Lin
`
`(74) Attorney, Agent, or Firm—Workman, Nydegger,
`Seeley
`
`(57)
`
`ABSTRACT
`
`Systems and methods for transmitting messages, such as
`real-time messages, from an entity outside a firewall to a
`recipient
`inside the firewall. The messages include the
`address of a bridgehead server exposed through the firewall
`and information identifying the recipient client. The network
`protected by the firewall can include one or more bridgehead
`servers, one or more messaging servers associated with each
`bridgehead server, and one or more clients assigned to each
`messaging server When a bridgehead server receives a
`message, it resolves the address of the messaging server to
`which the recipient client
`is assigned. The message is
`forwarded to the messaging server and,
`in turn,
`to the
`recipient client. The sender of the message does not need to
`know the identity or address of the messaging server.
`Moreover, the sender, who may reside outside the firewall,
`does “Qt need dire“ access to the messaging sewers PTO-
`tected by the firewall in order to establish real-time com-
`munication with users inside the firewall. Thus, the messag-
`ing systems are compatible with conventional network
`security measures employed by many organizations. The
`messaging systems can be used by clients to monitor the
`online status of other clients or to receive notification of
`.
`.
`.
`.
`propertles assoc1ated With other clients.
`
`41 Claims, 5 Drawing Sheets
`
`10H
`
`FROM mm
`
`
`‘
`MESSAGE
`
`10k RECIPIENT ID
`BRIDGEHEAD
`1°‘\
`SERVER
`ADDRESS
`
`
`
`
`X
`BRIDGEHEAD SERVER 3
`mum
`MODULE
`
`7“
`
`
`see
`
`\
`
`MESSAGING
`SERVER a
`
`
`
`
`f5”
`
`
`
`D1RECTORY
`
`10°
`
`ewe
`
`1
`
`GOOGLE 1006
`
`GOOGLE 1006
`
`1
`
`
`
`US. Patent
`
`Jul. 2, 2002
`
`Sheet1,0f5
`
`US 6,415,318 B1
`
`NV
`
`F.o:
`
`mezzo:
`
`
`
`
`
`Owe>:2:
`
`oz_mmm00¢m
`
`
`mmmmhm<o<Fmoz_b<xwmo
`2gm5;:a2:8:fl2922::_________fl__
`
`m3;;
`
`:22:g:is35m550is2:20;is22:
`
`ES:
`
`355:::2ma:5:we:
`
`
`
`
`32:2.355::35%32:25:8:
`
`whosmm
`
`mmhzmsOo
`
`ow
`
`owififimt‘mflaflfy
`
`MU3|]Jun:313131.153
`
`om<0m>wx
`
`zo_h<o_4¢m<
`
`a25.8:ag:333382amigo:mEs:
`
`
`
`
`
`
`NV2<mcomm2<moo¥mmmxkozoz<ozmm<wzz<mw¢o
`
`:2we;
`
`
`
`:22;........
`
`<p<o
`
`
`
`m$382vmmmmms<moommmmIpo
`
`_________n_
`
`2
`
`
`
`
`
`
`
`
`
`
`
`
`US. Patent
`
`Jul. 2, 2002
`
`Sheet 2 0f 5
`
`US 6,415,318 B1
`
`oz_o<m$_=
`
`Siam
`
`m55.5
`
`..........................23Egt
`
`a?
`
`g
`
`$213.2.
`
`azagmm:
`
`m”Emma
`
`
`
`:9fa
`
`
`2:32:9:502:
`m5E”52%
`
`8
`
`026:8:
`
`$35
`
`25:0
`
`4.23::
`
`05:32”;
`
`<”Him;
`
`22332
`
`mmimw
`
`$26282
`
`Siam
`
`wza<
`m8:
`
`<$>$m
`
`3
`
`£250
`
`222.6
`
`_|||||||||||||||||||||||||||||||||||||||||||||||||I.gE
`
`3<2925253
`
`<._.zm_._o
`
`3
`
`
`
`
`
`
`
`
`
`
`
`
`US. Patent
`
`u
`
`US 6,415,318 B1
`
`2,mm1.,...........23E.......................L
`
`
`
`2:23;/n__u5ub,wemgnn5”Mammm3mm5::EE”u:3:ua"358%93152:M“<2@2553:u6fl"_a%mm:.9e:ammmn...............................a":Emw“v32E:m«2E583m2m3Mu
`WmMmwEE8EaWE9:52;;b.§2N2223%:m52%m525mm2:am"25:32
`
`mzoz<NE<omo
`
`_IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII.<zo:<N2<omo
`
`an
`
`Hmzxmhz_mON
`
`<No
`
`4
`
`
`
`
`
`
`US. Patent
`
`Mm2,
`
`h
`
`pm
`
`US 6,415,318 B1
`
`m3
`
`E2350
`
`5a
`
`45302m$52.
`
`Smgm52%ofixmoemm
`
`m3532J52%2:
`
`ofixuoemm9#252032:
`
`<55.522:
`
`$332
`
`v.o:
`
`365$:
`
`m535
`
`m3
`
`5
`
`
`
`
`
`
`US. Patent
`
`US 6,415,318 B1
`
`02
`
`3
`
`525::
`
`a:$2533a:5:28
`
`022.222me
`
`3:”E:Emw:330E:m<:33m3:”<:33H<EBg“:
`
`
`.umEm:m5::mW2:23;w2:22;
`
` 5umuEnm52:”"5):”uo:353$m252%mmm2,nVMm._r..........................Egg:.........N........a_........._h03
`
`
`
`<8
`
`6
`
`
`
`
`
`US 6,415,318 B1
`
`1
`INTER-ENTERPRISE MESSAGING SYSTEM
`USING BRIDGEHEAD SERVERS
`
`RELATED APPLICATION
`
`This is a continuation-in-part of US. patent application
`Ser. No. 08/832,758, now US. Pat. No. 5,943,478 entitled
`“System for Immediate Popup Messaging Across the
`Internet,” filed Apr. 4, 1997, which is incorporated herein by
`reference.
`
`BACKGROUND OF THE INVENTION
`
`1. The Field of the Invention
`
`The present invention relates to transmitting electronic
`messages between enterprises.
`In particular,
`the present
`invention relates to communicating messages from a sender
`outside of the recipient’s network to a bridgehead server
`inside the recipient’s network, where the address of a
`messaging server associated with the recipient is resolved.
`2. The Prior State of the Art
`
`Communication over the Internet takes on several forms,
`principally e-mail, chat, video and audio. These forms of
`communication are used in a variety of different contexts.
`Email is generally not perceived as “real-time" or “imme-
`diate”; messages may be read hours or days after they are
`sent. Chat is principally used as a social medium or for
`information sharing, not for point-to-point communication.
`Video and audio are both real-time, but
`they are both
`relatively difficult
`to use, and widespread acceptance
`requires improvements in existing technology and user
`interfaces.
`Another form of communication that exists on the Internet
`
`to a limited extent is instant messaging. For instance, a
`sending user can send a message to a recipient user, thereby
`causing the message to almost immediately appear on the
`computer terminal used by the recipient. The prototypical
`instant messaging system is the Zephyr system, which has
`been used on Athena, the campus computer network of the
`Massachusetts Institute of Technology in Cambridge, Mass.
`Zephyr permits any Athena user to send popup messages to
`any other Athena user, but not to any user across the Internet.
`Instant messaging differs from chat communication in
`several respects. First, chat users typically focus their atten-
`tion on a chat window for the duration of communication
`
`while instant messaging users are generally alerted on a
`per-message basis, allowing them to pay attention to instant
`messaging only when attention is required. Additionally, the
`chat model only makes sense for human-to-human
`communication, while instant messages may be used to
`transmit notifications from any source, such as a human user,
`an automated system that send notifications to remote sites,
`and the like.
`
`Firewalls are machines commonly used for enforcing
`corporate network security policies; most business users
`connect to the Internet through a firewall. Firewalls repre-
`sent a significant impediment to real-time communication
`between Internet users. Firewall designs generally prohibit
`external entities on the Internet from directly connecting to
`internal entities protected by the firewall. While such secu-
`rity mechanisms prevent external entities from maliciously
`manipulating internal entities, they have had the side effect
`of preventing asynchronous communication to an internal
`entity. Existing protocols for real-time Internet messaging
`are generally incapable of working through a firewall with-
`out explicit firewall policy modifications by systems admin-
`istrators.
`
`10
`
`15
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`2
`As network systems administered by corporate entities
`and other organizations have grown larger and more
`widespread, the use of firewalls and related security tech—
`niques has increased during recent years. As data transmis-
`sion rates have increased, the ability to send large amounts
`of data over the Internet between local area networks has
`
`also increased. The fill potential of Internet communication
`has not been realized, however, because of the inability to
`securely operate instant messaging systems through fire-
`walls.
`
`SUMMARY AND OBJECTS OF THE
`INVENTION
`
`The present invention relates to messaging systems that
`are compatible with firewalls, thereby permitting instant
`messages to be transmitted over the Internet. According to
`the invention, a sending client residing at a network admin-
`istered by a first organization can cause an instant message
`to appear at a recipient client machine at another network
`administered by a second organization, even though either
`(or both) of the organizations may use a firewall to protect
`its network.
`
`Each network has a hierarchical arrangements of
`components, including a firewall, one or more bridgehead
`servers exposed through the firewall, one or more messaging
`servers each being capable of receiving messages from one
`or from more than one of the bridgehead servers, and one or
`more clients assigned to each of the messaging servers.
`Incoming messages include the address of the bridgehead
`server and information identifying the recipient client, but
`do not include the address of the messaging server associ-
`ated with the recipient client.
`Incoming messages are transmitted through the firewall
`and are received by the bridgehead server to which they are
`addressed. The bridgehead server resolves the address of the
`messaging server to which the recipient client is assigned.
`For instance, the bridgehead server compares the informa-
`tion identifying the recipient client with directory informa-
`tion stored at the network. The directory information can
`include a database of clients of the network and the mes-
`
`saging server to which each client is assigned. Once the
`address of the appropriate messaging server is resolved, the
`message is transmitted to that messaging server and, in turn,
`to the recipient client.
`An outgoing message can bypass any messaging server
`and bridgehead server associated with the client that sends
`the message as it is sent across the firewall and to the
`recipient’s bridgehead server. Transmitting outgoing mes-
`sages in this manner decreases the number of transmission
`hops that would otherwise be needed if the outgoing mes-
`sage were to pass through the messaging server and the
`bridgehead server.
`The message transmitted in the foregoing manner arrives
`at recipient client without the sending client knowing the
`identity or the address of the messaging server associated
`with the recipient client. Moreover, the sending client does
`not access the messaging server directly, but instead sends
`the message to the bridgehead server. The organization in
`which the recipient client resides can protect its network
`using a firewall
`to prevent direct outside access to its
`messaging servers, while allowing instant or other real-time
`or rapid messaging systems to operate on its network. These
`features of the invention provide a desirable degree of
`security that has not previously been possible in connection
`with instant messaging. Accordingly, the invention allows
`real-time messaging to be used in many organizations where
`
`7
`
`
`
`US 6,415,318 B1
`
`3
`it would otherwise not be used without compromising
`organizational security. The invention also is scalable to
`substantially any number of users.
`A recipient of a message can generate and transmit a
`response to the message as quickly as desired. Transmission
`of a response message is similar to that of the original
`message, with the original recipient client sending the
`response and the original sending client receiving the
`response. The client that sends the response (i.e., the original
`recipient client) does not need to know the address of the
`messaging server associated with the client that receives the
`response (i.e., the original sending client). In this manner,
`two or more clients located remotely with respect to one
`another can rapidly communicate through firewalls.
`Optionally, the invention includes a system for allowing
`clients to track property changes (such as online status
`changes) of other clients designated as correspondents.
`When using the invention to track online status changes of
`other clients, each client can maintain and display a con-
`tinuously updated contact list showing the online status of
`each selected correspondent, thereby allowing the client to '
`know which correspondents are available to engage in
`real-time communication over the Internet.
`
`10
`
`15
`
`The contact list feature of the invention can be imple-
`mented by maintaining at the messaging server a subscriber
`list for a client associated with the messaging server and a
`given property of that client. The subscriber list includes, for
`example, entries indicating which of the other clients have
`designated its client as a correspondent or, in other words,
`have subscribed to the online status property of its client.
`When the client logs on to its messaging server, the online
`status property of the client is modified. The messaging
`server of the client then refers to the subscriber list for the
`
`online status property and notifies each of the clients
`included in the subscriber list that the particular client is
`online. Similarly, when the particular client logs off or
`otherwise goes off line,
`the messaging server notifies the
`clients included in the subscriber list.
`
`Additional objects and advantages of the invention will be
`set forth in the description which follows, and in part will be
`obvious from the description, or may be learned by the
`practice of the invention. The objects and advantages of the
`invention may be realized and obtained by means of the
`instruments and combinations particularly pointed out in the
`appended claims. These and other objects and features of the
`present invention will become more fully apparent from the
`following description and appended claims, or may be
`learned by the practice of the invention as set forth herein-
`after.
`
`25
`
`30
`
`35
`
`40
`
`45
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`In order that the manner in which the above-recited and
`
`50
`
`other advantages and objects of the invention are obtained,
`a more particular description of the invention briefly
`described above will be rendered by reference to specific
`embodiments thereof which are illustrated in the appended
`drawings. Understanding that these drawings depict only
`typical embodiments of the invention and are not therefore
`to be considered limiting of its scope, the invention will be
`described and explained with additional specificity and
`detail through the use of the accompanying drawings in
`which:
`
`FIG. 1 illustrates an exemplary system that provides a
`suitable operating environment for the present invention;
`FIG. 2 is a schematic diagram illustrating a suitable
`network environment, including networks operated by dif-
`ferent organizations, in which the invention can be imple-
`mented.
`
`55
`
`60
`
`65
`
`4
`FIG. 3 is a schematic diagram illustrating the route by
`which a message is transmitted from a sending client to a
`recipient client
`in the network environment of FIG. 2
`according to one embodiment.
`FIG. 4 is a schematic diagram showing a bridgehead
`server as it resolves the address of a messaging server
`associated with the recipient client.
`FIG. 5 is a schematic diagram depicting one embodiment
`of a system for maintaining contact lists showing the online
`status of clients in thc nctworkcd cnvironmcnt.
`
`DETAILED DESCRIPTION OF THE
`PREFERRED EMBODIMENTS
`
`The present invention relates to transmission of messages,
`such as real-time or popup messages, from a sending client
`in one network to a recipient client in another network using
`techniques that can operate regardless of whether either or
`both of the networks are protected by a firewall. According
`to one embodiment of the invention, a bridgehead server that
`is accessible through a firewall receives the message from
`the sending client, resolves the address of a [messaging
`server associated with the recipient client, and forwards the
`message to the messaging server. The sending client can
`cause the message to arrive at the recipient client by includ-
`ing the address of the bridgehead server and information
`identifying the recipient client in the message, and does not
`need to know the identity or address of the messaging server.
`The use of the bridgehead server prevents entities outside
`the firewall of the recipient’s network from needing direct
`access to the messaging server, thereby enabling organiza—
`tions to support real-time messaging over the Internet with-
`out compromising organizational or network security.
`The invention is described below by using diagrams to
`illustrate either the structure or processing of embodiments
`used to implement the systems and methods of the present
`invention. Using the diagrams in this manner to present the
`invention should not be construed as limiting of its scope.
`The embodiments of the present invention may comprise a
`computer network adapted to perform the functions dis—
`closed herein or a special purpose or general purpose
`computer including various computer hardware, as dis-
`cussed in greater detail below.
`Embodiments within the scope of the present invention
`also include computer readable media having computer-
`executable instructions or data structures stored thereon.
`
`Such computer-readable media can be any available media
`which can be accessed by a general purpose or special
`purpose computer. By way of example, and not limitation,
`such computer-readable media can comprise RAM, ROM,
`EEPROM, CD-ROM or other optical disk storage, magnetic
`disk storage or other magnetic storage devices, or any other
`medium which can be used to store the desired computer-
`executable instructions or data structures and which can be
`accessed by a general purpose or special purpose computer.
`When information is transferred or provided over a network
`or another communications connection to a computer, the
`computer properly views the connection as a computer-
`readable medium. Thus, such a connection is also properly
`termed a computer-readable medium. Combinations of the
`above should also be included within the scope of computer-
`readable media. Computer—executable instructions
`comprise, for example, instructions and data which cause a
`general purpose computer, special purpose computer, or
`special purpose processing device to perform a certain
`function or group of functions.
`FIG. 1 and the following discussion are intended to
`provide a brief, general description of a suitable computing
`
`8
`
`
`
`US 6,415,318 B1
`
`5
`environment in which the invention may be implemented.
`Although not required, the invention will be described in the
`general context of computer-executable instructions, such as
`program modules, being executed by computers in network
`environments. Generally, program modules include
`routines, programs, objects, components, data structures,
`etc.
`that perform particular tasks or implement particular
`abstract data types. Computer-executable instructions, asso-
`ciated data structures, and program modules represent
`examples of the program code means for executing steps of
`the methods disclosed herein.
`
`10
`
`6
`bus 23. Alternatively, the input devices may be connected by
`other interfaces, such as a parallel port, a game port or a
`universal serial bus (USB). A monitor 47 or another display
`device is also connected to system bus 23 Via an interface,
`such as Video adapter 48. In addition to the monitor, personal
`computers typically include other peripheral output devices
`(not shown), such as speakers and printers.
`The computer 20 may operate in a networked environ-
`ment using logical connections to one or more remote
`computers, such as a remote computer 49. Remote computer
`49 may be another personal computer, a server, a router, a
`network PC, a peer device or other common network node,
`and typically includes many or all of the elements described
`above relative to the computer 20, although only a memory
`storage device 50 has been illustrated in FIG. 1. The logical
`connections depicted in FIG. 1 include a local area network
`(LAN) 51 and a wide area network (WAN) 52 that are
`presented here by way of example and not limitation. Such
`networking environments are commonplace in office-wide
`or enterprise-wide computer networks,
`intranets and the
`Internet.
`
`When used in a LAN networking environment, the com-
`puter 20 is connected to the local network 51 through a
`network interface or adapter 53. When used in a WAN
`networking environment, the computer 20 typically includes
`a modem 54 or other means for establishing communica-
`tions over the wide area network 52, such as the Internet.
`The modem 54, which may be internal or external,
`is
`connected to the system bus 23 Via the serial port interface
`46. In a networked environment, program modules depicted
`relative to the computer 20, or portions thereof, may be
`stored in the remote memory storage device. It will be
`appreciated that the network connections shown are exem-
`plary and other means of establishing a communications link
`between the computers may be used.
`
`Message Transmission
`
`FIG. 2 illustrates an exemplary network environment or
`messaging system in which the invention can be imple-
`mented. In FIG. 2, organization A administers a network
`60A, while organization B administers a network 60B.
`Networks 60A and 60B each have access to the Internet 80
`or another communication network capable of transmitting
`messages between networks. While only two organizations
`and their associated networks are illustrated in FIG. 2, the
`invention is scalable to any number of networks,
`organizations, or clients.
`Network 60A is protected by firewall 62A, while network
`60B is protected by firewall 62B. As used herein, the term
`“firewall” is to be broadly defined. Firewalls are defined to
`include any network node that controls or restricts the ability
`of an entity outside the node to communicate with network
`components inside the node. Firewalls also often restrict the
`ability of network components inside the firewall from
`communicating with outside entities. In the network enVi-
`ronment of FIG. 2, components residing in network 60A are
`inside firewall 62A, while other components of FIG. 2 are
`outside the firewall. Firewalls can be implemented in routers
`or in general purpose or special purpose computing devices
`in ways that are understood by those skilled in the art. While
`FIG. 2 illustrates firewalls 62 being implemented at net-
`works 60A and 60A,
`the principles disclosed herein can
`optionally be practiced in the absence of firewalls. For
`instance, organization B might be an Internet service pro-
`vider that is not protected by a firewall. In this case, the
`bridgehead servers in organization B might redirect con-
`
`Those sldlled in the art will appreciate that the invention
`may be practiced in network computing environments with
`many types of computer system configurations, including
`personal computers, hand-held devices, multi-processor
`systems, microprocessor-based or programmable consumer
`electronics, network PCs, minicomputcrs, mainframe
`computers, and the like. The invention may also be practiced
`in distributed computing environments where tasks are
`performed by local and remote processing devices that are ,
`linked through a communications network. In a distributed
`computing environment, program modules may be located
`in both local and remote memory storage devices. With
`reference to FIG. 1, an exemplary system for implementing
`the invention includes a general purpose computing device
`in the form of a conventional computer 20, including a
`processing unit 21, a system memory 22, and a system bus
`23 that couples various system components including the
`system memory 22 to the processing unit 21. The system bus
`23 may be any of several types of bus structures including
`a memory bus or memory controller, a peripheral bus, and a
`local bus using any of a variety of bus architectures. The
`system memory includes read only memory (ROM) 24 and
`random access memory (RAM) 25. A basic input/output
`system (BIOS) 26, containing the basic routines that help
`transfer information between elements within the computer
`20, such as during start-up, may be stored in ROM 24.
`The computer 20 may also include a magnetic hard disk
`drive 27 for reading from and writing to a magnetic hard
`disk, not shown, a magnetic disk drive 28 for reading from
`or writing to a removable magnetic disk 29, and an optical
`disk drive 30 for reading from or writing to removable
`optical disk 31 such as a CD-ROM or other optical media.
`The magnetic hard disk drive 27, magnetic disk drive 28,
`and optical disk drive 30 are connected to the system bus 23
`by a hard disk drive interface 32, a magnetic disk drive-
`interface 33, and an optical drive interface 34, respectively.
`The drives and their associated computer—readable media
`provide nonvolatile storage of computer-executable
`instructions, data structures, program modules and other
`data for the computer 20. Although the exemplary environ-
`ment described herein employs a magnetic hard disk, a
`removable magnetic disk 29 and a removable optical disk
`31, other types of computer readable media for storing data
`can be used, including magnetic cassettes, flash memory
`cards, digital Video disks, Bernoulli cartridges, RAMs,
`ROMs, and the like.
`A number of program modules may be stored on the hard
`disk, magnetic disk 29, optical disk 31, ROM 24 or RAM 25,
`including an operating system 35, one or more application
`programs 36, other program modules 37, and program data
`38. A user may enter commands and information into the
`computer 20 through keyboard 40, pointing device 42, or
`other input devices (not shown), such as a microphone, joy
`stick, game pad, satellite dish, scanner, or the like. These and
`other input devices are often connected to the processing
`unit 21 through a serial port interface 46 coupled to system
`
`15
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`9
`
`
`
`US 6,415,318 B1
`
`10
`
`15
`
`25
`
`30
`
`35
`
`7
`necting clients to the appropriate messaging servers instead
`of forwarding incoming requests.
`The line segments connecting various network compo—
`nents in FIG. 2 represent
`the hierarchical relationships
`between components, and do not necessarily denote com-
`munication paths. Each network 60 includes one or more
`clients 64 that operate client software for generating, storing
`and displaying messages and for performing any other
`desired functions in relation to the messages. Clients 64 can
`constitute any desired computing or communication device
`that is capable of generating, storing, or displaying mes-
`sages. Moreover, the term “clients” extends to any comput-
`ing or communication device, whether associated with a
`human user,
`fully automated, or some combination of
`human-assisted and automated. The principles disclosed
`herein are generally applicable to processes and systems for
`sending messages from one networked site to another,
`regardless of the identity of the sender or the recipient. For
`example, messaging transmitted according to the invention
`can be between two users operating clients, thereby enabling .
`real-time communication between the users.
`In another
`example, the sending client is a computing or communica-
`tion device that automatically generates messages relating to
`the stock market and transmits them to recipients according
`to the techniques disclosed herein. In general, messages can
`be created according to any desired manner and can be
`transmitted between any desired clients.
`Each client 64 is assigned to one of any number of
`messaging servers 66 that reside in network 60. Messaging
`servers 66 can be substantially any network server that is
`capable of distributing messages to clients 64. As shown in
`FIG. 2, each network 60 can have multiple messaging
`servers 66, with each messaging server being associated
`with multiple clients 64. It is also possible to have a client
`that registers directly to the bridgehead server, foregoing an
`intermediate messaging server.
`In this alternative
`embodiment, the client performs any necessary functions
`that would otherwise be performed by its messaging server.
`In one embodiment, messaging servers 66 monitor the
`current online status of the associated clients 64, manage all
`communication to and from the clients, and store messages
`that are intended for the clients but cannot be immediately
`delivered (e.g., if a recipient client is not online when a
`message is sent). Each client of messaging server 66 can
`have a contact list and a subscriber list. The contact list
`
`40
`
`45
`
`includes all other users that a particular client has designated
`as “correspondents” that the client wishes to regularly keep
`in touch with. The subscriber list includes all other clients
`
`that have designated the particular client as a correspondent.
`Contact lists, subscriber lists, and related functions of mes-
`saging servers will be described in greater detail herein in
`reference to FIG. 5.
`
`Each network 60 further includes one or more bridgehead
`servers 68. The bridgehead servers can also be substantially
`any network server that is adapted to perform the functions
`that will be described in greater detail in reference to FIG.
`4. Bridgehead servers 68 are exposed through the corre-
`sponding firewall 62 in the sense that entities outside the
`network and outside the firewall can address a message to
`the bridgehead server and cause the message to be received
`thereby, Each bridgehead server is associated with a pool of
`one or more of the messaging servers 66. Moreover, any
`given messaging server 66 might receive messages from
`only a single bridgehead server or from multiple bridgehead
`servers, depending on which pool of messaging servers it is
`included in and the composition of the associated pool of
`bridgehead servers. In many cases, all bridgehead servers in
`
`50
`
`55
`
`60
`
`65
`
`10
`
`8
`an organization are capable of passing messages to all
`messaging servers.
`Selected network components of FIG. 2 are designated as
`client A, messaging server A, bridgehead server A, bridge-
`head server B, message server B, and client B. These
`designations are used in FIG. 3 to describe one example of
`the path of a message as it is transmitted from a sending
`client to a recipient client. FIG. 3 represents the network
`environment of FIG. 2, and shows only the network com-
`ponents that are useful in describing the path of the message
`according to a specific example.
`In this example, the user associated with client A (64A)
`decides to send a message 100, which may be an instant or
`real-time message, to client B (64B) at organization B. Thus,
`for purposes of message 100, client A is a sending client,
`while client B is a recipient client. Any given client can
`alternately be a sending client as it transmits a message and
`a recipient client as it receives a message. As shown in FIG.
`3, client B is assigned to messaging server B (’66B), and
`receives messages and, possibly, other network services
`from messaging server B. Because messaging server B and
`other messaging servers 66 can provide general network
`services to their clients, these messaging servers may store
`proprietary or sensitive information. For this or for other
`reasons, organization B may be unwilling to allow entities
`outside firewall 62B to have direct access to messaging
`server B or any other messaging server 66. This can be one
`of the principal reasons for which firewall 62B is used by
`organization B. Moreover, security issues associated with
`messaging servers 66 and other network servers have been
`largel