KR102473833B1 - 외부 장치와 통신할 수 있는 통신장치, 통신장치의 제어방법, 및 기록매체 - Google Patents

외부 장치와 통신할 수 있는 통신장치, 통신장치의 제어방법, 및 기록매체 Download PDF

Info

Publication number
KR102473833B1
KR102473833B1 KR1020190156247A KR20190156247A KR102473833B1 KR 102473833 B1 KR102473833 B1 KR 102473833B1 KR 1020190156247 A KR1020190156247 A KR 1020190156247A KR 20190156247 A KR20190156247 A KR 20190156247A KR 102473833 B1 KR102473833 B1 KR 102473833B1
Authority
KR
South Korea
Prior art keywords
request
api
digital camera
response
control unit
Prior art date
Application number
KR1020190156247A
Other languages
English (en)
Other versions
KR20200070107A (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 KR20200070107A publication Critical patent/KR20200070107A/ko
Application granted granted Critical
Publication of KR102473833B1 publication Critical patent/KR102473833B1/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/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/66Remote control of cameras or camera parts, e.g. by remote control devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/422Input-only peripherals, i.e. input devices connected to specially adapted client devices, e.g. global positioning system [GPS]
    • H04N21/4223Cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/51Indexing; Data structures therefor; Storage structures
    • 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web 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/01Protocols
    • 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/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/431Generation of visual interfaces for content selection or interaction; Content or additional data rendering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • H04N21/4431OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB characterized by the use of Application Program Interface [API] libraries
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/8166Monomedia components thereof involving executable data, e.g. software
    • H04N21/8173End-user applications, e.g. Web browser, game
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/617Upgrading or updating of programs or applications for camera control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/66Remote control of cameras or camera parts, e.g. by remote control devices
    • H04N23/661Transmitting camera control signals through networks, e.g. control via the Internet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/69Control of means for changing angle of the field of view, e.g. optical zoom objectives or electronic zooming
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/14Picture signal circuitry for video frequency region
    • H04N5/21Circuitry for suppressing or minimising disturbance, e.g. moiré or halo
    • H04N5/213Circuitry for suppressing or minimising impulsive noise

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Library & Information Science (AREA)
  • Studio Devices (AREA)
  • Stored Programmes (AREA)
  • Computer And Data Communications (AREA)

Abstract

통신장치는, Hypertext Transfer Protocol(HTTP)에 근거하여 외부 장치와 통신하도록 구성된 통신부와, 복수의 응용 프로그래밍 인터페이스(API)에 대응하는 프로그램을 기록하도록 구성된 기록매체와, 복수의 API 중 어느 한개에 관한 리퀘스트를 접수한 경우, 리퀘스트를 접수한 API에 대응하는 프로그램을 실행하고, 리퀘스트에 대하여 소정의 구조로 기술되는 데이터 세트를 포함하는 리스폰스를 되돌리도록 통신부를 제어하도록 구성된 제어부를 구비하고, 제어부는, 복수의 API 중 소정의 API에 관한 제1 HTTP 리퀘스트 메소드를 사용한 리퀘스트를 수신한 경우와, 소정의 API에 관한 제2 HTTP 리퀘스트 메소드를 사용한 리퀘스트를 수신한 경우에, 데이터 세트를 같은 구조로 기술하도록 제어를 행하도록 구성된다.

Description

외부 장치와 통신할 수 있는 통신장치, 통신장치의 제어방법, 및 기록매체{COMMUNICATION APPARATUS CAPABLE OF COMMUNICATING WITH EXTERNAL APPARATUS, METHOD FOR CONTROLLING COMMUNICATION APPARATUS, AND RECORDING MEDIUM}
본 발명은 외부 장치와 통신할 수 있는 통신장치에 관한 것이다.
최근, 디지털 카메라나 휴대전화 등의 통신장치의 통신기능의 진보에 따라, 통신장치들이 서로 콘텐츠를 송수신할 수 있게 되고 있다.
일본국 특개 2013-073506호 공보에서는, 카메라가 서버로서의 역할을 하는, Hypertext Transfer Protocol(HTTP)과 같은 서버-클라이언트 시스템을 사용하여 리모트 촬영을 실현하는 기술이 개시되어 있다. HTTP의 서버-클라이언트 시스템을 사용한 리모트 콘트롤 기능을 유저에게 제공할 경우, 리모트 콘트롤되는 카메라가 서버가 되고, 카메라를 리모트 콘트롤하는 장치가 클라이언트가 된다. 그리고, 클라이언트가 되는 장치에 카메라를 콘트롤하는 프로그램을 실장함으로써, 리모트 콘트롤을 실현한다. 이 경우, 카메라를 제어하기 위한 Uniform Resource Locator(URL)와 실행가능한 HTTP 메소드의 조합을 응용 프로그래밍 인터페이스(application programming interface: API)로서 공개함으로써, 클라이언트의 프로그램의 실장 부하를 저감할 수 있다. 대향기인 클라이언트에는, 공개된 API의 사양에 근거하여, 리모트 콘트롤을 실현하는 프로그램을 실장한다. 그렇지만, 공개된 URL과 HTTP 메소드, 및 리퀘스트 보디와 리스폰스 보디의 취급방법 등의 API의 사양은 독자적인 사양을 포함하도록 전개되어 있는 경우가 많으므로, API 사양서를 확인하지 않으면 이해하기 곤란한 경우가 많다. 특히, 공개된 URL마다 또는 공개된 메소드마다 리퀘스트 보디의 구조와 리스폰스 보디의 구조가 다른 경우, 각각의 공개된 URL 또는 각각의 공개된 메소드의 구조를 이해하는 부하가 크다. 따라서, API의 공개에 의해 부하가 저감되었다고 하더라도, 여전히 실장 부하가 남게 된다.
본 발명의 일면에 따르면, 통신장치는, Hypertext Transfer Protocol(HTTP)에 근거하여 외부 장치와 통신하도록 구성된 통신부와, 복수의 응용 프로그래밍 인터페이스(API)에 대응하는 프로그램을 기록하도록 구성된 기록매체와, 상기 통신부를 거쳐 상기 복수의 API 중 어느 한개에 관한 리퀘스트를 접수한 경우, 상기 리퀘스트를 접수한 API에 대응하는 프로그램을 실행하고, 상기 리퀘스트에 대하여 소정의 구조로 기술되는 데이터 세트를 포함하는 리스폰스를 되돌리도록 상기 통신부를 제어하도록 구성된 제어부를 구비하고, 상기 제어부는, 상기 복수의 API 중 소정의 API에 관한 제1 HTTP 리퀘스트 메소드를 사용한 리퀘스트를 수신한 경우와, 상기 소정의 API에 관한 제2 HTTP 리퀘스트 메소드를 사용한 리퀘스트를 수신한 경우에, 상기 데이터 세트를 같은 구조로 기술하도록 제어를 행하도록 구성된다.
본 발명의 또 다른 특징은 첨부도면을 참조하는 이하의 실시형태의 설명으로부터 명백해질 것이다.
도 1a, 도 1b 및 도 1c는 실시형태에 따른 디지털 카메라의 블록 구성, 정면 및 배면을 도시한 도면이다.
도 2는 실시형태에 따른 스마트 디바이스의 구성을 나타낸 블록도다.
도 3은 실시형태에 따른 시스템 구성을 나타낸 블록도다.
도 4는 실시형태에 따른 통신 응용 프로그래밍 인터페이스(API)의 기본구성을 도시한 표이다.
도 5는 실시형태에 따른 디지털 카메라의 고정 정보 또는 상태 정보를 취득하는 API를 설명하는 표이다.
도 6은 실시형태에 따른 디지털 카메라의 고정 정보 또는 상태 정보를 취득하는 API를 실행한 경우의 시퀀스도이다.
도 7은 실시형태에 따른 디지털 카메라의 메뉴 설정을 취득 또는 변경하는 API를 설명하기 위한 표이다.
도 8은 실시형태에 따른 디지털 카메라의 메뉴 설정을 취득 또는 변경하는 API를 실행한 경우의 시퀀스도이다.
도 9는 실시형태에 따른 디지털 카메라의 촬영 기능을 실행하는 API를 설명하기 위한 표이다.
도 10은 실시형태에 따른 디지털 카메라의 촬영 기능을 실행하는 API를 실행한 경우의 시퀀스도이다.
도 11은 실시형태에 따른 디지털 카메라의 촬영 파라미터를 취득 또는 변경하는 API를 설명하기 위한 표이다.
도 12는 실시형태에 따른 디지털 카메라의 촬영 파라미터를 취득 또는 변경하는 API를 실행한 경우의 시퀀스도이다.
도 13은 실시형태에 따른 디지털 카메라의 스루(through) 화상을 취득하는 API를 설명하기 위한 표이다.
도 14는 실시형태에 따른 디지털 카메라의 스루 화상을 취득하는 API를 실행한 경우의 시퀀스도이다.
도 15는 실시형태에 따른 디지털 카메라의 이벤트 정보를 취득하는 API를 설명하기 위한 표이다.
도16은 실시형태에 따른 디지털 카메라의 이벤트 정보를 취득하는 API를 실행한 경우의 시퀀스도이다.
도17은 실시형태에 따른 디지털 카메라의 콘텐츠 파일을 취득하는 API를 설명하기 위한 표이다.
도18은 실시형태에 따른 디지털 카메라의 콘텐츠 파일을 취득하는 API를 실행한 경우의 시퀀스도이다.
도 19는 실시형태에 따른 스마트 디바이스에 의해 동작하는 디지털 카메라를 종래의 통신 API를 사용하여 제어하는 프로그램의 흐름도다.
도20은 실시형태에 따른 스마트 디바이스에 의해 동작하는 디지털 카메라를 실시형태의 통신 API를 사용하여 제어하는 프로그램의 흐름도다.
도21은 실시형태에 따른 디지털 카메라의 동작을 나타낸 흐름도다.
이하, 첨부도면에 따라 본 발명의 실시형태를 상세하게 설명한다. 이때, 이하에서 설명하는 실시형태는, 본 발명을 달성하는 수단의 일례이며, 본 발명이 적용되는 장치의 구성과 각종 조건에 의해 적절히 수정 또는 변경되어도 된다. 또한 각 실시형태를 적절히 조합시키는 것도 가능하다.
<디지털 카메라(100)의 구성>
도1a는, 실시형태 1에 따른 통신장치의 일례인 디지털 카메라(100)의 구성예를 나타내는 블럭도다. 여기에서는 통신장치의 일례로서 디지털 카메라를 서술하지만, 통신장치는 이것에 한정되지 않는다. 예를 들면, 통신장치는 휴대형의 미디어 플레이어나, 태블릿 디바이스 또는 퍼스널 컴퓨터 등의 정보 처리장치이어도 된다.
제어부(101)는, 입력된 신호와, 후술하는 프로그램에 근거하여 디지털 카메라(100)의 각 구성요소를 제어한다. 제어부(101)가 장치 전체를 제어하는 것 대신에, 복수의 하드웨어 부품들이 처리를 분담함으로써 장치 전체를 제어해도 된다.
촬상부(102)는, 예를 들면, 광학 렌즈 유닛, 조리개, 줌 및 포커스를 제어하는 광학계와, 광학 렌즈 유닛을 거쳐서 도입된 빛(영상)을 전기적인 영상신호로 변환하기 위한 촬상 소자를 포함한다. 촬상 소자로서는, 일반적으로는, complementary metal-oxide-semiconductor(CMOS)나, charge-coupled device(CCD)이 이용된다. 촬상부(102)는, 제어부(101)에 의해 제어됨으로써, 촬상 소자가 촬상부(102)에 포함되는 렌즈에 결상된 피사체 빛을 전기신호로 변환한다. 그후, 촬상부(102)는, 전기신호에 대해 노이즈 저감 처리를 행하여, 디지털 데이터를 화상 데이터로서 출력한다. 본 실시형태에 따른 디지털 카메라(100)에서는, 화상 데이터는 제어부(101)에 의한 부호화가 행해지고, Design Rule for Camera File system(DCF)의 규격에 따라 기록매체(110)에 파일로서 기록된다.
불휘발성 메모리(103)는, 전기적으로 소거 및 기록가능한 불휘발성의 메모리이며, 제어부(101)에 의해 실행되는 후술하는 프로그램을 격납한다. 작업용 메모리(104)는, 촬상부(102)에 의해 촬상된 화상 데이터를 일시적으로 유지하는 버퍼 메모리, 표시부(106)의 화상 표시용 메모리와, 제어부(101)의 작업 영역으로서 사용된다.
조작부(105)는, 유저로부터 디지털 카메라(100)를 조작하는 지시를 접수하기 위해서 사용된다. 조작부(105)는 예를 들면, 유저가 디지털 카메라(100)의 전원을 온 또는 오프하는 지시를 내리기 위한 전원 버튼과, 촬영을 지시하기 위한 릴리즈 스위치와, 화상 데이터의 재생을 지시하기 위한 재생 버튼을 포함한다. 조작부(105)는, 후술하는 통신부(111)를 통해 외부 기기와의 통신을 개시하기 위한 전용의 접속 버튼 등의 조작부재를 더 포함한다. 또한, 조작부(105)는 표시부(106)에 형성되는 터치패널를 더 포함한다. 릴리즈 스위치는, 누름 상태를 2단계로 검출하기 위해서, 스위치 SW1 및 SW2를 갖는다. 릴리즈 스위치가 소위 절반 누름 상태가 되는 것에 의해, 스위치 SW1이 온이 된다. 이에 따라, 조작부(105)는 오토포커스(AF)처리, 자동노출(AE)처리, 오토 화이트 밸런스(AWB)처리, 또는 프리-플래시(EF) 처리 등의 촬영 준비를 행하기 위한 지시를 접수한다. 릴리즈 스위치가, 소위 완전 누름 상태가 되는 것에 의해, 스위치 SW2가 온이 된다. 이에 따라, 조작부(105)는 촬영을 행하기 위한 지시를 접수한다.
표시부(106)는, 촬영시의 뷰 파인더 화상의 표시, 촬영한 화상 데이터의 표시, 및 대화적인 조작을 위한 문자 표시를 행한다. 표시부(106)는 디지털 카메라(100)의 외부에 있을 수도 있다. 디지털 카메라(100)는 디지털 카메라(100)의 내부 또는 외부의 표시부(106)와 접속하면 되고, 표시부(106)의 표시를 제어하는 표시 제어 기능을 적어도 갖고 있으면 된다. 조작부(105) 및 표시부(106)로, 디지털 카메라의 유저 인터페이스를 구성한다.
기록매체(110)는, 촬상부(102)로부터 출력된 화상 데이터의 파일을 기록할 수 있다. 기록매체(110)는, 디지털 카메라(100)에 착탈가능하도록 구성해도 되고, 또는 디지털 카메라(100)에 내장되어 있어도 된다. 즉, 디지털 카메라(100)는 적어도 기록매체(110)에 액세스하는 방법을 갖고 있으면 된다.
통신부(111)는, 외부 장치와 접속하기 위한 인터페이스다. 본 실시형태에 따른 디지털 카메라(100)는, 통신부(111)를 거쳐, 외부 장치와 데이터의 교환을 행할 수 있다. 예를 들면, 디지털 카메라(100)는, 촬상부(102)에 의해 생성한 화상 데이터를 통신부(111)를 거쳐 외부 장치에 송신할 수 있다. 본실시형태에서는, 통신부(111)는 외부 장치와 Institute of Electrical and Electronics Engineers(IEEE) 802.11의 규격에 따른 소위 무선 로컬 에어리어 네트워크(LAN)를 거쳐 통신하기 위한 인터페이스를 포함한다. 제어부(101)는, 통신부(111)를 제어함으로써 외부 장치와의 무선통신을 실현한다. 통신방식은 무선 LAN에 한정되는 것은 아니고, 적외선 통신 방식, Bluetooth(등록상표) 통신 방식, Wireless Universal Serial Bus(USB)에 기반한 무선 통신 방식을 포함할 수 있다. 더구나, USB 케이블, High_Definition Multimedia Interface(HDMI)(등록상표), IEEE 1394, Ethernet 등의 유선 접속을 채용해도 된다.
근거리 통신부(112)는, 예를 들면, 무선통신을 위한 안테나, 무선신호를 처리하기 위해서 변복조회로 및 통신 콘트롤러로 구성된다. 근거리 통신부(112)는, 변조한 무선신호를 안테나로부터 출력하고, 안테나에서 수신한 무선신호를 복조함으로써, International Organization for Standardization(ISO)/International Electrotechnical Commission(IEC) 18092의 규격(소위 near-field communication: NFC)에 따른 근거리 통신을 실현한다. 또한, 근거리 통신부(112)는, 적외선 통신방식, Bluetooth(등록상표) 통신방식, 또는 Wireless USB에 기반한 무선 통신방식에 따른 근거리 무선통신을 실현한다. 본 실시형태에 따른 근거리 통신부(112)는, 디지털 카메라(100)의 측부에 설치된다.
본 실시형태에 있어서, 스마트 디바이스(200)와는, 통신부(111)에 의해 통신을 개시해서 디지털 카메라(100)에 접속된다. 또한, 본 실시형태에 따른 디지털 카메라(100)의 통신부(111)는, 디지털 카메라(100)가 인프라스트럭처 모드에 있어서의 액세스 포인트로서 동작하는 액세스 포인트(AP) 모드와, 디지털 카메라(100)가 인프라스트럭처 모드에 있어서의 클라이언트로서 동작하는 클라이언트(CL) 모드를 갖고 있다. 그리고, 본 실시형태에 따른 디지털 카메라(100)는, 통신부(111)가 CL 모드에서 동작하게 함으로써, 디지털 카메라(100)가 인프라스트럭처 모드에 있어서의 CL 기기로서 동작하는 것이 가능하다. 디지털 카메라(100)가 CL 기기로서 동작할 경우, 디지털 카메라(100)가 디지털 카메라(100) 주변의 AP 기기에 접속함으로써, AP 기기가 형성하는 네트워크에 참가하는 것이 가능하다. 또한, 본 실시형태에 따른 디지털 카메라(100)는, 통신부(111)를 AP 모드에서 동작시킴으로써, 디지털 카메라(100)는, 기능이 제한된 AP의 일종인 간이적인 AP로서 동작하는 것도 가능하다. 디지털 카메라(100)가 간이 AP으로서 동작하면, 디지털 카메라(100)는 단독으로 네트워크를 형성한다. 디지털 카메라(100)의 주변의 장치는 디지털 카메라(100)를 AP 기기로 인식하고, 디지털 카메라(100)가 형성한 네트워크에 참가하는 것이 가능해 진다. 상기한 바와 같이 디지털 카메라(100)를 동작시키기 위한 프로그램은 불휘발성 메모리(103)에 유지된다. 유저는 조작부(105)를 조작해서 AP 모드 또는 CL 모드를 선택하게 된다.
본 실시형태에 따른 디지털 카메라(100)는, AP의 일종이지만 CL 기기로부터 수신한 데이터를 인터넷 프로바이더에 전송하는 게이트웨이 기능은 갖지 않고 있는 간이 AP이다. 따라서, 디지털 카메라(100)가 디지털 카메라(100)가 형성한 네트워크에 참가하고 있는 다른 장치로부터 데이터를 수신해도, 디지털 카메라(100)는 이 데이터를 인터넷 등의 네트워크에 전송할 수는 없다.
다음에, 디지털 카메라(100)의 외관에 대해 설명한다. 도 1b 및 도 1c는 디지털 카메라(100)의 외관 정면 및 외관 배면의 일례를 도시한 도면이다. 릴리즈 스위치(105a), 재생 버튼(105b), 방향 키(105c) 및 터치패널(105d)은 조작부(105)에 포함되는 조작부재다. 표시부(106)에는, 촬상부(102)에 의한 촬상의 결과 얻어진 화상이 표시된다. 이상, 실시형태에 따른 디지털 카메라(100)의 구성을 설명하였다.
<스마트 디바이스(200)의 내부 구성>
도 2는, 본 실시형태의 디지털 카메라(100)와 통신하는 정보 처리장치의 일례인 스마트 디바이스(200)의 구성예를 나타내는 블럭도다. "스마트 디바이스"는 스마트 폰이나 태블릿 디바이스 등의 휴대 단말을 의미한다. 또한, 정보 처리장치의 일례로서 스마트 디바이스에 대해서 서술하지만, 정보 처리장치는 이것에 한정되지 않는다. 예를 들면, 정보 처리장치는, 무선 기능을 갖는 디지털 카메라, 프린터, 텔레비젼, 혹은 퍼스널 컴퓨터이어도 된다.
제어부(201)는, 입력된 신호와 후술하는 프로그램에 따라 스마트 디바이스(200)의 각 구성요소를 제어한다. 제어부(201)가 장치 전체를 제어하는 것 대신에, 복수의 하드웨어가 처리를 분담함으로써, 장치 전체를 제어해도 된다.
촬상부(202)는, 촬상부(202)에 포함되는 렌즈에서 결상된 피사체 빛을 전기신호로 변환하고, 전기신호에 대해 노이즈 저감 처리를 행하여, 디지털 데이터를 화상 데이터로서 출력한다. 촬상한 화상 데이터는 버퍼 메모리에 축적된 후, 제어부(201)에서 소정의 연산과 부호화처리가 실행되어, 기록매체(210)에 파일로서 기록된다.
불휘발성 메모리(203)는 전기적으로 소거 및 기록가능한 불휘발성의 메모리다. 불휘발성 메모리(203)에는, 제어부(201)가 실행하는 기본적인 소프트웨어인 오퍼레이팅 시스템(OS)과, 이 OS와 협동해서 응용적인 기능을 실현하는 어플리케이션이 기록되어 있다. 또한, 본실시형태에서는, 불휘발성 메모리(203)에는, 디지털 카메라(100)와 통신하기 위한 어플리케이션(이하, "앱")이 격납되어 있다.
작업용 메모리(204)는, 표시부(206)의 화상 표시용 메모리와, 제어부(201)의 작업 영역으로서 사용된다. 조작부(205)는, 스마트 디바이스(200)에 대한 지시를 유저로부터 접수하기 위해서 사용된다. 조작부(205)는 예를 들면, 유저가 스마트 디바이스(200)의 전원의 온 또는 오프를 지시하기 위한 전원 버튼과, 표시부(206)에 형성되는 터치패널 등의 조작부재를 포함한다. 표시부(206)는, 화상 데이터의 표시와 대화적인 조작을 위한 문자 표시를 행한다. 표시부(206)는 스마트 디바이스(200)의 외부에 있을 수도 있다. 스마트 디바이스(200)는 표시부(206)와 접속할 수 있으면 되고, 표시부(206)의 표시를 제어하는 표시 제어 기능을 적어도 갖고 있으면 된다. 조작부(205) 및 표시부(206)는 스마트 디바이스(200)의 유저 인터페이스를 구성하게 된다.
기록매체(210)는, 촬상부(202)로부터 출력된 화상 데이터를 기록할 수 있다. 기록매체(210)는, 스마트 디바이스(200)에 착탈가능하도록 구성해도 되고, 또는 스마트 디바이스(200)에 내장되어 있어도 된다. 즉, 스마트 디바이스(200)는 적어도 기록매체(210)에 액세스하는 수단을 갖고 있으면 된다.
통신부(211)는, 외부 장치와 접속하기 위한 인터페이스다. 본 실시형태의 스마트 디바이스(200)는, 통신부(211)를 거쳐, 디지털 카메라(100)와 데이터의 교환을 행할 수 있다. 본실시형태에서는, 통신부(211)는 안테나이며, 제어부(101)는, 안테나를 거쳐, 디지털 카메라(100)와 접속할 수 있다. 디지털 카메라(100)와의 접속은, 직접 접속이거나 액세스 포인트를 거친 접속이어도 된다. 데이터를 통신하기 위한 프로토콜로서는, 예를 들면, Hypertext Transfer Protocol(HTTP)이 사용된다. 그 이외, 무선 LAN을 통한 Picture Transfer Protocol over Internet Protocol(PTP/IP)을 사용할 수도 있다. 디지털 카메라(100)와의 통신은 이것에 한정되는 것은 아니다. 예를 들면, 통신부(211)는, 적외선 통신 모듈, Bluetooth(등록상표) 통신 모듈, Wireless USB에 기반한 무선통신 모듈을 포함할 수 있다. 더구나, USB 케이블, HDMI(등록상표), IEEE 1394 및 Ethernet 등의 유선접속을 채용해도 된다.
근거리 통신부(212)는, 다른 기기와의 비접촉 근거리 통신을 실현하기 위한 통신 유닛이다. 근거리 통신부(212)는, 예를 들어, 무선통신을 위한 안테나, 무선신호를 처리하기 위한 변복조회로 및 통신 콘트롤러로 구성된다. 근거리 통신부(212)는, 변조한 무선신호를 안테나로부터 출력하고, 또한 안테나에서 수신한 무선신호를 복조함으로써, 비접촉 근거리 통신을 실현한다. 이 경우, ISO/IEC 18092의 규격(소위 NFC)에 따른 비접촉 통신을 실현한다. 근거리 통신부(212)는, 다른 디바이스로부터 데이터 판독 요구를 받으면, 불휘발성 메모리(203)에 격납되어 있는 데이터에 근거하여 응답 데이터를 출력한다.
공중망 통신부(213)는, 공중 무선통신을 행하기 위해 사용되는 인터페이스다. 스마트 디바이스(200)는, 공중망 통신부(213)를 거쳐, 다른 기기와 통화할 수 있다. 이때, 제어부(201)는 마이크(214) 및 스피커(215)를 거쳐 음성신호의 입력과 출력을 행함으로써 통화를 실현한다. 본실시형태에서는, 공중망 통신부(213)는 안테나이며, 제어부(101)는, 안테나를 거쳐, 공중망에 접속할 수 있다. 통신부(211) 및 공중망 통신부(213)로서 한개의 안테나가 겸용하는 것도 가능하다. 이상, 실시형태에 따른 스마트 디바이스(200)를 설명하였다.
<시스템 구성>
도 3은, 스마트 디바이스(200)가 네트워크를 거쳐서 디지털 카메라(100)의 통신 응용 프로그래밍 인터페이스(API)를 이용하여, 디지털 카메라(100)를 제어하기 위한 시스템 구성을 도시한 도면이다.
통신 API를 이용하여 디지털 카메라(100)를 제어하기 위한 시스템 구성은 3종류가 있다.
첫 번째 구성에서는, 통신 301로 나타낸 것과 같이, 디지털 카메라(100)와 스마트 디바이스 200A가 피어-투-피어로 접속된다. 이때, 디지털 카메라(100)는 Wi-Fi 액세스 포인트가 되어 LAN을 구축한다. 스마트 디바이스 200A는 Wi-Fi 클라이언트가 되어 디지털 카메라(100)가 구축한 LAN에 조인한다. 본 실시형태에서는, 통신 301이 Wi-Fi를 거쳐 접속되고 있는 예를 사용했지만, Ethernet 등과 같은 유선 접속을 통신 301이 접속되어도 된다.
두 번째 구성에서는, 네트워크 라우터(302), 통신 303 및 통신 304로 나타낸 것과 같이, 디지털 카메라(100)와 스마트 디바이스(200)가, 네트워크 라우터(302)를 경유해서 접속된다. 이때, 네트워크 라우터(302)가 Wi-Fi 액세스 포인트가 되어 LAN을 구축한다. 디지털 카메라(100)와 스마트 디바이스 200A는 Wi-Fi 클라이언트가 되고, 네트워크 라우터(302)가 구축한 LAN에 조인한다. 본 실시형태에서는, 통신 303 및 통신 304가 Wi-Fi를 거쳐 접속되고 있는 예를 사용하였지만, Ethernet 등과 같은 유선 접속을 거쳐 접속되어도 된다.
세 번째 구성에서는, 네트워크 라우터(302), 통신 303 및 공중회선(305)으로 나타낸 것과 같이, 스마트 디바이스 200B가 공중회선(305)을 경유해서 디지털 카메라(100)와 접속한다. 전술한 최초 2개의 시스템 구성에서는, 동일 LAN 내에서 접속이 행해진다. 한편, 이 구성에서는, 예를 들면, virtual private network(VPN)을 사용함으로써, 스마트 디바이스 200B가 인터넷을 거쳐, LAN의 외측의 디지털 카메라(100)와 떨어진 장소로부터 디지털 카메라(100)와 통신하는 것이 가능하다. VPN은 공지의 기술이기 때문에, 여기에서는 설명을 생략한다.
이상의 3종류의 시스템 구성에 있어서, 스마트 디바이스(200)는 디지털 카메라(100)의 통신 API를 이용할 수 있다.
<디지털 카메라(100)가 공개하는 통신 API의 기본 구성>
도 4, 도 5, 도 7, 도 9, 도 11, 도 13, 도 15 및 도17은, 스마트 디바이스(200) 등의 외부 기기로부터 디지털 카메라(100)를 제어하기 위한 통신 API의 구성을 도시한 표이다.
디지털 카메라(100)는, 스마트 디바이스(200) 등의 외부 기기로부터 디지털 카메라(100)를 제어하기 위한 통신 API들을 공개하고 있다. 이들 API를 사용해서 요구를 접수함으로써, 본 실시형태의 디지털 카메라(100)는, 불휘발성 메모리(103)에 기록된 디바이스 정보, 또는 기록매체(110)에 보존된 콘텐츠 파일을, 통신부(111)를 거쳐 외부 기기에 송신한다. "콘텐츠 파일"은, 디지털 카메라(100)가 생성해서 기록매체(110) 또는 불휘발성 메모리(103)에 보존하는 화상 파일을 말한다. 본 실시형태에서는, 콘텐츠 파일은 촬상한 정지화상의 정지화상 파일이나 촬상한 동화상의 동화상 파일을 가리킨다.
이 통신 API들 각각에 대응하는 프로그램은 미리 불휘발성 메모리(103)에 보존되어 있다. 제어부(101)는, 통신부(111)를 거쳐 외부 기기와의 통신이 확립하면, 통신 API에 대응하는 프로그램을 작업용 메모리(104)에 전개하고, 외부 장치로부터의 통신 API를 사용한 리퀘스트를 기다린다. 제어부(101)가 외부 기기로부터 통신 API를 사용한 리퀘스트를 검지하면, 제어부(101)는 통신 API의 종류에 따른 처리를 실행하고, 처리 결과를 리스폰스로서 외부 기기에 반환한다. 통신 API에 대응하는 프로그램은 디지털 카메라(100)가 규정한 통신 프로토콜에서 실행되고, 외부 기기는 규정된 통신 프로토콜을 사용해서 디지털 카메라(100)와 통신을 행하고, 통신 API를 사용해서 리퀘스트를 행한다. 본실시형태에서는, HTTP에서 본 통신 API에 대응하는 프로그램이 실행된다. 즉, 디지털 카메라(100)는 HTTP 서버로서 기능한다. 본실시형태에서는, 통신 API를 web API로서 실장할 경우를 예로 들어 설명한다.
통신 프로토콜은, HTTP에 한정되는 것은 아니고, 다른 프로토콜이어도 된다. HTTP 프로토콜은 널리 이용되어 있는 것이므로, 여기에서의 HTTP 프로토콜의 설명은 생략한다.
HTTP에 있어서의 통신 API에 대응하는 프로그램의 실행방법은 이하의 절차로 실현된다.
우선, 외부 기기가, 통신 API로서 공개되는 Uniform Resource Locator(URL)에 대하여, HTTP 리퀘스트 보디에 액세스처의 통신 API의 사양에 따른 필요한 지시 정보를 텍스트 데이터로 기술한다. 그리고, 외부 기기는, 4개의 HTTP 메소드,. 즉 GET(판독), POST(생성), PUT(갱신) 및 DELETE(삭제) 중 어느 한개를 사용해서 디지털 카메라(100)에 HTTP 리퀘스트 보디를 송신한다.
이 리퀘스트를 받은 디지털 카메라(100)는 URL, HTTP 메소드와 HTTP 리퀘스트 보디 내부의 지시 정보의 내용에 근거하여 처리를 행하고, 처리 결과를 HTTP 스테이터스 코드와 함께 HTTP 리스폰스 보디에 부가하고, HTTP 리스폰스 보디를 외부 기기에 반환한다. 이상의 절차로 HTTP에서 통신 API에 대응하는 프로그램을 실행하는 방법이 행해진다.
통신 API에 있어서, HTTP 리퀘스트 보디와 HTTP 리스폰스 보디에 기술하는 데이터는, 데이터 기술언어의 1개인 JavaScript(등록상표) Object Notation(JSON)에 의해 표현된다. 각 통신 API에는, 통신 API의 기능에 따른 JSON 구문의 사양이 규정되어 있고, 디지털 카메라(100)와 스마트 디바이스(200)는 이 사양에 준해서 리퀘스트를 하거나 리스폰스의 해석을 행한다.
실시형태에서는 JSON을 사용하고 있지만, Extensible Markup Language(XML)를 사용하거나, 독자 포맷으로 정의된 텍스트 데이터나 바이너리 데이터를 사용해도 된다.
다음에, 통신 API의 구성을 상세하게 설명한다.
이하의 설명에서는, 설명을 간단하게 하기 위해서, 인터페이스 뿐만 아니라, 통신 API에 대응하는 서비스 또는 이 서비스를 실현하는 프로그램도 간단히 API 또는 통신 API로 기재한다. 즉, API에 대응하는 서비스를 실현하는 프로그램을 실행하는 처리를 API를 실행하는 것으로 기재한다. 더구나, API를 거쳐 API에 대응하는 서비스의 실행을 리퀘스트하는 처리를 API를 리퀘스트하는 것으로 기재한다.
도 4는, 통신 API의 기본구성을 설명하는 표이다.
우선, 본 실시형태에 따른 통신 API에서 사용하는 HTTP 메소드에 대해 설명한다. 본 실시형태에 따른 통신 API에서 사용하는 4개의 HTTP 메소드, 즉 GET(401), POST(402), PUT(403) 및 DELETE(404)가 존재한다. HTTP의 규격으로서는 다른 메소드도 존재하지만, 본 실시형태에 따른 통신 API에서 사용하는 HTTP 메소드는 취득, 생성, 갱신 및 삭제 등의 거의 모든 컴퓨터 소프트웨어가 갖는 영속적인 기본기능을 나타내는 4가지 메소드에 한정된다. 본 통신 API에 있어서의 4개의 메소드의 각각의 의미는 이하와 같다.
GET(401)은, 콘텐츠(화상 파일), 카메라의 정보와 상태, 및 설정 항목의 능력값 또는 설정값을 취득하는데 사용한다.
POST(402)은, 외부 장치로부터 디지털 카메라(100)에 콘텐츠 파일 등 데이터를 보존하거나, 촬영의 실행 또는 줌 조작 등의 카메라의 기능을 실행하는데 사용한다.
PUT(403)은, 디지털 카메라(100)의 메뉴 설정 또는 촬영 파라미터 설정의 설정값을 변경하는데 사용한다.
DELETE(404)은 콘텐츠를 삭제하거나 설정값을 초기화하는데 사용한다.
상기 4개의 메소드로 좁힘으로써, 복잡한 HTTP 메소드의 제어를 필요로 하지 않는다. 그 때문에, 디지털 카메라(100)를 제어하기 위한 스마트 디바이스(200)의 제어 프로그램을 작성하는 프로그래머는, 최소의 빈번하게 활용하는 HTTP 메소드를 사용하는 것 만으로 프로그램을 작성할 수 있다.
다음에, 본 실시형태에 따른 통신 API의 톱 URL에 대해 설명한다. 톱 URL은, 클라이언트가 디지털 카메라(100)를 콘트롤할 때에 최초에 액세스하는 URL로서 규정되는 URL이다. 콘트롤러는, 카메라의 리모트 콘트롤을 위한 다른 API를 이용하기 전에 이 톱 URL에 액세스할 필요가 있다.
도 4의 URL(405)은 통신 API의 톱 URL이다. 톱 URL의 호스트 명 및 도메인 명은, 디지털 카메라(100)에 할당된 Internet Protocol(IP) 어드레스와 포트 번호로 구성된다. IP 어드레스와 포트 번호 다음에, 톱 URL은 통신 API를 나타낸 디렉토리와, 통신 API의 버전을 나타낸 디렉토리를 더 포함한다. 예를 들면, 디지털 카메라(100)에 할당된 IP 어드레스가 192.168.1.1이고, 디지털 카메라(100)에 할당된 포트 번호가 8080인 경우, 톱 URL은 다음과 같다.
http://192.168.1.1:8080/api/ver1
HTTP 클라이언트인 스마트 디바이스(200)가, HTTP 서버인 디지털 카메라(100)가 공개하는 통신 API의 톱 URL을 GET(401)을 사용하여 리퀘스트하면, 디지털 카메라(100)는 API(406)에 나타낸 리스폰스 보디(JSON)를 되돌린다. API(406)에는, 디지털 카메라(100)가 대응하고 있는 통신 API의 일람이 기술되어 있다. 특징적인 것은, 각 URL에 대하여 어느 HTTP 메소드가 대응하고 있는지에 대한 정보를JSON 구문이 제공한다는 것이다. 톱 URL에 액세스함으로써, 스마트 디바이스(200)는, 디지털 카메라(100)가 대응하고 있는 통신 API의 종류를 취득할 수 있다.
다음에, API 표(407)는 통신 API의 카테고리를 나타낸 표이다. 본 실시형태에 따른 통신 API는, 기능의 종류에 근거하여 URL을 복수의 카테고리로 분류하고 있는 것을 나타내고 있다. 표에 있어서의 API 카테고리 각각의 URL 표기에서, 톱 URL을 생략한다. 실제로는, API 카테고리 408은 다음과 같다.
http://192.168.1.1:8080/api/ver1/deviceinformation
다음에, 통신 API의 기능의 카테고리화에 대해 설명한다. 우선, API 카테고리 408은, 디지털 카메라(100)의 고정 정보를 취득하는 카테고리다. 다음에, API 카테고리 409는, 디지털 카메라(100)의 상태 정보를 취득하는 카테고리다. 다음에, API 카테고리 410은, 디지털 카메라(100)의 메뉴 설정의 취득 또는 변경과, 메뉴 기능을 실행하는 카테고리다. 다음에, API 카테고리 411은, 디지털 카메라(100)의 촬영 기능을 실행하는 카테고리다. API 카테고리 412는, 디지털 카메라(100)의 촬영 파라미터의 설정을 취득 또는 변경하는 카테고리다. API 카테고리 413은, 디지털 카메라(100)가 출력하는 스루 화상을 취득하는 카테고리다. API 카테고리 414는, 디지털 카메라(100)가 발행하는 이벤트 정보를 취득하는 카테고리다. API 카테고리 415는, 디지털 카메라(100)에 장착된 미디어에 보존된 콘텐츠를 취득하는 카테고리다.
이상과 같이, 통신 API가 URL에 의해 카테고리화되기 때문에, 디지털 카메라(100)를 제어하기 위한 스마트 디바이스(200)의 제어 프로그램을 작성하는 프로그래머에게 있어서는, 프로그래머가 실행하고 싶은 통신 API가 어느 URL에 위치하는지가 명백해지는 것이 특징이다.
각각의 통신 API에 대해, 상기한 API 카테고리 이하의 디렉토리에 URL이 규정되어 있다.
이상이, API의 기본적인 구성의 설명이다. 이어서, 각 API 카테고리 내부의 각 API의 사양에 대해 설명한다.
<디지털 카메라(100)의 고정 정보 또는 상태 정보를 취득하는 API>
도 5의 API 표(500)는, 디지털 카메라(100)의 고정 정보 또는 상태 정보를 취득하는 API군을 나타낸 표이며, 도 4의 API 카테고리 408 및 409에 속하는 API를 나타낸다. 표의 표기에 있어서, API 명(URL)은 생략하고 있다. 실제로는 API 502는 다음과 같다
http://192.168.1.1:8080/api/ver1/devicestatus/storage
이하에서 설명하는 모든 API의 표기에 있어서, API 명(URL)은 생략하고 있다.
API 501은, 디지털 카메라(100)의 고정 정보를 취득하는 API다. 본 API를 GET(401)을 사용하여 실행하면, 제품명, 제조자 명, 펌웨어 버전 및 시리얼 넘버 등, 원칙적으로 변경되지 않는 고정의 기기정보를 취득할 수 있다. 도시하지 않았지만, 고정의 기기정보는 media access control(MAC) 어드레스를 더 포함한다.
API 502는, 디지털 카메라(100)에 장착된 미디어 등 기록매체(110)의 정보를 취득하는 API다. 본 API를 GET(401)을 사용하여 실행하면, Secure Digital(SD) 카드나 Compact Flash(CF) 카드 등의 미디어의 종류, 액세스 능력(Read/Write, Read Only, 또는 Write Only), 보존 가능 용량, 현재의 빈 용량과, 보존되어 있는 콘텐츠의 총 수를 취득할 수 있다.
API 503은, 디지털 카메라(100)에 장착된 배터리(도 1a, 도 1b 및 도 1c에 미도시)의 정보를 취득하는 API다. 본 API를 GET(401)을 사용하여 실행하면, 배터리의 명칭, 배터리의 잔량, 및 배터리의 열화도를 취득할 수 있다.
디지털 카메라(100)의 상태 정보는, 상기 이외에, 디지털 카메라(100)의 내부 온도, 디지털 카메라(100)가 렌즈 교환식의 디지털 카메라이면, 디지털 카메라(100)에 장착되어 있는 렌즈의 제품명과 종류 등의 렌즈 정보를 더 포함한다.
API 502 및 503은, 디지털 카메라(100)의 상태 정보를 취득하는 API이기 때문에, API 502 및 503의 URL이 같은 API 카테고리 내의 디렉토리에 규정되어 있는 것이 특징이다.
도6은, 디지털 카메라(100)와 스마트 디바이스(200)를 접속하고, 도 5에서 나타낸 통신 API를 실행했을 때의 처리의 흐름을 나타낸 시퀀스다. API를 실행하기 위해 필요한 Wi-Fi 접속의 처리와 기기 발견의 처리는 이미 실행된 것으로 가정하여 여기에서의 설명은 생략한다.
스텝 S601 및 S602는, API 501을 실행했을 때의 시퀀스이다. 스텝 S603 및 S604는, API 502를 실행했을 때의 시퀀스이다.
스텝 S601에서, 스마트 디바이스(200)의 제어부(201)는, 통신부(211)를 거쳐 API 501을 GET(401)을 사용하여 디지털 카메라(100)로부터 리퀘스트한다.
스텝 S602에서, 디지털 카메라(100)의 제어부(101)가 통신부(111)를 거쳐서 이 리퀘스트를 수신한 것을 검지하면, 제어부(101)는 제품명, 제조자 명, 펌웨어 버전 및 시리얼 넘버를 불휘발성 메모리(103)에서 취득한다. 그리고, 제어부(101)는 리스폰스용 JSON 구문에 근거한 데이터 세트로 취득한 정보를 포맷한다. 또한, 제어부(101)는 포맷한 데이터 세트를 리스폰스 보디에 기술하고, 리스폰스 보디를 통신부(111)를 거쳐 스마트 디바이스(200)에 송신한다.
스텝 S603에서, 스마트 디바이스(200)의 제어부(201)는, 통신부(211)를 거쳐 API 502를 GET(401)을 사용하여 디지털 카메라(100)로부터 리퀘스트한다.
스텝 S604에서, 디지털 카메라(100)의 제어부(101)가 통신부(111)를 거쳐 이 리퀘스트를 수신한 것을 검지하면, 제어부(101)는 다양한 정보를 기억매체(110) 또는 불휘발성 메모리(103)에서 취득한다. 여기에서 취득되는 정보는, 예를 들면, 기억매체(110)의 미디어의 종류, 액세스 능력, 보존 가능 용량, 빈 용량 및 보존되어 있는 콘텐츠의 총 수다. 취득된 정보는 리스폰스용 JSON 구문에 근거한 데이터 세트로 포맷된다.
그리고, 제어부(101)는 포맷한 데이터 세트를 리스폰스 보디에 기술하고, 리스폰스 보디를 통신부(111)를 거쳐 스마트 디바이스(200)에 송신한다. API 503을 포함하는 본 API 카테고리에 속하는 모든 API는 S603 및 S604와 유사하게 처리하기 때문에, 다른 API들의 처리의 설명은 생략한다.
이상이, 디지털 카메라(100)의 고정 정보 또는 상태 정보를 취득하는 API에 관한 설명이다.
<디지털 카메라(100)의 메뉴 기능의 설정을 취득 또는 변경하는 API>
도 7의 API 표(700)는, 디지털 카메라(100)의 메뉴 기능의 설정을 취득 또는 변경하는 API 군을 나타낸 표이며, 도 4의 API 카테고리 410에 속하는 API를 나타낸다. 본 실시형태에 있어서의 디지털 카메라(100)의 메뉴 기능은, 메뉴 형식으로 일람되는 각종 설정 항목을 가리킨다.
API 701은, 디지털 카메라(100)의 메뉴 기능에 의해 설정할 수 있는 일시 정보를 취득 또는 변경하는 API다. 본 API의 일시 정보는 Request for Comments(RFC) 1123에 준거한 형식으로 표기된다. 일시 정보는 다른 규격에 준거한 표기되거나, 또는 독자의 형식에 준거하여 표기되어도 된다. 본 API를 GET(401)을 사용하여 실행하면, 디지털 카메라(100)에 설정되어 있는 일시 정보를 취득할 수 있다. 또한, 규정된 표기에 준거하여 일시의 설정값을 리퀘스트 보디에 기술해서 PUT(403)을 사용하여 API를 실행하면, 리퀘스트 보디에 기술한 일시의 설정값이 디지털 카메라(100)에 반영된다.
API 702는, 촬영에 의해 생성되는 콘텐츠(화상) 파일에 기록되는 메타 정보의 1개인 저작권자 명의 설정 정보를 취득, 변경 또는 삭제를 행하는 API다. 본 API를 GET(401)을 사용하여 실행하면, 현재 설정되어 있는 저작권자 명을 취득할 수 있다. 또한, 저작권자 명을 리퀘스트 보디에 기술해서 PUT(403)을 사용하여 API를 실행하면, 리퀘스트 보디에 기술한 저작권자 명이 디지털 카메라(100)에 반영된다. 본 API를 DELETE(404)를 사용하여 실행하면, 저작권자 명이 초기값으로 변경된다. 본실시형태에서는 초기값이 빈 상태이기 때문에, 기록되어 있었던 저작권자 명이 클리어된다.
디지털 카메라(100)의 메뉴 설정은 상기에 한정되지 않는다. 도시하지 않았지만, 메뉴 설정은, 기록매체(110)의 포맷의 지시, 디지털 카메라(100)의 조작 음의 설정과, 디지털 카메라(100)를 자동적으로 전원 오프할 때까지의 시간을 설정하는 오토 파워오프 설정을 포함한다.
여기에서 특징적인 것은 이하와 같은 점이다. 도 7의 API의 사양은, PUT 메소드와 같이 리퀘스트와 리스폰스의 양쪽에 JSON 구문이 부수되는 메소드의 경우, 리스폰스 보디에 기술하는 JSON 구문과 리퀘스트 보디에 기술하는 JSON 구문이 같은 형식을 갖는다. 구체적으로는, API 701에서는, 리퀘스트와 리스폰스의 양쪽 모두, JSON의 "datetime"과 "dst"의 2개의 필드 명이 동일하고, 값의 형식도 RFC 1123에 준거한 형식으로 동일하다. 마찬가지로, API 702에 있어서도, JSON의 필드 명이 "copyright"로 동일하다. 이러한 사양으로 함으로써, JSON 구문이 동일하기 때문에, 디지털 카메라(100)를 제어하기 위한 스마트 디바이스(200)의 제어 프로그램을 작성하는 프로그래머는, HTTP 메소드 각각에 대해 처리 프로그램을 다르게 작성할 필요가 없어진다. 프로그래머는, 디지털 카메라(100)로부터 송신된 리스폰스 보디에 기술된 JSON 구문을 복제하여 복제한 JSON 구문의 필요한 부분 만을 변경한다. 그후, 프로그래머는, 그 결과 얻어지는 JSON 구문을, PUT 메소드를 실행할 때의 리퀘스트 보디에 기술하는 JSON 구문으로서 그대로 활용할 수 있다. 이것은 프로그램 량이 줄어든다고 하는 장점을 제공한다.
도8은, 도 7에서 나타내는 통신 API를 실행했을 때의 처리의 흐름을 나타내는 시퀀스이다.
스텝 S801, S802, S803 및 S804는, API 701을 실행했을 때의 시퀀스이다.
스텝 S801에서, 스마트 디바이스(200)의 제어부(201)는, 통신부(211)를 거쳐 API 701을 GET(401)을 사용하여 디지털 카메라(100)로부터 리퀘스트한다.
스텝 S802에서, 디지털 카메라(100)의 제어부(101)가 통신부(111)를 거쳐, 이 리퀘스트를 수신한 것을 검지하면, 제어부(101)는 일시의 정보를 불휘발성 메모리(103)에서 취득하고, 일시 정보를 리스폰스용 JSON 구문에 근거한 데이터 세트로 포맷한다. 그리고, 제어부(101)는 포맷한 데이터 세트를 리스폰스 보디에 기술하고, 리스폰스 보디를 통신부(111)를 거쳐 스마트 디바이스(200)에 송신한다.
스텝 S803에서, 스마트 디바이스(200)의 제어부(201)는, 프로그램 처리를 통해 작업용 메모리(204)에 기록된 일시의 정보를, 리퀘스트용 JSON 구문에 근거한 데이터 세트로 포맷해서, 데이터 세트를 리퀘스트 보디에 기술한다. 그리고, 제어부(201)는 통신부(211)를 거쳐 API 701을 PUT(403)을 사용하여 디지털 카메라(100)로부터 리퀘스트한다.
스텝 S804에서, 디지털 카메라(100)의 제어부(101)가 통신부(111)를 거쳐, 이 리퀘스트를 수신한 것을 검지하면, 제어부(101)는 리퀘스트 보디에 기술된 JSON 구문을 해석하고, 리퀘스트된 일시 정보를 불휘발성 메모리(103)에 기록한다. 설정이 완료하면, 제어부(101)는 설정이 완료한 일시 정보를 JSON 구문에 근거한 데이터 세트로 포맷해서, 데이터 세트를 리스폰스 보디에 기술하고, 리스폰스 보디를 통신부(111)를 거쳐 스마트 디바이스(200)에 송신한다.
API 702는 스텝 S801 내지 S804와 유사한 시퀀스로 처리되기 때문에, API 702의 처리의 설명은 생략한다.
이상이, 디지털 카메라(100)의 메뉴 설정을 취득 또는 변경하는 API에 관한 설명이다.
<디지털 카메라(100)의 촬영 기능을 실행하는 API>
도 9의 API 표(900)는, 디지털 카메라(100)의 촬영 기능을 실행하는 API 군을 나타낸 표이며, 도 4의 API 카테고리 411에 속하는 API를 나타낸다.
API 901은, 정지화상을 촬영하는 API다. 본 API를 POST(402)를 사용하여 실행하면, 디지털 카메라(100)는 촬영 처리를 실행하고, 생성된 콘텐츠(정지화상) 파일)를 기록매체(110)에 기록한다.
API 902는, 디지털 카메라(100)를 사용하여 동화상 촬영을 실행하는 API다. 본 API를 POST 메소드를 사용하여 실행하면, 디지털 카메라(100)에게 동화상 촬영의 개시와 정지를 지시할 수 있다. 본 API를 POST(402)를 사용하여 실행하면, 디지털 카메라(100)는 생성된 콘텐츠(동화상) 파일을 기록매체(110)에 보존한다.
도10은, 도 9에서 나타내는 통신 API를 실행했을 때의 처리의 흐름을 나타내는 시퀀스이다.
스텝 S1001 및 S1002는 API 901을 실행했을 때의 시퀀스이다. 스텝 S1003, S1004, S1005 및 S1006은 API 902를 실행했을 때의 시퀀스이다.
스텝 S1001에서, 스마트 디바이스(200)의 제어부(201)는, 프로그램 처리를 통해 작업용 메모리(204)에 기록된 정지화상 촬영 지시를 취득한다. 그리고, 제어부(201)는 정지화상 촬영 지시를 리퀘스트용 JSON 구문에 근거한 데이터 세트로 포맷해서 데이터를 리퀘스트 보디에 기술하고, 통신부(211)를 거쳐 API 901을 POST(402)를 사용하여 디지털 카메라(100)로부터 리퀘스트한다. 스텝 S1001에서는, 정지화상 촬영을 할 때, AF을 실행하는 지시가 내려진다. 디지털 카메라(100)의 제어부(101)가 통신부(111)를 거쳐 이 리퀘스트를 수신한 것을 검지하면, 제어부(101)는 AF처리와 촬영 처리를 실행한다. 촬영 처리가 완료하면, 제어부(101)는 생성된 콘텐츠(정지화상) 파일을 기록매체(110)에 기록한다.
스텝 S1002에서, 제어부(101)는, 리스폰스용 JSON 구문에 근거한 데이터 세트로 콘텐츠 파일을 포맷한다. 그리고, 제어부(101)는 포맷한 데이터 세트를 리스폰스 보디에 기술하고, 통신부(111)를 거쳐 리스폰스 보디를 스마트 디바이스(200)에 송신한다.
스텝 S1003에서, 스마트 디바이스(200)의 제어부(201)는, 프로그램 처리를 통해 작업용 메모리(204)에 기록된 동화상 촬영의 개시 지시를 취득한다. 그리고, 제어부(201)는 동화상 촬영의 개시 지시를 리퀘스트용 JSON 구문에 근거한 데이터 세트로 포맷해서 데이터 세트를 리퀘스트 보디에 기술하고, 통신부(211)를 거쳐 API 902를 POST(402)를 사용하여 디지털 카메라(100)로부터 리퀘스트한다. 스텝 S1003에서는, 녹화를 개시하는 지시가 내려진다. 디지털 카메라(100)의 제어부(101)가 통신부(111)를 거쳐 이 리퀘스트를 수신한 것을 검지하면, 제어부(101)는 동화상의 녹화 처리를 개시한다.
스텝 S1004에서, 제어부(101)는 녹화의 개시 처리가 완료하면, 리스폰스용 JSON 구문에 근거한 데이터 세트로 콘텐츠 파일을 포맷한다. 그리고, 제어부(101)는 포맷한 데이터 세트를 리스폰스 보디에 기술하고, 통신부(111)를 거쳐 리스폰스 보디를 스마트 디바이스(200)에 송신한다.
스텝 S1005에서, 스마트 디바이스(200)의 제어부(201)는, 프로그램 처리를 통해 작업용 메모리(204)에 기록된 동화상 촬영의 정지 지시를 취득한다. 그리고, 제어부(201)는 동화상 촬영의 정지 지시를 리퀘스트용 JSON 구문에 근거한 데이터 세트로 포맷해서 데이터 세트를 리퀘스트 보디에 기술하고, 통신부(211)를 거쳐 API 902를 POST(402)를 사용하여 디지털 카메라(100)로부터 리퀘스트한다. 스텝 S1005에서는, 녹화를 정지하는 지시가 내려진다. 디지털 카메라(100)의 제어부(101)가 통신부(111)를 거쳐 이 리퀘스트를 수신한 것을 검지하면, 제어부(101)는 녹화를 종료한다. 녹화의 정지 처리가 완료하면, 제어부(101)는 생성된 콘텐츠(동화상) 파일을 기록매체(110)에 기록한다.
스텝 S1006에서, 제어부(101)는, 리스폰스용 JSON 구문에 근거한 데이터 세트로 콘텐츠 파일을 포맷한다. 그리고, 제어부(101)는 포맷한 데이터 세트를 리스폰스 보디에 기술하고, 통신부(111)를 거쳐 리스폰스 보디를 스마트 디바이스(200)에 송신한다.
이상이, 디지털 카메라(100)의 촬영 기능을 실행하는 API에 관한 설명이다.
<디지털 카메라(100)의 촬영 파라미터를 취득 또는 변경하는 API>
도 11의 API 표(1100)는, 디지털 카메라(100)의 촬영 파라미터를 취득 또는 변경하는 API 군을 나타낸 표이며, 도 4의 API 카테고리 412에 속하는 API를 나타낸다.
API 1101은, 디지털 카메라(100)의 노출 보정의 값을 취득 또는 변경하는 API다. 본 API를 GET(401)을 사용하여 실행하면, 디지털 카메라(100)에 설정되어 있는 노출 보정의 현재값과 설정 가능값을 취득할 수 있다. 설정 가능값 중에서 노출 보정의 값을 픽업해서 리퀘스트 보디에 기술하고 PUT(403)을 사용하여 API를 실행하면, 리퀘스트 보디에 기술한 노출 보정의 값이 디지털 카메라(100)에 반영된다.
API 1102는, 디지털 카메라(100)의 ISO 감도의 값을 취득 또는 변경하는 API다. 본 API를 GET(401)을 사용하여 실행하면, 디지털 카메라(100)에 설정되어 있는 ISO 감도의 현재값과 설정 가능값을 취득할 수 있다. 설정 가능값 중에서 ISO 감도의 값을 픽업해서 리퀘스트 보디에 기술하고, PUT(403)을 사용하여 API를 실행하면, 리퀘스트 보디에 기술한 ISO 감도의 값이 디지털 카메라(100)에 반영된다.
API 1103은, 디지털 카메라(100)의 화이트 밸런스의 값을 취득 또는 변경하는 API다. 본 API를 GET(401)을 사용하여 실행하면, 디지털 카메라(100)에 설정되어 있는 화이트 밸런스의 현재값과 설정 가능값을 취득할 수 있다. 설정 가능값 중에서 화이트 밸런스의 값을 픽업해서 리퀘스트 보디에 기술하고, PUT(403)을 사용하여 API를 실행하면, 리퀘스트 보디에 기술한 화이트 밸런스의 값이 디지털 카메라(100)에 반영된다.
API 1104는 디지털 카메라(100)의 모든 촬영 파라미터의 값을 취득 또는 변경하는 API다. 본 API를 GET(401)을 사용하여 실행하면, 디지털 카메라(100)에 설정되어 있는 촬영 파라미터들 각각의 현재값과 설정 가능값을 취득할 수 있다. 설정 가능값들 중에서 특정한 파라미터의 값을 픽업해서 리퀘스트 보디에 기술하고, PUT(403)을 사용하여 API를 실행하면, 리퀘스트 보디에 기술한 파라미터의 값이 디지털 카메라(100)에 반영된다.
촬영 파라미터의 예는, 상기한 이외에, 조리개 값(AV값), 시간 값(TV값), 색온도, 정지화상 촬영 화질, 및 동화상 촬영 화질을 들 수 있다.
여기에서 특징적인 것은, 각각의 API의 사양이, 본 API 카테고리에 속하는 각 API의 리스폰스 보디에 기술하는 JSON 구문이 같은 형식으로 되어 있는 점이다. 구체적으로는, 현재값의 필드 명을 "value"로 균일하게 칭하고, 설정 가능값의 필드 명을 "ability"로 균일하게 칭하고 있다. 이와 같이 함으로써, 촬영 파라미터의 종류마다, 또는 HTTP 메소드마다 처리를 분리할 필요가 없어진다. 그 때문에, 디지털 카메라(100)를 제어하기 위한 스마트 디바이스(200)의 제어 프로그램을 작성하는 프로그래머는, API 카테고리 412의 모든 촬영 파라미터를 같은 함수를 사용하여 처리하는 것이 가능하게 된다. 즉, 프로그래머는 촬영 파라미터의 종류마다 처리를 다르게 작성할 필요가 없다. 이것은 프로그램 량이 줄어든다고 하는 장점을 제공한다.
도 12는, 도 11에서 나타내는 통신 API를 실행했을 때의 처리의 흐름을 나타내는 시퀀스이다.
스텝 S1201, S1202, S1203 및 S1204는, API 1101을 실행했을 때의 시퀀스이다.
스텝 S1201에서, 스마트 디바이스(200)의 제어부(201)는, 통신부(211)를 거쳐 API 1101을 GET(401)을 사용하여 디지털 카메라(100)로부터 리퀘스트한다.
스텝 S1202에서, 디지털 카메라(100)의 제어부(101)가 통신부(111)를 거쳐 이 리퀘스트를 수신한 것을 검지하면, 제어부(101)는 노출 보정의 현재값과 설정 가능값을 작업용 메모리(104) 및 불휘발성 메모리(103)에서 취득한다. 그리고, 제어부(101)는 노출 보정의 현재값과 설정 가능값을 리스폰스용 JSON 구문에 근거한 데이터 세트로 포맷한다. 제어부(101)는 포맷한 데이터 세트를 리스폰스 보디에 기술하고, 통신부(111)를 거쳐 리스폰스 보디를 스마트 디바이스(200)에 송신한다.
스텝 S1203에서, 스마트 디바이스(200)의 제어부(201)는, 프로그램 처리를 통해 작업용 메모리(204)에 기록된 노출 보정의 값을 취득한다. 그리고, 제어부(201)는, 노출 보정의 값을 리퀘스트용 JSON 구문에 근거한 데이터 세트로 포맷해서 데이터 세트를 리퀘스트 보디에 기술하고, 통신부(211)를 거쳐 API 701을 PUT(403)을 사용하여 디지털 카메라(100)로부터 리퀘스트한다. 디지털 카메라(100)의 제어부(101)가 통신부(111)를 거쳐 이 리퀘스트를 수신한 것을 검지하면, 제어부(101)는, 리퀘스트 보디에 기술된 JSON 구문을 해석하고, 리퀘스트된 노출 보정의 값을 작업용 메모리(104) 또는 불휘발성 메모리(103)에 기록한다.
스텝 S1204에서, 처리가 완료하면, 제어부(101)는, 설정이 완료한 노출 보정의 값을 JSON 구문에 근거한 데이터 세트로 포맷해서 데이터 세트를 리스폰스 보디에 기술하고, 통신부(111)를 거쳐 리스폰스 보디를 스마트 디바이스(200)에 송신한다.
API 1102 및 1103은 모두 상기와 유사한 시퀀스로 처리하기 때문에, API 1102 및 1103의 처리의 설명은 생략한다. 동일한 JSON 구문의 형식이 사용되기 때문에, 스텝 S1203에서의 JSON 구문의 해석에서도, 이와 유사한 처리를 사용할 수 있다. 이 때문에, 보다 효율적으로 어플리케이션을 실장할 수 있다.
이상이, 디지털 카메라(100)의 촬영 파라미터를 취득 또는 변경하는 API에 관한 설명이다.
<디지털 카메라(100)에 의해 촬영된 스루 화상을 취득하는 API>
도 13의 API 표(1300)는, 디지털 카메라(100)에 의해 촬영된 스루 화상(리모트용 라이브 뷰 화상)을 취득하는 API 군을 나타낸 표이며, 도 4의 API 카테고리 413에 속하는 API를 나타낸다.
API 1301은, 디지털 카메라(100)에 의한 스루 화상의 생성의 개시와 종료를 지시하는 API다. 리퀘스트 보디에 스루 화상의 사이즈와 디지털 카메라(100)의 표시부(106)에 스루 화상을 표시할 것인지 아닌지의 지시를 기술해서, 본 API를 POST(402)를 사용하여 실행하면, 디지털 카메라(100)는 지시된 내용에 근거하여 스루 화상의 생성을 개시 및 정지한다.
API 1302는, 디지털 카메라(100)에 의해 촬영된 스루 화상을 1 프레임 취득하는 API다. 본 API를 GET(401)을 사용하여 실행하면, API 1301에 의해 설정된 스루 화상을 1 프레임 취득할 수 있다.
API 1303은, 디지털 카메라(100)에 의해 촬영된 스루 화상을 청크(chunk) 송신에 의해 취득하는 API다. 청크 송신은, HTTP 1.1(RFC 2616)에서 정의되어 있는 데이터 전송 메커니즘의 1개다. 청크 송신은, 사전에 리스폰스 데이터 전체의 사이즈가 알려지지 않아도, 데이터의 각 청크의 사이즈를 기재하여 리스폰스를 되돌리는 송신 방법이다. 청크 전송은 공지의 기술이기 때문에, 상세한 메커니즘에 대해서는 설명을 생략한다. 본 API를 GET(401)을 사용하여 실행하면, API 표(1300)에 나타낸 것과 같이, 스루 화상의 사이즈 정보와 스루 화상의 실제 데이터의 순서로 스루 화상의 데이터가 계속해서 송신된다. 본 API를 DELETE(404)를 사용하여 실행하면, API 표(1300)에 나타낸 것과 같이, 스루 화상의 사이즈가 0으로 송신되고, 스루 화상의 청크 송신이 정지한다.
도 14는, 도 13에 나타내는 통신 API를 실행했을 때의 처리의 흐름을 나타내는 시퀀스이다.
스텝 S1401 및 S1402는, API 1301을 실행했을 때의 시퀀스이다. 스텝 S1403 및 S1404는 API 1302를 실행했을 때의 시퀀스이다. 스텝 S1405, S1406, S1407, S1408 및 S1409는 API 1303을 실행했을 때의 시퀀스이다.
스텝 S1401에서, 스마트 디바이스(200)의 제어부(201)는, 프로그램 처리를 통해 작업용 메모리(204)에 기록된 스루 화상의 생성을 개시하기 위한 값을 취득한다. 그리고, 제어부(201)는, 스루 화상의 생성을 개시하기 위한 값을 리퀘스트용 JSON 구문에 근거한 데이터 세트로 포맷해서 데이터 세트를 리퀘스트 보디에 기술하고, 통신부(211)를 거쳐 API 1301을 POST(402)를 사용하여 디지털 카메라(100)로부터 리퀘스트한다. 스텝 S1401에서는 API 1301의 사양에 준하여, 스루 화상의 사이즈와 디지털 카메라(100)의 표시부(106)에의 스루 화상 표시 유무를 지정하는 지시가 내려진다. 디지털 카메라(100)의 제어부(101)가 통신부(111)를 거쳐 이 리퀘스트를 수신한 것을 검지하면, 제어부(101)는 리퀘스트 보디에 기술된 JSON 구문을 해석한다. 그리고, 스루 화상의 사이즈와 디지털 카메라(100)의 표시부(106)에의 스루 화상 표시의 유무를 지정하는 리퀘스트된 지시에 따라, 제어부(101)는 스루 화상의 생성 처리를 개시한다. 생성된 스루 화상은, 순차 작업용 메모리(104)에 1차 기록된다.
스텝 S1402에서, 상기 처리를 개시하면, 제어부(101)는, 리스폰스의 값을 JSON 구문에 근거한 데이터 세트로 포맷해서, 데이터 세트를 리스폰스 보디에 기술하고, 통신부(111)를 거쳐 리스폰스 보디를 스마트 디바이스(200)에 송신한다.
스텝 S1403에서, 스마트 디바이스(200)의 제어부(201)는, 통신부(211)를 거쳐 API 1302를 GET(401)을 사용하여 디지털 카메라(100)로부터 리퀘스트한다.
스텝 S1404에서, 디지털 카메라(100)의 제어부(101)가 통신부(111)를 거쳐 이 리퀘스트를 수신한 것을 검지하면, 제어부(101)는 작업용 메모리(104)에서 순차 일시적으로 기록되는 스루 화상을 취득하고, 일시적으로 기록되는 스루 화상을 리스폰스용 데이터 세트로 포맷한다. 그리고, 제어부(101)는 포맷한 데이터 세트를 리스폰스 보디에 기술하고, 통신부(111)를 거쳐 리스폰스 보디를 스마트 디바이스(200)에 송신한다.
스마트 디바이스(200)는 반복하여 API 1302를 실행함으로써, 스마트 디바이스(200) 상에서의 라이브 뷰의 표시를 실현한다.
스텝 S1405에서, 스마트 디바이스(200)의 제어부(201)는, 통신부(211)를 거쳐 API 1303을 GET(401)을 사용하여 디지털 카메라(100)로부터 리퀘스트한다. 디지털 카메라(100)의 제어부(101)가 통신부(111)를 거쳐 리퀘스트의 수신을 검지하면, 스텝 S1406에서, 제어부(101)는 순차 일시적으로 기록되는 스루 화상을 작업용 메모리(104)로부터 취득하고, API 표(1300)에 나타내는 데이터 순으로 일시적으로 기록되는 스루 화상의 청크 송신을 개시한다.
스텝 S1407에서, 청크 송신이 개시하면, 제어부(101)는 스루 화상을 리스폰스용 데이터 세트로 포맷한다. 그리고, 제어부(101)는 포맷한 데이터 세트를 리스폰스 보디에 기술하고, 통신부(111)를 거쳐 리스폰스 보디를 스마트 디바이스(200)에 송신한다.
스텝 S1408에서, 스마트 디바이스(200)의 제어부(201)는, 통신부(211)를 거쳐 API 1303을 DELETE(404)를 사용하여 디지털 카메라(100)로부터 리퀘스트한다. 디지털 카메라(100)의 제어부(101)가 통신부(111)를 거쳐 이 리퀘스트를 수신한 것을 검지하면, API 표(1300)에 나타낸 것과 같이, 제어부(101)는 청크 송신될 스루 화상의 사이즈를 0으로 송신하고, 청크 송신을 종료한다.
스텝 S1409에서, 청크 송신이 종료하면, 제어부(101)는 리스폰스용 데이터 세트로 포맷한다. 그리고, 제어부(101)는 포맷한 데이터 세트를 리스폰스 보디에 기술하고, 통신부(111)를 거쳐 리스폰스 보디를 스마트 디바이스(200)에 송신한다.
이상이, 디지털 카메라(100)의 스루 화상을 취득하는 API에 관한 설명이다.
<디지털 카메라(100)의 이벤트 정보를 취득하는 API>
도 15의 API 표(1500)는, 디지털 카메라(100)의 이벤트 정보를 취득하는 API 군을 나타낸 표이며, 도 4의 API 카테고리 414에 속하는 API를 나타낸다. 본 실시형태에서, 이벤트 정보는 디지털 카메라(100)의 상태가 변화된 것을 외부 기기에 통지하기 위한 정보를 말한다. 예를 들면, 상태 변화는, 배터리의 잔여 용량이 갱신되거나, 기록매체(110_에 보존되어 있는 콘텐츠 파일에 증감이 있거나, 유저가 디지털 카메라(100)를 조작하는 것에 의해 설정이 변경되거나, 렌즈 등 악세사리가 디지털 카메라(100)에 장착되는 경우에 대응하는 상태 변화가 있었을 경우에 해당한다. 본 실시형태에서는, 배터리 잔여 용량이 갱신되었을 경우를 예로 들어 설명한다.
API 1501은, 디지털 카메라(100)의 이벤트 정보를 취득하는 API다. 본 API는 2가지 수법으로부터 선택할 수 있다. 한가지는 이벤트 정보의 유무와 내용을 곧바로 리스폰스로서 송신하는 방법이다. 또 한가지는, 이벤트가 발생할 때까지 HTTP 스테이터스 코드 100 Continue를 송신해서 HTTP 세션을 계속하고, 이벤트가 발생할 때 리스폰스를 송신하는, 롱 폴링(long polling)으로 불리는 방법이다. 이들 방법의 어느 한 개의 지정은, URL 퀘리 파라미터를 URL에 추가함으로써 실현한다. URL 퀘리 파라미터는 공지의 기술이기 때문에, 여기에서의 설명은 생략한다. API 표(1500)에 기재한 것과 같이, 롱 폴링에 의해 이벤트 정보를 취득하기 위해, 스마트 디바이스(200)는 이하의 URL에서 API 1501을 리퀘스트한다.
http://192.168.1.1:8080/api/ver1/event/polling?continue=on
URL에서, "?continue=on"이 퀘리 파라미터다. 퀘리 파라미터를 지정하지 않고 있을 경우, 또는 "?continue=off"로 설정한 경우에는, 디지털 카메라(100)가 곧바로 리스폰스를 송신한다. 본 API를 GET(401)을 사용하여 실행하면, 디지털 카메라(100)는 이벤트 정보를 상기한 방법에 의해 취득한다.
API 1502는, 디지털 카메라(100)의 이벤트 정보를 청크 송신에 의해 취득하는 API다. 청크 송신은 위에서 설명하였기 때문에, 여기에서의 설명은 생략한다. 본 API를 GET(401)을 사용하여 실행하면, 이벤트 정보가 계속해서 송신된다. 청크 송신의 구체적인 송신 방법은 다음과 같다. 이벤트가 발생하고 있지 않는 동안에는, 디지털 카메라(100)가 이벤트가 발생하지 않고 있다는 것을 나타내는 "{}"을 송신한다. "{}"의 사이즈는 2byte이기 때문에, 디지털 카메라(100)는 "2" 및 "{}"을 이 순서로 송신한다. 이벤트가 발생했을 경우, 디지털 카메라(100)는 이벤트가 발생하였다는 것을 나타내는 JSON을 송신한다. API 1500에서는, JSON은 배터리의 잔량이 변화되었을 경우의 예를 표현하고 있다. 이때 송신되는 JSON 구문은, 각각의 API에 의해 리스폰스로서 송신되는 JSON 구문과 같다. 예를 들면, 배터리 정보는 API 503의 리스폰스 정보와 같다. 본 API를 DELETE(404)를 사용하여 실행하면, API 표(1500)에 나타낸 것과 같이, 이벤트 정보의 사이즈 정보가 0으로 송신되어, 이벤트 정보의 청크 송신이 정지한다.
도16은, 도 15에 나타내는 통신 API를 실행했을 때의 처리의 흐름을 나타내는 시퀀스이다.
스텝 S1601, S1602, S1603, S1604, S1605 및 S1606은, API 1501을 실행했을 때의 시퀀스이다. 스텝 S1607, S1608, S1609, S1610 및 S1611은 API 1502를 실행했을 때의 시퀀스이다.
스텝 S1601에서, 스마트 디바이스(200)의 제어부(201)는, 통신부(211)를 거쳐 API 1302를 GET(401)을 사용하여 디지털 카메라(100)로부터 리퀘스트한다. 이때, URL 퀘리 파라미터를 부여하지 않고 있다.
스텝 S1602에서, 디지털 카메라(100)의 제어부(101)가 통신부(111)를 거쳐 이 리퀘스트를 수신한 것을 검지하면, 제어부(101)는 작업용 메모리(104)에 기록되어 있는 이벤트 정보를 취득하고, 이벤트 정보를 리스폰스용 데이터 세트로 포맷한다. 그리고, 제어부(101)는 포맷한 데이터 세트를 리스폰스 보디에 기술하고, 리스폰스 보디를 통신부(111)를 거쳐 스마트 디바이스(200)에 송신한다. 이벤트 정보가 없는 경우에는, 제어부(101)는 이벤트 정보가 없다는 것을 나타내는 리스폰스용 데이터 세트를 송신한다.
스텝 S1603에서, 스마트 디바이스(200)의 제어부(201)는, 통신부(211)를 거쳐 API 1302를 GET(401)을 사용하여 디지털 카메라(100)로부터 리퀘스트한다. 이때, 롱 폴링을 실행한다는 것을 나타내는 URL 퀘리 파라미터를 부여하고 있다.
이벤트 정보가 없는 경우에는, S1604에 나타낸 것과 같이, 제어부(101)는 HTTP 스테이터스 코드 100 Continue를 통신부(111)를 거쳐 스마트 디바이스(200)에 송신한다. 이벤트 정보가 발생할 때까지 상기한 처리를 반복한다.
스텝 S1605에서, 제어부(101)가 이벤트 발생을 검지하면, 스텝 S1606에서, 제어부(101)는 작업용 메모리(104)에 기록되어 있는 이벤트 정보를 취득하고, 이벤트 정보를 리스폰스용 데이터 세트로 포맷한다. 그리고, 제어부(101)는 포맷한 데이터 세트를 리스폰스 보디에 기술하고, 통신부(111)를 거쳐 리스폰스 보디를 스마트 디바이스(200)에 송신한다.
스텝 S1607에서, 스마트 디바이스(200)의 제어부(201)는 통신부(211)를 거쳐 API 1502를 GET(401)을 사용하여 디지털 카메라(100)로부터 리퀘스트한다.
디지털 카메라(100)의 제어부(101)가 통신부(111)를 거쳐 이 리퀘스트를 수신한 것을 검지하면, 스텝 S1408에 나타낸 것과 같이, 제어부(101)는 작업용 메모리(104)에서 취득한 이벤트 정보에 대해 API 표(1500)에 나타내는 데이터 순으로 청크 송신을 개시한다.
스텝 S1609에서, 청크 송신이 개시하면, 제어부(101)는 리스폰스용 데이터 세트로 이벤트 정보를 포맷한다. 그리고, 제어부(101)는 포맷한 데이터 세트를 리스폰스 보디에 기술하고, 통신부(111)를 거쳐 리스폰스 보디를 스마트 디바이스(200)에 송신한다.
스텝 S1610에서, 스마트 디바이스(200)의 제어부(201)는, 통신부(211)를 거쳐 API 1502를 DELETE(404)를 사용하여 디지털 카메라(100)로부터 리퀘스트한다. 디지털 카메라(100)의 제어부(101)가 통신부(111)를 거쳐 이 리퀘스트를 수신한 것을 검지하면, API 표(1500)에 나타낸 것과 같이, 제어부(101)는 청크 송신되는 이벤트 정보의 사이즈를 0으로 송신하고, 청크 송신을 종료한다.
스텝 S1611에서, 청크 송신이 종료하면, 제어부(101)는 리스폰스용 데이터 세트를 포맷한다. 그리고, 제어부(101)는 포맷한 데이터 세트를 리스폰스 보디에 기술하고, 통신부(111)를 거쳐 리스폰스 보디를 스마트 디바이스(200)에 송신한다.
이상이, 디지털 카메라(100)의 이벤트 정보를 취득하는 API에 관한 설명이다.
<디지털 카메라(100)의 콘텐츠 파일을 취득하는 API>
도17의 API 표(1700)는, 디지털 카메라(100)에 장착된 미디어에 보존된 콘텐츠(화상)의 취득, 콘텐츠 파일의 삭제, 및 콘텐츠 파일의 조작을 행하는 API 군을 나타낸 표이다. 이 API 그룹은, 도 4의 API 카테고리 415에 속하는 API를 나타낸다.
API 1701은, 디지털 카메라(100)의 기록매체(110)에 액세스하기 위한 URL을 취득하는 API다. 본 API를 GET(401)을 사용하여 실행하면, API 표(1700)에 나타낸 것과 같은 기록매체(110)의 URL을 취득할 수 있다. 본 실시형태에서는, 기록매체(110)의 예로서 SD 카드를 사용하여 설명한다. 또한, 디지털 카메라(100)에 복수의 미디어가 장착가능한 경우에는, 복수의 URL을 취득할 수 있다.
API 1702는, 기록매체(110)에 기록되어 있는 디렉토리의 URL을 취득하는 API다. 본 API를 GET(401)을 사용하여 실행하면, API 표(1700)에 나타낸 것과 같은 디렉토리 명을 포함시킨 URL 일람을 취득할 수 있다. 본 실시형태에서는, DCF 규격에 준거한 디렉토리를 취득할 수 있다. DCF 규격은 자명한 규격이기 때문에 설명은 생략한다. 다른 예로서, 본 API를 사용하여 취득할 수 있는 디렉토리는 DCF에 준거하지 않아도 된다.
API 1703은, 디렉토리 내부에 기록되어 있는 콘텐츠 파일의 URL을 취득하는 API다. 본 API를 GET(401)을 사용하여 실행하면, API 표(1700)에 나타낸 것과 같은 기록매체(110)의 URL 일람을 취득할 수 있다. 본 API는, 콘텐츠 파일의 파일 포맷을 지정해서 콘텐츠 파일을 취득할 수 있게 한다. 지정의 방법은, URL 퀘리 파라미터를 URL에 추가하는 것이다. URL 퀘리 파라미터는 공지의 기술이기 때문에, 여기에서의 설명은 생략한다. API 표(1700)에 기재한 것과 같이, 예를 들면, Joint Photographic Experts Group(JPEG) 화상만으로 좁혀 URL 일람을 취득하기 위해, 스마트 디바이스(200)는 이하의 URL에서 API 1703을 리퀘스트한다.
http://192.168.1.1:8080/api/ver1/contents/sd/100CANON?type=jpeg
URL에서, "?type=jpeg"이 퀘리 파라미터다. 퀘리 파라미터를 지정하지 않고 있을 경우, 디지털 카메라(100)는 대상 디렉토리 내에 있는 모든 콘텐츠 파일의 URL 일람을 리스폰스로서 송신한다. URL 퀘리 파라미터에는, 도시하지 않았지만, 콘텐츠 파일의 URL의 일람을, 화상 번호의 올림 차순으로 또는 내림 차순으로, 또는 생성 일시가 새로운 순서 또는 오래된 순서를 지정하는 것도 가능하다. 또한, URL 퀘리 파라미터에서는, 동시에 복수의 항목을 지정하는 것도 가능하다.
본 API를 DELETE(404)를 사용하여 실행하면, 지정한 URL의 디렉토리와 이 디렉토리 내에 기록되어 있는 콘텐츠 파일을 삭제한다. 콘텐츠 파일을 삭제가능한 경우에는, 모든 콘텐츠 파일을 삭제한다. 콘텐츠 파일에 프로텍트가 설정되어 콘텐츠 파일을 삭제할 수 없는 경우에는, 디렉토리와 프로텍트가 설정된 콘텐츠 파일 만을 남긴다. 본실시형태에서는 상기한 바와 같이 API가 동작하지만, 프로텍트된 콘텐츠 파일이 있는 경우에는, 콘텐츠 파일의 일체를 삭제하지 않는 처리도 가능하다.
API 1704는, 콘텐츠 파일을 취득, 조작, 혹은 삭제하는 API다. 본 API를 GET(401)을 사용하여 실행하면, 콘텐츠 파일을 취득할 수 있다. 본 API는, 콘텐츠 파일의 데이터의 종류를 지정해서 콘텐츠 파일이 취득하게 할 수 있다. 지정의 방법은, URL 퀘리 파라미터를 URL에 추가하는 것이다. URL 퀘리 파라미터는 공지의 기술이기 때문에, 여기에서의 설명은 생략한다. API 표(1700)에 기재한 것과 같이, 예를 들면, 콘텐츠 파일의 섬네일 화상 만을 취득하기 위해, 스마트 디바이스(200)는 이하의 URL에서 API 1704를 리퀘스트한다.
http://192.168.1.1:8080/api/ver1/contents/sd/100CANON/IMG_0001.JPG?kind=thumbnail
URL에서, "?kind=thumbnail"이 퀘리 파라미터다. 퀘리 파라미터를 지정하지 않고 있을 경우, 디지털 카메라(100)는 화상 파일 본체를 송신한다. 본 URL 퀘리 파라미터에서 지정할 수 있는 데이터의 종류는, 매립 화상과, 화상 파일의 메타 정보를 들 수 있다.
본 API는 콘텐츠 파일을 조작할 수 있다. 콘텐츠 파일의 조작은, 프로텍트의 설정, 화상의 회전, 또는 레이팅(rating) 정보의 부여 등을 가리킨다. 리퀘스트 보디에 조작의 내용과 값을 각각 기술해서 본 API를 PUT(403)을 사용하여 실행하면, 디지털 카메라(100)는 지시된 내용에 근거하여 URL에서 지정한 콘텐츠 파일을 조작한다.
본 API를 DELETE(404)를 사용하여 실행하면, 지정한 URL의 콘텐츠 파일을 삭제한다. 그러나, 콘텐츠 파일에 프로텍트가 설정되어 콘텐츠 파일이 삭제되지 않는 경우에는 콘텐츠 파일을 삭제할 수 없다.
도18은, 도17에서 나타내는 통신 API를 실행했을 때의 처리의 흐름을 나타내는 시퀀스이다.
스텝 S1801 및 S1802는 API 1701을 실행했을 때의 시퀀스이다. 스텝 S1803 및 S1804는 API 1702를 실행했을 때의 시퀀스이다. 스텝 S1805 및 S1806은 API 1703을 실행했을 때의 시퀀스이다. 스텝 S1805 및 S1806은 API 1703을 실행했을 때의 시퀀스이다. 스텝 S1807, S1808, S1809 및 S1810은 API 1704를 실행했을 때의 시퀀스이다.
스텝 S1801에서, 스마트 디바이스(200)의 제어부(201)는, 통신부(211)를 거쳐 API 1701을 GET(401)을 사용하여 디지털 카메라(100)로부터 리퀘스트한다.
스텝 S1802에서, 디지털 카메라(100)의 제어부(101)가 통신부(111)를 거쳐 이 리퀘스트를 수신한 것을 검지하면, 제어부(101)는 작업용 메모리(104)에 기록되어 있는 장착 미디어의 URL을 취득하고, URL을 리스폰스용 데이터 세트로 포맷한다. 그리고, 제어부(101)는 포맷한 데이터 세트를 리스폰스 보디에 기술하고, 통신부(111)를 거쳐 리스폰스 보디를 스마트 디바이스(200)에 송신한다.
스텝 S1803에서, 스마트 디바이스(200)의 제어부(201)는, 통신부(211)를 거쳐 API 1702를 GET(401)을 사용하여 디지털 카메라(100)로부터 리퀘스트한다.
스텝 S1804에서, 디지털 카메라(100)의 제어부(101)가 통신부(111)를 거쳐, 이 리퀘스트를 수신한 것을 검지하면, 제어부(101)는 작업용 메모리(104)로부터 디렉토리의 URL 일람을 취득하고, URL 일람을 리스폰스용 데이터 세트로 포맷한다. 그리고, 제어부(101)는 포맷한 데이터 세트를 리스폰스 보디에 기술하고, 통신부(111)를 거쳐 리스폰스 보디를 스마트 디바이스(200)에 송신한다.
스텝 S1805에서, 스마트 디바이스(200)의 제어부(201)는, 통신부(211)를 거쳐 API 1703을 GET(401)을 사용하여 디지털 카메라(100)로부터 리퀘스트한다. 이때, JPEG 파일 만 픽업하도록 URL 퀘리 파라미터를 부여하고 있다.
스텝 S1806에서, 디지털 카메라(100)의 제어부(101)가 통신부(111)를 거쳐 이 리퀘스트를 수신한 것을 검지하면, 제는 작업용 메모리(104)에 기록되어 있는 JPEG 파일 만의 URL 일람을 취득하고, URL 일람을 리스폰스용 데이터 세트로 포맷한다. 그리고, 제어부(101)는 포맷한 데이터 세트를 리스폰스 보디에 기술하고, 통신부(111)를 거쳐 리스폰스 보디를 스마트 디바이스(200)에 송신한다.
스텝 S1807에서, 스마트 디바이스(200)의 제어부(201)는, 통신부(211)를 거쳐 API 1704를 GET(401)을 사용하여 디지털 카메라(100)로부터 리퀘스트한다. 이때, 섬네일 화상을 취득하도록 URL 퀘리 파라미터를 부여하고 있다.
스텝 S1808에서, 디지털 카메라(100)의 제어부(101)가 통신부(111)를 거쳐, 이 리퀘스트를 수신한 것을 검지하면, 제어부(101)는 기록매체(110)에 기록되어 있는 화상 파일로부터 섬네일 파일을 취득하고, 섬네일 파일을 리스폰스용 데이터 세트로 포맷한다. 그리고, 제어부(101)는 포맷한 데이터 세트를 리스폰스 보디에 기술하고, 통신부(111)를 거쳐 리스폰스 보디를 스마트 디바이스(200)에 송신한다.
스텝 S1809에서, 스마트 디바이스(200)의 제어부(201)는, 프로그램 처리를 통해 작업용 메모리(204)에 기록된 콘텐츠 파일을 조작하기 위한 지시의 내용을 취득한다. 그리고, 제어부(201)는 콘텐츠 파일을 조작하기 위한 지시의 내용을 리퀘스트용 JSON 구문에 근거한 데이터 세트로 포맷해서 데이터 세트를 리퀘스트 보디에 기술하고, 통신부(211)를 거쳐 API 1301을 POST(402)를 사용하여 디지털 카메라(100)로부터 리퀘스트한다. 본실시형태에서는, API 표(1700)에 기재한 것 같이, 콘텐츠 파일에 프로텍트 처리를 실시하도록 지시하고 있다. 디지털 카메라(100)의 제어부(101)가 통신부(111)를 거쳐 이 리퀘스트를 수신한 것을 검지하면, 제어부(101)는 리퀘스트 보디에 기술된 JSON 구문을 해석한다. 그리고, 리퀘스트된 지시에 근거하여, 제어부(101)는 기록매체(110)의 콘텐츠 파일에 프로텍트 속성을 부여한다.
스텝 S1810에서, 상기 처리가 완료하면, 제어부(101)는, 리스폰스의 값을 JSON 구문에 근거한 데이터 세트로 포맷해서 데이터 세트를 리스폰스 보디에 기술하고, 통신부(111)를 거쳐 리스폰스 보디를 스마트 디바이스(200)에 송신한다.
이상이, 디지털 카메라(100)의 콘텐츠 파일을 취득하는 API에 관한 설명이다.
<본 실시형태에 따른 스마트 디바이스의 동작>
상기한 바와 같이, 본 실시형태에 따른 통신 API는 다양한 특징을 가진다. 특징들 중에서 1개는, 리스폰스 보디에 기술하는 JSON 구문과, 리퀘스트 보디에 기술하는 JSON 구문이 같은 형식으로 되어 있는 점이다. 이 사양에 의해, JSON 구문이 동일하기 때문에, 디지털 카메라(100)를 제어하기 위한 스마트 디바이스(200)의 제어 프로그램을 작성하는 프로그래머는 HTTP 메소드 각각에 대해 처리 프로그램을 다르게 작성할 필요가 없어진다. 프로그래머는 디지털 카메라(100)로부터 송신된 리스폰스 보디에 기술된 JSON 구문을 복제하고 복제된 JSON 구문의 필요한 부분 만을 변경한다. 그후, 프로그래머는, 그 결과 얻어진 JSON 구문을, PUT 메소드를 실행할 때의 리퀘스트 보디에 기술하는 JSON 구문으로서 그대로 활용할 수 있다.
또 다른 특징은, 특정한 API 카테고리에 속하는 각 API의 리스폰스 보디에 기술하는 JSON 구문이 같은 형식으로 되어 있는 점이다. 이 사양에 의해, 촬영 파라미터의 종류마다, 또한 HTTP 메소드마다 처리를 분리할 필요가 없다. 그 때문에, 디지털 카메라(100)를 제어하기 위한 스마트 디바이스(200)의 제어 프로그램을 작성하는 프로그래머는, API 카테고리 412의 모든 촬영 파라미터를 같은 함수를 사용하여 처리하는 것이 가능하게 된다. 즉, 프로그래머는 촬영 파라미터의 종류마다 처리를 다르게 작성할 필요가 없다. 이것은 프로그램 량이 줄어든다고 하는 장점을 제공한다.
도 19 및 도20을 참조하여, 디지털 카메라(100)를 제어하기 위한 스마트 디바이스(200)의 제어 프로그램의 관점에서 전술한 특징을 구체적으로 설명한다.
우선, JSON 구문의 형식이 전혀 고려되지 않고 있는 종래의 경우에 대해서 서술한다. 리스폰스 보디에 기술하는 JSON 구문과 리퀘스트 보디에 기술하는 JSON 구문이 다른 형식이고, 더구나, API 카테고리에 속하는 API의 리스폰스 보디에 기술하는 JSON 구문이 다른 형식으로 되어 있는 경우를 예로 들어 설명을 한다.
도 19는, 상기한 경우의, 디지털 카메라(100)를 제어하기 위한 스마트 디바이스(200)의 제어 프로그램의 흐름도다.
본 흐름도의 처리는, 디지털 카메라(100)와 스마트 디바이스(200)가 접속한 상태에서, 어플리케이션에 의해 API가 리퀘스트될 때 개시된다.
스텝 S1901에서, 스마트 디바이스(200)의 제어부(201)는, 어플리케이션에 의해 어느 API가 리퀘스트되는를 판단한다. 일시 정보를 취득 또는 변경하는 API가 리퀘스트되었을 경우, 스텝 S1902로 처리를 진행한다. 노출 보정값을 취득 또는 변경하는 API가 리퀘스트되었을 경우, 스텝 S1910으로 처리를 진행한다. ISO 감도값을 취득 또는 변경하는 API가 리퀘스트되었을 경우, 스텝 S1918로 처리를 진행한다. 일시 정보, 노출 보정값 및 ISO 감도값은, 설명을 위한 일례이며, 다른 API가 리퀘스트될 수 있다.
우선, 일시 정보를 취득 또는 변경하는 API가 리퀘스트되었을 경우에 대해 설명한다.
스텝 S1902에서, 스마트 디바이스(200)의 제어부(201)는, 어느 HTTP 메소드가 리퀘스트되었는지를 판단한다. 일시 정보를 취득하기 위해서, GET 메소드가 리퀘스트된다. 일시 정보를 변경하기 위해서, PUT 메소드가 리퀘스트된다. 따라서, 본 스텝에서는, 제어부(201)는 GET 메소드가 리퀘스트되었는지 또는 PUT 메소드가 리퀘스트되었는지를 판단한다. GET 메소드가 리퀘스트되었을 경우, 스텝 S1903으로 처리를 진행한다.
스텝 S1903에서, 제어부(201)는, 일시 정보를 취득하기 위해서, 소정의 URL에 GET 메소드를 사용하여 액세스함으로써, 일시 정보를 취득하는 API를 리퀘스트한다.
PUT 메소드가 리퀘스트되었을 경우, 스텝 S1904로 처리를 진행한다.
스텝 S1904에서, 제어부(201)는, 지시에 근거하여 변경할 일시를 JSON에 기술하기 위해서, JSON의 파라미터를 생성한다.
스텝 S1905에서, 제어부(201)는, 스텝 S1904에서 생성한 파라미터를 기술한 PUT용의 JSON을 생성한다.
그후, GET와 마찬가지로, 스텝 S1903에서, 제어부(201)는, 일시 정보를 변경하기 위해, 소정의 URL에 PUT 메소드를 사용하여 액세스함으로써, 일시 정보를 변경하는 API를 리퀘스트한다.
스텝 S1903의 리퀘스트의 결과, 디지털 카메라(100)는 현재 카운트하고 있는 일시 정보를, 요구된 API에 대응하는 JSON 구문의 형식으로 기술하고, 현재 카운트하고 있는 일시 정보를 리스폰스로서 되돌린다.
스텝 S1906에서, 제어부(201)는 이 리스폰스를 수신한다.
다음에, 스텝 S1907에서, 제어부(201)는, GET 메소드의 리퀘스트에 대해 리스폰스가 행해졌는지 또는 PUT 메소드의 리퀘스트에 대해 리스폰스가 행해졌는지를 판단한다.
GET 메소드에 대해 리스폰스가 행해진 경우, 스텝 S1908에서, 제어부(201)는, GET 메소드의 리스폰스로서 되돌려지는 JSON 구문의 형식인 JSON 해석 처리를 실행하고, 리스폰스로부터 일시 정보를 추출한다. 이것에 의해, 스마트 디바이스(200)는 디지털 카메라(100)로부터 일시 정보를 취득한다.
PUT 메소드에 대해 리스폰스가 행해진 경우, 스텝 S1909에서, 제어부(201)는, PUT 메소드의 리스폰스로서 되돌려지는 JSON 구문의 형식인 JSON 해석 처리를 실행하고, 리스폰스로부터 변경후의 일시 정보를 추출한다. 이것에 의해, 스마트 디바이스(200)는 디지털 카메라(100)로부터 일시 정보의 변경 결과를 취득한다.
이상, 일시 정보를 취득 또는 변경하는 API가 리퀘스트되었을 경우에 대해 설명했다.
다음에, 노출 보정값을 취득 또는 변경하는 API가 리퀘스트되었을 경우에 대해 설명한다
스텝 S1910에서, 제어부(201)는, 어느 HTTP 메소드가 리퀘스트되었는지를 판단한다. 노출 보정값을 취득하기 위해서, GET 메소드가 리퀘스트된다 노출 보정값을 변경하기 위해서 PUT 메소드가 리퀘스트된다. 따라서, 본 스텝에서는, 제어부(201)는 GET 메소드가 리퀘스트되었는지 또는 PUT 메소드가 리퀘스트되었는지를 판단한다. GET 메소드가 리퀘스트되었을 경우, 스텝 S1911로 처리를 진행한다.
스텝 S1911에서, 제어부(201)는, 노출 보정값을 취득하기 위해서, 소정의 URL에 GET 메소드를 사용하여 액세스함으로써, 노출 보정값을 취득하는 API를 리퀘스트한다.
PUT 메소드가 리퀘스트되었을 경우, 스텝 S1912로 처리를 진행한다.
스텝 S1912에서는, 제어부(201)는, 지시에 근거하여 변경할 노출 보정값을 JSON에 기술하기 위해서, JSON의 파라미터를 생성한다.
스텝 S1913에서, 제어부(201)는, 스텝 S1912에서 생성한 파라미터를 기술한 PUT용의 JSON을 생성한다.
그후, GET 메소드와 마찬가지로, 스텝 S1911에서, 제어부(201)는, 노출 보정값을 변경하기 위해서, 소정의 URL에 PUT 메소드를 사용하여 액세스함으로써, 노출 보정값을 변경하는 API를 리퀘스트한다.
스텝 S1911의 리퀘스트의 결과, 디지털 카메라(100)는 현재의 노출 보정값을, 요구된 API에 대응하는 JSON 구문의 형식으로 기술하고, 현재의 노출 보정값을 리스폰스로서 되돌린다.
스텝 S1914에서, 제어부(201)는 이 리스폰스를 수신한다.
다음에, 스텝 S1915에서, 제어부(201)는, GET 메소드에 대한 리퀘스트에 대해 리스폰스가 행해졌는지 PUT 메소드에 대한 리퀘스트에 대해 리스폰스가 행해졌는지 판단한다.
GET 메소드에 대해 리스폰스가 행해진 경우, 스텝 S1916에서, 제어부(201)는, GET 메소드의 리스폰스로서 되돌려지는 JSON 구문의 형식인 JSON 해석 처리를 실행하고, 리스폰스로부터 노출 보정값을 추출한다. 이것에 의해, 스마트 디바이스(200)는 디지털 카메라(100)로부터 노출 보정값을 취득한다.
PUT 메소드에 대해 리스폰스가 행해진 경우, 스텝 S1917에서, 제어부(201)는, PUT 메소드의 리스폰스로서 되돌려지는 JSON 구문의 형식인 JSON 해석 처리를 실행하고, 리스폰스로부터 변경후의 노출 보정값을 추출한다. 이것에 의해, 스마트 디바이스(200)는 디지털 카메라(100)로부터 노출 보정값의 변경 결과를 취득한다.
이상, 노출 보정값을 취득 또는 변경하는 API가 리퀘스트되었을 경우에 대해 설명했다.
다음에, ISO 감도값을 취득 또는 변경하는 API가 리퀘스트되었을 경우에 대해 설명한다.
스텝 S1918에서, 제어부(201)는, 어느 HTTP 메소드가 리퀘스트되었는지를 판단한다. ISO 감도값을 취득하기 위해서 GET 메소드가 리퀘스트된다. ISO 감도값을 변경하기 위해서 PUT 메소드가 리퀘스트된다. 따라서, 본 스텝에서는, 제어부(201)는, GET 메소드가 리퀘스트되었는지, 또는 PUT 메소드가 리퀘스트되었는지 판단한다. GET 메소드가 리퀘스트되었을 경우, 스텝 S1919로 처리를 진행한다.
스텝 S1919에서, 제어부(201)는, ISO 감도값을 취득하기 위해서, 정의 URL에 GET 메소드를 사용하여 액세스함으로써, ISO 감도값을 취득하는 API를 리퀘스트한다.
PUT 메소드가 리퀘스트되었을 경우, 스텝 S1920으로 처리를 진행한다.
스텝 S1920에서는, 제어부(201)는, 지시에 근거하여 변경할 ISO 감도값을 JSON에 기술하기 위해서, JSON의 파라미터를 생성한다.
스텝 S1921에서, 제어부(201)는, 스텝 S1920에서 생성한 파라미터를 기술한 PUT용의 JSON을 생성한다.
그후, GET 메소드와 마찬가지로, 스텝 S1919에서, 제어부(201)는, ISO 감도값을 변경하기 위해서, 소정의 URL에 PUT 메소드를 사용하여 액세스함으로써, ISO 감도값을 변경하는 API를 리퀘스트한다.
스텝 S1919의 리퀘스트의 결과, 디지털 카메라(100)는 현재의 ISO 감도값을, 요구된 AP에 대응하는 JSON 구문의 형식으로 기술하고, 현재의 ISO 감도값을 리스폰스로서 되돌린다.
스텝 S1922에서, 제어부(201)는 이 리스폰스를 수신한다.
다음에, 스텝 S1923에서, 제어부(201)는, GET 메소드에 대한 리퀘스트에 대해 리스폰스가 행해졌는지 PUT 메소드에 대한 리퀘스트에 대해 리스폰스가 행해졌는지 판단한다.
GET 메소드에 대해 리스폰스가 행해진 경우, 스텝 S1924에서, 제어부(201)는, GET 메소드의 리스폰스로서 되돌려지는 JSON 구문의 형식인 JSON 해석 처리를 실행하고, 리스폰스로부터 ISO 감도값을 추출한다. 이것에 의해, 스마트 디바이스(200)는 디지털 카메라(100)로부터 ISO 감도값을 취득한다.
한편, PUT 메소드에 대해 리스폰스가 행해진 경우, 스텝 S1925에서, 제어부(201)는, PUT 메소드의 리스폰스로서 되돌려지는 JSON 구문의 형식인 JSON 해석 처리를 실행하고, 리스폰스로부터 변경후의 ISO 감도값을 추출한다. 이것에 의해, 스마트 디바이스(200)는 디지털 카메라(100)로부터 ISO 감도값의 변경 결과를 취득한다.
이상, ISO 감도값을 취득 또는 변경하는 API가 리퀘스트되었을 경우에 대해 설명하였다.
이상과 같이, 각 API마다 PUT 메소드에 의한 리퀘스트에서 사용하는 JSON 구문의 형식이 다르면, 스텝 S1905, S1913 및 S1921에 나타낸 바와 같이, 각각에 대하여 다른 JSON 생성 프로그램을 준비할 필요가 있다. 또한, API를 리퀘스트하는 리퀘스트 메소드마다 JSON 구문의 형식이 다른 경우, 스텝 S1908, S1909, S1916, S1917, S1924 및 S1925에 나타낸 바와 같이, 각각의 리퀘스트 메소드에 대하여 다른 JSON 해석 프로그램을 준비할 필요가 있다.
이어서, 본 실시형태에서 설명하는 API를 이용한 경우에 대해 설명한다. 리스폰스 보디에 기술하는 JSON 구문과 리퀘스트 보디에 기술하는 JSON 구문이 같은 형식이며, 더구나, 특정한 API 카테고리에 속하는 API의 리스폰스 보디에 기술하는 JSON 구문이 같은 형식인 경우의 일례를 들어 설명한다.
도20은, 본 실시형태에서 설명하는 API를 이용한 경우의, 디지털 카메라(100)를 제어하기 위한 스마트 디바이스(200)의 제어 프로그램의 흐름도다.
본 흐름도의 처리는, 디지털 카메라(100)와 스마트 디바이스(200)가 접속한 상태에서, 어플리케이션에 의해 API가 리퀘스트될 때 개시된다.
스텝 S2001에서는, 도 19의 스텝 S1901과 유사한 처리가 실행되어, 어플리케이션에 의해 리퀘스트된 API의 종류가 판단된다.
우선, 스텝 S2001에서, 일시 정보를 취득 또는 변경하는 API 701이 리퀘스트되었을 경우에 대해 설명한다. 이 경우, 스텝 S2002로 처리를 진행한다.
스텝 S2002 내지 스텝 S2006에서는, 도 19의 스텝 S1902 내지 S1906과 유사한 처리가 실행된다.
다음에, 스텝2007에서는, 제어부(201)는, 리스폰스로서 되돌려지는 JSON 구문을, GET 메소드와 PUT 메소드의 양쪽에 의해 공통되어 사용할 수 있는 JSON 해석 처리를 통해 해석하고, 현재의 일시 정보 또는 일시 정보의 변경 결과를 추출한다. 이렇게, JSON 구문의 형식이 같으면, 메소드가 달라도, 해석 처리를 한 개의 해석 처리로 합칠 수 있다. 이것은 프로그램을 실장하는 부하를 경감한다.
이어서, 스텝 S2001에서, 노출 보정값을 취득 또는 변경하는 API 1101이 리퀘스트되었을 경우에 대해 설명한다. 이 경우, 처리는 스텝 S2008로 처리를 진행한다.
스텝 S2008 내지 S2012는, 도 19의 스텝 S1910 내지 스텝 S1914와 유사하다.
다음에, 스텝 S2009에서는, 제어부(201)는, 리스폰스로서 되돌려지는 JSON 구문을, GET 메소드와 PUT 메소드의 양쪽에 의해 공통되어 사용할 수 있는 JSON 해석 처리를 통해 해석하고, 현재의 노출 보정값 또는 노출 보정값의 변경 결과를 추출한다. 이렇게, JSON 구문의 형식이 같은 경우, 메소드가 달라도, 해석 처리를 한 개의 해석 처리로 합칠 수 있다. 이것은 프로그램을 실장하는 부하를 경감한다. 도 11을 참조하면, 노출 보정값의 API의 리스폰스 보디는, GET 메소드의 경우, "value"과 "ability"를 갖고, PUT 메소드의 경우 "value" 만을 갖는다. JSON 구문의 형식이 다르지만, 필드 "value"는 공통이다. 따라서, 필드 "value"를 GET와 PUT 메소드의 양쪽 경우에서 참조하고, 필드 "ability"를 PUT 메소드의 경우에만 참조하는 공통된 해석 처리를 실행하도록 해석 처리를 설계할 수 있다. 이에 따라, 필드가 모두 다른 경우에 대해 해석 처리를 설계하는 경우보다도, 프로그램 량을 줄일 수 있다.
이어서, 스텝 S2001에서, ISO 감도값을 취득 또는 변경하는 API 1102가 리퀘스트되었을 경우에 대해 설명한다. 이 경우, 스텝 S2014로 처리를 진행한다.
스텝 S2014에서는, 도 19의 스텝 S1918과 마찬가지로, 제어부(201)는 어느 HTTP 메소드가 리퀘스트되었는지를 판단한다.
GET 메소드가 리퀘스트되었을 경우, 스텝 S2009로 처리를 진행한다. 스텝 S2009에서는, 출 보정값을 취득 또는 변경하는 API가 리퀘스트되었을 경우와 유사한 처리가 실행된다. 이것은, ISO 감도값을 취득하는 GET 메소드와, 노출 보정값을 취득하는 GET 메소드에 대해, 리스폰스의 JSON 구문의 형식이 같기 때문에 실현될 수 있다. 즉, 구문의 형식이 동일하기 때문에, 구문의 해석도 공통화할 수 있다. 이것은 실장 부하를 경감할 수 있다.
PUT 메소드가 리퀘스트되었을 경우, 스텝 S2015로 처리를 진행한다.
스텝 S2015에서는, 제어부(201)는, 지시에 근거하여 변경할 ISO 감도값을 JSON에 기술하기 위해서, JSON의 파라미터를 생성한다. 그 후, 스텝 S2011에서, 노출 보정값을 변경하는 PUT 메소드와 유사한 JSON 생성 처리를 통해, 제어부(201)는 스텝 S2015에서 생성한 파라미터를 기술한다. 이것은, 노출 보정값을 변경하는 PUT 메소드와 ISO 감도값을 변경하는 PUT 메소드에 대해 행해진 리스폰스의 JSON 구문의 형식이 같기 때문에 실현될 수 있다. 즉, 구문의 형식이 동일하기 때문에, 구문의 생성도 공통화할 수 있다. 이것은 실장 부하를 경감할 수 있다. 그후, 스텝 S2009로 처리를 진행한다. 스텝 S2009에서는, 노출 보정값을 변경할 경우와 유사한 처리가 실행된다.
이상과 같이, 본 실시형태에 따른 통신 API를 사용할 경우, HTTP 메소드마다 JSON 구문의 처리 프로그램을 준비할 필요는 없다. 덧붙여, 리스폰스 보디가 같은 JSON 구문을 갖는 모든 API가 같은 프로그램을 사용하여 처리하는 것이 가능해 진다. 즉, 도20의 흐름도에서 알 수 있는 바와 같이, 처리 프로그램의 양이 줄어든다. 이 때문에, 실장자가 간단하게 처리 프로그램의 사용방법을 이해하고, 적절히 프로그램을 작성할 수 있다.
본실시형태에서는, API 카테고리 412를 예로 들어 설명하였다. 그러나, 그 이외의 API 카테고리에 있어서도, 리퀘스트 보디와 리스폰스 보디의 JSON 구문이 동일하면 유사한 효과가 얻어질 수 있다. 카테고리에 따라서는, 모든 API에 대해 JSON 구문의 구성을 같게 하는 것이 어려울 경우도 있다. 그러나, JSON 구문의 같은 구조를 사용하는 API를 총괄해서 처리할 수 있다. 이 때문에, 마찬가지로 실장 부하의 경감 효과가 얻어진다.
<카메라의 동작>
다음에, 도20에 대응하는 카메라의 동작에 대해 설명한다.
도21은, 디지털 카메라(100)의 동작을 나타낸 흐름도다. 본 흐름도는 스마트 디바이스(200)가 디지털 카메라(100)와 접속된 상태에서 스마트 디바이스(200)로부터 통신 API를 사용해서 디지털 카메라(100)가 리퀘스트를 접수할 때 개시된다.
스텝 S2101에서는, 제어부(101)는, 스마트 디바이스(200)로부터 수신한 통신 API를 사용한 리퀘스트의 종류를 판단한다. 제어부(101)가 일시 정보를 취득 또는 변경하는 리퀘스트를 수신한 경우, 스텝 S2102로 처리를 진행한다. 제어부(101)가 노출 보정값을 취득 또는 변경하는 리퀘스트를 수신한 경우, 스텝 S1207로 처리를 진행한다. 제어부(101)가 ISO 감도값을 취득 또는 변경하는 리퀘스트를 수신한 경우, S2112로 처리를 진행한다.
스텝 S2102에서는, 제어부(101)는 리퀘스트된 메소드를 판단한다. GET 메소드인 경우, 스텝 S2103으로 처리를 진행한다. PUT 메소드인 경우 스텝 S2104로 처리를 진행한다.
스텝 S2103에서는, 제어부(101)는, 현재의 일시 정보를 판독하고, 일시 정보를 JSON에 기술하기 위한 파라미터를 생성한다.
스텝 S2104에서는, 제어부(101)는, 지정된 일시 정보로 일시 정보를 변경하고, 변경한 결과를 JSON에 기술하기 위한 파라미터를 생성한다.
스텝 S2105에서는, 제어부(101)는, 공통의 JSON 생성 처리에 의해, 스텝 S2103 또는 S2104에서 생성된 파라미터를, 공통의 JSON 구문의 형식으로 기술한다.
스텝 S2106에서는, 제어부(101)는, 스텝 S2105에서 생성한 JSON과 함께 리퀘스트에 대한 리스폰스를 스마트 디바이스(200)에 되돌린다.
스텝 S2107에서는, 제어부(101)는 메소드를 판단한다. GET 메소드인 경우 스텝 S2108로 처리를 진행한다. PUT 메소드인 경우 스텝 S2110으로 처리를 진행한다.
스텝 S2108에서는, 제어부(101)는, 현재의 노출 보정값을 판독하고, 노출 보정값을 JSON에 기술하기 위한 파라미터를 생성한다.
다음에, 스텝 S2109에서는, 제어부(101)는 GET 메소드에 공통인 JSON 생성 처리를 통해 스텝 S2108에서 생성된 파라미터를, GET 메소드에 공통인 JSON 구문의 형식으로 기술한다. 그 후, 스텝 S2106에서, 제어부(101)는, 스텝 S2109에서 생성한 JSON과 함께 리퀘스트에 대한 리스폰스를 스마트 디바이스(200)에 되돌린다.
스텝 S2110에서는, 제어부(101)는, 지정된 노출 보정값으로 노출 보정값을 변경하고, 변경한 결과를 JSON에 기술하기 위한 파라미터를 생성한다.
다음에, 스텝 S2111에서는, 제어부(101)는 PUT 메소드에 공통인 JSON 생성 처리를 통해, 스텝 S2110에서 생성된 파라미터를, PUT 메소드에 공통인 JSON 구문의 형식으로 기술한다. 그후, 스텝 S2106에서, 제어부(101)는, 스텝 S2111에서 생성한 JSON과 함께 리퀘스트에 대한 리스폰스를 스마트 디바이스(200)에 되돌린다.
스텝 S2112에서는, 제어부(101)는 메소드를 판단한다. GET 메소드인 경우 스텝 S2114로 처리를 진행한다. PUT 메소드인 경우 스텝 S2113으로 처리를 진행한다.
스텝 S2113에서는, 제어부(101)는, 지정된 ISO 감도값으로 ISO 감도값을 변경하고, 변경한 결과를 JSON에 기술하기 위한 파라미터를 생성한다. 그 후, 스텝 S2111에서, 노출 보정값과 유사한 JSON 구문의 형식으로 파라미터를 기술한다. 스텝 S2106에서, 제어부(101)는 리스폰스를 스마트 디바이스(200)에 송신된다.
스텝 S2114에서는, 제어부(101)는, 현재의 ISO 감도값을 판독하고, ISO 감도값을 JSON에 기술하기 위한 파라미터를 생성한다. 그 후, 스텝 S2109에서, 제어부(101)는 노출 보정값과 유사한 JSON 구문의 형식으로 파라미터를 기술한다. 스텝 S2106에서, 제어부(101)는 리스폰스를 스마트 디바이스(200)에 송신된다.
이상이 도20에 대응하는 디지털 카메라(100)의 동작의 설명이다.
이상에서 설명한 바와 같이, GET 메소드와 PUT 메소드가 공통인 JSON 구문의 형식을 갖는 리스폰스를 되돌림으로써, 통신 API를 사용한 어플리케이션의 실장 부하를 경감할 수 있다. 또한, 각 메소드에 대한 리스폰스의 JSON 구문의 형식을 특정한 API 카테고리 내의 API 사이에서 공통으로 함으로써, 마찬가지로 통신 API를 사용한 어플리케이션의 실장 부하를 경감할 수 있다.
기타 실시형태
본 발명의 실시형태는, 본 발명의 전술한 실시형태(들)의 1개 이상의 기능을 수행하기 위해 기억매체('비일시적인 컴퓨터 판독가능한 기억매체'로서 더 상세히 언급해도 된다)에 기록된 컴퓨터 실행가능한 명령(예를 들어, 1개 이상의 프로그램)을 판독하여 실행하거나 및/또는 전술한 실시예(들)의 1개 이상의 기능을 수행하는 1개 이상의 회로(예를 들어, 주문형 반도체 회로(ASIC)를 포함하는 시스템 또는 장치의 컴퓨터나, 예를 들면, 전술한 실시형태(들)의 1개 이상의 기능을 수행하기 위해 기억매체로부터 컴퓨터 실행가능한 명령을 판독하여 실행함으로써, 시스템 또는 장치의 컴퓨터에 의해 수행되는 방법에 의해 구현될 수도 있다. 컴퓨터는, 1개 이상의 중앙처리장치(CPU), 마이크로 처리장치(MPU) 또는 기타 회로를 구비하고, 별개의 컴퓨터들의 네트워크 또는 별개의 컴퓨터 프로세서들을 구비해도 된다. 컴퓨터 실행가능한 명령은, 예를 들어, 기억매체의 네트워크로부터 컴퓨터로 주어져도 된다. 기록매체는, 예를 들면, 1개 이상의 하드디스크, 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 분산 컴퓨팅 시스템의 스토리지, 광 디스크(콤팩트 디스크(CD), 디지털 다기능 디스크(DVD), 또는 블루레이 디스크(BD)TM 등), 플래시 메모리소자, 메모리 카드 등을 구비해도 된다.
본 발명은, 상기한 실시형태의 1개 이상의 기능을 실현하는 프로그램을, 네트워크 또는 기억매체를 개입하여 시스템 혹은 장치에 공급하고, 그 시스템 혹은 장치의 컴퓨터에 있어서 1개 이상의 프로세서가 프로그램을 읽어 실행하는 처리에서도 실행가능하다. 또한, 1개 이상의 기능을 실현하는 회로(예를 들어, ASIC)에 의해서도 실행가능하다.
예시적인 실시형태들을 참조하여 본 발명을 설명하였지만, 본 발명이 이러한 실시형태에 한정되지 않는다는 것은 자명하다. 이하의 청구범위의 보호범위는 가장 넓게 해석되어 모든 변형, 동등물 구조 및 기능을 포괄하여야 한다.

Claims (19)

  1. Hypertext Transfer Protocol(HTTP)에 근거하여 외부 장치와 통신하도록 구성된 통신부와,
    복수의 응용 프로그래밍 인터페이스(API)에 대응하는 프로그램을 기록하도록 구성된 기록매체와,
    상기 통신부를 거쳐 상기 복수의 API 중 어느 한개에 관한 리퀘스트를 접수한 경우, 상기 리퀘스트를 접수한 API에 대응하는 프로그램을 실행하고, 상기 리퀘스트에 대하여 소정의 구조로 기술되는 리스폰스 보디를 포함하는 리스폰스를 되돌리도록 상기 통신부를 제어하도록 구성된 제어부를 구비하고,
    상기 복수의 API 중 소정의 URL(Uniform Resource Locator)로 표현되는 소정의 API에 관한 제1 HTTP 리퀘스트 메소드를 사용한 리퀘스트에 대한 리스폰스의 제1 리스폰스 보디와, 상기 소정의 URL로 표현되는 동일한 소정의 API에 관한 제2 HTTP 리퀘스트 메소드를 사용한 리퀘스트에 대한 리스폰스의 제2 리스폰스 보디는, 상기 제1 리스폰스 보디의 필드와 상기 제2 리스폰스 보디의 필드가 서로 동일하도록, 소정의 구조의 동일한 형식으로 기술되는, 통신장치.
  2. 제 1항에 있어서,
    상기 제1 HTTP 리퀘스트 메소드를 사용한 리퀘스트는 데이터의 취득 요구인 통신장치.
  3. 제 1항에 있어서,
    상기 제2 HTTP 리퀘스트 메소드를 사용한 리퀘스트는 데이터의 변경 요구인 통신장치.
  4. 제 1항에 있어서,
    상기 제1 HTTP 리퀘스트 메소드를 사용한 리퀘스트는 데이터의 취득 요구이고,
    상기 제2 HTTP 리퀘스트 메소드를 사용한 리퀘스트는 데이터의 변경 요구이고,
    상기 제1 HTTP 리퀘스트 메소드는 리퀘스트 보디를 갖지 않고,
    상기 제2 HTTP 리퀘스트 메소드는 리퀘스트 보디를 갖는 통신장치.
  5. 제 1항에 있어서,
    상기 제2 HTTP 리퀘스트 메소드를 사용한 리퀘스트는 데이터의 변경 요구이고,
    상기 제2 HTTP 리퀘스트 메소드에서는, 리퀘스트의 리퀘스트 보디의 구조와 리스폰스의 리스폰스 보디의 구조가 동일한 통신장치.
  6. 제 1항 내지 제 5항 중 어느 한 항에 있어서,
    촬상부를 더 구비하고,
    상기 복수의 API는, 상기 촬상부를 리모트 콘트롤하기 위한 API를 포함하는 통신장치.
  7. 제 6항에 있어서,
    상기 복수의 API는, 각각의 리모트 콘트롤의 카테고리에 대해 계층 구조를 갖는 Uniform Resource Locator(URL)로 표현되는 통신장치.
  8. 제 7항에 있어서,
    상기 제어부는, 상기 복수의 API 중에서 상위의 계층 레벨로 표현되는 URL에 대응하는 API에 대한 요구를 접수하지 않고, 하위의 계층 레벨로 표현되는 URL에 대응하는 API에 대한 요구를 접수하지 않도록 제어를 행하도록 구성된 통신장치.
  9. 제 1항에 있어서,
    상기 리스폰스 보디의 구조는 JavaScript Object Notation(JSON) 구조인 통신장치.
  10. 통신부와, 복수의 API에 대응하는 프로그램이 기록되어 있는 기록매체와, 제어부를 구비한 통신장치의 제어방법으로서,
    상기 통신부를 거쳐 HTTP에 근거하여 외부 장치와 통신하는 단계와,
    상기 통신부를 거쳐 상기 복수의 API 중 어느 한개에 관한 리퀘스트를 접수한 경우, 상기 리퀘스트를 접수한 API에 대응하는 프로그램을 실행하고, 상기 리퀘스트에 대하여 소정의 구조로 기술되는 리스폰스 보디를 포함하는 리스폰스를 되돌리도록 상기 통신부를 제어하는 단계를 포함하고,
    상기 복수의 API 중 소정의 URL(Uniform Resource Locator)로 표현되는 소정의 API에 관한 제1 HTTP 리퀘스트 메소드를 사용한 리퀘스트에 대한 리스폰스의 제1 리스폰스 보디와, 상기 소정의 URL로 표현되는 동일한 소정의 API에 관한 제2 HTTP 리퀘스트 메소드를 사용한 리퀘스트에 대한 리스폰스의 제2 리스폰스 보디는, 상기 제1 리스폰스 보디의 필드와 상기 제2 리스폰스 보디의 필드가 서로 동일하도록, 소정의 구조의 동일한 형식으로 기술되는, 통신장치의 제어방법.
  11. 제 10항에 있어서,
    상기 제1 HTTP 리퀘스트 메소드를 사용한 리퀘스트는 데이터의 취득 요구인 통신장치의 제어방법.
  12. 제 10항에 있어서,
    상기 제2 HTTP 리퀘스트 메소드를 사용한 리퀘스트는 데이터의 변경 요구인 통신장치의 제어방법.
  13. 제 10항에 있어서,
    상기 제1 HTTP 리퀘스트 메소드를 사용한 리퀘스트는 데이터의 취득 요구이고,
    상기 제2 HTTP 리퀘스트 메소드를 사용한 리퀘스트는 데이터의 변경 요구이고,
    상기 제1 HTTP 리퀘스트 메소드는 리퀘스트 보디를 갖지 않고,
    상기 제2 HTTP 리퀘스트 메소드는 리퀘스트 보디를 갖는 통신장치의 제어방법.
  14. 제 10항에 있어서,
    상기 제2 HTTP 리퀘스트 메소드를 사용한 리퀘스트는 데이터의 변경 요구이고,
    상기 제2 HTTP 리퀘스트 메소드에서는, 리퀘스트의 리퀘스트 보디의 구조와 리스폰스의 리스폰스 보디의 구조가 동일한 통신장치의 제어방법.
  15. 제 10항 내지 제 14항 중 어느 한 항에 있어서,
    상기 통신장치는 촬상부를 더 구비하고,
    상기 복수의 API는, 상기 촬상부를 리모트 콘트롤하기 위한 API를 포함하는 통신장치의 제어방법.
  16. 제 15항에 있어서,
    상기 복수의 API는, 각각의 리모트 콘트롤의 카테고리에 대해 계층 구조를 갖는 URL로 표현되는 통신장치의 제어방법.
  17. 제 16항에 있어서,
    상기 복수의 API 중에서 상위의 계층 레벨로 표현되는 URL에 대응하는 API에 대한 요구를 접수하지 않고, 하위의 계층 레벨로 표현되는 URL에 대응하는 API에 대한 요구를 접수하지 않도록 제어를 행하는 통신장치의 제어방법.
  18. 제 10항에 있어서,
    상기 리스폰스 보디의 구조는 JavaScript Object Notation(JSON) 구조인 통신장치의 제어방법.
  19. 컴퓨터에 의해 프로그램이 실행될 때, 컴퓨터에, 청구항 10, 11, 12, 13, 14 또는 18 중 어느 한 항에 기재된 제어방법을 실행하게 하는 명령들을 포함하는 프로그램이 기억된 비일시적인 기록매체.
KR1020190156247A 2018-12-07 2019-11-29 외부 장치와 통신할 수 있는 통신장치, 통신장치의 제어방법, 및 기록매체 KR102473833B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-2018-229968 2018-12-07
JP2018229968A JP7218165B2 (ja) 2018-12-07 2018-12-07 通信装置、通信装置の制御方法、プログラム

Publications (2)

Publication Number Publication Date
KR20200070107A KR20200070107A (ko) 2020-06-17
KR102473833B1 true KR102473833B1 (ko) 2022-12-05

Family

ID=68771449

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190156247A KR102473833B1 (ko) 2018-12-07 2019-11-29 외부 장치와 통신할 수 있는 통신장치, 통신장치의 제어방법, 및 기록매체

Country Status (5)

Country Link
US (1) US11522941B2 (ko)
EP (1) EP3664460A1 (ko)
JP (1) JP7218165B2 (ko)
KR (1) KR102473833B1 (ko)
CN (1) CN111294506B (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6824949B2 (ja) * 2018-12-26 2021-02-03 キヤノン株式会社 通信装置、制御方法およびプログラム

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150007199A1 (en) * 2013-06-28 2015-01-01 Vmware, Inc. Method and system for extending application programming interfaces

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013073506A (ja) 2011-09-28 2013-04-22 Canon Inc 画像処理装置、その制御方法、及びプログラム
US20140047368A1 (en) * 2012-08-13 2014-02-13 Magnet Systems Inc. Application development tool
KR102138027B1 (ko) 2014-02-05 2020-07-27 애플 인크. 제어기와 액세서리 사이의 통신을 위한 균일한 통신 프로토콜
JP6386074B2 (ja) 2014-03-21 2018-09-05 ピーティーシー インコーポレイテッド バイナリ動的restメッセージを使用したシステム及び方法
JP6603513B2 (ja) 2014-09-03 2019-11-06 キヤノン株式会社 通信装置及び情報処理装置及びそれらの制御方法、並びに記憶媒体
JP6376015B2 (ja) * 2015-03-24 2018-08-22 ソニー株式会社 情報処理装置、情報処理方法、およびプログラム
US20230283651A1 (en) 2016-02-02 2023-09-07 Shanghai Jiao Tong University Multimedia system information interaction mechanism and network transmission method
US11663205B2 (en) * 2017-05-04 2023-05-30 Salesforce, Inc. Technologies for asynchronous querying
CN107295007A (zh) * 2017-07-31 2017-10-24 浪潮天元通信信息系统有限公司 一种支持多种协议的服务方法、装置及系统

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150007199A1 (en) * 2013-06-28 2015-01-01 Vmware, Inc. Method and system for extending application programming interfaces

Also Published As

Publication number Publication date
KR20200070107A (ko) 2020-06-17
JP7218165B2 (ja) 2023-02-06
CN111294506A (zh) 2020-06-16
US20200186586A1 (en) 2020-06-11
CN111294506B (zh) 2022-05-31
US11522941B2 (en) 2022-12-06
JP2020091788A (ja) 2020-06-11
EP3664460A1 (en) 2020-06-10

Similar Documents

Publication Publication Date Title
US10108640B2 (en) Communication apparatus capable of communicating with external apparatus in which contents are recorded, and receiving metadata of contents
RU2451420C1 (ru) Устройство приема данных, устройство передачи данных, способ для управления ими и программа
US11647132B2 (en) Communication terminal, method for controlling communication terminal, communication system, and storage medium
US10225455B2 (en) Communication apparatus, information processing apparatus, methods and computer-readable storage medium
US10235963B2 (en) Communication apparatus communicable with external apparatus, control method of communication apparatus, and storage medium
US11082600B2 (en) Electronic apparatus that performs wireless communication with an image capturing device at two different communication speeds, and method for controlling same
US20180322148A1 (en) Image supply apparatus, information processing apparatus, control method thereof, and storage medium
US20180324075A1 (en) Communication apparatus and control method thereof and communication system
US10567634B2 (en) Image capturing apparatus, communication apparatus, and control methods thereof
KR102473833B1 (ko) 외부 장치와 통신할 수 있는 통신장치, 통신장치의 제어방법, 및 기록매체
US9756195B2 (en) Communication apparatus capable of communicating with external apparatus, control method for communication apparatus, and storage medium
JP5755347B2 (ja) 通信制御装置、その制御方法、プログラム、記録媒体
US9307113B2 (en) Display control apparatus and control method thereof
US10728451B2 (en) Communication device for communicating with external device, method for controlling the same, and recording medium
JP7218164B2 (ja) 通信装置およびその制御方法
JP6824949B2 (ja) 通信装置、制御方法およびプログラム
JP7196209B2 (ja) 通信装置、制御方法、およびプログラム
US20230300298A1 (en) Electronic apparatus provided with communication function, method of controlling the same, and storage medium
JP2016115266A (ja) 通信装置、その制御方法およびプログラム
JP5484545B2 (ja) 撮像装置、その制御方法、プログラム
JP2019067133A (ja) 情報処理装置、情報処理装置の制御方法、プログラム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant