Çù¾÷ ¿ÀºêÁ§Æ®¸¦ ÀÛ¼ºÇϰí ÇØ´ç Æ®¸®°Å¸µ Æ÷Æ®¸¦ À¥ ¼ºñ½º Ä¿³ØÅÍÀÇ
ÀνºÅϽº¿¡ ¹ÙÀεåÇϸé, WSDL ±¸¼º ¸¶¹ý»ç¸¦ »ç¿ëÇÒ
Áغñ°¡ µÇ¾ú½À´Ï´Ù. À¯Æ¿¸®Æ¼´Â Çù¾÷,
Business Object Á¤ÀÇ ¹× Ä¿³ØÅÍ¿¡ ÁöÁ¤µÈ
¹ÙÀεù, Æ÷Æ® À̸§, Á¶ÀÛ ¹× ±âŸ µ¥ÀÌÅ͸¦ »ç¿ëÇÏ¿©
WSDL ±¸Çö ÆÄÀÏ(*.impl.wsdl), WSDL ÀÎÅÍÆäÀ̽º ÆÄÀÏ(*.wsdl), xml ½ºÅ°¸¶ ÆÄÀÏ(*.xsd)À»
»ý¼ºÇÕ´Ï´Ù. ÀÌ·¯ÇÑ ÆÄÀÏÀº À¥ ¼ºñ½º·Î Ç¥½ÃµÈ
Çù¾÷ÀÇ º¹ÇÕ ÆÄÀÏÀ̹ǷΠÀÌµé ÆÄÀÏÀ» º°µµÀÇ ÆÄÀÏ ¶Ç´Â ÇϳªÀÇ
ÆÄÀÏ·Î »ý¼ºÇÒ °ÍÀÎÁö ¿©ºÎ¸¦ À¯Æ¿¸®Æ¼¿¡¼ ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.
À¯Æ¿¸®Æ¼´Â HTTP, HTTPS ¹× JMS ÇÁ·ÎÅäÄÝÀ» ÅëÇØ
SOAP¸¦ Áö¿øÇÕ´Ï´Ù. ÇÁ·ÎÅäÄÝ ¸®½º³Ê ÇÁ·¹ÀÓ¿öÅ©ÀÇ ±¸¼º Á¤º¸´Â
Ä«³ØÅÍ Æ¯Á¤ µî·Ï Á¤º¸
ProtocolListenerFramework¿¡¼ °Ë»öÇÕ´Ï´Ù. ÀÌ µî·Ï Á¤º¸´Â ¶ÇÇÑ ¸®½º³Ê ¸ñ·ÏÀ» »ç¿ë °¡´ÉÇÏ°Ô ÇÕ´Ï´Ù.
WSDL ±¸¼º ¸¶¹ý»ç¸¦ ½ÇÇàÇÏ·Á¸é ´ÙÀ½À» ¼öÇàÇϽʽÿÀ.
±×¸² 57¿¡ Ç¥½ÃµÈ ´ë·Î, ¿Àº ´ÙÀ½°ú °°½À´Ï´Ù.
±¸¼º ¸¶¹ý»ç´Â À¥ ¼ºñ½º Ä¿³ØÅÍ¿¡ ¹ÙÀεåµÇ´Â Çù¾÷ ¿ÀºêÁ§Æ®ÀÇ °¢ Æ®¸®°Å¸µ Æ÷Æ®¿¡ ´ëÇÑ WSDL Á¶ÀÛÀ» ÀÛ¼ºÇÕ´Ï´Ù. Á¶ÀÛÀÇ ÀÛ¼ºÀº ÀÌ Çù¾÷ÀÇ È£Ãâ°ú ¿¬°üµÈ Business Object¸¦ ±âº»À¸·Î ÇÕ´Ï´Ù.
±¸¼º ¸¶¹ý»ç°¡ ¿ÀºêÁ§Æ® ·¹º§ ASI ws_eventtlo¸¦ ÀÐ¾î¼ Business Object°¡ TLO Çü½ÄÀ¸·Î µÇ¾î ÀÖÀ½À» ÆÇº°ÇÕ´Ï´Ù. ASI µî·Ï Á¤º¸°¡ true·Î ¼³Á¤µÉ °æ¿ì, Business Object´Â TLOÀÔ´Ï´Ù. TLO¸¦ »ç¿ëÇÏ¿© ´ÙÀ½ WSDL µî·Ï Á¤º¸¸¦ ã½À´Ï´Ù.
TLO¸¦ ±âº»À¸·Î WSDL Á¶ÀÛÀ» ÀÛ¼ºÇϱâ À§ÇØ Çù¾÷Àº ¸ÊÀ» »ç¿ëÇϰųª »ç¿ëÇÏÁö ¾Ê´Â µÎ °¡Áö ¹æ¹ýÀ¸·Î ±¸¼ºµÉ ¼ö ÀÖ½À´Ï´Ù.
Çù¾÷Àº ÀϹÝÀûÀ¸·Î GBO(ÀÏ¹Ý Business Object) ¿äûÀ» ½ÂÀÎÇϵµ·Ï ±¸¼ºµË´Ï´Ù. Áï, Çù¾÷ ÅÛÇø®Æ® Æ®¸®°Å¸µ Æ÷Æ®°¡ GBO¿¡ µî·ÏÇÕ´Ï´Ù. ÀÌ °æ¿ì¿¡ TLO¸¦ »ç¿ëÇÏ·Á¸é, Çù¾÷ÀÌ À¥ ¼ºñ½º Ä¿³ØÅÍ¿¡ ¹ÙÀεåµÇ¾î¾ß Çϸç Ä¿³ØÅͰ¡ ¸ÊÀ» ÅëÇÑ GBO¸¦ TLO·Î º¯È¯À» Áö¿øÇØ¾ß ÇÕ´Ï´Ù. ±×¸² 58¿¡¼´Â ÀÌ ½Ã³ª¸®¿À¸¦ º¸¿©ÁÝ´Ï´Ù.
Çù¾÷°ú Ä¿³ØÅͰ¡ ÀÌ ¹æ¹ýÀ¸·Î ±¸¼ºµÉ ¶§, ¸¶¹ý»ç´Â WSDL ¹®¼¿¡ ¼³¸íµÈ Á¶ÀÛÀ» ÀÛ¼ºÇϱâ À§ÇØ TLO Business Object°¡ »ç¿ëµÉ °ÍÀÓÀ» °áÁ¤ÇÕ´Ï´Ù. ÀÌ °áÁ¤Àº Ä¿³ØÅͰ¡ Áö¿øÇÏ´Â Business Object ¹× ¿¬°üµÈ ¸ÊÀ» Á¶»çÇÏ¿© ÀÌ·ç¾îÁý´Ï´Ù. ±¸¼ºµÈ ¸ÊÀÌ Ç×»ó Çù¾÷ÀÇ GBO¸¦ ´Ü ÇϳªÀÇ TLO·Î º¯È¯ÇÏ´Â °ÍÀÌ À¥ ¼ºñ½º Ä¿³ØÅÍÀÇ ·±Å¸ÀÓ Ã³¸®¿¡ Áß¿äÇÕ´Ï´Ù. ¶ÇÇÑ, Àιٿîµå ¸ÊÀÇ ¼Ò½º ¹× ¸ñÀûÁö Business Object°¡ °¢°¢ ¾Æ¿ô¹Ù¿îµå ¸ÊÀÇ ¸ñÀûÁö ¹× ¼Ò½º Business Object·Î º¯È¯ÇÏ´Â °ÍÀÌ Áß¿äÇÕ´Ï´Ù.
¸¶¹ý»ç´Â ¶ÇÇÑ ¸ÊÀÌ ¾ø´Â TLO 󸮸¦ Áö¿øÇÕ´Ï´Ù. ÀÌ °æ¿ì, Çù¾÷ ÅÛÇø®Æ®ÀÇ Æ®¸®°Å¸µ Æ÷Æ®°¡ TLO¿¡ Á÷Á¢ µî·ÏµË´Ï´Ù. À¥ ¼ºñ½º Ä¿³ØÅͰ¡ TLO¸¦ Áö¿øÇϱ⠶§¹®¿¡ ¸ÊÀÌ ÇÊ¿äÇÏÁö ¾Ê½À´Ï´Ù. ±×¸² 59¿¡¼´Â ÀÌ ½Ã³ª¸®¿À¸¦ º¸¿©ÁÝ´Ï´Ù.
Çù¾÷°ú Ä¿³ØÅͰ¡ ÀÌ ¹æ¹ýÀ¸·Î ±¸¼ºµÇ¾úÀ» ¶§, ¸¶¹ý»ç´Â Çù¾÷¿¡¼ ¹ß°ßµÇ´Â TLO Business Object¸¦ »ç¿ëÇÏ¿© WSDL ¹®¼¿¡ ¼³¸íµÈ Á¶ÀÛÀ» ÀÛ¼ºÇÕ´Ï´Ù. ¸¶¹ý»ç´Â ÀÌ Æ÷Æ®¿¡ ´ëÇØ ±¸¼ºµÈ ¸ÊÀÌ ¾øÀ½À» ÆÇº°ÇÕ´Ï´Ù.
ºñTLO Business Object¿¡ ´ëÇÑ Áö¿øÀ¸·Î À¥ ¼ºñ½º·Î Ç¥½ÃÇϱâ À§ÇØ ÀÌ¹Ì Á¸ÀçÇÏ´Â Çù¾÷°ú ¸ÊÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ·± ÀÌÀ¯·Î ¸¶¹ý»ç´Â ¶ÇÇÑ TLO Çü½ÄÀÌ ¾Æ´Ñ Business Object¸¦ »ç¿ëÇÑ WSDL Á¶ÀÛ ÀÛ¼ºÀ» Áö¿øÇÕ´Ï´Ù.
TLO ÇÁ·Î¼¼½º¿Í À¯»çÇϰÔ, ¸¶¹ý»ç´Â ¿ÀºêÁ§Æ® ·¹º§ ASI ws_eventtlo¸¦ ÀÐ¾î¼ Business Object°¡ ºñTLO Çü½ÄÀ¸·Î µÇ¾î ÀÖÀ½À» ÆÇº°ÇÕ´Ï´Ù. ASI µî·Ï Á¤º¸°¡ Á¸ÀçÇÏÁö ¾Ê°Å³ª Á¸ÀçÇÏÁö¸¸ true°¡ ¾Æ´Ñ ´Ù¸¥ °ªÀ¸·Î ¼³Á¤µÈ °æ¿ì, ÀÌ Business Object´Â ºñTLOÀÔ´Ï´Ù. ºñTLO´Â À¥ ¼ºñ½º TLO ±¸Á¶¸¦ °í¼öÇÏÁö ¾Ê´Â ¸ðµç Business ObjectÀÔ´Ï´Ù. ºñTLO¸¦ »ç¿ëÇÏ¿© ¸¶¹ý»ç´Â ´ÙÀ½ µî·Ï Á¤º¸¸¦ °Ë»öÇÕ´Ï´Ù.
ºñTLO¸¦ ±âº»À¸·Î WSDL Á¶ÀÛÀ» ÀÛ¼ºÇϱâ À§ÇØ Çù¾÷Àº ¸ÊÀ» »ç¿ëÇϰųª »ç¿ëÇÏÁö ¾Ê´Â µÎ °¡Áö ¹æ¹ýÀ¸·Î ±¸¼ºµÉ ¼ö ÀÖ½À´Ï´Ù.
Çù¾÷Àº ÀϹÝÀûÀ¸·Î GBO(ÀÏ¹Ý Business Object) ¿äûÀ» ½ÂÀÎÇϵµ·Ï ±¸¼ºµË´Ï´Ù. µ¿½Ã¿¡, Çù¾÷¿¡¼ ºñTLO Business Object·Î GBO¸¦ º¯È¯ÇÏ´Â »çÀü Á¸ÀçÇÏ´Â ¸ÊÀÌ ÀÖÀ» ¼ö ÀÖ½À´Ï´Ù. ±×¸² 61¿¡¼´Â ÀÌ ½Ã³ª¸®¿À¸¦ º¸¿©ÁÝ´Ï´Ù.
ÀÌ °æ¿ì, ¸¶¹ý»ç´Â ºñTLO Business Object¸¦ »ç¿ëÇÏ¿© WSDL ¹®¼¿¡ ±â¼úµÈ WSDL Á¶ÀÛÀ» ÀÛ¼ºÇÕ´Ï´Ù. ±¸¼ºµÈ ¸ÊÀÌ Ç×»ó Çù¾÷ÀÇ GBO¸¦ ´Ü ÇϳªÀÇ TLO·Î º¯È¯ÇÏ´Â °ÍÀÌ À¥ ¼ºñ½º Ä¿³ØÅÍÀÇ ·±Å¸ÀÓ Ã³¸®¿¡ Áß¿äÇÕ´Ï´Ù. ¶ÇÇÑ, Àιٿîµå ¸ÊÀÇ ¼Ò½º ¹× ¸ñÀûÁö Business Object°¡ °¢°¢ ¾Æ¿ô¹Ù¿îµå ¸ÊÀÇ ¸ñÀûÁö ¹× ¼Ò½º Business Object·Î Á¤È®ÇÏ°Ô º¯È¯ÇÏ´Â °ÍÀÌ Áß¿äÇÕ´Ï´Ù.
¾ÆÁÖ Æ¯º°ÇÑ °æ¿ì¿¡´Â GBO ÀÌ¿ÜÀÇ Business Object·ÎºÎÅÍÀÇ ¿äûÀ» ½ÂÀÎÇϵµ·Ï Çù¾÷À» ±¸¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ °æ¿ì, ºñTLO´Â Çù¾÷¿¡ ´ëÇÑ Á÷Á¢ Business ObjectÀÌ°í ¸ÊÀº Á¸ÀçÇÏÁö ¾Ê½À´Ï´Ù. ±×¸² 62¿¡¼´Â ÀÌ ½Ã³ª¸®¿À¸¦ º¸¿©ÁÝ´Ï´Ù.
ÀÌ °æ¿ì, ¸¶¹ý»ç´Â ÀÌ Æ÷Æ®¿¡ ´ëÇØ ¸ÊÀÌ ±¸¼ºµÇÁö ¾ÊÀ½À» ÆÇº°Çϸç, µû¶ó¼ ºñTLO Business Object¸¦ »ç¿ëÇÏ¿© WSDL ¹®¼¿¡ ±â¼úµÈ WSDL Á¶ÀÛÀ» ÀÛ¼ºÇÕ´Ï´Ù.
ÀÌ ¼½¼Ç¿¡¼´Â ´Þ¸® ¸í½ÃµÇÁö ¾Ê´Â ÇÑ ¸ðµç À¯ÇüÀÇ ¿ÀºêÁ§Æ®(TLO ¹× ºñTLO)¿¡ Àû¿ëµÇ´Â WSDL ±¸¼º ¸¶¹ý»çÀÇ ¿ä±¸»çÇ׿¡ ´ëÇØ ¼³¸íÇÕ´Ï´Ù. À¥ ¼ºñ½º TLOÀÇ Business Object ¿ä±¸»çÇ׿¡ ´ëÇÑ ÀÚ¼¼ÇÑ Á¤º¸´Â Business Object ¿ä±¸»çÇ×À» ÂüÁ¶ÇϽʽÿÀ.
WSDL ±¸¼º ¸¶¹ý»ç´Â SOAP ±¸¼º MO¿¡¼ Use µî·Ï Á¤º¸¸¦ Áö¿øÇÏÁö¸¸, SOAP ¿äû BO ¹× ÇØ´ç SOAP ÀÀ´ä BOÀÇ Use °ªÀÌ ´Ù¸¥ °æ¿ì, ¿À·ù¸¦ ¹ß»ý½Ãŵ´Ï´Ù. Use °ªÀ» ¸®ÅÍ·²·Î ¼³Á¤Çϰųª WSDL ¹®¼¸¦ »ý¼ºÇϵµ·Ï ÀÎÄÚµåÇÒ ¼ö ÀÖ½À´Ï´Ù. Use µî·Ï Á¤º¸ ¹× ÇØ´ç °ª¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ Á¤º¸´Â SOAP ¸Þ½ÃÁöÀÇ Style ¹× Use ¿µÇâÀ» ÂüÁ¶ÇϽʽÿÀ.
rpc ¾ç½Ä¸¸ÀÌ À¥ ¼ºñ½º·Î Çù¾÷À» ³ªÅ¸³»µµ·Ï Áö¿øµË´Ï´Ù. SOAP ±¸¼º MO¿¡¼ ¹®¼·Î ¾ç½ÄÀÌ ÁöÁ¤µÈ °æ¿ì, ¸¶¹ý»ç¿¡¼ ¿À·ù°¡ ¹ß»ýÇÕ´Ï´Ù.
SOAP °áÇÔ Business Object ³»ÀÇ details ¼Ó¼º¿¡´Â ´Ü ÇϳªÀÇ ÇÏÀ§ ¼Ó¼º¸¸ ÀÖÀ» ¼ö ÀÖ½À´Ï´Ù. ±×·¸Áö ¾ÊÀ¸¸é, À¯Æ¿¸®Æ¼´Â ¿À·ù¸¦ »ý¼ºÇÕ´Ï´Ù.
À¯Æ¿¸®Æ¼´Â °áÇÔ Business Object¸¦ ½ÂÀÎÇÕ´Ï´Ù. ¿©·¯ °³ÀÇ °áÇÔ Business Object°¡ ¹ß»ýÇϸé À¯Æ¿¸®Æ¼´Â ù ¹øÂ° ¶Ç´Â ±âº» °áÇÔ Business ObjectÀÇ ¸Ó¸®±Û ÄÁÅ×À̳ʸ¦ ó¸®ÇÕ´Ï´Ù. 󸮴 ´ÙÀ½°ú °°½À´Ï´Ù.
¸Ó¸®±Û °áÇÔÀº WSDL ¹®¼ ¹ÙÀεù ¼½¼Ç ³»¿¡¼ soap:headerÀÇ ÇÏÀ§ ¿ä¼ÒÀÎ soap:headerfault·Î 󸮵˴ϴÙ. ¸Ó¸®±Û °áÇÔÀº ´ÙÀ½°ú °°ÀÌ ¸Ó¸®±Û ÇÏÀ§ Business Object¿¡ ÁöÁ¤µÈ headerfault ASI¸¦ »ç¿ëÇÏ¿© 󸮵˴ϴÙ.
¿©·¯ °³ÀÇ ¸Ó¸®±Û ¼Ó¼ºÀº SOAP ¸Ó¸®±Û ÄÁÅ×ÀÌ³Ê Business Object ³»¿¡ SOAP ¸Ó¸®±Û ÇÏÀ§ Business Object·Î ÁöÁ¤µË´Ï´Ù. ¸Ó¸®±Û ÄÁÅ×ÀÌ³Ê Business Object´Â ASI soap_location=SOAPHeader·Î ½Äº°µË´Ï´Ù. À¯Æ¿¸®Æ¼ ó¸® Áß¿¡ ¸Ó¸®±Û ÄÁÅ×ÀÌ³Ê Business Object ³»ÀÇ °¢ ¼Ó¼º¿¡ ´ëÇÑ ¹ÙÀεù ¼½¼Ç ³»¿¡ soap:header ¿ä¼Ò°¡ ÀÛ¼ºµÇ°í ´ÙÀ½ÀÇ ±ÔÄ¢ÀÌ Àû¿ëµË´Ï´Ù.
À¯Æ¼¸®Æ¼´Â ¸Þ½ÃÁö ÆÄÆ® ·¹º§¿¡¼ elem_ns ASI¸¦ ¹«½ÃÇÕ´Ï´Ù. ´ë½Å, elem_ns´Â µÎ ¹øÂ° ÀÌÇÏ ·¹º§ ¼Ó¼º¿¡¼ »ç¿ëµË´Ï´Ù. elem_ns¸¦ ÁöÁ¤ÇÏ´Â °æ¿ì, µÎ ¹øÂ° ·¹º§ Business Object ¼Ó¼ºÀ» º°µµÀÇ À̸§ °ø°£¿¡ Á¤ÀÇÇÒ ¼ö ÀÖ½À´Ï´Ù.
WSDL ¹®¼ÀÇ Æ÷Æ® ¼½¼Ç¿¡ ÀÖ´Â SOAP/JMS ¹ÙÀεù¿¡´Â jms:address ¿ä¼Ò°¡ ÀÖ½À´Ï´Ù. ´ÙÀ½Àº jms:address ¿ä¼ÒÀÇ ¿¹ÀÔ´Ï´Ù ("?" Á¢¹ÌºÎ°¡ ÀÖ´Â ¼Ó¼ºÀº ¼±ÅÃÀûÀÔ´Ï´Ù).
<jms:address destinationStyle = "queue" jmsVendorURI = "http://ibm.com/ns/mqseries"? initialContextFactory = "com.ibm.NamingFactory"? jndiProviderURL = "iiop://something:900/wherever"? jndiConnectionFactoryName = "orange" jndiDestinationName = "fred"
jmsProviderDestinationName="trash" />
LookupQueuesUsingJNDI Ä¿³ØÅÍ µî·Ï Á¤º¸°¡ true·Î ¼³Á¤µÇ´Â
°æ¿ì, InputQueue µî·Ï Á¤º¸ °ªÀº SOAP/JMS ¹ÙÀεùÀÇ jms:address ¿ä¼ÒÀÇ
jndiDestinationName ¼Ó¼º¿¡ ÇØ´çÇÕ´Ï´Ù. jms:address ¿ä¼Ò´Â wsdl:port ¼½¼Ç¿¡
ÁöÁ¤µË´Ï´Ù.
LookupQueueUsingJNDI°¡ false·Î ¼³Á¤µÇ´Â °æ¿ì, jmsProviderDestinationName ¼Ó¼ºÀº InputQueue·Î ¼³Á¤µË´Ï´Ù. InputQueue´Â Listener_JMS hierarchical µî·Ï Á¤º¸¿¡¼ »ç¿ë °¡´ÉÇÑ Ä¿³ØÅÍ µî·Ï Á¤º¸ÀÔ´Ï´Ù. initialContextFactory, jndiProviderURL ¹× jndiConnectionFactoryName µî·Ï Á¤º¸´Â µ¿±â 󸮿¡ ´ëÇØ¼¸¸ ÁöÁ¤µË´Ï´Ù.
WSDL ¹®¼ÀÇ »ùÇà Æ÷Æ® ¼½¼ÇÀº ´ÙÀ½°ú °°½À´Ï´Ù.
<service name="StockQuoteWebService"> <port name="StockQuoteWebServicePort" binding="intf:StockQuoteBinding"> <soap:address location="http://localhost:8080/soap/servlet/messagerouter"/> </port> </service>
WSDL ±¸¼º ¸¶¹ý»ç´Â ¹®¸Æ °æ·ÎÀÇ È£½ºÆ® À̸§ ¹× Æ÷Æ®ÀÇ °ªÀ» »ç¿ëÇÕ´Ï´Ù. ¹®¸Æ °æ·Î°¡ È£½ºÆ® À̸§°ú Æ÷Æ® ¾øÀÌ »ó´ë °æ·Î¸¸À» Æ÷ÇÔÇÏ´Â °æ¿ì, Listener_HTTP ±¸¼º µî·Ï Á¤º¸ ¾Æ·¡¿¡ Àִ ȣ½ºÆ® À̸§ ¹× Æ÷Æ® µî·Ï Á¤º¸ °ªÀÌ soap:address xml ¿ä¼Ò¿¡¼ À§Ä¡ ¼Ó¼ºÀ» ÁöÁ¤ÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù.