KR20170137811A - 내장된 웹 서버 - Google Patents

내장된 웹 서버 Download PDF

Info

Publication number
KR20170137811A
KR20170137811A KR1020177032254A KR20177032254A KR20170137811A KR 20170137811 A KR20170137811 A KR 20170137811A KR 1020177032254 A KR1020177032254 A KR 1020177032254A KR 20177032254 A KR20177032254 A KR 20177032254A KR 20170137811 A KR20170137811 A KR 20170137811A
Authority
KR
South Korea
Prior art keywords
data
client
access
processing cycle
cycle
Prior art date
Application number
KR1020177032254A
Other languages
English (en)
Other versions
KR102450900B1 (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 KR20170137811A publication Critical patent/KR20170137811A/ko
Application granted granted Critical
Publication of KR102450900B1 publication Critical patent/KR102450900B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • G06F16/9554Retrieval from the web using information identifiers, e.g. uniform resource locators [URL] by using bar codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • G06F17/30879
    • G06F17/3089
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • H04L67/2804
    • H04L67/2842
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/561Adding application-functional data or data for application control, e.g. adding metadata
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/14Multichannel or multilink protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Security & Cryptography (AREA)
  • Library & Information Science (AREA)
  • Human Computer Interaction (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

하나 이상의 웹 사용 가능 디바이스에 의해 데이터 획득 디바이스에 의해 획득된 데이터에 대한 액세스를 가능하게 하는 데이터 획득 디바이스 내에 내장된 웹 서버를 위한 방법, 시스템 및 장치에 관한 것이다. 내장된 웹 서버는 표준 데이터 통신 프로토콜을 사용하여, 그리고 웹 서버가 내장된 데이터 획득 디바이스의 동작에 지장을 주지 않고, 둘 이상의 통신 경로를 통해 클라이언트에 의해 향상된 액세스를 위한 데이터 데이터를 패키징한다.

Description

내장된 웹 서버
다른 출원에 대한 상호 참조 및 우선권 주장
본 출원은 "Web Enabled Interface to an Embedded Web Server"라는 발명의 명칭으로 2015년 4월 9일에 미국 특허청에 출원되었으며, 본원에 참조로서 포함된 미국 가출원 제62/145,401호의 더 빠른 출원일의 우선권 및 혜택을 주장한다.
기술분야
본 발명은 일반적으로 컴퓨터 인터페이스에 관한 것으로, 특히, 배타적인 것은 아니지만, 내장된 서버의 웹 서비스에 대한 웹 사용 가능 인터페이스에 관한 것이다.
제조, 소매, 및 선적과 같은 다양한 업계의 다양한 프로세스를 트랙킹, 추적, 및 제어하는 데이터 획득 시스템과 같은 현대의 프로세스 제어 시스템은 내장된 서버를 구비한 디바이스를 사용한다. 디바이스는 통상적으로 1D 또는 2D 바코드 판독기(이미저(imager)), 바코드 검증 및 검사 시스템, 머신 비전 시스템을 위한 이미지 획득 디바이스, 레이저 스캐너, RFID 판독기 등을 포함한다.
데이터 연결성에서의 개선은 개인용 컴퓨터(personal computer, PC), 태블릿, 스마트 폰, 및 산업용 제어 자동화에 통상적으로 사용되는 다른 휴먼 머신 인터페이스(human machine interface, HMI)와 같은 웹 사용 가능 디바이스로부터 내장된 서버에 의해 제공되는 웹 서비스에 액세스할 수 있게 한다.
클라우드 컴퓨팅 기술뿐만 아니라 웹 기술의 표준화에서의 진전은 내장된 서버에 의해 제공되는 웹 서비스에 대한 액세스를 단순화하고 플랫폼 간 융통성을 증가시킬 수 있는 기회를 제공한다.
그러나, 메모리, 저장, 대역폭, 및 CPU 사이클에 대한 제약을 포함하여, 전용 서버 디바이스와 달리 내장된 서버를 사용하는 디바이스에는 특정 제약이 있다. 또한, 웹 액세스의 이용 가능성으로 인해, 내장된 서버에 의해 제공되는 웹 서비스에 대한 요구가 증가하고 있다.
내장된 웹 서버를 사용하는 프로세스 제어 시스템에 의해 통상적으로 생성되는 복잡한 데이터 유형을 프로세싱하기 위해 내장된 웹 서버 및 웹 애플리케이션의 설계 시에 이러한 제약 및 증가된 요구가 고려되어야 한다.
내장된 웹 서버에 대한 웹 기반 인터페이스를 위한 시스템 및 방법의 실시예가 설명된다. 다수의 특정 세부 사항이 본 발명의 실시예의 완전한 이해를 제공하기 위해 설명되었지만, 관련 기술 분야의 당업자는 본 발명이 특정 세부 사항 중 하나 이상의 특정 세부 사항이 없이 또는 다른 방법, 컴포넌트, 재료 등으로 실시될 수 있음을 인식할 것이다. 일부 예에서, 잘 알려진 구조, 재료, 또는 동작은 상세히 도시되거나 설명되지 않지만, 그럼에도 불구하고 본 발명의 범위 내에 포함된다.
본 명세서 전반에 걸쳐 "일 실시 예" 또는 "실시예"라는 언급은 실시예와 관련하여 설명된 특정 특징, 구조, 또는 특성이 적어도 하나의 설명된 실시예에 포함됨을 의미한다. 따라서, 본 명세서에서 "일 실시예에서" 또는 "실시예에서"라는 구절의 출현은 반드시 모두 동일한 실시예를 지칭하는 것은 아니다. 또한, 특정 특징, 구조, 또는 특성은 하나 이상의 실시예에서 임의의 적절한 방식으로 결합될 수 있다.
다음의 단락에서, 데이터 획득 디바이스의 내장된 서버에 대한 범용 인터페이스를 위한 시스템의 예시적인 실시예가 설명되고, 여기서 시스템은, 다른 컴포넌트 중에서, 내장된 서버를 갖는 데이터 획득 디바이스와 통신하는 웹 사용 가능 디바이스, 웹 사용 디바이스와 데이터 획득 디바이스 사이의 데이터 전송을 지원하는 웹 프로토콜에 따르는 통신 서비스, 및 웹 사용 가능 디바이스 상에서 동작하는 웹 애플리케이션을 포함하고, 여기서 데이터 획득 디바이스 상에 상주해 있는 데이터는 웹 사용 가능 디바이스의 위치 및 유형 중 임의의 하나와 관계없이 웹 애플리케이션을 사용하여 어디에서나 액세스 가능하다. 설명된 실시예의 다른 장점 중에서, 데이터 획득 디바이스 상에 상주해 있는 데이터는 데이터에 대한 변경이 객체에 반영되고 객체에 대한 변경이 데이터에 반영되도록 웹 애플리케이션의 대응하는 객체에 바인딩될 수 있다. 또한, 시스템의 실시예는 요구에 따라 웹 애플리케이션과 데이터를 교환하고 실시간으로 웹 애플리케이션에 데이터를 푸시하는 것을 포함하여, 전송된 데이터에 대한 온 디맨드 및 실시간 액세스를 용이하게 하는 프로토콜을 사용한다.
일 실시예에서, 데이터 획득 디바이스의 내장된 서버에 대한 범용 인터페이스를 위한 시스템, 방법 및 장치가 설명되고, 여기서 내장된 서버를 갖는 데이터 획득 디바이스와 통신하는 웹 사용 가능 디바이스는 웹 사용 디바이스와 데이터 획득 디바이스 사이의 데이터 전송을 지원하는 웹 프로토콜에 따르는 통신 서비스, 및 데이터 획득 디바이스 상에 상주해 있는 데이터가 웹 사용 가능 디바이스의 위치 및 유형 중 임의의 하나와 관계없이 웹 애플리케이션을 사용하여 어디에서나 액세스 가능하도록 웹 사용 가능 디바이스 상에서 동작하는 웹 애플리케이션을 제공한다.
일 실시예에서, 데이터 획득 디바이스 상에 상주해 있는 데이터는 데이터에 대한 변경이 객체에 반영되고 객체에 대한 변경이 데이터에 반영되도록 웹 애플리케이션의 대응하는 객체에 바인딩된다. 하나 이상의 웹 프로토콜은 요구에 따라 데이터 획득 디바이스와 웹 애플리케이션 사이에 데이터를 교환하는 프로토콜, 뿐만 아니라 실시간으로 웹 애플리케이션으로 데이터를 그리고 그 반대로 푸시하는 것을 가능하게 하는 프로토콜을 포함하여, 전송 데이터에 대한 온 디맨드 및 실시간 액세스를 용이하게 한다.
일 실시예에서, 데이터 획득 디바이스는 스캐너, 판독기, 및 이미지 획득 디바이스 중 임의의 하나 이상이고, 웹 사용 가능 디바이스는 고정식 컴퓨터, 모바일 컴퓨터, 및 HMI 디바이스 중 임의의 하나 이상을 포함하여, 웹 기반 디스플레이 인터페이스 및 네트워크 액세스를 갖는 임의의 디바이스이다.
일 실시예에서, 데이터 획득 디바이스에 내장된 웹 서버에 대한 웹 기반 인터페이스를 위한 방법, 시스템, 및 장치가 제공되고, 여기서 연결은 클라이언트 디바이스 상의 웹 애플리케이션 내의 하나 이상의 프록시 객체와 데이터 획득 디바이스에 내장된 웹 서버 내의 데이터 객체 사이에 설정되고, 웹 애플리케이션은 프록시 객체 중 하나 이상으로 사용자 인터페이스(user interface, UI) 컴포넌트를 구성하고, UI 컴포넌트는 데이터 획득 디바이스 내의 데이터 객체에 대해 수행되는 하나 이상의 프로세스를 나타낸다. 일 실시예에서, 웹 애플리케이션은 데이터 획득 디바이스 내의 데이터 객체에 대해 수행되는 하나 이상의 프로세스의 뷰를 구성하고 - 뷰는 UI 컴포넌트 및 프록시 객체에 반영된 데이터 획득 디바이스 내의 데이터 객체의 값으로부터 구성됨 -, 클라이언트 디바이스 상의 웹 애플리케이션의 인터페이스에 뷰를 디스플레이하고, 데이터 획득 디바이스 상의 데이터 객체의 값에서의 임의의 변경을 뷰에 반영하도록 데이터 객체를 프록시 객체와 동기화한다.
일 실시예에서, 데이터 획득 디바이스 상에서 수행되는 하나 이상의 프로세스를 나타내도록 UI 컴포넌트를 구성하는 것은 데이터 획득 디바이스 상에서 수행되는 개념적으로 관련된 프로세스를 UI 컴포넌트 중 하나 이상에 결합하는 것 및 데이터 획득 디바이스 상의 다수의 파라미터를 관리하기 위해 UI 컴포넌트 중 하나에서 하이 레벨 파라미터를 구성하는 것을 포함하고, 다수의 파라미터는 프록시 객체와 연결된 데이터 객체에 대응한다. 일 실시예에서, 하나 이상의 프록시 객체와 데이터 객체 사이에 연결을 설정하는 것은 내장된 웹 서버로부터의 요구에 따라 데이터 객체의 값 객체 정의를 요청하는 것, 데이터 교환 프로토콜을 사용하여 내장된 웹 서버로부터 값 객체 정의를 수신하는 것, 및 값 객체 정의에 기초하여 하나 이상의 프록시 객체를 하나 이상의 데이터 객체에 링크하는 것을 포함하고, 여기서 링크하는 것은 값 객체 정의 내의 기호 식별자를 판정하는(resolving) 것을 포함한다.
일 실시예에서, UI 컴포넌트는 데이터 획득 디바이스에 관한 정보를 디스플레이하기 위한 디바이스 정보, 데이터 객체의 값을 디스플레이하기 위한 데이터 위젯, 데이터 획득 디바이스에서 생성된 사이클 리포트를 포함하는 데이터 객체를 프로세싱하는 단계 리스트, 및 데이터 획득 디바이스에 의해 획득되고 사이클 리포트에서 참조되는 하나 이상의 이미지를 포함하는 데이터 객체의 디스플레이를 제어하는 ip-이미지 중 임의의 하나 이상을 포함한다. 일 실시예에서, 사이클 리포트 및 이미지는 비동기식으로 수신되고 클라이언트 디바이스 상에서 뷰에 디스플레이하기 위해 상관되고, 클라이언트 디바이스는 하나 이상의 이미지의 고유 ID의 리스트를 포함하여, 하나 이상의 이미지와 관련된 정보를 얻기 위해 사이클 리포트를 파싱하는 것, 고유 ID의 리스트를 사용하여 하나 이상의 이미지를 불러오는 것, 및 하나 이상의 이미지를 사이클 리포트 내의 정보와 결합하는 것을 포함한다.
일 실시예에서, 고유 ID의 리스트를 사용하여 불러온 하나 이상의 이미지를 포함하는 데이터 객체의 디스플레이를 제어하기 위한 ip-이미지 UI 컴포넌트는 단일 이미지를 디스플레이하는 단일 이미지 모드, 시간 축에 따른 디스플레이를 위해 다수의 이미지를 구성하는 다수 이미지 모드, 획득 시간을 나타내기 위해 이미지 폭을 스케일링하고 획득 시간에서의 지연을 나타내기 위해 다수의 이미지의 각각의 이미지를 포지셔닝하는 시간 스케일 모드 - 지연은 다수의 이미지들 사이의 갭으로서 나타내어짐 -, 및 이미지의 디스플레이 상에 시간 축에 평행한 하나 이상의 타이밍 신호를 중첩시키는 시간 제어 모드를 포함하는 임의의 하나 이상의 모드로 동작한다.
일 실시예에서, 타이밍 에러를 표시하는 다수의 이미지의 불규칙한 포지셔닝을 보여주는 디스플레이에 응답하여, ip-이미지 UI는 클라이언트 디바이스의 사용자로부터의 입력을 수신하여 ip-이미지 UI 컴포넌트 내의 하이 레벨 파라미터를 조정하도록 구성되며, 이는 결국, 데이터 획득 디바이스가 타이밍 에러를 정정하기 위해 하나 이상의 실제 파라미터를 조정하게 한다. 디스플레이에 보여진 불규칙한 포지셔닝이 실질적으로 제거될 때까지 타이밍 에러를 정정하기 위해 하이 레벨 파라미터를 반복적으로 조정하도록 추가 입력이 사용자로부터 수신될 수 있다.
일 실시예에서, 다수의 이미지의 디스플레이는 행 및 열로 배열되고, 단일 데이터 획득 사이클 및 타이밍 에러를 표시하는 불규칙한 포지셔닝을 나타내는 디스플레이의 각각의 행은 타이밍 지터를 표시하는 열에서 오정렬된 다수의 이미지이고, 여기서 ip-이미지 UI 컴포넌트는 하이 레벨 파라미터를 반복적으로 조정하기 위해 사용자로부터 추가 입력을 수신하여 열에서의 다수의 이미지가 정렬될 때까지 타이밍 지터를 정정하도록 구성된다.
일 실시예에서, 데이터 객체와 프록시 객체 사이에 연결을 설정하는 것은 요구에 따라 클라이언트와 통신하기 위해 제 1 통신 채널을 사용하여 수행되고, 데이터 객체와 프록시 객체를 동기화하는 것은 제 1 통신 채널을 이용하여 요구에 따라 클라이언트에 값 객체 정의를 전송하고, 제 1 통신 채널과 상이한 제 2 통신 채널을 사용하여 필요에 따라 클라이언트에 데이터 객체에 대한 변경에 관한 값 변경 통지를 푸시하는 것을 포함한다. 일 실시예에서, 제 2 통신 채널은 클라이언트 디바이스와 데이터 획득 디바이스 사이에 설정된 웹 소켓 연결이고, 웹 애플리케이션은 변경 통지를 프록시 객체에 적용하여 데이터 객체의 변경된 값을 반영하도록 구성된다. 일 실시예에서, 웹 애플리케이션은 클라이언트 디바이스의 사용자로부터 수신된 뷰 정의 파일에 기초하여 뷰를 구성하며, 뷰 정의 파일은 사용자의 요구 사항에 따라 뷰를 커스터마이징한다.
일 실시예에서, 프로세싱 사이클 동안 캡쳐된 데이터를 획득하기 위한 트리거에 응답하여 획득 프로세스를 수행하기 위한 프로세서를 갖는 데이터 획득 디바이스에 내장된 웹 서버에 대한 방법, 시스템, 및 장치가 설명된다. 프로세서는 웹 서비스를 수행하여 하나 이상의 클라이언트 디바이스에 대해 획득된 데이터에 대한 액세스를 제공하고, 프로세서는 프로세싱 사이클 동안 캡쳐되는 획득된 데이터와 관련된 데이터를 생성하고, 동일한 프로세싱 사이클에 관련된 데이터를 상관시키고, 클라이언트 디바이스에 의한 액세스를 위해 상관된 데이터를 누적하고, 클라이언트 디바이스로 그리고 클라이언트 디바이스로부터 데이터를 전송하기 위한 다수의 통신 채널을 제공하고, 프로세싱 사이클에 지장을 주는 것을 최소화하면서 상이한 통신 채널을 사용하여 획득된 데이터, 생성된 데이터, 상관된 데이터, 및 누적된 데이터 중 임의의 하나 이상에 대한 액세스를 위한 클라이언트 디바이스로부터의 요청에 응답하는 데이터 프로세스를 수행하는 것을 포함하여, 프로세싱 사이클에 지장을 주는 것을 최소화하면서 획득된 데이터에 대한 액세스를 향상시키도록 구성된다.
일 실시예에서, 클라이언트에 의한 액세스를 위해 상관된 데이터를 누적하는 것은 프로세싱 사이클 동안 캡쳐된 데이터를 참조하는 사이클 리포트를 포함하는 데이터 번들 및 클라이언트 디바이스 상의 디스플레이에서 참조된 데이터의 뷰를 제어하기 위한 정보를 생성하는 것 및 클라이언트에 의한 후속 액세스를 위해 데이터 번들을 저장하는 것을 포함한다. 일 실시예에서, 프로세서는 프로세싱 사이클의 끝에서 무조건적으로 클라이언트에 프로세싱 사이클 동안 캡쳐된 데이터를 참조하는 사이클 리포트를 전송하고/하거나 요구에 따라 클라이언트에 데이터 번들을 전송하도록 구성된다.
일 실시예에서, 동일한 프로세싱 사이클에 관련된 데이터를 상관시키는 것은 요구에 따라 클라이언트에 의한 임의의 하나의 액세스를 위해 또는 전송이 완료된 후에 임의의 하나 이상의 관심 있는 클라이언트에 제공(serving) 위해 저장된 데이터 번들 및 이력 데이터를 중개 저장 서버로 전송하는 것을 포함하여, 프로세싱 사이클 동안 영향을 받은 임의의 하나 이상의 파라미터 및 성능 정보의 이력 데이터를 생성하고, 클라이언트에 의한 후속 액세스를 위해 이력 데이터를 저장하는 것을 포함한다.
일 실시예에서, 프로세서는 획득 프로세스, 이벤트 수신 확인 프로세스, 데이터 프로세스, 및 이벤트 처리 프로세스를 높은 우선 순위에서 낮은 우선 순위의 순서로 수행하기 위한 디폴트 계층적 우선 순위 레벨을 유지한다. 동작 동안, 프로세서는 데이터 획득 디바이스로부터 데이터를 요청하는 임의의 하나 이상의 클라이언트로부터 임의의 하나 이상의 비동기 이벤트를 수신하고, 비동기 이벤트의 유형 및 빈도 중 임의의 하나 이상에 따라 데이터 프로세스보다 이벤트 처리 프로세스를 우선 순위로 할지를 결정하도록 구성된다. 데이터 프로세스보다 이벤트 처리 프로세스를 우선 순위로 하는 것이 획득 및 데이터 프로세스에 실질적으로 지장을 주지 않으면서 수행될 수 있다고 결정할 시에, 프로세서는 보다 높은 우선 순위로 비동기 이벤트를 일시적으로 처리하도록 구성된다. 데이터 프로세스보다 이벤트 처리 프로세스를 우선 순위로 하는 것이 획득 및 데이터 프로세스에 실질적으로 지장을 주지 않으면서 수행될 수 없다고 결정할 시에, 프로세서는 디폴트 계층적 우선 순위 레벨로 되돌아가도록 구성된다.
일 실시예에서, 적어도 하나의 비일시적 컴퓨터 판독 가능 저장 매체는 임의의 하나 이상의 앞서 언급되는 타겟 디바이스, 데이터 획득 디바이스, 프로세스 제어 디바이스, 클라이언트 디바이스, 서버, 및 웹 사용 가능 디바이스의 하나 이상의 프로세서 상에서 실행되는 경우, 프로세서가 본원에 설명된 방법 및 시스템 중 임의의 하나를 수행하게 하는 명령을 포함한다.
본 발명의 비제한적이고 비포괄적인 실시예가 다음의 도 1-12를 참조하여 설명되며, 여기서 유사한 도면 부호는 달리 언급되는지 않는 한 다양한 도면 전반에 걸쳐 유사한 부분을 지칭한다.
도 1은 내장된 웹 서버에 대한 웹 사용 가능 인터페이스를 위한 시스템 또는 프레임 워크의 실시예의 블록도이다.
도 2는 도 1에서와 같은 내장된 웹 서버에 대한 웹 기반 인터페이스를 지원하는 데이터 획득 시스템을 위한 통상적인 동작 환경의 실시예의 블록도이다.
도 3은 도 1에서와 같은 내장된 웹 서버에 대한 웹 기반 인터페이스를 지원하는 데이터 획득 시스템을 위한 선택된 서브 시스템의 실시예의 블록도이다.
도 4a-4b는 내장된 웹 서버 동작 환경 및 이러한 동작 환경에서 내장된 웹 서버에 대한 웹 기반 인터페이스를 지원하기 위한 프로세스의 실시예의 개관을 도시한다.
도 5는 도 1에서와 같은 내장된 웹 서버에 대한 웹 기반 인터페이스를 지원하는 데이터 획득 시스템을 위한 통신 서비스의 실시예의 블록도이다.
도 6은 도 1에서와 같은 내장된 웹 서버에 대한 웹 기반 인터페이스를 지원하는 데이터 획득 시스템을 위한 객체 데이터 값 동기화 서비스의 실시예의 블록도이다.
도 7은 도 1에서와 같은 내장된 웹 서버에 대한 웹 기반 인터페이스를 지원하는 데이터 획득 시스템을 위한 프로세스의 실시예를 도시하는 흐름도이다.
도 8은 도 1에서와 같은 내장된 웹 서버에 대한 웹 기반 인터페이스를 지원하는 데이터 획득 시스템을 위한 사용자 인터페이스 컴포넌트 계층 구조의 실시예의 블록도이다.
도 9는 도 1에서와 같은 내장된 웹 서버에 대한 웹 기반 인터페이스를 지원하는 데이터 획득 시스템에서 사용자 인터페이스를 구성하기 위한 다른 프로세스의 실시예의 흐름도이다.
도 10은 도 1에서와 같은 내장된 웹 서버에 대한 웹 기반 인터페이스를 지원하는 데이터 획득 시스템의 뷰 사용자 인터페이스 컴포넌트의 실시예의 도면이다.
도 11은 도 1에서와 같은 내장된 웹 서버에 대한 웹 기반 인터페이스를 지원하는 데이터 획득 시스템의 단계 리스트 사용자 인터페이스 컴포넌트의 실시예의 도면이다.
도 12a-12e는 도 1에서와 같은 내장된 웹 서버에 대한 웹 기반 인터페이스의 사용자 인터페이스 컴포넌트에 대한 단일 이미지, 다수의 이미지, 및 다수의 이미지의 시간 스케일을 보이기 위한 이미지 디스플레이 제어의 실시예의 도면이다.
도 1은 내장된 웹 서버에 대한 웹 기반 인터페이스를 위한 시스템 또는 프레임 워크(100)의 실시예의 블록도이다. 시스템(100)은 이더넷, TCP, HTTP, 또는 인터넷과 같은 인터네트워크를 포함하는 다른 그러한 통신 네트워크와 같은 통신 네트워크(112)를 통해 클라이언트 디바이스(114)와 통신하는 머신 비전 카메라 또는 다른 데이터 획득 디바이스와 같은 타겟 디바이스(102)를 포함한다.
일 실시예에서, 타겟 디바이스(102)는 클라이언트 디바이스(114)와 같은 웹 사용 가능 디바이스가 네트워크(112)를 사용하여 타겟 디바이스에 의해 생성된 데이터를 프로세싱 및/또는 디스플레이하는 웹 페이지 또는 웹 애플리케이션의 세트에 액세스할 수 있게 하도록 내장된 웹 서비스(104)를 제공한다.
타겟 디바이스(102)는 REST API(Representational State Transfer application programming interface) 및 웹 소켓 인터페이스와 같은 통신 서비스(106)를 더 제공한다. REST API는 클라이언트 디바이스 상에 웹 애플리케이션(116)을 포함하는 클라이언트 디바이스(114)가 타겟 디바이스(102) 상에 상주해 있는 기능을 호출할 수 있게 한다. 기능은 타겟 디바이스(102)에 의해 획득된 이미지를 나타내는 데이터를 포함하여 타겟 디바이스(102) 상에 상주해 있는 데이터 파일을 반환할 수 있다.
일 실시예에서, 웹 소켓 인터페이스는 더 상세히 설명될 바와 같이 디바이스(102 및 114)와 같은 웹 사용 가능 디바이스와 웹 서비스(104) 및 웹 애플리케이션(116) 사이에 TCP(Transmission Control Protocol) 소켓 유형의 연결을 제공한다. 웹 소켓 유형의 연결은 타겟 디바이스(102)가 클라이언트 디바이스(114) 상에서 동작하는 웹 애플리케이션(116)에 실시간으로 데이터를 푸시할 수 있게 한다.
일 실시예에서, 타겟 디바이스(102)는 파일 서비스(108) 및 공유 라이브러리(110)를 더 제공한다. 파일 서비스 및 공유 라이브러리는 타겟 디바이스의 구성 및 구성 파라미터에 대한 액세스, 뿐만 아니라 하나 이상의 웹 애플리케이션에 의한 코드 및 그래픽 자산의 공유 라이브러리에 대한 액세스를 지원한다.
타겟 디바이스(102)는 통상적으로 카메라, 스캐너, 또는 다른 유형의 데이터 획득 및/또는 프로세스 제어 디바이스와 같은 특수 목적 디바이스이다. 타겟 디바이스(102)는 또한 1D 또는 2D 바코드 판독기(이미저) 또는 검증 및 검사 디바이스, 머신 비전 시스템을 위한 이미지 획득 디바이스, 레이저 스캐너, RFID 판독기 등을 포함할 수 있다. 머신 비전 시스템을 위한 이미지 획득 디바이스의 맥락에서, 타겟 디바이스(102)는 스마트 카메라와 같은 머신 비전 카메라 또는 머신 비전 시스템에 연결성을 갖는 다른 카메라를 포함할 수 있다.
클라이언트 디바이스(114)는 통상적으로 브라우저 인터페이스 및 네트워크 또는 인터넷 액세스를 갖는 고정 데스크탑 컴퓨터 또는 다른 HMI 디바이스에서 스마트 폰, 랩탑, 태블릿, 및 PDA와 같이 브라우저 기반 디스플레이 인터페이스 및 네트워크 액세스를 갖는 다양한 모바일 디바이스 중 임의의 하나에 이르는 임의의 웹 사용 가능 디바이스이다.
클라이언트 디바이스(114)는 통상적으로 클라이언트 디바이스(114)가 타겟 디바이스(102)의 내장된 웹 서비스(104)에 액세스할 수 있게 하는 웹 애플리케이션(116)으로 구성된다. 특히, 웹 애플리케이션(116)은 클라이언트 디바이스(114)의 사용자가 타겟 디바이스(102)에 의해 수행되고 있는 프로세스를 보고, 모니터링하고, 제어할 수 있게 하는 커스텀 서비스(118) 및 사용자 인터페이스(UI) 컴포넌트(120)를 제공한다.
커스텀 서비스(118) 및 UI 컴포넌트(120)를 지원하기 위해, 웹 애플리케이션(116)은 웹 애플리케이션(116) 내의 데이터 객체를 타겟 디바이스(102) 상의 내장된 웹 서비스(104) 및 파일 서비스(108)에 의해 사용되는 공유 라이브러리(110) 내의 대응하는 데이터 항목 또는 제어와 바인딩하는 것을 용이하게 하도록 데이터 바인딩된 컴포넌트/서비스(122)를 더 제공한다.
클라이언트 디바이스(114)에는 바이너리 데이터 및 텍스트 데이터를 포함하는 데이터를 전송하기 위해 타겟 디바이스(102)의 대응하는 통신 서비스(106)에 의해 사용되는 통신 프로토콜을 지원하는 다양한 통신 인터페이스(124)가 더 제공된다.
도 2는 도 1에서와 같이 내장된 웹 서버에 대한 웹 기반 인터페이스를 지원하는 데이터 획득 시스템(200)의 실시예에 대한 통상적인 동작 환경을 도시한다. 머신 비전 카메라 A1-A3과 같은 타겟 디바이스 또는 스캐너와 같은 다른 유형의 데이터 획득 디바이스는 컴퓨터 A에 데이지(daisy) 체인 구성으로 커플링되고, 머신 비전 카메라 B1-B3은 랩탑 컴퓨터와 같은 컴퓨터 B에 버스 구성으로 커플링된다. 컴퓨터 A는 이더넷, TCP, HTTP, 또는 다른 그러한 연결과 같은 통신 링크로 컴퓨터 B에 커플링된다. 컴퓨터 A, 컴퓨터 B, 카메라 A1-A3 및 B1-B3 중 임의의 하나 이상 사이의 통신을 용이하게 하는 중개 네트워크 액세스 가능 서버 C로서 기능하는 서버 컴퓨터와 같은 서버 C는 이더넷, TCP, HTTP, 또는 다른 그러한 연결과 같은 통신 링크에 의해 카메라 및 컴퓨터 양자 모두에 커플링된다.
상이한 실시예에서, 컴퓨터는 데이터 획득 시스템 내의 하나 이상의 머신 비전 카메라 및 서버 컴퓨터에 대한 연결을 갖는 독립형 구성으로 동작할 수 있다. 동작 환경에서 컴포넌트들 사이의 통신 링크는 유선, 무선, 또는 그 둘의 어떤 조합일 수 있다. 특히, 컴퓨터 B와 같은 모바일 컴퓨터는 인터넷에 대한 연결을 사용하거나 통신 링크에 대한 무선 액세스 포인트를 통해 시스템의 다른 컴포넌트와 통신할 수 있다.
데이터 획득 시스템(200)의 맥락에서, 바코드 스캐너 및 카메라에 의해 생성된 데이터는 통상적으로 순환 방식으로 생성되며, 단순 디코드 문자열에서 캘리브레이션된 측정 및 카메라에 의해 캡쳐된 이미지의 세트와 같은 보다 복잡한 데이터에 이른다. 각각의 "판독 사이클" 또는 "검사 사이클"은 단일 사이클의 동작에 관한 관련 정보를 포함하는 "사이클 리포트"를 생성한다.
예를 들어, 다른 정보 중에서, 판독 사이클은 디코딩된 출력 문자열(들), 타이밍 정보, 포지션 정보(그래픽 그리기에 사용될 수 있음)를 포함할 수 있다. 카메라를 사용하는 스캐너 및 데이터 획득 시스템 양자 모두는 또한 이미지를 프로세싱하며, 이는 그 자체적으로 매우 유용한 정보를 나타낸다.
데이터 획득 시스템 내의 스캐너 또는 카메라의 통상적인 동작에서, 단일 사이클 리포트는 다수의 이미지와 관련될 수 있다. 이미지는 또한 상당히 클 수 있다. 따라서, 동시에 또는 사이클 리포트를 전송하는 데 사용되는 것과 동일한 전송 수단을 사용하여 타겟 디바이스(102)로부터 클라이언트 디바이스(114)로 이미지 정보를 전송하는 것이 가능하지 않을 수 있다. 특히, 네트워크(112)를 통한 웹 연결은 통상적으로 한 유형의 데이터(즉, 바이너리 또는 텍스트) 또는 다른 하나의 유형의 데이터에 적합하도록 맞추어졌으나 양자 모두에 대해 적합하도록 맞추어진 것은 아닌 통신 서비스(106) 및 통신 인터페이스(124)를 지원한다. 이는 단일 사이클 리포트와 관련된 두 개의 상이한 다른 데이터 스트림 - 하나는 리포트 데이터에 대한 것이고, 하나는 이미지(들)에 대한 것임- 의 전송을 초래할 수 있다.
두 개의 상이한 데이터 스트림은 통상적으로 비동기적으로 전송되기 때문에, 예를 들어 사이클 리포트의 정보를 기초하여 이미지 상에 오버레이를 디스플레이하기 위해서는 상관될 필요가 있다. 타겟 디바이스(102) 상의 내장된 웹 서버의 일 실시예에서, 오버레이를 생성하기 위한 사이클 리포트 데이터는 도 6에서 더 상세하게 설명되는 데이터 동기화 서비스를 사용하여 설명된 바와 같이 웹 소켓(106)을 통해 클라이언트 디바이스(114)로 푸시될 수 있는데 반해, 이미지 데이터 자체는 이미지의 디스플레이에 대응하는 HTML <img> 태그를 리프레시하기 위해 규칙적인 간격으로 요청될 필요가 있다.
예를 들어, 오버레이 예에서, 타겟 디바이스(102) 상의 내장된 웹 서버(104)는 사이클 리포트를 생성하는 데 사용되는 각각의 이미지에 대한 고유 ID(unique ID, UID)의 리스트를 포함하는 사이클 리포트를 생성한다. 이미지 자체는 타겟 디바이스(102) 상에서 제한된 시간 동안 또는 클라이언트 디바이스(114) 또는 타겟 및 클라이언트 디바이스에 액세스 가능한 다른 디바이스 상에서 더 긴 지속 기간 동안 버퍼링된다. 웹 애플리케이션(116)이 사이클 리포트를 수신하고 파싱한 후에, 이미지(들)를 나타내는 대응하는 이미지 데이터가 UID를 사용하여 타겟 디바이스(102)로부터 전송된 대응하는 이미지 데이터를 참조하는 이미지 소스 URL(uniform record locator)의 일부로서 불려온다. 이미지를 오버레이하는 대응하는 오버레이 데이터는 이미지 데이터와 상관된다. 이러한 방식으로, 웹 애플리케이션(116)은 내장된 웹 서비스(104)와 연계하여 동작하여, 디바이스들 사이의 이용 가능한 통신 채널의 제한에 의해 필요에 따라, 타겟 디바이스(102)로부터 클라이언트 디바이스(114)로 전송된 이미지 데이터와 오버레이를 상관시킨다.
데이터에 효율적으로 액세스하기 위해, 이미지 데이터를 획득한 카메라에 의해 생성된 정보 데이터는 표준 통신 프로토콜을 사용하여 패키징되어 클라이언트 상의 웹 애플리케이션으로 보내질 수 있다. 예를 들어, 일 실시예에서, 카메라의 판독 사이클 동안, 내장된 웹 서버는 획득된 이미지 및/또는 데이터에 관한 정보를 판독 사이클 리포트에 패키징하고 타겟 디바이스(102)의 통신 서비스(106)에 의해 제공된 표준 통신 프로토콜을 사용하여 클라이언트 디바이스(114)에 리포트를 전송한다.
일 실시예에서, 특정 타겟(102) 및 클라이언트(114) 디바이스에 대해, 타겟(102)에 의해 생성된 판독 사이클 리포트는 XML(extended markup language) 또는 다른 표준 데이터 프로토콜을 사용하여 패키징되어, 디바이스의 각각의 통신 서비스/인터페이스(106/124)에 의해 지원되는 웹 소켓 인터페이스를 통해 클라이언트(114)로 전송된다. 클라이언트(114)에 의해 수신되면, 웹 애플리케이션(116)은 XML 판독 사이클 리포트의 태그 및 속성을 다시 타겟 디바이스(102) 상의 대응하는 데이터에 참조함으로써 판독 사이클 리포트에 포함된 데이터를 프로세싱한다.
일 실시예에서, 데이터 참조는 타겟 디바이스(102) 상의 내장된 웹 서비스(104)를 지원하는 대응하는 파일 서비스(108) 및 통신 서비스(106)와 통신하는 웹 애플리케이션(116)의 클라이언트 데이터 바인딩된 컴포넌트 서비스(122)를 사용하여 클라이언트 디바이스(114)에서 수행된다. 일 실시예에서, 데이터 참조 기능은 도 5를 참조하여 더 상세히 설명된 바와 같이 링크 서비스로서 구현될 수 있다.
도 3은 도 1에서와 같은 내장된 웹 서버에 대한 웹 기반 인터페이스를 지원하는 데이터 획득 시스템을 위한 선택된 서브 시스템의 실시예를 도시한다. 예를 들어, 타겟 디바이스(102)는 복잡하고 클라이언트 디바이스(114) 상의 웹 애플리케이션(116) 사용자 인터페이스의 사용자의 유리한 지점으로부터 비순차적으로 그리고 비직관적으로 동작하는 다수의 실제 서브 시스템을 포함할 수 있다. 타겟 디바이스(102)에 의해 생성된 데이터 및 정보에 대한 보다 효율적인 액세스를 제공하기 위해, 일 실시예에서, 웹 애플리케이션(116)은 비직관적 및 비순차적 제어의 흐름을 선형 논리적 제어 흐름으로 변환하도록 구성된다. 도시된 예에서, 선형 논리적 제어 흐름은 사이클 단계, 카메라 단계, 디코드 단계, 매치 단계, 및 출력 단계를 포함하는 논리적 단계 리스트 또는 단계 시퀀스(304)로 나타내어진 가상 서브 시스템에서 구체화된다.
일 실시예에서, 단계 리스트(304) 내의 임의의 하나 이상의 단계는 타겟 디바이스(102)의 실제 서브 시스템에서 사용되는 다수의 프로세스 파라미터로부터 가상의 하이 레벨 파라미터를 생성하도록 구성될 수 있다. 단지 예로서, 도 3에서, 가상 서브 시스템(304)은 사용자 인터페이스에 노출된 단일 하이 레벨 사이클 파라미터가 타겟 디바이스(102)의 동작을 제어하는 3개의 프로세스 파라미터, 구체적으로 한정자 파라미터(306), X모드 파라미터(308), 및 매치 제어(310) 파라미터에 대응하는 판독 사이클을 나타낸다. 다른 실시예에서, 클라이언트 디바이스(114) 상의 웹 애플리케이션(116)의 가상 서브 시스템은 타겟 디바이스(102)의 동작을 제어하는 상이한 프로세스 파라미터에 대응하는 다른 하이 레벨 파라미터를 포함할 수 있다.
도 4a-4b는 내장된 웹 서버 동작 환경 및 그러한 동작 환경에서 내장된 웹 서버에 대한 웹 기반 인터페이스를 지원하기 위한 프로세스의 실시예의 개관을 도시한다. 앞서 언급한 바와 같이, 내장된 웹 서버는 메모리, 저장, 대역폭, 및 CPU 사이클에 대한 특정 제약 하에서 동작한다. 또한, 웹 액세스의 이용 가능성으로 인해, 내장된 서버에 의해 제공되는 웹 서비스에 대한 요구가 증가하고 있다. 도 4a-4b의 동작 시나리오(400)는 데이터 획득 타겟 디바이스(102) 내의 내장된 웹 서버에 주문되는 통상적인 요구를 도시한다.
일 실시예에 따르면, 도 4a는 클라이언트 디바이스(114)의 웹 애플리케이션(116) 사용자 인터페이스에 대한 상관된 이력 데이터를 생성하기 위한 타겟 디바이스(102) 상의 프로세스(418)를 더 도시한다. 본 출원에서 더 상세히 설명될 바와 같이, 상관된 이력 데이터는 제어된 동작 조건 하에서 웹 애플리케이션(116) 및 타겟 디바이스(102)를 테스트하거나, 셋업 중에 사용하거나, 타이밍 및 데이터 획득 사이클 동안 타겟 디바이스의 동작을 제어하는 다른 파라미터를 최적화하는 데 특히 유용할 수 있다.
일 실시예에 따르면, 도 4b는 셋업 및 테스트와 같은 태스크 동안 내장된 웹 서버(104) 및 웹 애플리케이션(116)의 응답성을 향상시키기 위해 스레드 우선 순위를 조정하기 위한 타겟 디바이스(102) 상의 프로세스(422)의 실시예를 더 도시한다.
도 4a를 참조하면, 내장된 웹 서버 프로세싱(416) 동안, 웹 서버 요청 E1, 파라미터 변경 E2, 및 3개의 상이한 데이터 요청 E3, E4, 및 E5을 나타내는 5개의 상이한 비동기 이벤트(402)가 데이터 획득 타임라인(412)의 과정에 걸쳐 다양한 지점에서 발생한다. 이벤트는 통상적으로 타겟 디바이스(102)에 의해 획득된 및/또는 생성된 데이터에 대한 액세스를 요청하는 클라이언트(114)의 웹 애플리케이션(116) 사용자 인터페이스(UI)로부터 비롯되는 외부 요청을 나타낸다.
또한, 트리거 #1(404a) 및 트리거 #2(404b)의 두 개의 상이한 트리거는 타겟 디바이스를 트리거하여 각각의 데이터 획득 사이클(406a-c 및 406d-f)의 프로세싱을 개시하는 타겟 디바이스(102) 자체 상의 이벤트를 각각 나타낸다. 각각의 데이터 획득 사이클은 가변 지속 기간의 선행하는 체류 기간(406a/406d), 뒤따르는 고정된 지속 기간의 획득 기간(406b/406e), 뒤따르는 가변 지속 기간의 프로세싱 기간(406c/406f)의 종료에 의해 특징지어진다. 각각의 데이터 획득 사이클은 데이터 번들(408a/410a)의 생성으로 종료되고, 그 후에 타겟 디바이스(102)는 다음 트리거가 발생할 때까지 다른 체류 기간에 진입한다.
일 실시예에서, 타겟 디바이스(102)의 내장된 웹 서버(104)는 데이터 획득 사이클(406a-c)의 종료에서 생성된 데이터 번들(408a) 및 데이터 획득 사이클의 시간(412) 동안 영향을 받은 임의의 대응하는 성능 정보(408b) 및 파라미터(408c)를 포함하는 상관된 이력 데이터(418)를 생성한다. 이러한 방식으로, 타겟 디바이스(102)의 내장된 웹 서버(104)는 데이터 번들(408a)을 수신하고 있는 웹 애플리케이션(116)에 데이터 일관성(408)을 제공한다. 데이터 일관성(408)은 타겟 디바이스(102)의 동작을 셋업, 테스트, 및 최적화하는 데 유용하다.
도시된 예에서, 상관된 이력 데이터(418)를 생성하는 프로세스는 데이터 획득 사이클(406d-f)의 종료에서 생성되는 다음 데이터 번들(410a) 및 데이터 획득 사이클의 시간(412) 동안 영향을 받은 임의의 대응하는 성능 정보(410b)와 파라미터(410c)에 대해 반복된다. 일관된 데이터(408/410)는 제한된 시간 동안 타겟 디바이스(102) 상에 누적되고 저장되고, 클라이언트 디바이스(114) 웹 애플리케이션(116)에 장기 저장 및 이용 가능성을 위해 클라이언트 디바이스(114)를 포함하여 타겟 디바이스(102)와 통신하는 다른 디바이스로 전송될 수 있다.
도 4b는 도 4a에서와 동일한 동작 시나리오를 도시하고, 셋업 및 테스트와 같은 태스크 동안 또는 정상 동작 동안 웹 애플리케이션(116)에 대한 내장된 웹 서버(104)의 응답성을 향상시키기 위해 스레드 우선 순위를 조정하기 위한 타겟 디바이스(102) 상의 프로세스(422)의 실시예를 더 도시한다.
일 실시예에서, 타겟 디바이스(102)는 획득 프로세스, 즉 이미지 획득 또는 다른 데이터 획득, 외부의 비동기 이벤트(402) 및 트리거 이벤트(404a/404b)를 포함하는 확인응답 이벤트, 타겟 디바이스(102)에 의해 획득되거나 수신된 이미지 및/또는 다른 데이터를 프로세싱하기 위한 데이터 프로세스, 및 앞서 언급한 이벤트를 처리하기 위한 프로세스에 대해 높은 우선 순위에서 낮은 우선 순위의 순서로 우선 순위의 계층적 레벨로 구성된다.
통상적인 실시예에서, 우선 순위의 디폴트 계층적 레벨은 반드시 데이터 프로세싱 및 이벤트 처리 프로세스보다 우위인 획득 및 이벤트 확인응답 프로세스를 만족시킴으로써 획득 타겟 디바이스(102)를 선호한다. 이는 타겟 디바이스(102)가 획득의 일시적 특성으로 인해 데이터 획득을 지연시킬 수 없기 때문에 필요한데, 즉, 타겟 디바이스(102)는 이미지를 획득하거나 데이터를 얻을 한 번의 기회만 갖는다. 이벤트가 수신된 때에 수행되어야 하는 이벤트 확인응답도 마찬가지이다.
일 실시예에서는, 그러나, 우선 순위의 조정된 계층적 레벨은 특정 조건 하에서 데이터 프로세싱 및 이벤트 처리 프로세스의 우선 순위 레벨을 역전시킴으로써 클라이언트 디바이스(114)를 선호할 수 있다.
예를 들어, 도 4b에 도시된 바와 같이, 트리거 #1(404a)에 응답하여 획득 프로세스(406b)를 완료한 후에, 그리고 2개의 비동기 이벤트(402)인 웹 서버 요청 이벤트 E1 및 파라미터 변경 이벤트 E2를 확인응답한 후에, 타겟 디바이스(102)는 체류 기간(406d) 동안 이벤트 E1의 보통의 지연된 프로세싱을 시작한다. 그 후, 일 실시예에서, 타겟 디바이스는 클라이언트(114) 또는 다른 사용자로부터 제공되는 정보로부터 명시적으로 또는 한참 전에 확인응답된 비동기 이벤트(402)의 유형으로부터 암묵적으로, 사용자 경험이 데이터 프로세싱 프로세스에 비해 일시적으로 선호되어야 한다고 결정한다.
예를 들어, 명시적 결정은 클라이언트가 데이터 획득에 앞서 셋업 시퀀스를 수행하는 데이터를 수신한 결과일 수 있다. 대안으로, 암묵적 결정은 클라이언트가 데이터 획득에 앞서 셋업 또는 테스트 시퀀스를 수행하고 있음을 암시하는 이벤트의 시퀀스를 수신한 결과일 수 있다. 어느 쪽이든, 결정을 할 시에, 타겟 디바이스는 우선 순위 역전 프로세스(422)를 수행하여 데이터 프로세싱의 우선 순위 레벨보다 위로 처리 이벤트 프로세싱의 우선 순위 레벨을 일시적으로 상승시킨다.
우선 순위 역전 프로세스(422)를 수행한 결과, 일 실시예에서, 제 2 트리거 #2(404b)가 수신되더라도 타겟 디바이스(102)는 이제 이벤트 E1 및 E2를 계속 프로세싱함으로써 클라이언트 디바이스(114) 및 사용자 경험을 일시적으로 선호한다. 타겟 디바이스(102)는 제 2 획득 프로세스를 수행하는 동안에 이벤트 E1 및 E2의 프로세싱을 동시에 완료한다. 제 3 이벤트 E3, 제 4 이벤트 E4, 및 제 5 이벤트 E5를 확인응답한 후, 타겟 디바이스(102)는 이벤트 각각을 즉시 프로세싱하고 그렇지 않으면 우선 순위를 가졌을 데이터 프로세싱 프로세스를 선점한다. 따라서, (데이터 번들 #2를 생성한 후에) 다음 체류 기간까지 데이터 요청 이벤트 E3, E4, 및 E5를 프로세싱하기 위해 대기하는 대신에, 타겟 디바이스(102)는 요청자(즉, 하나 이상의 클라이언트(114) 및 웹 애플리케이션(116))에 즉시 이벤트 E3, E4, 및 E5에 대한 요청된 데이터를 응답할 수 있다.
일 실시예에서, 하나 이상의 클라이언트 디바이스(114)를 일시적으로 선호함으로써, 타겟 디바이스(102)의 내장된 웹 서버(104)는 지연될 수 없기 때문에 반드시 항상 가장 높은 우선 순위 레벨로 유지되어야 하는 획득 및 이벤트 확인응답 프로세스에 부정적으로 영향을 주지 않으면서 하나 이상의 클라이언트 디바이스(114)에 더 응답성이 좋을 수 있다.
도 5는 도 1에서와 같은 내장된 웹 서버에 대한 웹 기반 인터페이스를 지원하는 데이터 획득 시스템을 위한 선택된 통신 서비스의 실시예의 개관(500)을 도시한다. 통신 서비스는 네트워크(112)를 통해 타겟 디바이스(102)와 클라이언트 디바이스(114) 사이에서 상호 동작하는 링크 서비스(502)를 포함한다. 일 실시예에서, 링크 서비스(502)는 타겟(102) 디바이스 및 클라이언트(114) 디바이스 양자 모두와 통신하는 공유 서버 상의 중개 서비스로서 구현될 수 있다.
링크 서비스(502)는 타겟 디바이스(102) 상에 배치된 내장된 서버 링크 서비스(104) 및 클라이언트 디바이스(114) 상에 배치된 대응하는 웹 애플리케이션 링크 서비스(122)를 지원하며, 여기서 기호 식별자인 링크 ID(504)는 데이터 소스(108/110)에 상관없이 일정한 방식으로 타겟 디바이스(102) 상의 링크된 객체의 데이터 값(506b)과 링크된 객체(506a) 사이에 객체 데이터 값 동기화(508a/508b)를 수행하기 위해 링크된 객체(506a/506b)를 참조하는 데 사용될 수 있다. 일 실시예에서, 객체 데이터 값 동기화(508a/508b)는 타겟 디바이스(102)로부터 비롯되는 임의의 객체 데이터 값 변경(508a)을 클라이언트 디바이스(114)에 자동으로 전송/푸시함으로써 수행되고, 그 반대도 마찬가지이다. 객체 데이터 값 동기화의 예는 도 6을 참조하여 더 상세하게 설명된다. 클라이언트 디바이스(114) 상의 링크된 객체(506)는 타겟 디바이스(102) 상에 상주해 있는 바인딩 가능한 데이터 항목(510) 또는 데이터 바인딩된 제어(512)에 대응한다.
다른 장점 중에서, 데이터 획득 시스템의 맥락에서, 링크 서비스(502)는 클라이언트 디바이스(114) 상의 웹 애플리케이션(116)과 연계하여 동작하여 실시간으로 데이터 획득 시스템의 타겟 디바이스(102) 카메라에 의해 수행되는 활성화되어 있는 검사의 원격 모니터링을 용이하게 한다.
예를 들어, 전술한 사이클 리포트는 클라이언트 디바이스(114)에서 수신되면 링크된 객체(506)로 변환된다. 사이클 리포트 자체는 사이클 리포트 내의 참조된 데이터 항목 중 임의의 것과 마찬가지로 링크된 객체(506)로 나타내어진다.
일 실시예에서, 링크된 객체(506)가 대응하는 바인딩 가능한 데이터 항목(510) 및 데이터 바인딩된 제어(512)는 이로 제한되지는 않으나, 전술한 판독 사이클 리포트, K-커맨드(스캐너 구성 커맨드), 카운터, 메트릭, 진단 루틴 데이터, 이미지, 및 이미지 디스플레이 제어, 단계 리스트 디스플레이 제어, 데이터, 및 디바이스 정보 디스플레이 제어에 대한 다양한 유형의 위젯을 포함한다. 링크된 객체(506)가 대응하는 예시적인 바인딩 가능한 데이터 항목(510) 및 데이터 바인딩된 제어(512)의 추가적인 세부사항은 표 1에 나열되어 있다.
표 1 - 예시적인 바인딩 가능한 데이터 항목 및 데이터 바인딩된 제어
유형 설명 그래픽 디스플레이
데이터 위젯 타겟 디바이스 내에 임의의 링크된 데이터 항목의 현재 값을 디스플레이한다. 디스플레이된 값은 값이 변경되는 경우 자동으로 업데이트된다. 데이터는 단일 값 또는 이력 값의 차트로 디스플레이될 수 있다.
Figure pct00001
디바이스 정보 타겟 디바이스에 관한 정보를 보여준다. 이름, 네트워크 구성 등과 같은 기본 정보를 포함한다. 또한, 온라인/오프라인/에러와 같은 상태를 포함할 수 있다.
Figure pct00002
단계 리스트 판독 사이클의 표현을 "단계" 리스트로 디스플레이한다. 각각의 단계는 해당 기능과 관련된 셋팅의 요약을 보여주고, 사용자가 그러한 셋팅을 변경할 수 있게 하는 적절한 제어를 제공한다.

단계 리스트는 또한 각각의 기능에 대한 라이브 성능 데이터를 디스플레이할 수 있다. 이는 기호 디코드 정보 및 메트릭, 성공/실패 표시자 등을 포함할 수 있다.
Figure pct00003
ip-이미지 그와 연관된 이미지 프로세싱 데이터를 가지고 있을 수 있는 하나 이상의 이미지의 디스플레이. 데이터는 이미지 내에서 식별된 객체의 포지션 및 경계, 성능 데이터, 다른 그래픽 등을 포함할 수 있다.
Figure pct00004
일 실시예에서, 바인딩 가능한 데이터 항목(510) 및 데이터 바인딩된 제어(512)는 항목 또는 제어의 유형을 명시함으로써뿐만 아니라, 항목 또는 제어의 디스플레이를 정의하는 타이틀 및 디스플레이 포맷과 같은 속성을 제공함으로써 정의된다. 또한, 도 5를 참조하여 전술한 링크 서비스(502)와 같은 링크 서비스가 특정된다.
표 2는 링크 서비스(502)를 사용하여 참조되는 바인딩 가능한 데이터 항목(510)을 디스플레이하는 위젯과 같은 데이터 바인딩된 제어(512)에 대한 정의의 예시적인 실시예를 도시한다. 도시된 예에서, 링크 서비스(502)는 웹 애플리케이션(116)이 기호 식별자가 뒤따르는 식별자 "mslink"와 만나는 경우에 트리거된다. 기호 식별자는 데이터 소스(108/110)에 관계없이 일정한 방식으로 액세스될 수 있도록 타겟 디바이스(102) 상의 대응하는 바인딩 가능한 데이터 항목(510) 또는 제어(512)와 이전에 연관되어 있는 식별자이다. 예시적인 정의 각각은 대응하는 바인딩 가능한 데이터 항목(510) 및/또는 데이터 바인딩된 제어(512)에 대한 데이터 바인딩된 컴포넌트(122)를 초래한다.
표 2 - 데이터 바인딩된 제어의 데이터 위젯 유형 예시적인 정의
정의 디스플레이
대수 범위 슬라이더를 사용하여 사용자가 노출 셋팅을 조작할 수 있게 하는 위젯을 디스플레이한다. 셋팅에 대해 이루어진 임의의 변경의 스파크 라인 이력을 보여준다. {
"type": "data",
"display" : "sparkline",
"title": "Shutter",
"mslink": "K255.02",
"index" : 0,
"editor" : "log-range"
}
Figure pct00005
{
"type": "data",
"title" : "Total X-Mode Time",
"display": "chart",
"mslink": "@xmTiming.total",
"chartOptions" : {
"xaxis" : {"show" : false}
}
}
Figure pct00006
{
"type": "data",
"title" : "First Symbol Data",
"errorString": "NOREAD",
"mslink":
"@ipReports[0].xmReport.decode[0].data"
}
Figure pct00007
{
"type": "data",
"display" : "sparkline",
"title": "Testing",
"interval" : 100,
"default" : "----",
"toFixed" : 2,
"mslink": "$mockDataService.sin",
"css" : {
"display" : "block"
},
"condition" : [
{
"expression" : "value > 0",
"class" : "over"
},
{
"expression" : "value < 0",
"class" : "under"
}
]
}
Figure pct00008
도 6은 도 1에서와 같은 내장된 웹 서버에 대한 웹 기반 인터페이스를 지원하는 데이터 획득 시스템에 대한 타겟 디바이스(102) 상의 파라미터(602)를 클라이언트 디바이스(114) 상의 대응하는 프록시 파라미터(614)와 동기화하기 위한 객체 데이터 값 동기화 서비스(600)의 실시예의 블록도이다. 설명은 단지 파라미터의 예이다; 서비스(600)에 대한 동기화 프로세스는 물론 타겟 디바이스(102) 상의 값 객체 정의를 갖는 임의의 데이터 객체를 클라이언트 디바이스(114) 상의 대응하는 프록시 객체와 동기화하는 데 사용될 수 있다.
일 실시예에서, 적어도 2개의 통신 채널(608 및 612)이 타겟 디바이스(102)와 클라이언트 디바이스(114) 사이에 설정된다. 또한, 타겟 디바이스(102) 및 클라이언트 디바이스(114) 양자 모두는 JSON 또는 XML과 같은 표준 비독점 데이터 프로토콜에 따라 데이터를 교환하도록 구성된다. 도시된 실시예에서, 클라이언트 디바이스(114) 상의 웹 애플리케이션은 REST 또는 MIXL 요청을 사용하여 제 1 통신 채널(608)을 사용해 파라미터의 세트(X, Y, W 및 H)에 대한 값 객체 정의(604)를 요청한다. 응답으로, 타겟 디바이스(102)는 JSON 또는 XML과 같은 표준 데이터 교환 프로토콜을 사용하여 값 객체 정의(604)를 클라이언트 디바이스(114)에 제 2 통신 채널(610)을 통해 전송한다.
일 실시예에서, 값 객체 정의(604)를 수신 시에, 클라이언트 디바이스(114) 상의 웹 애플리케이션(116)은 도 5에 설명된 바와 같이 그리고 도 7을 참조하여 더 설명될 바와 같이 프록시 파라미터 객체 데이터 값(614)을 디스플레이하기 위한 뷰포트 또는 다른 UI 컴포넌트를 생성할 수 있다. 디스플레이 시에, 객체 데이터 값(614)은 타겟 디바이스(102) 상의 파라미터 필드(602)의 실제 값을 반영한다.
일 실시예에서, 타겟 디바이스(102)는 파라미터 필드(602)의 값에서의 임의의 값 객체 변경(606)에 관한 변경 통지를 생성한다. 별도의 통신 채널(612)을 사용하여, 타겟 디바이스(102)는 그러면 파라미터 필드(602)에 대한 값 객체 정의(604)를 요청한 임의의 클라이언트 디바이스(114)에 변경 통지(606)를 효율적으로 푸시하여 타겟 디바이스(102) 상의 파라미터의 최신 값이 실시간 또는 거의 실시간으로 클라이언트 디바이스(114) 웹 애플리케이션(116) UI에 반영되는 것을 확실히 할 수 있다.
도 7은 도 1에서 설명된 바와 같은 내장된 웹 서비스에 대한 웹 기반 인터페이스에 대한 링크 서비스 프로세스 흐름(700)의 실시예를 도시한다. 다른 기능 중에서, 링크 서비스 프로세스(700)는 데이터 소스(108/110)에 관계없이 일정한 방식으로 액세스될 수 있도록 타겟 디바이스(102) 상의 데이터와 이전에 연관된 기호 식별자를 판정한다. 프로세스(700)는 702에서 기호 식별자를 수신하는 것으로 시작한다. 일 실시예에서, 프로세스(700)는 또한 702에서 객체 식별자를 수신하는데, 여기서 객체 식별자는 기호 식별자를 판정하는 데 사용된다.
표 3은 일 실시예에서 기호 식별자에 의해 나타내어질 수 있는 상이한 유형의 데이터를 요약한다.
표 3 - 기호 식별자로 나타내어진 예시적인 데이터 유형
데이터 항목 기호 ID의 첫 문자
파라미터 K K255.02
최신 사이클 리포트 내의 항목 @ @ipReports[0].xmReport.decode[3].data
@memInfo.avail
@xmTiming.total
임의의 angular 서비스 내의 항목 $ $mockDataService.sin
$targetInfoService.targetIpAddr
$readCycleReportService.connection.counters.totalCycles
객체 내의 항목 ID가 제공된 객체에 대해 직접적으로 사용된다 객체 {foo : 23}이 resolve()에 전달되면, mslinkId="foo"를 사용하여 23으로 판정할 것이며, 여기서 mslinkId는 기호 식별자를 판정하는 링크 서비스를 호출한다.
기호 식별자는 문자열로 구성되고, 704에서, 프로세스(700)는 문자열의 제 1 문자에 기초하여 기호 식별자에 의해 나타내어진 데이터의 유형을 결정한다. 따라서, 일 실시예에서, 표 3에 나열된 예시적인 데이터 유형을 사용하여, 문자열의 제 1 문자에 "K"를 갖는 기호 식별자는 "K" 커맨드에 대한 파라미터를 나타낸다 "@"는 타겟 디바이스에 의해 생성된 최신 사이클 리포트 내의 항목을 나타낸다; 그리고 "$"는 재사용 가능하고 자체 포함된 코드 조각의 항목을 나타낸다.
일 실시예에서, 프로세스(700)는 지원되는 데이터 유형을 식별하기 위해 결정(706)에서 계속되고, 지원되는 데이터 유형의 기호 식별자를 판정하기 위한 기초로서 어떤 서비스 또는 객체를 사용할지를 선택하기 위해 708에서 계속된다.
일 실시예에서, 기호 식별자가 "$"를 포함하는 경우, 프로세스(700)는 통상적으로 또한 전술한 객체 식별자 또는 객체 ID를 702에서 수신한다. 나타내어진 항목이 포함되어 있는 재사용 가능하고 자체 포함된 코드 조각을 포함하는 것은 이 객체이다. 프로세스(700)는 남아 있는 문자의 문자열을 객체에 포함된 항목의 이름에 매치함으로써 나타내어진 항목의 위치를 찾아낸다.
일 실시예에서, 재사용 가능하고 자체 포함된 코드 조각을 포함하는 명명된 객체 또는 객체 ID는 AngularJS 개발 프레임워크의 서비스 컴포넌트로서 정의되고, Angular 서비스라고 지칭된다.
예를 들어, 일 실시예에서, 기호 식별자 "StargetInfoService.targetlpAddr"를 판정하기 위해, AngularJS Sinjector 서비스는 targetlnfoService로 나타내어진 서비스 이름을 찾는 데 사용된다. 이 서비스 이름은 기호 식별자의 나머지 부분과 결합되어 angularJS 서비스 내에 포함된 항목의 값을 얻기 위해 평가될 수 있는 표현을 초래한다. 프로세스를 이행하기 위한 샘플 코드는 다음과 같다:
Figure pct00009
일 실시예에서, 기호 식별자가 판정되면, 710에서, 프로세스(700)는 타겟 디바이스(102) 상의 데이터와 클라이언트 디바이스(114) 상의 웹 애플리케이션(116)에 디스플레이된 대응하는 데이터 사이에 링크를 설정한다. 712에서, 프로세스(700)는 타겟 디바이스에 의해 이행되는 검사 활동의 나머지 동안 타겟 디바이스 상의 데이터의 값과 클라이언트 디바이스 상의 대응하는 데이터의 동기화를 계속 유지한다. 예를 들어, 712에서, 프로세스(700)는 도 6에서 설명된 객체 데이터 값 동기화(600)를 수행하여 클라이언트 디바이스(114)에 값 객체 변경 통지(606)를 푸시할 수 있다.
일 실시예에서, 링크 서비스(502) 및 클라이언트 디바이스(114) 상에 배치된 데이터 바인딩 컴포넌트에 대한 대응하는 웹 애플리케이션 링크 서비스(122)는 웹 애플리케이션(116)의 커스텀 서비스(118)의 하나 이상의 메소드로 구현될 수 있다. 서비스(118/122)는 통상적으로 전술한 AngularJS 개발 프레임워크에 포함되어 있고 Angular 서비스라고 지칭되는 바와 같은 재사용 가능하고 자체 포함된 코드 조각으로 구성된다.
링크 서비스(502)의 실시예의 예시적인 방법은 표 4에 요약되어 있으며, 여기서 "mslinkId"라는 용어는 기호 식별자 링크 ID(504a/504b)를 지칭하고, "mslink"라는 용어는 링크된 객체(506a/506b, 도 5)를 지칭한다.
표 4 - 링크 서비스의 예시적인 메소드
메소드 파라미터 반환 설명
resolve() mslinkId - 문자열 mslink 식별자
index - 정수 (선택사항) 파라미터 인덱스(mslink가 파라미터로 판정되는 경우)
obj - 객체 (선택사항) 지정된 경우, 디폴트 서비스 대신에 객체의 특성에 대해 mslinkId를 판정한다.
mslink
객체
제공된 mslinkId를 해석하고 대응하는 데이터 항목과 상호 작용하는 데 사용될 수 있는 mslink 객체를 반환한다. 동일한 mslinkId에 대한 모든 참조는 동일한 mslink 인스턴스를 반환할 것이다.
registerAlias() mslinkId - 문자열 mslink 식별자
alias - 문자열 제공된 mslinkId에 대해 판정할 대체 문자열.
mslinkId에 대한 바로 가기를 등록한다
registerExtraInfo() mslinkId - 문자열 mslink 식별자
info - 객체 주어진 mslinkId와 연관될 객체.
mslinkId와 함께 사용될 수 있는 추가 정보를 등록한다. 이는 예를 들어 기호 선택을 위한 추가 정보 및 거동을 저장하는 데 사용된다.
전술한 예에도 불구하고, 웹 애플리케이션(116) 사용자 인터페이스 내의 임의의 데이터 객체 또는 제어는 타겟 디바이스(102) 상의 바인딩 가능한 데이터 항목(510) 또는 데이터 바인딩된 제어(512)에 대응하고, 링크 서비스(502)를 통해 클라이언트 디바이스(114) 상에서 액세스 가능한 링크된 객체(506a/506b)가 될 수 있다는 것이 이해되어야 한다. 예를 들어, 웹 애플리케이션(116) 내의 데이터 객체 및 제어는 특정 타겟 디바이스(102), 클라이언트 디바이스(114), 및/또는 판독 사이클 리포트와 관련되지 않은 다른 시스템 혹은 사용자 셋팅에 대응할 수 있다.
일 실시예에서, 각각의 데이터 항목 및/또는 제어에 대한 판독/기록 액세스가 링크 서비스(502, 도 5)를 사용하여 용이해지기 때문에, 시간 경과에 따른 데이터 항목 및 제어에 대한 변경의 이력은 상관된 이력 데이터(418, 도 4a)를 참조하여 그리고 객체 데이터 값 동기화(도 6)를 더 참조하여 설명된 바와 같이 추후 액세스를 위해 저장될 수 있다. 유리하게는, 저장된 변경 이력은 클라이언트 디바이스(114) 상의 웹 애플리케이션(116)의 사용자가 이미지를 나타내는 데이터 및 이미지를 에 유효했던 다른 바인딩 가능한 데이터 항목(510) 또는 데이터 바인딩된 제어(512, 도 5) 모두와 상관시키는 제어를 포함하여, 임의의 데이터 값의 저장된 변경 이력을 검토하는 것을 허용한다.
예로서, 데이터 획득 시스템(200)에서 타겟 디바이스(102)에 의해 이행되는 검사 작업의 성능 및 강건성을 최대화하는 타겟 디바이스(102) 상의 최적의 셋팅 그룹을 찾는 것은 종종 시행 착오를 필요로 할 수 있다. 그러나, 설명된 실시예에 따라 타겟 디바이스(102)와 연계하여 동작하는 클라이언트 디바이스(114)를 사용하여, 클라이언트 디바이스(114) 상의 웹 애플리케이션(116)의 사용자는 최적의 셋팅 그룹을 신속하게 찾기 위해 다양한 시간(412, 도 4b)의 지점에서 유효했던 성능 정보(408b) 및 파라미터 값(408c)의 다양한 그래프의 UI 디스플레이를 볼 수 있다.
일 실시예에서, 다양한 그래프의 디스플레이와 함께, 클라이언트(114) 웹 애플리케이션(116) UI는 대응하는 저장된 값의 이력(디코드 문자열 등), 이미지의 필름 스트립, 및 특정 시간의 지점에서 타겟 디바이스(102)로부터의 데이터를 묘사하는 다른 디스플레이 가능한 데이터 항목과 데이터 제어를 디스플레이하도록 구성될 수 있다. 사용자는 그래프를 브라우징하고, 사용자에게 검사 작업의 성능 및 강건성에 영향을 주는 타겟 디바이스(102) 상의 조건이 최적인 순간을 나타내는 것으로 보이는 그래프상의 값을 선택할 수 있다.
일 실시예에서, 사용자의 최적으로 보이는 값의 선택을 수신할 시에, 클라이언트 UI는 이미지(들), 파라미터, 셋팅, 사이클 리포트 데이터, 및 기타 성능 데이터와 같은 동일한 순간에 영향을 받은 다른 정보를 디스플레이한다. 이 클라이언트(114) 웹 애플리케이션(116) UI 디스플레이로부터, 사용자는 그러면 현재 및 미래의 검사 작업에 사용할 최적의 셋팅 그룹을 선택할 수 있다. 사용자는 검사 성능 및 강건성이 극대화되도록 하기 위해 필요에 따라 선택 프로세스를 반복할 수 있다.
일 실시예에서, 이미지(들), 파라미터, 셋팅, 사이클 리포트 데이터, 및 다른 성능 데이터와 같은, 값 및 다른 정보의 저장된 상관된 이력 데이터(418, 도 4)는 동일한 순간에 유효했던 것으로 결정되었지만, 동일한 시간에 실제로 생성되었을 수도 있고 아닐 수도 있거나, 심지어 동일한 통신 서비스/통신 인터페이스를 통해 이용 가능했을 수도 있고 아닐 수도 있다.
클라이언트(114)가 타겟 디바이스(102) 상의 바인딩 가능한 데이터 항목(510) 및 바인딩 가능한 데이터 제어(512)에 액세스하는 것을 용이하게 하는 것, 및 시간 경과에 따른 링크된 객체(506a/506b)에 대한 변경 이력을 저장함으로써 성능 분석 및 최적화를 용이하게 하는 것을 포함하여, 링크 서비스(502) 및 링크된 객체(506a/506b)를 사용하는 것과 연관된 전술한 특징은 또한 데이터 획득 시스템의 테스트 및 외부 제어를 용이하게 하는 데 유용하다.
일 테스트 시나리오에서, 자동화된 UI 테스트 애플리케이션은 사용자가 클라이언트 디바이스(114) 상의 웹 애플리케이션(116) UI 내의 셋팅 또는 타겟 디바이스(102) 상에서 생성된 사이클 리포트를 통해 수신된 값을 변경하는 경우와 같이, 검사 작업의 특정 조건을 시뮬레이션하기 위해 링크된 객체(506a/506b)의 값을 직접 셋팅할 수 있다. 또한, 자동화된 테스트가 검사 작업의 문제점을 검출하면, 문제점은 문제가 발생한 순간에 영향을 받은 모든 정보와 상관될 수 있다.
도 8은 도 1에서 설명된 바와 같은 내장된 웹 서버에 대한 웹 기반 인터페이스를 지원하는 데이터 획득 시스템을 위한 사용자 인터페이스(UI) 컴포넌트 계층 구조의 실시 예를 도시한다. 웹 기술의 표준화를 활용하기 위해, 내장된 웹 서버에 대한 웹 기반 인터페이스의 실시 예는 사용자 인터페이스의 레이아웃을 커스터마이징하는 것을 용이하게 하는 사용자 인터페이스 컴포넌트 계층 구조(800)을 사용한다.
프레임 컴포넌트(802)는 UI의 가장 바깥쪽 구조이며, 배너 영역, 상태 바, 및 웹 애플리케이션(116)의 일반적인 레이아웃과 스타일로 구성된다. 오버레이 컴포넌트(804)는 경고, 대화, 윈도우, 도움말 풍선, 및 웹 애플리케이션(116)의 동작 동안 필요에 따라 페이지(806)의 다른 컨텐츠의 디스플레이 위에 중첩되는 다른 그래픽 컴포넌트를 포함한다.
페이지 컴포넌트(806)는 웹 애플리케이션(116)의 주요 컨텐츠를 정의한다. 일 실시예에서, 각각의 페이지는 AngularJS 가능 HTML(Hyper Text Markup Language)의 독립적인 유닛인 페이지 템플릿으로 구성된다. 결과 페이지는 AngularJS 지시문 또는 뷰 지시문의 인스턴스라고 지칭된다. 웹 애플리케이션(116)의 동작 동안, 원하는 페이지는 통상적으로 프레임 컴포넌트(802) 내의 배너 디스플레이에 디스플레이된 화살표 버튼과 같은 네비게이션 제어를 통해 선택된다. 일 실시예에서, 다수의 버튼은 동일한 페이지 템플릿을 공유하나, 상이한 옵션이 선택될 수 있다. 예를 들어, 프레임(802)의 배너에 디스플레이된 시작, 셋업, 및 실행 버튼과 같은 3개의 화살표 버튼은 모두 동일한 페이지 템플릿을 공유할 수 있으나, 사용자에게 상이한 컨텐츠 및/또는 옵션을 디스플레이할 것이다.
일 실시예에서, 나머지 뷰(808), 패널(810), 및 위젯(812) UI 컴포넌트는 전술한 뷰 지시문으로부터 구성된다. 웹 애플리케이션(116)의 동작 동안, 뷰 지시문은 뷰 정의 파일(814)을 해석함으로써 생성된 뷰(808)를 디스플레이한다. 뷰 정의 파일(814)은 위젯(812)의 배열을 각각 포함하는 하나 이상의 패널(810)로서 뷰(808)의 레이아웃에 대한 설명을 포함한다.
일 실시예에서, 레이아웃의 설명은 패널(810) 및 위젯(812)의 레이아웃을 정의하는 특성을 갖는 하나 이상의 JSON 개개체로서 구현된다. 각각의 패널(810)은 뷰(808)의 직사각형 구역을 정의한다. 패널(810)의 경계는 CSS(Cascading Style Sheet) 스타일 시트 언어와 같은 스타일 시트 기능으로 셋팅될 수 있다. 뷰(808)가 생성될 수 있는 JSON 객체의 특성의 예가 표 5에 요약되어 있다.
표 5 - 뷰가 생성되는 JSON 객체의 예시적인 특성
특성 설명
"스타일 시트" 이 선택적 특성은 뷰와 함께 로드될 외부 스타일 시트를 지정하는 데 사용될 수 있다. 그 다음에, 스타일 시트는 다양한 패널 및 위젯의 레이아웃, 크기, 및 스타일을 정하는 데 사용될 수 있다. 대안적으로, 이 정보는 뷰 정의 파일 내의 "css" 특성을 사용하여 완전히 정의될 수 있다.
"패널" 이 특성은 위젯 정의 객체의 배열을 정의한다. 각각의 패널은 위젯에 의해 채워지는 뷰 영역을 나타낸다.
뷰 정의 파일(814)에 포함된 레이아웃의 설명은 통상적으로 뷰(808), 패널(810), 및 위젯(812) UI 컴포넌트의 외관을 제어하는 속성(816) 및 위젯 정의(818)를 포함한다. 위젯 UI 컴포넌트(812)는 표 2에서 설명된 단계 리스트, 이미지 디스플레이, 및 차트 위젯과 같은 자체 포함된 기능 유닛이다.
뷰를 생성할 때 적용될 수 있는 속성(816)의 예가 표 6에 요약되어 있다.
표 6 -뷰에 적용되는 예시적인 속성
속성 허용된 값
디스플레이 "디폴트" - 디폴트 포맷터를 통해 공급된 값을 디스플레이한다
"차트" - 이력 데이터를 차트로 보여준다:
Figure pct00010

"스파크 라인" - 값 + 작은 인라인 이력 차트를 보여준다:
Figure pct00011
편집기 "텍스트"
"선택":
"선택-범위" - 범위 슬라이더 대신 선택 상자를 사용한다. 값의 범위를 제한하기 위해 min 및 max 속성을 사용한다. 이 예에서 기호의 수는 1-100 범위이다. 범위 슬라이더 대신에, 편집기는 인라인 선택 상자이다:
Figure pct00012

결과로 나올 값을 클릭:
Figure pct00013

"비트-필드" - 다중 선택 콤보 상자를 사용한다. select2.js를 사용하여 구현됨. 이 유형은 또한 mslink에 대해 등록되어 있는 추가 정보에 따라 다르다. 기호 선택에 사용된다.
Figure pct00014

"범위" - 값이 클릭되면 범위 슬라이더를 보여준다
Figure pct00015

"대수-범위" - 같은 범위이지만 대수 스케일
"문자 배열(chararray)"
"16진수 배열(hexarray)"
포맷 문자열 - (지시문이 허용된) HTML. 현재 값의 바운드 버전은 "{값}"이 문자열에 나타날 때마다 삽입될 것이고, 그 다음에 컴파일되고 DOM에 삽입될 것이다.
인덱스 정수 - 파라미터 배열에 액세스할 경우에 사용될 인덱스
max 숫자 - 선택 범위 편집기 유형에 사용된 최대 값
min 숫자 - 선택 범위 편집기 유형에 사용된 최소 값
mslinkId 문자열 - mslinkId
toFixed 정수 - 값이 부동 소수점인 경우에 디스플레이할 소수 자릿수
valueExpr 문자열 - eval()을 통해 실행될 문자열. 현재 값은 문자열에 "값"이 나타날 때마다 대체될 것이다. 예를 들어, valueExpr = "값 * 2"는 정상 값의 두 배를 보여줄 것이다.
위젯 객체 - 위젯 정의 객체. 지정된 경우, 이는 모든 셋팅을 구동하는 데 사용될 것이다. 개별 특성은 여전히 지정된 임의의 속성으로 오버라이드될 것이다.
도 9는 도 1에서 설명된 바와 같은 내장된 웹 서비스(104)에 대한 웹 기반 인터페이스(116)를 위한 뷰(808, 도 8)를 구성하기 위한 프로세스(900)의 실시예를 도시한다. 프로세스(900)는 뷰 지시문이 뷰 정의 파일(814, 도 8)을 수신하는 902에서 시작한다. 904에서, 뷰 지시문은 링크 서비스(502, 도 5)를 사용하여 뷰 정의 파일에 존재할 수 있는 바인딩 가능한 데이터 항목을 나타내는 임의의 기호 식별자를 판정한다. 908에서, 뷰 지시문은 존재하는 위젯 정의 객체와 같은 임의의 데이터 바인딩된 제어가 있는지 여부를 결정하고, 그렇다면 910에서 계속하여 데이터 바인딩된 제어에 포함된 바인딩 가능한 데이터 항목을 나타내는 임의의 기호 식별자를 판정한다. 프로세스(900)는 910에서 계속하여 데이터 바인딩된 제어로부터 UI 제어를 생성하는데, 예를 들어 위젯 정의로부터 위젯 UI 제어를 생성한다.
912에서, 임의의 위젯 UI 제어가 생성되었으면, 뷰 지시문은 뷰 정의 파일에 정의된 대로 데이터 항목 및 생성된 위젯의 값에 속성을 적용한다. 속성이 적용된 후에, 914에서, 뷰 지시문은 뷰 정의 파일에 정의된 패널을 생성한다.
프로세스(900)는 916에서 뷰 정의 파일에 정의된 스타일 시트를 적용하고, 최종적으로 적용된 스타일 시트 및 속성과 함께 생성된 패널 및 위젯으로부터 뷰를 구성함으로써(918) 종결된다.
도 10은 도 1에서와 같은 내장된 웹 서버(104)에 대한 웹 기반 인터페이스(116)를 지원하는 데이터 획득 시스템의 뷰 사용자 인터페이스의 실시예의 도면이다. 단지 예로서, 도 10은 클라이언트(114) 상의 웹 애플리케이션 인터페이스(116)를 위해 구성된 뷰 사용자 인터페이스(1000)를 도시한다. 일 실시예에서, 뷰(1000)는 도 9를 참조하여 설명된 바와 같은 뷰 정의 파일로부터 구성된다. 도 10의 도시된 예에서, 뷰(1000)는 디바이스 정보 및 단계 리스트 UI 컴포넌트를 포함하는 좌측 패널(1008), 다수의 데이터 위젯 컴포넌트를 포함하는 우측 패널(1012), 및 타겟 디바이스(102)에 의해 획득되었고 관련 사이클 리포트에서 제공된 UID에 기초하여 웹 애플리케이션(116)에 의해 불려온 이미지 데이터를 포함하여, ip-이미지 UI 컴포넌트(1010)를 포함하는 중앙 패널을 포함한다. 중앙 패널에 디스플레이하기 위해,이미지 데이터에 텍스트 정보 "TestABC 123"(1014a/1014b)과 같이 이미지와 관련된 정보가 오버레이될 수 있다. 일 실시예에서, 뷰 사용자 인터페이스(1000)는 웹 애플리케이션 인터페이스(116)의 동작을 제어하기 위해 "시작"(1002), "셋업"(1004), 및 "실행" 선택을 포함한다. 예시된 실시예에서, 디스플레이된 UI 컴포넌트는 표 1에서 설명된 바와 같은 바인딩 가능한 데이터 항목 및 데이터 바인딩된 제어에 대한 값의 예로 채워진다.
바인딩 가능한 데이터 항목, 데이터 바인딩된 제어, 및 대응하는 생성된 UI 제어 컴포넌트의 예가 도 11에 더 도시되어 있다. 보다 구체적으로, 단지 예로서, 도 11은 도 10을 참조하여 설명된 뷰 사용자 인터페이스(1000)의 좌측 패널(1008)에 디스플레이될 수 있는 바와 같은 단계 리스트 UI 컴포넌트(1100)의 실시예의 도면이다. 단계 리스트 UI 컴포넌트(1100)는 사이클 리포트에 포함된 정보 및/또는 데이터 획득 사이클과 관련되고 또한 뷰(1000)의 중앙 패널(1010)에 현재 디스플레이 중인 이미지 데이터와 관련된 다른 데이터를 디스플레이한다.
도 11에서의 단계 리스트 UI 컴포넌트(1100)의 예에서, 기호 식별자 TRIGGER_MODE, NUM_SYMBOLS, END_CYCLE_MODE, 및 END_CYCLE_TIMEOUT은 링크 서비스 "mslink"를 사용하여 대응하는 데이터 항목 값으로 각각 판정되고, 결과 값은 단계 리스트 UI 컴포넌트(1100)의 그래픽 디스플레이 제어에 따라 디스플레이하도록 포맷팅된다.
바인딩 가능한 데이터 항목 및 데이터 바운딩된 제어의 다른 예는 표 1에 있는 디스플레이 제어의 "ip-이미지" 유형이라고 지칭되는 이미지 정의 객체이며, 그 중 일부 예가 도 9의 뷰의 중앙 패널에 도시되어 있다. 일반적으로, ip-이미지 제어의 실시예는 타겟 디바이스(102)에 의해 획득된 하나 이상의 이미지 및 임의의 연관된 이미지 프로세싱 데이터를 디스플레이한다. 이미지 프로세싱 데이터는 이미지 상에 오버레이될 임의의 오버레이 데이터를 포함하여, 이미지 내에서 식별된 객체의 포지션 및 경계, 성능 데이터, 및 이미지와 연관된 다른 그래픽을 포함할 수 있다.
데이터 획득 시스템의 일 실시예에서, 이미지 센서 기반 제품을 포함하는 타겟 디바이스(102)에 대해, 표 1에서의 전술한 "ip-이미지" 유형의 디스플레이 제어와 같은 이미지를 디스플레이하기 위한 대응하는 이미지 디스플레이 제어는 단일 검사 이미지 및 임의의 연관된 데이터와 그래픽의 디스플레이를 제어한다. 이 디스플레이는 검사 프로세스의 "라이브(live)" 디스플레이를 보여주기 위해 빠르게 업데이트될 수 있다. 또한 그러한 이미지의 이력을 "필름 스트립" 디스플레이 제어에 디스플레이하는 것이 일반적이며, 각각의 프레임은 이전 검사 또는 판독 결과를 나타낸다. 필름 스트립은 카메라 필름의 프레임인 것처럼 균등하게 이격된 개별 이미지를 보여준다
이러한 유형의 디스플레이 제어의 예가 도 12a에 도시되어 있으며, 여기서 "단일 모드"로 지칭되는 것으로 동작하는 이미지 디스플레이 제어는 임의의 연관된 이미지 프로세싱 정보와 함께 단일 이미지(1202)를 디스플레이한다.
그러나, 많은 애플리케이션은 단일 결과를 달성하기 위해 다수의 이미지를 필요로 한다. 일반적인 이유는 검사할 제품이 단일 센서의 시야 내에서 캡쳐될 수 있는 것보다 물리적으로 크기 때문이다. 이는 다수의 센서를 사용하거나 센서 또는 제품을 물리적으로 움직여 해결된다. 이 시나리오에서, 이미지 디스플레이 제어는 도 12b에 도시된 "다중 모드"에서 동작하여, 다수의 이미지의 디스플레이(1204)를 제어하여 이력 정보를 나타내거나 단일 이미지를 생성하는 데 모두 사용된 이미지 그룹을 디스플레이한다.
동일한 제품 위치에서 다수의 이미지가 획득되어 데이터 획득 시스템에서 이행되는 검사 또는 디코드 동작의 강건성을 향상시키는 상황이 또한 있다. 이 상황에서, 각각의 이미지는 동일한 포지션에서, 그러나 상이한 순간에 획득된다. 이러한 유형의 애플리케이션을 셋업하는 경우, 타이밍은 이미지 디스플레이 제어의 단일 모드 및 다중 모드로 해결되지 않는 문제를 야기할 수 있다.
예를 들어, 도 12c에 도시된 일 실시예에서, 이미지 센서에 의해 이동되는 회로 기판(1206)의 다수의 이미지가 좌측으로부터 우측으로 디스플레이된다. 이 예에서, 회로 기판(1206)은 기판의 제 1, 제 2, 및 제 3 이미지 사이의 갭(1208a 및 1208b)에 의해 입증되는 바와 같이 이미지에 의해 완전히 커버되지 않는다. 이러한 시나리오에서는, 획득 디바이스의 시야의 경로를 따라 이동할 때 전체 기판을 가장 효율적으로 커버할 수 있도록 정확히 올바른 속도로 이미지를 획득하는 것이 바람직하다.
도 12c의 디스플레이가 "라이브"로 업데이트되면, 전체 커버리지(또는 부분적 오버랩 커버리지)가 달성될 때까지 지연을 간단하게 조정할 것이다. 예를 들어, 이미지들 사이의 갭은 가능하게는 슬라이더 범위 UT 제어(미도시)를 사용하여 타겟 디바이스 상에서 이미지 간 지연 셋팅을 조정함으로써 정정될 수 있다. 문제는 기판이 프로세싱을 위해 충분히 커버될 수 있도록 획득 타이밍을 셋업하는 것이다. 이는 모든 타이밍 및 치수 정보가 미리 알려지지 않은 경우 특히 어려워진다. 그 결과, 올바른 이미지 획득 속도를 찾는 것은 종종 시행 착오를 수반할 수 있다.
일 실시예에서, 타이밍을 수반하는 애플리케이션의 셋업을 돕기 위해, 이미지 디스플레이 제어는 시간 스케일을 사용하여 이미지의 디스플레이를 관리함으로써 시간 스케일 모드에서 동작한다. 예를 들어, 센서가 50ms마다 1000 픽셀 너비의 이미지를 획득할 수 있다고 가정한다. 이미지의 디스플레이는 각각의 너비 단위가 50/1000 = 1/20 밀리 초를 나타내도록 시간 스케일링될 수 있다. 다수의 이미지가 획득되는 경우, 정확한 타이밍 정보가 시퀀스의 시작과 관련하여 유지된다.
시간 스케일 모드에서, 이미지 디스플레이 제어는 이 정확한 타이밍 정보를 시간 축을 따라 이미지 디스플레이 제어 내의 다수의 이미지의 시각적 간격으로 변환하며, 이는 시간 스케일링된 이미지를 디스플레이하는 것이라고 지칭되기도 한다. 이러한 방식으로, 이미지 디스플레이 제어의 시간 스케일 모드 동작은 타겟 디바이스(102) 동작의 타이밍 이슈를 시각화하고 진단하거나, 도 4a/4b에 도시된 바와 같은 데이터 획득 사이클을 개시하는 복잡한 트리거링 시나리오를 셋업하기 위한 유용한 정보를 사용자에게 제공한다.
예를 들어, 도 12c에 도시된 예에서, 시간 축은 오버레이되거나 그렇지 않으면 이미지 디스플레이 제어에 통합된 그래픽으로 나타내어질 수 있다. 도시된 바와 같이, 시간 축은 기판(1206)이 카메라의 시야를 지나서 이동할 때 기판(1206)의 이미지와 연관된 타이밍을 표시하기 위해 "시간"이라고 라벨링된 화살표 그래픽(1210)으로 나타내어진다.
이미지 디스플레이 제어에서 시간 스케일 디스플레이 동작 모드를 사용하는 다른 예는 타이밍 지터를 검출하는 것이다. 예를 들어, 일 실시예에서, 도 12d에 도시된 바와 같이, 각각의 판독 사이클 출력은 3개의 이미지를 필요로 하고, 디스플레이의 각각의 행은 단일 판독 사이클을 나타낸다. 각각의 사이클 내의 제 1 이미지는 트리거를 사용하여 동시에 획득되어, 제 1 열(1212a) 내의 모든 이미지가 디스플레이의 좌측에 동일 평면에 포지셔닝되게 한다. 각각의 판독 사이클의 후속하는 2개의 이미지는 트리거에 대해 시간적으로 이격되어 그에 따라 디스플레이 상에 포지셔닝된다.
위의 시나리오에서, 타이밍이 정확하면, 이미지는 엄격한 열로 정렬되어 디스플레이할 것이다. 그러나, 이 예에서, 타이밍은 정확하지 않고, 그것은 제 2(1212b) 및 제 3(1212c) 열에서의 이미지가 디스플레이 상에 불규칙하게 포지셔닝되는 디스플레이에서 명확하게 분명하다. 이미지 디스플레이 제어의 일 실시예에서, 이미지의 이러한 결과 "지터"는 가능하게는 슬라이더 범위 UI 제어를 사용하여 이미지 간 지연을 조정하고, 이미지 디스플레이 제어가 제 2 및 제 3 열을 적절한 정렬로 디스플레이할 때까지 조정을 반복함으로써 정정될 수 있다.
시간 제어 모드에서 이미지 제어 디스플레이를 사용하는 다른 예로서, 전술한 시간 스케일된 이미지 디스플레이는 도 12e에 도시된 디스플레이에서 도시된 바와 같은 보다 전통적인 타이밍도와 결합된다. 이미지 디스플레이 제어의 타이밍 제어 모드 동작의 일 실시예에서, 기판(1206)의 다수의 이미지의 디스플레이(1214)는 이미지 획득의 타이밍을 명확하게 보여주기 위해 이미지 디스플레이 제어가 기판(1206)의 이미지 상에 중첩하는 제 1 타이밍 신호(1218)를 포함한다.
대안적으로 또는 부가적으로, 이미지 디스플레이 제어의 실시예는 하나 이상의 다른 타이밍 신호를 디스플레이할 수 있다. 예를 들어, 다시 도 12e를 참조하면, 이미지 디스플레이 제어는 기판(1206)의 이미지 및 제 1 타이밍 신호(1218)와 병행하여 타이밍 신호(1216) 및 타이밍 신호(1220)를 디스플레이할 수 있다. 이러한 방식으로, 이미지 디스플레이 제어는 다른 타이밍 신호(1216, 1220)에 대한 이미지 획득의 타이밍을 보여줄 수 있다.
일 실시예에서, 타이밍 신호(1216, 1220)의 디스플레이는 이벤트들의 조합에 의해 트리거되고, 시간 스케일링된 이미지 자체와 연관된 타이밍 정보(1218)를 포함하여, 다양한 소스로부터 비롯되는 타이밍 정보를 디스플레이한다.
요약서에서 설명된 것을 포함하여, 본 발명의 예시된 실시예의 상기 설명은 포괄적이거나 본 발명을 개시된 정확한 형태로 제한하려는 것이 아니다. 본 발명의 특정 실시예 및 예가 예시의 목적으로 본원에서 설명되었지만, 당업자라면 인식할 바와 같이, 본 발명의 범위 내에서 다양한 동등한 수정이 가능하다. 이러한 수정은 상기 상세한 설명에 비추어 본 발명에 대해 이루어질 수 있다.
다음의 청구 범위에서 사용된 용어는 본 발명을 명세서 및 청구 범위에 개시된 특정 실시예로 제한하는 것으로 해석되어서는 안된다. 오히려, 본 발명의 범위는 확립된 청구 범위 해석의 원칙에 따라 해석될 다음의 청구 범위에 의해 전적으로 결정되어야 한다.

Claims (21)

  1. 데이터 획득 디바이스에 내장된 웹 서버를 위한 방법으로서,
    데이터 획득 디바이스에서, 프로세싱 사이클 동안 캡쳐된 데이터를 획득하기 위한 트리거에 응답하여 획득 프로세스를 수행하는 단계;
    하나 이상의 클라이언트 디바이스에 의해, 획득된 데이터에 대한 액세스를 향상시키는 단계 - 상기 향상시키는 단계는,
    상기 프로세싱 사이클 동안 캡쳐되는 획득된 데이터와 관련된 데이터를 생성하는 것,
    동일한 프로세싱 사이클에 관련된 데이터를 상관시키는 것, 및
    상기 클라이언트 디바이스에 의한 액세스를 위해 상관된 데이터를 누적하는 것
    을 포함하는 데이터 프로세스를 수행하는 단계를 포함함 -;
    상기 클라이언트 디바이스로 그리고 상기 클라이언트 디바이스로부터 데이터를 전송하기 위한 다수의 통신 채널을 제공하는 단계; 및
    상기 프로세싱 사이클에 실질적으로 지장을 주지 않고 상이한 통신 채널을 사용하여 획득된 데이터, 생성된 데이터, 상관된 데이터, 및 누적된 데이터 중 임의의 하나 이상에 대한 액세스를 위한 클라이언트 디바이스로부터의 요청에 응답하는 단계
    를 포함하는,
    데이터 획득 디바이스에 내장된 웹 서버를 위한 방법.
  2. 제1항에 있어서,
    상기 동일한 프로세싱 사이클에 관련된 데이터를 상관시키는 것은 고유 ID를 상기 동일한 프로세싱 사이클에 관련된 데이터에 할당하는 것을 포함하는, 데이터 획득 디바이스에 내장된 웹 서버를 위한 방법.
  3. 제1항에 있어서,
    클라이언트에 의한 액세스를 위해 상관된 데이터를 누적하는 것은
    상기 프로세싱 사이클 동안 캡쳐된 데이터를 참조하는 사이클 리포트를 포함하는 데이터 번들 및 상기 클라이언트 디바이스 상의 디스플레이에서 참조된 데이터의 뷰를 제어하기 위한 정보를 생성하는 것,
    클라이언트에 의한 후속 액세스를 위해 데이터 번들을 저장하는 것, 및
    요구에 따라 클라이언트에 의한 임의의 하나의 액세스를 위해 또는 전송이 완료된 후에 임의의 하나 이상의 관심 있는 클라이언트에 제공하기 위해 저장된 데이터 번들을 중개 저장 서버로 전송하는 것을 포함하는, 데이터 획득 디바이스에 내장된 웹 서버를 위한 방법.
  4. 제3항에 있어서,
    상기 프로세싱 사이클의 끝에서 무조건적으로 클라이언트에 상기 프로세싱 사이클 동안 캡쳐된 데이터를 참조하는 사이클 리포트를 전송하는 단계를 더 포함하는, 데이터 획득 디바이스에 내장된 웹 서버를 위한 방법.
  5. 제3항에 있어서,
    요구에 따라 상기 데이터 번들을 클라이언트에 전송하는 단계를 더 포함하는, 데이터 획득 디바이스에 내장된 웹 서버를 위한 방법.
  6. 제2항에 있어서,
    상기 동일한 프로세싱 사이클에 관련된 데이터를 상관시키는 것은
    상기 프로세싱 사이클 동안 영향을 받은 임의의 하나 이상의 파라미터 및 성능 정보의 이력 데이터를 생성하는 것,
    클라이언트에 의한 후속 액세스를 위해 상기 이력 데이터를 저장하는 것, 및
    요구에 따라 클라이언트에 의한 임의의 하나의 액세스를 위해 또는 전송이 완료된 후에 임의의 하나 이상의 관심 있는 클라이언트에 제공하기 위해 상기 이력 데이터를 중개 저장 서버로 전송하는 것
    을 포함하는, 데이터 획득 디바이스에 내장된 웹 서버를 위한 방법.
  7. 제1항에 있어서,
    획득 프로세스, 이벤트 수신 확인 프로세스, 데이터 프로세스, 및 이벤트 처리 프로세스를 높은 우선 순위에서 낮은 우선 순위의 순서로 수행하기 위한 디폴트 계층적 우선 순위 레벨을 유지하는 단계;
    상기 데이터 획득 디바이스로부터 데이터를 요청하는 임의의 하나 이상의 클라이언트로부터 임의의 하나 이상의 비동기 이벤트를 수신하는 단계;
    상기 비동기 이벤트의 유형 및 빈도 중 임의의 하나 이상에 따라 데이터 프로세스보다 이벤트 처리 프로세스를 우선 순위로 할지를 결정하는 단계;
    데이터 프로세스보다 이벤트 처리 프로세스를 우선 순위로 하는 것이 획득 및 데이터 프로세스에 실질적으로 지장을 주지 않으면서 수행될 수 있다고 결정한 후에, 상기 비동기 이벤트를 일시적으로 처리하는 단계; 및
    데이터 프로세스보다 이벤트 처리 프로세스를 우선 순위로 하는 것이 획득 및 데이터 프로세스에 실질적으로 지장을 주지 않으면서 수행될 수 없다고 결정한 경우에, 디폴트 계층적 우선 순위 레벨로 되돌아가는 단계
    를 더 포함하는, 데이터 획득 디바이스에 내장된 웹 서버를 위한 방법.
  8. 내장된 웹 서버를 위한 시스템으로서,
    하나 이상의 클라이언트 디바이스로 그리고 상기 클라이언트 디바이스로부터 데이터를 전송하기 위한 다수의 통신 채널을 제공하도록 구성되는 데이터 획득 디바이스를 포함하고,
    상기 데이터 획득 디바이스는,
    프로세싱 사이클 동안 캡쳐된 데이터를 획득하도록 트리거에 응답하여 획득 프로세스를 수행하도록 구성되고, 상기 하나 이상의 클라이언트 디바이스에 의해, 획득된 데이터에 대한 액세스를 향상시키도록 더 구성되는 프로세서를 가지며,
    상기 향상시키는 것은, 상기 프로세서로 하여금,
    상기 프로세싱 사이클 동안 캡쳐되는 획득된 데이터와 관련된 데이터를 생성하고,
    동일한 프로세싱 사이클에 관련된 데이터를 상관시키고,
    상기 하나 이상의 클라이언트 디바이스에 의한 액세스를 위해 상관된 데이터를 누적하는
    데이터 프로세스를 수행하도록 하고,
    상기 프로세싱 사이클에 실질적으로 지장을 주는 않고 다수의 통신 채널을 사용하여 획득된 데이터, 생성된 데이터, 상관된 데이터, 및 누적된 데이터 중 임의의 하나 이상에 대한 액세스를 위한 상기 하나 이상의 클라이언트 디바이스로부터의 요청에 응답하도록 하는,
    내장된 웹 서버를 위한 시스템.
  9. 제8항에 있어서,
    상기 동일한 프로세싱 사이클에 관련된 데이터를 상관시키는 것은 고유 ID를 상기 동일한 프로세싱 사이클에 관련된 데이터에 할당하는 것을 포함하는, 내장된 웹 서버를 위한 시스템.
  10. 제8항에 있어서,
    클라이언트에 의한 액세스를 위해 상관된 데이터를 누적하는 것은, 프로세서로 하여금 추가로,
    상기 프로세싱 사이클 동안 캡쳐된 데이터를 참조하는 사이클 리포트를 포함하는 데이터 번들 및 상기 클라이언트 디바이스 상의 디스플레이에서 참조된 데이터의 뷰를 제어하기 위한 정보를 생성하고,
    클라이언트에 의한 후속 액세스를 위해 데이터 번들을 저장하고,
    요구에 따라 클라이언트에 의한 임의의 하나의 액세스를 위해 또는 임의의 하나 이상의 관심 있는 클라이언트에 제공하기 위해 저장된 데이터 번들을 중개 저장 서버로 전송하도록 하는 것인, 내장된 웹 서버를 위한 시스템.
  11. 제10항에 있어서,
    상기 데이터 프로세스는 상기 프로세서로 하여금 추가로 상기 프로세싱 사이클의 끝에서 무조건적으로 클라이언트에 상기 프로세싱 사이클 동안 캡쳐된 데이터를 참조하는 사이클 리포트를 전송하도록 하는 것인, 내장된 웹 서버를 위한 시스템.
  12. 제12항에 있어서,
    요구에 따라 상기 데이터 번들을 클라이언트에 전송하도록 하는, 내장된 웹 서버를 위한 시스템.
  13. 제8항에 있어서,
    상기 동일한 프로세싱 사이클에 관련된 데이터를 상관시키는 것은, 프로세서로 하여금 추가로,
    상기 프로세싱 사이클 동안 영향을 받은 임의의 하나 이상의 파라미터 및 성능 정보의 이력 데이터를 생성하고,
    클라이언트에 의한 후속 액세스를 위해 상기 이력 데이터를 저장하고,
    요구에 따라 클라이언트에 의한 임의의 하나의 액세스를 위해 또는 전송이 완료된 후에 임의의 하나 이상의 관심 있는 클라이언트에 제공하기 위해 상기 이력 데이터를 중개 저장 서버로 전송하도록 하는 것인, 내장된 웹 서버를 위한 시스템.
  14. 제8항에 있어서,
    상기 프로세서는
    획득 프로세스, 이벤트 수신 확인 프로세스, 데이터 프로세스, 및 이벤트 처리 프로세스를 높은 우선 순위에서 낮은 우선 순위의 순서로 수행하기 위한 디폴트 계층적 우선 순위 레벨을 유지하고,
    상기 데이터 획득 디바이스로부터 데이터를 요청하는 임의의 하나 이상의 클라이언트로부터 임의의 하나 이상의 비동기 이벤트를 수신하고,
    상기 비동기 이벤트의 유형 및 빈도 중 임의의 하나 이상에 따라 데이터 프로세스보다 이벤트 처리 프로세스를 우선 순위로 할지를 결정하고,
    데이터 프로세스보다 이벤트 처리 프로세스를 우선 순위로 하는 것이 획득 및 데이터 프로세스에 실질적으로 지장을 주지 않으면서 수행될 수 있다고 결정한 후에, 상기 비동기 이벤트를 일시적으로 처리하고,
    데이터 프로세스보다 이벤트 처리 프로세스를 우선 순위로 하는 것이 획득 및 데이터 프로세스에 실질적으로 지장을 주지 않으면서 수행될 수 없다고 결정한 경우에, 디폴트 계층적 우선 순위 레벨로 되돌아가도록 더 구성되는, 내장된 웹 서버를 위한 시스템.
  15. 명령어가 포함된 적어도 하나의 컴퓨터-판독가능 저장 매체로서,
    상기 명령어는, 클라이언트 디바이스와 통신하여 데이터 획득 디바이스 상에서 작동하는 프로세서에서 실행시, 프로세서로 하여금,
    프로세싱 사이클 동안 캡쳐된 데이터를 획득하도록 트리거에 응답하여 획득 프로세스를 수행하고;
    하나 이상의 클라이언트 디바이스에 의해, 획득된 데이터에 대한 액세스를 향상시키고 - 상기 향상시키는 것은, 프로세서로 하여금,
    상기 프로세싱 사이클 동안 캡쳐되는 획득된 데이터와 관련된 데이터를 생성하고,
    동일한 프로세싱 사이클에 관련된 데이터를 상관시키고,
    클라이언트 디바이스에 의한 액세스를 위해 상관된 데이터를 누적하는, 데이터 프로세스를 수행하도록 하는 것을 포함함 -;
    상기 클라이언트 디바이스로 그리고 상기 클라이언트 디바이스로부터 데이터를 전송하기 위한 둘 이상의 상이한 통신 채널을 제공하고;
    상기 프로세싱 사이클에 실질적으로 지장을 주는 않고 상기 둘 이상의 상이한 통신 채널을 사용하여 획득된 데이터, 생성된 데이터, 상관된 데이터, 및 누적된 데이터 중 임의의 하나 이상에 대한 액세스를 위한 상기 클라이언트 디바이스로부터의 요청에 응답하는 방법을 구현하도록 하는,
    명령어가 포함된 적어도 하나의 컴퓨터-판독가능 저장 매체.
  16. 제15항에 있어서,
    상기 동일한 프로세싱 사이클에 관련된 데이터를 상관시키는 것은 프로세서로 하여금 고유 ID를 상기 동일한 프로세싱 사이클에 관련된 데이터에 할당하도록 하는 것인, 명령어가 포함된 적어도 하나의 컴퓨터-판독가능 저장 매체.
  17. 제15항에 있어서,
    클라이언트에 의한 액세스를 위해 상관된 데이터를 누적하는 것은, 프로세서로 하여금,
    상기 프로세싱 사이클 동안 캡쳐된 데이터를 참조하는 사이클 리포트를 포함하는 데이터 번들 및 상기 클라이언트 디바이스 상의 디스플레이에서 참조된 데이터의 뷰를 제어하기 위한 정보를 생성하고,
    클라이언트에 의한 후속 액세스를 위해 데이터 번들을 저장하고,
    요구에 따라 클라이언트에 의한 임의의 하나의 액세스를 위해 또는 전송이 완료된 후에 임의의 하나 이상의 관심 있는 클라이언트에 제공하기 위해 저장된 데이터 번들을 중개 저장 서버로 전송하도록 하는 것인, 명령어가 포함된 적어도 하나의 컴퓨터-판독가능 저장 매체.
  18. 제17항에 있어서,
    상기 명령어는 상기 프로세서로 하여금 추가로 상기 프로세싱 사이클의 끝에서 무조건적으로 클라이언트에 상기 프로세싱 사이클 동안 캡쳐된 데이터를 참조하는 사이클 리포트를 전송하도록 하는 것인, 명령어가 포함된 적어도 하나의 컴퓨터-판독가능 저장 매체.
  19. 제17항에 있어서,
    상기 명령어는 상기 프로세서로 하여금 추가로 요구에 따라 클라이언트에 상기 데이터 번들을 전송하도록 하는 것인, 명령어가 포함된 적어도 하나의 컴퓨터-판독가능 저장 매체.
  20. 제16항에 있어서,
    상기 동일한 프로세싱 사이클에 관련된 데이터를 상관시키는 것은, 프로세서로 하여금 추가로,
    상기 프로세싱 사이클 동안 영향을 받은 임의의 하나 이상의 파라미터 및 성능 정보의 이력 데이터를 생성하고,
    클라이언트에 의한 후속 액세스를 위해 상기 이력 데이터를 저장하고,
    요구에 따라 클라이언트에 의한 임의의 하나의 액세스를 위해 또는 전송이 완료된 후에 임의의 하나 이상의 관심 있는 클라이언트에 제공하기 위해 상기 이력 데이터를 중개 저장 서버로 전송하도록 하는 것인, 명령어가 포함된 적어도 하나의 컴퓨터-판독가능 저장 매체.
  21. 제15항에 있어서,
    상기 명령어는 상기 프로세서로 하여금 추가로,
    획득 프로세스, 이벤트 수신 확인 프로세스, 데이터 프로세스, 및 이벤트 처리 프로세스를 높은 우선 순위에서 낮은 우선 순위의 순서로 수행하기 위한 디폴트 계층적 우선 순위 레벨을 유지하고,
    상기 데이터 획득 디바이스로부터 데이터를 요청하는 임의의 하나 이상의 클라이언트로부터 임의의 하나 이상의 비동기 이벤트를 수신하고,
    상기 비동기 이벤트의 유형 및 빈도 중 임의의 하나 이상에 따라 데이터 프로세스보다 이벤트 처리 프로세스를 우선 순위로 할지를 결정하고,
    데이터 프로세스보다 이벤트 처리 프로세스를 우선 순위로 하는 것이 획득 및 데이터 프로세스에 실질적으로 지장을 주지 않으면서 수행될 수 있다고 결정한 후에, 상기 비동기 이벤트를 일시적으로 처리하고,
    데이터 프로세스보다 이벤트 처리 프로세스를 우선 순위로 하는 것이 획득 및 데이터 프로세스에 실질적으로 지장을 주지 않으면서 수행될 수 없다고 결정한 경우에, 디폴트 계층적 우선 순위 레벨로 되돌아가는 방법을 구현하도록 하는, 명령어가 포함된 적어도 하나의 컴퓨터-판독가능 저장 매체.
KR1020177032254A 2015-04-09 2016-04-08 내장된 웹 서버 KR102450900B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201562145401P 2015-04-09 2015-04-09
US62/145,401 2015-04-09
PCT/US2016/026820 WO2016164847A1 (en) 2015-04-09 2016-04-08 Embedded web server

Publications (2)

Publication Number Publication Date
KR20170137811A true KR20170137811A (ko) 2017-12-13
KR102450900B1 KR102450900B1 (ko) 2022-10-04

Family

ID=57072404

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020177032254A KR102450900B1 (ko) 2015-04-09 2016-04-08 내장된 웹 서버
KR1020177032014A KR102450899B1 (ko) 2015-04-09 2016-04-08 내장된 서버를 위한 웹 사용 가능 인터페이스

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020177032014A KR102450899B1 (ko) 2015-04-09 2016-04-08 내장된 서버를 위한 웹 사용 가능 인터페이스

Country Status (5)

Country Link
US (4) US10530832B2 (ko)
EP (3) EP3281391B1 (ko)
KR (2) KR102450900B1 (ko)
CN (3) CN112422629A (ko)
WO (2) WO2016164847A1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016137574A1 (en) * 2015-02-27 2016-09-01 Level 3 Communications, Llc Network address resolution
EP3281391B1 (en) 2015-04-09 2022-07-27 OMRON Corporation Web enabled interface for an embedded server
KR20170028672A (ko) * 2015-09-04 2017-03-14 에스프린팅솔루션 주식회사 클라우드 프린팅 시스템에 등록되는 화상형성장치의 레지스트리 관리 방법 및 이를 수행하기 위한 클라우드 프린팅 시스템
US10404663B1 (en) 2016-02-29 2019-09-03 Parallels International Gmbh File sharing over secure connections
CN108830268A (zh) * 2018-05-28 2018-11-16 北京小米移动软件有限公司 内容获取方法、装置、终端及存储介质
CN109947542A (zh) * 2019-01-25 2019-06-28 上海倍通医药科技咨询有限公司 数据采集程序的综合进程调度方法
US11783073B2 (en) * 2021-06-21 2023-10-10 Microsoft Technology Licensing, Llc Configuration of default sensitivity labels for network file storage locations

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000215144A (ja) * 1998-09-30 2000-08-04 Hewlett Packard Co <Hp> 多機能周辺装置をネットワ―クに接続するサ―バ―
US20020196478A1 (en) * 2001-06-21 2002-12-26 Struble Christian L. System and method for wirelessly initiated document scanning and transmission
US20120173697A1 (en) * 2003-08-12 2012-07-05 Hitachi, Ltd. Method for analyzing performance information

Family Cites Families (184)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6850252B1 (en) * 1999-10-05 2005-02-01 Steven M. Hoffberg Intelligent electronic appliance system and method
KR0136671B1 (ko) 1995-04-14 1998-05-15 구자홍 브이씨알의 취소입력 처리방법
EP0825506B1 (en) * 1996-08-20 2013-03-06 Invensys Systems, Inc. Methods and apparatus for remote process control
US5956487A (en) * 1996-10-25 1999-09-21 Hewlett-Packard Company Embedding web access mechanism in an appliance for user interface functions including a web server and web browser
US6101407A (en) * 1998-02-13 2000-08-08 Eastman Kodak Company Method and system for remotely viewing and configuring output from a medical imaging device
US7043532B1 (en) * 1998-05-07 2006-05-09 Samsung Electronics Co., Ltd. Method and apparatus for universally accessible command and control information in a network
AU5728500A (en) * 1999-06-11 2001-01-02 Microsoft Corporation Data driven remote device control model with general programming interface-to-network messaging adapter
US6701324B1 (en) * 1999-06-30 2004-03-02 International Business Machines Corporation Data collector for use in a scalable, distributed, asynchronous data collection mechanism
US9307407B1 (en) * 1999-08-09 2016-04-05 Kamilo Feher DNA and fingerprint authentication of mobile devices
US7120910B2 (en) * 2000-03-29 2006-10-10 Canon Kabushiki Kaisha Control method for image processing apparatus connectable to computer network
US20010044824A1 (en) * 2000-03-31 2001-11-22 Kevin Hunter System for using wireless web devices to store web link codes on list server for subsequent retrieval
US7117504B2 (en) * 2001-07-10 2006-10-03 Microsoft Corporation Application program interface that enables communication for a network software platform
US20090106353A1 (en) * 2001-09-19 2009-04-23 Belovich Steven G Method and system for providing an event auditing client server software arrangement
US6944828B2 (en) * 2001-12-13 2005-09-13 Appeon Corporation System and method for retrieving and editing the data structure of an HTML UI Control
US7430583B2 (en) 2002-01-15 2008-09-30 International Business Machines Corporation Active control of collaborative devices
US7340737B2 (en) * 2002-07-03 2008-03-04 National Instruments Corporation Wireless deployment / distributed execution of graphical programs to smart sensors
US20080313282A1 (en) * 2002-09-10 2008-12-18 Warila Bruce W User interface, operating system and architecture
US10176476B2 (en) * 2005-10-06 2019-01-08 Mastercard Mobile Transactions Solutions, Inc. Secure ecosystem infrastructure enabling multiple types of electronic wallets in an ecosystem of issuers, service providers, and acquires of instruments
US20050044164A1 (en) * 2002-12-23 2005-02-24 O'farrell Robert Mobile data and software update system and method
US7739583B2 (en) * 2003-03-31 2010-06-15 Ricoh Company, Ltd. Multimedia document sharing method and apparatus
US20050119786A1 (en) * 2003-04-22 2005-06-02 United Parcel Service Of America, Inc. System, method and computer program product for containerized shipping of mail pieces
CA2438362C (en) * 2003-08-26 2011-05-31 John William Comeau A method and system for synchronizing a client user interface with server backend
US7426734B2 (en) * 2003-10-24 2008-09-16 Microsoft Corporation Facilitating presentation functionality through a programming interface media namespace
US8930944B2 (en) * 2003-11-18 2015-01-06 Microsoft Corporation Application model that integrates the web experience with the traditional client application experience
US20050165888A1 (en) * 2004-01-27 2005-07-28 Microsoft Corporation Peer-to-peer data binding
US7568015B2 (en) * 2004-04-07 2009-07-28 Hand Held Products, Inc. Routing device and method for use with a HTTP enabled computer peripheral
US8281030B2 (en) * 2004-04-07 2012-10-02 Hand Held Products, Inc. HTTP enabled computer peripheral
JP2007536634A (ja) * 2004-05-04 2007-12-13 フィッシャー−ローズマウント・システムズ・インコーポレーテッド プロセス制御システムのためのサービス指向型アーキテクチャ
US20050262092A1 (en) * 2004-05-21 2005-11-24 Bea Systems, Inc. Systems and methods for collaboration dynamic pageflows
US20050262075A1 (en) * 2004-05-21 2005-11-24 Bea Systems, Inc. Systems and methods for collaboration shared state management
US7702724B1 (en) 2004-05-27 2010-04-20 Oracle America, Inc. Web services message broker architecture
US7273179B2 (en) * 2004-07-09 2007-09-25 Datalogic Scanning, Inc. Portable data reading device with integrated web server for configuration and data extraction
US7580164B2 (en) * 2004-12-22 2009-08-25 Ricoh Co., Ltd. Document separator pages
US20060179065A1 (en) * 2005-02-04 2006-08-10 Xu Jordan J Matrix oriented application framework with interchangeable data source mapping and user interface
US7788521B1 (en) * 2005-07-20 2010-08-31 Bakbone Software, Inc. Method and system for virtual on-demand recovery for real-time, continuous data protection
US20140089120A1 (en) * 2005-10-06 2014-03-27 C-Sam, Inc. Aggregating multiple transaction protocols for transacting between a plurality of distinct payment acquiring devices and a transaction acquirer
US20140020068A1 (en) * 2005-10-06 2014-01-16 C-Sam, Inc. Limiting widget access of wallet, device, client applications, and network resources while providing access to issuer-specific and/or widget-specific issuer security domains in a multi-domain ecosystem for secure personalized transactions
US7934660B2 (en) * 2006-01-05 2011-05-03 Hand Held Products, Inc. Data collection system having reconfigurable data collection terminal
US20070181691A1 (en) * 2006-02-09 2007-08-09 Simpleact Incorporated System and method for information retrieval with barcode using digital image capture devices
US20080024830A1 (en) * 2006-04-07 2008-01-31 Aidea Incorporated Internet protocol compliant scanner interface system
JP4560492B2 (ja) * 2006-04-18 2010-10-13 京セラミタ株式会社 画像形成装置並びにこれを用いたユーザ認証システム及び方法
US7657439B2 (en) * 2006-04-19 2010-02-02 United Parcel Service Of America, Inc. System and method for shipping a mail piece having post office box recognition
US8924269B2 (en) * 2006-05-13 2014-12-30 Sap Ag Consistent set of interfaces derived from a business object model
US7714908B2 (en) * 2006-05-26 2010-05-11 Lifetouch Inc. Identifying and tracking digital images with customized metadata
EP1873633A3 (en) * 2006-06-29 2008-01-23 Rockwell Automation Technologies, Inc. Automation HMI visualization utilizing GUI function blocks
US20080091954A1 (en) * 2006-10-17 2008-04-17 Morris Daniel R Method and system for facilitating printed page authentication, unique code generation and content integrity verification of documents
US8590786B2 (en) * 2007-03-26 2013-11-26 Sears Brands, L.L.C. System and method for using a mobile device to locate a followed item in a retail store
US8789750B2 (en) * 2007-03-26 2014-07-29 Sears Brands, L.L.C. System and method for using a mobile device to follow a price for an item
US7963441B2 (en) * 2007-03-26 2011-06-21 Sears Brands, Llc System and method for providing self service checkout and product delivery using a mobile device
US8872622B2 (en) * 2007-03-27 2014-10-28 Valmarc Corporation Authentication of “source” for brands
JP4953889B2 (ja) * 2007-04-03 2012-06-13 キヤノン株式会社 画像形成装置、画像形成装置の制御方法、及びプログラム
US7922085B2 (en) * 2007-04-13 2011-04-12 Aps Technology Group, Inc. System, method, apparatus, and computer program product for monitoring the transfer of cargo to and from a transporter
US20080267504A1 (en) * 2007-04-24 2008-10-30 Nokia Corporation Method, device and computer program product for integrating code-based and optical character recognition technologies into a mobile visual search
US20120132701A1 (en) * 2007-05-14 2012-05-31 Katsuya Nakagawa Remote code reader system
KR100895114B1 (ko) 2007-06-26 2009-04-28 알트론 주식회사 내장형 웹 서버 시스템을 탑재한 메인 컨트롤 유니트와 무선모뎀을 이용한 중계기의 실시간 원격 제어 및 상태감시 방법 및 그 시스템
US20090193410A1 (en) * 2007-09-28 2009-07-30 Xcerion Aktiebolag Network operating system
US20090094292A1 (en) * 2007-10-08 2009-04-09 Lynn Hagan Quality Assurance Tool Kit and Method
GB0720338D0 (en) * 2007-10-17 2007-11-28 Ntf Group Pty The Ltd A gaming system and method
US7917584B2 (en) * 2007-10-22 2011-03-29 Xcerion Aktiebolag Gesture-based collaboration
US20090202134A1 (en) * 2007-12-28 2009-08-13 Glory Ltd. Print inspecting apparatus
US8249967B2 (en) * 2008-01-10 2012-08-21 Park David S Image-based payment medium
JP4185159B1 (ja) * 2008-01-30 2008-11-26 株式会社三菱東京Ufj銀行 アプリケーション開発支援装置及びプログラム
WO2009100246A2 (en) * 2008-02-05 2009-08-13 Stratosaudio, Inc. Systems, methods, and devices for scanning broadcasts
US8027889B1 (en) * 2008-03-05 2011-09-27 United Services Automobile Association Systems and methods for price searching via a mobile device reading display screen graphics
US20110010692A1 (en) * 2008-03-21 2011-01-13 The Bank Of Tokyo-Mitsubishi Ufj, Ltd. Application development support device, program and storage medium
US9838877B2 (en) * 2008-04-02 2017-12-05 Yougetitback Limited Systems and methods for dynamically assessing and mitigating risk of an insured entity
US9740293B2 (en) * 2009-04-02 2017-08-22 Oblong Industries, Inc. Operating environment with gestural control and multiple client devices, displays, and users
US8407661B2 (en) * 2008-07-28 2013-03-26 Abb Research Ltd. Method and system for creating HMI applications for an automation process
US8805110B2 (en) * 2008-08-19 2014-08-12 Digimarc Corporation Methods and systems for content processing
CN101350997A (zh) * 2008-08-26 2009-01-21 Tcl天一移动通信(深圳)有限公司 一种手机界面的运动图像处理方法
US20100057586A1 (en) * 2008-09-04 2010-03-04 China Software Venture Offer Reporting Apparatus and Method
PL2166697T3 (pl) * 2008-09-17 2012-02-29 Gmv Soluciones Globales Internet S A Sposób i system uwierzytelniania użytkownika za pomocą urządzenia mobilnego
US8419548B2 (en) * 2008-11-12 2013-04-16 Wms Gaming, Inc. Optical machine-readable data representation image
US10492102B2 (en) * 2009-01-28 2019-11-26 Headwater Research Llc Intermediate networking devices
US8469275B2 (en) * 2009-04-20 2013-06-25 Metaform Ltd. Multiple barcode detection system and method
US10320635B2 (en) * 2009-06-11 2019-06-11 Talari Networks Incorported Methods and apparatus for providing adaptive private network centralized management system timestamp correlation processes
US10698923B2 (en) * 2009-06-11 2020-06-30 Talari Networks, Inc. Methods and apparatus for providing adaptive private network database schema migration and management processes
US20100325490A1 (en) * 2009-06-22 2010-12-23 Anvin H Peter System and method to view crash dump information using a 2-d barcode
US8255186B2 (en) * 2009-07-09 2012-08-28 Air Liquide Large Industries U.S. Lp Presenting dynamic SCADA data
EP2486538A4 (en) * 2009-10-08 2013-08-07 Alchemy3 Llc MOBILE SHOOTING GAMES MADE ABOUT DEVICES
US20110086692A1 (en) * 2009-10-08 2011-04-14 Paul Francis Guziel MobileKittens
US9984203B2 (en) * 2009-10-14 2018-05-29 Trice Imaging, Inc. Systems and methods for converting and delivering medical images to mobile devices and remote communications systems
US8261988B2 (en) * 2009-11-30 2012-09-11 Xerox Corporation Phase locked IR encoding for peened 2D barcodes
US10572852B2 (en) * 2009-12-30 2020-02-25 Louis A. Santo, JR. Software application for the automated drop-off and pick-up of a service item at a service facility
US9302061B2 (en) 2010-02-26 2016-04-05 Covidien Lp Event-based delay detection and control of networked systems in medical ventilation
JP5035373B2 (ja) * 2010-03-18 2012-09-26 コニカミノルタビジネステクノロジーズ株式会社 画像処理装置及び同装置におけるデータ処理方法並びにデータ処理プログラム
CN201726425U (zh) * 2010-04-08 2011-01-26 上海第二工业大学 嵌入式网络服务器
US20160335731A1 (en) * 2010-05-05 2016-11-17 Site 10.01, Inc. System and method for monitoring and managing information
EP2397953B1 (en) * 2010-06-15 2019-02-20 Accenture Global Services Limited A computer-implemented method, a computer program product and an embedded system for displaying data more efficiently
US8561010B2 (en) * 2010-06-17 2013-10-15 International Business Machines Corporation Software approval process using service governance
US9020868B2 (en) * 2010-08-27 2015-04-28 Pneuron Corp. Distributed analytics method for creating, modifying, and deploying software pneurons to acquire, review, analyze targeted data
US10360561B2 (en) * 2010-12-14 2019-07-23 Lime Light RM, Inc. System and method for secured communications between a mobile device and a server
US9003506B2 (en) * 2010-12-16 2015-04-07 Sap Se Mobile out-of-band authentication service
US8612307B2 (en) * 2011-01-03 2013-12-17 Stanley Benjamin Smith System and method to price and exchange data producers and data consumers through formatting data objects with necessary and sufficient item definition information
US20120218084A1 (en) * 2011-02-25 2012-08-30 Nokia Corporation Method and apparatus for presenting printed media based on radio frequency memory tag detection
JP2014517709A (ja) * 2011-03-08 2014-07-24 ガンブロ・ルンディア・エービー データを転送するための方法と、制御モジュールと、装置と、システム
US20110290871A1 (en) * 2011-08-04 2011-12-01 Best Buzz Combined proprietary and universal mobile barcode reader
JP5686034B2 (ja) * 2011-04-28 2015-03-18 富士通株式会社 クラスタシステム、同期制御方法、サーバ装置および同期制御プログラム
US8616453B2 (en) * 2012-02-15 2013-12-31 Mark Itwaru System and method for processing funds transfer between entities based on received optical machine readable image information
US10223674B2 (en) * 2011-05-11 2019-03-05 Riavera Corp. Customized transaction flow for multiple transaction types using encoded image representation of transaction information
US20120298737A1 (en) * 2011-05-26 2012-11-29 Thales Avionics, Inc. Methods, apparatuses and articles of manufacture to provide passenger preference data to in-flight entertainment systems
US8488916B2 (en) * 2011-07-22 2013-07-16 David S Terman Knowledge acquisition nexus for facilitating concept capture and promoting time on task
US8910274B2 (en) * 2011-07-28 2014-12-09 Xerox Corporation Multi-factor authentication using digital images of barcodes
US8668144B2 (en) * 2011-08-12 2014-03-11 Ricoh Company, Ltd. Method and process for symbolic mark decoding
BR112014008941A2 (pt) * 2011-10-12 2017-05-02 C-Sam Inc plataforma que habilita transações móveis seguras de múltiplas camadas
US20130131422A1 (en) * 2011-11-23 2013-05-23 General Electric Company Systems and methods for communicating dose calibration information
FI20116301A (fi) 2011-12-21 2013-06-22 Sensinode Oy Menetelmä, laite ja järjestelmä resurssien osoittamiseksi
US8862888B2 (en) * 2012-01-11 2014-10-14 King Saud University Systems and methods for three-factor authentication
US8708224B2 (en) * 2012-05-25 2014-04-29 Wesley John Boudville Mobile device audio from an external video display using a barcode
US11132657B2 (en) * 2012-08-27 2021-09-28 Ncr Corporation Transaction flow
US9165406B1 (en) * 2012-09-21 2015-10-20 A9.Com, Inc. Providing overlays based on text in a live camera view
US10692136B2 (en) * 2012-09-21 2020-06-23 Capital One Services, Llc System and method for opening an account using a mobile device
US10552846B2 (en) * 2012-10-12 2020-02-04 Document Security Systems, Inc. Authenticated barcode patterns
KR20150092111A (ko) * 2012-10-16 2015-08-12 리아베라 코포레이션 사운드 기반 코드들을 이용하는 모바일 이미지 지불 시스템
US8887182B2 (en) * 2012-10-16 2014-11-11 Yahoo! Inc. Hybrid applications
US8997241B2 (en) * 2012-10-18 2015-03-31 Dell Products L.P. Secure information handling system matrix bar code
US20140120516A1 (en) * 2012-10-26 2014-05-01 Edwiser, Inc. Methods and Systems for Creating, Delivering, Using, and Leveraging Integrated Teaching and Learning
US10296562B2 (en) * 2013-02-12 2019-05-21 Oath Inc. Dynamic generation of mobile web experience
US9317503B2 (en) * 2013-03-15 2016-04-19 Id Integration, Inc. System and method for naming an image file
US20140289366A1 (en) * 2013-03-20 2014-09-25 Korea Advanced Institute Of Science And Technology Service providing method and system for instance hosting
KR101366671B1 (ko) * 2013-05-15 2014-03-03 (주)네오넥스소프트 웹을 통한 콜센터 서비스 제공 방법 및 시스템
CN105247548B (zh) * 2013-05-21 2019-09-10 思杰系统有限公司 基于应用的协作工作空间系统中的用户定义工作流
US9992301B2 (en) * 2013-06-26 2018-06-05 Sap Se Prioritized throttling in a multiusage environment
US9646358B2 (en) * 2013-09-20 2017-05-09 Infosys Limited Methods for scene based video watermarking and devices thereof
US10248771B1 (en) * 2014-01-24 2019-04-02 Microstrategy Incorporated Performing biometrics operations in uncontrolled environments
WO2015130347A1 (en) * 2014-02-26 2015-09-03 Vapor Communications, Inc. Systems, methods and articles to provide olfactory sensations in a social network environment
US9189207B2 (en) * 2014-03-11 2015-11-17 Telefonaktiebolaget L M Ericsson (Publ) Methods and systems for dynamic runtime generation of customized applications
US9251330B2 (en) * 2014-04-09 2016-02-02 International Business Machines Corporation Secure management of a smart card
US20210182863A1 (en) * 2014-04-23 2021-06-17 Minkasu, Inc. Authenticating Transactions Using Biometric Authentication
US9916010B2 (en) * 2014-05-16 2018-03-13 Visa International Service Association Gesture recognition cloud command platform, system, method, and apparatus
US9213881B1 (en) * 2014-06-13 2015-12-15 The Code Corporation Providing operating instructions for a barcode reader from a server
US20160070864A1 (en) * 2014-09-08 2016-03-10 Douglas Bernard Dotan Healthcare hazard detection and early warning system
US20160078509A1 (en) * 2014-09-17 2016-03-17 Kenta Yamano Apparatus, system, and method of managing transactions of electronic books
US10599902B2 (en) * 2014-10-09 2020-03-24 Cognex Corporation Methods and apparatus for decoding under-resolved symbols
US9607200B2 (en) * 2014-10-09 2017-03-28 Cognex Corporation Decoding barcodes
US9430905B2 (en) * 2014-12-17 2016-08-30 Jackpot Rising Inc. Method and system for gaming revenue
US9525550B2 (en) * 2014-12-29 2016-12-20 Vasco Data Security, Inc. Method and apparatus for securing a mobile application
KR101675728B1 (ko) * 2015-01-05 2016-11-14 주식회사 슈프리마 정보처리기기를 이용한 사용자 인증 처리 방법 및 장치
US10257179B1 (en) * 2015-01-26 2019-04-09 Microstrategy Incorporated Credential management system and peer detection
EP3070618A1 (en) * 2015-03-20 2016-09-21 Michael Weller Computer system and method for dynamic website instantiation
EP3281391B1 (en) * 2015-04-09 2022-07-27 OMRON Corporation Web enabled interface for an embedded server
US20200402049A1 (en) * 2015-06-11 2020-12-24 APPI Technologia S/A (D.B.A. MUXI) Antifraud Resilient Transaction Identifier Datastructure Apparatuses, Methods and Systems
US11715109B2 (en) * 2015-06-11 2023-08-01 Idid Tecnologia Ltda Point of sale apparatuses, methods and systems
US20170103440A1 (en) * 2015-08-01 2017-04-13 Zhou Tian Xing Wearable augmented reality eyeglass communication device including mobile phone and mobile computing via virtual touch screen gesture control and neuron command
US20170039194A1 (en) * 2015-08-03 2017-02-09 EDCO Health Information Soultions, Inc. System and method for bundling digitized electronic records
US20170068785A1 (en) * 2015-09-09 2017-03-09 Humetrix.Com, Inc. Secure real-time health record exchange
US20170200247A1 (en) * 2016-01-08 2017-07-13 Confirm, Inc. Systems and methods for authentication of physical features on identification documents
US20170228502A1 (en) * 2016-02-10 2017-08-10 Gaelen John Rickard Systems, Devices, and/or Methods for Managing Medical Information
US10164975B1 (en) * 2016-03-30 2018-12-25 Snap Inc. Authentication via camera
US10210386B2 (en) * 2016-03-31 2019-02-19 Facebook, Inc. Storing identification data as virtual personally identifiable information
US10846932B2 (en) * 2016-04-22 2020-11-24 Interdigital Ce Patent Holdings Method and device for compositing an image
US10467387B2 (en) * 2016-06-23 2019-11-05 Oath Inc. Computerized system and method for modifying a media file by automatically applying security features to select portions of media file content
US10003971B2 (en) * 2016-06-29 2018-06-19 Xerox Corporation Compartmentalized multi-factor authentication for mobile devices
US20180033020A1 (en) * 2016-07-29 2018-02-01 Confirm, Inc. System and apparatus for detecting forgery features on identification documents
US11176340B2 (en) * 2016-09-28 2021-11-16 Cognex Corporation System and method for configuring an ID reader using a mobile device
US10217179B2 (en) * 2016-10-17 2019-02-26 Facebook, Inc. System and method for classification and authentication of identification documents using a machine learning based convolutional neural network
US10114999B1 (en) * 2016-12-02 2018-10-30 Koupon Media, Inc. Using dynamic occlusion to protect against capturing barcodes for fraudulent use on mobile devices
US11349666B2 (en) * 2017-01-27 2022-05-31 Meta Platforms, Inc. Electronically signing and distributing identification data as a service that provides proof of identity, integrity, validity and origin of data for non-repudiation and ID validation methods
GB2546459B (en) * 2017-05-10 2018-02-28 Tomlinson Martin Data verification
WO2018226621A1 (en) * 2017-06-05 2018-12-13 Umajin Inc. Methods and systems for an application system
US10528950B2 (en) * 2017-08-02 2020-01-07 Cognizant Technology Solutions India Pvt. Ltd. System and a method for detecting fraudulent transactions at a transaction site
JP6606312B2 (ja) * 2017-11-20 2019-11-13 楽天株式会社 情報処理装置、情報処理方法、および情報処理プログラム
US11036948B2 (en) * 2018-01-15 2021-06-15 The Code Corporation Barcode-scanning system configured for both data validation and data formatting
US10832436B2 (en) * 2018-04-05 2020-11-10 Symbol Technologies, Llc Method, system and apparatus for recovering label positions
US11270422B2 (en) * 2018-10-03 2022-03-08 Helix OpCo, LLC Secure genomic data accessioning
US20220004617A1 (en) * 2018-10-31 2022-01-06 Orchid Sound Technologies LLC Passwordless authentication systems and methods
US11157220B2 (en) * 2018-12-17 2021-10-26 Canon Kabushiki Kaisha Connecting an image processing device via a mobile device
US20200250766A1 (en) * 2019-02-06 2020-08-06 Teachers Insurance And Annuity Association Of America Automated customer enrollment using mobile communication devices
EP3986499A2 (en) * 2019-06-22 2022-04-27 Cerus Corporation Biological fluid treatment systems
CN114269394A (zh) * 2019-06-28 2022-04-01 塞鲁斯公司 用于实现生物流体处理装置的系统和方法
US20220261467A1 (en) * 2019-08-22 2022-08-18 Prevayl Innovations Limited Controller, method and data processing apparatus
US11594018B2 (en) * 2019-10-03 2023-02-28 United States Postal Service Intelligent item receptacle
US11562059B2 (en) * 2020-01-14 2023-01-24 Meta Platforms Technologies, Llc Administered authentication in artificial reality systems
US11736473B2 (en) * 2020-04-01 2023-08-22 Saurabh Shriniwas KALANTRI Identifiers and access tokens for privacy in centralized address management
US20220046012A1 (en) * 2020-08-07 2022-02-10 Unwind, Inc. Method and System for Verifying the Identity of a User
US11822639B2 (en) * 2020-09-09 2023-11-21 Santa Clara Holdings LLC System and method for facial recognition authentication for mask wearers
WO2022087580A1 (en) * 2020-10-19 2022-04-28 Cerus Corporation Modular light device for a biological fluid treatment system
US11195215B1 (en) * 2020-12-08 2021-12-07 U.S. Bank National Association Ambient transaction system
US11495036B1 (en) * 2021-01-29 2022-11-08 Scandit Ag Segmenting images for optical character recognition
US12001915B2 (en) * 2021-06-09 2024-06-04 Samsung Electronics Co., Ltd. System and method for integrating barcode scanners with a wedge application
EP4413546A1 (en) * 2021-10-07 2024-08-14 Cognex Corporation Systems and methods for detecting objects
US12030191B2 (en) * 2021-10-28 2024-07-09 Ubkang (Qingdao) Technology Co., Ltd. Vision-guided picking and placing method, mobile robot and computer-readable storage medium
US20230134651A1 (en) * 2021-10-28 2023-05-04 Akporefe Agbamu Synchronized Identity, Document, and Transaction Management
US11405189B1 (en) * 2021-11-18 2022-08-02 James E. Bennison Systems and methods for trustworthy electronic authentication using a computing device

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000215144A (ja) * 1998-09-30 2000-08-04 Hewlett Packard Co <Hp> 多機能周辺装置をネットワ―クに接続するサ―バ―
US20020196478A1 (en) * 2001-06-21 2002-12-26 Struble Christian L. System and method for wirelessly initiated document scanning and transmission
US20120173697A1 (en) * 2003-08-12 2012-07-05 Hitachi, Ltd. Method for analyzing performance information

Also Published As

Publication number Publication date
WO2016164847A1 (en) 2016-10-13
CN107637048A (zh) 2018-01-26
EP3281390B1 (en) 2022-03-23
US20160301774A1 (en) 2016-10-13
US20160301773A1 (en) 2016-10-13
US10530832B2 (en) 2020-01-07
US20190166183A1 (en) 2019-05-30
US20220201063A1 (en) 2022-06-23
CN107624241B (zh) 2021-01-12
KR102450900B1 (ko) 2022-10-04
KR20170137136A (ko) 2017-12-12
CN112422629A (zh) 2021-02-26
EP3281390A1 (en) 2018-02-14
EP3281391A4 (en) 2018-12-05
US11785071B2 (en) 2023-10-10
EP3281390A4 (en) 2018-09-12
WO2016164850A1 (en) 2016-10-13
CN107637048B (zh) 2020-12-04
US11252216B2 (en) 2022-02-15
EP3281391A1 (en) 2018-02-14
KR102450899B1 (ko) 2022-10-04
CN107624241A (zh) 2018-01-23
US10182099B2 (en) 2019-01-15
EP3281391B1 (en) 2022-07-27
EP4040313A1 (en) 2022-08-10

Similar Documents

Publication Publication Date Title
KR102450900B1 (ko) 내장된 웹 서버
US7827494B1 (en) Layout management using data-descriptive meta language documents
US7146229B2 (en) Controller for an analyzer
KR101782163B1 (ko) 잠재 전송 표면을 이용하는 문서 수정 방법 및 장치
US8196155B2 (en) XML-based event driven interface for OPC data access
US20160179090A1 (en) Systems and Methods for Asynchronous Searching and Filtering of Data
US20050155043A1 (en) Human-machine interface system and method for remotely monitoring and controlling a machine
EP1710639A2 (en) Industrial automation interface systems and methods
US20090271726A1 (en) Providing Convenient Entry Points for Users in the Management of Field Devices
KR101746477B1 (ko) 개체에 대한 스타일 동시 편집을 지원하는 문서 협업 장치 및 그 동작 방법
WO2016120852A1 (en) Modifying native documents with formulas in a preview
US20190102473A1 (en) Renderer for visual representations
CA2714228C (en) Complex input to image transformation for distribution
CN104919448A (zh) 用于显示数字版本的设备、方法和系统
US11314219B2 (en) Information device, terminal device and recording medium
US20040177357A1 (en) Web-based presentation of automation processes
KR101302292B1 (ko) 렌더링엔진 자동변환을 위한 웹브라우저를 기록한 컴퓨터 판독가능한 기록매체 및 렌더링엔진 자동변환방법
US20150269131A1 (en) Content conversion apparatus and method, and communication system
CN116263588A (zh) 可配置可视化技术设施的系统及方法
KR101731045B1 (ko) 이더캣 기반 모션 제어 시스템의 프레임 전송 시점을 정밀하게 보정하기 위한 장치, 이를 위한 방법 및 이 방법이 기록된 컴퓨터 판독 가능한 기록매체
CN118509099A (zh) Plc设备的时钟同步方法和装置、设备及存储介质

Legal Events

Date Code Title Description
N231 Notification of change of applicant
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant