You are here

LabVIEW에서 웹 서비스 기반 어플리케이션 구축 1

웹 서비스는 인터넷을 통해 어플리케이션 간에 정보를 교환하는 차세대 웹 기반 기술로 떠오르고 있습니다. 이 문서에서는 Microsoft .NET 기술을 활용하여 LabVIEW 이상 어플리케이션에 웹 서비스 구성요소를 통합시키는 방법에 대해 설명합니다.

 

목차:

  • 웹 서비스란?
  • 웹 서비스와의 통신
  • 웹 서비스 찾기
  • .NET 활용

 

 

웹 서비스란?

Microsoft 는 웹 서비스를 표준 인터넷 프로토콜을 사용하여 접근할 수 있는 프로그램형 어플리케이션로직이라고 정의하고 있습니다. 웹 서비스는 그 구현 방식에 대한 지식 없이도 인터넷을 통해 재사용할 수 있는 블랙박스 기능을 나타냅니다.

 

                                                 그림 1. 웹 서비스의 사용

웹 페이지는 웹 브라우저를 통해 사람이 사용하도록 웹 서버에 의해 서비스되는 반면, 웹 서비스는 어플리케이션에 의해 사용되도록 의도된 것입니다. 웹 서비스는 웹 서버를 통해 인터넷으로 내보내진 일단의 기능으로 생각할 수 있습니다. 

 

웹 서비스는 다음 몇 가지 장점으로 인해 인기를 얻고 있습니다.

  • 코드 재사용 -- 상용 웹 서비스 구성요소를 사용하면 어플리케이션 구축이 단순화됩니다.
  • 플랫폼 독립성 -- 표준 인터넷 기술을 사용하여 웹 서비스에 액세스하기 때문에 웹 서비스의 소비자는 어떤 플랫폼에 있어도 상관 없습니다.
  • 언어 독립성 -- 위와 같은 이유로 어떤 언어로도 소비자에게 서비스할 수 있고 액세스를 위한 웹 서비스의 구체적 구현 과정에 대해 알 필요가 없습니다.
  • 분산 컴퓨팅 -- 웹 서비스 구성요소를 사용하여 방화벽으로 둘러싸인 분산 어플리케이션을 쉽게 구축할 수 있습니다.

 

웹 서비스를 지원하는 Microsoft 및 IBM과 같은 선도 업체를 통해 가까운 장래에 많은 웹 서비스가 등장하는 것을 보게 될 것입니다.

 

 

웹 서비스와의 통신

HTTP(Hypertext Transfer Protocol), XML(Extensible Markup Language) 및 SOAP(Simple Object Access Protocol)와 같은 일반적인 웹 프로토콜, 데이터 형식 및 메시지 형식을 사용하여 웹 서비스에 액세스합니다. HTTP는 웹 서비스와 서비스의 이용자 사이에 메시지를 주고 받기 위해 사용됩니다. XML은 변경된 데이터를 설명하고 표시하기 위해 사용됩니다. SOAP는 메시지와 HTTP에 대한 바인딩을 정의합니다. SOAP를 사용하여 웹 서비스와 이용자가 모두가 잘 이해할 수 있는 메시지를 보내고 받을 수 있습니다.

그러나 이용자는 어떤 메시지를 보내고 받을지를 알아야 합니다. 이 경우에 웹 서비스에 대한 인터페이스를 설명하는 문서가 유용합니다. WSDL(Web Services Description Language)은 Microsoft와 IBM에서 공동으로 개발한 XML 기반 규약 언어입니다. 웹 서비스는 특정 URL에서 WSDL로 이 인터페이스를 게시합니다. 그러면 소비자가 이 URL에서 WSDL 규격을 읽어서 웹 서비스와 통신하기 위한 SOAP 메시지를 생성합니다.

 

웹 서비스 찾기

지역 업체가 전화번호부에 광고를 내는 것처럼 웹 서비스 업체도 그들의 서비스를 잘 알려진 웹 디렉터리에 게시합니다. Google에서 “Web Services Directory”를 검색하면 여러 개의 결과가 나옵니다. 아래에 잘 알려진 디렉터리 링크를 나타내었습니다. 이러한 디렉터리에는 범주별로 웹 서비스가 나열되어 있어 키워드로 웹 서비스를 검색할 수 있습니다. 관심이 있는 웹 서비스를 찾은 다음에는 WSDL 규격을 찾아야 합니다. 일반적으로 디렉터리에 있는 웹 서비스 설명에 WSDL 규격에 대한 링크가 있습니다.

참고:
Google Directory - Computers: Programming: Internet: Web Services
XMethods

SalCentral

Microsoft UDDI Business Registry

 

.NET 활용
SOAP 메시지를 사용하여 웹 서비스와 통신하는 것은 어셈블리 언어로 코드를 작성하는 것과 비슷합니다. 이는 효과적이기는 하지만 작성, 디버깅 및 관리가 어렵습니다. Microsoft의 .NET 기술을 사용하면 더 높은 추상화 수준으로 작업을 크게 단순화시킬 수 있습니다.

Microsoft .NET은 속성과 메소드를 통해 구조화된 클래스 기반 인터페이스를 제공합니다. LabVIEW .NET 인터페이스는 ActiveX 클라이언트에 대한 인터페이스와 유사합니다.

VI와 웹 서비스 사이에 추상화 계층을 도입하게 됩니다. 이 계층은 SOAP 메시지의 패키지화, 보내기 및 받기의 작업을 수행합니다. .NET Assembly Wrapper를 사용하여 이러한 계층을 생성할 수 있습니다.

 


                               그림 2. 웹 서비스와의 통신을 위해 .NET 활용

 

.NET 어셈블리는 .NET에서 구축 단위입니다. 이것은 보통 .NET 프레임워크에서 지원되는 CLR(Common Language Runtime)에서 실행되도록 제작된 DLL이나 실행 파일입니다. 어셈블리는 속성과 메소드를 통해 클래스 기반 인터페이스를 내보냅니다. LabVIEW에서 .NET 클라이언트를 지원하기 때문에 Constructor Node를 사용하여 어셈블리의 클래스에 대한 인스턴스(Instance)를 만들고 각각 속성 프로퍼티 노드(Property Node) 및 인보크 노드(Invoke Node)를 사용하여 그 속성과 메소드에 액세스할 수 있습니다.

다음 예는 .NET 클라이언트 지원을 사용하는 VI에서 이러한 노드가 일반적으로 어떻게 사용되는지를 보여줍니다.

 

 

                                         그림 3. LabVIEW에서 .NET 개체의 사용