KR100442688B1 - Interprocess communication method and apparatus - Google Patents

Interprocess communication method and apparatus Download PDF

Info

Publication number
KR100442688B1
KR100442688B1 KR10-2002-0041671A KR20020041671A KR100442688B1 KR 100442688 B1 KR100442688 B1 KR 100442688B1 KR 20020041671 A KR20020041671 A KR 20020041671A KR 100442688 B1 KR100442688 B1 KR 100442688B1
Authority
KR
South Korea
Prior art keywords
uipc
message
task
layer
communication
Prior art date
Application number
KR10-2002-0041671A
Other languages
Korean (ko)
Other versions
KR20030020819A (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
Priority claimed from US10/035,187 external-priority patent/US20030115358A1/en
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to US10/233,422 priority Critical patent/US7263701B2/en
Publication of KR20030020819A publication Critical patent/KR20030020819A/en
Application granted granted Critical
Publication of KR100442688B1 publication Critical patent/KR100442688B1/en

Links

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication

Abstract

발신지로부터 목적지로 메시지를 전달하기 위한 통신방법에 있어서, 운영체제 독립형 액세스(OIA)계층에 의해서, 통신장치의 운영체제(OS)에 독립적으로 액세스 가능한 운영체제 통합 인터페이스 기능을 제공하는 과정과, 디바이스 독립형 액세스(DIA)계층에 의해서, 상기 통신장치의 피지컬 디바이스에 독립적으로 액세스 가능한 디바이스 통합 인터페이스 기능을 제공하는 과정과, 통합 프로세스간 통신(UIPC)계층에 의해서, 상기 발신지 타스크에 의해 제공되는 목적지 정보와 타스크의 기본적인 공통 제어 흐름을 가지는 공통타스크 아키텍처를 이용하여 상기 발신지로부터의 메시지를 상기 운영체제 독립형 액세스 계층 및 상기 디바이스 독립형 액세스 계층중 적어도 하나를 통해 상기 목적지로 전송하는 하는 과정으로 이루어진다.A communication method for delivering a message from a source to a destination, the method comprising: providing an operating system integrated interface function independently accessible to an operating system (OS) of a communication device by an operating system independent access (OIA) layer; Providing a device integration interface function independently accessible to the physical device of the communication apparatus by the DIA layer, and destination information and a task provided by the source task by the UIPC layer. And transmitting a message from the source to the destination through at least one of the operating system independent access layer and the device independent access layer using a common task architecture having a basic common control flow.

Description

프로세스간 통신방법 및 장치{INTERPROCESS COMMUNICATION METHOD AND APPARATUS}Interprocess Communication Method and Device {INTERPROCESS COMMUNICATION METHOD AND APPARATUS}

본 발명은 프로세스간 통신(InterProcess Communication: 이하 "IPC"라 칭함)을 수행하는 통신 시스템에 관한 것으로, 특히 통신 피지컬 디바이스(physical devices)와 운용체제(operating sys)에 종속되지 않는 통합형 프로세스 통신(Unified InterProcess Communication: 이하 "UIPC"라 칭함) 방법 및 장치에 관한 것이다.BACKGROUND OF THE INVENTION Field of the Invention The present invention relates to a communication system for performing interprocess communication (hereinafter referred to as "IPC"), in particular integrated process communication (Unified) which is not dependent on communication physical devices and operating sys. InterProcess Communication: hereinafter referred to as "UIPC" method and apparatus.

프로세스간 메시지 통신을 하는 IPC는 파이프(pipe), 세마포어(semaphore), 메시지 큐(message queue), 공유 메모리(shared memory) 등 다양한 방법이 있으며, 모두는 운영체제(operating system)에 기반 되어 있다. 따라서 IPC 방법은 기반으로 하고 있는 운영체제에 따르는 다양한 형태로 제공되었다. 즉 IPC 방법은 운영체제에 의존적(dependent)이었다. 결과적으로 IPC 및 프로세스 구현시 통신 시스템에 사용되는 그 운용체제에 따라 어플리케이션 소프트웨어(application software)가 변경되어야 했다. 또한 하드웨어장치간 프로세스 통신의 경우에는 제공되는 피지컬 디바이스(physical devices)에 따라 디바이스 드라이버(physical devices driver)가 상이하므로, 디바이스 드라이버를 사용해야 하는 프로세스는 그 사용하는 디바이스 드라이버에 따라 IPC 기능을 변경해야만 했다.There are various methods of IPC for interprocess message communication, including pipes, semaphores, message queues, and shared memory, all of which are based on operating systems. Therefore, IPC methods are provided in various forms depending on the operating system on which they are based. The IPC method was dependent on the operating system. As a result, the application software had to change depending on the operating system used in the communication system in implementing the IPC and process. In addition, in the case of process communication between hardware devices, the device drivers are different depending on the physical devices provided. Therefore, the process requiring the device driver had to change the IPC function according to the device driver used. .

상기와 같은 통신시스템에서의 IPC 방법은 운영체제와 피지컬 디바이스에 의존적이었다. 결과적으로 통신 시스템에 사용되는 운영체제 및 피지컬 디바이스의 변경에 따른 부가적이고 반복적인 오버헤드(overhead)를 야기 시키며, 이는 통신시스템의 개발 시간과 비용에 적지 않은 부담을 초래하였다. 또한 소프트웨어의 재사용성(reusability)과 이식성(portability)을 떨어뜨렸다.The IPC method in such a communication system was dependent on the operating system and the physical device. As a result, additional and repetitive overhead is caused by the change of the operating system and the physical device used in the communication system, which causes a considerable burden on the development time and cost of the communication system. It also made the software less usable and reusable.

따라서 본 발명의 목적은 통신시스템이 채택하는 운영체제와 피지컬 디바이스 종류에 의존적이지 않는 유연하고 통합된 프로세스 통신 방법 및 장치를 제공하는데 있다.Accordingly, an object of the present invention is to provide a flexible and integrated process communication method and apparatus that do not depend on the type of operating system and physical device adopted by the communication system.

본 발명의 다른 목적은 통신 시스템에 사용되는 운영체제에는 상관없으며 소프웨어의 재사용성 및 이식성이 뛰어난 프로세스 통신을 수행하는 통합형 프로세스 통신 방법 및 장치를 제공하는데 있다.Another object of the present invention is to provide an integrated process communication method and apparatus for performing process communication regardless of an operating system used in a communication system and having excellent software reuse and portability.

본 발명의 또 다른 목적은 통신 시스템에 사용되는 피지컬 디바이스(physical devices)에는 상관없이 프로세스 통신을 수행하는 통합형 프로세스 통신 방법 및 장치를 제공하는데 있다.It is another object of the present invention to provide an integrated process communication method and apparatus for performing process communication regardless of physical devices used in a communication system.

본 발명의 또 다른 목적은 통신장치에 의해서 어떤 통신방법들(예를 들면, ATM, IP, SDH 등)이 사용되는지에 상관없이 발신지에서 착신지로 메시지를 전달하기 위한 통신장치를 제공함에 있다.It is still another object of the present invention to provide a communication device for delivering a message from a source to a destination regardless of which communication methods (for example, ATM, IP, SDH, etc.) are used by the communication device.

상기한 목적에 따라, 본 발명은, 발신지로부터 목적지로 메시지를 전달하기 위한 통신방법에 있어서, 운영체제 독립형 액세스(OIA)계층에 의해서, 통신장치의 운영체제(OS)에 독립적으로 액세스 가능한 운영체제 통합 인터페이스 기능을 제공하는 과정과, 디바이스 독립형 액세스(DIA)계층에 의해서, 상기 통신장치의 피지컬디바이스에 독립적으로 액세스 가능한 디바이스 통합 인터페이스 기능을 제공하는 과정과, 통합 프로세스간 통신(UIPC)계층에 의해서, 상기 발신지 타스크에 의해 제공되는 목적지 정보와 타스크의 기본적인 공통 제어 흐름을 가지는 공통타스크 아키텍처를 이용하여 상기 발신지로부터의 메시지를 상기 운영체제 독립형 액세스 계층 및 상기 디바이스 독립형 액세스 계층중 적어도 하나를 통해 상기 목적지로 전송하는 하는 과정으로 이루어짐을 특징으로 한다.In accordance with the above object, the present invention provides a communication method for delivering a message from a source to a destination, the operating system integrated interface function that is independently accessible to the operating system (OS) of the communication device by the operating system independent access (OIA) layer Providing a device integrated interface function independently accessible to a physical device of the communication device by a device independent access (DIA) layer, and by the integrated interprocess communication (UIPC) layer. Sending a message from the source to the destination through at least one of the operating system independent access layer and the device independent access layer using a common task architecture having destination information provided by the task and a basic common control flow of the task. As a course Characterized in that made.

또한 본 발명은, 발신지로부터 목적지로 메시지를 전달하기 위한 통신 장치에 있어서, 통신장치의 운영체제에 독립적으로 액세스 가능한 운영체제 통합 인터페이스 기능을 제공하는 운영체제 독립형 액세스(OIA)계층부와, 상기 통신장치의 피지컬 디바이스에 독립적으로 액세스 가능한 디바이스 통합 인터페이스 기능을 제공하는 디바이스 독립형 액세스(DIA)계층부와, 상기 발신지 타스크에 의해 제공되는 목적지 정보와 타스크의 기본적인 공통 제어 흐름을 가지는 공통타스크 아키텍처를 이용하여 상기 발신지로부터의 메시지를 상기 운영체제 독립형 액세스 계층 및 상기 디바이스 독립형 액세스 계층중 적어도 하나를 통해 상기 목적지로 전송하는 통합 프로세스간 통신(UIPC)계층부로 구성함을 특징으로 한다.In addition, the present invention provides a communication apparatus for delivering a message from an origin to a destination, the operating system independent access (OIA) layer unit that provides an operating system integrated interface function that can be accessed independently of the operating system of the communication device, and the physical of the communication device From the source using a device independent access (DIA) layer unit that provides device independent interface functionality that is independently accessible to the device, and a common task architecture that has a basic common control flow of destination information and tasks provided by the source task. And an integrated inter-process communication (UIPC) layer that transmits the message to the destination through at least one of the operating system independent access layer and the device independent access layer.

본 발명의 실시 예에서는 "프로세스", "어플리케이션", "타스크"라는 용어가 혼재되어 사용될 것인데, 이들은 본 발명에서 구현된 UIPC의 상위에 존재하는 타스크를 의미함을 이해하여야 한다.In the embodiments of the present invention, the terms "process", "application", and "task" will be used interchangeably, and it should be understood that they mean tasks existing on the UIPC implemented in the present invention.

도 1은 본 발명의 실시 예에 따른 메시지 교환을 위한 각 셀프들간의 회로망 구성도,1 is a diagram illustrating a network configuration between each self for message exchange according to an embodiment of the present invention;

도 2는 본 발명의 실시 예에 따른 UIPC기능이 적용된 통신 시스템의 구체적인 구성 일 예도,2 is an example of a specific configuration of a communication system to which the UIPC function is applied according to an embodiment of the present invention;

도 3은 본 발명의 실시 예에 따른 UIPC를 일부 구성요소로서 가지고 있는 공통 소프트웨어 플랫폼(common software platform)의 블록 구성도,3 is a block diagram of a common software platform having a UIPC as a component according to an embodiment of the present invention;

도 4는 본 발명의 실시 예에 따른 카드별(유니트별) UIPC 구성을 보여주는 도면,4 is a view showing a UIPC configuration per card (per unit) according to an embodiment of the present invention;

도 5는 공통 타스크 아키텍쳐의 구조를 사용하는 프로세스 즉 타스크의 기본적인 공통 제어 흐름도,5 is a basic common control flow diagram of a process using a structure of a common task architecture, that is, a task;

도 6은 본 발명의 실시 예에 따른 UIPC API 구성 및 공통 타스크 아키텍쳐를 설명하기 위한 도면.FIG. 6 is a diagram illustrating a UIPC API configuration and a common task architecture according to an embodiment of the present invention. FIG.

이하 본 발명의 바람직한 실시 예들을 첨부한 도면을 참조하여 상세히 설명한다. 도면들 중 동일한 구성요소들은 가능한 한 어느 곳에서든지 동일한 부호들로 나타내고 있음에 유의해야 한다. 또한 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능 및 구성에 대한 상세한 설명은 생략한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. It should be noted that the same elements in the figures are represented by the same numerals wherever possible. In addition, detailed descriptions of well-known functions and configurations that may unnecessarily obscure the subject matter of the present invention will be omitted.

그리고 하기의 외국문헌들은 본 발명의 개념을 이해하기 위한 배경설명 및 부가적인 정보를 제공한다:And the following foreign documents provide background and additional information for understanding the concept of the present invention:

- Open Systems Interconnection, Basic Reference Model, ITU-T X. 200Open Systems Interconnection, Basic Reference Model, ITU-T X. 200

- Open Systems Interconnection, Data Link Service Definition, ITU-T X. 212;Open Systems Interconnection, Data Link Service Definition, ITU-T X. 212;

- Open Systems Interconnection, Network Service Definition, ITU-T X. 213;Open Systems Interconnection, Network Service Definition, ITU-T X. 213;

- Open Systems Interconnection, Transport Service Definition, ITU-T X. 214;Open Systems Interconnection, Transport Service Definition, ITU-T X. 214;

도 1은 본 발명의 실시 예에 따른 메시지 교환을 위한 각 셀프들간의 회로망 구성도이다. 도 1의 회로망 토폴로지(topology)는, 구성요소 관리 시스템(Element Management System: EMS)(8), 카드(12)를 포함하는 복수개의 카드들을 구비하고 있는 시스템 제어기 셀프(10), 스마트 디바이스(smart device)(6)들 및 카드(22a)를 포함하는 복수개의 카드들을 구비하고 있는 확장셀프1(20a), 카드(22b)를 포함하는 복수개의 카드들을 구비하고 있는 확장셀프2(20b), 및 카드(22c)를 포함하는 복수개의 카드들을 구비하고 있는 확장쉘프3 (20c)을 포함하고 있다.1 is a diagram illustrating a network configuration between each self for message exchange according to an exemplary embodiment of the present invention. The network topology of FIG. 1 includes an element management system (EMS) 8, a system controller self 10 having a plurality of cards including a card 12, and a smart device. an extended self 1 (20a) having a plurality of cards including a device (6) and a card (22a), an extended self 2 (20b) having a plurality of cards including a card (22b), and An expansion shelf 3 (20c) having a plurality of cards including a card (22c) is included.

도 1을 참조하면, 확장셀프3(20c)이 시스템 제어기 셀프(10)와 통신하기 위해서는, 상기 확장셀프3(20c)과 시스템 제어기 셀프(10) 사이의 통신이 물리적으로 확장쉘프2(20b)를 통과한다 할지라도 본 발명의 실시 예에 따라 구성되는 확장셀프3(20c)과 시스템 제어기 셀프(10) 사이에는 가상적인 직접통로가 존재한다.Referring to FIG. 1, in order for the extended self 3 20c to communicate with the system controller self 10, the communication between the extended self 3 20c and the system controller self 10 is physically extended to the extended shelf 2 20b. Even though it passes through, there is a virtual direct path between the extended self 3 (20c) and the system controller self (10) configured according to an embodiment of the present invention.

도 1은 본 발명의 UIPC기능이 적용되는 네트워크 망 구조를 설명하기 위해 도시한 것이다. 본 발명의 실시 예에 따른 UIPC는, 도 2가 참조되어 보다 구체적으로 후술될 것이지만, 미리 개략적으로 설명하면 각각의 카드들내 타스크 간의, 동일한 셀프내의 서로 다른 카드들 상의 타스크 간의, 그리고 어떠한 셀프 및 부착된 스마트 디바이스(6)들(예컨대, 디지털 가입자 라인 모뎀 및 통합된 액세스 장치들)내의 타스크들 간의 메시지 교환을 지원한다. 필요하다면, 두 개의 셀프들 사이에 전달될 필요가 있는 메시지들이 시스템 제어기 셀프(10)를 통해 그의 경로가 정해진다고 가정한 것임을 유의하여야 한다. 이것은 프로토콜을 단순화하고, 더 일반화되어 있는 네트워크 토폴로지를 다루는 인터넷 프로토콜(IP)과 같은 프로토콜과 연관된 오버헤드를 감소시킨다. 구성요소 관리 시스템(8)도 UIPC를 경유해 통신한다는 점을 인식해야한다. 메시지들은 상기 구성요소 관리 시스템(8)과 어떠한 셀프내의 어떤 카드간의 경로로 보내질 수 있다. 하나의 구성요소관리시스템(8)은 UIPC에 관한 한 어떤 다른 셀프와 유사하게 보일 수 있다.1 is a view illustrating a network structure to which the UIPC function of the present invention is applied. The UIPC according to an embodiment of the present invention will be described below in more detail with reference to FIG. 2, but it will be described in detail beforehand, between tasks in each card, between tasks on different cards in the same card, and in some self and It supports message exchange between tasks within attached smart devices 6 (eg, digital subscriber line modems and integrated access devices). It should be noted that if necessary, it is assumed that messages that need to be transferred between the two shelves are routed through the system controller shelf 10. This simplifies the protocol and reduces the overhead associated with protocols such as Internet Protocol (IP), which deal with more generalized network topologies. It should be recognized that the component management system 8 also communicates via the UIPC. Messages can be routed between the component management system 8 and any card in any shelf. One component management system 8 may look similar to any other self as far as the UIPC is concerned.

도 2는 본 발명의 실시 예에 따른 UIPC기능이 적용된 통신 시스템의 구체적인 구성 일 예도이다.2 is an example of a specific configuration of a communication system to which the UIPC function is applied according to an embodiment of the present invention.

도 2에 도시된 확장셀프(20i)는 도 1에 도시된 복수개의 확장셀프(extending shelf)들(20a,b,c)중 하나이고, 시스템 제어기 셀프(10)는 복수개의 확장 셀프들(20a,b,c)을 제어하는 셀프이다. 셀프들(10,20i) 각각에는, 복수개의 제어 카드들(14,16, 24,26)과, 상기 복수개의 제어 카드들(14,16, 24,26)을 제어하기 위한 하나의 메인 제어카드(main control card)(12,22)가 구비되어 있다. 상기 제어카드들(14,16, 24,26) 각각 및 메인 제어카드(12,22)에는 프로세스간 메시지 통신을 하기 위한 UIPC(30)가 공통 소프트웨어 플랫폼(common software platform)(32)의 일부 구성요소로서 제공된다. UIPC(30)는 카드내, 카드간, 셀프내, 셀프간의 프로세스들 간의 메시지통신을 위한 경로를 제공하는 수단이 된다. 각 UIPC(30)에는 도 2에 도시된 예컨대 P1,P2와 같은 프로세스들(어플리케이션 타스크들)이 연결된다.The extended self 20i shown in FIG. 2 is one of the plurality of extending shelves 20a, b, c shown in FIG. 1, and the system controller self 10 is the plurality of extended shelves 20a. , b, c) is self. Each of the shelves 10 and 20i includes a plurality of control cards 14, 16, 24, and 26, and one main control card for controlling the plurality of control cards 14, 16, 24, and 26. (main control card) 12,22 are provided. Each of the control cards 14, 16, 24, and 26 and the main control card 12, 22 have a UIPC 30 configured for inter-process message communication as part of a common software platform 32. It is provided as an element. The UIPC 30 is a means for providing a path for message communication between in-card, inter-card, inter-card, inter-self processes. Each UIPC 30 is connected to processes (application tasks) such as, for example, P1 and P2 shown in FIG.

