throbber
a2) United States Patent
`US 7,549,153 B2
`(0) Patent No.:
`Butterworthet al.
`Jun. 16, 2009
`(45) Date of Patent:
`
`US007549153B2
`
`(75)
`
`(54) 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) Filed:
`
`Jul. 22, 2002
`oe
`.
`Prior Publication Data
`US 2004/0133656 Al
`Jul. 8, 2004
`
`(65)
`
`(51)
`
`Int. Cl.
`(2006.01)
`GO6F 3/00
`(2006.01)
`G06F 17/30
`(2006.01)
`G06F 15/16
`(2006.01)
`G060 40/00
`(52) U.S.C. veces 719/317; 705/37; 707/4;
`707/5; 707/10; 709/202
`(58) Field of Classification Search................. 719/317,
`719/318, 310, 311, 328; 709/201-207, 223,
`709/217-219, 224; 718/108; 707/1-10;
`715(513: 705/37
`See application Mile for complete search history.
`.
`References Cited
`US. PATENT DOCUMENTS
`a
`5,367,635 A *
`11/1994 Bauer etal... 709/221
`5,404,523 A *
`4/1995 DellaFeraet al.
`. 718/101
`
`5,655,081 A *
`8/1997 Bonnell etal.
`...
`. 709/202
`1/1998 Lagarde et al. 0... 707/10
`5,710,918 A *
`
`(56)
`
`3/1998 Temoshenko ............... 709/202
`5,724,516 A *
`6/1998 Bookmanetal. ........ 719/311
`5,761,673 A *
`12/1998 Verkler et al.
`5,850,517 A
`7/2000 Suzuki et al.
`6,085,240 A
`6,317,786 B1* 11/2001 Yamane etal.
`6,330,586 Bl
`12/2001 Yateset al.
`.......... 719/311
`6,549,952 B1*
`4/2003 Plassmann etal.
`2002/0087374 A1*
`7/2002 Boubezetal. icc 7105/7
`2003/0004912 A1*
`1/2003 Pant et al. esses 706/47
`
`......0.0.... 709/224
`
`(Continued)
`OTHER PUBLICATIONS
`
`M. Jones, “Interposilion Agents: Transparenily Inierposing User
`Code at the System 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 outputactionsare executed priorto directing the
`responseto a client.
`
`11 Claims, 13 Drawing Sheets
`
`Module Layer
`
`534
`
`600
`
`606
`
`
`Autonomous Agent
`
`
`
`
`
`
`602
`610
`Module Backplane
`Platform Interface
`
`608N
`
`612
`
`604
`
`
` Core Layer
`
`
`
`
`Platform Layer
`
`Page 1 of 22
`
`GOOGLEEXHIBIT 1020
`
`Page 1 of 22
`
`GOOGLE EXHIBIT 1020
`
`

`

`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
`
`Page 2 of 22
`
`Page 2 of 22
`
`

`

`U.S. Patent
`
`Jun. 16, 2009
`
`Sheet 1 of 13
`
`US 7,549,153 B2
`
`102
`
`Request (XML)
`
`
`
`Client
`
`Response (XML)
`
`104
`
`
`
`Service
`
`
`
`100
`
`FIG. 1
`(Prior Art)
`
`Order
`Processing
`Client
`
`Processing
`Web Service
`
`Credit Check
`WebService
`
`WebService
`
`Inventory
`WebService
`
`Shipping
`
`FIG. 2
`(Prior Art)
`
`Page 3 of 22
`
`Page 3 of 22
`
`

`

`U.S. Patent
`
`Jun. 16, 2009
`
`Sheet 2 of 13
`
`US 7,549,153 B2
`
`uN
`
`302
`
`310
`
`314
`
`
`
`Network |
`
`Interface
`
`306
`320
`
`a Network
`
`Interface
`
`
`
`
`316
`WebService A
`Web Client
`aee
`
`Software
`WebService N
`326
`308
`330
`a Network
`
`Interface
`
`
`
`FIG, 3
`(Prior Art)
`
`Page 4 of 22
`
`Page 4 of 22
`
`

`

`U.S. Patent
`
`Jun. 16, 2009
`
`Sheet 3 of 13
`
`US 7,549,153 B2
`
`cOr
`
`Ge
`
`QOTAIAS
`
`OIF
`
`
`
`ysonboyTAX
`
`
`
`(esessoulVOS)
`
`
`
`asuodsayTALK
`
`
`
`(odessoulgVOS)
`
`yuasy
`
`bOLA
`
`CIP
`
`bOF
`
`[0r
`
`NN00+
`
`
`
`ysonboyTWX
`
`
`
`(adessowlqVOS)
`
`
`
`asuodseyJAX
`
`
`
`(asessouldVOS)
`
`DOIAIOSGoM.
`
`ws
`
`Page 5 of 22
`
`Page 5 of 22
`
`
`
`
`

`

`U.S. Patent
`
`Jun. 16, 2009
`
`Sheet 4 of 13
`
`US 7,549,153 B2
`
`500 N\
`
`516
`
`302
`512
`
`504
`Network A
`
`Interface
`
`Software
`
`‘Web Client
`
`518
`
`510
`550
`
`554
`
`CPU
`
`Interface
`Network |
`
`
`
`
`
`Autonomous Agent Al
`Po
`Autonomous Agent N1
`
`556
`
`558N
`
`
`Web Service N1
`
`Configuration
`
`Authorization
`Policy
`Editor
`
`540
`
`508
`
`544
`
`|rawork
`
`Interface
`
`Web Service Al
`PCE
`
`FIG. 5
`
`546
`
`548N
`
`Page 6 of 22
`
`532A
`
`532N
`
`534A
`
`534N
`
`536
`
`537
`
`538
`
`539
`
`506
`522
`
`526
`
`Interface
`
`CPU
`
`Web Service A
`
`
`a Network
`
`
`aW
`
`eb Service N
`PE
`Autonomous Agent A
`
`Page 6 of 22
`
`

`

`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
`
`602
`
`
`
`
`Platform Layer
`
`604
`
`FIG. 6
`
`
`
`
`
`
`Module A
`
`700\
`
`
`
`Ci
`
`
`Ct
`
`
`
`FIG. 7
`
`712A
`
`Page 7 of 22
`
`Page 7 of 22
`
`

`

`U.S. Patent
`
`Jun. 16, 2009
`
`Sheet 6 of 13
`
`US 7,549,153 B2
`
`rOC8
`
`818
`
`norg—]|_Nvonv_
`
`uono
`
`woo
`
`
`
`-aseydyney
`
`908
`
`§DId
`
`VCI8
`
`Ors
`
`FI8
`
`V9T8
`
`uond
`
`aseygynduy
`
`cO8
`
`b08008
`
`Page 8 of 22
`
`Page 8 of 22
`
`
`

`

`U.S. Patent
`
`Jun. 16, 2009
`
`Sheet 7 of 13
`
`US 7,549,153 B2
`
`C06
`
`qeaM
`
`QOIAIOS
`
`ysaonbay
`
`016
`
`asuodsoy806
`ynduy:Ts|}Ld
`
` aseygPtindjng>YTJLLU|tffT
`
`aseygyney|JLS
`
`eseyg
`po
`6DI
`
`C16
`
`PI6
`
`yuosy
`
`406
`
`906
`
`ysonboy
`
`asuodsoy
`
`pe
`
`006
`
`Page 9 of 22
`
`Page 9 of 22
`
`
`
`
`
`
`
`

`

`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
`
`Page 10 of 22
`
`Page 10 of 22
`
`

`

`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
`
`Page 11 of 22
`
`Page 11 of 22
`
`

`

`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
`
`Page 12 of 22
`
`Page 12 of 22
`
`

`

`U.S. Patent
`
`Jun. 16, 2009
`
`Sheet 11 of 13
`
`US 7,549,153 B2
`
`
`
`BITJUAN)GAA
`
`yoy
`
`
`
`vellAsOWAAU]
`
`QOIAIOSGoM
`
`yust[)
`
`cell
`
`IlDI
`
`QIAIOSGoMwosyxBUISSIDOI
`P1OPITT
`
`UISS9901graplg
`
`
`
`yuasyJOWUOy
`
`s}USUINSU]
`
`
`
`s30’|pue
`
`jussyAIOJUSAU]
`
`JOWOYJUSUIOIAUY
`
`£ES
`
`BUISSSO0IgJaplO
`
`juasdy
`
`preoqyseq
`
`QOIAIISGaNquasy
`A1OjUdAU]AIOJWSAU]
`
`
`
`SIIl
`
`
`
`clitOTTl
`
`SUISSADOI
`
`JaplO9ITT
`
`Page 13 of 22
`
`Page 13 of 22
`
`
`
`

`

`U.S. Patent
`
`Jun. 16
`
`, 2009
`
`Sheet 12 of 13
`
`US 7,549,153 B2
`
`UOlJBINBIJUOT)
`
`ClDid
`
`juesy
`
`yqusim7|
`yUOBY0},
`WoT}eINSIYUO-)
`
`Sadessoyy SOOTAIOSGoM JOVIPYUOHeIMBIyUO,ussy
`SOIAIOSGOAjussyMONPUSSoustunnst
`AIO}JUDAUT
`
`
`AIOJWIAUT
`
`SOIAIISG9AA
`
`wUsT]TO
`
`Page 14 of 22
`
`Page 14 of 22
`
`
`
`

`

`U.S. Patent
`
`Jun. 16, 2009
`
`Sheet 13 of 13
`
`US 7,549,153 B2
`
`QOTAIOSGoM
`
`VIET
`AIOJUSAU] oypyAdjog
`
`UonezuOyNY
`
`AJOJUSAUT
`
`SOIAINSGOA
`
`qual]
`
`6&S
`
`Page 15 of 22
`
`Page 15 of 22
`
`
`

`

`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
`
`Page 16 of 22
`
`Page 16 of 22
`
`

`

`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.
`
`Page 17 of 22
`
`Page 17 of 22
`
`

`

`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
`
`Page 18 of 22
`
`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
`
`Page 18 of 22
`
`

`

`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 policies support
`actions, while timed events represent an eventclass.
`A timed event is a form of a module in which actions are
`executed at a regularly scheduled timeinterval. Thus, a timed
`event employs actions, but the actions are not invoked in
`response to a message, as was the case with the previously
`discussed actionlists

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