11. Project&Server


  request¿Í client object ¿Í´Â ´Ù¸¥°Ô ÇϳªÀÇ ÇÁ·ÎÁ§Æ®³ª ÇϳªÀÇ Àüü ¼­¹ö(¿©·¯ ÇÁ·ÎÁ§Æ®µéÀÇ ÁýÇÕÀ» Æ÷ÇÔÇÏ´Â)¿¡ °ÉÃļ­ µ¿½Ã¿¡ °ü¸®µÇ¾îÁö´Â Áï, global°ªÀ» »ç¿ëÇÏ´Â °æ¿ì¿¡ »ç¿ëµÇ´Â objectµéÀÌ´Ù.

  °£´ÜÇÑ ¿¹·Î, ÇØ´ç À¥¼­¹ö¿¡ ´ëÇÑ Á¢¼Ó °Ç¼ö´Â ¿ÀÁ÷ Çϳª Á¸ÀçÇØ¼­, ÇÏÀ§ÀÇ ¸ðµç ¾îÇø®ÄÉÀ̼ǿ¡¼­ Á¢¼Ó¶§¸¶´Ù Áõ°¡½ÃÄÑÁÖ¾î¾ß ÇÑ´Ù. À̶§ server³ª project°°Àº object°¡ »ç¿ëµÈ´Ù.

11.1 Project

  ÇϳªÀÇ ¾îÇø®ÄÉÀÌ¼Ç ¾È¿¡¼­ global°ªÀ¸·Î »ç¿ëµÇ´Â º¯¼ö¸¦ ´ã´Â objectÀÌ´Ù. ƯÁ¤ project¸¦ application manager¸¦ ÅëÇØ¼­ Á¾·áÇÏ´Â °æ¿ì¿¡ ÆÄ±«µÇ°í, start, restartÀÇ °æ¿ì ÃʱâÈ­°¡ ÀÌ·ç¾îÁø´Ù. µû¶ó¼­, Áß¿äÇÑ Á¤º¸°¡ ÀÖ´Ù¸é, FileÀ̳ª DataBase¿¡ ÀúÀåÇÏ´Â °ÍÀÌ ÁÁ´Ù.

  ÀÌ object´Â ¼­¹ö¿¡ ¸Þ¸ð¸®°ø°£À» È®º¸ÇÏ¿© ÀúÀåÇÏ°Ô µÇ¸ç, ¸ðµç project¸¶´Ù µ¶¸³ÀûÀ¸·Î »ç¿ëµÈ´Ù. º°µµÀÇ Á¤ÀÇµÈ ¼Ó¼ºÀº ¾ø´Ù.

ÇÊ¿äÇÑ °æ¿ì ¾îÇø®ÄÉÀ̼ǰ£ °øÀ¯¸¦ À§Çؼ­ projectÀÇ ÇÏÀ§ ¼Ó¼ºÀ¸·Î µî·ÏÇØ¼­ »ç¿ëÇÒ ¼ö ÀÖ´Ù.

11.2 Server

  ÀÌ object´Â À¥¼­¹ö¿¡¼­ °ü¸®ÇÏ´Â global object·Î ¸ðµç ÇÏÀ§ÀÇ ¾îÇø®ÄÉÀ̼ǿ¡¼­ Á¢±Ù°¡´ÉÇÏ´Ù. À¥¼­¹ö°¡ startµÇ¸é ÃʱâÈ­ µÇ°í, À¥¼­¹ö¸¦ stop½Ã۸é, ÆÄ±«µÈ´Ù.( ¿©±â¼­ ¸»ÇÏ´Â ¼­¹ö¶õ, URLÀÌ ´Ù¸£¸é Áï, Æ÷Æ®°¡ ´Ù¸£¸é ´Þ¶óÁö°Ô µÈ´Ù. ). ¿ª½Ã ÇÊ¿äÇÑ Á¤º¸¸¦ º°µµ·Î º¸°üÇØ¾ß ÇÑ´Ù.

  ¸î°¡Áö ÁöÁ¤µÈ ¼Ó¼ºÀÌ ÀÖ´Ù.

