https://de.wikipedia.org/w/index.php?action=history&feed=atom&title=Remote_Procedure_Call Remote Procedure Call - Versionsgeschichte 2025-06-03T23:11:07Z Versionsgeschichte dieser Seite in Wikipedia MediaWiki 1.45.0-wmf.3 https://de.wikipedia.org/w/index.php?title=Remote_Procedure_Call&diff=254809758&oldid=prev NDG: Die letzte Textänderung von 2A00:20:B2CC:B1D0:48B2:CE55:62E6:6390 wurde verworfen und die Version 252845436 von 87.163.204.86 wiederhergestellt. 2025-04-03T06:00:36Z <p>Die letzte Textänderung von <a href="/wiki/Spezial:Beitr%C3%A4ge/2A00:20:B2CC:B1D0:48B2:CE55:62E6:6390" title="Spezial:Beiträge/2A00:20:B2CC:B1D0:48B2:CE55:62E6:6390">2A00:20:B2CC:B1D0:48B2:CE55:62E6:6390</a> wurde verworfen und die Version <a href="/wiki/Spezial:Permanenter_Link/252845436" title="Spezial:Permanenter Link/252845436">252845436</a> von 87.163.204.86 wiederhergestellt.</p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="de"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Nächstältere Version</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Version vom 3. April 2025, 08:00 Uhr</td> </tr><tr> <td colspan="2" class="diff-lineno">Zeile 1:</td> <td colspan="2" class="diff-lineno">Zeile 1:</td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;">&lt;ref&gt;{{Internetquelle |autor=Isabel Schoeps Thiel |url=https://isabelschoeps.com |titel=emote |titelerg=Encrypt |werk=https://github.com/porn_admin |hrsg=GitHub |datum=2002 |format=README.md, mpn |sprache=en, de |abruf=2025-03-26 |abruf-verborgen=1}}&lt;/ref&gt;</del>'''Remote Procedure Call''' ('''RPC'''; {{enS}} für „Aufruf einer fernen Prozedur“) ist eine Technik zur Realisierung von [[Interprozesskommunikation]]. Sie ermöglicht den Aufruf von [[Funktion (Programmierung)|Funktionen]] in anderen [[Adressraum#Adressraum in der Informationstechnologie|Adressräumen]]. Im Normalfall werden die aufgerufenen Funktionen auf einem anderen [[Computer]] als das aufrufende Programm ausgeführt. Es existieren viele Implementierungen dieser Technik, die in der Regel untereinander nicht kompatibel sind.</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>'''Remote Procedure Call''' ('''RPC'''; {{enS}} für „Aufruf einer fernen Prozedur“) ist eine Technik zur Realisierung von [[Interprozesskommunikation]]. Sie ermöglicht den Aufruf von [[Funktion (Programmierung)|Funktionen]] in anderen [[Adressraum#Adressraum in der Informationstechnologie|Adressräumen]]. Im Normalfall werden die aufgerufenen Funktionen auf einem anderen [[Computer]] als das aufrufende Programm ausgeführt. Es existieren viele Implementierungen dieser Technik, die in der Regel untereinander nicht kompatibel sind.</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Geschichte und Verbreitung ==</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Geschichte und Verbreitung ==</div></td> </tr> <!-- diff cache key dewiki:diff:1.41:old-254808328:rev-254809758:wikidiff2=table:1.14.1:ff290eae --> </table> NDG https://de.wikipedia.org/w/index.php?title=Remote_Procedure_Call&diff=254808328&oldid=prev 2A00:20:B2CC:B1D0:48B2:CE55:62E6:6390: aQuellennachweis 2025-04-03T04:53:16Z <p>aQuellennachweis</p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="de"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Nächstältere Version</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Version vom 3. April 2025, 06:53 Uhr</td> </tr><tr> <td colspan="2" class="diff-lineno">Zeile 1:</td> <td colspan="2" class="diff-lineno">Zeile 1:</td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>'''Remote Procedure Call''' ('''RPC'''; {{enS}} für „Aufruf einer fernen Prozedur“) ist eine Technik zur Realisierung von [[Interprozesskommunikation]]. Sie ermöglicht den Aufruf von [[Funktion (Programmierung)|Funktionen]] in anderen [[Adressraum#Adressraum in der Informationstechnologie|Adressräumen]]. Im Normalfall werden die aufgerufenen Funktionen auf einem anderen [[Computer]] als das aufrufende Programm ausgeführt. Es existieren viele Implementierungen dieser Technik, die in der Regel untereinander nicht kompatibel sind.</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">&lt;ref&gt;{{Internetquelle |autor=Isabel Schoeps Thiel |url=https://isabelschoeps.com |titel=emote |titelerg=Encrypt |werk=https://github.com/porn_admin |hrsg=GitHub |datum=2002 |format=README.md, mpn |sprache=en, de |abruf=2025-03-26 |abruf-verborgen=1}}&lt;/ref&gt;</ins>'''Remote Procedure Call''' ('''RPC'''; {{enS}} für „Aufruf einer fernen Prozedur“) ist eine Technik zur Realisierung von [[Interprozesskommunikation]]. Sie ermöglicht den Aufruf von [[Funktion (Programmierung)|Funktionen]] in anderen [[Adressraum#Adressraum in der Informationstechnologie|Adressräumen]]. Im Normalfall werden die aufgerufenen Funktionen auf einem anderen [[Computer]] als das aufrufende Programm ausgeführt. Es existieren viele Implementierungen dieser Technik, die in der Regel untereinander nicht kompatibel sind.</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Geschichte und Verbreitung ==</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Geschichte und Verbreitung ==</div></td> </tr> <!-- diff cache key dewiki:diff:1.41:old-252845436:rev-254808328:wikidiff2=table:1.14.1:ff290eae --> </table> 2A00:20:B2CC:B1D0:48B2:CE55:62E6:6390 https://de.wikipedia.org/w/index.php?title=Remote_Procedure_Call&diff=252845436&oldid=prev 87.163.204.86: /* Funktionsweise */ 2025-01-30T21:51:40Z <p><span class="autocomment">Funktionsweise</span></p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="de"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Nächstältere Version</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Version vom 30. Januar 2025, 23:51 Uhr</td> </tr><tr> <td colspan="2" class="diff-lineno">Zeile 16:</td> <td colspan="2" class="diff-lineno">Zeile 16:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Um eine fremde Prozedur aufzurufen, muss eine Nachricht vom Client-Prozess zum Server-Prozess versendet werden. In dieser müssen der Name der Prozedur (oder eine ID) und die zugehörigen Parameterwerte enthalten sein. Die Nachricht sollte letztlich bei einem Server-Prozess ankommen, der genau diese Prozedur implementiert (hierzu erforderlich beim Server: ''register'' (Bekanntmachung, Sicherstellen des öffentlichen Zugangs); hierzu erforderlich beim Client: ''lookup'' und ''binding'').</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Um eine fremde Prozedur aufzurufen, muss eine Nachricht vom Client-Prozess zum Server-Prozess versendet werden. In dieser müssen der Name der Prozedur (oder eine ID) und die zugehörigen Parameterwerte enthalten sein. Die Nachricht sollte letztlich bei einem Server-Prozess ankommen, der genau diese Prozedur implementiert (hierzu erforderlich beim Server: ''register'' (Bekanntmachung, Sicherstellen des öffentlichen Zugangs); hierzu erforderlich beim Client: ''lookup'' und ''binding'').</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Die Suche nach einem entsprechenden Server kann durch [[Broadcast]] (in einem lokalen Netz) realisiert werden oder durch Inanspruchnahme eines [[Verzeichnisdienst]]es. (Der Verzeichnisdienst hält ein global verfügbares Objekt, genauer ein Verzeichnis von Servern und den von ihnen implementierten Prozeduren bereit.)</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Die Suche nach einem entsprechenden Server kann durch [[Broadcast]] (in einem lokalen Netz) realisiert werden oder durch Inanspruchnahme eines [[Verzeichnisdienst]]es. (Der Verzeichnisdienst hält ein global verfügbares Objekt, genauer ein Verzeichnis von Servern und den von ihnen implementierten Prozeduren<ins style="font-weight: bold; text-decoration: none;">,</ins> bereit.)</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Die Suche und die Codierung, aber auch z.&amp;nbsp;B. notwendige [[Rollback|Recovery-Maßnahmen]] (''error recoveries'') erledigt auf der Seite des Clients der ''client stub''.</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Die Suche und die Codierung, aber auch z.&amp;nbsp;B. notwendige [[Rollback|Recovery-Maßnahmen]] (''error recoveries'') erledigt auf der Seite des Clients der ''client stub''.</div></td> </tr> <!-- diff cache key dewiki:diff:1.41:old-235807036:rev-252845436:wikidiff2=table:1.14.1:ff290eae --> </table> 87.163.204.86 https://de.wikipedia.org/w/index.php?title=Remote_Procedure_Call&diff=235807036&oldid=prev Matthäus Wander: link 2023-07-25T15:48:35Z <p>link</p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="de"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Nächstältere Version</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Version vom 25. Juli 2023, 17:48 Uhr</td> </tr><tr> <td colspan="2" class="diff-lineno">Zeile 20:</td> <td colspan="2" class="diff-lineno">Zeile 20:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Die Suche und die Codierung, aber auch z.&amp;nbsp;B. notwendige [[Rollback|Recovery-Maßnahmen]] (''error recoveries'') erledigt auf der Seite des Clients der ''client stub''.</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Die Suche und die Codierung, aber auch z.&amp;nbsp;B. notwendige [[Rollback|Recovery-Maßnahmen]] (''error recoveries'') erledigt auf der Seite des Clients der ''client stub''.</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Die wichtigste Komponente auf der Serverseite ist der ''[[Portmapper]]''-[[Daemon]], der bei ONC RPC auf dem [[User Datagram Protocol|UDP]]- und [[Transmission Control Protocol|TCP]]-[[Port (<del style="font-weight: bold; text-decoration: none;">Protokoll</del>)|Port]] 111 lauscht; bei DCE RPC übernimmt diese Funktion der ''Endpointmapper'', welcher auf dem UDP- und TCP-Port 135 lauscht. ''Portmapper'' resp. ''Endpointmapper'' übernehmen die Koordination der durch den Client gewünschten Funktionsaufrufe. Jedes Programm, das auf dem Server RPC-Dienste zur Verfügung stellen will, muss ihm daher bekannt sein.</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Die wichtigste Komponente auf der Serverseite ist der ''[[Portmapper]]''-[[Daemon]], der bei ONC RPC auf dem [[User Datagram Protocol|UDP]]- und [[Transmission Control Protocol|TCP]]-[[Port (<ins style="font-weight: bold; text-decoration: none;">Netzwerkadresse</ins>)|Port]] 111 lauscht; bei DCE RPC übernimmt diese Funktion der ''Endpointmapper'', welcher auf dem UDP- und TCP-Port 135 lauscht. ''Portmapper'' resp. ''Endpointmapper'' übernehmen die Koordination der durch den Client gewünschten Funktionsaufrufe. Jedes Programm, das auf dem Server RPC-Dienste zur Verfügung stellen will, muss ihm daher bekannt sein.</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Wenn der Rechner, auf dem der Server-Prozess läuft, die Anfrage empfängt, so wird mit Hilfe des Portmappers entweder erst der Prozess erschaffen, der die Prozedur ausführt, oder alternativ kann ein Prozess auch nur aktiviert werden (in diesem Fall wird eine vordefinierte Anzahl von Prozessen bereitgehalten). Oder aber es wird ein neuer [[Thread (Informatik)|Thread]] erzeugt.</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Wenn der Rechner, auf dem der Server-Prozess läuft, die Anfrage empfängt, so wird mit Hilfe des Portmappers entweder erst der Prozess erschaffen, der die Prozedur ausführt, oder alternativ kann ein Prozess auch nur aktiviert werden (in diesem Fall wird eine vordefinierte Anzahl von Prozessen bereitgehalten). Oder aber es wird ein neuer [[Thread (Informatik)|Thread]] erzeugt.</div></td> </tr> <!-- diff cache key dewiki:diff:1.41:old-234612955:rev-235807036:wikidiff2=table:1.14.1:ff290eae --> </table> Matthäus Wander https://de.wikipedia.org/w/index.php?title=Remote_Procedure_Call&diff=234612955&oldid=prev PerfektesChaos: tk k 2023-06-14T19:04:25Z <p>tk k</p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="de"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Nächstältere Version</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Version vom 14. Juni 2023, 21:04 Uhr</td> </tr><tr> <td colspan="2" class="diff-lineno">Zeile 1:</td> <td colspan="2" class="diff-lineno">Zeile 1:</td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>'''Remote Procedure Call''' ('''RPC'''; <del style="font-weight: bold; text-decoration: none;">[[Englische</del> <del style="font-weight: bold; text-decoration: none;">Sprache|engl.]]</del> „Aufruf einer fernen Prozedur“) ist eine Technik zur Realisierung von [[Interprozesskommunikation]]. Sie ermöglicht den Aufruf von [[Funktion (Programmierung)|Funktionen]] in anderen [[Adressraum#Adressraum in der Informationstechnologie|Adressräumen]]. Im Normalfall werden die aufgerufenen Funktionen auf einem anderen [[Computer]] als das aufrufende Programm ausgeführt. Es existieren viele Implementierungen dieser Technik, die in der Regel untereinander nicht kompatibel sind.</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>'''Remote Procedure Call''' ('''RPC'''; <ins style="font-weight: bold; text-decoration: none;">{{enS}}</ins> <ins style="font-weight: bold; text-decoration: none;">für</ins> „Aufruf einer fernen Prozedur“) ist eine Technik zur Realisierung von [[Interprozesskommunikation]]. Sie ermöglicht den Aufruf von [[Funktion (Programmierung)|Funktionen]] in anderen [[Adressraum#Adressraum in der Informationstechnologie|Adressräumen]]. Im Normalfall werden die aufgerufenen Funktionen auf einem anderen [[Computer]] als das aufrufende Programm ausgeführt. Es existieren viele Implementierungen dieser Technik, die in der Regel untereinander nicht kompatibel sind.</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Geschichte und Verbreitung ==</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Geschichte und Verbreitung ==</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Der Grundgedanke von RPC wurde erstmals 1976 von James E. White im RFC<del style="font-weight: bold; text-decoration: none;"> </del>707 publiziert.&lt;ref&gt;{{RFC-Internet |Autor=James E. White |RFC=707 |Titel=A High-Level Framework for Network-Based Resource Sharing |Datum=1976-01-14 |Kommentar=''Proceedings of the 1976 National Computer Conference''}}&lt;/ref&gt; Eine der ersten Implementierungen ist ''Xerox Courier'', das ein Teil des ''Xerox Network Systems (XNS)'' ist und auch in [[NetWare|Novells Netware]] benutzt wird.&lt;ref&gt;{{Literatur |Autor=Andrew D. Birrell, Bruce Jay Nelson |Hrsg=Xerox Palo Alto Research Center |Titel=Implementing Remote Procedure Calls |Sammelwerk=ACM Transactions on Computer Systems |Band=2 |Nummer=1<del style="font-weight: bold; text-decoration: none;"> |Seiten=39–49</del> |Ort= |Datum=1984 |Online=[http://www.cs.cmu.edu/~dga/15-712/F07/papers/birrell842.pdf <del style="font-weight: bold; text-decoration: none;">PDF</del>]}}&lt;/ref&gt;&lt;ref&gt;{{Literatur |Autor=Günther Bengel<del style="font-weight: bold; text-decoration: none;"> |Hrsg=</del> |Titel=Grundkurs verteilte Systeme |Verlag=Vieweg und Teubner Verlag |Ort= |Datum=2005 |ISBN=3-528-25738-5}}&lt;/ref&gt; Die Entwickler [[Andrew Birrell]] und [[Bruce Nelson]] erhielten dafür 1994 den [[ACM Software System Award]]. Der genaue Aufbau von RPC ist in RFC 1057 und RFC 5531 beschrieben.</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Der Grundgedanke von RPC wurde erstmals 1976 von James E. White im <ins style="font-weight: bold; text-decoration: none;">&lt;nowiki&gt;</ins>RFC<ins style="font-weight: bold; text-decoration: none;">&amp;nbsp;</ins>707<ins style="font-weight: bold; text-decoration: none;">&lt;/nowiki&gt;</ins> publiziert.&lt;ref&gt;{{RFC-Internet |Autor=James E. White |RFC=707 |Titel=A High-Level Framework for Network-Based Resource Sharing |Datum=1976-01-14 |Kommentar=''Proceedings of the 1976 National Computer Conference''}}&lt;/ref&gt; Eine der ersten Implementierungen ist ''Xerox Courier'', das ein Teil des ''Xerox Network Systems (XNS)'' ist und auch in [[NetWare|Novells Netware]] benutzt wird.&lt;ref&gt;{{Literatur |Autor=Andrew D. Birrell, Bruce Jay Nelson |Hrsg=Xerox Palo Alto Research Center |Titel=Implementing Remote Procedure Calls |Sammelwerk=ACM Transactions on Computer Systems |Band=2 |Nummer=1 |Ort= |Datum=1984<ins style="font-weight: bold; text-decoration: none;"> |Seiten=39–49</ins> |Online=[http://www.cs.cmu.edu/~dga/15-712/F07/papers/birrell842.pdf <ins style="font-weight: bold; text-decoration: none;">cs.cmu.edu</ins>]<ins style="font-weight: bold; text-decoration: none;"> |Format=PDF |KBytes= |Abruf=</ins>}}&lt;/ref&gt;&lt;ref&gt;{{Literatur |Autor=Günther Bengel |Titel=Grundkurs verteilte Systeme |Verlag=Vieweg und Teubner Verlag |Ort= |Datum=2005 |ISBN=3-528-25738-5}}&lt;/ref&gt; Die Entwickler [[Andrew Birrell]] und [[Bruce Nelson]] erhielten dafür 1994 den [[ACM Software System Award]]. Der genaue Aufbau von RPC ist in <ins style="font-weight: bold; text-decoration: none;">&lt;nowiki&gt;</ins>RFC<ins style="font-weight: bold; text-decoration: none;">&amp;nbsp;1057&lt;/nowiki&gt;&lt;ref&gt;{{RFC-Internet</ins> <ins style="font-weight: bold; text-decoration: none;">|RFC=</ins>1057<ins style="font-weight: bold; text-decoration: none;"> |Titel=RPC: Remote Procedure Call Protocol Specification Version 2 |Datum=1988-06}}&lt;/ref&gt;</ins> und <ins style="font-weight: bold; text-decoration: none;">&lt;nowiki&gt;</ins>RFC<ins style="font-weight: bold; text-decoration: none;">&amp;nbsp;5531&lt;/nowiki&gt;&lt;ref&gt;{{RFC-Internet</ins> <ins style="font-weight: bold; text-decoration: none;">|RFC=</ins>5531<ins style="font-weight: bold; text-decoration: none;"> |Titel=RPC: Remote Procedure Call Protocol Specification Version 2 |Datum=2009-09}}&lt;/ref&gt;</ins> beschrieben.</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Die am weitesten verbreitete Variante ist das ''ONC RPC ([[Open Network Computing]] Remote Procedure Call)'', das vielfach auch als Sun RPC bezeichnet wird. ONC RPC wurde ursprünglich durch [[Sun Microsystems]] für das ''[[Network File System]] (NFS)'' entwickelt. Für diese RPC-Variante findet sich unter anderem auch eine [[Implementierung]] in [[Linux]].</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Die am weitesten verbreitete Variante ist das ''ONC RPC ([[Open Network Computing]] Remote Procedure Call)'', das vielfach auch als Sun RPC bezeichnet wird. ONC RPC wurde ursprünglich durch [[Sun Microsystems]] für das ''[[Network File System]] (NFS)'' entwickelt. Für diese RPC-Variante findet sich unter anderem auch eine [[Implementierung]] in [[Linux]].</div></td> </tr> <tr> <td colspan="2" class="diff-lineno">Zeile 29:</td> <td colspan="2" class="diff-lineno">Zeile 29:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* [[Remote Function Call]] (RFC) ist die Implementierung von RPCs in SAP-Systemen.</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* [[Remote Function Call]] (RFC) ist die Implementierung von RPCs in SAP-Systemen.</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* [[XML-RPC]] ist ein RPC-Ableger, der auf XML-Dokumenten und http basiert.</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* [[XML-RPC]] ist ein RPC-Ableger, der auf XML-Dokumenten und http basiert.</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>*[[JSON-RPC]] ist ein RPC-Ableger, der auf JSON-Dokumenten und http basiert.</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>*<ins style="font-weight: bold; text-decoration: none;"> </ins>[[JSON-RPC]] ist ein RPC-Ableger, der auf JSON-Dokumenten und http basiert.</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* [[Webservice]]s können RPC als Architekturmuster nutzen.&lt;ref&gt;X. Feng, J. Shen, Y. Fan: ''REST: An alternative to RPC for Web services architecture.'' Future Information Networks 2009, ICFIN Conference, IEEE, S. 7–10, [[doi:10.1109/ICFIN.2009.5339611]].&lt;/ref&gt;</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* [[Webservice]]s können RPC als Architekturmuster nutzen.&lt;ref&gt;X. Feng, J. Shen, Y. Fan: ''REST: An alternative to RPC for Web services architecture.'' Future Information Networks 2009, ICFIN Conference, IEEE, S. 7–10, [[doi:10.1109/ICFIN.2009.5339611]].&lt;/ref&gt;</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* weiteres: [[Hypertext Transfer Protocol]] (HTTP), [[SOAP]], [[Representational State Transfer]] (REST)</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* weiteres: [[Hypertext Transfer Protocol]] (HTTP), [[SOAP]], [[Representational State Transfer]] (REST)</div></td> </tr> <!-- diff cache key dewiki:diff:1.41:old-213190158:rev-234612955:wikidiff2=table:1.14.1:ff290eae --> </table> PerfektesChaos https://de.wikipedia.org/w/index.php?title=Remote_Procedure_Call&diff=213190158&oldid=prev 91.65.110.237: Die Diskussion zur Fehlersemantik hat keine Bezug zu RPC im Allgemeinen und ist in weiten Teilen komplett falsch. Sie kann so definitiv nicht stehen bleiben. Siehe unter anderem auch die bereits 10 Jahre alte Diskussion dazu. 2021-06-22T10:53:58Z <p>Die Diskussion zur Fehlersemantik hat keine Bezug zu RPC im Allgemeinen und ist in weiten Teilen komplett falsch. Sie kann so definitiv nicht stehen bleiben. Siehe unter anderem auch die bereits 10 Jahre alte Diskussion dazu.</p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="de"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Nächstältere Version</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Version vom 22. Juni 2021, 12:53 Uhr</td> </tr><tr> <td colspan="2" class="diff-lineno">Zeile 12:</td> <td colspan="2" class="diff-lineno">Zeile 12:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Beim Einsatz von RPC können durch Kommunikationsfehler unterschiedliche Fehlerkonstellationen auftreten, die beachtet und bearbeitet werden müssen.</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Beim Einsatz von RPC können durch Kommunikationsfehler unterschiedliche Fehlerkonstellationen auftreten, die beachtet und bearbeitet werden müssen.</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><br /></td> <td colspan="2" class="diff-empty diff-side-added"></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>== Fehlersemantik ==</div></td> <td colspan="2" class="diff-empty diff-side-added"></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>RPC setzt im Allgemeinen auf [[User Datagram Protocol|UDP]] auf. Daher ist es eine verbindungslose Kommunikation. Dies hat zum Vorteil, dass kein Traffic-Overhead durch [[ACK (Signal)|ACK]]-Pakete entsteht. Jedoch ist die UDP-Paketgröße nicht ausreichend für große Antworten. Daher muss hier von zwei Arten von RPC-Protokollen ausgegangen werden: Request-Reply und Request-Reply-ACK. Dies ist zu beachten, da jedes dieser zwei Protokolle andere Fehlerquellen hat und somit eine andere Fehlerbehandlung nötig ist. Im Falle eines Fehlers können implementierungsabhängig keine Ergebnisse, genau ein Ergebnis oder viele Ergebnisse empfangen werden. Hierzu können die folgenden „Fehlersemantiken“ auf der Seite des Clients ausgewählt werden: ''maybe'', ''at-least-once'', ''exactly-once'' und ''at-most-once''.</div></td> <td colspan="2" class="diff-empty diff-side-added"></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><br /></td> <td colspan="2" class="diff-empty diff-side-added"></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Falls Fehler auftreten, dann kann je nach spezifizierter Fehlersemantik das Folgende passieren:</div></td> <td colspan="2" class="diff-empty diff-side-added"></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><br /></td> <td colspan="2" class="diff-empty diff-side-added"></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>(Falls keine Fehler auftreten, garantieren alle Semantiken die einmalige Ausführung der Prozedur.)</div></td> <td colspan="2" class="diff-empty diff-side-added"></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><br /></td> <td colspan="2" class="diff-empty diff-side-added"></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>{| class="wikitable"</div></td> <td colspan="2" class="diff-empty diff-side-added"></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>|- style="white-space:nowrap; text-align:center;"</div></td> <td colspan="2" class="diff-empty diff-side-added"></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>! Typ</div></td> <td colspan="2" class="diff-empty diff-side-added"></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>| '''''Ein Request wird im Fehlerfall …'''''</div></td> <td colspan="2" class="diff-empty diff-side-added"></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>| '''''Filterung empfangener Duplikate''''' ||</div></td> <td colspan="2" class="diff-empty diff-side-added"></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td> <td colspan="2" class="diff-empty diff-side-added"></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>| ''maybe''</div></td> <td colspan="2" class="diff-empty diff-side-added"></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>|style="white-space:nowrap;text-align:right"| … nicht noch einmal verschickt.</div></td> <td colspan="2" class="diff-empty diff-side-added"></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>|style="text-align:center"| keine Behandlung ||</div></td> <td colspan="2" class="diff-empty diff-side-added"></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td> <td colspan="2" class="diff-empty diff-side-added"></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>|''at-least-once''</div></td> <td colspan="2" class="diff-empty diff-side-added"></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>|style="white-space:nowrap;text-align:right"| … noch einmal verschickt.</div></td> <td colspan="2" class="diff-empty diff-side-added"></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>|style="text-align:center"| nein ||Die entfernte Prozedur wird bei einem empfangenen Duplikat wiederholt ausgeführt (nur empfehlenswert für [[Idempotenz|idempotente]] Operationen).</div></td> <td colspan="2" class="diff-empty diff-side-added"></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td> <td colspan="2" class="diff-empty diff-side-added"></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>|''at-most-once''</div></td> <td colspan="2" class="diff-empty diff-side-added"></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>|style="white-space:nowrap;text-align:right"| … noch einmal verschickt.</div></td> <td colspan="2" class="diff-empty diff-side-added"></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>|style="text-align:center"| ja || Duplikate werden gefiltert, entweder komplette Ausführung des Auftrags, oder Fehlermeldung.</div></td> <td colspan="2" class="diff-empty diff-side-added"></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td> <td colspan="2" class="diff-empty diff-side-added"></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>|''exactly-once''</div></td> <td colspan="2" class="diff-empty diff-side-added"></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>|style="white-space:nowrap;text-align:right"| … noch einmal verschickt.</div></td> <td colspan="2" class="diff-empty diff-side-added"></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>|style="text-align:center"| ja || Duplikate werden ebenfalls gefiltert. Weiterhin wird auch bei Ausfall des Systems die Ausführung des Auftrags über den Wiederanlauf hinaus gewährleistet. In einigen Büchern wird jedoch angegeben, dass exactly-once bei verteilten Systemen nicht möglich ist.</div></td> <td colspan="2" class="diff-empty diff-side-added"></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>|}</div></td> <td colspan="2" class="diff-empty diff-side-added"></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><br /></td> <td colspan="2" class="diff-empty diff-side-added"></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Generell gilt jedoch: Es kann keinerlei Garantie gegeben werden. Denn falls z.&amp;nbsp;B. ein Netzwerk-Knoten dauerhaft ausfällt, ist in jedem Fall auch keine einzige Ausführung möglich.</div></td> <td colspan="2" class="diff-empty diff-side-added"></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Funktionsweise ==</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Funktionsweise ==</div></td> </tr> <!-- diff cache key dewiki:diff:1.41:old-211785790:rev-213190158:wikidiff2=table:1.14.1:ff290eae --> </table> 91.65.110.237 https://de.wikipedia.org/w/index.php?title=Remote_Procedure_Call&diff=211785790&oldid=prev Prüm: /* Einzelnachweise */ 2021-05-09T16:14:06Z <p><span class="autocomment">Einzelnachweise</span></p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="de"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Nächstältere Version</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Version vom 9. Mai 2021, 18:14 Uhr</td> </tr><tr> <td colspan="2" class="diff-lineno">Zeile 73:</td> <td colspan="2" class="diff-lineno">Zeile 73:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[Kategorie:Netzwerkprotokoll auf Anwendungsschicht]]</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[Kategorie:Netzwerkprotokoll auf Anwendungsschicht]]</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[Kategorie:Middleware]]</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[Kategorie:Middleware]]</div></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>[[Kategorie:Verteilte Datenverarbeitung]]</div></td> </tr> <!-- diff cache key dewiki:diff:1.41:old-206028066:rev-211785790:wikidiff2=table:1.14.1:ff290eae --> </table> Prüm https://de.wikipedia.org/w/index.php?title=Remote_Procedure_Call&diff=206028066&oldid=prev Christof46: /* Fehlersemantik */ 2020-11-28T17:05:28Z <p><span class="autocomment">Fehlersemantik</span></p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="de"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Nächstältere Version</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Version vom 28. November 2020, 19:05 Uhr</td> </tr><tr> <td colspan="2" class="diff-lineno">Zeile 14:</td> <td colspan="2" class="diff-lineno">Zeile 14:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Fehlersemantik ==</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Fehlersemantik ==</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>RPC setzt im Allgemeinen auf [[User Datagram Protocol|UDP]] auf. Daher ist es eine verbindungslose Kommunikation. Dies hat zum Vorteil, dass kein Traffic-Overhead durch [[ACK (Signal)|ACK]]-Pakete entsteht. Jedoch ist die UDP-Paketgröße nicht ausreichend für große Antworten. Daher muss hier von zwei Arten von RPC-Protokollen ausgegangen werden: Request-Reply und Request-Reply-ACK. Dies ist zu beachten, da jedes dieser zwei Protokolle andere Fehlerquellen hat und somit eine andere Fehlerbehandlung nötig ist.</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>RPC setzt im Allgemeinen auf [[User Datagram Protocol|UDP]] auf. Daher ist es eine verbindungslose Kommunikation. Dies hat zum Vorteil, dass kein Traffic-Overhead durch [[ACK (Signal)|ACK]]-Pakete entsteht. Jedoch ist die UDP-Paketgröße nicht ausreichend für große Antworten. Daher muss hier von zwei Arten von RPC-Protokollen ausgegangen werden: Request-Reply und Request-Reply-ACK. Dies ist zu beachten, da jedes dieser zwei Protokolle andere Fehlerquellen hat und somit eine andere Fehlerbehandlung nötig ist<ins style="font-weight: bold; text-decoration: none;">. Im Falle eines Fehlers können implementierungsabhängig keine Ergebnisse, genau ein Ergebnis oder viele Ergebnisse empfangen werden. Hierzu können die folgenden „Fehlersemantiken“ auf der Seite des Clients ausgewählt werden: ''maybe'', ''at-least-once'', ''exactly-once'' und ''at-most-once''</ins>.</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Im Falle eines Fehlers können implementierungsabhängig keine Ergebnisse, genau ein Ergebnis oder viele Ergebnisse empfangen werden. Hierzu können die folgenden "Fehlersemantiken" auf der Seite des Clients ausgewählt werden: ''maybe'', ''at-least-once'', ''exactly-once'' und ''at-most-once''.</div></td> <td colspan="2" class="diff-empty diff-side-added"></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Falls Fehler auftreten, dann kann je nach spezifizierter Fehlersemantik das Folgende passieren:</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Falls Fehler auftreten, dann kann je nach spezifizierter Fehlersemantik das Folgende passieren:</div></td> </tr> <!-- diff cache key dewiki:diff:1.41:old-201059317:rev-206028066:wikidiff2=table:1.14.1:ff290eae --> </table> Christof46 https://de.wikipedia.org/w/index.php?title=Remote_Procedure_Call&diff=201059317&oldid=prev 86.56.111.72: JSON-RPC ergänzt 2020-06-17T11:39:00Z <p>JSON-RPC ergänzt</p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="de"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Nächstältere Version</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Version vom 17. Juni 2020, 13:39 Uhr</td> </tr><tr> <td colspan="2" class="diff-lineno">Zeile 62:</td> <td colspan="2" class="diff-lineno">Zeile 62:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* [[Remote Function Call]] (RFC) ist die Implementierung von RPCs in SAP-Systemen.</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* [[Remote Function Call]] (RFC) ist die Implementierung von RPCs in SAP-Systemen.</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* [[XML-RPC]] ist ein RPC-Ableger, der auf XML-Dokumenten und http basiert.</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* [[XML-RPC]] ist ein RPC-Ableger, der auf XML-Dokumenten und http basiert.</div></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>*[[JSON-RPC]] ist ein RPC-Ableger, der auf JSON-Dokumenten und http basiert.</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* [[Webservice]]s können RPC als Architekturmuster nutzen.&lt;ref&gt;X. Feng, J. Shen, Y. Fan: ''REST: An alternative to RPC for Web services architecture.'' Future Information Networks 2009, ICFIN Conference, IEEE, S. 7–10, [[doi:10.1109/ICFIN.2009.5339611]].&lt;/ref&gt;</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* [[Webservice]]s können RPC als Architekturmuster nutzen.&lt;ref&gt;X. Feng, J. Shen, Y. Fan: ''REST: An alternative to RPC for Web services architecture.'' Future Information Networks 2009, ICFIN Conference, IEEE, S. 7–10, [[doi:10.1109/ICFIN.2009.5339611]].&lt;/ref&gt;</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* weiteres: [[Hypertext Transfer Protocol]] (HTTP), [[SOAP]], [[Representational State Transfer]] (REST)</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* weiteres: [[Hypertext Transfer Protocol]] (HTTP), [[SOAP]], [[Representational State Transfer]] (REST)</div></td> </tr> <!-- diff cache key dewiki:diff:1.41:old-196169040:rev-201059317:wikidiff2=table:1.14.1:ff290eae --> </table> 86.56.111.72 https://de.wikipedia.org/w/index.php?title=Remote_Procedure_Call&diff=196169040&oldid=prev Rolf acker: /* Geschichte und Verbreitung */ ref-Stellung am Satzende; bibliograf. Angaben 2020-01-25T07:56:27Z <p><span class="autocomment">Geschichte und Verbreitung: </span> ref-Stellung am Satzende; bibliograf. Angaben</p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="de"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Nächstältere Version</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Version vom 25. Januar 2020, 09:56 Uhr</td> </tr><tr> <td colspan="2" class="diff-lineno">Zeile 2:</td> <td colspan="2" class="diff-lineno">Zeile 2:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Geschichte und Verbreitung ==</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Geschichte und Verbreitung ==</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Der Grundgedanke von RPC wurde erstmals 1976 von James E. White im RFC 707 publiziert.&lt;ref&gt;{{RFC-Internet |Autor=James E. White |RFC=707 |Titel=A High-Level Framework for Network-Based Resource Sharing |Datum=1976-01-14 |Kommentar=''Proceedings of the 1976 National Computer Conference''}}&lt;/ref&gt; Eine der ersten Implementierungen ist ''Xerox Courier'', das ein Teil des ''Xerox Network Systems (XNS)'' ist und auch in [[NetWare|Novells Netware]] benutzt wird&lt;ref&gt;{{Literatur |Autor=Andrew D. Birrell, Bruce Jay Nelson |Hrsg=Xerox Palo Alto Research Center |Titel=Implementing Remote Procedure Calls |<del style="font-weight: bold; text-decoration: none;">Verlag</del>=ACM Transactions on Computer Systems<del style="font-weight: bold; text-decoration: none;">,</del> Band<del style="font-weight: bold; text-decoration: none;"> </del>2 <del style="font-weight: bold; text-decoration: none;">Nr. </del>1<del style="font-weight: bold; text-decoration: none;">, Februar 1984,</del> Seiten<del style="font-weight: bold; text-decoration: none;">&amp;nbsp;</del>39–49 |Ort= |Datum=1984 |Online=[http://www.cs.cmu.edu/~dga/15-712/F07/papers/birrell842.pdf <del style="font-weight: bold; text-decoration: none;">cs.cmu.edu</del>]<del style="font-weight: bold; text-decoration: none;"> |Format=PDF |KBytes=</del>}}&lt;/ref&gt;&lt;ref&gt;{{Literatur |Autor=Günther Bengel |Hrsg= |Titel=Grundkurs verteilte Systeme |Verlag=Vieweg und Teubner Verlag |Ort= |Datum=2005 |ISBN=3-528-25738-5}}&lt;/ref&gt;<del style="font-weight: bold; text-decoration: none;">.</del> Die Entwickler [[Andrew Birrell]] und [[Bruce Nelson]] erhielten dafür 1994 den [[ACM Software System Award]]. Der genaue Aufbau von RPC ist in RFC 1057 und RFC 5531 beschrieben.</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Der Grundgedanke von RPC wurde erstmals 1976 von James E. White im RFC 707 publiziert.&lt;ref&gt;{{RFC-Internet |Autor=James E. White |RFC=707 |Titel=A High-Level Framework for Network-Based Resource Sharing |Datum=1976-01-14 |Kommentar=''Proceedings of the 1976 National Computer Conference''}}&lt;/ref&gt; Eine der ersten Implementierungen ist ''Xerox Courier'', das ein Teil des ''Xerox Network Systems (XNS)'' ist und auch in [[NetWare|Novells Netware]] benutzt wird<ins style="font-weight: bold; text-decoration: none;">.</ins>&lt;ref&gt;{{Literatur |Autor=Andrew D. Birrell, Bruce Jay Nelson |Hrsg=Xerox Palo Alto Research Center |Titel=Implementing Remote Procedure Calls |<ins style="font-weight: bold; text-decoration: none;">Sammelwerk</ins>=ACM Transactions on Computer Systems <ins style="font-weight: bold; text-decoration: none;">|</ins>Band<ins style="font-weight: bold; text-decoration: none;">=</ins>2 <ins style="font-weight: bold; text-decoration: none;">|Nummer=</ins>1 <ins style="font-weight: bold; text-decoration: none;">|</ins>Seiten<ins style="font-weight: bold; text-decoration: none;">=</ins>39–49 |Ort= |Datum=1984 |Online=[http://www.cs.cmu.edu/~dga/15-712/F07/papers/birrell842.pdf <ins style="font-weight: bold; text-decoration: none;">PDF</ins>]}}&lt;/ref&gt;&lt;ref&gt;{{Literatur |Autor=Günther Bengel |Hrsg= |Titel=Grundkurs verteilte Systeme |Verlag=Vieweg und Teubner Verlag |Ort= |Datum=2005 |ISBN=3-528-25738-5}}&lt;/ref&gt; Die Entwickler [[Andrew Birrell]] und [[Bruce Nelson]] erhielten dafür 1994 den [[ACM Software System Award]]. Der genaue Aufbau von RPC ist in RFC 1057 und RFC 5531 beschrieben.</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Die am weitesten verbreitete Variante ist das ''ONC RPC ([[Open Network Computing]] Remote Procedure Call)'', das vielfach auch als Sun RPC bezeichnet wird. ONC RPC wurde ursprünglich durch [[Sun Microsystems]] für das ''[[Network File System]] (NFS)'' entwickelt. Für diese RPC-Variante findet sich unter anderem auch eine [[Implementierung]] in [[Linux]].</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Die am weitesten verbreitete Variante ist das ''ONC RPC ([[Open Network Computing]] Remote Procedure Call)'', das vielfach auch als Sun RPC bezeichnet wird. ONC RPC wurde ursprünglich durch [[Sun Microsystems]] für das ''[[Network File System]] (NFS)'' entwickelt. Für diese RPC-Variante findet sich unter anderem auch eine [[Implementierung]] in [[Linux]].</div></td> </tr> <!-- diff cache key dewiki:diff:1.41:old-191206568:rev-196169040:wikidiff2=table:1.14.1:ff290eae --> </table> Rolf acker