`
`(12) United States Patent
`US 7,549,153 B2
`(0) Patent No.:
`Butterworthet al.
`Jun. 16, 2009
`(45) Date of Patent:
`
`(54)
`
`(75)
`
`APPARATUS AND METHOD FOR CONTENT
`AND CONTEXT PROCESSING OF WEB
`SERVICE TRAFFIC
`
`Inventors: Paul E. Butterworth, Alamo, CA (US);
`Frederick H. Carter, Fremont, CA
`(US); Joseph R. Cortopassi, Pleasanton,
`CA (US); MichaelS. Schilling, San
`Rafael, CA (US); Charles E. Thurston,
`Kensington, CA (US); Mark T. Wallace,
`San Rafael, CA (US)
`
`(73)
`
`Assignee: Amberpoint, Inc., Oakland, CA (US)
`
`(*)
`
`Notice:
`
`Subject to any disclaimer, the term ofthis
`patent is extended or adjusted under 35
`U.S. 154(b) by 483 days.
`
`(21)
`
`Appl. No.: 10/201,617
`
`(22)
`
`(65)
`
`(51)
`
`(56)
`
`Filed:
`
`Jul. 22, 2002
`
`Prior Publication Data
`
`US 2004/0133656 Al
`
`Jul. 8, 2004
`
`Int. Cl.
`GO6F 3/00
`G06F 17/30
`
`(2006.01)
`(2006.01)
`(2006.01)
`G06F 15/16
`(2006.01)
`G06Q 40/00
`US. CL. oes 719/317; 705/37; 707/4;
`707/85; 707/10; 709/202
`Field of Classification Search................. 719/317,
`719/318, 310, 311, 328; 709/201-207, 223,
`709/217-219, 224; 718/108; 707/110;
`715/513; 705/37
`See application file for complete search history.
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`5,367,635 A
`5,404,523 A
`5,655,081 A
`5,710,918 A
`
`HeeH*
`
`11/1994 Bauer et al. ........0. 709/221
`4/1995 DellaFeraetal.
`. 718/101
`
`8/1997 Bonnell etal.
`...
`- 709/202
`1/1998 Lagarde et al. 0... 707/10
`
`3/1998 Temoshenko ............... 709/202
`5,724,516 A *
`6/1998 Bookmanetal.
`.......... T19/311
`5,761,673 A *
`12/1998 Verkleretal.
`5,850,517 A
`7/2000 Suzuki et al.
`6,085,240 A
`6,317,786 B1* 11/2001 Yamaneetal. .............. 709/224
`6,330,536 Bl
`12/2001 Yatesetal.
`6,549,952 B1*
`4/2003 Plassmannetal. .......... T19/311
`2002/0087374 Al*
`7/2002 Boubezetal. we 705/7
`2003/0004912 Al*
`1/2003 Pantetal. wee 706/47
`
`(Continued)
`OTHER PUBLICATIONS
`
`M. Jones, “Interposilion Agents: Transparenily Inierposing User
`Codeal the Sysiem Interface”, ACM, 1993, pp. 80-93.*
`
`(Continued)
`
`Primary Examiner—Meng-Ai An
`Assistant Examiner—Charles E Anya
`(74) Attorney, Agent, or Firm—Cooley Godward Kronish
`LLP
`
`(57)
`
`ABSTRACT
`
`A method of supplementing the operations performed by a
`web service includes operating an autonomous software
`agent. The autonomous software agent receives a request
`directed to a web service and identifies a web service input
`operation associated with the request. The web service input
`operation is associated with a set of input actions. The input
`actions are executed prior to directing the request to web
`service. The autonomoussoftware agent may also receive a
`response from the web service. A web service output opera-
`tion associated with the responseis identified. The web ser-
`vice output operation is associated with a set of output
`actions. The output actions are executedpriorto directing the
`responseto a client.
`
`11 Claims, 13 Drawing Sheets
`
`
`
`534
`
`Module Layer
`
`600
`
` Autonomous Agent
`606
`
`
`
`610
`
`
`
` Core Layer
`
`
`
`Platform Layer
`
`Module Backplane
`Platform Interface
`
`608N
`
`602
`
`612
`
`604
`
`Booking, Exh. 1046, Page 1
`
`Booking, Exh. 1046, Page 1
`
`
`
`US 7,549,153 B2
` Page 2
`
`U.S. PATENT DOCUMENTS
`
`2005/0193097 Al*
`
`9/2005 Guthrieetal. u.cecee. 709/219
`
`3/2003 Atwaletal. ccc 709/328
`2003/0061404 A1*
`4/2003 Cutler
`.....ceceeeseeereees 705/37
`2003/0069834 A1*
`2003/0188040 Al* 10/2003 Vincent wc.ccceseeseen 709/317
`2003/0233477 A1* 12/2003 Ballinger et al... 709/246
`
`OTHER PUBLICATIONS
`H. Nwana,et al, “ZEUS: A Toolkit and Approach for Building Dis-
`‘tributed Multi-Agent Systems”, ACM,1999, pp. 360-361.*
`* cited by examiner
`
`Booking, Exh. 1046, Page 2
`
`Booking, Exh. 1046, Page 2
`
`
`
`U.S. Patent
`
`Jun. 16, 2009
`
`Sheet 1 of 13
`
`US 7,549,153 B2
`
`104
`
`
`
`Response (XML)
`Service
`
`
`
`102
`
`Client
`
`100
`
`Request (XML)
`
`FIG. 1
`(Prior Art)
`
`Order
`Processing
`Client
`
`Order
`Processing
`Web Service
`
`Credit Check
`WebService
`
`WebService
`
`Inventory
`WebService
`
`Shipping
`
`FIG. 2
`(Prior Art)
`
`Booking, Exh. 1046, Page 3
`
`Booking, Exh. 1046, Page 3
`
`
`
`Network
`
`Interface
`
`a Network
`
`Interface
`
`WebService A
`WebClient
`aee
`WebService N
`
`U.S. Patent
`
`Jun. 16, 2009
`
`Sheet 2 of 13
`
`US 7,549,153 B2
`
`uN
`
`314
`
`Software
`
`FIG, 3
`(Prior Art)
`
`Booking, Exh. 1046, Page 4
`
`Booking, Exh. 1046, Page 4
`
`
`
`U.S. Patent
`
`Jun. 16, 2009
`
`Sheet 3 of 13
`
`US 7,549,153 B2
`
`cOr
`
`Ge
`
`QOTAIAS
`
`OIF
`
`
`
`ysonboyTAX
`
`
`
`(esessoulVOS)
`
`
`
`asuodsayTALK
`
`
`
`(odessoulgVOS)
`
`bOLA
`
`CIP
`
`
`
`asuodseyJAX
`
`
`
`(asessouldVOS)
`
`yuasy
`
`wel)|ssgo
`
`bOF
`
`
`
`ysonboyTWX
`
`
`
`(adessowlqVOS)
`
`NN00+
`
`[0r
`
`Booking, Exh. 1046, Page 5
`
`Booking, Exh. 1046, Page 5
`
`
`
`
`
`
`
`U.S. Patent
`
`Jun. 16, 2009
`
`Sheet 4 of 13
`
`US 7,549,153 B2
`
`500
`
`516
`
`502
`512
`
`504
`
`506
`
`522
`
`a Network
`
`
`
`Interface
`
`CPU
`
`Interface
`
`Network A
`
`
`Web Service A
`‘Web Client
`eeee
`Software
`532N
`
`
`
`WebaeseenN
`amonomeasAgentAAgent A
`
`PoEAutonomousAgentNean
`
`532A
`
`534A
`
`534N
`
`536
`
`537
`
`538
`
`539
`
`518
`
`510
`550
`
`554
`
`CPU
`
`Interface
`Network |
`
`
`Autonomous Agent Al
`
`
`
`Autonomous Agent N1
`
`556
`
`558N
`
`
`Management Console
`Environment
`
`
`
`Monitor Agent
`Web Service N1
`
`Configuration
`Editor
`
`Authorization
`Policy
`Editor
`
`540—
`
`508
`
`544
`
`|rawork
`
`Interface
`
`Web Service Al
`
`FIG. 5
`
`546
`
`S48N
`
`Booking, Exh. 1046, Page 6
`
`Booking, Exh. 1046, Page 6
`
`
`
`U.S. Patent
`
`Jun. 16, 2009
`
`Sheet 5 of 13
`
`US 7,549,153 B2
`
`
`Autonomous Agent
`
`
`
`Module Layer
`
`534
`
`600
`
`606
`
`608A
`
`
`
`Core Layer
`
`
`
`
`
`Platform Layer
`
`604
`
`602
`
`
`
`
`
`
`
`
`
`
`FIG. 7
`
`Booking, Exh. 1046, Page 7
`
`Booking, Exh. 1046, Page 7
`
`
`
`U.S. Patent
`
`Jun. 16, 2009
`
`Sheet 6 of 13
`
`US 7,549,153 B2
`
`VCI8
`
`Ors
`
`FI8
`
`V9T8
`
`rOC8
`
`818
`
`uond
`
`mons
`
`aseygynduy
`
`cO8
`
`b08008
`
`woo
`
`
`
`-aseydyney
`
`908
`
`§DId
`
`Booking, Exh. 1046, Page 8
`
`Booking, Exh. 1046, Page 8
`
`
`
`
`U.S. Patent
`
`Jun. 16, 2009
`
`Sheet 7 of 13
`
`US 7,549,153 B2
`
`C06
`
`Gem
`
`SOTAIOS
`
`ysaonbay
`
`ee,k—aseqgnding>jndjng>aeefFtfft
`eseygynduy
`
`LTJLJLo
`
`PI6
`
`
`
`Booking, Exh. 1046, Page 9
`
`Booking, Exh. 1046, Page 9
`
`
`
`
`
`
`
`
`U.S. Patent
`
`Jun. 16, 2009
`
`Sheet 8 of 13
`
`US 7,549,153 B2
`
`1010
`
`1012
`
`Identify Operation Invoked by Message
`
`Lookup Actions Associated
`with Operation
`
`1014
`
`Build Context Object
`
`.
`
`1016
`
`Yes
`Select Next Action
`
`
`
`Pattern Match?
`
`Yes
`
`Process Action
`
`
`
`
`
`1017
`
`No
`
`1019
`
`
`
`WebService
`
`
`Invocation (10B)
`
`1018
`
`1024
`
`1026
`
`Return Action &
`Processing Information
`
`1027
`
`
`
`1028
`
`Yes
`
`
`Invoke Response
`
`
`Processing (10B)
`
`
`FIG. 10A
`
`Booking, Exh. 1046, Page 10
`
`Booking, Exh. 1046, Page 10
`
`
`
`U.S. Patent
`
`Jun. 16, 2009
`
`Sheet 9 of 13
`
`US 7,549,153 B2
`
`J019
`
`WebService
`Invocation
`From 10A
`
`WebService
`Processing
`
`1030
`
`Response Processing
`From 10A
`
`
`
`
`1031
`
`No
`
`9
`
`1032
`1033
`
`Yes
`
`
` Fault
`Processing
`
`
`(10C)
`
`
`Place Response in
`Context Object
`
`1035
`
`
`Response
`a Fault?
`
`Yes
`
`1037
`
` Is
`
`FIG. 10B
`
`1048
`
`Booking, Exh. 1046, Page 11
`
`Booking, Exh. 1046, Page 11
`
`
`
`U.S. Patent
`
`Jun. 16, 2009
`
`Sheet 10 of 13
`
`US 7,549,153 B2
`
` Fault
`Processing
`
`
`
`
`Return Action &
`Processing Information
`
`
`
`
`Return Response
`
`FIG. 10C
`
`Booking, Exh. 1046, Page 12
`
`Booking, Exh. 1046, Page 12
`
`
`
`U.S. Patent
`
`Jun. 16, 2009
`
`Sheet 11 of 13
`
`US 7,549,153 B2
`
`
`
` yoySityuaN]DG2A\
`
`SUISSADOI
`
`JaplO9ITT
`
`QIAIOSGoMwesy3BUISSIDOI
`
`I9P1OPITT
`UISS9901gplo
`
`
`
`yuasyJOWUOy
`
`s}USUINSU]
`
`
`
`s30’|pue
`
`jussyAIOJUSAU]T
`
`JOWOYJUSUIOIAUY
`
`£ES
`
`BUISSSO0IgJaplO
`
`juasdy
`
`preoqyseq
`
`
`
`vellAsOWAAU]
`
`QOIAIOSGoM
`
`yust[)
`
`cell
`
`IlDI
`
`QOIAIISGaNquasy
`AIOWUSAU]AIOJUSAUT
`
`
`
`SIIl
`
`
`
`clitOTTl
`
`Booking, Exh. 1046, Page 13
`
`Booking, Exh. 1046, Page 13
`
`
`
`
`
`U.S. Patent
`
`Jun. 16
`
`, 2009
`
`Sheet 12 of 13
`
`US 7,549,153 B2
`
`SIAIOSGOAjussy
`
`AIOJWIAUT
`
`SOIAIISG9AA
`
`AIOJUDAU]T JOVIPYUOHeIMBIyUO,ussy wUsT]TO
`
`UOlJBINBIJUOT)
`
`juesy
`
`yusim)|
`juasy0},
`WoT}eINSIYUO-)
`
`ClDid
`
`Booking, Exh. 1046, Page 14
`
`MONpuss
`
`
`
`S}USATPoul],
`
`SOOTAINSGoM
`
`s]USUIT_Nsuy
`
`Sadessoyy
`
`Booking, Exh. 1046, Page 14
`
`
`
`
`
`
`Jun. 16, 2009
`
`Sheet 13 of 13
`
`US 7,549,153 B2
`
`AIOJUSAU] oypyAdjog
`UonezuOyNY 6&S
`
`U.S. Patent
`
`AJOJUSAUT
`
`SOIAINSGOA
`
`VIET
`
`qual]
`
`QOTAIOSGoM
`
`Booking, Exh. 1046, Page 15
`
`Booking, Exh. 1046, Page 15
`
`
`
`
`
`US 7,549,153 B2
`
`1
`APPARATUS AND METHOD FOR CONTENT
`AND CONTEXT PROCESSING OF WEB
`SERVICE TRAFFIC
`
`BRIEF DESCRIPTION OF THE INVENTION
`
`This invention relates generally to web services. More
`particularly, this invention relates to an autonomous agent
`that interacts with a web service to provide context and con-
`text processing of web servicetraffic.
`
`
`
`BACKGROUND OF THE INVENTION
`
`A webservice is a software vehicle that accepts requests
`from a client to perform operations. At this time,
`these
`
`requests are typically in the form of Extensible Markup Lan-
`guage (XML). Although XMLis used as an example, other
`forms of invocation are also possible. In most cases, a web
`service returns a response after processing the request. ‘his
`prior art architecture is illustrated in FIG. 1, which shows a
`webservice client 100 submitting an XML request, as shown
`with arrow 102, to a web service 104. The web service 104
`generates an XML response, as shown with 106.
`Webservices typically operate independentlyof a specific
`computer language, platform,or location. Therefore, a client
`can contact a web service that is written in a different pro-
`gramming language, whichis running ona different platform,
`and is located across a network.
`
`Because webservices can contact each other to request the
`execution of operations, they serve as building blocks for
`distributed systems. Distributed systems composed of web
`services may span multiple machines, a corporate intranet, or
`the Internet. Combining web services from a base environ-
`ment with web services outside the base environment, suchas
`those operated by partners or suppliers, can create complex
`applications, such as shownin FIG.2.
`FIG.2 illustrates a base environment 200 under common
`control, such as an intranet. The base environment 200
`includes an order processing client 202, which accesses an
`order processing web service 204. In fulfilling an order, the
`order processing web service 204 accesses an inventory web
`service 206, which resides in the base environment 200 and a
`credit check web service 208, which is located in a first
`partner environment 210. The inventory web service 206
`accesses a shipping web service 212 in a second partner
`environment 214.
`
`FIG.3 illustrates a prior art networked computer environ-
`ment 300 that supports a distributed web service. The com-
`puter nctwork 300 includes a client computer 302 connected
`to a communication link 304, which may be any wired or
`wireless communication link. Also connected to the commu-
`nication link 304 are a first server 306 and a second server
`308.
`
`The client computer 302 includesa central processing unit
`(CPU) 310 connected to a bus 312. A networkinterface 314 is
`also connected to the bus 312. A memory 316 is also con-
`nected to the bus 312. The memory 316 stores web client
`software 312, which may be used to initiate a web service
`client request using known techniques.
`Theserver 306 includes a network interface 320 connected
`
`to a CPU 324 via a bus 322. A memory 326 is also connected
`to the bus 322. The memory 326 stores individual executable
`programsin the form ofweb services 328A-328N.Server 308
`also includes a networkinterface 330 connected to aCPU 334
`
`via a bus 332. A memory 336 stores individual executable
`programsin the form of web services 338A-338N.
`
`10
`
`15
`
`20
`
`30
`
`35
`
`40
`
`45
`
`60
`
`65
`
`2
`Using web services to integrate both internal and external
`data gives an organization flexibility. An organization can
`focus on creating applications for the business problemsin a
`domain of expertise, and make use of the web services pro-
`vided by other organizations in order to complete a business
`process. An organization can also offer its web services for
`use by other organizations.
`Typical web service architectures are based on the follow-
`ing elements: a transport protocol, amessage formatprotocol,
`a service definition language, and a mechanism to locate the
`webservice. The function ofeach element is described below.
`The transport protocol indicates how messagesare sentto
`the web service. Hl"P (Hypertext ‘lransport Protocol) is the
`most popular transport protocol for web services, as it makes
`possible universal connectivity via the Internet. HTTP sup-
`ports arequest-response messagepattern between a client and
`a webservice. Othertransport protocols can also be used for
`web service communication and for one-way communication
`(ie., a request
`that does not
`require a corresponding
`response).
`Messages between clients and web services may use SOAP
`(Simple Object Access Protocol). SOAPis a protocol speci-
`fication that defines a uniform way ofpassing XML-encoded
`data. SOAPalso defines a way to perform remote procedure
`calls using HTTP(or another transport protocol) as the under-
`lying communication protocol. A client sends a SOAP
`request message to the web service, and receives a SOAP
`response message in return. Using SOAP,
`the service
`requestor and the service provider can communicate as long,
`as they agree on a commontransport protocol (such as HTTP)
`and the message’s SOAPdefinition. This increases the oppor-
`tunities for reuse, as the service places essentially no con-
`straints on the platform, language,or location ofits clients.
`The webservice’s interface is defined in a Web Services
`Description Language (WSDL), which is an interface
`description language defined in XML. In order to announce
`its operations to potential clients, a web service provides a
`WSDI. file that describes the service’s network address, the
`list of operations, and the messagesthat it uses to communi-
`cate. Ifa client has access to the WSDLdefinition for a service
`and the proper security credentials, it can access the service
`with no additional information.
`
`Webservice clients typically locate a WSDLfile using a
`published URL address. Currently, clients typically retrieve a
`WSDL file from a hard-coded URL location. Eventually,
`vendors will publish the URLsfor their web services using
`UDDI (Universal Description, Discovery, and Integration).
`UDDIdefines the interface to a repository that allows web
`service providers to advertise their services and allows clients
`to locate the web services they need.
`The construction of distributed enterprise systems from
`webservices raises management challenges. Although the
`independent language, platform, and location qualities of
`webservices simplify the construction ofdistributed systems,
`these characteristics complicate the problems of monitoring,
`managing. and controlling these systems. The ability to com-
`bine these systems magnifies the management challenge.
`Webservice developers will typically spend their resources
`to implementbusiness functionality rather than to implement
`system managementfacilities, such as security, logging, per-
`formance monitoring, and failover. While some implement-
`ers may incorporate system managementfacilities directly
`into their web services, different organizations may do so
`with incompatible infrastructures, thereby making it impos-
`sible to managea distributed system in a consistent manner.
`Since web service developers are not providing adequate
`system managementtools, individual users must create such
`
`Booking, Exh. 1046, Page 16
`
`Booking, Exh. 1046, Page 16
`
`
`
`US 7,549,153 B2
`
`3
`tools on an ad hoc basis. An organization utilizing a web
`service is generally focused on an underlying business that
`has nothing to do with the web service. Therefore, the web
`service is outside of the core competency of the business.
`Accordingly, hiring individuals to run and deploy the web
`service can be distracting and inefficient. There are various
`web service application platforms that are commercially
`available to makethis process easier. Nevertheless, these web
`service application platformsstill require recoding ofthe base
`webservice in order to expand the functionality of the web
`service. This recoding operation can disrupt the successful
`operation of the base webservice.
`In view ofthe foregoing, it would be desirable to provide a
`mechanism for enhancing the functionality of existing web
`services. Ideally,
`the technique would provide enhanced
`functionality without disrupting the code associated withthe
`underlying web service.
`
`SUMMARYOF THE INVENTION
`
`20
`
`4
`FIG. 5 illustrates a computer network configured to support
`a web service in accordance with an embodimentofthe
`invention.
`FIG.6 illustrates a configuration for an autonomousagent
`that may be utilized in accordance with an embodimentofthe
`invention.
`T'IG.7 illustrates an action list that may be used to imple-
`ment embodiments of the invention.
`FIG.8 illustrates a mapping between a web service opera-
`tion, processing phases associated with the operation, and
`action lists used to implement the processing phases.
`FIG.9 illustrates web service processing paths utilized in
`accordance with an embodimentofthe invention.
`FIGS. 10A-10C illustrate processing steps performed in
`accordance with an embodiment of the invention.
`FIG.11 illustrates the operation of an environment monitor
`implemented in accordance with an embodiment ofthe inven-
`tion.
`FIG. 12 illustrates the operation of an agent configuration
`editor implemented in accordance with an alternate embodi-
`ment of the invention.
`FIG. 13 illustrates the operation of an authorization policy
`editor implemented in accordance with an embodimentofthe
`invention.
`
`Like reference numerals refer to corresponding parts
`throughout the several views of the drawings.
`
`DETAILED DESCRIPTION OF THE INVENTION
`
`The invention includes a method of supplementing the
`operations performed by a webservice. The method utilizes
`an autonomous software agent. The autonomous software
`agent receives a request directed to a web service and identi-
`fies a web service input operation associated with the request.
`The web service input operation is associated with a set of
`input actions. The inputactions are executedpriorto directing
`the request to the web service. The autonomous software
`agent may also receive a response from the web service. A
`FIG.4 illustrates a web service architecture 400 configured
`webservice output operation associated with the responseis
`in accordance with an embodiment of the invention. The web
`identified. The web service output operation is associated
`service architecture 400 includes a web service client 401,
`with a set of output actions. The output actions are executed
`which communicates with a web service 402 through an
`prior to directing the responsetoaclient.
`agent 404. A web service request (e.g., an XML request), as
`The invention also includes a computer readable media to
`shown with arrow 406, is intercepted by agent 404, which
`direct a computerto operate in a specified manner. The com-
`processes the intercepted message in accordance with tech-
`puter readable media has an autonomous software agent con-
`niques described below. The message is then routed to the
`figured to receive a request directed to a webservice,identify
`webservice 402, as shownwith arrow 408. The processing at
`a web service input operation associated with the request,
`webservice 402 is performedin a standard manner, without
`associate the web service input operation with a set of input
`alteration by the agent 404. As shown with arrow 410, the
`actions, and execute the input actionsprior to directing the
`output from the web service 402 is applied to the agent 404,
`request to the web service. The autonomoussoftware agentif
`whichprocesses the outgoing informationin accordance with
`further configured to receive a response from the webservice,
`techniques described below. The output from the agent 404is
`identifies a web service output operation associated with the
`applied to the web service client 401, as shown with arrow
`412.
`response, associates the web service output operation with a
`set of output actions, and executes the output actions prior to
`Thus, the agent 404 sits between the webservice client 401
`directing the responseto a client.
`and the web service 402. In accordance with the invention, the
`The invention facilitates the conversion of web services
`agent 404 is an autonomousentity that interacts with the web
`into enterprise-class web services that are secure, manage-
`service 402, without altering the underlying code associated
`able and dynamically scalable. The invention facilitates the 5
`with the web service 402. The agent 404 provides analyses of
`examination of the content of messages, the modification of
`the content and context of the messages that are routed to and
`the content of messages, the rerouting of messages, and the
`from the web service 402. The agent responds to different
`analysis of the context of messages.
`events, suchas the receipt ofa message, an event occurring, or
`a variable changing value orstate. The agent responds to each
`event by executing instructions called actions. An action
`instructs an agent to perform a unit of processing. Typical
`actions include logging data, sending an email message,
`sending a request to a web service, and updating variables.
`FIG.5 illustrates a computer network 500 configured to
`support the web service of the invention. The network 500
`includesa client computer 502 connected to acommunication
`link 504. Also connected to the communication link 504 are
`various server computers 506, 508, and 510.
`Client computer 502 has a standard configuration, includ-
`ing a CPU 512, a bus 514, and a network interface 516. A
`memory518 stores web client software 520, whichfacilitates
`the initiation of web service requests in a standard manner.
`
`40
`
`45
`
`
`
`BRIEF DESCRIPTION OF THE FIGURI
`
` tdSs
`
`The invention is more fully appreciated in connection with
`the following detailed description taken in conjunction with
`the accompanying drawings, in which:
`FIG.1 illustrates a basic prior art web service architecture.
`FIG. 2 illustrates a distributed web service architecture
`utilized in accordance with the priorart.
`FIG.3 illustrates a prior art computer network supporting
`a webservice.
`
`65
`
`FIG.4 illustrates a web service architecture configured in
`accordance with an embodimentof the invention.
`
`Booking, Exh. 1046, Page 17
`
`Booking, Exh. 1046, Page 17
`
`
`
`US 7,549,153 B2
`
`5
`Server 506 has a network interface 522 connected to a bus
`524, which is connected to a CPU 526. A memory 530 is also
`connected to the bus 524. The memory 530 stores one or more
`prior art web services 532A-532N. In accordance with the
`invention, the memory (also referred to as a computer read-
`able media) 530 also stores one or more autonomousagents
`534A-534N.In one embodimentof the invention, a separate
`autonomous agent is provided for each web service. For
`example, autonomous agent 534A is associated with web
`service 532A. Memory 530 also stores a management console
`536. In one embodiment of the invention, the management
`console includes an environment monitor 537, an agent con-
`figuration editor 538, and an authorization policy editor 539,
`each of which will be discussed below.
`FIG.5 also illustrates a server 508 with a network interface
`540 connected ta a bus 542, which is connected to a CPU 544.
`Amemory 546 is also connected to the bus 542. The memory
`546 stores aset ofweb services 548A-548N. The autonomous
`agents 534A4-534N may be associated with the web services
`548A-548N.Thus, the autonomousagents 534 of the inven-
`tion need not be on the same computeras the web servicethat
`is being enhanced. This point is further amplified in connec-
`tion with server 510 of FIG.5. Server 510 includes a CPU 550
`connected to a network interface 554, via a bus 552. A
`memory 556 is also connected to the bus 552. The memory
`556 stores a set of autonomous agents 558A-558N. The
`autonomous agents may be associated with the web services
`532 on server 506 or the web services 548 on server 508.
`Ascan be appreciated from FIG.5, an agent can operate on
`the same computer (or container) as the web service it man-
`ages, in which caseit can be referred to as an in-server agent.
`Alternately, the agent can operate on a separate computer (or
`container), in which case it can be referred to as an external
`agent. An external agent operates as a web service,
`is
`addressed as a web service, and functions as an agent for a
`different web service. Therefore, an external agent can be
`used to manage the communication with a web service pro-
`vided by a partner organization. An in-server agentis inserted
`into the messaging layer of the web service’s container. For
`example, the agent can be installed as a servlet filter in a
`servlet container. In the case of an in-server agent, existing,
`webservice clients can continue to contact the web service at
`
`10
`
`15
`
`20
`
`30
`
`35
`
`40
`
`45
`
`the original address.
`In thepriorart, such asin the configuration of FIG. 1, a web
`service client 100 contacts a web service 104 byusing the
`information in the web service’s Web Service Description
`Language (WSDL)file. The WSDLfile indicates the URL
`where the web serviceis located,lists the operations that are
`provided bythe web service, and defines the structure of the
`SOAP messages used to request the operations. Thus, WSDL 5
`provides a way for service providers to describe the basic
`format of web service requests over different protocols or
`encodings. WSDI. is used to describe what a web service can
`do, whereit resides, and howto invoke it. Oncethe client has
`this WSDLfile, it can contact the web service and requestits
`operations.
`In the case of the autonomous agents of the invention, a
`client contacts the agent, and the agent redirects requests to
`the web service. Because the agentacts as a client to the web
`service, the agent must know the location of the web service’s
`WSDLfile. The clients do not retrieve the WSDLfile of the
`
`60
`
`webservice, but instead can retrieve the agent’s replacement
`WSDLfile. The agent provides this WSDLfile that showsthe
`same operations and SOAP messagedefinitions asthe origi-
`nal web service’s WSDLfile, but with the URL changed to
`point to the agent. Whenan in-server agent is used,the clients
`continue to access the web service’s WSDLfile directly,
`
`65
`
`6
`becausethe in-server agentis installed in the messaging layer
`of the web service’s container.‘herefore, clients do not need
`to be redirected to the agent’s URL.
`FIG.6 illustrates an exemplary architecture for an autono-
`mous agent 534 of the invention. In one embodiment, the
`autonomous agent 534 includes a module layer 600, a core
`layer 602, and a platform layer 604. The module layer 600
`includes one or more actionlists 606. FIG.6 illustrates action
`lists 608A4-608N.
`
`FIG.7 illustrates an exemplary action list 700. The action
`list 700 includes actions 702A-702N.Eachaction 702 has an
`associated condition 704 and parameter 706. Fach action
`represents an operation that can be performed in connection
`with a message. An individual action is implemented using,
`one or more modules. Thus, FIG.7 illustrates that Action A
`702A is implemented using modules 710A-710N, while
`Action N 702N is implemented using modules 712A-712N.
`Lach module has a different functional attribute. such as a
`security function, a monitoring function, a logging function,
`and the like. Unless the actions are linked, they are not aware
`of one another. Therefore, a failure of one action does not
`impactother actions.
`Returning to FIG. 6, the core layer 602 operates as an
`interface between the module layer 600 and theplatform layer
`604. The core layer 602 may be configured to include a
`module backplane 610 to interface with the module layer 600
`and a platform interface layer 612 to interact with the plat-
`form layer 604. ‘lhe platform layer is implementedas a user-
`selected platform (e.g., JAVA®).
`FIG.8 illustrates the mapping from a message operationto
`processing phases utilized in accordance with the invention,
`which are in turn associated with actions lists. Thus, the
`operation 800 specified within a message is decomposed into
`an input phase 802, an output phase 804, and a fault phase
`806, if necessary. Individual phases orall of the phases may
`be invokedin response to an operation. For each phase, there
`is an associated action list. Thus, FIG. 8 illustrates that the
`input phase 802 hasan associated actionlist 810 with actions
`812A-812N. The output phase 804 has an associated action
`list 814 with actions 816A-816N, while the fault phase 806
`has anassociated action list 818 with actions 820A-820N.
`The actions associated with the invention are more fully
`appreciated in connection with a more specific example. Con-
`sider a stock quote web service that supports different opera-
`tions, such as getting a quote, selling stock, and buying stock.
`The syntax associated with this web service may beasfol-
`lows:
`
`stock_quote_web_service
`operation_1 /o.g., get a quote/
`operation_2 /e.g., sell stock’
`operation__3 /e.g., buy stock/
`
`The basic operations (e.g., operation_1, operation_2, and
`operation_3) associated with the stock_quote_web_service
`are supplemented with the actions of the invention. The
`actions of the invention do not impact the underlying opera-
`tions of the webservice. Instead, they supplement the under-
`lying, operations of the web service without modifying the
`webservice. Thus, the invention provides extended function-
`ality for a web service, without changing the code of the
`underlying web service. The extended functionality can be in
`the form ofprocessing based on message content and context
`processing. The conditions 802 and parameters 804 of the
`actionsfacilitate content and context awareness. An example
`
`Booking, Exh. 1046, Page 18
`
`Booking, Exh. 1046, Page 18
`
`
`
`US 7,549,153 B2
`
`used for processing messages and events in accordance with
`the invention.
`Aspreviously indicated, when a specified message event
`occurs, an agent executes individual processing instructions
`called actions. By way ofexample,the following actions may
`be utilized in accordance with an embodimentof the inven-
`tion.
`Check Access: apply authorization checksto verify that the
`requestor is authorized to make a specific request of the
`web service operation.
`Email: send an email message to someone, such as a sys-
`tem administrator.
`
`10
`
`15
`
`20
`
`30
`
`35
`
`40
`
`45
`
`7
`8
`service 902 with the autonomousagent 904 of the invention
`of content awareness would be the analysis of incoming mes-
`positioned in between the two. ‘lhe autonomous agent 904
`sages to identify all orders over 500 shares. Based upon this
`content awareness, another action could be invoked, such as
`includes an input phase 906, an output phase 908, andafault
`advising a sales person ofa relatively large order. An example
`phase 910. Each phase mayinvoke one or moreactionlists.
`of context awareness would be the tracking of cumulative
`For example, FIG. 9 illustrates the input phase 906 with
`actionlists 912 and 914.
`stock trades in a given time period to determine whether they
`exceed a threshold. As will be discussed below, an “instru-
`Since the agent 904 resides between the client and the web
`ment”can be used as a variable to track the cumulative stock
`service, it can interject processing operations before sending
`trades. Ifthe threshold is exceeded, then anotheraction can be
`the request message to the web service 902 and before return-
`invoked, such as advising a trading manager.
`ing the web service’s responseto the client 900. The autono-
`The invention’s use of actions has now beendescribed. The
`mousagent of the invention can be configured to examine or
`combination of actions into action lists to perform functions
`changethe content of messages, to reroute messages, and/or
`executed by an autonomous agent has also been described.
`control the processing of messages. Actions can be config-
`Attention now turns to cxamplesofdifferent actions that may
`ured (via their conditions) to register their interest in certain
`be specified in accordance withthe invention. The following,
`messagesand are invoked only on messagesin whichthey are
`discussion will also address howactions and actionlists are
`interested. Action lists can also be configured to correlate an
`incoming message at the input phase 906 with an outgoing
`message in the output phase 908.
`Web services sometimes encounter errors during message
`processing. These errors can occur whenthe client formats
`the message incorrectly, when the web service does not
`understand the message, or whenthe web service produces an
`exception. The fault phase 910 handles such errors. For
`example,the fault phase defines a special sequence of actions
`to be performed whenthe agent receives a SOAPfault from
`the web service. For example, request and fault messages may
`be written to a fault log that can be examined bythe system
`administrator.
`In an embodimentofthe invention, the autonomous agent
`also supports timed events, instruments, and authorization
`policies.
`Instruments and authorization p