hostnameÆ÷Æ®¹øÈ£¸¦ Æ÷ÇÔÇÏ´Â URL ex)www.netscape.com:80
hostÆ÷Æ®¹øÈ£¾ø´Â URL ex)www.netscape.com
protocolÇÁ·ÎÅäÄÝ ex) http:
portÇÁ·ÎÅäÄÝ ex) http:
jsVersionServer Version ex) 3.0 WindowsNT


  ÇÊ¿äÇÑ °æ¿ì °øÀ¯¸¦ À§Çؼ­ serverÀÇ ÇÏÀ§ ¼Ó¼ºÀ¸·Î µî·ÏÇØ¼­ »ç¿ëÇÒ ¼ö ÀÖ´Ù.

  • LOCK/UNLOCK

      project¿Í serverÀÇ ¼Ó¼ºµéÀº µ¿½Ã¿¡ ¿©·¯ »ç¿ëÀÚ°¡ Á¢±ÙÇÏ´Â °æ¿ì°¡ Àֱ⠶§¹®¿¡, lock, unlock°ú °°Àº ÇÔ¼ö¸¦ Á¦°øÇÑ´Ù.

    »óȲ) server.counter¶ó°í ÇØ¼­ Á¢¼Ó °Ç¼ö¸¦ ÀúÀåÇÏ´Â °ªÀÌ ÀÖ°í ÇöÀç 3À̶ó°í ÇÏÀÚ, ÀÌ ¶§, a¶ó´Â »ç¶÷ÀÌ Á¢±ÙÀ» ÇØ¼­, server.counter ¿¡ °ªÀ» 4¶ó°í ¾²·Á°í ÇÒ ¶§, b¶ó´Â »ç¶÷µµ Á¢±ÙÀ» Çß´Ù. °°Àº ÀÛ¾÷À» ÇÏ°Ô µÇ¸é, ¾ÆÁ÷ counterÀÇ °ªÀÌ 3ÀÌ ÀÖÀ» °æ¿ì ÃÖÁ¾ °ªÀº 5°¡ µÇ¾ß ÇÏÁö¸¸, µÎ»ç¶÷ÀÌ µ¿½Ã¿¡ ¾²°Ô µÇ¸é 4°¡ µÇ¾î ¹ö¸®´Â °á°ú¸¦ ÃÊ·¡ÇϰԵȴÙ.
      ÀÌ·¯ÇÑ Çö»óÀ» ¸·±âÀ§ÇØ ÇöÀç ³»°¡ ¾²±â ½ÃÀÛÇÒ ¶§, lock¸¦ °É¾î ³õÀ¸¸é, ´Ù¸¥ »ç¶÷ÀÌ ¾µ·Á°í, unlockÀÌ µÉ ¶§ ±îÁö ±â´Ù¸®°Ô ÇÑ´Ù. À̶§, °è¼Ó ±â´Ù¸®´Ù°¡ TimeoutÀÌ µÇ¸é¼­ ¿¡·¯¸Þ¼¼Áö°¡ »ç¿ëÀÚ¿¡°Ô °¥ ¼ö ÀÖ´Ù. ±×·¯¹Ç·Î ÀÌ·± °æ¿ì´Â º°µµÀÇ ¹®ÀåÀ» Ãß°¡Çؼ­ »ç¿ëÀÚ¿¡°Ô Á¤º¸¸¦ Á¦°øÇؾßÇÑ´Ù.

      ÀÌ·¯ÇÑ lock, unlock±â´ÉÀ» Á¦°øÇÏ´Â class°¡ LockÀ̸ç, µÎ ÇÔ¼ö¸¦ Á¦°øÇÑ´Ù. Ãß°¡·Î isValid()ÇÔ¼ö¸¦ Á¦°øÇÏ¿© »ç¿ëÀÚ°¡ lock¿¡ ´ëÇÑ Àϰü¼ºÀÌ ±úÁö¸é, false¸¦ returnÇÏ°Ô µÈ´Ù.

      ¿¹) project.cnt °ªÀ» ¿¹·Î µé¾î ¼³¸íÇϸé, ´ÙÀ½°ú °°Àº µÎ°¡Áö ¹æ½ÄÀÌ ÀÖ´Ù.

    project.cnt = new Lock();
    if( ! project.cnt.isValid() ) {
        redirect("lockerr.html");
    }
    ...........
    Lock Class¸¦ »ç¿ëÇÑ °æ¿ì·Î ÇØ´ç request°¡ Á¾·áµÇ°í ³ª¸é, lockÀÌ ÇØÁ¦µÈ´Ù.
    if( project.cnt.lock() ) {
        ..................
        project.cnt.unlock();
    }else redirect("lockerr.html");
    lock(), unlock()ÇÔ¼ö¸¦ »ç¿ëÇÏ´Â °æ¿ì·Î ¹Ýµå½Ã µÎ°¡Áö ÇÔ¼ö¸¦ ¸í½ÃÀûÀ¸·Î »ç¿ëÇØ¾ß ÇÑ´Ù.


  • Deadlock

      µÎ °³ÀÇ ÇÁ·Î¼¼¼­°¡ lock¸¦ ¼­·Î ±â´Ù¸± ¶§¸¦ ¸»ÇÑ´Ù. Áï, 1¹ø ÇÁ·Î¼¼½º°¡ a.lock()»óÅ¿¡¼­ b.lock()À» °É°í, 2¹ø ÇÁ·Î¼¼½º°¡ b.lock()¿¡¼­ a.lock()À» °É °Ô µÇ¸é, ¼­·Î »ó´ë¹æÀÌ lock¸¦ °É°í ÀÖ´Â °ªÀÌ Ç®¸± ¶§±îÁö ¸¶³É ±â´Ù¸®°Ô µÇ´Â Çö»óÀÌ ¹ß»ýÇϱ⵵ ÇÑ´Ù. ÀÌ·¯ÇÑ °æ¿ì¸¦ deadlockÀ̶ó ºÎ¸¥´Ù.

      ÀÌ·¯ÇÑ °á°ú¸¦ ÇÇÇϱâ À§Çؼ­´Â ÇϳªÀÇ °ªÀ» lock¸¦ °É¾úÀ¸¸é, Ç®¸°µÚ¿¡ ´Ù¸¥ °ª¿¡ lockÀ» °Å´Â °ÍÀÌ´Ù. deadlockÀ» À¥¼­¹ö¿¡¼­ ÀüÀûÀ¸·Î ÇÇÇÏ°Ô ÇØÁÖ´Â ±â´ÉÀÌ Á¸ÀçÇÏÁö ¾Ê´Â ´Ù´Â °ÍÀ» ¸í½ÉÇ϶ó.

      À¥¿¡¼­´Â ¿©·¯ client°¡ µ¿½Ã¿¡ Á¢¼ÓÇÏ°Ô µÈ´Ù´Â Á¡À» Ç×»ó ¸í½ÉÇØ¼­ lockÀ» °É°í ÀÛ¾÷ÇÏ´Â ºÎºÐÀÌ ÀÖ´Ù¸é, ¼¼½ÉÇÏ°Ô ½Å°æ½á¾ß Çϸç, Ȥ½Ã »ç¿ëÀÚ°¡ ÀÛ¼ºÇÑ ÇÔ¼ö°¡ Æ÷ÇԵǾî ÀÖÀ» °æ¿ì¿¡µµ ¹Ýµå½Ã µÚÁ®¼­ deadlockÀÇ °¡´É¼ºÀÌ ÀÖ´Â Áö È®ÀÎÇØ¾ß ÇÑ´Ù.

- Last Update : 2001.7.5 by Deadfire(http://www.deadfire.net)

LiveWire °­ÁÂ
LiveWire¶õ?
ÃÖÃÊ¿¹Á¦/µ¿ÀÛ¿ø¸®
½ÇÇàȯ°æ Áغñ
ÄÄÆÄÀÏ ¹× ½ÇÇà
SSJSÀÇ ±âº»
     - Function
     - Classes/Objects
     - »ç¿ë Tag
     - SSJSÀÇ Ã³¸®°úÁ¤
±âº» ÇÔ¼ö
Client To Server
     - FORM Tag
     - URL
Server To Client
     - FORM Tag
     - Cookie
Session
Client
Project/Server
File
Database
     - Database°í·Á»çÇ×
     - Function/¿¹Á¦
±âŸ
     - Stored Procedure
     - ¿ÜºÎÇÔ¼öÈ£Ãâ
¸¶Ä¡¸ç

Copyright ¨Ï 1997 ~, Deadfire Program Master