[Develope]

응용 서비스 개발 방법과 국내외 개발현황③

하늘을닮은호수M 2006. 8. 8. 10:55
반응형

출처 : http://www.ionthenet.co.kr/newspaper/view.php?idx=10024&forum=0

응용 서비스 개발 방법과 국내외 개발현황③

웹 서비스 기반의 개방형 API에 대한 관심이 BcN의 진행과 함께 높아지고 있다. 지난 호 까지 팔레이 X의 여러 개방형 서비스 API를 알아봤다. 이번 호를 마지막으로 개방형 API 구현 기술을 바탕으로 한 응용 서비스 개발에 대해 알아보고, 더불어 국내외 개발 현황도 살펴보자.


김형환_한국전자통신연구원, 개방형서비스플랫폼팀 선임연구원

웹 서비스 호출과 응답 과정
지금까지 웹 서비스의 구조와 표준, 그리고 웹 서비스 표준을 구현한 기술들을 통해 웹 서비스에 관해 알아보았다. 하지만, 실제 웹 서비스 플랫폼에서 웹 서비스를 호출하고 이 호출에 대한 응답이 어떻게 이루어지는지를 알아야 웹 서비스가 무엇인지를 알 수 있을 것이다.
웹 서비스의 한 시나리오를 예를 들어보자. 특정지역의 날씨를 알고 싶은 클라이언트가 이 서비스를 제공하는 웹 서비스 서버에게 특정 지역의 날씨를 문의하면 서버는 요청을 처리한 다음 요청을 만족시키기 위해 클라이언트에게 특정 지역의 날씨 정보를 응답으로 보내주는 경우를 생각할 수 있다. 또는 팔레이 X API 중 TPC와 관련한 API를 호출해 사용하는 예를 생각해 볼 수도 있다. 후자의 경우는 웹 서비스 애플리케이션 개발에서 다뤄진다.
자바 플랫폼에는 이런 상황의 요청과 응답이 어떤 과정으로 실행되는지를 (그림 5)와 같이 나타낼 수 있다. 이 그림은 자바 서버와 .NET 클라이언트를 기준으로 어떻게 통신이 이뤄지는지의 관점에서 그려졌다. 따라서 클라이언트가 자바로 구현된 경우는 JAX-RPC 런타임은 동일하다.
웹 서비스를 호출하는 과정은 다음과 같다. 클라이언트가 서비스 공급자가 제공하는 WSDL 파일이나 UDDI 검색을 통해 웹 서비스를 어떻게 접근하는지를 알면, 클라이언트는 로컬 메소드 호출로써 웹 서비스에 대해 요청을 보낸다. 이때 호출된 메소드는 패러미터와 함께 XML로 매핑되고, 이는 다시 SOAP 메시지 형태로 서비스 제공자에게 전달된다. 이처럼 웹 서비스의 호출은 클라이언트에게는 로컬 메소드를 호출하는 것으로 보인다. JAX-RPC 런타임은 자바의 데이터 형태들을 표준 XML 데이터 형태에 매핑하고 메소드 호출과 패러미터들을 추상화하는 SOAP 메시지를 만든다. 그 다음 SOAP 메시지는 SOAP 핸들러가 있으면 핸들러를 거친 다음 디스어셈블되고, 다시 자바로 매핑된 후 해당하는 서비스의 구현부로 전달된다. 서비스 구현부는 개방형 API에 해당되며 제공하는 기능에 따라 해당하는 프로토콜 스택을 거쳐 통신망 자원을 이용하도록 해준다. 서비스 요청에 대한 응답과정도 유사한 과정을 거친다.

웹 서비스 플랫폼을 사용하면 이제까지 설명했던 메소드 호출과 응답에 대한 상세한 것들은 모두 플랫폼이 처리해 주기 때문에 개발자는 단순히 자신의 메소드를 호출하는 것처럼 프로그램 하는 것에만 신경 쓰면 된다.

웹 서비스 애플리케이션 개발
지금부터는 이제까지 설명한 웹 서비스에 관한 지식을 토대로 팔레이 X API를 이용한 개방형 서비스를 개발하는 방법을 소개한다. 팔레이 X 2.0의 API 중에서 제삼자 호출 서비스에 대한 웹 서비스 클라이언트는 다음과 같은 절차에 따라 손쉽게 개발이 가능하다. 개발 도구로는 웹 서비스 클라이언트 개발에 많이 사용되고 있는 마이크로소프트의 .NET 스튜디오를 사용했다.

① 프로젝트 만들기
비쥬얼 스튜디오 .NET을 실행해 아래 그림과 같이 새로운 프로젝트를 만든다. 다음 방법들 중 하나를 선택해 새 프로젝트를 만들 수 있다.

