KR102485427B1 - 네트워크에 연결된 기기들 간의 정보 교환의 기반을 제공하는 서비스를 변경하기 위한 방법과 장치 - Google Patents

네트워크에 연결된 기기들 간의 정보 교환의 기반을 제공하는 서비스를 변경하기 위한 방법과 장치 Download PDF

Info

Publication number
KR102485427B1
KR102485427B1 KR1020210063028A KR20210063028A KR102485427B1 KR 102485427 B1 KR102485427 B1 KR 102485427B1 KR 1020210063028 A KR1020210063028 A KR 1020210063028A KR 20210063028 A KR20210063028 A KR 20210063028A KR 102485427 B1 KR102485427 B1 KR 102485427B1
Authority
KR
South Korea
Prior art keywords
service
information
action
specific
network
Prior art date
Application number
KR1020210063028A
Other languages
English (en)
Other versions
KR20220155543A (ko
Inventor
김순욱
이승준
Original Assignee
주식회사에어플러그
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사에어플러그 filed Critical 주식회사에어플러그
Priority to KR1020210063028A priority Critical patent/KR102485427B1/ko
Publication of KR20220155543A publication Critical patent/KR20220155543A/ko
Application granted granted Critical
Publication of KR102485427B1 publication Critical patent/KR102485427B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5041Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5058Service discovery by the service manager
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/18Service support devices; Network management devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

본 발명에서는, 특정 서비스를 포함하는 적어도 하나의 서비스가 기기들 간의 정보 교환에 기반이 되도록 기 적용되고, 상기 특정 서비스는, 그 특정 서비스를 식별케 하는 고유 정보와 입력 파라미터를 포함하도록 지정된 특정 액션을 하나 이상 포함하도록 정해지고, 상기 입력 파라미터는, 제 1서비스를 식별케 하는 제 2고유 정보와 상기 제 1서비스의 적어도 하나의 액션을 정의할 수 있는 사양정보를 포함하도록 정해진다. 그리고, 상기 특정 서비스에 대해서 제공자로 지정된 임의 기기는, 상기 특정 서비스의 상기 특정 액션이 호출되어 자신에게 수신되면, 그 특정 액션에 포함된 상기 입력 파라미터로부터 추출한 상기 사양정보에 의해 정해지는, 상기 적어도 하나의 액션을 포함하는 상기 제 1서비스를, 상기 적어도 하나의 서비스와 동일하게 정보 교환의 기반으로 적용되게 한다.

Description

네트워크에 연결된 기기들 간의 정보 교환의 기반을 제공하는 서비스를 변경하기 위한 방법과 장치 {Method for changing services to provide the basis for information exchange between devices connected to a network, and an apparatus for said method}
본 발명은, 네트워크에 연결된 기기들이 서로 정보를 주고받을 때 그 기반이 되는, 정보의 형식과 구성 방식 등을 규정하는 서비스를 변경할 수 있게 하는, 특히 각 기기가 네트워크 상에서 기 적용된 서비스를 기반으로 동작하고 있는 도중에 동적으로 변경하여 기존 서비스를 보완할 수 있게 하는 방법과 그 방법을 위한 장치나 기기 등에 관한 것이다.
사람의 생활을 편리하게 하는 수 많은 종류의 특정 용도의 장치들, 특히 차량 등과 같이 그 기능이 매우 다양하고 복잡한 장치들은, 수많은 정보가, 일명 전자제어 유니트( ECU: Electronic Control Unit )라고 불리는 기기 들간에 실시간으로 통신되는 것에 기반하고 있다.
이와 같은 전자제어 유니트( 이하, '전자제어 기기'라 칭하거나, 간단히 '기기'로 약칭한다. )는, 자신에게 구비된 입출력 인터페이스를 통해 직접 연결된 각종의 센서나 부품, 기계적 또는 전기적 모듈(module) 등에서 입력되는, 또는 네트워크에 연결된 타 기기나 부품 등으로부터, 집중하여 처리하도록 자신에게 전달되는 데이터나 정보, 또는 자체적으로 생성하는 다양한 종류의 신호나 정보 등( 이하에서는, 이상 다양한 방식으로 임의의 한 기기가 취득하는 신호, 데이터, 정보 등을 '상태 정보'라 통칭하며, 그 상태 정보를 갖게 되는, 장치 내에서 기계적, 전기적, 또는 화학적으로 변동하는 요소를 '상태 변수'라 칭한다. )을 확인하는 한편, 해당되는 상태 변수들에 대해 원하는 값이나 레벨로 설정하는 기능을 제공하며, 다른 전자제어 기기가 감지, 검출 또는 생성하는 상태 정보에 대해서도 네트워크를 통해 조회 또는 설정하는 등의 기능을 제공하기도 한다.
본 명세서에서는, 입출력 인터페이스를 통해 임의의 물리량, 즉 상태 변수에 대해 감지 또는 검출한 상태 정보, 타 기기 등으로부터 네트워크를 통해 전달됨으로써 취득한 상태 정보, 그리고 내부 회로 블록 등으로부터 자체적으로 생성되는 상태 정보를, 복수의 전자제어 기기들이 연결된 네트워크 상에서, 서비스 기반으로 제공할 수 있는 상태로 처음 구성하는 전자제어 기기를, 그 상태 정보, 또는 해당 상태 변수의 '전담' 기기라 칭한다.
한편, 자신에게 구비된 입출력 인터페이스를 통해 감지 또는 검출하는 상태 정보 뿐만 아니라, 다른 기기로부터 네트워크를 통해 전달된 상태 정보를 전담하는 전자제어 기기의 경우에는, 전자제어 기기들이 장착된 임의의 장치에서 정보를 집중하여 관리하거나 장치 외부와의 통신을 중계하는 전자제어 기기( 필요한 경우, 이 전자제어 기기에 대해서는, 특별히, '관문 기기'라 칭한다. )와 함께, 많은 기능들을 동시에 수행할 수 있는 처리능력이 요구되고 있어서, 이들에 대해서는 점차 높은 사양의 전자제어 기기가 채택되어 장치에 적용되고 있다.
이와 같은 고사양의 전자제어 기기에 대해서는, 제조사가, 해당 자원( CPU, 메모리, 통신소자, 다양한 종류의 입출력 인터페이스들, ADC 등 )의 효율적인 사용을 위한 운영시스템(O/S)도 함께 제공하고 있어서, 차량과 같은 특정 장치에 전자제어 기기를 적용하고자 할 때, 그 운영시스템을 기반으로 하여, 전자제어 기기에서 원하는 동작을 수행하는 응용 프로그램들을 보다 용이하게 개발하여 적용할 수 있다.
도 1은, 이와 같은 유형의 전자제어 기기를 적용대상으로 의도하여 개발하는 응용 프로그램이, 네트워크를 통해 다른 동종의 전자제어 기기 상의 응용 프로그램과 필요한 정보를 서로 주고받을 때, 준수해야 하는 정보의 구성형식과 이용방식 등에 대해서 '서비스'라고 명명된 단위로 정하고 있는 규칙( 이하, 이 규칙을 '서비스 인터페이스 규칙'이라 칭한다. )의 단순한 예를 나타낸 것이다.
도 1은, 이와 같은 서비스 인터페이스 규칙(10)에 대해서, 임의의 한 서비스를 예로 하여 나타낸 것으로서, 그 규칙에서 정하고 있는 서비스는, 해당 서비스를 지칭하는 명칭, 서비스 식별자, 정보 교환의 기반으로 적용될 때, 실제 그 서비스를 호출할 수 있는 실행 개체/인터페이스를 식별케 하는 인스턴스(instance), 버전, 해당 서비스로 묶인 하나 이상의 상태 변수에 의해, 또는 그에 대해 발생되는 이벤트의 세트(set), 조회 및/또는 설정, 그리고 이벤트 방식의 통지가 가능한, 해당 서비스로 묶인 상태 변수에 대응하여 지정된 필드의 세트, 그리고, 상태 변수를 대상으로 요청할 수 있는 동작을 나타내는 메소드(method)의 세트의 조합(11)으로써 정의된다.
각 세트에는, 해당 항목, 즉 이벤트, 필드 또는 메소드 항목이 복수개 정의될 수 있으며, 서비스로 묶이는 상태 변수들의 속성이나 특성에 따라서는, 이벤트, 필드 및 메소드 세트에서 하나 이상의 세트가 배제되어 서비스로 정해질 수도 있다.
각각의 이벤트 항목과 필드 항목에 대해서는, 명칭, 이벤트 식별자, 해당 이벤트가 속하는 이벤트 그룹, 그리고 그 이벤트( 또는 필드 )에 연관된 상태 정보의 형식이 규정되며(12,13), 필드의 경우에는, 해당 상태 변수에 대해 허용되는 조회 및/또는 설정 동작을 나타내는 명령 항목(13a)이 추가적으로 정의된다.
메소드 항목에 대해서도, 이벤트나 필드 항목과 동일한 방식으로, 해당 서비스로 묶인 상태 변수에 대해 정해지게 되며, 그 연관된 상태 변수에 대해, 필드에 비해 확장된 동작을 제공할 수 있도록 정의된다. 이와 같은 확장된 기능을 위해, 메소드 항목에는, 출력 파라미터(o-params) 외에 입력 파라미터가 정의될 수 있다.
도 1에 예시된 바와 같은 형식으로 정해진 서비스 인터페이스 규칙(10)은, 전자제어 기기에서 실행될 응용 프로그램 개발자들 또는 그 응용 프로그램이 이용할 수 있는 프로그램 인터페이스( API: Application Program Interface )의 개발자들에 의해 참조된다. 즉, 응용 프로그램 등의 개발자는, 상기 서비스 인터페이스 규칙(10)을 참조하여, 자신이 개발한 응용 프로그램 등이 이식될 전자제어 기기에서 다른 전자제어 기기와 필요한 정보를 주고 받기 위한 부분에 대해서, 그 서비스에 대해 정해진 규칙( 상태 정보의 형식과 이용 요건 등 )에 맞게 코딩하게 된다.
이러한 방식으로 다른 전자제어 기기와, 정해진 서비스 인터페이스 규칙에 따른 서비스 기반으로 정보를 주고 받을 수 있는 응용 프로그램에 대한 소스 코드의 작성이 끝나면, 그 응용 프로그램의 소스 코드를 컴파일(compile)하여 실행 코드를 얻고, 이 실행 코드와 상기 서비스 인터페이스 규칙(10)으로부터 만들어진 인터페이스 코드 모듈을 함께 링크(link)시켜, 전자제어 기기에서 실행될 수 있는 완전한 코드 세트(code set)로 빌드(build)함으로써, 상용의 응용 프로그램 개발이 종료된다.
이렇게 개발된 응용 프로그램은, 동일한 서비스 인터페이스 규칙에 따라 정보를 교환하는, 네트워크 상의 전자제어 기기들 중에서, 그 어떤 기기에 이식되어도 정상적으로 실행되어 개발자가 의도한 동작을 수행한다. 즉, 도 1에 예시된 바와 같은 서비스 인터페이스 규칙은, 서로 다른 장소에서 서로 다른 개발자에 의해 만들어지는 각종의 응용 프로그램들에 대한 이식성(移植性)을 크게 향상시키게 된다.
그런데, 개발된 각 응용 프로그램은, 도 1에 예시된 바와 같은 방식으로 정해져 있는 서비스 인터페이스 규칙에 의해 생성된 인터페이스 코드 모듈과 함께 빌드되기 때문에, 이식성을 향상시키는 서비스 기반의 동작의 안정성은, 인터페이스 코드 모듈에 의해 크게 좌우된다. 하나의 전자제어 기기에서 실행되어 소정의 동작을 하는 응용 프로그램과는 달리, 서비스 인터페이스 규칙에 따른 프로그램 인터페이스를 제공하는 인터페이스 코드 모듈은, 응용 프로그램이 실행되는 모든 전자제어 기기들에 작용하기 때문이다.
따라서, 많은 전자제어 기기들이 장착되는, 차량과 같은 복잡한 장치의 제조사는, 수많은 다양한 신호들과 해당 장치에서 발생하는 물리량 등과, 그 장치의 기본적 기능, 부가적 기능 및/또는 편의적 기능 등에 대해 충분히 연구하고 분석한 후에, 그 장치의 전자제어 기기들에서 실행될 많은 응용 프로그램들이 필요로 하는, 또는 앞으로 요구할 수도 있는 상태 변수에 대해서 정보 형식과 이용 요건을 지정한 완전한 서비스 인터페이스 규칙을 구성하여, 프로그램 개발자들에게 제공해야 한다.
하지만, 이와 같은 제조사의 노력에도 불구하고, 수많은 이용자들이 동종의 장치를 이용함으로써, 그 장치의 개발이나 시험 과정에서는 예상치 못한 기능이나 성능, 안전성, 그리고 장치 내에서 또는 외부와의 정보 통신에서의 보안성 등에서 문제가 발생할 수도 있고, 제공되는 기능의 보완이나 변경, 성능의 개선 또는 새로운 기능이 이용자들로부터 또는 제조사의 새로운 필요성에 의해 요구될 수도 있다.
이와 같은 예상치 못한 상황에 대응함에 있어서, 전자제어 기기들의 응용 프로그램들이 기반하도록 적용시킨 서비스 인터페이스 규칙에서는 정의되지 않은 새로운 서비스 항목이 필요할 수도 있다. 즉, 발생된 상황에 대한 최적의 대처를 위해서는, 기존에 하나의 서비스로 정의하지 못한, 실제 운용 중인 장치에서 발생되는 신호, 또는 물리량 등에 대한 값의 확인이나 그에 대한 동적인 변경이 필요할 수도 있다.
이런 경우에는, 어쩔 수 없이 추가로 필요한 상태 변수에 대해 새로운 서비스로 추가 정의한 서비스 인터페이스 규칙을 구성하고, 그 구성한 서비스 인터페이스 규칙으로부터 인터페이스 코드 모듈을 생성하여, 해당 장치의 전자제어 기기들 또는 특정의 전자제어 기기에서 실행되는 응용 프로그램들과 다시 빌드시켜 그 장치에 재이식시켜야 한다. 물론, 이러한 작업은, 그 장치의 이용자들이 할 수 있는 것은 아니며, 제조사가 정하는 특정 장소( 서비스 센터나, 서비스 공장 등 )로 그 장치를 이동시켜, 전문화된 작업자에 의해서 이루어져야만 한다.
장치의 제조 후에 발생할 수도 있는 이러한 작업은, 많은 인력과 시간을 필요로 하고, 또한 그에 따른 비용도 크게 증가하므로, 장치의 제조사에게는 큰 부담이 될 수 있다.
移植性
본 발명은, 장치에 서비스 기반으로 적용된 서비스 인터페이스 규칙에 대한 변경이 동적으로 이루어질 수 있게 하는 방법과 그 방법을 위한 장치를 제공하는 것에 일 목적이 있는 것이다.
본 발명의 다른 목적은, 장치에 서비스 기반으로 적용된 서비스 인터페이스 규칙에 대한 변경이 그 장치의 외부에서 가능하도록 하는 방법과 그 방법을 위한 장치를 제공하는 것이다.
본 발명의 또 다른 목적은, 서비스 인터페이스 규칙에 대한 변경의 적합성에 따라 이후의 항구적 적용이 선택적으로 이루어질 수 있게 하는 방법과 그 방법을 위한 장치를 제공하는 것이다.
본 발명의 또 다른 목적은, 서비스 인터페이스 규칙에 대한 변경이 잠정적으로 적용될 수 있도록 하는 방법과 그 방법을 위한 장치를 제공하는 것이다.
본 발명의 목적은, 상기 명시적으로 서술된 목적에 국한되는 것은 아니며, 본 발명에 대한 구체적이고 예시적인 하기의 설명에서 도출될 수 있는 효과를 달성하는 것을 그 목적에 당연히 포함한다.
본 발명의 일 측면에 따른, 네트워크에 연결된 다른 기기와의 정보 교환에 기반이 되는 서비스를 보완할 수 있는 기기는, 다른 기기와의 정보 교환에 기반이 되도록 기 적용된, 특정 서비스를 포함하는 적어도 하나의 서비스가 각기 정하고 있는 하나 이상의 액션(action)의 각각에 해당하는 메시지를 구성하여 상기 네트워크로 전송할 수 있도록 구성되고, 또한, 상기 적어도 하나의 서비스에 속하는 임의의 서비스의 액션에 대한 호출요청이 있으면, 그 호출요청된 액션에 해당하는 메시지를 구성하여 상기 네트워크로 전송되게 하며, 상기 네트워크로부터 수신되는 임의의 메시지에 대해서는 해당되는 액션 내용을 추출하도록 구성된 인터페이스부와, 상기 임의의 서비스의 액션을 선택하여 상기 인터페이스부에 호출요청하고, 상기 인터페이스부가 추출한 상기 액션 내용에 따른 동작을 수행하도록 구성된 처리부를 포함하여 구성된다. 그리고, 상기 특정 서비스는, 그 특정 서비스를 식별케 하는 제 1고유 정보와 입력 파라미터를 포함하도록 지정된 특정 액션을 하나 이상 포함하도록 정해져 있고, 상기 입력 파라미터는, 제 1서비스를 식별케 하는 제 2고유 정보와 상기 제 1서비스의 적어도 하나의 액션을 정의할 수 있는 사양정보를 포함하도록 정해져 있으며, 상기 처리부는, 상기 추출한 액션 내용이 상기 특정 서비스의 상기 특정 액션이면, 그 특정 액션에 포함된 상기 입력 파라미터로부터 추출한 상기 사양정보에 의해 정해지는, 상기 적어도 하나의 액션을 포함하는 상기 제 1서비스를, 상기 적어도 하나의 서비스와 동일하게 정보 교환의 기반으로 적용되게 한다.
본 발명에 따른 일 실시예에서는, 상기 사양정보에, 상기 제 1서비스의 상기 적어도 하나의 액션을 호출하게 되는 요구자로 지정하거나, 아니면 상기 제 1서비스의 상기 적어도 하나의 액션의 호출에 응답하게 되는 제공자로 지정하는 정보를 기록하기 위한 공여 항목이 더 포함된다. 본 실시예에서는, 상기 공여 항목의 정보가 제공자로 지정되어 있으면, 상기 처리부는, 상기 인터페이스부에 요청하여, 상기 제 1서비스가 상기 기기에서 제공되고 있음을 알리는 메시지가 상기 네트워크로 발송되게 한다.
본 발명에 따른 일 실시예에서는, 상기 사양정보가, 상기 적어도 하나의 액션의 임의의 한 액션에 포함되어야 하는 입력 파라미터로서, 또는 그 임의의 한 액션에 대한 응답에 포함되어야 하는 출력 파라미터로서 수송되는 값의 크기와 종류를 지정하는 특정 문자열을 포함하도록 정해져 있다.
본 발명에 따른 일 실시예에서는, 상기 특정 서비스가, 정보 교환의 기반으로 적용된 상기 제 1서비스를, 정보 교환의 기반에서 제거하도록 요청하는 액션을 적어도 더 포함하여 정해져 있을 수 있다.
본 발명에 따른 일 실시예에서는, 상기 특정 액션에는, 상기 제 1서비스가 정보 교환의 기반에서 제거되는 요건에 대한 정보가 더 포함될 수 있다. 본 실시예에서는, 상기 처리부가, 상기 요건이 충족되면, 상기 제 1서비스에 대한 호출이 상기 다른 기기에서 발생하지 않도록, 상기 제 1서비스가 제공되고 있음을 알리는 메시지의 상기 네트워크로의 발송이 중단되게 한다. 상기 요건의 예로서는, 지정된 기간의 경과, 상기 적어도 하나의 액션의 호출에 대해서, 정상적으로 수행할 수 없음을 알리는 응답의 발생, 또는 상기 적어도 하나의 액션의 각각에 대해 적어도 한번은 응답한 경우의 발생이 있을 수 있다.
본 발명에 따른 일 실시예에서는, 상기 처리부가, 상기 적어도 하나의 액션의 호출에 대해서, 정상적으로 수행할 수 없음을 알리는 응답을 한 경우에는, 상기 기기가 전원 오프 후 재기동될 때, 상기 제 1서비스가 서비스 기반으로 적용되지 않도록 정보를 설정할 수도 있다.
본 발명에 따른 일 실시예에서는, 상기 처리부가, 상기 특정 서비스에 대하여 제공자로 지정되어, 상기 특정 액션의 호출에 대해 응답하도록 구성되고, 상기 장치는, 상기 네트워크에 연결되어, 상기 적어도 하나의 서비스를 이용해 상기 기기와 정보 교환하도록 구성된 제 2기기를 더 포함하여 구성된다. 그리고, 상기 제 2기기는, 상기 특정 서비스에 대해 요구자로 지정되어, 상기 특정 액션을 호출하여 상기 기기에 인가되게 하도록 구성된다.
상기 제 2기기를 포함하는 실시예에서, 상기 제 2기기는, 상기 특정 액션을 호출할 때, 상기 제 1서비스에 대해, 상기 적어도 하나의 액션을 호출할 수 있도록 요구자로 지정하여, 자신의 정보 교환의 기반으로 적용되게 할 수 있다.
상기 제 2기기를 포함하는 실시예에서, 상기 제 2기기는, 외부의 특정 서버로부터, 상기 특정 액션의 호출에 필요한 정보를 포함하는 서비스 추가 요청이 이동 통신망을 통해 수신될 때, 그 서비스 추가 요청에 포함된 정보로부터 상기 특정 액션을 구성하여 호출할 수 있다. 이 경우, 상기 제 2기기는, 상기 서비스 추가 요청에 대해서, 자신이 호출한 상기 특정 액션에 대한 응답이 상기 기기로부터 수신될 때, 그 응답된 정보로부터 상기 서비스 추가 요청에 대한 응답을 구성하여 상기 특정 서버로 전송할 수도 있다. 또한, 상기 제 2기기에는, 적어도 상기 특정 액션을 포함하도록 지정된 제 2특정 서비스에 대해 제공자로 지정되어 정보 교환의 기반으로 기 적용되어 있고, 상기 서비스 추가 요청은, 상기 특정 서버가 호출하는, 상기 제 2특정 서비스의 상기 특정 액션에 의해 상기 특정 서버로부터 수신될 수도 있다. 여기서, 상기 제 2특정 서비스는, 서비스를 식별케 하는 정보에 있어서, 상기 특정 서비스와는 상이할 수 있다.
상기 제 2기기를 포함하는 실시예에서, 상기 제 2기기는, 상기 제 1서비스의 상기 적어도 하나의 액션을 호출하여 상기 기기에 인가시키고, 상기 기기가 상기 적어도 하나의 액션의 호출에 대해 응답하면, 그 응답된 정보를 상기 이동 통신망을 통해 상기 특정 서버에 제공할 수도 있다.
본 발명에 따른 다른 일 실시예에서는, 상기 장치가, 고유 정보와 상기 특정 액션을 하나 이상 포함하도록 정해져 있는 제 2특정 서비스에 대해 제공자로 지정되어 정보 교환의 기반으로 기 적용되어 있는 제 3기기를 더 포함하여 구성될 수 있다. 본 실시예에서는, 상기 제 2기기가, 상기 제 2특정 서비스에 대해 요구자로 지정되어, 상기 특정 액션을 호출하여 상기 제 3기기에 인가되게 하도록 더 구성된다. 그리고, 상기 특정 액션을 동일하게 포함하는 상기 특정 서비스와 상기 제 2특정 서비스는, 서비스를 식별케 하는 정보에 있어 서로 상이한 서비스이다.
상기 제 2기기와 제 3기기를 포함하는 실시예에서, 상기 제 2기기는, 제 2서비스의 사양정보를, 제공자로 지정하는 정보와 함께 상기 입력 파라미터에 포함하는, 상기 제 2특정 서비스의 상기 특정 액션을 호출하여 상기 제 3기기에 인가되게 한다. 다르게는, 상기 제 2기기가, 상기 제 1서비스의 사양정보를, 요구자로 지정하는 정보와 함께 상기 입력 파라미터에 포함하는, 상기 제 2특정 서비스의 상기 특정 액션을 호출하여 상기 제 3기기에 인가되게 할 수도 있다. 이 경우, 상기 제 2특정 서비스는, 정보 교환의 기반으로 적용된 상기 제 1서비스의 상기 적어도 하나의 액션 중에서 하나 이상을 지정하여 각각을 호출하라고 지시하는 시험 액션을 더 포함하여 정해지고, 상기 제 2기기는, 외부의 특정 서버로부터, 적용된 상기 제 1서비스에 대한 시험 시작을 요청하는 정보가 이동 통신망을 통해 수신되면, 그 정보에 근거하여 상기 시험 액션을 호출하여 상기 제 3기기에 인가할 수 있다.
본 발명에 따른 또 다른 일 실시예에서는, 상기 장치가, 상기 기기와 상기 다른 기기를 포함하는 복수의 기기들의 상기 적어도 하나의 서비스를 기반으로 하는 정보 교환 동작과 관련한 정보를 획득하여 저장하도록 구성된 제 4기기를 더 포함하여 구성된다. 그리고, 상기 제 4기기에는, 상기 적어도 하나의 서비스에 포함되는, 서비스 기반의 동작과 관련된 정보의 제공/조회를 위해 호출되는 제 2특정 서비스가 제공자로 지정되어 기반화되어 있고, 상기 복수의 기기들 각각에는, 상기 제 2특정 서비스가 요구자로 지정되어 기반화되어 있다. 이 경우, 상기 기기와 상기 제 3기기는, 상기 제 1서비스가 제공자와 요구자로서 각기 기반화되면, 상기 제 1서비스의 상기 적어도 하나의 액션에 대한 호출/응답과 관련된 정보를, 상기 제 2특정 서비스의 호출을 통해 상기 제 4기기에 제공한다. 또한, 상기 제 2기기에는, 상기 제 2특정 서비스가 요구자로 지정되어 기반화되어 있으며, 상기 제 2기기는, 상기 제 2특정 서비스의 호출을 통해, 상기 제 1서비스를 기반으로 이루어진 정보교환에 관한 정보를 상기 제 4기기에 요청하고, 상기 제 4기기가 그 호출에 대한 응답으로 제공하는 서비스 기반화 결과정보를, 이동 통신망을 통해 외부의 특정 서버에 제공한다.
본 발명에 따른 일 실시예에서는, 상기 처리부가, 상기 특정 서비스와 상기 적어도 하나의 서비스에 포함되는 제 2서비스의 각각에 대하여 제공자로 지정된 경우에, 상기 제 2서비스에 대해서는 서비스 제공사실이 주기적으로 상기 네트워크로 발송되도록 하지만, 상기 특정 서비스에 대해서는, 서비스 제공사실이 상기 네트워크로 발송되지 않게 할 수도 있다.
본 발명에 따른 일 실시예에서는, 상기 기기가, 상기 네트워크와는 데이터 전송방식이 상이한 제 2네트워크에 연결된 하나 이상의 기기들로부터 수신되는 데이터에 대해서, 상기 적어도 하나의 서비스에 기반하여 상기 네트워크로 제공하는 기기일 수 있다. 본 실시예에서는, 상기 입력 파라미터에 포함되는 상기 사양정보의 상기 적어도 하나의 액션의 각각에, 해당 액션에 연계된 하나 또는 그 이상의 신호 또는 데이터를, 상기 제 2네트워크 상에서 고유하게 특정하는 정보를 위한 항목이 할당된다.
본 발명의 다른 일 측면에 따른, 네트워크에 연결된 제 1기기와 제 2기기 간에 정보를 제공/획득하는 방법은, 상기 제 1기기와 제 2기기의 각각은, 다른 기기와의 정보 교환에 기반이 되는 특정 서비스를 포함하는 적어도 하나의 서비스가 기 적용되어 있고, 상기 특정 서비스는, 그 특정 서비스를 식별케 하는 제 1고유 정보와 입력 파라미터를 포함하도록 지정된 특정 액션을 하나 이상 포함하도록 정해져 있으며, 상기 제 1기기는, 상기 특정 서비스에 대한 호출에 응답하게 되는 제공자로, 상기 제 2기기는, 상기 특정 서비스에 대해 호출하게 되는 요구자로 지정되어 있는 상태에서 이루어지는, 상기 제 2기기가, 제 1서비스를 식별케 하는 제 2고유 정보와 상기 제 1서비스의 적어도 하나의 액션을 정의할 수 있는 사양정보를 상기 입력 파라미터에 포함하는, 상기 특정 서비스의 상기 특정 액션을 호출하여 상기 제 1기기에 인가되게 하는 단계와, 상기 제 1기기가, 상기 호출된 특정 액션의 상기 입력 파라미터로부터 추출한 상기 사양정보에 의해 정해지는, 상기 적어도 하나의 액션을 포함하는 상기 제 1서비스를, 상기 적어도 하나의 서비스와 동일하게 정보 교환의 기반으로 적용되게 하는 단계를 포함한다.
전술한 장치와 방법, 그리고 실시예들에서, 상기 특정 액션에 포함되는 상기 제 2고유 정보 내의 상기 제 1서비스를 식별케 하는 정보는, 상기 적어도 하나의 서비스의 각각에 고유 식별을 위해 부여된 식별 정보의 어느 것과도 일치하지 않는 정보이다.
본 발명의 또 다른 일 측면에 따른, 네트워크에 연결되어 지정된 서비스를 기반으로 다른 기기와 정보 교환을 할 수 있는 기기는, 상기 다른 기기와의 정보 교환에 기반이 되는 적어도 하나의 서비스가 각기 정하고 있는 하나 이상의 액션의 각각에 해당하는 메시지를 구성하여 상기 네트워크로 전송할 수 있도록 구성되고, 또한, 상기 적어도 하나의 서비스에 속하는 임의의 서비스의 액션에 대한 호출요청이 있으면, 그 호출요청된 액션에 해당하는 메시지를 구성하여 상기 네트워크로 전송되게 하며, 상기 네트워크로부터 수신되는 임의의 메시지에 대해서는 해당되는 액션 내용을 추출하도록 구성된 인터페이스부와, 상기 임의의 서비스의 액션을 선택하여 상기 인터페이스부에 호출요청하고, 상기 인터페이스부가 추출한 상기 액션 내용에 따른 동작을 수행하도록 구성된 제 1처리부를 포함하여 구성될 수 있다. 그리고, 상기 제 1처리부는, 저장되어 있는 데이터 파일에서 상기 적어도 하나의 서비스에 대해 정하고 있는 사양 정보를 읽어서, 상기 적어도 하나의 서비스의 각각을 정보 교환의 기반으로 적용되게 하며, 상기 사양 정보에, 다른 기기로부터의 호출에 대해 응답하도록 현재 제공자로 지정된 제 1서비스가 없으면, 그 제 1서비스에 대해서는, 주기적으로 발송되고 있던 서비스 제공사실이 상기 네트워크로 발송되지 않게 하고, 현재 정보 교환의 기반으로 적용되지 않은 제 2서비스에 대해 제공자로 지정되어 있으면, 그 제 2서비스에 대해서 서비스 제공사실이 주기적으로 상기 네트워크로 발송되게 한다.
본 발명에 따른 일 실시예에서는, 상기 데이터 파일이, 상기 네트워크를 통해 타 기기로부터 획득하여 상기 기기 내의 기록 공간에 저장된 것일 수 있다. 상기 타 기기 또한, 상기 데이터 파일을, 이동 통산망을 통해 특정의 외부 서버로부터 획득하여 저장하고 있을 수 있다. 본 실시예에서는, 상기 제 1처리부가, 상기 네트워크를 통해 상기 타 기기로부터 획득하는 데이터 파일이, 상기 기기에 적용되도록 지정하고 있는 고유 정보를 포함하고 있을 때, 상기 기록 공간에 저장하여 그 데이터 파일의 사양 정보에 근거하여 서비스를 정보 교환의 기반으로 적용되게 한다.
본 발명에 따른 또 다른 일 측면에 따른, 네트워크에 연결된 기기들 간에 정보를 제공/획득하기 위한 방법은, 기록된 데이터 파일에서 적어도 하나의 서비스에 대해 정하고 있는 사양 정보를 읽어서, 그 적어도 하나의 서비스의 각각을 정보 교환의 기반으로 적용되게 하고, 상기 적어도 하나의 서비스에서, 다른 기기로부터의 호출에 대해 응답하도록 제공자로 지정된 서비스에 대해서는 해당 서비스의 제공사실이 주기적으로 상기 네트워크로 발송되게 하는 1단계와, 상기 데이터 파일이 갱신되었는지를 확인하는 2단계와, 상기 데이터 파일이 갱신된 경우, 그 갱신된 데이터 파일의 사양 정보에서 정하고 있는 하나 이상의 서비스와, 상기 1단계에서 정보 교환의 기반으로 적용된 상기 적어도 하나의 서비스 간의 상이한 서비스를 확인하는 3단계와, 상기 적어도 하나의 서비스 중에서 제공자로 지정된 제 1서비스가 상기 하나 이상의 서비스에 속하지 않으면, 상기 제 1서비스에 대해서는, 주기적으로 발송되고 있던 서비스 제공사실이 상기 네트워크로 더 이상 발송되지 않게 하고, 상기 하나 이상의 서비스 중에서 제공자로 지정된 제 2서비스가 상기 적어도 하나의 서비스에 속하지 않으면, 상기 제 2서비스에 대해서 서비스 제공사실이 주기적으로 상기 네트워크로 발송되게 하는 4단계를 포함하여 이루어진다.
전술한 본 발명 또는, 하기에서 첨부된 도면과 함께 상세히 설명되는 본 발명의 적어도 일 실시예에 따른, 네트워크에 연결된 기기들 간의 정보 교환의 기반을 제공하는 서비스를 보완하는 방법은, 전자제어 기기들에 이식된 응용 프로그램들이 서로 정보 교환할 때 기반하도록 미리 적용된 서비스 외의 필요한 서비스를, 그 기기들이 장착된 장치가 개인적으로 또는 상업적으로 운용 중일 때도 동적으로 추가하여 기존 서비스를 보완하거나 그 추가된 서비스를 변경할 수 있게 한다.
정보 교환에 대해 그 기반화를 제공하는 서비스는, 장치에서 발생되는 임의의 신호나 정보, 또는 데이터 등과 같은 상태 정보에 연관시킬 수 있기 때문에, 새로운 서비스를 해당 장치의 기기들에 기반화시키게 되면, 최초에 의도하지 못했던 장치의 상태 변수를 확인할 수 있게 된다. 이를 통해, 그 장치에서 발생한 예상치 못한 문제나 장애, 성능 저하 등의 원인을 보다 용이하게 파악할 수 있게 되며, 그 장치의 운용 환경이나 조건 등이 변하는 경우에, 장치의 어떤 부품들이 어느 정도 영향을 받는지도 알 수 있게 되므로, 새로이 필요하게 되는 기능이나 편의 사양 등의 개발에 소요되는 시험 시간도 줄일 수 있다.
또한, 본 발명에 따른 일 실시예에서는, 새로이 추가하는 서비스가 일시적으로 적용되도록 할 수 있으므로, 기기들 간의 정보 교환에 부하가 걸리는 서비스나 보안성에 취약할 수도 있는 서비스의 경우에도, 극히 제한적인 시간 동안만 적용되게 함으로써, 그 추가 서비스로 인한 문제발생 가능성없이,원하는 상태 변수에 대한 정보를 획득할 수 있게 한다.
그리고, 이와 같은, 임의의 장치로부터 원하는 상태 정보를 얻기 위한 새로운 서비스의 추가나 그 변경을, 통신을 통해 그 장치의 외부에서 할 수 있으므로, 장치가 있어야 하는 장소에 아무런 제약이 없다. 이는, 장치로부터 원하는 정보를 얻는데 있어서 무한한 편의성을 제공한다.
본 발명의 일 실시예에 따라, 장치에 장착되는 주요 기기들에 모두 서비스의 변경을 가능하게 하는 서비스를 미리 구현시키게 되면, 향후에 어떠한 상태 변수에 대해 그 확인이 필요해 지더라도, 새로운 서비스의 추가를 통해 이를 충족시킬 수 있다. 본 실시예는, 장치의 성능이나 기능 등에 있을 수도 있는 불완전성에 대한 완전한 대비책이 될 수 있다.
도 1은, 전자제어 기기에서 동작하는 응용 프로그램이, 네트워크를 통해 다른 동종의 기기 상의 응용 프로그램과 필요한 정보를 서로 주고받을 때 준수해야 하는 정보의 구성형식과 이용 요건을 정하고 있는 규칙을 예시한 것이고,
도 2는, 본 발명의 일 실시예에 따른, 네트워크에 연결된 기기들 간의 정보 교환 시에 기반하는 서비스를 동적으로 변경하기 위한 방법이 적용된 기기의 구성에 대하여, 그 방법을 구현하는 프로그램 모듈을 중심으로 도시한 일 예이고,
도 3은, 본 발명의 다른 일 실시예에 따른, 기기들이 서비스 기반으로 정보를 교환하는 제 1네트워크와는 상이한 제 2네트워크에도 연결되어, 그 제 2네트워크에 연결된 전자제어 기기들이 처리하는 상태 정보를 제 1네트워크를 통한 정보 전송에 맞도록 적응시키는 기기에서 동작하는 프로그램 모듈에 대해서, 도 2의 실시예에서의 구성과 차별적인 부분만을 도시한 것이고,
도 4는, 도 3에 예시된 프로그램 모듈이 생성될 때 적용되는 서비스 인터페이스 규칙의 간략한 예이고,
도 5는, 본 발명의 일 실시예에 따른, 기기들 간의 정보 교환의 기반이 되는 서비스에 대한 동적인 변경을 가능하게 하는 서비스를 포함하는 서비스 인터페이스 규칙의 일 예를 도시한 것이고,
도 6은, 도 5의 실시예에 따른, 기존에 적용된 서비스의 변경을 위한 서비스의 호출에 수반되는 파라미터에 대한 인터페이스 규칙을 구체적으로 예시한 것이고,
도 7은, 본 발명에 따른 서비스 변경을 위한 서비스가 적용된, 네트워크를 통해 서로 연결되어 서비스 기반으로 동작하는 한 쌍의 기기와, 그들 간에 이루어지는 서비스 변경의 호출/응답을 예시한 도면이고,
도 8a와 8b는, 도 6과 5의 각 실시예에 따른, 서비스 변경을 위한 서비스의 호출에 수반되는 파라미터에 대한 구성과, 그 서비스 호출에 해당하는 메시지에 대한 구성을 예시한 것이고,
도 9는, 본 발명의 일 실시예에 따른, 기존에 적용된 서비스에 새로운 서비스를 추가함에 있어서, 그 추가를 다양한 유형으로 지정할 수 있도록 정하고 있는, 서비스 호출에 수반되는 파라미터의 규칙에 대한 일 예이고,
도 10은, 본 발명의 일 실시예에 따른, 기존 서비스에 대한 변경을 위한 서비스 호출을 외부의 서버로부터 수신하여 중계할 수 있는 프로그램 모듈과, 그 프로그램 모듈이 이식된 기기에 대한 구성을 보여주는 블록도이고,
도 11은, 본 발명의 일 실시예에 따른, 외부 서버에 의해, 임의 장치 내의 기기들 간의 정보 교환의 기반이 되는 서비스가 변경되고 또한 이용되는 과정을 예시적으로 보여주는 신호 흐름도이고,
도 12는, 본 발명의 다른 일 실시예에 따른, 서비스의 변경을 가능하게 하는 서비스가 각기 기반화된 복수의 기기들이 연결된 네트워크의 구성에 대하여, 서비스의 변경을 위한 서비스를 개념화하여 도시한 것이고,
도 13은, 도 12의 실시예에 따라 구성된 네트워크화된 기기들에 대해 기반화되는 서비스들의 예를, 서비스를 중심으로 하여 연관된 액션들과 함께 도시한 것이고,
도 14는, 본 발명의 일 실시예에 따른, 추가로 적용한 서비스에 대한 시험을 진행시키도록 정의된 메소드의 인터페이스 규칙을 예시한 것이다.
이하에서는, 본 발명에 따른 다양한 실시예들에 대해 첨부된 도면을 참조하여 상세히 설명한다.
이하의 본 발명에 따른 실시예들의 설명과 첨부된 도면에 있어서, 부기된 동일 번호는 특별한 사정이 없는 한 동일한 구성요소를 지칭한다. 물론, 설명의 편의와 이해에의 도움을 위해, 필요에 따라서는 동일한 구성요소에 대해서도 서로 다른 번호로 부기될 수도 있다.
도 2는, 본 발명의 일 실시예에 따른, 네트워크에 연결된 기기들 간의 정보 교환 시에 기반하는 서비스를 기기들의 동작 중에 동적으로 변경하기 위한 방법이 적용된 기기의 구성을, 그 기기 내에서 동작하는 특수 기능의 프로그램 모듈을 중심으로 예시한 것이다.
도면에 예시된 기기(20)에는, 네트워크에 연결된 기기들 간에 서비스 기반의 통신이 가능하도록 하는 특별한 기능의 미들웨어(middleware)인 서비스 플랫폼 모듈( Service Platform Module )(300)과, 이 서비스 플랫폼 모듈이 제공하는 서비스 기반의 메시지 송수신을 적어도 부분적으로 이용하여, 의도된 특정의 기능들을 해당 기기(20)에서 수행하도록 그 기기에 이식됨으로써 내장되는(embedded) 실행 코드들로 이루어진 프로그램 모듈(200)( 본 명세서에서는, 이러한 프로그램 모듈을 '특장형 프로그램'이라 칭한다. )이 함께 구비된다.
상기 특장형 프로그램(200)은, 그 기기(20)가 전담하는 상태 변수들에 대하여, 서비스 기반, 즉, 도 1에 예시된 바와 같은 서비스 인터페이스 규칙에 준하여 제공할 수 있도록 구성되고, 의도된 기능의 수행에 필요하면, 다른 기기가 전담하는 상태 변수들에 대한 값을 통지받기 위해, 상기 서비스 플랫폼 모듈(300)에 의해 서비스 기반의 통신에 적용하도록 지정된 통신 프로토콜, 예를 들어, SOME/IP( Scalable service-Oriented MiddlewarE over IP )에 따라 그 다른 기기에 이벤트 그룹을 기반으로 이벤트 가입을 하거나, 적용된 서비스 인터페이스 규칙에 따른 서비스 호출을 위한 메시지를 구성하여, 그 메시지를 네트워크로 전송하는 동작 등을 수행한다.
도 2의 특장형 프로그램(200)은, 서비스 기반의 정보 조회와 설정( 서비스 기반의 정보 조회 또는 설정을 위한 타 기기에의 요청에 대하여, 본 명세서에서는, 해당 서비스에 대한 '호출'이라는 표현을 사용한다. 즉, 본 명세서에서 서비스와 관련하여 사용하는 '호출'의 용어는, 적용된 서비스 기반의 인터페이스를 이용하여 임의의 서비스 기반의 메시지를 생성하여 타 기기에 인가하는 일련의 과정을 일괄하여 지칭하는 것이다. ), 제공 서비스의 통지, 그리고 서비스 기반의 이벤트 가입요청을 다른 기기에 할 수 있도록, 호출, 통지 및 요청에 대하여, 정해진 서비스 인터페이스 구문법(syntax)에 따라 수용하여 해당되는 서비스 기반의 메시지로 구성하고, 또한 타 기기로부터 수신된 서비스 기반의 메시지에 대해서는 그 역으로 처리하도록 구성된 서비스 인터페이스부(202)와, 장착된 기기(20) 내의, 또는 그 기기(20)와 연결된 다른 부품 등의 상태를 확인하거나 작동케 하는데 필요한 서비스를 선택하고, 상기 서비스 인터페이스부(202)가 정하고 있는 호출 요건에 따라 그 선택한 서비스의 필요 정보를 전달하면서 상기 서비스 인터페이스부(202)를 호출함으로써, 해당되는 서비스에 대한 호출이 네트워크로 발송되게 하거나 또는, 기 설정된 인터페이스 방식에 따라, 상기 서비스 인터페이스부(202)가 수신된 메시지를 처리하여 전달하는 외부로부터의 서비스 기반의 호출 내용( 해당되는 서비스와 메소드, 필드 또는 이벤트 등 )에 따른 동작을 수행하고 또한 그 호출에 응답하도록 구성된 기능 처리부(201)와, 상기 기능 처리부(201)의 호출에 따라 상기 서비스 인터페이스부(202)가 구성하는 메시지에 대해서, 미들웨어인 상기 서비스 플랫폼 모듈(300)이 채택한 통신방식과 전송에 적합한 데이터 형식으로 재구성하여 상기 서비스 플랫폼 모듈(300)로 전달하고, 또한 그 역으로 상기 서비스 플랫폼 모듈(300)이 네트워크를 통해 수신하여 전달하는 일련의 데이터들을, 상기 서비스 인터페이스부(202)가 적용된 서비스 인터페이스 형식에 맞게 재구성할 수 있도록 서로 간에 정해진 포맷으로 매핑(mapping)하여 상기 서비스 인터페이스부(202)에 전달하도록 구성된 데이터 제구성부(203)와, 운영시스템이 제공하는 다양한 인터페이스용 실행 루틴(routine)들을 통해, 해당 기기(20)가 전담하는 상태 변수들에 대한 값을 검출, 획득하거나 그들에 대해 특정 값을 설정할 수 있도록 구성된 로컬 정보 처리부인 로컬 상태 핸들러(204)를 포함하여 구성된다.
또한, 상기 기능 처리부(201)에는 서비스 프로파일(210)이 추가로 구비되며, 실시예에 따라서는 상태 데이터베이스(220)도 추가로 구비될 수 있다.
상기 서비스 프로파일(210)은, 장치의 상태 변수들에 대해 특성 또는 부품 등을 기준으로 분류하여 연관시킨 모든 서비스들 중에서, 장착된 기기(20)가 전담하는 상태 변수들이 연관되어 있는 서비스, 즉 타 기기에 제공( 본 명세서에서의 서비스 '제공'은, 그 서비스에 대한 호출에 응답하는 것을 의미한다. )할 수 있는 서비스와, 타 기기가 전담하는 상태 변수들에서 어떤 변수들, 또는 어떤 서비스가 필요한지를 나타내는 정보이며, 이 서비스 프로파일(210)은, 상기 기능 처리부(201)가 읽어서 참조할 수 있는 별도의 파일 형식으로 상기 기기(20)의 메모리에 구비될 수도 있고, 상기 기능 처리부(201)에 하드 코딩(hard-coding)될 수도 있다.
본 명세서에는, 서비스 프로파일에서 임의의 서비스에 대해서 그 서비스를 제공하도록 구현된 기기, 또는 해당 기기에서 실행되어 그 서비스의 호출에 대해 응답하는 기능을 포함하는 특장형 프로그램을 '제공자'라 칭하고, 그 임의의 서비스에 연관된 상태 변수의 정보가 필요하여 제공자에게 해당 서비스를 호출하는 기기( 또는 특장형 프로그램 )를 '요구자'라 칭한다.
상기 상태 데이터베이스(220)는, 상기 기기(20)가 전담하는 상태 변수들에 대해서, 연관된 서비스에 대한 정보와 함께 조직화되어 있는 구조화된 정보로서, 전담하는 상태 변수들에 대하여 현재 값이, 구비된 입출력 인터페이스 또는 연결된 네트워크를 통해 획득될 때마다, 또는 기기의 내부에서 발생되어 획득될 때마다 상기 로컬 상태 핸들러(204)에 의해 갱신 기록된다. 이 상태 데이터베이스(220)는, 상기 기능 처리부(201)에 의해서도 액세스(access)될 수 있다.
상기 특장형 프로그램(200)은, 적용되는 기기에 따라서는, 그 구성요소가 도 2에 예시된 바와 달라질 수도 있다. 도 3은, 이와 같은 구성의 한 실시예에 대해서, 도 2의 구성과 비교하여 차별적인 부분만을 도시한 것이다.
도 3에 예시된 구성의 특장형 프로그램(200)은, 도시된 바와 같이, 서비스 어댑터부(205)를 포함하여 구성된다. 상기 서비스 어댑터부(205)는, 운영시스템(OS)을 통해, 상기 기기(20')에 구비된 서브망(sub-network) 인터페이스부를 구동하거나, 그를 통해, 지정된 통신방식, 예를 들어 CAN 방식에 따라 서브 네트워크(2)에 연결되어 있는 통상의 전자제어 기기들(3i, i=1,..,M)에서 처리되거나 제어되는 물리량 등에 대한 데이터를 송수신할 수 있다.
상기 통상의 전자제어 기기들(3i, i=1,..,M)은, 적용된 장치에서 발생되는 수많은 종류의 신호나 정보를 처리하는 기기로서, 차량의 경우라면, 엔진, 기어, 조향장치, 배기장치, 각종의 편의장치 등에 부속되어, 해당 장치에서 발생하는 다양한 신호나 정보를, 연결된 서브 네트워크(2)의 특화된 방식에 따라 서로 통신하면서 필요한 처리( 감지, 검출, 제어 등 )를 하게 되는데, 도 3에 예시된 바와 같이 구성된 기기(20')에서 실행되는 상기 서비스 어댑터부(205)는, 그 특화된 서브 네트워크(2)로부터, 그와 같은 다양한 종류의 신호들에 대한 데이터를 취득하여, 주 네트워크(1)에 연결된 다른 기기에 서비스 기반으로 제공하는 기능을 주요 기능으로 한다.
보다 구체적으로는, 상기 서비스 어댑터부(205)는, 상기 특장형 프로그램(200) 내에서, 상기 서비스 인터페이스부(202)가 제공하는 실행 루틴들에서, 필요한 루틴을 인터페이스 형식에 맞도록 호출함으로써, 자신이 취득하는 다양한 신호나 데이터인 상태 정보를, 이더넷(Ethernet)과 같은 데이터 전송방식의 네트워크(1)에 연결된 타 기기에게 서비스 기반으로 제공한다. 물론, 타 기기로부터의 서비스 호출도 상기 네트워크에 연결된 기기들 간의 정보 제공/획득 시에 기반하는 서비스를 변경하기 위한 방법을 통해 통지받거나 또는 그 호출에 수반되는 파라미터(parameter)와 함께 전달받게 된다. 상기 서비스 어댑터부(205)는, 필요한 경우, 상기 기능 처리부(201)와도 정보를 교환할 수 있으며, 실시예에 따라서는, 자신이 취득하는 신호나 정보를, 상기 로컬 상태 핸들러(204)를 통해, 또는 직접 액세스하여, 상기 상태 데이터베이스(220)에 반영할 수도 있다.
전술한 바와 같이, 통상의 전자제어 기기들(3i, i=1,..,M)이 생성하는 많은 종류의 신호나 데이터의 상태 정보를, 서비스 기반으로 제공하기 위한 상기 서비스 어댑터부(205)와, 그 상태 정보를 서비스 기반으로 획득할 필요가 있는 기기의 특장형 프로그램( 또는, 적어도 그 프로그램 내의 기능 처리부 )은, 그 상태 변수를 서비스에 연관시키고, 또한 그에 대한 인터페이스를 정의한, 예를 들어 도 1에 예시된 바와 같은 방식으로, 그 상태 변수에 대해서 서비스로 정의한, 도 4와 같이 정해진 서비스 인터페이스 규칙(40)으로부터 만들어진 인터페이스 코드 모듈인 상기 서비스 인터페이스부(202) 및 상기 데이터 배열부(203)와 오류없이 링크되어 빌드된 실행 개체이어야 한다.
도 4에 예시된 서비스 인터페이스 규칙(40)은, 차량의 경우에 통상의 전자제어 기기들이, 대체적으로 CAN 통신 방식에 기반하여 제공하는 차량의 주행정보에 대해서 명칭을 'VehicleTravelInfo'로, 서비스 식별자로서 '0x0442'를 부여하여 하나의 서비스(41)로 정의하고 있다. 그리고, 그 서비스에 속하는 이벤트 세트에는, 명칭이 'OdometerPeriodic'이고, 식별자는 '0x9001'이며, 속하는 이벤트 그룹은 '0x01'인 이벤트 항목을 정의하고 있으며(42), 특별히, 그 정의된 이벤트를 통해 통지되는 상태 정보에 대해서, 서비스 기반의 통신이 이루어지는 네트워크가 아닌, CAN과 같은 기존의 통신방식에서 식별키 위해 사용하던 식별정보(42a)도 포함하여 해당 이벤트 항목이 정의되어 있다. 이 식별정보는, 하나의 신호에 대해 할당된 것일 수도 있고, 일련의 신호들의 그룹에 대해 할당된 것일 수도 있다.
도 4의 서비스 인터페이스 규칙(40)의 예는, 단순한 예로서, 이벤트 세트에 대해서만 하나의 이벤트 항목이 제시된 것일 뿐이고, CAN과 같은 기존 통신방식에 의해 획득되는 상태 정보를 서비스 기반으로 제공/획득할 수 있게 하기 위한 서비스 인터페이스 규칙도, 하나의 서비스에 연관시키고자 하는 상태 변수들에 대하여, 복수의 이벤트 항목이 정의된 이벤트 세트, 필드 세트 그리고 메소드 세트가, 도 1을 참조로 설명한 바와 같은 방식으로 포함되어 정의될 수 있다.
도 4에 예시된 서비스 인터페이스 규칙(40)에서, 명칭('name')과 신호명('signal')으로 할당된 문구들('VehicleTravelInfo', 'OdometerPeriodic', 'CF_Clu_Odometer')은, 모두 서비스 기반의 실행 개체를 개발하는 개발자가, 코딩 시에 참조할 수 있도록 제시된 것일 뿐이고, 이들은, 상기 예시된 서비스 인터페이스 규칙(40)을 포함하는 서비스 인터페이스 규칙에 의해 생성된 인터페이스 코드 모듈과 함께 빌드된 실행 개체에서는 사용되지 않는 텍스트 정보이다. 실시예에 따라서는, 코딩 시에, 상기 서비스 인터페이스 규칙(40)에 제시된 문구들이 사용될 수도 있지만, 이런 경우에도, 컴파일(compile)될 때, 해당 문구에 대응하는 특정 값으로 변환되거나, 기 정해진 포맷에서 대응되는 특정 위치를 지정하는 정보, 또는 특정 값들이 지정된 포맷에 맞게 채워진 데이터 구조로 매핑될 수 있다.
도 4에 예시된 서비스 인터페이스 규칙(40)은 이벤트 항목에 대한 정보와 그 이벤트 항목에 연관된 신호의 정보에 대해서 서비스로 정의하고 있기 때문에, 상기 서비스 인터페이스 규칙(40)을 적어도 포함하는 서비스 인터페이스 규칙에 의해 만들어진 인터페이스 코드 모듈과 적어도 상기 기능 처리부(201)가 링크되어 빌드된 실행 개체인 특장형 프로그램들 상호 간에는, 예시된 적산거리 정보에 대해서, 이벤트를 통해서 해당 서비스(42)의 제공자로부터 요구자에게 서비스 기반으로 제공될 수 있다. 이벤트를 통한 서비스 기반의 제공이 있기 전에, 상기 서비스(42)의 제공자가 네트워크 상에서 식별자 '0x0442'인 서비스의 제공을 알리는 제공서비스(Offer Service) 안내 메시지를 방송하고, 요구자는, 그 안내 메시지로부터 자신이 필요로 하는 정보, 즉 적산거리 정보가 연관된 서비스의 제공자가 누구인지를 파악하여, 그 제공자에게 '0x01'의 이벤트 그룹(42b)에의 가입을 요청하는 과정이 선행된다.
제공자가 네트워크로 방송하는 상기 제공서비스 안내 메시지는, 상기 서비스 플랫폼 모듈(300)에 의해서 기기들이 연결된 네트워크(1)로 주기적으로 전송되며, 이 주기적인 전송 동작은, 상기 특장형 프로그램(200)이, 보다 구체적인 예로는, 도 2의 실시예의 구성에서는 기능 처리부(201)가, 도 3의 실시예의 구성에서는 상기 서비스 어댑터부(205)가, 해당 서비스의 시작을 상기 서비스 인터페이스부(202)를 통해 상기 서비스 플랫폼 모듈(300)에 요청함에 따라 시작된다. 다른 기기로부터의 해당 서비스에 대한 가입 요청도 마찬가지로 이루어진다. 즉, 타 기기의 특장형 프로그램, 보다 구체적인 예로는 기능 처리부가 동 기기의 서비스 플랫폼 모듈에 가입을 요청함으로써, 그 서비스 플랫폼 모듈이 이벤트 그룹으로의 가입 메시지를 전송하게 된다.
이후에, 제공자가, 이벤트에 연관된 상태 정보를 얻게 되면, 예를 들어, 도 3의 실시예의 구성에서, CAN과 같은 데이터 전송방식의 서브 네트워크(2)로부터 적산거리 정보를 얻게 되면, 그 적산거리 정보를, 도 4에 예시된 규칙에 따라 4바이트(uint32)에 패킹(packing)한 출력 파라미터를 갖는, 식별자 '0x9001'의 이벤트 메시지를, '0x01'의 이벤트 그룹에 가입한 요구자에게 전송함으로써, 요구자가 필요로 하는 상태 정보가 서비스 기반의 이벤트로서 제공/획득된다.
지금까지 구체적으로 설명한 바와 같이, 도 2의 특장형 프로그램(200), 그리고 상기 서비스 어댑터부(205)는, 도 4에 예시된 서비스 인터페이스 규칙(40)을 적어도 포함하는 서비스 인터페이스 규칙으로부터 생성된 인터페이스 코드 모듈과 함께 빌드되어야, 도 4에 예시된 바와 같은 형식으로 서비스에 연관된 상태 정보를, 상기 서비스 어댑터부(205)가 또는 상기 기능 처리부(201)가 그 인터페이스 코드 모듈에 해당하는 실행 루틴을 요구되는 형식에 맞게 호출함으로써, 요구자에게 제공하거나 또는 제공자로부터 획득할 수 있게 된다.
그렇기 때문에, 서비스 기반이 아닌 기존의 통신방식에 따라 획득, 조회 또는 제어되는 상태 변수를 서비스 기반으로 제공/요구할 수 있게 하기 위한( 이하, 이를 '서비스 기반화'라 한다. ), 도 4에 예시된 바와 같은 서비스 어댑터부(205)와 함께 빌드될 인터페이스 코드 모듈을, 향후 이용할 가능성이 있는 상태 변수 모두를 예상하여 완전하게 정의한 서비스 인터페이스 규칙으로부터 생성하여야, 상기 서비스 어댑터부(205)도, 향후의 변화된 상황에 의해 필요해진 서비스 호출에 응답하여 상태 정보를 제공할 수 있다. 장치에서 발생하는 모든 상태 변수에 대해 서비스로 정의하면 이 요구사항은 충족될 수 있다. 하지만, 모든 상태 변수를 서비스 기반화시키는 것은, 장치의 개발과 시간에 불필요한 비용을 발생시킬 수 있고, 인터페이스 코드 모듈 또한 용량이 커지게 되어 기기의 저장 공간을 불필요하게 낭비할 수도 있으므로, 바람직한 방안이 되지 않는다. 따라서, 향후 필요해질 가능성에 근거하여 서비스 기반화시킬 상태 변수를 한정할 수 밖에 없고, 실제 많은 장치들이 운용되는 상황에서는 그 예측과는 달라질 수 있으므로, 향후에 필요해진 상태 변수가 서비스 기반화되어 있지 않은 경우가 발생할 수도 있다.
서비스 기반화하지 못한 상태 변수의 발생 가능성은, 서비스 기반이 아닌 통신방식에 따라 획득되는 상태 정보를 서비스 기반화하는 상기 서비스 어댑터부(205)( 또는 서비스 어댑터부(205)를 포함하여 실행되는 특장형 프로그램 )의 경우에만 국한되는 것은 아니다. 네트워크에 연결된 기기들이 각기 전담하는 정보에 대해 서비스 기반으로 처리하고 있는 특장형 프로그램(200)의 경우에도 마찬가지이다.
따라서, 본 발명에 따른 일 실시예에서는, 서비스 인터페이스 규칙의 확정 시에 그 필요성을 예상치 못한 상태 변수가, 인터페이스 코드 모듈과 재빌드하여 다시 완성한 특장형 프로그램을 해당 기기에 재이식하는 과정을 거치지 않고, 즉각적으로 서비스 기반으로 이용될 수 있게 하는 새로운 서비스를 채택하여 서비스 인터페이스 규칙에 적용한다. 도 5는, 본 실시예에 따라, 장치의 기기들에 적용되어 있는 서비스 세트에 서비스를 추가하거나, 추가된 서비스를 갱신하거나 또는 삭제하는 등의, 적용되어 기반화된 서비스 세트에 대한 변경을 지원하는 서비스(500)( 이하, '서비스 편집 서비스'라 칭한다. )를, 장치에서 발생되는 상태 정보에 대해 정의한 서비스들(40)에 부가적으로 정의한 서비스 인터페이스 규칙(50)의 일 예를 도시한 것이다.
이하의 설명에서는, 전술한 특장형 프로그램(200)( 또는 적어도 기능 처리부(201) )이, 도 5에 예시된 바와 같이, 장치의 다양한 상태 변수들의 서비스 기반화를 위해 정의한 서비스들(40)과 함께 정의된 서비스 편집 서비스(500)를 포함하는 서비스 인터페이스 규칙(50)으로부터 생성된 인터페이스 코드 모듈과 함께 빌드됨으로써, 서비스 편집 서비스에 대한 처리, 즉 서비스 편집 서비스의 제공, 호출 및 응답을 수행할 수 있고, 또한 호출에 부응하는 부수적 동작( 예를 들어, 구비된 서비스 프로파일에 대한 변경 등 )도 수행할 수 있는 것으로 가정한다.
또한, 기기에 구비된 특장형 프로그램이 상기 서비스 어댑터부(205)를 포함하여 구성된 경우에는, 그 서비스 어댑터부(205)도 마찬가지로, 상기 서비스 편집 서비스(500)를 포함하는 서비스 인터페이스 규칙(50)에 의해 생성된 인터페이스 코드 모듈과 함께 빌드되어, 서비스 편집 서비스에 대한 처리를 할 수 있는 것으로 가정한다.
실시예에 따라서는, 각 특장형 프로그램 또는 상기 서비스 어댑터부(205)가, 단지 상기 서비스 편집 서비스(500)만이 정의된 서비스 인터페이스 규칙에 의해 생성된 인터페이스 코드 모듈과 함께 빌드된 실행 개체에 의한 것으로 가정될 수도 있다. 본 실시예에서는, 상태 변수에 대한 조회나 설정을 가능케 하는 서비스들은 모두, 이하에서 설명하는 방법에 따라, 서비스 편집 서비스의 호출을 통해, 기기들 간의 정보 교환에 기반으로 적용되게 한다.
그리고, 네트워크에 연결된 각 기기에서 실행되는 상기 특장형 프로그램(200) 내에서, 상기 기능 처리부(201)가 서비스 편집 서비스를 처리하는 것을 전제로 본 발명에 대해 설명하지만, 그 특장형 프로그램 내에 상기 서비스 어댑터부(205)가 포함되어 있는 경우에는, 그 서비스 어댑터부(205)가 서비스 편집 서비스에 대한 처리를 단독으로 수행하거나, 또는 해당 서비스의 호출 내용( 즉, 그 호출에 수반되어 전달되는 입력 파라미터에 실린 정보 )에 따라 기능 처리부(201)와 분배하여 수행할 수도 있다. 또한, 실시예에 따라서는, 특정 기기에 이식되어 동작하는 특장형 프로그램이, 상기 기능 처리부(201)를 대체하여 상기 서비스 어댑터부(205)를 그 구성에 포함할 수도 있다.
따라서, 이하에서, 상기 기능 처리부(201)가 서비스 편집 서비스를 처리한다는 설명 내용은, 실시예에 따라서는, 상기 서비스 어댑터부(205)에 의해 수행될 수도 있음을 내포하는 것으로서 당연히 그렇게 이해되어야 한다.
본 발명의 일 실시예에 따라 서비스 인터페이스 규칙(50)에 포함되어 하나의 서비스로 규정된 서비스 편집 서비스(500)는, 이벤트 세트나 필드 세트 없이, 3개의 메소드(510)로써 구성된 메소드 세트를 정의하고 있다. 메소드 세트에 정의된 3개의 메소드(510)는, 서비스 추가, 서비스 갱신, 그리고 서비스 삭제에 대한 메소드임을 각기 구분키 위한 메소드 식별자, 0x0001, 0x0002 및 0x0003이 할당되어, 해당 식별자로써 추가, 갱신 또는 삭제를 호출하도록 정의된 것이며, 각 메소드는 입력/출력 파라미터(511)를 포함하도록 정의되어 있다.
본 발명에 따른 다른 일 실시예에서는, 상기 서비스 편집 서비스(500)에 대해 서비스 추가의 메소드만이 정의될 수도 있고, 2개의 메소드( 예를 들어, 추가 및 삭제 메소드 )가 정의되어 적용될 수도 있다.
각각의 메소드를 호출할 때, 즉 각각의 메소드를 나타내는 메시지를 구성하여 타 기기로 전송할 때 포함시켜야 하는 입력/출력 파라미터는, 도 6에 예시된 바와 같은 구조를 갖도록 정의된다.
본 발명의 일 실시예에 따른 서비스 추가 메소드의 경우, 그 입력 파라미터에는, 서비스 편집 서비스에 의해 추가되는 서비스( 이렇게 서비스 편집 서비스에 의해 추가되는 서비스를, 이하에서는, '유동(流動) 서비스'라 별도로 칭한다. )의 내용, 즉 그 유동 서비스를 정의하고 있는 정보( 본 명세서에서는, 이 정보에 대해서, '서비스 사양정보', 또는 단축하여 '서비스 사양'이라는 용어를 사용한다. )가 기록된다. 본 발명의 원리와 개념에 따른 유동 서비스도, 기기에 이식된 특장형 프로그램들이 정보 교환에 기반하도록 미리 적용된 서비스들과 동일한 기반화 기능을 가지므로, 본 명세서에서 '서비스'라고 칭하는 범주에 당연히 속한다. 따라서, 본 명세서에서 사용하고 있는 '서비스'의 용어가, 그 기재의 의미상 명확하게 유동 서비스를 배제하고 있는 것이 아니라면, 그 용어는 유동 서비스도 내포하는 의미로 이해되어야 한다.
유동 서비스의 서비스 사양정보는, 기본적으로, 서비스에 고유하게 부여되는 고유 정보( 명칭, 서비스 ID, 인스턴스 ID, 버전 등 )와 서비스를 제공하거나 요구하는데 사용되는 이벤트, 메소드, 또는 필드로써 구성된다. 물론, 이벤트, 메소드 및 필드에서 한가지 이상의 유형이 포함되지 않고 구성될 수도 있다. 실시예에 따라서는, 고유 정보에 명칭은 포함되지 않을 수도 있다. 본 명세서에서는, 설명의 편의를 위해, 이벤트, 메소드 그리고 필드를 포괄하기 위해 '액션(action)'이라는 용어를 사용한다. 따라서, 본 실시예의 설명에서, 액션의 용어는, 하나의 이벤트일 수도, 하나의 메소드일 수도, 아니면 하나의 필드를 지칭하는 것일 수 있다.
본 발명의 실시예들에서는, 서비스 편집 서비스의 메소드(510), 그 메소드의 고유 정보( 명칭과 메소드 ID, 실시예에 따라서는, 명칭은 포함되지 않을 수도 있다. )와 메소드를 통해 적용시키고자 하는 유동 서비스의 내용, 즉, 적어도 액션을 포함하여 구성된 액션 세트(53)를 수송하는 입력 파라미터(511a)로 이루어지게 된다.
따라서, 서비스 편집 서비스의 추가 메소드인 경우, 서비스 기반으로 정보를 송수신하는 기기들이 현재 기반으로 이용하고 있는 서비스들과 동일하게 이용할 수 있도록, 고유 정보와 액션 세트가 포함되도록 정의한 정보가, 기존 서비스에 새로이 추가하는 유동 서비스의 내용으로서 상기 입력 파라미터(511a)에 실리게 된다.
갱신 메소드의 경우에는, 유동 서비스의 내용을 갱신하기 위한 것으로서, 앞서 추가한 유동 서비스의 ID와 동일한 서비스 ID가 고유 정보에 포함되어야 하는 제약 외에, 추가 메소드에 대한 입력 파라미터의 구성과 동일한 방식으로 입력 파라미터가 구성된다. 이 갱신 메소드는, 앞서 추가한 유동 서비스에 대하여 해당 액션 세트를, 갱신 메소드에 포함된 액션 세트로 대체시키고자 할 때 이용된다.
삭제 메소드는, 앞서 추가하여 서비스 기반으로 적용된 유동 서비스를 제거하기 위한 것이다. 도 5의 예시에서는, 삭제 메소드의 경우에도, 삭제할 유동 서비스에 대한 현재의 액션 세트가 입력 파라미터에 포함되도록 정의되어 있지만, 실시예에 따라서는, 액션 세트가 포함되지 않을 수도 있다. 예를 들어, 삭제 메소드에 대하여는, 삭제할 유동 서비스의 서비스 ID만 입력 파라미터에 포함될 수도 있다.
또한, 본 발명에 따른 다른 일 실시예에서는, 추가된 유동 서비스의 삭제를 갱신 메소드에 포함시킴으로써, 삭제 메소드없는 서비스 편집 서비스가 정의되어 사용될 수 있다. 본 실시예에서는, 액션을 포함하지 않는 상기 갱신 메소드가, 해당 유동 서비스에 대한 삭제를 지시하는 것으로 사용될 수 있다.
한편, 도 5와 6에 예시된 바와 같이 정의된 서비스에 대하여, 해당 메소드를 호출하는 특장형 프로그램은, 서비스 편집 서비스에 대한 '요구자'가 되고, 그 메소드에 피호출되는, 즉 해당 메시지의 수신자로 지정되는 특장형 프로그램은 서비스 편집 서비스에 대한 '제공자'가 된다. 그리고, 서비스 편집 서비스에 대한 제공자와 요구자의 여부는, 전술한 다른 서비스와 마찬가지로, 각 기기의 특장형 프로그램이 참조하는 또는 자신에 하드 코딩된 서비스 프로파일에 의해 결정된다.
서비스 기반으로 정보를 제공/획득하는 특장형 프로그램들 중에서, 임의의 서비스에 대해 제공자로 지정된 특장형 프로그램은, 동 기기 내의 서비스 플랫폼 모듈에 해당 서비스에 대한 시작을 요청함으로써, 그 서비스 플랫폼 모듈로 하여금 주기적으로 해당 서비스의 제공자임을 알리는 방송 메시지를 전송하게 한다. 그리고, 이와 같은 제공서비스의 통지동작은, 본 발명의 일 실시예에 따라 정의된 상기 서비스 편집 서비스(500)의 경우에도 동일하다. 즉, 서비스 편집 서비스에 대하여, 서비스 프로파일에서 '제공자'로 지정된 특장형 프로그램은, 동 기기 내의 서비스 플랫폼 모듈로 하여금, 자신이 서비스 편집 서비스의 제공자임을 네트워크에 연결된 타 기기들의 특장형 프로그램에 주기적으로 알리게 한다.
본 발명의 일 실시예에 따라 정의된 상기 서비스 편집 서비스(500)의 각 메소드는, 전술한 바와 같이, 입력/출력 파라미터에 대하여 다음과 같이 정의되며, 서비스 편집 서비스의 요구자는 그 정의된 형식에 따라 메소드 호출의 메시지를 구성하고, 제공자는 그 정의된 형식에 따라 수신 메시지를 파싱(parsing)하여, 어떤 형식의 서비스를 추가요구하는지, 또는 어떤 서비스에 대한 갱신 또는 삭제인지를 파악하게 된다.
이하에서는, 도 6에 예시된, 서비스 편집 서비스(500)의 메소드(510)( 이하, '서비스 편집 메소드'라 약칭한다 )에 대해 정의된 입력/출력 파라미터(511)에 대해 구체적으로 설명한다.
도 6에 예시된 서비스 편집 메소드의 입력/출력 파라미터(511)는, 장치에서 발생되는 다양한 상태 정보를, 네트워크에 연결된 기기들 간에 서비스 기반으로 제공/획득할 수 있도록, 해당 상태 변수에 대해, 도 4와 5에 예시된 바와 같이 직접 정의한 서비스(40)( 이하, 이 서비스를, 상기 서비스 편집 서비스(500)에 의해 추가되는 유동 서비스와 구분하여 지칭하기 위해, '정적(static) 서비스'라는 용어를 사용한다. )의 메소드에 수반되는 것으로 정의된 입력/출력 파라미터(411)와는 다른 형식과 속성을 갖는다.
정적 서비스의 메소드인 경우에는, 그 메소드의 수행에 있어서 특정되어야 하는 변수를 수송할 크기(411a)가 입력 파라미터로서 단순히 정의되는데 반해, 서비스 편집 서비스(500)의 경우에는, 유동 서비스를 정의하는 정보, 즉 서비스 사양정보의 전체를 수송할 구조체(511)가 입력 파라미터로서 정의되므로 그 형식에 있어서 서로 다르다.
또한, 해당 파라미터로서 수송되는 정보에 있어서도, 정적 서비스의 경우에는, 서비스와는 무관한, 호출하는 메소드에 국한되어 특정되어야 하는 변수에 대한 값이거나 변수를 지칭하는 값인데 반해, 서비스 편집 서비스의 경우에는, 현재 호출하고 있는 메소드가 속한 서비스 편집 서비스와 동격의 서비스를 지칭하는 정보이기 때문에, 그 속성이 서로 다르다.
서비스 편집 서비스는, 현재 편집할, 즉 추가, 갱신 또는 삭제할 서비스를 특정하기 위한 정보여야 하기 때문에, 그 입력 파라미터(511)는, 도 6에 예시된 바와 같이, 서비스를 식별케 하는 항목(52)을 반드시 포함하여 정의된다. 따라서, 호출하는 서비스 편집 메소드가 예를 들어, 유동 서비스의 추가라면, 호출하는 메소드를 구성하는 메시지에는, 메시지 헤더 내의 서비스 편집 서비스애 대한 것임을 나타내는 서비스 식별자 '0x1000' 외에, 추가되는 서비스를 나타내는 서비스 식별자가 입력 파라미터에도 포함되어 구성되어, 단일의 메소드 호출 메시지에 의해 2개의 서비스 식별자가 수송된다. 이에 대해서는, 이후에 보다 상세히 설명한다.
또한, 서비스 편집 메소드의 입력 파라미터(511)에는, 그 서비스 편집 메소드를 수신하게 되는( 즉, 서비스 편집 서비스에 대해 제공자로 지정된 ) 특장형 프로그램을, 현재 추가하는 유동 서비스에 대해 제공자로 지정할 것인지 아니면 요구자로 지정할 것인지를 지정하는 항목(51)( 이 항목은, '공여 항목'이라 별칭한다. )이 포함되어 정의되며, 서비스를 제공하거나 요구하는데 사용되는 이벤트, 메소드, 또는 필드를 포함하는 액션 세트(53)도 포함되어 정의된다.
상기 액션 세트(53)를 구성하게 되는 각 유형의 세트, 즉 이벤트 세트, 메소드 세트, 그리고 필드 세트는, 배열(array) 형식으로 개별 항목이 복수개가 포함될 수 있음을 나타내는 특별한 부호(60)가 부기되어 정의되어 있다. 물론, 이 배열 형식의 정의는, 해당 유형의 항목이 하나도 포함되지 않는 경우까지도 포함하는 의미로 사용된 것이다.
상기 액션 세트(53)를 구성하는 각 유형의 세트(53a,53b,53c)는, 도면에 예시된 바와 같이, 정적 서비스인 경우의 액션 세트와 동일한 형식으로 정의된다. 다만, 정적 서비스는, 기기에 이식할 특장형 프로그램을 완성하기 위해, 그 정의가 미리 준비되어 인터페이스 코드 모듈의 생성에 반영되어야 하므로, 도 4의 예시에서와 같이, 서비스의 고유 정보는 물론, 각각의 액션에 속하는 항목들에 대해 특정 값, 예를 들어, 액션 식별자, 이벤트 그룹 등이 할당된 상태로 정의되지만, 서비스 편집 서비스(500)는, 특장형 프로그램이 기기에의 이식 후에 이용할 수도 있는 서비스를 위한 것이므로, 특정 값이 부여되어 정의되지 않고, 특정 값이 부여될 수 있는 변수 항목들에 대해 그 크기와 종류만( uint16: 2바이트 정수, uint32: 4바이트 정수, string: 문자열, bool: 이진값 등 )으로 정의된다.
또한, 상기 액션 세트(53)의 각 유형의 세트(53a,53b,53c)는, 입력 또는 출력 파라미터를 포함할 수 있도록 정의되며, 이 파라미터는, 배열 형식(61)으로 포함될 수 있는 것으로 정의된다. 그리고, 파라미터 배열의 각각에 대해서는, 정적 서비스(40)의 메소드, 이벤트, 필드에 수반되는 파라미터에 대해 정의되는 유형(411a)과는 다르게 그 유형이 지정된다. 정적 서비스의 입력/출력 파라미터의 경우에는, 정적 서비스의 내용이 확정된 것이어서, 해당 파라미터가 수송할 변수의 데이터 크기와 종류에 대해서, 그 확정된 내용에 맞게, 약속된 특정 약어( 예를 들어, "uint8","uint16" 등 )( 이하, '특약어'라 칭한다. )로써 정의되지만, 서비스 편집 서비스의 호출 정보에 수반되도록 정의된 상기 액션 세트(53)에서의 각 파라미터(61)의 경우에는, 서비스 편집 서비스를 정의하는 시점에, 그 서비스 편집 서비스의 호출에 수반되는 서비스가 어떤 상태 변수에 대한 것이 될지 알 수 없으므로, 크기와 종류를 확정하는 특약어로써 정의되지 않는다. 대신, 이후에 유동 서비스가 지정되어 전송될 때, 그 유동 서비스에 대해 확정된 이벤트나 메소드 등에서 필요로 하는 파라미터의 정해진 크기와 종류를 나타내는 특약어를 수송할 수 있도록 문자열(61a)로써 정의된다.
한편, 도 6에 예시된, 서비스 편집 메소드를 위한 입력 파라미터(511)는, 도 3의 서비스 어댑터부(205)가 포함된 특장형 프로그램이 제공자가 되는 유동 서비스의 추가, 갱신, 또는 삭제를 위해 정의된 것으로서, 그 특장형 프로그램이 실행되는 기기에 연결된 서브 네트워크(2)를 통해 얻게 되는 상태 정보. 또는 상태 정보들의 세트(set)를, 그 서브 네트워크에서 식별할 수 있게 하는 식별정보의 크기와 형식을 지정하기 위한 부수적 항목(62)이 특별히 할당되어 정의되어 있다.
따라서, 상기 서비스 어댑터부(205)가 없는 특장형 프로그램들이 각기 수행됨으로써, 동일 네트워크에 연결되어 서비스 기반으로 동작하는 기기들만을 대상으로 하여, 전술한 바의 서비스 편집 서비스(500)를 위한 서비스 인터페이스 규칙을 정의할 때는, 당연히, 상기 부수적 항목(62)은 입력 파라미터(511)에서 배제될 수 있다.
한편, 도 5와 6에 예시된 바와 같이 정의된 서비스 인터페이스 규칙(50)으로부터 인터페이스 코드 모듈( 전술한 상기 서비스 인터페이스부(202)와 상기 데이터 재구성부(203)에 해당하는 모듈일 수 있다. )을 생성하면, 그 모듈은, 서비스 편집 서비스가 어떤 식별자에 의해 특정되고, 어떤 식별자의 메소드들을 포함하여 구성되는지, 그리고, 각 메소드는 어떤 형식으로 구성된 입력 파라미터와 출력 파라미터를 포함하게 되는지를 알게 된다.
따라서, 상기 예시된 서비스 인터페이스 규칙(50)으로부터 생성되어 특장형 프로그램(200)에 함께 빌드된 인터페이스 코드 모듈, 특히, 상기 서비스 인터페이스부(202)는, 자신의 프로그램 인터페이스 형식에 정합된 상기 기능 처리부(201)로부터의 서비스 추가, 갱신 또는 삭제 등의, 앞서 기반화로 적용된 서비스를 보완하는 서비스 변경요청에 대하여, 그 요청에 수반되는 상기 기능 처리부(201)가 제공하는 파라미터들을 인터페이스 형식에 따라 해석하여 메시지로 패킹한 다음, 상기 데이터 재구성부(203)를 통해 네트워크로 전송하게 되고, 그 역으로 상기 데이터 재구성부(203)로부터 수신되는 메시지에 대해서는, 기 파악하고 있는 각 서비스에 대한 고유 정보( 서비스 식별자, 인스턴스 ID, 버전 등 )와 형식에 따라 해석하여, 자신에게 서비스 시작을 요청한 상기 기능 처리부(201)에게, 약속된 프로그램 인터페이스 형식에 맞추어 해당 서비스 편집 메소드에 실린 입력 파라미터의 정보를 제공하게 된다. 이하에서는, 본 발명에 따른 서비스 편집 서비스(500)가 운용되는 방법에 대해서, 보다 구체적인 예시를 통해 상세히 설명한다.
도 7은, 본 발명에 따른 서비스 편집 서비스(500)가 적용될 수 있는, 차량과 같은 장치에, 네트워크(1)를 통해 연결되어 서로 서비스 기반으로 정보를 교환하도록 장착된 한 쌍의 기기(20P,20C)를 예시한 도면으로서, 한 쌍의 기기 중 하나(20P)는 서비스 편집 서비스(500)의 제공자로, 다른 하나(20C)는 서비스 편집 서비스의 요구자로 설정된 것을 가정한다. 물론, 제공자와 요구자는, 전술한 바와 같이, 서비스 프로파일에 의해, 각 기기, 보다 구체적으로는, 각 기기에서 실행되는 특장형 프로그램(200P,200C)에 대해 설정된 것이다.
도면의 간략화를 위해, 제공자 기기(20P)와 요구자 기기(20C)에 각기 이식되어 동작하는 특장형 프로그램에 대해 세부 구성없이 그 전체로서 도시하였지만, 도시된 각 특장형 프로그램(200P,200C)은, 앞서 그 구성을 설명한 도 2( 또는 도 3 )와 같이 구성되어 있다. 이하의 설명에서, 예시된 각 기기(20P,20C) 내의 특장형 프로그램(200P,200C)의 구성요소에 대해 부호를 병기할 때는, 해당 구성요소가 제공자이면 'P'의 첨자를, 요구자이면 'C'의 첨자를, 앞서 사용한 동일 구성요소에 대한 번호에 부기한 부호를 사용한다.
또한, 도 7의 예시는, 본 발명에 따른, 서비스 기반의 정보 교환이 이루어지는 네트워크화된 기기들에 대해, 동적으로 서비스를 변경하는 본 발명의 기술적 원리와 사상을 구체적으로 설명하는데 부족하지 않는 범위에서, 간략화함에 따른 것이다. 이에 따라, 도 7이, 하나의 기기에 하나의 특장형 프로그램이 포함되어 있는 것으로 예시하고 있지만, 다른 기능의 구현을 위해 동일 기기에 많은 특장형 프로그램들이 포함되어 해당 기기의 서비스 플랫폼 모듈(300P,300C)을 공용하여 서비스 기반으로 동작할 수 있다. 또한, 이들 중 일부는, 당연히 본 발명에서 설명하고 있는 서비스 편집 서비스의 제공자 또는 요구자로 설정되어 있을 수 있다. 복수의 특장형 프로그램들이 서비스 편집 서비스의 제공자가 되는 실시예에 대해서는 이후에 설명한다.
도 7에 예시된 한 쌍의 기기들(20P,20C)에서, 서비스 편집 서비스(500)에 대해 요구자로 설정된 특장형 프로그램(200C)은, 제공자로 설정된 특장형 프로그램(200P)에 서비스 편집 서비스를 호출하게 된다. 즉, 서비스를 변경하고자 하는 내용을 반영한 서비스 편집 메소드의 메시지를 구성하여, 서비스 편집 서비스의 제공자로 파악된 기기(20P)로 전송한다(S71). 서비스 편집 서비스의 호출에 해당하는 메시지는, 서비스 인터페이스부(202C)에 의해 부가된 메소드 헤더(82)와 기능 처리부(201C)에 의해 생성된 데이터 블록(81)( 이하, 이 데이터 블록에 대해서는 '페이로드'(payload) 블록'이라 칭한다. )으로 구성된다.
전술하였던 바와 같이, 임의의 서비스에 대해 제공자로 지정된 특장형 프로그램은, 동 기기 내의 서비스 플랫폼 모듈에 서비스 시작을 호출하게 되고, 이에 따라 그 서비스 플랫폼 모듈에 의해 그 서비스에 대하여 제공서비스 안내 메시지가 네트워크(1)로 멀티캐스트(multicast) 방식으로 전송되므로, 그 네트워크(1)에 연결된 서비스 기반의 기기들은 어떤 기기가 서비스 편집 서비스의 제공자인지를 알 수 있게 된다.
서비스 편집 서비스의 요구자로 설정된 상기 특장형 프로그램(200C)의 서비스 편집 메소드의 메시지 구성은, 상기 기능 처리부(201C)에 의해 이루어지는데, 이 기능 처리부(201C)는, 의도된 기능의 수행을 위해 필요한 경우에, 또는 장치의 외부로부터의 요청이 있을 때, 서비스의 편집을 위한 메시지, 예를 들어 새로운 서비스를 추가하는 메시지의 생성을 위해, 도 8a에 예시된 바와 같은 페이로드 블록(81)을 구성하게 된다.
상기 기능 처리부(201P)는, 서비스 편집 서비스(500)를 포함하는 서비스 인터페이스 규칙(50)에 의해 생성된 인터페이스 코드 모듈과 인터페이싱이 정합하여 동작하도록 구성되어 있으므로, 도 8a에 예시된, 상기 기능 처리부(201C)가 생성하는 페이로드 블록(81)은, 도 6에 예시된 서비스 편집 메소드의 입력 파라미터(511a)에 대해 정해진 형식과 일치하며, 그 형식에서 정하고 있는 각각의 항목에 대해 특정의 값들이 지정된 데이터들로써 구성된다.
상기 기능 처리부(201C)는, 상기 페이로드 블록(81)을 구성할 때, 현재 구성하는 서비스 편집 메소드의 객체 서비스인 유동 서비스에 대해, 서비스 편집 서비스의 호출 대상인 특장형 프로그램, 즉, 서비스 편집 서비스에 대해 제공자로 설정된 상기 특장형 프로그램(200P)을, 제공자 또는 요구자로 지정하는 값을 선두의 공여 항목(811)으로 기록한다.
본 발명에 따른 일 실시예에서는, 서비스 편집 서비스에 의해 기존 서비스를 보완하기 위해 추가될 유동 서비스에 대해서, 서비스 편집 서비스에 대해 제공자로 설정된 기기들 중에서 특정 기기, 예를 들어 특정 IP/Port의 기기의 특장형 프로그램에 대해서는 '제공자'로, 또 다른 특정 기기의 특장형 프로그램에 대해서는 '요구자'로 지정하도록, 서비스 편집 서비스의 요구자로 지정되어 서비스 편집 서비스를 호출하게 되는 상기 특장형 프로그램(200C)의 서비스 프로파일에 미리 설정되어 있을 수 있다.
그리고, 전술하였던 바와 같이, 상기 페이로드 블록(81)으로 구성되는 이벤트, 메소드 또는 필드의 각 입력 또는 출력 파라미터에는, 해당 파라미터로 수송하는 변수 값의 크기와 종류를 확정하는 특약어들 중 하나를 지정하는 문자열이 값(812)으로서 포함된다.
서비스 편집 메소드가 호출될 기기가, 상기 서비스 어댑터부(205)를 포함하는 경우라면, 해당 변수를 특정하는 신호명(813)도 함께 포함되어 하나의 파라미터를 구성할 수도 있다. 또는, 신호명이 포함되지 않고, 일련의 변수들에 대하여 각각의 크기와 종류를 확정하는 특약어들의 배열로써, 상기 페이로드 블록(81)의 입력 또는 출력 파라미터가 구성될 수도 있다.
상기 페이로드 블록(81)의 정보에 의해 정해지는 유동 서비스가 적용된 후 호출될 때, 전술한 바의 부수적 항목(62)에 기록되는 식별자와 상기 신호명(813)에 기록되는 문자열이, 해당 액션과 연관된 상태 변수를 고유하게 특정하는 정보가 된다. 만약, 상기 신호명(813)을 포함하지 않는 액션이면, 상기 부수적 항목(62)에 기록된 식별자와, 그 액션의 입력 또는 출력 파라미터에 배열로 포함된 일련의 변수 값(812)들에서의 각각의 순서가 각 신호를 고유하게 특정하는 정보가 된다.
도 8a에 예시된, 상기 기능 처리부(201C)가 구성하는 상기 페이로드 블록(81)의 예에서, 점선으로 표시된 데이터 항목은 선택적인 것임을 나타낸다. 즉, 실시예에 따라서는, 그 점선으로 표시된 항목에 대한 데이터를 포함시키지 않고 페이로드 블록을 구성할 수도 있다.
상기 기능 처리부(201C)는, 페이로드 블록의 구성이 완료되면, 그 페이로드 블록(81)을 상기 서비스 인터페이스부(202C)에 전달하면서 서비스 편집 서비스를 호출하는 메시지의 전송을 요청한다. 예를 들어, 유동 서비스 추가를 요구하는 서비스 편집 메소드에 해당하는 메시지 전송을 요청한다.
상기 서비스 인터페이스부(202C)는, 그 요청과 함께 전달된 상기 페이로드 블록(81)의 전단에, 현재 서비스 기반화에 적용된 통신방식에 따른 메시지 헤더(82)를 부가하여, 도 8b에 예시된 바와 같은, 서비스 편집 메소드를 호출하는 전송 메시지(80)로 구성한다. 상기 서비스 인터페이스부(202C)에 의해 부가되는 메시지 헤더(82)에는, 상기 기능 처리부(201C)에 의해 호출된 서비스 편집 메소드를 나타내는, 서비스 식별자(801)와 메소드 식별자(803)로 구성되는 요청 식별자가 포함된다. 이 요청 식별자를 포함하는 메시지 헤더(82)의 구성은, 도 5에 예시된 서비스 편집 서비스(500)가 정하고 있는 포맷에 따르며, 상기 기능 처리부(201C)가 전달한 페이로드 블록(81)은, 그 구성된 메시지(80)의 입력 파라미터(511)로 패킹된다.
이렇게 구성된 서비스 편집 메소드의 호출 메시지(80)에는, 호출되는 서비스 편집 서비스를 식별케 하는 서비스 식별자(801)와, 현재 호출하는 서비스와 동등한 정보 교환의 기반화를 제공할 또는 제공하는 대상 서비스를 식별케 하는 서비스 식별자(802)가 각각 포함된다.
상기 서비스 인터페이스부(202C)는, 자신이 구성한 전송 메시지(80)를 데이터 배열부(203C)에 전달하면서 전송을 요청하고, 상기 데이터 배열부(203C)는, 동 기기(20C) 내의 서비스 플랫폼 모듈(300C)에, 그 모듈이 서비스 기반의 메시지 전송을 위해 요구하는 데이터 직렬 형식에 맞추어 전송 메시지의 데이터를 비트열로 변환하여 전달한다.
이렇게 전달된 일련의 데이터 비트열은, 상기 서비스 플랫폼 모듈(300C)에 의해, 필요한 서비스 헤더의 비트열이 부가되어 데이터 패킷으로 구성된 후 상기 네트워크(1)로 전송된다(S71).
서비스 기반으로 정보 교환이 이루어지는 네트워크 시스템에서는, 초기에 일괄적인 서비스 디스커버리(discovery) 과정이, 그 이후에는 필요 서비스에 대한 개별적인 디스커버리 과정이 진행되는데, 이 디스커버리 과정에서, 각 서비스의 제공자는, 자신이 제공하는 서비스의 식별자와 해당 기기에 할당된 IP주소를 함께 알리는 제공서비스 안내 메시지를 네트워크로 발송한다. 따라서, 각 기기의 서비스 플랫폼 모듈(300)은, 그 제공서비스 안내 메시지를 통해, 동 기기 내의 특장형 프로그램이 자신에게 전송 요청하는 임의의 서비스의 호출 메시지를 어떤 기기로 전송해야 할지 알 수 있다.
따라서, 전술한 가정에 따라, 상기 요구자 기기(20C)가 네트워크(1)로 전송한 데이터 패킷에 대해서는, 서비스 편집 서비스의 제공자로 지정된 기기(20P)가 목적지로 지정되어, 그 기기(20P)가, 도 8b와 같이 구성된 서비스 편집 메소드를 호출하는 메시지(80)를 수취하게 된다.
상기 제공자 기기(20P)에 의해 수취된 메시지(80)는, 전술한 메시지 전송의 역과정을 거쳐, 상기 특장형 프로그램(200P)의 기능 처리부(201P)에 최종적으로 전달된다. 이렇게, 상기 기능 처리부(201P)에 최종 전달된 데이터는, 도 8a에 예시된 페이로드 블록(81)이다.
상기 기능 처리부(201P)가, 서비스 편집 서비스의 요구자로 지정된 상기 특장형 프로그램(200C)으로부터, 도 8a에 예시된 페이로드 블록(81)을 수신하면, 그 블록의 데이터를, 기 적용되고 있는 서비스 편집 서비스에 대한 서비스 인터페이스 규칙(500)에 따라 항목별로 분해하여 유동 서비스에 대한 내용을 파악한다. 예를 들어, 새로운 유동 서비스를 추가하는 메소드라면, 그 유동 서비스에 대해 부여된 고유 정보와 액션 세트가 어떻게 지정되어 있는지, 즉 이벤트 세트, 메소드 세트 및 필드 세트가 어떻게 조합되어 지정되어 있는지, 그리고, 액션 세트에 속하는 각각의 액션, 즉 하나의 이벤트, 하나의 메소드 또는 하나의 필드에는 어떤 고유 정보가 부여되어 있고, 입력 또는 출력 파라미터는 어떤 크기와 종류의 변수로 지정되어 있는지 등을 파악하게 된다.
이렇게 새로이 추가된 서비스의 내용, 즉 그 유동 서비스를 정의하고 있는 서비스 사양을 파악하고 나면, 상기 기능 처리부(201P)는, 그 서비스 사양정보를 자신의 서비스 프로파일에 기록한다. 이는, 새로이 추가된 유동 서비스에 대해서, 네트워크화된 기기들(20P,20C)이 재기동될 때도, 예를 들어, 그 기기들(20P,20C)이 장착된 장치에 전원이 오프(off)된 후 다시 공급될 때에도, 그 유동 서비스가, 정적 서비스와 마찬가지로 기동 시작부터 네트워크에 제공될 수 있도록 하기 위함이다.
본 발명에 따른 다른 일 실시예에서는, 추가 요청된 유동 서비스에 대해서, 상기 기능 처리부(201P)가 그 서비스 사양정보를 자신의 서비스 프로파일에 선택적으로 기록할 수도 있다. 유동 서비스에 대한 서비스 사양정보의 선택적 기록에 대한 몇가지 실시예들에 대해서는 후술한다.
한편, 상기 기능 처리부(201P)는, 자신이 파악한 유동 서비스의 서비스 사양에 포함된 공여 항목(811)의 값을 확인하고, 그 값이, 자신을 제공자로 지정하고 있는 값이면, 해당 서비스의 고유 정보를 서비스 인터페이스부(202P)에 파라미터로 전달하면서, 서비스 시작을 요청하게 된다. 이 요청이 있게 되면, 상기 서비스 인터페이스부(202P)는, 전술하였던 바와 같이, 기존에 시작된 다른 정적 서비스와 마찬가지로, 그 시작 요청된 서비스에 대해서 제공서비스 안내 메시지가 주기적으로 네트워크(1)로 전송되도록 한다. 제공서비스의 안내 메시지의 주기적인 전송은, 상기 서비스 인터페이스부(202P)로부터, 서비스의 고유 정보를 수반한 제공서비스의 통지가 서비스 플랫폼 모듈(300P)에 요청될 때, 상기 서비스 플랫폼 모듈(300P)에 의해 개시된다.
서비스 편집 서비스의 제공자 기기(20P)의 상기 기능 처리부(201P)는, 서비스 시작의 요청에 앞서, 자신이 수신한 서비스 편집 메소드에 대한 응답 메시지가 서비스 편집 메소드를 호출한 상기 특장형 프로그램(200C)에 전송되게 한다(S72). 이를 위해, 출력 파라미터(511b)에 해당하는 데이터, 즉 그 수신한 서비스 편집 메소드에 대한 처리 결과와, 수신한 서비스 편집 메소드의 고유 정보를 상기 서비스 인터페이스부(202P)에 전달하면서 응답 메시지의 전송을 요청한다. 이렇게 전송되는 응답 메시지는, 수신한 서비스 편집 메소드의 헤더와 동일한 헤더로 구성된 응답 메소드가 되며, 메시지 유형에 대해서 '응답'으로 설정된 것일 수 있다. 상기 기능 처리부(201P)에 의한 서비스 기반의 응답이 서비스 기반의 메시지로서 네트워크(1)로 전송될 때까지의 해당 기기(20P)내에서 처리되는 과정은, 서비스 편집 서비스의 요구자 기기(20C)의 상기 기능 처리부(201C)가 서비스 편집 메소드를 전송할 때 해당 기기(20C)내에서 처리되는 전술한 과정과 동일하게 이루어진다.
서비스 편집 서비스의 호출에 따라 수신한 메시지의 처리 결과에 대해서, 도 6에 예시된 서비스 인터페이스 규칙에서는, 이진값(511c)의 출력 파라미터로 전달하도록 되어 있으므로, 이 인터페이스 규칙에 따라, 상기 기능 처리부(201P)는, 메소드 응답의 메시지를 구성할 때, 호출된 서비스 편집 메소드를 정상적으로 수용할 수 있으면, '긍정'( 또는 성공 )의 값( 예를 들어, 'TRUE' )을, 그렇지 않으면 '부정'( 실패 )의 값을 출력 파라미터로 기입하게 된다.
후자의 경우의 예로는, 상기 기능 처리부(201P)가 이미 제공자로서 기능하고 있는 유동 서비스에 대해서, 서비스 편집 서비스의 추가 메소드가 수신되거나, 자신에게 서비스 사양이 기록되지 않은 유동 서비스를 지정하는 갱신 메소드나 삭제 메소드가 수신되는 경우, 또는 자신에게 설정된 직접 액세스 가능한 상태 변수( 즉, 해당 기기(20P)가 전담하는 상태 변수 )에 해당하지 않는 신호의 식별자(62)를 대상으로 하는 이벤트, 메소드 또는 필드를 포함하는 유동 서비스에 대해서, 제공자로 지정한 서비스 편집 서비스의 추가 메소드가 수신되는 경우 등이 있을 수 있다.
앞서 설명한 실시예에서는, 호출된 서비스 편집 메소드를 처리하는 상기 기능 처리부(201P)가, 서비스 편집 서비스의 추가 메소드에 의해 새로이 추가된 유동 서비스에 대해서 그 서비스 사양을, 이후의 재기동 시에도, 해당 유동 서비스를 정적 서비스와 마찬가지로 계속하여 제공할 수 있도록, 자신의 서비스 프로파일에 기록하였지만, 이미 언급한 바와 같이, 새로이 추가된 유동 서비스의 서비스 사양의 서비스 프로파일에의 기록은 선택적으로 이루어질 수 있다. 즉, 신규의 유동 서비스가 서비스 프로파일에 기록되지 않음으로써, 장치가 운용되고 있는 그 동안에만 잠정적으로 제공될 수도 있다.
본 발명의 일 실시예에서는, 제공 시작된 유동 서비스의 액션 세트에서 어떤 하나의 액션이라도, 그 이용의 호출에 대해 정상적으로 응답하지 못하게 되면, 그 신규 유동 서비스를 서비스 프로파일에 기록하지 않고 잠정적 제공으로 종료할 수 있다. 예를 들어, 타 기기들이 가입된 이벤트 그룹에 속하는, 신규 유동 서비스의 이벤트 항목에 대해 이벤트 메시지를 발송하지 못했거나, 신규 유동 서비스의 메소드 호출에 대해 에러 메시지로 응답한 경우에는, 그 신규 유동 서비스의 서비스 사양을 서비스 프로파일에 기록하지 않게 된다. 서비스 프로파일에 기록되지 않으므로, 그 신규 유동 서비스는, 상기 기기들(20P,20C)이 네트워크(1)로 연결되어 장착되어 있는 장치가 재기동하게 되면, 서비스로 제공되지 않게 된다.
본 발명에 따른 다른 일 실시예에서는, 신규 유동 서비스의 잠정적 제공여부가, 서비스 편집 서비스의 추가 메소드에 의해 지정될 수도 있다. 본 실시예에서는, 도 9에 예시된 바와 같이, 서비스 편집 서비스의 추가 메소드의 입력 파라미터(90)에 대해서, 유동 서비스의 모드를 지정하는 항목(91a)이 더 포함되어 정의될 수 있다. 본 실시예에서의 잠정적 제공은, 서비스 프로파일에의 기록여부에 의해서만 결정되는 것은 아니며, 해당 모드가 요구하는 요건이 충족될 때까지는 해당 유동 서비스가 계속하여 제공되어야 하므로, 특정 모드를 제외하고는 서비스 프로파일에의 기록이 전제된다.
보다 구체적인 예로서, 상기 모드 항목(90a)에 대해서, 이번 동작 동안에만 제공되는 것으로, 또는 추가하는 유동 서비스를 영구적인 것으로 지정하는 값(91)이, 서비스 편집 서비스를 호출하는 특장형 프로그램(200C)에 의해 선택될 수 있다. 전자의 모드는, 서비스 프로파일에 그 유동 서비스의 활성 사양정보를 기록하지 않게 하는 것이고, 후자의 모드는, 기록하게 하는 것이다.
상기 모드 항목(90a)은, 이 값들에 국한되지 않고, 추가된 유동 서비스에 지정된 액션의 호출에 대해 에러의 응답을 하지 않는 동안에는 지속하는 것으로, 모든 액션들이 1회 시도될 때까지 지속하는 것으로, 또는, 정한 시간이나 기간( 예를 들어, 1분, 1시간, 하루, 1주일 등 )동안만 지속하는 것으로 지정하는 값(92)이 선택될 수도 있다. 이와 같은 값들로 모드가 지정된 유동 서비스의 서비스 추가에 대해서는, 그 유동 서비스의 서비스 사양을 서비스 프로파일에 기록하여, 장치가 임의의 시점에 재기동되어도 다시 제공될 수 있는 상태로 만들고, 그 지정된 모드가 정한 요건의 충족되거나, 또는 시간/기간이 경과하였을 때, 서비스 프로파일에서 해당 서비스 사양정보를 삭제함으로써, 추가된 유동 서비스를 잠정적으로 제공하게 된다.
전술한 모드의 예에서, 모든 액션들이 1회 시도될 때까지 지속하는 모드의 경우에는, 그 추가된 유동 서비스의 제공자 특장형 프로그램이, 해당 서비스의 모든 액션들, 즉 이벤트, 메소드 및/또는 필드의 각각에 대해서, 적어도 1번은 요구자에게 제공될 때까지는 그 서비스 사양정보의 서비스 프로파일에의 기록상태를 유지하다가, 그와 같은 제공 요건이 충족되면, 해당 서비스 사양정보를 서비스 프로파일에서 삭제하여, 이후 재기동 시에는 해당 유동 서비스가 제공되지 않게 한다.
본 발명에 따른 다른 일 실시예에서는, 추가된 유동 서비스의 제공자 특장형 프로그램(200P)이, 서비스 프로파일에서 해당 서비스 사양정보를 삭제함과 함께, 그 시점에 유동 서비스의 중지를 서비스 플랫폼 모듈(300P)에 요청할 수도 있다. 이 중지 요청이 있게 되면, 그때부터는, 상기 서비스 플랫폼 모듈(300P)이, 해당 유동 서비스에 대한 제공서비스 안내 메시지를 네트워크로 방송하지 않게 되고, 이에 따라, 일정 시간이 경과하면, 네트워크에 연결된 다른 기기(들)가 해당 서비스의 이용 불가를 인지하게 되므로, 추가된 유동 서비스가, 추가 메소드의 모드에서 지정한 요건이 충족되었을 때 바로 중지됨으로써, 정보 교환의 기반화에서 제거된다.
유동 서비스에 대하여 그 모드를, 서비스 추가 메소드의 입력 파라미터에서 지정하는 전술한 실시예와는 다른 본 발명에 따른 일 실시예에서는, 각각의 모드에 대해서, 서비스 편집 서비스의 메소드 레벨에서 지정할 수도 있다. 예를 들어, 에러 발생 때까지 지속하는 모드의 유동 서비스 추가는, 명칭/메소드ID = "add_service_tillerror"/0x11의 메소드로, 모든 액션들이 1회 시도될 때까지는 지속하는 모드의 유동 서비스 추가는, 명칭/메소드ID = "add_service_allonetime"/0x12의 메소드로 지정하는 방식으로, 전술한 각각의 모드를 각각의 다른 메소드로서 서비스 편집 서비스에 적용할 수도 있다.
한편, 전술한 바와 같은 방법으로, 서비스 편집 서비스의 추가 메소드를, 제공자 특장형 프로그램(200P)에 호출한 요구자 특장형 프로그램(200C)은, 그 호출에 대하여 수신한(S72) 응답 메시지가 '긍정'을 나타내면, 유동 서비스의 추가 시에 의도하였던 하나의 액션, 예를 들어, 특정 상태 변수의 현재 값을 조회하는, 그 유동 서비스의 메소드를 호출하거나, 또는 하나의 액션이 진행되게 하는, 예를 들어 특정 상태 변수에 대한 이벤트가 통지되게 하는 이벤트 그룹에의 가입을, 동 기기(20C)의 서비스 플랫폼 모듈(300C)에 요청할 수 있다.
이벤트 그룹에의 가입이 상기 서비스 플랫폼 모듈(300C)에 요청되면, 추가된 유동 서비스의 제공자 기기(20P)로 그룹 기반의 이벤트 가입 메시지가 상기 서비스 플랫폼 모듈(300C)에 의해 전송됨으로써, 추가된 유동 서비스의 제공자로 지정된 상기 특장형 프로그램(200P)에 이벤트 가입이 이루어진다. 그 가입 이후부터는, 상기 특정 상태 변수의 이벤팅(eventing) 요건이 충족될 때마다( 예를 들어, 값의 변동이 있거나, 또는 정해진 주기마다 ), 그 추가된 유동 서비스의 액션, 즉 이벤트가, 추가된 유동 서비스의 액션을 호출한 상기 특장형 프로그램(200C)에 통지된다.
이상에서 구체적으로 설명한 본 발명에 따른 실시예의 방법에 의해, 장치에 장착될 때 기기들에 이식된 특장형 프로그램들이 정보의 제공/획득에 기반하는 정적 서비스로는 확인할 수 없거나, 확인이 어려운 적어도 하나의 특정 상태 변수에 연관시켜 그 변수를 조회할 수 있게 하는 유동 서비스를, 그 장치가 운용 중일 때에도 동적으로 생성하여 기기들에 적용되게 함으로써, 개발이나 시험 중에는 예상하지 못했던, 장치의 특이한 상태나 특별한 운용 조건 등을, 그 서비스를 통해 간단하고 용이하게 파악할 수 있게 된다.
더욱이, 전술한 바와 같은 방식으로, 서비스 편집 서비스의 요구자 특장형 프로그램(200C)이, 자신이 파악한 특정 상태 변수의 현재 값을 해당 장치에 국한하여 이용되도록 하지 않고, 예를 들어, 상기 특장형 프로그램(200C)이, 해당 장치에 구비된 모니터 등에 그 값이 표시되게 하는 것처럼, 공간적으로 그 장치에 국한되어 그 파악된 정보가 이용되도록 하지 않고, 무선 통신을 통해 그 장치의 외부로 제공하여, 그 장치의 제조사나 판매사와 같은 기업이나 기관의 빅 데이터 수집에 이용되도록 할 수도 있다.
따라서, 서비스 편집 서비스의 요구자, 즉, 새로이 추가된 유동 서비스의 요구자가 되는 상기 특장형 프로그램(200C)은, 추가한 유동 서비스를 통해 획득하는 정보를, 통신을 통해 외부에 직접 제공할 수 있도록, 외부와의 통신을 위한 기능이 구비된 관문 기기에 이식되는 것이 바람직하다. 물론, 반드시 관문 기기에 이식되어야만 하는 것은 아니다. 장치에 외부와의 무선 통신이 가능한 관문 기기가 장착되고, 그 관문 기기와 네트워크로 연결되어 있다면, 상기 특장형 프로그램(200C)이 추가 유동 서비스를 통해 획득한 정보를 내부 네트워크를 통해 그 관문 기기로 전송함으로써, 그 관문 기기를 통해 간접적으로 외부의 특정 서버에 제공되도록 할 수도 있다.
추가한 유동 서비스의 호출을 통해 획득한 정보를 별도의 관문 기기를 통해 외부로 제공하는 실시예를 위해서는, 서비스 편집 서비스에 대해 요구자로 지정된 상기 특장형 프로그램(200C)을 제공자로, 그리고 관문 기기에 이식된 외부와의 통신용 특장형 프로그램을 요구자로 지정하는, 외부 제공용 정보의 전달을 위한 별도의 서비스가 미리 정의되어 상기 양 특장형 프로그램이 그 서비스에 기반하여 정보 교환하도록 구현될 수도 있다. 이하에서는, 서비스 편집 서비스의 요구자인 특장형 프로그램이 장치의 관문 기기에 이식되어 동작하는 것을 전제로 하여 본 발명에 따른 실시예들에 대해 설명한다.
서비스 편집 서비스의 요구자인 특장형 프로그램이 관문 기기에 이식되는 경우, 그 특장형 프로그램은, 서비스 편집 서비스의 제공자인 특장형 프로그램(200P)을 제공자로 지정한 유동 서비스를 기반으로 하여 획득하는 정보의 외부로의 제공은 물론이고, 추가 메소드를 통해 새로이 서비스 기반으로 적용시키게 되는 그 서비스의 생성도 외부로부터의 명령에 따를 수 있다. 도 10은, 이러한 기능을 수행할 수 있는 특장형 프로그램(230)과, 그 특장형 프로그램(230)이 이식되어 실행되는 관문 기기(20G)의 구성의 일 예를 보여주는 블록도이다.
도시된 상기 관문 기기(20G)는, 장치의 내부 네트워크(1)에 연결되어 통신할 수 있는 하드웨어 자원(resource) 외에, 이동성을 유지하면서 외부의 네트워크, 예를 들어 공중 이동통신망과 통신할 수 있게 하는 하드웨어 자원, 예를 들어 셀룰러 모뎀(21)을 더 포함하여 구성된다. 그리고, 이 셀룰러 모뎀(21)은, 상기 관문 기기(20G)의 운영시스템에 의해 구동되며, 상기 특장형 프로그램(230)은, 이 운영시스템을 통해 상기 셀룰러 모뎀(21)을 액세스함으로써, 서비스 편집 서비스와 관련하여 필요한 정보를 외부의 서버와 통신한다.
상기 특장형 프로그램(230)은, 서비스 프로파일(211), 서비스 인터페이스부(202), 데이터 배열부(203)를 포함하며, 전술한 실시예의 특장형 프로그램에서의 기능과는 차별화되는 구성요소로서, 기능 처리부(231), 서비스 에이전트(232), 그리고 네트워킹부(233)를 포함하여 구성된다. 상기 특장형 프로그램(230)의 구성에서, 전술한 실시예에 의한 구성요소와 동일 번호가 부여된 구성요소( 서비스 인터페이스부, 데이터 배열부, 서비스 프로파일 )는, 앞선 실시예에서 설명한 동작과 기능을 동일하게 수행한다.
상기 특장형 프로그램(230)에 특화된 구성요소로서 포함되는 상기 기능 처리부(231)는, 전술한 서비스 편집 서비스의 요구자로서의 동작은 동일하게 수행하며, 그에 더하여, 서비스 편집 메소드에 수반되는 유동 서비스의 정보와, 이후의 그 유동 서비스의 액션을 호출하는 정보를 외부의 서버( 이하, '서비스 관리서버'라 칭한다. )로부터 수신하여, 내부 네트워크의 기기에 필요한 서비스의 호출을 진행하고, 그 호출의 결과를 상기 서비스 관리서버로 제공하는 기능을 수행한다.
상기 네트워킹부(233)는, 외부의 통신 자원, 예를 들어 공중의 이동 통신망을 이용해 상기 서비스 관리서버와의 단대단(point-to-point) 통신 경로를 형성하도록 구성되고, 서비스 에이전트(232)는, 상기 네트워킹부(233)가 형성한 통신 경로를 이용하여, 상기 서비스 관리서버와 서비스 기반으로 메시지를 주고 받으며, 그 메시지의 전송이나 수신을 위해 상기 기능 처리부(231)가 필요로 하는 프로그램 인터페이싱을 상기 기능 처리부(231)에 제공한다.
본 발명에 따른 일 실시예에서는, 상기 네트워킹부(233)가, 상기 서비스 관리서버와 연결한 커넥션의 소켓(socket)을 상호 유지하여 가상 네트워크( Virtual Network )를 형성하는 모듈일 수 있다. 본 실시예에서는, 상기 네트워킹부(233)가 상기 서비스 관리서버와 양방향 통신할 수 있는 통신경로를 항상 제공하고 있기 때문에, 서비스 기반의 메시지에 대한 송수신에 아무런 제약이 없다. 따라서, 상기 서비스 인터페이스부(202)가 상기 기능 처리부(231)에 제공하는 프로그램 인터페이싱과 동일한 인터페이싱을, 상기 서비스 에이전트(232)가 상기 기능 처리부(231)에 제공하게 된다. 물론, 상기 서비스 에이전트(232)는, 자신이 제공하는 프로그램 인터페이싱을 이용한 상기 기능 처리부(231)로부터의 서비스에 대한 요청을, 상기 네트워크킹부(233)가 요구하는 방식이나 데이터 형식 등에 맞추어 전달하거나 수취함으로써 처리하게 된다.
본 실시예에서는, 상기 서비스 에이전트(232)가, 상기 네트워킹부(233)가 제공하는 가상의 네트워크를 기반으로, 상기 서비스 인터페이스부(202). 상기 데이터 배열부(203), 그리고 상기 서비스 플랫폼 모듈(300)의 기능을 통합적으로 수행하는 모듈일 수 있다.
그리고, 외부 서버와의 서비스 기반의 메시지 송수신에 제약이 없으므로, 상기 관문 기기(20G)와 상기 서비스 관리서버 간에도 서비스 기반으로 정보가 교환될 수 있다. 따라서, 정적 서비스로 적용된 서비스 편집 서비스(500)에 대하여, 상기 서비스 관리서버는 요구자로 지정되고, 상기 특장형 프로그램(230)은 제공자로 지정되어, 앞서 언급한 바와 같이, 상기 서비스 관리서버가 상기 특장형 프로그램(230)에, 서비스 편집 서비스의 추가 메소드를 호출함으로써, 특정의 액션 세트들로 이루어진 유동 서비스가 상기 관문 기기(20G)에서 서비스 기반으로 제공되게 할 수 있다.
이 경우, 내부 네트워크(1) 상의 서비스 기반 동작에 대해, 서비스 프로파일(211)이, 상기 관문 기기(20G) 상의 상기 특장형 프로그램(230)을 서비스 편집 서비스(500)에 대해 요구자로 지정하고 있으면, 상기 특장형 프로그램(230)은, 서비스 편집 서비스(500)에 대해 요구자인 동시에 제공자가 되어야 한다. 서비스 기반의 네트워크에서, 임의의 한 서비스에 대해서 요구자와 제공자가 동시에 지정될 수 없으므로, 상기 기능 처리부(231)는, 내부 네트워크(1)에 대해 서비스 기반으로 동작하는 서브(sub) 기능부(231A)( 이하, '내향 서브 기능부'라 칭한다. )와 외부 네트워크에 대해 서비스 기반으로 동작하는 서브 기능부(231B)( '외향 서브 기능부'라 칭한다. )로 서로 분리된 기능 모듈들을 포함하여 구성된다. 이들은, 자신이 서비스 기반으로 정보 교환 시에 이용하는 네트워크가 아닌 타 네트워크에 대해서는, 탐색되거나 참가하지 않도록 격리되어 있으며, 이들 간에는 미리 정해진 내부 데이터 채널 등을 통해 필요한 데이터나 정보를 주고 받게 된다.
본 발명에 따른 다른 일 실시예에서는, 상기 기능 처리부(231)를 구성하는 서브 기능부들(231A,231B)이 타 네트워크에 대해서 격리되지 않을 수도 있다. 이를 위해서, 상기 기능 처리부(231)가 동시에 제공자와 요구자가 되는 서비스, 즉 서비스 편집 서비스에 대해서, 서로 다른 서비스 식별자가 할당되어 서비스 기반의 정보 교환에 적용되게 한다. 구체적으로는, 서비스 식별자가 각기 '0x1000'과 '0x2000'으로 지정된, 동일한 메소드 세트의 서비스 편집 서비스가 반영된 서비스 인터페이스 규칙에 의해 생성된 인터페이스 코드 모듈과 함께 빌드시킨 특장형 프로그램들이, 네트워크로 연결된 기기들에 이식되어 동작되도록 한다.
그리고, 상기 관문 기기(20G)의 경우에는, 상기 서비스 프로파일(211)이, 서비스 식별자가 '0x1000'인 서비스 편집 서비스에 대해서 내향 서브 기능부(231A)을 요구자로, 서비스 식별자가 '0x2000'인 서비스 편집 서비스에 대해서 외향 서브 기능부(231B)을 제공자로 지정하도록 설정된다.
본 실시예에서도, 상기 서브 기능부들(231A,231B) 간에는, 앞서 언급한 바와 같이, 내부 데이터 채널을 통해 필요한 데이터나 정보를 주고 받게 되며, 이들 간에는 서비스 기반의 메시지 교환을 수행하지 않는다. 그리고, 외부 네트워크에 대해서 서비스 기반으로 정보 교환하도록 구성된 상기 외향 서브 기능부(231B)이, 서비스 편집 서비스( 위의 예에서, 서비스 식별자='0x2000' )에 대해서 제공서비스 안내 메시지를 내부 네트워크(1)로도 방송하게 되지만, 내부 네트워크(1)에 연결된 기기들에 이식되어 동작하는 특장형 프로그램들은, 그 서비스에 대해서 요구자로 지정되어 있지 않음으로써, 그 서비스에 대해 유일하게 요구자로 지정된 외부의 서비스 관리서버만이 그 서비스 편집 서비스의 메소드를 상기 특장형 프로그램(230)에 호출할 수 있게 된다.
본 발명에 따른 다른 일 실시예에서는, 상기 네트워킹부(233)가, 상기 서비스 관리서버와 클라이언트(요청)-서버(응답) 방식으로 서비스 편집 서비스와 관련된 정보를 주고 받을 수도 있다. 본 실시예의 예로서, 상기 네트워킹부(233)는, HTTP (Hyper Text Transfer Protocol) 방식에 따라 상기 서비스 관리서버와 통신하는 모듈일 수 있다.
본 실시예에서는, 상기 서비스 관리서버가 정보 교환의 기반화를 위한 서비스에 관한 정보를 상기 관문 기기(20G)로 전송할 수 있도록 하기 위해, 상기 네트워킹부(233)는, 상기 서비스 관리서버가 서비스에 관한 정보를 푸쉬(push)할 수 있도록, 필요할 때마다, 예를 들어 주기적으로 상기 서비스 관리서버에 질의를 하게 되며, 상기 서비스 에이전트(232)가 전달하는 서비스 기반의 메시지에 대해서는, 상기 서비스 관리서버와 기 약속된 형식의 HTTP 메시지로 구성하여 상기 서비스 관리서버에 전송한다.
상기 서비스 관리서버는, 상기 관문 기기(20G)의 네트워킹부(233)로부터의 질의에 대한 응답을 일정 시간 보류하고, 그 보류 상태에서, 상기 관문 기기(20G)로 전송할 서비스에 관한 정보, 예를 들어, 상기 네트워킹부(233)가 서비스 편집 서비스의 추가 메소드에 해당하는 것으로 판별하게 될 정보가 생성되면, 이를 상기 질의에 대한 응답에 실어서 푸쉬하게 된다. 실시예에 따라서는, 상기 생성되는 정보가 곧 서비스 편집 서비스의 추가 메소드에 해당하는 메시지일 수도 있다.
상기 네트워킹부(233)는, 이렇게 푸쉬된 HTTP 응답에서 서비스에 관한 정보를 획득하여 서비스 기반의 어떤 액션인지를 파악한다. 물론, 이 과정에서, HTTP 응답에서 지정된 자원식별자( URL:Uniform Resource Locator )를 이용하여, 서비스에 관한 정보( 또는 서비스 기반 메시지 그 자체 )가 담긴 파일을 다운로드한 후 그 파일의 데이터에서 서비스 기반 메시지를 추출하거나, 서비스 편집 서비스의 어떤 액션을 호출하는 정보인지를 판별할 수도 있다. 상기 네트워킹부(233)는, 외부 네트워크를 통해 획득한 서비스에 관한 정보가 요구하는 서비스 기반 메시지를 구성하여 상기 서비스 에이전트(232)에 전달한다.
상기 관문 기기(20G)와 상기 서비스 관리서버 간에 서비스 기반의 정보 교환 또는 서비스에 관한 정보의 송수신이 이루어지게 하기 위한, 상기 네트워킹부(233)의 외부 서버와의 통신 방법에 대한 설명에서 예시한 구체적인 통신 방식은, 서버와의 커넥션을 유지하는 경우와 요청-응답의 방식으로 상호 통신하는 경우에도, 서비스 기반의 통신 또는 서비스 기반화를 위한 정보의 전달이 가능하다는 것에 대한 예시일 뿐이고, 본 발명은, 이들 통신방식에 의해서만 실시될 수 있는 것은 아니다. 클라이언트와 서버 간의 통신 경로를 일시적으로 형성할 수 있는 모든 통신방식을 적용할 수 있으며, 이때, 상기 네트워킹부(233)는 서비스 기반의 메시지를 그 적용된 통신방식에 적응시키는 구성을 가지게 된다.
또한, 앞선 설명에서 예시한 바와 같이, 본 발명은, 상기 관문 기기(20G), 즉 상기 특장형 프로그램(230)과 상기 서비스 관리서버 간에 반드시 서비스 기반의 통신이 이루어져야 하는 것을 전제하지 않는다. 따라서, 본 발명에 따른 다른 일 실시예에서는, 상기 서비스 에이전트(232)가 상기 특장형 프로그램(230)에 구비되지 않을 수 있다. 대신, 클라이언트-서버 간에 일반적으로 이루어지는 요청-응답의 방식의 의해 서버로부터 정보를 획득할 수 있는 임의의 통신모듈이 상기 특장형 프로그램(230)에 구비될 수 있다. 이와 같은 실시예에서는, 이 임의의 통신모듈이, 상기 서비스 관리서버로부터, 유동 서비스의 편집에 필요한 정보, 즉, 유동 서비스의 서비스 사양과 유동 서비스의 추가, 갱신 또는 삭제를 지시하는 정보를 획득하고, 그 획득된 정보를, 각 항목별로 상기 특장형 프로그램(230)에 전달할 수 있는 프로그램 인터페이스를 구비하기만 하면 된다.
한편, 상기 네트워킹부(233) 또는 상기 임의의 통신모듈은, 상기 특장형 프로그램(230)이 서비스 기반의 정보 교환을 통해, 내부 네트워크(1)에 연결된 임의의 기기, 보다 구체적으로는, 추가된 유동 서비스의 제공자로부터 획득한 특정 상태변수(들)에 대한 정보를, 서비스 기반으로 또는 상기 서비스 관리서버와 기 약속된 방식과 형식으로 상기 서비스 관리서버에 전송하는 동작도 수행한다. 이 동작을 포함하여, 이하에서는, 외부의 서버가 개입되어, 임의 장치 내의 특정 기기에 유동 서비스가 추가되고, 그 추가된 유동 서비스의 호출을 통해, 외부의 서버가 필요한 상태 변수에 대한 정보가 그 서버에 제공되는 과정에 대해 도 11을 참조하여 구체적으로 설명한다.
도 11은, 본 발명의 일 실시예에 따라, 외부 서버에 의해, 임의 장치 내의 기기들 간의 정보 교환의 기반이 되는 서비스가 변경되고 또한 이용되는 과정을 예시적으로 보여주는 신호 흐름도이다. 도 11은, 정보 교환의 기반이 되고 있는 서비스의 변경의 예로서, 기존 서비스에 새로운 서비스를 추가하는 것을 보여주고 있지만, 유동 서비스의 갱신, 삭제 또한 동일한 원리와 과정에 따라 진행되므로, 유동 서비스 추가를 예로 한 신호 흐름도를 참조하여 하는 이하의 설명은, 유동 서비스에 대한 다른 액션에도 준용될 수 있다.
먼저, 임의의 장치(400)에 생성할 서비스, 즉, 기존의 정적 서비스에 더하여 새로이 추가할 유동 서비스에 대한 내용, 즉 서비스 사양이 상기 서비스 관리서버에서 확정된다(P01). 물론, 이 서비스 사양의 확정에는, 상기 임의의 장치 내의 기기들(20X,20G)이 기반하고 있는 정적 서비스들에 대하여 모든 내용을 파악하고 있는 개발자/운용자들이 개입된다.
확정된 유동 서비스가 정의된 내용을 나타내는 서비스 사양정보가 제공된 상태에서, 서비스 관리서버(500)의 운용자로부터 적절한 명령이 있으면, 상기 서비스 관리서버(500)는, 그 유동 서비스의 서비스 사양정보를 입력 파라미터에 포함하는 서비스 편집 서비스의 추가 메소드를 구성한다. 이 메소드 구성 시에, 입력 파라미터의 공여 항목(811)에는, 추가 메소드를 호출당하는, 즉 서비스 편집 서비스의 제공자로 지정된 관문 기기(20G)를 '제공자'로 지정하는 값을 기록한다. 상기 서비스 관리서버(500)는, 상기와 같이 구성된 추가 메소드의 메시지를 상기 관문 기기(20G)로 전송한다(S02)
상기 관문 기기(20G)는, 보다 구체적으로는, 상기 특장형 프로그램(230)의 외향 서브 기능부(231B)는, 그 수신된 메시지에 대해서, 메시지 고유 정보로부터 추가 메소드로 판별하고, 그에 따라 입력 파라미터에 실려 있는 정보를, 각 항목별로 구분하여 확인한 후, 그 확인된 내용의 서비스 사양에 맞는 유동 서비스가, 정보 교환의 기반으로 이용되게 하는데 필요한 정보나 변수 등을 설정함으로써, 그 유동 서비스를 생성하여 적용되도록 한다(P03). 예를 들어, 동 기기 내의 상기 서비스 에이전트(232)와 주고받을 수 있는 서비스 기반의 메시지들에 대해서, 서비스의 고유 정보 별로 구분하여 저장하고 있는 활성 서비스 배열(array)에, 새로이 생성된 유동 서비스의 엔트리를 그 배열의 요소로 추가한다.
그리고, 상기 외향 서브 기능부(231B)는, 제공자로 지정되어 추가된 그 유동 서비스에 대해서, 서비스 시작을 상기 서비스 에이전트(232)에 요청한다. 상기 서비스 에이전트(232)는, 이 서비스 시작 요청에 따라, 요청된 서비스 식별자에 대한 제공서비스 안내 메시지를 주기적으로 전송한다. 본 발명에 따른 다른 일 실시예에서는, 상기 외향 서브 기능부(231B)가 전송하는 제공서비스 안내 메시지의 수신지는 상기 서비스 관리서버(500)로 정해져 있으므로, 상기 서비스 에이전트(232)는, 제공서비스 안내 메시지를 전송하지 않고, 상기 수신된 서비스 시작 요청을 무시할 수도 있다.
또한, 상기 외향 서브 기능부(231B)는, 추가 요청된 유동 서비스를 생성한 후, 수신된 서비스 편집 메소드에 대하여 '긍정'의 응답 메시지를 전송하도록 상기 서비스 에이전트(232)에 요청하고, 이에 따라, 서비스 편집 서비스의 추가 메소드에 대한 응답이 상기 관문 기기(20G)로부터 상기 서비스 관리서버(500)로 전송된다(S04)
본 발명에 따른 다른 일 실시예에서는, 상기 서비스 관리서버(500)로부터의 서비스 추가 메소드의 호출에 대한 응답을, 이후에 설명하는, 추가 요청된 유동 서비스에 대해 최종적으로 '제공자'로 지정된 기기로부터의 서비스 편집 서비스에 대한 응답이 수신된 후에 할 수도 있다(S09).
한편, 상기 외향 서브 기능부(231B)는, 추가 요청된 유동 서비스를 생성하여 서비스 기반으로 적용되게 한 후, 그 유동 서비스를 생성하게 한 서비스 편집 메소드에 대한 정보를 모두 상기 내향 서브 기능부(231A)에 전달한다. 이때의 전달은, 서비스 기반에 의한 전달일 필요는 없으며, 자신이 그 메소드를 분석하여 얻은 정보를, 상기 내향 서브 기능부(231A)와 미리 약속된 항목별로 할당하여 전달할 수도 있다.
본 발명에 따른 일 실시예에서는, 이 전달 과정에서, 서비스 고유 정보는 제거되고, 메소드 액션 항목만이 전달될 수도 있다.
상기 내향 서브 기능부(231A)는, 상기 외향 서브 기능부(231B)로부터 전달받은 정보에 근거하여, 그 정보에 포함된 유동 서비스를, 상기 외향 서브 기능부(231B)와 마찬가지 방식으로 생성하여 적용되게 하되, 자신이 서비스 편집 서비스에 대해 '요구자'로 지정되어 있으므로, 그 생성하는 유동 서비스에 대해서도 '요구자'로 지정하여 생성한다(P05).
상기 내향 서브 기능부(231A)가 유동 서비스를 생성하여 적용하게 할 때는, 상기 서비스 인터페이스부(202)가 동작 시에 참조하게 되는 서비스 인터페이스 관련 변수들도 그에 맞게 변경된다. 예를 들어, 확인할 서비스/액션 항목의 고유 정보에도 추가된 유동 서비스의 해당 정보들이 반영되고, 또한, 추가된 각 액션 항목의 구조를 나타내는 정보도 추가된다. 각 액션 항목에 대해서, 상기 내향 서브 기능부(231A)가 호출할 수 있게 하는 프로그램 인터페이스도 배열 형식으로 동적 할당될 수도 있다.
상기 내향 서브 기능부(231A)는, 요구자로서 유동 서비스를 생성한 후에, 그 유동 서비스 식별자를 상기 서비스 인터페이스부(202)에 전달하면서, 필요 서비스의 등록을 요청한다. 이 등록 요청은, 상기 서비스 인터페이스부(202)에 의해, 상기 서비스 플랫폼 모듈(300)이 요구하는 데이터 형식으로 변환되어 상기 서비스 플랫폼 모듈(300)에 인가된다.
상기 서비스 플랫폼 모듈(300)은, 이렇게 등록된 필요 서비스에 대해서는, 네트워크로부터 제공서비스 안내 메시지가 수신되는지를 모니터링한다. 만약, 기 정해진 시간 내에, 등록된 필요 서비스에 대한 제공서비스 안내 메시지가 수신되지 않으면, 그 서비스 식별자를 담은 서비스 탐색 메시지를 네트워크로 발송하게 된다. 이와 같은, 상기 서비스 플랫폼 모듈(300)의 서비스 디스커버리(discovery) 과정에 의해, 상기 서비스 플랫폼 모듈(300)은, 동 기기에서 동작하고 있는 상기 특장형 프로그램(230)을 포함하는 응용 프로그램들이 필요로 하는 서비스가 현재 네트워크 상에서 제공되고 있는지 여부와, 어떤 기기에서 제공되고 있는지를 파악하고 있게 된다.
한편, 상기 내향 서브 기능부(231A)는, 추가 요청된 유동 서비스에 대해서 '요구자'로서 생성하여 적용한 후, 필요 서비스의 등록을 상기 서비스 인터페이스부(202)에 요청하기에 앞서, 상기 외향 서브 기능부(231B)로부터 전달받은 정보를, 도 8a에 예시된 바와 같이, 추가 메소드의 입력 파라미터의 형식으로 구성하여 상기 서비스 인터페이스부(202)에 전달하면서, 서비스 편집 서비스의 추가 메소드를 호출한다. 이때 입력 파라미터로 구성되는 추가할 유동 서비스에 대한 공여 항목(811)에 대해서는, '제공자'로 지정하게 된다. 상기 서비스 인터페이스부(202)는, 이 호출에 수반된 입력 파라미터, 즉, 공여 항목과 유동 서비스를 정의하는 서비스 사양정보를 사용하여, 호출된 액션에 해당하는 메시지를, 도 8b에 예시된 바와 같이 구성하여, 데이터 배열부(203)를 통해 상기 서비스 플랫폼 모듈(300)에 인가한다.
만약, 상기 외향 서브 기능부(231B)로부터 전달받은 유동 서비스에 대한 정보가, 그 서비스에 대해 '요구자'로 지정되어 있을 때는, 입력 파라미터로 구성한 유동 서비스에 대하여 공여 항목을 '요구자'로 지정할 수도 있다. 그리고, 이런 경우에는, 상기 내향 서브 기능부(231A)는, 그 전달받은 정보가 정의하고 있는 유동 서비스에 대해 자신에게 생성하지 않고, 이하에서 설명하는 방법에 따라, 서비스 편집 서비스의 제공자로 지정된 기기로 전송할 수도 있다. 추가하는 유동 서비스에 대해 요구자로 지정된 경우의 실시예에 대한 구체적인 설명은 후술한다.
상기 서비스 플랫폼 모듈(300)은, 앞서 설명한 동작에 따라, 필요 서비스가 어떤 기기에서 제공되고 있는지를 알고 있으므로, 메시지의 헤더(82)에 기록되어 있는 서비스 편집 서비스의 서비스 식별자로부터, 그 메시지의 목적지 기기(20X)를 바로 결정하고, 그 결정된 목적지 기기(20X), 즉 서비스 편집 서비스에 대해 '제공자'로 지정된 기기( 이하, '목표 기기'라 칭한다. )로 전송함으로써, 서비스 추가 메소드를 호출한다(S06).
이와 같은 방식으로 상기 관문 기기(20G)가 전송한 서비스 추가 메소드의 메시지를 상기 목표 기기(20X)가 수신하게 되면, 그 기기, 보다 구체적으로는 그 목표 기기(20X)에서 동작하고 있는 특장형 프로그램은, 전술한 방법과 동일한 방법으로, 그 추가 메소드에 실린 서비스 사양정보로써 정의된 유동 서비스에 대해 자신을 제공자로 지정하여 생성한다(P07). 그리고, 추가 요청된 유동 서비스의 생성 후에는, 그 호출된 메소드에 대한 응답 메시지를 구성하여 상기 관문 기기(20G)로 전송한다(S08).
이상에서 구체적으로 설명한 과정에 따라, 임의 장치(100)의 외부에서, 기존의 정적 서비스에 추가할 유동 서비스가 확정되고, 그 확정된 유동 서비스가, 정적 서비스로서 그 임의 장치(400)의 기기들에 이미 기반화되어 있는 서비스 편집 서비스를 이용하여, 특정의 목표 기기에 의해 새로이 제공될 수 있게 된다. 이는, 곧, 기존의 서비스에 기반해서는 알 수 없었던, 새로이 추가된 유동 서비스에 연관지어진 상태 변수의 현재 값을, 이하에서 설명하는 과정에 따라, 필요한 시점에 실시간으로 외부에서 파악할 수 있게 되었음을 의미한다.
전술한 바와 같이 유동 서비스가 새로이 서비스 기반으로 이용될 수 있도록 한 후에, 외부의 서비스 관리서버(500)의 운용자가 그 유동 서비스, 또는 그 유동 서비스의 하나의 액션에 연계시킨 임의의 상태 변수에 대한 확인을 상기 서비스 관리서버(500)에 요청하면(P11), 상기 서비스 관리서버(500)는, 앞서 정의한 유동 서비스에서, 해당 상태 변수에 연관지어진 액션, 예를 들어, 메소드 또는 필드를, 그 유동 서비스에 대해 '제공자'로 지정된 상기 관문 기기(20G)에 호출한다(S12). 메소드 또는 필드의 액션 대신, 그 상태 변수에 연계된 이벤트가 속하는 이벤트 그룹에의 가입이 요청될 수도 있다.
상기 서비스 관리서버(500)의 호출에 따라 전송된 유동 서비스의 액션에 해당하는 메시지는, 전술한 바와 같이 상기 외향 서브 기능부(231B)에 의해 수신되고, 그 외향 서브 기능부(231B)는, 그 메시지의 내용을 그대로 상기 내향 서브 기능부(231A)로 전달한다. 상기 관문 기기(20G)에서 동작하는 상기 특장형 프로그램(230), 특히 상기 외향 서브 기능부(231B)는, 추가 요청된 유동 서비스에 대해 비록 '제공자'로 지정되어 생성하였지만, 이는, 단지 유동 서비스에 대한 생성이나 이용의 중계를 위한 것이고, 관문 기기는, 그 용도의 특성 상, 유동 서비스에 연관되어진 상태 변수를 실제 전담하지 않을 것이므로, 상기 외향 서브 기능부(231B)는, 호출된 액션에 대해 응답을 하지 않고, 유동 서비스에 대해 호출된 액션의 정보를 상기 내향 서브 기능부(231A)로 전달하게 된다.
물론, 예시된 실시예와는 달리, 상기 관문 기기(20G)도 상기 임의 장치(400)의 상태 변수들 중 극히 일부를 전담하도록 회로 연결될 수도 있다. 이런 환경에서, 만약, 상기 관문 기기(20G)가 전담하는 상태 변수에 대해서, 전술한 바와 같이 유동 서비스가 추가된 경우라면, 상기 외향 서브 기능부(231B)는, 유동 서비스에 대해 호출한 액션에서 요구하는 상태 변수에 대해서, 직접 그 값을 바로 확인하거나, 또는 상기 내향 서브 기능부(231A)가 획득하여 서로 공유하는 저장공간에 기록한 값을 바로 확인하여, 응답 메시지의 출력 파라미터에 실어서 상기 서비스 관리서버(500)로 전송하는 응답을 할 수 있다.
상기 내향 서브 기능부(231A)는, 전달된 액션의 정보를 이용하여, 추가된 유동 서비스의 해당 액션에 대해, 유동 서비스의 추가 시에 적용하도록 기 약속된 인터페이스 방식에 따라 상기 서비스 인터페이스부(202)를 호출함으로써, 그 액션에 해당하는 메시지가, 그 유동 서비스에 대해 '제공자'로 동작하고 있는 상기 목표 기기(20X)로 전송되게 한다(S13).
추가된 유동 서비스의 액션에 해당하는 메시지를 수신한 상기 목표 기기(20X)는, 보다 구체적으로는, 그 기기에서 동작하고 있는 특장형 프로그램은, 그 수신된 메시지를, 유동 서비스의 추가 시에 자신에게 설정된, 유동 서비스의 구조 정보에 의거해 항목들을 분석하여, 어떤 식별자의 변수에 대한 값의 요구인지를 확인하고, 그 변수의 현재 값을 획득한다(P14). 그리고, 이렇게 획득된 해당 변수의 현재 값을 출력 파라미터로 포함하는, 해당 액션의 응답 메시지를 구성하여, 그 액션을 호출한 상기 관문 기기(20G)에 응답으로 전송한다(S15).
이 응답 메시지에 실린 출력 파라미터의 정보는, 상기 관문 기기(20G)의 상기 내향 서브 기능부(231A)를 거쳐 상기 외향 서브 기능부(231B)로 전달되고, 상기 외향 서브 기능부(231B)는, 그 전달된 응답 정보에 근거하여, 그 출력 파라미터의 값을 포함하는, 앞서 자신에게 호출된 유동 서비스에 대한 액션에 대한 응답 메시지를 구성하여, 상기 서비스 관리서버(500)에 응답으로 제공하게 된다(S16).
한편, 상기 관문 기기(20G)의 유동 서비스에 대한 호출(S13)이, 그 유동 서비스로 묶인 상태 변수에 연계된 이벤트가 속하는 이벤트 그룹에의 가입 요청일 수도 있다. 이 경우에는, 도면에 예시된 유동 서비스 호출에 대한 응답(S15)이, 그 가입의 요청을 처리하고 전송하는 가입 응답( Subscribe Ack )을 나타내는 것이 아니고, 그 가입 요청된 이벤트 그룹에 속하는 이벤트가 발생했을 때, 그 이벤트에 연계된 상태 변수의 값을, 그 유동 서비스의 액션인 이벤트로 전송하는 것을 나타낸다. 상기 서비스 관리서버(500)와 상기 관문 기기(20G) 간에 송수신되는 유동 서비스의 호출에 대한 응답(S16)의 경우도 동일하다.
본 발명에 따른 다른 일 실시예에서는, 상기 관문 기기(20G)가 외부로부터 액션 호출을 요청하는 정보의 수신없이, 새로이 기반화된 유동 서비스에 대해서 자체적으로 호출하여 그 유동 서비스의 제공자인 상기 목표 기기(20X)에 인가할 수도 있다. 보다 구체적인 예로서, 상기 내향 서브 기능부(231A)는, 자신을 요구자로 지정하여 기반화시킨 유동 서비스의 각각의 액션을 호출하고, 또는 이벤트 가입을 요청하고, 그에 따라 상기 목표 기기(20X)가 응답하는 내용을 취합하거나, 또는 통보되는 이벤트의 정보를 취합하여, 상기 서비스 관리서버(500)에 유동 서비스 기반화 결과로서 제공할 수도 있다.
도 11을 참조하여 구체적으로 설명한, 상기 임의 장치(400) 내에 정적 서비스에 새로운 서비스를 추가하고, 그 추가된 서비스를 이용해 그 장치(400)의 상태 등과 관련된 정보를 획득하는 과정에서, 상기 관문 기기(20G)와 상기 서비스 관리서버(500) 사이의 정보 교환은, 앞서 구체적으로 설명한 서비스 기반으로 이루어지지 않아도 무방하다. 즉, 클라이언트와 서버 간에 일반적으로 적용되는 통신 방식에 의해, 이들 간에, 추가할 유동 서비스의 서비스 사앙정보, 유동 서비스 액션의 호출 정보, 그리고 이들 정보의 처리에 따른 결과 정보가 전달되어도 무방하다. 또한, 이들 간에 실시간으로 정보 교환이 이루어지는 것이 바람직하지만, 반드시 충족되어야만 하는 사항은 아니다.
지금까지는, 차량과 같은 임의의 장치에 네트워크로 서로 연결되어 장착되는 기기들에서, 미리 적용된 서비스 편집 서비스를 이용해 향후에 필요한 유동 서비스를 추가함으로써, 장치의 상태 등을 나타내는 변수를 그 유동 서비스에 기반하여 확인할 대상이 되는 기기가 단일임을 전제로 하여 설명하였다. 다시 말하면, 전술한 실시예들은, 네트워크로 연결된 복수의 기기들에서, 하나의 기기만이, 서비스 편집 서비스에 기반하여 정보 교환이 가능하도록 구현되고, 또한 서비스 편집 서비스에 대해 '제공자'로 서비스 프로파일에 지정된 특장형 프로그램이 그 기기에서 동작함을 전제한 것이다. 이러한 전제는, 네트워크로 연결된 기기들 간에 서비스 기반으로 정보를 교환함에 있어서, 하나의 서비스는 하나의 기기에 의해서만 제공되어야 하는 요건에 따른 것이다.
위 제공서비스 단일성의 전제로 인해, 서비스 편집 서비스에 기반하여 정보 교환이 가능하도록 구현되고, 또한 그 서비스 편집 서비스에 대해 '요구자'로 지정된 특장형 프로그램이, 외부와 직접 정보 교환을 수행할 수 있는 관문 기기에서 동작하는 동안에, 외부로부터 서비스 편집 서비스의 메소드가 호출되었을 때, 그 메소드의 메시지를 최종적으로 전송할 목표 기기(20X)가, 그 서비스 편집 서비스의 제공자 기기로 자연히 결정되며, 종국적으로 그 목표 기기(20X)가 추가하는 유동 서비스의 제공자로 기능함으로써, 유동 서비스의 액션 호출을 통해, 그 목표 기기(20X)가 전담하는 임의의 상태 변수의 값을 확인할 수 있게 된다.
따라서, 서비스 편집 서비스를 제공자로서 기반화하는 기기는, 임의의 장치에서 가장 많은 상태 변수들 전담하는 기기, 예를 들어 앞서 언급한 바 있는 서비스 어댑터부(205)를 포함하는 특장형 프로그램이 이식된 기기인 것이 바람직하다.
앞선 설명에서의 전제와 같이, 서비스 편집 서비스를 제공자로서 기반화하는 기기를 하나로 하면, 향후에 추가로 확인코자 하는 상태 변수들도 그 기기로 제한되므로, 둘 이상의 기기들의 전담 상태 변수들까지 향후 확인가능하도록 하는 것이, 장치의 성능 개선, 또는 안전성이나 신뢰성 등을 향상시키는데 있어 유리할 수 있다.
도 12는, 복수의 기기들에 대해 모두 유동 서비스의 추가가 가능하도록 서비스 편집 서비스가 각기 기반화된 복수의 기기들이 연결된 네트워크의 구성에 대하여, 서비스 편집 서비스를 개념화하여 도시한 것이다.
도 12는, 연결된 기기들이 서로 통신할 수 있는 네트워크를 제공하는 스위치(10)와, 그 스위치에 각기 연결되어, 서비스 기반으로 서로 정보 교환을 하도록 구성된 기기들(20i, i=1,2,..,k,.., 20G)로 구성된 네트워크 시스템이며, 각 기기(20i, i=1,2,..,k,..)의 특장형 프로그램에는 서비스 편집 서비스가 제공자로서 기반화되어 있다(110k).
그리고, 본 실시예에서는, 각 기기(20i, i=1,2,..,k,..)에 기반화된 서비스 편집 서비스가, 할당된 서비스 식별자에 있어서 상이하고, 액션 세트는 모두 동일한 서비스들이다. 따라서, 각 기기(20i, i=1,2,..,k,..)에 대한, 서비스 편집 서비스의 액션 호출, 즉, 추가, 갱신 또는 삭제 메소드의 호출이, 아무런 차이없이 작용할 수 있다. 물론, 해당 기기에 맞는, 즉 해당 기기가 전담하는 상태 변수들과 연관된 유동 서비스를 정의하는 서비스 사양정보는, 서비스 편집 메소드의 입력 파라미터에 실려서 전달되므로, 서비스 편집 메소드의 입력 파라미터는 기기 별로 당연히 달라지게 된다.
또한, 호출된 서비스 편집 서비스에 대하여, 해당 목표 기기를 특정하여, 호출하고자 하는 액션에 해당하는 메시지를 전송할 수 있도록, 관문 기기(20G)에도 서비스 편집 서비스가, 서로 다른 서비스 식별자의 서비스 편집 서비스의 수만큼 모두 요구자로서 기반화되어 있다(120). 도면에는 도시되어 있지 않지만, 외부의 서비스 관리서버(500)와 서비스 기반으로 정보 교환을 하도록 구현되는 실시예인 경우에는, 상기 관문 기기(20G)에 요구자로 기반화되어 있는 서비스 편집 서비스에 각기 대응하여, 서비스 관리서버(500)와의 정보 교환에 이용되는 서비스 편집 서비스가 제공자로 기반화되어 있게 된다.
따라서, 상기 관문 기기(20G)에서 동작하는 특장형 프로그램(230)은, 외부의 서비스 관리서버(500)가 호출하는 서비스 편집 서비스의 액션에 대해 그 서비스 식별자를 확인하여, 그 서비스 식별자에 대응하는 서비스 식별자로써 해당 액션, 즉 메소드를, 관문 기기(20G) 내의 서비스 플랫폼 모듈에 호출함으로써, 유동 서비스의 적용을 원하는 목표 기기가 특정되어 해당되는 메시지가 전송된다. 이는, 이미 앞서 설명한 바와 같이, 각 기기의 서비스 플랫폼 모듈이, 서비스 식별자에 의해 구분되는 서비스 제공자를 디스커버리 과정을 통해 파악하고 있기 때문이다.
본 발명에 따른 다른 일 실시예에서는, 서비스 편집 서비스에 대하여, 서비스 기반의 정보 교환을 위해 수행하는 디스커버리 동작에서 제공자가 확인되지 않도록 할 수도 있다. 즉, 서비스 편집 서비스에 대하여 제공자로 지정된 특장형 프로그램은, 서비스 편집 서비스에 대해서는, 제공자로 지정된 다른 서비스들과 달리, 동 기기 내의 서비스 플랫폼 모듈에 서비스 시작 요청을 하지 않을 수 있다. 이렇게 서비스 시작 요청을 하지 않으면, 서비스 편집 서비스에 대해서는, 제공서비스 안내 메시지의 주기적인 발송이 이루어지지 않으므로, 네트워크 상에는, 서비스 편집 서비스의 제공자가 노출되지 않는다.
서비스 편집 서비스의 제공자가 네트워크에 노출되지 않는 상기 실시예에서는, 상기 관문 기기(20G)는, 서비스 편집 서비스에 대하여 제공자로 지정된 각 기기에 대하여, 해당 서비스 편집 서비스의 서비스 식별자와 IP주소를 연계시킨 서비스 제공처 목록을 기 구비하고 있게 된다. 따라서, 본 실시예에서는, 상기 관문 기기(20G) 내의 상기 특장형 프로그램(230)은, 외부의 서비스 관리서버(500)가 호출하는 서비스 편집 서비스의 액션에 대해, 그 서비스 식별자를 상기 서비스 제공처 목록에서 확인하여, 그 액션을 호출할 목표 기기를 특정하게 된다.
도 12에 예시된 바와 같이, 복수의 기기들에 이식되어 동작하는 특장형 프로그램들이 서비스 식별자를 서로 다르게 지정한 서비스 편집 서비스에 기반하도록 구현하게 되면, 그 기기들이 장착된 임의의 장치의 상태나 성능 파악, 또는 개선 등을 위해 확인, 또는 재설정이 필요해 질 수도 있는 상태 변수의 범위를 크게 확장시킬 수 있게 된다.
도 12에 예시한 실시예에서와 같이, 복수의 기기들에 대해서, 서비스 편집 서비스를 서로 다른 식별자로서 기반화시키는 경우, 본 발명에 따른 일 실시예에서는, 새로이 추가하는 유동 서비스에 대해서, 제공자로 지정하는 기기 외의 적어도 하나의 기기는 요구자로 지정할 수도 있다. 도 13은, 본 실시예에 따라 구성된 네트워크화된 기기들을, 기반화된 서비스를 중심으로 하여 연관된 액션들을 도식화하여 함께 나타낸 것이다.
도 13의 예시된 네트워크 시스템에서는, 외부 서버와의 통신에서의 서비스 관련한 관문 기기(20G)의 부분은 도시되어 있지 않다. 본 실시예에서 설명되지 않는, 앞서 언급한 외부의 서비스 관리서버(500)와의 서비스 관련한 상기 관문 기기(20G)의 구성과 동작은 전술한 실시예에서의 해당 부분이 그대로 원용될 수 있다.
도 13의 네트워크화된 기기들에서, 제 1기기(20P)와 제 2기기(20Q)에는, 정적 서비스에 해당하는 서로 다른 식별자의 서비스 편집 서비스(1311,1312)가 제공자로 지정되어 각기 기반화되어 있고, 상기 관문 기기(20G)에는, 그 서비스에 대해서 요구자로 지정되어 기반화되어 있다.
또한, 본 실시예에 따른 네트워크 시스템에는, 특별한 기능을 하는 기기로서 모니터링 기기(20DB)가 더 포함되어 있다. 상기 모니터링 기기(20DB)는, 서비스 기반으로 정보를 교환하는 기기들의 서비스 기반의 동작과 관련한 정보를 수집하여, 구비된 저장장치에 구조화시켜 기록하고, 주기적으로 통계 데이터를 산출하여 기록하며, 또한, 서비스, 또는 서비스의 액션을 지정한 조회 요청에 대해서는, 구비된 상기 저장장치로부터 요청된 정보를 읽거나, 읽은 정보로부터 요청의 응답에 필요한 정보를 산출하거나 재구성하여 제공하는 등의 동작을 수행한다. 물론, 도면에는 도시되어 있지 않지만, 상기 모니터링 기기(20DB)는, 이러한 기능을 수행하기 위한 적어도 하나의 특장형 프로그램이 이식되어 동작하도록 구현된다.
그리고, 상기 모니터링 기기(20DB)의 전술한 기능을 서비스 기반으로 수행할 수 있도록 하기 위한 정적 서비스인 모니터링 서비스가, 상기 모니터링 기기(20DB)에는 제공자로 지정되고(1321), 그 외 다른 기기들에는 모두 요구자로 지정되어 기반화되어 있다.
도 13에 예시된 바와 같이, 임의의 장치 내에 구성된 네트워크 시스템에 대해서, 외부 서버로부터 서비스 편집 서비스의 추가 메소드에 해당하는 정보( 서비스 편집 서비스의 추가 메소드일 수도 있다. )가 수신되면, 상기 관문 기기(20G)는, 그 수신된 정보가 지정하고 있는 서비스 편집 서비스와 동일한 서비스 식별자의 서비스에 대해 제공자로 지정된 기기, 예를 들어 상기 제 1기기(20P)로, 해당되는 추가 액션을 호출한다(S01). 이때, 추가하는 유동 서비스에 대해, 외부 서버로부터 지정된 공여 항목에 대한 정보( 이 정보는 '제공자'로 지정된 것으로 가정한다. )를 반영하여 서비스 추가 액션을 호출한다. 이 서비스 편집 서비스의 호출에 따라, 상기 제 1기기(20P)에는, 제공자로 지정된 유동 서비스(1331)가 생성되어 기반화에 적용되면서, 그 유동 서비스(1331)의 제공사실이 네트워크로 통보된다.
다음으로, 상기 제 2기기(20Q)가 제공자로 지정된 서비스 편집 서비스에 대하여, 외부 서버로부터, 유동 서비스에 대해 '요구자'로 지정한 추가 메소드에 해당하는 정보를 수신하면, 상기 관문 기기(20G)는, 동일한 방식으로, 상기 제 2기기(20Q)에 대해 서비스 편집 서비스의 추가 메소드를, 공여 항목에 대해 요구자로 지정하여 호출한다(S02). 이 호출에 의해서, 상기 제 2기기(20Q)에는 요구자로 지정된 유동 서비스(1332)가 기반화에 적용된다.
유동 서비스에 대해 요구자로 지정된 상기 제 2기기(20Q)는, 그 유동 서비스에 속한 임의의 액션을 호출하거나, 그 유동 서비스의 이벤트에 대해 가입하게 된다. 유동 서비스가 추가되면, 그 서비스의 액션 세트의 각각의 액션에 대해서 호출하거나 또는 이벤트가 속하는 이벤트 그룹들의 각각에 대해서 가입하도록, 기기들에 이식되어 동작하는 특장형 프로그램들에 미리 그 기능을 구현해 둘 수 있다.
본 발명에 따른 다른 일 실시예에서는, 추가한 유동 서비스의 액션에 관한 동작이 진행되게 하는 메소드가 서비스 편집 서비스에 추가로 정의될 수 있다. 도 14는, 본 실시예에 따라 정의되는 서비스 편집 서비스의 시험 메소드에 대한 인터페이스 규칙을 예시한 것으로서, 이 시험 메소드(1400)은, 시험할 액션 세트(1401)를 포함한다. 그리고, 이 액션 세트(1401)는, 시험하고자 하는 액션, 즉, 이벤트, 메소드 또는 필드를 식별케 하는 식별자 항목이 배열 형식으로 구성된다. 이와 같이 시험 메소드가 정의되는 경우, 그 시험 메소드를 호출할 수 있게 하는 정보는 외부 서버로부터 수신되며, 이 정보는, 시험하고자 하는 유동 서비스에 대해 요구자로 지정하여 호출된 서비스 편집 서비스의 식별자를 포함하고 있으며, 상기 관문 기기(20G)는, 그 정보를 이용하여 해당 서비스 편집 서비스의 제공자 기기( 도 13의 예에서, 제 2기기(20Q) )에 서비스 편집 서비스의 시험 메소드(1400)를 호출하게 된다. 그리고, 상기 제 2기기(20Q)는, 그 호출된 시험 메소드의 액션 세트의 적어도 하나의 식별자를 읽어서, 앞서 기반화된 유동 서비스의 규칙에 기반하여, 해당되는 메소드 또는 필드를 호출하거나, 해당되는 이벤트에 가입하는 동작을 하게 된다.
상기 제 2기기(20Q)가 상기 제 1기기(20P)에 추가된 유동 서비스에 대해 호출하거나 이벤트에 가입하고, 상기 제 2기기(20Q)가 그에 응답하는 동작은, 도 11을 참조로 설명한 과정(S12-S16)과 동일하므로, 여기서의 설명은 생략한다.
그리고, 도 13에 예시된 바와 같이, 네트워크화된 기기들에 모니터링 서비스가 구현된 실시예에서는, 임의의 기기는, 정적 서비스와 추가된 유동 서비스에 대해 그에 속하는 액션을 호출할 때마다, 또는 이벤트와 관련된 동작( 예를 들어, 이벤트 가입, 가입요청에 대한 응답, 이벤트 통지 등 )을 할 때마다, 또는, 서비스 기반의 디스커버리와 관련한 동작( 예를 들어, 서비스 시작요청, 서비스 중지 요청 등 )을 할 때마다, 그 호출이나 동작과 관련된 서비스 또는 액션의 정보를, 모니터링 서비스의 호출을 통해, 예를 들어, 모니터링 서비스의 메소드의 입력 파라미터에 제공하고자 하는 정보를 패킹하여 그 메소드를 호출함으로써, 모니터링 서비스(1321)의 제공자로 지정된 상기 모니터링 기기(20DB)에 제공하도록 구성된다.
따라서, 추가된 유동 서비스에 대한 상기 제 1기기(20P) 및 상기 제 2기기(20Q)의 액션 호출 등에 대한 호출 내용과 응답 내용 등이 모니터링 서비스의 호출을 통해 각각 상기 모니터링 기기(20DB)로 제공되고(S04,S05), 그 제공된 정보는, 상기 모니터링 기기(20DB)에 의해 서비스 및 액션을 기준으로 분류되어 구조화된 데이터베이스에 기록된다.
한편, 외부 서버로부터의 요청에 근거하여, 유동 서비스에 대해 요구자로 지정하여 추가하는 메소드를 호출한 상기 관문 기기(20G)는, 그 추가 요청으로 기 지정된 일정 시간( 예를 들어, 1분, 10분 등 )이 경과하면, 그 추가 요청한 유동 서비스의 식별자를 지정하여 모니터링 서비스의 액션을 호출하여 상기 모니터링 기기(20DB)에 인가함으로써, 그 유동 서비스를 기반한 기기들 간의 정보 교환과정의 결과를 포함하는 내역을 조회 요청한다(S06).
본 발명에 따른 일 실시예에서는, 유동 서비스의 추가 후 그 유동 서비스에 기반한 정보 교환의 내역 조회를 요청하는 시점은, 외부의 서버로부터 상기 관문 기기(20G)에 기 정해진 방식에 따른 요청이 있을 때일 수 있고, 다르게는, 외부의 서버로부터 상기 관문 기기(20G)에 전달되는 시간 정보에 의해 결정되는 시점일 수 있다.
상기 관문 기기(20G)로부터의 모니터링 서비스의 액션 호출에 대해, 상기 모니터링 기기(20DB)는 자신이 구조화하여 저장하고 있는 데이터베이스에서 해당되는 정보를 추출하고, 필요한 경우 그 추출한 정보로부터 그 액션 호출에서 요구하고 있는 정보를 산출하거나 재구성하여, 그 호출된 액션에 대한 응답으로 상기 관문 기기(20G)로 전송한다. 이와 같이 전송된 응답 정보는, 앞서 추가 요청한 유동 서비스가, 추가 시에 의도한 바대로 연관된 상태 변수에 대한 정보 교환의 기반으로 작동하고 있는지 어떤 액션 등에서 문제가 있는지 등을 나타내는 정보일 수 있다. 상기 관문 기기(20G)는, 그 전송된 응답 정보를, 그 유동 서비스의 추가를 요청한 외부의 서버에 제공하게 된다. 이때의 정보 제공은, 앞서 언급한 바와 같이, 서비스 기반의 전송방식일 수도 있고, 아니면, 응답된 정보를 기 정해진 통신방식에 맞게 재구성하여 그 통신방식으로 서버에 업로드하는 방식일 수 있다.
이상에서 설명한 실시예에 따라, 외부의 서버를 통해, 임의의 장치에 대한 새로운 상태 변수에 대한 확인을 할 수 있음은 물론, 실제 그 서비스를 기기들에 추가적으로 기반화시킬 수 있으며, 또한, 실제의 기반화 적용 전에 그 적용에서의 문제의 발생 가능성도 파악할 수 있게 된다.
지금까지 설명한 본 발명에 따른 실시예들은, 서비스 편집 서비스의 추가 메소드의 호출에 의해, 서비스 편집 서비스가 기 적용된 기기에 유동 서비스가 새로이 서비스 기반으로 적용되게 하는 것들이었다. 하지만, 본 발명의 개념과 기술적 사상은, 기 기반화된 서비스 편집 서비스의 호출에 의하지 않고, 유동 서비스가 기기에 새로이 적용되게 하거나 또는 적용된 유동 서비스를 동적으로 변경시키는 방법으로도 그 실시예를 확장시킬 수 있다. 이하에서는, 이와 같이 확장 적용되는 본 발명에 따른 실시예에 대해서 구체적으로 설명한다.
본 실시예에서는, 정적 서비스( 정적 서비스가 없을 수도 있다. )에 더하여 서비스 기반화시킬 유동 서비스들 모두에 대해, 서비스 사양을 각기 수록한 데이터 파일( 이하, '사양 파일'이라 칭한다. )이, 그 서비스 사양에 해당하는 유동 서비스(들)를 적용할 대상 기기의 저장 공간에 기록된다. 본 발명에 따른 다른 일 실시예에서는, 상기 대상 기기의 특장형 프로그램이, 네트워크에 연결된 특정 기기, 예를 들어 상기 관문 기기(20G)에 요청하여 상기 사양 파일을 수신하여 자신이 관리하는 특정 기록공간에 저장할 수도 있다.
상기 사양 파일에 기록되는 각 유동 서비스의 서비스 사양정보는, 도 8에 에시된, 서비스 편집 메소드의 입력 파라미터에 포함되는 페이로드 블록(81)과 동일한 구조와 형식으로 구성될 수 있다.즉, 상기 사양 파일에 기록된 정보는, 새로이 추가할( 또는 갱신할 ) 유동 서비스들의 수만큼의, 도 8의 구조와 형식으로 작성된 서비스 사양정보들이 연속하여 기록된 사양정보의 배열일 수 있다.
본 실시에에서는, 임의의 기기에서 실행될 때, 정해진 기록 공간에서 상기 사양 파일을 확인하고, 그 사양 파일에 기록된 정보를 적용하도록 구현된 실행 개체, 예를 들어, 도 3에 구성이 부분적으로 예시된 기기(20')에서 동작하는 상기 서비스 어댑터부(205) 또는 그 서비스 어댑터부(205)를 포함하는 특장형 프로그램은, 기동 시에 상기 사양 파일에서 읽은 각각의 서비스 사양에 해당하는 유동 서비스에 대해서, 지정된 공여 항목의 정보에 따라 제공자 또는 요구자로 지정하여 서비스 기반으로 적용한다. 물론, 제공자로 지정된 유동 서비스에 대해서는, 동 기기 내의 서비스 플랫폼 모듈에 서비스 시작을 요청하여, 네트워크 상의 타 기기들에게, 해당 유동 서비스의 제공자를 알리도록 한다.
이와 같이 유동 서비스들이 적용되어 정보 교환의 기반으로 이용되고 있는 중에, 상기 사양 파일이 최신의 파일로 갱신되면, 상기 실행 개체는, 새로이 변경된 사양 파일의 서비스 사양정보들을 서비스 기반에 반영한다. 즉, 서비스 기반화된 유동 서비스들을 갱신하게 된다. 상기 사향 파일이 최신의 파일로 갱신된 것은, 상기 실행 개체가, 자신의 기록 공간에 저장된 사양 파일의 기록 일시를 주기적으로 확인함으로써 인지하거나, 또는 네트워크 상의 특정 기기에 대한 주기적인 사양 파일의 요청, 또는 사양 파일의 일시 정보 확인 요청에 대해 응답되는 내용으로부터 인지할 수 있다. 전자의 경우는, 상기 실행 개체가 아닌, 동 기기에서 실행되는 다른 특정 실행 개체가, 후자의 동작을 수행하여 사양 파일이 갱신된 경우에, 상기 실행 개체와 공유하는 기록 공간에 그 갱신된 사양 파일을 새로이 기록하는 실시예에 따른 것일 수 있다.
상기 실행 개체는, 사양 파일이 갱신되었으면, 그 서비스 사양정보를 파싱하여, 유동 서비스들의 서비스 식별자들과, 현재 자신이 정보 교환의 기반으로 적용시킨 유동 서비스들의 식별자들에서 서로 일치하지 않는 서비스 식별자를 확인한다. 그리고, 일치하지 않는 서비스 식별자가, 앞서 적용시킨 유동 서비스에 대한 것이면, 해당 서비스에 대해서는 중지시키고, 갱신된 사양 파일의 유동 서비스에 대한 것이면, 해당 서비스에 대해서는 새로이 정보 교환의 기반으로 적용시킨다.
앞서 적용된 유동 서비스를 중지시키는 경우에, 그 중지시키는 서비스가 제공자로 지정되었던 것이면, 동 기기의 서비스 플랫폼 모듈에 서비스 중지를 요청한다. 이 중지 요청이 있게 되면 서비스 플랫폼 모듈은, 그 유동 서비스에 대해서는, 주기적으로 발송하고 있던 제공서비스 안내 메시지를 네트워크로 발송하지 않게 되고, 이에 따라, 종국적으로 타 기기들도 그 유동 서비스의 제공중단을 인지하게 된다. 요구자로 지정되었던 것일 때는, 당연히 해당 유동 서비스에 대한 호출 동작은 더 이상 수행하지 않고, 그 유동 서비스를 위해 할당하였던 메모리 공간 등의 자원은 회수한다.
갱신된 사양 파일의 서비스 사양정보를 새로이 서비스 기반으로 적용시킨 경우에, 그 유동 서비스가 제공자로 지정되어 있으면, 상기 실행 개체는, 그 유동 서비스에 대해서도, 앞서와 마찬가지로, 서비스 플랫폼 모듈에 서비스 시작을 요청하여, 네트워크 상의 다른 기기들에게 새로운 서비스의 제공사실이 통보될 수 있도록 한다.
이상에서 구체적으로 설명한 본 발명의 일 실시예에 따라, 정보 교환을 서비스 기반으로 수행하는 기기들에 대한, 새로운 유동 서비스의 추가나 제거 등이, 서비스 사양정보를 기록하고 있는 파일의 제공이나 갱신을 통해서도 이루어질 수 있다. 물론, 이 사양 파일은, 전술한 실시예들에서와 마찬가지로, 상기 관문 기기(20G)가 이동 통신망을 통해 기 지정된 특정 서버에 요청하여 수신하거나, 상기 특정 서버가 상기 관문 기기(20G)에 푸쉬함으로써, 내부 네트워크에 연결된 특정 기기 또는 다수의 기기들에 서비스 기반으로 적용시킬 수 있으므로, 본 실시예에 의한 방법에서도, 임의의 장치에 대한 새로운 상태 변수의 확인을 위한 유동 서비스의 제어를 외부에서 행할 수 있다.
다수의 기기들에 대해서 사양 파일을 통해 유동 서비스를 제어하는 경우에는, 각 사양 파일이 적용되어야 할 기기를 특정하는 정보( 기기 고유 일련번호, 할당된 IP 주소 등 )가, 해당 사양 파일의 파일명이나, 수록된 서비스 사양정보들의 전단에 기입되고, 각 기기는, 그 특정하는 정보가 자신의 해당 정보와 일치하는 사양 파일에 대해서만 서비스 기반으로 적용하게 된다.
지금까지 구체적으로 설명한, 본 발명에 따른 네트워크에 연결된 기기들 간의 정보 교환의 기반을 제공하는 서비스를 변경하기 위한 방법에 대한 다양한 실시예들과, 그 실시예에서 설명된 구성 및 작용 등은 서로 양립할 수 없는 경우가 아니라면, 상호 다양한 방식으로 선택적으로 결합되어 실시 가능하다.
이상, 전술한 본 발명의 실시예들은, 예시의 목적을 위해 개시된 것으로, 당업자라면, 이하 첨부된 청구범위에 개시된 본 발명의 기술적 사상과 그 기술적 범위 내에서, 또 다른 다양한 실시예들을 개량, 변경, 대체 또는 부가 등이 가능할 것이다.
20, 20': 기기 20G: 관문 기기
20DB: 모니터링 기기 20P: 제 1기기
20Q: 제 2기기 20X: 목표 기기
21: 셀룰러 모뎀 200, 200C, 200P, 230: 특장형 프로그램
201, 231: 기능 처리부 202: 서비스 인터페이스부
203: 데이터 배열부 204: 로컬 상태 핸들러
205: 서비스 어댑터부 210, 211: 서비스 프로파일
220: 상태 데이터베이스 231A: 내향 서브 기능부
231B: 외향 서브 기능부 232: 서비스 에이전트
233: 네트워킹부 300, 300C, 300P: 서비스 플랫폼 모듈
400: 장치 500: 서비스 관리서버

Claims (31)

  1. 네트워크에 연결된 다른 기기와의 정보 교환에 기반이 되는 서비스를 보완할 수 있는 기기를 포함하는 장치에 있어서,
    상기 기기는,
    상기 다른 기기와의 정보 교환에 기반이 되도록 기 적용된, 특정 서비스를 포함하는 적어도 하나의 서비스가 각기 정하고 있는 하나 이상의 액션(action)의 각각에 해당하는 메시지를 구성하여 상기 네트워크로 전송할 수 있도록 구성되고, 또한, 상기 적어도 하나의 서비스에 속하는 임의의 서비스의 액션에 대한 호출요청이 있으면, 그 호출요청된 액션에 해당하는 메시지를 구성하여 상기 네트워크로 전송되게 하며, 상기 네트워크로부터 수신되는 임의의 메시지에 대해서는 해당되는 액션 내용을 추출하도록 구성된 인터페이스부와,
    상기 임의의 서비스의 액션을 선택하여 상기 인터페이스부에 호출요청하고, 상기 인터페이스부가 추출한 상기 액션 내용에 따른 동작을 수행하도록 구성된 처리부를 포함하여 구성되되,
    상기 특정 서비스는, 그 특정 서비스를 식별케 하는 제 1고유 정보와 입력 파라미터를 포함하도록 지정된 특정 액션을 하나 이상 포함하도록 정해져 있고, 상기 입력 파라미터는, 제 1서비스를 식별케 하는 제 2고유 정보와 상기 제 1서비스의 적어도 하나의 액션을 정의할 수 있는 사양정보를 포함하도록 정해져 있으며,
    상기 처리부는, 상기 추출한 액션 내용이 상기 특정 서비스의 상기 특정 액션이면, 그 특정 액션에 포함된 상기 입력 파라미터로부터 추출한 상기 사양정보에 의해 정해지는, 상기 적어도 하나의 액션을 포함하는 상기 제 1서비스를, 상기 적어도 하나의 서비스와 동일하게 정보 교환의 기반으로 적용되게 하는 것이고,
    상기 사양정보에는, 상기 제 1서비스의 상기 적어도 하나의 액션을 호출하게 되는 요구자로 지정하거나, 아니면 상기 제 1서비스의 상기 적어도 하나의 액션의 호출에 응답하게 되는 제공자로 지정하는 정보를 기록하기 위한 공여 항목이 더 포함되어 있는 것인 장치.
  2. 삭제
  3. 제 1항에 있어서,
    상기 처리부는, 상기 공여 항목의 정보가 제공자로 지정되어 있으면, 상기 인터페이스부에 요청하여, 상기 제 1서비스가 상기 기기에서 제공되고 있음을 알리는 메시지가 주기적으로 상기 네트워크로 발송되게 하는 것인 장치.
  4. 제 1항에 있어서,
    상기 사양정보는, 상기 적어도 하나의 액션의 임의의 한 액션에 포함되어야 하는 입력 파라미터로서, 또는 그 임의의 한 액션에 대한 응답에 포함되어야 하는 출력 파라미터로서 수송되는 값의 크기와 종류를 지정하는 특정 문자열을 포함하도록 정해져 있는 것인 장치.
  5. 제 1항에 있어서,
    상기 특정 서비스는, 정보 교환의 기반으로 적용된 상기 제 1서비스를, 정보 교환의 기반에서 제거하도록 요청하는 액션을 적어도 더 포함하여 정해져 있는 것인 장치.
  6. 제 1항에 있어서,
    상기 특정 액션에는, 상기 제 1서비스가 정보 교환의 기반에서 제거되는 요건에 대한 정보가 더 포함되고,
    상기 처리부는, 상기 요건이 충족되면, 상기 제 1서비스에 대한 호출이 상기 다른 기기에서 발생하지 않도록, 상기 제 1서비스가 제공되고 있음을 알리는 메시지의 상기 네트워크로의 발송이 중단되게 하는 것인 장치.
  7. 제 6항에 있어서,
    상기 요건에는, 지정된 기간의 경과, 상기 적어도 하나의 액션의 호출에 대해서, 정상적으로 수행할 수 없음을 알리는 응답의 발생, 또는 상기 적어도 하나의 액션의 각각에 대해 적어도 한번은 응답한 경우의 발생이 포함되는 것인 장치.
  8. 제 1항에 있어서,
    상기 처리부는, 상기 적어도 하나의 액션의 호출에 대해서, 정상적으로 수행할 수 없음을 알리는 응답을 한 경우에는, 상기 기기가 전원 오프 후 재기동될 때, 상기 제 1서비스가 서비스 기반으로 적용되지 않도록 정보를 설정하는 것인 장치.
  9. 제 1항에 있어서,
    상기 처리부는, 상기 특정 서비스에 대하여 제공자로 지정되어, 상기 특정 액션의 호출에 대해 응답하도록 구성되고,
    상기 장치는, 상기 네트워크에 연결되어, 상기 적어도 하나의 서비스를 이용해 상기 기기와 정보 교환하도록 구성된 제 2기기를 더 포함하여 구성되되,
    상기 제 2기기는, 상기 특정 서비스에 대해 요구자로 지정되어, 상기 특정 액션을 호출하여 상기 기기에 인가되게 하도록 구성된 것인 장치.
  10. 제 9항에 있어서,
    상기 제 2기기는, 상기 특정 액션을 호출할 때, 상기 제 1서비스에 대해, 상기 적어도 하나의 액션을 호출할 수 있도록 요구자로 지정하여, 자신의 정보 교환의 기반으로 적용되게 하는 것인 장치.
  11. 제 9항에 있어서,
    상기 제 2기기는, 외부의 특정 서버로부터, 상기 특정 액션의 호출에 필요한 정보를 포함하는 서비스 추가 요청이 이동 통신망을 통해 수신될 때, 그 서비스 추가 요청에 포함된 정보로부터 상기 특정 액션을 구성하여 호출하도록 구성된 것인 장치.
  12. 제 11항에 있어서,
    상기 제 2기기는, 상기 서비스 추가 요청에 대해서, 자신이 호출한 상기 특정 액션에 대한 응답이 상기 기기로부터 수신될 때, 그 응답된 정보로부터 상기 서비스 추가 요청에 대한 응답을 구성하여 상기 특정 서버로 전송하도록 구성된 것인 장치.
  13. 제 11항에 있어서,
    상기 제 2기기에는, 적어도 상기 특정 액션을 포함하도록 지정된 제 2특정 서비스에 대해 제공자로 지정되어 정보 교환의 기반으로 기 적용되어 있고,
    상기 서비스 추가 요청은, 상기 특정 서버가 호출하는, 상기 제 2특정 서비스의 상기 특정 액션에 의해 상기 특정 서버로부터 수신되는 것인 장치.
  14. 제 13항에 있어서,
    상기 특정 액션을 동일하게 포함하는 상기 특정 서비스와 상기 제 2특정 서비스는 서비스를 식별케 하는 정보에 있어 서로 상이한 서비스인 것인 장치.
  15. 제 11항에 있어서,
    상기 제 2기기는, 상기 제 1서비스의 상기 적어도 하나의 액션을 호출하여 상기 기기에 인가시키고, 상기 기기가 상기 적어도 하나의 액션의 호출에 대해 응답하면, 그 응답된 정보를 상기 이동 통신망을 통해 상기 특정 서버에 제공하도록 구성된 것인 장치.
  16. 제 9항에 있어서,
    상기 장치는, 고유 정보와 상기 특정 액션을 하나 이상 포함하도록 정해져 있는 제 2특정 서비스에 대해 제공자로 지정되어 정보 교환의 기반으로 기 적용되어 있는 제 3기기를 더 포함하여 구성되되,
    상기 제 2기기는, 상기 제 2특정 서비스에 대해 요구자로 지정되어, 상기 특정 액션을 호출하여 상기 제 3기기에 인가되게 하도록 더 구성되고,
    상기 특정 액션을 동일하게 포함하는 상기 특정 서비스와 상기 제 2특정 서비스는, 서비스를 식별케 하는 정보에 있어 서로 상이한 서비스인 것인 장치.
  17. 제 16항에 있어서,
    상기 제 2기기는, 제 2서비스의 사양정보를, 제공자로 지정하는 정보와 함께 상기 입력 파라미터에 포함하는, 상기 제 2특정 서비스의 상기 특정 액션을 호출하여 상기 제 3기기에 인가되게 하도록 더 구성된 것인 장치.
  18. 제 16항에 있어서,
    상기 제 2기기는, 상기 제 1서비스의 사양정보를, 요구자로 지정하는 정보와 함께 상기 입력 파라미터에 포함하는, 상기 제 2특정 서비스의 상기 특정 액션을 호출하여 상기 제 3기기에 인가되게 하도록 더 구성된 것인 장치.
  19. 제 18항에 있어서,
    상기 제 2특정 서비스는, 정보 교환의 기반으로 적용된 상기 제 1서비스의 상기 적어도 하나의 액션 중에서 하나 이상을 지정하여 각각을 호출하라고 지시하는 시험 액션을 더 포함하여 정해져 있되,
    상기 제 2기기는, 외부의 특정 서버로부터, 적용된 상기 제 1서비스에 대한 시험 시작을 요청하는 정보가 이동 통신망을 통해 수신되면, 그 정보에 근거하여 상기 시험 액션을 호출하여 상기 제 3기기에 인가하도록 더 구성된 것인 장치.
  20. 제 1항에 있어서,
    상기 기기와 상기 다른 기기를 포함하는 복수의 기기들의 상기 적어도 하나의 서비스를 기반으로 하는 정보 교환 동작과 관련한 정보를 획득하여 저장하도록 구성된 제 4기기를 더 포함하여 구성되되,
    상기 제 4기기에는, 상기 적어도 하나의 서비스에 포함되는, 서비스 기반의 동작과 관련된 정보의 제공/조회를 위해 호출되는 제 2특정 서비스가 제공자로 지정되어 기반화되어 있고,
    상기 복수의 기기들 각각에는, 상기 제 2특정 서비스가 요구자로 지정되어 기반화되어 있는 것인 장치.
  21. 제 20항에 있어서,
    상기 장치는, 제 9항의 제 2기기와 제 16항의 제 3기기를 더 포함하여 구성되되,
    상기 기기와 상기 제 3기기는, 상기 제 1서비스가 제공자와 요구자로서 각기 기반화되면, 상기 제 1서비스의 상기 적어도 하나의 액션에 대한 호출/응답과 관련된 정보를, 상기 제 2특정 서비스의 호출을 통해 상기 제 4기기에 제공하도록 더 구성된 것인 장치.
  22. 제 21항에 있어서,
    상기 제 2기기에는, 상기 제 2특정 서비스가 요구자로 지정되어 기반화되어 있되,
    상기 제 2기기는, 상기 제 2특정 서비스의 호출을 통해, 상기 제 1서비스를 기반으로 이루어진 정보교환에 관한 정보를 상기 제 4기기에 요청하고, 상기 제 4기기가 그 호출에 대한 응답으로 제공하는 서비스 기반화 결과정보를, 이동 통신망을 통해 외부의 특정 서버에 제공하도록 더 구성된 것인 장치.
  23. 제 1항에 있어서,
    상기 처리부는, 상기 특정 서비스와 상기 적어도 하나의 서비스에 포함되는 제 2서비스의 각각에 대하여 제공자로 지정되어, 상기 특정 서비스와 상기 제 2서비스에 속하는 액션의 호출에 대해 응답하도록 구성되되,
    상기 제 2서비스에 대해서는 서비스 제공사실이 상기 네트워크로 주기적으로 발송되도록 하고, 상기 특정 서비스에 대해서는, 서비스 제공사실이 상기 네트워크로 발송되지 않게 하는 것인 장치.
  24. 제 1항에 있어서,
    상기 기기는, 상기 네트워크와는 데이터 전송방식이 상이한 제 2네트워크에 연결된 하나 이상의 기기들로부터 수신되는 데이터에 대해서, 상기 적어도 하나의 서비스에 기반하여 상기 네트워크로 제공하는 기기인 것인 장치.
  25. 제 24항에 있어서,
    상기 입력 파라미터에 포함되는 상기 사양정보의 상기 적어도 하나의 액션의 각각에는, 해당 액션에 연계된 하나 또는 그 이상의 신호 또는 데이터를, 상기 제 2네트워크 상에서 고유하게 특정하는 정보를 위한 항목이 할당되어 있는 것인 장치.
  26. 제 1항에 있어서,
    상기 특정 액션에 포함되는 상기 제 2고유 정보 내의 상기 제 1서비스를 식별케 하는 정보는, 상기 적어도 하나의 서비스의 각각에 고유 식별을 위해 부여된 식별 정보의 어느 것과도 일치하지 않는 정보인 것인 장치.
  27. 네트워크에 연결된 제 1기기와 제 2기기 간에 정보를 제공/획득하기 위한 방법에 있어서,
    상기 제 1기기와 제 2기기의 각각에는, 다른 기기와의 정보 교환에 기반이 되는 특정 서비스를 포함하는 적어도 하나의 서비스가 기 적용되어 있고, 상기 특정 서비스는, 그 특정 서비스를 식별케 하는 제 1고유 정보와 입력 파라미터를 포함하도록 지정된 특정 액션을 하나 이상 포함하도록 정해져 있으며, 상기 제 1기기는, 상기 특정 서비스에 대한 호출에 응답하게 되는 제공자로, 상기 제 2기기는, 상기 특정 서비스에 대해 호출하게 되는 요구자로 지정되어 있는 상태에서 이루어지는,
    상기 제 2기기가, 제 1서비스를 식별케 하는 제 2고유 정보와 상기 제 1서비스의 적어도 하나의 액션을 정의할 수 있는 사양정보를 상기 입력 파라미터에 포함하는, 상기 특정 서비스의 상기 특정 액션을 호출하여 상기 제 1기기에 인가되게 하는 단계와,
    상기 제 1기기가, 상기 호출된 특정 액션의 상기 입력 파라미터로부터 추출한 상기 사양정보에 의해 정해지는, 상기 적어도 하나의 액션을 포함하는 상기 제 1서비스를, 상기 적어도 하나의 서비스와 동일하게 정보 교환의 기반으로 적용되게 하는 단계를 포함하여 이루어지되,
    상기 사양정보에는, 상기 제 1서비스의 상기 적어도 하나의 액션을 호출하게 되는 요구자로 지정하거나, 아니면 상기 제 1서비스의 상기 적어도 하나의 액션의 호출에 응답하게 되는 제공자로 지정하는 정보를 기록하기 위한 공여 항목이 더 포함되어 있는 것인 방법.
  28. 네트워크에 연결되어 지정된 서비스를 기반으로 다른 기기와 정보 교환을 할 수 있는 기기에 있어서,
    상기 다른 기기와의 정보 교환에 기반이 되는 적어도 하나의 서비스가 각기 정하고 있는 하나 이상의 액션(action)의 각각에 해당하는 메시지를 구성하여 상기 네트워크로 전송할 수 있도록 구성되고, 또한, 상기 적어도 하나의 서비스에 속하는 임의의 서비스의 액션에 대한 호출요청이 있으면, 그 호출요청된 액션에 해당하는 메시지를 구성하여 상기 네트워크로 전송되게 하며, 상기 네트워크로부터 수신되는 임의의 메시지에 대해서는 해당되는 액션 내용을 추출하도록 구성된 인터페이스부와,
    상기 임의의 서비스의 액션을 선택하여 상기 인터페이스부에 호출요청하고, 상기 인터페이스부가 추출한 상기 액션 내용에 따른 동작을 수행하도록 구성된 처리부를 포함하여 구성되되,
    상기 처리부는, 저장되어 있는 데이터 파일에서 상기 적어도 하나의 서비스에 대해 정하고 있는 사양 정보를 읽어서, 상기 적어도 하나의 서비스의 각각을 정보 교환의 기반으로 적용되게 하며,
    상기 사양 정보에, 다른 기기로부터의 호출에 대해 응답하도록 현재 제공자로 지정된 제 1서비스가 없으면, 상기 제 1서비스에 대해서는, 주기적으로 발송되고 있던 서비스 제공사실이 상기 네트워크로 발송되지 않게 하고, 현재 정보 교환의 기반으로 적용되지 않은 제 2서비스에 대해 제공자로 지정되어 있으면, 상기 제 2서비스에 대해서 서비스 제공사실이 주기적으로 상기 네트워크로 발송되도록 하는 것인 기기.
  29. 제 28항에 있어서,
    상기 데이터 파일은, 상기 네트워크를 통해 타 기기로부터 획득하여 상기 기기 내의 기록 공간에 저장되어 있는 것인 기기.
  30. 제 29항에 있어서,
    상기 처리부는, 상기 네트워크를 통해 상기 타 기기로부터 획득하는 데이터 파일이, 상기 기기에 적용되도록 지정하고 있는 고유 정보를 포함하고 있을 때, 상기 기록 공간에 저장하여 그 데이터 파일의 사양 정보에 근거하여 서비스를 정보 교환의 기반으로 적용되게 하는 것인 기기.
  31. 네트워크에 연결된 기기들 간에 정보를 제공/획득하기 위한 방법에 있어서,
    기록된 데이터 파일에서 적어도 하나의 서비스에 대해 정하고 있는 사양 정보를 읽어서, 그 적어도 하나의 서비스의 각각을 정보 교환의 기반으로 적용되게 하고, 상기 적어도 하나의 서비스에서, 다른 기기로부터의 호출에 대해 응답하도록 제공자로 지정된 서비스에 대해서는 해당 서비스의 제공사실이 주기적으로 상기 네트워크로 발송되게 하는 1단계와,
    상기 데이터 파일이 갱신되었는지를 확인하는 2단계와,
    상기 데이터 파일이 갱신된 경우, 그 갱신된 데이터 파일의 사양 정보에서 정하고 있는 하나 이상의 서비스와, 상기 1단계에서 정보 교환의 기반으로 적용된 상기 적어도 하나의 서비스 간의 상이한 서비스를 확인하는 3단계와,
    상기 적어도 하나의 서비스 중에서 제공자로 지정된 제 1서비스가 상기 하나 이상의 서비스에 속하지 않으면, 상기 제 1서비스에 대해서는, 주기적으로 발송되고 있던 서비스 제공사실이 상기 네트워크로 더 이상 발송되지 않게 하고, 상기 하나 이상의 서비스 중에서 제공자로 지정된 제 2서비스가 상기 적어도 하나의 서비스에 속하지 않으면, 상기 제 2서비스에 대해서 서비스 제공사실이 주기적으로 상기 네트워크로 발송되게 하는 4단계를 포함하여 이루어지는 방법.
KR1020210063028A 2021-05-14 2021-05-14 네트워크에 연결된 기기들 간의 정보 교환의 기반을 제공하는 서비스를 변경하기 위한 방법과 장치 KR102485427B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210063028A KR102485427B1 (ko) 2021-05-14 2021-05-14 네트워크에 연결된 기기들 간의 정보 교환의 기반을 제공하는 서비스를 변경하기 위한 방법과 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210063028A KR102485427B1 (ko) 2021-05-14 2021-05-14 네트워크에 연결된 기기들 간의 정보 교환의 기반을 제공하는 서비스를 변경하기 위한 방법과 장치

Publications (2)

Publication Number Publication Date
KR20220155543A KR20220155543A (ko) 2022-11-23
KR102485427B1 true KR102485427B1 (ko) 2023-01-06

Family

ID=84236761

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210063028A KR102485427B1 (ko) 2021-05-14 2021-05-14 네트워크에 연결된 기기들 간의 정보 교환의 기반을 제공하는 서비스를 변경하기 위한 방법과 장치

Country Status (1)

Country Link
KR (1) KR102485427B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102168775B1 (ko) * 2019-12-27 2020-10-23 주식회사에어플러그 네트워크를 경유하는 서비스 기반의 정보 조회를 신속하게 처리하기 위한 방법과 그 방법을 위한 기기

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050061114A (ko) * 2003-12-18 2005-06-22 삼성전자주식회사 실시간 사용자 정의에 의한 서비스 실행방법 및 장치
KR20150053622A (ko) * 2013-11-08 2015-05-18 한국전자통신연구원 네트워크를 통한 서비스 기능 관리 방법 및 그 장치
KR102112016B1 (ko) * 2018-05-04 2020-05-19 주식회사 이노피아테크 복수의 IoT 디바이스의 통합 제어를 위한 복합 서비스 인터페이스 방법 및 시스템

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102168775B1 (ko) * 2019-12-27 2020-10-23 주식회사에어플러그 네트워크를 경유하는 서비스 기반의 정보 조회를 신속하게 처리하기 위한 방법과 그 방법을 위한 기기

Also Published As

Publication number Publication date
KR20220155543A (ko) 2022-11-23

Similar Documents

Publication Publication Date Title
US9407567B2 (en) Enabling external access to multiple services on a local server
EP1542409B1 (en) Protocol for multi-hop ad-hoc networks
KR100978336B1 (ko) 리모트 액세스
CN109756559B (zh) 面向嵌入式机载系统分布式数据分发服务的构建及使用方法
CN105763426A (zh) 一种基于多协议即时通信系统的物联网业务处理系统
CN104838618A (zh) 在无线通信系统中验证访问授权的方法和设备
US9059891B2 (en) Method for providing wireless application privilege management
KR101904631B1 (ko) 데이터 전송 방법, 통신 네트워크, 가입자, 및 차량
JP5827697B2 (ja) ローカルネットワーク内のセンサデバイスに名前を付けるための方法、サービスゲートウェイ、およびリモート管理サーバ
EP3340563A1 (en) Method and apparatus for interworking between heterogeneous systems
CN105791315A (zh) 一种udp协议加速方法和系统
CN111866063B (zh) 一种工业物联网ai算法的在线更新系统、方法及装置
US20070162478A1 (en) Method of achieving service configurability within telecommunication devices
US20220108806A1 (en) Global internet of things (iot) connectivity fabric
CN101345657B (zh) 基于简单网络管理协议集群管理多个网元的方法及系统
CN113285816B (zh) 一种基于键值配置的控制请求发送方法、装置和系统
CN110958180B (zh) 网关路由方法、智能网关、电子设备及计算机存储介质
CN111435947A (zh) 电子消息控制
CN112532712B (zh) 协议发送方法及装置、存储介质、电子装置
KR102485427B1 (ko) 네트워크에 연결된 기기들 간의 정보 교환의 기반을 제공하는 서비스를 변경하기 위한 방법과 장치
CN113965571B (zh) 一种分布式嵌入式设备的管理方法、装置、设备及介质
US20040199643A1 (en) Distributed service component systems
KR20220103025A (ko) M2m 시스템에서 보안 키를 교체하기 위한 방법 및 장치
CN113015155B (zh) eSIM服务器发现方法及装置
CN102546237B (zh) 设备管理服务器、客户端及目标操作对象定位方法

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant