KR101208679B1 - 소켓의 공유를 위한 네트워크 기기 및 그의 소켓 공유 방법 - Google Patents

소켓의 공유를 위한 네트워크 기기 및 그의 소켓 공유 방법 Download PDF

Info

Publication number
KR101208679B1
KR101208679B1 KR1020060074582A KR20060074582A KR101208679B1 KR 101208679 B1 KR101208679 B1 KR 101208679B1 KR 1020060074582 A KR1020060074582 A KR 1020060074582A KR 20060074582 A KR20060074582 A KR 20060074582A KR 101208679 B1 KR101208679 B1 KR 101208679B1
Authority
KR
South Korea
Prior art keywords
socket
task
sharing
generated
requesting
Prior art date
Application number
KR1020060074582A
Other languages
English (en)
Other versions
KR20080013279A (ko
Inventor
박현욱
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020060074582A priority Critical patent/KR101208679B1/ko
Publication of KR20080013279A publication Critical patent/KR20080013279A/ko
Application granted granted Critical
Publication of KR101208679B1 publication Critical patent/KR101208679B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • 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
    • 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)

Abstract

소켓의 공유를 위한 네트워크 기기 및 그의 소켓 공유 방법이 개시된다. 본 발명의 바람직한 실시예에 따른 소켓의 공유를 위한 네트워크 기기는 복수의 태스크(Task)들의 통신에 사용되는 소켓(Socket)을 생성하는 소켓 생성부, 복수의 태스크 중 적어도 어느 하나로부터 요청된 소켓의 생성을 소켓 생성부에 요청하고, 소켓 생성부에 의해 생성된 소켓에 대한 가상소켓을 생성하여 소켓의 생성을 요청한 태스크에 제공하는 소켓 관리부, 및 소켓 생성부에 의해 생성된 소켓을 공유하는 범용 태스크를 포함한다. 이에 의해, 네트워크 기기에 내장형 오픈 아키텍쳐의 탑재를 용이하게 할 수 있다.
태스크, 범용, 소켓, 가상소켓, 공유

Description

소켓의 공유를 위한 네트워크 기기 및 그의 소켓 공유 방법 {Network device for sharing socket and sharing method thereof}
도 1은 일반적인 네트워크 기기의 소프트웨어 구성도,
도 2는 미들웨어를 탑재한 종래의 네트워크 기기의 소프트웨어 구성도,
도 3은 본 발명의 일 실시예에 따른 네트워크 기기의 소프트웨어 구성도,
도 4는 도 3에 도시한 범용 소켓 제공부의 블럭도,
도 5는 도 3에 도시한 네트워크 기기에서의 소켓 생성 과정을 설명하기 위한 흐름도,
도 6은 도 3에 도시한 네트워크 기기에서의 소켓 사용 과정을 설명하기 위한 흐름도,
도 7은 본 발명의 다른 실시예에 따른 네트워크 기기의 소프트웨어 구성도, 그리고,
도 8은 본 발명의 바람직한 실시예에 따른 네트워크 기기의 소켓 공유 방법을 설명하기 위한 흐름도이다.
* 도면의 주요부분에 대한 부호의 설명 *
100 : 미들웨어 계층 120 : 범용 소켓 제공부
122 : 소켓 관리부 124 : 범용 태스크
126 : 소켓정보 데이터베이스 200 : OS 계층
300 : 하드웨어 계층
본 발명은 소켓의 공유를 위한 네트워크 기기 및 그의 소켓 공유 방법에 관한 것으로, 더욱 상세하게는 멀티태스킹 시스템에서 소켓 핸들링을 도울 수 있는 소켓의 공유를 위한 네트워크 기기 및 그의 소켓 공유 방법에 관한 것이다.
최근, 프린터와 같은 네트워크 기기들에 내장형 오픈 아키텍처(Embedded open architecture)를 탑재하는 경우가 증가하고 있는 추세이다. 예를 들어, IBM&CCP사의 J스크라이브(JScribe), 캐논사의 밉(Meap), 및 리코사의 SDK/J(Software Development Kit/J) 등이 있다.
도 1은 일반적인 네트워크 기기의 소프트웨어 구성도이다.
도 1을 참조하여 일반적인 네트워크 기기의 소프트웨어를 살펴보면, 어플리케이션 계층(Application layer)(10), OS 계층(OS layer)(20), 및 하드웨어 계층(Hardware layer)(30)으로 구성된다.
어플리케이션 계층(10)은 복수의 태스크 #1 내지 #n(12 내지 16)을 포함하고, OS 계층(20)은 소켓 API(22), 및 OS커널(24)을 포함하며, 하드웨어 계층(30)은 기기 드라이버(32)를 포함한다.
어플리케이션 계층(10)의 복수의 태스크 #1 내지 #n(12 내지 16)는 각 목적 에 맞는 특정 작업을 수행한다. 이때, 복수의 태스크 #1 내지 #n(12 내지 16) 중 네트워크를 통해 패킷을 송수신하고자 하는 태스크는 OS커널(24)에 소켓 생성을 요청하고, OS커널(24)은 그 응답으로 생성한 소켓의 식별자를 제공한다.
그러나, 소켓을 사용할 수 있는 범위는 OS에 따라 상이하다. 예를 들어, VxWorks와 같은 OS에서는 모든 태스크 즉, 복수의 태스크 #1 내지 #n(12 내지 16)가 동일하게 소켓을 사용할 수 있으나, pSOS와 같은 OS에서는 소켓을 생성한 태스크에서만 해당 소켓을 사용할 수 있다.
도 2는 미들웨어를 탑재한 종래의 네트워크 기기의 소프트웨어 구성도이다.
도 1의 일반적인 네트워크 기기의 소프트웨어에서, 미들웨어 계층(40)에 가상머신엔진(Virtual machine engine) 혹은 소프트웨어 라이브러리(Software library)(42)를 탑재하였을 경우를 도 2에 예시하였다. 도시하지는 않았으나, 복수의 태스크 #1 내지 #n(12 내지 16)은 가상머신엔진 혹은 소프트웨어 라이브러리(42)에 포함될 수 있다.
통상, 가상머신엔진 혹은 소프트웨어 라이브러리(42)는 모든 태스크에서 범용으로 소켓을 사용 가능하도록 한 환경에서 개발된다. 그러나, OS 커널(24)이 소켓을 생성한 태스크에서만 소켓을 사용 가능하도록 하는 환경일 경우에는 가상머신엔진 혹은 소프트웨어 라이브러리(42)는 소켓을 제대로 핸들링할 수 없다.
따라서, 본 발명의 목적은 소켓을 생성한 태스크에만 사용이 국한되는 시스템에 모든 태스크가 사용할 수 있도록 디자인된 미들웨어가 탑재될 경우, 특정 태 스크에서 생성한 소켓을 다른 태스크에서 공유하여 사용할 수 있는 소켓의 공유를 위한 네트워크 기기 및 그의 소켓 공유 방법을 제공하고자 하는데 있다.
상기 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따른 소켓의 공유를 위한 네트워크 기기는 복수의 태스크(Task)들의 통신에 사용되는 소켓(Socket)을 생성하는 소켓 생성부, 복수의 태스크 중 적어도 어느 하나로부터 요청된 소켓의 생성을 소켓 생성부에 요청하고, 소켓 생성부에 의해 생성된 소켓에 대한 가상소켓을 생성하여 소켓의 생성을 요청한 태스크에 제공하는 소켓 관리부, 및 소켓 생성부에 의해 생성된 소켓을 공유하는 범용 태스크를 포함한다.
바람직하게, 소켓 생성부는 OS 커널(Operating System Kernel)일 수 있다.
또한 바람직하게, 소켓 관리부는 생성된 소켓의 정보를 생성된 가상소켓과 매칭하여 소켓정보 데이터베이스에 저장할 수 있다.
또한 바람직하게, 소켓정보 데이터베이스는 가상소켓의 식별자, 생성된 소켓의 식별자, 소켓의 생성을 요청한 태스크의 ID, 생성된 소켓의 상태, 태스크별 공유된 가상소켓 리스트를 저장할 수 있다.
또한 바람직하게, 소켓 관리부는 복수의 태스크들 중 어느 하나로부터 기생성된 소켓의 사용이 요청되면, 소켓정보 데이터베이스를 통해 소켓의 사용을 요청한 태스크의 사용 가능 여부를 판단하고, 소켓의 사용을 요청한 태스크가 해당 소켓의 사용이 불가능한 경우에는 범용 태스크에 소켓의 공유를 요청할 수 있다.
또한 바람직하게, 범용 태스크는 소켓 관리부로부터 소켓의 공유가 요청되 면, 소켓 생성부의 허용에 의해 해당 소켓을 소켓의 사용을 요청한 태스크에서 사용할 수 있도록 공유할 수 있다.
한편, 본 발명의 바람직한 실시예에 따른 네트워크 기기의 소켓 공유 방법은 복수의 태스크 중 적어도 어느 하나가 소켓의 생성을 요청하는 단계, 요청된 소켓을 생성하는 단계, 생성된 소켓을 범용 태스크에 공유하는 단계 및 생성된 소켓에 대한 가상소켓을 생성하여 소켓의 생성을 요청한 태스크에 제공하는 단계를 포함한다.
바람직하게, 생성된 소켓의 정보를 생성된 가상소켓과 매칭하여 소켓정보 데이터베이스에 저장하는 단계를 더 포함할 수 있다.
또한 바람직하게, 복수의 태스크들 중 어느 하나로부터 기생성된 소켓의 사용이 요청되면, 소켓정보 데이터베이스를 통해 소켓의 사용을 요청한 태스크의 사용 가능 여부를 판단하는 단계, 및 소켓의 사용을 요청한 태스크가 해당 소켓의 사용이 불가능한 경우에는 범용 태스크에 소켓의 공유를 요청하는 단계를 더 포함할 수 있다.
또한 바람직하게, 소켓의 공유가 요청되면, 해당 소켓을 소켓의 사용을 요청한 태스크에서 사용할 수 있도록 공유를 허용하는 단계를 더 포함할 수 있다.
이하에서는 도면을 참조하여 본 발명을 보다 상세하게 설명한다.
도 3은 본 발명의 일 실시예에 따른 네트워크 기기의 소프트웨어 구성도이다.
도 3을 참조하면, 본 발명의 일 실시예에 따른 네트워크 기기의 소프트웨어 는 미들웨어 계층(Middleware layer)(100), OS 계층(200), 하드웨어 계층(300)으로 구성된다.
미들웨어 계층(100)에는 가상 머신 엔진(Virtual Machine Engine)(110) 혹은 소프트웨어 라이브러리(Software library)가 탑재된다. 통상, 가상 머신 엔진(110) 혹은 소프트웨어 라이브러리는 OS(Operating System : 운영체제)에서 제공하는 모든 소켓을 사용할 수 있도록 디자인된다.
가상 머신 엔진(110)에는 복수의 태스크들(112 내지 116)이 탑재된다. 복수의 태스크들(112 내지 116)은 태스크 10(112), 태스크 12(114), 태스크 n(116)을 포함하는 것을 예시하였으며, 이들은 각각 고유한 ID를 갖는다.
복수의 태스크들(112 내지 116)은 범용 소켓 제공부(120)에 통신에 필요한 소켓의 생성을 요청하거나 혹은 기생성된 소켓에 대하여 사용을 요청할 수 있다.
본 실시예에서는 복수의 태스크들(112 내지 116)이 가상 머신 엔진(110) 내에 탑재된 것을 예시하였으나, 이는 반드시 여기에 한정되는 것은 아니다. 예를 들어, 복수의 태스크들(112 내지 116)은 미들웨어 계층(100) 내에서 가상 머신 엔진(110)의 상위 계층에 탑재될 수도 있다.
미들웨어 계층(100) 내에서 가상 머신 엔진(110)의 하위 계층에 범용 소켓 제공부(120)가 탑재된다. 범용 소켓 제공부(120)는 복수의 태스크들(112 내지 116) 중 어느 하나로부터 요청되는 소켓의 생성을 후술하는 소켓 생성부(220)에 요청하고, 소켓 생성부(220)에서 생성한 소켓에 대한 가상소켓을 생성하여 특정 태스크에 제공한다.
복수의 태스크들(112 내지 116)의 통신에 사용되는 실제 소켓은 소켓 생성부(220)에서 보유하고 있으며, 범용 소켓 제공부(120)는 소켓 생성부(220)와 가상 머신 엔진(110)간에 소켓 공유를 중재하기 위한 것으로 실제 소켓에 대한 가상소켓을 제공한다. 범용 소켓 제공부(120)에 관하여는 후술하는 도 4에서 보다 상세히 설명한다.
OS 계층(200)에는 소켓 API(Application Program Interface)(210), 및 소켓 생성부(220)가 탑재된다.
소켓 API(210)는 범용 소켓 제공부(120) 및 소켓 생성부(220)간의 인터페이스를 지원한다. 통상, OS와 어플리케이션은 상호간에 전달되는 인수로 정의되는 API를 통해 통신을 수행한다.
소켓 생성부(220)는 복수의 태스크들(112 내지 116)의 통신에 사용되는 소켓을 생성한다. 소켓 생성부(220)는 통상의 OS 커널(Kernel)인 것이 바람직하다. OS 커널은 OS의 다른 모든 부분에 여러 가지 서비스를 제공하는 OS의 가장 핵심적인 부분이다.
소켓 생성부(220)는 범용 소켓 제공부(120)로부터 소켓의 생성이 요청되면, 복수의 태스크들(112 내지 116) 중 소켓의 생성을 요청한 태스크에서 사용 가능한 소켓을 생성한다.
소켓 생성부(220)는 범용 소켓 제공부(120)로부터 기생성된 소켓에 대한 공유가 요청되면, 해당 소켓을 복수의 태스크들(112 내지 116) 중 소켓의 사용을 요청한 태스크에서 사용할 수 있도록 공유를 허용한다.
하드웨어 계층(300)에는 기기 드라이버(310)가 탑재된다. 기기 드라이버(310)는 프린터, 스캐너, 복합기 등의 주변기기를 제어하는 통상의 드라이버 프로그램을 포함한다.
도 3에 도시한 네트워크 기기는 네트워크를 통한 통신이 가능한 기기 예를 들어, 컴퓨터, 화상형성장치, 및 복합장치일 수 있다.
도 4는 도 3에 도시한 범용 소켓 제공부의 블럭도이다.
도 4를 참조하면, 범용 소켓 제공부(120)는 소켓 관리부(122), 범용 태스크(124), 및 소켓정보 데이터베이스(126)를 포함한다. 바람직하게, 범용 소켓 제공부(120)는 소켓 관리부(122), 범용 태스크(124), 및 소켓정보 데이터베이스(126)를 포함하는 하나의 펌웨어로 구현될 수 있다.
소켓 관리부(122)는 복수의 태스크들(112 내지 116) 중 적어도 어느 하나로부터 소켓의 생성이 요청되면, 소켓 생성부(220)로 소켓의 생성을 요청한 태스크에서 사용 가능한 소켓의 생성을 요청한다. 소켓 관리부(122)의 소켓 생성 요청은 소켓 API(210)를 통해 소켓 생성부(220)에 전달된다.
소켓 생성부(220)에서 소켓이 생성되면, 소켓 관리부(122)는 소켓 API(210)를 통해 생성된 소켓의 정보를 제공받는다. 소켓 관리부(122)는 소켓의 정보를 이용하여 생성된 소켓에 대한 가상소켓을 생성하고, 가상소켓을 소켓의 생성을 요청한 태스크에 제공한다. 이때, 소켓 관리부(122)에서 소켓의 생성을 요청한 태스크에 실제로 제공하는 것은 가상소켓의 식별자(descriptor)이다.
소켓 관리부(122)는 소켓 생성부(220)로부터 제공받은 소켓의 정보를 소켓정 보 데이터베이스(126)에 저장하여 관리한다. 이때, 소켓정보 데이터베이스(126)에 기저장되어 있는 다른 소켓에 대한 가상소켓의 식별자와 중복되지 않도록 가상소켓의 식별자가 생성된다.
소켓 관리부(122)는 복수의 태스크들(112 내지 116) 중 어느 하나로부터 기생성된 소켓의 사용이 요청되면, 소켓정보 데이터베이스(126)를 검색하여 소켓의 사용을 요청한 태스크가 해당 소켓을 사용 가능한지 여부를 판단할 수 있다.
여기서, 소켓 관리부(122)는 소켓의 사용을 요청한 태스크가 해당 소켓을 사용 가능한 것으로 판단된 경우에는 기생성된 가상소켓의 식별자를 제공한다. 만약, 소켓 관리부(122)는 소켓의 사용을 요청한 태스크가 해당 소켓을 사용 불가능한 것으로 판단된 경우에는 이미 소켓을 공유하고 있는 범용 태스크(124)에 해당 소켓의 공유를 요청한다.
범용 태스크(124)는 소켓 생성부(220)에 의해 생성된 모든 소켓을 공유한다. 범용 태스크(124)에서 소켓 생성부(220)의 공유 허용에 의해 모든 소켓을 공유하고 있음에 따라, 복수의 태스크들(112 내지 116) 중 소켓을 실제로 생성하지 않은 다른 태스크도 해당 소켓을 사용할 수 있다. 범용 태스크(124)는 가상 머신 엔진(110)에 탑재되어 있는 복수의 태스크들(112 내지 116)과 마찬가지로 고유 ID를 갖는다.
소켓정보 데이터베이스(126)는 소켓 관리부(122) 및 범용 태스크(124)의 제어에 의해, 소켓 생성부(220)로부터 제공받은 소켓의 정보를 소켓 관리부(122)에서 생성한 가상소켓과 매칭하여 저장한다.
즉, 소켓정보 데이터베이스(126)는 가상소켓의 식별자, 실제 소켓의 식별자, 소켓의 생성을 요청한 태스크의 ID, 실제 소켓의 상태, 태스크별로 공유된 가상소켓의 리스트를 저장할 수 있다. 이를 하기의 표 1에 예시하였다.
가상소켓
식별자
유효 비트
실제 소켓
식별자
태스크 ID 소켓 상태 공유된 소켓
리스트
1 1 1 10 오픈 2,3
2 1 2 11 오픈 -
3 1 1 12 오픈 -
표 1을 참조하면, 태스크 10(112)이 요청한 소켓에 대하여 소켓 관리부(122)는 가상소켓 식별자 '1'을 생성하였고, 태스크 11이 요청한 소켓에 대하여 소켓 관리부(122)는 가상소켓 식별자 '2"를 생성하였으며, 태스크 12(114)가 요청한 소켓에 대하여 소켓 관리부(122)는 가상소켓 식별자 '3'을 생성하였다. 이와 같이, 가상소켓 식별자는 서로 중복되지 않도록 생성된다. 여기서, 태스크 11은 범용 소켓 제공부(120) 내의 범용 태스크(124)이다.
또한, 태스크 10(112)에 의해 요청되어 생성된 소켓은 태스크 11 및 태스크 12(114)에서도 사용할 수 있도록 소켓 생성부(220)에 의해 공유가 허용되어 있는 상태이다.
이와 같이, 소켓 관리부(122)는 복수의 태스크들(112 내지 116)로부터 요청된 소켓의 생성 및 소켓의 사용에 대하여, 소켓정보 데이터베이스(126)에 저장된 표 1과 같은 테이블을 참조하여 가상소켓 식별자가 중복되지 않도록 하여야 한다.
도 5는 도 3에 도시한 네트워크 기기에서의 소켓 생성 과정을 설명하기 위한 흐름도이다.
여기에서는 도 3 내지 도 5를 참조하여, 태스크 10(112)이 소켓의 생성을 요청하고자 하는 경우를 예로 들어 본 발명의 바람직한 실시예에 따른 네트워크 기기의 소켓 생성 과정을 설명한다.
태스크 10(112)은 소켓 관리부(122)를 콜(call)하여 소켓의 생성을 요청한다(S401). 태스크 10(112)으로터 소켓의 생성을 요청받은 소켓 관리부(122)는 소켓 생성부(220)에 태스크 10(112)에서 사용할 소켓의 생성을 요청한다(S403).
소켓 생성부(220)는 소켓 관리부(122)로부터의 소켓 생성 요청에 응하여 소켓을 생성하고, 생성된 소켓의 정보를 소켓 관리부(122)에 제공한다. 이때, 소켓 생성부(220) 및 소켓 관리부(122)는 소켓 API(210)를 통해 신호를 송수신한다(S405).
소켓 생성부(220)로부터 새롭게 생성된 소켓의 정보를 제공받은 소켓 관리부(122)는 소켓정보 데이터베이스(126)에 소켓의 정보를 표 1과 같은 형태의 테이블에 등록한다(S407).
소켓 관리부(122)는 소켓정보 데이터베이스(126)에 기등록되어 있는 소켓의 정보를 이용하여, 기등록되어 있는 소켓들과 중복되지 않도록 새롭게 생성된 소켓에 대한 가상소켓 식별자를 생성한다(S409).
소켓 관리부(122)는 소켓 생성부(220)를 콜하여 새롭게 생성된 소켓에 대하여 범용 태스크(124)의 공유를 요청한다. 이때, 소켓 관리부(122)는 소켓 공유 요청 신호에 S405 단계에서 제공받은 소켓의 정보, 및 범용 태스크(124)의 태스크 ID를 함께 전달한다(S411).
소켓 생성부(220)는 소켓 관리부(122)로부터 소켓의 공유가 요청되면, 범용 태스크(124)에 대하여 소켓의 공유를 허용하여 그 결과를 소켓 관리부(122)에 통지한다(S413).
소켓 생성부(220)에 의해 소켓이 공유되면, 소켓 관리부(122)는 공유된 소켓을 소켓정보 데이터베이스(126)에 등록한다. 이에 의해, 표 1에서 '공유된 소켓 리스트' 칼럼과 같은 정보가 등록된다(S415).
소켓 생성부(220)는 태스크 10(112)에 가상소켓을 제공하기 위하여, 소켓정보 데이터베이스(126)로부터 가상소켓 식별자를 독출하고(S417), 가상소켓 식별자를 태스크 10(112)에 제공한다. 태스크 10(112)은 가상소켓을 이용하여 패킷을 전송할 수 있다(S419).
도 6은 도 3에 도시한 네트워크 기기에서의 소켓 사용 과정을 설명하기 위한 흐름도이다.
여기에서는 도 1 내지 도 6을 참조하여, 도 5의 과정을 통해 태스크 10(112)의 요청에 의해 생성된 소켓을 태스크 12(114)에서 사용하고자 하는 경우를 예로 들어, 본 발명의 바람직한 실시예에 따른 네트워크 기기의 소켓 사용 과정을 설명한다.
태스크 12(114)에서 기생성되어 있는 소켓 즉, 도 5에서 태스크 10(112)의 요청에 의해 생성된 소켓을 사용하기 위해 소켓 관리부(122)를 콜하여 소켓의 사용을 요청한다(S501).
소켓 관리부(122)는 소켓정보 데이터베이스(126)에 태스크 12(114)의 소켓 사용 가능 여부를 문의한다. 즉, 소켓 관리부(122)는 소켓정보 데이터베이스(126)를 검색하여 태스크 12(114)의 소켓 사용 가능 여부를 판단한다(S503).
소켓정보 데이터베이스(126)는 태스크 12(114)가 기생성된 소켓에 대한 사용이 불가능함을 통보한다. 즉, 태스크 12(114)는 소켓을 사용할 수 있도록 공유되어 있지 않은 상태이다(S505).
소켓 관리부(122)는 범용 태스크(124)에 해당 소켓의 공유를 요청한다. 이때, 사용하고자 하는 가상소켓 식별자, 태스크 12(114)의 태스크 ID를 함께 전달한다(S507).
범용 태스크(124)는 소켓정보 데이터베이스(126)에 저장되어 있는 테이블을 검색하고(S509), 소켓정보 데이터베이스(126)로부터 태스크 12(114)가 사용하고자 요청한 소켓의 정보를 추출한다(S511).
범용 태스크(124)는 소켓정보 데이터베이스(126)로부터 추출한 소켓의 정보를 이용하여 소켓 생성부(220)에 태스크 12(114)에 대한 소켓의 공유를 요청한다. 이때, 범용 태스크(124)는 소켓 생성부(220)에 소켓 정보 및 소켓의 사용을 요청한 태스크의 ID를 제공한다(S513).
범용 태스크(124)의 소켓의 공유 요청에 대하여 소켓 생성부(220)는 태스크 12(114)가 해당 소켓을 사용할 수 있도록 공유를 허용하고, 공유된 소켓을 범용 태스크(124)로 전달한다(S515).
범용 태스크(124)는 소켓 생성부(220)로부터 제공받은 공유된 소켓을 소켓정보 데이터베이스(126)의 테이블에 등록하고(S517), 소켓정보 데이터베이스(126)는 테이블에 등록된 결과에 따라 공유된 소켓 식별자를 범용 태스크(124)에 제공한다(S519).
범용 태스크(124)는 소켓 관리부(122)로 공유된 소켓 식별자를 제공하고(S521), 소켓 관리부(122)는 소켓 생성부(220)에게 공유된 소켓 식별자를 제공하여 소켓의 실제 사용을 요청한다(S523).
소켓 생성부(220)는 소켓 관리부(122)로부터 제공받은 공유된 소켓 식별자를 통해 태스크 12(114)의 사용을 허용한다(S525). 또한, 소켓 관리부(122)는 사용이 허용된 소켓 식별자를 태스크 12(114)에 전달한다(S527).
이에 의해, 태스크 12(114)는 자신이 직접 생성을 요청하지 않은 소켓을 이용하여 통신하는 것이 가능하다. 즉, 태스크 12(114)는 태스크 10(112)이 생성한 소켓을 이용하여 패킷을 전송할 수 있다.
도 7은 본 발명의 다른 실시예에 따른 네트워크 기기의 소프트웨어 구성도이다.
도 3에서는 미들웨어 계층(100)에 가상 머신 엔진(110)이 탑재된 예를 예시하였으나, 본 실시예에서는 가상 머신 엔진(110) 대신에 내장형 오픈 아키텍쳐(embedded open architecture)인 J스크라이브 코어(JScribe Core)를 탑재한 예를 예시한 것이다. 이에 따라, 어플리케이션 계층(600)에 복수의 자바 스크립트 어플리케이션 #1 내지 #n(610 내지 630)이 탑재된다.
도 7에서 예시한 소프트웨어 구성은 본 발명에 적용되는 네트워크 기기의 소프트웨어 구성의 다른 예를 보인 것일 뿐, 그 기능면에서는 차이가 없으므로 구체적인 설명은 생략한다.
도 8은 본 발명의 바람직한 실시예에 따른 네트워크 기기의 소켓 공유 방법을 설명하기 위한 흐름도이다.
여기에서는 도 3에 도시한 범용 소켓 제공부(120)에 복수의 태스크들(112 내지 116) 중 어느 하나로부터 소정의 요청신호 수신되었을 때를 예로 들어, 본 발명의 네트워크 기기의 소켓 공유 방법을 설명한다.
범용 소켓 제공부(120)에 복수의 태스크들(112 내지 116) 중 어느 하나로부터 소정의 요청신호가 수신된다(S701).
S701 단계에서 수신된 요청신호가 소켓 생성 요청신호이면(S703-Y), 소켓 관리부(122)는 소켓 API(210)를 통해 소켓 생성부(220)에 소켓의 생성을 요청한다(S705).
소켓 관리부(122)는 소켓 생성부(220)에 의해 소켓이 생성되면, 생성된 소켓을 소켓정보 데이터베이스(126)에 등록하며(S707), 소켓정보 데이터베이스(126)에 기등록되어 있는 소켓들의 식별자와 중복되지 않도록 가상소켓을 생성한다(S709).
소켓 관리부(122)는 소켓 생성부(220)에 범용 태스크(124)의 소켓 공유를 요청하고(S711), 소켓 생성부(220)로부터 공유가 허용되면 공유된 소켓을 소켓정보 데이터베이스(126)에 등록한다(S713).
이후, 소켓 관리부(122)는 가상소켓을 복수의 태스크들(112 내지 116) 중 소켓의 생성을 요청한 해당 태스크에 가상소켓을 제공한다(S715).
S701 단계에서 수신된 요청신호가 소켓 생성 요청신호가 아닌 소켓 사용 요청신호이면(S703-N), 소켓 관리부(122)는 범용 태스크(124)에 소켓의 공유를 요청한다(S719).
범용 태스크(124)는 소켓정보 데이터베이스(126)를 검색하여 소켓 사용을 요청한 태스크가 사용 가능한 소켓인지를 판단한다. 이때, 소켓 사용을 요청한 태스크가 해당 소켓의 사용이 불가능한 경우(S717-Y), 범용 태스크(124)는 소켓 생성부(220)에 소켓의 공유를 요청한다(S719).
소켓 생성부(220)로부터 소켓의 공유가 허용되면, 범용 태스크(124)는 소켓 생성부(220)로부터 공유된 소켓을 수신하고, 수신한 공유된 소켓을 소켓정보 데이터베이스(126)에 등록한다(S721).
범용 태스크(124)는 공유된 소켓을 소켓 관리부(122)에 제공하고, 소켓 관리부(122)는 공유된 소켓을 소켓의 사용을 요청한 태스크에 제공하여 통신을 하도록 한다(S723).
만약, S717 단계에서 소켓의 사용을 요청한 태스크가 해당 소켓의 사용이 가능한 경우, S719, S721 단계는 불필요하다.
이상 설명한 바와 같이, 본 발명에 따른 소켓의 공유를 위한 네트워크 기기 및 그의 소켓 공유 방법은 기생성된 소켓을 공유하고 있는 범용 태스크에 의해, 소켓을 생성한 태스크에만 사용이 국한되는 시스템에 모든 태스크가 사용할 수 있도록 디자인된 미들웨어가 탑재될 경우의 소켓 핸들링에서 발생하는 문제점을 해결할 수 있다. 소켓 핸들링에서 발생하는 문제점을 해결함에 의해, 네트워크 기기에 내 장형 오픈 아키텍쳐의 탑재를 용이하게 할 수 있다.
이상에서는 본 발명의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형 실시예들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.

Claims (10)

  1. 복수의 태스크(Task)들의 통신에 사용되는 소켓(Socket)을 생성하는 소켓 생성부;
    상기 복수의 태스크 중 적어도 어느 하나로부터 요청된 소켓의 생성을 상기 소켓 생성부에 요청하고, 상기 소켓 생성부에 의해 생성된 소켓에 대한 가상소켓을 생성하여 상기 소켓의 생성을 요청한 태스크에 제공하는 소켓 관리부; 및
    상기 소켓 생성부에 의해 생성된 소켓을 공유하는 범용 태스크;를 포함하는 것을 특징으로 하는 소켓의 공유를 위한 네트워크 기기.
  2. 제 1 항에 있어서,
    상기 소켓 생성부는 OS 커널(Operating System Kernel)인 것을 특징으로 하는 소켓의 공유를 위한 네트워크 기기.
  3. 제 1 항에 있어서,
    상기 소켓 관리부는, 상기 생성된 소켓의 정보를 상기 생성된 가상소켓과 매칭하여 소켓정보 데이터베이스에 저장하는 것을 특징으로 하는 소켓의 공유를 위한 네트워크 기기.
  4. 제 3 항에 있어서,
    상기 소켓정보 데이터베이스는, 상기 가상소켓의 식별자, 상기 생성된 소켓의 식별자, 상기 소켓의 생성을 요청한 태스크의 ID, 상기 생성된 소켓의 상태, 태스크별 공유된 가상소켓 리스트를 저장하는 것을 특징으로 하는 소켓의 공유를 위한 네트워크 기기.
  5. 제 3 항에 있어서,
    상기 소켓 관리부는, 상기 복수의 태스크들 중 어느 하나로부터 기생성된 소켓의 사용이 요청되면, 상기 소켓정보 데이터베이스를 통해 상기 소켓의 사용을 요청한 태스크의 사용 가능 여부를 판단하고, 상기 소켓의 사용을 요청한 태스크가 해당 소켓의 사용이 불가능한 경우에는 상기 범용 태스크에 상기 소켓의 공유를 요청하는 것을 특징으로 하는 소켓의 공유를 위한 네트워크 기기.
  6. 제 5 항에 있어서,
    상기 범용 태스크는, 상기 소켓 관리부로부터 소켓의 공유가 요청되면, 상기 소켓 생성부의 허용에 의해 해당 소켓을 상기 소켓의 사용을 요청한 태스크에서 사용할 수 있도록 공유하는 것을 특징으로 하는 소켓의 공유를 위한 네트워크 기기.
  7. 복수의 태스크 중 적어도 어느 하나가 소켓의 생성을 요청하는 단계;
    상기 요청된 소켓을 생성하는 단계;
    상기 생성된 소켓을 범용 태스크에 공유하는 단계; 및
    상기 생성된 소켓에 대한 가상소켓을 생성하여 상기 소켓의 생성을 요청한 태스크에 제공하는 단계;를 포함하는 것을 특징으로 하는 네트워크 기기의 소켓 공유 방법.
  8. 제 7 항에 있어서,
    상기 생성된 소켓의 정보를 상기 생성된 가상소켓과 매칭하여 소켓정보 데이터베이스에 저장하는 단계;를 더 포함하는 것을 특징으로 하는 네트워크 기기의 소켓 공유 방법.
  9. 제 8 항에 있어서,
    상기 복수의 태스크들 중 어느 하나로부터 기생성된 소켓의 사용이 요청되면, 상기 소켓정보 데이터베이스를 통해 상기 소켓의 사용을 요청한 태스크의 사용 가능 여부를 판단하는 단계; 및
    상기 소켓의 사용을 요청한 태스크가 해당 소켓의 사용이 불가능한 경우에는 상기 범용 태스크에 상기 소켓의 공유를 요청하는 단계;를 더 포함하는 것을 특징으로 하는 네트워크 기기의 소켓 공유 방법.
  10. 제 9 항에 있어서,
    상기 소켓의 공유가 요청되면, 해당 소켓을 상기 소켓의 사용을 요청한 태스크에서 사용할 수 있도록 공유를 허용하는 단계;를 더 포함하는 것을 특징으로 하 는 네트워크 기기의 소켓 공유 방법.
KR1020060074582A 2006-08-08 2006-08-08 소켓의 공유를 위한 네트워크 기기 및 그의 소켓 공유 방법 KR101208679B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060074582A KR101208679B1 (ko) 2006-08-08 2006-08-08 소켓의 공유를 위한 네트워크 기기 및 그의 소켓 공유 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060074582A KR101208679B1 (ko) 2006-08-08 2006-08-08 소켓의 공유를 위한 네트워크 기기 및 그의 소켓 공유 방법

Publications (2)

Publication Number Publication Date
KR20080013279A KR20080013279A (ko) 2008-02-13
KR101208679B1 true KR101208679B1 (ko) 2012-12-06

Family

ID=39341062

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060074582A KR101208679B1 (ko) 2006-08-08 2006-08-08 소켓의 공유를 위한 네트워크 기기 및 그의 소켓 공유 방법

Country Status (1)

Country Link
KR (1) KR101208679B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5619650A (en) 1992-12-31 1997-04-08 International Business Machines Corporation Network processor for transforming a message transported from an I/O channel to a network by adding a message identifier and then converting the message
US6427161B1 (en) 1998-06-12 2002-07-30 International Business Machines Corporation Thread scheduling techniques for multithreaded servers

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5619650A (en) 1992-12-31 1997-04-08 International Business Machines Corporation Network processor for transforming a message transported from an I/O channel to a network by adding a message identifier and then converting the message
US6427161B1 (en) 1998-06-12 2002-07-30 International Business Machines Corporation Thread scheduling techniques for multithreaded servers

Also Published As

Publication number Publication date
KR20080013279A (ko) 2008-02-13

Similar Documents

Publication Publication Date Title
JP5987656B2 (ja) 情報処理システム、情報処理装置、情報処理方法、及び情報処理プログラム
CN101802732A (zh) 用于控制机器的装置和远程通信系统
KR102279190B1 (ko) 단말의 동작 방법, 관리 서버의 동작 방법 및 이동식 저장장치
JP2008030312A (ja) 画像形成装置、認証方法及び認証プログラム
JP2004213635A (ja) 画像処理装置および画像処理方法および制御プログラム
US10466678B2 (en) Machine maintenance using a service computer
JP7118714B2 (ja) 画像形成装置、および、該画像形成装置の制御方法、制御プログラム
JP6160753B2 (ja) 情報処理システム、情報処理装置、情報処理方法、及び情報処理プログラム
JP5200639B2 (ja) 画像形成装置、情報処理方法、及びプログラム
CN112540831B (zh) 虚拟可信环境加载、运行方法、数据处理及安全处理装置
KR101208679B1 (ko) 소켓의 공유를 위한 네트워크 기기 및 그의 소켓 공유 방법
JP2009290729A (ja) 画像形成装置、情報処理方法、及びプログラム
CN103324450B (zh) 信息处理设备和信息处理方法
JP2016057867A (ja) 情報処理システム、ライセンスサーバー、通信中継装置、プログラム及びデータ復旧方法
JP5293462B2 (ja) 電子機器、情報処理方法、及び情報処理プログラム
JP2006252297A (ja) プリントシステム
JP2009163593A (ja) 印刷システム
JP2015204077A (ja) 印刷システム、情報処理システム、制御方法およびコンピュータプログラム
JP2004094311A (ja) 通知方法、情報処理装置及び制御プログラム
JPH05250239A (ja) コンピュータネットワークシステム
JP5927846B2 (ja) 情報処理装置、認証システム、及び認証プログラム
JP2003323410A (ja) オペレータ権限管理システム
US20200379916A1 (en) Supporting a virtual memory area at a remote computing machine
JP2009020581A (ja) アプリケーション間通信システム
JP4725064B2 (ja) ネットワークシステム、サーバ、およびサーバ用プログラム

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee