Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
SOA ʵÏÖ£º·þÎñÉè¼ÆÔ­Ôò
 
  2377  次浏览      36
 2018-9-11
 
±à¼­ÍƼö:
±¾ÎÄÀ´×ÔÓÚinfoq.com£¬±¾ÎĵÄÖ÷ҪĿµÄÊÇÇ¿µ÷ÔÚÃæÏò·þÎñµÄÌåϵ½á¹¹ÖзþÎñÉè¼ÆµÄÖØÒªÐÔ¡£

ÒýÑÔ

ÃæÏò·þÎñµÄÌåϵ½á¹¹£¨Service-Oriented Architecture£¬SOA£©ÌṩÁËÖ§³ÖÒµÎñÁé»îÐ﵀ IT Áé»îÐÔÔ¶¾°¡£ÔÚ±¾ÎÄÖУ¬ÎÒÃǽ«ÖصãÌÖÂÛ IT Áé»îÐÔµÄÁ½¸öÌØ¶¨·½Ã棺Á÷³ÌʵÏֵķÖÀëºÍ¼ò»¯¡£ÈçºÎ˵Ã÷ºÍʵÏÖ¸÷¸ö·þÎñ¶Ô IT Áé»îÐÔµÄÕâЩ·½ÃæÓкܴóµÄÓ°Ï죬Òò´ËÒ²¶ÔÒµÎñÁé»îÐÔÓкܴóµÄÓ°Ïì¡£ÎÒÃÇ´Ë´¦µÄÄ¿±êÊÇÌṩ֧³Ö SOA Ô¶¾°µÄ·þÎñ˵Ã÷ºÍʵÏÖÖ¸ÄÏ¡£±¾ÎĵÄÂÛÊö½á¹¹ÈçÏ£º

1.Ê×ÏÈ£¬ÎÒÃǽ«ÃèÊö½«ÔÚÆäÖÐ˵Ã÷ºÍʵÏÖ·þÎñºÍ·þÎñ²Ù×÷µÄÉÏÏÂÎÄ»·¾³¡£ÎÒÃǽ«¿¼ÂÇ SOA »ù´¡½á¹¹µÄÖ°ÔðºÍ·þÎñµÄÖ°Ôð¡£

2.½ÓÏÂÀ´£¬ÎÒÃǽ«ÌÖÂÛÊÊÓÃÓÚÕû¸ö·þÎñ£¨¶ø²»ÊǸ÷¸ö²Ù×÷£©¹æ·¶µÄÉè¼ÆÔ­Ôò¡£

3.×îºó£¬ÎÒÃǽ«ËµÃ÷ÊÊÓÃÓÚ¸÷¸ö·þÎñ²Ù×÷µÄÉè¼ÆÔ­Ôò¡£

ÎÒÃÇÔÚÎÄÖÐËù¸ø³öµÄÉè¼ÆÔ­ÔòÖ¼ÔÚͨ¹ý¸ÄÉÆÁ÷³ÌʵÏֵķÖÀëºÍ¼ò»¯À´Ìá¸ß IT Áé»îÐÔ£¬Òò´Ë£¬ÎÒÃǽ«Í¨¹ý¶ÔÕâЩÀíÄî½øÐиüΪÉîÈëµÄ·ÖÎöÀ´Íê³ÉÎÒÃǵĽéÉÜ¡£

·ÖÀë

SOA Ô­Ôò·Ç³£Ç¿µ÷½«·þÎñʹÓÃÕߺͷþÎñÌṩÕß·ÖÀ뿪À´£¬¹ØÓÚ´ËÀà·ÖÀëʵ¼ÊµÄº¬Ò壬Óкܶ಻Õýʽµ«·Ç³£ÓÐÓõÄÔ¼¶¨¡£·ÖÀë±³ºóµÄÒ»¸ö»ù´¡¸ÅÄî¾ÍÊÇ£¬¶Ô·þÎñÌṩÕßµÄÐ޸IJ»Ó¦ÒªÇóÔÚ·þÎñʹÓÃÕßÖнøÐÐÏàÓ¦µÄÐ޸ġ£ÀýÈ磬½«µ±Ç°ÔÚÌØ¶¨²Ù×÷ϵͳÉÏÔËÐеķþÎñÖØÐ²¿Êðµ½ÁíÒ»¸öƽ̨µÄ¾ö¶¨ÍêÈ«¿ÉÄܲ»ÒªÇó¶Ô·þÎñʹÓÃÕß½øÐиü¸Ä¡£Ò»¸öÖ÷ÒªµÄ SOA Ö¸µ¼Ô­Ôò¾ÍÊÇ£¬Òª¼õÉÙʹÓÃÕߺÍÌṩÕßÖ®¼äµÄÒÀÀµ¹ØÏµ¡£

·ÖÀëÓ¦ÓÃÓÚ¼¼Êõ²ãÃæ£¬Ç¿µ÷ Web ·þÎñºÍÒì²½ÏûÏ¢½»¸¶Ö®ÀàµÄ¼¼Êõ£¬ÒÔÔÊÐíʹÓÃÕß¶ÀÁ¢ÓÚ·þÎñÌṩÕßÑ¡ÔñʵÏֺͿÉÓÃÐÔÑ¡Ïî¡£ÎÒÃÇ»¹¿ÉÒÔͨ¹ý¸÷ÖÖ·½Ê½Èà SOA »ù´¡½á¹¹ÊµÏÖ¼¼Êõ·ÖÀ룬È磺

·þÎñÓ¦¸ÃÉè¼ÆÎªÓëÒª²¿Êðµ½ÆäÖÐµÄ SOA »ù´¡½á¹¹¼æÈÝ£¬ÌرðÊÇ£¬·þÎñӦȷ±£±ÜÃâ²»±ØÒªµÄñîºÏ¡£¾Ù¸öÏà·´µÄÀý×Ó£¬ÓÐ״̬·þÎñ½Ó¿Ú½«ÇãÏòÓÚͨ¹ý½«Ê¹ÓÃÕßÓëÌØ¶¨ÌṩÕßʵÀý¹ØÁªÀ´Ôö¼ÓʹÓÃÕߺÍÌṩÕß¼äµÄñîºÏ¡£

·ÖÀëµÄ¸ÅÄîҲͬÑùÊÊÓÃÓڷǼ¼ÊõµÄÒµÎñ²ã´Î¡£·þÎñʹÓÃÕßÓ¦¸Ã¾¡¿ÉÄÜÓë·þÎñÌṩÕßʵÏÖµÄÒµÎñÂß¼­Ï¸½Ú·ÖÀ롣ΪÁËʵÏÖ´ËÀà·ÖÀ룬ͬÑùÒ²ÐèÒª½øÐÐϸÐĵÄÉè¼Æ¡£ÔÚÏÂÃæµÄ·þÎñÉè¼ÆÔ­Ôò²¿·Ö£¬ÎÒÃǽ«ÌÖÂÛ½«·þÎñ½Ó¿Ú±íÊöΪÓÐÒâÒåµÄÒµÎñ²Ù×÷£¨¶ø²»ÊÇϸÁ£¶ÈµÄÔ­Óï·½·¨£©µÄºÃ´¦¡£

Á÷³ÌʵÏÖ

ÔÚ SOA ÖУ¬ÎÒÃÇͨ¹ý¶Ô¸÷¸ö·þÎñ½øÐбàÅÅ£¨Í¨¹ý±à³Ì·½Ê½»òʹÓûùÓÚÒµÎñÁ÷³ÌÖ´ÐÐÓïÑÔ¡ª¡ªBusiness Process Execution Language£¬BPEL¡ª¡ªµÄ¹¤¾ß£©À´ÊµÏÖÒµÎñÁ÷³Ì¡£Èç¹ûҪʵÏÖ SOA Ô¶¾°£¬Ôò±ØÐë¼ò»¯´´½¨ºÍÐÞ¸ÄÁ÷³ÌµÄÈÎÎñ¡ª¡ª¼´£¬·þÎñ±àÅÅÈÎÎñ¡£

ÒµÎñÁ÷³Ì±àÅŵÄÄ¿±êÔÚÓÚʵ¼Ê¶øÓÐЧµØÊµÏÖËùÐèµÄÒµÎñÂß¼­¡£Á÷³ÌʵÏÖÈËÔ±ËùÃæÁÙµÄÎÊÌâ°üÀ¨£º

Ñ¡ÔñÇ¡µ±µÄ·þÎñ²Ù×÷

È·¶¨Ê¹ÓÃÕýÈ·²ÎÊýµ÷Ó÷þÎñµÄ˳Ðò

´¦Àí¸÷ÖÖ¿ÉÄܵÄÏìÓ¦£¬°üÀ¨´íÎóÏìÓ¦

Ó¦µ±Çå³þ£¬·þÎñÉè¼ÆµÄÖÊÁ¿¶Ô±àÅżò»¯ÓкܴóµÄÓ°Ïì¡£ÓйطþÎñ¡¢²Ù×÷ºÍ²ÎÊýµÄÃû³ÆºÍÊýÁ¿ÒÔ¼°ÎĵµÖÊÁ¿ºÍ·þÎñ²Ù×÷Ö®¼äµÄÏ໥ÒÀÀµ³Ì¶È¡ª¡ªËùÓÐÉè¼ÆÎÊÌ⡪¡ªµÄ¾ö²ß¶¼¿ÉÄܸø±àÅÅ´øÀ´ºÜ´óµÄÓ°Ïì¡£

SOA Éè¼ÆÔ­Ôò

ÕâÒ»²¿·ÖÊÇÓйØÕû¸ö SOA ϵͳµÄÖ¸ÄÏ£¬´ú±íÁËÔÚ½¨Á¢ÏµÍ³Ê±ÐèÒª½øÐоö²ßµÄ¸÷¸ö·½Ãæ¡£Äú½«ÏòÉè¼ÆÈËÔ±ºÍʵÏÖÈËÔ±ÌṩÄÄЩ¹æÔòºÍÖ¸µ¼·½Õ룿ÄúµÄ SOA »ù´¡½á¹¹½«ÌṩºÎÖÖ¹¦ÄÜ£¿ÎÒÃǽ«¸ø³öһϵÁн¨ÒéÉè¼ÆÔ­Ôò£¬µ«Ã¿¸ö¶¼ÊÇÉè¼Æ¹ý³ÌÖеÄÒ»ÖÖÕÛÖÔ×ö·¨¡£ÄúµÄÆóÒµ¿ÉÄÜÓоßÌåµÄÒªÇ󣬶øÐèҪѡÔñÓëÎÒÃÇÌṩµÄ³£¹æ½¨Ò鲻ͬµÄÑ¡Ïî¡£ÎÒÃÇÌá³öÉè¼ÆÔ­ÔòµÄÄ¿µÄÔÚÓÚ±êʶÐèÒª½øÐоö²ßµÄ·½Ã棻¶ø´ËÀà¾ö²ßÔòÊǼܹ¹Éè¼ÆÈËÔ±µÄÔðÈΡ£ÎÒÃDz¢²»ÈÏΪËùÌá³öµÄÉè¼ÆÔ­Ôò·Ç³£È«Ã棻ÔÚÄúµÄÆóÒµÖÐʵÏÖ SOA ʱ£¬ºÜÓпÉÄÜ»á²ÉÓÃÆäËûÔ­Ôò£¬ÎÒÃǷdz£Ï£ÍûÄúÄܽ«ÕâЩÉè¼ÆÔ­Ôò·´À¡¸øÎÒÃÇ¡£

SOA ÒªÇóÒ»ÖÂÐÔ