UIPC(30)는 도 2에서와 같이 "카드내 프로세스 통신(내부프로세스통신)", "셀프내 카드간 프로세스 통신(외부프로세스통신)", "셀프간 프로세스 통신(외부프로세스통신)"의 세 가지 형태로 제공된다. "셀프내 카드간 프로세스 통신"과 "셀프간 프로세스 통신"의 경우는 별도의 디바이스 드라이버(physical device driver)가 요구된다.As shown in Fig. 2, the UIPC 30 includes three types of "in-card process communication (internal process communication)", "in-card process communication (external process communication)", and "self-process communication (external process communication)". It is provided in the form. In the case of " self-card process communication " and " self-process process communication ", a separate device driver is required.

도 3은 본 발명의 실시 예에 따른 UIPC(30)를 일부 구성요소로서 가지고 있는 공통 소프트웨어 플랫폼(common software platform)(32)의 블록 구성도이다.FIG. 3 is a block diagram of a common software platform 32 having a UIPC 30 as some component according to an embodiment of the present invention.

도 3에 도시된 공통 소프트웨어 플랫폼(32)은 다수의 서로 상이한 통신시스템에 공통적으로 응용할 수 있도록 하기 위해 일반적이며 공통적인 기능을 제공하는 소프트웨어이다. 상기 공통 소프트웨어 플랫폼(32)은 도 2에 도시된 일 예의 셀프(10,20)내 각 카드(12,14,16, 22,24,26)내에 존재하며 다수의 기능 단위로 그 구성성분들이 구분되어 있다.The common software platform 32 shown in FIG. 3 is software that provides common and common functions for common application in many different communication systems. The common software platform 32 resides in each of the cards 12, 14, 16, 22, 24, and 26 in the example shelf 10 and 20 shown in FIG. 2, and its components are divided into a number of functional units. It is.

상기 공통 소프트웨어 플랫폼(32)은 도 3에 도시된 바와 같이, 크게 수평방향으로 배열된 구성성분(이하 "수평 구성성분"이라 칭함)과 수직방향으로 배열된 구성성분(이하 "수직 구성성분"이라 칭함)으로 구분된다. 수평 구성성분들 예컨대, 공통 에이전트(common agent)(40), 공통 OAM(common Operation, Administration and Maintenance)(42), UIPC(Unified InterProcess Communication)(30), DIA계층(Device Independent Access layer)(46), 디바이스 드라이버(physical device drivers)(48), RTOS(Real Time Operating System)(50), 하드웨어(52)는 모든 통신시스템에서 요구되는 공통의 기능블록으로서, 수직 구성성분에 의해서 특정 기술적인 기능들이 제공된다. 수직 구성성분들 예컨대, ATM(Asynchronous Transfer Mode)(56), SDH(synchronous digital hierarchy)+PDH(Plesiochronous Digital Hierarchy)(58), VoP(Voice over Packet)(160)는 통신시스템에 따라 요구되는 기술적인 기능 블록으로서, 수평 구성성분에 대해 기술적인 기능들이 제공되며 통신시스템에 따라 변경되는 요소이다. 예를 들어, 수평 구성성분들중 하나인 공통 OAM(42)은 통신시스템의 유지 보수를 위해 경보 및 성능 데이터를 수집, 관리하는데 ATM 관련 통신 시스템을 위해 ATM 관련 알람(alarm), 성능(performance) 데이터는 ATM(56)이라는 수직 구성성분(vertical components)에 의해서 제공된다. 도 2에서, 빗금친 기능블록들(50,162,164,166,168,170)은 상용 소프트웨어(commercialsoftware)가 사용 또는 추가될 수 있는 경우의 기능블록이다.The common software platform 32 is referred to as a component horizontally arranged (hereinafter referred to as "horizontal components") and vertically arranged components (hereinafter referred to as "vertical components"), as shown in FIG. ). Horizontal components such as common agent 40, common operation, administration and maintenance (OAM) 42, Unified InterProcess Communication (UIPC) 30, Device Independent Access layer (DIA) 46 ), Physical device drivers (48), RTOS (Real Time Operating System) 50, and hardware 52 are common functional blocks required by all communication systems, and specific technical functions are determined by vertical components. Are provided. Vertical components such as Asynchronous Transfer Mode (ATM) 56, synchronous digital hierarchy (SDH) + Plesiochronous Digital Hierarchy (PDH) 58, and Voice over Packet (VoP) 160 are the technical requirements of the communication system. As a functional block, technical functions are provided for horizontal components and are factors that change according to a communication system. For example, a common OAM 42, one of the horizontal components, collects and manages alarm and performance data for the maintenance of a communication system, while an ATM-related alarm, performance for an ATM-related communication system. The data is provided by vertical components called ATM 56. In Fig. 2, the hatched functional blocks 50, 162, 164, 166, 168 and 170 are functional blocks in which commercial software can be used or added.

도 3에서 "공통 에이전트(40)"에서부터 "공통 OAM(42)"까지의 상부 블록은 소프트웨어의 어플리케이션에 의존한다.In FIG. 3 the upper block from "common agent 40" to "common OAM 42" depends on the application of the software.

다양한 통신 시스템들은 도 3에 도시된 바와 같은 공통 소프트웨어 플랫폼(32)을 포함하게 되며, 또한 통신 시스템에서 구현하고자 하는 모든 어플리케이션들은 상기 공통 소프트웨어 플랫폼(32)에 의해서 제공되는 수평 구성성분들과 수직 구성성분들의 조합 기능으로 개발될 것이다.Various communication systems will include a common software platform 32 as shown in FIG. 3, and all applications intended to be implemented in the communication system are vertically configured with the horizontal components provided by the common software platform 32. It will be developed as a combination function of the components.

도 3에 도시된 공통 소프트웨어 플랫폼(32)의 수평 구성성분들의 기능에 대해 보다 상세히 설명하면 하기와 같다.The function of the horizontal components of the common software platform 32 shown in FIG. 3 is described in more detail as follows.

1. 운영체제 독립형 액세스 계층(Operating System Independent Access Layer; OIA계층)(54)1.Operating System Independent Access Layer (OIA layer) (54)

- 어플리케이션 및 UIPC(30)를 구현하는데 있어 RTOS(50)와 같은 운영체제(OS)에 의존적이지 않고 독립적으로 OS액세스할 수 있도록 OS통합 인터페이스 기능을 제공하여, 어플리케이션 및 UIPC(30)의 이식성(portability)을 향상시킨다. 즉 통신시스템의 운영체제가 바뀌어도 소프트웨어 어플리케이션 및 UIPC(30)는 변경 없이 재사용 가능하게 된다.Portability of the application and the UIPC 30 by providing an OS integrated interface function so that the OS can be accessed independently without being dependent on an operating system (OS) such as the RTOS 50 in implementing the application and the UIPC 30. Improve). That is, even if the operating system of the communication system changes, the software application and the UIPC 30 can be reused without change.

2. 디바이스 독립형 액세스 계층(Device Independent Access Layer; DIA계층)(46)2. Device Independent Access Layer (DIA Layer) (46)

- 디바이스 드라이버(physical Device Driver)(48)의 구체적인 부분을 은폐(hiding)시킴으로써 다양한 디바이스(Device)에 대한 공통의 모델 즉, 디바이스에 의존적이지 않고 독립적으로 디바이스 액세스할 수 있도록 디바이스 통합 인터페이스 기능을 제공한다. 그에 따라 도 3의 하드웨어(52)와 같은 하드웨어 칩들(hardware chips)이 바뀌어도 어플리케이션 및 UIPC(30)/OIA계층(54)은 DIA계층(46)에 의해서 변경 없이 재사용 가능하게 된다.By hiding specific parts of the physical device driver 48, a common model for various devices, that is, device-integrated interface function is provided for independent device access without device dependence. do. Accordingly, even if hardware chips such as hardware 52 of FIG. 3 are changed, the application and the UIPC 30 / OIA layer 54 can be reused without change by the DIA layer 46.

3. 통합형 프로세스간 통신(Unified Interprocess Communication; UIPC)(30)3. Unified Interprocess Communication (UIPC) 30

- 프로세스 통신을 위해 운영체제에 따른 IPC 메카니즘 및 RTOS(50)와 같은 하위 소프트웨어 및 하위 하드웨어(52)에 대한 구체적인 정보를 은폐시킴으로써 어플리케이션 구현에 있어 운영체제 변경에 따른 별도의 작업이 필요치 않다.By concealing specific information about the sub-software and sub-hardware 52 such as the IPC mechanism and the RTOS 50 according to the operating system for the process communication, no additional work is required in the application implementation.

4. 공통 관리 및 유지 보수(Common Operation, Administration Maintenance; 공통 OAM)(42)4. Common Operation, Administration Maintenance (Common OAM) (42)

- 다양한 통신시스템의 운용 유지 보수를 위한 공통의 방법을 제공한다.-It provides a common method for operation and maintenance of various communication systems.

5. 공통 에이전트 소프트웨어(Common Agent Software)(40)5. Common Agent Software (40)

- 통신시스템의 망 관리를 위해 외부 망 관리시스템과의 인터페이스를 제공한다.-Provides interface with external network management system for network management of communication system.

상기에서와 같이 다양한 통신시스템을 구현하는데 있어 특정 기능의 구현에 얽매이지 않고 공통적인 기능들을 제공함으로써 다양한 통신시스템에 재사용이 가능하고 운영체제 및 하드웨어 디바이스 의존적이지 않는 소프트웨어 아키텍쳐(software architecture)를 구현하는 것이 공통 소프트웨어 플랫폼(32)의 존재 목적이다. 상기 공통 소프트웨어 플랫폼(32)의 구성성분중 일부로서 프로세스 메시지 통신방법을 구현한 것이 UIPC(30)이다.As described above, it is possible to implement a software architecture that is reusable for various communication systems and that does not depend on an operating system and a hardware device by providing common functions without being tied to the implementation of a specific function in implementing various communication systems. The purpose of the existence of a common software platform 32. The UIPC 30 implements a process message communication method as part of the components of the common software platform 32.

이제까지 본 발명의 보다 전반적인 이해를 돕기 위해 공통 소프트웨어 플랫폼(32)에 대해 서술하였고, 지금부터 UIPC(30)의 구성 및 기능이 첨부 도면들과 함께 상세히 설명될 것이다.The common software platform 32 has been described so far to better understand the present invention, and the configuration and function of the UIPC 30 will now be described in detail with the accompanying drawings.

UIPC(30)는 도 2에서와 같이 모든 제어 유니트(control unit) 즉 제어 카드들(12,14,16, 22,24,26) 각각에서 수행되는 요소로서 동일 카드 및 동일 셀프 또는 다른 셀프내의 프로세스간에 메시지 통신기능을 제공한다.The UIPC 30 is an element performed in every control unit, i.e., each of the control cards 12, 14, 16, 22, 24 and 26, as shown in FIG. It provides message communication function.

본 발명의 실시 예에 따른 UIPC(30)를 통한 메시지 통신을 위해서, 어플리케이션ID(application identifier) APP_ID와 네트워크 어드레스(network address) N_ADDR이 요구된다. 상기 어플리케이션ID APP_ID는 통신하고자 하는 해당 프로세스를 구분해 주기 위한 ID이며, 상기 네트워크 어드레스 N_ADDR은 해당 프로세스의 물리적 위치를 나타내는 주소 값이다. 상기 네트워크 어드레스 N_ADDR은 그 사이즈가 4-옥텟(octets)이며, 랙-셀프-슬롯-포트(Rack-Shelf-Slot-Port)의 정보로 구성된다. 그러므로 네트워크 어드레스 N_ADDR을 이용하면 해당 프로세스의 물리적인 위치를 찾아 낼 수 있게 된다. 네트워크 어드레스 N_ADDR은 상기 UIPC(30)를 위해서는 셀프와 슬롯(카드가 실장 되는 위치) ID만을 사용하며, 랙(rack)과 포트 ID는 다른 용도로서 사용한다. 도 2에서 시스템 제어기 셀프(10)의 메인 제어 카드(12)내 프로세스 P1에서 확장 셀프(20i)의 메인 제어카드(22)내 프로세스 P1로 메시지를 송신하는 경우를 살펴보도록 하자. 우선 시스템 제어기 셀프(10)의 ID를 "1", 확장 셀프(20)의 ID를 "2", 메인 제어카드(12,22)의 슬롯ID를 "2"로 가정한다. 먼저 발신지 및 목적지 어플리케이션ID APP_ID는 각각 P1이다. 그리고 발신지 네트워크 어드레스 N_ADDR은 16진수(hexadecimal)로 "0x00010200"(랙-셀프-슬롯-포트)이 되고 목적지 네트워크 어드레스 N_ADDR은 16진수(hexadecimal)로 "0x00020200"(랙-셀프-슬롯-포트)이 된다. 상기 네트워크 어드레스 N_ADDR과 어플리케이션ID APP_ID를 인터넷 프로토콜(internet protocol: IP)에 대응시켜 비교했을 때, 네트워크 어드레스 N_ADDR은 IP어드레스에, 어플리케이션ID APP_ID는 TCP(Transmission Control Protocol)의 포트번호에 유사하게 대응시킬 수 있다.For message communication through the UIPC 30 according to an embodiment of the present invention, an application ID APP_ID and a network address N_ADDR are required. The application ID APP_ID is an ID for identifying a corresponding process to communicate with, and the network address N_ADDR is an address value indicating a physical location of the corresponding process. The network address N_ADDR has a size of four octets and consists of information of a rack-self-slot-port. Therefore, the network address N_ADDR can be used to find the physical location of the process. The network address N_ADDR uses only the self and the slot (location where the card is mounted) ID for the UIPC 30, and the rack and the port ID are used for other purposes. In FIG. 2, a case in which a message is transmitted from the process P1 in the main control card 12 of the system controller shelf 10 to the process P1 in the main control card 22 of the expansion shelf 20i will be described. First, it is assumed that the ID of the system controller shelf 10 is "1", the ID of the expansion shelf 20 is "2", and the slot IDs of the main control cards 12 and 22 are "2". First, the source and destination application ID APP_ID are each P1. The source network address N_ADDR is "0x00010200" (rack-self-slot-port) in hexadecimal and the destination network address N_ADDR is "0x00020200" (rack-self-slot-port) in hexadecimal. do. When the network address N_ADDR and the application ID APP_ID are compared in correspondence with the Internet protocol (IP), the network address N_ADDR is mapped to the IP address and the application ID APP_ID is similarly mapped to the port number of the Transmission Control Protocol (TCP). Can be.

본 발명의 실시 예에 따른 UIPC(30)가 제공하는 기능은 하기와 같다.Functions provided by the UIPC 30 according to an embodiment of the present invention are as follows.

-UIPC(30)는 네트워크 구성요소에 있는 어느 곳에서나 타스크들간의 쌍방향 메시지 전달을 제공한다.UIPC 30 provides for interactive message transfer between tasks anywhere in the network component.

- UIPC(30)는 어플리케이션이 비동기적으로 메시지들을 전송하는 것을 허락한다. API(Application Program Interface)는 블로킹 없이 즉각적인 응답을 준다.UIPC 30 allows the application to send messages asynchronously. The application program interface (API) gives an immediate response without blocking.

- UIPC(30)는 타스크들이 메시지들을 전송하며 타임아웃을 가지고 동기적으로 응답함을 허락한다.UIPC 30 allows tasks to send messages and respond synchronously with a timeout.

- UIPC(30)는 하위의 물리적 전달 메카니즘(underlying physical transport mechanism)을 추출해 낸다.UIPC (30) extracts the underlying physical transport mechanism (underlying physical transport mechanism).

- UIPC(30)는 메시지들이 브로드캐스트(broadcast)될 수 있는 메카니즘을 제공한다.UIPC 30 provides a mechanism by which messages can be broadcast.

- 하위레벨 UIPC 프로토콜은 상위계층 프로토콜의 변경 없이도 변경될 수 있게 하며, 그 반대로도 될 수 있게 한다.Low-level UIPC protocols can be changed without changing the upper layer protocols and vice versa.

- UIPC(30)는 링크 대 링크 기반상에서의 전송 에러를 검출하고 에러된 패킷들에 대한 재시도를 수행한다. 이것은 각 링크를 핸들링 하는 프로토콜의 데이터 링크계층이 링크를 신뢰성 있게 만들어야 함을 의미한다.UIPC 30 detects a transmission error on a link-to-link basis and retries the failed packets. This means that the data link layer of the protocol that handles each link must make the link reliable.

- 동일 UIPC API는 내부프로세스통신과 외부프로세스통신을 위해 사용된다.-The same UIPC API is used for internal process communication and external process communication.

- 동일 UIPC(30)는 대용량 메시지들의 분할과 재조립을 수행한다.The same UIPC 30 performs division and reassembly of large messages.

- UIPC(30)는 디버그 출력(debug output)을 인에이블 시키는 메카니즘을 제공한다.UIPC 30 provides a mechanism to enable debug output.

- UIPC 프로토콜 파라미터는 동작수행시간(run-time)에서도 세팅 가능하다.UIPC protocol parameters can also be set at run-time.

- UIPC(30)는 각 링크에 대해서 최대 전송단위를 설정하는 메카니즘을 제공한다.The UIPC 30 provides a mechanism for setting the maximum transmission unit for each link.

- UIPC(30)는 가변적인 최대 전송단위들을 가지는 링크를 수용한다.UIPC 30 accommodates links with variable maximum transmission units.

- UIPC(30)는 실시간 중요 메시지들(real-time critical messages)에 대한 메시지 우선순위를 지원한다.UIPC 30 supports message priority for real-time critical messages.

- UIPC(30)는 OS(operating system) 독립적이다.UIPC 30 is independent of the operating system (OS).

- UIPC(30)는 제어기로부터의 메시지가 투명하게 통과되어 카드에 부착된 디바이스들에게 가도록 한다.UIPC 30 allows a message from the controller to pass through transparently to the devices attached to the card.

UIPC(30)는 메시지를 발신지에서 목적지로 전달하는 역할을 갖고 있으나 메시지의 내용에 대해서는 어플리케이션의 역할이기 때문에 특정 시스템 메시지의 표현 메카니즘을 제공하지는 않는다. 상기 시스템 메시지의 표현 메카니즘은 표현계층(presentation layer)의 역할인데, 본 발명의 실시 예에 따른 UIPC(30)에서는 실시간 프로토콜을 지향하므로 상기 표현계층을 포함하지 않는 것이다.The UIPC 30 has a role of delivering a message from a source to a destination, but does not provide a representation system for a specific system message because it is a role of an application for the content of the message. The presentation mechanism of the system message is a role of a presentation layer. In the UIPC 30 according to an embodiment of the present invention, the presentation layer does not include the presentation layer because it is directed to a real-time protocol.

도 4는 본 발명의 실시 예에 따른 카드별(유니트별) UIPC 구성을 보여주는 도면이다. 도 4에서 타스크(task)는 프로세스와 동일한 개념으로 간주함을 이해하여야 한다.4 is a diagram illustrating a UIPC configuration per card (per unit) according to an exemplary embodiment of the present invention. It should be understood that the task in FIG. 4 is regarded as the same concept as the process.

도 4를 참조하면, 각 카드(유니트)에 구비된 본 발명의 실시 예에 따른 UIPC(30)는, 크게 UIPC API(Application Program Interface)(60)와 UIPC 프로토콜 스택(protocol stack)(70)의 두 부분으로 구분된다. 그 이유는 UIPC 프로토콜 스택(70)을 필요로 하는 외부프로세스통신(interprocessor communication)과 UIPC 프로토콜 스택(70)을 필요로 하지 않는 내부프로세스통신(intraprocessor communication)을 효율적으로 구분하기 위함이다. 외부프로세스통신(interprocessor communication)은 네트워크 어드레스 N_ADDR이 자기 자신이 아니기 때문에 메시지가 자기 카드에서 다른 카드로 전달되어야 하는 경우이고, 내부프로세스 통신(intraprocessor communication)은 네트워크 어드레스 N_ADDR이 자기 자신이기 때문에 카드 내부의 해당 타스크로 메시지가 직접 전달될 수 있는 경우이다. UIPC API(Application Program Interface)(60)는 타스크로부터 호출되는 라이브러리 형태로 제공된다. 타스크는 메시지를 송수신하기 위해 UIPC API(60)를 호출하며 외부프로세스통신을 위해서는 UIPC 프로토콜 스택(70)과 통신하며 메시지를 처리한다.Referring to FIG. 4, the UIPC 30 according to the embodiment of the present invention, which is provided in each card (unit), is divided into a UIPC API (Application Program Interface) 60 and a UIPC protocol stack 70. It is divided into two parts. The reason for this is to efficiently distinguish between interprocessor communication that requires the UIPC protocol stack 70 and intraprocessor communication that does not require the UIPC protocol stack 70. External processor communication is when the network address N_ADDR is not its own, so a message must be transferred from its card to another card. Intraprocessor communication is because the network address N_ADDR is its own. This is the case when a message can be delivered directly to the task. The UIPC API (Application Program Interface) 60 is provided in the form of a library called from a task. The task calls the UIPC API 60 to send and receive messages and communicates with the UIPC protocol stack 70 for external process communication and processes the messages.

먼저 본 발명의 실시 예에 따른 UIPC API(60)에 대하여 도 4를 참조하여 보다 상세히 설명하면 하기와 같다.First, the UIPC API 60 according to an embodiment of the present invention will be described in more detail with reference to FIG. 4.

UIPC API(60)UIPC API (60)