·도구 모음에서 [새 프로젝트]를 클릭
·비쥬얼 시스템 .NET 시작페이지에서 [새 프로젝트] 버튼 클릭
·메뉴의 [파일]-[새로만들기]-[프로젝트]를 클릭
·을 입력


새 프로젝트창의 프로젝트 형식은 비쥬얼 C# 프로젝트를 선택하고 템플릿으로는 윈도우즈 애플리케이션을 선택한다. 프로젝트 이름을 입력한다(여기서는 TPC-client로 했음).

<위치>는 프로젝트의 경로이며 디폴트로 두어도 되고 별도의 장소를 지정할 수 있다. <확인> 버튼을 클릭한다. 이 과정은 폼을 기반으로 비주얼 디자인을 하는 것으로 웹 서비스 클라이언트 프로그램을 생성한 후, 실행을 비주얼하게 하기 위해서다. 이와는 별도로 도스 명령어 창에서 웹 서비스 실행 결과만을 출력하는 형식으로 클라이언트 프로그램을 개발할 수도 있다. 이때는 템플릿을 콘솔 애플리케이션으로 선택하면 된다.

② 웹 서비스 참조하기
이 과정은 웹 서비스에 관한 정보를 바인드하는 과정이다. URL칸에 TPC 웹 서비스 제공자의 서비스에 대한 URL을 입력한다. 이 정보는 UDDI에서 온라인 검색을 통해 얻을 수도 있고 서비스 제공자가 오프라인으로 제공하는 서비스에 대한 명세파일(WSDL)에서 얻을 수 있다. 전자의 경우는 서비스 공급자가 자신의 서비스를 UDDI에 등록해야 가능하다.

여기서는 후자의 방법을 따르는 것으로 해서 'http://parlayx.etri.re.kr:9080/tpc/services/ThirdPartyCall?wsdl'로 입력했다. WSDL 파일의 엘리먼트의 네임 속성에서 웹 서비스의 이름을 알 수 있고, 엘리먼트의 l로케이션 속성에서 URL을 알 수 있다. 상세한 내용은 WSDL 관련 문헌에서 참고하도록 하자. 웹 참조 이름도 디폴트 값을 사용할 수 있으나 그림과 같이 참조한 웹 서비스의 특성을 나타내는 이름으로 지정하면 참조가 많을 경우 편리하다. 참조 추가를 클릭하면 다음의 그림에서와 같이 솔루션 탐색기 창에서 웹 서비스가 참조된 것을 알 수 있다.

클래스뷰탭으로 이동하면 웹 서비스 호출에 필요한 클래스들이 생성된 것을 확인할 수 있다.

③ 웹 서비스 클라이언트 프로그래밍
이 과정에서는 웹 서비스를 사용할 클라이언트의 실제 코드를 생성한다. TPC의 대표적인 기능인 두 사람간의 통화연결 기능을 사용하기로 한다. 이를 위해 윈도우즈 폼은 전화를 거는 사람과 전화를 받는 사람의 전화번호 입력란과 두 사람간에 콜을 연결해서 통화하게 하는 실행(makeCall) 버튼을 만든다. 폼을 만드는 자세한 설명은 생략한다.

이제 웹 서비스 클라이언트의 로직을 코딩한다. 이 부분은 폼의 실행버튼이 클릭되면 실행된다.

④ 웹 서비스 클라이언트 프로그램 실행
웹 서비스 애플리케이션 개발의 마지막 단계로써 폼에 전화번호를 입력하고 메이크콜 버튼을 클릭해서 클라이언트를 실행하면 콜를 연결해서 통화할 수 있도록 처리하고, 이 콜에 대한 식별자를 웹 서비스 실행 결과로 리턴하는 것을 확인할 수 있다.

국내외 개발현황
웹 서비스 기반의 개방형 API인 팔레이 X 게이트웨이 개발 제품으로 현재 통신망에 적용됐거나 상용화된 제품 현황은 (표 1)에서 알 수 있다. 아젤라(Argela, 터키), IBM, 에릭슨, 텔코디아(Telcordia) 등이 개방형 API 게이트웨이에서 팔레이/OSA API와 팔레이 X 웹 서비스를 함께 제공하고 있다.

