KR100773010B1 - 메시지 로깅을 갖는 작업 흐름 판정 관리 - Google Patents

메시지 로깅을 갖는 작업 흐름 판정 관리 Download PDF

Info

Publication number
KR100773010B1
KR100773010B1 KR1020060105536A KR20060105536A KR100773010B1 KR 100773010 B1 KR100773010 B1 KR 100773010B1 KR 1020060105536 A KR1020060105536 A KR 1020060105536A KR 20060105536 A KR20060105536 A KR 20060105536A KR 100773010 B1 KR100773010 B1 KR 100773010B1
Authority
KR
South Korea
Prior art keywords
message
workflow
record
scenario
identifying
Prior art date
Application number
KR1020060105536A
Other languages
English (en)
Other versions
KR20070047209A (ko
Inventor
리차드 윌리엄 뮤어헤드
프란시스 사비에르 레딩턴
윌리엄 에이 브라운
Original Assignee
인터내셔널 비지네스 머신즈 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인터내셔널 비지네스 머신즈 코포레이션 filed Critical 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR20070047209A publication Critical patent/KR20070047209A/ko
Application granted granted Critical
Publication of KR100773010B1 publication Critical patent/KR100773010B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling

Abstract

작업 흐름 판정 관리를 위한 방법, 시스템 및 컴퓨터 프로그램 제품이 제공된다. 실시예들은 장치 상태 이력을 유지하는 단계, 장치 상태 이력에 의존하여 장치 사용 패턴을 식별하는 단계, 장치 사용 패턴에 의존하여 작업 흐름 시나리오를 식별하는 단계, 작업 흐름 시나리오에 의존하여 작업 흐름을 식별하는 단계, 장치의 속성의 적어도 하나의 값을 관리하기 위해 장치로 메시지를 전송하는 단계를 포함하는 작업 흐름을 실행하는 단계, 및 메시지를 로깅하는 단계를 포함한다. 메시지를 로깅하는 단계는 장치로 전송되는 메시지에 대해 기술하는 메시지 정보를 메시지 로그에 기록함으로써 수행될 수 있다.

Description

메시지 로깅을 갖는 작업 흐름 판정 관리{WORKFLOW DECISION MANAGEMENT WITH MESSAGE LOGGING}
도 1은 본 발명의 실시예에 따른 작업 흐름 판정 관리를 할 수 있는 예시적인 데이터 처리 시스템을 나타낸 도면.
도 2는 본 발명의 실시예에 따른 작업 흐름 판정 관리를 구현하는 데 유용한 예시적인 장치의 블록도.
도 3은 본 발명의 측면들에 따른 작업 흐름 판정 관리의 방법을 구현하는 데 유용한 예시적인 데이터 구조를 나타낸 블록도.
도 4는 본 발명의 측면들에 따른 작업 흐름 판정 관리의 방법을 구현하는 데 유용한 추가의 예시적인 데이터 구조를 나타낸 블록도.
도 5는 도 3 및 도 4의 데이터 구조 간의 예시적인 관계를 나타낸 블록도.
도 6은 예시적인 작업 흐름 판정 관리 방법을 나타낸 데이터 흐름도.
도 7은 작업 흐름의 실행 시에 전송되는 메시지를 로깅하는 단계를 포함하는 예시적인 작업 흐름 판정 관리 방법을 나타낸 플로우차트.
도 8은 본 발명에 따른 작업 흐름 판정 관리의 부가적인 측면을 나타낸 플로우차트.
본 발명의 분야는 데이터 처리, 또는 보다 구체적으로는 작업 흐름 판정 관리를 위한 방법, 시스템 및 제품에 관한 것이다.
종래의 네트워크는 여러가지 네트워크화된 장치를 포함하고 있다. 사용자는 종종 일관된 장치 사용 패턴 및 시나리오에 따라 이 여러가지 장치를 사용하거나 이 장치들의 특정의 설정을 조정한다. 이들 일관된 장치 사용 패턴 및 시나리오에 따라 장치를 일상대로 사용함에도 불구하고, 종래의 네트워크화된 장치는 여전히 종종 장치의 속성값을 변경하기 위해 사용자 개입을 필요로 한다. 사용자 개입을 필요로 하지 않는 식별된 사용 패턴 및 식별된 시나리오에 의존하여 네트워크에서의 장치 속성의 값의 변경에 대한 작업 흐름을 사용하는 작업 흐름 판정 관리 방법이 있다면 유익할 것이다.
작업 흐름 판정 관리를 위한 방법, 시스템 및 컴퓨터 프로그램 제품이 제공된다. 실시예들은 장치 상태 이력을 유지하는 단계, 장치 상태 이력에 의존하여 장치 사용 패턴을 식별하는 단계, 장치 사용 패턴에 의존하여 작업 흐름 시나리오를 식별하는 단계, 작업 흐름 시나리오에 의존하여 작업 흐름을 식별하는 단계, 장치의 속성의 적어도 하나의 값을 관리하기 위해 장치로 메시지를 전송하는 것을 포함한 작업 흐름을 실행하는 단계, 및 메시지를 로깅하는 단계를 포함한다. 메시지를 로깅하는 단계는 장치로 전송되는 메시지에 대해 기술하는 메시지 정보를 메시 지 로그에 기록함으로써 수행될 수 있다.
많은 실시예들은 또한 장치로 전송된 복수의 메시지에 의존하여 메시지 패턴을 식별하는 단계를 포함한다. 장치로 전송된 복수의 메시지에 의존하여 메시지 패턴을 식별하는 단계는 장치로 전송된 메시지에 대해 기술하는 메시지 정보를 포함하는 메시지 로그를 데이터 마이닝함으로써 수행될 수 있다.
장치 사용 패턴에 의존하여 작업 흐름 시나리오를 식별하는 단계는 또한 메시지 패턴에 의존하여 수행될 수 있다. 작업 흐름을 실행하는 단계는 관련 허용 범위에 의존하여 작업 흐름을 실행함으로써 수행될 수 있다.
본 발명의 상기한 목적, 특징 및 이점과 기타의 목적, 특징 및 이점은 유사한 참조 번호가 일반적으로 본 발명의 예시적인 실시예들의 유사한 부분을 나타내고 있는 첨부 도면에 도시되어 있는 본 발명의 예시적인 실시예들에 대한 이하의 보다 상세한 설명으로부터 명백하게 될 것이다.
정의
"802.11"은 무선 LAN 기술에 대해 IEEE에 의해 개발된 일련의 규격을 말한다. 802.11은 무선 클라이언트와 기지국 간의 또는 2개의 무선 클라이언트 간의 공중 인터페이스(over-the-air interface)를 규정한다.
"API"는 "애플리케이션 프로그래밍 인터페이스(application programming interface)"의 약자이다. API는 소프트웨어 애플리케이션을 작성하기 위한 일련의 루틴, 프로토콜 및 툴이다.
"블루투스"는 클라이언트 장치들 간의 또한 클라이언트 장치들과 LAN 또는 다른 네트워크 상의 리소스들 간의 RF 연결(RF coupling)을 위한 단거리 무선 기술에 대한 산업 규격을 말한다. BSIG(Bluetooth Special Interest Group)라고 하는 운영 단체가 장치들을 테스트하여 블루투스 호환인 것으로 자격을 부여한다. 블루투스 규격은 설계 규격을 제공하는 '기반 코어(Foundation Core)', 및 상호 운용성 가이드라인을 제공하는 '기반 프로파일(Foundation Profile)'로 이루어져 있다.
"CEBus"는 Consumer Electronics Bus(가전 기기 버스)의 약자이다. CEBus는 전력선, 무선 주파수(RF), 적외선(IR), 동축 케이블, 연선(twisted pair), 광섬유 및 오디오/비디오 등의 여러가지 매체를 통해 장치들을 제어하기 위한 공개 국제 표준이다. CEBus 표준은 EIA(Electronics Industries Association)의 한 부분인 CEMA(Consumer Electronic Manufacturers Association)에 의해 발표되었으며, 12개의 표준, 즉 ANSI/EIA-600 시리즈에 기술되어 있다. CEBus 표준은 네트워크 매체의 물리적 설계 및 토폴로지, 메시지 발생에 대한 프로토콜, 및 CAL(common application language)을 기술하고 있다. CEBus 규격은 http://www.cebus.org에서 다운로드할 수 있다.
CEBus는 네트워크화된 환경에서 다양한 장치들 간의 상호 운영성을 제공하기 위해 객체 지향 모델을 사용하는 EIA 600.81에 정의된 CAL(Common Application Lanaguage)을 제공한다. CAL 규격은 이들 개별적인 네트워크화된 장치들의 내부 동작에 대한 인터페이스를 제공하는 일련의 클래스를 정의한다. 기능 또는 특징이 CAL 규격에 정의된 클래스들 중 하나에 잘 매핑될 수 없는 경우, CAL 규격은 특수 한 클래스를 정의하기 위한 특정 범위의 클래스 식별자를 따로 두고 있다.
CAL 객체는 2가지 중요한 속성(attribute), 인스턴스 변수(Instance Variable) 및 메소드(Method)를 갖는다. 인스턴스 변수는 부울 표시, 숫자 정보, 문자열 정보, 및 기타 데이터 등의 특정의 CAL 객체에 관한 정보를 가지고 있다. 부울 인스턴스 변수는 TRUE 또는 FALSE로만 설정될 수 있다. 그 이름이 암시하듯이, 숫자 인스턴스 변수는 숫자를 저장하기 위한 것이다. 문자열 타입 인스턴스 변수는 텍스트의 저장을 제공한다. 그리고, 기타의 데이터-타입 인스턴스 변수는 하나 이상의 엘리먼트의 1차원 어레이인 기타 정보의 저장을 제공하며, 각각의 엘리먼트는 동일한 수의 하나 이상의 바이트를 포함한다.
CAL 인스턴스 변수에 포함된 정보에의 액세스는 그 객체에 고유한 일련의 멤버 메소드(member method)를 통해 달성된다. 공통 메소드(common method)의 예로는 setOn, setOff, setValue, getValue, setArray 및 getArray가 있다. 각각의 인스턴스 변수 타입에 대해 모든 메소드가 적절한 것은 아니다. 예를 들어, setOn 메소드는 부울 인스턴스 변수를 처리하기 위한 것이고, 따라서 문자열 타입의 인스턴스 변수에 대해서는 무정의이다.
"데이터 통신을 위해 연결"이란 임의의 형태의 데이터 통신, 즉 무선, 802.11b, 블루투스, 적외선, 무선, 인터넷 프로토콜, HTTP 프로토콜, 이메일 프로토콜, 네트워크화된, 직접 연결, 전용 전화 회선, 다이얼-업, RS-232(EIA232) 또는 USB(Universal Serial Bus)를 갖는 직렬 연결, 하드-와이어드(hard-wired) 병렬 포트 연결, 전력선 프로토콜에 따른 네트워크 연결, 및 당업자라면 잘 알고 있는 데 이터 통신을 위한 다른 형태의 연결을 의미한다. 데이터 통신을 위한 연결은 데이터 통신을 위한 네트워크화된 연결을 포함한다. 본 발명의 여러가지 실시예들에서 유용한 네트워크의 예로는 케이블 네트워크, 인트라넷, 엑스트라넷, 인터넷, 근거리 통신망, 원거리 통신망, 및 당업자라면 잘 알고 있는 기타의 네트워크 구성이 있다. 텔레비전 채널, 케이블 채널, 비디오 제공자, 전기 통신 소스, 기타 등등 간의 임의의 네트워크화된 연결의 사용은 본 발명의 범위 내에 속한다.
"HAVi"는 특히 홈 엔터테인먼트 환경에 대한 업체 중립적인(vendor-neutral) 오디오 비디오 표준의 이름인 'Home Audio Video interoperability(홈 오디오 비디오 상호운용성)'의 약자이다. HAVi는 여러가지 홈 엔터테인먼트 및 통신 장치(VCR, 텔레비전, 스테레오, 보안 시스템, 및 비디오 모니터 등)가 서로 네트워크화되고 서비스 게이트웨이, PC, 또는 텔레비전 등의 하나의 주장치(primary device)로부터 제어될 수 있게 해준다. 상호 연결 매체로서 "Firewire" 규격인 IEEE 1394를 사용하여, HAVi는 서로 다른 업체로부터의 제품들이 정의된 연결 및 통신 프로토콜과 API에 기초하여 서로 호환될 수 있게 해준다. HAVi의 분산 애플리케이션 시스템에 의해 제공되는 서비스는 어드레싱 방식 및 메시지 전송, 리소스를 찾아내기 위한 탐색, 로컬 또는 원격 이벤트의 포스팅 및 수신, 그리고 등시성 데이터 스트림(isochronous data stream)의 스트리밍 및 제어를 포함한다.
"HomePlug"는 The HomePlug Powerline Alliance의 약자이다. HomePlug는 고속 가정 전력선 네트워킹 제품 및 서비스에 대한 공개 규격의 작성을 위한 포럼을 제공하기 위해 만들어진 비영리 회사이다. HomePlug 규격은 전력선 네트워킹 표준 을 사용하여 가정의 전력 콘센트를 통해 인터넷 통신 및 멀티미디어를 가정으로 배달하기 위해 설계되어 있다.
HomePlug 프로토콜은 HomePlug-지원 장치가 무선 주파수 신호(RF)를 사용하여 전력선을 통해 통신할 수 있게 해준다. HomePlug 프로토콜은 RF 신호를 다수의 더 작은 서브-신호(이 서브-신호는 이어서 전력선을 통해 다른 주파수로 하나의 HomePlug-지원 장치로부터 다른 HomePlug-지원 장치로 전송됨)로 분할하기 위해 OFDM(Orthogonal Frequency Division Multiplexing, 직교 주파수 분할 다중)을 사용한다.
"HTTP"는 월드 와이드 웹의 표준 데이터 통신 프로토콜인 'HyperText Transport Protocol(하이퍼텍스트 전송 프로토콜)'의 약자이다.
"ID"는 본 명세서에서 데이터 요소에 표시되는 명사에서 관례에 따라 사용되는 "identification(식별자)"의 약자이며, 따라서 '사용자 ID'는 사용자 식별자를 말하며, 'userID'는 사용자 식별자가 저장되어 있는 데이터 요소의 이름이다.
"LAN"은 "local area network(근거리 통신망)"의 약자이다. LAN은 비교적 작은 영역에 걸쳐 있는 컴퓨터 네트워크이다. 많은 LAN이 하나의 빌딩 또는 일군의 빌딩으로 제한되어 있다. 그렇지만, 하나의 LAN이 전화선 및 무선파를 통해 임의의 거리에 걸쳐 다른 LAN들에 연결될 수 있다. 이와 같이 연결된 LAN들의 시스템은 WAN(wide-area-network, 원거리 통신망)이라고 불린다. 인터넷은 WAN의 일례이다.
"LonWorks"는 Echelon
Figure 112006078745360-pat00001
으로부터 이용가능한 네트워킹 플랫폼이다. LonWorks는 현재 가전 기기 제어 및 조명 제어 등의 다양한 네트워크 애플리케이션에서 사용되고 있다. LonWorks 네트워킹 플랫폼은 LonWorks-지원 장치 내에 설치된 "뉴런 칩(Neuron Chip)" 내에 임베디드된 "LonTalk"라는 프로토콜을 사용한다.
이 뉴런 칩은 다수의 프로세서, 판독-기록 및 판독-전용 메모리(RAM 및 ROM), 그리고 통신 및 I/O 서브시스템을 갖는 시스템-온-칩(system-on-chip)이다. 판독-전용 메모리는 운영 체제, LonTalk 프로토콜, 및 I/O 함수 라이브러리를 가지고 있다. 이 칩은 LonWorks 네트워크를 통해 장치로 다운로드될 수 있는 구성 데이터 및 애플리케이션 프로그램을 위한 비휘발성 메모리를 갖는다. 뉴런 칩은 처음 6개 계층의 표준 OSI 네트워크 모델을 제공한다. 즉, 뉴런 칩은 물리 계층, 데이터 링크 계층, 네트워크 계층, 전송 계층, 세션 계층 및 프리젠테이션 계층을 제공한다.
뉴런 칩은 애플리케이션 계층 프로그래밍을 제공하지 않는다. LonWorks 네트워크에 대한 애플리케이션 프로그램은 "뉴런 C(Neuron C)"라고 하는 프로그래밍 언어로 작성되어 있다. 뉴런 C로 작성된 애플리케이션 프로그램은 일반적으로 이벤트-구동되며, 따라서 네트워크르 통한 트래픽이 감소된다.
"OSGI"는 서비스 번들, 서비스 게이트웨이를 통해 호환 데이터 통신 및 서비스를 제공하는 소프트웨어 미들웨어의 배달을 위한 규격을 비롯한 서비스 게이트웨이에 대한 규격을 개발하는 산업 단체인 공개 서비스 게이트웨이 이니셔티브(Open Services Gateway Initiative)를 말한다. 공개 서비스 게이트웨이 규격은 서비스 제공자, 네트워크 운영자 장치 메이커, 및 가전 기기 제조업자에게 업체 중립적인 애플리케이션 및 장치 계층 API 및 함수를 제공하는 자바 기반 애플리케이션 계층 프레임워크이다.
"USB"는 "universal serial bus"의 약자이다. USB는 12 Mbps의 데이터 전송율을 지원하는 외부 버스 표준이다. 하나의 USB 포트가 마우스, 모뎀 및 키보드 등의 주변 장치를 127개까지 연결하는 데 사용될 수 있다. USB는 또한 플러그-앤-플레이 설치 및 핫 플러깅(hot plugging)을 지원한다.
"WAP"은 핸드헬드 무선 장치에서 사용하기 위한 프로토콜인 무선 애플리케이션 프로토콜(Wireless Application Protocol)을 말한다. WAP에서 유용한 무선 장치의 예로는 모바일 전화, 페이저, 양방향 무선기, 및 핸드-헬드 컴퓨터가 있다. WAP은 많은 무선 네트워크를 지원하며, WAP은 많은 운영 체제에 의해 지원된다. 핸드헬드 장치를 위해 특별히 설계된 운영 체제로는 PalmOS, EPOC, Windows CE, FLEXOS, OS/9 및 JavaOS가 있다. 디스플레이를 사용하고 인터넷에 액세스하는 WAP 장치는 "마이크로브라우저"를 실행한다. 마이크로브라우저는 핸드헬드 장치의 적은 메모리 제약 및 무선 네트워크의 낮은 대역폭 제약을 수용할 수 있는 작은 파일 크기를 사용한다.
"X-10"은 X-10 프로토콜을 의미한다. 일반적인 X-10 지원 장치는 X-10 송신기 및 X-10 수신기를 사용하여 가정 내의 기존의 AC 배선 등의 AC 전력선 배선을 통해 통신한다. X-10 송신기 및 X-10 수신기는 무선 주파수(RF) 신호를 사용하여 디지털 정보를 교환한다. X-10 송신기 및 X-10 수신기는 디지털 정보를 나타내는 짧은 RF 버스트로 통신한다.
X-10 프로토콜에서, 데이터는 프레임이라고 하는 데이터 스트링(data string)으로 전송된다. 프레임은 "1110"으로 지정된 4 비트 시작 코드로 시작한다. 시작 코드 다음에, 이 프레임은 4 비트 "하우스 코드(house code)"로 하우스(house) 등의 특정 영역을 식별하고, 4 비트 "장치 코드"로 그 영역 내의 장치를 식별한다. 이 프레임은 또한 "on", "off", "dim", "bright", "status on", "status off" 및 "status request" 등의 8 비트의 커맨드 스트링(command string)을 포함한다.
예시적인 아키텍처
이제부터 작업 흐름 판정 관리를 위한 예시적인 방법, 시스템 및 제품에 대해 도 1부터 시작하여 첨부 도면을 참조하여 설명한다. 도 1은 본 발명의 실시예에 따른 작업 흐름 판정 관리를 할 수 있는 예시적인 데이터 처리 시스템을 나타낸 것이다. 도 1의 예시적인 시스템은 데이터 통신을 위해 근거리 통신망("LAN")(103)을 통해 연결되어 있는 본 발명의 실시예에 따른 작업 흐름 판정 관리를 구현할 수 있는 다수의 작업 흐름 판정 관리 호환 장치를 포함한다. 도 1의 예에서, 예시적인 작업 흐름 판정 관리 호환 장치는 데이터 통신을 위해 LAN을 통해 연결되어 있는 개인 휴대 단말기("PDA")(112), 컴퓨터 워크스테이션(104), 개인 비디오 레코더(108), 서버(110), 퍼스널 컴퓨터(102), 온도 조절 장치(thermostat)(114), 랩톱(116), 책상 램프(118), 컴팩 디스크 플레이어(120), 및 전화(109)를 포함한다. 도 1의 아키텍처의 네트워크 연결 측면은 단지 설명을 위한 것이며 제한을 위한 것이 아니다. 실제로, 본 발명의 실시예들에 따른 작업 흐 름 판정 관리를 위한 시스템은 LAN, WAN, 인트라넷, 인터넷츠(internets), 인터넷the Internet), 웹, 월드 와이드 웹 자체, 또는 당업자라면 잘 알고 있는 다른 연결로 구현될 수 있다. 이러한 네트워크는 전체적인 데이터 처리 시스템 내의 서로 연결된 여러가지 장치들 및 컴퓨터들 간의 데이터 통신 연결을 제공하는 데 사용될 수 있는 매체이다.
도 1의 예에서, PDA(112)는 데이터 통신을 위해 무선 링크(124)를 통해 LAN(103)에 연결되어 있다. 워크스테이션(104), 서버(110), 퍼스널 컴퓨터(102), 랩톱(116) 및 전화(109)는 데이터 통신을 위해 연선 유선 연결(twisted pair wireline connection)(126, 130, 132, 136, 122)을 통해 LAN에 연결되어 있다. 개인 비디오 레코더(108) 및 컴팩트 디스크 플레이어(105)는 데이터 통신을 위해 동축 케이블 유선 연결(128, 140)을 통해 LAN에 연결되어 있다. 온도 조절 장치(114) 및 책상 램프(118)는 데이터 통신을 위해 전력선 연결(134, 138)을 통해 LAN에 연결되어 있다.
도 1의 예시적인 장치들은 지원되는 장치 속성의 현재 값을 보고할 수 있고, 도 1의 예시적인 장치들은 또한 다른 장치들로부터 그 장치가, 지원되는 속성의 값을 변경하도록 지시하는 메시지를 수신할 수 있다. 도 1의 예시적인 시스템은 일반적으로 장치 상태 이력을 유지하고, 장치 상태 이력에 의존하여 장치 사용 패턴을 식별하며, 장치 사용 패턴에 의존하여 도출 시나리오(derived scenario)를 식별할 수 있다. 도 1의 예시적인 장치들은 또한 도출 시나리오에 의존하여 작업 흐름을 식별하고 미리 정해진 허용 범위에 의존하여 작업 흐름을 실행할 수 있다. 도 1의 예시적인 장치들은 또한 장치의 속성의 적어도 하나의 값을 관리하기 위해 장치에 메시지를 전송함으로써 작업 흐름을 실행하고 이 메시지를 로깅할 수 있다.
장치 상태 이력은 하나 이상의 장치의 하나 이상의 속성의 값들의 이력을 포함하는 데이터 구조이다. 도 1의 예에서, 각각의 장치는 그 자신의 장치 상태 이력을 유지하고 이 장치 이력을 장치 상에 설치된 컴퓨터 메모리에 저장할 수 있거나 또는 네트워크 내의 장치들 전부에 대한 하나의 장치 상태 이력이 하나 이상의 장치 상에 설치되어 있는 작업 흐름 판정 관리를 구현하는 애플리케이션 프로그래밍에 액세스할 수 있는 컴퓨터 메모리에 유지될 수 있다.
장치 사용 패턴은 일반적으로 하나 이상의 장치에 대한 미리 정해진 장치 사용 패턴을 나타내는 데이터 구조로서, 즉 장치 사용 패턴을 나타내는 데이터 구조로서 구현되어 있다. 장치 사용 패턴은 하나의 장치의 사용 패턴 또는 2개 이상의 장치의 사용 패턴을 나타낼 수 있다. 도 1의 시스템은 일반적으로 장치 상태 이력에서의 최근의 엔트리와 일치하는 장치 사용 기록에 대한 복수의 저장된 장치 사용 기록을 검색함으로써 장치 상태 이력에 의존하여 장치 상태 패턴을 식별한다.
도 1의 시스템은 또한 식별된 장치 사용 패턴에 의존하여 도출 시나리오를 식별할 수 있다. 도출된 시나리오는 일반적으로 네트워크화된 환경에서의 장치의 특정의 상태를 나타내는 데이터 구조로서 구현된다. 도출 시나리오는 네트워크화된 환경 내에서의 실제의 과거의 장치 사용에 의존하여 작성되며, 이러한 도출 시나리오는 종종 2개 이상의 장치의 장치 사용 시나리오를 나타낸다. 도 1의 시스템은 일반적으로 식별된 장치 사용 패턴 ID에 의존하여 도출 시나리오 테이블로부터 도출 시나리오 ID를 검색함으로써 도출 시나리오를 식별한다.
도 1의 시스템은 또한 도출 시나리오에 의존하여 작업 흐름을 식별하고 이 작업 흐름을 실행할 수 있다. 작업 흐름은 실행될 때 하나 이상의 장치의 하나 이상의 속성의 값을 변경하는 장치 제어 동작을 구현하는 소프트웨어이다. 작업 흐름을 실행하는 일은 일반적으로 장치에 대한 CAL 객체 내의 멤버 메소드(methods)를 호출하는 일, 장치로 OSGi 번들을 다운로드하는 일, 장치 클래스 내의 멤버 메소드를 호출하는 일, 메시지를 장치로 전송하는 일, 또는 당업자라면 잘 알고 있는 작업 흐름을 실행하는 임의의 다른 방법을 포함한다.
도 1에 도시된 예시적인 시스템을 구성하는 장치들의 배열은 설명을 위한 것이며 제한을 위한 것이 아니다. 본 발명의 여러가지 실시예들에 따른 유용한 데이터 처리 시스템은 당업자라면 잘 알고 있는, 도 1에 도시되어 있지 않은 부가적인 서버, 라우터, 다른 장치, 및 피어-투-피어(peer-to-peer) 아키텍처를 포함할 수 있다. 이러한 데이터 처리 시스템에서의 네트워크는 예를 들어 CEBus, X-10, LonTalk, HomePlug, HAVi, TCP/IP, HTTP, WAP, 및 당업자라면 잘 알고 있는 다른 것들을 비롯하여, 많은 데이터 통신 프로토콜을 지원할 수 있다. 본 발명의 여러가지 실시예들은 또한 예를 들어 CEBus, OSGi, 및 당업자라면 잘 알고 있는 다른 것들을 비롯하여, 여러가지 컴퓨터 환경에서 구현될 수 있다. 본 명세서의 많은 부분이 CEBus를 특히 참조하여 본 발명의 예시적인 실시예들에 대해 기술하고 있지만, 이러한 설명은 설명을 위한 것이지 제한을 위한 것이 아니다. 실제로, 예를 들어 CEBus, HAVi, HomePlug, LonWorks, X-10, OSGi는 물론 당업자라면 잘 알고 있 는 다른 것들 등의 많은 환경 및 프레임워크가 본 발명에 따른 작업 흐름 판정 관리를 지원하며, 이러한 환경 및 프레임워크 모두는 본 발명의 범위 내에 속한다.
본 발명에 따른 작업 흐름 판정 관리는 일반적으로 하나 이상의 작업 흐름 판정 관리 호환 장치들에 설치되어 있는 자동화된 컴퓨팅 기계로 구현된다. 추가의 설명을 위해, 도 2는 본 발명의 실시예에 따른 작업 흐름 판정 관리를 구현하는 데 유용한 예시적인 장치(150)의 블록도를 나타낸 것이다. 도 2의 장치(150)는 랜덤 액세스 메모리(168)('RAM')는 물론, 적어도 하나의 컴퓨터 프로세서(156), 즉 'CPU'를 포함한다. RAM(168)에는 운영 체제(154)가 저장되어 있다. 본 발명의 실시예에 따른 컴퓨터에서 유용한 운영 체제는 Unix, Linux, Microsoft XP, 및 당업자라면 잘 알고 있는 많은 다른 것들을 포함한다. 도 2의 예에서의 운영 체제(154)는 RAM(168)에 나타내어져 있지만, 운영 체제의 많은 구성요소는 일반적으로 비휘발성 메모리(166)에도 저장되어 있다.
또한 RAM에는 작업 흐름 판정 관리 애플리케이션(232)이 저장되어 있다. 작업 흐름 판정 관리 애플리케이션은 일반적으로 장치 상태 이력을 유지하고, 장치 상태 이력에 의존하여 장치 사용 패턴을 식별하며, 장치 사용 패턴에 의존하여 도출 시나리오를 식별할 수 있는 애플리케이션 컴퓨터 프로그래밍이다. 도출 시나리오는 일반적으로 작업 흐름의 실행을 규율하는 허용 범위를 갖는다. 도 2의 예시적인 장치는 또한 도출 시나리오에 의존하여 작업 흐름을 식별하고, 이 작업 흐름을 실행할 수 있다. 당업자라면 잘 알고 있는 바와 같이, 본 발명에 따른 작업 흐 름 판정 관리의 방법은 CAL, OSGi, Java, C++, Smalltalk, C, Pascal, Basic, COBOL, Fortran, 및 기타 등등을 포함하는 많은 프로그래밍 언어를 사용하여 구현될 수 있다.
작업 흐름 판정 관리 애플리케이션(162)은 또한 일반적으로 장치 상태 이력을 유지하고, 장치 상태 이력에 의존하여 장치 사용 패턴을 식별하며, 장치 사용 패턴에 의존하여 작업 흐름 시나리오를 식별하고, 작업 흐름 시나리오에 의존하여 작업 흐름을 식별하며, 장치의 속성의 적어도 하나의 값을 관리하기 위해 장치로 메시지를 전송하는 것을 포함한 작업 흐름을 실행할 수 있다.
도 2의 예시적인 작업 흐름 판정 관리 애플리케이션(232)은 또한 로깅 모듈(231)을 포함한다. 로깅 모듈(231)은 장치로 전송된 메시지를 기술하는 메시지 정보를 메시지 로그에 기록함으로써 메시지를 로깅할 수 있는 컴퓨터 프로그램 명령어를 포함한다.
예시적인 작업 흐름 판정 관리 애플리케이션(232)은 또한 메시지 패턴 식별 모듈(233)을 포함한다. 메시지 패턴 식별 모듈(233)은 장치로 전송된 메시지를 기술하는 메시지 정보를 포함하는 메시지 로그를 데이터 마이닝(data mining)함으로써 장치로 전송된 복수의 메시지에 의존하여 메시지 패턴을 식별할 수 있는 컴퓨터 프로그램 명령어를 포함한다.
도 2의 장치(150)는 시스템 버스(160)를 통해 프로세서(156) 및 장치(150)의 다른 구성요소에 연결되어 있는 비휘발성 컴퓨터 메모리(166)를 포함한다. 비휘발성 컴퓨터 메모리(166)는 하드 디스크 드라이브(170), 광학 디스크 드라이브(172), 전기적 소거가능 프로그램가능 판독 전용 메모리 공간(소위 "EEPROM" 또는 "플래쉬" 메모리)(174), RAM 드라이브(도시되어 있지 않음), 또는 당업자라면 잘 알고 있는 임의의 다른 종류의 컴퓨터 메모리로서 구현될 수 있다.
도 2의 예시적인 장치(150)는 서버, 다른 작업 흐름 관리 클라이언트 장치 및 당업자라면 잘 알고 있는 다른 것들을 비롯한 다른 작업 흐름 관리 호환 장치(182)에의 네트워크를 통한 연결을 비롯하여, 데이터 통신(184)을 위한 연결을 구현하는 통신 어댑터(167)를 포함한다. 통신 어댑터는 데이터 통신을 위한 하드웨어 레벨의 연결을 구현하며, 이를 통해 로컬 장치 및 원격 장치 또는 서버는 서로에게 직접 및 네트워크를 통해 데이터 통신을 전송한다. 본 발명의 실시예에 따른 작업 흐름 판정 관리에 유용한 통신 어댑터의 예로는 유선 다이얼-업 연결을 위한 모뎀, 유선 LAN 연결을 위한 이더넷(IEEE 802.3) 어댑터, 및 무선 LAN 연결을 위한 802.11b 어댑터가 있다.
도 2의 예시적인 장치는 하나 이상의 입력/출력 인터페이스 어댑터(178)를 포함한다. 작업 흐름 관리 호환 장치에서의 입력/출력 인터페이스 어댑터는 예를 들어 컴퓨터 디스플레이 화면 등의 디스플레이 장치(180)로의 출력은 물론 키보드 및 마우스 등의 사용자 입력 장치(181)로부터의 사용자 입력을 제어하기 위해 소프트웨어 드라이버 및 컴퓨터 하드웨어를 통해 사용자 지향 입력/출력을 구현한다.
예시적인 데이터 구조 및 데이터 구조들 간의 관계
도 3 및 도 4는 본 발명의 측면들에 따른 작업 흐름 판정 관리의 방법을 구현하는 데 유용한 예시적인 데이터 구조를 나타낸 블록도이다. 본 명세서에서, 용 어 "필드" 및 "데이터 요소"는, 본문에서 달리 언급하지 않는 한, 일반적으로 디지털 데이터의 개개의 요소를 말하는 동의어로서 사용된다. 레코드의 집합체는 "테이블" 또는 "파일"이라고 말한다. 파일 또는 테이블의 집합체는 "데이터베이스"라고 말한다.
도 3의 예는 본 발명에 따른 작업 흐름 판정 관리 호환 장치를 나타내는 장치 레코드(150)를 포함한다. 예시적인 장치 레코드(150)는 장치를 일의적으로 식별해주는 장치 ID 필드(302)를 포함한다. 예시적인 장치 레코드(150)는 또한 장치의 네트워크 어드레스를 나타내는 어드레스 필드(304)를 포함한다. 예시적인 장치 레코드(150)는 속성 필드(306)를 포함한다. 이 속성 필드는 온, 오프, 볼륨 설정, 기타 등등의 장치 상태를 표시하는 장치의 특정 속성의 값을 가지고 있다. 도 3의 예에는 단지 하나의 속성 필드가 도시되어 있지만, 이것은 설명의 간단함을 위한 것이다. 당업자라면 잘 알고 있는 바와 같이, 많은 작업 흐름 판정 관리 호환 장치가 2개 이상의 속성을 지원한다.
도 3의 예는 특정의 장치의 허용가능한 장치 상태를 나타내는 예시적인 장치 상태 레코드(330)를 포함한다. 이 장치 상태 레코드는 장치를 일의적으로 식별해주는 장치 ID 필드(302)를 포함하며, 이 장치에 대한 장치 상태 레코드는 허용가능한 장치 상태를 나타낸다. 장치 상태 레코드(330)는 또한 장치 상태를 일의적으로 식별해주는 장치 상태 ID 필드(316)를 포함한다. 장치 상태 레코드(330)는 또한 장치의 허용가능한 상태 또는 속성 값에 대한 설명을 포함하는 설명 필드(328)를 포함한다.
도 3의 예는 장치 상태 이력(314)을 포함한다. 장치 상태 이력은 하나 이상의 장치의 상태의 이력, 즉, 장치의 상태의 현재는 물론 과거의 값을 포함하는 데이터 구조이다. 예시적인 장치 상태 이력(314) 내의 레코드는 장치 상태가 기록되어 있는 장치를 일의적으로 식별해주는 장치 ID(302)를 포함한다. 예시적인 장치 상태 이력의 레코드는 또한 장치에 대한 허용가능한 장치 상태를 일의적으로 식별해주는 장치 상태 ID 필드(316)를 포함한다. 예시적인 장치 상태 이력(314)의 레코드는 장치의 특정 속성의 값이 들어 있는 값 필드(318)를 포함한다. 상기한 바와 같이, 일반적인 장치는 2개 이상의 속성을 지원하며, 따라서 장치 상태 이력의 일반적인 레코드는 지원되는 속성의 값이 들어 있는 복수의 값 필드를 포함한다. 예시적인 장치 상태 이력의 레코드는 특정의 장치의 특정의 장치 속성이 특정의 값을 갖는 일자 및 시간을 식별해주는 일자 및 시간 정보가 들어 있는 타임 스탬프 필드(320)를 포함한다.
도 3의 예는 장치에 대한 장치 속성들의 미리 정해진 패턴을 나타내는 장치 사용 레코드(328)를 포함한다. 즉, 장치 사용은 특정의 네트워크화된 환경에서의 장치의 상태가 미리 정해진 패턴에 부합하는지 여부를 식별해주는 데 사용되는 데이터 구조이다. 특정의 네트워크화된 환경에서의 현재 장치의 상태가 미리 정해진 패턴에 부합하는지 여부를 판정하기 위해, 장치 상태 이력 내의 최근의 엔트리가 복수의 장치 사용과 비교된다. 비교 결과가 일치하면, 특정의 네트워크화된 환경에서의 장치들의 상태가 미리 정해진 패턴에 부합하는 것으로 추정된다.
예시적인 장치 사용(328)은 특정의 미리 정해진 장치 사용 패턴을 일의적으 로 식별해주는 사용 ID(331)를 포함한다. 도 3의 예시적인 장치 사용은 특정의 장치를 일의적으로 식별해주는 장치 ID(302)를 포함한다. 장치 사용(328)은 또한 특정의 장치에 대한 허용가능한 장치 상태를 일의적으로 식별해주는 장치 상태 ID(316)를 포함한다. 예시적인 장치 사용(328)은 장치의 특정의 지원되는 속성의 값이 들어 있는 값 필드(318)를 포함한다.
도 3의 예는 네트워크화된 환경에서의 특정의 장치 사용 패턴을 식별해주고 이에 대해 기술하는 사용 레코드(332)를 포함한다. 사용 레코드(332)는 장치 사용 패턴을 일의적으로 식별해주는 사용 ID(334), 및 사용 레코드(332)에 의해 나타내어지는 장치 사용 패턴에 대한 설명을 포함하는 설명 필드(336)를 포함한다.
도 3의 예는 식별된 미리 정해진 장치 사용 패턴과 일치하는 특정의 장치 사용 시나리오를 나타내는 시나리오 레코드(344)를 포함한다. 시나리오(344)는 일반적으로 많은 네트워크화된 환경에서의 많은 사용자들로부터 미리 정해지고 또 사전 정의된다. 즉, 이러한 시나리오는 시나리오가 구현되는 네트워크화된 도메인에서의 실제 장치 사용으로부터 작성되지 않는다. 장치의 현재 상태가 미리 정해진 장치 사용 패턴과 부합하는 경우, 장치의 현재 상태는 또한 복수의 시나리오 중 하나와 부합될 수 있다. 도 3의 예시적인 시나리오 레코드(344)는 시나리오를 일의적으로 식별해주는 시나리오 ID 필드(346)를 포함한다. 도 3의 예시적인 시나리오 레코드(344)는 특정의 네트워크화된 환경에서의 현재 장치 상태가 시나리오를 식별해주는 경우 실행을 위한 작업 흐름을 식별해주는 작업 흐름 ID(340)를 포함한다. 도 3의 시나리오 레코드가 하나의 작업 흐름 ID 필드를 포함하고 있지만, 이것은 설명의 간단함을 위한 것이며 제한을 위한 것이 아니다. 본 발명의 많은 실시예들에서, 특정의 시나리오는 2개 이상의 작업 흐름의 실행을 지원한다. 도 3의 시나리오(344)는 또한 시나리오에 대한 설명을 포함하는 설명 필드(350)를 포함한다.
도 3의 예는 특정의 장치 제어 동작 또는 일련의 장치 제어 동작을 나타내는 작업 흐름 레코드(338)를 포함한다. 작업 흐름은 실행될 때 본 발명에 따라 하나 이상의 장치의 하나 이상의 속성의 값을 변경하는 장치 제어 동작을 구현하는 소프트웨어이다. 예시적인 작업 흐름 레코드(338)는 작업 흐름을 일의적으로 식별해주는 작업 흐름 ID(340)를 포함한다. 도 3의 예시적인 작업 흐름 레코드(338)는 또한 시퀀스 필드(342)를 포함하며, 이 필드의 값은 복수의 작업 흐름의 특정의 실행 시퀀스로 이 작업 흐름을 실행하는 데 사용된다. 즉, 한 시나리오에 대해 2개 이상의 작업 흐름이 실행되는 경우, 시퀀스 필드의 값은 복수의 작업 흐름의 실행의 시퀀스를 정하는 데 사용된다. 당업자라면 잘 알고 있는 바와 같이, 작업 흐름은 CAL, OSGi, Java, C, Pascal, Basic, COBOL, Fortran, 및 기타 등등을 사용하여 구현될 수 있다.
도 3의 예는 실행된 작업 흐름의 인스턴스를 나타내는 작업 흐름 세션(362)을 포함한다. 예시적인 작업 흐름 세션(362)은 작업 흐름 세션을 일의적으로 식별해주는 작업 흐름 세션 ID(364) 및 실행된 작업 흐름을 식별해주는 작업 흐름 ID(340)를 포함한다. 예시적인 작업 흐름 세션은 또한 작업 흐름이 실행되는 특정의 사용자 세션을 일의적으로 식별해주는 사용자 세션 상태 ID(366)를 포함한다. 예시적인 작업 흐름 세션은 또한 작업 흐름을 실시하기 위해 장치로 전송되는 메시 지, 즉, 장치에 대해 특정의 속성의 값을 변경하도록 지시하는 장치로 전송된 메시지를 식별해주는 메시지 ID(368)를 포함한다. 어떤 실시예에서, 장치로 이러한 메시지를 전송하는 것은 장치 상태의 변경을 가져오며, 따라서 작업 흐름을 수행한다. 예시적인 작업 흐름 세션(362)은 작업 흐름이 어느 사용자를 위해 실행되는지를 식별해주는 사용자 ID(370) 및 사용자의 보안 역할(security role)을 식별해주는 역할 ID 필드(372)를 포함한다.
도 3의 예는 네트워크화된 도메인에서의 특정의 장치 사용 시나리오를 나타내는 도출 시나리오(352)를 포함한다. 도출 시나리오는 네트워크화된 환경 내에서의 실제 장치 사용에 의존하여 작성된다. 도출 시나리오(352)는 시나리오(344)와 2가지 중요한 차이점을 갖는다. 첫째, 도출 시나리오는 네트워크화된 환경 내의 장치들의 장치 사용에 의존하여 작성되고, 따라서 특정의 네트워크화된 환경의 장치 사용의 시나리오를 반영하며, 도출 시나리오는 미리 준비된 또는 사전에 만들어진 시나리오가 아니라 이 환경으로부터 도출된다. 둘째, 도출 시나리오는 도출 시나리오를 식별한 것에 의존하여 실행되는 작업 흐름의 실행을 규율하는 규칙 세트인 관련 허용 범위(360)를 갖는다.
도 3의 예시적인 도출 시나리오(352)는 도출 시나리오를 일의적으로 식별해주는 도출 시나리오 ID 필드(354)를 포함한다. 도 3의 예시적인 도출 시나리오(352)는 도출 시나리오에 대한 관련 허용 범위를 식별해주는 허용 범위 ID(356)를 포함한다. 도 3의 도출 시나리오(352)는 또한 도출 시나리오를 식별하기 위해 네트워크화된 환경에서 장치의 상태에 따라 실행되는 작업 흐름 ID(340)를 포함한 다. 작업 흐름은 도출 시나리오의 관련 허용 범위에 의존하여 실행된다. 도출 시나리오(352) 레코드는 도출 시나리오에 대한 설명을 포함하는 설명 필드(358)를 포함한다.
도 3의 예는 식별된 도출 시나리오에 의존하여 실행되는 작업 흐름의 실행을 규율하는 규칙 세트를 나타내는 허용 범위 레코드(360)를 포함한다. 종종, 허용 범위는 장치가 지원하는 허용가능한 속성 값의 범위의 서브셋이다. 예를 들어, 온도 조절 장치는 설정되어 있는 경우 온도 조절 장치 자체 또는 다른 장치들에 궁극적으로 손상을 입히는 속성값을 지원할 수 있다. 따라서, 허용 범위는 종종 장치 사용이 네트워크화된 환경 내의 장치들에 해가 되지 않도록 작업 흐름의 실행을 규율하게 설계되어 있다. 도 3의 예시적인 허용 범위(360)는 허용 범위를 일의적으로 식별해주는 허용 범위 레벨 ID 필드(362)를 포함한다.
도 3의 예는 장치가 지원하게 될 최소 문턱값 및 최대 문턱값 속성값을 나타내는 장치 문턱값 레코드(308)를 포함한다. 도 3의 예시적인 장치 문턱값 레코드(308)는 문턱값이 유효한 장치를 식별해주는 장치 ID(302)를 포함한다. 예시적인 장치 문턱값 레코드는 또한 장치가 지원하는 최대 속성값이 들어 있는 MAX 필드(310) 및 장치가 지원하는 최소 속성값을 포함하는 MIN 필드(312)를 포함한다.
도 3의 예는 장치 상태에 영향을 미치지 위해 작업 흐름이 수행되는 사용자를 나타내는 사용자 레코드(374)를 포함한다. 본 발명의 작업 흐름 판정 관리의 측면들에 따르면, 사용자는 사람 사용자에 한정되지 않으며, 당업자라면 잘 알고 있는 바와 같이 프로세스도 포함한다. 도 3의 예시적인 사용자 레코드(374)는 사 용자를 일의적으로 식별해주는 사용자 ID(376) 및 사용자의 역할을 일의적으로 식별해주는 역할 ID(378)를 포함한다. 역할은 시스템 관리자, 게스트, 기타 등등의 사용자에 대한 보안 역할이다.
도 3의 예는 또한 사용자에 대한 세션을 나타내는 사용자 세션 상태(382)를 포함한다. 사용자에 대한 세션은 사용자를 위해 실행되는 현재의 작업 흐름 판정 관리를 가리킨다. 도 3의 사용자 세션 상태(382)는 사용자 세션 상태를 일의적으로 식별해주는 세션 상태 ID(384) 및 작업 흐름 세션에서 식별되고 사용자를 위해 실행된 특정의 작업 흐름에 영향을 주기 위해 전송된 메시지를 식별해주는 메시지 ID(386)를 포함한다. 사용자 세션 상태는 또한 작업 흐름이 어느 사용자를 위해 실행되는지를 식별해주는 사용자 ID(376) 및 사용자의 역할을 식별해주는 역할 ID(378)를 포함한다.
도 4는 본 발명의 실시예에 따른 작업 흐름 판정 관리에서 유용한 다른 데이터 구조의 블록도를 나타낸 것이다. 도 4의 예는 사용자에 대한 보안 역할을 나타내는 역할 레코드(402)를 포함한다. 도 4의 예시적인 역할 레코드(402)는 보안 역할을 일의적으로 식별해주는 역할 ID(378)를 포함한다.
도 4의 예는 장치에 대한 특정의 역할에 할당된 특권을 나타내는 역할 장치 특권 레코드(role device privileges record)(404)를 포함한다. 예를 들어, 어떤 보안 역할은 어떤 장치에의 단지 제한된 액세스 특권을 갖는다. 역할 장치 특권 레코드(404)는 역할 장치 특권을 일의적으로 식별해주는 역할 특권 ID 필드(406)를 포함한다. 도 4의 예시적인 역할 장치 특권 레코드(404)는 허용가능한 특권을 식 별해주는 특권 ID(408) 및 특권을 갖는 특정의 보안 역할을 식별해주는 역할 ID(378)를 포함한다.
도 4의 예는 특정의 특권을 나타내는 특권 레코드(402)를 포함한다. 예시적인 특권 레코드(402)는 특권을 식별해주는 특권 ID 필드(408) 및 특권에 대한 설명을 포함하는 설명 필드(410)를 포함한다. 예시적인 특권 레코드(402)는 판독 및 기록 특권의 부울 표시를 포함하는 판독 플래그(412) 및 기록 플래그(4144)를 포함한다.
도 4의 예는 메시지를 나타내는 메시지 레코드(416)를 포함한다. 메시지 레코드(416)는 메시지를 일의적으로 나타내주는 메시지 ID 필드(386)를 포함한다. 도 4의 예시적인 메시지(416)는 또한 메시지를 발송한 장치의 네트워크 어드레스가 들어 있는 발신지 어드레스 필드(418) 및 메시지를 수신하는 장치의 네트워크 어드레스가 들어 있는 목적지 어드레스 필드(420)를 포함한다. 도 4의 메시지 레코드(416)는 또한 메시지를 나타내는 엔트리를 갖는 메시지 로그를 나타내는 메시지 로그 ID(722)를 포함한다.
도 4의 예는 장치에 대해 적절한 이용가능한 특권을 나타내는 장치 특권 레코드(422)를 포함한다. 도 4의 예시적인 장치 특권 레코드(422)는 장치 특권을 일의적으로 식별해주는 장치 특권 ID(424) 및 장치를 식별해주는 장치 ID(302)를 포함한다. 예시적인 장치 특권 레코드(422)는 장치에 적절한 특권을 식별해주는 특권 ID(406)를 포함한다.
도 4의 예는 메시지 브리지(message bridge)(450)를 나타내는 데이터 구조를 포함한다. 메시지 브리지는 네트워크화된 환경에서 하나 이상의 장치로 메시지를 라우팅하도록 설계된 하드웨어이다. 메시지 브리지로서 나타내어질 수 있는 장치들의 예로는 라우터, 게이트웨이, 및 당업자라면 잘 알고 있는 다른 장치들이 있다.
도 4의 예는 예시적인 메시지 로그(722)를 포함한다. 메시지 로그(722)는 네트워크화된 환경에서 하나 이상의 장치로 전송된 개개의 메시지를 나타내는 엔트리를 포함하는 데이터 구조이다. 예시적인 메시지 로그(722) 내의 엔트리는 메시지 로그를 일의적으로 식별해주는 메시지 로그 ID(724) 및 로그 내의 엔트리에 의해 나타내어진 메시지를 일의적으로 식별해주는 메시지 ID(725)를 포함한다. 메시지 로그 내의 엔트리는 또한 메시지(726)의 내용 및 메시지가 전송된 시간(762)을 포함한다. 메시지 로그는 유용하게도 본 발명에 따른 작업 흐름의 실행을 수행하는 장치로 전송되는 메시지의 레코드를 제공한다.
도 4의 예는 메시지 패턴 레코드(460)를 포함한다. 메시지 패턴 레코드(460)는 식별된 메시지 패턴을 나타낸다. 메시지 패턴 레코드(460) 내의 엔트리는 메시지 패턴을 일의적으로 식별해주는 메시지 패턴 ID(462)를 포함한다. 메시지 패턴 레코드(460) 내의 엔트리는 또한 장치로 전송된 메시지의 유형을 식별해주는 메시지 유형(464) 및 메시지가 전송된 장치를 식별해주는 장치 ID(465)를 포함한다. 메시지 패턴 레코드 내의 엔트리는 또한 메시지 내에 포함된 장치 제어 명령어를 정의하는 메시지의 속성(463) 및 특정의 메시지가 존재하는 메시지 패턴 내의 위치를 식별해주는 메시지 시퀀스 ID(466)를 포함한다.
도 5는 도 3 및 도 4의 데이터 구조 간의 예시적인 관계를 나타낸 블록도이다. 도 5의 예에서, 장치 레코드는 외래키(foreign key)로서 사용되는 장치 ID 필드(도 3의 302)를 통해 식별된 장치 사용 레코드(328)와 일대다(one-to-many) 관계가 있다. 식별된 장치 사용 레코드(328)는 외래키로서 사용되는 사용 ID 필드(도 3의 330)를 통해 사용 레코드(322)와 다대일(many-to-one) 관계가 있다. 장치 레코드(150)는 외래키로서 사용되는 장치 ID 필드(도 3의 302)를 통해 장치 문턱값 레코드(308)와 일대다 관계가 있다.
도 5의 예에서, 장치 레코드(150)는 외래키로서 사용되는 장치 ID 필드(도 3의 302)를 통해 장치 상태 레코드(330)와 일대다 관계가 있다. 장치 상태 레코드(330)는 외래키로서 사용되는 장치 상태 ID 필드(도 3의 316)를 통해 장치 상태 이력 레코드(314)와 일대다 관계가 있다. 장치 상태 이력 레코드(314)는 외래키로서 사용되는 장치 ID 필드(도 3의 302)를 통해 장치 레코드(150)와 다대일 관계가 있다.
도 5의 예에서, 장치 레코드(150)는 외래키로서 사용되는 장치 ID 필드(도 3의 302)를 통해 시나리오 레코드(344)와 일대다 관계가 있다. 시나리오 레코드(344)는 외래키로서 사용되는 작업 흐름 ID 필드(도 3의 340)를 통해 작업 흐름 레코드(338)와 다대일 관계가 있다. 작업 흐름 레코드(338)는 외래키로서 사용되는 작업 흐름 ID 필드(도 3의 340)를 통해 작업 흐름 세션(362)과 일대다 관계가 있다.
도 5의 예에서, 장치 레코드(150)는 외래키로서 사용되는 장치 ID 필드(도 3 의 302)를 통해 도출 시나리오 레코드(352)와 일대다 관계가 있다. 도출 시나리오 레코드(352)는 외래키로서 사용되는 도출 시나리오 ID 필드(도 3의 354)를 통해 허용 범위 레코드(360)와 다대일 관계가 있다.
도 5의 예에서, 장치 레코드(150)는 외래키로서 사용되는 장치 ID 필드(도 4의 302)를 통해 장치 특권 레코드(422)와 일대다 관계가 있다. 장치 특권 레코드(422)는 외래키로서 사용되는 특권 ID 필드(도 4의 406)를 통해 특권 레코드(402)와 다대일 관계가 있다. 특권 레코드(402)는 외래키로서 사용되는 특권 ID 필드(도 4의 406)를 통해 역할 장치 특권 레코드(404)와 일대다 관계가 있다. 역할 장치 특권 레코드(404)는 외래키로서 사용되는 역할 필드(도 4의 378)를 통해 역할 레코드(402)와 다대일 관계가 있다.
도 5의 예에서, 사용자 레코드(374)는 외래키로서 사용되는 역할 ID 필드(도 4의 378)를 통해 역할 레코드(402)와 다대일 관계가 있다. 사용자 레코드(374)는 외래키로서 사용되는 사용자 ID 필드(도 3의 376)를 통해 사용자 세션 상태(382)와 일대다 관계가 있다. 도 5의 예에서, 사용자 세션 상태(382)는 외래키로서 사용되는 메시지 ID 필드(도 4의 386)를 통해 메시지 레코드(416)와 다대일 관계가 있다. 도 5의 예에서, 사용자 세션 상태(382)는 외래키로서 사용되는 사용자 세션 상태 ID(도 3의 384)를 통해 작업 흐름 세션(362)과 일대다 관계가 있다.
도 5의 예에서, 메시지 브리지(450)는 외래키로서 사용되는 메시지 ID 필드(도 4의 386)를 통해 메시지 레코드(416)와 일대다 관계가 있다. 메시지 레코드(416)는 외래키로서 사용되는 메시지 ID 필드(도 4의 724)를 통해 메시지 로 그(722)와 다대일 관계가 있다. 도 5의 예에서, 메시지 패턴 레코드(460)는 외래키로서 사용되는 메시지 로그 ID 필드(도 3의 724)를 통해 메시지 로그(722)와 다대일 관계가 있다. 메시지 패턴 레코드(460)는 외래키로서 사용되는 메시지 패턴 ID 필드(도 3의 462)를 통해 작업 흐름 시나리오 레코드(344)와 일대일 관계가 있다.
작업 흐름 판정 관리
도 6은 작업 흐름 판정 관리의 예시적인 방법을 나타낸 데이터 흐름도이다. 도 6의 방법은 장치 상태 이력(314)을 유지하는 단계(602)를 포함한다. 상기한 바와 같이, 장치 상태 이력은 하나 이상의 장치의 하나 이상의 속성의 값의 이력을 포함하는 데이터 구조이다. 하나의 장치에 대한 장치 상태 이력이 장치 자체 상의 컴퓨터 메모리에 유지될 수 있거나, 네트워크화된 환경에서의 다수의 장치에 대한 하나의 장치 상태 이력이 도 6의 방법을 구현하는 애플리케이션 프로그래밍이 액세스할 수 있는 컴퓨터 메모리에 유지될 수 있다.
도 6의 방법에서, 장치 상태 이력(314)을 유지하는 단계(602)는 장치(150)에 대한 복수의 속성값(306)을 기록하는 단계를 포함한다. 도 6의 예에서, 장치(150)의 속성값(306)이 변경될 때마다, 장치 상태 이력에 새로운 엔트리를 생성함으로써 이 변경이 기록된다. 어떤 이러한 실시예에서, 장치 상태 이력(314)에서의 가장 최근의 엔트리는 장치의 현재 상태를 나타낸다. 어떤 실시예들에서, 작업 흐름 판정 관리 장치는 속성값의 각각의 변화로 장치 상태 관리자를 구현하는 애플리케이션 프로그래밍에 보고하도록 구성되어 있으며, 장치 상태 관리자는 속성값의 변화 를 기록하는 새로운 엔트리를 장치 상태 이력 내에 생성한다.
도 6의 방법은 또한 장치 상태 이력(314)에 의존하여 식별된 장치 사용 패턴(328)을 식별하는 단계(604)를 포함한다. 상기한 바와 같이, 장치 사용 레코드는 미리 정해진 장치 사용 패턴을 나타내며, 장치 사용 패턴을 정의하는 장치 속성값의 집합체를 포함한다. 도 6의 방법에서, 장치 상태 이력(314)에 의존하여 식별된 장치 사용 패턴(328)을 식별하는 단계(604)는 장치 상태 이력(314)을 복수의 장치 사용 패턴 레코드(329)와 비교하는 단계를 더 포함한다. 도 6의 예에서, 식별된 장치 사용 레코드(328)의 일치를 식별하기 위해 최근의 장치 상태들을 나타내는 장치 상태 이력(314)의 엔트리들의 윈도우가 장치 사용 패턴 데이터베이스(616) 내의 장치 사용 레코드(329)와 비교된다. 이러한 일치하는 장치 사용 레코드(328)가 존재하는 경우, 네트워크화된 환경 내의 장치들의 현재 상태가 레코드에 의해 나타내어진 장치 사용 패턴에 부합하는 것으로 추정된다.
당업자라면 잘 알고 있는 바와 같이, 일반적인 실시예들에서, 일치하는 장치 사용 레코드를 식별하는 데 장치 상태 이력 내의 엔트리들의 값이 장치 사용 레코드들의 값과 정확하게 동일할 필요가 없다. 실제로, 일치하는 레코드가 식별될 때, 장치 상태 이력의 엔트리들의 값이 장치 사용 레코드들의 값과 정확하게 동일하지 않은 경우가 많다. 일치하는 것으로 간주되기 위해 장치 상태 이력 내의 엔트리들의 값이 장치 사용 레코드들의 값과 유사해야만 하는 정도는 장치 상태 이력을 장치 사용 레코드와 비교하는 데 사용되는 방법 및 허용 범위, 일치를 식별하기 위한 미리 정의된 허용 범위는 물론 당업자라면 잘 알고 있는 다른 수많은 인자들 등의 인자에 따라 변하게 된다.
도 6의 방법은 또한 식별된 장치 사용 패턴(328)에 의존하여 관련 허용 범위(356)를 갖는 도출 시나리오(352)를 식별하는 단계(606)를 포함한다. 상기한 바와 같이, 도출 시나리오(352)는 네트워크화된 환경 내에서의 실제의 장치 사용에 의존하여 작성되는 특정의 시나리오를 나타낸다. 도출 시나리오(352)는 다른 기성의 시나리오와 2가지 중요한 차이점을 갖는다. 첫째, 도출 시나리오는 네트워크화된 환경에서의 장치의 실제 과거의 장치 사용에 의존하여 작성되며, 따라서 특정의 네트워크화된 환경의 장치 사용의 시나리오를 반영한다. 둘째, 도 6의 예에서, 도출 시나리오(352)는 관련 허용 범위(356)를 갖는다. 허용 범위는 식별된 도출 시나리오에 의존하여 실행되는 작업 흐름의 실행을 규율하는 규칙 세트이다.
도 6의 방법에서, 식별된 장치 사용 패턴(328)에 의존하여 도출 시나리오(352)를 식별하는 단계(606)는 도출 시나리오 테이블로부터 도출 시나리오 ID를 검색하는 단계를 더 포함한다. 도 6의 예에서, 도출 시나리오 테이블(353)은 사전 정의된 장치 사용 패턴을 식별해주는 장치 사용 ID(330)에 의해 인덱싱되는 복수의 도출 시나리오 ID(354)를 포함한다. 식별된 장치 사용 패턴(328)에 의존하여 도출 시나리오(352)를 식별하는 단계(606)는 따라서 식별된 장치 사용 레코드(328)의 장치 사용 ID(330)에 의존하여 도출 시나리오 테이블로부터 도출 시나리오 ID를 검색하는 단계를 포함한다.
도 6의 방법에서, 식별된 장치 사용 패턴(328)에 의존하여 도출 시나리오(352)를 식별하는 단계(606)는 규칙(608)에 의존하여 도출 시나리오(352)를 식별 하는 단계를 더 포함한다. 규칙(608)은 하나의 장치 사용 패턴과 연관된 2개 이상의 도출 시나리오가 존재하는 경우 복수의 도출 시나리오 중에서 특정의 도출 시나리오를 식별하는 것을 규율한다. 네트워크화된 부엌에서 사용자가 요리하는 예를 생각해보자. 거실에 있는 장치의 상태는 사용자가 요리하고 있는 장치 사용 패턴과 일치한다. 그렇지만, 2개 이상의 시나리오가 장치 사용 패턴과 대응하는데, 그 이유는 사용자가 아침을 요리하거나, 점심을 요리하거나 또는 저녁을 요리할지도 모르기 때문이다. 시나리오를 식별하는 예시적인 규칙은 하루 중 시간이 오후 4:30과 오후 7:30 사이이고 장치 사용 패턴이 요리 시나리오를 식별해주는 경우, 사용자는 저녁을 요리 중에 있다.
도 6의 방법은 또한 도출 시나리오(352)에 의존하여 작업 흐름(338)을 식별하는 단계(612)를 포함한다. 상기한 바와 같이, 작업 흐름은 실행될 때 본 발명에 따라 하나 이상의 장치의 하나 이상의 속성의 값을 변경하는 장치 제어 동작을 구현하는 소프트웨어이다. 도 6의 방법에서, 도출 시나리오(352)에 의존하여 작업 흐름(338)을 식별하는 단계(612)는 도출 시나리오 레코드(352)로부터 작업 흐름 ID(340)를 검색하는 단계를 포함한다.
도 6의 방법은 또한 허용 범위(356)에 의존하여 작업 흐름(338)을 실행하는 단계(614)를 포함한다. 상기한 바와 같이, 허용 범위는 작업 흐름의 실행을 규율하는 규칙을 나타낸다. 종종, 허용 범위는 장치가 지원하는 허용가능한 속성값의 범위의 서브셋이다. 이러한 허용 범위는 종종 작업 흐름의 실행이 네트워크화된 환경 내의 장치들에 손상을 주는 것을 방지하도록 설계되어 있다.
다음의 예를 생각해보자. 네트워크화된 가정은 가정의 서쪽 건물(west wing)을 냉각시키는 데 사용되는 다수의 장치를 갖는다. 이들 장치는 팬, 에어컨, 및 자동 차양(automatic shade)을 포함한다. 그렇지만, 자동 차양은 현재 작동하지 않으며, 이들은 현재 적절히 닫히지 않게 된다. 본 발명에 따른 작업 흐름 판정 관리는 홈 네트워크 내에서 가정의 서쪽 건물이 너무 따뜻하다는 것을 보여주는 시나리오를 식별하였으며, 따라서 가정을 냉방하기 위해 에어컨의 온도 조절 장치를 감소시키는 일, 팬 속도를 증가시키는 일 및 자동 차양을 닫는 일을 포함하는 작업 흐름을 식별하고 실행한다.
자동 차양이 적절히 작동하지 않기 때문에, 작업 흐름은 서쪽 건물이 온도를 충분히 감소시키지 않으며, 그 후에 곧 방이 너무 덥다는 시나리오가 다시 식별된다. 동일한 작업 흐름이 다시 식별되고 실행된다. 온도 조절 장치에 대해 허용된 최소 허용 범위 값을 정의하는 작업 흐름의 실행을 위한 허용 범위를 제공함으로써, 에어컨은 손상될 정도까지 과열되지 않게 된다. 즉, 허용 범위는, 자동 차양이 제대로 작동하지 않는 이러한 경우 등과 같이, 장치가 작업 흐름의 실행으로 예기치못한 문제에 의해 손상되는 것을 방지하는 작업 흐름의 실행을 위한 어떤 경계를 제공한다. 이들 허용 범위 값은 종종 그 장치가 지원하는 실제 값들의 서브셋으로서 설계되어 있다. 이러한 설계는 유익하게도 장치가 종종 궁극적으로 장치를 손상시키게 되는 속성값을 지원한다는 것을 인식하고 있다.
도 6의 방법에서, 허용 범위(356)에 의존하여 작업 흐름(338)을 실행하는 단계(614)는 장치에 대해 속성의 값을 변경하도록 지시하는 메시지를 장치로 전송하 는 단계를 더 포함한다. 어떤 이러한 예에서, 이러한 메소드를 수신하는 장치는 예를 들어 속성값을 파라미터로 갖는 SomeDeviceClass.setAttribute() 등의 장치를 나타내는 장치 클래스 내의 멤버 메소드를 호출함으로써 장치의 값의 변경을 수행할 수 있다.
메시지 로깅을 갖는 작업 흐름 판정 관리
하나 이상의 작업 흐름을 수행하는 장치들로 전송된 메시지를 로깅하는 것은 유용하게도 작업 흐름 판정 관리를 위한 메시지 패턴 및 메시지 시나리오를 식별하는 매개체를 제공한다. 따라서, 추가의 설명을 위해, 도 7은 작업 흐름의 실행 시에 전송되는 메시지를 로깅하는 단계를 포함하는 작업 흐름 판정 관리의 예시적인 방법을 나타낸 플로우차트이다. 도 7의 방법은 장치 상태 이력(314)을 유지하는 단계(702)를 포함한다. 상기한 바와 같이, 장치 상태 이력은 하나 이상의 장치의 하나 이상의 속성의 값의 이력을 포함하는 데이터 구조이다. 하나의 장치에 대한 장치 상태 이력은 장치 자체 상의 컴퓨터 메모리에 유지될 수 있거나, 네트워크화된 환경 내의 다수의 장치들에 대한 하나의 장치 상태 이력이 도 7의 방법을 구현하는 애플리케이션 프로그래밍이 액세스할 수 있는 컴퓨터 메모리에 유지될 수 있다.
도 7의 방법에서, 장치 상태 이력(314)을 유지하는 단계(702)는 장치에 대한 복수의 속성값을 기록하는 단계를 포함한다. 상기한 바와 같이, 장치(150)의 속성값(306)이 변경될 때마다, 이 변경은 장치 상태 이력 내에 새로운 엔트리를 생성함으로써 기록된다. 어떤 이러한 실시예들에서, 장치 상태 이력(314) 내의 가장 최 근의 엔트리는 장치의 현재 상태를 나타낸다. 어떤 실시예에서, 작업 흐름 판정 관리 장치는 속성값의 각각의 변경으로 장치 상태 관리자를 구현하는 애플리케이션 프로그래밍에 보고하도록 구성되어 있으며, 장치 상태 관리자는 장치 상태 이력 내에 새로운 엔트리를 생성하여 속성값의 변경을 기록한다.
도 7의 방법은 또한 장치 상태 이력(314)에 의존하여 장치 사용 패턴(328)을 식별하는 단계(704)를 포함한다. 상기한 바와 같이, 장치 사용 레코드는 미리 정해진 장치 사용 패턴을 나타내고 장치 사용 패턴을 정의하는 장치 속성값들의 집합체를 포함한다. 도 7의 방법에서, 장치 상태 이력(314)에 의존하여 식별된 장치 사용 패턴(328)을 식별하는 단계(704)는 장치 상태 이력(314)을 복수의 장치 사용 패턴 레코드(329)와 비교하는 단계를 더 포함한다. 도 7의 예에서, 일치하는 장치 사용 레코드(328)를 식별하기 위해 최근의 장치 상태들을 나타내는 장치 상태 이력(314)의 엔트리들의 윈도우가 장치 사용 패턴 데이터베이스(616) 내의 장치 사용 레코드(329)와 비교된다. 이러한 일치하는 장치 사용 레코드(328)가 존재하는 경우, 네트워크화된 환경 내의 장치들의 현재 상태가 레코드에 의해 나타내어진 장치 사용 패턴에 부합하는 것으로 추정된다.
당업자라면 잘 알고 있는 바와 같이, 일반적인 실시예들에서, 일치하는 장치 사용 레코드를 식별하는 데 장치 상태 이력 내의 엔트리들의 값이 장치 사용 레코드들의 값과 정확하게 동일할 필요가 없다. 실제로, 일치하는 레코드가 식별될 때, 장치 상태 이력의 엔트리들의 값이 장치 사용 레코드들의 값과 정확하게 동일하지 않은 경우가 많다. 일치하는 것으로 간주되기 위해 장치 상태 이력 내의 엔 트리들의 값이 장치 사용 레코드들의 값과 유사해야만 하는 정도는 장치 상태 이력을 장치 사용 레코드와 비교하는 데 사용되는 방법 및 허용 범위, 일치를 식별하기 위한 미리 정의된 허용 범위는 물론 당업자라면 잘 알고 있는 다른 수많은 인자들 등의 인자에 따라 변하게 된다.
도 7의 방법은 또한 장치 사용 패턴(328)에 의존하여 작업 흐름 시나리오(708)를 식별하는 단계(710)를 포함한다. 도 7의 작업 흐름 시나리오는 일반적으로 도 3을 참조하여 상기한 시나리오 등의 다수의 네트워크화된 환경 내의 다수의 사용자로부터 미리 결정된 및 사전 정의된 시나리오(참조 번호(344)가 부여됨)이거나 또는 도 3을 참조하여 상기한 네트워크화된 환경 내에서의 실제 장치 사용에 의존하여 작성된 도출 시나리오(참조 번호(352)가 부여됨)일 수 있다.
장치 사용 패턴(328)에 의존하여 작업 흐름 시나리오(708)를 식별하는 단계(710)는 작업 흐름 시나리오 테이블(706)로부터 작업 흐름 시나리오 ID(754)를 검색함으로써 수행될 수 있다. 도 7의 예에서, 작업 흐름 시나리오 테이블(706)은 사전 정의된 장치 사용 패턴을 식별해주는 장치 사용 ID(730)에 의해 인덱싱된 복수의 작업 흐름 시나리오 ID(754)를 포함하고 있다. 식별된 장치 사용 패턴(328)에 의존하여 작업 흐름 시나리오(708)를 식별하는 단계(710)는 따라서 식별된 장치 사용 레코드(328)의 장치 사용 ID(331)에 의존하여 작업 흐름 시나리오 테이블로부터 작업 흐름 시나리오 ID(754)를 검색하는 단계를 포함한다.
도 7의 방법에서, 장치 사용 패턴(328)에 의존하여 작업 흐름 시나리오(708)를 식별하는 단계는 또한 규칙(709)에 의존하여 수행된다. 규칙(709)은 하나의 장 치 사용 패턴과 연관된 2개 이상의 작업 흐름 시나리오가 존재하는 경우 복수의 작업 흐름 시나리오 중에서 특정의 작업 흐름 시나리오를 식별하는 것을 규율한다. 네트워크화된 부엌에서 사용자가 요리하는 예를 생각해보자. 거실에 있는 장치의 상태는 사용자가 요리하고 있는 장치 사용 패턴과 일치한다. 그렇지만, 2개 이상의 작업 흐름 시나리오가 장치 사용 패턴과 대응하는데, 그 이유는 사용자가 아침을 요리하거나, 점심을 요리하거나 또는 저녁을 요리할지도 모르기 때문이다. 작업 흐름 시나리오를 식별하는 예시적인 규칙은 하루 중 시간이 오후 4:30과 오후 7:30 사이이고 장치 사용 패턴이 요리 시나리오를 식별해주는 경우, 사용자는 저녁을 요리 중에 있다는 것이다.
도 7의 방법은 또한 작업 흐름 시나리오(708)에 의존하여 작업 흐름(338)을 식별하는 단계(712)를 포함한다. 상기한 바와 같이, 작업 흐름은 실행될 때 본 발명에 따라 하나 이상의 장치의 하나 이상의 속성의 값을 변경하는 장치 제어 동작을 구현하는 소프트웨어이다. 도 7의 방법에서, 작업 흐름 시나리오(708)에 의존하여 작업 흐름(338)을 식별하는 단계(712)는 작업 흐름 시나리오 레코드(708)로부터 작업 흐름 ID(740)를 검색하는 단계를 포함한다.
도 7의 방법은 또한 장치의 속성의 적어도 하나의 값을 관리하기 위해 장치로 메시지를 전송하는 것(716)을 포함한 작업 흐름(338)을 실행하는 단계(714)를 포함한다. 상기한 바와 같이, 작업 흐름은 실행될 때 본 발명에 따라 하나 이상의 장치의 하나 이상의 속성의 값을 변경하는 장치 제어 동작을 구현하는 소프트웨어이다. 이러한 소프트웨어는 장치에 대해 속성의 값을 변경하도록 지시하는 메시지 를 장치로 전송함으로써 장치 제어 동작을 수행한다. 이러한 메소드를 수신하는 장치는 예를 들어 메시지로 전송된 속성값을 파라미터로 갖는 SomeDeviceClass.setAttribute() 등의 장치를 나타내는 장치 클래스 내의 멤버 메소드를 호출함으로써 장치의 값의 변경을 수행할 수 있다.
도 7의 방법에서, 작업 흐름(338)을 실행하는 단계(714)는 또한 관련 허용 범위(756)에 의존하여 작업 흐름을 실행하는 단계를 포함한다. 허용 범위는 식별된 도출 시나리오에 의존하여 실행되는 작업 흐름의 실행을 규율하는 규칙 세트이다. 종종, 허용 범위는 장치가 지원하는 허용가능한 속성 값의 범위의 서브셋이다. 예를 들어, 온도 조절 장치는 설정되어 있는 경우 온도 조절 장치 자체 또는 다른 장치들에 궁극적으로 손상을 입히는 속성값을 지원할 수 있다. 따라서, 허용 범위는 종종 장치 사용이 네트워크화된 환경 내의 장치들에 해가 되지 않도록 작업 흐름의 실행을 규율하게 설계되어 있다.
도 7의 방법은 또한 메시지(718)를 로깅하는 단계(720)를 포함한다. 도 7의 방법에 따른 메시지(718)를 로깅하는 단계(720)는 메시지 정보를 메시지 로그(722)에 기록함으로써 수행된다. 메시지 로그(722)는 네트워크화된 환경 내의 하나 이상의 장치로 전송된 개개의 메시지를 나타내는 엔트리를 포함하는 데이터 구조이다. 도 7의 예에서, 메시지 로그(722)는 메시지 로그 ID(724), 메시지 ID(725), 메시지(726)의 내용, 및 메시지가 전송된 시간(762)을 포함하는 메시지 정보를 포함하고 있다. 메시지 로그는 유용하게도 본 발명에 따라 작업 흐름의 실행을 수행하는 장치로 전송된 메시지들의 레코드를 제공한다.
도 7의 메시지 로그에 포함된 메시지 정보는 설명을 위한 것이며 제한을 위한 것이 아니다. 실제로, 메시지 로그에 기록된 메시지 정보는 메시지를 수신하는 장치의 유형, 메시지 유형, 메시지에 관한 원하는 정보, 및 당업자라면 잘 알고 있는 다른 요인 등의 요인들에 따라 변하게 된다.
메시지 로그는 유용하게도 본 발명에 따라 작업 흐름의 실행을 수행하는 장치로 전송된 메시지들의 레코드를 제공한다. 이러한 메시지 로그는 그 자체가 실행을 위한 작업 흐름을 식별하는 데 유용할 수 있는 메시지들에서의 패턴을 식별하는 데 사용될 수 있다. 따라서, 추가의 설명을 위해, 도 8은 본 발명에 따른 작업 흐름 판정 관리의 부가의 측면들을 나타낸 플로우차트이다. 도 8의 방법은 장치로 전송되는 복수의 메시지에 의존하여 메시지 패턴(460)을 식별하는 단계(802)를 포함한다. 도 8의 예에서, 장치로 전송되는 복수의 메시지에 의존하여 메시지 패턴(460)을 식별하는 단계(802)는 하나 이상의 장치로 전송되는 복수의 메시지에 관한 정보를 기록하는 메시지 로그 내에 포함된 정보로부터 메시지 패턴을 식별함으로써 수행된다. 메시지 패턴(460)을 식별하는 단계는 사용자가 메시지 로그의 엔트리들을 검사하고 메시지 로그의 엔트리들에서 패턴을 발견함으로써 수행될 수 있다.
사용자가 메시지 패턴을 수동으로 식별해야 하는 것은 너무 노동 집약적이어서 실용적이지 못할 수 있다. 도 8의 방법에서, 장치로 전송되는 복수의 메시지에 의존하여 메시지 패턴(460)을 식별하는 단계(802)는 네트워크화된 환경에서 장치들로의 메시지에 대해 기술하는 메시지 정보를 포함하는 메시지 로그(722)를 데이터 마이닝(803)함으로써 수행된다. 데이터 마이닝에 대한 많은 정의가 있다. 본 명세서의 목적상, 데이터 마이닝은 메시지 로그 내의 기록된 메시지 정보를 분석하고 기록된 메시지 정보로부터 관계, 패턴, 지식 또는 정보를 발견하며 발견된 관계, 패턴 또는 지식을 사용하여 작업 흐름 판정 관리를 위한 메시지 패턴을 식별하는 것을 의미한다. 많은 데이터 마이닝 기술이 일반적으로 데이터 마이닝을 위한 데이터를 준비하는 단계, 적절한 데이터 마이닝 알고리즘을 선택하는 단계, 및 데이터 마이닝 알고리즘을 배포하는 단계를 포함한다.
도 8의 방법에서, 메시지 로그 내의 기록된 메시지 정보는 메시지 로그에 대한 미리 정해진 데이터 구조를 제공함으로써 데이터 마이닝을 위해 준비되어 있다. 일반적으로, 이러한 메시지 로그가 생성될 때 미리 정해진 데이터 구조가 제공된다. 각각의 특정의 종류의 메시지 로그에 대한 특정의 미리 정해진 데이터 구조는 작업 흐름 판정 관리를 수행하기 위해 장치로 발행되는 메시지의 유형, 로깅을 위해 이용가능한 메시지 정보의 종류, 및 당업자라면 잘 알고 있는 기타 등등의 인자들에 따라 변하게 된다.
데이터 마이닝은 또한 일반적으로 적절한 데이터 마이닝 알고리즘을 선택하는 단계를 포함한다. 메시지 패턴을 발견하는 데 적절한 데이터 마이닝 알고리즘은 마이닝하는 데 이용가능한 메시지 로그에 기록되어 있는 메시지 정보의 유형, 데이터 마이닝을 수행하는 데 사용되는 이용가능한 컴퓨터 소프트웨어 및 하드웨어, 메시지 로그 내의 메시지 정보의 집합의 크기, 또는 당업자라면 잘 알고 있는 임의의 다른 인자 등의 많은 인자들에 따라 변하게 된다. 많은 데이터 마이닝 알 고리즘이 존재하며, 메시지 로그에 기록된 메시지 정보의 집합으로부터 메시지 패턴을 적절하 찾아내는 모든 알고리즘이 본 발명의 범위 내에 속한다.
많은 데이터 마이닝 알고리즘이 존재하지만, 데이터 마이닝 알고리즘 중 다수는 동일한 목적을 공유한다. 일반적인 데이터 마이닝 알고리즘은 컴퓨터가 수집할 수 있는 데이터의 분량에 의해 압도되는 문제를 해결하려고 한다. 데이터 마이닝 알고리즘은 또한 일반적으로 데이터를 분석하거나, 데이터를 요약하거나 또는 사용자가 이해할 수 있는 결론을 데이터로부터 도출함으로써 사용자를 거대한 데이터 덩어리로부터 보호하려고 한다.
여러가지 데이터 마이닝 알고리즘에 대해 설명하는 한가지 방법은 그의 기초를 이루는 수학적 연산의 구체적 내용보다는 오히려 이들이 수행하는 기능들을 설명하는 것이다. 여러가지 데이터 마이닝 알고리즘을 설명하는 다른 방법은 데이터 마이닝 알고리즘에 의해 반환되는 "규칙"을 설명하는 것이다. 규칙은 데이터 마이닝 알고리즘에 의해 발견되는 관계, 패턴, 지식 또는 정보에 대한 설명이다. 예시적인 데이터 마이닝 알고리즘이 본 명세서에서는 이들이 수행하는 기능 및 이들이 반환하는 기능에 대해 설명하는 것으로 설명하고 있다. 데이터 마이닝 알고리즘의 이하의 예들은 제한을 위해서가 아니라 설명의 명확함을 위해 본 명세서에 포함되어 있다. 당업자라면 잘 알고 있는 임의의 데이터 마이닝 방법이 유형, 분류 또는 기초를 이루는 수학적 연산에 상관없이 본 발명의 범위 내에 속한다.
도 8의 방법의 어떤 예에서, 메시지 패턴(460)을 식별하는 단계(802)는 연관성 함수(association function)로 메시지 로그(722)를 데이터 마이닝하는 단 계(803)를 포함한다. 연관성 함수는 일반적으로 연결된 또는 관계된 이벤트를 갖는 패턴을 찾아내는 데 사용된다. 예를 들어, 메시지 패턴을 식별하는 것과 관련하여, 연관성 함수로 데이터 마이닝하는 것은 "온도 조절 장치에 대해 기록된 메시지의 72%는 온도 조절 장치를 낮추라는 지시였고, 시간상으로 천정 팬의 속도를 증가시키라는 천정 팬에 대한 메시지와 대응하였다." 등의 규칙을 반환할 수 있다. 연관성 함수로 데이터 마이닝하는 것은 메시지 로그 내의 여러가지 엔트리의 하나 이상의 필드들 간의 연관성을 결정하는 데 사용될 수 있다. 예를 들어, 연관성 함수는 온도 조절 장치에 대한 메시지의 몇 퍼센트가 온도 조절 장치의 설정치를 감소시키라는 것임을 기술하는 규칙을 반환할 수 있다.
도 8의 방법의 다른 예들에서, 메시지 패턴(460)을 식별하는 단계(802)는 순차적 패턴 연산자(sequential pattern operator)로 메시지 로그(722)를 데이터 마이닝하는 단계(803)를 포함한다. 순차적 패턴으로 데이터 마이닝하는 것은 일반적으로 단일 유형의 메시지 로그 내의 메시지 정보를 분석하는 데 사용된다. 순차적 패턴 연산자는 동일한 장치에 대한 메시지 로그 내의 엔트리들 간의 순차적 관계를 기술하는 규칙을 반환하는 데 사용될 수 있다. 메시지 로그 내의 이러한 엔트리들 간의 관계를 기술하는 규칙의 예는 일렬로 있는 온도 조절 장치에 대한 3개의 메시지가 온도 조절 장치의 설정치를 높이라는 명령어를 포함하고 있고, 그에 따라 온도 조절 장치에 의해 통제되는 영역 밖의 온도가 떨어지고 있어 온도 조절 장치에 의해 통제되는 영역이 떨어지게 하고 있음을 나타내고 있음을 식별해주는 규칙이다.
도 8의 방법의 또다른 예들에서, 메시지 패턴(460)을 식별하는 단계(802)는 분류 연산자(classification operator)로 데이터 마이닝을 하는 단계를 포함한다. 분류 연산자는 예를 들어 하루 중 어떤 시간에 전송된 메시지의 기록된 메시지 정보 등의 어떤 부류에 속하는 것으로 편성(organize) 또는 "태그 표시(tag)"되어 있는 메시지 로그 내의 일련의 엔트리에 적용된다. 분류 연산자는 메시지 로그 내의 일련의 표시된 엔트리를 검사하고 그 부류를 식별해주는 수학적 함수를 생성한다. 이러한 분류 연산자는 예를 들어 하루 중 어떤 시간에 수신된 메시지 로그 내의 한 부류의 엔트리를 분석하여 대부분의 메시지 트래픽에서의 하루 중 시간을 결정하는 데 사용될 수 있다.
도 8의 방법의 또다른 예들에서, 메시지 패턴(460)을 식별하는 단계(802)는 클러스터링 연산자(clustering operator)로 데이터 마이닝하는 단계를 포함한다. 입력이 메시지 로그에서의 일련의 태그 표시된 엔트리인 분류 연산자로 데이터 마이닝하는 것과는 달리, 클러스터링 연산자에의 입력은 메시지 로그에서의 일련의 태그 표시되지 않은 엔트리이다. 클러스터링 연산자가 적용되는 때에 부류가 알려져 있지 않다. 클러스터 연산자로 데이터 마이닝하는 것은 엔트리들을 하루 중 시간별로 또는 장치 ID별로 구분하는 등의 메시지 로그 내의 엔트리들을 구분 또는 분류하는 데 사용될 수 있다. 분류 연산자를 작성하는 데 사용되는 기반이 되는 수학적 연산 중 다수는 또한 클러스터링 연산자를 작성하는 데 사용될 수 있다.
여러가지 데이터 마이닝 알고리즘이 개별적으로 기술되었지만, 도 8의 방법의 여러가지 예들에서, 서로 다른 데이터 마이닝 알고리즘이 다함께 메시지 패턴을 식별하는 데 사용될 수 있다. 게다가, 도 8의 방법이 데이터 마이닝과 관련하여 상세히 기술되어 있지만, 메시지 패턴을 포함하는 메시지 로그의 서브셋을 식별하는 임의의 방법이 단지 데이터 마이닝만이 아닌 본 발명의 범위 내에 속한다. 여러가지 예시적인 실시예에서, 메시지 패턴을 포함하는 메시지 로그의 서브셋을 식별하는 것은 데이터 판별(data discrimination)을 사용하는 것, 인공 지능을 사용하는 것, 기계 학습을 사용하는 것, 패턴 인식을 사용하는 것, 또는 당업자라면 잘 알고 있는 메시지 패턴을 포함하는 메시지 로그의 서브셋을 식별하는 임의의 방법을 포함한다.
출시된 데이터 마이닝 소프트웨어의 한 예로는 IBM
Figure 112006078745360-pat00002
의 "Intelligent Miner"가 있다. "Intelligent Miner"는 AIX, AS/400, 및 OS/390을 비롯한 몇가지 컴퓨팅 환경에서 동작될 수 있다. Intelligent Miner는 클라이언트/서버 구성을 위해 설계되고 기가비트 데이터 세트 등의 초대규모 데이터 세트를 마이닝하는 데 최적화되어 있는 기업형 데이터 마이닝 툴(enterprise data mining tool)이다. Intelligent Miner는 대형 데이터베이스를 분석하는 데 사용되는 복수의 데이터 마이닝 기술 또는 툴을 포함하며, 서로 다른 마이닝 결과를 보고 해석하는 데 사용되는 시각화 도구를 제공한다.
메시지 패턴을 식별하였으면, 이러한 패턴을 나타내는 레코드가 생성되고 이 레코드는 유용하게도 네트워크화된 환경에서의 이러한 메시지가 식별된 메시지 패턴과 부합하는 경우 실행을 위한 작업 흐름을 식별해주는 매개체를 제공할 수 있다. 도 8의 예에서, 메시지 패턴 레코드(460)는 식별된 메시지 패턴을 나타낸다. 메시지 패턴 레코드(460) 내의 엔트리들은 메시지 패턴을 일의적으로 식별해주는 메시지 패턴 ID(462)를 포함한다. 메시지 패턴 레코드(460) 내의 엔트리들은 또한 장치로 전송된 메시지의 유형을 식별해주는 메시지 유형(464) 및 메시지가 전송되는 장치를 식별해주는 장치 ID(465)를 포함한다. 메시지 패턴 레코드 내의 엔트리들은 또한 메시지 내에 포함된 장치 제어 명령어를 정의하는 메시지의 속성(463) 및 특정의 메시지가 존재하는 메시지 패턴에서의 위치를 식별해주는 메시지 시퀀스 ID(466)를 포함한다.
도 8의 방법은 식별된 메시지 패턴을 나타내는 메시지 패턴 레코드(460)를 메시지 패턴 데이터베이스(616)에 저장하는 단계(806)를 포함한다. 메시지 패턴 데이터베이스는 네트워크화된 환경에서 메시지 트래픽에서의 메시지 패턴을 식별하는 데 사용하기 위한 복수의 메시지 패턴 레코드를 유지한다.
도 8의 방법은 또한 네트워크화된 환경에서 장치 또는 복수의 장치로 전송되는 복수의 메시지(718)에 의존하여 메시지 패턴(460)을 식별하는 단계(804)를 포함한다. 메시지 패턴 레코드는 사전 식별된 메시지 패턴을 나타낸다. 도 8의 방법에서, 복수의 메시지(718)에 의존하여 메시지 패턴(460)을 식별하는 단계(804)는 네트워크화된 환경에서의 복수의 메시지 또는 메시지 로그 내의 최근의 엔트리들을 메시지 패턴 데이터베이스 내의 복수의 메시지 패턴 레코드와 비교함으로써 수행될 수 있다. 도 8의 예에서, 일치하는 메시지 레코드를 식별하기 위해 최근의 메시지를 나타내는 메시지 로그의 엔트리들의 윈도우가 메시지 레코드와 비교될 수 있다. 이러한 일치하는 메시지 레코드가 존재하는 경우, 네트워크화된 환경에서의 메시지 트래픽이 메시지 패턴 레코드에 의해 나타내어지는 메시지 패턴과 부합하는 것으로 추정된다.
당업자라면 잘 알고 있는 바와 같이, 일반적인 실시예에서, 일치하는 메시지 패턴 레코드를 식별하기 위해 네트워크화된 환경에서 메시지 로그 또는 트래픽에서의 메시지의 측면들이 메시지 패턴 레코드의 값들과 정확하게 동일할 필요는 없다. 실제로, 일치하는 레코드가 식별될 때 트래픽에서의 메시지 또는 메시지 로그의 엔트리들의 값이 메시지 패턴 레코드들의 값과 정확하게 일치하지 않는 경우가 많다. 일치하는 것으로 간주되기 위해 트래픽에서의 메시지 또는 메시지 로그 내의 엔트리들의 값이 메시지 패턴 레코드들의 값과 유사해야만 하는 정도는 메시지 로그의 엔트리 및 메시지를 메시지 패턴 레코드와 비교하는 데 사용되는 방법, 일치를 식별하기 위한 미리 정의된 허용 범위는 물론 당업자라면 잘 알고 있는 다른 수많은 인자들 등의 인자에 따라 변하게 된다.
도 8의 방법은 장치 사용 패턴(328)에 의존하여 또한 메시지 패턴(460)에 의존하여 작업 흐름 시나리오(708)를 식별하는 단계(805)를 포함한다. 도 8의 작업 흐름 시나리오는 도 3을 참조하여 전술한 시나리오(참조 번호(344)가 부기되어 있음) 등의 많은 네트워크화된 환경에서의 많은 사용자로부터 일반적으로 미리 정해진 및 사전 정의된 시나리오이거나, 도 3을 참조하여 상기한 네트워크화된 환경 내에서의 실제 장치 사용에 의존하여 생성된 도출 시나리오(참조 번호(352)가 부기되어 있음)일 수 있다.
장치 사용 패턴(328)에 의존하여 또한 메시지 패턴(460)에 의존하여 작업 흐 름 시나리오(708)를 식별하는 단계(805)는 작업 흐름 시나리오 테이블(706)로부터 작업 흐름 시나리오 ID(754)를 검색함으로써 수행될 수 있다. 도 7의 예에서, 작업 흐름 시나리오 테이블(706)은 사전 정의된 장치 사용 패턴을 식별해주는 장치 사용 ID(730) 및 메시지 패턴을 식별해주는 메시지 패턴 ID(462)에 의해 인덱싱되는 복수의 작업 흐름 시나리오 ID(754)를 포함한다. 장치 사용 패턴(328)에 의존하여 또한 메시지 패턴(460)에 의존하여 작업 흐름 시나리오(708)를 식별하는 단계(805)는 따라서 식별된 장치 사용 레코드(328)의 장치 사용 ID(331) 및 식별된 메시지 패턴의 메시지 패턴 ID(462)에 의존하여 작업 흐름 시나리오 테이블(706)로부터 작업 흐름 ID(754)를 검색하는 단계를 포함한다.
도 8의 방법에서, 장치 사용 패턴(328)에 의존하여 또한 메시지 패턴(460)에 의존하여 작업 흐름 시나리오(708)를 식별하는 단계(805)는 또한 규칙(709)에 의존하여 수행될 수 있다. 규칙(709)은 하나의 장치 사용 패턴과 연관된 2개 이상의 작업 흐름 시나리오가 존재하고 또 메시지 패턴이 존재하는 경우에 복수의 작업 흐름 시나리오 중에서 특정의 작업 흐름 시나리오를 식별하는 것을 규율한다.
작업 흐름 시나리오를 식별하였으면, 본 발명의 실시예들에 따른 작업 흐름 판정 관리는 도 7을 참조하여 상기한 바와 같이 계속하여 작업 흐름을 식별하고 이 작업 흐름을 실행함으로써 계속될 수 있다. 메시지 패턴의 부가는 유용하게도 작업 흐름 시나리오를 선택하는 데 부가적인 입도를 제공하고 네트워크화된 환경에서 작업 흐름 판정 관리의 결과를 보다 잘 조정하는 매개체를 제공한다.
본 발명의 예시적인 실시예는 대체로 작업 흐름 판정 관리를 위한 완전하게 기능하는(fully functional) 컴퓨터 시스템과 관련하여 기술되어 있다. 그렇지만, 당업자라면 본 발명이 또한 임의의 적당한 데이터 처리 시스템에서 사용하기 위한 신호 전달 매체 상에 배치되는 컴퓨터 프로그램 제품에 구현될 수 있음을 잘 알 것이다. 이러한 신호 전달 매체는 자기 매체, 광학 매체 또는 다른 적당한 매체를 비롯한 기계-판독가능 정보에 대한 기록가능 매체 또는 전송 매체일 수 있다. 기록 가능 매체의 예로는 하드 드라이브 또는 디스켓 내의 자기 디스크, 광학 드라이브에 대한 컴팩트 디스크, 자기 테이프, 및 당업자라면 잘 알고 있는 다른 것들이 있다. 전송 매체의 예로는 음성 통신을 위한 전화 네트워크, 예를 들어 이더넷™ 등의 디지털 데이터 통신 네트워크, 그리고 인터넷 프로토콜 및 월드 와이드 웹과 통신하는 네트워크가 있다.
당업자라면 적당한 프로그래밍 수단을 갖는 임의의 컴퓨터 시스템이 프로그램 제품에 구현되어 있는 본 발명의 방법의 단계들을 실행할 수 있다는 것을 잘 알 것이다. 당업자라면 본 명세서에 기술된 예시적인 실시예들 대부분이 컴퓨터 하드웨어 상에 설치되어 실행되는 소프트웨어에 대한 것 있지만, 펌웨어 또는 하드웨어로 구현된 대체 실시예들이 본 발명의 범위 내에 속한다는 것을 잘 알 것이다.
이상의 설명으로부터 본 발명의 진정한 정신을 벗어나지 않고 본 발명의 여러가지 실시예들에 여러 수정 및 변경이 행해질 수 있다는 것을 잘 알 것이다. 본 명세서에서의 설명은 단지 예시를 위한 것이며 제한적인 의미로 해석되어서는 안된다. 본 발명의 범위는 이하의 청구항에 의해서만 제한된다.

Claims (8)

  1. 작업 흐름 판정 관리 방법으로서,
    장치 상태 이력을 유지하는 단계;
    상기 장치 상태 이력에 의존하여 장치 사용 패턴을 식별하는 단계;
    상기 장치 사용 패턴에 의존하여 작업 흐름 시나리오를 식별하는 단계;
    상기 작업 흐름 시나리오에 의존하여 작업 흐름을 식별하는 단계;
    장치의 속성의 적어도 하나의 값을 관리하기 위해 상기 장치로 메시지를 전송하는 것을 포함한 상기 작업 흐름을 실행하는 단계; 및
    상기 메시지를 로깅(logging)하는 단계
    를 포함하는 작업 흐름 판정 관리 방법.
  2. 제1항에 있어서, 상기 메시지를 로깅하는 단계는 상기 장치로 전송된 상기 메시지를 기술하는 메시지 정보를 메시지 로그에 기록하는 단계를 더 포함하는 것인 작업 흐름 판정 관리 방법.
  3. 제1항에 있어서, 장치로 전송된 복수의 메시지에 의존하여 메시지 패턴을 식별하는 단계를 더 포함하는 작업 흐름 판정 관리 방법.
  4. 제3항에 있어서, 장치로 전송된 복수의 메시지에 의존하여 메시지 패턴을 식 별하는 상기 단계는, 상기 장치로 전송된 상기 메시지를 기술하는 메시지 정보를 포함하는 메시지 로그를 데이터 마이닝(data mining)하는 단계를 더 포함하는 것인 작업 흐름 판정 관리 방법.
  5. 제3항에 있어서, 상기 장치에 의존하여 작업 흐름 시나리오를 식별하는 상기 단계는, 상기 메시지 패턴에 의존하여 작업 흐름 시나리오를 식별하는 단계를 더 포함하는 것인 작업 흐름 판정 관리 방법.
  6. 제1항에 있어서, 상기 작업 흐름을 실행하는 상기 단계는, 관련 허용 범위(associated tolerance)에 의존하여 상기 작업 흐름을 실행하는 단계를 더 포함하는 것인 작업 흐름 판정 관리 방법.
  7. 컴퓨터 프로세서와, 제1항 내지 제6항 중 어느 한 항에 기재된 단계들을 수행할 수 있는 컴퓨터 프로그램 명령들이 내부에 배치되며, 상기 컴퓨터 프로세서에 동작적으로 결합된 컴퓨터 메모리를 포함하는 작업 흐름 판정 관리 시스템.
  8. 제1항 내지 제6항 중 어느 한 항에 기재된 단계들을 수행하기 위한 컴퓨터 프로그램 명령들을 포함하는 작업 흐름 판정 관리를 위한 컴퓨터 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체.
KR1020060105536A 2005-11-01 2006-10-30 메시지 로깅을 갖는 작업 흐름 판정 관리 KR100773010B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/264,714 US20070100884A1 (en) 2005-11-01 2005-11-01 Workflow decision management with message logging
US11/264,714 2005-11-01

Publications (2)

Publication Number Publication Date
KR20070047209A KR20070047209A (ko) 2007-05-04
KR100773010B1 true KR100773010B1 (ko) 2007-11-05

Family

ID=37997825

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060105536A KR100773010B1 (ko) 2005-11-01 2006-10-30 메시지 로깅을 갖는 작업 흐름 판정 관리

Country Status (3)

Country Link
US (1) US20070100884A1 (ko)
KR (1) KR100773010B1 (ko)
CN (1) CN1959720A (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9489645B2 (en) * 2004-05-13 2016-11-08 International Business Machines Corporation Workflow decision management with derived scenarios and workflow tolerances
US20060155848A1 (en) * 2005-01-10 2006-07-13 Brown William A Workflow decision management including identifying user reaction to workflows
US20060156276A1 (en) * 2005-01-10 2006-07-13 Brown William A Workflow decision management with heuristics
US20070100990A1 (en) 2005-11-01 2007-05-03 Brown William A Workflow decision management with workflow administration capacities
US8010700B2 (en) * 2005-11-01 2011-08-30 International Business Machines Corporation Workflow decision management with workflow modification in dependence upon user reactions
US8155119B2 (en) * 2005-11-01 2012-04-10 International Business Machines Corporation Intermediate message invalidation
US8667100B2 (en) 2010-07-07 2014-03-04 Comcast Interactive Media, Llc Device communication, monitoring and control architecture and method
US9639815B2 (en) * 2011-07-14 2017-05-02 International Business Machines Corporation Managing processes in an enterprise intelligence (‘EI’) assembly of an EI framework
US9659266B2 (en) 2011-07-14 2017-05-23 International Business Machines Corporation Enterprise intelligence (‘EI’) management in an EI framework
US9646278B2 (en) 2011-07-14 2017-05-09 International Business Machines Corporation Decomposing a process model in an enterprise intelligence (‘EI’) framework
JP6244992B2 (ja) * 2014-03-07 2017-12-13 富士通株式会社 構成情報管理プログラム、構成情報管理方法、及び構成情報管理装置
US9354922B2 (en) * 2014-04-02 2016-05-31 International Business Machines Corporation Metadata-driven workflows and integration with genomic data processing systems and techniques
CN104219541B (zh) * 2014-09-22 2017-12-08 北京奇艺世纪科技有限公司 一种视频生产系统及方法
US11151089B2 (en) * 2018-10-29 2021-10-19 EMC IP Holding Company LLC Compression of log data using pattern recognition
CN109670780A (zh) * 2018-12-03 2019-04-23 中国建设银行股份有限公司 复杂场景下的工作流处理方法、设备和存储介质
KR102303552B1 (ko) * 2020-01-07 2021-09-23 씨스존 주식회사 학습 기반 메시지 데이터 관리를 지원하는 게이트웨이 장치 및 이의 학습 기반 메시지 데이터 관리 방법
KR102413004B1 (ko) * 2020-12-02 2022-06-24 씨스존 주식회사 스마트 항만 구성에 적용되는 다양한 디바이스의 대용량 트래픽 처리 효율을 개선한 IoT 게이트웨이의 메시지 데이터 관리 방법
CN113409165B (zh) * 2021-08-19 2021-12-07 清华四川能源互联网研究院 电力数据集成方法、装置、电子设备及可读存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR0150528B1 (ko) * 1995-12-19 1998-11-02 양승택 시나리오를 이용한 에이티엠 가상 채널 교환기에서의 호처리 방법

Family Cites Families (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6516079B1 (en) * 2000-02-14 2003-02-04 Digimarc Corporation Digital watermark screening and detecting strategies
CN1115149A (zh) * 1994-04-01 1996-01-17 株式会社东芝 数字图象信号的记录重放方法及设备
US5546463A (en) * 1994-07-12 1996-08-13 Information Resource Engineering, Inc. Pocket encrypting and authenticating communications device
US5745864A (en) * 1994-10-04 1998-04-28 Nippondenso Co., Ltd. Vehicular information storage device and power outage-resistant storage system and method for the same
US5572438A (en) * 1995-01-05 1996-11-05 Teco Energy Management Services Engery management and building automation system
US5812394A (en) * 1995-07-21 1998-09-22 Control Systems International Object-oriented computer program, system, and method for developing control schemes for facilities
US5825857A (en) * 1995-09-13 1998-10-20 Mci Communications Corporation Method and system for calling card validation hubbing
US5768284A (en) * 1995-12-29 1998-06-16 At&T Corp Monitoring of periodic patterns
US6192282B1 (en) * 1996-10-01 2001-02-20 Intelihome, Inc. Method and apparatus for improved building automation
US6108775A (en) * 1996-12-30 2000-08-22 Texas Instruments Incorporated Dynamically loadable pattern history tables in a multi-task microprocessor
US5978371A (en) * 1997-03-31 1999-11-02 Abb Power T&D Company Inc. Communications module base repeater
US5978836A (en) * 1997-07-28 1999-11-02 Solectron Corporation Workflow systems and methods
US6100817A (en) * 1998-03-17 2000-08-08 Abb Power T&D Company Inc. Fixed network RF communications complaint with CEBus protocol
US20020123928A1 (en) * 2001-01-11 2002-09-05 Eldering Charles A. Targeting ads to subscribers based on privacy-protected subscriber profiles
JP4125005B2 (ja) * 1999-07-29 2008-07-23 富士通株式会社 メッセージの型を利用するオブジェクト連携装置
ATE451783T1 (de) * 1999-08-17 2009-12-15 Microsoft Corp Architektur für ein automatisierungssystem
AU2295101A (en) * 1999-12-30 2001-07-16 C-Smart Llc Method and apparatus for providing distributed control of a home automation system
US6453687B2 (en) * 2000-01-07 2002-09-24 Robertshaw Controls Company Refrigeration monitor unit
CN1223152C (zh) * 2000-02-28 2005-10-12 永泰锋国际有限公司 智能家庭控制总线
US6934684B2 (en) * 2000-03-24 2005-08-23 Dialsurf, Inc. Voice-interactive marketplace providing promotion and promotion tracking, loyalty reward and redemption, and other features
CA2404014A1 (en) * 2000-03-30 2001-10-11 Cygent, Inc. System and method for establishing electronic business systems for supporting communications services commerce
WO2001082182A1 (en) * 2000-04-20 2001-11-01 Weinstein Stephen G Agreement management system and method
US6847892B2 (en) * 2001-10-29 2005-01-25 Digital Angel Corporation System for localizing and sensing objects and providing alerts
US6850606B2 (en) * 2001-09-25 2005-02-01 Fair Isaac Corporation Self-learning real-time prioritization of telecommunication fraud control actions
US6912429B1 (en) * 2000-10-19 2005-06-28 Destiny Networks, Inc. Home automation system and method
US9219708B2 (en) * 2001-03-22 2015-12-22 DialwareInc. Method and system for remotely authenticating identification devices
US6778921B2 (en) * 2001-04-06 2004-08-17 Eni Technology, Inc. Modular architecture for industrial power delivery system
US7350209B2 (en) * 2001-06-29 2008-03-25 Bmc Software System and method for application performance management
US7296056B2 (en) * 2001-07-30 2007-11-13 International Business Machines Corporation Method, system, and program for selecting one user to assign a work item in a workflow
US7289966B2 (en) * 2001-08-14 2007-10-30 Norman Ken Ouchi Method and system for adapting the execution of a workflow route
US20030037141A1 (en) * 2001-08-16 2003-02-20 Gary Milo Heuristic profiler software features
US7408658B2 (en) * 2001-12-04 2008-08-05 Hewlett-Packard Development Company, L.P. Generation and usage of workflows for processing data on a printing device
US7065496B2 (en) * 2002-02-13 2006-06-20 Tangoe, Inc. System for managing equipment, services and service provider agreements
US8516114B2 (en) * 2002-03-29 2013-08-20 International Business Machines Corporation Method and apparatus for content pre-fetching and preparation
US7016888B2 (en) * 2002-06-18 2006-03-21 Bellsouth Intellectual Property Corporation Learning device interaction rules
US20040083305A1 (en) * 2002-07-08 2004-04-29 Chung-Yih Wang Packet routing via payload inspection for alert services
US7103420B2 (en) * 2002-07-18 2006-09-05 International Business Machines Corporation Method for implementing device operations based on device status information stored in a central location
US20040034638A1 (en) * 2002-07-18 2004-02-19 International Business Machines Corporation Method for analyzing and characterizing the usage pattern of a device
US6865427B2 (en) * 2002-07-18 2005-03-08 International Business Machines Corporation Method for management of workflows between devices in a pervasive embedded or external environment
US7315542B2 (en) * 2002-09-30 2008-01-01 Avago Technologies General Ip (Singapore) Pte. Ltd. Handling and discarding packets in a switching subnetwork
WO2004061681A1 (ja) * 2002-12-26 2004-07-22 Fujitsu Limited 運用管理方法および運用管理サーバ
US20040243588A1 (en) * 2003-05-29 2004-12-02 Thomas Tanner Systems and methods for administering a global information database
US20040243699A1 (en) * 2003-05-29 2004-12-02 Mike Koclanes Policy based management of storage resources
US20050065753A1 (en) * 2003-09-24 2005-03-24 International Business Machines Corporation Apparatus and method for monitoring system health based on fuzzy metric data ranges and fuzzy rules
US7315642B2 (en) * 2004-02-12 2008-01-01 Applied Materials, Israel, Ltd. System and method for measuring thin film thickness variations and for compensating for the variations
US7176887B2 (en) * 2004-03-23 2007-02-13 Fujitsu Limited Environmental modeling for motion controlled handheld devices
US9489645B2 (en) * 2004-05-13 2016-11-08 International Business Machines Corporation Workflow decision management with derived scenarios and workflow tolerances
US20060156276A1 (en) * 2005-01-10 2006-07-13 Brown William A Workflow decision management with heuristics
US20060155848A1 (en) * 2005-01-10 2006-07-13 Brown William A Workflow decision management including identifying user reaction to workflows
US20060155847A1 (en) * 2005-01-10 2006-07-13 Brown William A Deriving scenarios for workflow decision management
US20060248145A1 (en) * 2005-04-18 2006-11-02 Srimantee Karmakar System and method for providing various levels of reliable messaging between a client and a server
US20070005623A1 (en) * 2005-06-30 2007-01-04 Microsoft Corporation Process oriented message driven workflow programming model
JP2007072646A (ja) * 2005-09-06 2007-03-22 Internatl Business Mach Corp <Ibm> 検索装置、検索方法およびプログラム
US7890181B2 (en) * 2005-09-12 2011-02-15 Medtronic, Inc. System and method for unscheduled wireless communication with a medical device
US7657636B2 (en) * 2005-11-01 2010-02-02 International Business Machines Corporation Workflow decision management with intermediate message validation
US20070100990A1 (en) * 2005-11-01 2007-05-03 Brown William A Workflow decision management with workflow administration capacities
US8155119B2 (en) * 2005-11-01 2012-04-10 International Business Machines Corporation Intermediate message invalidation
US8010700B2 (en) * 2005-11-01 2011-08-30 International Business Machines Corporation Workflow decision management with workflow modification in dependence upon user reactions

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR0150528B1 (ko) * 1995-12-19 1998-11-02 양승택 시나리오를 이용한 에이티엠 가상 채널 교환기에서의 호처리 방법

Also Published As

Publication number Publication date
US20070100884A1 (en) 2007-05-03
CN1959720A (zh) 2007-05-09
KR20070047209A (ko) 2007-05-04

Similar Documents

Publication Publication Date Title
KR100773010B1 (ko) 메시지 로깅을 갖는 작업 흐름 판정 관리
US9594587B2 (en) Workflow decision management with workflow administration capacities
US8010700B2 (en) Workflow decision management with workflow modification in dependence upon user reactions
US8155119B2 (en) Intermediate message invalidation
US7657636B2 (en) Workflow decision management with intermediate message validation
US8046734B2 (en) Workflow decision management with heuristics
US20060155847A1 (en) Deriving scenarios for workflow decision management
US20080178193A1 (en) Workflow Decision Management Including Identifying User Reaction To Workflows
US20050071462A1 (en) Creating user metric patterns
US9491079B2 (en) Remote monitoring and controlling of network utilization
US8180885B2 (en) Method and system for administering devices with multiple user metric spaces
US20050021484A1 (en) Administering devices in dependence upon user metric vectors including relational metrics and location based device control
US20070133569A1 (en) Home network system and its configuration system
US9489645B2 (en) Workflow decision management with derived scenarios and workflow tolerances
US20040015609A1 (en) Method and system for conversion of message formats in a pervasive embedded network environment
US20070287893A1 (en) Method And System For Administering Devices In Dependence Upon User Metric Vectors
US20070169074A1 (en) Upgrade apparatus and its method for home network system
US20040034638A1 (en) Method for analyzing and characterizing the usage pattern of a device
US8484323B2 (en) Network system connected with multiple master devices and method for operating the same
US20040267869A1 (en) Administering devices in dependence upon user metric vectors with multiple users
US7151969B2 (en) Administering devices in dependence upon user metric vectors with optimizing metric action lists
CN104243604A (zh) 一种文件禁用的方法及装置
CN113110314A (zh) 一种集中控制设备的物联网管理系统
US20050010376A1 (en) Adminstering devices in dependence upon user metric vectors including generic metric spaces
KR20110136058A (ko) 홈 네트워크에서 객체의 변경을 판단하는 방법 및 장치

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20100824

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee