Akashic Records

홈 미들웨어(Home Middle-Ware) 본문

Infrastructure

홈 미들웨어(Home Middle-Ware)

Andrew's Akashic Records 2018. 4. 18. 14:13
728x90

네트워크에 연결된 각종 시스템들의 물리적인 위치, 프로토콜, 운영 체계(OS) 등에 관계없이 통합 시스템으로서의 연동을 가능하게 하는 중간 매개 프로그램. 네트워크 환경 내에서 다양한 하드웨어, 네트워크 프로토콜, 응용 프로그램, PC 환경 OS 차이를 메워 주고, 복잡한 이기종 환경에서 응용 프로그램과 OS 간의 원만한 통신을 이룰 있게 준다. 대표적인 네트워크 미들웨어로는 Jini, LonWorks, HAVi, UPnP 등을 있다.


미들웨어의 특징

  • 액세스 망에 대해 종결(Network Termination) 모뎀 기능을 제공

  • 다양한 네트워크를 연결하여 망간 연동기능을 제공하는 가정용 게이트웨이

  • 액세스 네트워크(xDSL, 케이블망, 위성, FTTx) 연동기술, 네트워크 주소변환기술, 네트워크 프로토콜 변환 기술, 네트워크 보안 기술 등이 포함 .


미들웨어의 종류


1. UPnP(Universal Plug and Play)

마이크로소프트사가 제안한 미들웨어 솔루션으로서 기존의 IP 네트워크와 HTTP 프로토콜을 사용하여 네트워크 기기간의 제어와 상호운용을 목표로 하고 있다. 기술에 의한 기기간 제어모델을 용이하게 구현함으로써 H/W S/W OS 무관하게 동작이 가능하고, HTML 이용하므로 손쉬운 사용자 인터페이스를 제공하는 장점을 갖고 있다.


네트워크 접속 기기 간의 데이터 공유 기능을 위해 IPP(Internet Printing Protocol) 같은 새로운 프로토콜을 사용함으로써 PC 중심으로 가정 각종 가전기기를 제어할 있다. 또한 ISA, PCI, VESA, USB 모든 인터페이스와 네트워크(IP) 지원하며, Ethernet, Home RF, Home PNA 등의 네트워크 프로토콜에서도 적용이 가능하다.


UPnP 가정이나 작은 사무실과 같이 관리자가 없는 네트워크 환경에서 사용자의 작업이 없이 표준화된 방법으로 쉽게 장비간의 연결이나 장비와 인터넷의 연결 방안을 제공한다. , 장비들은 언제나 쉽게 네트워크에 접속을 하여 다른 장비들에게 자신의 기능을 알리고 통신을 하거나 제어를 있도록 해주며, 이상 사용하지 않을 경우에는 네트워크에서 쉽게 제거 시킬 있도록 해준다.


UPnP 장비간의 11 통신(Peer-to-Peer) 기반으로 하고 있으며 현존하는 Internet 표준 프로토콜(TCP/IP) 이용하여 구조를 정의하고 있다. 그러나, 이로 인해 장비마다 IP 부여하고 동적으로 IP 할당 받아야 하기 때문에 DHCP(자동으로 IP 주소를 할당하는 기능) 같이 가정내의 장비의 동적인 IP 할당방안을 제공하거나 IP 주소의 크기를 늘인 IPv6 필요로 한다는 점은 UPnP 확산에 부담으로 작용하고 있다. UPnP 모임은 MS, Intel 주축으로 하여 정보, 가전중심의 250 이상의 회사들이 회원으로 가입이 되어 있으며 현재 활발한 활동을 진행 중이다.


UPnP 특징

  • 소규모에서 대규모의 네트워크로 확장이 용이

  • PnP 지원하여 장비의 접속과 분리를 자동으로 인지

  • 개발이 용이

  • 작은 리소스로도 이용이 가능

  • 가전장비와 같이 IP 없는 장비에 대해서는 단순한 기능을 가진 SCP라는 프로토콜을 통하여 브릿지(Bridge; 네트워크 프로토콜 변환기) 연결할 있도록 지원

  • Mixed-media, multi-vender home network 환경의 OS, 언어 하드웨어 독립적 환경 구축 가능

  • 인터넷 중심의 기술

  • HTTP, XML, multicast, UDP, SOAP, JAVA 다양한 운영체계에서 사용가능


UPnP 구조

UPnP 장비에 관계없이 공통적인 Interface 제공한다. 따라서 서비스용 응용 프로그램 입장에서는 UPnP 지원하는 장비들의 구체적인 사항에 대한 고려를 하지 않아도 통신이 가능하며, 장비의 입장에서도 UPnP만을 지원하면 이를 지원하는 모든 서비스용 응용 프로그램과 연결이 가능하게 된다.


  • SSDP(Simple Service Discovery Protocol) 네트워크에 연결되어 있는 장비와 사용 가능한 서비스를 검색하기 위한 프로토콜

  • Mini Web Server 장비간의 기능 상태정보를 주고 받기 위해서 사용

  • GENA 장비간의 이벤트(상태 변화 ) 교환을 위해서 사용

  • SOAP XML 문법을 이용하여 장비에 제어 명령 등을 전달할 사용된다.


UPnP Networking 단계

  • 주소지정(Addressing) : UPnP IP기반의 네트워크이므로 장비들마다 IP 필요하며 이를 위해 IP 할당이 제일 먼저 수행 된다. 장비가 처음 네트워크에 접속할 DHCP서버를 검색하여 IP 할당 받으며, 이때 장비들은 모두 DHCP Client 된다.

  • 장비 검색(Discovery) : 주소지정을 통해 장비들이 IP 부여 받게 되면, 다음에는 제어하고자 하는 장비들을 검색하는 것이 필요하다. 이를 위해 제어기에서는 SSDP라는 프로토콜을 사용하여 장비를 검색한다. 제어기는 관심 있는 장비들을 검색하고 피제어기는 이에 응답한다. 피제어기에서는 자신이 네트워크에 접속하는 경우, 자동으로 장비들에게 접속된 사실을 알려주고 주기적으로 접속의 지속여부를 알려준다.

  • 장비 명세(Description) : 장비를 발견하게 되면 장비마다 수행할 서비스가 무엇이 있는가를 알아야 한다. 이를 위해 제어기에서 피제어기를 발견하면, 피제어기에서는 장비에 대한 명세가 들어 있는 URL 보내고, 제어기는 피제어기에서 XML 문서로 장비 명세를 가져온다. 문서에는 제조사 정보, 제품정보(모델, 시리얼 번호,…), 서비스 목록 등이 담겨있다.

  • 제어(Control) : 제어기는 피제어기에서 장비 명세를 가져와 기술되어 있는 장비의 서비스를 분석한 , 피제어기에게 적절한 명령어(action) 보내어 제어한다. 사용되는 프로토콜은 XML/SOAP이다.

  • 이벤트 처리(Eventing) : 네트워크에서는 주변 환경에 따라서 장비의 상태가 변하는 경우가 빈번하다. 때로는 이러한 변화가 사용자에게는 중요한 정보가 수도 있기 때문에 UPnP에서는 이벤트를 정의하고 있다. 제어기는 피제어기의 상태가 변화하는 것에 주목을 하고 있고, 피제어기는 자신의 상태가 변할 제어기에게 이벤트 메시지를 전달한다. 이벤트는 (이름, ) 쌍으로 되어 있으며, 이벤트에서 사용되는 프로토콜은 XML형식의 GENA라는 프로토콜이다.

  • 장비의 사용자 인터페이스(Presentation) : 제어기에서는 피제어기의 HTML Page 읽어 들일 있다. HTML Page 장비 사용에 관련된 사용자 인터페이스를 보여주며, 이를 통하여 장비를 제어하거나 상태를 보여주기도 한다.


2. Jini

Java 기반으로 하여 LAN, xDSL, 모뎀, 전력선, 무선 다양한 통신방식으로 접속된 가정내 디지털 장비나 S/W 동적으로 상호 작용하도록 하는 기술로서 Sun Microsystems사가 제안하였다. 단순성과 고신뢰성의 확보, 효율적인 제어구조를 지향한 확장성 부여 등을 특징으로 하며, P&P 기능에 의한 간단한 시스템 구성과 실행 코드의 이동성에 의한 가변성, 그리고 기존 IP 기반으로 하는 네트워크 확장성 Java 연관 제품과 시스템간 호환성 확보 등이 장점이다. 그러나 느린 수행속도와 과다한 메모리 용량 차지 등으로 시스템 단가가 높아진다는 단점도 지니고 있다.

JINI Sun Microsystems에서 제안할 당시에는 네트워크 시장을 염두에 기술이었으나, 현재는 시장에서보다는 오히려 서버 application 시장에서 영향력을 얻고 있다.


JINI JAVA 장점인 VM 통해 같은 프로그램을 별도의 수정이나 사용자 개입 없이도 임의의 기기에서 동일한 실행결과를 얻을 있다는 점을 네트웍을 통해서 확장시킨 것으로 있다.


JINI system 사용자들과 사용자들이 이용하려고 하는 장비와 같은 자원의 유기적인 결합(YES federation, NO collection) 지원하는 분산 시스템이다. JINI 역할은 UPnP처럼 네트워크를 통해 사람이나, 기기, 프로그램이 특정 자원을 찾거나 사용하고자 , 관리자의 개입 없이 유연하게 동작하는 것을 목표로 한다. 그러나 자원으로 참여하기 위한 조건과 자원을 다루는 방법에서는 다른 유사기술과 확연한 차이를 가지고 있는데, 무엇보다 JINI 자원은 JAVA machine 이어야 한다는 점이다. 아마도 이점이 JINI 확산에 가장 걸림돌일 것이다. 점차 고가가전이나 정보가전제품에 JAVA VM 내장하는 경우가 늘어나고는 있지만 여전히 소수에 불과하다. 물론 JAVA VM 없거나 아예 컴퓨팅 파워가 없는 장비가 JINI 네트워크에 참여하는 방법도 마련되어 있으나 이것은 브릿지와 같은 다른 기능의 도움을 받아야 한다. 어쨌든 일단 자원이 JAVA machine 이라면 다른 제약사항은 없다. JAVA VM 가진 컴퓨터, 가전제품, JAVA platform에서 동작 가능한 software component 어떤 것이든 가능하다.


JINI 동작은 크게 장비와 같은 자원 자체가 게이트웨이와 같은 자원을 관리하는 서비스 서버를 찾는 과정(Discovery), JINI 네트워크에 합류하는 과정(Join), 서비스 사용을 위한 프로그램을 제어용 client 전송하는 과정(Lookup), 사용자의 요구에 의한 서비스 수행과정(Service Invocation)으로 나눠 있다.


자원관리 서비스 서버 탐색과정(Discovery)

자원은 사용자가 사용하고자 하는 서비스의 공급자이다. 자원이 JINI 네트워크에 참가할 때는 Discovery 프로토콜을 사용해서 사용자와 자신을 매개해 자원관리 서비스(Lookup Service) 찾는다. 자원관리 서비스는 매개를 위한 서비스이므로 대개 게이트웨이나 장비제어를 위한 client 포함되어 있다. JINI 네트워크에 참가하는 자원은 자신이 제공하는 서비스를 위한 JAVA 프로그램(Service Object) 저장하고 있는데, 프로그램은 서비스 제공자에 의해서 구현되므로 서비스에 대한 명세를 해석하는 과정에 오류가 생길 가능성을 원천적으로 해소했다. 또한 프로그램은 JAVA 언어의 표준 연동방식을 이용하여 구현함으로써 서비스 제공자의 서비스 구현방식에 관계없이, 표준 연동방식을 이용하여 어떤 물리적 환경에 존재하는 JAVA VM에서든 프로그램을 실행시킬 있도록 해준다.


자원의 JINI 네트워크 합류과정(Join)

일단 자원관리 서비스를 발견한 자원은 서비스에 대한 속성정보(Service Attributes) 서비스 수행을 위한 JAVA 프로그램인 Service Object 네트워크 합류를 위한 Join 프로토콜을 사용하여 자원관리 서비스에 등록한다.


서비스 사용을 위한 프로그램 전송과정(Lookup)

사용자가 서비스를 사용하고자 때는 Lookup 프로토콜을 사용해서 자원관리 서비스에 요청한다. 요청은 자신이 사용하고자 하는 서비스의 인터페이스 형식이나 서비스에 대한 속성정보를 보내고 자원관리 서비스는 등록된 Service Object들의 인터페이스 형식과 서비스 속성정보들을 이용하여 적절한 Service Object 사용자 client 전송한다. 이러한 Service Object 탐색방식은 자원관리 서비스 개발자나 사용자 서비스 개발자, 자원 프로그램 개발자가 각자 구현하여 사용하는 것이 아니라 JAVA 언어에 내재된 탐색방식을 그대로 이용하므로 잘못된 속성이나 인터페이스 형식의 적용으로 생기는 문제를 원천적으로 해결할 있다.


서비스 수행과정(Service Invocation)

마지막 단계로 사용자는 자신이 적용한 인터페이스 형식을 통해 자원이 자원관리 서비스에 등록해 놓은 Service Object 실행한다. Service Object 완전한 JAVA 프로그램으로 사용자가 보유하고 있는 client JAVA VM에서만 실행될 있으며, 자원 자체에서 일부 기능의 수행을 위해서는 JAVA RMI(Remote Method Invocation: 원격 프로그램 수행방식) 이용한다. RMI 사용자의 client에서 자원의 제어 등을 위한 호출을 하면 자원에 있는 기능을 수행시킬 있도록 해준다. 어떤 경우이든 Service Object JAVA platform 의해서 동일한 실행결과가 보장된다. Service Object 서비스 제공자 자신이 직접 개발한 프로그램이므로 가장 정확한 내부 구현이 가능하며, UPnP 같이 기능이나 속성의 명세만을 전달하는 프로토콜에서 생길 있는 해석상의 실수나 악의에 의한 오동작을 방지할 있다. 또한 Service Object에는 JAVA platform 독자적인 보안, 자원관리 방식이 적용되므로 사용자나 자원의 운영체제 보유 유무나 특성과는 관계없이 사용자에 대한 인증(authentication), 접근권한에 대한 관리(authorization) 등을 안정적으로 지원받을 있다.


JINI 특징

  • JINI device들은 TCP/IP 네트워크에 연결될 있고, 자동으로 JINI device 찾아서 서비스를 사용할 있다.

  • 네트워크를 유연하고 쉽게 관리할 있는 도구화 기능 보유

  • 분산 환경의 Home network 자원공유 플랫폼과 HAVi 상호 연동기술 개발

  • Network상의 모든 종류의 device software 자원의 통합제로 구성 service 자원 공유

  • 사용자의 위치변화에 관계없이 자원 접근용이 Network 개설, 갱신, 변경 작업의 단순화

  • JINI 이론적인 우수성에도 불구하고 JAVA platform 부담 때문에 네트워크 시장에서는 역할을 차지하지 못하고 있으며, 오히려 JAVA 진영의 대표적인 서비스 플랫폼인 OSGi에서도 UPnP 장비검색과 네트워크 자동구성을 위한 미들웨어로 채택하고 있는 실정이다. 그럼에도 불구하고 JINI 같은 일체화된 방식의 네트워크 구성방식 자체는 관련된 개발자들간의 오해로 인한 오류를 원천적으로 제거시킬 있기 때문에 계속적인 필요성이 대두될 것으로 예상된다.


3. HAVi(Home Audio Vidio interoperability)

Sony 제안한 네트워크용 미들웨어 솔루션으로 IEEE1394 기술을 채택하여 AV기기간의 실시간 데이터 전송과 상호 호환성을 목표로 하고 있다. P&P 지원 AVC(Audio Visual Control) 커맨드의 사용과 함께 미래 기기도 지원해 주기 위한 DCM(Device Control Module) 개념을 특징으로 하고 있다. 또한 제조사나 기기종류에 무관하게 모두 통신이 가능하도록 설계되었으며, 자바 바인딩을 통한 개방형 소프트웨어 API(Application Programming Interface) 지원하고, 제어 신호 콘텐츠 등을 전송할 있다.


HAVi 가정 내의 오디오 비디오 가전 기기간의 상호운영성(장비간의 통신 제어 기능 ) 위한 네트워크용 표준으로 정의된다. , 네트워크로 연결된 모든 오디오/비디오 가전 장비들은 네트워크의 연결 순서나 위치, 장비 생산업체와 관계없이 서로 다른 장비의 기능을 제어할 있도록 해주는 것이다. HAVi 특히 오디오와 비디오에 최적화되어 있는 네트워크 프로토콜로서, 가장 특징은 고품질의 디지털 비디오와 오디오 신호를 고속으로 전송할 있도록 하기 위하여 고속(400Mbps) IEEE 1394 네트워크를 기반으로 하고 있다는 점이다. HAVi 적용 분야에서 나타나듯이 주로 오디오 비디오 장비를 생산하는 8 주요 회사 (Grunding AG, Hitachi, Matushita(Panasonic), Royal Philips Electrics, Sharp, Sony, Thomson Multimedia, Toshiba) 의해서 시작 되어 현재는 국내의 삼성, LG 전자를 포함하여 50 이상의 업체들이 참여하고 있다.


HAVi 주요 특징

  • 상호운용성 : HAVi 지원하는 장비의 기능들을 서로 다른 장비에서 제어할 있다. , 안방의 TV 통하여 거실의 VTR 작동하여 안방 TV화면을 통하여 영화를 감상하는 등의 기능이 안방 TV 조작만으로 가능해 진다.

  • 제조사 독립성 : 제조사와 무관하게 HAVi 표준 미들웨어 사용으로 상호운용성을 제공한다. , 소비자는 엔터테인먼트 네트워크를 구축하기 위하여 제조사와 무관하게 제품에 대한 선택 폭을 넓게 가질 있다.

  • 플러그&플레이 : 제품이 연결되면 자신의 존재와 기능을 자동으로 알려서 네트워크 주소나 장비 드라이버 등의 설치 없이 간편하게 장비를 설치하고 바로 사용할 있다.

  • 기능 갱신의 용이성 : DCM (Device Control Module) 형태로 개별적인 기능을 처리하는 방식을 지원함으로써 새로운 DCM 제공을 통해 기능개선이나 추가적인 기능 제공이 가능하다.

  • 분산 제어 : 중앙에 서버형태의 기능을 두지 않고 장비간의 직접통신(peer to peer) 통해 제어하는 분산처리 구조이다.


HAVi 장비의 분류

HAVi 장비들은 각각의 역할과 복잡도에 따라서 제어기와 피제어기로 구분된다. 제어기는 피제어기를 제어하는 장비로 기능과 복잡도에 따라서 다시 FAV(Full AV) IAV(Intermediate AV) 나뉘고, 피제어기는 BAV(Basic AV) LAV(Legacy AV) 구분된다.


HAVi 구조

HAVi 구조는 장비들간의 상호운용성을 위한 프로토콜과 API 이루어진 소프트웨어 요소(Software Element)들로 이뤄져 있으며, 다음과 같은 특성을 갖는다.

  • 소프트웨어 요소 : 소프트웨어 요소는 RTOS 같은 하드웨어 제조업체에서 제공하는 플랫폼 상에서 네트워크를 위한 분산 응용 프로그램을 개발할 있도록 상호운용성을 위한 API 서비스들을 제공한다.

  • 객체기반 : HAVi 구조내의 서비스들은 소프트웨어 요소라고 하는 객체로 구성된다.

  • 소프트웨어 요소 식별자 (SEID: Software Element Identifier): 모든 객체는 SEID 갖고 있으며, SEID 시스템 전반에 걸쳐서 Registry 통해 서비스 된다

  • 메시지 기반 통신 : 모든 객체는 SEID 구분되는 메시지 전달 방식을 통해 통신한다.


HAVi 장비들 사이의 상호운용성을 위해 필요한 소프트웨어 요소에는 Messaging system, Event Manager, Registry, Resource Manager, DCM Manager등이 있는데 DCM이나 응용 프로그램의 존재여부는 장비나 기능들이 실제로 HAVi 네트워크 상에 존재하느냐에 달려있다. HAVi 장비에 있는 소프트웨어 요소들은 다른 소프트웨어 요소에게 메시지를 보냄으로써 다른 소프트웨어 요소의 API 호출한다. 소프트웨어 요소가 다른 HAVi 장비에 존재할 경우 Messaging system 네크워크 상으로 메시지를 보낸다. 사용자는 새로운 HAVi 장비들을 가지고 HAVi 네트워크를 확장시킬 있고 동시에 여러 가지 응용 프로그램을 실행할 있다. 응용 프로그램이 동일한 DCM 제어하려고 하는 경우, Resource Manager 이용하여 충돌을 해결함으로써 장비의 공유를 가능하게 한다.


DCM HAVi 장비에 설치되어 실행되며 HAVi 정의된 API 통하여 특정한 기능과 제어를 제공해주는 소프트웨어 요소이다. 이러한 API 모든 HAVi 장비에 있는 응용 프로그램에 의해 호출되며, DCM HAVi 정의된 API 장비에 정의된 제어 인터페이스상의 명령어로 전환해준다.


HAVi UPnP Jini와는 달리 가전회사에서 시작된 네트워크용 미들웨어이다. 또한 고속, 대용량의 데이터 전송을 위하여 하부 네트워크 모듈을 IEEE 1394 제한하고 있기 때문에 HAVi라는 이름에서 보듯이 오디오 비디오 기기용으로 국한되는 경향이 있다. 따라서 광범위한 네트워크 미들웨어로 사용되기 위해서는 UPnP Jini 같은 미들웨어와 혼용되어야 하며, 실제로 HAVi-UPnP 브릿지와 같은 방식으로 미들웨어 간의 호환성을 제공하고 있는 추세이다. 그러나 오디오 비디오 분야로 국한시켜 보면, 손쉬운 설치 사용이 가능하고 제조사와 무관하게 통일된 제어가 가능하며 대용량의 오디오 비디오 데이터와 신호를 처리하는데 최적화 되어 있어 가장 적합한 미들웨어로 있다.


미들웨어 비교

비교항목

HAVi

Jini

UPnp

Description

CSR(IEEE1212)

Java Interface

XML

Discovery

IEEE1394 Config.ROM Distributed Registry

Look-Up Server

SSDP, AutoIP

U2D

Havlet

Applet

HTTp

D2D

HAVi Message

Java RMI

SOAP

Event

HAVi Message

Java RMI

GENA

Moving Object

DCM Module

Java Byte Code

Control

Backbone

IEEE1394-2000

TCP/IP Media

Not Defined

Platform

JVM

JVM

XML Parser

Characteristics

AV Oriented

PC Oriented

PC Oriented


728x90
Comments