Remote Procedure Calls (RPC) การเรียกใช้โพรซีเยอร์ระยะไกล อ.คเชนทร์ ซ่อนกลิ่น ระบบสารสนเทศแบบกระจาย Distributed Information System
Remote Procedure Call (RPC) เป็นโปรโตคอลที่โปรแกรมหนึ่งสามารถขอบริการจากโปรแกรมที่ตั้งอยู่ในคอมพิวเตอร์ อีกเครื่องในเครือข่าย RPC ใช้แบบจำลองลูกข่าย/แม่ข่าย โปรแกรมที่ขอเป็นลูกข่ายและโปรแกรมที่ให้บริการ เป็นแม่ข่าย RPC เป็นปฏิบัติการแบบพร้อมกันที่ต้องการให้โปรแกรมที่ขอได้รับการตอบ จนกระทั่งผลลัพธ์จาก remote procedure ได้รับกลับมา
แนวคิดของ RPC แนวความคิดของ RPC คือ ทำให้การเรียกใช้โพรซีเยอร์ของผู้ให้บริการ มีความ คล้ายคลึงกับการเรียกใช้ฟังก์ชั่นทั่วไปให้มากที่สุด ในรูปแบบที่ง่ายที่สุด การที่จะเรียกใช้โพรซีเยอร์ของโฮสที่อยู่ไกลออกไปได้นั้น โปรแกรมของผู้ใช้บริการ จะต้องถูกนำมาเชื่อมต่อเข้ากับโพรซีเยอร์ที่เป็นไลบราลี่ (Library Procedure) เรียกว่า “ Client Stub” ทางฝั่งผู้ให้บริการ ก็จะมีโพรซีเยอร์ที่เป็นไลบราลี่ เรียกว่า “Server Stub”
แนวคิดของ RPC โพรซีเยอร์เหล่านี้ จะซ่อนข้อเท็จจริงเอาไว้ว่าการเรียกใช้โพรซีเยอร์ของผู้ใช้บริการนั้น ไม่เกี่ยวข้องกับระบบเครือข่ายเลย
ขั้นตอนการทำงานของการทำ RPC ขั้นตอนที่ 1 คือ การที่ผู้ใช้บริการเรียกใช้ Client Stub การเรียกใช้นี้เป็นการทำงานที่ เกิดขึ้นในเครื่องผู้ใช้บริการเอง ซึ่งอาจมีการส่งพารามิเตอร์ได้ตามปกติ ขั้นตอนที่ 2 Client Stub จัดการจัดรูปแบบของพารามิเตอร์ให้อยู่ในรูปของ Message และเรียกใช้ระบบปฎิบัติการเพื่อจัดการส่ง Message นั้นการจัดรูปแบบของพารามิเตอร์นี้ เรียกว่า “Marshaling”
ขั้นตอนการทำงานของการทำ RPC ขั้นตอนที่ 3 Kernel จัดการส่ง Message จากผู้ใช้บริการไปยังผู้ให้บริการ ขั้นตอนที่ 4 Kernel จัดการส่ง Package ที่ได้รับเข้ามา ไปยัง Server stub ขั้นตอนที่ 5 Server Stub จะเรียกใช้โพรซีเยอร์ของผู้ให้บริการพร้อมทั้งส่ง พารามิเตอร์ไปให้ด้วย การตอบรับก็จะทำในทิศทางที่ย้อนกลับกัน
ขั้นตอนการทำงานของการทำ RPC รายละเอียดเพิ่มเติม โพรซีเยอร์ของผู้ใช้บริการซึ่งเขียนขึ้นมาโดยผู้ใช้นั้น จะใช้วิธีการเรียกใช้ โพรซีเยอร์ไปยัง Client Stub ซึ่งมีชื่อเดียวกันกับโพรซีเยอร์ในเครื่องผู้ให้บริการ เนื่องจากโพรซีเยอร์ของผู้ใช้ และ Client Stub อยู่ในเครื่องผู้ใช้ด้วยกัน ทั้งคู่ การวิ่งผ่านพารามิเตอร์จึงเกิดขึ้นตามวิธีการปกติ ในส่วนของโพรซีเยอร์ในเครื่องผู้ให้บริการ ก็มีการเรียกใช้และส่งผ่าน พารามิเตอร์ตามปกติเช่นเดียวกัน
ข้อจำกัดของ RPC การส่งผ่านพารามิเตอร์ ที่เป็นพอยเตอร์นั้นเป็นไปไม่ได้ เพราะโพรซีเยอร์ ทั้งสองนั้นไม่ได้อยู่ในเครื่องเดียวกัน
RPC Process อ้างอิง :: http://technet.microsoft.com/en-us/library/cc738291(v=ws.10).aspx
ระบบที่ใช้งาน RPC RPC มีหลายแบบจำลองและการที่นิยมมากคือ Distributed Computing Environment (DCE) ของ Open Software Foundation มีการกำหนด RPC เป็น มาตรฐานโดย Institute of Electrical and Electronics Engineers ใน ISO Remote Procedure Call Specification, ISO/IEC CD 11578 N6561, ISO/IEC, November 1991 RPC มีขอบเขตครอบคลุม Transport Layer และ Application Layer ใน แบบจำลอง Open Systems Interconnection (OSI) ของการสื่อสารเครือข่าย และ RPC ทำให้การพัฒนาโปรแกรมประยุกต์ที่รวมหลายโปรแกรมที่กระจายใน เครือข่ายง่ายขึ้น
แบบฝึกหัดท้ายบทที่ 7 1. จงอธิบายถึงความหมายของ “การเรียกใช้โพรซีเยอร์ระยะไกล (Remote Procedure Calls (RPC))” 2. “Marshaling” คืออะไร 3. จงอธิบายกระบวนการสื่อสารระหว่าง Client Stub และ Server Stub