130 likes | 388 Views
Remote Procedure Calls (RPC ). ระบบสารสนเทศแบบกระจาย Distributed Information System. การเรียกใช้โพรซีเยอร์ระยะไกล. Remote Procedure Call (RPC). เป็นโปรโตคอลที่โปรแกรมหนึ่ง สามารถขอ บริการจากโปรแกรมที่ตั้งอยู่ ในคอมพิวเตอร์ อีก เครื่องใน เครือข่าย
E N D
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 การเรียกใช้นี้เป็นการทำงานที่ เกิดขึ้นในเครื่องผู้ใช้บริการเอง ซึ่งอาจมีการส่งพารามิเตอร์ได้ตามปกติ • ขั้นตอนที่ 2Client 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