(그림 6)은 (표 1)에 나타난 팔레이 X 웹 서비스를 제공하는 게이트웨이 개발 업체 중 Ericsson의 상용 제품과 국내 유엔젤과 인프라밸리, 해리트에서 개발되고 있는 개방형 서비스 게이트웨이의 시스템 구조를 비교한 그림이다. (그림 6)의 사례 1에서 Ericsson의 팔레이 X 게이트웨이는 CORBA기반의 팔레이/OSA 게이트웨이와 연동해 네트워크의 기능을 이용하고 있다. 이는 팔레이 게이트웨이가 이미 망에 적용돼 있을 경우, 팔레이 X 게이트웨이를 팔레이 애플리케이션 서버로 구축해 팔레이 게이트웨이에서 제공하는 망의 기능을 간접적으로 이용할 수 있게 하는 구조다.
사례 2의 개방형 서비스 게이트웨이는 팔레이 X API와 팔레이/OSA API가 공동의 서비스 로직 실행 환경을 통해 개별적으로 망과 연동하는 구조를 갖는다. 따라서 사례 2의 구조에서 팔레이 X 웹 서비스는 팔레이/OSA 게이트웨이 구축과 무관하게 독립적으로 제공될 수 있다. 기존에 팔레이 게이트웨이가 적용된 망에서는 대부분 사례 1과 같이 팔레이 X 게이트웨이를 적용하고 있으며, 개방형 서비스 기술을 새로이 도입하는 사업자의 경우에는 사례 2와 같이 적용해 구축하고 있다.

다양한 분야에 적용될 웹 서비스 기술
웹 서비스는 앞에서도 설명했듯이 네트워크에 위치하고 있는 서비스들을 공통의 프로토콜을 이용해 연결하는 방법의 한가지로, 서비스가 어떻게 위치되고 실행되며 어떻게 모니터링 되고 보안상 안전하게 하는가 등을 정의하고 있는 SOA 개념을 구현하는 기술이다.
웹 서비스는 네트워크을 통한 서비스들의 상호 연동에 초점을 두고 있으며 차세대 분산 컴퓨팅 모델로써 폭넓게 인정받고 있는 새로운 패러다임이다. 아직은 초기 단계이지만 성숙된 상태로 발전하기 위해 기존 표준들의 보완과 기술들의 개발이 빠르게 진행되고 있고 추가적인 새로운 표준들이 정의되고 있다.
컴퓨팅 분야의 기술을 통신 분야에 도입해 통신망의 서비스를 인터넷 영역으로 확장할 수 있게 됨으로써 인터넷을 사용하는 모든 사람들을 새로운 사용자로 얻을 수 있는 기회가 마련됐다. 현재 통신망 이외에도 홈 네트워크, 센서 네트워크, 그리고 텔레메틱스, 로보틱스, 내장형 시스템 등 광범위한 분야에 대한 웹 서비스 기술의 적용이 시도되고 있다. 또한 웹 서비스는 IT839 전략에 부응해 유비쿼터스 시대를 가능하게 하는 기술들 중의 하나로서 유비쿼터스가 상징하는 것처럼 어디에나 보이지 않게 존재하는 기술이 될 것으로 기대된다.


참고문헌

[1] 이병선, “개방형 서비스 기술동향 및 전망”, BcN 개방형 서비스 네트워킹 및 응용 워크샵, 5.27.2005
[2] 최영일, “융합형 통신 서비스를 위한 Open API 기술”, 온더넷, 12. 2004.
[3] Alex Talevski, Elizabeth Chang, and Tharam S. Dillon “Reconfigurable Web Service Integration in the Extended Logistics Enterprise”, IEEE Transactions on Industrial Informatics, vol. 2, May. 2005
[4] M. Sral, “Web services: Beyond component-based computing”, Commun. ACM, vol. 45, no. 10, pp. 71-76, Oct. 2002.
[5] Designing Web Services with the J2EE 1.4 Platform: JAX-RPC, SOAP, and XML Technologies, SUN Microsystems, 2004.
[6] 신민철, “XML 웹 서비스”, 프리렉, 10. 2003.
[7] 송인혁, 송인철, 송진태, 김민재, “도대체 닷넷이 뭐야?” 삼각형프레스, 10. 2002
[8] Ashish Banerjee 외 6인 공저, 문건웅 역, “C# Web Services”, 정보문화사, 7. 2002
[9] 박유미, 최영일, 이병선, “웹 서비스 기반의 개방형 서비스 기술”, 통신학회,vol. 22, No. 5, pp.28-42, May, 2005

반응형

'[Develope]' 카테고리의 다른 글

msxml  (0) 2006.08.09
XML parser  (0) 2006.08.08
응용 서비스 개발 방법과 국내외 개발현황②  (0) 2006.08.08
응용 서비스 개발 방법과 국내외 개발현황①  (0) 2006.08.08
Relationships  (0) 2006.07.25