UIPC API(60)는 어떤 타스크(프로세스)에서도 이용될 수 있는 공유형 라이브러리이며, UIPC(30)에서 제공되는 모든 외부 기능에 대한 인터페이스를 제공한다. 요컨대, UIPC API(60)는 어떠한 어플리케이션 타스크가 UIPC 기능을 사용할 수 있도록 인터페이스를 제공한다. 또한 네트워크 어드레스 N_ADDR 및 어플리케이션ID APP_ID에 근거하여 외부 및 내부 프로세스통신 경로를 결정한다. UIPC API(60)는 내부프로세스통신(intraprocessor communication)을 위해서는 UIPC 프로토콜 스택(70)을 사용하지 않는다. UIPC API(60)는 해당 어플리케이션 타스크(프로세스)의 물리적 위치를 나타내는 네트워크 어드레스 N_ADDR을 조사하여, 만약 내부프로세스통신(intraprocessor communication)일 경우에는 도 3의 OIA계층(54)에서 제공하는 OIA API 라이브러리를 통해 직접 해당 타스크(프로세스)의 메시지 큐(queue)로 메시지를 전달한다. 만약 외부프로세스통신(interprocessor communication)일 경우에는 UIPC API(60)는 목적지를 찾는 라우팅을 위해 UIPC 프로토콜 스택(70)의 메시지 큐로 메시지를 전달한다.The UIPC API 60 is a shared library that can be used in any task (process) and provides an interface to all external functions provided by the UIPC 30. In short, UIPC API 60 provides an interface for any application task to use UIPC functionality. In addition, external and internal process communication paths are determined based on the network address N_ADDR and the application ID APP_ID. The UIPC API 60 does not use the UIPC protocol stack 70 for intraprocessor communication. The UIPC API 60 examines the network address N_ADDR indicating the physical location of the corresponding application task (process), and, if it is intraprocessor communication, provides the OIA API library provided by the OIA layer 54 of FIG. The message is delivered directly to the message queue of the task (process). If it is an interprocessor communication, the UIPC API 60 delivers the message to the message queue of the UIPC protocol stack 70 for routing to find the destination.

UIPC API(60)가 타스크(어플리케이션)에게 제공하는 외부 기능중 가장 중요한 것이 타스크가 UIPC를 사용할 수 있도록 하기 위한 공통 소프트웨어 플랫폼(32)의 공통 타스크 아키텍쳐(common task architecture)를 제공하는 것이다. 본 발명의 실시 예에 따른 공통 타스크 아키텍쳐(common task architecture)의 대표적인 기능은 다음과 같다.The most important of the external functions provided by the UIPC API 60 to the task (application) is to provide a common task architecture of the common software platform 32 to enable the task to use the UIPC. Representative functions of a common task architecture according to an embodiment of the present invention are as follows.

1. 개발자들은 타스크 구조(task structure)를 재설계(redesign)할 필요가없다.Developers don't have to redesign task structures.

2. 비동기 콜백(asynchronous callback) 기능이 발신자(caller)의 타스크에서 수행된다.2. Asynchronous callback is performed on the caller's task.

3. 개발자들이 공통 구성성분(common components)(예컨대, 공통OAM 등)과 어플리케이션을 합치기(integrate) 위한 작업이 필요 없다.3. There is no need for developers to integrate applications with common components (eg common OAM, etc.).

4. 메시지 큐 방식을 사용하여 타스크간 통신을 한다. 이는 모든 운영체제가 제공하는 공통의 IPC 메카니즘이기 때문이다.4. Communicate between tasks using Message Queuing. This is because it is a common IPC mechanism provided by all operating systems.

공통 소프트웨어 플랫폼(32)의 모든 구성성분(수평 구성성분 + 수직 구성성분)들중 UIPC계층(30)의 상위 블록의 소프트웨어 어플리케이션 예컨대, 공통 에이전트 타스크(40), 공통 OAM 타스크(42) 등은 UIPC API(60)가 제공하는 본 발명의 실시 예에 따른 공통 타스크 아키텍쳐가 사용되어 구현된다. 상기 4가지 기능의 공통 타스크 아키텍쳐의 구조를 사용하는 타스크(프로세스)의 기본적인 공통 제어 흐름은 도 5와 같다.Of all the components (horizontal component + vertical component) of the common software platform 32, the software application of the upper block of the UIPC layer 30, for example, the common agent task 40, the common OAM task 42, etc. The common task architecture according to the embodiment of the present invention provided by the API 60 is used and implemented. The basic common control flow of a task (process) using the structure of the common task architecture of the four functions is shown in FIG.

도 5를 참조하면, 타스크는 큐를 이용해 메시지 수신을 기다린다. 타스크는 비동기적(Asychronous)으로 메시지를 수신하면(100단계), 수신된 메시지를 디코드하여 분석 후(102단계), 메시지 처리를 수행한다(104단계). 만약 타스크 별도의 처리가 요구되면 기타 특정한 해당 기능을 수행(other application specific processing)한 후(106단계), 다시 100단계로 되돌아가 메시지 수신을 기다린다.Referring to FIG. 5, the task waits for message reception using a queue. When the task receives the message asynchronously (step 100), the task decodes the received message and analyzes it (step 102), and then performs message processing (step 104). If the task requires processing separately, after performing other application specific processing (step 106), the process returns to step 100 and waits for a message reception.

종래의 레가시(legacy) 타스크 아키텍쳐와 본 발명의 실시 예에 따라 도 5와 같은 기본적인 공통 제어 흐름을 갖는 타스크의 공통 타스크 아키텍쳐를 하기 표 1및 표 2의 테이블에서 비교하였다. 표 1의 테이블에 기재된 일 예와 같은 종래의 레가시 타스크는 공통의 구조가 아니기 때문에 개발자 및 타스크 기능에 따라 상이한 형태로 개별 설계가 된다. 이는 개발시간에 상당한 오버헤드이었고 유사기능을 가진 타스크일 경우라도 재설계 되어야 했다. 한편 하기 표 2의 테이블에 기재된 바와 같은 본 발명의 실시 예에 따른 공통 타스크 아키텍쳐는 도 5와 같은 타스크의 기본적인 공통 제어 흐름을 가지도록 구현되어 종래의 오버헤드를 제거한다. 그래서 개발시간 단축에 상당한 효과가 있다.The conventional task architecture of a conventional legacy task architecture and a task having a basic common control flow as shown in FIG. 5 according to an embodiment of the present invention were compared in the tables of Tables 1 and 2 below. Conventional legacy tasks, such as the example shown in the table of Table 1, do not have a common structure and are individually designed in different forms depending on the developer and task function. This was a significant overhead in development time and had to be redesigned even for tasks with similar functionality. Meanwhile, the common task architecture according to the embodiment of the present invention as described in the table of Table 2 is implemented to have a basic common control flow of the task as shown in FIG. 5 to eliminate the conventional overhead. So it has a significant effect on shortening development time.

표 2에 도시된 공통 타스크 아키텍쳐에 대해서는 도 6이 참조되어 상세히 설명될 것이다.The common task architecture shown in Table 2 will be described in detail with reference to FIG. 6.

도 6은 본 발명의 실시 예에 따른 UIPC API 구성 및 공통 타스크 아키텍쳐를 설명하기 위한 도면이다. 도 6을 참조하면, 각 카드의 메인 타스크는 UIPC 내부에 하기 표 3과 같은 글로벌 정보 테이블을 생성하며, 고유의 기능(예컨대, 알람 타스크 , 성능 타스크 등)을 하는 서브 타스크 task1,task2를 생성한다.FIG. 6 illustrates a UIPC API configuration and a common task architecture according to an embodiment of the present invention. Referring to FIG. 6, the main task of each card generates a global information table as shown in Table 3 below in the UIPC, and generates subtasks task1 and task2 that perform unique functions (eg, alarm task, performance task, etc.). .

타스크IDTask ID 어플리케이션 IDApplication ID 타스크의 동적 메시지 핸들러 테이블에 대한 포인터Pointer to the dynamic message handler table for the task 타스크의 정적 메시지 핸들러 테이블에 대한 포인터Pointer to the static message handler table for the task 타스크의 동적 메시지 클래스 테이블에 대한 포인터Pointer to the dynamic message class table of the task 타스크의 아이들 메시지 핸들러에 대한 포인터Pointer to the task's idle message handler. Uipc_RcvLoop()내에 사용된 대기시간Wait time used in Uipc_RcvLoop ()

<<UIPC 글로벌 정보 테이블>><< UIPC Global Information Table >>

UIPC 내부에 있는 UIPC 글로벌 정보 테이블에 대해서 보다 상세히 설명하면 하기와 같다. 상기 글로벌 정보 테이블은 특정한 카드에서의 모든 타스크들에 대한 정보를 포함한다. 글로벌 정보 테이블에서의 각 엔트리는 타스크 제어블록(Task Control Block: TCB)이다. 각각의 타스크 제어블록은 타스크가 일정하게 지정된 정보를 보유할 것이다.Hereinafter, the UIPC global information table inside the UIPC will be described in detail. The global information table contains information about all the tasks in a particular card. Each entry in the global information table is a task control block (TCB). Each task control block will hold the information to which the task is constantly assigned.

상기 타스크 제어블록의 제1필드는 '타스크ID'이다. 상기 타스크 제어블록의 제2필드는 '어플리케이션 ID'이다. 이것은 타스크의 '메인 큐(Main Queue)'의 '어플리케이션 ID'일 것이다.The first field of the task control block is 'task ID'. The second field of the task control block is an 'application ID'. This will be the 'application ID' of the task's 'Main Queue'.

각 타스크는 동적 메시지 핸들러 테이블(dynamic message handler table), 정적 메시지 핸들러 테이블, 및 동적 메시지 클래스 테이블을 보유할 것이다. 타스크가 Uipc_RegisterOneTimeApi()을 일으킬 때마다 언제나 타스크의 동적 메시지 핸들러 테이블에서 엔트리가 만들어진다. 이러한 동적 메시지 핸들러 테이블에서의 엔트리는 영구적인 것이 아니다. 상기 엔트리는 한 번의 API의 응답이 도달하자마자 삭제된다. 상기 동적 메시지 핸들러 테이블은 밸런스드 바이너리 트리(balancedbinary tree)들을 사용하여 구현될 수 있다. 타스크가 Uipc_RegisterMsgHandler()를 일으킬 때마다 정적 메시지 핸들러 테이블에서 엔트리가 이루어질 것이다. 상기 정적 메시지 핸들러 테이블은 감시자의 API에 대해 전용이다. 동적 메시지 핸들러 테이블과는 달리, 정적 메시지 핸들러 테이블에 있어서의 엔트리는 영구적일 것이다. 정적 메시지 핸들러 테이블은 어레이(array)들을 사용하여 구현될 것이다.Each task will have a dynamic message handler table, a static message handler table, and a dynamic message class table. Each time a task raises Uipc_RegisterOneTimeApi (), an entry is made in the task's dynamic message handler table. Entries in this dynamic message handler table are not permanent. The entry is deleted as soon as the response of one API arrives. The dynamic message handler table may be implemented using balanced binary trees. Each time a task raises Uipc_RegisterMsgHandler (), an entry will be made in the static message handler table. The static message handler table is dedicated to the watcher's API. Unlike the dynamic message handler table, entries in the static message handler table will be permanent. The static message handler table will be implemented using arrays.

타스크가 Uipc_GenerateTempMsgClass()를 유발할 때마다 메시지 클래스는 상기 타스크로 다시 복귀할 것이며, 그리고 동적 메시지 클래스 테이블에서 필요한 업데이팅(updating)이 이루어져 특정한 메시지 클래스가 사용중(busy)일 것이다. 상기 타스크가 Uipc_FreeTempMsgClass()를 일으킬 때마다 상기 UIPC는 특정한 메시지 클래스가 장차 사용될 수 있도록 상기 동적 메시지 클래스 테이블에서 필요한 변경을 수행할 것이다. 상기 동적 메시지 클래스 테이블은 또한 하나의 어레이로서 구현될 것이다.Each time the task triggers Uipc_GenerateTempMsgClass (), the message class will revert back to the task, and the necessary updating is done in the dynamic message class table so that the particular message class is busy. Each time the task raises Uipc_FreeTempMsgClass (), the UIPC will make the necessary changes in the dynamic message class table so that a particular message class can be used in the future. The dynamic message class table will also be implemented as an array.

상기한 글로벌 정보 테이블은 모든 상기한 테이블들에 대한 포인터들을 포함한다. 이에 더하여, 상기 글로벌 정보 테이블은 타스크의 '아이들 메시지 핸들러(Idle Message Handler)' 함수에 대한 포인터를 또한 포함한다. 상기 글로벌 정보 테이블은 각 타스크에 대하여 Uipc_RcvLoop() 내에서 사용되어야만 하는 대기시간을 포함할 것이다. 상기 Uipc_RcvLoop API내에서 매번 상기 글로벌 정보 테이블은 대기시간에 대해 질문될 것이다. 상기 글로벌 정보 테이블은 모든 타스크들에 의해 액세스될 것이기 때문에 소정의 세마포어(semaphore) 신호가 상기 글로벌 정보 테이블을 보호할 것이다. 이러한 세마포어 신호는 Uipc_InitCardCentext() 동안에 생성될 것이다.The global information table contains pointers to all of the above tables. In addition, the global information table also includes a pointer to the 'Idle Message Handler' function of the task. The global information table will contain the latency that must be used in Uipc_RcvLoop () for each task. Each time within the Uipc_RcvLoop API the global information table will be queried for latency. Since the global information table will be accessed by all tasks, some semaphore signal will protect the global information table. This semaphore signal will be generated during Uipc_InitCardCentext ().

다시 도 6을 참조하면, UIPC API에서, Uipc_InitCardContext()는 본 발명의 실시 예에 따라 UIPC(30)를 초기화하도록 요청된다. 메인 타스크에 의해서 수행된 Uipc_InitCardContext()는 UIPC(30)를 사용하기 위해 UIPC 사용할 메모리 할당 및 내부 데이터 구조체(data structure)를 생성한다. Uipc_InitCardContext()는 카드(유니트)마다 한번만 호출되어야 한다.Referring back to FIG. 6, in the UIPC API, Uipc_InitCardContext () is requested to initialize the UIPC 30 according to an embodiment of the present invention. Uipc_InitCardContext () performed by the main task creates a memory allocation and internal data structure for use by the UIPC to use the UIPC 30. Uipc_InitCardContext () should only be called once per card (unit).

상기 메인 타스크의 의해서 생성된 종속 타스크들 task1,task2의 공통 타스크 아키텍쳐에 대해서 보다 상세히 설명하면 하기와 같다.Hereinafter, the common task architecture of the subordinate tasks task1 and task2 generated by the main task will be described in detail.

공통 타스크 아키텍쳐에서, Uipc_InitTaskContext()는 여러 타스크들이 UIPC(30)를 사용해 통신할 수 있도록 각 타스크 생성시마다 글로벌 정보 테이블을 할당하여 글로벌 테이블 엔트리에 등록해준다. Uipc_InitTaskContext()는 타스크마다 한번만 호출되어야 한다.In the common task architecture, Uipc_InitTaskContext () allocates a global information table for each task creation and registers it in a global table entry so that various tasks can communicate using the UIPC 30. Uipc_InitTaskContext () should be called only once per task.

Uipc_CreateQueue(TASK1_APP_ID,hTask1Queue)는 각 타스크에서 UIPC를 사용해 메시지를 수신하기 위해 큐를 생성한다. Uipc_CreateQueue(TASK1_APP_ID,hTask1Queue)는 타스크의 어플리케이션ID에 대한 큐 테이블에 생성된 큐ID를 등록한다.Uipc_CreateQueue (TASK1_APP_ID, hTask1Queue) creates a queue to receive messages using UIPC in each task. Uipc_CreateQueue (TASK1_APP_ID, hTask1Queue) registers the created queue ID in the queue table for the application ID of the task.

Uipc_SetmainQueue(hTask1Queue)는 타스크에서 해당 큐를 메시지 수신을 위한 메인 큐로서 등록한다. 메인 큐로 등록되면 Uipc_RcvLoop() 내부에서 메시지 대기(wait)를 위한 큐로서 사용된다.Uipc_SetmainQueue (hTask1Queue) registers this queue as the main queue for receiving messages in tasks. Once registered as the main queue, it is used as a queue for message wait inside Uipc_RcvLoop ().

Uipc_RegisterMsgHandler(TASK1_MSG_CLASS,Task1MessageHandler)는 타스크에서 수신된 메시지 처리할 메시지 종류(메시지 클래스)와 메시지 처리를 위한 핸들러 함수를 글로벌 정보 테이블에 등록하여 Uipc_RcvLoop()내부에서 수신된 메시지를 처리할 때 사용한다.Uipc_RegisterMsgHandler (TASK1_MSG_CLASS, Task1MessageHandler) is used to process the message received in Uipc_RcvLoop () by registering the message type (message class) to be processed in the task and the handler function to process the message in the global information table.

Uipc_RegisterIdleHandler(Task1IdleHandler)는 타스크가 수신된 메시지 처리 기능외에 부가적인 기능을 수행하고자 할 때 핸들러 함수를 글로벌 정보 테이블에 등록하여 Uipc_RcvLoop() 내부에서 수신된 메시지가 없을 때 부가적인 작업을 수행한다.Uipc_RegisterIdleHandler (Task1IdleHandler) registers a handler function in the global information table when a task wants to perform additional functions in addition to the received message handling function, and performs additional work when there are no messages received inside Uipc_RcvLoop ().

Uipc_RcvLoop()는 타스크가 메인 큐로부터의 메시지 수신 및 수신된 메시지 처리를 수행하는 부분으로서 절대 리턴하지 않고 내부적으로 무한 루프를 수행한다. 이곳에서 메시지 수신/ 메시지 디코드 / 메시지 처리/ 부가적인 작업을 수행하게 된다.Uipc_RcvLoop () is the part where the task performs the reception of messages from the main queue and the processing of received messages, and internally loops indefinitely without returning. This is where you receive the message, decode the message, process the message, and perform additional tasks.

다음으로 UIPC(30)의 UIPC 프로토콜 스택(protocol stack)(70)에 대해서 다시 도 4를 참조하여 상세히 설명하면 하기와 같다.Next, the UIPC protocol stack 70 of the UIPC 30 will be described in detail with reference to FIG. 4 again.

UIPC 프로토콜 스택(protocol stack)(70)UIPC Protocol Stack (70)

UIPC 프로토콜 스택(70)은 외부프로세스통신(interprocessor communication)을 위한 것이다. 외부 프로세스통신은 UIPC API(60)에서 UIPC프로토콜 스택(70)의 큐로 메시지를 송신함에 따라 수행된다. UIPC 프로토콜 스택(70)은 메시지 루트를 결정하기 위해 라우팅 라이브러리(routing library)를 필요로 하는데, 이때 어플리케이션ID APP_ID와 네트워크 어드레스 N_ADDR를 근거로 한다. 라우팅을 위해UIPC API(60)는 어플리케이션ID APP_ID와 네트워크 어드레스 N_ADDR를 갖고 라우팅 라이브러리(routing library)에서 제공하는 API를 호출하여 내부프로세스통신 메시지(intraprocessor message)인지 외부프로세스통신 메시지(interprocessor message)인지를 판단한다. 만약 외부프로세스통신 메시지(interprocessor message)이면 UIPC API(60)는 메시지를 UIPC 프로토콜 스택(70)의 큐로 송신한다. 통상적인 프로토콜 스택은 OSI(Open System Interconnection)모델에 따르지만 본 발명의 실시 예에 따른 UIPC 프로토콜 스택(70)은 7계층 전부를 지원하지는 않으며 하기와 같은 3계층만을 지원한다. 요컨대, 본 발명의 실시 예에 따른 UIPC 프로토콜 스택(70)은 데이터 링크 계층(link layer)(72), 네트워크 계층(network layer)(74), 및 전달 계층(transport layer)(76)을 지원한다. 상기 데이터 링크계층(72)에는 데이터링크 큐가 존재하며, 네트워크 계층(74)에는 네트워크 큐가 존재하고, 전달계층(76)에는 전달 큐가 존재한다.The UIPC protocol stack 70 is for interprocessor communication. External process communication is performed by sending a message from the UIPC API 60 to the queue of the UIPC protocol stack 70. The UIPC protocol stack 70 needs a routing library to determine the message route, based on the application ID APP_ID and the network address N_ADDR. For routing, the UIPC API 60 calls the API provided by the routing library with the application ID APP_ID and the network address N_ADDR to determine whether it is an intraprocessor message or an interprocessor message. To judge. If it is an interprocessor message, the UIPC API 60 sends the message to the queue of the UIPC protocol stack 70. A typical protocol stack is based on the Open System Interconnection (OSI) model, but the UIPC protocol stack 70 according to an embodiment of the present invention does not support all seven layers but only three layers as follows. In short, the UIPC protocol stack 70 according to an embodiment of the present invention supports a data link layer 72, a network layer 74, and a transport layer 76. . A data link queue exists in the data link layer 72, a network queue exists in the network layer 74, and a delivery queue exists in the delivery layer 76.

본 발명에 따른 3가지 계층들의 기능은 하기에서 상세히 설명될 것이다. 그러나, 각 계층의 세부사항을 언급하기 전에 다음의 일반적인 필요조건들이 각 계층에 적용된다. 이것들은 상기 계층들의 구현자를 위한 가이드라인으로서 의도된다.The function of the three layers according to the invention will be described in detail below. However, before referring to the details of each layer, the following general requirements apply to each layer. These are intended as guidelines for implementers of the layers.

각 계층에 대한 헤더는 프로토콜 식별자(discriminator)를 포함하여야 한다. 상기 식별자는 어떤 프로토콜 또는 그들의 조합이 메시지에 수반되고 있는지를 나타낸다. 이것은 통상 헤더 내부의 2 또는 3비트로 이루어진다. 이것은 상이한 프로토콜들이 다른 프로토콜들로의 변경없이 앞으로도 구현되어질 것이다. 예를 들면, 네트워크 계층(74)에 의해 처리되고 있는 수신 메시지는 어느 프로토콜 모듈이 그메시지를 처리할 다음 차례이어야 하는가를 지시하는 네트워크 계층 헤더에 프로토콜 식별자를 보유할 것이다. 상기 UIPC가 TCP(Transmission Control Protocol) 또는 UDP(User Datagram Protocol)와 같은 전달계층 프로토콜들을 지원하고자 한다면, 상기 프로토콜 식별자는 상기한 TCP 또는 UDP 모듈에 상기 메시지를 전달할지 또는 아닐지를 상기 네트워크 계층(74)에게 알려줄 것이다. 상기 UDP는 인터넷 표준 네트워크 계층, 전달 계층, 및 데이터그램(datagram) 서비스를 제공하는 세션 계층 프로토콜들을 참조한다. 상기 UDP는 TCP와 마찬가지로 IP의 최상위 계층에 있는 비연결형 프로토콜이다.The header for each layer must contain a protocol identifier. The identifier indicates which protocol or combination thereof is involved in the message. This usually consists of two or three bits inside the header. This will allow different protocols to be implemented in the future without changing to other protocols. For example, an incoming message being processed by network layer 74 will have a protocol identifier in the network layer header that indicates which protocol module should be next to process the message. If the UIPC wishes to support transport layer protocols such as Transmission Control Protocol (TCP) or User Datagram Protocol (UDP), the protocol identifier may or may not forward the message to the TCP or UDP module. ). The UDP refers to session layer protocols that provide Internet standard network layer, transport layer, and datagram services. UDP, like TCP, is a connectionless protocol at the top layer of IP.

어떤 프로토콜 계층들은 다른 계층들에 의존할 수도 있으며, 독립적으로 사용될 수 없을지도 모른다. 예를 들어, 물리 HDLC(High level Data Link Control)계층에 의존하는 데이터링크계층 프로토콜인 LAPD를 고려해볼 수 있다. 두문자를 딴 "LAPD"는 D채널 상의 링크 액세스 절차(link access procedure)를 나타낸다.Some protocol layers may depend on other layers and may not be used independently. For example, consider a LAPD, which is a data link layer protocol depending on a physical high level data link control (HDLC) layer. The acronym "LAPD" indicates a link access procedure on the D channel.

각 계층은 메시지의 우선도(priority)를 간직할 것이다. 높은 우선순위의 메시지들 또는 세그먼트(segments - 조각화될 필요가 있는 긴 메시지의 경우)는 다른 메시지들 또는 세그먼트들에 앞서서 항상 전송될 것이다. 단지 두 개의 우선도, 즉 '정상' 및 '높음'의 두 가지의 우선도가 본 발명에서 지원되는 것이 추천된다. 더 이상의 구분은 혼란만 초래할 수 있다. 하지만 그 이상으로 추가적인 우선도 구분에 대해서도 본 발명에 의해 지원될 수 있다.Each layer will retain the priority of the message. High priority messages or segments (in case of long messages that need to be fragmented) will always be sent before other messages or segments. It is recommended that only two priorities, namely 'normal' and 'high', are supported in the present invention. Further divisions can only lead to confusion. However, further priority division may also be supported by the present invention.

각 계층은 엔드포인트(endpoint)에서 동일계층들간에 교환되는 특정 제어 메시지들을 정의할 수도 있다. 이러한 제어 메시지들은 어느 한 쪽이 프로토콜 파라미터에 대해서 협상하거나 또는 흐름제어를 수행하는 것을 허락한다.Each layer may define specific control messages that are exchanged between the same layers at the endpoint. These control messages allow either side to negotiate protocol parameters or to perform flow control.

이하의 부분은 각 프로토콜 계층의 특성들 및 책임들이 기술될 것이다. 각 부분은 또한 상기 계층이 제공해야만 하는 프리미티브(primitive) 리스트를 포함한다. 이 프리미티브들은 다른 소프트웨어에 제공되는 외부 인터페이스(즉, 그 다음 프로토콜 계층)를 보여주는 것으로 의도된다. 그들은 두 개의 엔드포인트들간에 통과되는 실제 메시지들을 설명하지는 않는다. 그 메시지들 및 그에 관련된 상태도(state machine)들의 정의는 여기서 설명되지 않을 것이다. 그러한 것은 구체적인 설계가 수행될 때 정의되어질 것이다.The following section will describe the characteristics and responsibilities of each protocol layer. Each part also contains a list of primitives that the layer must provide. These primitives are intended to show an external interface (i.e., the next protocol layer) provided to other software. They do not describe the actual messages passed between the two endpoints. The definition of those messages and their associated state machines will not be described here. Such will be defined when the specific design is performed.

상기한 프리미티브들은 ITU(International Telecommunication Uion)의 용어체계를 사용하여 이름붙여질 것이고, "Request", "Response", "Indication", 및 "Confirm"으로서 범주가 나누어질 것이다.The primitives described above will be named using the terminology of the International Telecommunication Union (ITU), and will be categorized into "Request", "Response", "Indication", and "Confirm".

Request: 이것은 그 계층이 지원해야만 하는 하나의 기능을 의미하며, 어떤 동작을 요구하기 위하여 그 계층 상위의 다음 계층에 의해 유발(invoke)되는 것으로 의도된다.Request: This means one function that the layer must support and is intended to be invoked by the next layer above it in order to request an action.

Response: 이것은 하나의 응답을 필요로 하는 지시가 수신될 때 먼 쪽의 단말에 의해 유발된다. 결과적으로 상기한 'Request'의 요청자(requestor)가 확인을 접수할 것이다.Response: This is triggered by the far end terminal when an indication is received that requires one response. As a result, the requestor of the above-mentioned 'Request' will receive the confirmation.

Indication: 이것은 하나의 이벤트가 일어났다는 통지이다. 이것은 다음 계층 오름 또는 나중에 생성한 코드가 이러한 지시들을 받는다는 것으로 의도된다. 대부분의 'Indication'들은 하나의 'Request'를 통해 어떤 동작을 개시하는 상기먼 쪽 단말의 결과이다.Indication: This is a notification that an event has occurred. It is intended that the next layer up or later generated code receives these instructions. Most of the 'Indications' are the result of the remote terminal initiating an operation through one 'Request'.

Confirm(확인): 이것은 상기한 'Request'가 응답되어지는 확인(confirmation)이다.Confirm: This is a confirmation that the above 'Request' is answered.

각각의 프리미티브는 그에 관련된 프리미티브가 지정된 데이터를 갖는다. 계층들 사이에 프리미티브를 통과시키는 메커니즘은 그것이 계층들의 상세 설계의 일부이기 때문에 여기서는 구체적으로 설명되지 않는다.Each primitive has data associated with that primitive. The mechanism for passing primitives between layers is not described in detail here because it is part of the detailed design of the layers.

최대 전송단위(Maximum Transmission Unit: MTU)가 정의되어야 한다는 점을 유념하는 것은 매우 중요하다. 최대 전송단위(MTU)는 최대 메시지 사이즈를 정의한다. 상기 사이즈 아래의 어떤 메시지들도 단일 메시지로서 전송된다.It is very important to note that the Maximum Transmission Unit (MTU) must be defined. The maximum transmission unit (MTU) defines the maximum message size. Any messages below this size are sent as a single message.

최대 전송단위를 결정하는 것은 어플리케이션 설계의 일부이다. 따라서 그것은 상기 UIPC의 일부로서 정의되지는 않는다. 그러나, UIPC는 상기 최대 전송단위를 설정하기 위하여 UIPC의 구성요소에만 가시적인 내부의 API를 정의한다. 상기 최대 전송단위는 어플리케이션 작업수행 필요조건들, 하나의 메시지가 취하도록 예상되는 홉(hop: 라우터와 라우터 사이의 마디를 일컬음)의 숫자, 및 사용되고 있는 통신링크의 속도에 의해 결정된다.Determining the maximum transmission unit is part of the application design. It is therefore not defined as part of the UIPC. However, UIPC defines an internal API that is visible only to components of UIPC to set the maximum transmission unit. The maximum transmission unit is determined by the application task requirements, the number of hops (called nodes between routers) that one message is expected to take, and the speed of the communication link being used.

하나의 노드에서 다음 노드로 메시지들의 경로를 안내하는 네트워크들로부터 일어나는 복잡한 문제가 존재한다. 만일 각각의 홉(hop)에 대한 상기 최대 전송단위(MTU)가 같지 않다면, 이러한 불균형을 해소하기 위하여 무엇인가가 행해져야만 한다. 여기서 문제는, 하나의 노드가 큰 MTU를 갖는 메시지를 전송할 때, 그리고 상기 메시지가 작은 MTU를 갖는 홉을 넘어서 한 노드를 통해 중계될 때 발생된다.하나의 메시지가 이동하는 모든 링크들의 모든 MTU들을 어느 한 노드가 안다는 것은 매우 어려울 것이다. 사실상, 발신 노드는 어떤 링크들에 이동될 것인지를 알지조차 못할 수가 있다. 그것이 아는 모든 것은 단지 다음 노드로 메시지를 어떻게 보내주는 하는 방법이다. 따라서, 각 노드의 프로토콜 스택은 해당 노드에 연결된 링크들 상의 MTU 사이즈에 있어서의 차이를 해결해야만 한다. 본 명세서에서 후술하는 "네트워크 계층(74)"이라는 부분에서 설명한 바와 같이, 네트워크 계층(74)은 메시지 분할(segmentation) 기능을 갖는다. 이것은 더 큰 MTU를 더 작은 MTU로 분할함에 이용되어야 한다. 만일 네트워크 계층이 각 노드에서 이것을 수행하지 않고자 한다면, 대안은 단 대 단(end-to-end) 연결을 구현하여 모든 노드들을 통해서 최대 MTU가 어떤 것이어야 하는지를 협의하여 결정하는 것이다. 그러나, 이 방법은 오버헤드를 발생하고 비연결형(connectionless) 메시지들에 대해서는 효과가 없을 것이다.There is a complex problem that arises from networks that route messages from one node to the next. If the maximum transmission unit (MTU) for each hop is not the same, something must be done to resolve this imbalance. The problem here arises when one node transmits a message with a large MTU and when the message is relayed through one node over a hop with a small MTU. It will be very difficult for any node to know. In fact, the originating node may not even know which links to go to. All it knows is how to send a message to the next node. Thus, the protocol stack of each node must resolve the difference in MTU size on the links connected to that node. As described in the section " network layer 74 " described later herein, the network layer 74 has a message segmentation function. This should be used to divide the larger MTU into smaller MTUs. If the network layer does not want to do this at each node, an alternative is to implement an end-to-end connection and negotiate to determine what the maximum MTU should be across all nodes. However, this method incurs overhead and will not work for connectionless messages.

데이터 링크 계층(72)Data Link Layer (72)

먼저 UIPC 프로토콜 스택(70)이 지원하는 3계층중 먼저 데이터 링크 계층(72)에 대해서 설명하면 하기와 같다. 데이터 링크계층(72)은 엔드포인트(endpoints)간에 데이터 링크를 연결하고 링크간 무에러(error-free) 데이터 전송을 책임지며 다음과 같은 기능을 제공한다.First, the data link layer 72 among the three layers supported by the UIPC protocol stack 70 will be described below. The data link layer 72 connects data links between endpoints, is responsible for error-free data transmission between links, and provides the following functions.

1. 데이터 우선순위를 제공하여 큐잉(queuing)한다.1. Queuing by providing data priority.

2. 흐름 제어(flow control)를 제공하여 데이터의 원활한 송수신을 지원한다.2. Provides flow control to support smooth transmission and reception of data.

3. 무에러 데이터(error-free data) 전송을 지원한다.3. Support error-free data transmission.

4. 비연결형 모드(connection-less mode) 및 연결형 모드(connection -oriented mode)를 제공하며 연결형(connection-oriented)일 경우 데이터 링크를 연결 및 해제한다.4. Provides connection-less mode and connection-oriented mode, and connects and disconnects data links when connection-oriented.

5. 에러 발생 시 해당 데이터에 대한 재전송이 가능하다.5. In case of error, retransmission of the data is possible.

하기 표 4는 연결형 데이터 링크들을 위해 최소한 요구되는 데이터링크계층(72)에서의 연결형 모드 프리미티브 및 그 설명을 요약한 것이고, 표 5는 비연결형 데이터 링크들을 위해 최소한 요구되는 데이터 링크 계층(72)에서의 비연결형 모드 프리미티브 및 그 설명을 요약한 것이다.Table 4 below summarizes the connected mode primitives in the datalink layer 72 that are required at least for the connected data links and their descriptions, and Table 5 shows at least the required data link layer 72 for the disconnected data links. A summary of the connectionless mode primitives and their descriptions.

서 비 스service 프리미티브Primitive 설 명Explanation 링크설정Link setting DL-CONNECT requestDL-CONNECT request 원격 단 또는 물리 채널과의 연결을 시작.Initiate a connection with a remote end or a physical channel. DL-CONNECT indicationDL-CONNECT indication 원격 단이 당신에게 연결을 시작할 때 수신.Receive when the remote end starts connecting to you. DL-CONNECT responseDL-CONNECT response 연결을 수락하기 위해 DL-CONNECT indication의 수신측에 의해 유발됨.Triggered by the receiving side of the DL-CONNECT indication to accept the connection. DL-CONNECT confirmDL-CONNECT confirm 원격 단이 연결을 수락했다고 연결을 시작한 측에 알림.Notify the party that initiated the connection that the remote end accepted the connection. 정상 데이터 전송Normal data transfer DL-DATA requestDL-DATA request 송신측이 데이터를 송신하기 위해 사용함.Used by the sender to send data. DL-DATA indicationDL-DATA indication 수신측이 데이터 수신시에 이것을 취함.The receiving side takes this when receiving data. 링크해제Unlink DL-DISCONNECT requestDL-DISCONNECT request 어느측이든 연결해제를 시작 가능. 응답은 없음.Either side can initiate disconnection. There is no response. DL-DISCONNECT indicationDL-DISCONNECT indication 원격 단이 연결해제를 할 때 수신.Received when the remote end disconnects.

<<데이터링크 계층(72)에서의 연결형 모드 프리미티브 및 그 설명>><< Connected Mode Primitives at Datalink Layer 72 and Their Descriptions >>

서 비 스service 프리미티브Primitive 설 명Explanation 링크설정Link setting DL-DATA requestDL-DATA request 송신측이 데이터를 송신하기 위해 사용함.Used by the sender to send data. DL-DATA indicationDL-DATA indication 수신측이 데이터 수신시에 이것을 취함.The receiving side takes this when receiving data.

<<데이터링크 계층(72)에서의 비연결형 모드 프리미티브 및 그 설명>><< connectionless mode primitive at datalink layer 72 and its description >>

다음으로 UIPC 프로토콜 스택(70)이 지원하는 3계층중 네트워크 계층(74)에 대해서 설명하면 하기와 같다. 네트워크 계층(74)은 외부프로세스통신(interprocessor communication)시 프로세스들 사이의 메시지 라우팅을 책임진다. 네트워크 계층(74)은 하기와 같은 기능을 제공한다.Next, the network layer 74 among the three layers supported by the UIPC protocol stack 70 will be described. Network layer 74 is responsible for routing messages between processes in interprocessor communication. Network layer 74 provides the following functions.

1. 메시지 라우팅 기능을 제공한다.1. Provide message routing.

네트워크 어드레스 N_ADDR에 입각해 메시지 경로를 결정한다. 네트워크 계층은 메시지가 수신된 프로세스의 메시지로서 전달계층으로 보내져야할지 아니면 최종 목적지에 도달하기 위해 다른 인터페이스를 통해 전달될 필요가 있는지 결정한다.The message path is determined based on the network address N_ADDR. The network layer determines whether the message should be sent to the transport layer as a message of the received process or needs to be delivered through another interface to reach its final destination.

2. 메시지의 분할(segmentation)과 재조립(reassembly)을 지원한다.2. Supports segmentation and reassembly of messages.

메시지 라우팅시 데이터 링크 계층의 최대 전송단위(maximum transport unit : MTU)가 상이한 인터페이스로 메시지를 전달할 경우 메시지의 분할 및 재조립이 이루어진다.When routing a message, when the maximum transport unit (MTU) of the data link layer delivers the message to different interfaces, the message is divided and reassembled.

3. 무상태 동작(stateless operation)을 수행한다.3. Perform a stateless operation.

네트워크 계층(74)은 메시지 재전송 기능을 지원하지 않기 때문에 상태 천이도(state machine)가 없는 무상태 동작(stateless operation)을 수행한다. 일단 메시지가 송신되면 수신측의 수신여부와 관계없이 송신 메시지는 저장되지 않고 없어진다. 만약 엔드포인트간에 신뢰성 있는 송수신이 요구된다면 이는 전달계층(76)에서 수행해야 한다.Since the network layer 74 does not support the message retransmission function, the network layer 74 performs a stateless operation without a state machine. Once the message is sent, the sent message is lost without being stored, regardless of whether it is received. If reliable transmission and reception between endpoints is required, this should be done at transport layer 76.

UIPC(30)에서는 상기한 네트워크 계층(74)의 기능을 수행하는 인터페이스를 갖도록 부가적인 어드레스 관련 프리미티브를 정의한다. 하기 표 6은 네트워크 계층(74)의 프리미티브 및 그 설명을 요약한 것이다.The UIPC 30 defines additional address-related primitives to have an interface that performs the functions of the network layer 74 described above. Table 6 below summarizes the primitives of network layer 74 and their descriptions.

서 비 스service 프리미티브Primitive 설 명Explanation 정상 데이터 전송Normal data transfer N-DATA requestN-DATA request 송신측이 데이터를 송신하기 위해 사용함.Used by the sender to send data. N-DATA indicationN-DATA indication 수신측이 데이터 수신시에 이것을 취함.The receiving side takes this when receiving data.

<<네트워크 계층(74)에서의 프리미티브 및 그 설명>><< Primary Primitives at Network Layer 74 and Their Description >>

마지막으로 UIPC프로토콜 스택(70)이 지원하는 3계층중 전달 계층(transport layer)(76)에 대해서 설명하면 하기와 같다. 전달계층(76)은 타스크들간의 단 대 단(end-to-end) 통신에 대한 책임을 갖는다. 전달계층(76)은 다음과 같은 기능을 갖는다.Finally, the transport layer 76 among the three layers supported by the UIPC protocol stack 70 will be described below. The transport layer 76 is responsible for end-to-end communication between tasks. The transport layer 76 has the following functions.

1. 메시지 라우팅기능을 제공한다.1. Provide message routing.

수신된 메시지를 목적지 어플리케이션에 전달한다. 이를 위해 상기 전달계층(76)은 어플리케이션ID APP_ID를 기반으로 라우팅 테이블을 구축할 책임을갖는다. 상기 라우팅 테이블에 대한 접근은 UIPC API(60)에서 사용될 수 있도록 내부의 API를 통해 제공된다.Deliver the received message to the destination application. To this end, the transport layer 76 is responsible for establishing a routing table based on the application ID APP_ID. Access to the routing table is provided through an internal API for use in the UIPC API 60.

2. 비연결형 모드(connection-less mode) 및 연결형 모드(connection-oriented mode)를 제공한다. 비연결형 모드는 통신시 오버헤드를 줄이기 위해 하위계층(예컨대, 데이터링크 계층)들이 단 대 단간에 신뢰성을 보장한다는 가정 하에 사용하기 때문에 비연결형 모드에서는 데이터 링크 계층(72)과 동일하게 메시지 전송시 목적지 어플리케이션의 메시지 수신여부를 조사하지 않는다. 연결형 모드에서는 단 대 단(end-to-end)의 어플리케이션간에 연결이 설정되어야 메시지 송수신이 가능하며 이는 TCP(Transmission Control Protocol)의 소켓(socket)과 기능 면에서 유사한 것이다. 연결형 모드(connection-oriented mode)는 연결설정 및 해제시 부가적인 오버헤드와 복잡성이 존재하므로 이러한 모드는 하위계층의 신뢰성이 예상되지 않을 때나 실시간 통신에 대한 요구가 비교적 크지 않을 때에 사용하는 것이 바람직하다.2. It provides a connection-less mode and a connection-oriented mode. The connectionless mode is used under the assumption that lower layers (eg, data link layers) guarantee end-to-end reliability in order to reduce overhead in communication. Do not check whether the destination application receives the message. In connected mode, a connection must be established between end-to-end applications in order to send and receive messages, which is similar in functionality to the sockets of Transmission Control Protocol (TCP). Because connection-oriented mode has additional overhead and complexity in establishing and tearing down the connection, it is desirable to use this mode when the reliability of the lower layer is not expected or when the demand for real-time communication is relatively high. .

3. 메시지 다중화(multiplexing) 기능을 제공한다.3. Provides message multiplexing.

여러 어플리케이션으로부터 다수의 메시지가 수신되면 상기 전달계층(76)은 발신지의 네트워크 어드레스 N_ADDR을 기반으로 메시지를 조합하여 해당 어플리케이션으로 전달한다.When a plurality of messages are received from various applications, the transport layer 76 combines the messages based on the source network address N_ADDR and delivers them to the corresponding application.

하기 표 7은 외부 인터페이스 기능을 위해 요구되는 전달계층(76)에서의 연결형 모드 프리미티브 및 그 설명을 요약한 것이고, 표 8은 외부 인터페이스 기능을 위해 요구되는 전달계층(76)에서의 비연결형 모드 프리미티브 및 그 설명을 요약한 것이다.Table 7 below summarizes the connected mode primitives and their descriptions at the transport layer 76 required for external interface functionality, and Table 8 below describes the connected mode primitives at the transport layer 76 required for external interface functionality. And a summary of the description.

서 비 스service 프리미티브Primitive 설 명Explanation 링크설정Link setting T-CONNECT requestT-CONNECT request 어플리케이션과의 연결을 시작. 응답은 큐 핸들러와 관련됨.Start a connection with the application The response is related to the queue handler. T-CONNECT indicationT-CONNECT indication 원격 단이 어플리케이션에 대한 연결을 시작할 때 수신됨.Received when the remote end initiates a connection to an application. T-CONNECT responseT-CONNECT response 연결을 수락하기 위해 T-CONNECT indication의 수신측에 의해 유발됨.Triggered by the receiving side of the T-CONNECT indication to accept the connection. T-CONNECT confirmT-CONNECT confirm 연결이 지금 이루어진다고 그 연결을 시작한 측에 알림.Notify the party that initiated the connection that the connection is now made. 정상 데이터 전송Normal data transfer T-DATA requestT-DATA request 송신측이 데이터를 송신하기 위해 이것을 사용함.The sender uses this to send data. T-DATA indicationT-DATA indication 수신측이 데이터 수신시에 이것을 취함.The receiving side takes this when receiving data. 링크해제Unlink T-DISCONNECT requestT-DISCONNECT request 어느측이든 연결해제를 시작 가능함. 응답은 없음.Either side can initiate disconnection. There is no response. T-DISCONNECT indicationT-DISCONNECT indication 원격 단이 연결해제를 할 때 수신.Received when the remote end disconnects.

<<전달계층(76)에서의 연결형 모드 프리미티브 및 그 설명>><< Connected Mode Primitives in the Transport Layer 76 and Their Description >>

서 비 스service 프리미티브Primitive 설 명Explanation 정상 데이터 전송Normal data transfer T-DATA requestT-DATA request 송신측이 데이터를 송신하기 위해 이것을 사용함.The sender uses this to send data. T-DATA indicationT-DATA indication 수신측이 데이터 수신시에 이것을 취함.The receiving side takes this when receiving data.

<<전달계층(76)에서의 비연결형 모드 프리미티브 및 그 설명>><< Unconnected Mode Primitives in the Transport Layer 76 and Their Description >>

지금부터 본 발명의 실시 예에 따른 발신지 타스크로부터 목적지 타스크로 메시지 데이터를 전달하는 개략적인 과정을 도 1 내지 도 6을 참조하여 설명하면 하기와 같다.Hereinafter, a schematic process of transferring message data from a source task to a destination task according to an embodiment of the present invention will be described with reference to FIGS. 1 to 6.

발신지 타스크는 목적지 타스크로 메시지를 전달하기 위해서, 상기 목적지타스크의 네트워크 어드레스 N_ADDR과 어플리케이션ID APP_ID와 아울러 메시지 데이터를 담을 수 있는 Uipc_SendMsg(data, destinationAddress) 함수를 UIPC API 라이브러리로부터 호출한다. 그에 따라 타스크는 Uipc_SendMsg(data, destinationAddress) 함수에 목적지 타스크의 네트워크 어드레스 N_ADDR과 어플리케이션ID APP_ID, 및 메시지를 실게 되고, UIPC API(60)는 목적지 주소 즉 네트워크 어드레스 N_ADDR이 자기 카드의 네트워크 어드레스인지를 판단한다. 목적지 주소인 네트워크 어드레스가 자기 카드의 네트워크 어드레스이면 목적지까지의 메시지 전달은 내부프로세스통신(intraprocessor communication) UIPC에 의해서 수행될 것이고, 자기 카드의 네트워크 어드레스가 아니면 목적지까지의 메시지 전달은 외부프로세스통신(interprocessor communication) UIPC에 의해서 수행될 것이다. 상기 UIPC API(60)는 Uipc_SendMsg(data, destinationAddress) 함수에 실린 네트워크 어드레스 N_ADDR이 자기 카드의 네트워크 어드레스이면 즉 내부프로세스통신 UIPC이면, 도 3의 OIA계층(54)에 의해서 제공되는 OIA API 라이브러리를 통해 직접 카드 내에 있는 목적지 타스크의 메시지 큐(queue)로 메시지를 전달한다. 상기 내부프로세스통신 UIPC일 경우에는 프로토콜 스택(70)을 이용하지 않는다. 메시지를 수신받은 목적지 타스크는 Uipc_RcvLoop() 함수를 이용해서 도 5 및 도 6에 도시된 공통 타스크 아키텍쳐의 기본적인 공통 제어 흐름에 의거하여 메시지 수신, 메시지 디코드, 메시지 처리, 타스크 별도의 처리가 요구되면 해당 기능 수행하는 제어를 수행한다.The source task calls the Uipc_SendMsg (data, destinationAddress) function from the UIPC API library that can contain the message data along with the network address N_ADDR and the application ID APP_ID of the destination task to deliver the message to the destination task. Accordingly, the task loads the destination task's network address N_ADDR and application ID APP_ID and a message into the Uipc_SendMsg (data, destinationAddress) function, and the UIPC API 60 determines whether the destination address, that is, the network address N_ADDR is the network address of its card. do. If the network address, which is the destination address, is the network address of the magnetic card, the message delivery to the destination will be performed by the intraprocessor communication UIPC. If the network address of the magnetic card is not the network address, the message delivery to the destination will be performed by the interprocessor communication. communication) will be performed by UIPC. The UIPC API 60 uses the OIA API library provided by the OIA layer 54 of FIG. 3 if the network address N_ADDR included in the Uipc_SendMsg (data, destinationAddress) function is the network address of its card, that is, the internal process communication UIPC. Deliver the message directly to the message queue of the destination task in the card. In the case of the internal process communication UIPC, the protocol stack 70 is not used. The destination task that receives the message uses the Uipc_RcvLoop () function based on the basic common control flow of the common task architecture shown in FIGS. 5 and 6 to receive the message, decode the message, process the message, and process the task separately. Perform control to perform functions.

한편 목적지 주소인 네트워크 어드레스 N_ADDR이 자기 카드의 네트워크 어드레스가 아니면 즉, 외부프로세스통신 UIPC이면 UIPC API(60)는 외부 목적지를 찾는 라우팅을 위해 UIPC 프로토콜 스택(70)의 메시지 큐로 메시지를 전달한다. 보다 구체적으로 설명하면, UIPC 프로토콜 스택(70)의 전달 큐로 메시지를 전달한다. 전달 계층(76)에서는 전달 큐에 수신된 메시지에 대해서 전술한 바와 같은 전달계층 고유의 동작을 수행한 후 메시지를 처리한 후 네트워크 계층(74)의 네트워크 큐로 전달한다. 네트워크 계층(74)에서는 네트워크 큐에 수신된 메시지를 전술한 바와 같은 네트워크 계층 고유의 동작을 수행한 후 데이터 링크 계층(72)의 데이터링크 큐로 전달한다. 데이터 링크 계층(72)에서도 데이터링크 큐에 수신된 메시지를 전술한 바와 같은 데이터링크 계층 고유의 동작을 수행한 후 DIA계층(도 3의 46), 디바이스 드라이버(48)를 통해 목적지 카드의 DIA계층(도 3의 46), 디바이스 드라이버(48)로 전달을 하게 된다.If the network address N_ADDR, which is the destination address, is not the network address of the magnetic card, that is, the external process communication UIPC, the UIPC API 60 delivers a message to the message queue of the UIPC protocol stack 70 for routing to find an external destination. More specifically, the message is delivered to the delivery queue of the UIPC protocol stack 70. The forwarding layer 76 performs a transport layer-specific operation as described above with respect to the message received in the forwarding queue, processes the message, and delivers the message to the network queue of the network layer 74. The network layer 74 transmits the message received in the network queue to the data link queue of the data link layer 72 after performing the network layer-specific operation as described above. The data link layer 72 also performs a data link layer-specific operation as described above on the message received in the data link queue, and then the DIA layer of the destination card through the DIA layer (46 in FIG. 3) and the device driver 48. (46 in Fig. 3), the transfer is made to the device driver 48.

목적지 카드의 DIA계층(도 3의 46), 디바이스 드라이버(48)로 수신된 메시지는 프로토콜 계층(70)의 데이터링크 계층(72), 네트워크 계층(74), 전달계층(76)을 통해 목적지 타스크로 전달된다. 목적지 카드 및 목적지 타스크에 대해서는 네트워크 어드레스 N_ADDR 및 어플리케이션ID APP_ID를 이용해서 알 수 있다. 그에 따라 목적지 타스크는 UIPC API라이브러리에 의해서 제공되는 Uipc_RcvLoop() 함수를 이용해서 도 5 및 도 6에 도시된 공통 타스크 아키텍쳐의 기본적인 공통 제어 흐름에 의거하여 메시지 수신, 메시지 디코드, 메시지 처리, 타스크 별도의 처리가 요구되면 해당 기능 수행하는 제어를 수행한다.The message received by the DIA layer of the destination card (46 in FIG. 3) and the device driver 48 is transferred to the destination task through the data link layer 72, the network layer 74, and the transport layer 76 of the protocol layer 70. Is passed to. The destination card and the destination task can be known using the network address N_ADDR and the application ID APP_ID. Accordingly, the destination task uses the Uipc_RcvLoop () function provided by the UIPC API library to receive a message, decode a message, process a message, and separate a task based on the basic common control flow of the common task architecture shown in FIGS. 5 and 6. If processing is required, perform the control to perform the corresponding function.

하기 표 9는 UIPC API(60)로부터 타스크내에 호출되어 수행되는Uipc_SendMsg(data, destinationAddress) 함수에 대한 프로그램 일 예이다.Table 9 below is an example of a program for the Uipc_SendMsg (data, destinationAddress) function that is called and executed in a task from the UIPC API 60.

하기 표 10은 UIPC API(60)로부터 타스크내에 호출되어 수행되는 Uipc_RcvLoop() 함수에 대한 프로그램 일 예이다.Table 10 below is an example of a program for the Uipc_RcvLoop () function that is called and executed in a task from the UIPC API 60.

상술한 본 발명의 설명에서는 구체적인 실시 예에 관해 설명하였으나, 여러 가지 변형이 본 발명의 범위에서 벗어나지 않고 실시할 수 있다. 따라서 본 발명의 범위는 설명된 실시 예에 의하여 정할 것이 아니고 특허청구범위와 특허청구범위의 균등한 것에 의해 정해 져야 한다.In the above description of the present invention, specific embodiments have been described, but various modifications may be made without departing from the scope of the present invention. Therefore, the scope of the present invention should not be defined by the described embodiments, but should be determined by the equivalent of claims and claims.

상술한 바와 같이 본 발명은 UIPC가 공통 타스크 아키텍쳐라는 구조를 통해 모든 어플리케이션(프로세스)이 공통의 구조를 갖음으로써 개발의 용이함을 향상 시키고 개발기간의 단축을 보장한다. 또한 공통 소프트웨어 플랫폼이라는 수평 구성성분들과 수직 구성성분들의 조합을 통해 UIPC에서는 프로세스 통신에 있어 운영체제와 디바이스의 변경에 따른 작업을 없애게 해주는 장점이 있다.As described above, the present invention improves the ease of development and shortens the development period since all applications (processes) have a common structure through the structure that the UIPC is a common task architecture. In addition, through the combination of horizontal components and vertical components called common software platform, UIPC has the advantage of eliminating the task of changing the operating system and device in process communication.

Claims (17)

발신지로부터 목적지로 메시지를 전달하기 위한 통신방법에 있어서,In a communication method for transferring a message from a source to a destination, 운영체제 독립형 액세스(OIA)계층에 의해서, 통신장치의 운영체제(OS)에 독립적으로 액세스 가능한 운영체제 통합 인터페이스 기능을 제공하는 과정과,Providing an operating system integrated interface function independently accessible to an operating system (OS) of a communication device by an operating system independent access (OIA) layer, 디바이스 독립형 액세스(DIA)계층에 의해서, 상기 통신장치의 피지컬 디바이스에 독립적으로 액세스 가능한 디바이스 통합 인터페이스 기능을 제공하는 과정과,Providing, by a device independent access (DIA) layer, a device integration interface function independently accessible to a physical device of the communication apparatus; 통합형 프로세스간 통신(UIPC)계층에 의해서, 상기 발신지 타스크에 의해 제공되는 목적지 정보와 타스크의 기본적인 공통 제어 흐름을 가지는 공통타스크 아키텍처를 이용하여 상기 발신지로부터의 메시지를 상기 운영체제 독립형 액세스 계층 및 상기 디바이스 독립형 액세스 계층중 적어도 하나를 통해 상기 목적지로 전송하는 하는 과정으로 이루어짐을 특징으로 하는 프로세스간 통신방법.Integrate interprocess communication (UIPC) layer to send messages from the source to the operating system independent access layer and the device independent using a common task architecture that has a common common control flow of destination information and tasks provided by the source task. And transmitting to the destination via at least one of the access layers. 제1항에 있어서, 상기 통합형 프로세스간통신 계층은,The method of claim 1, wherein the integrated inter-process communication layer, 상기 타스크가 UIPC 기능을 사용할 수 있도록 인터페이스를 제공하며, 상기 목적지 정보에 근거하여 상기 목적지 정보에 의거하여 외부 및 내부 프로세스통신 경로를 결정하는 UIPC 어플리케이션 프로그램 인터페이스(API)와,A UIPC application program interface (API) for providing an interface for the task to use a UIPC function, and determining external and internal process communication paths based on the destination information based on the destination information; 상기 UIPC API에 의해 경로 결정된 메시지중 외부 프로세스통신을 위해 유니트간 라우팅을 수행하는 UIPC 프로토콜 스택으로 구성됨을 특징으로 하는 프로세스간 통신방법.And a UIPC protocol stack configured to perform inter-unit routing for external process communication among messages routed by the UIPC API. 제1항에 있어서, 상기 UIPC 프로토콜 스택은,The method of claim 1, wherein the UIPC protocol stack, 엔드포인트간에 데이터 링크를 연결하고 링크간 무에러 데이터 전송을 책임지는 데이터 링크 계층과,A data link layer that connects data links between endpoints and is responsible for transferring error-free data between links; 외부프로세스통신시 타스크들간의 메시지 라우팅을 책임지는 네트워크 계층과,A network layer that is responsible for routing messages between tasks in external process communication; 타스크들간의 단 대 단 통신을 책임지는 전달계층으로 이루어짐을 특징으로 하는 프로세스간 통신방법.An interprocess communication method comprising a transport layer that is responsible for end-to-end communication between tasks. 제1항에 있어서, 상기 목적지 정보는, 통신하고자 하는 해당 타스크를 구분하기 위한 어플리케이션 인식자와, 상기 해당 타스크의 물리적 위치를 나타내는 네트워크 어드레스로 구성함을 특징으로 하는 통신방법.The communication method as claimed in claim 1, wherein the destination information comprises an application identifier for identifying the task to be communicated with and a network address indicating a physical location of the task. 제4항에 있어서, 상기 네트워크 어드레스는 랙-셀프-슬롯-포트(Rack-Shelf-Slot-Port)의 정보로 구성되어 있음을 특징으로 하는 통신방법.The method of claim 4, wherein the network address comprises information of a rack-self-slot-port. 제4항에 있어서, 상기 UIPC API는 어떠한 타스크에서도 이용될 수 있는 공유형 라이브러리임을 특징으로 하는 프로세스간 통신방법.5. The method of claim 4, wherein the UIPC API is a shared library that can be used in any task. 제1항에 있어서, 상기 공통 타스크 아키텍처의 기본적인 공통 제어 흐름은, 메시지 수신, 메시지 디코드, 메시지 처리, 타스크 별도의 처리 요구시 기타 특정한 해당 기능을 수행 작업으로 이루어짐을 특징으로 하는 프로세스간 통신방법.The inter-process communication method of claim 1, wherein the basic common control flow of the common task architecture is a task of performing a message reception, a message decode, a message processing, or another specific corresponding function when a task is processed separately. 발신지로부터 목적지로 메시지를 전달하기 위한 통신 장치에 있어서,A communication device for transferring a message from a source to a destination, 통신장치의 운영체제에 독립적으로 액세스 가능한 운영체제 통합 인터페이스 기능을 제공하는 운영체제 독립형 액세스(OIA)계층부와,An operating system independent access (OIA) layer unit providing an operating system integrated interface function independently accessible to an operating system of a communication device; 상기 통신장치의 피지컬 디바이스에 독립적으로 액세스 가능한 디바이스 통합 인터페이스 기능을 제공하는 디바이스 독립형 액세스(DIA)계층부와,A device independent access (DIA) layer unit for providing a device integration interface function independently accessible to a physical device of the communication apparatus; 상기 발신지 타스크에 의해 제공되는 목적지 정보와 타스크의 기본적인 공통 제어 흐름을 가지는 공통타스크 아키텍처를 이용하여 상기 발신지로부터의 메시지를 상기 운영체제 독립형 액세스 계층 및 상기 디바이스 독립형 액세스 계층중 적어도 하나를 통해 상기 목적지로 전송하는 통합형 프로세스간 통신(UIPC)계층부로 구성함을 특징으로 하는 프로세스간 통신 장치.Send a message from the source to the destination through at least one of the operating system independent access layer and the device independent access layer using a common task architecture having destination information provided by the source task and a basic common control flow of tasks. An inter-process communication device comprising: an integrated inter-process communication (UIPC) layer unit. 제8항에 있어서, 상기 통합형 프로세스간통신 계층부는,The method of claim 8, wherein the integrated inter-process communication layer, 상기 타스크가 UIPC 기능을 사용할 수 있도록 인터페이스를 제공하며, 상기 목적지 정보에 근거하여 상기 목적지 정보에 의거하여 외부 및 내부 프로세스통신 경로를 결정하는 UIPC 어플리케이션 프로그램 인터페이스(API)와,A UIPC application program interface (API) for providing an interface for the task to use a UIPC function, and determining external and internal process communication paths based on the destination information based on the destination information; 상기 UIPC API에 의해 경로 결정된 메시지중 외부 프로세스통신을 위해 유니트간 라우팅을 수행하는 UIPC 프로토콜 스택으로 구성됨을 특징으로 하는 프로세스간 통신 장치.And a UIPC protocol stack configured to perform inter-unit routing for external process communication among messages routed by the UIPC API. 제8항에 있어서, 상기 UIPC 프로토콜 스택은,The method of claim 8, wherein the UIPC protocol stack, 엔드포인트간에 데이터 링크를 연결하고 링크간 무에러 데이터 전송을 책임지는 데이터 링크 계층과,A data link layer that connects data links between endpoints and is responsible for transferring error-free data between links; 외부프로세스통신시 타스크들간의 메시지 라우팅을 책임지는 네트워크 계층과,A network layer that is responsible for routing messages between tasks in external process communication; 타스크들간의 단 대 단 통신을 책임지는 전달계층으로 구성함을 특징으로 하는 프로세스간 통신 장치.An inter-process communication device comprising a transport layer that is responsible for end-to-end communication between tasks. 제8항에 있어서, 상기 목적지 정보는, 통신하고자 하는 해당 타스크를 구분하기 위한 어플리케이션 인식자와, 상기 해당 타스크의 물리적 위치를 나타내는 네트워크 어드레스로 구성함을 특징으로 하는 통신장치.9. The communication apparatus of claim 8, wherein the destination information comprises an application identifier for identifying the task to be communicated with, and a network address indicating a physical location of the task. 제11항에 있어서, 상기 네트워크 어드레스는 랙-셀프-슬롯-포트(Rack-Shelf-Slot-Port)의 정보로 구성되어 있음을 특징으로 하는 통신장치.12. The communication device of claim 11, wherein the network address comprises information of a rack-self-slot-port. 제9항에 있어서, 상기 UIPC API는 어떠한 타스크에서도 이용될 수 있는 공유형 라이브러리임을 특징으로 하는 프로세스간 통신장치.10. The interprocess communication device of claim 9, wherein the UIPC API is a shared library that can be used in any task. 제8항에 있어서, 상기 공통 타스크 아키텍처의 기본적인 공통 제어 흐름은, 메시지 수신, 메시지 디코드, 메시지 처리, 타스크 별도의 처리 요구시 기타 특정한 해당 기능을 수행 작업으로 이루어짐을 특징으로 하는 프로세스간 통신 장치.The inter-process communication apparatus of claim 8, wherein the basic common control flow of the common task architecture is a task of performing a message reception, a message decode, a message processing, or another specific corresponding function when a task is processed separately. 발신지로부터 목적지로 메시지를 전달하기 위한 통신방법에 있어서,In a communication method for transferring a message from a source to a destination, 타스크의 기본적인 공통 제어흐름을 가지는 공통 타스크 아키텍쳐를 통합형 프로세스간통신(UIPC)을 위한 인터페이스로서 제공하는 과정과,Providing a common task architecture with a basic common control flow of tasks as an interface for integrated interprocess communication (UIPC), 상기 공통 타스크 아키텍쳐를 이용하여 발신지 타스크가 메시지와 목적지 정보를 제공하면, 상기 목적지 정보에 근거하여 카드내의 내부프로세스통신 메시지인지 카드간의 외부프로세스통신메시지인지를 판단하는 과정과,If the source task provides the message and the destination information using the common task architecture, determining whether the internal process communication message in the card or the external process communication message between the cards is based on the destination information; 상기 카드간의 외부프로세스통신 메시지이면 라우팅을 위해 UIPC 프로토콜 스택의 큐로 메시지를 송신하는 과정과,Transmitting a message to a queue of a UIPC protocol stack for routing if the message is an external process communication message between the cards; 상기 내부프로세스통신이면 운영체제 독립형 액세스(OIA)계층에서 제공하는 어플리케이션 프로그램 인터페이스(API) 라이브러리를 통해 카드내의 해당 타스크의 메시지 큐로 메시지를 전달하는 과정으로 이루어짐을 특징으로 하는 프로세스간 통신방법.And wherein the internal process communication is a process of delivering a message to a message queue of a corresponding task in a card through an application program interface (API) library provided by an operating system independent access (OIA) layer. 제15항에 있어서, 상기 UIPC 프로토콜 스택은,The method of claim 15, wherein the UIPC protocol stack, 엔드포인트간에 데이터 링크를 연결하고 링크간 무에러 데이터 전송을 책임지는 데이터 링크 계층과,A data link layer that connects data links between endpoints and is responsible for transferring error-free data between links; 외부프로세스통신시 타스크들간의 메시지 라우팅을 책임지는 네트워크 계층과,A network layer that is responsible for routing messages between tasks in external process communication; 타스크들간의 단 대 단 통신을 책임지는 전달계층으로 구성함을 특징으로 하는 프로세스간 통신방법.An interprocess communication method comprising a transport layer that is responsible for end-to-end communication between tasks. 발신지로부터 목적지로 메시지를 전달하기 위한 통신 장치에 있어서,A communication device for transferring a message from a source to a destination, 상기 장치의 운영체제와는 독립적으로 상기 장치 내에서 내부적인 통신을 처리하는 운영체제 부분과,An operating system portion that processes internal communications within the device independently of the operating system of the device, 상기 장치에서의 하드웨어 디바이스들과는 독립적으로 상기 장치에 또는 그로부터 외부적인 통신을 처리하는 하드웨어 부분을 포함함을 특징으로 하는 프로세스간통신 장치.And a hardware portion for handling communications external to or from the apparatus, independent of hardware devices in the apparatus.
KR10-2002-0041671A 2001-09-04 2002-07-16 Interprocess communication method and apparatus KR100442688B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US10/233,422 US7263701B2 (en) 2001-09-04 2002-09-04 Interprocess communication method and apparatus

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US31630101P 2001-09-04 2001-09-04
US60/316,301 2001-09-04
US10/035,187 US20030115358A1 (en) 2001-09-04 2002-01-04 Unified interprocess communication
US10/035,187 2002-01-04
KR1020020012068 2002-03-07
KR20020012068 2002-03-07

Publications (2)

Publication Number Publication Date
KR20030020819A KR20030020819A (en) 2003-03-10
KR100442688B1 true KR100442688B1 (en) 2004-08-02

Family

ID=27738948

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-0041671A KR100442688B1 (en) 2001-09-04 2002-07-16 Interprocess communication method and apparatus

Country Status (1)

Country Link
KR (1) KR100442688B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101593993B1 (en) * 2009-08-10 2016-02-26 삼성전자주식회사 Apparatus and method of data communication among web applications

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5608873A (en) * 1993-08-30 1997-03-04 Advanced Micro Devices, Inc. Device and method for interprocessor communication using mailboxes owned by processor devices
KR20000012895A (en) * 1998-08-03 2000-03-06 윤종용 Inter processor communication(ipc) method in multiple processor system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5608873A (en) * 1993-08-30 1997-03-04 Advanced Micro Devices, Inc. Device and method for interprocessor communication using mailboxes owned by processor devices
KR20000012895A (en) * 1998-08-03 2000-03-06 윤종용 Inter processor communication(ipc) method in multiple processor system

Also Published As

Publication number Publication date
KR20030020819A (en) 2003-03-10

Similar Documents

Publication Publication Date Title
US20030115358A1 (en) Unified interprocess communication
US7263701B2 (en) Interprocess communication method and apparatus
US7839848B2 (en) Method, device and system for message transmission
US5636371A (en) Virtual network mechanism to access well known port application programs running on a single host system
US7447728B1 (en) Method and apparatus supporting network communications
US7499451B2 (en) Computer node, cluster system, cluster managing method, and cluster managing program
EP0381365A2 (en) A system and method for interconnecting applications across different networks of data processing systems
KR19980701797A (en) Telecommunication switch with universal application program interface for standardized interactive call processing communication
WO1997001944A1 (en) A virtual local area network for multi-emulators in an open system environment
BG100473A (en) Telecommunication switchgear with programmable mains protocols and communication services
JPH11341070A (en) Device and method for interfacing resources to electric communication exchange system
KR20060039433A (en) An interprocessor communication protocol with smart streaming port
US6977924B1 (en) Control and distribution protocol for a portable router framework
JP4981444B2 (en) Communication protocol between processors
US20030065741A1 (en) Concurrent bidirectional network communication utilizing send and receive threads
US6711621B1 (en) System and method of implementing netware core protocol within a sockets model
KR100442688B1 (en) Interprocess communication method and apparatus
US6920143B1 (en) Computer telephony system using multiple hardware platforms to provide telephony services
KR100451721B1 (en) Method for Matching Inter-processor Communication in Mobile Communication System
CN1326066C (en) Communication method and its device during process
US8046419B2 (en) Method of processing open asynchronous application service event and open web service gateway implementing the same
EP1296239A2 (en) Interprocess communication method and apparatus
US7200209B1 (en) System and method for unifying multiple connection ports in a network
KR100209360B1 (en) B-isdn interfacing apparatus providing intelligent device driver
US7369547B1 (en) Group restart for scalable switched ATM networks

Legal Events

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

Payment date: 20080604

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee