1 ÐòÑÔ
Ô½À´Ô½¶àµÄ¹Ø¼üÓ¦ÓÃÔËÐÐÔÚJ2EE£¨Java 2, Enterprise Edition£©ÖУ¬ÕâЩÖîÈçÒøÐÐϵͳºÍÕ˵¥´¦ÀíϵͳÐèÒª¸ßµÄ¿ÉÓÃÐÔ£¨High Availability, HA£©£¬Í¬Ê±ÏñGoogleºÍYahooÕâÖÖ´óϵͳÐèÒª´óµÄÉìËõÐÔ¡£¸ß¿ÉÓÃÐÔºÍÉìËõÐÔÔÚ½ñÌì¸ßËÙÔö³¤µÄ»¥Á¬½ÓµÄÊÀ½çµÄÖØÒªÐÔÒѾ֤ʵÁË¡£eBayÓÚ 1999Äê6ÔÂÍ£»ú22СʱµÄʹʣ¬ÖжÏÁËÔ¼230ÍòµÄÅÄÂô£¬Ê¹eBayµÄ¹ÉƱϽµÁË9.2¸ö°Ù·Öµã¡£
J2EE¼¯ÈºÊÇÓÃÀ´Ìṩ¸ß¿ÉÓÃÐÔºÍÉìËõÐÔ·þÎñ£¬Í¬Ê±Ö§³ÖÈÝ´í´¦ÀíµÄÒ»ÖÖÁ÷Ðеļ¼Êõ¡£µ«ÊÇ£¬ÓÉÓÚJ2EE¹æ·¶È±·¦¶Ô¼¯ÈºµÄÖ§³Ö£¬J2EE¹©Ó¦ÉÌʵÏÖ¼¯ÈºµÄ·½·¨Ò²¸÷Òì¡£Õâ¸øJ2EE¼Ü¹¹Ê¦ºÍ¿ª·¢ÈËÔ±´øÀ´Á˺ܶàÀ§ÄÑ¡£ÒÔÏÂÊǼ¸¸ö³£¼ûµÄÎÊÌ⣺
- Ϊʲô´ø¼¯Èº¹¦ÄܵÄÉÌÒµJ2EE·þÎñÆ÷²úÆ·Èç´Ë°º¹ó£¿£¨10±¶ÓÚ²»´ø¼¯Èº¹¦ÄܵIJúÆ·£©
- Ϊʲô»ùÓÚµ¥·þÎñÆ÷»·¾³¹¹½¨µÄÓ¦Óò»ÄÜÔÚ¼¯ÈºÖÐÔËÐУ¿
- ΪʲôӦÓÃÔÚ¼¯Èº»·¾³ÖÐÔËÐеúÜÂý£¬µ«ÔڷǼ¯Èº»·¾³ÖÐÈ´¿ìµÃ¶à£¿
- Ϊʲô¼¯ÈºµÄÓ¦ÓÃÒÆÖ²µ½ÆäËû·þÎñÆ÷ÖÐʧ°Ü£¿
Àí½âÕâЩÏÞÖÆºÍÒªËØµÄ×î¼Ñ·½·¨ÊÇѧϰËûÃǵÄʵÏÖ·½Ê½¡£
2 »ù±¾ÊõÓï
ÔÚÎÒÃÇÌÖÂÛ²»Í¬µÄ¼¯ÈºÊµÏÖ֮ǰ£¬ÏÈ̸̸¼¸¸ö¸ÅÄî¡£ÕâÓÐÖúÓÚÀí½â²»Í¬µÄJ2EE¼¯Èº²úÆ·²»Í¬µÄÉè¼Æ½á¹ûºÍ¸ÅÄ
ÉìËõÐÔ£¨Scalability£©£º
ÔÚһЩ´óµÄϵͳÖУ¬Ô¤²â×îÖÕÓû§µÄÊýÁ¿ºÍÐÐΪÊǷdz£À§Äѵģ¬ÉìËõÐÔÊÇָϵͳÊÊÓ¦²»¶ÏÔö³¤µÄÓû§ÊýµÄÄÜÁ¦¡£Ìá¸ßÕâÖÖ²¢·¢»á»°ÄÜÁ¦µÄÒ»ÖÖ×îÖ±¹ÛµÄ·½Ê½¾Í Ôö¼Ó×ÊÔ´£¨CPU£¬Äڴ棬ӲÅ̵ȣ©£¬¼¯ÈºÊǽâ¾öÕâ¸öÎÊÌâµÄÁíÒ»ÖÖ·½Ê½£¬ËüÔÊÐíÒ»×é·þÎñÆ÷×éÔÚÒ»Æð£¬Ïñµ¥¸ö·þÎñÆ÷Ò»Ñù·Öµ£´¦ÀíÒ»¸ö·±ÖصÄÈÎÎñ¡£
¸ß¿ÉÓÃÐÔ£¨High availability£©£º
µ¥Ò»·þÎñÆ÷µÄ½â¾ö·½°¸²¢²»ÊÇÒ»¸ö½¡×³·½Ê½£¬ÒòΪÈÝÒ׳öÏÖµ¥µãʧЧ¡£ÏñÒøÐС¢Õ˵¥´¦ÀíÕâÑùһЩ¹Ø¼üµÄÓ¦ÓóÌÐòÊDz»ÄÜÈÝÈÌÄÄÅÂÊǼ¸·ÖÖÓµÄËÀ»ú¡£ËüÃÇÐèÒª ÕâÑùһЩ·þÎñÔÚÈκÎʱ¼ä¶¼¿ÉÒÔ·ÃÎʲ¢ÔÚ¿ÉÔ¤ÆÚµÄºÏÀíµÄʱ¼äÖÜÆÚÄÚÓÐÏìÓ¦¡£¼¯Èº·½°¸Í¨¹ýÔÚ¼¯ÈºÖÐÔö¼ÓµÄÈßÓàµÄ·þÎñÆ÷£¬Ê¹µÃÔÚÆäÖÐһ̨·þÎñÆ÷ʧЧºóÈÔÄÜÌṩ·þ Îñ£¬´Ó¶ø»ñµÃ¸ßµÄ¿ÉÓÃÐÔ¡£
¸ºÔؾùºâ£¨Load balancing£©£º
¸ºÔؾùºâÊǼ¯ÈºµÄÒ»Ïî¹Ø¼ü¼¼Êõ£¬Í¨¹ý°ÑÇëÇó·Ö·¢¸ø²»Í¬µÄ·þÎñÆ÷£¬´Ó¶ø»ñµÃ¸ß¿ÉÓÃÐԺͽϺõÄÐÔÄÜ¡£Ò»¸ö¸ºÔؾùºâÆ÷¿ÉÒÔÊÇ´ÓÒ»¸ö¼òµ¥µÄServlet»ò Plug-Ins£¨ÀýÈçÒ»¸öLinux boxÀûÓÃipchainsÀ´ÊµÏÖ£©£¬µ½°º¹óµÄÄÚÖÃSSL¼ÓËÙÆ÷µÄÓ²¼þ¡£³ý´ËÖ®Í⣬¸ºÔؾùºâÆ÷»¹ÐèÖ´ÐÐһЩÆäËûµÄÖØÒªÈÎÎñ£¬Èç¡°»á»°½ºÕ³¡±ÈÃÒ»¸öÓû§»á»° ʼÖÕ´æÔÚÒ»¸ö·þÎñÆ÷ÉÏ£¬¡°½¡¿µ¼ì²é¡±ÓÃÓÚ·ÀÖ¹½«ÇëÇó·Ö·¢µ½ÒÑʧЧµÄ·þÎñÆ÷ÉÏ¡£ÓÐЩ¸ºÔؾùºâÆ÷Ò²»á²ÎÓëÎÒÃÇÏÂÃæ½«ÒªÌ¸µ½¡°Ê§Ð§×ªÒÆ¡±¹ý³Ì¡£
ÈÝ´í£¨Fault tolerance£©£º
¸ß¿ÉÓÃÐÔÒâζ×ŶÔÊý¾ÝÕýÈ·ÐÔµÄÒªÇó²»ÄÇô¸ß¡£ÔÚJ2EE¼¯ÈºÖУ¬µ±Ò»¸ö·þÎñÆ÷ʵÀýʧЧºó£¬·þÎñÈÔÈ»ÊÇÓÐЧµÄ£¬ÕâÊÇÒòΪеÄÇëÇ󽫱»ÈßÓà·þÎñÆ÷´¦Àí¡£ µ«ÊÇ£¬µ±Ò»¸öÇëÇóÔÚÒ»¸öÕýÔÚʧЧµÄ·þÎñÆ÷Öд¦Àíʱ£¬¿ÉÄܵõ½²»ÕýÈ·µÄ½á¹û¡£²»¹ÜÓжàÉÙ¸ö´íÎó£¬ÈÝ´íµÄ·þÎñÓ¦µ±ÄÜÈ·±£ÓÐÑϸñµÄÕýÈ·µÄÐÐΪ¡£
Ê§Ð§×ªÒÆ£¨Failover£©£º
Ê§Ð§×ªÒÆÊǼ¯ÈºÖÐÓÃÀ´»ñÈ¡ÈÝ´íÄÜÁ¦µÄÁíÒ»Ïî¹Ø¼üµÄ¼¼Êõ¡£µ±Ò»¸ö½áµãʧЧºó£¬Í¨¹ýÑ¡Ôñ¼¯ÈºÖеÄÁíÒ»¸ö½áµã£¬´¦Àí½«»á¼ÌÐø¶ø²»»áÖÕÖ¹¡£×ªÒƵ½ÁíÒ»¸ö½áµã¿ÉÒÔ±»ÏÔʽµÄ±àÂ룬»òÊÇͨ¹ýµ×²ãƽ̨×Ô¶¯µØÍ¸Ã÷µØÂ·Óɵ½ÁíÒ»¸ö·þÎñÆ÷¡£
µÈÃÝ·½·¨£¨Idempotent methods£©£º
µÈÃÝ·½·¨ÊÇÖ¸ÕâÑùһЩ·½·¨£ºÖظ´ÓÃÏàͬµÄ²ÎÊýµ÷Óö¼Äܵõ½ÏàͬµÄ½á¹û¡£ÕâЩ·½·¨²»»áÓ°Ïìϵͳ״̬£¬¿ÉÒÔÖØ¸´µ÷Óöø²»Óõ£Ðĸıäϵͳ¡£Àý È磺getUsername()¾ÍÊǵÈÃݵ쬶ødeleteFile¾Í²»ÊÇ¡£µ±ÎÒÃÇÌÖÂÛHTTP SessionÊ§Ð§×ªÒÆºÍEJBÊ§Ð§×ªÒÆÊ±£¬ËüÊÇÒ»¸öÖØÒªµÄ¸ÅÄî¡£
3 ʲôÊÇJ2EE¼¯Èº
Ò»¸öÌìÕæµÄÎÊÌ⣬²»ÊÇÂ𣿵«ÎÒÈÔÒªÓü¸¾ä»°ºÍͼÀ´»Ø´ðËü¡£Í¨³££¬J2EE¼¯Èº¼¼Êõ°üÀ¨"¸ºÔؾùºâ"ºÍ"Ê§Ð§×ªÒÆ"¡£

ͼ 1 ¸ºÔؾùºâ
Èçͼ1Ëùʾ£¬¸ºÔؾùºâÒâζ×ÅÓÐÐí¶à¿Í»§¶ËÏòÄ¿±ê¶ÔÏóͬʱ·¢³öÇëÇ󡣸ºÔؾùºâÆ÷ÔÚµ÷ÓÃÕߺͱ»µ÷ÓÃÕßÖ®¼ä£¬·Ö·¢ÇëÇóµ½ÓëÔʼ¶ÔÏóÏàͬµÄÈßÓà¶ÔÏóÖС£ÉìËõÐԺ͸߿ÉÓÃÐÔ¾ÍÊÇÕâÑùµÃµ½µÄ¡£

ͼ 2 Ê§Ð§×ªÒÆ
Èçͼ2Ëùʾ£¬Ê§Ð§×ªÒÆÓë¸ºÔØ¾ùºâ²»Í¬¡£ÓÐʱ¿Í»§¶Ë»áÁ¬Ðø·¢ÇëÇóµ½Ä¿±ê¶ÔÏó£¬Èç¹ûÇëÇóÖмäÄ¿±ê¶ÔÏóʧЧÁË£¬Ê§Ð§×ªÒÆÏµÍ³½«¼ì²âµ½Õâ´Îʧ°Ü£¬²¢½«ÇëÇóÖØ¶¨Ïòµ½ÁíÒ»¸ö¿ÉÓõĶÔÏó¡£Í¨¹ýÕâÖÖ·½Ê½¿ÉÒÔ»ñµÃÈÝ´íÄÜÁ¦¡£
Èç¹ûÄãÏëÖªµÀ¸ü¶àµÄÓйØJ2EE¼¯ÈºµÄ֪ʶ£¬Äã¾Í»áÎʵ½Ò»¸ö»ù±¾µÄÎÊÌ⣬¡°Ê²Ã´¶ÔÏó¿ÉÒÔ¼¯Èº£¿¡±ºÍ¡°ÔÚÎÒµÄJ2EE´úÂëÖÐÄÄÀï»á·¢Éú¸ºÔؾùºâºÍʧЧ ×ªÒÆÄØ£¿¡±¡£ÕâЩ¶¼ÊÇÓÃÀ´Àí½âJ2EE¼¯ÈºµÄ·Ç³£ºÃµÄÎÊÌ⡣ʵ¼ÊÉÏ£¬²¢²»ÊÇËùÓеĶÔÏó¶¼Äܱ»¼¯ÈºµÄ£¬²¢ÇÒ¸ºÔؾùºâºÍÊ§Ð§×ªÒÆ²¢²»ÊÇÔÚJ2EE´úÂëËùÓеط½ ¶¼ÄÜ·¢Éú¡£¿´¿´ÏÂÃæµÄÀý×Ó´úÂ룺

ͼ 3 Àý×Ó´úÂë
ÔÚClass AµÄbussiness()·½·¨ÖУ¬instance1¿ÉÒÔ¸ºÔؾùºâÂ𣿻òÊǵ±ÆäʧЧ£¬¿ÉÒÔÊ§Ð§×ªÒÆµ½ÆäËûBµÄʵÀýÉÏÂð£¿ÎÒÏëÊDz»Ðеģ¡¶Ô¸ºÔؾùºâºÍʧЧ ×ªÒÆÀ´Ëµ£¬±ØÐëÒªÓиöÀ¹½ØÆ÷ÔÚµ÷ÓÃÕߺͱ»µ÷ÓÃÕßÖ®¼ä·Ö·¢»òÖØ¶¨ÏòÇëÇóµ½²»Í¬µÄ¶ÔÏóÉÏ¡£Class AºÍClass BµÄʵÀýÊÇÔËÐÐÔÚÒ»¸öJVMÖнôÃÜñîºÏµÄ£¬ÔÚ·½·¨µ÷Óüä¼ÓÈë·Ö·¢Âß¼·Ç³£À§ÄÑ¡£
ʲôÀàÐͶÔÏó¿ÉÒÔ±»¼¯Èº£¿¡ª¡ªÖ»ÓÐÄÇЩ¿ÉÒÔ±»²¿Êðµ½·Ö²¼Ê½ÍØÆÓ½á¹¹ÖеÄ×é¼þ¡£
ÔÚÎÒµÄJ2EE´úÂëÖУ¬Ê²Ã´µØ·½»áÓиºÔؾùºâºÍÊ§Ð§×ªÒÆ£¿¡ª¡ªÖ»ÔÚÄãµ÷Ó÷ֲ¼Ê½×é¼þµÄ·½·¨Ê±¡£

ͼ 4 ·Ö²¼Ê½¶ÔÏó
ÔÚÈçͼ4ËùʾµÄ·Ö²¼Ê½»·¾³ÖУ¬µ÷ÓÃÕߺͱ»µ÷ÓÃÕß±»·ÖÀëÔÚÓÐÃ÷ÏԱ߽çµÄ²»Í¬µÄÔËÐÐÈÝÆ÷ÖУ¬Õâ¸ö±ß½ç¿ÉÒÔÊÇJVM£¬½ø³ÌºÍ»úÆ÷¡£
µ±Ä¿±ê¶ÔÏ󱻿ͻ§¶Ëµ÷ÓÃʱ£¬Ä¿±ê¶ÔÏóµÄ¹¦ÄÜÊÇÔÚÈÝÆ÷ÖÐÔËÐеģ¨Õâ¾ÍÊÇΪʲôÎÒÃÇ˵ËüÊÇ·Ö²¼Ê½µÄÔÒò£©¡£¿Í»§¶ËºÍÄ¿±ê¶ÔÏóͨ¹ý±ê×¼µÄÍøÂçÐÒéͨÐÅ¡£ÕâÐ©ÌØÐÔ¾ÍΪһЩ»úÖÆÌṩÁË»ú»á¿ÉÒÔ½éÈëµ½·½·¨µ÷ÓÃÖ®¼äʵÏÖ¸ºÔؾùºâºÍÊ§Ð§×ªÒÆ¡£
Èçͼ4£¬ä¯ÀÀÆ÷ͨ¹ýHTTPÐÒéµ÷ÓÃJSP¶ÔÏó£¬JSPÔËÐÐÔÚWEB·þÎñÆ÷ÖУ¬ä¯ÀÀÆ÷Ö»ÐèÒª·µ»Ø½á¹û¶ø²»¹ØÐÄËüÊÇÔõôÔËÐеġ£ÔÚÉÏÊö³¡¾°ÖУ¬Ò»Ð©¶« Î÷¾Í¿ÉÒÔÔÚä¯ÀÀÆ÷ÓëWEB·þÎñÆ÷Ö®¼äʵÏÖ¸ºÔؾùºâºÍÊ§Ð§×ªÒÆµÄ¹¦ÄÜ¡£ÔÚJ2EEƽ̨£¬·Ö²¼Ê½¼¼Êõ°ü À¨£ºJSP£¨Servlet£©£¬JDBC£¬EJB£¬JNDI£¬JMS£¬WEB ServiceµÈ¡£¸ºÔؾùºâºÍÊ§Ð§×ªÒÆ¾Í·¢ÉúÔÚÕâЩ·Ö²¼Ê½·½·¨±»µ÷ÓÃʱ¡£ÔÚºóÐø²¿·ÖÎÒÃǽ«ÏêϸÌÖÂÛÕâЩ¼¼Êõ¡£
4 WEB²ã¼¯ÈºÊµÏÖ
WEB²ã¼¯ÈºÊÇJ2EE¼¯ÈºµÄÖØÒªÇÒ»ù±¾µÄ¹¦ÄÜ¡£WEB¼¯Èº¼¼Êõ°üÀ¨WEB¸ºÔؾùºâºÍHTTP SessionÊ§Ð§×ªÒÆ¡£
4.1 WEB¸ºÔؾùºâ
J2EEÌṩÉÌʵÏÖWEB¸ºÔؾùºâÓÐÐí¶à·½Ê½¡£»ù±¾ÉÏ£¬¶¼Ò»¸ö¸ºÔؾùºâÆ÷±»²åÈëµ½ä¯ÀÀÆ÷ºÍWEB·þÎñÆ÷Ö®¼ä£¬ÈçÏÂͼËùʾ¡£

ͼ 5 WEB¸ºÔؾùºâ
¸ºÔؾùºâÆ÷¿ÉÒÔÊÇһ̨Ӳ¼þ£¬ÈçF5¸ºÔؾùºâÆ÷£¬»ò½ö½öÊÇÁíһ̨ÓиºÔؾùºâPlug-InsµÄWEB·þÎñÆ÷£¬Ò»¸ö¼òµ¥µÄ´øipchainsµÄLinux box¿ÉÒԺܺõÄʵÏÖ¸ºÔؾùºâ¡£²»¹Ü²ÉÓÃÄÄÖÖ¼¼Êõ£¬¸ºÔؾùºâÆ÷¶¼ÓÐÒÔÏÂÌØÐÔ£º
4.1.1 ʵÏÖ¸ºÔؾùºâËã·¨
µ±¿Í»§ÇëÇóµ½À´Ê±£¬¸ºÔؾùºâÆ÷ÐèÒª¾ö¶¨½«ÈçºÎ·Ö·¢µ½ºǫ́·þÎñÆ÷¡£Á÷ÐеÄËã·¨ÊÇRound-Robin¡¢RandomºÍWeight Based¡£¸ºÔؾùºâÆ÷¾¡Á¦Ê¹Ã¿Ì¨·þÎñÆ÷ʵÀý¶¼»ñµÃÏàͬµÄ¸ºÔØ£¬µ«ÊÇÉÏÊöË㷨ûÓÐÒ»¸ö¿ÉÒÔ»ñµÃÀíÏëµÄ¸ºÔØÏàͬ£¬ÒòΪËüÃǽö½öÊÇÒÀ¾Ý·¢Ë͵½Ìض¨·þÎñÆ÷µÄÇëÇó µÄ¸öÊý¡£Ò»Ð©¾«ÃܵĸºÔؾùºâÆ÷ʵÏÖÁËÌØÊâµÄËã·¨¡£ËüÔÚ·Ö·¢ÇëÇó֮ǰ½«¼ì²â·þÎñÆ÷µÄ¹¤×÷¸ºÔØ¡£
µ±Ò»Ì¨·þÎñÆ÷ʧЧÁË£¬¸ºÔؾùºâÆ÷Ó¦µ±¼ì²â³öʧЧ²¢²»ÔÙ½«ÇëÇó·Ö·¢µ½Õą̂·þÎñÆ÷ÉÏ¡£Í¬Ñù£¬ËüÒ²Òª¼ì²â·þÎñÆ÷ÊÇ·ñ»Ö¸´Õý³££¬²¢»Ö¸´·Ö·¢ÇëÇó¡£
¼¸ºõËùÓеÄWEBÓ¦ÓóÌÐò¶¼ÓÐһЩ»á»°×´Ì¬£¬¿ÉÄÜÊǼòµ¥µÄ¼ÇסÓû§ÊÇ·ñµÇ½£¬»òÊǰüº¬ÄãµÄ¹ºÎï³µÐÅÏ¢¡£ÒòΪHTTP±¾ÉíÊÇÎÞ״̬µÄ£¬»á»°×´Ì¬Ó¦µ±´æ ÔÚ·þÎñÆ÷µÄij¸öµØ·½²¢ÓëÄ㵱ǰä¯ÀÀ»á»°Ïà¹ØÁª£¬ÕâÑùµ±ÄãÏ´ÎÔÙÇëÇóÏàͬWEBÓ¦ÓóÌÐòµÄÒ³ÃæÊ±¿ÉÒÔºÜÈÝÒ×µÄÖØÐ»ñÈ¡¡£µ±¸ºÔؾùºâʱ£¬×î¼ÑµÄÑ¡Ôñ¾ÍÊǽ«Ìض¨ µÄä¯ÀÀÆ÷»á»°·Ö·¢µ½ÉÏ´ÎÏàͬµÄ·þÎñÆ÷ʵÀýÖУ¬·ñÔò£¬Ó¦ÓóÌÐò¿ÉÄܲ»ÄÜÕýÈ·¹¤×÷¡£
ÒòΪ»á»°×´Ì¬´æ´¢ÔÚÌØ¶¨WEB·þÎñÆ÷µÄÄÚ´æÖУ¬¡°»á»°½ºÕ³¡±¶ÔÓÚ¸ººÉ¾ùºâ·Ç³£ÖØÒª¡£µ«ÊÇ£¬Èç¹ûÆäÖÐij̨·þÎñÆ÷ʵÀýÒòΪijÖÖÔÒòʧЧÁË£¨±ÈÈç¹Ø»ú£©£¬ ÄÇôÕą̂·þÎñÆ÷µÄ»á»°×´Ì¬½«Òª¶ªÊ§¡£¸ºÔؾùºâÆ÷Ó¦µ±¼ì²âµ½Õâ¸öʧЧ²¢²»ÔÙ½«ÇëÇó·Ö·¢¸øËü£¬µ«ÕâЩÇëÇóµÄ»á»°×´Ì¬¶¼ÒòΪ´æ·ÅÔÚʧЧµÄ·þÎñÆ÷Öжø¶ªÊ§ÁËËùÓÐЊϢ£¬Õâ¾Í½«µ¼Ö´íÎ󡣻ỰµÄÊ§Ð§×ªÒÆÒò´Ë¶øÉú¡£
4.2 HTTP SessionÊ§Ð§×ªÒÆ
¼¸ºõËùÓÐÁ÷ÐÐ µÄJ2EE¹©Ó¦É̶¼ÔÚËûÃǵļ¯Èº²úÆ·ÖÐʵÏÖÁËHttp SessionÊ§Ð§×ªÒÆ£¬ÓÃÀ´±£Õϵ±Ä³Ì¨·þÎñÆ÷ʧЧºó»á»°×´Ì¬²»»á¶ªÊ§£¬Ê¹¿Í»§¶ËÇëÇóÄܱ»ÕýÈ·´¦Àí¡£Èçͼ6Ëùʾ£¬µ±ä¯ÀÀÆ÷·ÃÎÊÓÐ״̬µÄWEBÓ¦ÓóÌÐò£¨µÚ 1 ,2²½£©£¬Õâ¸öÓ¦ÓóÌÐò¿ÉÄÜÔÚÄÚ´æ´´½¨Á˻Ự¶ÔÏóÓÃÓÚ±£´æÐÅÏ¢ÒÔ¹©ºóÃæµÄÇëÇóʹÓã¬Í¬Ê±£¬·¢Ë͸øä¯ÀÀÆ÷Ò»¸öΨһµÄHTTP Session IDÓÃÓÚ±êʶÕâ¸ö»á»°¶ÔÏ󣨵Ú3²½£©£¬ä¯ÀÀÆ÷½«Õâ¸öID±£´æCookieÖУ¬²¢µ±ËüÏ´ÎÔÙÇëÇóͬһWEBÓ¦ÓóÌÐòµÄÒ³ÃæÊ±£¬»á½«Cookie·¢»¹¸ø·þÎñ Æ÷¡£ÎªÁËÖ§³Ö»á»°Ê§Ð§×ªÒÆ£¬WEB·þÎñÆ÷½«ÔÚÒ»¶¨µÄʱºò°Ñ»á»°¶ÔÏ󱸷ݵ½ÆäËûµØ·½ÒÔ·ÀÖ¹·þÎñÆ÷ʧЧºó¶ªÊ§»á»°ÐÅÏ¢£¨µÚ4²½£©¡£¸ºÔؾùºâÆ÷¼ì²âµ½Õâ¸öʧ°Ü £¨µÚ5£¬6²½£©£¬²¢½«ºóÐøµÄÇëÇó·Ö·¢µ½×°ÓÐÏàͬӦÓóÌÐòµÄ·þÎñÆ÷ʵÀýÖУ¨µÚ7²½£©£¬ÓÉÓڻỰ¶ÔÏóÒѾ±¸·Ýµ½ÆäËûµØ·½ÁË£¬Õâ¸öеķþÎñÆ÷ʵÀý¿ÉÒÔ»Ö¸´»á»° £¨µÚ8²½£©ÕýÈ·µØ´¦ÀíÇëÇó¡£

ͼ 6 HTTP SessionÊ§Ð§×ªÒÆ
ΪÁËʵÏÖÉÏÊö¹¦ÄÜ£¬HTTP SessionÊ§Ð§×ªÒÆ½«´øÀ´ÒÔÏÂÎÊÌ⣺
ÈçÉÏËùÊö£¬HTTP Session IDÓÃÓÚÔÚÌØ¶¨µÄ·þÎñÆ÷ʵÀýÖбêʶΨһµÄÄÚ´æ»á»°¶ÔÏó£¬ÔÚJ2EEƽ̨£¬HTTP Session IDÒÀÀµÓÚJVMʵÀý£¬Ã¿¸öJVMʵÀýÓµÓм¸¸öÓ¦ÓóÌÐò£¬Ã¿¸öÓ¦ÓóÌÐò¶¼Îª²»Í¬µÄÓû§¹Ü×ÅÐí¶à»á»°£¬HTTP Session IDÊÇÔÚµ±Ç°JVMʵÀýÓÃÓÚ·ÃÎÊÏà¹Ø»á»°µÄ¹Ø¼ü¡£ÔÚ»á»°Ê§Ð§×ªÒÆµÄʵÏÖÖУ¬ÒªÇó²»Í¬µÄJVMʵÀý²»ÄܲúÉúÁ½¸öÏàͬµÄHTTP Session ID£¬ÕâÊÇÒòΪµ±Ê§Ð§×ªÒÆ·¢Éúʱ£¬Ò»¸öJVMµÄ»á»°½«Òª±¸·Ý²¢»Ö¸´µ½ÁíÒ»¸öÖУ¬ÕâÑù£¬±ØÐ뽨Á¢È«¾ÖHTTP Session ID²úÉú»úÖÆ¡£
ÈçºÎ±¸·Ý»á»°×´Ì¬ÊÇÇø±ðJ2EE·þÎñÆ÷ºÃ»µµÄ¹Ø¼üÒòËØ¡£²»Í¬µÄ¹©Ó¦ÉÌÓв»Í¬µÄʵÏÖ£¬ÔÚºóÐø²¿·ÖÎÒÔÙÏêϸ½âÊÍ¡£
»á»°µÄ±¸·ÝÊÇÏûºÄÐÔÄܵ쬰üÀ¨CPU£¬ÄÚ´æ£¬ÍøÂç´ø¿íºÍдÈë´ÅÅ̺ÍÊý¾Ý¿âµÄI/O£¬±¸·ÝµÄƵÂʺͱ¸·Ý¶ÔÏóµÄÁ£¶È½«ÑÏÖØÓ°ÏìÐÔÄÜ¡£
4.2.1 Êý¾Ý¿â±¸·Ý·½Ê½
¼¸ºõËùÓеÄJ2EE¼¯Èº²úÆ·¶¼ÔÊÐíÑ¡Ôñ½«ÄãµÄ»á»°¶ÔÏóͨ¹ýJDBC±¸·Ýµ½¹ØÏµÊý¾Ý¿âÖС£Èçͼ7Ëùʾ£¬ÕâÖÖ·½Ê½¿ÉÒÔÈ÷þÎñÆ÷ʵÀý·Ç³£¼òµ¥µÄÔÚÕýÈ·µÄʱ ¼äÐòÁл¯»á»°ÄÚÈݲ¢Ð´µ½Êý¾Ý¿âÖС£µ±·¢Éú»á»°×ªÒÆÊ±£¬Áíһ̨¿ÉÓõķþÎñÆ÷½Ó¹ýÒÑʧЧµÄ·þÎñÆ÷¹¤×÷£¬´ÓÊý¾Ý¿âÖлָ´ËùÓеĻỰ״̬¡£ÐòÁл¯¶ÔÏóÊǹؼüµã£¬Ëü ʹµÃÄÚ´æ»á»°Êý¾Ý¿ÉÒԳ־û¯ºÍ´«Êä¡£

ͼ 7 ±¸·Ý»á»°Êý¾Ýµ½Êý¾Ý¿â
ÓÉÓÚÊý¾Ý¿â½»Ò×ÊǷdz£°º¹óµÄ£¬ÕâÖÖ·½·¨Ö÷ҪȱµãÊǵ±ÔڻỰÖб£´æ´óÁ¿µÄ»ò´óµÄ¶ÔÏóʱÏÞÖÆÁËÉìËõÐÔ£¬´ó¶àÊýʹÓÃÊý¾Ý¿â»á»°³Ö¾Ã»¯µÄ·þÎñÆ÷²úÆ·¶¼Ìᳫ¾¡Á¿¼õÉÙÓÃHTTP»á»°´æ´¢¶ÔÏ󣬵«ÕâÏÞÖÆÁËÄãµÄÓ¦ÓóÌÐòµÄ¼Ü¹¹ºÍÉè¼Æ£¬ÌرðÊÇÄãҪʹÓÃHTTP»á»°»º´æÓû§Êý¾Ýʱ¡£
Êý¾Ý¿âµÄ·½Ê½Ò²ÓÐһЩÓŵ㣺
- ¼òµ¥£¬ÈÝÒ×ʵÏÖ¡£·ÖÀëµÄÇëÇó´¦ÀíºÍ»á»°±¸·Ý´¦Àíʹ¼¯Èº¸üºÃ¹ÜÀíºÍ½¡×³¡£
- »á»°¿ÉÒÔÊ§Ð§×ªÒÆµ½ÈκÎһ̨·þÎñÆ÷£¬ÒòΪÊý¾Ý¿âÊǹ²ÏíµÄ¡£
- µ±Õû¸ö¼¯ÈºÊ§Ð§Ê±£¬»á»°Êý¾ÝÒÀ¾ÉÐÒÃâ¡£
4.2.2 ÄÚ´æ¸´ÖÆ·½Ê½
ÒòΪÐÔÄܵÄÔÒò£¬Ò»Ð©J2EE·þÎñÆ÷£¨Tomcat£¬Jboss£¬WebLogic£¬WebSphere£©ÌṩÁËÁíÒ»ÖÖʵÏÖ£ºÄÚ´æ¸´ÖÆ

ͼ 8 ¶Ô»á»°×´Ì¬½øÐÐÄÚ´æ¸´ÖÆ
»ùÓÚÄÚ´æµÄ»á»°³Ö¾Ã»¯½«»á»°ÐÅÏ¢±£´æÔÚһ̨»òÊǶą̀±¸·Ý·þÎñÆ÷ÖУ¬¶ø²»ÊDZ£´æÊý¾Ý¿âÖУ¨Èçͼ8£©¡£ÕâÖÖ·½Ê½ÒòΪÐÔÄܸ߶ø·Ç³£Á÷ÐС£Í¬Êý¾Ý¿â·½Ê½Ïà ±È£¬Ö±½ÓÔÚÔ·þÎñÆ÷ºÍ±¸·Ý·þÎñÆ÷Ö®¼äÍøÂçͨÐÅÊǷdz£ÇáÁ¿µÄ¡£Í¬Ê±×¢ÒâÔÚʹÓ÷½Ê½ÖУ¬Êý¾Ý¿â·½Ê½Öеġ°»Ö¸´¡±½×¶ÎÊDz»ÐèÒªµÄ£¬ÒòΪÔÚ±¸·Ýºó£¬ËùÓлỰÊý¾Ý¶¼ ÒѾ´æÔÚ±¸·Ý·þÎñÆ÷µÄÄÚ´æÖÐÁË£¬ÒѾ¿ÉÒÔ´¦ÀíÇëÇó¡£
¡°Java Groups¡±Êǵ±Ç°TomcatºÍJboss¼¯ÈºËùʹÓõÄͨÐŲ㡣Java GroupsÊÇÓÃÓÚʵÏÖ¿É¿¿×éͨÐź͹ÜÀíµÄ¹¤¾ß°ü¡£ËüÌṩÁËÖîÈç¡°×é³ÉÔ±ÐÒ顱ºÍ¡°ÏûÏ¢¹ã²¥¡±µÈºËÐÄÌØÐÔ£¬ÕâЩ¶¼¶Ô¼¯ÈºµÄ¹¤×÷·Ç³£ÓÐÓá£
4.2.3 Tomcat·½Ê½£º¶à·þÎñÆ÷¸´ÖÆ
ÄÚ´æ¸´ÖÆÒ²´æÔÚÐí¶à²»Í¬µÄ·½Ê½£¬µÚÒ»ÖÖ·½·¨¾ÍÊǽ«»á»°Êý¾Ý¸´ÖƵ½¼¯ÈºÖеÄËùÓнáµã£¬Tomcat5²ÉÓõľÍÊÇÕâÖÖ·½Ê½¡£

ͼ9 ¶à·þÎñÆ÷¸´ÖÆ
Èçͼ9Ëùʾ£¬µ±Ò»¸ö·þÎñÆ÷ʵÀýµÄ»á»°¸Ä±äºó£¬½«±¸·Ýµ½ÆäËûËùÓеķþÎñÆ÷ÉÏ¡£µ±Ò»Ì¨·þÎñÆ÷ʧЧºó£¬¸ºÔؾùºâÆ÷¿ÉÒÔÑ¡ÔñÆäËûÈκÎһ̨¿ÉÓõķþÎñÆ÷ʵÀý¡£ µ«ÕâÖÖ·½Ê½ÏÞÖÆÁËÉìËõÐÔ£¬Èç¹û¼¯ÈºÖÐÓкܶàµÄ·þÎñÆ÷ʵÀý£¬ÄÇÃ´ÍøÂçͨÐŵĴú¼Û¾Í²»Äܱ»ºöÂÔ£¬Õ⽫ÑÏÖØ½µµÍÐÔÄÜ£¬²¢ÇÒÍøÂçÒ²½«³ÉΪϵͳµÄÆ¿¾±¡£
4.2.4 WebLogic£¬JbossºÍWebsphereµÄ·½Ê½£º¶ÔµÈ·þÎñÆ÷¸´ÖÆ
ÓÉÓÚÐÔÄܺÍÉìËõÐÔµÄÔÒò£¬WebLogic£¬JbossºÍWebshpere²ÉÓÃÁËÆäËû·½Ê½ÊµÏÖÄÚ´æ¸´ÖÆ¡£Ã¿Ì¨·þÎñÆ÷ÈÎÒâÑ¡Ôñһ̨·þÎñÆ÷±¸·ÝÆäÄÚ´æÖеĻỰÐÅÏ¢¡£Èçͼ10Ëùʾ¡£
ÔÚÕâÖÖ·½Ê½ÖУ¬Ã¿Ì¨·þÎñÆ÷¶¼ÓÐһ̨×Ô¼ºµÄ¶ÔµÈ·þÎñÆ÷£¬¶ø²»ÊÇÆäËûËùÓеķþÎñÆ÷£¬ÕâÖÖ·½Ê½Ïû³ýÔÚ¼¯ÈºÖмÓÈë¹ý¶à·þÎñÆ÷ʵÀýµÄ»°Ó°ÏìÉìËõÐÔµÄÎÊÌâ¡£

ͼ 10 ¶ÔµÈ·þÎñÆ÷¸´ÖÆ
¾¡¹ÜÕâÖÖ·½Ê½ÊµÏÖÊ§Ð§×ªÒÆÓкܸߵÄÐÔÄܺÍÉìËõÐÔ£¬µ«ËüÈÔÓÐһЩÏÞÖÆ£º
- Ëü¸ø¸ºÔؾùºâÆ÷´øÀ´Á˸ü¶àµÄ¸´ÔÓÐÔ¡£µ±Ò»Ì¨·þÎñʧЧºó£¬¸ºÔؾùºâÆ÷±ØÐëÖªµÀÄÇ̨·þÎñÊÇÕą̂¼ºÊ§Ð§·þÎñÆ÷µÄ¶ÔµÈ±¸·Ý·þÎñÆ÷¡£Õ⽫ËõСÁ˸ºÔؾùºâÆ÷µÄÑ¡Ôñ·¶Î§£¬Í¬Ê±ÓÐЩӲ¼þÒ²²»ÄÜÂú×ãÕâÖÖÒªÇó¡£
- ³ýÁË´¦ÀíÕý³£µÄÇëÇóÍ⣬·þÎñÆ÷»¹½«¸ºÔð¸´ÖƵÄÈÎÎñ¡£ÓÉÓÚ±¸·Ý»á»°Êý¾ÝµÄÈÎÎñÒ²ÐèÒªÕ¼ÓÃCPUµÄÖÜÆÚ£¬ËùÒÔÿ̨·þÎñÆ÷µÄÇëÇó´¦ÀíÄÜÁ¦Ò²½µµÍÁË¡£
- ÔÚûÓз¢ÉúÊ§Ð§×ªÒÆµÄʱºò£¬±¸·Ý·þÎñÆ÷ÉÏ´óÁ¿ÓÃÓÚ±¸·ÝµÄÄÚ´æÊǸöÀË·Ñ¡£Í¬Ê±ÕâÒ²½«Ôö¼ÓÁËJVM GCµÄ¸ºµ£¡£
- ¼¯ÈºÖеķþÎñÆ÷ʵÀý¹¹³ÉÁ˸´Öƶԡ£ÕâÑù£¬µ±»á»°ËùÔÚÖ÷·þÎñÆ÷ʧЧºó£¬¸ºÔؾùºâÆ÷½«»á»°×ªÒƵ½±¸·Ý·þÎñÆ÷£¬Ê¹±¸·Ý·þÎñÆ÷´¦ÀíÁ½±¶µÄÇëÇó£¬Õ⽫Ôì³É±¸·Ý·þÎñÆ÷µÄÐÔÄÜÎÊÌâ¡£
ΪÁ˿˷þÉÏÃæµÄ4µãÎÊÌ⣬²»Í¬µÄÈí¼þ¹©Ó¦É̲ÉÓÃÁ˲»Í¬µÄ·½·¨£¬WebLogic²ÉÓõĸ´ÖƶԲ»ÊǶÔÿ̨·þÎñÆ÷£¬¶øÊǶÔÿ¸ö»á»°¡£µ±Ò»Ì¨·þÎñÆ÷ʵÀýʧЧºó£¬»á»°Êý¾Ý¼º¾·ÖÉ¢±¸·Ýµ½¶à¸ö±¸·Ý·þÎñÆ÷ÉÏ£¬Ê¹Ê§Ð§µÄ¸ºÔؾùÔȵطֲ¼¡£
4.2.5 IBMµÄ·½Ê½£ºÖÐÑë״̬·þÎñÆ÷
Websphere²ÉÓò»Í¬µÄ·½Ê½ÊµÏÖÄÚ´æ¸´ÖÆ£º±¸·Ý»á»°ÐÅÏ¢µ½ÖÐÑëµÄ״̬·þÎñÆ÷£¬Èçͼ11Ëùʾ£º

ͼ 11 ÖÐÑë״̬·þÎñÆ÷¸´ÖÆ
ÕâÓëÊý¾Ý¿âµÄ½â¾ö·½°¸·Ç³£ÀàËÆ£¬²»Í¬Ö®´¦ÔÚÓÚרÓõġ°»á»°±¸·Ý·þÎñÆ÷¡±´úÌæÁËÊý¾Ý¿â·þÎñÆ÷£¬ÕâÖÖ·½Ê½½áºÏÁËÊý¾Ý¿âºÍÄÚ´æ¸´ÖÆÁ½ÖÖ·½Ê½µÄÓŵ㡣
- ½«ÇëÇó´¦ÀíºÍ»á»°±¸·Ý´¦Àí·Ö¿ªÊ¹Óü¯Èº¸ü¼Ó½¡×³¡£
- ËùÓеĻỰÊý¾Ý¶¼±¸·Ýµ½×¨ÓõķþÎñÆ÷ÉÏ£¬ÎÞÐè·þÎñÆ÷ÀË·ÑÄÚ´æÓÃÓÚ±¸·ÝÆäËû·þÎñÆ÷µÄ»á»°¡£
- ÒòΪ»á»°±¸·Ý·þÎñÆ÷ÊÇÔÚ·þÎñÆ÷Ö®¼ä¹²ÏíµÄ£¬ËùÓÐʧЧºó¿ÉÒÔ×ªÒÆµ½ÈκÎһ̨·þÎñÆ÷ÉÏ£¬ÕâÑù´ó¶àÊý¾ÝÈíÓ²¼þ¸ºÔؾùºâÆ÷¶¼¿ÉÒÔʹÓ㬸üÖØÒªµÄÊǵ±Ò»Ì¨·þÎñÆ÷ʧЧºó£¬¸ºÔؽ«¾ùÔȵķֲ¼µ½ËùÓÐʵÀýÉÏ¡£
- ÓëÖØÁ¿¼¶µÄÊý¾Ý¿âÁ¬½ÓÏà±È£¬Ó¦Ó÷þÎñÆ÷Ó뱸·Ý·þÎñÆ÷Ö®¼äSocketͨÐÅÊÇÇáÁ¿µÄ¡£ÕâÑù¾Í±ÈÊý¾Ý¿âµÄ½â¾ö·½°¸ÓиüºÃµÄÐÔÄܺ͸üºÃµÄÉìËõÐÔ¡£
È»¶ø£¬ÓÉÓÚÓлָ´Ê§Ð§·þÎñÆ÷»á»°Êý¾ÝµÄÕâôһ¸ö½×¶Î£¬Òò´ËÆäÐÔÄܿ϶¨²»ÈçÁ½Ì¨·þÎñÆ÷Ö±½Ó¸´Öƽâ¾ö·½°¸£¬ÁíÍ⣬¶à³öÀ´Ò»Ì¨±¸·Ý·þÎñÆ÷Ò²Ôö¼ÓÁ˹ÜÀíµÄ¸´ÔÓÐÔ¡£Ò²¿ÉÄÜÓÉÓÚµ¥Ì¨±¸·Ý·þÎñÆ÷Ôì³ÉÐÔÄÜÆ¿¾±¡£
4.2.6 SunµÄ·½Ê½£ºÌØÊâÊý¾Ý¿â

ͼ 12 ÌØÊâÊý¾Ý¿â¸´ÖÆ
Sun JESÓ¦Ó÷þÎñÆ÷²ÉÓÃÁ˱ðµÄ·½Ê½ÊµÏÖ»á»°Ê§Ð§×ªÒÆ£¬Èçͼ12Ëùʾ£¬Ëü¿´ÉÏÈ¥ºÜÏñÊý¾Ý¿âµÄ·½Ê½£¬ÒòΪËü²ÉÓùØÏµÊý¾Ý¿â´æ´¢»á»°²¢Í¨¹ýJDBC·ÃÎÊËùÓлỰÊý ¾Ý¡£µ«ÊÇJESÄÚ²¿ËùʹÓõĹØÏµÊý¾Ý¿â³ÆÎªHADB£¬ÒѾΪ·ÃÎʻỰ×öÁËÌØ±ðÓÅ»¯£¬²¢ÇÒ½«¼¸ºõËùÓеĻỰÊý¾Ý´æÔÚÄÚ´æÖС£ÕâÑù£¬Äã¿ÉÒÔ˵Ëü¸üÏñÖÐÑë״̬·þ ÎñÆ÷µÄ·½Ê½¡£
4.2.7 ÐÔÄÜÒòËØ
¿¼ÂÇÈçÏÂÎÊÌ⣺һ̨WEB·þÎñÆ÷ÖпÉÄÜÔËÐÐ×ÅÐí¶àWEBÓ¦Óã¬ËüÃÇÖÐÿһ¸ö¶¼¿ÉÄܱ»³É°ÙµÄ²¢·¢Óû§·ÃÎÊ£¬¶øÃ¿¸öÓû§¶¼»á²úÉúä¯ÀÀÆ÷»á»°ÓÃÓÚ·ÃÎÊÌØ¶¨ µÄÓ¦Óá£ËùÓлỰÐÅÏ¢¶¼½«±¸·ÝÒÔ±ã·þÎñÆ÷ʧЧºóÄÜ×ªÒÆµ½ÆäËû·þÎñÆ÷ʵÀýÖС£¸üÔãµÄÊÇ£¬»á»°»áÓÉÓÚÒ»´Î´ÎµÄ·¢ÉúÒÔÏÂÇé¿ö¶ø±ä»¯£¬°üÀ¨´´½¨¡¢Ê§Ð§¡¢Ôö¼ÓÊôÐÔ¡¢ ɾ³ýÊôÐÔ¡¢ÐÞ¸ÄÊôÐÔÖµ¡£ÉõÖÁÊÇʲô¶¼Ã»±ä£¬µ«ÓÉÓÚÓÐеķÃÎʶøÊ¹×îºó·ÃÎÊʱ¼ä±äÁË£¨ÓÉ´ËÅжÏʲôʱºòʧЧ»á»°£©¡£Òò´Ë£¬ÐÔÄÜÔÚ»á»°Ê§Ð§×ªÒÆµÄ½â¾ö·½°¸ÖÐÊÇ ¸öºÜ´óµÄÒòËØ¡£¹©Ó¦ÉÌͨ³£»áÌṩһЩ¿Éµ÷µÄ²ÎÊý¸Ä±ä·þÎñÆ÷ÐÐΪ£¬Ê¹Ö®ÊÊÓ¦ÐÔÄÜÐèÇó¡£
4.2.7.1 ±¸·Ýʱ»ú
µ±¿Í»§¶ËµÄÇëÇó±»´¦Àíºó£¬»á»°ËæÊ±¸Ä±ä¡£ÓÉÓÚÐÔÄÜÒòËØ£¬ÊµÊ±±¸·Ý»á»°ÊDz»Ã÷Öǵġ£Ñ¡Ôñ±¸·ÝƵÂÊÐèҪƽºâ¡£Èç¹û±¸·Ý¶¯×÷·¢ÉúµÃ̫Ƶ·±£¬ÐÔÄܽ«¼±¾çÏ ½µ¡£Èç¹ûÁ½´Î±¸·ÝµÄ¼ä¸ôÌ«³¤£¬ÄÇôÔÚÕâ¼ä¸ôÖ®¼ä·þÎñÆ÷ʧЧºó£¬ºÜ¶à»á»°ÐÅÏ¢½«»á¶ªÊ§¡£²»¹ÜËùÓеķ½Ê½£¬°üÀ¨Êý¾Ý¿âºÍÄÚ´æ¸´ÖÆ£¬ÏÂÃæÊǾö¶¨±¸·ÝƵÂʵij£ÓÃµÄ Ñ¡Ïî¡£
ÔÚWEBÇëÇó´¦Àí½áÊøºó£¬·¢ÉúÏìӦ֮ǰ±£´æÊý¾Ý¡£ÕâÖÖ·½Ê½Äܹ»±£Ö¤ÔÚʧЧºó±¸·ÝµÄ»á»°Êý¾ÝÊÇ×îеġ£
»á»°ÔÚºǫ́°´¹Ì¶¨µÄʱ¼ä¼ä¸ô±£´æ¡£ÕâÖÖ·½Ê½²»Äܱ£Ö¤±¸·ÝµÄ»á»°Êý¾ÝÊÇ×îеġ£µ«ÓÉÓÚ²»ÐèÔÚÿ´ÎÇëÇóÖ®ºó±¸·ÝÊý¾Ý£¬Òò¶øÓиüºÃµÄÐÔÄÜ¡£
4.2.7.2 ±¸·ÝÁ£¶È
µ±±¸·Ý»á»°µÄʱºò£¬Ä㻹ÐèÒª¾ö¶¨¶àÉٻỰ״̬ÐèÒª±£´æ¡£ÒÔÏÂÊDz»Í¬²úÆ·ËùÓвÉÓõij£ÓõIJßÂÔ¡£
ÿ´Î¶¼½«±£´æËùÓлỰ¡£ÕâÖÖ·½Ê½ÎªÕýÈ·±£´æ·Ö²¼Ê½WEBÓ¦ÓõĻỰÌṩÁË×îºÃ±£Ö¤¡£ÕâÖÖ·½Ê½¼òµ¥£¬ÄÚ´æ¸´ÖÆºÍÊý¾Ý¿â´æ´¢·½Ê½¶¼Ä¬ÈϲÉÓÃÕâÖÖ·½Ê½¡£
µ±»á»°±»Ð޸Ĺýºó£¬Ôò±¸·ÝÕû¸ö»á»°¡£µ±¡°session.setAttribute()¡±»ò ¡°session.removeAttribute()¡±±»µ÷Óúó£¬ÔòÈÏΪ»á»°±»Ð޸Ĺý¡£±ØÐë±£Ö¤ÕâЩ·½·¨µ÷ÓòÅÐ޸ĻỰÊôÐÔ£¬Õâ²¢²»ÊÇJ2EE¹æ·¶ºóÒª ÇóµÄ¡£µ«È´ÊÇÕýȷʵÏÖÕâÖÖ·½·¨ËùÐèÒªµÄ¡£±¸·ÝÐ޸ĹýµÄ»á»°¼õÉÙÁ˻Ự´æ´¢µÄÊýÁ¿£¬ÄÇЩ½ö½öÊǶÁÈ¡»á»°ÊôÐÔµÄÇëÇ󽫲»»á´¥·¢»á»°±¸·ÝµÄ¶¯×÷¡£Õ⽫´øÀ´±È±¸·Ý Õû¸ö»á»°¸üºÃµÄÐÔÄÜ¡£
½ö½öÊDZ£´æ±»Ð޸ĹýµÄ»á»°ÊôÐÔ¶ø²»ÊÇÕû¸ö»á»°¡£Õ⽫×îС»¯±¸·ÝµÄ»á»°Êý¾Ý¡£ÕâÖÖ·½Ê½´øÀ´×îºÃµÄÐÔÄܼ°×îСµÄÍøÂçͨÐÅ¡£ÎªÁ˱£Ö¤ÕâÖÖ·½Ê½¹¤×÷µÄÕýÈ· ÐÔ£¬±ØÐëÒÀ¾ÝÒÔϵÄÒªµã¡£Ê×ÏÈ£¬Ö»ÄÜͨ¹ýµ÷Óá°setAttribute()¡±·½·¨Ð޸ĻỰ״̬£¬²¢ÇһỰÊý¾ÝÒª±»ÐòÁл¯ºÍ±¸·Ý¡£Æä´Î£¬È·±£ÊôÐÔÖ®¼äûÓÐ ½»²æÒýÓá£Ã¿¸öΨһµÄÊôÐÔ¼üֵϵĶÔÏóͼӦµ±±»¶ÀÁ¢µØÐòÁл¯ºÍ±£´æ¡£Èç¹ûÁ½¸ö¶ÀÁ¢µÄ¼üֵϵĶÔÏó´æÔÚ½»²æÒýÓã¬ËüÃǽ«²»Äܹ»ÕýÈ·µÄÐòÁл¯ºÍ·´ÐòÁл¯¡£ÀýÈç ͼ13Ëùʾ£¬ÔÚÒ»¸öÄÚ´æ¸´ÖÆµÄ¼¯ÈºÖУ¬»á»°ÖдæÓС°student¡±ºÍ¡°school¡±¶ÔÏó£¬Í¬Ê±¡°school¡±¶ÔÏóº¬Óе½¡°student¡±¶ÔÏóµÄÒý Óã¬Ä³Ò»¸öʱºò¡°school¡±±»Ð޸ĺ󱸷ݵ½±¸·Ý·þÎñÆ÷ÖС£ÔÚÐòÁл¯ºÍ·´ÐòÁл¯Ö®ºó£¬ÔÚ±¸·Ý·þÎñÆ÷µÄ±»»¹ÔµÄ¡°school¡±¶ÔÏóµÄ°æ±¾½«°üº¬Õû¸ö¶ÔÏó ͼ£¬°üÀ¨ÆäÒýÓõġ°student¡±¶ÔÏó¡£µ«ÊÇ¡°student¡±¶ÔÏó¿ÉÒÔ±»¶ÀÁ¢µÄÐ޸쬵±Ëü±»Ð޸ĺ󣬽ö½öÖ»ÓÐËü×Ô¼º±»±¸·Ý¡£ÔÚÐòÁл¯ºÍ·´ÐòÁл¯Ö®ºó£¬ ÔÚ±¸·Ý·þÎñÆ÷Öл¹Ô¡°student¡±¶ÔÏ󣬵«ÔÚ´Ëʱ£¬Ëü½«¶ªÊ§Óë¡°school¡±¶ÔÏóµÄÁ¬½Ó¡£¾¡¹ÜÕâÖÖ·½Ê½ÓÐ×îºÃµÄÐÔÄÜ£¬µ«ÉÏÊöÏÞÖÆ½«Ó°ÏìWEBÓ¦ÓÃ³Ì ÐòµÄ¼Ü¹¹ºÍÉè¼Æ¡£ÌرðÊÇÐèÒªÓûỰ±£´æ»º´æµÄ¸´ÔÓµÄÓû§Êý¾Ý¡£

ͼ 13 »á»°¸´ÖÆÖеĽ»²æÒýÓÃ
4.2.8 ÆäËûÊ§Ð§×ªÒÆµÄʵÏÖ
ÈçÇ°ÃæÕ½ÚËùÌáµ½µÄ£¬µ±»á»°±¸·ÝʱÁ£¶È¶ÔÓÚÐÔÄܷdz£ÖØÒª¡£È»¶ø£¬µ±Ç°µÄһЩʵÏÖ£¬²»¹ÜÊÇÊý¾Ý¿â´æ´¢»¹ÊÇÄÚ´æ¸´ÖÆ£¬¶¼½«Ê¹ÓÃJava¶ÔÏóÐòÁл¯¼¼ÊõÀ´ ´«ÊäJava¶ÔÏó¡£Õâ¾Í´òÁ˸ö´óÓ¡×Ó£¬Ó°ÏìϵͳµÄÐÔÄÜ£¬²¢¸øWEBÓ¦ÓóÌÐòµÄ¼Ü¹¹ºÍÉè¼Æ´øÀ´ºÜ¶àµÄÏÞÖÆ¡£Ò»Ð©J2EE¹©Ó¦É̱ãѰÕÒÒ»Ð©ÌØ±ðµÄÊÖ¶ÎÀ´¸üΪÇá Á¿µØ£¬Ð¡Ó¡×ÓµØÊµÏÖWEB¼¯Èº£¬ÌṩϸÁ£¶ÈµÄ·Ö²¼Ê½¶ÔÏó¹²Ïí»úÖÆÓÃÓÚÌá¸ß¼¯ÈºµÄÐÔÄÜ¡£
4.2.8.1 JrunµÄJini¼¼Êõ
Jrun4½«ËüµÄ¼¯Èº½â¾ö·½°¸¹¹ÔÚJini¼¼ÊõÖ®ÉÏ¡£JiniΪ·Ö²¼Ê½¼ÆËã¶øÉú£¬ËüÔÊÐíÔÚÒ»¸öµ¥Ò»µÄ·Ö²¼Ê½¼ÆËã¿Õ¼äÄÚ´´½¨¡°ÁªºÏ¡±µÄÉ豸»ò×é¼þ¡£ JiniÌṩ²éÕÒ£¬×¢²á£¬×âÓõȷֲ¼Ê½ÏµÍ³·þÎñ£¬Õâ¶Ô¼¯Èº»·¾³·Ç³£ÓÐÓá£ÁíÒ»ÖÖ³ÆÎªJavaSpaceµÄ¼¼Êõ¹¹½¨ÓÚJiniÖ®ÉÏ£¬ËüÌṩÁËһЩÓÃÓÚʵÏÖ¼¯ Ⱥ·Ç³£ÓмÛÖµµÄÌØÐÔ£¬Èç¶ÔÏó´¦Àí£¬¹²Ïí£¬Ç¨ÒÆµÈ¡£
4.2.8.2 TangosolµÄ·Ö²¼Ê½»º´æ
Tangosol CoherenceÌṩÁËÒ»¸ö·Ö²¼Ê½Êý¾Ý¹ÜÀíÆ½Ì¨£¬Ëü¿ÉÒÔǶÈëµ½´ó¶àÊýÁ÷ÐеÄJ2EE·þÎñÆ÷ÖÐÓÃÓÚʵÏÖ¼¯Èº»·¾³¡£Tangosol CoherenceͬʱҲÊÇÌṩÁË·Ö²¼Ê½»º´æÏµÍ³ÓÃÓÚÔÚ²»Í¬µÄJVMÖ®¼äÓÐЧµØ¹²ÏíJava¶ÔÏó¡£
5 JNDI¼¯ÈºÊµÏÖ
J2EE¹æ·¶ÒªÇóËùÓеÄJ2EEÈÝÆ÷±ØÐëÌṩJNDI¹æ·¶µÄʵÏÖ¡£JNDIÔÚJ2EEÓ¦ÓóÌÐòÖеÄÖ÷Òª½ÇÉ«ÊÇÓÃÀ´Ìṩһ¸ö¼ä½Ó²ã£¬ÕâÑù×ÊÔ´¿ÉÒÔºÜÈÝÒ×±»ÕÒµ½£¬¶ø²»ÓùØÐÄϸ½Ú¡£ÕâʹµÃJ2EE×é¼þ¸ü¼Ó¿É¸´Óá£
ÓµÓÃÈ«ÌØÐԵļ¯ÈºµÄJNDI¶ÔÓÚJ2EE¼¯ÈºÊǷdz£ÖØÒªµÄ¡£ËùÓеÄEJBµ÷Óö¼¿ªÊ¼ÓÚÔÚJNDIÊ÷ÉϲéÕÒËüµÄHome½Ó¿Ú£¬J2EE¹©Ó¦É̸ù¾ÝËûÃǵļ¯Èº½á¹¹²ÉÓò»Í¬µÄ·½Ê½ÊµÏÖJNDI¼¯Èº¡£
5.1 ¹²ÏíÈ«¾ÖJNDIÊ÷
WebLogicºÍJboss¶¼ÓÐÒ»¸öÈ«¾ÖµÄ£¬¹²ÏíµÄ£¬¼¯Èº·¶Î§µÄJNDI Context¹©¿Í»§¶Ë²éÕҺͰ󶨶ÔÏ󣬰󶨵ÄÈ«¾ÖJNDI ContextÖжÔÏó½«Í¨¹ýIP¹ã²¥µÄ·½Ê½ÔÚ¼¯ÈºÖи´ÖÆ£¬ÕâÑùµ±Ò»Ì¨·þÎñÆ÷ʵÀýÍ£»úºó£¬±»°ó¶¨µÄ¶ÔÏóÈÔÈ»¿É¹©²éÕÒ¡£

ͼ 14 ¹²ÏíµÄÈ«¾ÖJNDI
Èçͼ14Ëùʾ£¬¹²ÏíµÄÈ«¾ÖJNDIÊ÷ʵ¼Ê°üÀ¨ÁËËùÓб¾µØJNDI½áµãÉϰ󶨵ĶÔÏó¡£¼¯ÈºÉÏÿ¸ö½áµã¶¼ÓµÓÐ×Ô¼ºµÄÃû³Æ·þÎñÆ÷£¬ËüÃÇÓ뼯ȺÖÐÆäËû·þÎñÆ÷Ï໥¸´ÖÆËùÓеĶ«Î÷¡£ÕâÑùÿ¸öÃû³Æ·þÎñÆ÷É϶¼ÓµÓÐÆäËûÃû³Æ·þÎñÆ÷¶ÔÏóÊ÷µÄ¿½±´¡£ÕâÖÖÈßÓà½á¹¹Ê¹µÃÈ«¾ÖJNDIÊ÷¸ß¿ÉÓá£
ʵ¼ÊÉÏ£¬¼¯ÈºµÄJNDIÊ÷¿ÉÒÔ±»ÓÃ×öÁ½¸öÄ¿µÄ¡£¿ÉÒÔ±»¹ÜÀíÔ±ÓÃÀ´²¿Êð¶ÔÏóºÍ·þÎñ¡£ÔÚһ̨·þÎñÖв¿ÊðÍêEJBÄ£¿é»òJDBC&JMS·þÎñ ºó£¬JNDIÊ÷ÉϵÄËùÓжÔÏó¶¼½«¸´ÖƵ½ÆäËû·þÎñÆ÷ʵÀýÖС£ÔÚÔËÐÐÆÚ£¬³ÌÐò¿ÉÒÔJNDI API·ÃÎÊJNDIÊ÷´æ´¢»òÕß»ñÈ¡¶ÔÏó£¬ÕâЩ¶ÔÏóÒ²½«±»È«¾Ö¸´ÖÆ¡£
5.2 ¶ÀÁ¢JNDI
Jboss ºÍWebLogic¶¼²É ÓÃÁ˹²ÏíÈ«¾ÖJNDIÊ÷µÄ·½Ê½£¬Sun JESºÍIBM WebSphereµÈ²ÉÓÃÁËÿ¸ö·þÎñÆ÷¶¼ÓµÓжÀÁ¢µÄJNDIÊ÷µÄ·½Ê½¡£ÔÚʹÓöÀÁ¢JNDIÊ÷µÄ¼¯ÈºÖУ¬³ÉÔ±·þÎñÆ÷²»±ØÖªµÀ»ò¹ØÐļ¯ÈºÖÐÆäËû·þÎñÆ÷¡£ÕâÊÇ·ñ Òâζ×Ų»Ïë°ÑJNDI¼¯ÈºÄØ£¿ËùÓÐEJB·ÃÎʶ¼¿ªÊ¼ÓÚÔÚJNDIÊ÷ÉϲéÕÒËüÃǵÄHome½Ó¿Ú£¬Èç¹ûûÓпɼ¯ÈºµÄJNDIÊ÷£¬¼¯Èº¾Í¸ù±¾ÎÞÓá£
ʵ¼ÊÉÏ£¬Èç¹ûJ2EEÓ¦ÓóÌÐòÊÇÏàËÆµÄ£¬¶ÀÁ¢µÄJNDIÊ÷ÈÔÈ»¿ÉÒÔ»ñµÃ¸ß¿ÉÓÃÐÔ¡£µ±¼¯ÈºÖÐËùÓÐʵÀý¶¼ÓÐÏàͬµÄÉèÖÃÒÔ¼°¶¼²¿ÊðÏàͬµÄÓ¦ÓóÌÐò¼¯£¬ÎÒÃÇ˵¼¯ÈºÊÇ¡°ÏàËÆµÄ¡±£¬ÕâÖÖÇé¿öÏ£¬Ò»ÖÖ±»³ÆÎª´úÀíµÄÌØÊâ¹ÜÀí¹¤¾ß¿ÉÒÔ°ïÖúÎÒÃÇ»ñÈ¡¸ß¿ÉÓÃÐÔ£¬Èçͼ15Ëùʾ£º

ͼ 15 ¶ÀÁ¢JNDI
²»¹ÜÊÇSun JES»¹ÊÇWebSphere¶¼ÔÚ¼¯ÈºµÄʵÀýÉϰ²×°Á˽áµã´úÀí£¬µ±²¿ÊðEJBÄ£¿é»ò°ó¶¨ÆäËûJNDI·þÎñ£¬¹ÜÀí¿ØÖÆÔ±¿ÉÒÔÏòËùÓеĴúÀí·¢³öÃüÁÒÔ´ËʵÏÖÓë¹²ÏíÈ«¾ÖJNDIÏàͬµÄЧ¹û¡£
µ«ÊǶÀÁ¢JNDIµÄ·½°¸²»ÄÜÖ§³Ö¸´ÖÆÔÚÔËÐÐÆÚ°ó¶¨»ò»ñÈ¡µÄ¶ÔÏó¡£ÓÐÒÔϼ¸¸öÔÒò£ºJNDIÔÚJ2EEÓ¦ÓóÌÐòÖеÄÖ÷Òª½ÇÉ«ÊÇÓÃÀ´Ìṩ¹ÜÀíÍⲿ×ÊÔ´µÄ ¼ä½Ó²ã£¬²¢²»ÊÇÓÃÀ´×öÊý¾Ý´æ´¢¡£Èç¹ûÓÐÕâÑùµÄÐèÇ󣬿ÉÒÔ²ÉÓþßÓÐHA£¨¸ß¿ÉÓÃÐÔ£©ÌØÐԵĶÀÁ¢µÄLDAP·þÎñÆ÷»òÊý¾Ý¿â¡£SunºÍIBM×Ô¼º¶¼ÓÐÕâÑùÓµÓм¯ ÈºÌØÐԵĶÀÁ¢µÄLDAP·þÎñÆ÷²úÆ·¡£
5.3 ÖÐÐÄJNDI
ÉÙÊýJ2EE²úƷʹÓÃÁËÖÐÐÄJNDI·½°¸£¬ÕâÖÖ·½°¸ÖÐÃû³Æ·þÎñÆ÷פÁôÔÚµ¥Ò»·þÎñÆ÷ÖУ¬ËùÓеķþÎñÆ÷ʵÀý¶¼×¢²áËüÃÇÏàͬµÄEJB×é¼þºÍ¹ÜÀí¶ÔÏóµ½µ¥Ò»µÄ·þÎñÆ÷ÖС£
Ãû³Æ·þÎñÆ÷ʵÏÖÁ˸߿ÉÓÃÐÔ£¬Õâ¶Ô¿Í»§¶ËÊÇ͸Ã÷µÄ¡£ËùÓеĿͻ§¶Ë¶¼ÔÚÕą̂·þÎñÆ÷ÖвéÕÒEJB×é¼þ£¬µ«ÊÇÕâÖֽṹÒâζן´ÔӵݲװºÍ¹ÜÀí£¬ÂýÂý±»¶àÊý¹©Ó¦ÉÌÅׯú¡£
5.4 ³õʼ»¯·ÃÎÊJNDI·þÎñÆ÷
µ±È»¿Í»§¶ËÒª·ÃÎÊJNDI·þÎñÆ÷µÄʱºò£¬ËüÃÇÐèÒªÖªµÀÔ¶³ÌJNDI·þÎñÆ÷µÄÖ÷»úÃû/IPµØÖ·ºÍ¶Ë¿Ú£¬ÔÚÈ«¾Ö»òÊǶÀÁ¢JNDIÊ÷µÄ·½°¸ÖУ¬Óжà¸öJNDI·þÎñÆ÷¡£¿Í»§¶ËµÚÒ»´Î·ÃÎÊʱӦ¸ÃÁ¬½ÓÄĸöÄØ£¿ÈçºÎ»ñµÃ¸ºÔؾùºâºÍÊ§Ð§×ªÒÆÄØ£¿
´Ó¼¼ÊõÉÏ˵£¬Ò»¸öÈí¼þ»òÓ²¼þ¸ºÔؾùºâÆ÷¿ÉÒÔÉèÔÚÔ¶³Ì¿Í»§¶ËºÍËùÓеÄJNDI·þÎñÆ÷Ö®¼äÖ´ÐиºÔؾùºÍÊ§Ð§×ªÒÆ¡£µ«ÊÇ£¬ºÜÉÙÓй©Ó¦ÉÌʵÏÖÕâÖÖ·½Ê½£¬ÕâÀïÓÐЩ¼òµ¥µÄ·½°¸£º
- Sun JESºÍJboss ʵÏÖJNDI¼¯ÈºÊÇÔÚ¡°java.naming.provider.url¡±ÊôÐÔÖÐÉèÖÃÒ»ÁÐÓöººÅ·Ö¸ôµÄURL£¬Èç java.naming.provider.url=server1:1100,server2:1100:server3.1100:server4.1100 ¿Í»§¶Ë½«°¤¸öÁªÏµÁбíÖеķþÎñÆ÷£¬Ò»µ©ÆäÖÐÒ»¸öÏìÓ¦Á˱ãÖÐÖ¹¡£
- JbossͬʱҲʵÏÖÁË×Ô¶¯·¢ÏÖµÄÌØÐÔ£¬µ±ÉèÖÃÊôÐÔ´®¡°java.naming.provider.url¡±Îª¿Õʱ£¬¿Í»§¶Ë½«ÊÔͼͨ¹ýÍøÂç¹ã²¥À´·¢ÏÖÔÚÒ»¸öJNDI·þÎñÆ÷¡£
6 EJB¼¯ÈºÊµÏÖ
EJBÊÇJ2EE¼¼ÊõÖÐÖØÒªµÄ²¿·Ö£¬²¢ÇÒEJB¼¯ÈºÊÇʵÏÖJ2EE¼¯Èº×î´óµÄÌôÕ½¡£
EJB¼¼ÊõÊÇΪ·Ö²¼Ê½¼ÆËã¶øÉú¡£ËüÃÇ¿ÉÒÔÔÚ¶ÀÁ¢µÄ·þÎñÆ÷ÖÐÔËÐС£Web·þÎñÆ÷×é¼þ»ò¸»¿Í»§¶Ë¿ÉÒÔ´ÓÆäËûµÄ»úÆ÷ͨ¹ý±ê×¼ÐÒ飨RMI/IIOP£©À´·Ã ÎÊEJB¡£Äã¿ÉÒÔÏóµ÷ÓÃÄã±¾µØJava¶ÔÏóµÄ·½·¨Ò»Ñùµ÷ÓÃÔ¶³ÌEJBµÄ·½·¨¡£Êµ¼ÊÉÏ£¬RMI/IIOPÍêÈ«ÑÚ¸ÇÁËÄãÕýÔÚµ÷ÓõĶÔÏóÊDZ¾µØµÄ»¹ÊÇÔ¶³ÌµÄ£¬Õâ ±»³Æ×÷±¾µØ/Ô¶³Ì͸Ã÷ÐÔ¡£

ͼ 16 EJBµ÷ÓûúÖÆ
ÉÏͼÏÔʾÁËÔ¶³ÌEJBµÄµ÷ÓûúÖÆ¡£µ±¿Í»§¶ËÏëʹÓÃEJB£¬Ëü²»ÄÜÖ±½Óµ÷Óã¬Ïà·´£¬¿Í»§¶ËÖ»Äܵ÷ÓÃÒ»¸ö±»³ÆÎª¡°stub¡±µÄ±¾µØ¶ÔÏó£¬Ëü°çÑÝÁ˵½Ô¶³Ì ¶ÔÏó´úÀíµÄ½ÇÉ«£¬²¢ÇÒÓÐÔ¶³Ì¶ÔÏóÏàͬµÄ½Ó¿Ú¡£Õâ¸ö¶ÔÏó¸ºÔð½ÓÊܱ¾µØ·½·¨µ÷Ó㬲¢ÇÒÕâЩµ÷ÓÃͨ¹ýÍøÂç´úÀíµ½Ô¶³ÌEJB¡£ÕâЩ¶ÔÏóÔÚ¿Í»§JVMÖÐÔËÐУ¬²¢ÇÒÖª µÀÈçºÎͨ¹ýRMI/IIOP¿ç¹ýÍøÂç²éÕÒÕæÕýµÄ¶ÔÏó¡£
Ϊ½âÊÍEJB¼¯ÈºµÄʵÏÖ£¬ÎÒÃÇÏÈ¿´¿´ÔÚJ2EE´úÂëÖÐÈçºÎʹÓÃEJBµÄ¡£ÎªÁ˵÷ÓÃEJB£¬ÎÒÃÇÐèÒª
- ÔÚJNDI·þÎñÆ÷ÖвéÕÒEJBHome stub
- ʹÓÃEJBHome stub²éÕÒ»ò´´½¨EJB¶ÔÏó£¬ÕâÑù»ñµÃÒ»¸öEJBObject stub
- ÔÚEJBObject stubÉϵ÷Ó÷½·¨
¸ºÔؾùºâºÍÊ§Ð§×ªÒÆ¿ÉÒÔÔÚJNDI²éÕÒʱ·¢Éú£¬ÕâÎÒÃÇÒÑÔÚÉÏÃæ²ûÊöÁË¡£ÔÚEJB stub£¨°üÀ¨EJBHomeºÍEJBObject£©µÄ·½·¨µ÷ÓÃʱ£¬¹©Ó¦É̲ÉÓÃÒÔÏÂÈýÖÖ·½Ê½ÊµÏÖEJB¸ºÔؾùºâºÍÊ§Ð§×ªÒÆ¡£
6.1 ÖÇÄÜ´æ¸ù£¨Smart stub£©
ÕýÈçÎÒÃÇËùÖª£¬¿Í»§¶Ë¿ÉÒÔͨ¹ý´æ¸ù¶ÔÏó£¨stub£©À´·ÃÃÅÔ¶³ÌµÄEJB£¬Õâ¸ö¶ÔÏó¿ÉÒÔͨ¹ýJNDIÊ÷»ñÈ¡£¬ÉõÖÁ¿Í»§¶Ë¿ÉÄÜ͸Ã÷µØ´ÓWEB·þÎñÆ÷ÉÏÏÂÔØ´æ¸ùÀàÎļþ¡£
ÕâÑù´æ¸ù¾Í¿ÉÒÔÔÚÔËÐÐÆÚ¶¯Ì¬µØÓóÌÐòÉú³É£¬¶øÆäÀàÎļþÒ²²»±ØÔÚ¿Í»§¶Ë»·¾³µÄclasspath»ò¿âÖС££¨ÒòΪËüÊÇ¿ÉÒÔ±»ÏÂÔØµÄ£©

ͼ 17 ÖÇÄÜ´æ¸ù
Èçͼ17Ëùʾ£¬BEA WebLogicºÍJbossͨ¹ýÔÚ´æ¸ù´úÂëÖÐ×éºÏ¼¸ÖÖÐÐΪÀ´ÊµÏÖEJB¼¯Èº£¬¶øÕâЩ¶¼ÊÇÔÚ¿Í»§¶Ë͸Ã÷ÔËÐеģ¨¿Í»§¶Ë²»ÐèÒªÁ˽âÕâЩ´úÂ룩¡£ÕâÖÖ¼¼Êõ½Ð×öÖÇÄÜ´æ¸ù¡£
ÖÇÄÜ´æ¸ùȷʵºÜ´ÏÃ÷£¬Ëü°üº¬Ò»×éËü¿ÉÒÔ·ÃÎʵÄÄ¿±êʵÀý£¬¿ÉÒÔ¼ì²âÕâЩʵÀýµÄÈκÎʧЧ£¬ËüÒ²°üº¬Á˸´ÔӵĸºÔؾùºâºÍÊ§Ð§×ªÒÆµÄÂß¼£¬ÓÃÀ´·Ö·¢ÇëÇóµ½Ä¿ ±êʵÀý¡£¶øÇÒ£¬Èç¹û¼¯ÈºÍØÆÓ¸Ä±äÁ˵ϰ£¨±ÈÈçÐÂÔö»òɾ³ýÁË·þÎñÆ÷ʵÀý£©£¬´æ¸ù¿ÉÒÔ¸üÐÂËüµÄÄ¿±êʵÀýÇåµ¥À´·´Ó³ÐµÄÍØÆÓ£¬¶ø²»ÐèÒªÊÖ¹¤ÖØÐÂÅäÖá£
ʹÓÃÖÇÄÜ´æ¸ùʵÏÖ¼¯ÈºÓÐÒÔÏÂÓŵ㣺
- ÒòΪEJB´æ¸ùÔËÐÐÔÚ¿Í»§¶Ë£¬ËùÒÔËü¿ÉÒÔ½ÚÊ¡Ðí¶à·þÎñÆ÷×ÊÔ´¡£
- ¸ºÔؾùºâÊÇÔÚ¿Í»§¶Ë´úÂëÖУ¬²¢ÇÒÓë¿Í»§¶ËµÄÉúÃüÖÜÆÚÏà¹Ø¡£ÕâÑù¾ÍÏû³ýÁ˸ºÔؾùºâÆ÷µÄµ¥µãʧЧ¡£Èç¹û¸ºÔؾùºâÆ÷ʧЧÁË£¬¾ÍÒâζ×ſͻ§¶ËҲʧЧÁË£¬ÕâÖÖÇé¿öÊÇÄܽÓÊܵġ£
- ´æ¸ù¿É¶¯Ì¬µÄ×Ô¶¯ÏÂÔØ¸üУ¬ÕâÒâζ×ÅÁãά»¤¡£
6.2 IIOPÔËÐÐÆÚ¿â
Sun JES Application ServerʹÓÃÁËÁíÒ»ÖÖ·½·¨ÊµÏÖEJB¼¯Èº¡£¸ºÔؾùºâºÍÊ§Ð§×ªÒÆÂß¼ÊÇÔÚIIOPÔËÐпâÖÐʵÏֵġ£±ÈÈ磬JESÐÞ¸ÄÁË¡°ORBSocketFactory¡±µÄʵÏÖ£¬Ê¹ËüÄÜÖ§³Ö¼¯Èº¡£Èçͼ18Ëùʾ¡£

ͼ 18 IIOPÔËÐÐÆÚ
¡°ORBSocketFactory¡±µÄÐ޸İæÓÐʵÏÖ¸ºÔؾùºâºÍÊ§Ð§×ªÒÆµÄËùÓÐÂß¼ºÍËã·¨£¬ÕâÑù¾Í±£³ÖÁË´æ¸ù¸É¾»ºÍС¡£ÒòΪÊÇÔÚÔËÐпâÖÐʵÏֵģ¬Õâ Ñù¾Í±È´æ¸ùµÄ·½Ê½¸üÈÝÒ×»ñµÃϵͳ×ÊÔ´¡£µ«ÕâÖÖ·½Ê½ÐèÒªÔÚ¿Í»§¶ËÔËÐÐÒ»¸öÌØÊâµÄÔËÐп⣬ÕâÑù¾Í¸øÓëÆäËûJ2EE²úÆ·½øÐл¥²Ù×÷ʱ´øÀ´ÁËÂé·³¡£
6.3 À¹½ØÆ÷´úÀí
IBM Webshpere²ÉÓÃÁ˶¨Î»·þÎñ¾«Á飨Location Service Daemon-LSD£©,Ëü¶ÔEJB¿Í»§¶Ë°çÑÝÁËÀ¹½ØÆ÷´úÀíµÄ½ÇÉ«£¬Èçͼ19Ëùʾ¡£

ͼ 19 À¹½ØÆ÷´úÀí
ÔÚÕâÖÖ·½Ê½ÖУ¬¿Í»§¶Ëͨ¹ýJNDI²éÕÒ»ñÈ¡´æ¸ù£¬Õâ¸ö´æ¸ù½«ÐÅϢ·Óɵ½LSD£¬¶ø²»ÊÇÔËÐÐÁËEJBµÄÓ¦ÓóÌÐò·þÎñÆ÷¡£ÕâÑùLSD½ÓÊÕµ½ËùÓнøÀ´µÄÇëÇ󣬸ù¾Ý¸ºÔؾùºâºÍÊ§Ð§×ªÒÆµÄ²ßÂÔÀ´ÅжÏÓ¦¸Ã½«Ëü·¢Ë͵½Äĸö·þÎñÆ÷ʵÀý¡£ÕâÖÖ·½Ê½Ôö¼ÓµÄ°²×°ºÍά»¤¼¯ÈºµÄ¶îÍâµÄ¹ÜÀí¹¤×÷¡£
6.4 EJBµÄ¼¯ÈºÖ§³Ö
Òªµ÷ÓÃEJBµÄ·½·¨£¬ÒªÉæ¼°µ½Á½ÖÖ´æ¸ù¶ÔÏó£¬Ò»ÊÇEJBHome½Ó¿Ú£¬ÁíÒ»¸öÊÇEJBObject½Ó¿Ú¡£ÕâÒâζ×ÅEJBDZÔÚµÄÐèÒªÔÚÁ½²ãÉÏʵÏÖÔÚ¸ºÔؾùºâºÍÊ§Ð§×ªÒÆ¡£
- µ±¿Í»§¶ËʹÓÃEJBHome´æ¸ù´´½¨»ò²éÕÒEJB¶ÔÏóʱ
- µ±¿Í»§¶Ëµ÷ÓÃEJB¶ÔÏóÉϵķ½·¨Ê±¡£
6.4.1 EJBHome´æ¸ùÖ§³Ö¼¯Èº
EJBHome½Ó¿ÚÓÃÓÚÔÚEJBÈÝÆ÷Öд´½¨ºÍ²éÕÒEJBʵÀý£¬¶øEJBHome´æ¸ùÊÇEJBHome½Ó¿ÚµÄ¿Í»§¶Ë´úÀí¡£EJBHome½Ó¿Ú²»Ðèά³Ö Èκοͻ§¶ËµÄ״̬ÐÅÏ¢¡£ÕâÑù£¬À´×Ô²»Í¬EJBÈÝÆ÷ÖеÄÏàͬEJBHome½Ó¿Ú¶ÔÓÚ¿Í»§¶ËÀ´ËµÊÇÒ»Öµġ£µ±¿Í»§¶ËÖ´ÐÐcreate()»òfind()µ÷ÓÃµÄ Ê±ºò£¬home´æ¸ù¸ù¾Ý¸ºÔؾùºâºÍÊ§Ð§×ªÒÆËã·¨´Ó¶à¸öÏàͬµÄ·þÎñÆ÷ʵÀýÖÐÑ¡ÔñÒ»¸ö£¬²¢½«µ÷Ó÷¢Ë͵½¸Ã·þÎñÆ÷µÄhome½Ó¿ÚÉÏ¡£
6.4.2 EJBObject´æ¸ùÖ§³Ö¼¯Èº
µ±EJBHome½Ó¿Ú´´½¨Ò»¸öEJBʵÀý£¬Ëü½«·µ»ØEJBObjectµÄ´æ¸ù¸ø¿Í»§¶Ë£¬²¢ÈÃÓû§µ÷ÓÃEJBµÄÒµÎñ·½·¨¡£¼¯ÈºÖÐÒÑÓÐÒ»×é¿ÉÓõķþÎñÆ÷ ʵÀý£¬²¢ÔÚÉÏÃæµÄ²¿ÊðÁËbean£¬µ«ÊDz»Äܽ«EJBObject´æ¸ù¶ÔÏóÏòEJBObject½Ó¿Ú·¢³öµ÷ÓÃת·¢µ½ÈÎÒâÒ»¸ö·þÎñÆ÷ʵÀýÉÏ£¬ÕâÈ¡¾öÓÚEJBµÄ ÀàÐÍ¡£
ÎÞ״̬»á»°BeanÊÇ×î¼òµ¥µÄÇé¿ö£¬ÒòΪ²»Éæ¼°µ½×´Ì¬£¬ËùÓеÄʵÀý¶¼¿ÉÒÔÈÏΪÊÇÒ»ÑùµÄ£¬ÕâÑù¶ÔEJBObjectµÄ·½·¨µ÷ÓÿɸºÔؾùºâºÍÊ§Ð§×ªÒÆµ½ÈÎÒâÒ»¸ö·þÎñÆ÷ʵÀýÉÏ¡£
¼¯ÈºµÄÓÐ״̬»á»°BeanÓëÎÞ״̬»á»°BeanÓÐÒ»µã²»Í¬£¬ÕýÈçÎÒÃÇËùÖª£¬ÓÐ״̬»á»°Bean¶ÔÓÚ¿Í»§¶ËÁ¬ÐøµÄÇëÇó»á³ÖÓÐ״̬ÐÅÏ¢¡£´Ó¼¼ÊõÉÏÀ´Ëµ£¬ ¼¯ÈºÓÐ״̬»á»°BeanÓ뼯ȺHTTP SessionÊÇÒ»ÑùµÄ¡£ÔÚ³£¹æÊ±¼ä£¬EJBObject´æ¸ù½«²»»á°ÑÇëÇó¸ºÔؾùºâµ½²»Í¬µÄ·þÎñÆ÷ʵÀý¡£Ïà·´£¬Ëü½«½ºÕ³µ½×î³õ´´½¨µÄ·þÎñÆ÷ʵÀýÉÏ£¬ÎÒÃÇ³Æ Õâ¸öʵÀýΪ¡°Ö÷ʵÀý¡±¡£ÔÚÖ´Ðйý³ÌÖУ¬»á»°×´Ì¬»á´ÓÖ÷ʵÀý±¸·Ýµ½ÆäËû·þÎñÉÏÈ¥¡£Èç¹ûÖ÷ʵÀýʧЧÁË£¬±¸·Ý·þÎñÆ÷½«½Ó¹ÜËü¡£
ʵÌåBean±¾ÖÊÉÏÊÇÎÞ״̬µÄ£¬¾¡¹ÜËü¿ÉÒÔ´¦ÀíÓÐ״̬µÄÇëÇó¡£ËùÓеÄÐÅÏ¢¶¼½«Í¨¹ýʵÌåBean±¾ÉíµÄ»úÖÆ±¸·Ýµ½Êý¾Ý¿âÖС£ÕâÑù¿´ÆðÀ´ÊµÌåBean¿É ÒÔÏóÎÞ״̬»á»°BeanÒ»ÑùºÜÈÝÒ×»ñÈ¡¸ºÔؾùºâºÍÊ§Ð§×ªÒÆ¡£µ«Êµ¼Ê£¬ÊµÌåBean¶àÊýÇé¿öÏÂÊDz»¸ºÔؾùºâºÍÊ§Ð§×ªÒÆµÄ¡£¸ù¾ÝÉè¼ÆÄ£Ê½µÄ½¨Ò飬ʵÌåBean ±»»á»°Íâ¹Û°ü×°¡£ÕâÑù£¬¶àÊý¶ÔʵÌåBeanµÄ·ÃÎʶ¼Êǽø³ÌÄڻỰBeanͨ¹ý±¾µØ½Ó¿ÚÍê³ÉµÄ£¬¶ø²»ÊÇÔ¶³Ì¿Í»§¶Ë¡£ÕâʹµÃ¸ºÔؾùºâºÍÊ§Ð§×ªÒÆÃ»ÓÐÒâÒå¡£
JMSºÍÊý¾Ý¿âÁ¬½ÓµÄ¼¯ÈºÖ§³Ö
³ýJSP£¬Servlet£¬JNDIºÍEJBÖ®Í⣬ÔÚJ2EEÖл¹ÓÐÆäËûµÄ·Ö²¼Ê½¶ÔÏó¡£ÕâЩ¶ÔÏóÔÚ¼¯ÈºµÄʵÏÖÖпÉÄÜÖ§³Ö£¬¿ÉÄܲ»Ö§³Ö¡£
µ±Ç°£¬Ò»Ð©Êý¾Ý¿â²úÆ·£¬ÈçOracle RAC£¬Ö§³Ö¼¯Èº»·¾³²¢¿ÉÒÔ²¿Êðµ½¶à¸´ÖÆ£¬Í¬²½µÄÊý¾Ý¿âʵÀýÖС£È»¶ø£¬JDBCÊÇÒ»¸ö¸ß¶È״̬»¯µÄÐÒé²¢ÇÒËüµÄÊÂÎñ״ֱ̬½ÓÓë¿Í»§¶ËºÍ·þÎñÆ÷µÄ SocketÁ¬½Ó°ó¶¨£¬ËùÒÔºÜÄÑ»ñÈ¡¼¯ÈºÄÜÁ¦¡£Èç¹ûÒ»¸öJDBCÁ¬½ÓʧЧÁË£¬Óë¸ÃʧЧÁ¬½ÓÏà¹ØµÄËùÓÐJDBC¶ÔÏóÒ²¾ÍʧЧÁË¡£¿Í»§¶Ë´úÂëÐèÒª½øÐÐÖØÁ¬µÄ¶¯ ×÷¡£BEA WebLogicʹÓÃJDBC¶à³Ø£¨multipool£©¼¼ÊõÀ´¼ò»¯ÕâÖÖÖØÁ¬¹ý³Ì¡£
JMS±»¶àÊýJ2EE·þÎñÆ÷ËùÖ§³Ö£¬µ«Ö§³ÖµÃ²¢²»ÍêÈ«£¬¸ºÔؾùºâºÍÊ§Ð§×ªÒÆ½ö½ö±»JMS´úÀíËùʵÏÖ£¬ºÜÉÙÓвúÆ·ÔÚJMS DestinationÖеÄÏûÏ¢ÓÐÊ§Ð§×ªÒÆµÄ¹¦ÄÜ¡£
8 J2EE¼¯ÈºµÄÉñ»°
8.1 Ê§Ð§×ªÒÆ¿ÉÒÔÍêÈ«±ÜÃâ´íÎ󡪡ª·ñ¶¨
ÔÚJbossµÄÎĵµÖУ¬Õû¸öÕ½ڶ¼ÔÚ¾¯¸æÄã¡°ÄãÕæµÄÐèÒªHTTP»á»°µÄ¸´ÖÆÂ𣿡±¡£Êǵģ¬ÓÐʱûÓÐÊ§Ð§×ªÒÆµÄ¸ß¿ÉÓÃÐԵĽâ¾ö·½°¸Ò²ÊǿɽÓÊܲ¢ÇÒÊÇÁ®¼ÛµÄ¡£Ê§Ð§×ªÒƲ¢²»ÊÇÄãÏëÏóµÄÄÇôǿ׳¡£
ÄÇÃ´Ê§Ð§×ªÒÆµ½µ×¸øÄã´øÀ´ÁËʲô£¿Äã¿ÉÄÜÏëÊ§Ð§×ªÒÆ¿ÉÒÔ±ÜÃâ´íÎó¡£Äã¿´£¬Ã»ÓлỰµÄÊ§Ð§×ªÒÆ£¬µ±Ò»¸ö·þÎñÆ÷ʵÀýʧЧºó£¬»á»°Êý¾Ý½«¶ªÊ§¶øµ¼Ö´íÎó¡£Í¨¹ýÊ§Ð§×ªÒÆ£¬»á»°¿ÉÒÔ´Ó±¸·ÝÖлָ´£¬¶øÇëÇó¿ÉÒÔ±»ÆäËû·þÎñÆ÷ʵÀýËù´¦Àí£¬Óû§¸ù±¾Òâʶ²»µ½Ê§Ð§¡£ÕâÊÇÊÂʵ£¬µ«ÕâÊÇÓÐÌõ¼þµÄ£¡
»ØÏëÒ»ÑùÎÒÃǶ¨ÒåµÄ¡°Ê§Ð§×ªÒÆ¡±£¬ÎÒÃǶ¨ÒåÁËÒ»¸öÌõ¼þÊÇÊ§Ð§×ªÒÆÊÇÔÚ¡°Á½¸ö·½·¨µ÷ÓÃÖ®¼ä¡±·¢ÉúµÄ¡£ÕâÊÇ˵Èç¹ûÄãÓÐÁ½¸öÁ¬ÐøµÄ¶ÔÔ¶³Ì¶ÔÏóµÄ·½·¨µ÷Óã¬Ê§Ð§×ªÒÆÖ»»áÔÚµÚÒ»µ÷Óóɹ¦ºó²¢ÇÒµÚ¶þµ÷ÓõÄÇëÇó·¢³öǰ²ÅÄÜ·¢Éú¡£
ÕâÑù£¬µ±Ô¶³Ì·þÎñÆ÷ÔÚ´¦ÀíÇëÇóµÄ¹ý³ÌÖÐʧЧÁ˻ᷢÉúÊ²Ã´ÄØ£¿´ð°¸ÊÇ£º¶àÊýÇé¿ö´¦Àí½«»áÍ£Ö¹¶ø¿Í»§¶Ë½«»á¿´µ½´íÎóÐÅÏ¢¡£³ý·ÇÕâ¸ö·½·¨ÊǵÈÃݵģ¨Idempotent£©£¬Ö»ÓÐÕâ¸ö·½·¨ÊǵÈÃݵģ¬Ò»Ð©¸ºÔؾùºâÆ÷¸üÖÇÄÜ£¬Ëü»áÖØÊÔÕâЩ·½·¨²¢½«ËüÊ§Ð§×ªÒÆµ½ÆäËûʵÀýÉÏ¡£
Ϊʲô¡°µÈÃÝ¡±ÖØÒªÄØ£¬ÒòΪ¿Í»§¶Ë²»ÖªµÀµ±Ê§Ð§·¢ÉúµÄʱºòÇëÇó±»Ö´Ðе½Ê²Ã´µØ·½¡£ÊDzŸոճõʼ»¯»¹ÊDz¶à¾ÍÒªÍê³ÉÁË£¿¿Í»§¶Ëû·¨Åжϣ¡Èç¹û·½·¨²»ÊǵÈÃݵģ¬ÔÚÏàͬ·½·¨ÉϵÄÁ½´Îµ÷ÓÿÉÄÜ»áÁ½´ÎÐÞ¸ÄϵͳµÄ״̬£¬¶øÊ¹µÃϵͳ³öÏÖ²»Ò»ÖµÄÇéÐΡ£
Äã¿ÉÄÜÏëËùÓÐÔÚÊÂÎñÖеķ½·¨¶¼ÊǵÈÃݵģ¬±Ï¾¹£¬Èç¹û´íÎó·¢Éú£¬ÊÂÎñ½«±»»Ø¹ö£¬ÊÂÎñ״̬µÄ¸Ä±ä¶¼½«±»¸´Î»¡£µ«ÊÂʵÉÏÊÂÎñµÄ±ß½ç¿ÉÄܲ»°üÀ¨ËùÓеÄÔ¶³Ì·½·¨µ÷Óùý³Ì¡£Èç¹ûÊÂÎñÒѾÔÚ·þÎñÆ÷ÉÏÌá½»Á˶ø·µ»Ø¸ø¿Í»§¶ËÊ±ÍøÂç±ÀÀ£Ôõô°ìÄØ£¿¿Í»§¶Ë²»ÖªµÀ·þÎñÆ÷µÄÊÂÎñÊÇ·ñÊdzɹ¦ÁË¡£
ÔÚһЩӦÓóÌÐòÖУ¬½«ËùÓеķ½·¨¶¼×ö³ÉµÈÃݵÄÊDz»¿ÉÄܵġ£ÕâÑù£¬ÄãÖ»ÄÜͨ¹ýÊ§Ð§×ªÒÆ¼õÉÙ´íÎ󣬶ø²»ÊDZÜÃâËüÃÇ¡£ÄÃÔÚÏßÉ̵êΪÀý£¬¼ÙÉèÿ̨·þÎñÆ÷¿ÉÒÔ Í¬Ê±´¦Àí100¸öÔÚÏßÓû§µÄÇëÇ󣬵±Ò»Ì¨·þÎñÆ÷ʧЧÁË£¬Ã»ÓÐÊ§Ð§×ªÒÆµÄ½â¾ö·½°¸½«¶ªÊ§100¸öÓû§µÄ»á»°Êý¾Ý²¢¼¤ÅÕâЩÓû§¡£¶øÓÐÊ§Ð§×ªÒÆµÄ½â¾ö·½°¸ÖУ¬ µ±Ê§Ð§·¢ÉúµÄʱºòÓÐ20¸öÓû§ÕýÔÚ´¦ÀíÇëÇó£¬ÕâÑù20¸öÓû§½«±»Ê§Ð§¼¤Å¡£¶øÆäËû80¸öÓû§Õý´¦ÓÚ˼¿¼Ê±¼ä»òÔÚÁ½¸ö·½·¨µ÷ÓÃÖ®¼ä£¬ÕâЩÓû§¿ÉÒÔ͸Ã÷µØ»ñµÃ Ê§Ð§×ªÒÆ¡£ÕâÑù£¬Äã¾ÍÐè×öÒÔϵĿ¼ÂÇ£º
- ¼¤Å20¸öÓû§ºÍ¼¤Å100¸öÓû§Ôì³ÉÓ°ÏìµÄÇø±ð¡£
- ²ÉÓÃÊ§Ð§×ªÒÆºÍ²»²ÉÓÃÊ§Ð§×ªÒÆ²úÆ·³É±¾µÄÇø±ð
8.2 ¶ÀÁ¢Ó¦ÓÿÉÒÔ͸Ã÷µÄÇ¨ÒÆµ½¼¯Èº½á¹¹ÖСª¡ª·ñ¶¨
¾¡¹ÜһЩ¹©Ó¦ÉÌÐû³ÆËûÃǵÄJ2EE²úÆ·ÓÐÕâÑùµÄÁé»îÐÔ¡£²»ÒªÏàÐÅËûÃÇ£¡ÊÂʵÄãÒªÔÚ¿ªÊ¼ÏµÍ³Éè¼ÆÊ±¾ÍҪ׼±¸¼¯Èº£¬¶øÕ⽫ӰÏ쿪·¢ºÍ²âÊÔµÄËùÓн׶Ρ£
8.2.1 Http Session
ÔÚ¼¯Èº»·¾³ÖУ¬ÈçÎÒÇ°ÃæÌáµ½µÄ£¬Ê¹ÓÃHTTP SessionÓкܶàÏÞÖÆ£¬ÕâÈ¡¾öÓÚÄãµÄÓ¦ÓóÌÐò·þÎñÆ÷²ÉÓÃÁËÄÇÖÖ»á»°Ê§Ð§×ªÒÆµÄ»úÖÆ¡£µÚÒ»¸öÖØÒªµÄÏÞÖÆ¾ÍÊÇËùÓб£´æµÄHTTP SessionÖеĶÔÏó±ØÐëÊÇ¿ÉÐòÁл¯µÄ£¬Õ⽫ÏÞÖÆÉè¼ÆºÍÓ¦ÓóÌÐò½á¹¹¡£Ò»Ð©Éè¼ÆÄ£Ê½ºÍMVC¿ò¼Ü»áÓÃHTTP Session±£´æÒ»Ð©²»ÐòÁл¯µÄ¶ÔÏó£¨ÈçServletContext£¬EJB±¾µØ½Ó¿ÚºÍWEB·þÎñÒýÓã©£¬ÕâÑùµÄÉè¼Æ²»ÄÜÔÚ¼¯ÈºÖй¤×÷¡£µÚ¶þ£¬¶ÔÏóµÄ ÐòÁеķ´ÐòÁл¯¶ÔÐÔÄܵÄÓ°ÏìºÜ´ó£¬ÌرðÊÇÊý¾Ý¿â±£´æµÄ·½Ê½¡£ÔÚÕâÑùµÄ»·¾³ÖУ¬Ó¦¸Ã±ÜÃâÔڻỰÖб£´æ´óµÄ»òÊÇÖÚ¶àµÄ¶ÔÏó¡£Èç¹ûÄã²ÉÓÃÁËÄÚ´æ¸´ÖÆµÄ·½Ê½£¬Èçǰ ËùÊöÄã±ØÐëСÐÄÔڻỰÖÐÊôÐԵĽ»²æÒýÓá£ÆäËûÔÚ¼¯Èº»·¾³ÖеÄÖ÷񻂿±ðÊÇÔڻỰ²»¹ÜÈκÎÊôÐÔÐ޸ģ¬Äã±ØÐëµ÷Óá°setAttribute()¡±·½·¨¡£Õâ¸ö·½ ·¨µ÷ÓÃÔÚ¶ÀÁ¢µÄϵͳÖÐÊÇ¿ÉÑ¡µÄ¡£Õâ¸ö·½·¨µÄÄ¿µÄÊÇÇø±ðÒÑÐ޸ĵÄÊôÐÔºÍÄÇЩûÓõ½ÊôÐÔ£¬ÕâÑùϵͳ¿ÉÒÔÖ»ÎªÊ§Ð§×ªÒÆ±¸·Ý±ØÒªµÄÊý¾Ý£¬´Ó¶øÌá¸ßÐÔÄÜ¡£
8.2.2 »º´æ
ÎÒ¾Àú¹ýµÄ´ó¶àÊýJ2EEÏîÄ¿¶¼ÓÃÁË»º´æÀ´Ìá¸ßÐÔÄÜ£¬Í¬Ê±Á÷ÐеÄÓ¦ÓóÌÐò·þÎñÆ÷Ò²¶¼ÌṩÁ˲»Í¬³Ì¶ÈµÄ»º´æÓÃÀ´¼Ó¿ìÓ¦ÓóÌÐòµÄËÙ¶È¡£µ«ÕâЩ»º´æ¶¼ÊÇΪ ÄÇЩµäÐ͵ĶÀÁ¢»·¾³Éè¼ÆµÄ£¬Ö»ÄÜÔÚµ¥JVMʵÀýÖй¤×÷¡£ÎÒÃÇÐèÒª»º´æÊÇÒòΪһЩ¶ÔÏóºÜ¡°ÖØ¡±£¬´´½¨ËüÐ軨·Ñ´óÁ¿µÄʱ¼äºÍ×ÊÔ´¡£Òò´ËÎÒÃÇά»¤Á˶ÔÏó³ØÓÃÓÚÖØ ÓÃÕâЩ¶ÔÏ󣬶ø²»ÐèÒªÔÚºóÃæ´´½¨¡£ÎÒÃÇÖ»Óе±Î¬»¤»º´æ±È´´½¨¶ÔÏó¸üÁ®¼Ûʱ²ÅÄÜ»ñµÃÐÔÄܵÄÌá¸ß¡£ÔÚ¼¯Èº»·¾³£¬Ã¿¸öJVMʵÀý¶¼ÒªÎ¬»¤Ò»·Ý»º´æµÄ¿½±´£¬ÕâЩ¿½ ±´±ØÐëͬ²½ÒÔά³ÖËùÓзþÎñÆ÷ʵÀý״̬µÄÒ»ÖÂÐÔ¡£ÓÐʱÕâÖÖÀàÐ͵Äͬ²½»á±ÈûÓлº´æ´øÀ´¸üÔãµÄÐÔÄÜ¡£
8.2.3 Static±äÁ¿
µ±ÎÒÃÇÉè¼ÆJ2EEÓ¦ÓóÌÐòʱ£¬Ôڼܹ¹ÉϾ³£»áʹÓÃһЩÉè¼ÆÄ£Ê½¡£ÕâЩÈç¡°Singleton¡±µÄÉè¼ÆÄ£Ê½»áÓõ½¾²Ì¬±äÁ¿À´ÔÚ¶à¶ÔÏóÖ®¼ä¹²Ïí״̬¡£ ÕâÖÖ·½Ê½ÔÚµ¥·þÎñÖй¤×÷µÃºÜºÃ£¬µ«ÔÚ¼¯Èº»·¾³½«Ê§Ð§¡£¼¯ÈºÖеÄÿ¸öʵÀý¶¼»áÔÚËüµÄJVMʵÀýÖÐά»¤Ò»·Ý¾²Ì¬±äÁ¿µÄ¿½±´£¬ÕâÑù¾ÍÆÆ»µÁËģʽµÄ»úÖÆ¡£Ò»¸öʹÓà ¾²Ì¬±äÁ¿µÄÀý×Ó¾ÍÊÇÓÃËüÀ´±£³ÖÔÚÏßÓû§Êý¡£Óþ²Ì¬±äÁ¿À´±£´æÔÚÏßÓû§ÊýÊÇÒ»¸öºÜ¼òµ¥µÄ°ì·¨£¬µ±Óû§½øÈë»òÀ뿪ʱ¾ÍÔö¼ÓºÍ¼õÉÙËü¡£ÕâÖÖ·½Ê½ÔÚµ¥·þÎñÆ÷Öоø¶Ô ÊǺõ쬵«ÔÚ¼¯Èº»·¾³½«Ê§Ð§¡£ÔÚ¼¯ÈºÖиüºÃµÄ·½Ê½Êǽ«ËùÓÐ״̬±£´æµ½Êý¾Ý¿â¡£
8.2.4 Íⲿ×ÊÔ´
¾¡¹ÜJ2EE¹æ·¶²»Ö§³Ö£¬µ«Îª¸÷ÖÖÄ¿µÄÈÔÈ»»áÓÃÍⲿI/OµÄ²Ù×÷¡£ÀýÈ磬һЩӦÓûáʹÓÃÎļþϵͳÀ´±£´æÓû§ÉÏ´«µÄÎļþ£¬»òÊÇ´´½¨Ò»¸ö¶¯Ì¬ÅäÖÃµÄ XMLÎļþ¡£ÔÚ¼¯Èº»·¾³ÊÇûÓа취À´ÔÚÆäËûʵÀýÖ®¼äÀ´¸´ÖÆÕâЩÎļþµÄ¡£ÎªÁËÔÚ¼¯ÈºÖй¤×÷£¬°ì·¨ÊÇÓÃÊý¾Ý¿â×÷ΪÍⲿÎļþµÄ´æ·Åµã£¬ÁíÍâÒ²¿ÉÒÔʹÓÃSAN£¨´æ ´¢ÇøÓòÍø£¬Storage Area Network£©×÷Ϊ´æ·Åµã¡£
8.2.5 ÌØÊâ·þÎñ
Ò»Ð©ÌØÊâµÄ·þÎñÖ»ÔÚ¶ÀÁ¢µÄ»·¾³ÖвÅÓÐÒâÒ壬¶¨Ê±·þÎñ¾ÍÒ»¸öºÜºÃÀý×Ó£¬ÕâÖÖ·þÎñ¿ÉÒÔÔÚÒ»¸ö¹Ì¶¨µÄ¼ä¸ôʱ¼äÓйæÂɵĴ¥·¢¡£¶¨Ê±·þÎñ³£ÓÃÓÚÖ´ÐÐһЩ×Ô¶¯»¯ ¹ÜÀíÈÎÎñ¡£ÈçÈÕÖ¾Îļþ¹ö¶¯£¬ÏµÍ³Êý¾Ý±¸·Ý£¬Êý¾Ý¿âÒ»ÖÂÐÔ¼ì²éºÍÈßÓàÊý¾ÝÇåÀíµÈ¡£Ò»Ð©»ùÓÚʼþµÄ·þÎñÒ²ºÜÄѱ»Ç¨ÒƵ½¼¯Èº»·¾³ÖС£³õʼ»¯·þÎñ¾ÍÊǸöºÃÀý×Ó£¬Ëü Ö»ÔÚÕû¸öϵͳÆô¶¯Ê±²Å·¢Éú¡£Óʼþ֪ͨ·þÎñÒ²Ò»Ñù£¬ËüÔÚһЩ¾¯¸æÌõ¼þÏ´¥·¢¡£
ÕâЩ·þÎñÊDZ»Ê¼þ¶ø²»ÊDZ»ÇëÇó´¥·¢µÄ£¬¶øÇÒÖ»±»Ö´ÐÐÒ»´Î¡£ÕâЩ·þÎñʹµÃ¸ºÔؾùºâºÍÊ§Ð§×ªÒÆÔÚ¼¯ÈºÖÐû¶àÉÙÒâÒå¡£
һЩ²úÆ·×¼±¸ÁËÕâЩ·þÎñ£¬ÈçJbossʹÓÃÁË¡°¼¯Èºµ¥ÀýÉèÊ©¡±À´Ðµ÷ËùÓÐʵÀý£¬±£Ö¤Ö´ÐÐÕâЩ·þÎñÒ»´ÎÇÒ½öÓÐÒ»´Î¡£»ùÓÚÄãËùÑ¡ÔñµÄƽ̨£¬Ò»Ð©ÌØÊâµÄ·þÎñ¿ÉÄÜ»áÊǰÑÄãµÄÓ¦ÓÃÇ¨ÒÆµ½¼¯Èº½á¹¹ÖеÄÕϰ¡£
8.3 ·Ö²¼Ê½½á¹¹±È²¢Öýṹ¸üÁé»î¡ª¡ª²»Ò»¶¨
J2EE¼¼Êõ£¬ÓÈÆäÊÇEJB£¬ÌìÉú¾ÍÊÇÓÃÀ´×ö·Ö²¼Ê½¼ÆËã¡£½âñîÒµÎñ¹¦ÄÜ£¬ÖØÓÃÔ¶³Ì×é¼þ£¬ÕâЩʹµÃ¶à²ãÓ¦Ó÷dz£Á÷ÐС£µ«ÊÇÎÒÃDz»Äܽ«ËùÓеĶ«Î÷¶¼·Ö²¼¡£Ò»Ð©J2EE¼Ü¹¹Ê¦ÈÏΪWeb²ãÓëEJB²ã²¢ÖõÃÔ½½üÔ½ºÃ¡£ÕâЩ¼ÆÂÛºóÃæ»á¼ÌÐø¡£ÏÈÈÃÎÒ½âÊÍһϡ£