Óкܶà¿ÉÓÃÓÚ´´½¨¡¢·¢²¼¡¢·¢Ïֺ͵÷Ó÷þÎñµÄºòÑ¡¼¼Êõ¡£SOA Ó¦Ìṩһ¸ö²Î¿¼Ìåϵ½á¹¹£¬ÒÔÖ¸¶¨·þÎñÌṩÕߺÍʹÓÃÕß½«Ê¹ÓõÄÌØ¶¨»úÖÆ£»ÎÒÃÇÓ¦ÒÔÔÚ SAO ËùÓвÎÓëÕß¼äʵÏÖÒ»ÖÂÐÔΪĿ±ê¡£´ËÀàÒ»ÖÂÐÔ¿ÉÒÔ¼õÉÙ¿ª·¢¡¢¼¯³ÉºÍά»¤¹¤×÷¡£

Èç¹ûÐèҪʹÓòο¼Ìåϵ½á¹¹Ö®ÍâµÄÔªËØ£¬ÎÒÃÇÍÆ¼öʹÓò¹³äÐÔ·½·¨¡£ÀýÈ磬¼ÙÈçÎÒÃÇΪ·þÎñ·¢²¼ºÍ·¢ÏÖÑ¡ÔñµÄ»úÖÆÊÇ UDDI£¬µ«Ä³¸öÌØ¶¨µÄ¿ª·¢ÍŶÓÒÑÔÚʹÓÃÒ»¸ö»ùÓÚÆäËû´æ´¢¿â¼¼ÊõµÄ¿ª·¢Á÷³Ì£¬´Ëʱ¸ÃÈçºÎ´¦ÀíÄØ£¿ÎÒÃǽ«Ñ¡ÔñͶÈ뾫Á¦½«¸ÃÍŶӵķþÎñͬʱ·¢²¼µ½Á½¸ö´æ´¢¿â¡£ÕâÑù£¬ÏÖÓеķþÎñʹÓÃÕ߾ͿÉÒÔʹÓÃÆäÊìϤ£¨µ«¿ÉÄܲ¢²»±ê×¼£©µÄ´æ´¢¿âÁË¡£¶øÔËÐÐÓÚ¹«¹² SOA »ù´¡½á¹¹ÉϵÄʹÓÃÕßÔò¿ÉÒÔΪËùÓзþÎñʹÓñê×¼´æ´¢¿â¡ª¡ªÀýÈç UDDI¡£

SOA ¼ò»¯¿ª·¢

ÎÒÃÇÏ£ÍûÈÎºÎÆóÒµ¼¶µÄ SOA »ù´¡½á¹¹¶¼¾ßÓпÉÉìËõÐԺ͵¯ÐÔ£»»¹Ó¦°üº¬ÐÐÒµ¼¶µÄÆóÒµ·þÎñ×ÜÏߣ¨Enterprise Service Bus£¬ESB£©ºÍ°²È«¼¼Êõ¡£»òÕߣ¬»»ÖÖ˵·¨£¬ÒÔ SOA ΪĿ±êµÄ·þÎñºÍÁ÷³ÌµÄ¿ª·¢ÈËÔ±¿ÉÀûÓóÉÊìµÄÖмä¼þ£¬ÒÀÀµ SOA »ù´¡½á¹¹ÌṩÎÊÌâµÄ½â¾ö·½°¸£¬ÈçÉí·ÝÑéÖ¤¡¢ÏûϢת»»ºÍ¿É¿¿ÏûÏ¢½»¸¶¡£

ÕâЩÖмä¼þ¹¦ÄܵÄÌṩӦÒÔÒ»¸öÖØÒªµÄÔ­ÔòΪ»ù´¡£º·þÎñºÍÁ÷³Ì¿ª·¢ÈËÔ±Ó¦Ô¶ÀëÖмä¼þʵÏֵĸ´ÔÓϸ½Ú¡£ÎÒÃǵÄÀíÏëÄ¿±êÊÇ£¬ÔÚÎÒÃÇµÄ SOA »·¾³Öй¤×÷µÄ¿ª·¢ÈËÔ±Ó¦Ö»ÐèÒªÒµÎñÁìÓòµÄÏà¹ØÖªÊ¶ºÍ»ù±¾µÄ±à³Ì¼¼ÇÉ¡£

ÎÒÃÇ¿ÉÒÔͨ¹ý¸÷ÖÖ·½Ê½ÊµÏÖ´ËÄ¿±ê£¬ÈçÏÂËùÊö£º

ÉùÃ÷¼¼Êõ£º J2EE ±à³ÌÄ£Ð;ÍÊÇʹÓÃÉùÃ÷¼¼ÊõÌṩӦÓóÌÐòÂß¼­ºÍÖмä¼þÅäÖ÷ÖÀëµÄÒ»¸öÀý×Ó¡£ÀýÈ磬ӦÓóÌÐò×é×°ÈËԱͨ¹ýÔÚ²¿ÊðÃèÊö·û£¨¶ø²»ÊÇ´úÂ룩ÖÐÌí¼ÓÏàÓ¦ÌõÄ¿À´Ó¦Óà EJB ·½·¨½ÇÉ«µÄ°²È«ÊÚȨ£»È»ºó²¿ÊðÈËÔ±»á½«ÕâЩ½ÇɫӳÉäµ½Óû§ºÍ×é¡£Çë×¢Ò⣬²¿ÊðÈËÔ±ÎÞÐè±àдÈκÎÊÚȨ´úÂë¡£

³éÏó£º ÔÚijЩÇé¿öÏ£¬SOA »ù´¡½á¹¹ÖпÉÒÔÌṩ API£¬ÒÔÓÃÓÚÌØ¶¨µÄÓÃ;¡£ÀýÈ磬SOA »ù´¡½á¹¹¿ÉÒÔÌṩ´íÎ󱨸æºÍÉóºË»úÖÆ¡£ÔÚÉè¼Æ´ËÀà API ʱӦ·Ç³£Ð¡ÐÄ£¬Òª×¢ÒâÆäÒ×ÓÃÐÔ¡£ÎÒÃÇÓ¦ÓÅÏÈ¿¼ÂÇÉùÃ÷¼¼Êõ£¬¶ø²»ÊǶÔÕâЩ»úÖÆ½øÐбà³ÌÅäÖá£Í¬Ñù£¬ÔÚ±ê×¼ API ¿ÉÓÃʱ£¨ÀýÈç Java ÈÕÖ¾ API£©£¬ÎÒÃÇӦͨ¹ýÕâЩ±ê×¼ API ¹«¿ª SOA »ù´¡½á¹¹¹¦ÄÜ£¬¶ø²»ÊDzÉÓÃ×Ô¼º¿ª·¢±àдµÄ·½Ê½¡£

´úÂëÉú³É£º ÔÚÎÞ·¨±ÜÃâ´úÂ븴ÔÓÐԵĵط½£¬¿ÉÒÔʹÓôúÂëÉú³É¼¼Êõ¡£ÀýÈ磬Web ·þÎñÃèÊöÓïÑÔ£¨Web Services Definition Language£¬WSDL£©¾Í¿ÉÒÔΪ¿ª·¢ÈËÔ±Òþ²Ø SOAP¡¢HTTP ºÍ JMS µÄ¸´ÔÓϸ½Ú¡£ÕâÊÇͨ¹ý×éºÏÓà WSDL ±íʾµÄ¿ÉÓɼÆËã»ú´¦ÀíµÄ½Ó¿Ú¶¨ÒåºÍ¿É´Ó WSDL Éú³ÉÏà¹Øµ÷ÓôúÂëµÄÓïÑÔÌØ¶¨ÊµÏֵŤ¾ßÀ´ÊµÏֵġ£

¹¤¾ß£ºÔÚ²»¿É±ÜÃâ SOA »ù´¡½á¹¹µÄϸ½Ú½øÈ뿪·¢ÈËÔ±´úÂëµÄÇé¿öÏ£¬ÎÒÃÇ¿ÉÒÔͨ¹ýʹÓúÏÊʵŤ¾ßÀ©Õ¹¿ª·¢»·¾³À´¼õÉÙ¿ª·¢ÈËÔ±¹¤×÷µÄ¸´ÔÓÐÔ¡£IBM Rational? Software Development Platform ²úÆ·ËùÌṩµÄ»ùÓÚ Eclipse µÄ»·¾³¿ÉʹÓÃ×Ô¶¨Òå²å¼þ¡¢´úÂëÆ¬¶ÎºÍÓû§Ö¸ÄÏÇáËɵؽøÐÐÀ©Õ¹¡£

Ä£ÐÍÇý¶¯µÄ¿ª·¢£ºÄ£ÐÍÇý¶¯µÄ¿ª·¢¼¼Êõ¿ÉÒÔ±»ÊÓÎªÇ°ÃæÁ½ÖÖ·½·¨µÄÌØ¶¨¸´ÔÓ×éºÏ£¬Í¬Ê±ÀûÓÃÁ˹¤¾ßºÍ´úÂëÉú³É¹¦ÄÜÀ´¼ò»¯¿ª·¢ÌåÑé¡£¿ª·¢ÈËÔ±Éú³Éͳһ½¨Ä£ÓïÑÔ£¨Unified Modeling Language£¬UML£©Ä£ÐÍ£¬´ËÀàÄ£ÐÍ¿Éת»»ÎªÏàÓ¦µÄ´úÂ룬ÆäÖаüº¬ÀûÓà SOA »ù´¡½á¹¹Ëù±ØÐèµÄ´úÂë¡£

×ÜÖ®£¬ÔÚ¶¨ÒåÃæÏò·þÎñµÄÌåϵ½á¹¹¼°Æä»ù´¡½á¹¹Ê±£¬ÎÒÃDZØÐëÌØ±ð×¢Ò⿪·¢ÈËÔ±µÄÐèÇó¡£µ±Îª¿ª·¢ÈËÔ±ÌṩָÄÏ£¬ÒÔ¸æÖªËûÃÇÓ¦ÈçºÎ¿ª·¢»òʹÓ÷þÎñʱ£¬ÎÒÃÇÓ¦¸ÃѰÕÒ¿É´Ù½øÕâЩָµ¼·½Õë×ñÑ­µÄ»úÖÆ¡£Ò»¸ö×ܵÄÔ­ÔòÊÇ¡°Ö»Òª¿É·½±ãÍê³ÉËùÐèµÄ¹¤×÷£¬¾Í˵Ã÷·½·¨ÊÇÕýÈ·µÄ¡£¡±»»¾ä»°Ëµ£¬×ñÑ­Ïà¹ØÖ¸ÄÏÓ¦µ±Îª×èÁ¦×îСµÄ·½·¨¡£SOA ÄڵĿØÖÆ¶ÔÆä³É¹¦ÉõΪ¹Ø¼ü¡£

´Ó¿ª·¢ÈËÔ±µÄ½Ç¶È¶øÑÔ£¬ËûÃÇÓÐÔðÈÎÁ˽â SOA »ù´¡½á¹¹ºÍÖ¸ÄÏ£¬²¢»ý¼«Ê¹ÓÃÖ¸ÄÏ£¬¶ø²»Òª³¢ÊÔ½øÐйæ±Ü¡£

·þÎñ¾ßÓбê×¼µÄ¡¢¾­¹ýÕýʽ¶¨ÒåµÄ¿ÉÓɼÆËã»ú´¦ÀíµÄ½Ó¿Ú

Á˽âÁ˹¤¾ßºÍ´úÂëÉú³ÉÔÚ SOA ʵÏÖÖпɰçÑÝÖØÒª½Çɫ֮ºó£¬ÎÒÃÇÏÖÔÚҪǿµ÷ʹÓÿÉÓɼÆËã»ú´¦ÀíµÄ½Ó¿ÚµÄÖØÒªÐÔ¡£µ±Ê¹Óö¨ÒåÁ¼ºÃµÄ¿ÉÓɼÆËã»ú´¦ÀíµÄÓïÑÔÃèÊöÁ˽ӿÚʱ£¬Êµ¼ÊÉϾÍΪ¸÷ÖÖ¹¤¾ßÖ§³Ö¹¦ÄÜÌṩÁËÖ§³Ö¡£ÎÒÃÇÏ£Íû¸ÄÉÆ·ÖÀë×´¿ö£¬Òò´ËÎÒÃÇÇ¿ÁÒ½¨ÒéʹÓà WSDL Ö®ÀàÕýʽ¶¨ÒåµÄ¿ª·Å±ê×¼ÓïÑÔ£¬¶ø²»ÒªÊ¹ÓÃרÓøñʽ¡£

