throbber
(12) United States Patent
`Cheyer et al.
`
`I 1111111111111111 11111 111111111111111 IIIII IIIII 11111 11111 1111111111 11111111
`US006851115Bl
`
`(10) Patent No.:
`(45) Date of Patent:
`
`US 6,851,115 Bl
`Feb.1,2005
`
`(54) SOFTWARE-BASED ARCHITECTURE FOR
`COMMUNICATION AND COOPERATION
`AMONG DISTRIBUTED ELECTRONIC
`AGENTS
`
`(75)
`
`Inventors: Adam J. Cheyer, Palo Alto, CA (US);
`David L. Martin, Santa Clara, CA
`(US)
`
`(73) Assignee: SRI International, Menlo Park, CA
`(US)
`
`( *) Notice:
`
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by O days.
`
`(21) Appl. No.: 09/225,198
`
`(22)
`
`Filed:
`
`Jan. 5, 1999
`
`(51)
`(52)
`(58)
`
`(56)
`
`Int. Cl.7 .................................................. G06F 9/54
`U.S. Cl. ........................ 719/317; 709/202; 717/114
`Field of Search .......................... 719/317; 709/202,
`709/207, 317; 717/114
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`5,638,494 A *
`5,802,396 A *
`5,960,404 A *
`6,047,053 A
`6,212,649 Bl *
`6,216,173 Bl *
`6,256,771 Bl
`6,338,081 Bl *
`6,411,684 Bl
`6,484,155 Bl *
`2001/0039562 Al *
`2003/0167247 Al *
`
`6/1997
`9/1998
`9/1999
`4/2000
`4/2001
`4/2001
`7/2001
`1/2002
`6/2002
`11/2002
`11/2001
`9/2003
`
`. . . . . . . . . . . . . . . 709 /202
`Pinard et al.
`Gray ........................... 710/20
`Chaar et al. . . . . . . . . . . . . . . . . . . 705 /11
`Miner et al.
`Yalowitz et al. .............. 714/31
`Jones et al. . . . . . . . . . . . . . . . . . . . 135 /77
`O'Neil et al.
`Furusawa et al. ........... 709/202
`Cohn et al.
`.................... 706/46
`Kiss et al.
`Sato ........................... 709/202
`Masuoka . ... .. ... ... ... ... .. . 706/46
`
`OTI-IER PUBLICATIONS
`
`Cheyer, Adam. "Mechanisms of Cooperation." Oct. 19,
`1998.*
`De Voe, Deborah. "SRI distributed agents promise flexibil(cid:173)
`ity." Info World. Dec. 30, 1996. *
`
`Sycara, Katia et al. "Distributed Intelligent Agents." IEEE.
`Dec. 1996.*
`Nwana, Hyacinth et al. "Software Agent Technologies". BT
`Technology Journal. 1996. *
`Busetta, Paolo et al. "The BDIM Agent Toolkit Design."
`1997.*
`Mayfield, James et al. "Desiderata for Agent Communica(cid:173)
`tion Languages." Mar. 27-29, 1995. *
`Khedro, Taha et al. Concurrent Endineering through Interop(cid:173)
`erable Software Agents. Aug. 1994.*
`Moran et al. "Multimodal User Interfaces in the Open Agent
`Architecture." Proceedings of the International Conference
`on Intelligent User Interfaces. 6-9/1997.*
`Martin, David et al. "The Open Agent Architecture: A
`Framework for Building Distributed Software Systems."
`Oct. 19, 1998.*
`Wilkins, David et al. "Multiagent Planning Architecture."
`SRI International. Dec. 8, 1997.*
`Moran, Douglas B. and Cheyer, Adam J., "Intelligent
`Agent-based User Interfaces", Article Intelligence center,
`SRI International.
`Martin, David L., Cheyer, Adam J. and Moran, Douglas B.,
`"Building Distributed Software Systems with the Open
`Agent Architecture".
`
`(List continued on next page.)
`
`Primary Examiner-Lewis A. Bullock, Jr.
`(74) Attorney, Agent, or Firm-Perkins Coie LLP
`
`(57)
`
`ABSTRACT
`
`A highly flexible, software-based architecture is disclosed
`for constructing distributed systems. The architecture sup(cid:173)
`ports cooperative task completion by flexible and autono(cid:173)
`mous electronic agents. One or more facilitators are used to
`broker communication and cooperation among the agents.
`The architecture provides for the construction of arbitrarily
`complex goals by users and service-requesting agents. Addi(cid:173)
`tional features include agent-based provision of multi modal
`interfaces, including natural language.
`
`89 Claims, 16 Drawing Sheets
`
`400
`
`402
`
`Facilitator Agent
`
`_ --
`
`--------- -- <'.°418
`
`( ___ --~~•~~:_°~~-~o~~~~~t~~~~~~~I:_L~)
`_____ )
`
`Meta
`Agent
`
`404
`
`406
`
`Modality Agents 414
`
`Application
`
`412
`
`Petitioner Microsoft Corporation - Ex. 1001, p. 1
`
`

`

