ºê¶ó¿ìÀú ÀÎÅÍÆäÀ̽º : NCSA Mosaic CCI¿Í NCAPI

½Å¸í±â
305-350 ´ëÀü±¤¿ª½Ã À¯¼º±¸ °¡Á¤µ¿ 161¹øÁö
Çѱ¹ÀüÀÚÅë½Å¿¬±¸¼Ò ÇÁ·ÎÅäÄݱâ¼ú¿¬±¸½Ç
E-mail : mkshin@pec.etri.re.kr
URL : http://pec.etri.re.kr/~mkshin/
Abstract:
WWWÀº ÀÎÅͳݻ󿡼­ ÇöÀç °¡Àå ¸¹ÀÌ ÀÌ¿ëµÇ°í ÀÖ´Â ÇÏÀÌÆÛ¹Ìµð¾î Á¤º¸°Ë»ö ½Ã½ºÅÛÀ¸·Î¼­ ±× ±â´ÉÀº ´Ü¼øÈ÷ Á¤º¸°Ë»ö µµ±¸ Â÷¿øÀ» ³Ñ¾î ÀÎÅͳݿ¡¼­ »ç¿ëµÇ´Â ¸ðµç ÀÀ¿ëÀÇ GUI·Î Á¡Â÷ È®»êµÇ¾î °¡°íÀÖ´Â Ãß¼¼ÀÌ´Ù. ƯÈ÷ ÃÖ±Ù¿¡´Â WWW µ¿±â½Ä °øµ¿ÀÛ¾÷(synchronous collaboration)¿¡ °üÇÑ Á߿伺ÀÌ Å©°Ô ´ëµÎµÇ°í ÀÖÀ¸¸ç, ¿ÜºÎ ÀÀ¿ë°úÀÇ ÅëÇÕ°ú À̸¦ À§ÇÑ ¿ø°Ý Á¦¾î¸¦ À§Çؼ­ Ŭ¶óÀ̾ðÆ®Ãø¿¡¼­ ¾î¶»°Ô API¸¦ Áö¿øÇÒ °ÍÀΰ¡¿¡ ´ëÇÑ ¿¬±¸°¡ Ȱ¹ßÈ÷ ÁøÇàµÇ°í ÀÖ´Ù. WWWÀÇ ´ëÇ¥Àû ºê¶ó¿ìÀúÀÎ NCSA Mosaic°ú Netscape´Â ÀÌ·¯ÇÑ WWW Ŭ¶óÀ̾ðÆ®ÃøÀÇ ±â´É È®ÀåÀ» À§ÇØ °¢°¢ CCI(Common Client Interface)¿Í NCAPI(Netscape Client API)¶õ ÀÎÅÍÆäÀ̽º·Î API¸¦ »ç¿ëÇÑ´Ù. º» ¹ßÇ¥¿¡¼­´Â ÃÖ±Ù WWW °ü·Ã ¿¬±¸Áß ¸¹Àº ºñÁßÀ» Â÷ÁöÇϰí ÀÖ´Â NCSA Mosaic CCI¿Í NCAPI¸¦ ºÐ¼®Çϰí, À̸¦ ÀÌ¿ëÇÑ ¾ÕÀ¸·ÎÀÇ Àü¸Á°ú ÇöÀç °³¹ßµÈ ÀÀ¿ë ÇÁ·Î±×·¥µéÀ» ¼Ò°³ÇÑ´Ù.
Keywords:
NCSA Mosaic CCI(Common Client Interface), NCAPI(Netscape Client API), API(Application Programming Interface), Synchronous Collaboration

1. ¼­·Ð

ÀÎÅͳÝÀº Àü¼¼°è 4õ¸¸¸íÀÌ ³Ñ´Â »ç¿ëÀÚ¿¡°Ô ´Ù¾çÇÑ Á¤º¸¸¦ Á¦°øÇϰí ÀÖ´Ù. WWWÀº ÀÎÅͳݻ󿡼­ ÇöÀç °¡Àå ¸¹ÀÌ »ç¿ëµÇ´Â ÇÏÀÌÆÛ¹Ìµð¾î Á¤º¸°Ë»ö ½Ã½ºÅÛÀ¸·Î ±× ±â´ÉÀº ´Ü¼øÈ÷ Á¤º¸°Ë»ö µµ±¸ Â÷¿øÀ» ³Ñ¾î ÀÎÅͳݻ󿡼­ »ç¿ëµÇ´Â ¸ðµç ¼­ºñ½º(ÀÀ¿ë)ÀÇ GUI·Î Á¡Â÷ È®»êµÂ¾î °¡°í ÀÖ´Â Ãß¼¼ÀÌ´Ù. ÃÖ±Ù W3C¸¦ Áß½ÉÀ¸·Î ÇÑ WWW NG(Next Generation)ÀÇ ¿¬±¸ºÐ¾ß¿Í ÁÖ¿ä °æÇâÀº ´ÙÀ½°ú °°´Ù.
¿ÜºÎ ÀÀ¿ë°ú WWW Ŭ¶óÀ̾ðÆ®(ºê¶ó¿ìÀú)ÀÇ ÅëÇÕ, À̸¦ À§ÇÑ °øµ¿ÀÛ¾÷(collaboration), ¿ø°ÝÁ¦¾î(remote control)¸¦ À§Çؼ­´Â API(Appplication Programming Interface)°¡ ÀÌ¿ëµÇ¸ç, ÇöÀç WWW°ú °ü·ÃÇÑ ºÐ¾ßÁß ¸¹Àº ¿¬±¸°¡ ÀÌ·ç¾îÁö°í ÀÖ´Â ºÐ¾ßÁß ÇϳªÀ̱⵵ ÇÏ´Ù. º» ¹ßÇ¥¿¡¼­´Â ÃÖ±Ù WWW °ü·Ã ¿¬±¸Áß ¸¹Àº ºñÁßÀ» Â÷ÁöÇϰí ÀÖ´Â NCSA Mosaic CCI¿Í NCAPI¸¦ ºÐ¼®Çϰí, À̸¦ ÀÌ¿ëÇÑ ¾ÕÀ¸·ÎÀÇ Àü¸Á°ú ÇöÀç °³¹ßµÈ ÀÀ¿ë ÇÁ·Î±×·¥µéÀ» ¼Ò°³ÇÑ´Ù.

2. CGIÀÇ Á¦¾à°ú API

CGI(Common Gateway Interface)´Â HTTP ¼­¹ö·ÎºÎÅÍ °ÔÀÌÆ®¿þÀÌ ÇÁ·Î±×·¥À» ½ÇÇà½ÃÅ´À¸·Î¼­ information request¸¦ ó¸®ÇÏ´Â ´Ü¼øÇÏ°í »ç¿ëÇÏ±â Æí¸®ÇÑ ¹æ¹ýÀ¸·Î, ¼­¹ö ±â´É È®ÀåÀ» À§ÇÑ °ÔÀÌÆ®¿þÀÌ ¿ªÇҷμ­ ¸¹ÀÌ »ç¿ëµÇ¾î ¿Ô´Ù. ±×·¯³ª ÀÌ·¯ÇÑ ÀåÁ¡¿¡µµ ºÒ±¸ÇÏ°í ´ÙÀ½°ú °°Àº ¸î°¡Áö Á¦¾àÀ» °¡Áö°í ÀÖ´Ù. µû¶ó¼­ ÃÖ±Ù¿¡µµ ÀÀ¿ë ÅëÇÕ°ú À̸¦ À§ÇÑ ¿ø°ÝÁ¦¾î¸¦ À§ÇØ API¸¦ ÀÌ¿ëÇÑ ¿¬±¸°¡ ÀÌ·ç¾îÁö±â ½ÃÀÛÇßÀ¸¸ç, ±âÁ¸ÀÇ ºê¶ó¿ìÀú¸¦ ÀÌ¿ëÇÑ º¸´Ù È®ÀåµÈ ÀÀ¿ë °³¹ßÀ» À§ÇÏ¿© NCSA Mosaic¿¡¼­´Â CCI¸¦, Netscape¿¡¼­´Â NCAPI¶õ ÀÎÅÍÆäÀ̽º·Î API¸¦ »ç¿ëÇÑ´Ù. API´Â °á±¹ Á¦3ÀÇ ÀÀ¿ë¿¡ ÀÇÇÏ¿© ºê¶ó¿ìÀú¸¦ ¿ø°ÝÀ¸·Î Á¦¾îÇÏ´Â ¹æ½ÄÀ¸·Î, Ç÷§Æû¿¡¼­ Á¦°øÇÏ´Â IPC(InterProcess Communication) ¸ÞÄ«´ÏÁòÀ» ÀÌ¿ëÇÏ¿© ±¸ÇöÇÏ°Ô µÈ´Ù.

3. NCSA Mosaic CCI

¿ÜºÎ ÀÀ¿ë°ú WWW Ŭ¶óÀ̾ðÆ®ÀÇ ÅëÇÕ, À̸¦ À§ÇÑ °øµ¿ÀÛ¾÷, ¿ø°ÝÁ¦¾î¸¦ À§Çؼ­ NCSA MosaicÀº CCI¶õ °³³äÀ» µµÀÔÇß´Ù. CCIÀÇ ±âº» °³³äÀ» ±×¸²À¸·Î ³ªÅ¸³»¸é [±×¸² 1]°ú °°´Ù.


[±×¸² 1] CCIÀÇ ±âº»°³³ä

[±×¸² 1]¿¡¼­ º¼ ¼ö ÀÖµíÀÌ CCIÀÇ ±âº» °³³äÀº NCSA Mosaic°ú ±âÁ¸¿¡ Á¸ÀçÇÏ´Â ´Ù¸¥ ÀÀ¿ëµé, ¿¹¸¦µé¸é ÀÀ¿ëÀ» CCI¶õ ÇϳªÀÇ ÀÎÅÍÆäÀ̽º¸¦ ÅëÇÏ¿© Á¦¾îÇϰí, °á±¹ NCSA MosaicÀ» µ¥½ºÅ©Å¾ÀÇ ÅëÇÕ GUI·Î È®Àå½Ã۰íÀÚ Çϴµ¥ ÀÖ´Ù.