¿ÉÓɼÆËã»ú´¦ÀíµÄ·½·¨µÄ¸ÅÄîÓ¦¸Ã´Ó·þÎñ½Ó¿ÚÃèÊö£¨Èç WSDL£©À©Õ¹µ½ËùÓÐÆäËûÐÎʽµÄÉùÃ÷ÐÅÏ¢»òÔªÊý¾Ý¡£Ö»ÓÐͬʱǿµ÷ÉùÃ÷¼¼ÊõºÍ¿ÉÓɼÆËã»ú´¦ÀíµÄÔªÊý¾Ý£¬²ÅÄܽ«ÆäÏà¹ØµÄ¸´ÔÓÐÔ´ÓÒµÎñÓ¦ÓóÌÐò¿ª·¢ÈËÔ±×ªÒÆµ½»ùÓÚ±ê×¼µÄÖмä¼þÖС£ÐÂÐ赀 WS-Policy Ö®ÀàµÄ¼¼ÊõÔÚÖ§³Ö´Ë·½·¨·½Ãæ³äµ±×ÅÖØÒªµÄ½ÇÉ«¡£

·þÎñÓ¦Éè¼ÆÎª¿ÉÖØÓÃ

·þÎñÉè¼ÆÈËÔ±Ó¦¸Ã¼Çס£¬ËûÃÇËù¿ª·¢µÄÈκηþÎñ¶¼¿ÉÄܳÉΪ¿ÉÖØÓÃ×ʲú¡£Éè¼ÆÈËÔ±²»Ó¦Ö»¹Ø×¢·þÎñµÄ×î³õʹÓÃÕßµÄÐèÇ󣬶øÓ¦¸Ã½øÐиüΪ¹ã·ºµÄÒµÎñ·ÖÎö£¬ÒÔÈ·¶¨¸üÈ«ÃæµÄÐèÇó¡£ÎÒÃǽ¨Ò飬Éè¼ÆÈËÔ±Ó¦¿¼ÂÇ·þÎñ¿ÉÄܵķ¢Õ¹·½Ïò£º

1.Éè¼Æ±ØÐëÄÜÊÊÓ¦²»¶ÏÔö¼ÓµÄÍÌÍÂÁ¿£»Èç¹û·þÎñÔÚʹÓ÷þÎñµÄÊýÁ¿Ôö¼ÓµÄÇé¿öÏÂÈԿɳɹ¦ÔËÐУ¬ÄÇôʹÓÃÂÊÒ²»á³É¼¶ÊýµÝÔö¡£

2.Èç¹ûʹÓ÷þÎñµÄÊýÁ¿Ôö¼Ó£¬ÔòÊý¾ÝÁ¿ºÍ²¢·¢Êý¾Ý·ÃÎÊģʽ¿ÉÄÜ»áÓë×î³õͶÈëʹÓÃʱµÄÇé¿ö´óΪ²»Í¬¡£

3.ÎÒÃDZØÐë¶Ô·þÎñÇëÇóµÄδÀ´Ôö³¤½øÐÐÔ¤¼Æ£»ÐÂʹÓÃÕß¿ÉÄÜÐèÒªÆäËûµÄ¹¦ÄÜ£¬»òÕßÐèÒª¶ÔÏÖÓй¦ÄܽøÐиü¸Ä

Îı¾ÆäÓಿ·ÖËùÌÖÂ۵ĺܶàÉè¼ÆÔ­Ôò¶¼ÓëÈ·±£·þÎñµÄ¿ÉÉìËõÐԺͿÉά»¤ÐÔÃÜÇÐÏà¹Ø¡£ÐèÒªÌáÐÑһϣº¿ÉÄÜ»áÓÉÓÚ¿¼ÂÇÁËDZÔÚµÄÖØÓöø²ÉÓò»Ç¡µ±µÄÉè¼Æ·½·¨¶Ô·þÎñ½øÐÐÉè¼Æ£¬´Ó¶øµ¼ÖÂʵÏÖ¡°¹ýµ±¡±¡£ÎÒÃǹÄÀø½«×î³õµÄÖØµã·ÅÔÚ·þÎñ½Ó¿ÚÉè¼ÆÉÏ£¬ÒÔÈ·±£ÆäÖ§³Ö¿ÉÉìËõÐÔ£»ÎÒÃǵÄÉè¼ÆÔ­Ôò¿É°ïÖú×öµ½ÕâÒ»µã¡£È»ºóÉú³ÉÒ»¸ö¸Ã½Ó¿ÚµÄÕ½ÊõÐÍʵÏÖ£¬ÒªÇó×ãÒÔÂú×ãĿǰÒÑÖªµÄÐèÇó¡£¼ÙÈç¸Ã½Ó¿ÚÉè¼ÆÁ¼ºÃ£¬Ó¦¸Ã¿ÉÒÔÔÚ³öÏÖÏà¹ØÐèÇóÊ±Ìæ´úÉìËõÐÔ¸üºÃµÄʵÏÖ¡£

·þÎñÉè¼ÆÔ­Ôò

ÎÒÃÇÔøËµ¹ý£¬·þÎñÊÇÆä½Ó¿Ú²ÉÓÃijÖÖÒ»ÖÂÈϿɵĸñʽ·¢²¼µÄ·þÎñ²Ù×÷µÄÂß¼­·Ö×飬ÄÇôÎÒÃǽÓÏÂÀ´½«ÌÖÂÛÊÊÓÃÓÚÕû¸ö·þÎñµÄÉè¼ÆÔ­Ôò¡£ÔÚÏÂÃæµÄ·þÎñ²Ù×÷Éè¼ÆÔ­ÔòÖУ¬ÎÒÃǽ«ÌÖÂÛ¸÷¸ö²Ù×÷µÄÉè¼Æ¡£

ÃüÃû·þÎñʱӦÒÔ×î´ó»¯Ò×ÓÃÐÔΪĿ±ê

ÎÒÃÇÔÚÑ¡Ôñ·þÎñ¡¢²Ù×÷¡¢Êý¾ÝÀàÐͺͲÎÊýµÄÃû³ÆÊ±ÓÐÒ»¸öÖ¸µ¼Ô­Ôò£ºÏ£Íû×î´ó»¯·þÎñµÄÒ×ÓÃÐÔ¡£ÎÒÃÇÏ£Íû°ïÖúÁ÷³Ì¿ª·¢ÈËÔ±±êʶʵÏÖÒµÎñÁ÷³ÌËùÐèµÄ·þÎñºÍ²Ù×÷¡£Òò´Ë£¬ÎÒÃÇÇ¿ÁÒ½¨ÒéʹÓ÷þÎñʹÓÃÕßרҵÁìÓòÄÚÓÐÒâÒåµÄÃû³Æ£¬ÓÅÏÈÑ¡ÓÃÒµÎñ¸ÅÄî¶ø²»ÊǼ¼Êõ¸ÅÄî¡£

ÎÒÃǵĽ¨Òé¾ÍÊÇ£ºÓ¦Ê¹ÓÃÃû´Ê¶Ô·þÎñ½øÐÐÃüÃû£»¶øÓ¦Ê¹Óö¯´Ê¶Ô²Ù×÷½øÐÐÃüÃû¡£

±È½ÏÇåµ¥ 1 ºÍÇåµ¥ 2 ÖÐËùʾµÄÁ½¸ö·þÎñ¶¨Òå¡£ÎÒÃÇʹÓüò»¯µÄα´úÂëÀ´¼õÉÙ±à³ÌÓïÑÔ¡°´Ø¡±¡£

Çåµ¥ 1. ʹÓö¯´Ê¶ÌÓïºÍ IT ¹¹ÔìµÄ·þÎñ¶¨Òå

ManageCustomerData {

InsertCustomerRecord()

UpdateCustomerRecord()

// etc ...
}

Çåµ¥ 2. ʹÓÃÃû´ÊºÍ¶¯´Ê¶ÌÓï¼°ÒµÎñ¸ÅÄîµÄ·þÎñ¶¨Òå

CustomerService {

CreateNewCustomer()

ChangeCustomerAddress()

CorrectCustomerAddress()

EnableOverdraftFacilityForCustomer()

// etc ...

}

Çë×¢ÒâÇåµ¥ 1 Öе͍ÒåÊÇÈçºÎʹÓà IT ¸ÅÄî½øÐбíÊö²¢Í¬Ê±Îª·þÎñºÍ²Ù×÷ʹÓö¯´Ê¶ÌÓïµÄ¡£ÔÚÇåµ¥ 2 ÖУ¬·þÎñ±íÊöΪÃû´Ê£¬¶ø²Ù×÷ÔòʹÓþßÓÐÇå³þµÄÒµÎñº¬ÒåµÄ¶¯´Ê¶ÌÓï½øÐÐÃüÃû¡£ÎÒÃÇÈÏΪµÚ¶þ¸öʾÀýµÄÒ×ÓÃÐÔ¸üºÃһЩ¡£´ËÍ⣬ÔÚµÚ¶þ¸öʾÀýÖУ¬·þÎñµÄÒµÎñÓÃ;·Ç³£Çå³þ£¬¶ø²»µ¥Êǽö½öָʾÆäÊä³ö¡£Òò´Ë£¬ÎÒÃDz»Ê¹Óá°update customer record¡±£¨¿ÉÒÔΪ³öÓÚÈκÎÔ­Òò½øÐеÄÈκθüУ©£¬¶øÊ¹Óá°enable overdraft facility¡±¡£Óë´ËÀàËÆ£¬ÔÚ¿Í»§°áǨʱ£¬ÎÒÃÇʹÓá°change customer address¡±·½·¨¸ü¸Ä¿Í»§µØÖ·£»¶øÔÚÏ£Íû¸üÕýÎÞЧÊý¾ÝʱʹÓá°correct customer address¡±¸üÕý¿Í»§µØÖ·£¬ÒòΪÕâÑùºÜÈÝÒ׿´³öÕâÁ½¸ö²Ù×÷²ÉÓÃÁ˲»Í¬µÄ·þÎñÂß¼­¡£

Èç¹û²ÉÓÃÒµÎñ¸ÅÄî±íÊö·þÎñºÍ²Ù×÷Ãû³Æ£¬Ôò±ØÐëÃÜÇÐ×¢ÒâÈçºÎÈ·¶¨ÕâЩÃû³Æ¡£Õâ¾Í·Ç³£ÐèÒªÓÐÒ»¸öÕýʽµÄÊõÓï´Ê»ã±í£¬¿ÉÒÔͨ¹ýÒµÎñ·ÖÎö»î¶¯µÃµ½Õâ¸ö´Ê»ã±í¡£´Ê»ã±íÓ¦¸ÃÓÐÒ»¸öÕýʽµÄËùÓÐÕß¡£

·þÎñÓ¦¾ßÓо«ÐÄÑ¡ÔñµÄÁ£¶È

Á£¶È Ò»´ÊÔÚ SOA Ïà¹ØÌÖÂÛÖÐÓжàÖÖ²»Í¬µÄÓ÷¨¡£ÔÚ±¾ÎĵķþÎñÉè¼ÆÌÖÂÛÖУ¬ÎÒÃÇ¿¼ÂǵÄÊÇ·þÎñ±¾ÉíµÄÁ£¶È£¬¼´·þÎñÓ¦¸Ã°üº¬µÄ²Ù×÷ÊýÁ¿¡£

ûÓпÉÓÃÓÚÈ·¶¨·þÎñÁ£¶ÈµÄ¼òµ¥Æô·¢Ê½·½·¨¡£ÎÒÃǽ«ÌṩÁ½¸öÔÚÉè¼Æ·þÎñʱӦ¸Ã¿¼ÂǵÄÒòËØµÄʾÀý¼ÓÒÔ˵Ã÷£º

1.·þÎñ½«Í¨³£×÷Ϊ²âÊԺͷ¢²¼µÄµ¥Î»¡£Èç¹ûÁ£¶È¹ý´Ö£¬¶ø½«´óÁ¿²Ù×÷·Ö×éµ½µ¥¸ö·þÎñÖУ¬Ôò¿ÉÄܽ«Ôö¼Ó·þÎñµÄʹÓÃÕß¡£Òò´Ë£¬Èç¹ûÎÒÃǶԷþÎñµÄijЩ·½Ãæ½øÐиü¸Ä£¨¿ÉÄܽöΪÁËÆäÖÐһЩʹÓÃÕßµÄÀûÒæ£©£¬Ôò±ØÐëÖØÐ·¢²¼Õû¸ö·þÎñ£¬´Ó¶ø¿ÉÄÜÓ°ÏìËùÓÐʹÓÃÕß¡£

2.·þÎñʹÓÃÕßËùÃæÁÙµÄÒ»¸öÌôÕ½¾ÍÊÇÕÒµ½ÕýÈ·µÄ²Ù×÷¡£Í¨³££¬Ê¹ÓÃÕßÐèÒªä¯ÀÀ·þÎñÁÐ±í£¬È»ºóÔÚ±êʶÁ˺ÏÊʵķþÎñºóä¯ÀÀ·þÎñ²Ù×÷ÁÐ±í¡£ÎÒÃÇÈÏΪ£¬·þÎñÁ£¶ÈµÄÁ½¸ö¼«¶Ë¡ª¡ªÌṩ½öÓм¸¸ö·½·¨µÄºÜ¶à·þÎñ£¬»òÊýÊ®»òÊý°Ù¸ö²Ù×÷¾ù¼¯ÖÐÔÚ¼¸¸ö·þÎñÖСª¡ª¶¼½«¶ÔÒ×ÓÃÐÔÔì³ÉÓ°Ïì¡£

Õâ±íÃ÷£¬ÔÚÑ¡Ôñ·þÎñÁ£¶Èʱ£¬ÎÒÃÇ¿ÉÄÜÐèÒªÔÚ¶à¸öÒòËØ¼ä½øÐÐÕÛÖÔ£¬Èç¿Éά»¤ÐÔ¡¢¿É²Ù×÷ÐÔºÍÒ×ÓÃÐÔ¡£Èκθø¶¨µÄ SOA ¶¼Ó¦Ïò·þÎñÉè¼ÆÈËÔ±ÌṩָÄÏ£¬ÒÔ±ãÈ·¶¨´ËÀàÕÛÖÔ·½°¸¡£

·þÎñÓ¦ÊÇÄÚ¾Û¶øÍêÕûµÄ

¼ÈÈ»ÈÏʶµ½ÁËÔÚÈ·¶¨·þÎñÁ£¶ÈʱÐèÒª¿¼ÂÇÖÜÈ«£¬ÄÇôÔÚÈ·¶¨ÄÄЩ²Ù×÷Ó¦×é³É·þÎñʱÓÐʲôעÒâÊÂÏîÄØ£¿ÎÒÃÇÈÏΪÓÐÁ½¸ö¶ÔÏóÉè¼Æ¸ÅÄîºÜÓÐÓãºÄÚ¾ÛÐÔºÍÍêÕûÐÔ¡£ÎÒÃǿɽ«ÕâЩ¸ÅÄîÓ¦ÓÃÓÚ·þÎñ½Ó¿Ú¡£

ÎÒÃÇÏ£Íû´´½¨¹¦ÄÜÄھ۵Ľӿڣ¬Ò»×é²Ù×÷ÓÉÓÚÆä¹¦ÄÜÏà¹Ø¶ø¾ÛºÏµ½Ò»Æð¡£ÎÒÃÇ·¢ÏÖ£¬µ±ÆÀ¹ÀÄھ۳̶Èʱ£¬´Ó·þÎñʹÓÃÕ߽Ƕȿ´´ý·þÎñºÜÓÐÓá£Í¨¹ýʹÓÃÕßµÄÊӽǣ¬ÎÒÃÇ»á½«ÖØµã·ÅÔÚ·þÎñµÄ¹¦ÄÜÉÏ¡£½«´Ë·½·¨ÓëʹÓÃÒÔÏÂÄÚ¾Û±ê×¼½øÐжԱȣº

ÎÒÃÇ¿ÉÒÔ¿¼ÂÇ»ùÓÚ¹¦ÄÜʵÏÖµÄÄÚ¾ÛÐÔ½øÐоö²ß¡£ÊÇ·ñÓ¦ÓÉÓÚ²Ù×÷ʹÓÃÏàͬµÄËã·¨·Ö×éµ½Ò»Æð£¬»òÕßÓÉÓÚ¾ùÊÇʹÓÃÏàͬÖ÷»úÉ쵀 CICS ÊÂÎñʵÏֵĶø½«Æä·Ö×éµ½Ò»Æð£¿ÕâЩÊÇʵÏÖϸ½Ú£¬²»Ó¦Ó°Ïì½Ó¿ÚÉè¼Æ¡£

¿ÉÒÔʹÓÃʱ¼äÄÚ¾ÛÐÔÔ­Ôò£¬¼´£¬½«ÔÚ¶Ìʱ¼äÄÚÒ»ÆðʹÓõIJÙ×÷·Ö×éµ½Ò»Æð£¬ÀýÈ磬RetrieveCustomerDetails¡¢CheckCreditRating¡¢CreateLoanFacility ºÍ TransferFunds ²Ù×÷¶¼¿ÉÄÜÔÚ½ðÈÚÒµÎñÁ÷³ÌÖÐÒÀ´Î³öÏÖ¡£²»¹ý£¬Ê±¼äÄÚ¾ÛÐÔ²¢²»Òâζ×ÅÕâЩ²Ù×÷Ó¦¸ÃÓÉͬһ¸ö·þÎñÌṩ£¬CheckCreditRating ºÍ TransferFunds ¾Íȱ·¦¹¦ÄÜÄÚ¾ÛÐÔ¡£

ʹÓÃÃû´Ê-¶¯´Ê¶Ô·þÎñºÍ²Ù×÷½øÐÐÃüÃûµÄ¹æÔò¿ÉÒÔ°ïÖúÎÒÃǽ«Öصã·ÅÔÚ·þÎñ½Ó¿ÚµÄ¹¦ÄÜÄÚ¾ÛÐÔÉÏ¡£ÎÒÃÇ¿ÉÒÔÎÊÕâÑùÒ»¸öÎÊÌâ¡°Õâ¸ö¶¯´ÊÊÇ·ñÊǸÃÃû´ÊËù½øÐеIJÙ×÷£¿¡±

ÎÒÃǵĵڶþ¸ö¶ÔÏóÉè¼Æ¸ÅÄîÊÇÍêÕûÐÔ¸ÅÄî¡£ÔÚΪÒÑ֪ʹÓÃÕß´´½¨·þÎñʱ£¬ÍêÕûÐÔµÄÎÊÌâÓÈΪֵµÃ×¢Òâ¡£ÔÚÕâÖÖÇé¿öÏ£¬ÎÒÃÇͨ³£»á½«Öصã·ÅÔÚÂú×ãËùÖªµÄʹÓÃÕßÐèÇóÉÏ¡£ÇëÎñ±Ø¼Çס£¬·þÎñÓ¦¸ÃΪ¿ÉÖØÓõģ¬Òò´ËÐèÒª¿¼Âǽ«À´µÄʹÓÃÕߵĿÉÄÜÐèÇó¡£¾Ù¸ö¼òµ¥µÄÀý×Ó£¬¼ÙÈçÓиöÃûΪ CellPhone µÄ·þÎñÌṩ Create¡¢Update¡¢Query¡¢Delete ºÍ Deactivate µÈ²Ù×÷¡£ÎÒÃÇÍêÈ«¿ÉÒÔÏëÏó»áÐèÒª¶ÔÆúÓõÄÊÖ»ú½øÐÐÖØÐ¼¤»î£¬Òò´ËÓ¦¾ö¶¨ÊÇ·ñÒ²Ó¦Ìṩ¶Ô³ÆµÄ Activate ·½·¨¡£

ͨ¹ýÅжϣ¬ÎÒÃÇÓ¦¸ÃÓ¦ÓÃÍêÕûÐÔ¹æÔò¡£Èç¹û²»ÖªµÀʹÓÃÕßÐèÇó£¬Ôò¿ÉÄܺÜÄÑÌṩÕýÈ·µÄ¹¦ÄÜ£¬Òò´Ë¾ÍÓпÉÄÜ´æÔÚ½«¿ª·¢ºÍ²âÊÔ¹¤×÷ÀË·ÑÔÚÌṩ½«²»»áʹÓõIJÙ×÷ÉϵķçÏÕ¡£

·þÎñÓ¦¶ÔʵÏÖϸ½Ú½øÐзâ×°

ÁíÒ»¸ö¶ÔÏóÉè¼ÆÔ­Ôò£¨·â×°£©Ò²ÊÊÓÃÓÚÉè¼Æ·þÎñ½Ó¿Ú¡£ÎÒÃÇ·â×°·þÎñʵÏÖµÄϸ½Ú¡ª¡ªËùÓõÄËã·¨ºÍ×ÊÔ´¡ª¡ªµÄ¶¯»úÔÚÓÚÔö¼Ó·þÎñʹÓÃÕߺÍÌṩÕßÖ®¼äµÄ·ÖÀ룬´Ó¶øÎª½«À´À©Õ¹ÌṩÁé»îÐÔ¡£

·þÎñÊÊÓ¦¶àÖÖµ÷ÓÃģʽ

WebSphere? µÈÌṩµÄ Web ·þÎñ¼¼ÊõÔÊÐí½øÐиü¸ß²ã´ÎµÄ·â×°¡£·þÎñʹÓÃÕßͨ¹ýʹÓø÷ÖÖµ÷ÓÃģʽ£¬¿ÉÒÔʹÓÃÍêÈ«ÏàͬµÄ´úÂë¼¼ÊõÀ´µ÷Óà Web ·þÎñ£¬ÈçÒÔÏÂÕâЩģʽ£º

1.ʹÓà SOAP over HTTP µÄ´«Í³Í¬²½µ÷ÓÃ

2.ʹÓà SOAP over JMS µÄ»ùÓÚÏûÏ¢µÄÒì²½µ÷ÓÃ

3.ʹÓà Java ¹ý³Ìµ÷Óõı¾µØµ÷ÓÃ

²»¹ý£¬ËäÈ» Web ·þÎñ»ù´¡½á¹¹¿ÉÒÔ·â×°µ÷ÓõÄϸ½Ú£¬´Ó¶ø¼ò»¯´úÂ룬µ«·þÎñÉè¼ÆÒ²Ó¦¶Ôµ÷Ó÷½Ê½¼ÓÒÔ¿¼ÂÇ¡£¶Ô±Èһϱ¾µØµ÷ÓúÍÔ¶³Ìµ÷Óá£ÓëÇåµ¥ 3 ËùʾÄÚÈÝÀàËÆµÄ·þÎñÉè¼Æ¿ÉÒÔÌṩÓмÛÖµµÄÒµÎñ¹¦ÄÜ£¬µ«È´²»ÊʺÏÔںܶà SOA »·¾³Öв¿Êð¡£

Çåµ¥ 3. ·±Ã¦ÐÍ·þÎñ½Ó¿Ú

LibraryCatalogService {
// search operations elided

String getBookTitle(String isbn)

String getBookAuthor(String isbn)

Date getBookPublicationDate(String isbn)

// further operations elided
}

ÔÚ±¾µØµ÷ÓÃʱ£¬Çåµ¥ 3 ËùʾµÄ·þÎñ½Ó¿Ú¿ÉÄÜÄܹ»Õý³£¹¤×÷¡£²»¹ý£¬Èç¹û·þÎñÊÇÔÚÔ¶³ÌλÖÃÏòʹÓÃÕßÌṩµÄ£¬Ôò¸Ã·þÎñÔÚ³£¼ûʹÓó¡¾°ÖеÄÐÔÄÜ¿ÉÄÜ»áºÜ²î¡£ÀýÈ磬ÔÚʹÓ÷þÎñ¼ìË÷Êý¾ÝÀ´Ìî³äÏÔʾÊéµÄĿ¼ÏîµÄÆÁĻʱ£¬½«ÓбØÒª½øÐжà¸ö¶ÀÁ¢µÄÔ¶³Ìµ÷Óã¬ÒÔ¼ìË÷ÊéÃû¡¢×÷Õߺͳö°æÈÕÆÚ¡£½øÐÐÕâЩµ÷ÓÿÉÄÜ»áÓкܴóµÄÐÔÄÜËðʧ¡£Ô¶³Ì·þÎñÓ¦Ìṩ´ÖÁ£¶ÈµÄ²Ù×÷£¬ÒÔÔÚµ¥¸öµ÷ÓÃÖмìË÷¹ØÓÚij±¾ÊéµÄËùÓÐÐÅÏ¢¡£

¿ÉÔ¶³Ìµ÷ÓõķþÎñµÄÕâ¸öÉè¼ÆÔ­ÔòµÃµ½Á˹㷺µÄÈϿɣ»ÎÒÃÇÔÚ´Ë´¦Ç¿µ÷´ËÔ­ÔòµÄÄ¿µÄÔÚÓÚ˵Ã÷±»·â×°µÄ·þÎñµ÷ÓÃϸ½Ú¿ÉÄܸøÎÒÃÇÈçºÎÑ¡ÔñÉè¼Æ·½·¨´øÀ´ºÜ´óµÄÓ°Ïì¡£ÎÒÃÇÈÏΪ£¬Í¬²½µ÷ÓúÍÒì²½µ÷ÓÃÖ®¼äµÄÑ¡ÔñÒ²¿ÉÄܶԷþÎñ½Ó¿ÚÉè¼ÆÓÐÀàËÆµÄÓ°Ïì¡£

Õâ¾ÍÒýÈëÁËÒ»¸öÖØÒªµÄÎÊÌ⣺Éè¼Æ·þÎñʱ£¬Ê²Ã´¾ö¶¨ÁËËùʹÓõĵ÷Ó÷½Ê½£¿·þÎñÉè¼ÆÈËÔ±ÊÇ·ñ¿ÉÒÔ×ÔÓÉÑ¡Ôñ±¾µØµ÷ÓúÍÔ¶³Ìµ÷Óá¢Í¬²½µ÷ÓúÍÒì²½µ÷Óã¿ÎÒÃǽ¨Òé SOA Ó¦¶ÔÕâ·½Ãæ½øÐÐ˵Ã÷¡£ÎÒÃÇÌá³ö´Ë½¨ÒéÓÐÁ½¸öÔ­Òò¡£Ê×ÏÈ£¬ÎÒÃÇÏ£Íûͨ¹ýÈ·±£Ò»ÖÂÐÔÌá¸ßÒ×ÓÃÐÔ£»±àÅÅÁ÷³Ìʱ£¬·þÎñ×îºÃ¾ßÓпÉÔ¤²âµÄÌØÕ÷¡£Æä´Î£¬ÎÒÃÇÏ£Íûͨ¹ý½«Ê¹ÓÃÕßÓëÌṩÕß·ÖÀëÀ´Ìá¸ßÁé»îÐÔ¡£Í¨¹ý¹ÄÀø½øÐÐÔ¶³Ìµ÷Óã¬ÎÒÃÇ¿ÉÒÔ½øÐÐλÖá¢Æ½Ì¨ºÍ±à³ÌÓïÑÔ·ÖÀ롣ͨ¹ý¹ÄÀø½øÐÐÒì²½µ÷Óã¬ÎÒÃÇ¿ÉÒÔ·ÖÀëʹÓÃÕߺÍÌṩÕߵĿÉÓÃÐÔÌØÕ÷¡£

Èç¹û SOA Òª¾ßÓÐÃèÊöÐÔ£¬ÊÇ·ñÓ¦ÉùÃ÷ËùÓзþÎñ¶¼Ó¦Éè¼ÆÎªÔÊÐíÔ¶³Ì¡¢Òì²½µ÷Óã¿ÎÒÃǽ¨Òé¶Ô´ËÃèÊöÐÔ²ÉÓøüΪϸÁ£¶ÈµÄ·½·¨¡£¿ÉÄܵķþÎñÀàÐͰüÀ¨ÌṩҵÎñÏà¹Ø½Ï¶àµÄ²Ù×÷£¬Èç PlaceOrder£¬Ò²°üÀ¨¼¼ÊõÐÔ²àÖØ½Ï¶àµÄ²Ù×÷£¬Èç CheckUserInRole¡£SOA ÍêȫӦ¸Ã¶Ô²»Í¬µÄ·þÎñÀà±ð½øÐв»Í¬µÄÃèÊö¡£ÎÒÃÇÔ¤ÆÚ½«¸ü¶àµØµ÷ÓÃÓëÒµÎñÏà¹ØµÄ²Ù×÷£¬¶ø¼¼Êõ²Ù×÷ÍêÈ«¿ÉÄܲÉÓñ¾µØµ÷Óõķ½Ê½¡£

·þÎñ¾ßÓÐÎÞ״̬½Ó¿Ú

ÎÒÃÇÔÚ·þÎñÓ¦Éè¼ÆÎª¿ÉÖØÓÃÖÐÌáµ½£¬Ó¦¸Ã½«·þÎñÉè¼ÆÎª¿ÉÉìËõÇҿɲ¿Ê𵽸߿ÉÓÃÐÔ»ù´¡½á¹¹ÖС£´Ë×ÜÌåÔ­ÔòµÄÒ»¸öÍÆÂÛ¾ÍÊÇ£¬·þÎñ²»Ó¦ÎªÓÐ״̬Ð͵ġ£¼´£¬ËüÃDz»Ó¦ÒÀÀµÓÚʹÓÃÕߺÍÌṩÕ߼䳤ÆÚ´æÔڵĹØÏµ£¬²Ù×÷µ÷ÓÃÒ²²»Ó¦ÒþʽµØÒÀÀµÓÚǰһ¸öµ÷Óá£ÎªÁË˵Ã÷ÕâÒ»µã£¬ÎÒÃÇÒÔÏÂÃæµÄµç»°×ª»»ÎªÀý£º

Çåµ¥ 4. ÓÐ״̬ת»»

Q:What is Dave's account balance?

A: It's ¡ê320

Q:What's his credit limit?

A:It's ¡ê2,000

´ËʾÀýÑÝʾÁËת»»µÄÁ½¸öÓÐ״̬·½Ãæ¡£µÚ¶þ¸öÎÊÌâͨ¹ýʹÓá°his¡±ÒýÓõÚÒ»¸öÎÊÌâ¡£Õâ¸öʾÀýÖеIJÙ×÷ÒÀÀµÓÚת»»ÉÏÏÂÎÄ¡£ÏÖÔÚÈÃÎÒÃÇ¿¼ÂÇÒ»ÏÂËùÌṩµÄÓ¦´ð¡£Çë×¢Ò⣬ÏìÓ¦ÖÐûÓÐÉÏÏÂÎÄÐÅÏ¢¡£Ó¦µ±Ö»ÓÐÔÚѯÎÊÕßÖªµÀËùѯÎʵÄÎÊÌâʱ£¬Õâ¸öÓ¦´ð²ÅÓÐÒâÒå¡£ÔÚ´ËʾÀýÖУ¬ÒªÇóʹÓÃÕßά»¤¶Ô»°×´Ì¬£¬ÒÔ±ã½âÊÍËùµÃµ½µÄÓ¦´ð¡£ÕâÁ½¸öÓÐ״̬¹ØÏµ£¨Á¬ÐøµÄµ÷ÓÃÖ®¼äºÍÇëÇóÓëÏìÓ¦Ö®¼äµÄ¹ØÏµ£©¶¼Óë SOA ·þÎñÉè¼ÆÓйء£

Ê×ÏÈ£¬ÎÒÃÇ¿¼ÂÇÒ»ÏÂÒÀÀµÓÚǰһ²Ù×÷½¨Á¢µÄÉÏÏÂÎĵIJÙ×÷¡£¼ÙÈçÕâÊÇÒ»¸öÓëºô½ÐÖÐÐĵĽ»»¥¡£Ö»ÒªÓëͬһ¸ö²Ù×÷ÈËÔ±¶Ô»°£¬¶Ô»°¾Í¿ÉÒÔÓÐЧµØ½áÊø¡£µ«ÎÒÃǼÙÉèºô½Ð±»ÖжÏÁË£¬ÈçÏÂËùʾ£º

Çåµ¥ 5. ±»ÖжϵÄÓÐ״̬ת»»

Q:What is Dave's account balance?

Operator 1: It's ¡ê320

An interruption occurs, and the caller talks to a different operator.

Q:What's his credit limit?

Operator 2: Who?

Öжϵ¼ÖÂÉÏÏÂÎĶªÊ§£¬Òò´ËµÚ¶þ¸öÎÊÌâÊÇûÓÐÒâÒåµÄ¡£¾ÍÕâ¸öµç»°¶Ô»°¶øÑÔ£¬ÎÒÃÇ¿ÉÒÔͨ¹ýÖØÐ½¨Á¢ÉÏÏÂÎĶøµÖÏûÖжϴøÀ´µÄºó¹û£º¡°ÎÒÔÚÎÊ Dave µÄÒøÐÐÕÊ»§µÄÐÅÏ¢£¬ÄúÄܸæËßÎÒËûµÄÐÅÓöî¶ÈÂ𣿡±²»¹ý£¬ÔÚ¿ÉÀ©Õ¹·þÎñµ÷ÓÃÁìÓò£¬ÓÐ״̬¶Ô»°Í¨³£¸üΪÂé·³£¬ÔÚ´ËÁìÓòÖУ¬ÖØÐ½¨Á¢ÉÏÏÂÎÄ¿ÉÄÜÔÚ¼¼ÊõÉϲ»¿ÉÐУ¬»òÕß¿ÉÄÜ´øÀ´ºÜ´óµÄÐÔÄÜ¿ªÏú¡£

ͨ³££¬¹¹½¨¿ÉÉìËõµÄ¿É¿¿»ù´¡½á¹¹ÓëÔÊÐíÓÐ״̬½»»¥Ö®¼äÓнôÃܵĹØÏµ¡£´´½¨Ö§³ÖÓÐ״̬µÄ·þÎñµ÷ÓÃµÄ SOA »ù´¡½á¹¹ÔÚ¼¼ÊõÉÏ¿ÉÐС£¿ÉÒÔʹÓõļ¼Êõ°üÀ¨£º

1.ʹÓà Http Cookie ά»¤»á»°ÉÏÏÂÎÄ

2.ʹÓÃÓÐ״̬»á»° EJB£»Bean µÄ¾ä±úÔÚ SOAP Header Öд«µÝ

²»¹ý£¬ÎÒÃDZØÐë×Ðϸ¿¼ÂÇ×îÖÕ»ù´¡½á¹¹µÄ¿ÉÉìËõÐԺͿɿ¿ÐÔ¡£ÊÇ·ñÒªÇóʹÓùØÁªÐÔ£¿¼´£¬ÏàͬµÄʹÓÃÕß·¢³öµÄÁ¬ÐøÇëÇóÊÇ·ñ±ØÐë½»¸¶µ½ÏàͬµÄÌṩÕßʵÀý£¿ÒªÇóʹÓùØÁªÐÔÊÇÒ»ÖÖÓÐ״̬ÐÔÓë¿ÉÉìËõÐÔ¼°¿É¿¿ÐÔ³åÍ»µÄÇé¿ö¡£Èç¹û»ù´¡½á¹¹¿ÉÒÔËæÒ⽫ÇëÇóÌá½»µ½¶à¸öÌṩÕßʵÀýÖеÄÒ»¸ö£¬¾Í¿É¼ò»¯¸ºÔØÆ½ºâ£¬¶ø¸÷¸öÌṩÕßʵÀýµÄ¿É¿¿ÐÔÒªÇó¾Í¿É»ººÍ¡£

Èç¹ûûÓйØÁªÐÔÐèÇó£¬ÇÒÔÊÐí»ù´¡½á¹¹½«Ò»¸öʹÓÃÕßµÄÁ¬ÐøÇëÇ󽻸¶µ½²»Í¬µÄÌṩÕßʵÀý£¬ÔòÈκλỰ״̬±ØÐë¶ÔËùÓÐÌṩÕßʵÀý¿ÉÓá£Ó¦Ó÷þÎñÆ÷»ù´¡½á¹¹Ìṩ»á»°¸´ÖÆ»úÖÆ¡£´ËÀà»úÖÆ¿ÉÒÔÓÃÓÚÌṩ»á»°×´Ì¬£¬µ«Ê¹ÓÃËüÃÇ»áÓÐÐÔÄÜËðʧ¡£¶øÇÒ£¬ÎÒÃÇµÄ Web ¿ª·¢¾­Ñé±íÃ÷£¬Èç¹ûûÓпɿ¿µÄÖ¸ÄÏ£¬¿ª·¢ÈËÔ±½«¿ÉÒÔËæÒâʹÓûỰ״̬£»¹ý¶ÈʹÓà HTTP »á»°Í¨³£Êǵ¼ÖÂÐÔÄܵÍϵij£¼ûÔ­Òò¡£Çë²ÎÔÄ¡°Performance Analysis for Java Web Sites¡±£¨×÷ÕߣºJoines¡¢Willenborg ºÍ Hygh£¬µÚ 59 Ò³¡ª60 Ò³£¬Addison-Wesley ISBN 0201844540£©¡£

ÎÒÃÇÇ¿ÁÒ½¨Ò飬·þÎñÓ¦Éè¼ÆÎª¿É±ÜÃâά»¤»á»°ÉÏÏÂÎĵÄÐèÇó¡£

ÏÖÔÚ£¬ÈÃÎÒÃÇ¿¼ÂÇһ϶Ի°µÄÆäËûÓÐ״̬·½ÃæÒÔ¼°ÇëÇóºÍÏìÓ¦¼äµÄ¹ØÏµ¡£ÎÒÃÇÊÇ·ñÒª²ÉÓÃÉÏÃæµÄµç»°¶Ô»°·½Ê½½øÐзþÎñÉè¼Æ£¬ÒÀÀµ»á»°ÉÏÏÂÎÄÀ´½âÊÍÏìÓ¦¡°What is Dave's credit limit?¡±¡ª¡ª¡°¡ê320¡±¡ª¡ªÈ»ºóÎÒÃǽ«¶Ô SOA »ù´¡½á¹¹ÔٴνøÐÐÔ¼Êø¡£

»ù´¡½á¹¹±ØÐëÊÊÓ¦¸÷ÖÖ¿ÉÄÜÐÔ£¬ÈçijЩʹÓÃÕßÎÞ·¨ÔÚÁÙʱͣ»úµÄÇé¿öϱ£ÁôÆä»á»°×´Ì¬¡£

ÎÒÃÇ¿ÉÒÔͨ¹ý½«·þÎñÉè¼ÆÎªÔÚÏìÓ¦Öаüº¬ºÏÊʵĹØÁªÐÅÏ¢£¬´Ó¶ø±ÜÃâ»á»°×´Ì¬µÄÐèÇó£¬ÀýÈçÒÔϵÄÏìÓ¦£º

Çåµ¥ 6. °üº¬¹ØÁªÐÅÏ¢µÄ¶Ô»°

Q: What is Dave's credit limit?

A: Dave's credit limit is ¡ê2000

¸ÃÏìÓ¦¼È±êʶÈËÔ±ÓÖÌṩ¾ßÌåµÄÊý¾Ý¡£µ±°ü×°ÒÅÁôϵͳʱ£¬Í¨³£ÓÉÊÊÅäÆ÷¸ºÔðÌṩ´ËÀà¹ØÁªÐÅÏ¢¡£ÏÖÓÐͬ²½ API ÍêÈ«ÓпÉÄܲ»Ìṩ¹ØÁªÊý¾Ý¡£ÔÚÏìÓ¦Öаüº¬¹ØÁªÐÅÏ¢Ö®ËùÒÔÊǺܺõÄ×ö·¨£¬ÓкܶàÔ­Òò¡£Ê×ÏÈ£¬Ëü¼ò»¯Á˵¯ÐÔ¿ÉÉìËõ½â¾ö·½°¸µÄ¹¹Ô죬»¹ÄÜÌṩºÜ´óµÄÕï¶Ï°ïÖú£¬ÇÒÔÚ²»¿ÉÄÜÏòԭʼÇëÇó³ÌÐò½»¸¶´íÎóÏìӦʱ·Ç³£ÖØÒª¡£Î´½»¸¶µÄÏûÏ¢¿ÉÄÜ·ÅÖÃÔÚ´íÎó¶ÓÁÐÉÏ£¬Ã¿¸ö´ËÀàÏûÏ¢µÄ½âÊͶ¼ÒªÇóʹÓÃÉÏÏÂÎÄÐÅÏ¢¡£

×ÜÖ®£¬×ÐϸµØ½øÐзþÎñÉè¼Æ¿ÉÒÔ±ÜÃâ¶Ô״̬¶Ô»°µÄÐèÇ󣬴Ӷø¼ò»¯¿É¿¿µÄ¿ÉÉìËõ SOA »ù´¡½á¹¹µÄʵÏÖ¡£

·þÎñӦʹÓÃ״̬ÊÂÎñ½¨Ä£

Ç°Ãæ¸ø³öÁËÒ»¸ö×ܵĽ¨Ò飬ÒÔ±ÜÃâÒÀÀµ¶Ô»°×´Ì¬£¬µ«ÎÒÃÇÓ¦µ±¼Çס£¬ÓÐÓõļÆËã»úϵͳͨ³£½«ÎªÓÐ״̬µÄ£»Í¨³£·´Ó³ÁËÒµÎñ¶ÔÏóµÄÉúÃüÖÜÆÚ¡£

ÀýÈ磬¿¼ÂǹºÎïÖеÄÒ»¸ö¶©µ¥µÄÉúÃüÖÜÆÚ£º´´½¨¶©µ¥¡£´ÓÓû§µÄ½Ç¶ÈÀ´¿´£¬´´½¨ÁËÒ»¸ö¿ÕµÄ¹ºÎï³µ¡£Óû§½«ËæºóÏò¶©µ¥Ìí¼ÓÎïÆ·£¬¼´½«Æä·ÅÈ빺Îï³µÖС£×îºóÌá½»¶©µ¥£¬È»ºó¶©µ¥½«±»´«Ë͸øÅäËͲ¿ÃÅ¡£Í¼ 1 ÏÔʾÁ˶ԴËÉúÃüÖÜÆÚ½¨Ä£µÄ¼ò»¯×´Ì¬×ª»»Í¼¡£

ͼ 1. ¶©µ¥ÉúÃüÖÜÆÚ״̬ת»»

¸ÃÄ£ÐÍ˵Ã÷ÁËһЩÓÐ״̬µÄÐÐΪ¡£ÀýÈ磬ÎÒÃÇ¿´µ½£¬ÔÚ´¦ÓÚ Open ״̬ʱ¿ÉÒÔÏò¶©µ¥Ìí¼ÓÐÐʽÏîÄ¿£¬µ«ÔÚÌá½»ºó¾Í²»ÄÜÁË¡£

ÈÃÎÒÃÇ¿¼ÂÇÒÔÏ Order ·þÎñµÄÉè¼Æ¡£ÎÒÃÇ¿ÉÒÔ²ÉÓÃÈçÇåµ¥ 7 ËùʾµÄ½Ó¿Ú¡£

Çåµ¥ 7. Order ·þÎñÉè¼Æ

OrderService {

void addLineItemToOrder(int orderId, int productId, int quantity)

void assignOrderToPacker(int packerId)

int createOrder(int customerId) // returns id of new order

int packItemForOrder(int orderId, int quantity) // returns quantity left to ship

boolean shipOrder(int orderId) // returns whether all order is now shipped

void submitOrder(int orderId)

// ... query operations elided ...

ÎÒÃÇÒª¿¼ÂǴ˽ӿڵÄÒ×ÓÃÐÔ¡££¨¸üÏÖʵһЩ£¬ÎÒÃÇÓ¦¸Ã¿¼ÂÇÄÇЩ¾ßÓиü¶à·½·¨µÄÍêÕû½Ó¿Ú£¬ÈçÓÃÓÚÁгöºÍɾ³ýÐÐʽÏîÄ¿µÄ·½·¨¡££©Èç¹ûûÓÐ״̬ͼ¹©²Î¿¼£¬¼´Ê¹²é¿´ÎÒÃǵÄÕâ¸öСʾÀý£¬Ò²·Ç³£ÄÑÓÚ·ÖÇå·½·¨Ó¦¸Ã°´ÕÕºÎÖÖ˳Ðò½øÐе÷Óá£Òò´ËÎÒÃÇÈÏΪ£¬·þÎñÉè¼ÆÈËÔ±±ØÐë½øÐÐÒ»¶¨µÄ¹¤×÷£¬ÒÔ¼ò»¯Ê¹ÓÃÕßµÄÈÎÎñ¡£ÎÒÃÇÌṩÁËһЩ¿ÉÄܵļ¼Êõ¡£

Ê×ÏÈ£¬¿¼ÂDzÙ×÷ºÍ²ÎÊýµÄÃû³Æ¡£ÎÒÃÇÉÏÃæµÄʾÀýÖеÄÃû³ÆÊǾ­¹ýϸÐÄÑ¡ÔñµÄ£¬²¢½øÐÐÒ»¶¨µÄŬÁ¦£¬ÒÔÍÆµ¼³ö·½·¨µÄ¿ÉÄܵ÷ÓÃ˳Ðò¡£Çë±È½ÏÇåµ¥ 8 ºÍÇåµ¥ 9 ÖеÄʾÀý£¬ÕâÁ½¸ö´úÂëÆ¬¶Î¼¸ºõÍêȫһÑù£¬Ö»ÊDzÙ×÷ºÍ²ÎÊýµÄÃû³Æ²»Í¬¡£

Çåµ¥ 8. ²»ºÏÀíÑ¡ÔñµÄ²Ù×÷ºÍ²ÎÊýÃû³Æ

ZettuylService {
int wibble(int wibId, int wobId, String which);
int wobble(int quibId);
boolean wrubble(int wibId);
void quibble(int widId)
void quash(int wibId)
Stuff[] getStuff(int wibId );
void quite(int wibId);
Things[] getThings(int wibId);
void hinge(int wibId, intwobId);
int henge(int wibId , Stuff someStuff)
}

Çåµ¥ 9. ºÏÀíÑ¡ÔñµÄ²Ù×÷ºÍ²ÎÊýÃû³Æ

ExpenseService {
int approveClaimItem(int claimId, int itemId, String comment);
int createClaim(String userId);
boolean auditClaim(int claimId);
void approveClaim(claimId)
void returnClaim(claimId)
ClaimItemDetails[] getClaimItems(int claimId );
void payClaim(int claimId);
ClaimErrors[] validateClaim(int claimId);
void removeClaimItem(int claimId, int itemId);
int addClaimItem(int claimId, ClaimItemDetails details)
}

Çåµ¥ 8 ÖеÄÃû³Æ¶¼ÊÇÄÑÒÔÀí½âµÄ¡£¶øÇåµ¥ 9 ÖÐÑ¡ÔñµÄÃû³ÆËµÃ÷ÁË·þÎñµÄÄ¿µÄ£¬²¢¿ÉÒÔ¼õÉٺܶà²Ù×÷Ó¦°´Ìض¨Ë³Ðòµ÷ÓõÄÇé¿ö¡£ÀýÈ磬createClaim() ½«ÔÚ approveClaim() ǰʹÓ㬶øºóÕßÓÖ½«ÔÚ payClaim() ǰʹÓá£Òò´Ë£¬ÕýÈçÎÒÃÇÔÚÇ°ÃæµÄÃüÃû·þÎñʱӦÒÔ×î´ó»¯Ò×ÓÃÐÔΪĿ±êËùÖ¸³öµÄ£¬Ãû³ÆµÄÑ¡Ôñ¶ÔÒ×ÓÃÐÔÓ°Ïì·Ç³£´ó¡£

Æä´Î£¬Ç°ÃæµÄ Order µÄ״̬ת»»Í¼¿ÉÇå³þ˵Ã÷¶©µ¥µÄÓÐ״̬ÐÐΪ¡£¸ÃͼÌṩÁËÓÐÓõÄ˵Ã÷ÐÅÏ¢£¬ÏÔʾÁ˶©µ¥µÄ״̬ÒÔ¼°Ã¿¸ö״̬ÖÐÏàÓ¦µÄ²Ù×÷¡£

Ôö¼ÓÒ×ÓÃÐԵĵڶþÏî¼¼ÊõÊÇ£¬Òª¼Çס²¢·ÇËùÓмǼµÄÖµ¶¼¿ÉÒÔͨ¹ý·þÎñ½Ó¿Ú¶¨ÒåʵÏÖ×î¼ÑµÄ½»¸¶¡£¼Ç¼Á¼ºÃµÄ WSDL ÎļþºÜÓмÛÖµ£¬µ«Ò»ÆðÌṩµÄ¹ØÏµÍ¼ºÍʾÀýÒ²ÓкܴóµÄ¼ÛÖµ¡£

Ôö¼ÓÒ×ÓÃÐÔµÄÁíÒ»Ïî¼¼ÊõÊÇ£¬´´½¨·´Ó³ÒµÎñ¶ÔÏóÉúÃüÖÜÆÚµÄ״̬µÄ·þÎñ½Ó¿Ú¡£ÔÚÎÒÃÇ·ÑÓÃÉêÁìʾÀýÖУ¬Ã¿±Ê·ÑÓÃÉêÁìµÄÉúÃüÖÜÆÚ¶¼°üº¬Ëĸö״̬£¬Èçͼ 2 ÖÐËùʾ¡£

ͼ 2. expense ¶ÔÏóµÄËĸö״̬

ÕâЩ״̬֮ËùÒÔÖØÒª£¬ÓÐÁ½¸öÔ­Òò¡£µÚÒ»£¬Ã¿¸ö״̬»ù±¾É϶¼Ó벻ͬµÄϵͳÓû§Ïà¹Ø¡£ÀýÈ磬µ±·ÑÓÃÉêÁì´¦ÓÚ¹¹½¨ (building) ״̬ʱ£¬Ö÷ҪϵͳÓû§ÊÇÊäÈë·ÑÓÃÉêÁìÏêϸÐÅÏ¢µÄÉêÁìÈË£¬¶øÔÚÉóºË (auditing) ״̬ÖУ¬ÔòÊÇÓɾßÓÐÅú׼ȨÀûµÄÈ˶ԷÑÓÃÉêÁì½øÐмì²é¡£

µÚ¶þ£¬Ö÷Ҫ״̬֮¼äµÄת»»Í¨³£·´Ó³Á˲»Í¬ IT ϵͳ֮¼äµÄÊý¾ÝÁ÷¡£ÀýÈ磬ÔÚ¹¹½¨ (building) ״̬ÆÚ¼ä£¬¿ÉÒÔÔÚÓû§µÄ¹¤×÷Õ¾ÉÏʹÓÃÒ»¸öÊݿͻ§¶ËÓ¦ÓóÌÐòÀ´²¶»ñ·ÑÓÃÉêÁì¡£Ìá½»ºó£¬·ÑÓÃÉêÁ콫´«µÝ¸ø·ÑÓÃÉêÁì´¦Àíϵͳ£¬¶øµ±µÃµ½Åú×¼ºó£¬·ÑÓÃÉêÁ콫´«µÝ¸øÁíÍâÒ»¸öϵͳ£¬¼´Ö§¸¶ÏµÍ³¡£ÔÚ´«µÝ¹ý³ÌÖУ¬ÎÒÃÇÐèÒªÌáµ½µÄÊÇ£¬Èç¹ûʵÏÖµÄÈ·Òª½«Êý¾Ý´ÓÒ»¸öϵͳ´«µÝµ½ÁíÒ»¸öϵͳ£¬ÔòÐèÒªÓÈΪעÒ⸺ÔðÔÚϵͳ֮¼ä½øÐд«ÊäµÄ²Ù×÷£¨ÔÚÎÒÃǵÄʾÀýÖÐΪ submitClaim() ºÍ approveClaim()£©¡£ËüÃǵÄʵÏÖ½«ÐèÒª¶ÔÁ½¸öϵͳ½øÐиüУ¬¶øÕâÑùºÜÈÝÒ×ɥʧÁ½¸öϵͳÖÐÈÎÒâÒ»¸öµÄ¿ÉÓÃÐÔ¡£ÕâЩ·½·¨µÄʵÏÖ½«¿ÉÒÔͨ¹ýʹÓÃÒì²½ÅŶӻúÖÆµÃµ½¸ÄÉÆ¡£

ÓÉÓÚÒµÎñ¶ÔÏó״̬³£³£ÄÜͬʱ·´Ó³ÒµÎñºÍ¼¼ÊõÁ½·½ÃæµÄÄÚÈÝ£¬Òò´ËÍêÈ«¿ÉÒÔ½«Ô­Ê¼ ExpenseClaimService ²ð·ÖΪÊÊӦÿ¸ö״̬µÄ¶à¸ö·þÎñ¡£ÎÒÃÇ¿ÉÒԵõ½ÈçÇåµ¥ 10 ÖÐËùʾµÄ·þÎñ¡£

Çåµ¥ 10. ¸ù¾Ý״̬»®·Ö·þÎñ

ClaimEntryService {
createClaim(String userId);
ClaimItemDetails[] getClaimItems(int );.
ClaimErrors[] validateClaim(int claimId);
void removeClaimItem(int claimId, int itemId);
int addClaimItem(int claimId, ClaimItemDetails details)
int submitClaim(int claimId);
}

ClaimApprovalService {
int approveClaimItem(int claimId, int itemId, String comment);
void approveClaim(claimId)
void returnClaim(claimId)
ClaimItemDetails[] getClaimItems(int );.
ClaimErrors[] validateClaim(int claimId);
}

ClaimPaymentService {
void payClaim(int claimId);
}

ͨ¹ýÕâÖÖ·½Ê½£¬Äܸü·½±ãµØÀí½âÿ¸ö·þÎñ¡£¶øÇÒ£¬½«½Ó¿ÚÕâÑù»®·Ö½«¿ÉÄܷdz£ÊʺϷþÎñ£¨»ò·þÎñ¼¯£©µÄ¿ª·¢¡¢²¿Êð¡¢Î¬»¤ºÍʹÓ÷½Ê½¡£ÕâЩ·þÎñºÜ¿ÉÄÜÕë¶Ô²»Í¬µÄʹÓÃÕߣ¬¿ÉÒÔÓɶÀÁ¢µÄ¿ª·¢ÍŶӽøÐпª·¢£¬¿ÉÒÔ·Ö¿ª²¿Êð£¬Òò¶ø¾ßÓзÖÀëµÄ°æ±¾ÖÜÆÚ¡£»»¾ä»°Ëµ£¬Í¨¹ý½«Öصã·ÅÔÚ¶ÔÏóÉúÃüÖÜÆÚÉÏ£¬ÎÒÃǾͿÉÒÔ½¨Á¢¾ßÓÐÇ¡µ±Á£¶ÈµÄ·þÎñ¡£

·þÎñ²Ù×÷Éè¼ÆÔ­Ôò

Ç°ÃæÎÒÃÇÌÖÂÛÁË·þÎñµÄ×ÜÌåÉè¼Æ·½ÃæµÄÎÊÌ⣬½ÓÏÂÀ´¾ÍÒªÌÖÂÛһϸ÷¸ö·þÎñ²Ù×÷µÄÉè¼ÆÁË¡£

²Ù×÷±íʾҵÎñ¶¯×÷¡£

ÎÒÃÇÒѾ­Ö¸³ö£¬×ܵÄÔ­ÔòÊÇ£¬ÎÒÃÇÓ¦¸ÃÓÅÏȶԷþÎñºÍ²Ù×÷ʹÓÃÒµÎñÁìÓòµÄÃû³Æ£¬Ê¹Óö¯´Ê×÷Ϊ²Ù×÷Ãû³Æ¡£¶ÔÓÚ²Ù×÷£¬ÎÒÃǽ«Õâ¸ö½¨Òé½øÒ»²½É£ºÓ¦µ±Ê¹ÓþßÌåµÄÒµÎñº¬Òå¶ø²»ÊÇ·ºÐͲÙ×÷¶Ô²Ù×÷½øÐж¨Òå¡£ÀýÈ磬²»ÒªÊ¹Ó÷º·ºµÄ UpdateCustomerDetails ²Ù×÷£¬¶øÒª´´½¨ ChangeCustomerAddress¡¢RecordCustomerMarriage ºÍ AddAlternativeCustomerContactNumber Ö®ÀàµÄ²Ù×÷¡£´Ë·½·¨¾ßÓÐÒÔϺô¦£º

²Ù×÷Óë¾ßÌåÒµÎñ³¡¾°¶ÔÓ¦¡£´ËÀೡ¾°¿ÉÄܲ»½öÊǼòµ¥µÄ¸üÐÂÊý¾Ý¿âÖеļǼ¡£ÀýÈ磬¸ü¸ÄµØÖ·»ò»éÒö×´¿ö¿ÉÒÔÒªÇóÉú³ÉÕýʽµÄÎĵµ£¬¶ø½«ÒªÇóϵͳ¼Ç¼¸ÃÎĵµµÄÏêϸÐÅÏ¢¡ª¡ª»òɨÃè°æ±¾¡£Èç¹ûʹÓò»Ì«¾ßÌåµÄ²Ù×÷£¨Èç UpdateCustomerDetails£©£¬Ôò½ÏÄÑʵÏÖ´ËÀàÒµÎñ³¡¾°¡£

¸÷¸ö²Ù×÷½Ó¿Ú½«·Ç³£¼òµ¥£¬ÇÒÒ×ÓÚÀí½â£¬´Ó¶øÌá¸ßÁËÒ×ÓÃÐÔ¡£

ÿ¸ö²Ù×÷µÄ¸üе¥ÔªµÃµ½ÁËÇå³þµÄ¶¨Ò壨ÔÚÎÒÃǵÄʾÀýÖÐΪµØÖ·¡¢»éÒö×´¿öºÍµç»°ºÅÂ룩¡£ÔÚʵÏÖ¾ßÓи߲¢·¢ÐÔÒªÇóµÄϵͳʱ£¬ÎÒÃÇ¿ÉÒÔ»ùÓÚ²Ù×÷µÄÒªÇó²ÉÓøüϸÁ£¶ÈµÄËø¶¨²ßÂÔ£¬´Ó¶ø¼õÉÙ×ÊÔ´ÕùÓá£

²Ù×÷Ó¦²ÉÓôÖÁ£¶È²ÎÊý

ÔÚÌÖÂÛ²Ù×÷²ÎÊýʱ£¬Í¬ÑùÒªÃæ¶ÔÁ£¶ÈµÄÎÊÌâ¡£Çë±È½ÏÇåµ¥ 11 ºÍÇåµ¥ 12 ÖÐËùʾµÄ CreateNewCustomer ²Ù×÷µÄÁ½¸ö½Ó¿Ú¡£

Çåµ¥ 11. ²ÉÓÃϸÁ£¶È²ÎÊýµÄ CreateNewCustomer ²Ù×÷½Ó¿Ú

int CreateNewCustomer(String familyName,
String givenName,
String initials,
int age
String address1
String address2
String postcode
// ...
)

Çåµ¥ 12. ²ÉÓõ¥¸ö´ÖÁ£¶È²ÎÊýµÄ CreateNewCustomer ²Ù×÷½Ó¿Ú

int CreateNewCustomer( CustomerDetails newDetails)

Çåµ¥ 11 ÏÔʾÁËÒ»¸ö¾ßÓкܶàϸÁ£¶È²ÎÊýµÄ²Ù×÷¡£¶øÔÚÇåµ¥ 12 ÖеIJÙ×÷Ôò²ÉÓýṹ»¯ÀàÐÍ×÷Ϊµ¥¸ö´ÖÁ£¶È²ÎÊý¡£ÎÒÃÇÖ®ËùÒÔ½¨ÒéʹÓôÖÁ£¶È²ÎÊý£¬ÓÐÁ½¸öÔ­Òò¡£Ê×ÏÈ£¬ËüÃÇÌṩÁË´´½¨Áé»î²Ù×÷µÄ»ú»á£¬Ö§³ÖÔÚ²»¸ÉÈÅÏÖÓÐʹÓÃÕßµÄÇé¿öÏÂÌṩа汾µÄ²Ù×÷¡£Æä´Î£¬¾ßÓдóÁ¿ÀàÐÍÏàËÆµÄ²ÎÊýµÄ²Ù×÷Ò×ÓÚÔÚ´ÓµÚÈý´úÓïÑÔ´úÂë½øÐе÷ÓÃʱ³öÏÖת»»´íÎó¡£Ïà·´£¬µ±Êý¾Ý·ÅÖÃÔÚËùʹÓõĽṹ»¯ÀàÐ͵ÄÏÔʽ·½·¨£¨Èç setGivenName() ºÍ setInitials()£©ÖÐʱ£¬´Ë·½·¨³ö´íµÄ¼¸ÂʸüС¡£

²Ù×÷Éè¼ÆÓ¦¿¼ÂDz¢·¢ÐÔ

´«Í³µÄÊÂÎñÐͱà³ÌÄ£ÐÍ£¨Èç Entity Enterprise Java Bean (Entity Bean) ËùÖ§³ÖµÄ±à³ÌÄ£ÐÍ£©ÔÊÐíʵÏÖÊý¾Ý¿â¸üУ¬Òò´ËÆäÊý¾Ý¿âËø¶¨·½Ê½ÈçÇåµ¥ 13 ÖÐËùʾ¡£

Çåµ¥ 13. ÊÂÎñÐͱà³ÌÄ£ÐÍ

Begin Transaction

Retrieve data from database - locking record

Modify values

Update database record with modified values

Commit Transaction - unlocking record

Çë×¢Ò⣬Êý¾Ý¿âËø¶¨´ÓµÚ 1 ÐмìË÷ʱһֱ±£³Öµ½µÚ 5 ÐеÄÌá½»²Ù×÷¡£ÕâÑùÒÔÒ»¶¨µÄÑÓ³ÙÈ·±£ÁËÕýÈ·µÄ²¢·¢ÐÐΪ¡£Èç¹ûÎÒÃÇÏ£ÍûÉè¼ÆÒ»¸öÌṩÊý¾Ý¿â¸üй¦ÄܵķþÎñ£¬Ôò¿ÉÒÔÌṩÓëÇåµ¥ 8 ÖÐµÄµÚ 2 ÐÐºÍµÚ 4 ÐеļìË÷ºÍдÈë²Ù×÷¶ÔÓ¦µÄ²Ù×÷¡£²»¹ý£¬ÎÒÃÇÇ¿ÁÒ½¨Ò飬²»ÒªÔڸ߶ȷÖÀëÇÒ¿ÉÄÜÒì²½µÄ SOA »ù´¡½á¹¹ÖеÄÁ¬Ðøµ÷Óü䱣³ÖËø¶¨¡£ÎÒÃǽ¨Òé²ÉÓÃÀÖ¹ÛËø¶¨²ßÂÔ£¬½«²¢·¢¿ØÖƵÄÔðÈÎίÅɸøÏàÓ¦µÄÓ¦ÓóÌÐòÂß¼­¡£

ÀÖ¹ÛËø¶¨²ßÂÔÖеĸüÐÂÇëÇó¿ÉÒÔ½âÊÍΪ¡°ÒÔÏÂÊÇ»ùÓڼǼ XYZ µÄ V °æ±¾µÄһЩ¼Ç¼¸üС£Çë½öÔÚ´ÓÎÒ¶ÁÈ¡¸Ã¼Ç¼ºóûÓÐÈ˽øÐÐÐ޸ĵÄÇé¿öϽøÐиü¸Ä¡£¡±

ÒÔÏÂÊÇΪÇåµ¥ 12 ËùʾµÄͬһ¸öÄ£ÐÍʹÓÃÁËÊý¾Ý¿â´¥·¢Æ÷ºÍÐÞ¶©¼ÆÊýÆ÷µÄÀÖ¹ÛËø¶¨ÊµÏÖ¡£¸ÃʵÏÖÒªÇóÖ´ÐÐÒÔϲ½Ö裺

1.ÏòҪʹÓÃÀÖ¹ÛËø¶¨µÄ±íÖÐÌí¼ÓÒ»¸ö¶îÍâµÄÕûÊýÁУ»¸ÃÁб£´æÐÞ¶©¼ÆÊýÆ÷¡£

2.ÏòÊý¾Ý¿âÌí¼Ó´¥·¢Æ÷£¬ÒÔ±ã¶Ô¸Ã±íÖеļǼµÄÿ¸ö¸üж¼»áµ¼ÖÂÐÞ¶©¼ÆÊýÆ÷µÝÔö¡£

3.ËùÓмìË÷²Ù×÷¾ù»á·µ»Ø°üº¬ÐÞ¶©¼ÆÊýÆ÷µÄÊý¾ÝÏî¡£

4.ËùÓиüвÙ×÷¶¼±ØÐë°üº¬´Ó¼ìË÷»ñµÃµÄÐÞ¶©¼ÆÊýÆ÷¡£

¸üвÙ×÷ʵÏÖ±ØÐë¶ÔÊý¾Ý¿â¼Ç¼½øÐÐÏÞ¶¨µÄ¸üвÙ×÷£¬Èç¡°Èç¹ûÐÞ¶©¼ÆÊýÆ÷µÈÓÚ...Ôò¸üмǼ...¡±Èç¹ûÆä¼ä¶Ô¼Ç¼½øÐÐÁËÈκÎÐ޸ģ¬´Ë¸üвÙ×÷½«Ê§°Ü¡ª¡ªÔÚÆä¼ä£¬Èç¹û³öÏÖÁ˸üУ¬Ôò»á´¥·¢¸üд¥·¢Æ÷£¬Òò´Ë»áÐÞ¸ÄÐÞ¶©¼ÆÊýÆ÷¡£

Èç¹ûÓÉÓÚÆäËûʹÓÃÕßÔÚÆä¼ä½øÐÐÁ˸üжøµ¼Ö¸üÐÂʧ°Ü£¬Ôò½«ÏòʹÓÃÕß±¨¸æÒ»¸öÌØ¶¨µÄ´íÎó¡£

Çë×¢Ò⣬´ËʵÏÖÔÚ¸üÐÂʱҪÇóʹÓÃÕßÌṩÕýÈ·µÄÐÞ¶©¼ÆÊýÆ÷£»½øÐоÀÕýµÄÔðÈηÖÉ¢µ½Êý¾Ý¿â¡¢ÌṩÕߺÍʹÓÃÕßÈýÕßÉíÉÏ¡£ÁíÍ⣬»¹Çë×¢Ò⣬´ËʵÏÖÉè¼ÆÕæµÄ·Ç³£ÀÖ¹Û£»Èç¹ûÕùÓõĸÅÂʺܵͣ¬¾ÍÄܺܺõع¤×÷¡£Èç¹û¿ÉÄܳöÏÖ¸üгåÍ»£¬ÔòÖØÊÔµÄÐÔÄÜ¿ªÏú½«·Ç³£´ó¡£ÁíÍ⣬»¹ÐèҪһЩÆäËû¿ÉÄܵÄÀÖ¹ÛËø¶¨²ßÂÔºÍÏêϸÉè¼Æ£¬ÒÔÖÆ¶¨ºÏÊʵIJ¢·¢·½°¸¡£

¿¼Âǵ½¹ÜÀí²¢·¢¸üеÄÏà¶Ô¸´ÔÓÐÔ£¬ÎÒÃÇÌá³öÒ»¸öÏà¹ØµÄ½¨Ò飺¾¡¿ÉÄÜʹÓÃÎÞ״̬ÓïÒå¡£ÀýÈ磬ÓëʵÏÖµÈЧµÄ¡°Retrieve record¡±-¡°Write record¡±Á½¸ö²Ù×÷£¨Ê¹ÓÃÕß»áÔÚ¼ìË÷ºÍдÈë²Ù×÷¼äʹֵµÝÔö£©Ïà±È£¬¿ÉÄÜʵÏÖ¾ßÓÐÁ¼ºÃ²¢·¢ÐÐΪµÄµ¥¸ö²Ù×÷¡°Increment balance by X¡±¸üΪÈÝÒס£

½áÊøÓï

ÎÒÃDz¢²»ÈÏΪÎÄÖаüº¬ÁËÈ«²¿Éè¼ÆÔ­Ôò¡£¶øÊÇÏ£Íûͨ¹ýÕâЩԭÔòÄܹ»ËµÃ÷£¬Ã¿¸ö SOA ¶¼ÐèÒªÉ÷ÖØµØÎªÆäÆóҵȷ¶¨Ò»×éÇ¡µ±µÄÔ­Ôò£¬²¢ËæºóÈ·¶¨Ã¿¸ö·þÎñ´´½¨ÈËÔ±¶¼ÄÜ×ñÑ­ÕâЩԭÔò¡£

   
2377 ´Îä¯ÀÀ       36
Ïà¹ØÎÄÕÂ

¶àά·½·¨À´¿ª·¢ÓлúµÄÒµÎñÁ÷³Ì¼Ü¹¹
SCA Ó¦ÓóÌÐò¿ª·¢
BPM ºÍ SOA ÐÔÄÜ×î¼Ñʵ¼ù
ʵÏÖÆóÒµ·þÎñ×ÜÏßģʽ
Ïà¹ØÎĵµ

SCA½éÉܼ°Ó¦ÓÃʵÀý
»ùÓÚSOA¼Ü¹¹µÄESBƽ̨£ºInfomagic
SCA¼Ü¹¹
SOAµÄ»ù±¾¸ÅÄî
Ïà¹Ø¿Î³Ì

ÃæÏòÓ¦Óõļܹ¹Éè¼ÆÊµ¼ù
µ¥Ôª²âÊÔ+ÖØ¹¹+Éè¼ÆÄ£Ê½
Èí¼þ¼Ü¹¹Ê¦¡ª¸ß¼¶Êµ¼ù
Èí¼þ¼Ü¹¹Éè¼Æ·½·¨¡¢°¸ÀýÓëʵ¼ù