KR20070116893A - 복수의 네트워크 엘리먼트 사이의 정보 통신 - Google Patents
복수의 네트워크 엘리먼트 사이의 정보 통신 Download PDFInfo
- Publication number
- KR20070116893A KR20070116893A KR1020077024083A KR20077024083A KR20070116893A KR 20070116893 A KR20070116893 A KR 20070116893A KR 1020077024083 A KR1020077024083 A KR 1020077024083A KR 20077024083 A KR20077024083 A KR 20077024083A KR 20070116893 A KR20070116893 A KR 20070116893A
- Authority
- KR
- South Korea
- Prior art keywords
- data
- directives
- communication
- software
- message
- Prior art date
- Legal status (The legal status 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 status listed.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/387—Information transfer, e.g. on bus using universal interface adapter for adaptation of different data processing systems to different peripheral devices, e.g. protocol converters for incompatible systems, open system
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
- Communication Control (AREA)
- Stored Programmes (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
통신 프로토콜 인터페이스는 코어부와 확장가능부로 나누어질 수 있도록 구성된다. 통신 프로토콜 인터페이스의 확장가능부는 각각의 네트워크 엘리먼트가 더 크게 정의된 데이터 세트의 적어도 일부분에 대응하는 실제의 인터오퍼레이팅 가능한 데이터의 고유하고, 선택적으로 작은, 서브셋을 통신할 수 있도록, 스코프 내로 커스터마이징되도록 더 구성된다. 소프트웨어 제너레이터 프로그램은 실제 데이터의 서브셋에서 오퍼레이팅하고, 특정 네트워크 엘리먼트에 대하여 통신 프로토콜 인터페이스의 확장가능부의 실행을 다이렉팅하는 일 세트의 확장 가능한 소스 코드를 생성하도록 구성된다.
지시어, 네트워크 엘리먼트, 통신 소프트웨어 모듈, 코어부, 확장가능부.
Description
본 발명은, 일반적으로, 복수의 네트워크 엘리먼트 사이에 정보 통신을 위한 방법, 장치, 및 시스템에 관한 것이고, 보다 상세하게는 생리적이고 건강 보호 관련 데이터를 포함하는, 잠재적으로 크고 변하는 세트의 정의된 데이터를 통신하도록 구성된, 코어 및 확장가능한 세트의 기능을 가진 통신 프로토콜 인터페이스 및 장치에 관한 것이다. 소프트웨어 구현 통신 프로토콜 인터페이스는 일 세트의 확장성 생성 언어(XML) 지시어로 구성가능하고, 이 지시어에 응답하여 소프트웨어 제너레이터 프로그램으로부터 생성된다.
몇몇 컴퓨팅 환경은 큰 용량이고 다양한 연관된 데이터 정의를 포함하고, 시간에 걸쳐 변화하고 발전하기 쉬운 데이터의 집합을 획득하고 통신하는 것을 포함한다. 건강 보호 환경 내의 생리적 데이터의 획득 및 통신은 이러한 컴퓨팅 환경의 일 예이다.
건강 보호 컴퓨팅 환경은 전형적으로 생리적 데이터를 프로세싱하고 네트워크를 통해 통신하는 다양한 디바이스를 포함한다. 이들 디바이스는 전형적으로 소프트웨어를 포함하고, 생리적 데이터 및 다른 데이터의 특정 서브셋에서 오퍼레이 팅하도록 구성될 수 있다. 생리적 데이터의 특정 서브셋은 일 그룹의 하나 이상의 디바이스에 고유할 수 있고, 각 그룹의 디바이스에 의해 프로세싱되는 생리적 데이터의 특정 서브셋 사이에 오버랩이 있을 수 있다.
각각의 디바이스의 설계는 그 디바이스가 프로세싱하고 통신하는 생리적 데이터의 특정 서브셋에 의존한다. 마찬가지로, 이 디바이스에 상주하는 소프트웨어의 설계는 그 디바이스가 프로세싱하고 통신하는 생리적 데이터의 서브셋에 의존한다.
결국, 생리적 데이터 및/또는 다른 타입의 유사 데이터를 획득하고 통신하는 소프트웨어를 설계하고, 구현하고, 그리고 시간에 걸쳐 유지하기 위해 상당한 노력이 요구될 수 있다. 또한, 소프트웨어가 특성 세트의 데이터 타입 및 연관된 데이터 정의에 의해 특징지어지는, 데이터의 고유하고 특정한 서브셋에서 각각 오퍼레이팅하는 복수의 디바이스 상에서 실행하도록 개발되기 위해 상당한 노력이 더 요구될 수 있다. 또한, 데이터 타입 및 연관된 데이터 정의를 포함하는 데이터가 시간에 걸쳐 변화하고 발전하기 쉽게 하기 위해 상당한 노력이 더 요구될 수 있다.
적합한 건강 보호를 제공하기 위해 소프트웨어 신뢰도가 중요하기 때문에, 소프트웨어가 건강 보호 환경 내의 데이터에서 오퍼레이팅하기 위해 상당한 노력이 더 요구될 수 있다. 건강 보호 환경 내의 소프트웨어의 신뢰도 부족은 적합한 건강 보호를 제공하는 것을 방해할 수 있고, 건강 보호 환자를 해할 수 있고, 심지어 죽일 수도 있다.
본 발명은 일반적으로, 복수의 네트워크 엘리먼트 사이에 정보를 통신하기 위한 방법, 장치, 및 시스템을 제공하고, 보다 상세하게는 생리적이고 건강 보호 관련 데이터를 포함하는 정의된 데이터의 잠재적으로 크고, 변화하는 세트를 통신하도록 구성된, 기능의 코어부 및 확장가능한 세트를 가진, 통신 프로토콜 인터페이스 및 연관된 장치를 제공한다.
몇몇 실시예에서, 통신 프로토콜 인터페이스를 구현하는 소프트웨어는 일 세트의 확장성 생성 언어(XML) 지시어로 구성가능할 수 있고, 그 지시어와 입력에 응답하여 소프트웨어 제너레이터 프로그램에 의해 생성될 수 있다. 몇몇 실시예에서, 통신 프로토콜 인터페이스는 각각의 네트워크 엘리먼트가 네트워크 엘리먼트의 특정 기능에 따라, 더 크게 정의된 데이터 세트 내에 포함된, 데이터의 고유한 서브셋을 통신할 수 있게 하는 범위 내에 할당될 수 있다.
상술된 내용 및 본 발명의 다른 목적, 형태, 피처, 및 장점은 하기 설명과 청구항으로부터 더욱 명백해질 것이다.
본 발명의 목적 및 형태는 하기의 도면 및 청구항을 참조하여 더 잘 이해될 수 있다. 도면은 축적을 따르지 않았고, 대신 본 발명의 원리를 일반적으로 설명하기 위해 부분적으로 강조되었다. 이 도면에서, 유사한 참조번호는 다양한 도면을 통해 유사한 부분을 나타내기 위해 사용되었다. 유사한 부분 사이에 차이점은 이러한 부분이 상이한 참조 번호로 지시되도록 할 수 있다. 유사하지 않은 부분은 상이한 참조 번호로 지시된다.
도 1은 건강 보호(의료) 정보 시스템 내에 위치된 다양한 네트워크 엘리먼트를 도시하는 블럭 다이어그램이다.
도 2A는 도 1에 도시된 바와 같으니, 바이털 사인 측정(VSM) 디바이스 및 호스트(110c) 내에 있는 대표적인 내부 소프트웨어 컴포넌트 및 통신 프로토콜 인터페이스를 도시하는 블럭 다이어그램이다.
도 2B는 통신 인터페이스를 통해 다른 네트워크 엘리먼트로부터 정보를 수신하는 단계를 도시하는 블럭 다이어그램이다.
도 2C는 통신 인터페이스를 통해 정보를 수신하는 단계를 도시하는 블럭 다이어그램이다.
도 2D는 통신 인터페이스로부터 전송될 때 상호교환 층으로부터의 출력인 정보의 구조를 도시하는 블럭 다이어그램이다.
도 2E는 VSM 디바이스 및 호스트 네트워크 엘리먼트 사이의 연결을 이루기 위한 랑데뷰 프로토콜 통신의 일 교환을 도시하는 블럭 다이어그램이다.
도 3A는 의료용 관리 프로토콜(MOMP) 메시지를 구성하는 정보의 구조를 도시하는 블럭 다이어그램이다.
도 3B는 요청 타입의 MOMP 메시지를 포함하는 VSM 디바이스와 호스트 디바이스 사이의 MOMP 메시지 교환을 도시하는 블럭 다이어그램이다.
도 3C는 커맨드 타입의 MOMP 메시지를 포함하는 VSM 디바이스와 호스트 디바이스 사이의 MOMP 메시지 교환을 도시하는 블럭 다이어그램이다.
도 3D는 상태 타입의 MOMP 메시지를 포함하는 VSM 디바이스와 호스트 디바이 스 사이의 MOMP 메시지 교환을 도시하는 블럭 다이어그램이다.
도 3E는 이벤트 타입의 MOMP 메시지를 포함하는 VSM 디바이스와 호스트 디바이스 사이의 MOMP 메시지 교환을 도시하는 블럭 다이어그램이다.
도 3F는 네트워크 엘리먼트 사이에 전송되는 킵 얼라이브 통신을 도시하는 블럭 다이어그램이다.
도 3G는 데이터 객체 메시지를 구성하는 정보의 구조를 도시하는 블럭 다이어그램이다.
도 4A는 본 발명의 일 실시예를 따른 소프트웨어의 구조적 배열을 도시하는 블럭 다이어그램이다.
도 4B는 본 발명에 따라, 들어오는 요청 타입의 WACP 메시지를 수신하고, 프로세싱하고, 그리고 라우팅하는 WACP CPI 소프트웨어의 일 실시예를 통한 일 경로의 실행을 도시하는 블럭 다이어그램이다.
도 4C는 도 4A의 요청 타입의 WACP 메시지의 수신에 응답하여, 응답 타입의 WACP 메시지를 전송하는 WACP CPI 소프트웨어의 일 실시예를 통한 일 경로의 실행을 도시하는 블럭 다이어그램이다.
도 5A는 일 세트의 지시어를 입력하고 일 세트의 지시어에 응답하여 소스 코드를 출력하도록 구성된 소프트웨어 제너레이터를 포함한 시스템을 도시한다.
도 5B는 복수의 상호운용 네트워크 엘리먼트 상에 설치된 WACP CPI 소프트웨어의 상이한 구성을 도시하는 블럭 다이어그램이다.
도 5C는 WACP 통신 프로토콜 인터페이스(CPI)를 구현하는 소프트웨어를 설계 하고 발전시키고, 자동으로 생성하고 인증하기 위한 플로우 차트를 도시한다.
도 5D는 상이한 구성으로 작성된 지시어의 글로벌 세트의 부분을 도시한다.
도 6A는 복수의 확장 모듈을 정의하고 확장성 생성 언어(XML)로 인코딩된 일 세트의 지시어를 도시한다.
도 6B는 <FAMILY_NIBP> 엘리먼트의 한 레벨 아래에 네스팅된 XML 엘리먼트 태그를 포함하는 도 6A의 지시어 세트를 도시한다.
도 6C는 도 6A의 지시어 세트의 <FAMILY_NIBP> 엘리먼트의 <MESSAGES> 엘리먼트의 한 레벨 아래에 위치한 XML 엘리먼트 태크를 도시한다.
도 6D는 도 6A의 지시어 세트의 <FAMILY_NIBP> 엘리먼트의 <CNIBPCSTD_DEFINITION> 엘리먼트의 한 레벨 아래에 위치한 XML 엘리먼트 태크를 도시한다.
도 6E는 도 6A의 지시어 세트의 <FAMILY_NIBP> 엘리먼트의 <CNIBPDSTD_DEFINITION> 엘리먼트의 한 레벨 아래에 위치한 XML 엘리먼트 태크를 도시한다.
도 1은 건강 보호(의료) 정보 시스템(100) 내에 위치된 다양한 네트워크 엘리먼트를 도시하는 블럭 다이어그램이다. 호스트(서버) 컴퓨터(110A-110C), 바이털 사인 측정 디바이스(140A-140Y, VSMD), 심전도(ECG) 디바이스(150), 및 다른 디바이스(160)를 포함하는 네트워크 엘리먼트는 네트워크 내의 노드를 구성하고, 시스템(100) 내의 다양한 상이한 함수를 수행한다.
호스트 컴퓨터(110A-110C)는, 예를 들어, 하드 디스크 드라이브, RAM 메모리 카드, 및 다른 네트워크 엘리먼트와의 이더넷, WIFI, USB, 및 시리얼 통신 인터페이스를 지원하는 통신 인터페이스 하드웨어를 포함하는 다양한 옵션의 하드웨어를 수용하는 고정식(비-휴대용) 디바이스인 것이 전형적이다.
바이털 사인 측정 디바이스(140A-140Y, VSMD)는 환자의 다양한 바이털 사인 관련의 생리 측정을 수행하기 위해 오퍼레이터에 의해 사용되는 디바이스이다. 예를 들어, VSMD(140A-140Y)는 어른 및 소아 환자의 수축 및 확장 혈압, 평균 동맥압, 심박수, 체온, 및 심박 산소측정법(SpO2)을 측정할 수 있다. VSMD(140A-140Y)는 전형적으로 RS-232 시리얼 인터페이스, 유니버설 시리얼 버스(USB) 인터페이스, 또는 WiFi(무선)(802.11) 통신 인터페이스를 통해, 서버 컴퓨터(110A-110C)를 포함한 다른 디바이스와 통신할 수 있다.
일 타입의 실시예에서, VSMD(140A-140Y)는 'Welch Allyn Spot LXi' 바이털 사인 측정 디바이스(VSMD)이다. 본 실시예에서, Spot LXi VSMD(140A-104N)은 802.11 통신 채널(156a-156n)을 통해 WiFi 게이트웨이(170)를 통한, 호스트 컴퓨터(110C)와 같은 다른 802.11 타입의 통신 디바이스와 무선으로(WiFi) 통신하기 위해 무선 어댑터(158a-158n)를 선택적으로 사용할 수 있다. 또한, Spot LXi VSMD(140Y)는 RS-232 시리얼 통신 채널(142)을 통해 호스트 컴퓨터(110B)와 통신한다.
또한, 다른 디바이스, 예컨대, ECG 측정 디바스(150)는 USB 통신 채널(144)을 통해 호스트 컴퓨터(110B)와 통신할 수 있고, 또는 RS-232 시리얼 통신 채 널(146)을 통해 호스트 컴퓨터(110C)와 통신할 수 있다. 도시된 바와 같이, 다른 디바이스(160)는 USB 통신 채널(148)을 통해 호스트 컴퓨터(110C)와 통신할 수 있다.
또한, 호스트 컴퓨터(110B)는 인터넷 통신 채널(152)을 통해 다른 원격 위치의 호스트 컴퓨터(110A)와 통신하거나, 또는 이더넷 근거리 통신망 통신 채널(154)을 통해 다른 호스트 컴퓨터(110C)와 통신할 수 있다. 호스트 컴퓨터(110B)는 데이터의 저장소 기능을 하는 데이터베이스(130)에 직접적으로 연결된다. 데이터베이스(130)는 시스템(100)에 의해 캡쳐되고 프로세싱된 데이터를 저장하고 프로세싱한다. 의료 정보 시스템의 많은 데이터는 많은 환자에 대한 휴먼 생리적인 수많은 측정을 나타내기 위해 정의되고 구조화된다.
도 2A는 도 1에 도시된 바와 같은, 호스트 컴퓨터(110C) 및 바이털 사인 측정 디바이스(VSDM) 내에 상주하는 통신 프로토콜 인터페이스 및 대표적인 내부 소프트웨어 컴포넌트를 도시하는 블럭 다이어그램이다.
대표적인 통신 인터페이스(210)는 VSMD(140N)와 호스트 컴퓨터(110C) 사이에서 실행되고, 본 명세서에서 프로토콜 스택이라고도 불리는, 통신 프로토콜의 일 레이어(스택)를 포함한다. 각각의 통신 프로토콜은 VSMD(140N) 및 호스트 컴퓨터(110C)와 같은 각각의 네트워크 엘리먼트에 대한 통신 프로토콜 인터페이스(210) 내의 소프트웨어를 실행함으로써 구현되고, (도시되지 않은) 통신 인터페이스 명세라 불리는 통신 프로토콜 인터페이스(CPI) 명세에 따라 동작하고, 시스템(100)의 각각의 네트워크 엘리먼트에 의해 획득되고(수집되고), 저장되고, 그리고 프로세싱 된 데이터를 포함하는, 정보의 통신을 돕기 위해 채용될 수 있다.
통신 인터페이스 명세는 통신 인터페이스의 쓰여지고, 프린팅되고, 디지털식으로 인코딩된 기술과 같이 실체적이다. 통신 인터페이스는 본 명세서에서 통신 프로토콜 인터페이스(CPI)라도고 불리고, 통신 인터페이스 명세는 통신 프로토콜 인터페이스(CPI) 명세라 불리기도 한다.
802.11(210A), IP(internet protocol)(210B), 및 TCP(transport connection protocol)(210C)로 식별되는 하위의 3개의 프로토콜 레이어(210A-210C)는 예시적이고, 표준이며, 하위 프로토콜 스택(210A-210C)이라고도 불리는 프로토콜 스택(210)의 하부를 수집적으로 구성하는 주지된 통신 프로토콜이다. 하위 3개의 프로토콜 레이어(210A-210C)는 상위 (3개의) 프로토콜 레이어: 각각 상호교환(210D), 랑데뷰(210E), 및 MOMP(210F) 프로토콜 레이어를 지원하고 전달하기 위해 채용되고, 본 발명에 따라 설계된다.
이 특정의 하위 프로토콜 스택(210A-210C)를 사용할 필요는 없고, 본 발명을 실시를 위해 다양한 방법으로 수정될 수 있다. 다른 통신 프로토콜 또는 통신 프로토콜의 조합은 상위 프로토콜 레이어(210D-210F)를 지원하고 전달하기 위해 다양한 방법으로 프로토콜(210A-210C)을 대체할 수 있고, 그리고/또는 결합될 수 있다.
상호교환 프로토콜(210D)은 본 명세서에서 교환 레이어 또는 상호교환 레이어(210D)라고도 불리고, 개방형 시스템 상호접속(OSI) 참조 모델의 세션 레이어 상에 상주하고, 랑데뷰 프로토콜(210E) 또는 MOMP(210F) 프로토콜을 전달하기 위해 채용된다.
호스트 컴퓨터(110C)의 어플리케이션 소프트웨어(220)는 상위 프로토콜 스택(210D-210F)을 구현하도록 구성되고, 호스트 컴퓨터(110C)의 운영체제 소프트웨어(222)는 하위 프로토콜 스택(210A-210C)을 구현하도록 구성되어 있다. 이와 마찬가지로, VSMD(140n)의 어플리케이션 소프트웨어(230)는 상위 프로토콜 스택(210D-210F)을 구현하도록 구성되고, VSMD(140n)의의 운영체제 소프트웨어(232)는 하위 프로토콜 스택(210A-210C)을 구현하도록 구성되어 있다. 마찬가지로, 다른 네트워크 엘리먼트는 상술된 방법과 동일한 방법으로 프로토콜 스택을 구현하는 것이 전형적이다.
도 2B는 통신 인터페이스(210)를 통해 제1네트워크 엘리먼트로부터 제2네트워크 엘리먼트로 정보를 전송하는 단계를 도시하는 블럭 다이어그램이다. (도시되지 않은) 제2네트워크 엘리먼트로 정보를 전송하기 위해 통신 인터페이스(210)를 채용할 때, 어플리케이션 레이어(210G)는 랑데뷰(210E) 또는 MOMP(210F) 프로토콜 레이어 중 하나로 전형적으로 함수 호출 파라미터 형태의 정보(212g) 전송을 개시한다.
몇몇 실시예에서, 함수 호출 파라미터는 통신 인터페이스(210)를 통해 전송될 정보의 버퍼에 대한 포인터를 포함한다. 또한, 랑데뷰(210E) 또는 MOMP(210F) 중 하나인, 후속의 수신하는 프로토콜 레이어는, 환경에 따라 정보(210e 또는 210f)를 상호교환 레이어(210D)로 전송한다.
도시된 바와 같이, 정보(210e 또는 210f)는 랑데뷰(210E) 또는 MOMP(210F) 프로토콜 레이어 중 하나로부터 상호교환 레이어(210D)로 각각 입력된다. 랑데 뷰(210E) 레이어로부터 입력된 정보(212e)는 전형적으로 제2네트워크 엘리먼트와의 연결의 성립과 종료를 포함한다. MOMP(210F) 레이어로부터 입력된 정보(212f)는 전형적으로 랑데뷰(210E) 레이어에 의해 이미 연결된 제2네트워크 엘리먼트와의 연결의 사용을 포함한다.
상호교환 레이어(210D)는 정보(212e 또는 212f)를 입력하고, 하위 프로토콜 스택(210A-210C)으로 정보(212d)를 출력한다. 정보 전달(212d)은 상호교환 레이어(210D)로 입력되고 프로세싱되는 정보(212e 또는 212f)의 소스에 따라, 정보(212e 또는 212f)를 둘러싸고 포함하는 상호교환 인벨로프로 구조화된다. 보다 상세하게는, 정보 전달(212d)은 정보(212e)가 상호교환 레이어(210D)에 의해 수신되고 프로세싱된 환경에서 정보(212e)를 포함하고, 또는 정보(212f)가 상호교환 레이어(210D)에 의해 수신되고 프로세싱된 환경에서 정보(212f)를 포함한다.
하위 프로토콜 스택(210A-210C)은 정보(212d)를 입력하고, 통신을 위한 정보(212a)를 (도시되지 않은) 통신 채널을 통해 제2네트워크 엘리먼트로 출력한다. 정보(212a)는 정보(212d)와 하위 프로토콜 스택(210A-210C)을 구현하는 소프트웨어에 의해 더해진 프로토콜 정보의 합을 포함한다.
도 2C는 통신 인터페이스(210)를 통해 제2네트워크 엘리먼트로부터 제1네트워크 엘리먼트에 의한 정보를 수신하는 단계를 도시하는 블럭 다이어그램이다. 정보를 수신하기 위해 통신 인터페이스(210)가 채용된 때, 하위 프로토콜 스택(210A-210C)은 통신 채널 및 (도시되지 않은) 관련 하드웨어를 통해 제2네트워크 엘리먼트로부터 전송된 정보(214a)를 입력한다. 하위 프로토콜 스택(210A-210C)은 정 보(214a)를 프로세싱하고, 정보(214d)를 상호교환 레이어(210D)로 출력한다.
상호교환 레이어(210D)는 프로세싱된 정보(214d)를 입력하고, 정보(214d)가 어드레싱된 레이어에 따라, 랑데뷰 레이어(210E)로 정보(214e)를, 또는 MOMP(210F) 레이어로 정보(214f)를 출력한다(라우팅한다). 정보 전달(214d)은 랑데뷰 레이어 레이어(210E) 또는 MOMP 레이어(210F) 중 하나로 어드레싱된 정보를 포함하고 둘러싸는 상호교환 인벨로프로 구조화된다. 상호교환 레이어(210D)는 그 인벨로프를 구성하는 정보를 제거한다.
랑데뷰(210E) 및 MOMP(210F) 프로토콜 레이어는 각각 상호교환 레이어(210D)로부터 수신된 정보를 입력하고 프로세싱한다. 프로토콜 레이어(210E) 및 MOMP(210F) 각각은, 적용가능하다면, 어플리케이션 레이어(210G)로 정보를 출력한다(라우팅한다).
도 2D는 통신 인터페이스(210)로부터 전송될 때, 상호교환 레이어(210D)로부터 출력되는 정보(212d)의 구조(220)를 도시하는 블럭 다이어그램이다. 도시된 바와 같이, 이 구조(220)는 본 명세서에서 큰 버전의 상호교환 인벨로프(220), 세션 인벨로프(220), 또는 세션 래퍼(220)로 불린다. 구조(220)는 본 명세서에서 필드라 불리는 복수의 부분으로 나누어진다. 이 필드는 세션 프리앰블 필드(222), 패킷 길이 필드(224), 포트/어플리케이션 식별자 필드(226), 시퀀스 넘버(228), UUID 필드(230), 데이터 길이 필드(232), 데이터 버퍼 필드(234), 및 헤더 순환 여유 검사(CRC) 필드(236)를 포함한다.
세션 프리앰블 필드(222)는 구조(220)의 제한을 풀도록 구성되어 있고, 고유 한 시퀀스의 2진 값을 포함한다. 패킷 길이 필드(224)는 전체 구조(220)의 길이를 바이트 단위로 나타낸다. 포트/어플리케이션 식별자 필드는 어플리케이션 타입과 연관된 포트 넘버를 식별한다. 어플리케이션 타입은 랑데뷰 또는 WACP 어플리케이션 타입을 식별할 수 있다.
시퀀스 넘버 필드(228)는 구조(220)와 통신하는 동안 채용된 제한된 버퍼 용량에 응답하여 그 구조가 부분으로 나누어질 때, 그 구조의 각각의 부분에 대한 고유 식별자를 저장한다. UUID 필드(230)는 상호교환 레이어(210D)에 의해 수신된 다른 응답 통신이 구조(220)와 연관될 수 있도록 구조(220)에 대한 식별자를 저장한다. 데이터 길이 필드(232)는 데이터 버퍼 필드(234)의 길이를, 바람직하게는 바이트 단위로, 저장한다. 데이터 버퍼 필드(234)는 구조(220)(에 의해 전송된) 내에 포함된 데이터를 저장한다. CRC 필드(236)는 전체 구조(220)에 대하여 계산된 순환 여유 검사(CRC) 값을 저장한다.
구조(240)는 상호교환 인벨로프의 작은 버전(240)을 도시한다. 구조(240)는 큰 버전(220)의 필드의 서브셋을 포함한다. 큰 버전과 유사하게, 필드는 세션 프리앰블 필드(222), 패킷 길이 필드(224), 포트/어플리케이션 식별자 필드(226), 데이터 버퍼 필드(234), 및 헤더 순환 여유 검사(CRC) 필드(236)를 포함한다. 큰 버전(220)과는 달리, 작은 버전은 시퀀스 넘버(228), UUID 필드(230), 및 데이터 길이 필드(232)를 포함하지 않는다.
상호교환 인벨로프의 작은 버전(240)은 구조(240)와 통신하는 동안 그 커넥션에 걸쳐 채용된 버퍼의 용량 내에 알맞도록 충분히 작은 정보를 위해 상호교환 레이어(210D)에 의해 채용될 수 있다. 이러한 환경에서, 상호교환 인벨로프(240)는 그 커넥션의 엔드 포인트 사이에 상주하는 제한된 크기의 하나 이상의 버퍼 내에 알맞은 더 작은 부분으로 나누어지고(제거되고), 시퀀싱될 필요가 없다.
도 2E는 VSM 디바이스(140n)와 호스트(110c) 네트워크 엘리먼트 사이에 연결을 이루기 위한 랑데뷰 통신 프로토콜의 일 교환을 도시하는 블럭 다이어그램이다. 연결을 이루기 위해, 랑데뷰 프로토콜 레이어는 호스트(110c)로 어드레싱된 연결 요청 통신(252)의 전송을 개시한다. 연결 요청(252)은 상호교환 인벨로프(220, 240) 내에 포함되고, 상호교환 프로토콜 레이어(210D) 및 VSM 디바이스(140n) 내에서 동작하는 하위 프로토콜 스택(210A-210C)을 통해 VSM 디바이스(140n)로부터 호스트(110c)로 전송된다. 상호교환 인벨로프(220)의 데이터 버퍼 필드(234)는 그것을 랑데뷰 프로토콜 연결 요청 메시지로 식별하기 위해 "RNDZConnect" 스트링을 포함한다(전달한다).
호스트(110c) 내에서 동작하는 랑데뷰 프로토콜 레이어(210E)를 구현하는 소프트웨어는 호스트(110c) 내에서 동작하는 상호교환 레이어(210D) 및 하위 프로토콜 스택(210A-210C)을 통해 연결 요청 통신(252)을 수신한다. 포트/어플리케이션 식별자 필드(226)는 랑데뷰 프로토콜 레이어를 연결 요청 통신(252)에 의해 어드레싱된 어플리케이션으로 나타낸다. 호스트 컴퓨터(110c)는 하위 프로토콜 스택(210A-210C)의 프로토콜을 통해 어드레싱된다.
다음으로, 호스트(110c)는 VSM 디바이스(140n)로 연결 승락 통신(254)을 전송한다. 연결 승락(254)은 상호교환 인벨로프(220, 240)내에 포함되고, 호스 트(110c) 내에서 동작하는 소프트웨어에 의해 구현된 하위 프로토콜 스택(210A-210C) 및 상호교환 레이어(210D)를 통해 호스트(110c)로부터 VSM 디바이스(140n)로 전송된다.
호스트(110c) 내에서 동작하고, 랑데뷰 프로토콜 레이어(210E)를 구현하는 소프트웨어는 VSM 디바이스(140n) 내에서 동작하는 상호교환 레이어(210D) 및 하위 프로토콜 스택(210A-210C)을 통해 연결 승락 통신(254)을 수신한다. 통신(254)의 포트/어플리케이션 식별자 필드(226)는 랑데뷰 프로토콜 레이어를 연결 요청 통신(252)에 의해 어드레싱된 어플리케이션 타입으로 나타낸다.
랑데뷰 연결이 지금 이루어진다. 그 다음, VSM 디바이스(140n)는 호스트(110c)로 암호 키 요청 통신(256)을 전송한다. 호스트(110c)는 세션 키라고도 불리는 암호 키를 포함한 암호 키 통신(258)을 전송함으로써 응답한다.
암호 키를 수신한 후, 클라이언트는 호스트(110c)로 WACP 프로세스 개시 요청 통신(260)을 전송한다. 호스트(110c)는 (도시되지 않은) 일종의 WACP 프로세스를 실행함으로써, 그리고 호스트 준비 통신(262)을 전송함으로써 응답한다. VSM 디바이스(140n)는 호스트 준비 통신을 수신하고, (도시되지 않은) VSM 디바이스(140n) 내부에서 동작하는 WACP 프로세스로 컨트롤을 전송한다.
이 랑데뷰 연결은 랑데뷰 연결 종료 통신이 호스트(110c)에 의해 전송되었을 때 종료한다. VSM 디바이스(140n)와 호스트(110c) 사이의 통신의 교환은 VSM 디바이스(140n)와 호스트(110c) 사이의 통신을 위해 채용된 (도시되지 않은) 통신 채널의 타입에 독립적이다.
도 3A는 의료용 객체 관리 프로토콜(MOMP) 메시지(300)를 구성하는 정보의 구조를 도시하는 블럭 다이어그램이다. MOMP 메시지(300)는 상호교환 프로토콜 메시지(220, 240)의 데이터 버퍼 필드(234) 내에 상주하고, 그것에 의해 전송된다. MOMP 메시지(300)의 구조는 필드라 불리는 복수의 부분으로 나누어진다. 이 필드는 메시지 식별 필드(302), 메시지 크기 필드(304), 메시지 암호 필드(306), 객체 버퍼 필드(308), 및 순환 여유 검사(CRC) 필드(310)를 포함한다.
메시지 식별 필드(302)는 MOMP 메시지(300)의 타입을 식별하고 분류하는 일 세트의 값을 포함한다. 메시지 길이 필드(304)는 전체 MOMP 메시지(300)의 길이를, 바람직하게는 바이트 단위로, 나타낸다. 메시지 암호 필드(306)는 MOMP 메시지(300)의 임의의 암호화가 채용되었는지, 채용되었다면, 어떤 타입의 암호화가 채용되었는지를 나타내는 값을 포함한다. 객체 버퍼 필드(308)는 직렬화된 객체를 나타내는 데이터를 저장한다. 직렬화된 객체는 특정 네트워크 엘리먼트에 의해 획득된 일 세트의 생리적 데이터일 수 있다. CRC 필드(310)는 전체 MOMP 메시지(300)에 대하여 계산된 순환 여유 검사(CRC) 값을 저장한다.
메시지 식별 필드(302)는 MOMP 메시지(300)에 대한 일 타입의 분류를 각각 나타내는 (3개의) 서브-필드를 포함한다. 각각의 타입 분류는 (3개의) 계층(tier) 분류 스킴 중 일 계층을 나타낸다. 제1서브-필드(312)는 패밀리(family) 분류라고도 불리는 제1(최상위계층)분류를 나타내는 값을 저장한다.
몇몇 실시예에서, 제1분류는 메시지 타입 및 생리적 데이터의 세트를 가지고, 그것과 연관된 특정 모듈을 식별할 수 있다. 이 데이터는, 예컨대, 혈압과 연 관된 생리적 데이터 타입일 수 있다. 일 실시예에서, 제1분류는 텍스트 스트링 "FAMILY_NIBP"와 동일한 식별자를 가진 모듈을 식별한다. 이 모듈은 일 세트의 혈압 관련 생리적 데이터 타입을 획득하고 통신한다. 식별자 "FAMILY_NIBP"는 FAMILY_NIBP 모듈과 연관된 MOMP 메시지(300)를 위해, 제1서브-필드 내로, 제1분류로 저장되는 고유값에 매핑된다. 다른 텍스트 스트링 식별자가 FAMILY_NIBP 모듈과 다른 모듈을 식별하기 위해 사용된다.
제2서브-필드(314)는 지너스(genus) 분류로 불리는 제2(중간계층)분류를 나타내는 값을 저장한다. 제2분류는 제1분류에 의해 식별된 FAMILY_NIBP 모듈의 일 세트의 하나 이상의 속성을 식별할 수 있다. 몇몇 실시예에서, 이 속성은 FAMILY_NIBP 모듈에 의해 전송되고, 그리고/또는 수신된 MOMP 메시지의 타입을 포함한다.
일 실시예에서, 제2분류는 텍스트 스트링 식별자 "Gn_Request"에 의해 지시되는 요청 타입의 MOMP 메시지를 식별한다. "GnRequest" 식별자는 제2서브-필드 내에 저장된 고유 값에 매핑되고, 그 MOMP 메시지가 요청 타입의 MOMP 메시지(300)임을 나타낸다(도 3B 참조).
요청 타입의 MOMP 메시지는 본 명세서에서 지너스 타입의 MOMP 메시지라고도 불린다. 제네릭 타입의 MOMP 메시지는 일반적으로 MOMP 메시지와 연관된 프로세싱을 특징으로 하지만, MOMP 메시지의 각각의 바이트를 특정하게 프로세싱하기 위해 충분한 정보를 소프트웨어에 제공하지 않는다. 일반적으로, 3개의 분류 모두가 MOMP 메시지(300)의 각각의 바이트를 프로세싱하기 위한 충분한 정보를 소프트웨어 에 제공하기 위해 필요하다.
제3서브-필드(316)는 스피시즈(species) 분류라고도 불리는 제3분류(최하위계층)을 나타내는 값을 저장한다. 제3분류는 제1분류에 의해 식별된 모듈 및 제2분류에 의해 식별된 MOMP 메시지의 일 세트의 하나 이상의 추가 속성을 식별할 수 있다.
일 실시예에서, 제3분류는 텍스트 스트링 식별자 "GET_BP"에 의해 지시되는 특정 획득 혈압 타입의 요청 MOMP 메시지를 식별한다. "GET_BP" 식별자는 제3서브-필드에 저장된 고유 값에 매핑되고, MOMP 메시지가 특정 "GEP_BP" 타입의 요청 타입의 MOMP 메시지(300)인 것을 나타낸다. 특정 "GEP_BP" 타입의 요청 타입의 MOMP 메시지는 MOMP 메시지(300)의 각각의 바이트를 특정하게 프로세싱하기 위한 충분한 정보를 소프트웨어에 제공하는 소정의 바이트 시퀀스를 가진다. GEP_BP 타입의 MOMP 메시지는 본 명세서에서 특정 타입의 MOMP 메시지라고도 불린다.
상기 (3개의) 식별자: FAMILY_NIBP, Gn_Request, GET_BP는 모두 디바이스 데이터 시트라 불리는 일 세트의 지시어 내에 정의된다(도 6A 참조). 디바이스 데이터 시트(DDS)는 네트워크 엘리먼트에서 실행하는 소프트웨어로 구현된, 통신 인터페이스(210)의 지시어 의존 부분의 실행을 다이렉팅하는 소스 코드를 출력하는 소프트웨어 제너레이터로의 입력으로 채용된다(도 5A 참조).
디바이스 데이터 시트(DDS)는 정의된 데이터 및 특정 디바이스에 의해 프로세싱될 정의된 데이터와 연관된 오퍼레이션을 포함한 모듈을 정의한다. 전형적으로, 이 데이터와 연관된 오퍼레이션은 정의된 데이터에 따른 오퍼레이션을 수행하 도록 구성되어 있는 제네릭 및 특정 MOMP 메시지의 형태로 표현된다. DDS는 WACP 통신 인터페이스를 구현하는 소프트웨어의 적어도 일부분을 구성하기 위해 사용된다.
예를 들어, GET_BP 메시지는 GET_BP 메시지를 수신하는 네트워크 엘리먼트로부터, GET_BP 메시지를 전송하는 네트워크 엘리먼트로 혈압 데이터의 전송을 요청한다. 요청된 혈압 데이터는 GET_BP 메시지를 수신하는 네트워크 엘리먼트에 의해 GET_BP 메시지를 전송하는 네트워크 엘리먼트로 PUT_BP 메시지의 전송을 통해 전송될 수 있다.
도 3B는 요청 타입의 MOMP 메시지를 포함한 VSM 디바이스와 호스트 디바이스 사이의 MOMP 메시지 교환을 도시하는 블럭 다이어그램이다. 도시된 바와 같이, 호스트 디바이스(110c)는 MOMP 요청 통신(322)을 VSM 디바이스(140n)로부터 혈압 측정 정보를 수신하기 위해 전송한다. 요청 통신(322)은 각각 심볼 FAMILY_NIBP, Gn_Request, GET_BP에 의해 표현되는 서브-필드 값을 포함한 메시지 식별자 필드를 가진 MOMP 메시지를 포함한다.
제1분류 식별자 FAMILY_NIBP는 일 세트의 측정된 혈압 관련 데이터를 포함하는 모듈을 식별한다. 제2값 Gn_Request는 FAMILY_NIBP 객체와 연관되어 정의된 요청 타입의 MOMP 메시지(300)를 식별한다. 제3값 GET_BP는 Gn_Request 타입의 메시지를 통해 호스트(110c)에 의해 요청된 대표적인 데이터 및 특정 구조를 식별한다. 호스트(110c)는 VSM 디바이스(140n)가 요청 통신(322)에 응답하여, 호스트(110c)로, 일종의 특정 구조 및 대표적인 데이터를 포함한, 응답 타입의 MOMP 통신을 전 송할 것을 요청한다.
요청 통신(322)의 수신에 응답하여, VSM 디바이스(140n)는 GET_BP 특정(스피시즈) 분류와 연관된 일종의 특정 구조 및 대표적인 데이터를 포함하는 MOMP 응답 통신(324)을 전송한다. 응답 통신(324)은 메시지 식별자 필드가 각각 심볼 FAMILY_NIBP, Gn_Request, GET_BP에 의해 표현된 분류(서브-필드 값)를 포함하는 MOMP 메시지를 포함한다.
제1값(FAMILY_NIBP)은 요청된 세트의 측정된 혈압 관련 데이터를 포함하는 모듈을 식별한다. 제2값(Gn_Request)은 FAMILY_NIBP 모듈과 연관되어 정의된 응답 타입의 MOMP 메시지를 식별한다. 제3값(PUT_BP)은 이 (Gn_Response) 타입의 MOMP 메시지(300)를 통해 VSM 디바이스(140n)에 의해 특정 구조 및 대표적인 데이터를 식별한다.
몇몇 환경에서, VSM 디바이스(140n)는 요청 타입의 MOMP 통신(322)의 수신에 응답하기 위해 응답 타입의 MOMP 메시지 통신(324)을 전송할 수 없다. 이러한 환경에서 VSM 디바이스(140n)는 요청 타입의 MOMP 통신(322)에 응답하여 트랩 타입의 MOMP 통신(326)을 대신 전송한다. 트랩 통신(326)은 트랩 타입(330)의 MOMP 메시지(300)를 포함한다.
트랩 타입의 MOMP 메시지(330)는 에러 객체를 포함하는 제네릭 MOMP 메시지(300)와 유사하게 구조화된다. 다른 제네릭 MOMP 메시지(300)와 유사하게, 트랩 타입의 MOMP 메시지는 각각, 텍스트 스트링 식별자: "FmTRAP", "GnError", 및 "SpError"에 의해 표현되는 제1, 제2, 및 제3분류(서브-필드 값)을 포함하는 메시 지 식별자 필드(302)를 가진다.
제1식별자(FmTRAP)는 호스트 컴퓨터(110C)로부터 전송된 오리지널 통신(322)에 응답하는 VSM 디바이스(140n) 내의 모듈을 지시한다. 오리지널 통신(322)은 VSM 디바이스(140n)의 (FmNIBP) 모듈로 어드레싱되지만, 이 (FmNIBP) 모듈은 오리지널 통신(322)과 연관된 액션을 수행할 수 있고, 결과적으로, 통신(322)에 응답하기 위해 VSM 디바이스(140n)의 FmTRAP 모듈로 컨트롤이 전달된다.
제2분류 식별자(GmError)는 이 (FmTRAP) 모듈과 연관되어 정의된 에러 타입의 메시지를 식별한다. 제3분류 식별자(SpError)는 발생된 에러의 타입을 식별한다. 이러한 에러의 타입은 본 명세서에서 비인식 타입의 트랩 MOMP 메시지를 의미하는, "NAK"라 불린다. 다른 환경에서, 제3값(SpNone)은 인식 타입의 트랩 MOMP 메시지를 의미하는 "ACK"를 식별할 수 있다.
트랩 메시지(330)는 본 명세서에서 트랩 객체(340)라고도 불리는 에러 객체(340)를 포함한다. 에러 객체(340)는 MOMP 메시지(300)의 객체 버퍼 필드(308) 내에 상주하고, 에러 식별 데이터를 포함한다. 에러 식별 데이터는 오리지널 통신(322)의 수신에 응답하여 VSM 디바이스(140n)의 액션 또는 시도된 액션으로 인한 하나 이상의 에러를 서술한다.
에러 객체(340)의 구조는 복수의 필드로 나누어진다. 이 필드는 CLSID 필드(332)라고도 불리는 객체 식별자 필드(332), 객체 크기 필드(334), 객체 버전 필드(336), 비트 필드(338), 객체 페이로드 필드(342), 및 객체 CRC 필드(344)를 포함한다.
객체 페이로드 필드(342)는 복수의 필드로 더 나누어진다. 이 필드는 메시지 크기 필드(346), 메시지 식별자 필드(302), 에러 OP코드 필드(348), 텍스트형 에러 서술 필드(356), 확장 에러 크기 필드(358) 및 확장 에러 정보 필드(360)를 포함한다.
바람직하게는, 메시지 크기 필드(346)는 바이트 단위로 표현된다. 메시지 식별자 필드(302)는 에러 객체가 응답하는 오리지널 통신(322) 내에 포함된 MOMP 메시지(300)를 식별한다. 그러므로, 메시지 식별자 필드(302)는 오리지널 통신(322) 내에 포함된 요청 타입의 MOMP 메시지(300)에 저장되는 식별자(FAMILY_NIBP, Gn_Request, 및 GET_BP)를 포함한다.
에러 OP코드 필드(348)는 오리지널 통신(322)이 전송되는 모듈에 의해 제공되는 제네릭 에러 코드를 저장한다. 그러므로, 에러 OP코드 필드(348)는 FAMILY_NIBP 모듈에 의해 제공된다. 텍스트형 에러 기술 필드(356)는 오리지널 통신(322)이 전송되는 모듈에 의해 공급되는 텍스트이다. 그러므로, 텍스트형 에러 기술 필드(356)는 FAMILY_NIBP 모듈에 의해 제공된다. 호스트 컴퓨터(110C)는 호스트가 이후에 통신할 네트워크 엘리먼트와 연관된 에러 정의의 소모적인 리스트를 유지할 필요가 없다.
확장 에러 정보 필드(360)는 VSM 디바이스(140n) 자체에 의해 제공되고, WACP 통신 인터페이스 소프트웨어라고도 불리는 WACP 통신 프로토콜 인터페이스(CPI) 및 FAMILY_NIBP 모듈 지시어로부터 발생된 제네릭 정보와 달리, 디바이스 특정이다. 확장 에러 크기 필드(358)는 확장 에러 정보 필드(360)의 크기를, 바람 직하게는 바이트 단위로, 나타낸다.
도 3C는 커맨드 타입의 MOMP 메시지(300)를 포함하는 VSM 디바이스(140n)와 호스트 디바이스(110c) 사이의 MOMP 메시지 교환을 도시하는 블럭 다이어그램이다. 도시된 바와 같이, 호스트 디바이스(110c)는 커맨드 통신(362) 또는 커맨드 메시지(362)라도고 불리는 커맨드 타입의 MOMP 메시지를 VSM 디바이스(140n)로 전송한다.
커맨드 타입의 통신(362)은 특정 액션이 커맨드 통신(362)을 수신하는 네트워크 엘리먼트에 의해 수행되도록 다이렉팅한다. 커맨드 통신(362)은 각각 텍스트 스트링 식별자 (FmNIBP), (GnCommand), 및 (START_NIBP)에 의해 표현된 서브-필드 값을 포함하는 메시지 식별자 필드를 가진 커맨드 타입의 MOMP 메시지(300)를 포함한다. 제1분류 식별자 값 FmNIBP는 일 세트의 측정된 혈압 관련 데이터를 포함하는 모듈을 식별한다. 제2분류 식별자 값 GnCommand는 FiNIBP 모듈과 연관되어 정의된 제네릭 GnCommand 타입의 MOMP 메시지를 식별한다. 이 GnCommand는 커맨드 타입의 MOMP 메시지이다. 제3 값 START_NIBP는 FmNIBP 모듈의 GnCommand 제2분류 내에 정의된 특정 커맨드 타입의 MOMP 메시지를 식별한다.
START_NIBP 커맨드(362)는 호스트(110c)에 의해 VSM 디바이스(140n)로 FmNIBP 모듈과 연관된 GnCommand 타입의 MOMP 메시지(300)로 전송된다. 호스트(110c)는 VSM 디바이스(140n)가 START_NIBP 서브-필드를 통해 혈압 측정 사이클의 시작을 개시하도록 다이렉팅한다.
커맨드 통신(362)에 응답하여, VSM 디바이스(140n)는 각각 텍스트 스트링 식 별자 "FmTRAP", "GnError" 및 "SpNone"에 의해 표현되는 분류(서브-필드 값)을 포함하는 메시지 식별자 필드를 가진 트랩 타입의 MOMP 메시지를 포함하는 MOMP 트랩 타입의 통신(364)을 전송한다. 이러한 환경에서, 제3분류 식별자 값 SpNone은 인식 타입의 트랩 메시지임을 의미하는, "ACK"를 식별한다. 이 인식은 START_NIBP 커맨드의 실행의 성공적인 완료, 즉, 수신한 네트워크 엘리먼트에 의해 혈압 측정 사이클의 시작의 성공적인 개시를 나타낸다.
이 커맨드가 수행되지 않는 다른 환경에서, 제3값 SpError은 비인식 타입의 트랩 메시지를 의미하는 "NAK"를 나타낸다. 비인식은 그 커맨드의 실행의 비성공적인 완료, 즉, 수신한 네트워크 엘리먼트에 의해 혈압 측정 사이클의 시작의 성공적인 개시를 수행하지 못했음 나타낸다.
도 3D는 상태 타입의 MOMP 메시지를 포함하는 VSM 디바이스(140n)와 호스트 디바이스(110c) 사이의 MOMP 메시지 교환을 도시하는 블럭 다이어그램이다. 도시된 바와 같이, VSM 디바이스(140n)는 상태 통신(372) 또는 상태 메시지(382)라고도 불리는 상태 타입의 MOMP 메시지(372)를 포함하는 통신(372)을 호스트 디바이스(110c)로 전송한다. 상태 타입의 통신(372)은 통신(372)을 수신하는 네트워크 엘리먼트(호스트)(110c)에 정보를 제공한다.
상태 통신(372)은 각각, 예컨대, "FmNIBP"와 같은 제1분류 텍스트 스트링 식별자, "GnStatus"와 같은 제2분류 텍스트 스트링 식별자, 및 "REPORT_BP"와 같은 제3분류 식별자에 의해 표현된 서브-필드 값을 포함하는 메시지 식별자 필드를 가진 상태 타입의 MOMP 메시지(300)를 포함한다.
상태 통신(372)는 (FmNIBP), (GnStatus), 및 (REPORT_BP)와 같은 제1, 제2, 및 제3분류 식별자를 나타내는 서브-필드-값을 포함하는 메시지 식별 필드(302)를 가진 상태 타입의 MOMP 메시지(300)를 포함한다. "FmNIBP" 식별자는 상태 통신(372)을 전송하고 있는 모듈을 식별한다. 제2분류 식별자 GnStatus는 그 메시지가 상태 타입의 MOMP 메시지임을 나타낸다.
또한, 제1분류 식별자 FmNIBP는 일 세트의 측정된 혈압 관련 데이터를 포함한 모듈을 나타낸다. 제2분류 식별자 GnStatus는 FmNIBP 모듈과 연관되어 정의된 GnStatus 타입의 MOMP 메시지를 식별한다. 제3값 REPORT_BP는 GnStatus 분류 내에 포함된 특정 타입의 상태 정보를 식별한다.
전형적으로, 상태 메시지(372)는 시간에 걸쳐 주기적으로 전송된다. 예를 들어, WACP 통신 소프트웨어 모듈은 상태 메시지(372)를 특정 목적지로 매 10분마다 전송하도록 구성될 수 있다. 호스트 컴퓨터(110C)는 상태 통신(372)의 인식 또는 비인식을 나타내는 트랩 통신(374)을 전송함으로써 응답한다(도 3B 참조).
모든 모듈이 연관된 상태 타입의 MOMP 메시지를 포함하여 정의되는 것은 아니다. 결과적으로, 상태 타입의 MOMP 메시지는 특정 모듈과 연관될 수도 있고, 연관되지 않을 수도 있다. 특정(스피시즈) 식별자에 의해 식별되는 많은 다양한 타입의 상태 메시지가 있을 수 있다.
도 3E는 이벤트 타입의 MOMP 메시지를 포함하는 VSM 디바이스(140n)와 호스트 디바이스(110c) 사이의 MOMP 메시지 교환을 도시하는 블럭 다이어그램이다. 도시된 바와 같이, VSM 디바이스(140n)는 이벤트 통신(382) 또는 이벤트 메시지(382) 라고도 불리는 이벤트 타입의 MOMP 메시지(382)를 포함하는 통신(382)을 호스트 디바이스(110c)로 전송한다.
이벤트 타입의 통신(382)은 통신(382)을 수신하는 네트워크 엘리먼트(호스트)(110C)에 정보를 제공한다. 이벤트 통신(382)은 각각, 예컨대, "FmPrinter"와 같은 제1분류 텍스트 스트링 식별자, "GnEvent"와 같은 제2분류 텍스트 스트링 식별자, 및 "HW_MOD_CONNECT"와 같은 제3분류 텍스트 스트링 식별자에 의해 표현되는 서브-필드 값을 포함하는 메시지 식별자 필드를 가진 이벤트 타입의 MOMP 메시지를 포함한다.
제1분류 식별자 FmPrinter는 프린터와 인터페이싱하는 특정 모듈을 식별한다. 제2분류 식별자 GnEvent는 FmPrinter 모듈과 연관되어 정의된 GnEvent 타입의 MOMP 메시지 분류를 식별한다. GnEvent는 이벤트 타입의 MOMP 메시지이다. 제3분류 식별자 값 HW_MOD_CONNECT는 GnEvent 분류 내에 포함된 특정 타입의 이벤트 정보를 식별한다. 예를 들어, HW_MOD_CONNECT 이벤트는 FmPrinter 모듈과 연관된 프린터 디바이스에 연결된 하드웨어 모듈의 출현을 식별한다.
모든 모듈이 연관된 이벤트 타입의 MOMP 메시지를 포함하여 정의되는 것은 아니다. 결과적으로, 이벤트 타입의 MOMP 메시지는 특정 모듈과 연관될 수도 있고, 연관되지 않을 수도 있다. 특정(스피시즈) MOMP 메시지 식별자에 의해 식별되는 많은 다양한 타입의 이벤트 메시지가 있을 수 있다.
전형적으로, 이벤트 메시지(382)는 이벤트의 발생에 응답하여 전송된다. 예를 들어, WACP 통신 소프트웨어 모듈은 HW_MOD_CONNECT 심볼에 의해 표현되는 이벤 트와 같은 이벤트가 발생할 때, 이벤트 메시지(382)를 전송하도록 구성될 수 있고, 이 때, 하드웨어는 Fmprinter 모듈과 연관된 프린터 디바이스에 연결되어 있다. 호스트 컴퓨터(110C)는 상태 통신(372)의 인식 및 비인식을 나타내는 트랩 통신(384)을 전송함으로써 응답한다(도 3B 참조).
도 3F는 네트워크 엘리먼트(110c, 140n) 사이에 전송되는 킵 얼라이브 통신(392, 394)을 도시하는 블럭 다이어그램이다. 킵 얼라이브 통신(392, 394)은 전송하는 네트워크 엘리먼트(110c, 140n)가 네트워크 엘리먼트(110c, 140n) 사이에 특정 연결을 통한 통신에 관하여 활성(얼라이브)임을 수신하는 네트워크 엘리먼트에 나타낸다. 킵 얼라이브 통신을 수신할 것이 예상되는 수신하는 네트워크 엘리먼트가 소정 기간의 시간 동안 킵 얼라이브 통신을 수신하지 못하면, 전송하는 네트워크 엘리먼트(110c, 140n)가 통신을 위해 더 이상 사용가능하다는 추론이 성립될 수 있다.
킵 얼라이브 통신(392, 394)은 킵 얼라이브 메시지(390)라고도 불리는 킵 얼라이브 타입의 MOMP 메시지(390)를 포함한다. 통상적인 MOMP 메시지(300)와 유사하게, 킵 얼라이브 메시지(390)는 식별자 필드(302), 메시지 크기 필드(304), 메시지 암호화 필드(306), 및 순환 여유 검사(CRC) 필드(310)를 포함한다. 통상의 MOMP 메시지(300)와 달리, 킵 얼라이브 메시지(390)는 객체 버퍼 필트(308)를 포함하지 않는다.
킵 얼라이브 메시지(390)는 제1분류 텍스트 스트링 식별자 "FmCONNECTION",
"GnREQUEST", "GnRESPONSE", "GnCOMMAND", 및 "GnCONFIG"와 같은 제2분류 텍 스트 스트링 식별자, 및 "SpKEEPALIVE", "SpSHUTDOWN", "SpKEEPALIVEON", 및 "SpKEEPALIVEOFF"와 같은 제3분류 텍스트 스트링 식별자에 의해 표현되는 서브-필드 값을 포함하는 메시지 식별자 필드(302)를 가진다.
제1분류 식별자 FmCONNECTION은 네트워크 엘리먼트들 사이의 연결과 연관된 특정 모듈을 식별한다. 제2분류 식별자는 연관된 MOMP 타입의 메시지를 식별한다. 제3분류 식별자 값은 킵 얼라이브 메시지(390)의 특정 함수를 나타낸다.
제3분류가 "SpKEEPALIVE"와 같으면, 그것은 전송하는 네트워크 엘리먼트(110c, 140n)가 네트워크 엘리먼트(110c, 140n) 사이의 특정 연결을 통한 통신에 관하여 활성(얼라이브)임을 수신하는 네트워크 엘리먼트(110c, 140n)에 지시한다. 제3분류 식별자가 "SpSHUTDOWN"과 같으면, 전송하는 네트워크 엘리먼트(110c, 140n)가 네트워크 엘리먼트(110c, 140n) 사이의 특정 연결의 차단을 개시함을 수신하는 네트워크 엘리먼트(110c, 140n)에 지시한다.
제3분류가 "SpKEEPALIVEON"와 같으면, 그것은 전송하는 네트워크 엘리먼트(110c, 140n)가 수신하는 네트워크 엘리먼트(110c, 140n)가 주기적으로 킵 얼라이브 메시지(390)를 전송할 것을 요청하고 있음을 수신하는 네트워크 엘리먼트(110c, 140n)에 지시한다. 제3분류가 " SpKEEPALIVEOFF"와 같으면, 그것은 전송하는 네트워크 엘리먼트(110c, 140n)가 수신하는 네트워크 엘리먼트(110c, 140n)가 주기적으로 킵 얼라이브 메시지(390)를 전송하지 말 것을 요청하고 있음을 수신하는 네트워크 엘리먼트(110c, 140n)에 지시한다.
도 3G는 데이터 객체 메시지(396)를 구성하는 정보의 구조를 도시하는 블럭 다이어그램이다. 데이터 객체 메시지(396)는 MOMP 메시지(300)와 동일한 방법으로, 상호교환 인벨로프(220, 240)의 데이터 버퍼 필드(234) 내로 전달된다. 데이터 객체 메시지(396)는 데이터 버퍼 필드(234) 내의 MOMP 메시지(300)를 대체한다. 데이터 객체 메시지(396)를 전달하기 위해 MOMP 메시지는 사용되지 않는다.
데이터 객체(396)의 구조는 에러 객체(340)(도 3 참조)에 대하여 서술된 바와 같이 복수의 필드로 나누어진다. 몇몇 실시예에서, 데이터 객체는 3B에 도시된 바와 같이, CLSID 필드(332)라고도 불리는 객체 식별자 필드(332), 객체 크기 필드(334), 객체 버전 필드(336), 비트 필드(338), 객체 페이로드 필드(342), 및 객체 CRC 필드(344)를 포함한다. 이러한 포맷에서, 데이터 객체는 직렬화된 데이터 객체라 불린다.
MOMP 메시지(300) 내에 포함되지 않은 데이터 객체 메시지(396)를 전송하는 것은 전송 당 필요한 바이트 수를 줄이고, 데이터를 전송하기 위해 필요한 바이트에 관하여 더욱 효율적이다. 몇몇 실시예에서, 데이터 객체 메시지(396)는 네트워크 엘리먼트 사이에 데이터의 스트리밍을 위해 사용될 수 있다.
도 4A는 본 발명의 일 실시예를 따른 WACP CPI 소프트웨어의 구조적 배열을 도시하는 블럭 다이어그램이다. WACP CPI 소프트웨어(414a, 414b)는 상위 프로토콜 스택(210D-210F)을 구현하도록 구성된다. 운영체제 소프트웨어(412)는 하위 프로토콜 스택(210A-210C)을 구현하도록 구성된다.
WACP CPI는 코어부와 논-코어(확장가능)부로 나누어진다. WACP CPI의 코어부는 연결 성립 및 종료, 암호화 및 요청, 응답, 커맨드, 상태, 및 에러 타입의 MOMP 메시지를 포함하는 제네릭 메시지 타입을 포함하는 기능을 상술하는 제네릭 프레임워크(generic framework)로써 기능한다. WACP CPI의 논-코어(확장가능)부는 연관된 데이터 및 메시지를 포함하는 모듈의 추가를 가능하게 한다. 이 모듈은 WACP CPI의 코어부의 기능을 확장할 수 있다.
몇몇 실시예에서, 지시어는 모듈을 정의하고, 그 모듈 내에 포함된 데이터를 정의하고, 정의된 모듈과 연관된 특정 구조의 요청, 응답, 커맨드, 상태, 및 에러 타입의 MOMP 메시지를 정의하기 위해 채용된다. WACP CPI의 논-코어부는 코어부의 기능이 특정 어플리케이션을 수용하기 위해 커스터마이징되고 추가될 수 있게 한다.
따라서, WACP CPI를 구현하도록 구성된 소프트웨어는 코어부(414a) 및 논-코어(확장가능)부(414b)로 나누어진다. WACP CPI 소프트웨어의 코어부(414a)는 무슨 모듈이 특정 WACP CPI 소프트웨어 구성 내에 정의되었는지 정의되지 않았는지 관계없이 WACP CPI 기능을 구현하도록 구성되고, 연결 성립 및 종료, 암호화, 및 요청, 응답, 커맨드, 상태, 및 에러 타입의 MOMP 메시지를 포함하는 제네릭 메시지를 포함한 기능을 구현한다.
WACP CPI 소프트웨어의 논-코어부(414b)는 논-코어의 추가적이고 커스터마이징 가능한 기능을 모듈 형태로 구현한다. 몇몇 실시예에서, 모듈은 모듈 관련 데이터 및 메시지 상의 오퍼레이션을 포함한 모듈 관련 기능을 정의하는 지시어를 통해 추가될 수 있다. WACP CPI 소프트웨어의 논-코어부는 WACP CPI의 코어부 및 WACP CPI 전체의 기능을 보충한다.
WACP CPI 소프트웨어의 코어부(414a)는 운영체제(412)와 인터페이싱하도록 구성된다. WACP CPI 소프트웨어의 코어부 및 논-코어부는 어플리케이션 소프트웨어(416)와 인터페이싱하도록 구성된다.
WACP CPI 소프트웨어의 논-코어(추가) 피처는 WACP CPI 자체의 구현의 커스터마이징이 하나 이상의 네트워크 엘리먼트의 특정 세트의 오퍼레이션에 의해 요구되는 특정 통신 요구사항을 수용할 수 있게 한다. 예를 들어, WACP CPI 일부분의 설계는 특정 세트의 네트워크 엘리먼트에 의해 요구되는 생리적 데이터 타입과 같은, 특정 타입 및 구조의 데이터 통신을 수용하도록 구성될 수 있다.
또한, WACP CPI 소프트웨어 논-코어(추가) 피처는 WACP CPI 소프트웨어의 각각의 구현(예)이 WACP CPI의 버전 및 전체 구성의 작거나 큰 서브셋을 수행할 수 있게 한다. 따라서, VSM 디바이스(140n)와 같은 각각의 네트워크 엘리먼트는 WACP 통신 프로토콜 인터페이스(CPI)의 전체 버전의 작은 서브셋을 구현하도록 구성될 수 있고, 따라서, WACP CPI의 전체 버전의 서브셋을 구현하도록 구성된 WACP 소프트웨어의 대응하는 작은 서브셋을 실행할 수 있다.
그 결과, 개개의 네트워크 엘리먼트는 이러한 데이터를 획득하고, 통신하고, 그리고 프로세싱하도록 구성된 네트워크 내의 방대하고 다양한 보편적으로 정의된 디바이스 독립 데이터(정보)의, 크던 작던간에, 일부분을 통신하도록 고유하고 효과적으로 구성될 수 있다.
도 4B는 본 발명에 따른, 들어오는(incoming) 요청 타입의 WACP 메시지를 수신하고, 프로세싱하고, 라우팅하는 일 실시예의 WACP CPI 소프트웨어(414)를 통한 일 실행 경로를 도시하는 블럭 다이어그램이다. 예시의 목적으로, WACP 소프트웨어는 VSM 디바이스(140)에 상주하는 것으로 도시되어 있다. 또한, WACP 소프트웨어는, 예컨대, 호스트 컴퓨터(110c) 및/또는 WACP 가능 네트워크 엘리먼트와 통합되도록 구성된 다른 타입의 디바이스를 포함하는 WACP 통신 프로토콜 인터페이스(CPI)를 채용하도록 구성된 임의의 네트워크 엘리먼트 내에 상주할 수 있다.
도시된 바와 같이, WACP CPI 소프트웨어(414)의 코어부(414a)는 복수의 소프트웨어 객체(424-426) 내에 포함되고, 소프트웨어(414)의 논-코어부(414b-414c)는 복수의 소프트웨어 객체(422, 428-432) 내에 포함된다. 본 실시예에서, 소프트웨어 객체는 C++ 코드 및/또는 소스 코드라고도 불리는, C++ 프로그래밍 언어 소스 코드로 개발되었다. 각각의 소프트웨어 객체는 명령어 및 데이터를 캡슐화한다. 소프트웨어 객체의 명령어는 소프트웨어 객체의 내부에 상주하는 함수인 그것의 메쏘드 내에 상주한다. 다른 실시예에서, 소프트웨어 객체는, 예컨대, C, C#(C 샤프), 또는 자바 프로그래밍 언어의 소스 코드와 같은, 다른 타입의 소스 코드로 개발될 수 있다.
WACP 메시지(390)는 다른 네트워크 엘리먼트로부터 VSM 디바이스(140n)로 전송되고, 운영체제(412)에 의해 수신되고 버퍼링된다. WACP 메시지(390)는 상호교환 인벨로프(220) 내에 동봉되어 있고, 제1, 제2, 및 제3메시지 분류를 가진 MOMP 요청 타입의 메시지이다. WACP CPI 소프트웨어(414)는 WACP CPI 소프트웨어(414)에 의해 수행되는 다양한 무결성 검사를 통과한 메시지(390)가 제공되는 어플리케이션 소프트웨어(416) 내의 적절한 위치로 메시지(390)를 라우팅하고, 프로세싱하 고, 전송하도록 구성된다.
메시지(390)의 프로세싱 및 전송은 메시지(390) 내에 저장된 제1, 제2, 및 제3메시지 분류를 포함한, 메시지(390)의 다양한 속성에 따라 수행될 것이다. 어플리케이션 소프트웨어(416) 내의 특정 위치로 메시지(390)를 전송한 후, 어플리케이션 소프트웨어(416)는 그 전송된 메시지(390)에 응답할 것인지, 그리고 어떻게 응답할 것인지를 판단할 것이다.
WACP 메시지(390)를 수신하고, 프로세싱하고, 라우팅하기 위한 실행 경로(438)가 도시되어 있다. 실행 경로(438)는 운영체제(412)를 지나, WACP CPI 소프트웨어(414)를 지나고, 어플리케이션 소프트웨어(416)로 진행한다.WACP CPI 소프트웨어(414)는 메시지를 수집적으로 수신하고, 프로세싱하고, 어플리케이션 소프트웨어(416)로 라우팅하는 일 세트의 소프트웨어 객체(422-432)에 포함된다. 또한, 어플리케이션 소프트웨어(416)의 일부는 일 세트의 소프트웨어 객체(432-434)에 포함된다.
이러한 실시예에서, 운영체제(4121)는 윈도우 XP와 같은, 마이크로소프트 윈도우즈 32비트 운영체제로 구현된다. 운영체제(412) 및 그것의 디바이스 및 네트워크 드라이버를 포함하는 연관된 소프트웨어는 WACP CPI의 하위 프로토콜 스택(210A-210C)을 구현하도록 구성된다(도 2B 참조). WACP CPI 소프트웨어(414) 및 그것의 연관된 소프트웨어 객체(422-236)는 상위 프로토콜 스택(210D-210G)을 구현한다.
WACP CPI 소프트웨어(414)의 상위 프로토콜 스택(210D-210G)은 하기 방법으 로 운영체제(412)의 하위 프로토콜 스택(210A-210C)으로부터의 통신을 수신한다. CEthCommSvr 객체(420)의 RecvMsg() 메소드는 운영체제(412) 내측에 버퍼링된 메시지(390)를 수신하고 큐잉하기 위해, ws2_32.dll 다이나믹 링크 라이브러리(DLL)의 내측에 상주하는 recv() 함수를 호출한다. ws2_32.dll은, 예컨대, 윈도우즈 XP, 윈도우즈 2000, 윈도우즈 NT, 및 윈도우즈 서버 2003을 포함한 윈도우즈 운영체제와 상호운용하기 위해 마이크로소프트에 의해 제공된다.
CEthCommSvr 객체(420)의 RecvMsg() 메소드는 하위 프로토콜 스택(210A-210C)으로부터 수신된 통신 데이터의 사용가능성을 나타내기 위해 세마포어(shmaphore)를 세팅한다. CWACPPres 객체(422)의 DataThread() 메소드는 CEthCommSvr 객체의 RecvMsg() 메소드에 의한 세마포어의 세팅을 대기하는, 메시지 입력 스레드라도고 불리는, 스레드를 따라 실행한다.
세팅된 세마포어에 응답하여, CWACPPres 객체(422)의 DataThread() 메소드를 실행하는 메시지 입력 스레드는 차단을 해제하고, CFmRouter 객체(424)의 RecvMsg() 메소드를 호출하는 CWACPPres 객체(422)의 (도시되지 않은) ProcessMsg() 메소드를 호출한다. 메소드(함수) 호출(438a)은 메시지 입력 스레드의 실행의 상태가 CWACPPres 객체(422)를 떠나, CFmRouter 객체(424)로 들어가고, 버퍼링된 들어오는 WACP 메시지(390)를 프로세싱하고 라우팅하기 위해, 실행 경로(438)를 따라 더 진행하게 한다.
RecvMsg() 메소드는 메시지(390)로부터 제1분류 식별자를 추출하고, 그것을 메시지(390)의 제1(패밀리) 분류와 연관된 일종의 CFmNIBPCom 객체(430)의 어드레 스인 객체 포인터로 매핑한다. 그 다음, RecvMsg() 메소드는 일종의 CFmNIBPCom 객체(430) 내에 상주하는 RecvMsgHandler() 메소드를 호출한다(438c).
그 다음, RecvMsgHandler() 메소드는 메시지(390)로부터 제2(지너스)분류 식별자를 추출하고, 그것을 (도시되지 않은) 미리 등록된 (pRequestHandler) 함수 포인터에 매핑한다. 이 함수 포인터는 일종의 CWACPApp 객체(426) 내에 상주하는 RxRequestWrapper() 메소드의 어드레스이다. RxRequestWrapper() 메소드는 요청 타입의 MOMP 메시지를 프로세싱하도록 구성된다.
가정으로, 메시지(390)가 상이한 타입의 MOMP 메시지이면, 예컨대, 메시지(390)가 그것의 제2/지너스 분류에 의해 지시된 바와 같은 응답 또는 커맨드 타입의 MOMP 메시지이면, 함수 포인터는 그 타입의 메시지(제2분류) 및 그 타입의 모듈(제1/패밀리 분류)을 프로세싱하도록 구성되어 있는, RxRequestWrapper() 메소드의 어드레스가 아니라, 메소드의 어드레스를 저장할 것이다.
그 다음, CWACPApp 객체(426)의 RxRequestWrapper() 메소드는 그 메시지 전송자가 앞선 인증 검사를 성공적으로 통과했는지를 검증하고, 그러했다면, 일종의 CWACPStub 객체 내에 상주하는 RecvRequest() 메소드를 호출한다(438d).
그 다음, CWACPStub 객체(428) 내에 상주하는 RecvRequest() 메소드는 제1분류 식별자(FmNIBP)의 값을 스위치 온 시키고, 일종의 CFmNIBPStub 객체(432)의 RecvRequest() 메소드를 호출한다(438e). 텍스트 "NIBP"는 확장 모듈(FmNIBP) WACP CPI의 이름/식별자로 고유한 것이고, 메시지(390)의 제1분류와 연관된 것임을 알아야 한다.
일종의 CFmNIBPStub 객체(432)는 WACP CPI 소프트웨어(414)를 통한 메시지(390) 수신에 응답하여 어플리케이션 소프트웨어(416)에 의해 수행될 액션을 특정하기 위한 어플리케이션 소스 코드(436)를 선택적으로 저장하기 위해 사용가능하다. 그러므로, CFmNIBPStub 객체(432)는 WACP CPI 소프트웨어(414) 및 어플리케이션 소프트웨어(416)를 모두 저장하도록 구성된다.
실행 경로(438)를 다시 참조하면, 객체 CFmRouter(424) 및 CWACPApp(426)는 고정식 코어 WACP 소프트웨어 객체이며, 이는 이들 객체 각각을 정의하는 소스 코드가 WACP CPI 소프트웨어의 수정가능한 부분으로 구성되지 않는다는 것을 의미한다. 그러므로, 이들 객체(424-426)는 WACP CPI의 논-코어부 및 그것의 소프트웨어(414)에 상주하지 않는다.
서술된 실시예에서, WACP 소프트웨어 객체 CWACPPres(422), CWACPApp(426), CWACPStup(428)은 동적 코어 객체이고, 이것은 이들 객체의 정의에 포함된 소스 코드의 적어도 일부분이 WACP CPI 소프트웨어의 수정가능한 부분으로 구성된 것을 의미한다. 그러므로, 객체(422, 426, 428)는 WACP CPI의 동적(비-고정식) 코어부 및 그것의 소프트웨어(414)에 상주한다. 다른 실시예에서, 수정가능한 소스 코드는 다른 세트의 객체에 할당될 수 있다.
객체 CFmNIBPCom(430) 및 CFmNIBPStub(432)는 논-코어 WACP 소프트웨어 객체인데, 왜냐하면, 이들 객체의 정의 내에 포함된 모든 코드 및 그의 다양한 존재는 WACP CPI 소프트웨어(414)에 추가적인 논-코어(FmNIBP) 모듈의 구성에 응답하는 것이기 때문이다. 가정으로, 'FmNIBP' 모듈이 WACP CPI 소프트웨어(414)에 추 가될 것으로 구성된 것이 아니라면, 소프트웨어 객체(430-432), 및 (도시되지 않은) 다른 객체는 WACP CPI 소프트웨어(414) 내에 존재하지 않을 것이다.
코어 WACP CPI 객체는 임의의 미리보기 가능한 WACP CPI 구성 내에 있도록 구성된다. 확장 WACP CPI 객체는 WACP CPI로의 확장에 응답하여 존재한다. 그러므로, CWACPPres(422), CFmRouter(424), CWACPApp(426), 및 CWACPStub(428) 객체는 코어 객체이고, CFmNIBPCom(430) 및 CFmNIBPStub(432) 객체는 WACP CPI 소프트웨어(414) 내의 논-코어(확장) WACP 소프트웨어이다.
코어 객체(422-428) 중, CFmRouter(424) 및 CWACPApp(426) 객체는 고정식이고, CWACPPres(422) 및 CWACPStub(428) 객체는 그들 내에 포함된 소스 코드에 관하여 동적이다. 모든 논-코어 객체 CFmNIBPCom(430) 및 CFmNIBPStub(432)는 그들 내에 포함된 소스 코드에 관하여 동적이다.
서브스트링 "Stub"를 포함하는 함수 이름은 그 함수가 스터브 함수임을 나타내는 것임을 알 수 있다. 스터브 함수는 어플리케이션 파라미터가 CPI 소프트웨어(414)와 어플리케이션 소프트웨어(416)를 연결하기 위해 어플리케이션 특정 소스 코드를 추가시키는 것이 자유로운 소스 코드 내에 위치한다. 몇몇 실시예에서, 각각의 모듈 타입에 대하여 정의된 각각의 메시지에 대한 스터브 함수가 할당될 수 있다. 몇몇 실시예에서, 스터브 함수는, 또한, 콜 백(call back) 함수로 구현된다. 콜 백 함수는 메시지 수신과 같은, 미리-특정된 이벤트에 응답하여 CPI 소프트웨어로부터 호출되고자 하는 의도이다.
도 4B의 WACP 메시지(390) 수신에 응답하여, CFmNIBPStub 객체(432) 내의 어 플리케이션 소프트웨어(436)는 일종의 CWACPApp(426) 객체 내에 상주하는 SendMsg() 메소드 매핑하는 SEND_RESPONSE() 함수를 호출한다. CWACPApp(426) 객체 내의 SendMsg() 메소드는 일종의 CWACPPres 객체(422) 내에 상주하는 SendMsg() 메소드를 호출한다. CWACPPres 객체(422)의 SendMsg() 메소드는 CFmRouter 객체(424) 내에 상주하는 SendMsg() 메소드를 호출한다. CFmRouter 객체(424)의 SendMsg() 메소드는 제1(패밀리)분류 식별자를 함수 포인터에 매핑하고, 이 함수 포인터를 호출한다. 이 함수 포인터는 일종의 CFmNIBPCom 객체(430) 내에 상주하는 SendMsgHandler() 메소드의 어드레스를 저장한다. 일종의 SendMsgHandler() 메소드는 전송될 응답 타입의 MOMP 메시지를 프로세싱하도록 구성된다.
그 다음, SendMsgHandler() 메소드는 제2(지너스)분류 식별자의 값을 스위치 오프하고, 동일종의 CFmNIBPCom 객체(430) 내에 상주하는 TxMsg() 메소드를 호출한다. 이 TxMsg()는 일종의 CInterchange 객체(440) 내에 상주하는 SendPacketWrapper() 메소드의 어드레스를 저장하는 함수 포인터를 호출한다.
그 다음, SendPacketWrapper() 메소드(440)는 세머포어 이름을 어플리케이션 이름과 비교하고, 그 다음 CInterchange 객체(440) 내에 상주하는 SendPacket() 메소드를 호출한다. SendPacket() 메소드는 응답 타입의 MOMP 메시지를 직렬화하고, 일종의 CEthCommSvr 객체(420) 내에 상주하는 SendMsg() 메소드를 호출한다.
그 다음, CEthCommSvr 객체(420) 내의 SendMsg() 메소드는 하위 프로토콜 스택(210A-210C)에 의한 전송을 위한 메시지를 큐잉하기 위해, ws2_32.dll 다이나믹 링크 라이브러리(DLL)의 내에 상주하는 send() 함수를 호출한다. ws2_32.dll은, 예컨대, 윈도우즈 XP, 윈도우즈 2000, 윈도우즈 NT, 및 윈도우즈 서버 2003을 포함한 윈도우즈 운영체제와 상호운용하기 위해 마이크로소프트에 의해 제공된다. 그 다음, 운영체제(412)는 하위 프로토콜 스택(210A-210C)이 그 메시지를 목적 네트워크 엘리먼트로 전송하도록 한다.
WACP CPI는 코어 및 확장가능부를 포함하는 WACP CPI 명세에 관하여 서술가능하다. WACP CPI는 전체적으로 고정되지 않고, 각각의 다양한 타입의 네트워크 엘리먼트 내에 상주할 필요가 있는 확장 (특정) 기능을 수용하기 위해, WACP CPI 스펙의 코어부에 의해 서술된 것 이상으로 확장가능하고 유연하도록 설계된다. 확장 기능은 각각의 다양한 타입의 네트워크 엘리먼트에 의한 다양한 타입의 데이터, 커맨드, 및 다른 정보의 통신을 위해 채용될 수 있다. 확장 기능은 하나 이상의 네트워크 엘리먼트의 특정 그룹으로 한정되고 커스터마이징되도록 구성될 수 있다.
확장 기능은 하나 이상의 (애드 온) 모듈의 형태로 WACP CPI에 추가된다. 각각의 모듈은 제1(패밀리)분류 식별자에 의해 식별되고, 모듈의 제1분류 이름과 연관된 제2(지너스)분류 식별자 및 제3(스피시즈)분류 식별자에 의해 지시된 것을 포함한, 다른 속성에 의해 더 특징지어진다.
각각의 모듈은 각각의 개별 모듈과 연관된 메시지, 데이터, 프로시저를 포함하는 정보를 상술하는 소스 코드로부터 정의된다. 이 메시지는 각각의 개별 모듈과 다른 네트워크 엘리먼트 사이에 다양한 타입의 정보를 통신하기 위해 채용된다. 프로시저는 정보에 대한 오퍼레이션을 수행하고, 각각의 개별 모듈과 다른 네트워크 엘리먼트 사이에 정보를 통신하기 위해 채용된다.
몇몇 실시예에서, 정의된 데이터는 구성 카테고리 및 데이터 카테고리로 분류된다. 데이터 카테고리는 건강 호보 환자와 같은 다른 소스로부터 네트워크가 획득한 데이터를 포함한다. 구성 카테고리는 다른 소스로부터 데이터를 획득할 목적으로 특정 네트워크 엘리먼트의 동작을 구체화하는 데이터를 포함한다.
도 5A는 일 세트의 지시어(510)를 입력하고, 일 세트의 지시어(510)에 응답하여 소스 코드(540-560)를 출력하도록 구성된 소프트웨어 제너레이터 프로그램(520)을 포함한다. 몇몇 실시예에서, 소프트웨어 제너레이터 프로그램(520)은 어플리케이션 제너레이터(520), 또는 AppGen(520)으로 불린다.
전형적인 사용 시나리오에서, 지시어는 WACP CPI의 코어 기능에, 그리고, (WACP) 통신 소프트웨어 모듈(414)이라고도 불리는, WACP CPI를 구현하는 소프트웨어(414)에, 확장 기능이라고도 불리는 하나 이상의 기능 모듈의 추가를 서술한다. 확장가능 기능은 WACP CPI 명세의 확장가능부를 나타내는 지시어(510)를 통해 서술된다. 이 예의 사용 시나리오에서, 지시어(510)는 "FmNIBP"의 이름이 할당된 하나의 모듈의 추가를 서술한다.
WACP CPI의 코어 기능은 정적(개정없는) 소스 코드 파일(530) 및 동적(개정되는) 소스 코드 파일(540)을 포함한 소스 코드 파일의 코어 세트(550)로 구현된다. WACP CPI의 코어 기능에 추가되는 각각의 모듈은 소스 코드 파일의 코어 세트(550)의 서브셋(540)의 개정으로 구현되고, 일 세트의 새롭게 생성된 소스 코드 파일(560) 내에 저장된 소프트웨어로 구현된다. 새롭게 생성된 소스 코드 파일(560)은 코어 세트(550)의 정적 소스 코드 파일(530) 및 코어 세트(550)의 개정 된 소스 코드 파일(540)과 결합된다. 소스 코드 파일(560)은 소스 코드 파일(560)의 컴파일링 또는 번역 및 컴파일되고 번역된 이진수와 적절한 소프트웨어 개발 툴을 사용하여 소스 코드 파일의 코어 세트(550)의 컴파일된 또는 번역된 이진수의 링크를 통해 소스 코드의 코어 세트와 결합된다.
일 사용 시나리오에서, 소스 코드 파일(550, 560)은 링크 가능한 객체(바이너리) 파일로 컴파일되고, 그 전체가 WACP CPI 소프트웨어(414)의 나머지 부분을 구성하는 객체 파일과 링크된다. WACP CPI 소프트웨어(414a, 414b)의 모든 객체 파일의 링크(조합)는 통신 소프트웨어 모듈(414)이라고도 불린다.
이러한 사용 시나리오에서, C++ 컴파일러 및 링커 프로그램과 같은 컴파러 프로그램은 라이브러리 형태로 통신 소프트웨어 모듈(414)을 생성하기 위해 채용된다. 이 라이브러리는 정적 또는 동적으로 링크된 라이브러리일 수 있다. 라이브러리(414)는 소스 코드로부터 컴파일링된 객체 파일과 같이 내장된 다른 어플리케이션 소프트웨어(416)와 링크된다. 소스 코드 파일(540)의 개정된 부분, 및 파일(560)의 컨텐츠는 통신 소프트웨어 모듈(414b)의 확장가능부를 나타내는 소스 코드를 내장한다.
다른 사용 시나리오에서, 마이크로소프트 비쥬얼 C++ 번역기 및 디버깅 프로그램과 같은, 번역 프로그램이 번역된 라이브러리 형태로 통신 소프트웨어 모듈(414)을 실행하기 위해 채용된다. 이 라이브러리(414)는 어플리케이션 소스 코드로부터 번역된 다른 어플리케이션 소프트웨어(416)와 번역 프로그램에 의해 링크된다.
도시된 예시적인 사용 시나리오에 대하여, 지시어(510)는 이름 "FmNIBP"에 의해 식별된 하나의 모듈의 추가를 서술한다. 서브스트링 "Fm"은 모듈(패밀리) 식별자를 나타내고, 서브스트링 "NIBP"은 특정 모듈(과)의 텍스트형 이름을 나타낸다. 소스 코드 파일(560)은 NIBP 모듈을 정의하는 지시어를 프로세싱하는 소프트웨어 제너레이터 프로그램(520)에 응답하여 생성된다. NIBP 모듈 지시어를 프로세싱하는 소프트웨어 제너레이터 프로그램(520) 없이, 소스 코드 파일(560)은 소프트웨어 제너레이터 프로그램(520)에 의해 생성되지 않고, WACP CPI 소프트웨어(414) 내에 존재하지 않는다. 소스 코드 파일(540)은 NIBP 모듈의 프로세싱 및 포함이 있거나 없는 WACP CPI 소프트웨어(414) 내에 존재하는 파일이다. 소스 코드 파일(540)의 일부분은 각각 소프트웨어 제너레이터 프로그램(520)에 의한 NIBP 모듈 지시어의 프로세싱 및 WACP CPI 소프트웨어(414)으로의 NIBP 모듈 소프트웨어(414b)의 결과적인 포함에 응답하여 몇몇 방법으로 개정된다.
이러한 사용 시나리오에서, FmNIBP 모듈은 CFmNIBPcom.h(562a), CFmNIBPcom.cpp(562b), CFmNIBPStub.h(564a), CFmNIBPStub.cpp(564b), CNIBPCStd.h(566a), CNIBPCStd.cpp(566b), CNIBPDStd.h(568a), 및 CNIBPDStd.cpp(568b)란 이름의 소스 코드 파일을 생성시킨다. 앞서 언급한 소스 코드 파일(562a-568b)의 파일 이름은 각각 텍스트 "NIBP"를 포함한다.
또한, 이러한 사용 시나리오에 대하여, FmNIBP 모듈은 CWACPApp.h(542a), CWACPApp.cpp(542b), CWACPPres.h(544a), CWACPPres.cpp(544b), CWACPStub.h(544a), CWACPStub.cpp(544b)란 이름의 기존의 소스 코드 파일에, 소스 코드의 추가를 포함한, 개정을 일으킨다. 소스 코드 파일의 코어 세트(550)의 다른 기존의 소스 코드 파일(530)은 FmNIBP 지시어를 프로세싱하고, WACP CPI 소프트웨어(414)에 FmNIBP 모듈 관련 소프트웨어(414b)를 추가한 후, 개정되지 않은 상태로 남는다. 소스 코드 파일(530)의 코어 세트에 대한 파일 이름은 텍스트 "NIBP"를 포함하지 않는다.
도 5B는 복수의 상호운용 네트워크 엘리먼트(110C, 140n, 160)에 설치된 WACP CPI 소프트웨어(414)의 상이한 구성을 도시하는 블럭 다이어그램이다. 호스트 컴퓨터(110c)는 모듈(580a-580n)을 포함하도록 구성된 WACP CPI 소프트웨어(414)를 포함한다. VSM 디바이스(140n)는 두 개의 WACP CPI 모듈(580a, 580c)을 포함하도록 구성되고, WiFi 게이트웨이(170)를 통해 WiFi 802.11 통신 채널을 통해 호스트(110c)와 통신한다. 다른 디바이스(160)는 두 개의 WACP CI 모듈(580b, 580d)을 포함하도록 구성된 WACP CPI 소프트웨어(414)를 포함하고, USB 통신 채널(148)을 통해 호스트(110c)와 통신한다.
VSM 디바이스(140n) 및 다른 디바이스(160)는 모두 동일한 코어 WACP CPI 소프트웨어(414)를 채용하지만, 상이한 타입 및 구조의 생리적 데이터(정보)를 획득하고, 프로세싱하고, 공통 호스트 컴퓨터(110c)로 통신함을 알아야 한다. 호스트 컴퓨터는 VSM(140n) 및 다른 디바이스(160) 모두와 상호운용하도록 구성된다.
설치된 WACP CPI 소프트웨어(414)의 3개의 구성(470a-470c) 중 둘 이상에 공통인 모듈은 동일한 글로벌 세트의 지시어로부터 생성된다(도 5D 참조). 통신 프로토콜 인터페이스의 확장가능부는 각각의 네트워크 엘리먼트(110C, 140n, 160)가 커스터마이징된 구성(470a-470c)과 함께 설치될 수 있고, 더 크게 정의된 데이터 세트의 적어도 일부분에 대응하는 실제 데이터의 고유하고, 선택적으로 작은 서브셋과 통신하게 하는 범위로 커스터마이징되도록 구성된다.
모듈이 하나 초과의 구성(470a-470c)에 공통인, 공통 모듈 환경은 하나 초과의 구성 사이에 상보적 오버랩의 환경을 구성한다. (제1세트의 하나 이상의 지시어 모듈로부터 만들어진) 제1구성은 제1모듈을 포함하고, (제2세트의 하나 이상의 지시어 모듈로부터 만들어진) 제2구성은 제2모듈을 포함하고, 상기 제1모듈은 일 세트의 메시지 타입을 전송하도록 구성되고, 상기 제2모듈은 상기 세트의 메시지 타입을 수신하도록 구성되어 있는 다른 환경은 상보적 오버랩의 다른 예이다.
도 5D는 상이한 구성으로 만들어진 글로벌 세트의 지시어(680)의 일부분을 도시한다. 네트워크 엘리먼트의 전체 시스템에 대한 글로벌 세트의 지시어는 모듈(680a 내지 680z)에 대한 지시어를 포함한다. 도시된 바와 같이, 모듈(680b 및680d)의 지시어는 소프트웨어 제너레이터 프로그램(520)으로 입력되고, 소프트웨어 모듈(580b 및 580d)을 포함하는 소프트웨어로 출력된다. 모듈(680a 및 680c)의 지시어는 소프트웨어 제너레이터 프로그램(520)으로 입력되고, 소프트웨어 모듈(580a 및 580c)을 포함하는 소프트웨어로 출력된다. 모듈(680a 내지 680n)의 지시어는 소프트웨어 제너레이터 프로그램(520)로 입력되고, 소프트웨어 모듈(680a 내지 680n)을 포함하는 소프트웨어로 출력된다.
글로벌 데이터 세트(680) 또는 지시어의 데이터 사전(680)이라 불리는, 더 크게 정의된 데이터 세트는 모든 통신 네트워크 엘리먼트를 포함하는 전체 시스템 에 대하여 정의된 모든 모듈에 대한 지시어를 포함하는 지시어의 슈퍼-세트이다. 전형적으로, 데이터 사전은 상호운용 네트워크 엘리먼트의 전체 시스템을 지원하는 정의된 데이터 모델을 따른다.
데이터 사전(680)의 일부분은 서로 상호운용하도록 구성된 커스텀 구성(470a-470)을 생성하기 위해 소프트웨어 제너레이터 프로그램(520)으로 입력된다. 몇몇 실시예에서, 데이터 사전(680)은 생리적 데이터 서술을 포함한다. 데이터 사전(680)의 일부분은 데이터 서술 시트 또는 데이터 서술 파일이라 불린다.
몇몇 실시예에서, 시스템의 데이터는 데이터 객체로 정의되고 구조화된다. 데이터 객체는 시스템의 소프트웨어에 의해 특정 방법으로 프로세싱될 수 있는 데이터를 캡슐화하는 객체이다. 데이터 객체는 C++ 또는 자바 클래스 객체의 일부분과 같은 소프트웨어 객체의 데이터 전용부로 구현된다. 소프트웨어 객체는 명령어 및 데이터를 모두 캡슐화하지만, 데이터 객체는 데이터만 캡슐화한다.
소프트웨어 객체는 전형적으로 클래스 계층 내에 정의된 클래스로 나타난다. 몇몇 실시예에서, 데이터 객체는 클래스 계층 내의 데이터 전용 클래스에 의해 나타난다. 데이터 객체는 모듈을 구현하고, 제1네트워크 엘리먼트로부터 전송될 때 직렬화되고, 다른 제2네트워크 엘리먼트에 의해 수신될 때 역-직렬화되는 소프트웨어의 일부분에 상주한다.
이러한 타입의 실시예의 설계는 데이터 객체가 소프트웨어 객체의 속성을 가질 수 있게 한다. 예를 들어, 데이터 객체는 클래스 계층의 컨텍스트(context) 내에 정의될 수 있고, 다른 객체를 정의할 수 있는 다양한 클래스의 속성을 물려받는 다.
몇몇 실시예에서, 적어도 하나의 속성은 소프트웨어 객체 및 데이터 객체가 실행 시간 동안 소프트웨어 및 데이터 객체와 상호운용하는 소프트웨어 컴포넌트에 의해 버전 분류되고 버전 식별가능하게 할 수 있다. 이 후 버전의 데이터를 정의하는 지시어로부터 만들어진 컨피규레이션은 이전 버전의 지시어와 함께 만들어진 컨피규레이션으로부터의 데이터와 상호운용하고 프로세싱할 수 있다.
결과적으로, 통신 소프트웨어 모듈은 이후의 연관된 버전을 가진 데이터를 포함하는 (모듈을 구현하는) 하나 이상의 소프트웨어 객체 클래스로부터, 이전의 연관된 버전을 가진 데이터를 추출할 수 있다. 예를 들어, 이후 버전의 모듈을 구현하는 제1통신 소프트웨어 모듈을 실행하는 제1네트워크 엘리먼트는 이전 버전의 동일 모듈을 구현하는 제2통신 소프트웨어 모듈을 실행하는 제2네트워크 엘리먼트로부터 수신된 데이터를 인식하고 프로세싱할 수 있다.
이전 버전의 데이터가 이전 버전 및 이후 버전의 모듈 내에서 모두 동일한 물리적 오프셋을 가지기 때문에, 이러한 장점은 이후 버전의 모듈 내의 이전 버전의 데이터의 위치는 이전 버전의 모듈 내의 이전 버전의 데이터의 위치와 동일함을 보장하는 지시어의 엔터링 및 개정의 정책의 결과이다.
이러한 장점을 더 유리하게 하기 위해, 호스트 컴퓨터(110C)와 같은 중앙 허브로써 동작하는 네트워크 엘리먼트는 소프트웨어(414) 및 중앙 허브로써 동작하지 않는 VAM(140n) 및 다른 디바이스(160)와 같은 하나 이상의 주변기기 타입의 네트워크 엘리먼트의 모듈과 동일한 버전 또는 이후 버전의 하나 이상의 모듈의 데이터 와 함께 설치되는 것이 바람직하다. 상술한 이점을 가진 다양한 네트워크 엘리먼트의 소프트웨어 및 데이터 버전 업그레이드에 관한 정책은 데이터 객체에 관한 네트워크 엘리먼트와 이들 데이터 객체를 프로세싱하는 WACP CPI 소프트웨어(414) 사이에 상호운용의 지속성(백워드 버전 호환성)을 보장할 수 있다. 이러한 정책은 시간에 걸친 데이터의 발전을 수용하면서 복수의 네트워크 엘리먼트의 상호운용성을 유지할 수 있다.
본 발명의 일 실시예를 따라, 이 시스템에 의해 프로세싱되는 데이터 객체는 C++과 같은 객체 지향 프로그래밍 언어의 룰과 대응하는 룰을 따른 확장성 생성 언어(XML)를 사용하여 정의되고 구조화될 수 있다. 데이터 객체의 정의 및 구조는 하나 이상의 데이터 정의 파일에 저장된다. 몇몇 실시예에서, 데이터 정의 파일은 생리적 타입의 분류를 기초로 한다.
도 5C는 WACP 통신 프로토콜 인터페이스(CPI)를 구현하는 소프트웨어(414)를 설계하고, 발전시키고, 자동으로 생성하고 검증하는 플로우 차트를 도시한다. 컴퓨팅 환경은 각각 특정 타입의 통신 및 데이터의 구조를 요구한다. 본 발명은 상이한 네트워크 엘리먼트(디바이스)가 소프트웨어(414) 내에 구현되어 있고, 특정 타입 및 데이터 구조를 통신가능하도록 구성된 공통 인터오퍼레이팅 가능한 통신 인터페이스를 사용하여 통신할 수 있게 한다.
몇몇 실시예에서, 이 타입 및 구조 데이터는 인간 또는 다른 생리의 형태를 포함할 수 있다. 예를 들어, 데이터는 하나 이상의 환자와 연관된 수축 및/또는 확장 혈압, 심박수, 심전도 신호(ECG) 또는 SpO2 측정을 나타낼 수 있다. 분리된 모니터링 디바이스가 획득된 생리적 데이터를 상이하게 나타내고 통신한다면, WACP CPI는 각각의 상이한 디바이스가 특정 WACP CPI 명세 및 구현에 따라, 획득된 생리적 데이터를 동일한 구조 및 포맷으로 통신할 수 있게 한다.
다른 실시예에서, 데이터는 사람과 같은 엔티티, 장소, 또는 다양한 타입의 환경에 위치된 것의 상태를 모니터링하는 디바이스로부터 획득된 정보를 나타낼 수 있다. 이러한 것은, 예컨대, 상점, 뱅킹, 제조, 또는 건강 보호 환경 내의 장비를 포함할 수 있다.
제1단계(586)로서, 응답가능한 퍼스널은 네트워크 통신 환경을 포함한 특정 어플리케이션에 가장 잘 맞는 통신 프로토콜 인터페이스(CPI) 스킴(설계)을 식별한다. 따라서, 통신 프로토콜 인터페이스(CPI) 명세(설명)는 본 명세서에서 퍼스널이라고도 불리는 책임있는 퍼스널에 의해 식별된다, 예컨대, 설계되거나 선택된다. 퍼스널은 오리지널을 설계하거나, 또는 기존의 통신 프로토콜 인터페이스(CPI) 명세를 선택하는 옵션을 가진다. 그 다음(586), CPI가 설계되었다면, 설계된 CPI의 명세(설명)는 하나 이상의 기능 모듈을 정의하는 일 세트의 지시어로 인코딩된다(표현된다). 대신에, CPI가 선택되었고 연관된 기존의 지시어가 사용가능하다면, 선택된 CPI 명세와 연관된 기존 지시어가 취해진다.
그 다음(588), 소프트웨어 제너레이터 프로그램(520)은 그 세트의 확장가능한 지시어를 입력하고, CPI 명세를 구현하는 소프트웨어의 확장가능부(414b)를 출력하기 위해 실행된다(오퍼레이팅된다). 소프트웨어의 확장가능부(414b)는 설계된 또는 선택된 CPI 명세를 서술하는 확장가능한 세트의 지시어에 따라 생성된다. CPI 명세의 코어부를 구현하는 소프트웨어의 코어부(414a)는 CPI 명세를 구현하는, 통신 소프트웨어 모듈(414)이라고도 불리는, 소프트웨어(414)의 완전한 모듈을 생산하기 위해 생성되는 소프트웨어의 확장가능부(414b)와 결합된다(링크된다).
몇몇 실시예에서, 소프트웨어의 코어부(414a)는 소프트웨어 의존 플랫폼(운영체제)을 포함하고, 확장가능부(414b)는 소프트웨어 독립 플랫폼(운영체제)을 포함한다.
그 다음(590), 통신 소프트웨어 모듈(414)이라 불리는, CPI 명세의 코어부 및 확장가능부를 구현하는 소프트웨어(414)의 완전한 모듈은 복수의 네트워크 엘리먼트(110a-110c, 140a-140n, 160)에 설치되고 실행된다. 각종의 네트워크 엘리먼트(110a-110c, 140)에 설치된 통신 소프트웨어 모듈(414)은 네트워크 엘리먼트가 다른 네트워크 엘리먼트와 통신하고 상호운용하게 할 수 있다.
설치 후 및 동작 동안, 특정 타입 및 구조의 데이터는 제1네트워크 엘리먼트로부터 데이터를 전송하는 통신 소프트웨어 모듈에 의해 직렬화되고, 제2네트워크 엘리먼트로의 데이터를 수신하는 통신 소프트웨어 모듈에 의해 역-직렬화된다.
그 다음(592), 데이터 및/또는 통신이 시간에 따라 발전하는(변하는), 컴퓨팅 환경을 요구한다면, CPI 명세의 설계는 발전된(변화된) 통신 요구사항에 따라 개정된다(수정된다). 이와 마찬가지로, CPI 명세의 설계를 나타내는 지시어 또한 새로운 통신 요구사항을 수용하기 위해 개정된다(수정된다).
그 다음(588), 소프트웨어 제너레이터 프로그램(520)은 확장가능한 지시어의 개정된 세트를 입력하고, 개정된 CPI 명세를 구현하는 개정된 소프트웨어의 확장가 능부(414b)를 출력하기 위해 재실행된다(오퍼레이팅된다). 소프트웨어의 확장가능부(414b)는 재설계된, 또는 재선택된 CPI 명세를 서술하는 개정된 지시어의 확장가능한 세트에 따라 재생성된다. CPI 명세의 코어부를 구현하는 소프트웨어의 코어부(414a)는 개성된 CPI 명세를 구현하는 소프트웨어(414)의 완전한 모듈을 생산하기 위해 재생성된 소프트웨어의 확장가능부(414b)와 결합된다.
CPI 명세의 확장가능부를 구현하는 소프트웨어 생성 단계는 프로그래머를 통한 소스 코드의 라인 엔트리에 대한 라인에 의해 수동적으로 생성되는 것보다 훨씬더 정확하고 신뢰성 있을 것이다. 실제로, 생성된 소프트웨어(414b)는 확장가능한 지시어에 의해 표현되는 CPI 명세에 따라 검증된다. CPI 명세를 따른 것은 소프트웨어 제너레이터(520) 및 생성된 확장가능 소프트웨어(414b)와 결합된(링크된) 코어 소프트웨어(414a)에 의해 강화된다.
도 6A는 복수의 확장 모듈을 정의하고, 확장성 생성 언어(XML)로 인코딩된 지시어의 일 세트(610)를 도시한다. 도시된 바와 같이, 지시어(610)는 XML 선언 (버전)문(612), "DDS_DEMO"란 이름의 XML 루트 엘리먼트 태그(614), 및 "FAMILY_NIBP"란 이름의 XML 엘리먼트 태그(616), "FAMILY_ERROR"(618), "FAMILY_BATTERY"(620), "FAMILY_DTCOLLECTION"(622), 및 "FAMILY_WAVE"(624)를 포함한다. XML 엘리먼트 태그는 엘리먼트 태그, XML 태그, 또는 태그라고도 불린다.
각각의 상술한 엘리먼트 태그는 동일한 이름의 XML 엘리먼트와 연관된다. 예를 들어, FAMILY_NIBP 엘리먼트 태그는 FAMILY_NIBP 엘리먼트를 나타내고, FAMILY_BATTERY 엘리먼트 태그는 FAMILY_BATTERY 엘리먼트를 나타낸다. 각각의 엘 리먼트 태그(616-624)와 연관된 XML 엘리먼트는 (완전하게 도시되지 않았지만) 확장되지 않고, 도 6A에 도시되지 않은 다른 네스팅된 XML 엘리먼트를 포함할 수 있다. XML 엘리먼트는 엘리먼트라고도 불린다.
도 6B는 <FAMILY_NIBP> 엘리먼트 한 단계 아래 레벨에 네스팅된 XML 엘리먼트 태그를 포함하는 도 6A의 지시어 세트(610)를 도시한다. <FAMILY_NIBP> 엘리먼트는 <FAMILY_NIBP> 엘리먼트 개시 태그(616) 및 <FAMILY_NIBP> XML 엘리먼트 종료 태그(638) 사이에 위치된 정보를 포함한다. <FAMILY_NIBP> 엘리먼트는 그 아래에 일 레벨의 엘리먼트 태그를 드러내도록 확장되도록 서술된다. <FAMILY_NIBP> 엘리먼트 한 레벨 아래에 위치된 엘리먼트 태그는 <FAMILY_NIBP> 엘리먼트의 차일드 엘리먼트라 불리고, "SPECIES KEY"(630), "CNIBPDSTD_DEFINITION"(632), "CNIBPDSTD_DEFINITION"(634), 및 "MESSAGES"(636)란 이름이다. <FAMILY_NIBP> 엘리먼트 종료 태그(638)는 <FAMILY_NIBP> XML 엘리먼트를 정의하는 XML의 끝을 표시한다.
<FAMILY_NIBP> 엘리먼트를 정의하는 XML은 <FAMILY_NIBP> 엘리먼트 개시 태그(616)와 엘리먼트 종료 태그(638) 사이에 위치되고, <FAMILY_NIBP> 모듈을 정의하는, FAMILY_NIBP 모듈 지시어라 불리는, 지시어를 포함한다. FAMILY_NIBP 모듈 지시어는 FAMILY_NIBP 모듈에 대한 소스 코드를 생성하기 위해 소프트웨어 제너레이터 프로그램(520)으로 입력된다. 이 소스 코드는 도 5A의 소스 코드 파일(542a-546b, 및 562a-568b) 내에 저장된다.
도 6C는 도 6A의 지시어 세트(610)의 <FAMILY_NIBP> 엘리먼트의 <MESSAGES>(636) 엘리먼트의 한 레벨 아래에 위치된 XML 엘리먼트 태그를 도시한다. 도시된 바와 같이, 일련의 엘리먼트 태그(642a-642h)는 각각 "MSG"란 이름이고, 각각 <MESSAGES> 엘리먼트(636) 아래에 네스팅된 <MSG> 엘리먼트를 나타낸다. 각각의 <MSG> 엘리먼트는 'type', 'name', 및 'description' 속성으로 정의된다. 예를 들어, <MSG> 엘리먼트(642)는 "요청(Request)"의 'type' 속성값, "GET_BP"의 'name' 속성값, 및 "Get BP"의 'description'설명 속성값을 가진다.
각각의 모듈 타입(패밀리)은 그 자신의 고유한 범위의 기능, 그 자신의 고유한 세트의 저장된 데이터, 및 그것이 전송하고 수신하는 고유한 세트의 메시지를 가진다. 모듈 그 자체는 지시어(610)의 루트 태그(614) 한 레벨 아래에 위치한 <FAMILY_NIBP>(616) 또는 <FAMILY_BATTERY>(620) 엘리먼트 태그에 의해 공급되는 것과 같은, 제1(패밀리)분류 식별자를 통해 소프트웨어 제너레이터(520)에 대하여 식별된다.
패밀리 엘리먼트 내에(아래에 네스팅된), 소프트웨어 제너레이터(520)는 일 특정 지시어를 제1(패밀리)분류 식별자와 연관된 제2(지너스)분류 및 제3(스피시즈)분류 식별자로 번역한다.
이 예의 실시예에서, 소프트웨어 제너레이터(520)는 각각의 <MSG> 엘리먼트 타입 속성을 제2(지너스)분류 식별자, 또는 제3(스피시즈)분류 식별자로 번역한다. 소프트웨어 제너레이터(520)는 "type" 속성값을 제2(지너스)분류 식별자로 변역하고, <MSG> 엘리먼트 "name" 속성값을 제3(스피시즈)분류 식별자로 번역한다.
결과적으로, 소프트웨어 제너레이터(520)는 FAMILY_NIBP 모듈의 메시지를 각 각 (8개의) 제3(스피시즈)분류 식별자 중 하나와 연관되고, (4개의) 제2(지너스)분류 식별자와 연관된 (8개의) 메시지를 가지도록 번역한다. 예를 들어, <MSG> 엘리먼트(642)는 "Request" 식별자로 표현된 제2(지너스)분류 식별자, 및 "GET_BP" 식별자로 표현된 제3(스피시즈)분류 식별자를 가진 메시지를 나타낸다.
"Request"와 같은 제2(지너스)분류 식별자 값은 연관된 메시지가 요청 타입의 WACP 메시지임을 나타낸다(도 3B 참조). "GET_BP"와 같은 제3(스피시즈)분류 식별자 값은 특정 WACP 메시지 구조를 나타낸다. 그러므로, "GET_BP" 메시지 구조는 요청 타입의 WACP 메시지이다.
<MSG> 엘리먼트(642)의 입력에 응답하여, 소프트웨어 제너레이터(520)는 도 4A-4C에 대하여 서술된 바와 같이, 요청 타입의 WACP 메시지인 "GET_BP" 메시지 구조를 프로세싱하는 FmNIBP 모듈에 대한 소스 코드를 생성한다. 이와 마찬가지로, 소프트웨어 제너레이터(520)는 다른 <MSG> 엘리먼트(644-656)에 의해 서술된 메시지를 프로세싱하는 FmNIBP 모듈에 대한 소스 코드를 생성한다.
도 6D는 도 6A의 지시어 세트(610)의 <FAMILY_NIBP> 엘리먼트의 <CNIBPCSTD_DEFINITION>(634) 엘리먼트 한 단계 아래에 위치한 XML 엘리먼트 태그를 도시한다. 도시된 바와 같이, "STATIC_MEMBERS"(658) 및 "ENUMERATIONS"(660)란 이름의 엘리먼트가 <CNIBPCSTD_DEFINITION>(634) 엘리먼트 아래에 네스팅되어 있다. "VAR"란 이름의 엘리먼트가 "STATIC_MEMBERS"(658) 엘리먼트 아래에 네스팅되어 있다. "ENUM"란 이름의 엘리먼트가 "ENUMERATIONS"(660) 엘리먼트 아래에 네스팅되어 있다.
<CNIBPCSTD_DEFINITION> 엘리먼트(634)는 'class', 'abrv', 'version', 'family', 'genus', 및 'species' 속성으로 정의된다. <CNIBPCSTD_DEFINITION> 엘리먼트(634)는 "CNIBPCStd"의 'class' 속성값, "CNBPCSTD"의 'abrv' 속성, "102"의 'version' 속성, "FmNIBP"의 'family' 속성, "GnCONFIG"의 'genus' 속성, 및 "SpSTANDARD"의 'species' 속성을 가진다.
이 예의 실시예에서, 소프트웨어 제너레이터(520)는 <CNIBPCSTD_DEFINITION> 엘리먼트(634)를 "CNIBPCStd"란 이름을 가진 C++ 소프트웨어 객체 클래스를 나타내도록 번역한다. <CNIBPCSTD_DEFINITION> 엘리먼트(634)의 입력에 응답하여, 소프트웨어 제너레이터(520)는 "CNIBPCStd"란 이름의 객체 클래스를 할당하는 FmNIBP 모듈에 대한 소스 코드를 생성한다. C++ 프로그래밍 언어는 수많은 객체 지향 프로그래밍 언어 중 하나이다.
엘리먼트 태그(646a-646b)는 각각 "VAR"이란 이름이고, 각각 <STATIC_MEMBERS> 엘리먼트(644) 아래에 네스팅된 <VAR> 엘리먼트를 나타낸다. 각각의 <VAR> 엘리먼트는 'type', 'name', 'command' 속성으로 정의된다. 예를 들어, <VAR> 엘리먼트(646a)는 "uint16"의 'type' 속성값, "DisplayUnits"의 'name' 속성값, 및 "Display units for BP and MAP"의 'command' 속성을 가진다.
이 예의 실시예에서, 소프트웨어 제너레이터(520)는 <VAR> 엘리먼트를 (데이터가 저장된) 데이터 변수를 나타내도록, 그리고, "type" 속성값 "uint16"을 그 데이터 변수의 데이터 타입으로 "name" 속성값 "DisplayUnits"을 그 데이터 변수의 이름으로 번역한다. <VAR> 엘리먼트(646a)의 입력에 응답하여, 소프트웨어 제너레 이터(520)는 "uint16"의 'type' 속성 및 "DisplatUnits"의 'name'(식별자)을 가진 데이터 변수를 할당하는, NIBP 모듈 내의 "CNIBPCStd"란 이름의 소프트웨어 객체 클래스에 대한 소스 코드를 생성한다. "uint16"과 같은 데이터 타입 값은 연관된 데이터 변수가 부호없는 16비트 정수임을 나타낸다.
엘리먼트 태그(652a-562e)는 각각 "ENUM"이란 이름이고, 각각 <ENUMERATIONS> 엘리먼트(650) 아래에 네스팅된 <ENUM> 엘리먼트를 나타낸다. 각각의 <ENUM> 엘리먼트는 'type', 'name', 'default value', 및 'description' 속성으로 정의된다. 예를 들어, <ENUM> 엘리먼트(652a)는 "DisplayUnits"의 'type' 속성값, "NIBP_MMHG"의 'name' 속성값, "0"의 'default value', 및 "mmHg"의 'description' 속성값을 가진다. 이 예의 실시예에서, 소프트웨어 제너레이터(520)는 <ENUM> 엘리먼트를 C++ 열거형(enumeration) 타입 선언을 나타내도록 번역하고, 동일한 타입의 임의의 다른 <ENUM> 엘리먼트와 함께, "type" 속성값 "DisplayUnits"을 열거형 타입 선언의 이름지어진 데이터 타입으로, "NIBP_MMHG"의 "name" 속성값을 열거형 타입 선언 맴버로 번역한다. <ENUM> 엘리먼트(652a)의 입력에 응답하여, 소프트웨어 제너레이터(520)는 "DisplayUnits"의 'type' 속성 및 CNIBPDSTD_DISPLAYUNITS의 'name'(식별자)을 가진 열거형 데이터 타입을 선언하는 NIBP 모듈에 대한 소스 코드를 생성한다.
NIBP 모듈에 대하여 생성된 소스 코드는 다음과 같다:
도 6E는 도 6A의 지시어 세트(610)의 <FAMILY_NIBP> 엘리먼트(616)의 <CNIBPDSTD_DEFINITION>(632) 엘리먼트의 한 레벨 아래에 위치한 XML 엘리먼트 태그의 일부를 도시한다. 도시된 바와 같이, "STATIC_MEMBERS"(654) 및 "ENUMERATIONS"(660)란 이름의 엘리먼트는 <CNIBPDSTD_DEFINITION>(632) 아래에 네스팅되어 있다. "VAR"이란 이름의 엘리먼트가 "STATIC_MEMBERS"(654) 엘리먼트 아래에 네스팅되어 있다. "ENUM"이란 이름의 엘리먼트가 "ENUMERATIONS"(660) 엘리먼트 아래에 네스팅되어 있다.
<CNIBPDSTD_DEFINITION> 엘리먼트(632)는 'class', 'abrv', 'version', 'family', 'genus', 및 'species' 속성으로 정의된다. <CNIBPDSTD_DEFINITION> 엘리먼트(632)는 "CNIBPDStd"의 'class' 속성, "CNBPDSTD"의 'abrv' 속성, "105"의 'version' 속성, "FmNIBP"의 'family' 속성, "GnDATA"의 'genus' 속성, 및 "SpSTANDARD"의 'species' 속성을 가진다.
이 예의 실시예에서, 소프트웨어 제너레이터(520)는 <CNIBPDSTD_DEFINITION> 엘리먼트(632)는 "CNBIPDStd"란 이름을 가진 C++ 소프트웨어 객체 클래스를 나타내도록 번역한다. <CNIBPDSTD_DEFINITION> 엘리먼트(632)의 입력에 응답하여, 소프 트웨어 제너레이터(520)는 "CNIBPDStd"란 이름의 소프트웨어 객체 클래스를 할당하는 FmNIBP 모듈에 대한 소스 코드를 생성한다.
몇몇 실시예에서, 본 발명은 지시어 세트에 따라 네트워크 엘리먼트 사이에 정보를 통신하는 방법을 제공한다. 본 방법은 제1네트워크 엘리먼트를 제공하는 단계, 코어부 및 확장가능부를 가진 통신 인터페이스 명세에 따라 통신 기능을 실행하도록 구성된 제1네트워크 엘리먼트 상에 제1통신 소프트웨어 모듈을 설치하는 단계를 포함하고, 확장가능부는 지시어의 하나 이상의 모듈을 포함하는 제1세트 지시어를 통합하도록 구성된다.
통신 기능은 특정 타입 및 구조의 데이터를 통합하도록 구성된 제1세트의 메시지 타입을 수신하고 전송하는 단계를 포함하는 액션을 수행하고, 이 메시지 타입은 제1세티의 지시어의 하나 이상의 모듈 내의 지시어에 의해 정의된다. 또한, 이 단계는 이 액션을 수행하기 위해 제1통신 소프트웨어 모듈을 오퍼레이팅하는 단계를 포함한다.
본 방법은 제2네트워크 엘리먼트를 제공하는 단계, 제2네트워크 엘리먼트 상에 제2통신 소프트웨어 모듈을 설치하는 단계를 더 포함하고, 제2통신 소프트웨어 모듈은 통신 인터페이스 명세에 따라 통신 기능을 실행하도록 구성되어 있고, 통신 기능은 특정 타입 및 구조의 데이터를 통합하도록 구성된 제2세트의 메시지 타입을 수신하고 전송하는 단계를 포함하는 액션을 수행하고, 특정 타입 및 구조의 데이터를 통합하는 제2세트의 메시지 타입은 제2세트의 지시어 내의 지시어에 의해 정의되고, 제2세트의 지시어는 지시어의 하나 이상의 모듈을 포함하고, 제1세트의 지시 어와 제2세트의 지시어 사이에 상보적 오버랩이 존재한다. 또한 이 단계는 이 액션을 수행하기 위해 제1통신 소프트웨어 모듈을 오퍼레이팅하는 단계를 포함한다.
선택적으로, 제1 및 제2세트의 지시어는 확장성 생성 언어(XML)로 표현될 수 있다. 바람직하게는, 이 지시어들은 사람 및 기계 판독가능한 것이고, 지시어가 특정 프로그래밍 언어에 독립적이도록, 소스 코드에 의해 표현되지 않는다.
몇몇 실시예에서, 제1통신 소프트웨어 모듈은 제1세트의 소스 코드에 의해 표현되고, 여기서, 제1세트의 지시어는 소스 코드로 표현되지 않고, 소프트웨어 제너레이터 프로그램은 제1세트의 지시어를 입력하고, 그 지시어에 응답하여 제1세트의 소스 코드의 대부분을 생성한다.
몇몇 실시예에서, 제1세트의 소스 코드의 대부분이 객체 지향 프로그래밍 언어로 표현되고, 여기서 제1세트의 소스 코드는 그 객체 지향 프로그래밍 언어 내에 표현된 클래스 계층 내에 상주하는 하나 이상의 소프트웨어 객체 클래스로 표현된다.
선택적으로, 특정 타입 및 구조의 데이터는 객체 지향 프로그래밍 언어에 의해 표현되고, 클래스 계층 내에 상주하는 하나 이상의 데이터 전용 클래스로 표현되고, 여기서 클래스 계층은 객체 지향 프로그래밍 언어로 표현되는 구조를 가진다. 데이터 전용 클래스는 제1 및 제2통신 소프트웨어 모듈 중 하나에 의한 전송 및 수신을 위해 2진 시퀀스로 변환된다. 선택적으로, 데이터 전용 클래스는 제1 및 제2통신 소프트웨어 모듈 중 하나에 의한 전송 및 수신을 위해 XML 시퀀스의 데이터로 변환된다. XML 시퀀스는 사람 및 기계 판독가능한 파일로 저장된다.
상보적 오버랩은 제1세트의 하나 이상의 지시어 모듈 및 제2세트의 하나 이상의 지시어 모듈이 각각 지시어의 공통 모듈을 포함하는 환경임을 알아야 한다. 다른 환경에서, 상보적 오버랩은 제1세트의 하나 이상의 지시어 모듈이 제1모듈을 포함하고, 제2세트의 하나 이상의 지시어 모듈이 제2모듈을 포함하고, 제1모듈은 일 세트의 메시지 타입을 전송하도록 구성되어 있고, 제2모듈은 전송된 메시지 타입의 세트를 수신하도록 구성되어 있다.
몇몇 실시예에서, 지시어는 데이터의 하나 이상의 세트 내의 특정 타입 및 구조의 데이터를 구별하고, 지시어는 데이터의 하나 이상의 세트 각각에 대한 하나 이상의 클래스 내에 버전 식별자 및 위치 식별자를 할당한다. 통신 소프트웨어 모듈은 연관된 이후 버전을 가진 데이터의 하나 이상의 세트를 포함하는 하나 이상의 클래스로부터, 연관된 이전 버전을 가진 데이터의 일 세트를 추출하도록 구성되어 있다.
본 발명은 예컨대, 건강 보호 환경 내의 데이터를 모니터링하고 획득하는 장비와 연관되어 채용되는 특정 타입 및 구조의 데이터에 적용될 수 있다. 이 데이터는 생리적 형태를 나타낼 수 있다.
다른 형태에서, 본 발명은 코어부 및 확장가능부를 가진 통신 프로토콜 인터페이스 명세에 관한 소프트웨어의 순응을 검증하는 방법을 제공한다. 본 방법은 코어부 및 확장가능부를 가진 통신 프로토콜 인터페이스를 제공하는 단계를 포함하고, 코어부는 고정된 통신 프로토콜 인터페이스 룰의 코어 세트를 포함하고, 확장가능부는 변화가능한 통신 프로토콜 인터페이스 룰의 확장가능한 세트를 포함한다.
또한, 이 단계는 통신 프로토콜 인터페이스 명세의 코어부를 구현하고, 소프트웨어의 확장가능부와 결합되도록 구성된 소프트웨어의 코어부를 제공하는 단계, 및 통신 프로토콜 인터페이스 룰의 확장가능 세트를 명시하는 확장가능한 지시어의 세트를 제공하는 단계, 및 확장가능한 지시어의 세트를 입력하고, 변화가능한 통신 프로토콜 인터페이스 룰의 확장가능한 세트를 따르는 소프트웨어의 확장가능한 부분을 출력하도록 구성된 소프트웨어 제너레이터 프로그램을 제공하고 오퍼레이팅하는 단계, 통신 프로토콜 인터페이스 명세를 따르고, 건강 보호 또는 다른 타입의 환경 내에 채용하기 위해 인터오퍼레이팅 가능하고 확장가능한 통신 네트워크를 제공하기 위해 소프트웨어의 코어부와 소프트웨어의 확장가능부를 결합하는 단계를 포함한다.
몇몇 실시예에서, 지시어의 확장가능한 세트는 확장성 생성 언어(XML)로 표현된다. 선택적으로, 지시어의 확장가능한 세트는 건강 보호 환경 내에 채용되는 특정 타입 및 구조의 데이터를 정의한다. 몇몇 실시예에서, 지시어의 확장 가능한 세트는 생리적 형태를 나타내는 특정 타입 및 구조의 데이터를 정의한다.
다른 형태에서, 본 발명은 특정 타입 및 구조의 발전하는 데이터를 통신하도록 구성된 통신 프로토콜 인터페이스를 제공한다. 몇몇 실시예에서, 본 발명은 통신 프로토콜 인터페이스를 정의하도록 구성되고, 코어부와 확장가능부를 가진 통신 프로토콜 인터페이스를 포함하고, 이 코어부는 고정된 통신 프로토콜 인터페이스 룰의 코어 세트를 포함하고, 이 확장가능부는 변화가능하고 시간에 걸쳐 더 변할 수 있는 통신 프로토콜 인터페이스 룰의 확장가능한 세트를 포함하고, 이 코어부는 데이터, 커맨드, 에러, 및 상태 정보를 전송하고 수신하기 위해 구성된 일 세트의 메시지를 정의하고, 이 메시지 타입의 적어도 일부분은 데이터 및 에러 정보를 전달하도록 구성된 적어도 하나의 가변 크기의 필드를 포함하고, 이 확장가능부는 특정 타입, 구조, 및 시간에 따라 변하는 크기를 가진 데이터 또는 에러 정보를 정의하도록 구성되어 있다.
본 발명이 본 명세서에 개시된 구조를 참조하여 설명되었으나, 그 세부사항으로 제한되지 않고, 본 발명은 첨부된 청구항의 범위 및 정신에 속한 임의의 수정 및 변경을 모두 포함한다.
Claims (31)
- 일 세트의 지시어를 따라 네트워크 엘리먼트 사이에서 정보를 통신하는 방법으로서,제1네트워크 엘리먼트를 제공하는 단계;상기 제1네트워크 엘리먼트 상에 제1통신 소프트웨어 모듈을 설치하는 단계를 포함하고,상기 제1통신 소프트웨어 모듈은 코어부 및 확장가능부를 가진 통신 인터페이스 명세에 따라 통신 기능을 실행하도록 구성되어 있고, 상기 확장가능부는 제1세트의 지시어를 통합하도록 구성되어 있고, 상기 제1세트의 지시어는 지시어의 하나 이상의 모듈을 포함하고,상기 통신 기능은 특정 타입 및 구조의 데이터를 통합하도록 구성되어 있는 제1세트의 메시지 타입을 수신하고 전송하는 것을 포함한 액션을 수행하고, 상기 특정 타입 및 구조의 데이터를 통합하는 상기 메시지 타입은 상기 제1세트의 지시어 내의 지시어에 의해 정의되고,상기 액션을 수행하도록 상기 제1통신 소프트웨어 모듈을 오퍼레이팅하는 단계;를 더 포함하는 것을 특징으로 하는 일 세트의 지시어를 따라 네트워크 엘리먼트 사이에서 정보를 통신하는 방법.
- 제 1 항에 있어서,제2네트워크 엘리먼트를 제공하는 단계;상기 제2네트워크 엘리먼트 상에 제2통신 소프트웨어 모듈을 설치하는 단계;를 더 포함하고,상기 제2통신 소프트웨어 모듈은 상기 통신 인터페이스 명세에 따라 통신 기능을 실행하도록 구성되어 있고,상기 통신 기능은 특정 타입 및 구조의 데이터를 통합하도록 구성된 제2세트의 메시지 타입을 수신하고 전송하는 단계를 포함하는 액션을 수행하고, 상기 특정 타입 및 구조의 데이터를 통합하는 상기 제2세트의 메시지 타입은 제2세트의 지시어 내의 지시어에 의해 정의되고, 상기 제2세트의 지시어는 지시어의 하나 이상의 모듈을 포함하고, 상기 제1세트의 지시어와 상기 제2세트의 지시어 사이에는 상보적 오버랩이 존재하고, 그리고상기 액션을 수행하기 위해 상기 제2통신 소프트웨어 모듈을 오퍼레이팅하는 단계를 더 포함하는 것을 특징으로 하는 일 세트의 지시어를 따라 네트워크 엘리먼트 사이에서 정보를 통신하는 방법.
- 제 2 항에 있어서, 상기 제1세트의 지시어 및 상기 제2세트의 지시어는 확장성 생성 언어(XML)로 표현된 지시어를 포함하는 것을 특징으로 하는 일 세트의 지시어를 따라 네트워크 엘리먼트 사이에서 정보를 통신하는 방법.
- 제 1 항에 있어서, 상기 제1통신 소프트웨어 모듈은 제1세트의 프로그래밍 언어의 소스 코드에 의해 표현되고, 상기 제1세트의 지시어는 프로그래밍 언어에 의해 표현되지 않고, 소프트웨어 제너레이터 프로그램은 상기 제1세트의 지시어를 입력하고, 상기 지시어에 응답하여 상기 제1세트의 소스 코드의 상당한 부분을 생성하는 것을 특징으로 하는 일 세트의 지시어를 따라 네트워크 엘리먼트 사이에서 정보를 통신하는 방법.
- 제 4 항에 있어서, 상기 제1세트의 소스 코드의 실질적인 부분은 객체 지향 프로그래밍 언어에 의해 표현되고, 상기 제1세트의 소스 코드는 상기 객체 지향 프로그래밍 언어로 표현된 클래스 계층 내에 상주하는 하나 이상의 소프트웨어 객체 클래스로 표현되는 것을 특징으로 하는 일 세트의 지시어를 따라 네트워크 엘리먼트 사이에서 정보를 통신하는 방법.
- 제 1 항에 있어서, 상기 특정 타입 및 구조의 데이터는 객체 지향 프로그래밍 언어로 표현되고, 클래스 계층 내에 상주하는 하나 이상의 데이터 전용 객체 클래스로 표현되고, 상기 클래스 계층은 상기 객체 지향 프로그래밍 언어로 표현된 구조를 가진 것을 특징으로 하는 일 세트의 지시어를 따라 네트워크 엘리먼트 사이에서 정보를 통신하는 방법.
- 제 6 항에 있어서, 상기 데이터 전용 클래스는 상기 제1 및 제2통신 소프트웨어 모듈 중 하나에 의한 전송 및 수신을 위해 2진 시퀀스의 데이터로 변환되는 것을 특징으로 하는 일 세트의 지시어를 따라 네트워크 엘리먼트 사이에서 정보를 통신하는 방법.
- 제 6 항에 있어서, 상기 데이터 전용 클래스는 상기 제1 및 제2통신 소프트웨어 모듈 중 하나에 의한 전송 및 수신을 위해 XML 시퀀스의 데이터로 변환되는 것을 특징으로 하는 일 세트의 지시어를 따라 네트워크 엘리먼트 사이에서 정보를 통신하는 방법.
- 제 2 항에 있어서, 상기 상보적 오버랩은 상기 제1세트의 지시어의 하나 이상의 모듈 및 상기 제2세트의 지시어의 하나 이상의 모듈이 지시어의 공통 모듈을 가진 환경인 것을 특징으로 하는 일 세트의 지시어를 따라 네트워크 엘리먼트 사이에서 정보를 통신하는 방법.
- 제 2 항에 있어서, 상기 상보적 오버랩은 상기 제1세트의 지시어의 하나 이상의 모듈이 제1모듈을 포함하고, 상기 제2세트의 지시어의 하나 이상의 모듈이 제2세트를 포함하고, 상기 제1모듈은 일 세트의 메시지 타입을 전송하도록 구성되고, 상기 제2모듈은 상기 세트의 메시지 타입을 수신하도록 구성된 환경인 것을 특징으로 하는 일 세트의 지시어를 따라 네트워크 엘리먼트 사이에서 정보를 통신하는 방법.
- 제 5 항에 있어서, 상기 제1세트의 지시어는 연관된 이후 버전을 가진 데이터로부터 연관된 이전 버전을 가진 데이터를 나타내기 위해 특정 모듈 내에 그들의 정의 연표(chronology)에 의해 특정 데이터를 식별하는 것을 특징으로 하는 일 세트의 지시어를 따라 네트워크 엘리먼트 사이에서 정보를 통신하는 방법.
- 제 11 항에 있어서, 상기 통신 소프트웨어 모듈은 연관된 이후 버전을 가진 데이터를 포함하는 하나 이상의 소프트웨어 객체 클래스로부터, 연관된 이전 버전을 가진 데이터를 추출하도록 구성된 것을 특징으로 하는 일 세트의 지시어를 따라 네트워크 엘리먼트 사이에서 정보를 통신하는 방법.
- 제 16 항에 있어서, 상기 특정 타입 및 구조의 데이터는 데이터를 모니터링하고 획득하는 장비와 연관되어 채용되는 것을 특징으로 하는 일 세트의 지시어를 따라 네트워크 엘리먼트 사이에서 정보를 통신하는 방법.
- 제 16 항에 있어서, 상기 특정 타입 및 구조의 데이터는 건강 보호 환경 내에서 채용되는 것을 특징으로 하는 일 세트의 지시어를 따라 네트워크 엘리먼트 사이에서 정보를 통신하는 방법.
- 제 16 항에 있어서, 상기 특정 타입 및 구조의 데이터는 생리적 형태를 나타내는 것을 특징으로 하는 일 세트의 지시어를 따라 네트워크 엘리먼트 사이에서 정보를 통신하는 방법.
- 코어부 및 확장가능부를 가진 통신 프로토콜 인터페이스 명세에 관한 소프트웨어의 순응을 검증하는 방법으로서,코어부 및 확장가능부를 가진 통신 프로토콜 인터페이스 명세를 제공하는 단계;상기 통신 프로토콜 인터페이스의 상기 코어부를 구현하도록 구성되어 있고, 상기 소프트웨어의 확장가능부와 결합되도록 구성된 소프트웨어의 코어부를 제공하는 단계;상기 통신 프로토콜 인터페이스 룰의 확장가능한 세트를 상술하는 일 세트의 확장가능한 지시어를 제공하는 단계;상기 세트의 확장가능한 지시어를 입력하고, 상기 소프트웨어의 확장가능부를 출력하도록 구성된 소프트웨어 제너레이터 프로그램을 제공하고 오퍼레이팅하는 단계; 및상기 통신 프로토콜 인터페이스 명세를 따르는 소프트웨어를 생성하기 위해 상기 소프트웨어의 코어부 및 상기 소프트웨어의 확장가능부를 결합하는 단계를 포함하고,상기 코어부는 고정된 통신 프로토콜 인터페이스 룰의 코어 세트를 포함하고, 상기 확장가능부는 변화가능한 통신 프로토콜 인터페이스 룰의 확장가능한 세트를 포함하고,상기 소프트웨어의 상기 확장가능부는 변화가능한 상기 통신 프로토콜 인터페이스의 확장가능한 세트를 따르는 것을 특징으로 하는 코어부 및 확장가능부를 가진 통신 프로토콜 인터페이스 명세에 관한 소프트웨어의 순응을 검증하는 방법.
- 제 16 항에 있어서, 상기 확장가능한 세트의 지시어는 확장성 생성 언어(XML)인 것을 특징으로 하는 코어부 및 확장가능부를 가진 통신 프로토콜 인터페이스 명세에 관한 소프트웨어의 순응을 검증하는 방법.
- 제 16 항에 있어서, 상기 확장가능한 세트의 지시어는 건강 보호 환경 내에서 채용되는 특정 타입 및 구조의 데이터를 정의하는 것을 특징으로 하는 코어부 및 확장가능부를 가진 통신 프로토콜 인터페이스 명세에 관한 소프트웨어의 순응을 검증하는 방법.
- 제 16 항에 있어서, 상기 확장가능한 세트의 지시어는 생리적 형태를 나타내는 특정 타입 및 구조의 데이터를 정의하는 것을 특징으로 하는 코어부 및 확장가능부를 가진 통신 프로토콜 인터페이스 명세에 관한 소프트웨어의 순응을 검증하는 방법.
- 특정 타입 및 구조의 발전하는 데이터를 통신하도록 구성된 통신 프로토콜 인터페이스로서,통신 프로토콜 인터페이스를 정의하도록 구성되어 있고, 코어부 및 확장가능부를 가진 통신 프로토콜 인터페이스;를 포함하고, 상기 코어부는 고정된 통신 프로토콜 인터페이스의 코어 세트를 포함하고, 상기 확장가능부는 변화가능한 통신 프로콜 인터페이스의 확장가능한 세트를 포함하고,상기 코어부는 데이터, 커맨드, 에러 및 상태 정보를 전송하고 수신하도록 구성된 일 세트의 메시지를 정의하고, 상기 메시지 타입의 적어도 일부분은 상기 데이터 및 에러 정보를 전달하도록 구성된 적어도 하나의 가변 크기 필드를 포함하고, 그리고상기 확장가능부는 특정 타입, 구조, 및 시간에 따라 변하기 쉬운 상기 데이터의 크기에 관하여 상기 데이터 또는 에러 정보를 정의하도록 구성되는 것을 특징으로 하는 것을 특징으로 하는 특정 타입 및 구조의 발전하는 데이터를 통신하도록 구성된 통신 프로토콜 인터페이스.
- 발전하는 데이터 정의에 따른 데이터를 통신하는 방법으로서,클라이언트로서 오퍼레이팅하는 제1네트워크 엘리먼트를 제공하는 단계;제1세트의 메시지 타입을 식별하고, 수신하고, 전송하도록 구성된 제1통신 소프트웨어 모듈을 제공하는 단계; 및상기 제1네트워크 엘리먼트와 연관된 상기 제1통신 소프트웨어 모듈을 오퍼레이팅하는 단계를 포함하고,상기 메시지 타입의 각각은 상기 제1세트의 맴버로 선택되고, 상기 발전하는 데이터 정의의 상기 제1버전의 상기 제1부분에 따라 특정된 지시어를 기초로 하는 특정 타입 및 구조의 데이터를 통합하도록 구성되어 있는 것을 특징으로 하는 발전하는 데이터 정의에 따른 데이터를 통신하는 방법.
- 제 21 항에 있어서,서버로써 오퍼레이팅하는 제2네트워크 엘리먼트를 제공하는 단계;제2세트의 메시지 타입을 식별하고, 수신하고, 전송하도록 구성된 제2통신 소프트웨어 모듈을 제공하는 단계; 및상기 제1네트워크 엘리먼트와 통신하기 위해 상기 제2네트워크 엘리먼트와 연관된 상기 제2통신 소프트웨어 모듈을 오퍼레이팅하는 단계를 포함하고,상기 메시지 타입의 각각은 상기 제2세트의 맴버로 선택되고, 상기 발전하는 데이터 정의의 상기 제2버전의 상기 제2부분에 따라 특정된 지시어를 기초로 하는 특정 타입 및 구조의 데이터를 통합하도록 구성되어 있는 것을 특징으로 하는 발전하는 데이터 정의에 따른 데이터를 통신하는 방법.
- 제 21 항에 있어서, 상기 발전하는 데이터 정의의 상기 지시어는 확장성 생성 언어(XML)로 표현된 것을 특징으로 하는 발전하는 데이터 정의에 따른 데이터를 통신하는 방법.
- 제 21 항에 있어서, 상기 발전하는 데이터 정의의 적어도 일부분은 상기 발 전하는 데이터 정의의 다른 부분을 포함하는 클래스 히에라시 내에 상주하는 클래스로 표현된 것을 특징으로 하는 발전하는 데이터 정의에 따른 데이터를 통신하는 방법.
- 제 21 항에 있어서, 상기 발전하는 데이터 정의의 상기 제1버전의 상기 제1부분에 따라 특정된 상기 지시어는 데이터 서술 시트 내에 포함된 것을 특징으로 하는 발전하는 데이터 정의에 따른 데이터를 통신하는 방법.
- 제 21 항에 있어서, 상기 발전하는 데이터 정의에 따라 획득된 정보는 상기 제1 및 제2통신 소프트웨어 모듈 중 하나에 의한 전송 및 수신을 위해 2진 시퀀스의 데이터로 변환되는 것을 특징으로 하는 발전하는 데이터 정의에 따른 데이터를 통신하는 방법.
- 제 21 항에 있어서, 상기 제1버전은 연관된 제1버전 시간 값을 가지고, 상기 제2버전은 연관된 제2버전 시간 값을 가지고, 상기 제1버전 시간 값은 상기 제2버전 시간 값과 같거나, 그 보다 빠른 것을 특징으로 하는 발전하는 데이터 정의에 따른 데이터를 통신하는 방법.
- 제 21 항에 있어서, 상기 발전하는 데이터 정의의 버전은 하나 이상의 데이터 맴버의 연관된 세트를 가지고, 상기 연관된 세트의 데이터 맴버 각각은 상기 발 전하는 데이터 정의의 다른 버전과 연관된 다른 데이터 맴버의 위치로부터 식별가능한 위치에 있는 것을 특징으로 하는 발전하는 데이터 정의에 따른 데이터를 통신하는 방법.
- 제 28 항에 있어서, 상기 연관된 세트의 상기 데이터 맴버 각각은 일 세트의 하나 이상의 연관된 버전에 할당되는 것을 특징으로 하는 발전하는 데이터 정의에 따른 데이터를 통신하는 방법.
- 제 29 항에 있어서, 상기 발전하는 데이터 정의의 이전 버전은 상기 발전하는 데이터 정의로부터의 상기 이전 버전과 연관된 데이터 맴버를 복사함으로써, 상기 발전하는 데이터 정의의 이후 버전으로부터 추출되는 것을 특징으로 하는 발전하는 데이터 정의에 따른 데이터를 통신하는 방법.
- 지시어 세트에 따라 네트워크 엘리먼트 사이에 정보를 통신하기 위한 시스템으로서,코어부 및 확장가능부를 가진 통신 인터페이스 명세에 따라 통신 기능을 실행하도록 구성된 제1통신 소프트웨어 모듈을 각각 포함하는 복수의 네트워크 엘리먼트; 및상기 네트워크 엘리먼트 각각의 사이에 통신을 제공하도록 각각 구성된 하나 이상의 통신 채널을 포함하고,상기 확장가능부는 지시어의 하나 이상의 모듈을 포함하는 제1세트 지시어를 통합하도록 구성되어 있고,상기 통신 기능은 특정 타입 및 구조의 데이터를 통합하도록 구성된 제1세트의 메시지 타입을 수신하고 전송하는 것을 포함하는 액션을 수행하고, 상기 특정 타입 및 구조의 데이터를 통합하는 상기 메시지 타입은 상기 제1세트의 지시어의 하나 이상의 모듈 내의 지시어에 의해 정의되는 것을 특징으로 하는 지시어 세트에 따라 네트워크 엘리먼트 사이에 정보를 통신하기 위한 시스템.
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US66720305P | 2005-03-30 | 2005-03-30 | |
| US60/667,203 | 2005-03-30 | ||
| US78714706P | 2006-03-28 | 2006-03-28 | |
| US60/787,147 | 2006-03-28 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| KR20070116893A true KR20070116893A (ko) | 2007-12-11 |
Family
ID=37054046
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020077024083A Withdrawn KR20070116893A (ko) | 2005-03-30 | 2006-03-30 | 복수의 네트워크 엘리먼트 사이의 정보 통신 |
Country Status (9)
| Country | Link |
|---|---|
| US (3) | US8543999B2 (ko) |
| EP (1) | EP1866780A4 (ko) |
| JP (1) | JP2008538028A (ko) |
| KR (1) | KR20070116893A (ko) |
| BR (1) | BRPI0607738A2 (ko) |
| CA (1) | CA2603380A1 (ko) |
| IL (1) | IL186249A0 (ko) |
| RU (1) | RU2007135827A (ko) |
| WO (1) | WO2006105139A2 (ko) |
Families Citing this family (29)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2008538028A (ja) | 2005-03-30 | 2008-10-02 | ウェルチ アレン, インコーポレイテッド | 複数のネットワーク構成要素間における情報の通信 |
| WO2007096870A2 (en) * | 2006-02-21 | 2007-08-30 | Correlix Ltd. | Method and system for transaction monitoring in a communication network |
| US8024421B2 (en) * | 2006-03-30 | 2011-09-20 | Welch Allyn, Inc. | Device data sheets and data dictionaries for a dynamic medical object information base |
| US8065168B2 (en) * | 2006-04-25 | 2011-11-22 | Acs State And Local Solutions, Inc. | Method, system and computer program code for automatically generating software for reformatting incoming data |
| JP4855172B2 (ja) * | 2006-07-31 | 2012-01-18 | シャープ株式会社 | 生体情報測定装置、管理装置、および生体情報通信システム |
| US20080056152A1 (en) * | 2006-09-05 | 2008-03-06 | Sharp Kabushiki Kaisha | Measurement data communication device, health information communication device, information acquisition device, measurement data communication system, method of controlling measurement data communication device, method of controlling information acquisition device, program for controlling measurement data communication device, and recording medium |
| US8189474B2 (en) * | 2006-09-27 | 2012-05-29 | Infosys Limited | Dynamic stack-based networks for resource constrained devices |
| US8930890B2 (en) * | 2006-12-05 | 2015-01-06 | International Business Machines Corporation | Software model skinning |
| US8756561B2 (en) * | 2006-12-05 | 2014-06-17 | International Business Machines Corporation | Software model normalization and mediation |
| US20100131667A1 (en) * | 2008-11-25 | 2010-05-27 | Infineon Technologies Ag | Executable Communication Protocol Description Method and Apparatus |
| US8214566B2 (en) | 2009-07-24 | 2012-07-03 | Welch Allyn, Inc. | Configurable health-care equipment apparatus |
| USD632397S1 (en) | 2010-07-22 | 2011-02-08 | Welch Allyn, Inc. | Portions of a patient-monitor housing |
| USD671222S1 (en) | 2010-07-22 | 2012-11-20 | Welch Allyn, Inc. | Module for a patient-monitor or the like |
| USD635681S1 (en) | 2010-07-22 | 2011-04-05 | Welch Allyn, Inc. | Patient-monitor housing |
| US8879604B2 (en) * | 2011-07-06 | 2014-11-04 | Cisco Technology, Inc. | Efficient rendezvous for distributed messages in frequency-hopping communication networks |
| US8990271B2 (en) | 2012-03-12 | 2015-03-24 | International Business Machines Corporation | Specifying data in a standards style pattern of service-oriented architecture (SOA) environments |
| US9092762B2 (en) | 2012-04-05 | 2015-07-28 | Welch Allyn, Inc. | Medical device maintenance system |
| US8935578B2 (en) * | 2012-09-29 | 2015-01-13 | Intel Corporation | Method and apparatus for optimizing power and latency on a link |
| CN103905903B (zh) | 2012-12-25 | 2016-02-17 | 腾讯科技(深圳)有限公司 | 一种数字电视终端的通信配对方法、终端以及系统 |
| US10467210B2 (en) * | 2016-03-28 | 2019-11-05 | Health Catalyst, Inc. | Interpreting HL7 segment hierarchy dynamically |
| EP3655912A4 (en) | 2017-07-18 | 2021-04-14 | Mytonomy Inc. | SYSTEM AND PROCEDURE FOR CUSTOM PATIENT RESOURCES AND BEHAVIORAL PHENOTYPING |
| US11922377B2 (en) * | 2017-10-24 | 2024-03-05 | Sap Se | Determining failure modes of devices based on text analysis |
| US11190487B2 (en) * | 2018-02-28 | 2021-11-30 | Palo Alto Networks, Inc. | Identifying security risks and enforcing policies on encrypted/encoded network communications |
| US11670405B2 (en) | 2018-07-12 | 2023-06-06 | Direct Supply, Inc. | Apparatus for clinical data capture |
| US11582093B2 (en) * | 2018-11-05 | 2023-02-14 | Cisco Technology, Inc. | Using stability metrics for live evaluation of device classification systems and hard examples collection |
| US10908924B2 (en) * | 2019-05-01 | 2021-02-02 | Intuit Inc. | System and methods for loading objects from hash chains |
| CN114757149B (zh) * | 2022-03-07 | 2024-10-22 | 北京主线科技有限公司 | 一种数据字典处理方法、装置、介质和电子设备 |
| US20250097204A1 (en) * | 2023-09-15 | 2025-03-20 | Cisco Technology, Inc. | Securing data communications with generative protocols |
| CN119046213B (zh) * | 2024-11-01 | 2025-06-13 | 南京牧镭激光科技股份有限公司 | 高扩展性的通用总线适配方法 |
Family Cites Families (163)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US177035A (en) * | 1876-05-02 | Improvement in car-couplings | ||
| US200259A (en) * | 1878-02-12 | Improvement in registers | ||
| US27670A (en) * | 1860-03-27 | Improvement in hot-water apparatus | ||
| US4631666A (en) * | 1982-10-25 | 1986-12-23 | Burroughs Corporation | Data transfer network for variable protocol management |
| US5818603A (en) | 1996-03-29 | 1998-10-06 | Ricoh Company, Ltd. | Method and system for controlling and communicating with machines using multiple communication formats |
| US5261080A (en) | 1987-08-21 | 1993-11-09 | Wang Laboratories, Inc. | Matchmaker for assisting and executing the providing and conversion of data between objects in a data processing system storing data in typed objects having different data formats |
| JP2720904B2 (ja) | 1990-08-31 | 1998-03-04 | 富士通株式会社 | 自己記述によるデータベース管理システムの構成方法および開発/変更方法 |
| US5317568A (en) | 1991-04-11 | 1994-05-31 | Galileo International Partnership | Method and apparatus for managing and facilitating communications in a distributed hetergeneous network |
| EP0543512B1 (en) * | 1991-11-19 | 1999-10-06 | International Business Machines Corporation | Multiprocessor system |
| US5307262A (en) | 1992-01-29 | 1994-04-26 | Applied Medical Data, Inc. | Patient data quality review method and system |
| FR2688611A1 (fr) | 1992-03-12 | 1993-09-17 | Bull Sa | Utilisation d'un langage dont le typage porte sur le contenu des variables et permettant de manipuler des constructions complexes. |
| US5664181A (en) | 1992-03-17 | 1997-09-02 | International Business Machines Corporation | Computer program product and program storage device for a data transmission dictionary for encoding, storing, and retrieving hierarchical data processing information for a computer system |
| US5664126A (en) | 1992-07-24 | 1997-09-02 | Kabushiki Kaisha Toshiba | Human interface system for communicating networked users |
| US5446880A (en) | 1992-08-31 | 1995-08-29 | At&T Corp. | Database communication system that provides automatic format translation and transmission of records when the owner identified for the record is changed |
| US5434976A (en) * | 1992-09-28 | 1995-07-18 | Standard Microsystems Corporation | Communications controller utilizing an external buffer memory with plural channels between a host and network interface operating independently for transferring packets between protocol layers |
| US20030212579A1 (en) * | 2002-05-08 | 2003-11-13 | Brown Stephen J. | Remote health management system |
| US7624028B1 (en) * | 1992-11-17 | 2009-11-24 | Health Hero Network, Inc. | Remote health monitoring and maintenance system |
| CA2128828C (en) | 1993-08-24 | 2001-01-02 | David Michael Silver | Multilingual standard resources |
| US5867688A (en) | 1994-02-14 | 1999-02-02 | Reliable Transaction Processing, Inc. | Data acquisition and retrieval system with wireless handheld user interface |
| US6275869B1 (en) | 1994-11-22 | 2001-08-14 | Eastman Kodak Company | System for network communication of image information between imaging devices according to multiple protocols |
| EP0846296A1 (en) | 1995-03-31 | 1998-06-10 | Richard I. Levin | System and method of generating prognosis reports for coronary health management |
| US5708828A (en) | 1995-05-25 | 1998-01-13 | Reliant Data Systems | System for converting data from input data environment using first format to output data environment using second format by executing the associations between their fields |
| US5710908A (en) | 1995-06-27 | 1998-01-20 | Canon Kabushiki Kaisha | Adaptive network protocol independent interface |
| US5729681A (en) | 1995-10-10 | 1998-03-17 | Intel Corporation | Method of communicating data from a host to a network controller |
| US5944659A (en) | 1995-11-13 | 1999-08-31 | Vitalcom Inc. | Architecture for TDMA medical telemetry system |
| US5802511A (en) | 1996-01-02 | 1998-09-01 | Timeline, Inc. | Data retrieval method and apparatus with multiple source capability |
| US6625617B2 (en) | 1996-01-02 | 2003-09-23 | Timeline, Inc. | Modularized data retrieval method and apparatus with multiple source capability |
| JP2000511670A (ja) | 1996-06-11 | 2000-09-05 | イェン クァン オゥン | 反復的問題解決技術 |
| US6050940A (en) | 1996-06-17 | 2000-04-18 | Cybernet Systems Corporation | General-purpose medical instrumentation |
| US8079953B2 (en) | 1996-06-17 | 2011-12-20 | Cybernet Systems Corporation | General-purpose medical instrumentation |
| US7076436B1 (en) * | 1996-07-08 | 2006-07-11 | Rlis, Inc. | Medical records, documentation, tracking and order entry system |
| US6651104B1 (en) | 1996-11-12 | 2003-11-18 | Ericsson Inc. | Multi-layered interface for interconnecting application programs to system bus lines for electronic devices |
| US5999979A (en) | 1997-01-30 | 1999-12-07 | Microsoft Corporation | Method and apparatus for determining a most advantageous protocol for use in a computer network |
| US6130917A (en) | 1997-03-14 | 2000-10-10 | Monroe; David A. | Instant protocol selection scheme for electronic data transmission |
| US6128653A (en) | 1997-03-17 | 2000-10-03 | Microsoft Corporation | Method and apparatus for communication media commands and media data using the HTTP protocol |
| DE69835314T2 (de) | 1997-04-15 | 2007-05-10 | Hewlett-Packard Development Co., L.P., Houston | Verfahren und Vorrichtung zur formatgesteuerten Interaktion zwischen Geräten |
| US7290288B2 (en) * | 1997-06-11 | 2007-10-30 | Prism Technologies, L.L.C. | Method and system for controlling access, by an authentication server, to protected computer resources provided via an internet protocol network |
| US6190313B1 (en) | 1998-04-20 | 2001-02-20 | Allen J. Hinkle | Interactive health care system and method |
| JPH1175233A (ja) | 1997-08-29 | 1999-03-16 | Matsushita Electric Ind Co Ltd | 無線呼出装置と着信呼出方法およびメッセージ読出方法 |
| AU1699799A (en) | 1997-11-20 | 1999-06-15 | Beth Israel Deaconess Medical Center | Neonatal illness severity/mortality computerized determination syste m & method |
| US6275831B1 (en) | 1997-12-16 | 2001-08-14 | Starfish Software, Inc. | Data processing environment with methods providing contemporaneous synchronization of two or more clients |
| US6697103B1 (en) * | 1998-03-19 | 2004-02-24 | Dennis Sunga Fernandez | Integrated network for monitoring remote objects |
| US6848108B1 (en) | 1998-06-30 | 2005-01-25 | Microsoft Corporation | Method and apparatus for creating, sending, and using self-descriptive objects as messages over a message queuing network |
| US6862622B2 (en) | 1998-07-10 | 2005-03-01 | Van Drebbel Mariner Llc | Transmission control protocol/internet protocol (TCP/IP) packet-centric wireless point to multi-point (PTMP) transmission system architecture |
| US6330572B1 (en) | 1998-07-15 | 2001-12-11 | Imation Corp. | Hierarchical data storage management |
| AUPP577298A0 (en) | 1998-09-09 | 1998-10-01 | Oon, Yeong Kuang Dr | Automation oriented health care delivery system based on medical scripting language |
| US6574239B1 (en) | 1998-10-07 | 2003-06-03 | Eric Morgan Dowling | Virtual connection of a remote unit to a server |
| US6584445B2 (en) | 1998-10-22 | 2003-06-24 | Computerized Health Evaluation Systems, Inc. | Medical system for shared patient and physician decision making |
| US20010011222A1 (en) | 1998-12-24 | 2001-08-02 | Andrew W. Mclauchlin | Integrated procurement management system using public computer network |
| US7904187B2 (en) | 1999-02-01 | 2011-03-08 | Hoffberg Steven M | Internet appliance system and method |
| US6725281B1 (en) | 1999-06-11 | 2004-04-20 | Microsoft Corporation | Synchronization of controlled device state using state table and eventing in data-driven remote device control model |
| US7411509B2 (en) | 1999-06-23 | 2008-08-12 | Visicu, Inc. | System and method for observing patients in geographically dispersed health care locations |
| US6665725B1 (en) | 1999-06-30 | 2003-12-16 | Hi/Fn, Inc. | Processing protocol specific information in packets specified by a protocol description language |
| GB2352370B (en) * | 1999-07-21 | 2003-09-03 | Int Computers Ltd | Migration from in-clear to encrypted working over a communications link |
| US6250309B1 (en) | 1999-07-21 | 2001-06-26 | Medtronic Inc | System and method for transferring information relating to an implantable medical device to a remote location |
| US7096282B1 (en) | 1999-07-30 | 2006-08-22 | Smiths Medical Pm, Inc. | Memory option card having predetermined number of activation/deactivation codes for selectively activating and deactivating option functions for a medical device |
| US6496851B1 (en) | 1999-08-04 | 2002-12-17 | America Online, Inc. | Managing negotiations between users of a computer network by automatically engaging in proposed activity using parameters of counterproposal of other user |
| US6332163B1 (en) | 1999-09-01 | 2001-12-18 | Accenture, Llp | Method for providing communication services over a computer network system |
| US7934149B1 (en) * | 1999-09-30 | 2011-04-26 | Instantis, Inc. | Automated creation and maintenance of programs to process internet form related submissions |
| US6940807B1 (en) | 1999-10-26 | 2005-09-06 | Velocity Communication, Inc. | Method and apparatus for a X-DSL communication processor |
| US6440066B1 (en) | 1999-11-16 | 2002-08-27 | Cardiac Intelligence Corporation | Automated collection and analysis patient care system and method for ordering and prioritizing multiple health disorders to identify an index disorder |
| US6612984B1 (en) | 1999-12-03 | 2003-09-02 | Kerr, Ii Robert A. | System and method for collecting and transmitting medical data |
| US7590644B2 (en) | 1999-12-21 | 2009-09-15 | International Business Machine Corporation | Method and apparatus of streaming data transformation using code generator and translator |
| US7194504B2 (en) | 2000-02-18 | 2007-03-20 | Avamar Technologies, Inc. | System and method for representing and maintaining redundant data sets utilizing DNA transmission and transcription techniques |
| US6766361B1 (en) | 2000-02-24 | 2004-07-20 | Cephire Technologies, Inc. | Machine-to-machine e-commerce interface using extensible markup language |
| JP4244492B2 (ja) | 2000-03-24 | 2009-03-25 | ソニー株式会社 | 情報処理装置、情報配信システム、情報処理方法、及び記録媒体 |
| US7284199B2 (en) | 2000-03-29 | 2007-10-16 | Microsoft Corporation | Process of localizing objects in markup language documents |
| US7577834B1 (en) * | 2000-05-09 | 2009-08-18 | Sun Microsystems, Inc. | Message authentication using message gates in a distributed computing environment |
| US8135796B1 (en) * | 2000-05-09 | 2012-03-13 | Oracle America, Inc. | Mechanism and apparatus for accessing and addressing services in a distributed computing environment |
| AU6465401A (en) | 2000-05-19 | 2001-12-03 | Welch Allyn Protocol Inc | Patient monitoring system |
| US6922685B2 (en) * | 2000-05-22 | 2005-07-26 | Mci, Inc. | Method and system for managing partitioned data resources |
| WO2001097909A2 (en) | 2000-06-14 | 2001-12-27 | Medtronic, Inc. | Deep computing applications in medical device systems |
| ATE438338T1 (de) | 2000-06-30 | 2009-08-15 | Becton Dickinson Co | Gesundheits- und krankheitsverwaltungssystem zur verbesserten patientenversorgung |
| FI20001630L (fi) | 2000-06-30 | 2001-12-31 | Nokia Mobile Phones Ltd | Palvelun laadun määritys datavirroille |
| US6856651B2 (en) | 2000-07-25 | 2005-02-15 | Peribit Networks, Inc. | System and method for incremental and continuous data compression |
| US20020035638A1 (en) | 2000-07-25 | 2002-03-21 | Gendron David Pierre | Routing and storage within a computer network |
| WO2002017082A1 (en) * | 2000-08-22 | 2002-02-28 | Akamai Technologies, Inc. | Dynamic content assembly on edge-of-network servers in a content delivery network |
| US7072985B1 (en) | 2001-05-02 | 2006-07-04 | Mks Instruments, Inc. | Method and apparatus for two phase structured message to tagged message translation |
| US7200671B1 (en) | 2000-08-23 | 2007-04-03 | Mks Instruments, Inc. | Method and apparatus for monitoring host to tool communications |
| US6795868B1 (en) | 2000-08-31 | 2004-09-21 | Data Junction Corp. | System and method for event-driven data transformation |
| US7054924B1 (en) | 2000-09-29 | 2006-05-30 | Cisco Technology, Inc. | Method and apparatus for provisioning network devices using instructions in extensible markup language |
| US7181508B1 (en) | 2000-11-09 | 2007-02-20 | Oki Data Americas, Inc. | System and method for communicating, monitoring and configuring a device operatively connected to a network |
| US20020128862A1 (en) | 2001-01-05 | 2002-09-12 | 3M Innovative Properties Company | Data representation management in a database |
| WO2002057917A2 (en) | 2001-01-22 | 2002-07-25 | Sun Microsystems, Inc. | Peer-to-peer network computing platform |
| US20060173951A1 (en) * | 2001-01-25 | 2006-08-03 | Carlos Arteaga | System and method for transfer, control, and synchronization of data |
| US6839753B2 (en) * | 2001-02-23 | 2005-01-04 | Cardiopulmonary Corporation | Network monitoring systems for medical devices |
| US7373600B2 (en) | 2001-03-27 | 2008-05-13 | Koninklijke Philips Electronics N.V. | DICOM to XML generator |
| US20030074248A1 (en) * | 2001-03-31 | 2003-04-17 | Braud Kristopher P. | Method and system for assimilating data from disparate, ancillary systems onto an enterprise system |
| US7136846B2 (en) | 2001-04-06 | 2006-11-14 | 2005 Keel Company, Inc. | Wireless information retrieval |
| US7120646B2 (en) | 2001-04-09 | 2006-10-10 | Health Language, Inc. | Method and system for interfacing with a multi-level data structure |
| US6792431B2 (en) | 2001-05-07 | 2004-09-14 | Anadarko Petroleum Corporation | Method, system, and product for data integration through a dynamic common model |
| US7124299B2 (en) | 2001-05-18 | 2006-10-17 | Claymore Systems, Inc. | System, method and computer program product for auditing XML messages in a network-based message stream |
| US6400286B1 (en) | 2001-06-20 | 2002-06-04 | Unisys Corporation | Data compression method and apparatus implemented with limited length character tables |
| US20040172442A1 (en) | 2001-06-27 | 2004-09-02 | Ripley John R. | System and Method for Sharing Data Between Hierarchical Databases |
| US7044911B2 (en) | 2001-06-29 | 2006-05-16 | Philometron, Inc. | Gateway platform for biological monitoring and delivery of therapeutic compounds |
| US7016963B1 (en) | 2001-06-29 | 2006-03-21 | Glow Designs, Llc | Content management and transformation system for digital content |
| US6978422B1 (en) | 2001-09-28 | 2005-12-20 | Emc Corporation | Methods and apparatus for displaying managed resource information |
| US6839717B1 (en) | 2001-10-15 | 2005-01-04 | Ricoh Company, Ltd. | Method and system of remote monitoring and support of devices, extracting data from different types of email messages, and storing data according to data structures determined by the message types |
| US6633833B2 (en) | 2001-12-14 | 2003-10-14 | Ge Medical Systems Global Technology Company, Llc | Method and apparatus for remote diagnosis of an ultrasound scanner |
| US7034691B1 (en) * | 2002-01-25 | 2006-04-25 | Solvetech Corporation | Adaptive communication methods and systems for facilitating the gathering, distribution and delivery of information related to medical care |
| US20050144155A1 (en) | 2002-02-07 | 2005-06-30 | Koninklijke Philips Electronics N.V. | Stylesheet uploading to manage terminal diversity |
| US7284240B1 (en) | 2002-02-14 | 2007-10-16 | Microsoft Corporation | API schema language and transformation techniques |
| WO2003071391A2 (en) | 2002-02-19 | 2003-08-28 | Lexicor Medical Technology, Inc. | Systems and methods for managing biological data and providing data interpretation tools |
| US20030167199A1 (en) * | 2002-03-01 | 2003-09-04 | Thomann Karen S. | Automated workflow means and method for pension products |
| US6973496B2 (en) * | 2002-03-05 | 2005-12-06 | Archduke Holdings, Inc. | Concealing a network connected device |
| JP2003263497A (ja) | 2002-03-12 | 2003-09-19 | Nippon Colin Co Ltd | 医療情報提供方法および装置 |
| US20030182626A1 (en) * | 2002-03-22 | 2003-09-25 | Eran Davidov | On-demand creation of MIDlets |
| US20030212982A1 (en) | 2002-05-09 | 2003-11-13 | International Business Machines Corporation | Message compiler for internationalization of application programs |
| US20040025167A1 (en) * | 2002-06-07 | 2004-02-05 | Grow John Darwin | Software, method and system for data connectivity and integration having transformation and exchange infrastructure |
| US7392255B1 (en) | 2002-07-31 | 2008-06-24 | Cadence Design Systems, Inc. | Federated system and methods and mechanisms of implementing and using such a system |
| US20040030763A1 (en) | 2002-08-08 | 2004-02-12 | Manter Venitha L. | Method for implementing vendor-specific mangement in an inifiniband device |
| US20040044545A1 (en) | 2002-08-28 | 2004-03-04 | Wiesmann William P. | Home care monitor systems |
| US20080313282A1 (en) * | 2002-09-10 | 2008-12-18 | Warila Bruce W | User interface, operating system and architecture |
| US6685637B1 (en) | 2002-10-11 | 2004-02-03 | Koninklijke Philips Electronics N.V. | Ultrasonic diagnostic imaging system with multiple language user interface |
| US20040088374A1 (en) | 2002-10-31 | 2004-05-06 | Webb James D. | Aggregation and sharing of patient data |
| US7103676B2 (en) * | 2002-11-04 | 2006-09-05 | Nokia Corporation | User-identifier translator and linking apparatus for XML-based services and corresponding method |
| US20040123287A1 (en) * | 2002-12-19 | 2004-06-24 | International Business Machines Corporation | System and method for installation and Integration of component datamodels |
| US7051324B2 (en) * | 2003-01-16 | 2006-05-23 | International Business Machines Corporation | Externalized classloader information for application servers |
| US7844657B2 (en) | 2003-01-17 | 2010-11-30 | Storz Endoskop Produktions Gmbh | System for controlling medical devices |
| EP1593204B1 (en) | 2003-02-14 | 2008-08-13 | Research In Motion Limited | System and method for compression structured definition language |
| US7389474B2 (en) | 2003-02-28 | 2008-06-17 | Microsoft Corporation | Language or script-based character set conversions per-application program |
| US7062251B2 (en) | 2003-03-05 | 2006-06-13 | University Of Florida Research Foundation, Inc., | Managing critical care physiologic data using data synthesis technology (DST) |
| US7620959B2 (en) * | 2003-05-12 | 2009-11-17 | Microsoft Corporation | Reflection-based processing of input parameters for commands |
| JP4546040B2 (ja) | 2003-05-12 | 2010-09-15 | キヤノン株式会社 | ネットワークサービスシステムおよびサービス代行処理方法およびコンピュータが読取り可能なプログラムを格納した記憶媒体およびプログラム |
| US20050038326A1 (en) | 2003-05-30 | 2005-02-17 | Michael Mathur | System, device, and method for remote monitoring and servicing |
| US7606929B2 (en) * | 2003-06-30 | 2009-10-20 | Microsoft Corporation | Network load balancing with connection manipulation |
| US8200775B2 (en) | 2005-02-01 | 2012-06-12 | Newsilike Media Group, Inc | Enhanced syndication |
| US7774486B2 (en) * | 2003-08-11 | 2010-08-10 | Teamon Systems, Inc. | Communications system providing multi-layered extensible protocol interface and related methods |
| US7457672B2 (en) | 2003-09-10 | 2008-11-25 | General Electric Company | Method and apparatus for exporting ultrasound data |
| DE60311462T2 (de) | 2003-09-19 | 2008-01-03 | Sun Microsystems, Inc., Santa Clara | Verfahren und Vorrichtung zur Protokollverarbeitung in Computersystemen unter Verwendung der Übersetzung von Speicheradressen |
| US7735000B2 (en) | 2003-09-25 | 2010-06-08 | Sony Corporation | Information and content exchange document type definitions to support content distribution |
| US7783637B2 (en) | 2003-09-30 | 2010-08-24 | Microsoft Corporation | Label system-translation of text and multi-language support at runtime and design |
| EP1668494B1 (de) | 2003-09-30 | 2008-12-31 | Siemens Aktiengesellschaft | Verfahren und system zur sprachkonfigurierung eines computerprogramms |
| US7408932B2 (en) | 2003-10-20 | 2008-08-05 | Intel Corporation | Method and apparatus for two-stage packet classification using most specific filter matching and transport level sharing |
| US7509657B2 (en) | 2003-10-28 | 2009-03-24 | Hewlett-Packard Development Company, L.P. | Application programming interface for a virtual switch |
| US7437484B2 (en) | 2003-12-29 | 2008-10-14 | International Business Machines Corporation | Method for optimizing synchronization |
| US7380039B2 (en) * | 2003-12-30 | 2008-05-27 | 3Tera, Inc. | Apparatus, method and system for aggregrating computing resources |
| FR2864871A1 (fr) | 2004-01-06 | 2005-07-08 | Thomson Licensing Sa | Methode de decouverte d'un reseau domestique et appareil implementant la methode |
| US7653227B2 (en) | 2004-02-09 | 2010-01-26 | Siemens Medical Solutions Usa, Inc. | Hierarchical modeling in medical abnormality detection |
| US7698383B2 (en) * | 2004-02-27 | 2010-04-13 | Research In Motion Limited | System and method for building component applications using metadata defined mapping between message and data domains |
| US20050204022A1 (en) | 2004-03-10 | 2005-09-15 | Keith Johnston | System and method for network management XML architectural abstraction |
| CA2530944C (en) * | 2004-05-04 | 2010-03-16 | Research In Motion Limited | Challenge response system and method |
| US8024128B2 (en) | 2004-09-07 | 2011-09-20 | Gene Security Network, Inc. | System and method for improving clinical decisions by aggregating, validating and analysing genetic and phenotypic data |
| US20060069605A1 (en) | 2004-09-29 | 2006-03-30 | Microsoft Corporation | Workflow association in a collaborative application |
| US7360154B2 (en) | 2004-11-17 | 2008-04-15 | Cisco Technology, Inc. | System and method for virtual router enabled electronic documents |
| US20060111936A1 (en) | 2004-11-23 | 2006-05-25 | General Electric Company | Container system and method for hosting healthcare applications and componentized archiecture |
| US8478849B2 (en) | 2004-12-07 | 2013-07-02 | Pure Networks LLC. | Network administration tool |
| US7600217B2 (en) * | 2004-12-14 | 2009-10-06 | Sap Ag | Socket-like communication API for Java |
| US20060129435A1 (en) | 2004-12-15 | 2006-06-15 | Critical Connection Inc. | System and method for providing community health data services |
| US7441185B2 (en) | 2005-01-25 | 2008-10-21 | Microsoft Corporation | Method and system for binary serialization of documents |
| US7788648B2 (en) | 2005-02-28 | 2010-08-31 | International Business Machines Corporation | System and method for the localization of released computer program |
| DE602006002600D1 (de) | 2005-03-22 | 2008-10-16 | Koninkl Philips Electronics Nv | Adressierungsschema für intelligente drahtlose sensoren-netzwerke zum medizinischen gebrauch |
| JP2008538028A (ja) | 2005-03-30 | 2008-10-02 | ウェルチ アレン, インコーポレイテッド | 複数のネットワーク構成要素間における情報の通信 |
| WO2006124952A2 (en) | 2005-05-16 | 2006-11-23 | Nervana, Inc. | The information nervous system |
| US20070027670A1 (en) | 2005-07-13 | 2007-02-01 | Siemens Medical Solutions Health Services Corporation | User Interface Update System |
| WO2007076459A2 (en) | 2005-12-21 | 2007-07-05 | Digimarc Corporation | Rules driven pan id metadata routing system and network |
| US7523442B2 (en) * | 2006-01-06 | 2009-04-21 | International Business Machines Corporation | JNDI validation |
| US20070174429A1 (en) * | 2006-01-24 | 2007-07-26 | Citrix Systems, Inc. | Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment |
| WO2007109087A2 (en) | 2006-03-18 | 2007-09-27 | Lankford, Peter | System and method for integration of streaming and static data |
| US8024421B2 (en) | 2006-03-30 | 2011-09-20 | Welch Allyn, Inc. | Device data sheets and data dictionaries for a dynamic medical object information base |
| US7904563B2 (en) * | 2006-03-31 | 2011-03-08 | Microsoft Corporation | Establishing and utilizing terminal server dynamic virtual channels |
| US8966235B2 (en) | 2006-10-24 | 2015-02-24 | Kent E. Dicks | System for remote provisioning of electronic devices by overlaying an initial image with an updated image |
| US8214566B2 (en) | 2009-07-24 | 2012-07-03 | Welch Allyn, Inc. | Configurable health-care equipment apparatus |
-
2006
- 2006-03-30 JP JP2008504274A patent/JP2008538028A/ja not_active Withdrawn
- 2006-03-30 WO PCT/US2006/011373 patent/WO2006105139A2/en not_active Ceased
- 2006-03-30 RU RU2007135827/09A patent/RU2007135827A/ru not_active Application Discontinuation
- 2006-03-30 BR BRPI0607738-2A patent/BRPI0607738A2/pt not_active Application Discontinuation
- 2006-03-30 EP EP06739881.8A patent/EP1866780A4/en not_active Withdrawn
- 2006-03-30 US US11/663,395 patent/US8543999B2/en active Active
- 2006-03-30 CA CA002603380A patent/CA2603380A1/en not_active Abandoned
- 2006-03-30 KR KR1020077024083A patent/KR20070116893A/ko not_active Withdrawn
-
2007
- 2007-09-25 IL IL186249A patent/IL186249A0/en unknown
- 2007-10-04 US US11/905,811 patent/US8402161B2/en active Active
-
2013
- 2013-02-21 US US13/772,623 patent/US8856380B2/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| IL186249A0 (en) | 2008-01-20 |
| US20080082683A1 (en) | 2008-04-03 |
| JP2008538028A (ja) | 2008-10-02 |
| EP1866780A2 (en) | 2007-12-19 |
| RU2007135827A (ru) | 2009-05-10 |
| US8402161B2 (en) | 2013-03-19 |
| EP1866780A4 (en) | 2013-07-31 |
| WO2006105139A3 (en) | 2009-05-07 |
| US8543999B2 (en) | 2013-09-24 |
| US20130166903A1 (en) | 2013-06-27 |
| US20100005448A1 (en) | 2010-01-07 |
| US8856380B2 (en) | 2014-10-07 |
| CA2603380A1 (en) | 2006-10-05 |
| WO2006105139A2 (en) | 2006-10-05 |
| BRPI0607738A2 (pt) | 2009-10-06 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR20070116893A (ko) | 복수의 네트워크 엘리먼트 사이의 정보 통신 | |
| US11373737B2 (en) | Dynamic medical object information base | |
| Knabe | Language support for mobile agents | |
| US7971210B2 (en) | Interface for processing client-server method calls within a single virtual machine | |
| US6951021B1 (en) | System and method for server-side communication support in a distributed computing environment | |
| US8429624B2 (en) | Application programming interface (API) router implementation and method | |
| CN114331416A (zh) | 数据处理的方法、装置、电子设备及存储介质 | |
| Gupta et al. | Implementation of virtual sensors for building a sensor-cloud environment | |
| CN117119079A (zh) | 一种多协议服务调用方法、装置、设备及介质 | |
| CN112202798A (zh) | 数据的协议转化方法、系统、电子设备及存储介质 | |
| US20020161828A1 (en) | System and method for communicating with a device | |
| AU2006230217B2 (en) | Communication of information between a plurality of network elements | |
| CN109286689B (zh) | 一种信息发送方法、装置及车载人车交互终端 | |
| Krupczak et al. | Implementing protocols in Java: The price of portability | |
| Satyanarayanan et al. | RPC2 User Guide and Reference Manual | |
| KR20010040971A (ko) | 분산 시스템에서 오브젝트의 지연된 재구성 및 이벤트통지를 위한 원격 로딩 | |
| CN112333267A (zh) | 用于医疗设备物联网的数据采集终端 | |
| Hansel et al. | Distributed prototyping from validated specifications | |
| CN120935275A (zh) | 消息传输方法、装置、电子设备和计算机可读存储介质 | |
| CN117632538A (zh) | 自适应结构的服务调用方法、装置、设备及存储介质 | |
| Karlsson et al. | Experiences from Implementing an RTI in Java | |
| Kermes et al. | IEEE 11073 Standards Address Remote Monitoring Market |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PA0105 | International application |
Patent event date: 20071019 Patent event code: PA01051R01D Comment text: International Patent Application |
|
| PG1501 | Laying open of application | ||
| PC1203 | Withdrawal of no request for examination | ||
| WITN | Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid |