ࡱ> GF}( / 0LDArialܖS 0ܖ0tt 0@ .  @n?" dd@  @@`` P0      0AA1|@3ʚ;ʚ;g4bdbd$ 0jppp@  <4dddd@l 0t80___PPT10  RPC Session 1D Jack Lange D Definitions DtRPC : Remote Procedure Call A way of making distributed processing appear local to the programmer Stub function Means of indirection programmer thinks they re calling one function, but another function is being called Data Marshalling Basically same as serialization Transform data types into transmittable formatFjOFFFFjFFO F Paradigm Make remote functions appear local No specialized communication code required Failure cases identical to local functions No error recovery Service failures reported Implementation errors not detected at all.yVyV Program Flow 1. User Program 2. Stub Function 3. RPC Service 4. Stub Function 5. Server Handler 1,2,4,5 are usually generic across implementations&SZ4Z Stub Functions1Transforms functions to RPC functions Transforms data arguments into transmittable bytes Automatic generators are offered but usually you have to write your own Usually take the form of the function name and reduction of data types to standard types Personal experience: Type reductions by hand are a pain2ZZ Data MarshallingWhat RPC calls serialization Ints, char, long, etc easy Typedef struct foo; not so much Client and server have to agree on the format that the data types are sent in Either done by a generator or programmer If you missed the first time: potentially a very big pain  PCedar SpecificsaNetworked Dorados (Workstations?) 3 Megabit ethernet most common 24 bit address space 80 MB disksbb, . RPC Service Two services running on client and server RPCRuntime Bypasses network stack to optimize performance Central database used for service discovery and bindings (Grapevine) This is actually a rather large aspect of the design Allows load balancing Still Centralized (Does employ replication)d*:Ew*:Ew*  Error handlingService failures only RPC machines keep timers on communications If period passes without receiving something a probe is sent Basic ping or retransmission of last packet Exceptions used for error handlingB~,#~,# New DirectionsbWeb Services Soap, WSRF/OGSI, etc. HTTP used as transport mechanism XML used for data marshalling . V V  Object Oriented ProgrammingFunctional -- Void Foo(int x); OOP -- Void Foo(object * shape); Issue: Have to transfer member functions as a part of the data reduction& Java has RMI which allows this JDK uses self inspection, which is part of the serialization functions Other work does compile time optimizations I don t know of any other implementations that do OOP RPC. (.NET?)6ZZ, +   Discussion Service Discovery NFS works with user written mount tab Web Services use UDDI Acts kind of like a web search portal How else can it be done? Authentication NFS uses IP restrictions Firewall rules Other ideas?Z<Z&ZZZ5Z<&5  Discussion How should error states be handled? What happens when an NFS export server crashes? Timeout usually on the order of minutes. Is this acceptable? At what point does ease of use start to detract from usability?.$$  Discussion Should we even bother? Firefly optimized RPC to run 3x faster, yet there was no noticeable change to the user experience& Is Amdahl s law being ignored? Won t the RPC service overhead be dominated by network performance? Web Services not even close to being optimized. Used mainly for safe data transfer rather than performanceL;;L   0` 33` Sf3f` 33g` f` www3PP` ZXdbmo` \ғ3y`Ӣ` 3f3ff` 3f3FKf` hk]wwwfܹ` ff>>\`Y{ff` R>&- {p_/̴>?" dd@,|?" dd@   " @ ` n?" dd@   @@``PR    @ ` ` p>> |(    6Y " `}  T Click to edit Master title style! !$  0p\ " `  RClick to edit Master text styles Second level Third level Fourth level Fifth level!     S  0 0  $(  r  S =B> B r  S >B `   B b  <1|v޽h @ ?"` 3380___PPT10.:p$  0 0 $(   r  S |B `}  B r  S $B ` B H  0޽h ? 3380___PPT10.:$  0 ,$(  ,r , S ĕB `}  B r , S lB ` B H , 0޽h ? 3380___PPT10.?`5$  0 P $(   r  S (B `}  B r  S L)B ` B H  0޽h ? 3380___PPT10.;PԌ<$  0 4$(  4r 4 S ЛB `}  B r 4 S B ` B H 4 0޽h ? 3380___PPT10.?.g$  0 8$(  8r 8 S (B `}  B r 8 S B ` B H 8 0޽h ? 3380___PPT10.?$  0 `$$(  $r $ S PB `}  B r $ S B ` B H $ 0޽h ? 3380___PPT10.<S$  0 p($(  (r ( S B `}  B r ( S B ` B H ( 0޽h ? 3380___PPT10.= ݰ$  0 0$(  0r 0 S B `}  B r 0 S B ` B H 0 0޽h ? 3380___PPT10.?a$  0 L$(  Lr L S B `}  B r L S B ` B H L 0޽h ? 3380___PPT10.[O%$  0 @$(  @r @ S  `}   r @ S  `  H @ 0޽h ? 3380___PPT10.Zu$  0 <$(  <r < S  `}   r < S  `  H < 0޽h ? 3380___PPT10.A՚$  0 D$(  Dr D S 4J `}   r D S  K `  H D 0޽h ? 3380___PPT10.[ac$  0 H$(  Hr H S 2 `}   r H S ) `  H H 0޽h ? 3380___PPT10.[pS٣rD(+w/5'8K-13S:@>C/E<[G1Oh+'0" hp    (RPC Session 1 Jack Lange DistributedFabian E. Bustamante60Microsoft PowerPoint@F @&;@kG g  _  y-:a--$--:b--$--;c--$--;d--$--i--$--?j--$--@k--$--@l--$--Am--$--Bn--$--Cp--$--Dq--$--Dr--$--Es--$--Et--$--Fu--$--Fv--$--Gx--$--Hy--$--Iz--$ --J|--$ !! --J}--$!""!!--K~--$"##""--L--$#$$##--M--$$%%$$--N--$%&&%%--O--$&''&&--P--$'((''--Q--$())((--Q--$)**))-- R--$*++**-- S--$+,,++-- T--$,--,,--!U--$-..----"V--$.//..--"W--$/00//--"W--$01100--#X--$12211--#Y--$23322--$Z--$34433--$\--$45544--$]--$56655--$]--$67766--%^--$78877--%_--$89988--%`--$9::99--&a--$:;;::--'b--$;<<;;--'c--$<==<<--'c--$=>>==--(d--$>??>>--(e--$?@@??--)f--$@AA@@--)f--$ABBAA--)g--$BCCBB--)h--$CDDCC--*i--$DEEDD--*j--$EFFEE--*k--$FGGFF--*k--$GHHGG--+l--$HIIHH--+l--$IJJII--+m--$JKKJJ--,n--$KLLKK--,n--$LMMLL--,o--$MNNMM--,p--$NOONN---p--$OPPOO---p--$PQQPP---q--$QRRQQ---r--$RSSRR---s--$STTSS---s--$TUUTT---s--$UWWUU--.t--$WXXWW--.t--$XYYXX--.u--$YZZYY--.v--$Z\\ZZ--/w--$\^^\\--/w--$^``^^--/x--$`bb``--/x--$bddbb--0y--$dffdd--0y--$fhhff--0z--$hiihh--0z--$ikkii--0{--$kmmkk--1{--$moomm--1{--$ossoo--1|--$suuss--1|--$uxxuu---'@Arial-. 2 6/ RPC Session 1."Systemu-@Arial-. 2 K> Jack Lange.-՜.+,0     5On-screen Show ArtifexG^ Arial DistributedRPC Session 1 Definitions Paradigm Program FlowStub FunctionsData MarshallingCedar Specifics RPC ServiceError handlingNew DirectionsObject Oriented Programming Discussion Discussion Discussion  Fonts UsedDesign Template Slide Titles,_G0Fabian E. BustamanteFabian E. Bustamante  !"#%&'()*+,-./012345789:;<=?@ABCDEHRoot EntrydO)Current User>SummaryInformation($0"PowerPoint Document(GDocumentSummaryInformation86