ࡱ> [Z3( b/ 0DTimes New Roman V| )0Y 0DWingdingsRoman V| )0Y 0$ ` .  @n?" dd@  @@`` xP-     '. 0e0e     A 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||S"@=uʚ;2Nʚ;g4gdgd )0dppp@ <4!d!d 0D W<4dddd 0D W <4BdBdy 0D___PPT9 (4?&, GSAW 2004O =+Telepresent AgentscA New Paradigm for Sharing Information in Networked Systems Russ Abbott The Aerospace Corporation. *d< &"Networks, Locales, and AgentsCA Network is a collection of nodes linked by communication channelsLocaleA Locale is a computer application that runs on a single node on a network. Most traditional computer applications can run as a Locale. The term Locale is used to suggest a sense of place or a space inside of which something is happening. The term application doesn t convey a similar sense. A Locale Realization is the execution of a Locale on a Node.`ZZ=Z a !=The Problem(s)>One often wants to have two realizations of a Locale synchronized. A web-based multi-player game has multiple realizations of a locale running simultaneously on many computers around the world. They must be consistent with each other. A banking network has two realizations of a customer s account when the customer is using an ATM, one in the bank s database, and one at the ATM. These must be mutually consistent.*CZ]ZC]The Problem(s) (cont.)4Communicating among multiple locales Most web-based and network-based applications consist of multiple different locales that communicate with each other. The problem is not so much maintaining consistency between two realizations of the same locale as transferring information between two different locales.&%% The ideal solutionIf information could in some magical way be in multiple places at once without one having to worry about how it got there, the problem of sending data between locales would be eliminated. An ideal conceptual solutionImagine an object in a programming language that contained the information that one wanted to communicate and was simultaneously accessible from all contexts in which one wanted that information to be available. This is an ideal solution because it relieves the developer of having to think about how to share data among multiple locales. All locales simply have access to the data.Z2 !   2Even an ideal solution does not solve all problemsSuch a magical object would not solve the problem of processing time series data. One still has to know that one should read the magical object repeatedly as time passes and as the values it contains change and do something as the data values change.&zz GNon-magical approaches to sharing information among locale realizationsMessage passing, e.g., over sockets. One can create a connection between nodes and pass objects over that connection. Message services. This is an extension of message passing in which Locales can publish message streams and other locales can subscribe to those message streams. Useful as such mechanisms are, they do not relieve the developer of having to think about how to share data among locales.DZ$R{  #More information sharing mechanismsRemote Procedure Calls. These are really specialized paired messages with blocking. Shared databases. In some sense these are the magical objects we were talking about. Everyone who cares can read the values at any time. With Linda (a fairly old technology, once called JavaSpaces) one can unify with the data and not have to read it in SQL. Remote Procedure Calls tend to be too low level (and blocking doesn t help). Shared databases often impose significant overhead and in some cases require twice the message traffic.vy=yE/ #More information sharing mechanismsInteroperability standards. These define message formats ahead of time. Agent communication languages. A generalization of interoperability standards. Instead of a data format for messages, one now has a language in which one can communicate in a message. These both have the problem of either being too rigid or adding too little extra value everything is text. Also, they don t solve the basic problem of helping the developer not worry about sharing information.n(Gg-'GgAgents A software agent is an object with a thread that controls its own boundaries, i.e., that exposes only a minimal API. Although not rigidly defined, the method calls exposed by an agent are only getter methods, methods that return information about the agent, and poster methods, methods that provide information to the agent. Methods that direct the agent to take an action are not available. Since agents act on the basis of information that is provided to them, it may be difficult to formalize the intended distinction.~ZZCZZ@9C Telepresent AgentsiNormally one thinks of agents as being located within a single locale realization. An alternative is to think of agents as spanning locale realizations. There is no communication issue because agents know how to talk to themselves internally! In addition, agents can be active so that when something changes in one locale realization, they can act in the other.*j y  An analogySuppose you wanted to influence what is happening in an organization. Two choices: Send a message to the organization s public relation s office and hope for the best. Talk to a friend on the organization s board of directors. Which would you chose?@T" T"Your friend, the telepresent agentxYour friend is a telepresent agent. S/he contains information (your wish) S/he operates in two locales and makes your information visible in both. as your friend. as a member of the organization s board of directors. The information moves from one locale to another when your friend shifts from one role to another.\%oFc %oFc Telepresent AgentsA telepresent agent is a software agent (an object with a thread) that exists simultaneously in two locale realizations. Synchronization of the two instances is done under-the-covers by the implementation mechanism. The developer doesn t have to worry about it. State variables values are updated in both. Method calls in one are performed in both (when requested).nZnETelepresent Agents encapsulate a link between two locale realizationsFF(A single object simultaneously present in two locale realizations It is the job of the implementation mechanism, not the system developer, to ensure that this remains true.*   ` ` ̙33` 333MMM` ff3333f` f` f` 3` 333` 333>?" dd@,|?" dd@   " @ ` n?" dd@   @@``PR    @ ` ` p>>   ,@(  4N F0P, + "0FP,t  6"F0P,n2  0"Pn2  0f"`n2  0",l   6"r0:nf2 # 0"]f2 $ 0"Df2 % 0"  6 P  T Click to edit Master title style! !  00   RClick to edit Master text styles Second level Third level Fourth level Fifth level!     S  0l `0   >*  0༏    @*  0 P  @*  NGHuIV"H  0޽h ? # 333 Default Design 0 zr@D (  D D 0n" P   " P*   D 0s"    " R*  d D c $ ?  " D 0p"  @ " RClick to edit Master text styles Second level Third level Fourth level Fifth level!     S D 6{" `P  " P*   D 6" `  " R*  H D 0޽h ? ̙33 0$(  r  S `0  r  S p@P   H  0޽h ? ̙33P    P (   x  c $"P  " x  c $h" " P8 P  P`   0`0P`   00 P `   0@0``   0 `   0  `   0P p f"   6HI p r  B BZGLHyKILpP r  B BZG`HI```l"  <HI ` P p l"  B <GH-I@ l"  B <ZHI p 0f"   6H ZIp` @ l  <GH_I0 H  0޽h ?                    ̙33  `$(  r  S "P  " r  S "  " H  0޽h ? ̙33  p$(  r  S 0P   r  S Ώ  H  0޽h ? ̙33  $(  r  S "   r  S Ϗ@  H  0޽h ? ̙33  $$(  $r $ S "@   " r $ S A"  " H $ 0޽h ? ̙33  (0(  (x ( c $ġ"`  " x ( c $l"p " H ( 0޽h ? ̙33  00(  0x 0 c $\"P  " x 0 c $"0 " H 0 0޽h ? ̙33   $(   r  S "  " r  S "@0 " H  0޽h ? ̙33  ,$(  ,r , S E``   r , S E0  H , 0޽h ? ̙33   40(  4x 4 c $|`   x 4 c $d`P`   H 4 0޽h ? ̙33  $(  r  S @   r  S p   H  0޽h ? ̙33  "&8(  8r 8 S ܭ@   r 8 S `    8 P &8 PPf 8 6`0Pf 8 60 P f 8 6@0`f 8 6 f  8 6  f  8 6P p x"  8 HGHkI@ @ x2  8 HGH+I;@ ppx" 8 HGH`IF(0 @ x" 8 HGH I\@ x2 8 HGHL,IF@0 @ l" 8 <H I% Z2 8 s *0 p Z2 8 s * `p Z2 8 s *  Z2 8 s *` p Z2 8 s *fP 0 Z2 8 s *  Z2 8 s *̙` Z2 8 s * Z2 8 s *f@ Z2 8 s *̙@  Z2 8 s *3f@ @ Z2  8 s *3fp  Z2 !8 s *@  Z2 "8 s *@pZ2 #8 s *p0Z2 %8 s *px  8B HZG0HI00r" 8 BZHSIҔPp H 8 0޽h ? 88 8!8"8 8#88 8888888888888%888 333  <:(  <r < S 47P  7  < S " @ 7 "p`PpH < 0޽h ? 333  @F(  @x @ c $"   "  @ c $"  " "p`PpH @ 0޽h ? 333   H$(  Hr H S P   r H S x#@`  H H 0޽h ? 333   0-Lp(  Lx L c $2"P  " x L c $(}" P " 8   -L  @ pz ,Lf  L 6pz`2 L 0!z<`2 L 0f0f2 L 6g TT 0:  (L#   f L 60: `2 L 0] `2 L 0 r f2  L 6g  2 +L Tzg ?"iH L 0޽h ? 333rT@3$GIhRcTT@V^,XZ\_aeuwbAy{Oh+'0 `h  Telepresent Agents Russ Abbott Russ Abbott48sMicrosoft PowerPointP@ @@pl=NG g  ZB& &&#TNPP`2OMi & TNPP &&TNPP    --- !---&3&5-3-3--&--%--f------3$--&&7-3-5--&------'----.--&--$  $ $--&-- q@--w@N% ?[wdw0- @Times New Roman[wdw0- ."2 Telepresent Agents#*.--9aPh-- @Times New Roman[wdw0- .B2 ~'A New Paradigm for Sharing Information           . .%2 #in Networked Systems      .@Times New Roman[wdw0- .2  Russ Abbott  . ..2 The Aerospace Corporation.       .--"System 0-&TNPP &՜.+,0    $ On-screen ShowThe Aerospace Corporations<N Times New Roman WingdingsDefault DesignTelepresent AgentsNetworks, Locales, and AgentsLocaleThe Problem(s)The Problem(s) (cont.)The ideal solutionAn ideal conceptual solution3Even an ideal solution does not solve all problemsHNon-magical approaches to sharing information among locale realizations$More information sharing mechanisms$More information sharing mechanismsAgentsTelepresent Agents An analogy#Your friend, the telepresent agentTelepresent AgentsFTelepresent Agents encapsulate a link between two locale realizations  Fonts UsedDesign Template Slide Titles#_ Russ AbbottRuss Abbott  !"#$%&'()*+,-./0123456789:;<=>?@ACDEFGHIKLMNOPQSTUVWXY\Root EntrydO)Current UserRSummaryInformation(BPowerPoint Document(<DocumentSummaryInformation8J