`US 6,851,115 Bl
`Page 2
`
`OTI-IER PUBLICATIONS
`
`Cohen, Philip R. and Cheyer, Adam, SRI International,
`Wang, Michelle, Stanford University, BAEG, Soon Cheol,
`ETRI, "An Open Agent Architecture".
`Julia, Luc E. and Cheyer,Adam J., SRI International "Coop(cid:173)
`erative Agents and Recognition Systems (CARS) for Drivers
`and Passengers".
`Moran, Douglas B., Cheyer, Adam J., Julia, Luc E., Martin,
`David L., SRI International, and Park, Sangkyu, Electronics
`and Telecommunications Research Institute, "Multimodal
`User Interfaces in the Open Agent Architecture".
`Cheyer, Adam and Lulia, Luc, SRI International "Multimo(cid:173)
`dal Maps: An Agent-based Approach".
`Cutkosky, Mark R., Engelmore, Robert S., Fikes, Richard
`E., Genesereth, Michael R., Gruber, Thomas R., Stanford
`University, Mark, William, Lockheed Palo Alto Research
`Labs, Tenenbaum, Jay M., Weber, Jay C., Enterprise Inte(cid:173)
`gration Technologies, "An Experiment in Integrating Con(cid:173)
`current Engineering Systems".
`
`Martin, David L., Cheyer, Adam, SRI International, LEE,
`Gowang-Lo, ETRI, "Development Tools for the Open
`Agent Architecture", The Practical Application of Intelligent
`Agents and Multi-Agent Technology (PAAM96), London,
`Apr. 1996.
`Cheyer, Adam, Martin, David and Moran, Douglas, "The
`Open Agent architecture™", SRI International, AI Center.
`Dejima, Inc., http://www.dejima.com/.
`Cohen, Philip R, Cheyer, Adam, Wang, Michelle, Stanford
`University, BAEG, Soon Cheol ETRI: "An Open Agent
`Architecture," AAAI Spring Symposium, pp. 1-8, Mar.
`1994.
`Martin, David; Oohama, Hiraki; Moran, Douglas; Cheyer,
`Adam; "Information Brokering in an Agent Architecture,"
`Proceeding of the 2nd International Conference on Practical
`Application of Intelligent Agents & Multi-Agent Technol(cid:173)
`ogy, London, Apr. 1997.
`
`* cited by examiner
`
`Petitioner Microsoft Corporation - Ex. 1001, p. 2
`
`

`

`U.S. Patent
`
`Feb.1,2005
`
`Sheet 1 of 16
`
`US 6,851,115 Bl
`
`100
`
`120
`
`120
`
`120
`
`Client
`Computer
`System
`
`Client
`Computer
`System
`
`Client
`Computer
`System
`
`140
`
`Server
`Computer
`System
`
`Server
`Computer
`System
`
`122
`
`122
`
`Fig. 1
`(Prior Art)
`
`Petitioner Microsoft Corporation - Ex. 1001, p. 3
`
`

`

`U.S. Patent
`
`Feb.1,2005
`
`Sheet 2 of 16
`
`US 6,851,115 Bl
`
`230
`
`Orb
`
`Distributed C~mputing Environment
`
`Fig. 2
`(Prior Art)
`
`Petitioner Microsoft Corporation - Ex. 1001, p. 4
`
`

`

`U.S. Patent
`US. Patent
`
`Feb. 1, 2005
`Feb.1,2005
`
`Sheet 3 of 16
`Sheet 3 of 16
`
`US 6,851,115 Bl
`US 6,851,115 B1
`
`Facilitator
`
`Agent
`
`Fig. 3
`Fig. 3
`
`Petitioner Microsoft Corporation - EX. 1001, p. 5
`
`Petitioner Microsoft Corporation - Ex. 1001, p. 5
`
`

`

`U.S. Patent
`
`Feb.1,2005
`
`Sheet 4 of 16
`
`US 6,851,115 Bl
`
`400
`
`402
`
`Facilitator Agent ~ 416
`Registry
`
`------------ - ---------- __ t ___________ t/418
`Interagent Communication Language (_ICL)
`--
`----
`---------
`
`<.
`... )
`
`,,,.--
`(...,_
`
`--
`
`User
`Interface
`Agent
`
`NL to ICL
`Agent
`
`Application
`Agent
`
`Meta
`Agent
`
`408
`
`414
`
`Modality Agents
`
`410
`
`404
`
`406
`
`API
`Application
`
`412
`
`Fig. 4
`
`Petitioner Microsoft Corporation - Ex. 1001, p. 6
`
`

`

`El7I.I_|_'_I_I_l.l_l_'.IWI_I_I_|?'1I,I_IHI_I_I,I_I_'_l_l_|_lfil_'_l_Hmm>mIUEE
`wEon.u:50_.>u_._:uwm=ScamoELou.moztm=mEcog;
`
`
`
`
`EBUEEUEEmm<:mao
`
`U.S. Patent
`US. Patent
`
`Feb.1,2005
`Feb. 1, 2005
`
`Sheet 5 0f 16
`Sheet 5 of 16
`
`US 6,851,115 Bl
`US 6,851,115 B1
`
`-I I I-
`
`Q)
`
`E
`
`I:
`
`==
`=
`I::
`
`QJ
`L. ::,
`~
`QJ
`.,I
`.c
`u
`L-
`<(
`.µ
`C:
`QJ
`en
`<(
`C
`(lJ
`C.
`0
`
`
`
`0
`0
`
`_.mcocam_mu>2
`
`Petitioner Microsoft Corporation - EX. 1001, p. 7
`
`Petitioner Microsoft Corporation - Ex. 1001, p. 7
`
`

`

`i,-
`~
`(1)
`i,(cid:173)
`1-
`i,-
`(It
`00
`O'I
`rJ'J.
`e
`
`'"""' O'I
`0 ....,
`~ ....
`'JJ. =(cid:173)~
`
`O'I
`
`Ul
`0
`0
`N
`!'"'
`?'
`~
`"'!"j
`
`~ = ......
`
`~ ......
`~
`r:JJ. .
`d .
`
`Telephone
`
`Agent
`
`Agent
`Fax
`
`Agent
`Prilter
`
`Agent
`Speech
`Text To 454
`
`[j]
`
`Preferences
`
`User
`
`~1448
`
`Fig. 6
`
`Notify Agent ~
`~446
`
`Agent
`Calender
`-432
`
`~
`
`426
`
`Parser Agent
`
`Nahrallang.Jage
`~-ill>
`,,~(u
`
`~ •
`Recogrition m
`Agents --.
`
`·1))))
`
`---~· • 408 Agent
`
`Speech
`~JI
`
`}
`
`~ titerface
`ci)/ · Oser
`
`Agent
`Voicernail
`
`420
`
`Database
`
`Agent
`
`~
`
`Agent
`Web
`
`442
`
`:z..1
`Mal Agent
`Becironic
`
`1
`
`I~
`
`\\
`Speaker D
`
`Agent
`
`450
`
`402
`
`FACILITATOR AGENT
`
`Petitioner Microsoft Corporation - Ex. 1001, p. 8
`
`

`

`i,-
`~
`(1)
`i,(cid:173)
`1-
`i,-
`(It
`00
`O'I
`rJ'J.
`e
`
`'"""' O'I
`0 ....,
`-..J
`~ ....
`'JJ. =(cid:173)~
`
`Ul
`0
`0
`N
`!'"'
`?'
`~
`"'!"j
`
`~ = ......
`
`~ ......
`~
`r:JJ. .
`d .
`
`Fig. 7
`
`~
`
`720
`
`Database
`Persistent
`Global
`
`716
`(
`
`714
`(
`
`712
`(
`
`710
`(
`
`708
`(
`
`706
`(
`
`704
`(
`
`Language. etc.
`(Machine Type
`Characteristics
`
`Process
`
`Declarations
`
`Task
`
`Declarations Declarations Declarations
`Capability
`
`Trigger
`
`Data
`
`Agent Registry
`
`/102
`
`Address
`Unique
`
`SymboJic
`
`Name
`
`70
`
`Petitioner Microsoft Corporation - Ex. 1001, p. 9
`
`

`

`U.S. Patent
`
`Feb.1,2005
`
`Sheet 8 of 16
`
`US 6,851,115 Bl
`
`800
`
`802
`
`804
`
`806
`
`808
`
`810
`
`Installer Invokes
`New Client Agent
`
`System Instantiates
`New Client Agent
`
`Facilitator And New
`Client Agent Establish
`Communications Link
`
`Client Agent Transmits
`Profile To Facilitator
`
`Facilitator Registers
`Client Agent
`
`Fig. 8
`
`Cone
`
`812
`
`Petitioner Microsoft Corporation - Ex. 1001, p. 10
`
`

`

`U.S. Patent
`
`Feb.1,2005
`
`Sheet 9 of 16
`
`US 6,851,115 Bl
`
`Start
`
`900
`
`Determine A Goal
`
`902
`
`Construct
`Goal Into
`ICL
`
`Transmit Goal
`To Parent
`Facilitator
`
`Receive
`Results
`
`904
`
`906
`
`908
`
`Done
`
`910
`
`Fig. 9
`
`Petitioner Microsoft Corporation - Ex. 1001, p. 11
`
`

`

`U.S. Patent
`
`Feb.1,2005
`
`Sheet 10 of 16
`
`US 6,851,115 Bl
`
`Start
`
`1000
`
`Receive Request
`For Service
`
`Parse Request
`For Request
`
`1002
`
`1004
`
`No
`
`1006
`
`Yes
`
`Perform
`Service
`
`Return Results
`And/Or Status
`Report
`
`1010
`
`1012
`
`Done
`
`1014
`
`Fig. 10
`
`Return
`Status
`Report
`
`1008
`
`Petitioner Microsoft Corporation - Ex. 1001, p. 12
`
`

`

`U.S. Patent
`
`Feb.1,2005
`
`Sheet 11 of 16
`
`US 6,851,115 Bl
`
`Start
`
`noo
`
`Receive Goal RCGuest
`
`Parse And Interpret
`Goal Request
`
`Construct Goal
`Satisfaction Plan
`
`Determine Required Sub-Ooals
`
`Select Agents Suitable For
`Performing Required Sub-Goals
`
`Transmit Requests To
`Selected Agents
`
`Receive Results
`
`No
`
`1116
`
`1102
`
`1104
`
`1106
`
`1108
`
`mo
`
`1112
`
`1114
`
`Return Results
`
`1118
`
`Done
`
`1120
`
`Fig. 11
`
`Petitioner Microsoft Corporation - Ex. 1001, p. 13
`
`

`

`i,-
`~
`(It
`i,-
`1-
`i,-
`(It
`
`00
`O'I
`rJ'J.
`e
`
`'"""' O'I
`0 ....,
`'"""' N
`~ ....
`'JJ. =-~
`
`Ul
`0
`0
`N
`!'"'
`?'
`~
`"'!"j
`
`~ = ......
`
`~ ......
`~
`r:JJ. .
`d .
`
`Agent
`Prilter
`
`~
`
`!1
`L
`
`Agent
`Speech
`Text To 454
`
`I
`
`Telephone
`
`Agent
`
`Agent
`Fax
`
`Database
`
`Agent
`
`~
`
`Preferences
`
`User
`
`Fig. 12
`
`450
`
`402
`
`FACILITATOR AGENT
`
`I~ 0
`
`Speaker D
`
`Aaent
`
`Recogition
`
`408 Agent
`
`Speech
`"oU ur
`
`JJ
`
`~
`~ • Natlral Language
`
`Parser Agent
`
`~)))
`
`426
`
`Agent
`Volcemal
`
`420
`
`Interface
`
`Agents -
`
`User
`
`Petitioner Microsoft Corporation - Ex. 1001, p. 14
`
`

`

`U.S. Patent
`
`Feb.1,2005
`
`Sheet 13 of 16
`
`US 6,851,115 Bl
`
`X
`
`(cid:141)
`
`r--,
`
`Cr
`[]
`~
`(cid:127) N ..... [Q]
`
`/
`
`C
`ro
`l/}
`
`(cid:141)
`0
`u
`Ill
`·g >-
`IU n:,
`it'°
`
`•
`
`<( u
`o' ~ u
`VI ·o
`~ C
`~
`u.. [m],
`~[i] m
`@] [g]
`[D
`~
`01 Cr
`[E
`~
`~
`0. § ~
`:r: 61
`~
`0 [i]
`3: BB
`[Q]
`C
`,--,
`0 ~
`,.......,
`:p
`N
`.....
`....
`ro
`N
`~
`0 [!] <i.
`L.
`<(
`u
`.0
`u
`ro
`~
`0 ~ 0 [§]
`u
`0
`Ill u
`u
`·o
`C ~ ·a
`VI
`C
`~
`ltl
`L. B
`u.. ~ LL
`:!=
`l/} ~ l/}
`-0
`w
`Q)
`[Q) u::
`
`Q)
`
`~
`"'O
`.£:
`
`0
`
`<(
`
`C
`l'O
`........
`
`C
`ro
`'-
`
`C
`ro
`,..._.
`
`('()
`~
`
`bb
`~
`
`•...-4
`
`Petitioner Microsoft Corporation - Ex. 1001, p. 15
`
`

`

`U.S. Patent
`
`Feb.1,2005
`
`Sheet 14 of 16
`
`US 6,851,115 Bl
`
`Facilitator
`Agent 2
`
`1410
`
`Fig. 14
`
`Petitioner Microsoft Corporation - Ex. 1001, p. 16
`
`

`

`U.S. Patent
`
`Feb.1,2005
`
`Sheet 15 of 16
`
`US 6,851,115 Bl
`
`1500
`
`/ 1502
`Facilitator
`
`I
`
`I
`
`I
`I
`
`I
`
`I
`
`I
`
`I
`
`I
`
`, ,
`
`I
`I
`
`I
`I
`I
`
`I
`
`I
`
`/
`
`1508
`
`I ,
`
`I
`I
`
`1504
`
`Facilitator
`
`1510
`
`1516
`
`1514
`
`Fig. 15
`
`' ' ' ' ' ' ' ·\
`' ' ' ' '
`
`1506
`
`\
`
`Facilitator
`
`'
`
`[]
`
`Petitioner Microsoft Corporation - Ex. 1001, p. 17
`
`

`

`i,-
`~
`(1)
`i,(cid:173)
`1-
`i,-
`(It
`00
`O'I
`rJ'J.
`e
`
`'"""' O'I
`0 ....,
`'"""' O'I
`~ ....
`'JJ. =(cid:173)~
`
`Ul
`0
`0
`N
`!'"'
`?'
`~
`"'!"j
`
`~ = ......
`
`~ ......
`~
`r:JJ. .
`d .
`
`Figure 16
`
`1614
`
`1618
`
`1612
`
`Agent IE
`
`1616
`
`Replicated
`
`161
`
`Planner
`
`Registry &
`
`1604
`
`1
`
`Petitioner Microsoft Corporation - Ex. 1001, p. 18
`
`

`

`US 6,851,115 Bl
`
`1
`SOFTWARE-BASED ARCHITECTURE FOR
`COMMUNICATION AND COOPERATION
`AMONG DISTRIBUTED ELECTRONIC
`AGENTS
`
`A compact disk containing a computer program listing
`has been provided in duplicate ( copy 1 and copy 2 of the
`compact disk are identical). The computer program listing in
`the compact disk is incorporated by reference herein. The
`compact disk contains files with their names, size and date 10
`of creation as follow:
`
`5
`
`2
`documents, and audio and video streams. With the popular(cid:173)
`ization of programming languages such as JAVA, data
`transported between local and remote machines may also
`include programs that can be downloaded and executed on
`the local machine. There is an ever increasing reliance on
`networked computing, necessitating software design
`approaches that allow for flexible composition of distributed
`processing elements in a dynamically changing and rela-
`tively unstable environment.
`In an increasing variety of domains, application designers
`and users are coming to expect the deployment of smarter,
`longer-lived, more autonomous, software applications. Push
`technology, persistent monitoring of information sources,
`and the maintenance of user models, allowing for person-
`15 alized responses and sharing of preferences, are examples of
`the simplest manifestations of this trend. Commercial enter(cid:173)
`prises are introducing significantly more advanced
`approaches, in many cases employing recent research results
`from artificial intelligence, data mining, machine learning,
`20 and other fields.
`More than ever before, the increasing complexity of
`systems, the development of new technologies, and the
`availability of multimedia material and environments are
`creating a demand for more accessible and intuitive user
`25 interfaces. Autonomous, distributed, multi-component sys(cid:173)
`tems providing sophisticated services will no longer lend
`themselves to the familiar "direct manipulation" model of
`interaction, in which an individual user masters a fixed
`selection of commands provided by a single application.
`30 Ubiquitous computing, in networked environments, has
`brought about a situation in which the typical user of many
`software services is likely to be a non-expert, who may
`access a given service infrequently or only a few times.
`Accommodating such usage patterns calls for new
`35 approaches, fortunately, input modalities now becoming
`widely available, such as speech recognition and pen-based
`handwriting/gesture recognition, and the ability to manage
`the presentation of systems' responses by using multiple
`media provide an opportunity to fashion a style of human-
`40 computer interaction that draws much more heavily on our
`experience with human-human interactions.
`2. Prior Related Art
`Existing approaches and technologies for distributed
`computing include to distributed objects, mobile objects,
`45 blackboard-style architectures, and agent-based software
`engineering.
`The Distributed Object Approach
`Object-oriented languages, such as C++ or JAVA, provide
`significant advances over standard procedural languages
`with respect to the reusability and modularity of code:
`encapsulation, inheritance and polymorhpism. Encapsula-
`tion encourages the creation of library interfaces that mini(cid:173)
`mize dependencies on underlying algorithms or data struc(cid:173)
`tures. Changes to programming internals can be made at a
`55 later date with requiring modifications to the code that uses
`the library. Inheritance permits the extension and modifica(cid:173)
`tion of a library of routines and data without requiring source
`code to the original library. Polymorphism allows one body
`of code to work on an arbitrary number of data types. For the
`60 sake of simplicity traditional objects may be seen to contain
`both methods and data. Methods provide the mechanisms by
`which the internal state of an object may be modified or by
`which communication may occur with another object or by
`which the instantiation or removal of objects may be
`65 directed.
`With reference to FIG. 2, a distributed object technology
`based around an Object Request Broker will now be
`
`File Name
`
`Size
`
`Creation Date Last Date
`
`oaa.pl
`fac.pl
`compound.pl
`com_tcp.pl
`translations. pl
`
`159,613 bytes
`52,733 bytes
`42,937 bytes
`18,010 bytes
`19,583 bytes
`
`1996/10/08
`1997/04/24
`1996/12/11
`1998/02/10
`1998/01/29
`
`1998/12/23
`1998/05/06
`1998/04/10
`1998/05/06
`1998/12/23
`
`BACKGROUND OF THE INVENTION
`1. Field of the Invention
`The present invention is related to distributed computing
`environments and the completion of tasks within such
`environments. In particular, the present invention teaches a
`variety of software-based architectures for communication
`and cooperation among distributed electronic agents. Cer(cid:173)
`tain embodiments teach interagent communication lan(cid:173)
`guages enabling client agents to make requests in the form
`of arbitrarily complex goal expressions that are solved
`through facilitation by a facilitator agent.
`Context and Motivation for Distributed Software Systems
`The evolution of models for the design and construction
`of distributed software systems is being driven forward by
`several closely interrelated trends: the adoption of a net(cid:173)
`worked computing model, rapidly rising expectations for
`smarter, longer-lived, more autonomous software applica(cid:173)
`tions and an ever increasing demand for more accessible and
`intuitive user interfaces.
`Prior Art FIG. 1 illustrates a networked computing model
`100 having a plurality of client and server computer systems
`120 and 122 coupled together over a physical transport
`mechanism 140. The adoption of the networked computing
`model 100 has lead to a greatly increased reliance on
`distributed sites for both data and processing resources.
`Systems such as the networked computing model 100 are
`based upon at least one physical transport mechanism 140
`coupling the multiple computer systems 120 and 122 to 50
`support the transfer of information between these comput-
`ers.
`Some of these computers basically support using the
`network and are known as client computers (clients). Some
`of these computers provide resource to other computers and
`are known as server computers (servers). The servers 122
`can vary greatly in the resources they possess, access they
`provide and services made available to other computers
`across a network. Servers may service other servers as well
`as clients.
`The Internet is a computing system based upon this
`network computing model. The Internet is continually
`growing, stimulating a paradigm shift for computing away
`from requiring all relevant data and programs to reside on
`the user's desktop machine. The data now routinely accessed
`from computers spread around the world has become
`increasingly rich in format, comprising multimedia
`
`Petitioner Microsoft Corporation - Ex. 1001, p. 19
`
`

`

`US 6,851,115 Bl
`
`4
`
`3
`described. Whereas "standard" object-oriented program(cid:173)
`ming (OOP) languages can be used to build monolithic
`programs out of many object building blocks, distributed
`object technologies (DOOP) allow the creation of programs
`whose components may be spread across multiple machines. 5
`As shown in FIG. 2, an object system 200 includes client
`objects 210 and server objects 220. To implement a client(cid:173)
`server relationship between objects, the distributed object
`system 200 uses a registry mechanism (CORBA's registry is
`called an object Request Broker, or ORB) 230 to store the 10
`interface descriptions of available objects. Through the
`services of the ORB 230, a client can transparently invoke
`a method on a remote server object. The ORB 230 is then
`responsible for finding the object 220 that can implement the
`request, passing it the parameters, invoking its method, and 15
`returning the results. In the most sophisticated systems, the
`client 210 does not have to be aware of where the object is
`located, its programming language, its operating system, or
`any other system aspects that are not part of the server
`object's interface.
`Although distributed objects offer a powerful paradigm
`for creating networked applications, certain aspects of the
`approach are not perfectly tailored to the constantly chang(cid:173)
`ing environment of the Internet. A major restriction of the
`DOOP approach is that the interactions among objects are 25
`fixed through explicitly coded instructions by the applica(cid:173)
`tion developer. It is often difficult to reuse an object in a new
`application without bringing along all its inherent depen(cid:173)
`dencies on other objects ( embedded interface definitions and
`explicit method calls). Another restriction of the DOOP 30
`approach is the result of its reliance on a remote procedure
`call (RPC) style of communication. Although easy to debug,
`this single thread of execution model does not facilitate
`programming to exploit the potential for parallel computa(cid:173)
`tion that one would expect in a distributed environment. In 35
`addition, RPC uses a blocking (synchronous) scheme that
`does not scale well for high-volume transactions.
`Mobile Objects
`Mobile objects, sometimes called mobile agents, are bits
`of code that can move to another execution site (presumably 40
`on a different machine) under their own programmatic
`control, where they can then interact with the local envi(cid:173)
`ronment. For certain types of problems, the mobile object
`paradigm offers advantages over more traditional distributed
`object approaches. These advantages include network band- 45
`width and parallelism. Network bandwidth advantages exist
`for some database queries or electronic commerce
`applications, where it is more efficient to perform tests on
`data by bringing the tests to the data than by bringing large
`amounts of data to the testing program. Parallelism advan- 50
`tages include situations in which mobile agents can be
`spawned in parallel to accomplish many tasks at once.
`Some of the disadvantages and inconveniences of the
`mobile agent approach include the programmatic specificity
`of the agent interactions, lack of coordination support 55
`between participant agents and execution environment
`irregularities regarding specific programming languages
`supported by host processors upon which agents reside. In a
`fashion similar to that of DOOP programming, an agent
`developer must programmatically specify where to go and 60
`how to interact with the target environment. There is gen(cid:173)
`erally little coordination support to encourage interactions
`among multiple (mobile) participants. Agents must be writ(cid:173)
`ten in the programming language supported by the execution
`environment, whereas many other distributed technologies 65
`support heterogeneous communities of components, written
`in diverse programming languages.
`
`Blackboard Architectures
`Blackboard architectures typically allow multiple pro-
`cesses to communicate by reading and writing tuples from a
`global data store. Each process can watch for items of
`interest, perform computations based on the state of the
`blackboard, and then add partial results or queries that other
`processes can consider. Blackboard architectures provide a
`flexible framework for problem solving by a dynamic com(cid:173)
`munity of distributed processes. A blackboard architecture
`provides one solution to eliminating the tightly bound inter(cid:173)
`action links that some of the other distributed technologies
`require during interprocess communication. This advantage
`can also be a disadvantage: although a programmer does not
`need to refer to a specific process during computation, the
`framework does not provide programmatic control for doing
`so in cases where this would be practical.
`Agent-based Software Engineering
`Several research communities have approached distrib(cid:173)
`uted computing by casting it as a problem of modeling
`20 communication and cooperation among autonomous
`entities, or agents. Effective communication among inde(cid:173)
`pendent agents requires four components: (1) a transport
`mechanism carrying messages in an asynchronous fashion,
`(2) an interaction protocol defining various types of com(cid:173)
`munication interchange and their social implications (for
`instance, a response is expected of a question), (3) a content
`language permitting the expression and interpretation of
`utterances, and ( 4) an agreed-upon set of shared vocabulary
`and meaning for concepts often called an ontology). Such
`mechanisms permit a much richer style of interaction among
`participants than can be expressed using a distributed
`object's RPC model or a blackboard architecture's central(cid:173)
`ized exchange approach.
`Agent-based systems have shown much promise for
`flexible, fault-tolerant, distributed problem solving. Several
`agent-based projects have helped to evolve the notion of
`facilitation. However, existing agent-based technologies and
`architectures are typically very limited in the extent to which
`agents can specify complex goals or influence the strategies
`used by the facilitator. Further, such prior systems are not
`sufficiently attuned to the importance of integrating human
`agents (i.e., users) through natural language and other
`human-oriented user interface technologies.
`The initial version of SRI International's Open Agent
`Architecture TM ("OAA®") technology provided only a very
`limited mechanism for dealing with compound goals. Fixed
`formats were available for specifying a flat list of either
`conjoined (AND) sub-goals or disjoined (OR) sub-goals; in
`both cases, parallel goal solving was hard-wired in, and only
`a single set of parameters for the entire list could be
`specified. More complex goal expressions involving (for
`example) combinations of different boolean connectors,
`nested expressions, or conditionally interdependent ("IF ...
`THEN") goals were not supported. Further, system scalabil(cid:173)
`ity was not adequately addressed in this prior work.
`
`SUMMARY OF INVENTION
`A first embodiment of the present invention discloses a
`highly flexible, software-based architecture for constructing
`distributed systems. The architecture supports cooperative
`task completion by flexible, dynamic configurations of
`autonomous electronic agents. Communication and coop(cid:173)
`eration between agents are brokered by one or more
`facilitators, which are responsible for matching requests,
`from users and agents, with descriptions of the capabilities
`of other agents. It is not generally required that a user or
`agent know the identities, locations, or number of other
`
`Petitioner Microsoft Corporation - Ex. 1001, p. 20
`
`

`

`US 6,851,115 Bl
`
`5
`agents involved in satisfying a request, and relatively mini(cid:173)
`mal effort is involved in incorporating new agents and
`"wrapping" legacy applications. Extreme flexibility is
`achieved through an architecture organized around the dec(cid:173)
`laration of capabilities by service-providing agents, the 5
`construction of arbitrarily complex goals by users and
`service-requesting agents, and the role of facilitators in
`delegating and coordinating the satisfaction of these goals,
`subject to advice and constraints that may accompany them.
`Additional mechanisms and features include facilities for
`creating and maintaining shared repositories of data; the use
`of triggers to instantiate commitments within and between
`agents; agent-based provision of multi-modal user
`interfaces, including natural language; and built-in support
`for including the user as a privileged member of the agent
`community. Specific embodiments providing enhanced scal(cid:173)
`ability are also described.
`
`10
`
`25
`
`6
`DETAILED DESCRIPTION OF THE
`INVENTION
`FIG. 3 illustrates a distributed agent system 300 in accor(cid:173)
`dance with one embodiment of the present invention. The
`agent system 300 includes a facilitator agent 310 and a
`plurality of agents 320. The illustration of FIG. 3 provides
`a high level view of one simple system structure contem(cid:173)
`plated by the present invention. The facilitator agent 310 is
`in essence the "parent" facilitator for its "children" agents
`320. The agents 320 forward service requests to the facili(cid:173)
`tator agent 310. The facilitator agent 310 interprets these
`requests, organizing a set of goals which are then delegated
`to appropriate agents for task completion.
`The system 300 of FIG. 3 can be expanded upon and
`15 modified in a variety of ways consistent with the present
`invention. For example, the agent system 300 can be dis(cid:173)
`tributed across a computer network such as that illustrated in
`FIG. 1. The facilitator agent 310 may itself have its func(cid:173)
`tionality distributed across several different computing plat-
`20 forms. The agents 320 may engage in interagent communi(cid:173)
`cation (also called peer to peer communications). Several
`different systems 300 may be coupled together for enhanced
`performance. These and a variety of other structural con(cid:173)
`figurations are described below in greater detail.
`FIG. 4 presents the structure typical of a small system 400
`in one embodiment of the present invention, showing user
`interface agents 408, several application agents 404 and
`meta-agents 406, the system 400 organized as a community
`of peers by their common relationship to a facilitator agent
`30 402. As will be appreciated, FIG. 4 places more structure
`upon the system 400 than shown in FIG. 3, but both are valid
`representations of structures of the present invention. The
`facilitator 402 is a specialized server agent that is respon(cid:173)
`sible for coordinating agent communications and coopera-
`35 tive problem-solving. The facilitator 402 may also provide a
`global data store for its client agents, allowing them to adopt
`a blackboard style of interaction. Note that certain advan(cid:173)
`tages are found in utilizing two or more facilitator agents
`within the system 400. For example, larger systems can be
`40 assembled from multiple facilitator/client groups, each hav(cid:173)
`ing the sort of structure shown in FIG. 4. All agents that are
`not facilitators are referred to herein generically as client
`agents-so called because each acts (in some respects) as a
`client of some facilitator, which provides communication
`45 and other essential services for the client.
`The variety of possible client agents is essentially unlim(cid:173)
`ited. Some typical categories of client agents would include
`application agents 404, meta-agents 406, and user interface
`agents 408, as depicted in FIG. 4. Application agents 404
`50 denote specialists that provide a collection of services of a
`particular sort. These services could be domain-independent
`technologies (such as speech recognition, natural language
`processing 410, email, and some forms of data retrieval and
`data mining) or user-specific or domain-specific (such as a
`travel planning and reservations agent). Application agents
`may be based on legacy applications or libraries, in which
`case the agent may be little more than a wrapper that calls
`a pre-existing API 412, for example. Meta-agents 406 are
`agents whose role is to assist the facilitator agent 402 in
`coordinating the activities of other agents. While the facili(cid:173)
`tator 402 possesses domain-independent coordination
`strategies, meta-agents 406 can augment these by using
`domain- and application-specific knowledge or reasoning
`(including but not limited to rules, learning algorithms and
`65 planning).
`With further reference to FIG. 4, user interface agents 408
`can play an extremely important and interesting role in
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`Prior Art
`Prior Art FIG. 1 depicts a networked computing model;
`Prior Art FIG. 2 depicts a distributed object technology
`based around an Object Resource Broker;
`Examples of the Invention
`FIG. 3 depicts a distributed agent system based around a
`facilitator agent;
`FIG. 4 presents a structure typical of one small system of
`the present invention;
`FIG. 5 depicts an Automated Office system implemented
`in accordance

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket