การเรียกใช้วิธีการระยะไกล เป็นวิธีที่โปรแกรมเมอร์ใช้ประโยชน์จาก และสภาพแวดล้อมการพัฒนาจากระยะไกล ทั้งหมดนี้เกี่ยวกับวิธีการ วัตถุ บนคอมพิวเตอร์เครื่องอื่นโต้ตอบกันในเครือข่ายแบบกระจาย ในบทความนี้เกี่ยวกับ Remote Method Invocation ใน Java ฉันจะบอกวิธีสร้างแอปพลิเคชัน RMI บนไคลเอนต์และเซิร์ฟเวอร์
หัวข้อด้านล่างนี้กล่าวถึงในบทความนี้:
มาเริ่มกันเลย!
RMI ใน Java คืออะไร?
RMI (Remote Method Invocation) เป็น API ที่มีกลไกในการสร้างแอปพลิเคชันแบบกระจายใน . RMI อนุญาตให้อ็อบเจ็กต์เรียกใช้เมธอดบนอ็อบเจ็กต์ที่รันในอ็อบเจ็กต์อื่น . การเรียกใช้วิธีการระยะไกลจัดเตรียมการสื่อสารระยะไกลระหว่างแอปพลิเคชันโดยใช้วัตถุสองชิ้น ต้นขั้ว และ โครงกระดูก .
ทำความเข้าใจกับ Stub และ Skeleton
วัตถุต้นขั้วบนเครื่องไคลเอนต์สร้างบล็อกข้อมูลและส่งข้อมูลนี้ไปยังเซิร์ฟเวอร์ บล็อกประกอบด้วย:
- ตัวระบุของวัตถุระยะไกลที่จะใช้
- ชื่อเมธอดที่จะเรียกใช้
- พารามิเตอร์ไปยัง JVM ระยะไกล
วัตถุโครงกระดูก
วัตถุโครงกระดูกส่งคำขอจากวัตถุต้นขั้วไปยังวัตถุระยะไกล ดำเนินงานต่อไปนี้:
เรียกวิธีการที่ต้องการบนวัตถุจริงที่มีอยู่บนเซิร์ฟเวอร์
java เมื่อใดควรใช้สิ่งนี้
ส่งต่อพารามิเตอร์ที่ได้รับจากวัตถุต้นขั้วไปยังเมธอด
ด้วยสิ่งนี้ให้ไปต่อและดูวิธีสร้างแอปพลิเคชัน RMI
ขั้นตอนในการสร้าง RMI Application
ขั้นตอนด้านล่างช่วยให้คุณสร้างแอปพลิเคชัน RMI:
- การกำหนดรีโมต อินเตอร์เฟซ
- การใช้งานอินเทอร์เฟซระยะไกล
- การสร้าง Stub และ Skeleton วัตถุ จากคลาสการนำไปใช้โดยใช้ RMIC (RMI Complier)
- เริ่มการทำงานของรีจิสทรี RMI
- สร้างและดำเนินการโปรแกรมแอ็พพลิเคชันเซิร์ฟเวอร์
- สร้างและดำเนินการโปรแกรมแอปพลิเคชันไคลเอนต์
ตอนนี้มาดูรายละเอียดของขั้นตอนเหล่านี้กัน
ขั้นตอนที่ 1: การกำหนดอินเทอร์เฟซระยะไกล
สิ่งแรกที่เราต้องทำคือสร้างไฟล์ อินเตอร์เฟซ . สิ่งนี้จะให้คำอธิบายของวิธีการที่สามารถเรียกใช้โดยไคลเอนต์ระยะไกล อินเทอร์เฟซนี้ควรขยายอินเทอร์เฟซระยะไกลและต้นแบบวิธีการภายในอินเทอร์เฟซควรโยน RemoteException
// การสร้างการนำเข้าอินเทอร์เฟซการค้นหา java.rmi * ส่วนต่อประสานสาธารณะการค้นหาขยายระยะไกล {// การประกาศวิธีต้นแบบการสืบค้นสตริงสาธารณะ (การค้นหาสตริง) พ่น RemoteException}
ขั้นตอนที่ 2: การใช้งานอินเทอร์เฟซระยะไกล
ขั้นตอนต่อไปคือการใช้งานอินเทอร์เฟซระยะไกล ในการใช้งานอินเทอร์เฟซระยะไกลคลาสควรขยายไปที่ คลาส UnicastRemoteObject ของแพ็คเกจ java.rmi . นอกจากนี้ค่าเริ่มต้น ผู้สร้าง จำเป็นต้องสร้างขึ้นเพื่อโยนไฟล์ java.rmi.RemoteException จากตัวสร้างหลัก
// โปรแกรม Java เพื่อใช้การนำเข้าอินเทอร์เฟซการค้นหา java.rmi. * import java.rmi.server * คลาสสาธารณะ SearchQuery ขยาย UnicastRemoteObject ใช้ Search {// Default constructor เพื่อโยน RemoteException จากตัวสร้างหลัก SearchQuery () พ่น RemoteException {super )} // การใช้งานส่วนต่อประสานการสืบค้นสาธารณะ String query (การค้นหาสตริง) พ่น RemoteException {String result if (search.equals ('Reflection in Java')) result = 'true' else result = 'false' return result}}
ขั้นตอนที่ 3: การสร้างวัตถุ Stub และ Skeleton จากคลาสการนำไปใช้งานโดยใช้ rmic
เครื่องมือ RMIC ใช้เพื่อเรียกใช้คอมไพเลอร์ RMI ที่สร้างวัตถุ Stub และ Skeleton ต้นแบบคือชื่อคลาส RMIC
ขั้นตอนที่ 4: เริ่ม RMIregistry
คุณต้องเริ่มบริการรีจิสทรีโดยออกคำสั่งที่พรอมต์คำสั่งเริ่ม RMIregistry
ขั้นตอนที่ 5: สร้างและดำเนินการโปรแกรมแอ็พพลิเคชันเซิร์ฟเวอร์
ขั้นตอนต่อไปคือการสร้างโปรแกรมแอ็พพลิเคชันเซิร์ฟเวอร์และดำเนินการบนพรอมต์คำสั่งแยกต่างหาก
โทรโดยอ้างอิงใน c ++
โปรแกรมเซิร์ฟเวอร์ใช้ createRegistry เมธอดของคลาส LocateRegistry เพื่อสร้าง rmiregistry ภายในเซิร์ฟเวอร์ JVM โดยมีหมายเลขพอร์ตส่งเป็นอาร์กิวเมนต์
เมธอด rebind ของคลาส Naming ใช้เพื่อผูกอ็อบเจ็กต์ระยะไกลกับชื่อใหม่
// program for server application import java.rmi. * import java.rmi.registry. * public class SearchServer {public static void main (String args []) {ลอง {// สร้างออบเจ็กต์ของคลาสการใช้งานอินเทอร์เฟซ Search obj = SearchQuery ใหม่ () // rmiregistry ภายในเซิร์ฟเวอร์ JVM พร้อม // หมายเลขพอร์ต 1900 LocateRegistry.createRegistry (1900) & ltp style = 'text-align: justify' & gt // ผูกวัตถุระยะไกลด้วยชื่อ // edureka Naming.rebind ( 'rmi: // localhost: 1900' + '/ edureka', obj)} catch (ข้อยกเว้น ae) {System.out.println (ae)}}}
ขั้นตอนที่ 6: สร้างและดำเนินการโปรแกรม Client Application
ขั้นตอนสุดท้ายคือการสร้างโปรแกรม Client Application และดำเนินการบนพรอมต์คำสั่งแยกต่างหาก วิธีการค้นหาของคลาสการตั้งชื่อใช้เพื่อรับการอ้างอิงของวัตถุ Stub
โปรแกรมไคลเอนต์และเซิร์ฟเวอร์ข้างต้นทำงานบนเครื่องเดียวกันและนั่นคือเหตุผลที่ใช้ localhost ในการเข้าถึงวัตถุระยะไกลจากเครื่องอื่น localhost จะถูกแทนที่ด้วยที่อยู่ IP ที่มีวัตถุระยะไกลอยู่
ดังนั้นเราจึงมาถึงจุดสิ้นสุดของ RMI ใน บทความ. ฉันหวังว่าคุณจะพบว่ามันให้ข้อมูลและช่วยคุณในการทำความเข้าใจพื้นฐาน
ตรวจสอบไฟล์ โดย Edureka บริษัท การเรียนรู้ออนไลน์ที่เชื่อถือได้ซึ่งมีเครือข่ายผู้เรียนที่พึงพอใจมากกว่า 250,000 คนกระจายอยู่ทั่วโลก เราอยู่ที่นี่เพื่อช่วยคุณในทุกขั้นตอนในการเดินทางของคุณสำหรับการเป็นนอกเหนือจากคำถามสัมภาษณ์ java นี้เราได้จัดทำหลักสูตรที่ออกแบบมาสำหรับนักเรียนและผู้เชี่ยวชาญที่ต้องการเป็น Java นักพัฒนา หลักสูตรนี้ออกแบบมาเพื่อให้คุณเริ่มต้นการเขียนโปรแกรม Java และฝึกอบรมแนวคิด Java ทั้งหลักและขั้นสูงพร้อมกับเฟรมเวิร์ก Java ต่างๆเช่น Hibernate & Spring
มีคำถามสำหรับเรา? โปรดระบุไว้ในส่วนความคิดเห็นของบทความ“ RMI in Java” นี้ และเราจะติดต่อกลับโดยเร็วที่สุด