RMI Sample ¹× Á¶¾ð


[ ´ÙÀ½ ±Ûµé ] [ À̾ ±Û¿Ã¸®±â(´äÇϱâ) ] [ ÀÚ¹Ù ¹¯°í ´äÇϱâ ]

±Û¾´ÀÌ :ÀÌ¿ø¿µ 1998³â 11¿ù 03ÀÏ 14:13:39

In Reply to: ÀÌ¿øÇü´Ô ´Ù½ÃÇѹø¸¸ ²ÀºÁÁÖ¼¼¿ä posted by ÀÌ°­ÈÆ on 1998³â 10¿ù 26ÀÏ 16:47:50:


1998³â 11¿ù 3ÀÏ ¿ÀÈÄ 1½Ã 30ºÐ°æ¿¡´Â gdmo.ee.yeungnam.ac.kr:7943¹ø Port°¡
¶° ÀÖÁö ¾Ê¾Æ Test¸¦ ÇØ º¼ ¼ö ¾ø³×¿ä..



1. RMI HelloServer Sample Test.
RMI HelloServer SampleÀ» °¡Áö°í ¸ÕÀú TestÇØ º¸½Ã±â ¹Ù¶ø´Ï´Ù.
HelloServer ¿¹Á¦¸¦ °¡Áö°í ÇØ º¸½Å ÈÄ ¸¸¾à Á¤»óÀûÀ¸·Î µÈ´Ù¸é
°­ÈÆ´ÔÀÌ ¸¸µç ¾îµò°¡¿¡ ¿ÀŸ°¡ ÀÖÀ» °Ì´Ï´Ù.
Sample˼ http://java.freehosting.co.kr/java/messages/2903.html
¿¡¼­ ±¸ÇÒ ¼ö ÀÖ½À´Ï´Ù.


Note: HelloApplet.java¿¡ ¿ÀŸ°¡ ÀÖ½À´Ï´Ù.
--------------------------------
HelloInterface server =
(HelloInterface) Naming.lookup("rmi://power:" + PORT + "/HelloServer");
=====>ÀÌ ºÎºÐÀ» ¾Æ·¡¿Í °°ÀÌ ÇØ¾ß ÇÕ´Ï´Ù.
HelloInterface server =
(HelloInterface) Naming.lookup("rmi://" + getCodeBase().getHost() + ":" + PORT + "/HelloServer");
ÀÌ¹Ì ±×·¸°Ô °íÃļ­ »ç¿ëÇϼ̴õ±º¿ä..


ÀÌ¹Ì ÇØ º¸¼ÌÁÒ? ÇÏÁö¸¸ MyView1.java¿Í
°°ÀÌ ÇÏÁö ¸¶½Ã°í HelloServer¸¸ µû·Î ÇØ º¸¼¼¿ä..



2. Registry Binding ¼³Á¤ º¯°æ
¸¸¾à HelloServer°¡ Á¤»óÀûÀ¸·Î ¾ÈµÈ´Ù¸é, ù¹ø° »ý°¢ÇØ º¼ ¼ö ÀÖ´Â °ÍÀº
¾Æ¸¶ ±×°ÍÀº Registry¿¡ BindingÇÑ Á¤º¸¿Í Client°¡ ¿äûÇÑ Á¤º¸°¡ Ʋ·Á¼­
ÀÏ°Ì´Ï´Ù.


ÀÌ·¸°Ô °íÃĺ¸¼¼¿ä.
Server´ÜÀÇ HelloServer.java¸¦ ±×´ë·Î »ç¿ëÇϼ¼¿ä.
HelloApplet.java´Â ¾Æ·¡¿Í °°ÀÌ °íÃÄ º¸µµ·Ï ÇսôÙ.


[HelloApplet.java]
import java.awt.*;
import java.rmi.*;
public class HelloApplet extends java.applet.Applet {
private final int PORT = 7943;
String message ;
TextArea t;
public void init() {
t = new TextArea();
setLayout(new BorderLayout());
add("Center", t);
try {
java.net.InetAddress inetAddress =
java.net.InetAddress.getByName(getCodeBase().getHost());
HelloInterface server =
(HelloInterface) Naming.lookup("rmi://" + inetAddress.getHostAddress() + ":" + PORT + "/HelloServer");
String message = (String)server.sayHello();
t.append(message + "\n");
} catch (Exception e) {
System.out.println("HelloApplet: an exception occurred:");
e.printStackTrace();
}
}
}


Áï,
HelloInterface server =
(HelloInterface) Naming.lookup("rmi://" + getCodeBase().getHost() + ":" + PORT + "/HelloServer");
ºÎºÐÀ» ¾Æ·¡Ã³·³ °íÃƽÀ´Ï´Ù.
java.net.InetAddress inetAddress =
java.net.InetAddress.getByName(getCodeBase().getHost());
HelloInterface server =
(HelloInterface) Naming.lookup("rmi://" + inetAddress.getHostAddress() + ":" + PORT + "/HelloServer");
¿Í °°ÀÌ °íÃļ­ "rmi://165.229.66.12:7943/HelloServer"¿Í °°Àº À̸§À¸·Î
lookupÀ» ÇÏ°Ô²û Çϴ°ÅÁÒ. (165.229.66.12°¡ ip address ¸ÂÁÒ?)


Client¿¡¼­´Â FQDNÀ¸·Î ¼­¹ö¸¦ ãÁö ¸¶½Ã°í IP Address·Î ¼­¹ö¸¦ ãµµ·Ï ÇØ
º¸¼¼¿ä. Áï,



3. ¶Ç Çϳª »ý°¢ÇØ º¼ ¼ö ÀÖ´Â °ÍÀº gdmo.ee.yeungnam.ac.kr°¡ Dual IP Address¸¦ »ç¿ëÇÏ´Â °æ¿ì
ÀÔ´Ï´Ù. °°Àº ¸Ó½ÅÀÌÁö¸¸ ¼­·Î ´Ù¸¥ µÎ°³ÀÇ IP Address ¸¦ °¡Áö°í ÀÖ´Â °æ¿ìÁö¿ä.
ÀÌ °æ¿ì RMI Server¸¦ bindingÇÑ ip¿Í getCodeBase().getHost()ÀÇ ip°¡ ´Ù¸¦ °æ¿ì
security exception error°¡ ³³´Ï´Ù.
ÇÏÁö¸¸ ´ëºÎºÐÀÇ Çб³ Àü»ê½Ç ¸Ó½ÅÀº Ưº°ÇÑ °æ¿ì°¡ ¾Æ´Ï¸é ÀÌ·¸°Ô ÇÏÁø ¾ÊÀº µí Çϳ׿ä.



PS:±âŸ..
MyView1.java ¼Ò½º°¡ ¸¹ÀÌ ÁöÀúºÐ(?)Çϳ׿ä.


init()ºÎºÐ¿£´Â GUI awt component¸¸ add()ÇϽðí,


start()¿¡¼­´Â RMI Server¸¦ bindingÇÏ´Â ºÎºÐ¸¸ ³ÖÀ¸¼¼¿ä.
±×¸®°í, bindingÀÌ ½ÇÆÐ ÇßÀ» °æ¿ì ¹Ù·Î returnÇϵµ·Ï Çϼż­
bindingÀÌ µÇÁöµµ ¾ÊÀº Serverteam Reference¸¦ °¡Áö°í
¸·(?) call()Çϵµ·Ï Çؼ­ null pointer exceptionÀÌ ³ª´Â °ÍÀ»
¸·À¸¼Å¾ßÁö¿ä....
bindingÀÌ Á¦´ë·Î µÆÀ» °æ¿ì¸¸ ½ÇÁ¦ È£ÃâÀÌ ÀÏ¾î ³ªµµ·Ï Çϼ¼¿ä.
±×¸®°í À̺κп¡¼­ ¼­¹ö¿¡°Ô '³ª Áö±Ý µé¾î ¿Ô¼Ò'¿Í °°Àº
ÇÁ·Î±×·¥ ·ÎÁ÷»ó ÇÊ¿äÇÑ ºÎºÐµµ Ãß°¡ÇϽñ¸¿ä.


±×¸®°í, stop() ºÎºÐÀº rmi reference¸¦ ÀüºÎ null·Î settingÇϼ¼¿ä.
ÀÌ·¸°Ô ÇÏÁö ¾Ê¾Æµµ »ó°üÀº ¾øÀ¸³ª client°¡ reference¸¦ °®°í ÀÖÀ¸¸é
¿ø°ÝÁö RMI Server°¡ thread·Î ´çºÐ°£ °è¼Ó ³²¾Æ ÀÖ°Ô µË´Ï´Ù.
Remote Object°£ÀÇ Garbage CollectionÀÌ ¹Ù·Î¹Ù·Î ÀϾ ¼ö ÀÖ°Ô ÇÏ´Â °ÅÁÒ.
¶Ç ·ÎÁ÷»ó ÇÊ¿äÇÏ´Ù¸é, '³ª ³ª°©´Ï´Ù'¿Í °°Àº Message󸮸¦ ÇØ ÁÖ½Ã¸é µÇÁÒ.


destory()ºÎºÐÀº Ưº°È÷ ÇÏ½Ç °ÍÀº ¾ø½À´Ï´Ù¸¸ AppletÀÌ ¿ÏÀüÈ÷ ¾øÀÌÁö´Â °æ¿ì¿¡
ÇÁ·Î±×·¥ ·ÎÁ÷»ó ÇÊ¿äÇÑ ºÎºÐÀ» ³ÖÀ¸¼¼¿ä.



´ÙÀ½ ±Ûµé:



À̾ ±Û¿Ã¸®±â(´äÇϱâ)

À̸§:
E-Mail:
Á¦¸ñ:
³»¿ë:
HTML ÅÂ±× Æ÷ÇÔ ¿©ºÎ: HTML ¹®¼­ÀÏ °æ¿ì üũ
°ü·Ã URL(¼±ÅÃ):
URL Á¦¸ñ(¼±ÅÃ):
°ü·Ã À̹ÌÁö URL:


[ ´ÙÀ½ ±Ûµé ] [ À̾ ±Û¿Ã¸®±â(´äÇϱâ) ] [ ÀÚ¹Ù ¹¯°í ´äÇϱâ ]