You are here

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

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

목차: 

  • .NET Assembly Wrapper 생성
  • .NET 웹 서비스 브라우저
  • 웹 서비스 기반 어플리케이션 만들기

 

.NET Assembly Wrapper 생성

.NET Assembly Wrapper는 웹 서비스와의 통신 과정을 크게 단순화시킵니다. 웹 서비스에 대한 .NET Assembly Wrapper를 만들려면 웹 서비스의 WSDL 규격을 얻어서 .NET Assembly Wrapper를 생성할 수 있는 도구가 필요합니다. .NET 프레임워크 SDK는 WSDL 규격의 URL이 주어졌을 때 .NET 어셈블리를 생성하는 soapsuds.exe라는 Command Line 유틸리티를 제공합니다.

 

그러나 이 도구는 다음과 같은 단점이 있습니다.
• 이 도구를 사용하려면 .NET 프레임워크 SDK를 설치해야 합니다.
• 사용이 불편한 Command Line 도구입니다.
• 이 도구를 사용하려면 우선 웹 브라우저를 통해 웹 서비스를 찾아 그 WSDL 규격에 대한 URL을 얻어야 합니다.

 

이러한 문제를 해결하기 위해 LabVIEW에서는 .NET 웹 서비스 브라우저라고 하는 기능을 제공합니다. 이 기능을 사용하면 LabVIEW 개발 환경 내에서 웹 서비스를 검색하고 그에 대한 .NET Assembly Wrapper를 생성할 수 있습니다.

 

 .NET 웹 서비스 브라우저

LabVIEW .NET 웹 서비스 브라우저는 웹 브라우저와 .NET 어셈블리 생성을 결합시켜 통합된 솔루션을 제공합니다. LabVIEW .NET 웹 서비스 브라우저를 시작하기 전에 다음 작업을 수행해야 합니다.

1. Microsoft사의 다운로드 센터(아래 링크)에서 이용할 수 있는 .NET 프레임워크 재배포 가능 요소를 설치합니다. 프레임워크가 이미 존재하는지 테스트하기 위해 windows\system32 디렉터리로 이동하여 mscoree.dll을 찾습니다. 파일이 있으면 .NET 프레임워크가 이미 설치된 것입니다.
2. LabVIEW .NET 웹 서비스 브라우저는 Microsoft사의 Internet Explorer ActiveX 컨트롤을 사용합니다. 현재 Internet Explorer 6.0 이상을 사용하고 있지 않으면 Microsoft 다운로드 센터(아래 링크)에서 다운로드하여 설치하십시오.

위의 단계를 마친 후에 LabVIEW를 시작합니다. 도구» 반입» 웹 서비스(Tools».NET Web Service Browser, LabVIEW 8 이전 버전의 경우)를 선택하여 다음 예에 나타낸 것처럼 이 도구를 표시합니다. (http://www.xmethods.net/ve2/index.po)

 

                                   그림 4. LabVIEW .NET 웹 서비스 브라우저

이 브라우저는 뒤로, 앞으로 및 이동 버튼과 주소 표시줄만 갖추고 있는 표준 웹 브라우저의 최소 형태입니다. 이 브라우저는 XMethods와 같이 미리 구성된 웹 서비스 디렉터리에서 시작됩니다. 주소 표시줄의 아래쪽 화살표를 클릭하고 바로 가기 메뉴에서 Edit Favorites를 선택하여 시작 URL을 사용자 정의할 수 있습니다. Edit Favorites 대화 상자를 사용하여 즐겨 찾는 웹 서비스 디렉터리를 구성할 수 있습니다. 웹 서비스 디렉터리를 찾고 웹 서비스의 WSDL 규격을 얻으면 Create Assembly 버튼이 활성화되어 이 웹 서비스에 대한 .NET Assembly Wrapper를 생성하기 위해 클릭할 수 있습니다.

 

참고:
Microsoft 다운로드 센터

LabVIEW .NET 웹 서비스 브라우저

 

웹 서비스 기반 어플리케이션 만들기

LabVIEW 이상과 LabVIEW .NET 웹 서비스 브라우저를 사용하여 다음 3단계를 거쳐 웹 서비스 기반 어플리케이션을 제작할 수 있습니다.
1. LabVIEW .NET 웹 서비스 브라우저를 사용하여 웹 서비스를 찾습니다.
2. 웹 서비스에 대한 .NET Assembly Wrapper를 만듭니다.
3. .NET 클라이언트 지원을 사용하여 VI에 어셈블리를 도입합니다.

다음 예는 증권 시세 표시 기호가 주어졌을 때 최근 주식 시세를 읽는 VI의 작성에 필요한 단계를 설명합니다.

 

단계 1. 주식 시세 웹 서비스를 찾습니다.

• LabVIEW를 시작합니다.
• Tools».NET Web Service Browser 를 선택합니다.
• 다음 예에 나타낸 것처럼 주소 표시줄의 아래쪽 화살표를 클릭하고 www.salcentral.com (사이트의 사정에 따라 서비스에 영향을 미칠 수 있습니다.)을 선택합니다.

                                          그림 5. 웹 서비스 디렉토리 선택

• SalCentral을 사용하여 키워드로 웹 서비스를 검색할 수 있습니다. 다음 예에 나타낸 것처럼 검색 텍스트 상자에 “stock quote”를 입력하고 Search for Web Service 버튼을 클릭합니다.


                                                      그림 6. 웹 서비스 검색

 

• 이것은 사람들이 즐겨 찾는 검색이기 때문에 검색 결과에 여러 목록이 나옵니다. 설명을 읽고 필요한 웹 서비스를 선택합니다. 이 예에서는 StockQuoteNET을 선택합니다.

단계 2. Stock Quote .NET Assembly Wrapper를 만듭니다.

• 웹 서비스를 선택한 후에는 WSDL 규격을 찾아야 합니다. 일반적으로, 웹 서비스 디렉터리 목록에 스키마나 WSDL 주소라고도 하는 WSDL 규격에 대한 링크가 있습니다. 이 예에서는 Schema Location 링크가 WSDL 규격을 가리키고 있습니다. 링크를 클릭하면 .NET 웹 서비스 브라우저에 다음 예와 같은 WSDL 규격이 표시됩니다.

 


                                                  그림 7. WSDL 규격

• .NET 웹 서비스 브라우저가 웹 서비스에 대한 올바른 WSDL 규격을 가리키고 있다면 Create Assembly 버튼이 활성화됩니다. Create Assembly 버튼을 클릭하여 Assembly Wrapper를 만듭니다.
• 파일 대화 상자가 나타나면 최상위 VI 디렉터리에 어셈블리(DLL)를 저장합니다.

 

단계 3. VI에 .NET 어셈블리를 도입합니다.
• LabVIEW에서 File»New VI를 선택하여 새로운 VI를 만듭니다.
• C++에서와 마찬가지로 .NET의 개체는 constructor를 사용하여 만들어집니다. Functions 팔레트에서 Constructor Node를 찾아서 블록다이어그램에 놓습니다.
• Select .NET Constructor 대화 상자가 나타나면 Browse 버튼을 클릭합니다.
• 파일 대화 상자가 나타나면 단계 2에서 만든 어셈블리로 이동하여 선택합니다.
• Objects 목록에 네임스페이스 WebServiceProxy가 나타나야 합니다. 다음 예에 나타낸 것처럼 WebServiceProxy를 클릭하여 내보내진 개체 클래스를 표시합니다.

                                    그림 8. .NET Constructor 선택

• StockQuote 개체를 선택하고 Constructors 목록에서 기본 constructor를 선택한 다음 OK 버튼을 클릭합니다. Constructor Node가 구성됩니다.
• Constructor Node를 구성한 다음 블록다이어그램에 Property와 Invoke Node를 놓고 constructor가 만든 개체에 대한 속성과 메서드를 사용할 수 있습니다. 이 경우에는 특정 주식에 대한 시세를 얻고자 합니다. 증권 시세 표시 기호 입력을 지정해야 하기 때문에 인터페이스는 메서드가 될 것입니다. 블록다이어그램에 Invoke Node를 놓고 Constructor Node로부터의 참조 출력을 Invoke Node의 입력 참조에 와이어합니다. Invoke Node를 클릭하여 사용 가능한 메서드를 표시하고 GetQuote 메서드를 선택합니다. 이제 블록다이어그램이 다음 예와 같아야 합니다.


 그림 9. .NET을 사용하여 웹 서비스에서 StockQuote를 검색하는 VI

• VI를 어셈블리와 같은 디렉터리에 저장합니다. 어셈블리는 반드시 어플리케이션과 같은 디렉터리에 있어야 합니다. 그렇지 않으면 런타임 오류가 생깁니다. LabVIEW에서 최상위 VI는 어플리케이션이기 때문에 어셈블리가 최상위 VI와 같은 디렉터리에 있어야 합니다. 이 경우에는 하나의 VI만 있으며 이것이 최상위 VI이므로 어셈블리 디렉터리에 저장해야 합니다.
• VI를 실행합니다. 이제 입력하는 증권 시세 표시 기호에 대해 지연된 주식 시세를 검색할 수 있습니다.

이러한 단계를 거쳐 LabVIEW 이상에서 웹 서비스 기반 어플리케이션을 구축할 수 있습니다. LabVIEW .NET 웹 서비스 브라우저를 이용하여 웹 서비스를 찾아 이에 대한 Assembly Wrapper를 생성할 수 있습니다. Assembly Wrapper를 생성한 후에는 블록다이어그램에 Constructor, Property 및 Invoke Node를 놓은 다음 와이어합니다. SOAP, XML 또는 HTTP에 대해 잘 몰라도 LabVIEW를 사용하여 복잡한 웹 서비스 기반 어플리케이션을 쉽게 제작할 수 있습니다.

 

관련 링크:
LabVIEW .NET 웹 서비스 브라우저

Microsoft .NET