¼Ò¼³°°Àº ÀÚ¹Ù 4ºÎ  Á¦18Àå R M I  18.3.1 ¿ø°Ý °´Ã¼ÀÇ ÀÎÅÍÆäÀ̽º ÀÛ¼º  

 

    18.3.1 ¿ø°Ý °´Ã¼ÀÇ ÀÎÅÍÆäÀ̽º ÀÛ¼º

 

1´Ü°è´Â ¼­ºñ½ºÇÒ ¿ø°Ý °´Ã¼ÀÇ ÀÎÅÍÆäÀ̽º¸¦ ÀÛ¼ºÇÏ´Â ÀÏÀÔ´Ï´Ù. Ŭ¶óÀÌ¾ðÆ® ÇÁ·Î±×·¥ÀÌ ¿ø°Ý °´Ã¼ÀÇ ¸Þ¼­µå¸¦ È£ÃâÇϱâ À§Çؼ­´Â ½ÇÁ¦·Î ¿ø°Ý °´Ã¼°¡ ¾î¶² ¸Þ¼­µå¸¦ °¡Áö°í ÀÖ´ÂÁö ¾Ë¾Æ¾ß ÇÕ´Ï´Ù. ¼­¹ö´Â ¿ø°Ý °´Ã¼ÀÇ ¸Þ¼­µå¸¦ ¿ø°Ý °´Ã¼¿¡°Ô ¾Ë·ÁÁÖ±â À§Çؼ­ ÀÎÅÍÆäÀ̽º¸¦ ¸¸µé¾î Á¦°øÇÕ´Ï´Ù. ¿ø°Ý °´Ã¼ÀÇ ÀÎÅÍÆäÀ̽º´Â ¿ø°Ý °´Ã¼°¡ ½ÇÁ¦ Á¦°øÇÒ ¸ðµç ¸Þ¼­µåµéÀÇ ÇüŸ¦ Á¤ÀÇÇϰí ÀÖ½À´Ï´Ù. ÀÌ ÀÎÅÍÆäÀ̽º´Â Ŭ¶óÀÌ¾ðÆ®¿¡°Ô Á¦°øµÇ¾î¼­, Ŭ¶óÀÌ¾ðÆ®°¡ ¿ø°Ý °´Ã¼ÀÇ ÇüŸ¦ ÁüÀÛÇÒ ¼ö ÀÖ°Ô²û ÇØÁÝ´Ï´Ù. Ŭ¶óÀÌ¾ðÆ®°¡ RMI Registry·ÎºÎÅÍ ¹Ýȯ ¹Þ´Â ¿ø°Ý ÂüÁ¶ÀÚµµ ÀÌ·¯ÇÑ ÀÎÅÍÆäÀ̽ºÀÇ ÇüÅÂÀÔ´Ï´Ù. ¿ø°Ý °´Ã¼ÀÇ ÀÎÅÍÆäÀ̽º´Â ´ÙÀ½ÀÇ »çÇ×À» ¹Ýµå½Ã µû¶ó¾ß ÇÕ´Ï´Ù.

 

n        ¿ø°Ý ÀÎÅÍÆäÀ̽º¶ó´Â °ÍÀ» ¾Ë¸®±â À§ÇØ java.rmi.Remote ÀÎÅÍÆäÀ̽º¸¦ »ó¼Ó ¹Þ¾Æ¾ß ÇÑ´Ù

n        ¹Ýµå½Ã ¸ðµç ¸Þ¼­µåÀÇ Á¢±Ù ÁöÁ¤ÀÚ´Â publicÀ¸·Î ¼±¾ðÇØ¾ß ÇÑ´Ù

n        ¸ðµç ¸Þ¼­µå´Â java.rmi.RemoteException ŸÀÔÀÇ ¿¹¿Ü¸¦ ¹ß»ý½ÃŲ´Ù°í ¾Ë·Á¾ß ÇÑ´Ù

 

java.rmi.Remote ÀÎÅÍÆäÀ̽º´Â RMI¿¡¼­ »ç¿ëµÇ´Â ´ëºÎºÐÀÇ °´Ã¼µéÀÌ Á÷Á¢, °£Á¢ÀûÀ¸·Î ±¸ÇöÇÏ´Â ÃÖ»óÀ§ ÀÎÅÍÆäÀ̽ºÀÔ´Ï´Ù.

 

n        public interface Remote { };

 

 ÀÌ ÀÎÅÍÆäÀ̽º´Â ±¸ÇöÇØ¾ß ÇÒ ¸Þ¼­µå¸¦ ÇÑ °³µµ °¡Áö°í ÀÖÁö ¾Ê°í, ´Ü¼øÈ÷ ÀÌ °´Ã¼°¡ RMI¿¡¼­ »ç¿ëµÉ °ÍÀÓÀ» ¾Ë·ÁÁִ ǥ½Ã[Marker]ÀÎÅÍÆäÀ̽º ÀÔ´Ï´Ù. (ÀÌ¿Í ºñ½ÁÇÑ ¿ªÇÒÀ» ÇÏ´Â ÀÎÅÍÆäÀ̽º¸¦ 12Àå¿¡¼­ »ìÆì º¸¾Ò¾ú½À´Ï´Ù. ¹Ù·Î java.io.Serializable ÀÎÅÍÆäÀ̽ºÀÔ´Ï´Ù. »ý°¢³ª½ÃÁÒ?) ÀÌ ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÔÀ¸·Î½á ¿ì¸®°¡ ¸¸µé ¿ø°Ý °´Ã¼ÀÇ ÂüÁ¶ÀÚ°¡ Ŭ¶óÀÌ¾ðÆ®¿¡°Ô Àü¼ÛÀÌ µÉ ¼ö ÀÖ½À´Ï´Ù.

 

¶ÇÇÑ, ¿ø°Ý °´Ã¼°¡ Á¦°øÇÏ´Â ¸ðµç ¸Þ¼­µåµéÀº Ŭ¶óÀÌ¾ðÆ®¿¡°Ô ¼­ºñ½º Áß¿¡ ¹ß»ýÇÒ ¼ö ÀÖ´Â ³×Æ®¿öÅ© Àå¾Ö¿Í °°Àº ¿¹¿Ü »óȲ¿¡ ´ëÇØ, Ŭ¶óÀÌ¾ðÆ® ÇÁ·Î±×·¥ÀÌ ´ëóÇÒ ¼ö ÀÖµµ·Ï java.rmi.RemoteExceptionÀ» ¹ß»ýÇÑ´Ù°í ¾Ë·ÁÁà¾ß ÇÕ´Ï´Ù. ÀÌ RemoteExceptionÀº RMI °ü·Ã Ŭ·¡½ºµéÀÌ ¹ß»ý½ÃŰ´Â ´ëºÎºÐÀÇ ¿¹¿ÜµéÀÇ ½´ÆÛ Ŭ·¡½º ÀÔ´Ï´Ù.

 

±×·¯¸é, ½ÇÁ¦·Î Çö±Ý ÀÔÃâ±Ý±â ÇÁ·Î±×·¥À» À§ÇØ ¿ø°Ý °´Ã¼°¡ Á¦°øÇÒ ¸Þ¼­µå¸¦ Á¤ÀÇÇØ³õÀº ÀÎÅÍÆäÀ̽º¸¦ ÀÛ¼ºÇØ º¸°Ú½À´Ï´Ù.

 

Bank.java (¼­¹ö¿Í Ŭ¶óÀÌ¾ðÆ®¿¡¼­ »ç¿ëÇÒ ÀÎÅÍÆäÀ̽º¸¦ »ý¼ºÇÑ ¿¹Á¦)

import java.rmi.*;

public interface Bank extends Remote {

   public int getBalance() throws RemoteException;

   public int deposit(int amount) throws RemoteException;

   public int withdraw(int amount) throws RemoteException;

}

C:\JavaExample\18>javac Bank.java

 

BankÀÎÅÍÆäÀ̽º´Â ¿ø°Ý °´Ã¼ÀÓÀ» ¾Ë·Á ÁÖ´Â RemoteÀÎÅÍÆäÀ̽º¸¦ »ó¼Ó ¹Þ°í ÀÖ½À´Ï´Ù.

 

n        Public interface Bank extends Remote {

 

 Àܾ×À» È®ÀÎÇϰí, ÀÔ±ÝÀ» ÇØÁÖ°í, Ãâ±ÝÀ» ÇØÁÖ´Â abstract¸Þ¼­µåµéÀ» Â÷·Ê·Î »ý¼ºÇÏ¿´½À´Ï´Ù.

 

n        public int getBalance() throws RemoteException;

n        public int deposit(int amount) throws RemoteException;

n        public int withdraw(int amount) throws RemoteException;

 

±× ¿Ü¿¡, ¿¹Á¦¿¡ Á¤ÀǵǾî ÀÖ´Â ¸ðµç ¸Þ¼­µå°¡ RemoteExceptionÀ» ¹ß»ý½ÃŲ´Ù´Â °Í ¸»°í´Â, ÀÚ¹Ù¿¡¼­ÀÇ ÀϹÝÀûÀÎ ÀÎÅÍÆäÀ̽ºÀÇ ¼±¾ð°ú ´Ù¸¥ Á¡ÀÌ ¾ø½À´Ï´Ù.

 

¢Ñ  1 ´Ü°è

¿ø°Ý °´Ã¼°¡ ±¸ÇöÇÒ ÀÎÅÍÆäÀ̽º ÀÛ¼º½Ã ¹Ýµå½Ã ÁöÄÑ¾ß ÇÒ ±ÔÄ¢

1. java.rmi.Remote ÀÎÅÍÆäÀ̽º »ó¼Ó

2. ¸ðµç ¸Þ¼­µå´Â public Á¢±Ù ÁöÁ¤ÀÚ·Î ¼±¾ð

3. java.rmi.RemoteExceptionÀ» ¹ß»ý



jabookÀúÀÚ¸íÇÔ
Á¦¸ñ:¼Ò¼³°°ÀºÀÚ¹Ù4ºÎ
ÀúÀÚ:ÃÖ¿µ°ü