CCI´Â ¿ÜºÎÀÇ ÀÀ¿ëÀÌ TCP/IP¸¦ ÅëÇÏ¿© NCSA MosaicÀÇ µ¿ÀÛÁßÀÎ ¼¼¼Ç°ú Åë½ÅÇÒ ¼ö ÀÖµµ·Ï ÇÏ´Â °ÍÀ¸·Î, CCI API´Â ÇÁ·Î±×·¡¸Ó¿¡°Ô Mosaic°ú Åë½ÅÇϱâ À§ÇÑ ·çƾµéÀÇ ¶óÀ̺귯¸¦ Á¦°øÇÑ´Ù. Áï, ÀÀ¿ëÀº URLÀ» ÆêÄ¡Çϱâ À§ÇØ MosaicÀ» »ç¿ëÇÒ ¼ö ÀÖ°í, »ç¿ëÀÚ¿¡ ÀÇÇØ ¼±ÅÃµÈ URL¿¡ ´ëÇÑ °á°ú¸¦ Mosaic¿¡ ¿äûÇÒ ¼ö ÀÖ´Ù. ¶ÇÇÑ ÀÀ¿ëÀº webÀ¸·ÎºÎÅÍ µ¥ÀÌŸ¸¦ ÀÚ½ÅÀÇ ÇÁ·Î±×·¥ °ø°£¿¡ °¡Á®¿Ã ¼ö ÀÖ´Ù. CCI¸¦ ÅëÇÏ¿© NCSA Mosaic°ú Åë½ÅÇÏ´Â ¸ðµç Ŭ¶óÀÌ¾ðÆ® ÀÀ¿ë ÇÁ·Î±×·¥Àº Åë½Å Æ÷Æ® ¹øÈ£¸¦ ÁöÁ¤Çϱâ À§ÇÑ ÀÚ½ÅÀÇ ¸ÞÄ«´ÏÁòÀ» °¡Áö°í ÀÖ¾î¾ß ÇÑ´Ù.

X MosaicÀÇ °æ¿ì´Â 2.5 ÀÌÈÄ ¹öÁ¯¿¡¼­ Á¦°øµÇ¸ç, CCI¸¦ Áö¿øÇϱâ À§Çؼ­´Â ¸ÕÀú File ¸Þ´º ¾Æ·¡¿¡ ÀÖ´Â CCI ¿¡¼­ CCI port ¹øÈ£¸¦ ÁöÁ¤ÇÏ°Ô µÇ¾î ÀÖÀ¸¸ç, ÀÌ´Â 1024¿¡¼­ 65533 ±îÁö ÀÓÀÇ·Î °¡´ÉÇÏ´Ù. Windows ¹öÁ¯Àº 2.0.0 ¹öÁ¯¿¡¼­ CCI v0.11¸¦ OLE2.0À¸·Î Á¦°øÇÑ´Ù. º» Àý¿¡¼­´Â ÇöÀç Ȱ¹ßÇÑ ¿¬±¸ °³¹ßÀÌ ÁøÇàÁßÀÎ X Mosaic CCI¿Í Windows Mosaic CCI¸¦ Áß½ÉÀ¸·Î ¼³¸íÇÑ´Ù

3.1 CCI Protocol Specification 1.1

Mosaic CCI´Â Mosaic°ú ¿ÜºÎ ÀÀ¿ë°£¿¡ »ç¿ëµÇ´Â ÇÁ·ÎÅäÄÝÀ» Á¤ÀÇÇÑ´Ù. À̰ÍÀ» ÀÌ¿ëÇÏ¿© webÀ¸·ÎºÎÅÍ Á¤º¸¸¦ °Ë»öÇÏ´Â °Í°ú µ¿ÀÏÇÏ°Ô ¿ÜºÎ ÀÀ¿ëÀº MosaicÀ» Á¦¾îÇÑ´Ù. Mosaic CCI¸¦ »ç¿ëÇϱâ À§ÇÑ ÀϹÝÀûÀÎ ¿ä±¸»çÇ×Àº ´ÙÀ½°ú °°´Ù. ¸ÕÀú Unix Ç÷§Æû¿¡¼­´Â TCP/IP¿Í PC Ç÷§Æû¿¡¼­´Â TCP/IP¿Í DDE, ȤÀº OLE, Mac Ç÷§Æû¿¡¼­´Â TCP/IP¿Í Apple Event¸¦ »ç¿ëÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù. Mosaic CCI´Â RFC 822¿¡ µû¸¥ ASCII ±â¹Ý ÇÁ·ÎÅäÄÝÀ̰í, µ¥ÀÌŸ´Â RFC 1521¿¡¼­ Á¤ÀÇµÈ MIME 1.0À» µû¸¥´Ù. Mosaic CCI´Â È®Àå±â´ÉÇϸç, °¢°¢ÀÇ request¿¡ ´ëÇØ ºê¶ó¿ìÀú´Â numericÇÑ return code¸¦ ¹ÝȯÇÑ´Ù

CCI Request

Return Code

 
   1xx
       Informative message
   2xx
       Command ok
   3xx
       Command ok, additional output follows
   4xx
       Client error: request has bad syntax,
               not authorized, etc
   5xx
       Server(browser) error.
         Command unimplemented, cannot be
         performed, or a serious program error
         occured.
   x9x
       Debugging output
Mosaic CCI Specification´Â 95³â 7¿ù ÇöÀç±îÁö ¹ßÇ¥µÈ »çÇ×À» Á¤¸®ÇÑ °ÍÀ̸ç, Á¶¸¸°£ »õ·Î¿î ¹öÁ¯ÀÌ Á¦½ÃµÉ ¿¹Á¤ÀÌ´Ù. ´ÙÀ½¿¡ ¹ßÇ¥µÉ ½ºÆå¿¡¼­´Â Ãß°¡·Î GETWINDOWLIST, WINDOWINFO, DOCOMMAND µîÀÌ È®ÀåµÉ ¿¹Á¤ÀÌ´Ù.

3.2 Unix¸¦ À§ÇÑ CCI Application Programmer's Interface(API)

NCSA Mosaic CCI API´Â Mosaic°úÀÇ »óÈ£ÀÛ¿ë ÇÁ·Î±×·¥ ÀÛ¼ºÀ» À§ÇÑ C ¶óÀ̺귯¸®·Î ±¸ÇöµÇ¾î ÀÖ´Ù. CCI ¶óÀ̺귯¸®¸¦ ´Ù¿î·ÎµåÇÏ¿© »ç¿ëÇÏ´Â ¹æ¹ýÀº ´ÙÀ½°ú °°´Ù. À̶§ CCI¸¦ ÀÌ¿ëÇÑ ÀÀ¿ë ÇÁ·Î±×·¥Àº Ç×»ó cci.h¸¦ include ÇÏ¿©¾ß ÇÑ´Ù. ´ÙÀ½Àº cciClient.c È­ÀÏ¿¡ Á¤ÀǵǾî ÀÖ´Â ¶óÀ̺귯¸®¿¡¼­ »ç¿ë°¡´ÉÇÑ C ÇÔ¼öÀ̸ç constant´Â cci.h¿¡ Á¤ÀǵǾî ÀÖ´Ù.
 #define MCCI_OK                0
 #define MCCI_FALL              1
 #define MCCI_OUTOFMEMORY       2
 #define MCCI_REQUEST_FALL      3
 #define MCCI_NETWORK_ERROR     4

CCI ÇÔ¼ö

MCCIInitialize()
CCI ¶óÀ̺귯¸® ÃʱâÈ­ ÇÔ¼ö
MCCIPort MCCIConnect(server Address, port, callBackData)
    char *serverAddress;
    int port;
    void (*callBack)();
    void *callBackData;
µ¿ÀÛÁßÀÎ Mosaic session¿¡ Ãʱâ connectÇÑ´Ù.
int MCCIGetSocketDescriptor(serverPort) 

	MCCIPort serverPort;
serverPort·Î ºÎÅÍ socket descriptor¸¦ extractÇÑ´Ù.
int MCCIIsConnected(serverPort) MCCIPort serverPort;
serverPortÀÇ network connectionÀÌ »ì¾ÆÀÖÀ¸¸é 1, ±×·¸Áö ¾ÊÀ¸¸é 0À» return ÇÑ´Ù.
int MCCIPoll(serverPort)
    MCCIPort serverPort;
incoming data°¡ ÀÖÀ¸¸é ó¸®ÈÄ 1À» returnÇϰí, ¿¬°áÀÌ Á¾·áµÇ¾úÀ¸¸é -1À» ¹ÝȯÇÑ´Ù.
int MCCISendAnchor(serverPort, status, callBack, callBackData)
   MCCIPort serverPort;
   int status;
   void (*callBack)();
   void *callBackData;
»õ·Î¿î anchor°¡ activatµÉ¶§¸¶´Ù client program¿¡ notifyÇÑ´Ù.
int MCCIGet(serverPort, url, output, absRelative, additionalHeader)
    MCCIPort serverPort;
    char *url;
    int output;
    int absRelative;
    car *additionalHeader;
user°¡ ÇѰͰú µ¿ÀÏÇÏ°Ô MosaicÀÌ URLÀ» ÆäÄ¡Çϵµ·Ï ÇÑ´Ù.
int MCCINBGet(serverPort, url, output, absRelative, addtionalHeader)
    MCCIPort serverPort;
    char *url;
    int output;
    int absRelative;
    car *additionalHeader;
MosaicÀÌ ÁÖ¾îÁø url¸¦ fetchÇÏ´Â µ¿¾È blockµÇÁö ¾Ê´Â´Ù´Â Á¡À» Á¦¿ÜÇϰí MCCIget()°ú µ¿ÀÏÇÏ´Ù.
int MCCIPost(serverPort, url, contentType, data, dataLength, output)
    MCCIPort serverPort;
    char *url;
    char *contentType;
    char *data;
    int dataLength;
    int output;
MosaicÀÌ HTTP server¿¡°Ô µ¥ÀÌŸ¸¦ º¸³»µµ·Ï Áö½ÃÇÑ´Ù.
int MCCISendOutput(serverPort, mimeType, callBack, callBackData)
    MCCIPort serverPort;
    char *mimeType;
    void (*callBack)();
    void *callBackData;
ƯÁ¤ MIME typeÀÇ ¸ðµç outputÀÌ client program¿¡ rerouteµÇµµ·Ï ÇÑ´Ù.
int MCCISendOutputStop(serverPort, mimeType)
    MCCIPort serverPort;
    char *mimeType;
MosaicÀÌ client program¿¡ mimeTypeÀÇ sending output¸¦ Á¤Áö½Ã۵µ·Ï Áö½ÃÇÑ´Ù.
int MCCIDisconnet(serverPort)
    MCCIPort serverPort;
activeÇÑ CCI connectionÀ» Á¾·áÇÑ´Ù.

3.3 ¿¹: Unix¿ë CCI ÀÀ¿ë ÇÁ·Î±×·¥

ÇöÀç±îÁö ¹ßÇ¥µÈ ´ëºÎºÐÀÇ CCI ÀÀ¿ë ÇÁ·Î±×·¥Àº X/Motif ȯ°æ¿¡¼­ ±¸ÇöµÈ °ÍÀÌ ¸¹À¸¸ç, ƯÈ÷ sharing¿¡ ±â¹ÝÀ» µÐ µ¿±â½Ä °øµ¿ÀÛ¾÷¿¡ °üÇÑ ¿¬±¸°¡ ÀÌ·ç¾î Áö°íÀÖ´Ù. ÇöÀç±îÁö ¼Ò°³µÈ ´ëÇ¥ÀûÀÎ CCI¸¦ ÀÌ¿ëÇÑ ÇÁ·Î±×·¥ÀÇ ¿¹´Â ´ÙÀ½°ú °°´Ù. ÀÌÁß¿¡¼­ CCI¿¡ ´ëÇÑ ÀÌÇØ¸¦ µ½°íÀÚ WWW µ¿±â½Ä °øµ¿ÀÛ¾÷°ú °ü·ÃÇÑ ¿¬±¸Áß ÃÖ±Ù ¸¹Àº °ü·Ã¿¬±¸°¡ ÀÌ·ç¾îÁö°í ÀÖ´Â Webcast¿¡ ´ëÇØ °£´ÜÈ÷ ¼³¸íÇÑ´Ù. Webcast´Â [±×¸² 2]¿¡¼­ º¸µíÀÌ MBone°ú Mosaic »çÀÌÀÇ Àü´ÞÀÚ ¿ªÇÒÀ» Çϸç, ¿©·¯¸íÀÇ Mosaic »ç¿ëÀÚ°¡ ÇϳªÀÇ ÆäÀÌÁö¸¦ °øÀ¯ÇÒ ¼ö ÀÖµµ·Ï Sharing URL¸¦ Á¦°øÇÑ´Ù.


[±×¸² 2] MBone»ó¿¡¼­ÀÇ Mosaic°ú webcast¿ÍÀÇ °ü°è

Webcast¿Í Mosaic »çÀÌÀÇ ¿¬°áÀº CCI¸¦ »ç¿ëÇÑ´Ù. MosaicÀº [±×¸² 3]¿¡¼­ º¸´Â¹Ù¿Í °°ÀÌ È­ÀÏ ¸Þ´º ¾Æ·¡ÀÇ CCI ¶õ¿¡ CCI Æ÷Æ® ÁÖ¼Ò¸¦ ÀÔ·ÂÇÏ¿© request¸¦ ±â´Ù¸®°í, Webcast´Â ´ÙÀ½°ú °°Àº ÇüÅ·Π¶ç¿ì¸é µÈ´Ù.


[±×¸² 3]Mosaic CCI Æ÷Æ® ÁÖ¼Ò ÀÔ·ÂÇϱâ

% webcast -dest [ip_multicast addr]
          -port [port no]
          -t [ttl]
          -mosaic [host addr]
          -cci [cci addr]
Webcast¸¦ ¶ç¿î °á°ú È­¸éÀº [±×¸² 4]¿Í °°À¸¸ç, Setup È­¸éÀº [±×¸² 5]¿Í °°´Ù. [±×¸² 4]¿¡¼­ URLÀº °øÀ¯ÇÏ´Â ÆäÀÌÁö¸¦ °¡¸®Å°°Ô µÈ´Ù.


[±×¸² 4] WebcastÀÇ main È­¸é [±×¸² 5] WebcastÀÇ Setup È­¸é

3.4 Windows¸¦ À§ÇÑ CCI v0.11

windows¸¦ À§ÇÑ Mosaic CCI´Â Áö¿ª ÀÀ¿ë ÇÁ·Î±×·¥À» À§Çؼ­´Â OLE 2.0 AutomationÀ», ¿ø°Ý ÀÀ¿ë ÇÁ·Î±×·¥À» À§Çؼ­´Â À§¿¡¼­ ¼³¸íÇÑ TCP/IP CCIÀÇ ÀϹÝÀûÀÎ ¼ÒÄÏ ÇÁ·Î±×·¥ ¹æ½ÄÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù. OLE AutomationÀ» »ç¿ëÇÏ´Â °ÍÀº MicroSoft Excell°ú °°Àº ºñÁê¾ó º£ÀÌÁ÷À¸·Î ±¸ÇöµÇ¾î OLE Automation ±â´ÉÀ» °®´Â ÀÀ¿ë°ú Åë½ÅÇÏ´Â ´Ü¼øÇÑ ¹æ~¹ý°ú, Visual Basic, ¶Ç´Â Visual C++·Î µ¶¸³ÀûÀÎ »õ·Î¿î ÀÀ¿ëÀ» ±¸ÇöÇÏ¿© Åë½ÅÇÏ´Â ¹æ¹ýÀÌ ÀÖ´Ù.

OLE AutomationÀ» À§ÇÑ CCI ÇÔ¼ö´Â ´ÙÀ½°ú °°´Ù.

4. Netscape Client API(NCAPI)

Netscape´Â API¸¦ Ŭ¶óÀÌ¾ðÆ® ºÎºÐ°ú ¼­¹ö ºÎºÐÀ¸·Î ±â´ÉÀ» ³ª´©¾î NCAPI(Netscape Client API), NSAPI(Netscape Server API)¶õ À̸§À¸·Î °¢°¢ Áö¿øÇÑ´Ù.NCAPI´Â ±âÁ¸ÀÇ ºê¶ó¿ìÀú¸¦ ÀÌ¿ëÇÑ º¸´Ù È®ÀåµÈ ÀÀ¿ë °³¹ßÀ» À§ÇÏ¿© Á¦ 3ÀÇ ÀÀ¿ëÀÌ ¿ø°ÝÀ¸·Î Netscape Navigator Ŭ¶óÀÌ¾ðÆ®¸¦ Á¦¾îÇÒ ¼ö ÀÖµµ·Ï ¼³°èµÈ °ÍÀÌ´Ù Netscape 1.0N°ú´Â µ¿ÀÛÇÏÁö ¾ÊÀ¸¸ç, 1.1N ÀÌ»óÀÇ ¹öÁ¯¿¡¼­ °è¼ÓÀûÀ¸·Î ±â´ÉÀÌ Ãß°¡µÉ ¿¹Á¤ÀÌ´Ù. NCAPI´Â IPC¸¦ ÀÌ¿ëÇÏ°Ô µÇ´Âµ¥, Unix ¹öÁ¯Àº X properties¿¡ ÀÇÇØ Á¦¾îµÇ°í, Windows ¹öÁ¯Àº DDE, ¶Ç´Â OLE¿¡ ÀÇÇØ Áö¿øµÇ¸ç, Macintosh ¹öÁ¯Àº AppleEvent¸¦ ÀÌ¿ëÇÑ ¿ø°ÝÁ¦¾î ±â´É¿¡ ÀÇÇØ »ç¿ë°¡´ÉÇÏ´Ù.

4.1 Unix Netscape¸¦ À§ÇÑ ¿ø°ÝÁ¦¾î

Unix Netscape Navigator°¡ -remote ¾Æ±Ô¸ÕÆ®¿Í ÇÔ²² invokeµÇ¸é »õ·Î¿î À©µµ¿ì¸¦ »ý¼ºÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó ±âÁ¸ÀÇ Netscape ÇÁ·Î¼¼½ºÀÇ ¿¬°á°ú, ÀÌ¿¡ µû¸¥ Á¦¾î¸¦ ÇÑ´Ù. ¿¹¸¦ µé¸é ÇöÀç Window »óÀÇ Netscape¿¡¼­ URLÀ» bookmark¿¡ Ãß°¡ÇÏ´Â ÀÏÀ» command line¿¡¼­ netscape -remote 'addBookmark()' ¸í·É¾î¿¡ ÀÇÇØ ¿ø°ÝÀ¸·Î ¼öÇà½Ãų ¼ö ÀÖ´Ù.

Netscape¿¡¼­ Áö¿øÇÏ´Â ¼öÇà°¡´ÉÇÑ actionÀº ´ÙÀ½°ú °°´Ù.

À̹ۿ¡ -id ¿É¼ÇÀ» »ç¿ëÇÏ¿© À©µµ¿ì¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù. (-id ¿É¼ÇÀÌ ÁöÁ¤µÇÁö ¾ÊÀ¸¸é, ÃÖÃÊ·Î ¹ß °ßµÈ netscape navigator À©µµ¿ì°¡ ¼±ÅõÊ)
% netscape -id 0x3c00124 -remote 'openURL(http://pec.etri.re.kr/)'
¶ÇÇÑ -remote ¿É¼ÇÀº -raise/-noraise ¿É¼ÇÀ» °°ÀÌ »ç¿ëÇÔÀ¸·Î¼­ Netscape À©µµ¿ì°¡ ÇØ´çµÇ´Â À©µµ¿ìÀÇ raise ¿©ºÎ¸¦ Á¦¾îÇÒ ¼ö ÀÖ´Ù. ¿ÜºÎ ÀÀ¿ë ÇÁ·Î±×·¥¿¡ ÀÇÇÑ ¿ø°ÝÁ¦¾î´Â UnixÀÇ X property¸¦ ±âº»ÀûÀ¸·Î »ç¿ëÇÑ´Ù. Netscape ¿ø°ÝÁ¦¾î ÇÁ·ÎÅäÄÝ¿¡ ÀÇÇØ »ç¿ëµÇ´Â property´Â _MOZILLA_COMMAND, _MOZILLA_RESPONSE, _MOSILLA_VERSION, _MOZILLA_LOCK ÀÌ ÀÖ´Ù.

Unix Netscape¸¦ À§ÇÑ ¿ø°Ý Á¦¾î ÇÁ·ÎÅäÄÝÀº ´ÙÀ½°ú °°Àº µÎ´Ü°è¸¦ µû¸¥´Ù.

µÎ´Ü°è »çÀÌ¿¡´Â lockÀÌ Á¸ÀçÇϸç, À̰ÍÀÇ µ¿ÀÏ ¼­¹öÀÇ Á¦¾î¸¦ ¼öÇàÇϰíÀÚ ÇÏ´Â ´ÙÁß Å¬¶óÀÌ¾ðÆ® ¹®Á¦¸¦ ÇØ°áÇÒ ¼ö ÀÖ´Ù. µÎ client¿Í server°£ÀÇ ÀüÇüÀûÀÎ ¼¼¼ÇÀº ´ÙÀ½°ú °°Àº °úÁ¤À» °®´Â´Ù. (¿©±â¿¡¼­ client´Â ÀÀ¿ë ÇÁ·Î±×·¥, server´Â Netscape Navigator¸¦ °¡¸®Å²´Ù.)

Cient

Server

Cient

Server

Cient

4.2 Windows API¸¦ À§ÇÑ DDE/OLE

4.2.1 Netscape DDE(Dynamic Data Exchange) Implementation

º» Àý¿¡¼­´Â Windows¿¡ µû¸¥ Netscape Navigator DDE implementationÀ» ±â¼úÇÑ´Ù. DDE´Â ÇÁ·Î¼¼½º°£ÀÇ Åë½ÅÀ» À§ÇÑ ¹æ½ÄÀ¸·Î, ÀÀ¿ë°£ÀÇ µ¥ÀÌŸ ±³È¯À» À§ÇÑ °øÀ¯ ¸Þ¸ð~¸®¿Í µ¥ÀÌŸ Àü¼ÛÀ» µ¿±âÈ­ ÇϱâÀ§ÇÑ ÇÁ·ÎÅäÄÝÀ» »ç¿ëÇÑ´Ù. DDE ÀÀ¿ëÀº ´Ù¸¥ DDE ÀÀ¿ë°úÀÇ ±¸º°À» À§ÇÏ¿© application name, topic name, item nameÀ» »ç¿ëÇÑ´Ù.

Netscape¸¦ À§ÇÑ DDE ¼­ºñ½º nameÀº NETSCAPEÀÌ´Ù. Netscape window¸¦ ÂüÁ¶ÇÏ´Â ¾î¶°ÇÑ ½Äº°ÀÚ(dwWindowID)µµ Windows OS°¡ window management¸¦ ¼öÇàÇÏ´Â ¹æ½Ä¿¡ °ü°èµÇÁö ¾Ê´Â´Ù. ƯÁ¤ Netscape window¸¦ addressingÇÏ´Â ¸ðµç window ½Äº°ÀÚÀÇ °ªÀº Netscape DDE Implementation¿¡ ÀÇÇØ returnµÇ´Â °ªµéÀ» °¡Á®¾ß ÇÑ´Ù. ÀϹÝÀûÀ¸·Î ½Ì±Û ÆÄ¶ó¹ÌÅ͸¦ °¡Áö´Â return value´Â double word(dw)¿ë 4 ¹ÙÀÌÆ®, ȤÀº ºÒ¸®¾ð(bl)¿ë 2 ¹ÙÀÌÆ®ÀÇ ¹ÙÀ̳ʸ® Ç¥ÇöÀÌ µÈ´Ù. TRUEÀÇ ºÒ¸®¾ð data´Â 0x0001, FALSE´Â 0x0000À» Ç¥ÇöµÈ´Ù. Netscape DDE¿¡¼­ »ç¿ëÇÏ´Â topicÀº ´ÙÀ½°ú °°Àº °ÍµéÀÌ ÀÖÀ¸¸ç, ÀÚ¼¼ÇÑ formatÀº Garrett Arch BlytheÀÇ "Netscape's DDE Implementation"À» ÂüÁ¶ÇÏ¸é µÈ´Ù.

        WWW_Activate
        WWW_Alert
        WWW_BeginProgress
        WWW_CancelProgress
        WWW_EndProgress
        WWW_Exit
        WWW_GetWindowInfo
        WWW_ListWindows
        WWW_MakingProgress
        WWW_OpenURL
        WWW_ParseAnchor
        WWW_QueryURLFile
        WWW_QueryViewer
        WWW_RegisterProtocol
        WWW_RegisterURLEcho
        WWW_RegisterViewer
        WWW_RegisterWindowChange
        WWW_SetProgressRange
        WWW_ShowFile
        WWW_UnRegisterProtocol
        WWW_UnRegisterURLEcho
        WWW_Version
        WWW_ViewDocFile
        WWW_WindowChange

4.2.1 Netscape OLE(Object Linking \& Embedding) Automation

OLE´Â DDE ÇÁ·ÎÅäÄÝÀ» »ç¿ëÇÑ´Ù. Áï OLE ÇÁ·ÎÅäÄÝÀº DDE Execute commandÀÇ ÁýÇÕÀÌ´Ù.

Netscape automation object´Â naming conventionÀ» µû¶ó¾ß ÇÑ´Ù. automation object nameÀº Application.Purpose.VersionÀ¸·Î ½Ã½ºÅÛ³»¿¡ »ç¿ëµÈ´Ù. ¿­°ÅµÈ ¸ðµç automation object method¿Í property´Â visual C++·Î ¼±¾ðµÇ¾î ÀÖ´Ù.

Netscape.Network.Automation object

´Ù¸¥ ÀÀ¿ë¿¡ network Á¢±Ù°ú È­ÀÏ °Ë»öÀ» Á¦°øÇϸç, method¿Í property´Â ´ÙÀ½°ú °°´Ù.
 
        short BytesReady();
        vode Close();
        Cstring GetContentEncoding();
        long GetContentEncoding();
        long GetContentLength();
        Cstring GetContentType();
        Cstring GetErrorMessage();
        Cstring GetExpires();
        BOOL GetFlagFancyFTP();
        BOOL GetFlagFancyNews();
        BOOL GetFlagShowAllNews();
        BOOL GetLastModified();
        Cstring GetPasswd();
        short GetServerStatus();
        long GetStatus();
        Cstring GetUsername();
        BOOL IsFinished();
        BOOL Open(LPCTSTR pURL, short
          METHOD, LPCTSTR pPostData, long
          lPostDataSize,
          LPCTSTR pPostHeaders);
        short Read(BSTR* pBuffer, shor iAmount);
        Cstring Reslove(LPCTSTR pBase,
          LPCTSTR, pRelative);
        void SetFlagFancyFTP(BOOL);
        void SetFlagFancyNews(BOOL);
        void SetFlagShowAllNews(BOOL);
        void SetPassword(LPCTSTR);
        void Username(LPCTSTR);

Netscape.Repostry.1 automation object

¿ÜºÎ ÀÀ¿ë°úÀÇ ÅëÇÕµÈ ÀÎÅÍÆäÀ̽º Á¦°øÇϸç, method¿Í property´Â ´ÙÀ½°ú °°´Ù.
   BOOL RegisterViewer(LPCTSTR,
     pMIMEType, LPCTSTR pRegistryName);
   BOOL RegisterProtocol(LPCTSTR,
     pProtocol, LPCTSTR pRegistryName);

4.2.3 ¿¹: Netscape Bookmark manager-SmartMarks

First Floor»ç¿¡¼­ °³¹ßÇÏ¿© Netscape»ç¿¡ Á¦°øÇÑ SmartMarks´Â NCAPI¸¦ ÀÌ¿ëÇÑ Windows NetscapeÀÇ Bookmark mamagerÀÌ´Ù. ¸ð¾ç»õ´Â [±×¸² 6]°ú °°À¸¸ç, Netscape Navigator¸¦ Á¦¾îÇÒ ¼ö ÀÖ´Ù.


[±×¸² 6] Netscape Smartmarks

5. °á·Ð°ú ÇâÈÄÀü¸Á

º»°í¿¡¼­´Â WWW°ú ´Ù¸¥ ÀÀ¿ë°úÀÇ ¿ø°ÝÁ¦¾î¸¦ Áö¿øÇÏ´Â API¿¡ °üÇÏ¿© ±â¼úÇÏ¿´´Ù. ±âÁ¸ÀÇ ºê¶ó¿ìÀú(Ŭ¶óÀ̾ðÆ®)ÀÇ ±â´ÉÈ®ÀåÀ» À§ÇØ NCSA MosaicÀº CCI, NetscapeÀº NCAPI¶õ ÀÎÅÍÆäÀ̽º·Î À̸¦ Á¦°øÇϸç, ÇöÀç ¸¹Àº CCI, NCAPI ÀÀ¿ë ÇÁ·Î±×·¥µéÀÌ °³¹ßµÇ¾ú°Å³ª, °³¹ßÁß¿¡ ÀÖ´Ù.

ÇöÀç±îÁö °³¹ßµÈ ÇÁ·Î±×·¥À» º¸¸é, Unix ȯ°æ¿¡¼­´Â ÁÖ·Î Webcast¿Í °°Àº Synchronous Collaboration ÅøÀ̳ª ¸Öµð¹Ìµð¾î ÅÚ¸®ÄÁÆÛ·±½ÌÀ» À§ÇØ »ç¿ëµÇ´Â ÅëÇÕ ºê¶ó¿ìÀú¸¦ Á¦¾îÇÏ´Â ÆÐ³ÎµîÀÌ ¸¹À¸¸ç, Windows ȯ°æ¿¡¼­´Â Global History Manager, Bookmark Manager(SmartMarks, Sextant), Chatting System(Powwow)¿Í °°Àº WWW ºê¶ó¿ìÀúÀÇ ¾×¼¼¼­¸® ¿ªÇÒÀ» ÇÏ´Â ÇÁ·Î±×·¥µéÀÌ ¸¹ÀÌ °³¹ßµÇ¾ú´Ù.

ÀÌ·±ÇÑ ÀÎÅÍÆäÀ̽º¸¦ ÀÌ¿ëÇÏ¿© ½ÇÁ¦·Î ±¸ÇöÀ» À§Çؼ­´Â °¢ Ç÷§Æû Ư¼º¿¡ ¸Â´Â ¸ÞÄ«´ÏÁòÀ» »ç¿ëÇÏ¿©¾ß ÇÑ´Ù. Unix Ç÷§Æû¿¡¼­´Â TCP/IP¿Í X Property, ȤÀº ¶óÀ̺귯¸® ÇüÅÂÀÇ API¸¦ »ç¿ëÇϸç, Windows¿¡¼­´Â TCP/IP¿Í OLE/DDE¸¦, Macintosh¿¡¼­´Â ¿ª½Ã, TCP/IP¿Í Mac Events¸¦ ÀÌ¿ëÇÑ´Ù. °¢ Ç÷§Æû¸¶´Ù Àû¿ëµÇ´Â ¸ÞÄ«´ÏÁòÀÇ Â÷ÀÌ·Î ÀÎÇØ ÇÁ·Î±×·¡¸ÓÀÇ ·Îµå´Â Áõ°¡µÇ°ÚÁö¸¸, ½ÇÁ¦ Ŭ¶óÀ̾ðÆ®Ãø¿¡¼­´Â ±âÁ¸ÀÇ WWW ºê¶ó¿ìÀú Çϳª·Î ÀÚ½ÅÀÇ µ¥½ºÅ©Å¾ÀÇ ¸ðµç ÀÀ¿ë ÇÁ¸£±×·¥À» Á¦¾îÇÒ ¼ö ÀÖ´Ù´Â Ä¿´Ù¶õ ÀåÁ¡À» °¡Áö°í ÀÖ´Ù.

Âü°í¹®Çå(References)

[NCSA 95a]
NCSA Mosaic Common Client Specification, version 1.1, 1995.3
URL: http://www.ncsa.uiuc.edu/SDG/Sotfware/Mosaic/CCI/cci-speech.html
[NCSA 95b]
Application Programmer's Interface for the NCSA Mosaic Common Client Inferface(CCI), 1995.3
URL: http://www.ncsa.uiuc.edu/SDG/Sotfware/XMosaic/CCI/cci-api.html
[NCSA 95c]
Common Client Interface Protocol Specification : Proposed Mosaic CCI, 1995.4
URL: http://www.ncsa.uiuc.edu/SDG/Sotfware/XMosaic/CCI/cci-spec.html
[Sanderson 95]
Briand Sanderson, Tom Magliery, The Common Client Interface(CCI) Interfacing with NCSA Mosaic, WWW'95 Tutorial, 1995.4.
[Netscape 95a]
Netscape Communications Corporation, Remote Control of Unix Netscape, 1995
URL: http://home.netscape.com/newsref/std/x-remote.html
[Netscape 95b]
Netscape Communications Corporation, Remote Control of Unix Netscape : Protocol Detail, 1995
URL: http://home.netscape.com/newsref/std/x-remote-proto.html
[Netscape 95c]
Netscape Communications Corporation, DDE Implementation for Windows API, 1995
URL: http://home.netscape.com/newsref/std/ddeapi.html
[Netscape 95d]
Netscape Communications Corporation, OLE Automation for Windows API, 1995
URL: http://home.netscape.com/newsref/std/oleapi.html