Knowledge (XXG)

Distributed object communication

Source 📝

218:
The stub acts as a gateway for client side objects and all outgoing requests to server side objects that are routed through it. The stub wraps client object functionality and by adding the network logic ensures the reliable communication channel between client and server. The stub can be written up
112:. Consequently, the stub passes caller arguments over the network to the server skeleton. The skeleton then passes received data to the called object, waits for a response and returns the result to the client stub. Note that there is no direct communication between the caller and the called object. 280:
A skeleton acts as gateway for server side objects and all incoming clients requests are routed through it. The skeleton wraps server object functionality and exposes it to the clients, moreover by adding the network logic ensures the reliable communication channel between clients and server.
186:
The advantage of this architecture is that neither the caller nor the called object has to implement network related logic. This functionality, that ensures reliable communication channel over the network, has been moved to the
83:. They are generated objects whose structure and behavior depends on chosen communication protocol, but in general provide additional functionality that ensures reliable communication over the network. 99: 333: 87: 465: 506: 90:. The rmic (rmi compiler) uses this to create the class stub. The stub performs type checking. The skeleton is defined in a class which 412: 345: 476: 447: 304: 235: 150: 127: 339: 40: 486: 324: 60: 375: 179: 134: 281:
Skeletons can be written up manually or generated automatically depending on chosen communication protocol.
387: 64: 44: 28: 98: 462: 433: 392: 36: 445:"An Architectural View of Distributed Objects and Components in CORBA, Java RMI, and COM/DCOM" 133:
client stub sends the message over the network to the server and blocks the current execution
104:
When a caller wants to perform remote call on the called object, it delegates requests to its
91: 420: 371: 75:
The widely used approach on how to implement the communication channel is realized by using
490: 469: 451: 17: 366: 273:
The server side object participating in distributed object communication is known as a
259: 249: 242: 227: 203:
The client side object participating in distributed object communication is known as a
192: 109: 80: 500: 356: 295: 255: 444: 212: 86:
In RMI, a stub (which is the bit on the client) is defined by the programmer as an
328: 219:
manually or generated automatically depending on chosen communication protocol.
311: 289: 188: 157: 143: 120: 105: 76: 483: 362: 351:(note that the stub is called "proxy" and the skeleton is called "stub") 142:
skeleton unpacks call type from the request message and looks up the
493:, Distributed Systems Research Group, Charles University Prague 178:
stub passes output arguments to the caller, releases execution
169:
skeleton sends the message over the network back to the client
115:
In more details, the communication consists of several steps:
39:. The main role is to allow objects to access data and invoke 139:
server skeleton receives the request message from the network
166:
skeleton packs the output arguments into a response message
163:
called object performs a computation and returns the result
172:
client stub receives the response message from the network
130:
call type and the input arguments into a request message
413:"Introduction to Java Remote Method Invocation (RMI)" 47:). Invoking a method on a remote object is known as 43:on remote objects (objects residing in non-local 226:initiating the communication towards the server 456:Software Concepts & Tools (vol. 19, no. 1) 264:informing the caller that the call is complete 175:stub unpacks output arguments from the message 108:which initiates communication with the remote 8: 307:of the returned values from server objects 334:Common Object Request Broker Architecture 292:to the correct up-calls to server objects 232:translating calls from the caller object 404: 319:Protocols using stub/skeleton approach 182:and caller then continues in execution 443:Plášil, František and Stal, Michael. 7: 348:(DCOM) – Microsoft, inter-language 301:passing arguments to server objects 298:of the arguments from received data 288:translating incoming data from the 463:"Distributed Program Construction" 346:Distributed Component Object Model 310:passing values back to the client 25: 284:The skeleton is responsible for: 97: 33:distributed object communication 245:that the call should be invoked 35:realizes communication between 277:(or stub; term avoided here). 1: 340:Java remote method invocation 222:The stub is responsible for: 325:Portable Distributed Objects 507:Inter-process communication 359:– Microsoft, inter-language 61:object-oriented programming 523: 480:, O'Reilly, January, 1998. 477:Java Distributed Computing 434:MSDN: Marshalling details. 258:of the response from the 248:passing arguments to the 211:, and is an example of a 71:Class stubs and skeletons 336:(CORBA) – inter-language 49:remote method invocation 18:Remote method invocation 123:implemented by the stub 417:www-itec.uni-klu.ac.at 156:skeleton executes the 388:Object request broker 119:caller calls a local 65:remote procedure call 29:distributed computing 160:on the called object 146:on the called object 94:the interface stub. 153:procedure arguments 37:distributed objects 489:2008-02-12 at the 468:2016-03-04 at the 450:2007-06-24 at the 393:Distributed object 342:(Java RMI) – Java 238:of the parameters 57:remote invocation 16:(Redirected from 514: 461:Druschel, Peter 458:, January, 1998. 436: 431: 425: 424: 419:. Archived from 409: 372:Distributed Ruby 314:over the network 252:over the network 101: 21: 522: 521: 517: 516: 515: 513: 512: 511: 497: 496: 491:Wayback Machine 484:Research Papers 470:Wayback Machine 452:Wayback Machine 440: 439: 432: 428: 411: 410: 406: 401: 384: 321: 271: 201: 73: 23: 22: 15: 12: 11: 5: 520: 518: 510: 509: 499: 498: 495: 494: 481: 472: 459: 438: 437: 426: 423:on 2002-03-26. 403: 402: 400: 397: 396: 395: 390: 383: 380: 379: 378: 369: 367:Borland Delphi 360: 354: 353: 352: 343: 337: 331: 320: 317: 316: 315: 308: 302: 299: 293: 270: 267: 266: 265: 262: 253: 246: 241:informing the 239: 233: 230: 200: 197: 184: 183: 176: 173: 170: 167: 164: 161: 154: 147: 140: 137: 131: 124: 72: 69: 24: 14: 13: 10: 9: 6: 4: 3: 2: 519: 508: 505: 504: 502: 492: 488: 485: 482: 479: 478: 474:Farley, Jim. 473: 471: 467: 464: 460: 457: 453: 449: 446: 442: 441: 435: 430: 427: 422: 418: 414: 408: 405: 398: 394: 391: 389: 386: 385: 381: 377: 373: 370: 368: 364: 361: 358: 357:.NET Remoting 355: 350: 349: 347: 344: 341: 338: 335: 332: 330: 326: 323: 322: 318: 313: 309: 306: 303: 300: 297: 296:unmarshalling 294: 291: 287: 286: 285: 282: 278: 276: 268: 263: 261: 257: 256:unmarshalling 254: 251: 247: 244: 240: 237: 234: 231: 229: 225: 224: 223: 220: 216: 214: 210: 206: 198: 196: 194: 190: 181: 177: 174: 171: 168: 165: 162: 159: 155: 152: 148: 145: 141: 138: 136: 132: 129: 125: 122: 118: 117: 116: 113: 111: 107: 102: 100: 95: 93: 89: 84: 82: 78: 70: 68: 66: 62: 59:, and is the 58: 54: 50: 46: 42: 38: 34: 31:environment, 30: 19: 475: 455: 429: 421:the original 416: 407: 283: 279: 274: 272: 221: 217: 213:proxy object 208: 204: 202: 185: 114: 103: 96: 85: 74: 63:analog of a 56: 52: 48: 45:memory space 32: 26: 329:Objective-C 305:marshalling 236:marshalling 151:unmarshalls 399:References 92:implements 363:DDObjects 158:procedure 149:skeleton 144:procedure 128:marshalls 121:procedure 88:interface 81:skeletons 501:Category 487:Archived 466:Archived 448:Archived 382:See also 374:(DRb) – 327:(PDO) - 275:skeleton 269:Skeleton 260:skeleton 250:skeleton 243:skeleton 228:skeleton 193:skeleton 191:and the 110:skeleton 195:layer. 67:(RPC). 41:methods 180:thread 135:thread 209:proxy 126:stub 77:stubs 55:) or 27:In a 376:Ruby 312:stub 290:stub 205:stub 199:Stub 189:stub 106:stub 79:and 207:or 53:RMI 503:: 454:, 415:. 365:– 215:. 51:( 20:)

Index

Remote method invocation
distributed computing
distributed objects
methods
memory space
object-oriented programming
remote procedure call
stubs
skeletons
interface
implements

stub
skeleton
procedure
marshalls
thread
procedure
unmarshalls
procedure
thread
stub
skeleton
proxy object
skeleton
marshalling
skeleton
skeleton
unmarshalling
skeleton

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.