ͼ 20 ·Ö²¼Ê½½á¹¹
Èçͼ20Ëùʾ£¬ÕâÊÇÒ»¸ö·Ö²¼Ê½½á¹¹¡£µ±ÇëÇóÀ´ÁË£¬¸ºÔؾùºâÆ÷½«ÇëÇó·Ö·¢µ½²»Í¬·þÎñÆ÷ÖеIJ»Í¬WEBÈÝÆ÷£¬Èç¹ûÇëÇó°üº¬ÁËEJBµ÷Óã¬WEBÈÝÆ÷½«ÖØ·¢EJBµ÷Óõ½²»Í¬µÄEJBÈÝÆ÷¡£ÕâÑù£¬ÇëÇ󽫱»¸ºÔؾùºâºÍÊ§Ð§×ªÒÆÁ½´Î¡£
һЩÈË¿´·Ö²¼Ê½½á¹¹£¬ËûÃÇ»áÖ¸³ö£º
- µÚ¶þ´Î¸ºÔؾùºâûÓбØÒª£¬ÒòΪËü²»»áʹÈÎÎñ·ÖÅä¸üƽ̹¡£Ã¿¸ö·þÎñÆ÷ʵÀý¶¼ÓÐËüÃÇ×Ô¼ºµÄWEBÈÝÆ÷ºÍEJBÈÝÆ÷¡£°ÑEJBÈÝÆ÷ÓÃÀ´´¦ÀíÀ´×ÔÆäËûʵÀýWEBÈÝÆ÷µÄÇëÇó±ÈÖ»ÔÚ·þÎñÆ÷ÄÚ²¿µ÷Óò¢Ã»ÓÐʲôÓÅÊÆ¡£
- µÚ¶þ´ÎÊ§Ð§×ªÒÆÃ»ÓбØÒª£¬ÒòΪËü²»ÄÜÊǸ߿ÉÓÃÐÔ¡£¶àÊý¹©Ó¦ÉÌʵÏÖJ2EE·þÎñÆ÷¶¼»áÔÚͬһ·þÎñÆ÷ÖÐÔËÐеÄWEBÈÝÆ÷ºÍEJBÈÝÆ÷·ÅÔÚÒ»¸öJVMʵÀýÖС£Èç¹ûEJBÈÝÆ÷ʧЧÁË£¬¶àÊýÇé¿öÏÂÔÚͬһ¸öJVMÖеÄWEBÈÝÆ÷Ò²½«Í¬Ê±Ê§Ð§¡£
- ÐÔÄܽ«Ï½µ¡£ÏëÏñһ϶ÔÄãµÄÓ¦ÓõÄÒ»´Îµ÷Óðüº¬Ò»×é¶ÔEJBµÄµ÷Óã¬Èç¹ûÄã¸ºÔØ¾ùºâÁËÕâЩEJB£¬Õ⽫¿çԽÿ¸ö·þÎñÆ÷ʵÀý£¬µ¼ÖÂÐí¶à²»±ØÒªµÄ·þÎñÆ÷µ½·þÎñÆ÷µÄ½»»¥¡£»¹ÓУ¬Èç¹ûÕâ¸ö·½·¨ÔÚÊÂÎñ·¶Î§ÄÚ£¬ÄÇôÊÂÎñ±ß½ç½«°üº¬Ðí¶à·þÎñÆ÷ʵÀý£¬Õ⽫ÑÏÖØÓ°ÏìÐÔÄÜ¡£
ʵ¼ÊÉÏÔÚÔËÐÐÆÚ£¬¶àÊýµÄ¹©Ó¦ÉÌ£¨°üÀ¨Sun JES£¬WebLogicºÍJboss£©¶¼»áÓÅ»¯EJBµ÷ÓûúÖÆ£¬Ê¹ÇëÇóÊ×ÏÈÑ¡Ôñͬһ¸ö·þÎñÆ÷ÖеÄEJBÈÝÆ÷¡£ÕâÑù£¬Èçͼ21Ëùʾ£¬ÎÒÃÇÖ»ÔÚµÚÒ»²ã £¨WEB²ã£©×ö¸ºÔؾùºâ£¬È»ºóµ÷ÓÃÏàͬ·þÎñÆ÷ÉϵķþÎñ¡£ÕâÖֽṹÎÒÃdzÆÖ®Îª²¢Öýṹ¡£¼¼ÊõÉÏ˵£¬²¢ÖýṹÊÇ·Ö²¼Ê½½á¹¹µÄÒ»ÖÖÌØÀý¡£

ͼ 21 ²¢Öýṹ
Ò»¸öÓÐȤµÄÎÊÌâÊÇ£¬¼ÈÈ»¶àÊýµÄ²¿ÊðÔÚÔËÐÐÆÚ¶¼Ñݽø³ÉÁ˲¢Öýṹ£¬ÎªÊ²Ã´²»Óñ¾µØ½Ó¿Ú´úÌæÔ¶³Ì½Ó¿Ú£¬Õ⽫´óÌá¸ßÐÔÄÜ¡£Ä㵱Ȼ¿ÉÒÔ£¬µ«ÊǼÇס£¬µ±ÄãʹÓà ±¾µØ½Ó¿Úºó£¬WEB×é¼þºÍEJBñîºÏµÃºÜ½ô£¬¶ø·½·¨µ÷ÓÃÒ²ÊÇÖ±½ÓµÄ¶ø²»Í¨¹ýRMI/IIOP¡£¸ºÔؾùºâºÍÊ§Ð§×ªÒÆ·Ö·¢Æ÷ûÓлú»á½éÈë±¾µØ½Ó¿Úµ÷Óᣠ¡°WEB+EJB¡±ÕûÌå´¦Àí¸ºÔØ¾ùºâºÍÊ§Ð§×ªÒÆ¡£
µ«²»ÐÒµÄÊÇ£¬ÔÚ¼¯ÈºÖÐʹÓñ¾µØ½Ó¿ÚÔÚ¶àÊýJ2EE·þÎñÆ÷ÖÐÓоÖÏÞÐÔ¡£Ê¹Óñ¾µØ½Ó¿ÚµÄEJBÊDZ¾µØ¶ÔÏó£¬ÊDz»¿ÉÐòÁл¯µÄ£¬ÕâÒ»¸öÏÞÖÆ¾Íʹ±¾µØÒýÓò»ÄÜ ±£´æÔÚHTTP SessionÖС£Ò»Ð©²úÆ·£¬ÈçSun JES£¬»á½«±¾µØ½Ó¿ÚÇø±ð¿´´ý£¬Ê¹ËüÃÇ¿ÉÒÔÐòÁл¯¡£ÕâÑù¾Í¿ÉÒÔÓÃÔÚHTTP SessionÖС£
ÁíÒ»¸öÓÐȤµÄÎÊÌâÊÇ£¬¼ÈÈ»²¢ÖýṹÕâôÁ÷Ðв¢ÇÒÓкõÄÐÔÄÜ£¬ÎªÊ²Ã´»¹Òª·Ö²¼Ê½½á¹¹ÄØ£¿ÕâÔÚ¶àÊýÇé¿öÏÂÊÇÓеÀÀíµÄ£¬µ«ÓÐʱ·Ö²¼Ê½½á¹¹ÊDz»¿ÉÌæ´úµÄ¡£
- EJB²»½ö±»WEBÈÝÆ÷ʹÓ㬸»¿Í»§¶ËÒ²»áʹÓÃËü¡£
- EJB×é¼þºÍWEB×é¼þÐèÔÚ²»Í¬µÄ°²È«¼¶±ðÉÏ£¬²¢ÐèÒªÎïÀí·ÖÀë¡£ÕâÑù·À»ðǽ½«±»ÉèÖÃÓÃÓÚ±£»¤ÔËÐÐEJBµÄÖØÒª»úÆ÷¡£
- WEB²ãºÍEJB²ã¼«¶Ë²»¶Ô³ÆÊ¹µÃ·Ö²¼Ê½½á¹¹ÊǸüºÃµÄÑ¡Ôñ¡£±ÈÈ磬һЩEJB×é¼þ·Ç³£¸´ÔÓ²¢ÇÒºÜÏûºÄ×ÊÔ´£¬ËüÃÇÖ»ÄÜÔËÐÐÔÚ°º¹óµÄ´óÐÍ·þÎñ Æ÷ÉÏ£¬ÁíÒ»·½Ã棬WEB×é¼þ£¨HTML£¬JSPºÍServlet£©¼òµ¥µÃÖ»ÐèÁ®¼ÛµÄPC·þÎñÆ÷¾ÍÄÜÂú×ãÒªÇó¡£ÔÚÕâÖÖÇé¿öÏ£¬×¨ÃŵÄWEB·þÎñÆ÷¿ÉÒÔÓÃÀ´½Ó Êܿͻ§¶ËÁ¬½ÓÇëÇ󣬺ܿ촦Àí¾²Ì¬Êý¾Ý£¨HTMLºÍͼÏñ£©ºÍ¼òµ¥µÄWEB×é¼þ£¨JSPºÍServlet£©¡£´óÐÍ·þÎñÆ÷Ö»±»ÓÃÀ´×ö¸´ÔÓ¼ÆËã¡£Õ⽫¸üºÃµÄÀûÓÃͶ ×Ê¡£
9 ½áÂÛ
¼¯ÈºÓë¶ÀÁ¢»·¾³²»Í¬£¬J2EE¹©Ó¦É̲ÉÓò»Í¬µÄ ·½·¨À´ÊµÏÖ¼¯Èº¡£Èç¹ûÄãµÄÏîĿΪ×öµ½¸ßÉìËõÐÔ¶øÊ¹Óü¯Èº£¬ÄãÓ¦¸ÃÔÚÄãµÄÏîÄ¿¿ªÊ¼µÄʱºò¾Í×ö×¼±¸¡£Ñ¡Ôñ·ûºÏÄãµÄÐèÇóµÄÕýÈ·µÄJ2EE²úÆ·¡£Ñ¡ÔñÕýÈ·µÄµÚÈý·½ Èí¼þºÍ¿ò¼Ü²¢È·±£ËüÃÇÄÜÖ§³Ö¼¯Èº¡£×îºóÉè¼ÆÕýÈ·µÄ¼Ü¹¹Ê¹µÃÄÜ´Ó¼¯ÈºÖÐÊÜÒæ¶ø²»ÊÇÊܺ¦¡£ |