KR20230060422A - 산업용 기기를 위한 개방형 애플리케이션 인터페이스 - Google Patents

산업용 기기를 위한 개방형 애플리케이션 인터페이스 Download PDF

Info

Publication number
KR20230060422A
KR20230060422A KR1020220004079A KR20220004079A KR20230060422A KR 20230060422 A KR20230060422 A KR 20230060422A KR 1020220004079 A KR1020220004079 A KR 1020220004079A KR 20220004079 A KR20220004079 A KR 20220004079A KR 20230060422 A KR20230060422 A KR 20230060422A
Authority
KR
South Korea
Prior art keywords
industrial machine
open application
surface mount
machine
controlling
Prior art date
Application number
KR1020220004079A
Other languages
English (en)
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 KR20230060422A publication Critical patent/KR20230060422A/ko

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
    • G05B19/41805Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by assembly
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
    • G05B19/4185Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by the network communication
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
    • G05B19/4183Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by data acquisition, e.g. workpiece identification
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
    • G05B19/41835Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by programme execution
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
    • G05B19/4188Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by CIM planning or realisation
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B23/00Testing or monitoring of control systems or parts thereof
    • G05B23/02Electric testing or monitoring
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/32Operator till task planning
    • G05B2219/32128Gui graphical user interface
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • General Engineering & Computer Science (AREA)
  • Manufacturing & Machinery (AREA)
  • Quality & Reliability (AREA)
  • Computer And Data Communications (AREA)
  • Numerical Control (AREA)

Abstract

산업용 기기에 대한 개방형 애플리케이션 프로토콜이 개시된다. 개시된 기술은 다음의 것을 포함한다: (a) 제조 실행 시스템과 관련되는 개방형 애플리케이션과 (b) 표면 실장 프로세스에서 사용되는 산업용 머신 상에서 동작하는 데이터 공유 인터페이스 - 개방형 애플리케이션은, 머신 타입 또는 제조사와 관계없이, 데이터 공유 인터페이스를 구현하는 임의의 머신과 통신하도록 구성됨 - 의 인스턴스 사이의 연결을 개방하는 것; 연결을 통해 개방형 애플리케이션에 의해, 산업용 머신과 관련되는 발견 가능한 정보 - 발견 가능한 정보는 데이터 아이템, 이벤트, 커맨드, 또는 알람 중 하나 이상을 포함함 - 를 발견하는 것; 및 연결을 통해 개방형 애플리케이션에 의해, 표면 실장 프로세스의 적어도 제1 부분을 제어하기 위해 산업용 머신의 동작을 제어하는 것.

Description

산업용 기기를 위한 개방형 애플리케이션 인터페이스{OPEN APPLICATION INTERFACE FOR INDUSTRIAL EQUIPMENT}
많은 산업용 프로세스에서, 그들 프로세스에서 사용되는 기기로부터 데이터를 획득하고 그 기기를 제어하기 위한 필요성이 존재한다. 예를 들면, 전자 조립 프로세스에서 사용되는 기기로부터 데이터를 획득하고 그 기기를 제어하기 위한 필요성이 존재한다. 그러한 기기는, 예를 들면, 하나 이상의 프린터, 유체 디스펜서, 리플로우 오븐(reflow oven), 선택적 땜납 기기, 등등을 포함할 수도 있다. 기기로부터 데이터를 획득하고 그 기기를 제어하기 위한 다양한 통신 프로토콜이 존재한다. 전자 조립에서 사용되는 그러한 프로토콜의 예는 다음의 것을 포함한다: 일반 기기 모델(Generic Equipment Model; GEM); 확장 가능한 마크업 언어(Extensible Markup Language; XML)를 사용한 컴퓨터 지원 제조(Computer-Aided Manufacturing Using Extensible Markup Language; CAMX); 커넥티드 팩토리 이니셔티브(Connected Factory Initiative; CFX); 헤르메스(Hermes); 및 다양한 전자기기 제조사에 의해 개발된 맞춤형 제조 실행 시스템(Manufacturing Execution System; MES) 인터페이스. 일반적으로, 이들 프로토콜은 서로 호환되지 않으며, 따라서, 동일한 프로토콜(들)을 사용하지 않는 기기의 상호 운용성을 방해한다.
이 섹션에서 설명되는 접근법은 본 출원을 제출하기 이전에 반드시 구상 및/또는 추구된 것은 아니다. 따라서, 달리 나타내어지지 않는 한, 이 섹션에서 설명되는 접근법은 선행 기술로서 해석되어서는 안된다.
본 개시는 일반적으로 산업용 기기를 제어하는 것에 관한 것이다.
일반적으로, 하나의 양태에서, 하나 이상의 비일시적 컴퓨터 판독 가능 매체는, 하나 이상의 프로세서에 의해 실행될 때, 하나 이상의 프로세서로 하여금, 표면 실장 프로세스(surface mounting process)의 적어도 일부를 제어하기 위한 동작을 수행하게 하는 명령어를 저장하는데, 그 동작은 다음의 것을 포함한다: (a) 제조 실행 시스템과 관련되는 개방형 애플리케이션(open application)과 (b) 표면 실장 프로세스에서 사용되는 제1 산업용 머신 상에서 동작하는 데이터 공유 인터페이스 - 개방형 애플리케이션은, 머신 타입 또는 제조사와 관계없이, 데이터 공유 인터페이스를 구현하는 임의의 머신과 통신하도록 구성됨 - 의 제1 인스턴스 사이의 제1 연결을 개방하는 것; 제1 연결을 통해 개방형 애플리케이션에 의해, 제1 산업용 머신과 관련되는 제1 발견 가능한 정보 - 제1 발견 가능한 정보는 데이터 아이템, 이벤트, 커맨드, 또는 알람 중 하나 이상을 포함함 - 를 발견하는 것; 및 제1 연결을 통해 개방형 애플리케이션에 의해, 표면 실장 프로세스의 적어도 제1 부분을 제어하기 위해 제1 산업용 머신의 동작을 제어하는 것. 제1 산업용 머신은, 스텐실 프린터(stencil printer), 디스펜서, 픽 앤 플레이스 머신(pick-and-place machine), 리플로우 오븐, 웨이브 솔더 머신(wave solder machine), 또는 선택적 솔더 머신(selective solder machine) 중 하나일 수도 있다.
동작은 다음의 것을 더 포함할 수도 있다: (a) 제조 실행 시스템과 관련되는 개방형 애플리케이션과 (b) 표면 실장 프로세스에서 사용되는 제2 산업용 머신 상에서 동작하는 데이터 공유 인터페이스의 제2 인스턴스 사이의 제2 연결을 개방하는 것; 제2 연결을 통해 개방형 애플리케이션에 의해, 제2 산업용 머신과 관련되는 제2 발견 가능한 정보 - 제2 발견 가능한 정보는 데이터 아이템, 이벤트, 커맨드, 또는 알람 중 하나 이상을 포함함 - 를 발견하는 것; 및 제2 연결을 통해 개방형 애플리케이션에 의해, 표면 실장 프로세스의 적어도 제2 부분을 제어하기 위해 제2 산업용 머신의 동작을 제어하는 것. 제1 산업용 머신 및 제2 산업용 머신은 상이한 제조사에 의해 제공될 수도 있다. 제1 산업용 머신 및 제2 산업용 머신은 상이한 종류의 머신일 수도 있다.
제1 산업용 머신의 동작을 제어하는 것은 제1 발견 가능한 정보에서 정의되는 데이터 아이템의 값을, 적어도 데이터 아이템의 값을 데이터 공유 인터페이스의 제1 인스턴스로 송신하는 것에 의해, 설정하는 것을 포함할 수도 있다.
제1 산업용 머신의 동작을 제어하는 것은 제1 발견 가능한 정보에서 정의되는 커맨드를, 적어도 커맨드를 실행하기 위한 명령어를 데이터 공유 인터페이스의 제1 인스턴스로 송신하는 것에 의해, 실행하는 것을 포함할 수도 있다.
일반적으로, 하나의 양태에서, 표면 실장 프로세스의 적어도 일부를 제어하기 위한 시스템은 하드웨어 프로세서를 포함하는 적어도 하나의 디바이스를 포함한다. 시스템은 표면 실장 프로세스의 적어도 일부를 제어하기 위한 동작을 수행하도록 구성되는데, 그 동작은 다음의 것을 포함한다: (a) 제조 실행 시스템과 관련되는 개방형 애플리케이션과 (b) 표면 실장 프로세스에서 사용되는 제1 산업용 머신 상에서 동작하는 데이터 공유 인터페이스 - 개방형 애플리케이션은, 머신 타입 또는 제조사와 관계없이, 데이터 공유 인터페이스를 구현하는 임의의 머신과 통신하도록 구성됨 - 의 제1 인스턴스 사이의 제1 연결을 개방하는 것; 제1 연결을 통해 개방형 애플리케이션에 의해, 제1 산업용 머신과 관련되는 제1 발견 가능한 정보 - 제1 발견 가능한 정보는 데이터 아이템, 이벤트, 커맨드, 또는 알람 중 하나 이상을 포함함 - 를 발견하는 것; 및 제1 연결을 통해 개방형 애플리케이션에 의해, 표면 실장 프로세스의 적어도 제1 부분을 제어하기 위해 제1 산업용 머신의 동작을 제어하는 것. 제1 산업용 머신은, 스텐실 프린터, 디스펜서, 픽 앤 플레이스 머신, 리플로우 오븐, 웨이브 솔더 머신, 또는 선택적 솔더 머신 중 하나일 수도 있다.
동작은 다음의 것을 더 포함할 수도 있다: (a) 제조 실행 시스템과 관련되는 개방형 애플리케이션과 (b) 표면 실장 프로세스에서 사용되는 제2 산업용 머신 상에서 동작하는 데이터 공유 인터페이스의 제2 인스턴스 사이의 제2 연결을 개방하는 것; 제2 연결을 통해 개방형 애플리케이션에 의해, 제2 산업용 머신과 관련되는 제2 발견 가능한 정보 - 제2 발견 가능한 정보는 데이터 아이템, 이벤트, 커맨드, 또는 알람 중 하나 이상을 포함함 - 를 발견하는 것; 및 제2 연결을 통해 개방형 애플리케이션에 의해, 표면 실장 프로세스의 적어도 제2 부분을 제어하기 위해 제2 산업용 머신의 동작을 제어하는 것. 제1 산업용 머신 및 제2 산업용 머신은 상이한 제조사에 의해 제공될 수도 있다. 제1 산업용 머신 및 제2 산업용 머신은 상이한 종류의 머신일 수도 있다.
제1 산업용 머신의 동작을 제어하는 것은 제1 발견 가능한 정보에서 정의되는 데이터 아이템의 값을, 적어도 데이터 아이템의 값을 데이터 공유 인터페이스의 제1 인스턴스로 송신하는 것에 의해, 설정하는 것을 포함할 수도 있다.
제1 산업용 머신의 동작을 제어하는 것은 제1 발견 가능한 정보에서 정의되는 커맨드를, 적어도 커맨드를 실행하기 위한 명령어를 데이터 공유 인터페이스의 제1 인스턴스로 송신하는 것에 의해, 실행하는 것을 포함할 수도 있다.
일반적으로, 하나의 양태에서, 표면 실장 프로세스의 적어도 일부를 제어하기 위한 방법은 다음의 것을 포함한다: (a) 제조 실행 시스템과 관련되는 개방형 애플리케이션과 (b) 표면 실장 프로세스에서 사용되는 제1 산업용 머신 상에서 동작하는 데이터 공유 인터페이스 - 개방형 애플리케이션은, 머신 타입 또는 제조사와 관계없이, 데이터 공유 인터페이스를 구현하는 임의의 머신과 통신하도록 구성됨 - 의 제1 인스턴스 사이의 제1 연결을 개방하는 것; 제1 연결을 통해 개방형 애플리케이션에 의해, 제1 산업용 머신과 관련되는 제1 발견 가능한 정보 - 제1 발견 가능한 정보는 데이터 아이템, 이벤트, 커맨드, 또는 알람 중 하나 이상을 포함함 - 를 발견하는 것; 및 제1 연결을 통해 개방형 애플리케이션에 의해, 표면 실장 프로세스의 적어도 제1 부분을 제어하기 위해 제1 산업용 머신의 동작을 제어하는 것. 제1 산업용 머신은, 스텐실 프린터, 디스펜서, 픽 앤 플레이스 머신, 리플로우 오븐, 웨이브 솔더 머신, 또는 선택적 솔더 머신 중 하나일 수도 있다.
방법은 다음의 것을 더 포함할 수도 있다: (a) 제조 실행 시스템과 관련되는 개방형 애플리케이션과 (b) 표면 실장 프로세스에서 사용되는 제2 산업용 머신 상에서 동작하는 데이터 공유 인터페이스의 제2 인스턴스 사이의 제2 연결을 개방하는 것; 제2 연결을 통해 개방형 애플리케이션에 의해, 제2 산업용 머신과 관련되는 제2 발견 가능한 정보 - 제2 발견 가능한 정보는 데이터 아이템, 이벤트, 커맨드, 또는 알람 중 하나 이상을 포함함 - 를 발견하는 것; 및 제2 연결을 통해 개방형 애플리케이션에 의해, 표면 실장 프로세스의 적어도 제2 부분을 제어하기 위해 제2 산업용 머신의 동작을 제어하는 것. 제1 산업용 머신 및 제2 산업용 머신은 상이한 제조사에 의해 제공될 수도 있다. 제1 산업용 머신 및 제2 산업용 머신은 상이한 종류의 머신일 수도 있다.
제1 산업용 머신의 동작을 제어하는 것은 제1 발견 가능한 정보에서 정의되는 데이터 아이템의 값을, 적어도 데이터 아이템의 값을 데이터 공유 인터페이스의 제1 인스턴스로 송신하는 것에 의해, 설정하는 것을 포함할 수도 있다.
제1 산업용 머신의 동작을 제어하는 것은 제1 발견 가능한 정보에서 정의되는 커맨드를, 적어도 커맨드를 실행하기 위한 명령어를 데이터 공유 인터페이스의 제1 인스턴스로 송신하는 것에 의해, 실행하는 것을 포함할 수도 있다.
본 명세서에 설명되는 및/또는 청구범위에 열거되는 하나 이상의 실시형태는 이 일반적인 개요 섹션에 포함되지 않을 수도 있다.
적어도 하나의 실시형태의 다양한 양태는, 일정한 비율로 묘화되도록 의도되지 않은 첨부의 도면을 참조하여 하기에서 논의된다. 도면은 다양한 양태 및 실시형태의 예시 및 추가적인 이해를 제공하기 위해 포함되며, 본 명세서에 통합되고 본 명세서의 일부를 구성하지만, 그러나 본 개시의 한계를 정의하도록 의도되지는 않는다. 도면에서, 다양한 도면에서 예시되는 각각의 동일한 또는 거의 동일한 컴포넌트는 같은 번호에 의해 표현된다. 명확화의 목적을 위해, 몇몇 컴포넌트는 모든 도면에서 라벨링되지 않을 수도 있다. 도면에서:
도 1은 실시형태에 따른 시스템의 한 예의 블록도이다;
도 2a 및 도 2b는 실시형태에 따른 산업용 기기에 대한 개방형 애플리케이션 인터페이스를 설치하고 사용하기 위한 동작의 예의 흐름도이다; 그리고
도 3은 실시형태에 따른 컴퓨터 시스템의 한 예의 블록도이다.
하나 이상의 실시형태는 산업용 기기로부터의 데이터의 추출 및 산업용 기기의 제어를 허용하는 개방형 애플리케이션 인터페이스(논의의 용이성을 위해, 본원에서 간단히 "인터페이스"로 또한 지칭됨)를 포함한다. 본원에서 사용되는 바와 같이, 용어 "개방형(open)"은, 인터페이스를 구현하는 임의의 기기가, 제조사에 관계없이, 시스템에 참가할 수 있도록 표준화되는 것을 의미한다. 인터페이스는, JavaScript Object Notation Remote Procedure Call(자바스크립트 오브젝트 표기법 원격 프로시져 호출; JSON-RPC) 2.0 및/또는 다른 표준화된 통신 프로토콜과 같은 표준화된 통신 프로토콜을 사용하여 구현될 수도 있다. 디바이스 사이의 통신은, 예를 들면, 전송 계층 보안(Transport Layer Security; TLS) 및/또는 다른 암호화 프로토콜을 사용하여 보호될 수도 있다. 따라서, 하나 이상의 실시형태는, 연결 애플리케이션이 다양한 프로그래밍 언어(예를 들면, C#, Java(자바), Python(파이썬), 등등)로 작성되는 것을 허용하는 보안성이 있는 구현 독립적인 인터페이스(secure, implementation-agnostic interface)를 포함한다. 본원에서 설명되는 바와 같이, 인터페이스는 (a) 자체 설명적이고, (b) 보편적이며, (c) 확장 가능할 수도 있다.
명확화의 목적을 위해 상세한 예가 본원에서 설명된다. 본원에서 설명되는 컴포넌트 및/또는 동작은, 하나 이상의 실시형태에 적용 가능하지 않을 수도 있는 예로서 이해되어야 한다. 구체적으로, 실시형태는 표면 실장 기기 및/또는 프로세스로 제한되는 것으로 간주되어서는 안된다. 유사한 기술이, 필요한 부분만 수정하여, 다른 종류의 기기 및/또는 프로세스에 적용될 수도 있다.
I. 시스템 아키텍쳐
도 1은 실시형태에 따른 표면 실장 시스템(100)의 한 예의 블록도이다. 한 실시형태에서, 표면 실장 시스템(100)은 도 1에서 예시되는 컴포넌트보다 더 많은 또는 더 적은 컴포넌트를 포함할 수도 있다. 도 1에서 예시되는 컴포넌트는 서로 로컬이거나 또는 서로로부터 멀리 떨어질 수도 있다. 도 1에서 예시되는 컴포넌트는 소프트웨어 및/또는 하드웨어로 구현될 수도 있다. 각각의 컴포넌트는 다수의 애플리케이션 및/또는 머신에 걸쳐 분산될 수도 있다. 다수의 컴포넌트는 하나의 애플리케이션 및/또는 머신에 결합될 수도 있다. 하나의 컴포넌트와 관련하여 설명되는 동작은 다른 컴포넌트에 의해 대신 수행될 수도 있다.
하나의 예에서, 표면 실장 프로세스는 다음의 컴포넌트 및 동작 중 하나 이상을 포함한다:
1. PCB의 표면에 도포되는 스텐실에 의해 인쇄 배선 기판(printed wiring board; PCB) 상으로 솔더 페이스트를 퇴적하기 위해 스텐실 프린터(102)가 제공될 수도 있다. 대안적으로 또는 추가적으로, 솔더 페이스트를 PCB 상으로 퇴적하기 위해 디스펜서(104)가 제공될 수도 있다. 예를 들면, 스텐실 프린터(102)는 MPM® Edison™(에디슨) 또는 Momentum®(모멘텀) II 전자 조립 프린터일 수도 있고, 디스펜서(104)는 Camalot® Prodigy®(캐멀롯 프로디지) 디스펜서일 수도 있다.
2. 픽 앤 플레이스 머신(106)은 도포된 솔더 페이스트와 일치하는 사전 정의된 위치에서 PCB 상에 전기 컴포넌트를 배치하기 위해 제공될 수도 있다.
3. PCB는 리플로우 오븐(108)으로 이송될 수도 있는데, 리플로우 오븐(108)은, 솔더 페이스트로 하여금 리플로우되게 하고 따라서 전기 컴포넌트를 PCB에 더욱 확실하게 솔더링하게 한다. 예를 들면, 리플로우 오븐(108)은 Vitronics Soltec Centurion™(비트로닉스 솔텍 센츄리온) 리플로우 솔더링 오븐일 수도 있다.
4. 하나 이상의 전기 컴포넌트를 PCB에 부착하기 위해 웨이브 솔더링 및/또는 선택적 솔더링 기기(110)가 제공될 수도 있다.
상기의 설명에도 불구하고, 표면 실장 기기의 많은 상이한 제조사, 모델, 및 구성을 사용하는 많은 상이한 표면 실장 프로세스가 존재한다는 것이 이해되어야 한다. 예를 들면, 하나 이상의 스텐실 프린터 및 디스펜서는 표면 실장 시스템(100)의 다른 부분에서 대안적으로 또는 추가적으로 사용될 수도 있다. 게다가, 스텐실 프린터, 디스펜서, 픽 앤 플레이스 머신, 리플로우 오븐, 웨이브 및 선택적 솔더 머신 외에도, 생산 라인은 그러한 라인에서 사용되는 임의의 다른 종류의 기기를 포함할 수도 있다 - 검사 기기, 스태커(stacker), 컨베이어, 클리너, 및 등등을 포함하지만, 그러나 이들로 제한되지는 않음 - .
한 실시형태에서, 표면 실장 시스템(100)의 하나 이상의 컴포넌트는 각각의 데이터 공유 서브시스템(112)을 포함한다. 예를 들면, 스텐실 프린터(102)는 데이터 공유 서브시스템(112)을 포함할 수도 있고 픽 앤 플레이스 머신(106)은 다른 데이터 공유 서브시스템(112)을 포함할 수도 있다. 일반적으로, 데이터 공유 서브시스템(112)은 기기 데이터(114)(즉, 기기의 동작 파라미터를 설명하는 데이터)를 공유하는 것, 기기의 이용 가능한 성능을 발견하는 것, 및 이용 가능한 성능을 사용하여 기기를 제어하는 것을 허용하는 애플리케이션 인터페이스(116)를 노출시키기 위한 본원에서 설명되는 동작을 수행하도록 구성되는 하드웨어, 소프트웨어, 및/또는 펌웨어를 지칭한다. 예를 들면, 애플리케이션 인터페이스(116)는 자바스크립트 오브젝트 표기법 원격 프로시져 호출(JSON-RPC) 2.0 및/또는 다른 메시징 프로토콜을 사용하여 메시징을 지원할 수도 있다.
구체적으로, 데이터 공유 서브시스템(112)은 MES 개방형 애플리케이션(118)을 통해 제조 실행 시스템(MES)(122)과 통신하도록 구성될 수도 있다. MES(122)는 기기를 사용하여 전체 프로세스를 관리하기 위한 동작을 수행하도록 구성되는 하드웨어, 소프트웨어 및/또는 펌웨어를 지칭한다. 예를 들면, 도 1에서 예시되는 것과 같은 표면 실장 시스템(100)에서, MES(122)는, PCB 기반의 전자기기를 제조하기 위해 기기가 일괄적으로 사용되도록, 스텐실 프린터(102), 디스펜서(104), 픽 앤 플레이스 머신(106), 리플로우 오븐(108), 및/또는 선택적 솔더 기기(110)의 동작을 관리할 수도 있다.
한 실시형태에서, MES 개방형 애플리케이션(118)은 데이터 공유 서브시스템(112)의 인스턴스를 또한 포함한다. 기기 및 MES 개방형 애플리케이션(118) 둘 모두에서 데이터 공유 서브시스템(112)의 인스턴스를 포함하는 것은 각각의 컴포넌트가 서버 및 클라이언트 둘 모두로서 동작하는 것을 허용한다. 기기에서 설치되는 인스턴스는 클라이언트로서 동작하는 MES 개방형 애플리케이션(118)과 함께 서버로서 동작할 수도 있고; MES 개방형 애플리케이션(118)에서 설치되는 인스턴스는 클라이언트로서 동작하는 기기와 함께 서버로서 동작할 수도 있다. 2 인스턴스 구성은 기기 및 MES 개방형 애플리케이션(118) 둘 모두가 서로에게 메시지를 송신하는 것, 및 서로로부터 응답을 획득하는 것을 허용한다.
MES(122)는 유저 인터페이스(124)를 포함할 수도 있다. 일반적으로, 유저 인터페이스(124)는, 예를 들면, MES(122)에게 표면 실장 프로세스를 개시, 조정, 및/또는 종료할 것을 지시하기 위해, 유저와 MES(122) 사이의 통신을 용이하게 하도록 구성되는 하드웨어 및/또는 소프트웨어를 지칭한다. 유저 인터페이스(124)는 유저 인터페이스 엘리먼트를 렌더링하고 유저 인터페이스 엘리먼트를 통해 입력을 수신한다. 유저 인터페이스(124)는 그래픽 유저 인터페이스(graphical user interface; GUI), 커맨드 라인 인터페이스(command line interface; CLI), 햅틱 인터페이스, 음성 커맨드 인터페이스, 및/또는 임의의 다른 종류의 인터페이스 또는 이들의 조합일 수도 있다. 유저 인터페이스 엘리먼트의 예는, 체크박스, 라디오 버튼, 드랍다운 목록, 목록 상자, 버튼, 토글, 텍스트 필드, 날짜 및 시간 선택기, 커맨드 라인, 슬라이더, 페이지, 및 양식(form)을 포함한다. 유저 인터페이스(124)의 상이한 컴포넌트는 상이한 언어로 명시될 수도 있다. 유저 인터페이스 엘리먼트의 거동은 JavaScript(자바스크립트)와 같은 동적 프로그래밍 언어로 명시될 수도 있고, 유저 인터페이스 엘리먼트의 콘텐츠는 하이퍼텍스트 마크업 언어(hypertext markup language; HTML), 확장 가능한 마크업 언어(XML), 또는 XML 유저 인터페이스 언어(XML User Interface Language; XUL)와 같은 마크업 언어로 명시될 수도 있다. 유저 인터페이스 엘리먼트의 레이아웃은 캐스케이딩 스타일 시트(Cascading Style Sheets; CSS)와 같은 스타일 시트 언어로 명시될 수도 있다. 대안적으로 또는 추가적으로, 유저 인터페이스(124)의 양태는 Java(자바), Python(파이썬), Perl(펄), C, C++, 및/또는 임의의 다른 언어 또는 이들의 조합과 같은 하나 이상의 다른 언어로 명시될 수도 있다.
한 실시형태에서, 표면 실장 시스템(100)의 컴포넌트 사이의 통신은 송신 제어 프로토콜/인터넷 프로토콜(Transmission Control Protocol/Internet Protocol; TCP/IP)을 통한 전송 계층 보안(Transport Layer Security; TLS)을 사용한다. 대안적으로 또는 추가적으로, 다른 연결 프로토콜이 사용될 수도 있다. 연결은 TLS 1.1 및/또는 다른 암호화 프로토콜을 사용하여 보호될 수도 있다. 데이터 공유 서브시스템(들)(112) 및 MES 개방형 애플리케이션(118) 각각은, 클라이언트 및 서버 인증서 둘 모두를 사용하여, 클라이언트 및 서버 둘 모두로서 동작할 수도 있다. MES 개방형 애플리케이션(118)은, 주어진 연결에 대해, 클라이언트 및 서버 둘 모두를 인증하도록 구성되는 인증자(authenticator; 120)를 포함할 수도 있다. 따라서, MES 개방형 애플리케이션(118)은 인증되지 않은 클라이언트가 기기에 연결되는 것을 방지하도록 구성될 수도 있다.
한 실시형태에서, 시스템(100)의 하나 이상의 컴포넌트는 하나 이상의 디지털 디바이스 상에서 구현된다. 용어 "디지털 디바이스"는 일반적으로 프로세서를 포함하는 임의의 하드웨어 디바이스를 지칭한다. 디지털 디바이스는 애플리케이션 또는 가상 머신을 실행하는 물리적 디바이스를 지칭할 수도 있다. 디지털 디바이스의 예는, 컴퓨터, 태블릿, 랩탑, 데스크탑, 넷북, 서버, 웹 서버, 네트워크 정책 서버, 프록시 서버, 일반 머신, 기능별 하드웨어 디바이스, 하드웨어 라우터, 하드웨어 스위치, 하드웨어 방화벽, 하드웨어 네트워크 어드레스 변환기(network address translator; NAT), 하드웨어 부하 밸런서, 메인프레임, 텔레비전, 콘텐츠 수신기, 셋탑 박스, 프린터, 모바일 핸드셋, 스마트폰, 개인 휴대형 정보 단말(personal digital assistant; "PDA"), 무선 수신기 및/또는 송신기, 기지국, 통신 관리 디바이스, 라우터, 스위치, 컨트롤러, 액세스 포인트, 및/또는 클라이언트 디바이스를 포함한다.
II. 개방형 애플리케이션 인터페이스의 설치 및 사용
도 2a 및 도 2b는 실시형태에 따른 산업용 기기에 대한 개방형 애플리케이션 인터페이스를 설치하고 사용하기 위한 동작의 예의 흐름도이다. 도 2a 및 도 2b에서 예시되는 하나 이상의 동작은 모두 함께 수정, 재배열, 또는 생략될 수도 있다. 따라서, 도 2a 및 도 2b에서 예시되는 동작의 특정한 시퀀스는 하나 이상의 실시형태의 범위를 제한하는 것으로 해석되어서는 안된다.
다음의 논의에서, 예시의 목적을 위해 메시지 이름 및 명세의 몇몇 예가 제공된다. 메시지 이름 및 명세의 이들 예는 하나 이상의 실시형태의 범위를 제한하는 것으로 해석되어서는 안된다. 또한, 다음의 논의에서, 기기에 의해 전송되고 및/또는 수신되는 메시지는 기기 상에 설치되는 데이터 공유 서브시스템에 의해 전송되고 및/또는 수신되는 것으로 판독되어야 한다.
한 실시형태에서, 데이터 공유 서브시스템의 인스턴스가 설치될 수도 있다(동작(202)). 구체적으로, 데이터 공유 서브시스템의 인스턴스는 상기에서 설명되는 바와 같은 표면 실장 기기의 단편(piece)과 같은, 기기의 단편 상에 설치될 수도 있다. 기기는 이미 설치된 데이터 공유 서브시스템을 구비할 수도 있다. 대안적으로, 데이터 공유 서브시스템은, 애프터마켓 하드웨어, 소프트웨어 및/또는 펌웨어 애드온(add-on)을 지원하는 기기 상에 설치될 수도 있다. 후자의 경우, 데이터 공유 서브시스템을 설치하는 것은, 이전에 그러한 지원이 없었던 기기에 개방형 애플리케이션 지원을 추가한다.
또한, 데이터 공유 서브시스템의 인스턴스는 MES 개방형 애플리케이션 상에 설치될 수도 있다. 시스템은 동일한 인터페이스의 두 개의 인스턴스: 기기가 서버로서 동작하고 MES 개방형 애플리케이션이 클라이언트로서 동작하는 하나의 인스턴스; 및 MES 개방형 애플리케이션이 서버로서 동작하고 기기가 클라이언트로서 동작하는 다른 인스턴스를 포함할 수도 있다. 2 인스턴스 구성은, 기기 및 MES 개방형 애플리케이션 둘 모두가 서로에게 메시지를 송신하는 것, 및 서로로부터 응답을 획득하는 것을 허용한다.
MES 개방형 애플리케이션은 기기와의 연결을 개방할 수도 있거나(동작(204)), 또는 그 반대의 경우도 가능하다. 연결을 개방하는 것은 MES 개방형 애플리케이션에 의해 기기로 전송되는, 또는 기기에 의해 MES 개방형 애플리케이션으로 전송되는 "연결(connect)" 메시지의 형태를 취할 수도 있다. 다음은 한 실시형태에 따른 "연결(connect)" 메시지에 대한 명세의 한 예이다.
Figure pat00001
MES 개방형 애플리케이션은 기기와의 통신을 테스트할 수도 있거나, 또는 그 반대의 경우도 가능하다(동작(206)). 통신을 테스트하는 것은 MES 개방형 애플리케이션에 의해 기기로 전송되는, 또는 기기에 의해 MES 개방형 애플리케이션으로 전송되는 "핑(ping)" 메시지의 형태를 취할 수도 있다. 통신을 테스트하는 것은, 연결이 먼저 확립되어야 한다는 것을 규정하지 않을 수도 있다. 다음은 한 실시형태에 따른 "핑(ping)" 메시지에 대한 명세의 한 예이다:
Figure pat00002
기기 및/또는 MES 개방형 애플리케이션은 수신 컴포넌트에 의해 노출되는 데이터를 발견할 수도 있다(동작(208)). 즉, 기기는 MES 개방형 애플리케이션에 의해 노출되는 데이터를 발견할 수도 있거나, 또는 MES 개방형 애플리케이션은 기기에 의해 노출되는 데이터를 발견할 수도 있다. 데이터는 그룹으로 편제될(organized) 수도 있고, 옵션 사항으로 하위 그룹으로 편제될 수도 있다. 예를 들면, 활성 프로세스 프로그램의 패널 X 치수는 "processProgram\\lineSet\\0\\x1"로서 저장될 수도 있다. 하위 그룹은 "processProgram\\wiper\\enabled"와 같이, 네스트화될 수도 있다. 모든 기기에 의해 지원되는 것을 필요로 할 수도 있는, 실시형태에 따른 데이터 그룹 및 하위 그룹의 몇몇 예가 하기의 예에서 설명된다. 대안적으로 또는 추가적으로, 기기는 그 기능(들)에 고유한 하나 이상의 추가적인 데이터 아이템을 정의할 수도 있다.
기기에 의해 노출되는 데이터를 발견하는 것은 "getDataInfo" 메시지의 형태를 취할 수도 있다. 다음은 한 실시형태에 따른 "getDataInfo" 메시지에 대한 명세의 한 예이다:
Figure pat00003
기기 및/또는 MES 개방형 애플리케이션은 수신 컴포넌트에 의해 노출되는 이벤트를 발견할 수도 있다(동작(210)). 즉, 기기는 MES 개방형 애플리케이션에 의해 노출되는 이벤트를 발견할 수도 있거나, 또는 MES 개방형 애플리케이션은 기기에 의해 노출되는 이벤트를 발견할 수도 있다. 이벤트를 발견하는 것은 "getEventInfo" 메시지의 형태를 취할 수도 있다. 다음은 한 실시형태에 따른 "getEventInfo" 메시지에 대한 명세의 한 예이다:
Figure pat00004
기기 및/또는 MES 개방형 애플리케이션은 수신 컴포넌트에 의해 노출되는 커맨드를 발견할 수도 있다(동작(212)). 즉, 기기는 MES 개방형 애플리케이션에 의해 노출되는 커맨드를 발견할 수도 있거나, 또는 MES 개방형 애플리케이션은 기기에 의해 노출되는 커맨드를 발견할 수도 있다. 커맨드를 발견하는 것은 "getCommandInfo" 메시지의 형태를 취할 수도 있다. 다음은 한 실시형태에 따른 "getCommandInfo" 메시지에 대한 명세의 한 예이다:
Figure pat00005
기기 및/또는 MES 개방형 애플리케이션은 수신 컴포넌트에 의해 노출되는 알람을 발견할 수도 있다(동작(214)). 즉, 기기는 MES 개방형 애플리케이션에 의해 노출되는 알람을 발견할 수도 있거나, 또는 MES 개방형 애플리케이션은 기기에 의해 노출되는 알람을 발견할 수도 있다. 이용 가능한 알람을 발견하는 것은 "getAlarmInfo" 메시지의 형태를 취할 수도 있다. 다음은 한 실시형태에 따른 "getAlarmInfo" 메시지에 대한 명세의 한 예이다:
Figure pat00006
기기 및/또는 MES 개방형 애플리케이션은 이벤트 통지를 인에이블할 수도 있다(동작(216)). 즉, 기기는 MES 개방형 애플리케이션 상에서 발생하는 발견 가능한 이벤트에 대한 통지를 인에이블할 수도 있거나, 또는 MES 개방형 애플리케이션은 기기 상에서 발생하는 발견 가능한 이벤트에 대한 통지를 인에이블할 수도 있다. 이벤트 통지를 인에이블하는 것은 변경된 데이터 값, 트리거된 알람, 및/또는 해제된(cleared) 알람의 통지를 인에이블하는 것을 포함할 수도 있다. 이벤트 통지를 인에이블하는 것은 디폴트로 디스에이블될 수도 있다. 이벤트 통지를 인에이블 및 디스에이블하는 것은 동일한 메시지를 사용할 수도 있는데, 이것은 인에이블/디스에이블 토글로서 효과적으로 기능할 수도 있다. 이벤트 통지를 인에이블 및/또는 디스에이블하는 것은 "enableEventNotifications" 메시지의 형태를 취할 수도 있다. 다음은 한 실시형태에 따른 "enableEventNotifications" 메시지에 대한 명세의 한 예이다:
Figure pat00007
기기 및/또는 MES 개방형 애플리케이션은 데이터 값(즉, 발견 가능한 데이터 아이템의 값)이 변경되었다는 통지를 수신할 수도 있다(동작(218)). 즉, 기기는 MES 개방형 애플리케이션에서 데이터 값이 변경되었다는 통지를 MES 개방형 애플리케이션으로부터 수신할 수도 있거나, 또는 MES 개방형 애플리케이션은 기기에서 데이터 값이 변경되었다는 통지를 기기로부터 수신할 수도 있다. 데이터 값이 변경되었다는 것을 통지하는 것은 "notifyValuesUpdated" 메시지의 형태를 취할 수도 있는데, 이것은 데이터 "청취자(listner)"에게 값 변경을 통지할 수도 있다. 다음은 한 실시형태에 따른 "notifyValuesUpdated" 메시지에 대한 명세의 한 예이다:
Figure pat00008
기기 및/또는 MES 개방형 애플리케이션은 수신 컴포넌트 상에서 데이터 값을 설정할 수도 있다(동작(220)). 즉, 기기는 MES 개방형 애플리케이션 상에서 데이터 값을 설정할 수도 있거나, 또는 MES 개방형 애플리케이션은 기기 상에서 데이터 값을 설정할 수도 있다. 한 실시형태에서, 읽기 전용으로 플래그가 지정되지 않은 데이터 값만이 이러한 방식으로 설정될 수 있다. 데이터 값을 설정하는 것은 "setDataValues" 메시지의 형태를 취할 수도 있다. 다음은 한 실시형태에 따른 "setDataValues" 메시지에 대한 명세의 한 예이다:
Figure pat00009
기기 및/또는 MES 개방형 애플리케이션은 이벤트가 발생하였다는 통지를 수신할 수도 있다(동작(222)). 즉, 기기는 MES 개방형 애플리케이션 상에서 이벤트가 발생하였다는 통지를 MES 개방형 애플리케이션으로부터 수신할 수도 있거나, 또는 MES 개방형 애플리케이션은 기기 상에서 이벤트가 발생하였다는 통지를 기기로부터 수신할 수도 있다. 이벤트가 발생하였다는 것을 결정하는 것은 "eventTriggered" 메시지를 수신하는 것의 형태를 취할 수도 있다. 다음은 한 실시형태에 따른 "eventTriggered" 메시지에 대한 명세의 한 예이다:
Figure pat00010
기기 및/또는 MES 개방형 애플리케이션은 수신 컴포넌트 상에서 커맨드를 실행할 수도 있다(동작(224)). 즉, 기기는 MES 개방형 애플리케이션 상에서 커맨드를 실행할 수도 있거나, 또는 MES 개방형 애플리케이션은 기기 상에서 커맨드를 실행할 수도 있다. 커맨드를 실행하는 것은 "executeCommand" 메시지의 형태를 취할 수도 있다. 다음은 한 실시형태에 따른 "executeCommand" 메시지에 대한 명세의 한 예이다:
Figure pat00011
기기 및/또는 MES 개방형 애플리케이션은 알람이 트리거되었다는 통지를 수신할 수도 있다(동작(226)). 즉, 기기는 MES 개방형 애플리케이션 상에서 알람이 트리거되었다는 것을 나타내는 통지를 MES 개방형 애플리케이션으로부터 수신할 수도 있거나, 또는 MES 개방형 애플리케이션은 기기 상에서 알람이 트리거되었다는 것을 나타내는 통지를 기기로부터 수신할 수도 있다. 알람이 트리거되었다는 통지는 "alarmTriggered" 메시지를 수신하는 것의 형태를 취할 수도 있다. 다음은 한 실시형태에 따른 "alarmTriggered" 메시지에 대한 명세의 한 예이다:
Figure pat00012
기기 및/또는 MES 개방 애플리케이션은 알람이 해제되었다는 통지를 수신할 수도 있다(동작(228)). 즉, 기기는 MES 개방형 애플리케이션 상에서 알람이 해제되었다는 것을 나타내는 통지를 MES 개방형 애플리케이션으로부터 수신할 수도 있거나, 또는 MES 개방형 애플리케이션은 기기 상에서 알람이 해제되었다는 것을 나타내는 통지를 기기로부터 수신할 수도 있다. 알람이 해제되었다는 통지는 "alarmCleared" 메시지를 수신하는 것의 형태를 취할 수도 있다. 다음은 한 실시형태에 따른 "alarmCleared" 메시지에 대한 명세의 한 예이다:
Figure pat00013
기기 및/또는 MES 개방형 애플리케이션은 기기와 MES 개방형 애플리케이션 사이의 연결을 종료할 수도 있다(동작(230)). 연결을 종료하는 것은 MES 개방형 애플리케이션에 의해 기기로 전송되는, 또는 기기에 의해 MES 개방형 애플리케이션으로 전송되는 "연결 해제(disconnect)" 메시지의 형태를 취할 수도 있다. 다음은 한 실시형태에 따른 "disconnect(연결 해제)" 메시지에 대한 명세의 한 예이다:
Figure pat00014
상기에서 설명되는 동작을 사용하여, MES 개방형 애플리케이션은 산업용 기기에 의해 노출되는 데이터, 이벤트, 알람 및 커맨드를 발견할 수도 있다. MES 개방형 애플리케이션은, MES 개방형 애플리케이션이 데이터 변경, 이벤트, 및/또는 알람 트리거링의 통지를 수신할 준비가 되었다는 것을 기기가 알 수도 있도록, 이벤트 통지를 인에이블할 수도 있다. 그 다음, 지속적으로, MES 개방형 애플리케이션은 업데이트된 데이터 값, 이벤트 및/또는 알람 트리거, 및/또는 해제된 이벤트의 통지를 수신하기 위해 기기와 통신할 수도 있다. 산업용 프로세스(예를 들면, 표면 실장)를 제어하기 위해, MES 개방형 애플리케이션은 기기 상에서 커맨드를 실행할 수도 있고 기기 상에서 데이터 값을 설정할 수도 있다. 한 실시형태에서, 이 일반 워크플로우는, 기기 상에서 데이터, 이벤트, 알람, 및/또는 커맨드가 추가되는 또는 수정되는 경우, 변경되지 않는다 - 인터페이스 및 메시징 프로세스는 동일하게 유지된다. 또한, 인터페이스 및 메시징 프로세스는 본원에서 설명되는 개방형 애플리케이션 아키텍쳐를 구현하는 모든 컴포넌트에 걸쳐 동일하다.
III. 상세한 예
다음은 한 실시형태에 따른 메시지의 예이다. 이들 예는 명확화의 목적을 위해 제공된다. 하기에서 설명되는 컴포넌트 및/또는 동작은 하나 이상의 실시형태에 적용 가능하지 않을 수도 있는 예로서 이해되어야 한다. 따라서, 하기에서 설명되는 컴포넌트 및/또는 동작은 하나 이상의 실시형태의 범위를 제한하는 것으로 해석되어서는 안된다.
connect(연결). 한 실시형태에서, 클라이언트 MES 개방 애플리케이션이 기기에 연결될 때, 그것은 자신의 인터넷 프로토콜(IP) 어드레스 및 포트를 명시한다. 이 정보를 사용하여, 기기는 MES 개방형 애플리케이션에 대한 되연결(connection back)을 확립할 수 있는데, 여기서 기기는 클라이언트이고 MES 개방형 애플리케이션은 서버이다. 예를 들면:
Figure pat00015
ping(핑). 한 실시형태에서, "핑" 메시지는 기기 또는 MES 개방형 애플리케이션 중 어느 하나가, 연결이 여전히 활성 상태이다는 것, 및 서버 측(데이터 공유 인터페이스의 인스턴스에 따라, 기기 또는 MES 개방형 애플리케이션)이 여전히 활성 상태이다는 것을 유효성 확인하는 것을 허용한다. 예를 들면:
Figure pat00016
연결 해제. 한 실시형태에서, "연결 해제" 메시지는 기기 또는 MES 개방 애플리케이션이 연결에 할당되는 리소스를 확보하는(free up) 것을 허용한다. 예를 들면:
Figure pat00017
GetDataInfo. 한 실시형태에서, "GetDataInfo" 메시지는, 클라이언트(데이터 공유 인터페이스의 인스턴스에 따라, 기기 또는 MES 개방형 애플리케이션)가, 서버에 의해 어떤 데이터가 제공되는지, 및 데이터의 소정의 속성을 발견하는 것을 허용한다. 이 접근법은 인터페이스가 기기 고유의 데이터와 무관하게 되는 것을 허용한다. 예를 들면:
Figure pat00018
GetEventInfo. 한 실시형태에서, "GetEventInfo" 메시지는, 클라이언트(데이터 공유 인터페이스의 인스턴스에 따라, 기기 또는 MES 개방형 애플리케이션)가, 서버에 의해 어떤 이벤트가 제공되는지뿐만 아니라, 각각의 이벤트와 관련되는 데이터를 발견하는 것을 허용한다. 이 접근법은 인터페이스가 기기 고유의 이벤트와 무관하게 되는 것을 허용한다. 예를 들면:
Figure pat00019
Figure pat00020
Figure pat00021
GetCommandInfo. 한 실시형태에서, "GetCommandInfo" 메시지는, 클라이언트(데이터 공유 인터페이스의 인스턴스에 따라, 기기 또는 MES 개방형 애플리케이션)가, 서버에 의해 어떤 커맨드가 제공되는지뿐만 아니라, 각각의 커맨드와 관련되는 파라미터를 발견하는 것을 허용한다. 이 접근법은 인터페이스기 기기 고유의 커맨드와 무관하게 되는 것을 허용한다. 예를 들면:
Figure pat00022
Figure pat00023
GetAlarmInfo. 한 실시형태에서, "GetAlarmInfo" 메시지는, 클라이언트(데이터 공유 인터페이스의 인스턴스에 따라, 기기 또는 MES 개방형 애플리케이션)가, 서버에 의해 어떤 알람이 제공되는지를 발견하는 것을 허용한다. 이 접근법은 인터페이스가 기기 고유의 알람과 무관하게 되는 것을 허용한다. 예를 들면:
Figure pat00024
SetDataValues. 한 실시형태에서, "SetDataValues" 메시지는, 클라이언트(데이터 공유 인터페이스의 인스턴스에 따라, 기기 또는 MES 개방형 애플리케이션)가, 서버 상에서 데이터의 값을 설정하는 것을 허용한다. 이름/값 쌍을 명시하는 것은, 인터페이스가 기기 고유의 데이터와 독립적으로 되는 것을 허용한다. 예를 들면:
Figure pat00025
EnableEventNotifications:
Figure pat00026
ExecuteCommand. 한 실시형태에서, "ExecuteCommand" 메시지는, 클라이언트(데이터 공유 인터페이스의 인스턴스에 따라, 기기 또는 MES 개방형 애플리케이션)가, 서버 상의 커맨드를 실행하는 것을 허용한다. 커맨드 이름을 명시하는 것 및 파라미터 목록을 이름/값 쌍으로서 전달하는 것은, 인터페이스가 기기 고유의 커맨드와 독립적으로 되는 것을 허용한다. 예를 들면:
Figure pat00027
EventTriggered. 한 실시형태에서, "EventTriggered" 메시지는 클라이언트(데이터 공유 인터페이스의 인스턴스에 따라, 기기 또는 MES 개방형 애플리케이션)가, 이벤트가 발생하는 때를 서버에게 통지하는 것을 허용한다. 이벤트 이름을 명시하는 것 및 데이터를 이름/값 쌍으로서 전달하는 것은, 인터페이스가 기기 고유의 이벤트와 무관하게 되는 것을 허용한다. 예를 들면:
Figure pat00028
Figure pat00029
AlarmCleared. 한 실시형태에서, "AlarmCleared" 메시지는, 클라이언트(데이터 공유 인터페이스의 인스턴스에 따라, 기기 또는 MES 개방형 애플리케이션)가, 알람이 해제되는 때를 서버에게 통지하는 것을 허용한다. 알람 인스턴스 ID를 명시하는 것은 인터페이스가 기기 고유의 알람과 독립적으로 되는 것을 허용한다. 예를 들면:
Figure pat00030
AlarmTriggered. 한 실시형태에서, "AlarmTriggered" 메시지는, 클라이언트(데이터 공유 인터페이스의 인스턴스에 따라, 기기 또는 MES 개방형 애플리케이션)가, 알람이 트리거되는 때를 서버에게 통지하는 것을 허용한다. 알람 인스턴스 ID 및 관련된 알람 텍스트를 명시하는 것은 인터페이스가 기기 고유의 알람과 독립적으로 되는 것을 허용한다. 예를 들면:
Figure pat00031
NotifyValuesUpdated. 한 실시형태에서, "NotifyValuesUpdated" 메시지는, 클라이언트(데이터 공유 인터페이스의 인스턴스에 따라, 기기 또는 MES 개방형 애플리케이션)가, 하나 이상의 데이터 값이 업데이트되었다는 것을 서버에게 통지하는 것을 허용한다. 이름/값 쌍을 명시하는 것은, 인터페이스가 기기 고유의 데이터와 독립적으로 되는 것을 허용한다. 예를 들면:
Figure pat00032
IV. 일반; 컴퓨터 시스템; 네트워킹
한 실시형태에서, 시스템은, 본원에 설명되는 및/또는 청구범위 중 임의의 것에서 열거되는 동작 중 임의의 것을 수행하도록 구성되는 하나 이상의 하드웨어 프로세서를 포함하는 하나 이상의 디바이스를 포함한다.
한 실시형태에서, 하나 이상의 비일시적 컴퓨터 판독 가능 저장 매체는, 하나 이상의 하드웨어 프로세서에 의해 실행될 때, 본원에서 설명되는 및/또는 청구범위 중 임의의 것에서 열거되는 동작 중 임의의 것의 성능을 야기하는 명령어를 저장한다.
본원에서 설명되는 피쳐 및 기능성의 임의의 조합이 실시형태에 따라 사용될 수도 있다. 전술한 명세서에서, 실시형태는, 구현예마다 변할 수도 있는 다수의 특정한 세부 사항을 참조하여 설명되었다. 따라서, 명세서 및 도면은 제한적인 의미가 아닌 예시적인 의미로서 간주되어야 한다. 본 출원인에 의해 본 발명의 범위가 되도록 의도되는 것, 및 본 발명의 범위의 유일하고 배타적인 표시자는, 임의의 후속하는 수정을 비롯하여, 청구범위가 발행되는 특정한 형식으로 본 출원으로부터 발행되는 청구범위의 세트의 자구적 및 등가적 범위이다.
한 실시형태에서, 본원에서 설명되는 기술은 하나 이상의 특수 목적 컴퓨팅 디바이스(즉, 소정의 기능성을 수행하도록 특별히 구성되는 컴퓨팅 디바이스)에 의해 구현된다. 특수 목적 컴퓨팅 디바이스(들)는 기술을 수행하기 위해 하드웨어에 내장될(hard-wired) 수도 있고 및/또는 하나 이상의 주문형 집적 회로(application-specific integrated circuit; ASIC), 필드 프로그래머블 게이트 어레이(Field Programmable Gate Array; FPGA), 및/또는 기술을 수행하도록 지속적으로 프로그래밍되는 네트워크 프로세싱 유닛(network processing unit; NPU)과 같은 디지털 전자 디바이스를 포함할 수도 있다. 대안적으로 또는 추가적으로, 컴퓨팅 디바이스는, 펌웨어, 메모리, 및/또는 다른 스토리지의 프로그램 명령어에 따라 기술을 수행하도록 프로그래밍되는 하나 이상의 범용 하드웨어 프로세서를 포함할 수도 있다. 대안적으로 또는 추가적으로, 특수 목적 컴퓨팅 디바이스는 기술을 달성하기 위해 맞춤형의 하드웨어에 내장된 로직, ASIC, FPGA, 또는 NPU를 맞춤형 프로그래밍과 결합할 수도 있다. 특수 목적 컴퓨팅 디바이스는 데스크탑 컴퓨터 시스템, 휴대용 컴퓨터 시스템, 핸드헬드 디바이스, 네트워킹 디바이스, 및/또는 기술을 구현하기 위해 하드웨어에 내장된 및/또는 프로그램 로직을 통합하는 임의의 다른 디바이스(들)를 포함할 수도 있다.
예를 들면, 도 3은 실시형태에 따른 컴퓨터 시스템(300)의 한 예의 블록도이다. 컴퓨터 시스템(300)은 정보를 전달하기 위한 버스(302) 또는 다른 통신 메커니즘, 및 정보를 프로세싱하기 위한 버스(302)와 커플링되는 하드웨어 프로세서(304)를 포함한다. 하드웨어 프로세서(304)는 범용 마이크로프로세서일 수도 있다.
컴퓨터 시스템(300)은, 프로세서(304)에 의해 실행될 정보 및 명령어를 저장하기 위해 버스(302)에 커플링되는, 랜덤 액세스 메모리(random access memory; RAM) 또는 다른 동적 스토리지 디바이스와 같은 메인 메모리(306)를 또한 포함한다. 메인 메모리(306)는 프로세서(304)에 의해 실행될 명령어의 실행 동안 임시 변수 또는 다른 중간 정보를 저장하기 위해 또한 사용될 수도 있다. 그러한 명령어는, 프로세서(304)가 액세스 가능한 하나 이상의 비일시적 저장 매체에 저장되는 경우, 컴퓨터 시스템(300)을, 명령어에서 명시되는 동작을 수행하도록 커스터마이징되는 특수 목적 머신으로 만든다.
컴퓨터 시스템(300)은 프로세서(304)에 대한 정적 정보 및 명령어를 저장하기 위해 버스(302)에 커플링되는 리드 온리 메모리(read only memory; ROM)(308) 또는 다른 정적 스토리지 디바이스를 더 포함한다. 자기 디스크 또는 광학 디스크와 같은 스토리지 디바이스(310)가 제공되고 정보 및 명령어를 저장하기 위해 버스(302)에 커플링된다.
컴퓨터 시스템(300)은 버스(302)를 통해 디스플레이(312), 예컨대 액정 디스플레이(liquid crystal display; LCD), 플라즈마 디스플레이, 전자 잉크 디스플레이, 음극선관(cathode ray tube; CRT) 모니터, 또는 정보를 컴퓨터 유저에게 디스플레이하기 위한 임의의 다른 종류의 디바이스에 커플링될 수도 있다. 영숫자 및 다른 키를 포함하는 입력 디바이스(314)는 정보 및 커맨드 선택을 프로세서(304)에 전달하기 위해 버스(302)에 커플링될 수도 있다. 대안적으로 또는 추가적으로, 컴퓨터 시스템(300)은, 프로세서(304)에 방향 정보 및 커맨드 선택을 전달하기 위한 그리고 디스플레이(312) 상에서의 커서 움직임을 제어하기 위한 마우스, 트랙볼, 트랙패드 또는 커서 방향 키와 같은 커서 제어(316)를 통해 유저 입력을 수신할 수도 있다. 이 입력 디바이스는, 통상적으로, 디바이스가 평면에서의 위치를 명시하는 것을 허용하는 두 개의 축인 제1 축(예를 들면, x) 및 제2 축(예를 들면, y)에서 2 자유도를 갖는다. 대안적으로 또는 추가적으로, 컴퓨터 시스템(3)은 터치스크린을 포함할 수도 있다. 디스플레이(312)는 하나 이상의 압력 감지 센서, 멀티터치 센서, 및/또는 제스쳐 센서를 통해 유저 입력을 수신하도록 구성될 수도 있다. 대안적으로 또는 추가적으로, 컴퓨터 시스템(300)은 마이크, 비디오 카메라, 및/또는 어떤 다른 종류의 유저 입력 디바이스(도시되지 않음)를 통해 유저 입력을 수신할 수도 있다.
컴퓨터 시스템(300)은, 컴퓨터 시스템(300)의 다른 컴포넌트와 조합하여, 컴퓨터 시스템(300)으로 하여금 특수 목적 머신에 되게 하는 또는 컴퓨터 시스템(300)을 특수 목적 머신이 되도록 프로그래밍하는 커스터마이징된 하드웨어에 내장된 로직, 하나 이상의 ASIC 또는 FPGA, 펌웨어, 및/또는 프로그램 로직을 사용하여 본원에서 설명되는 기술을 구현할 수도 있다. 하나의 실시형태에 따르면, 본원에서의 기술은, 프로세서(304)가 메인 메모리(306)에 포함되는 하나 이상의 명령어의 하나 이상의 시퀀스를 실행하는 것에 응답하여 컴퓨터 시스템(300)에 의해 수행된다. 그러한 명령어는 스토리지 디바이스(310)와 같은 다른 저장 매체로부터 메인 메모리(306) 안으로 판독될 수도 있다. 메인 메모리(306)에 포함되는 명령어의 시퀀스의 실행은 프로세서(304)로 하여금 본원에서 설명되는 프로세스 단계를 수행하게 한다. 대안적으로 또는 추가적으로, 하드웨어에 내장된 회로부(circuitry)가 소프트웨어 명령어 대신에 또는 소프트웨어 명령어와 조합하여 사용될 수도 있다.
본원에서 사용되는 바와 같은 용어 "저장 매체"는, 머신으로 하여금 특정한 양식으로 동작하게 하는 데이터 및/또는 명령어를 저장하는 하나 이상의 비일시적 매체를 지칭한다. 그러한 저장 매체는 불휘발성 매체 및/또는 휘발성 매체를 포함할 수도 있다. 불휘발성 매체는, 예를 들면, 스토리지 디바이스(310)와 같은 광학 디스크 또는 자기 디스크를 포함한다. 휘발성 매체는 메인 메모리(306)와 같은 동적 메모리를 포함한다. 저장 매체의 일반적인 형태는, 예를 들면, 플로피 디스크, 플렉시블 디스크, 하드 디스크, 솔리드 스테이트 드라이브, 자기 테이프 또는 다른 자기 데이터 저장 매체, CD-ROM 또는 임의의 다른 광학 데이터 저장 매체, 구멍의 패턴을 갖는 임의의 물리적 매체, RAM, 프로그래머블 리드 온리 메모리(programmable read-only memory; PROM), 삭제 가능한 PROM(erasable PROM; EPROM), FLASH-EPROM, 불휘발성 랜덤 액세스 메모리(non-volatile random-access memory; NVRAM), 임의의 다른 메모리 칩 또는 카트리지, 콘텐츠 주소 지정 가능 메모리(content-addressable memory; CAM), 및 터너리 콘텐츠 주소 지정 가능 메모리(ternary content-addressable memory; TCAM)를 포함한다.
저장 매체는 송신 매체와는 구별되지만, 그러나 송신 매체와 연계하여 사용될 수도 있다. 송신 매체는 저장 매체 사이의 정보 전송에 참가한다. 송신 매체의 예는, 버스(302)를 구성하는 배선을 비롯하여, 동축 케이블, 구리 배선, 및 광섬유를 포함한다. 송신 매체는 또한, 전파(radio-wave) 및 적외선 데이터 통신 동안 생성되는 것들과 같은, 음파 또는 광파의 형태를 취할 수도 있다.
다양한 형태의 매체는 실행을 위해 하나 이상의 명령어의 하나 이상의 시퀀스를 프로세서(304)로 반송하는 데 수반될 수도 있다. 예를 들면, 명령어는 초기에 원격 컴퓨터의 자기 디스크 또는 솔리드 스테이트 드라이브 상에 내포될 수도 있다. 원격 컴퓨터는 명령어를 자신의 동적 메모리로 로딩할 수도 있고, 이더넷 컨트롤러 또는 Wi-Fi(와이파이) 컨트롤러와 같은 네트워크 인터페이스 컨트롤러(network interface controller; NIC)를 통해, 네트워크를 통해 명령어를 전송할 수도 있다. 컴퓨터 시스템(300)에 로컬인 NIC는 네트워크로부터 데이터를 수신하여 데이터를 버스(302) 상에 둘 수도 있다. 버스(302)는, 프로세서(304)가 명령어를 검색하고 실행하는 메인 메모리(306)로 데이터를 운반한다. 메인 메모리(306)에 의해 수신되는 명령어는 프로세서(304)에 의한 실행 이전 또는 이후 중 어느 하나에서 스토리지 디바이스(310) 상에, 옵션 사항으로, 저장될 수도 있다.
컴퓨터 시스템(300)은 버스(302)에 커플링되는 통신 인터페이스(318)를 또한 포함한다. 통신 인터페이스(318)는, 로컬 네트워크(322)에 연결되는 네트워크 링크(320)에 양방향 데이터 통신 커플링을 제공한다. 예를 들면, 통신 인터페이스(318)는 통합 서비스 디지털 네트워크(integrated services digital network; ISDN) 카드, 케이블 모뎀, 위성 모뎀, 또는 대응하는 타입의 전화 라인에 데이터 통신 연결을 제공하는 모뎀일 수도 있다. 다른 예로서, 통신 인터페이스(318)는, 호환 가능한 LAN에 데이터 통신 연결을 제공하기 위한 근거리 통신망(local area network; LAN) 카드일 수도 있다. 무선 링크도 또한 구현될 수도 있다. 임의의 그러한 구현예에서, 통신 인터페이스(318)는, 다양한 타입의 정보를 나타내는 디지털 데이터 스트림을 운반하는 전기, 전자기 또는 광학 신호를 전송 및 수신한다.
네트워크 링크(320)는 통상적으로 하나 이상의 네트워크를 통해 다른 데이터 디바이스에 데이터 통신을 제공한다. 예를 들면, 네트워크 링크(320)는 로컬 네트워크(322)를 통해 호스트 컴퓨터(324)에 대한 또는 인터넷 서비스 제공자(Internet Service Provider; ISP)(326)에 의해 운영되는 데이터 기기에 대한 연결을 제공할 수도 있다. ISP(326)는, 결국에는, 현재 일반적으로 "인터넷(Internet)" (328)으로 지칭되는 전세계적인 패킷 데이터 통신 네트워크를 통해 데이터 통신 서비스를 제공한다. 로컬 네트워크(322) 및 인터넷(328) 둘 모두는 디지털 데이터 스트림을 운반하는 전기, 전자기 또는 광학 신호를 사용한다. 컴퓨터 시스템(300)으로의 그리고 컴퓨터 시스템(300)으로부터의 디지털 데이터를 운반하는, 다양한 네트워크를 통과하는 신호 및 네트워크 링크(320) 상의 그리고 통신 인터페이스(318)를 통과하는 신호는 송신 매체의 예시적인 형태이다.
컴퓨터 시스템(300)은, 네트워크(들), 네트워크 링크(320) 및 통신 인터페이스(318)를 통해, 메시지를 전송할 수 있고 프로그램 코드를 비롯한 데이터를 수신할 수도 있다. 인터넷 예에서, 서버(330)는 인터넷(328), ISP(326), 로컬 네트워크(322), 및 통신 인터페이스(318)를 통해 애플리케이션 프로그램에 대한 요청된 코드를 송신할 수도 있다.
수신된 코드는, 그것이 수신되면 프로세서(304)에 의해 실행될 수도 있고, 및/또는 나중의 실행을 위해, 스토리지 디바이스(310), 또는 다른 불휘발성 스토리지에 저장될 수도 있다.
한 실시형태에서, 컴퓨터 네트워크는, 본원에서 설명되는 바와 같은 기술을 활용하는 소프트웨어를 실행하는 노드의 세트 사이에서 연결성을 제공한다. 노드는 서로 로컬일 수도 있고 및/또는 서로로부터 멀리 떨어질 수도 있다. 노드는 링크의 세트에 의해 연결된다. 링크의 예는 동축 케이블, 비차폐형 트위스트 케이블(unshielded twisted cable), 구리 케이블, 광섬유, 및 가상 링크를 포함한다.
노드의 서브세트는 컴퓨터 네트워크를 구현한다. 그러한 노드의 예는, 스위치, 라우터, 방화벽, 및 네트워크 어드레스 변환기(NAT)를 포함한다. 노드의 다른 서브세트는 컴퓨터 네트워크를 사용한다. 그러한 노드("호스트"로서 또한 지칭됨)는 클라이언트 프로세스 및/또는 서버 프로세스를 실행할 수도 있다. 클라이언트 프로세스는 컴퓨팅 서비스에 대한 요청(예를 들면, 특정한 애플리케이션을 실행하기 위한 및/또는 데이터의 특정한 세트를 검색하기 위한 요청)을 행한다. 서버 프로세스는 요청된 서비스를 실행하는 것 및/또는 대응하는 데이터를 반환하는 것에 의해 응답한다.
컴퓨터 네트워크는, 물리적 링크에 의해 연결되는 물리적 노드를 포함하는 물리적 네트워크일 수도 있다. 물리적 노드는 임의의 디지털 디바이스이다. 물리적 노드는 기능별 하드웨어 디바이스일 수도 있다. 기능별 하드웨어 디바이스의 예는, 하드웨어 스위치, 하드웨어 라우터, 하드웨어 방화벽, 및 하드웨어 NAT를 포함한다. 대안적으로 또는 추가적으로, 물리적 노드는, 각각의 기능을 수행하는 다양한 가상 머신 및/또는 애플리케이션을 실행하도록 구성되는 것과 같은 태스크를 수행하기 위해 컴퓨트 파워(compute power)를 제공하는 임의의 물리적 리소스일 수도 있다. 물리적 링크는 두 개 이상의 물리적 노드를 연결하는 물리적 매체이다. 링크의 예는 동축 케이블, 비차폐형 트위스트 케이블, 구리 케이블, 및 광섬유를 포함한다.
컴퓨터 네트워크는 오버레이 네트워크일 수도 있다. 오버레이 네트워크는, 다른 네트워크(예를 들면, 물리적 네트워크) 위에 구현되는 논리적 네트워크이다. 오버레이 네트워크에서의 각각의 노드는 기저의 네트워크에서의 각각의 노드에 대응한다. 따라서, 오버레이 네트워크에서의 각각의 노드는, (오버레이 노드를 주소 지정하기 위한) 오버레이 어드레스 및 (오버레이 노드를 구현하는 언더레이 노드를 주소 지정하기 위한) 언더레이 어드레스 둘 모두와 관련된다. 오버레이 노드는 디지털 디바이스 및/또는 소프트웨어 프로세스(예를 들면, 가상 머신, 애플리케이션 인스턴스, 또는 스레드)일 수도 있다. 오버레이 노드를 연결하는 링크는 기저의 네트워크를 통해 터널로서 구현될 수도 있다. 터널의 어느 한 쪽 단부에 있는 오버레이 노드는, 그들 사이의 기저의 다중 홉 경로를 단일의 논리적 링크로서 취급할 수도 있다. 터널링은 캡슐화(encapsulation) 및 캡슐화 해제(decapsulation)를 통해 수행된다.
한 실시형태에서, 클라이언트는 컴퓨터 네트워크에 로컬일 수도 있고 및/또는 그로부터 멀리 떨어질 수도 있다. 클라이언트는, 사설 네트워크 또는 인터넷과 같은 다른 컴퓨터 네트워크를 통해 컴퓨터 네트워크에 액세스할 수도 있다. 클라이언트는 하이퍼텍스트 전송 프로토콜(HTTP)과 같은 통신 프로토콜을 사용하여 컴퓨터 네트워크에 요청을 전달할 수도 있다. 요청은, 클라이언트 인터페이스(예컨대, 웹 브라우저), 프로그램 인터페이스, 또는 애플리케이션 프로그래밍 인터페이스(application programming interface; API)와 같은 인터페이스를 통해 전달된다.
한 실시형태에서, 컴퓨터 네트워크는 클라이언트와 네트워크 리소스 사이에서 연결성을 제공한다. 네트워크 리소스는 서버 프로세스를 실행하도록 구성되는 하드웨어 및/또는 소프트웨어를 포함한다. 네트워크 리소스의 예는 프로세서, 데이터 스토리지, 가상 머신, 컨테이너, 및/또는 소프트웨어 애플리케이션을 포함한다. 네트워크 리소스는 다수의 클라이언트 사이에서 공유될 수도 있다. 클라이언트는 서로 독립적으로 컴퓨터 네트워크에게 컴퓨팅 서비스를 요청한다. 네트워크 리소스는, 요구 기반으로, 요청 및/또는 클라이언트에 동적으로 할당된다. 각각의 요청 및/또는 클라이언트에 할당되는 네트워크 리소스는, 예를 들면, (a) 특정한 클라이언트에 의해 요청되는 컴퓨팅 서비스, (b) 특정한 테넌트(tenant)에 의해 요청되는 집성된 컴퓨팅 서비스(aggregated computing service), 및/또는 (c) 컴퓨터 네트워크의 요청되는 집성된 컴퓨팅 서비스에 기초하여, 확장 또는 축소될 수도 있다. 그러한 컴퓨터 네트워크는 "클라우드 네트워크"로 지칭될 수도 있다.
한 실시형태에서, 서비스 제공자는 하나 이상의 엔드 유저에게 클라우드 네트워크를 제공한다. 서비스로서의 소프트웨어(Software-as-a-Service; SaaS), 서비스로서의 플랫폼(Platform-as-a-Service; PaaS), 및 서비스로서의 인프라(Infrastructure-as-a-Service; IaaS)를 포함하는 그러나 이들로 제한되지는 않는 다양한 서비스 모델이 클라우드 네트워크에 의해 구현될 수도 있다. SaaS에서, 서비스 제공자는, 네트워크 리소스 상에서 실행되고 있는 서비스 제공자의 애플리케이션을 사용하는 능력을 엔드 유저에게 제공한다. PaaS에서, 서비스 제공자는 맞춤형 애플리케이션을 네트워크 리소스 상으로 배치하는 능력을 엔드 유저에게 제공한다. 맞춤형 애플리케이션은 서비스 제공자에 의해 지원되는 프로그래밍 언어, 라이브러리, 서비스, 및 도구를 사용하여 생성될 수도 있다. IaaS에서 서비스 제공자는 네트워크 리소스에 의해 제공되는 프로세싱, 스토리지, 네트워크, 및 다른 기본 컴퓨팅 리소스를 프로비저닝하는 능력을 엔드 유저에게 제공한다. 오퍼레이팅 시스템을 비롯한 임의의 애플리케이션은 네트워크 리소스 상에서 배치될 수도 있다.
한 실시형태에서, 사설 클라우드, 공공 클라우드, 및 하이브리드 클라우드를 포함하는 그러나 이들로 제한되지는 않는 다양한 배치 모델이 컴퓨터 네트워크에 의해 구현될 수도 있다. 사설 클라우드에서, 네트워크 리소스는 하나 이상의 엔티티(본원에서 사용되는 바와 같은 용어 "엔티티"는 기업, 조직, 사람, 또는 다른 엔티티를 지칭함)의 특정한 그룹에 의한 독점적 사용을 위해 프로비저닝된다. 네트워크 리소스는 엔티티의 특정한 그룹의 구내(premise)에 로컬일 수도 있고 및/또는 그 구내로부터 멀리 떨어질 수도 있다. 공공 클라우드에서, 클라우드 리소스는, 서로 독립적인 다수의 엔티티("테넌트" 또는 "고객"으로 또한 지칭됨)에 대해 프로비저닝된다. 하이브리드 클라우드에서, 컴퓨터 네트워크는 사설 클라우드 및 공공 클라우드를 포함한다. 사설 클라우드와 공공 클라우드 사이의 인터페이스는 데이터 및 애플리케이션 이식성을 허용한다. 사설 클라우드에 저장되는 데이터와 공공 클라우드에 저장되는 데이터는 인터페이스를 통해 교환될 수도 있다. 사설 클라우드에서 구현되는 애플리케이션과 공공 클라우드에서 구현되는 애플리케이션은 서로 의존성을 가질 수도 있다. 사설 클라우드에 있는 애플리케이션으로부터 공공 클라우드에 있는 애플리케이션으로의(또는 그 반대로의) 호출은 인터페이스를 통해 실행될 수도 있다.
한 실시형태에서, 시스템은 다수의 테넌트를 지원한다. 테넌트는, 공유된 컴퓨팅 리소스(예를 들면, 공공 클라우드에서 공유되는 컴퓨팅 리소스)에 액세스하는 기업, 조직, 회사, 사업부, 직원, 또는 다른 엔티티이다. 하나의 테넌트는 (운용, 테넌트 고유의 관행, 직원, 및/또는 외부 세계에 대한 식별 정보(identification)를 통해)는 다른 테넌트와는 분리될 수도 있다. 컴퓨터 네트워크 및 그 네트워크 리소스는 상이한 테넌트에 대응하는 클라이언트에 의해 액세스된다. 그러한 컴퓨터 네트워크는 "다중 테넌트 컴퓨터 네트워크"로서 지칭될 수도 있다. 여러 테넌트가 동일한 특정한 네트워크 리소스를 상이한 시간에 및/또는 동시에 사용할 수도 있다. 네트워크 리소스는 테넌트의 구내에 로컬일 수도 있고 및/또는 그 구내로부터 멀리 떨어질 수도 있다. 상이한 테넌트는 컴퓨터 네트워크에 대해 상이한 네트워크 요건을 요구할 수도 있다. 네트워크 요건의 예는, 프로세싱 속도, 데이터 스토리지의 양, 보안 요건, 성능 요건, 스루풋 요건, 레이턴시 요건, 복원력 요건, 서비스 품질(Quality of Service; QoS) 요건, 테넌트 격리, 및/또는 일관성을 포함한다. 동일한 컴퓨터 네트워크는 상이한 테넌트에 의해 요구되는 상이한 네트워크 요건을 구현하는 것을 필요로 할 수도 있다.
한 실시형태에서, 다중 테넌트 컴퓨터 네트워크에서, 테넌트 격리는 상이한 테넌트의 애플리케이션 및/또는 데이터가 서로 공유되지 않는 것을 보장하도록 구현된다. 다양한 테넌트 격리 접근법이 사용될 수도 있다. 한 실시형태에서, 각각의 테넌트는 테넌트 ID와 관련된다. 컴퓨터 네트워크에 의해 구현되는 애플리케이션은 테넌트 ID를 사용하여 태그가 지정된다. 추가적으로 또는 대안적으로, 컴퓨터 네트워크에 의해 저장되는 데이터 구조 및/또는 데이터세트는 테넌트 ID를 사용하여 태그가 지정된다. 테넌트는, 테넌트 및 특정한 애플리케이션, 데이터 구조, 및/또는 데이터세트가 동일한 테넌트 ID와 관련되는 경우에만 특정한 애플리케이션, 데이터 구조, 및/또는 데이터세트에 대한 액세스를 허용받는다. 한 예로서, 다중 테넌트 컴퓨터 네트워크에 의해 구현되는 각각의 데이터베이스는 테넌트 ID를 사용하여 태그가 지정될 수도 있다. 대응하는 테넌트 ID와 관련되는 테넌트만이 특정한 데이터베이스의 데이터에 액세스할 수도 있다. 다른 예로서, 다중 테넌트 컴퓨터 네트워크에 의해 구현되는 데이터베이스 내의 각각의 엔트리는 테넌트 ID를 사용하여 태그가 지정될 수도 있다. 대응하는 테넌트 ID와 관련되는 테넌트만이 특정한 엔트리의 데이터에 액세스할 수도 있다. 그러나, 데이터베이스는 다수의 테넌트에 의해 공유될 수도 있다. 가입 목록은, 어떤 테넌트가 어떤 애플리케이션에 액세스할 권한을 갖는지를 나타낼 수도 있다. 각각의 애플리케이션에 대해, 애플리케이션에 액세스하도록 승인되는 테넌트의 테넌트 ID의 목록이 저장된다. 테넌트는 특정한 애플리케이션에 대응하는 가입자 목록에 테넌트의 테넌트 ID가 포함되는 경우에만 특정한 애플리케이션에 대한 액세스를 허용받는다.
한 실시형태에서, 상이한 테넌트에 대응하는 네트워크 리소스(예컨대, 디지털 디바이스, 가상 머신, 애플리케이션 인스턴스, 및 스레드)는 다중 테넌트 컴퓨터 네트워크에 의해 유지되는 테넌트 고유의 오버레이 네트워크로 격리된다. 한 예로서, 테넌트 오버레이 네트워크 내의 임의의 소스 디바이스로부터의 패킷은 동일한 테넌트 오버레이 네트워크 내의 다른 디바이스로만 송신될 수도 있다. 테넌트 오버레이 네트워크 상의 소스 디바이스로부터 다른 테넌트 오버레이 네트워크 내의 디바이스로의 임의의 송신을 금지하기 위해 캡슐화 터널이 사용될 수도 있다. 구체적으로, 소스 디바이스로부터 수신되는 패킷은 외부 패킷 내에서 캡슐화된다. 외부 패킷은 제1 캡슐화 터널 엔드포인트(테넌트 오버레이 네트워크 내의 소스 디바이스와 통신함)로부터 제2 캡슐화 터널 엔드포인트(테넌트 오버레이 네트워크 내의 목적지 디바이스와 통신함)로 송신된다. 제2 캡슐화 터널 엔드포인트는 외부 패킷을 캡슐화 해제하여 소스 디바이스에 의해 송신되는 원래의 패킷을 획득한다. 원래의 패킷은 제2 캡슐화 터널 엔드포인트로부터 동일한 특정한 오버레이 네트워크 내의 목적지 디바이스로 송신된다.

Claims (20)

  1. 하나 이상의 프로세서에 의해 실행될 때, 상기 하나 이상의 프로세서로 하여금, 표면 실장 프로세스(surface mounting process)의 적어도 일부를 제어하기 위한 동작을 수행하게 하는 명령어를 저장하는 하나 이상의 비일시적 컴퓨터 판독 가능 매체에 있어서, 상기 동작은:
    (a) 제조 실행 시스템과 연관되는 개방형 애플리케이션(open application)과 (b) 상기 표면 실장 프로세스에서 사용되는 제1 산업용 머신 상에서 동작하는 데이터 공유 인터페이스의 제1 인스턴스 사이의 제1 연결을 개방하는 것 ― 상기 개방형 애플리케이션은, 머신 타입 또는 제조사와 관계없이, 상기 데이터 공유 인터페이스를 구현하는 임의의 머신과 통신하도록 구성됨 ― ;
    상기 제1 연결을 통해 상기 개방형 애플리케이션에 의해, 상기 제1 산업용 머신과 연관되는 제1 발견 가능한 정보를 발견하는 것 ― 상기 제1 발견 가능한 정보는 데이터 아이템, 이벤트, 커맨드, 또는 알람 중 하나 이상을 포함함 ― ; 및
    상기 제1 연결을 통해 상기 개방형 애플리케이션에 의해, 상기 표면 실장 프로세스의 적어도 제1 부분을 제어하기 위해 상기 제1 산업용 머신의 동작을 제어하는 것
    을 포함하는, 하나 이상의 비일시적 컴퓨터 판독 가능 매체.
  2. 제1항에 있어서,
    상기 동작은:
    (a) 상기 제조 실행 시스템과 연관되는 상기 개방형 애플리케이션과 (b) 상기 표면 실장 프로세스에서 사용되는 제2 산업용 머신 상에서 동작하는 상기 데이터 공유 인터페이스의 제2 인스턴스 사이의 제2 연결을 개방하는 것;
    상기 제2 연결을 통해 상기 개방형 애플리케이션에 의해, 상기 제2 산업용 머신과 연관되는 제2 발견 가능한 정보를 발견하는 것 ― 상기 제2 발견 가능한 정보는 데이터 아이템, 이벤트, 커맨드, 또는 알람 중 하나 이상을 포함함 ― ; 및
    상기 제2 연결을 통해 상기 개방형 애플리케이션에 의해, 상기 표면 실장 프로세스의 적어도 제2 부분을 제어하기 위해 상기 제2 산업용 머신의 동작을 제어하는 것
    을 더 포함하는, 하나 이상의 비일시적 컴퓨터 판독 가능 매체.
  3. 제2항에 있어서,
    상기 제1 산업용 머신 및 상기 제2 산업용 머신은 상이한 제조사에 의해 제공되는 것인, 하나 이상의 비일시적 컴퓨터 판독 가능 매체.
  4. 제2항에 있어서,
    상기 제1 산업용 머신 및 상기 제2 산업용 머신은 상이한 종류의 머신인 것인, 하나 이상의 비일시적 컴퓨터 판독 가능 매체.
  5. 제1항에 있어서,
    상기 제1 산업용 머신의 동작을 제어하는 것은 상기 제1 발견 가능한 정보에서 정의되는 데이터 아이템의 값을, 적어도 상기 데이터 아이템의 상기 값을 상기 데이터 공유 인터페이스의 상기 제1 인스턴스로 송신하는 것에 의해, 설정하는 것을 포함하는 것인, 하나 이상의 비일시적 컴퓨터 판독 가능 매체.
  6. 제1항에 있어서,
    상기 제1 산업용 머신의 동작을 제어하는 것은 상기 제1 발견 가능한 정보에서 정의되는 커맨드를, 적어도 상기 커맨드를 실행하기 위한 명령어를 상기 데이터 공유 인터페이스의 상기 제1 인스턴스로 송신하는 것에 의해, 실행하는 것을 포함하는 것인, 하나 이상의 비일시적 컴퓨터 판독 가능 매체.
  7. 제1항에 있어서,
    상기 제1 산업용 머신은, 스텐실 프린터(stencil printer), 디스펜서, 픽 앤 플레이스 머신(pick-and-place machine), 리플로우 오븐(reflow oven), 웨이브 솔더 머신(wave solder machine), 또는 선택적 솔더 머신(selective solder machine) 중 하나인 것인, 하나 이상의 비일시적 컴퓨터 판독 가능 매체.
  8. 표면 실장 프로세스의 적어도 일부를 제어하기 위한 시스템에 있어서,
    하드웨어 프로세서를 포함하는 적어도 하나의 디바이스를 포함하고,
    상기 시스템은 상기 표면 실장 프로세스의 적어도 일부를 제어하기 위한 동작을 수행하도록 구성되며, 상기 동작은:
    (a) 제조 실행 시스템과 연관되는 개방형 애플리케이션과 (b) 표면 실장 프로세스에서 사용되는 제1 산업용 머신 상에서 동작하는 데이터 공유 인터페이스의 제1 인스턴스 사이의 제1 연결을 개방하는 것 ― 상기 개방형 애플리케이션은, 머신 타입 또는 제조사와 관계없이, 상기 데이터 공유 인터페이스를 구현하는 임의의 머신과 통신하도록 구성됨 ― ;
    상기 제1 연결을 통해 상기 개방형 애플리케이션에 의해, 상기 제1 산업용 머신과 연관되는 제1 발견 가능한 정보를 발견하는 것 ― 상기 제1 발견 가능한 정보는 데이터 아이템, 이벤트, 커맨드, 또는 알람 중 하나 이상을 포함함 ― ; 및
    상기 제1 연결을 통해 상기 개방형 애플리케이션에 의해, 상기 표면 실장 프로세스의 적어도 제1 부분을 제어하기 위해 상기 제1 산업용 머신의 동작을 제어하는 것
    을 포함하는, 표면 실장 프로세스의 적어도 일부를 제어하기 위한 시스템.
  9. 제8항에 있어서,
    상기 동작은:
    (a) 상기 제조 실행 시스템과 연관되는 상기 개방형 애플리케이션과 (b) 상기 표면 실장 프로세스에서 사용되는 제2 산업용 머신 상에서 동작하는 상기 데이터 공유 인터페이스의 제2 인스턴스 사이의 제2 연결을 개방하는 것;
    상기 제2 연결을 통해 상기 개방형 애플리케이션에 의해, 상기 제2 산업용 머신과 연관되는 제2 발견 가능한 정보를 발견하는 것 ― 상기 제2 발견 가능한 정보는 데이터 아이템, 이벤트, 커맨드, 또는 알람 중 하나 이상을 포함함 ― ; 및
    상기 제2 연결을 통해 상기 개방형 애플리케이션에 의해, 상기 표면 실장 프로세스의 적어도 제2 부분을 제어하기 위해 상기 제2 산업용 머신의 동작을 제어하는 것
    을 더 포함하는, 표면 실장 프로세스의 적어도 일부를 제어하기 위한 시스템.
  10. 제9항에 있어서,
    상기 제1 산업용 머신 및 상기 제2 산업용 머신은 상이한 제조사에 의해 제공되는 것인, 표면 실장 프로세스의 적어도 일부를 제어하기 위한 시스템.
  11. 제9항에 있어서,
    상기 제1 산업용 머신 및 상기 제2 산업용 머신은 상이한 종류의 머신인 것인, 표면 실장 프로세스의 적어도 일부를 제어하기 위한 시스템.
  12. 제8항에 있어서,
    상기 제1 산업용 머신의 동작을 제어하는 것은 상기 제1 발견 가능한 정보에서 정의되는 데이터 아이템의 값을, 적어도 상기 데이터 아이템의 상기 값을 상기 데이터 공유 인터페이스의 상기 제1 인스턴스로 송신하는 것에 의해, 설정하는 것을 포함하는 것인, 표면 실장 프로세스의 적어도 일부를 제어하기 위한 시스템.
  13. 제8항에 있어서,
    상기 제1 산업용 머신의 동작을 제어하는 것은 상기 제1 발견 가능한 정보에서 정의되는 커맨드를, 적어도 상기 커맨드를 실행하기 위한 명령어를 상기 데이터 공유 인터페이스의 상기 제1 인스턴스로 송신하는 것에 의해, 실행하는 것을 포함하는 것인, 표면 실장 프로세스의 적어도 일부를 제어하기 위한 시스템.
  14. 제8항에 있어서,
    상기 제1 산업용 머신은, 스텐실 프린터, 디스펜서, 픽 앤 플레이스 머신, 리플로우 오븐, 웨이브 솔더 머신, 또는 선택적 솔더 머신 중 하나인 것인, 표면 실장 프로세스의 적어도 일부를 제어하기 위한 시스템.
  15. 표면 실장 프로세스의 적어도 일부를 제어하기 위한 방법에 있어서,
    (a) 제조 실행 시스템과 연관되는 개방형 애플리케이션과 (b) 상기 표면 실장 프로세스에서 사용되는 제1 산업용 머신 상에서 동작하는 데이터 공유 인터페이스의 제1 인스턴스 사이의 제1 연결을 개방하는 단계 ― 상기 개방형 애플리케이션은, 머신 타입 또는 제조사와 관계없이, 상기 데이터 공유 인터페이스를 구현하는 임의의 머신과 통신하도록 구성됨 ― ;
    상기 제1 연결을 통해 상기 개방형 애플리케이션에 의해, 상기 제1 산업용 머신과 연관되는 제1 발견 가능한 정보를 발견하는 단계 ― 상기 제1 발견 가능한 정보는 데이터 아이템, 이벤트, 커맨드, 또는 알람 중 하나 이상을 포함함 ― ; 및
    상기 제1 연결을 통해 상기 개방형 애플리케이션에 의해, 상기 표면 실장 프로세스의 적어도 제1 부분을 제어하기 위해 상기 제1 산업용 머신의 동작을 제어하는 단계
    를 포함하는, 표면 실장 프로세스의 적어도 일부를 제어하기 위한 방법.
  16. 제15항에 있어서,
    (a) 상기 제조 실행 시스템과 연관되는 상기 개방형 애플리케이션과 (b) 상기 표면 실장 프로세스에서 사용되는 제2 산업용 머신 상에서 동작하는 상기 데이터 공유 인터페이스의 제2 인스턴스 사이의 제2 연결을 개방하는 단계;
    상기 제2 연결을 통해 상기 개방형 애플리케이션에 의해, 상기 제2 산업용 머신과 연관되는 제2 발견 가능한 정보를 발견하는 단계 ― 상기 제2 발견 가능한 정보는 데이터 아이템, 이벤트, 커맨드, 또는 알람 중 하나 이상을 포함함 ― ; 및
    상기 제2 연결을 통해 상기 개방형 애플리케이션에 의해, 상기 표면 실장 프로세스의 적어도 제2 부분을 제어하기 위해 상기 제2 산업용 머신의 동작을 제어하는 단계
    를 더 포함하는, 표면 실장 프로세스의 적어도 일부를 제어하기 위한 방법.
  17. 제16항에 있어서,
    상기 제1 산업용 머신 및 상기 제2 산업용 머신은 상이한 제조사에 의해 제공되는 것인, 표면 실장 프로세스의 적어도 일부를 제어하기 위한 방법.
  18. 제16항에 있어서,
    상기 제1 산업용 머신 및 상기 제2 산업용 머신은 상이한 종류의 머신인 것인, 표면 실장 프로세스의 적어도 일부를 제어하기 위한 방법.
  19. 제15항에 있어서,
    상기 제1 산업용 머신의 동작을 제어하는 단계는 상기 제1 발견 가능한 정보에서 정의되는 데이터 아이템의 값을, 적어도 상기 데이터 아이템의 상기 값을 상기 데이터 공유 인터페이스의 상기 제1 인스턴스로 송신하는 것에 의해, 설정하는 단계를 포함하는 것인, 표면 실장 프로세스의 적어도 일부를 제어하기 위한 방법.
  20. 제15항에 있어서,
    상기 제1 산업용 머신의 동작을 제어하는 단계는 상기 제1 발견 가능한 정보에서 정의되는 커맨드를, 적어도 상기 커맨드를 실행하기 위한 명령어를 상기 데이터 공유 인터페이스의 상기 제1 인스턴스로 송신하는 것에 의해, 실행하는 단계를 포함하는 것인, 표면 실장 프로세스의 적어도 일부를 제어하기 위한 방법.
KR1020220004079A 2021-10-27 2022-01-11 산업용 기기를 위한 개방형 애플리케이션 인터페이스 KR20230060422A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/511,735 US20230126456A1 (en) 2021-10-27 2021-10-27 Open application interface for industrial equipment
US17/511,735 2021-10-27

Publications (1)

Publication Number Publication Date
KR20230060422A true KR20230060422A (ko) 2023-05-04

Family

ID=86056433

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220004079A KR20230060422A (ko) 2021-10-27 2022-01-11 산업용 기기를 위한 개방형 애플리케이션 인터페이스

Country Status (3)

Country Link
US (1) US20230126456A1 (ko)
KR (1) KR20230060422A (ko)
MX (1) MX2022000216A (ko)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020007422A1 (en) * 2000-07-06 2002-01-17 Bennett Keith E. Providing equipment access to supply chain members
US20100125357A1 (en) * 2008-11-19 2010-05-20 Illinois Tool Works Inc. Vertically separated pass through conveyor system and method in surface mount technology process equipment
US9060437B2 (en) * 2012-02-01 2015-06-16 Illinois Tool Works Inc. System and method for operating a stencil printer
CN205787658U (zh) * 2016-06-03 2016-12-07 大连大孤山污水处理有限公司 一种使用无线网络传输和opc协议冗余控制的自动化控制系统
CN108092884A (zh) * 2017-11-23 2018-05-29 南京邮电大学 一种无线接入网关系统及应用方法
DE102020127123A1 (de) * 2020-10-15 2022-04-21 Reifenhäuser GmbH & Co. KG Maschinenfabrik Blasfolienanlage, verbindungseinrichtung und verfahren zur übertragung von datenelementen mittels kommunikationsprotokoll
US11962469B2 (en) * 2021-02-10 2024-04-16 Cisco Technology, Inc. Identifying devices and device intents in an IoT network

Also Published As

Publication number Publication date
US20230126456A1 (en) 2023-04-27
MX2022000216A (es) 2023-04-28

Similar Documents

Publication Publication Date Title
US11030020B2 (en) Asynchronous handling of service requests
US7739367B2 (en) Managing network-enabled devices
US20130332601A1 (en) Dynamic logging
US10644967B2 (en) Methods, apparatuses and computer-readable storage mediums for automated onboarding of services in the user services platform
CN111258627B (zh) 一种接口文档生成方法和装置
AU2014342976A1 (en) Extensible framework for communicating over a fire wall with a software application regarding a user account
US20070115818A1 (en) Triggered notification
US7181490B1 (en) Method and apparatus for mapping network events to names of network devices
KR102486236B1 (ko) 무선 통신 시스템에서 네트워크 기능 가상화를 위한 장치 및 방법
EP3133489A1 (en) Extensibility of business logic shared across a business process orchestration engine, a rule engine, and a user interface
US11765120B2 (en) Message queue architecture and interface for a multi-application platform
US10841088B2 (en) Secure credential generation and validation
US11481228B2 (en) Self-service orchestration platform
GB2515637A (en) Apparatus, systems, and methods for providing policy in network-based applications
KR20230060422A (ko) 산업용 기기를 위한 개방형 애플리케이션 인터페이스
US10713041B1 (en) Application configuration manager
US7827263B1 (en) Systems and methods for managing a computer over a network
CA3192267A1 (en) Network connectivity policy management system
CN114915553A (zh) 设备管理工具
CN111866100A (zh) 一种控制数据传输速率的方法、装置和系统
US11960905B2 (en) Network-management-card-assisted shutdown of hyperconverged infrastructure
Lemay et al. OpenDaylight Cookbook
US11687355B1 (en) Methods to extract cloud infrastructure requirements from virtualized applications and autodeploy
US20240176892A1 (en) Automated application programming interface (api) testing
US11677724B1 (en) Data access and firewall tunneling using a custom socket factory