KR19980070053A - 통신 시스템내에서 상대적으로 대규모인 데이터 객체의 전송을 제어하기 위한 시스템 및 그 방법 - Google Patents

통신 시스템내에서 상대적으로 대규모인 데이터 객체의 전송을 제어하기 위한 시스템 및 그 방법 Download PDF

Info

Publication number
KR19980070053A
KR19980070053A KR1019970056057A KR19970056057A KR19980070053A KR 19980070053 A KR19980070053 A KR 19980070053A KR 1019970056057 A KR1019970056057 A KR 1019970056057A KR 19970056057 A KR19970056057 A KR 19970056057A KR 19980070053 A KR19980070053 A KR 19980070053A
Authority
KR
South Korea
Prior art keywords
buffer
domain
buffers
relatively large
domains
Prior art date
Application number
KR1019970056057A
Other languages
English (en)
Other versions
KR100241218B1 (ko
Inventor
캠벨스콧알렌
롱린더글라스
오버바이린우드휴
라제라만밸라
Original Assignee
포맨제프리엘
인터내셔널비지네스머신즈코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 포맨제프리엘, 인터내셔널비지네스머신즈코포레이션 filed Critical 포맨제프리엘
Publication of KR19980070053A publication Critical patent/KR19980070053A/ko
Application granted granted Critical
Publication of KR100241218B1 publication Critical patent/KR100241218B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4247Bus transfer protocol, e.g. handshake; Synchronisation on a daisy chain bus
    • G06F13/426Bus transfer protocol, e.g. handshake; Synchronisation on a daisy chain bus using an embedded synchronisation, e.g. Firewire bus, Fibre Channel bus, SSA bus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/327Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the session layer [OSI layer 5]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Communication Control (AREA)

Abstract

도메인간 또는 애플리케이션간에 대규모의 데이터 객체를 전송하는 데에 관련된 통신 시스템에서의 전송 제어 성능이 향상된다. 이것은, 대규모의 데이터 객체를 복사하는 결과를 야기하는 도메인간에 상기 콘테이너의 내용을 이동하는 것 대신에, 상기 데이터를 포함하는 콘테이너(container)의 소유권을 전송함으로써 도메인간의 데이터의 이동을 감소시키거나 제거한다. 따라서, 통신 시스템의 도메인간에 상대적으로 소규모인 데이터 객체만을 효율적으로 전송할 수 있는 통신 시스템에서, 도메인간에 상대적으로 대규모인 데이터 객체의 전송을 제어하기 위한 전송 제어가 제공된다. 공유될 데이터를 포함하는 버퍼에 토큰이 할당되고 결합된다. 상기 토큰은 어드레스가 아니며, 데이터를 복사할 필요 없이 하나의 도메인으로부터 다른 도메인으로 전송될 수 있는 버퍼에 대한 식별자이다. 원래 상기 버퍼를 요구한 도메인에는 주토큰이 할당되며, 상기 버퍼에 역시 억세스할 것을 요구한 이후의 도메인에는 부토큰이 할당된다. 기억 장치 관리자는, 제 1 도메인이 상기 버퍼를 참조할 수 있도록, 상기 제 1 도메인에 상기 버퍼를, 상기 제 1 버퍼에 주토큰을 고유하게 결합시킨다. 부토큰은 상기 제 1 버퍼와 상기 버퍼를 역시 요구하는 이후의 도메인에 결합된다. 따라서, 상기 데이터가 물리적으로 이동하지 않은 채, 상기 버퍼가 제 1 도메인으로부터 이후의 도메인으로 전달될 수 있다. 일단 각 도메인이 상기 데이터의 처리를 완료하면, 상기 버퍼는 각 도메인에 의하여 방출되고, 상기 버퍼는 방출되거나 재할당되고 활용 가능한 버퍼들의 풀로 복귀된다. 또는, 일단 상기 버퍼의 처리가 모든 도메인에 의하여 완료되면, 상기 버퍼의 소유권은 상기 버퍼를 원래 요구했던 도메인으로 복귀된다.

Description

통신 시스템내에서 상대적으로 대규모인 데이터 객체의 전송을 제어하기 위한 시스템 및 그 방법
본 발명은 데이터 통신에 관한 것으로서, 통신 시스템내에서의 데이터의 공유(sharing)와 전송(transmission)에 관한 것이다. 본 발명은 특히, 통신 시스템에서 통신 스택(communication stack)의 애플리케이션 프로그램(application program) 사이에 상대적으로 대량인 데이터의 전송을 제어하기 위한 시스템에 관한 것이다.
통신 시스템 또는 네트워크는, 일반적으로 상기 네트워크상의 하나의 컴퓨터(즉, 노드)로부터 다른 것으로 상호 작용하여 데이터를 전송하는 컴퓨터 또는 컴퓨팅 시스템(computing system)의 집합으로 정의된다. 상기 노드의 기능적 성능의 범위는 최소한의 국지적 처리 능력을 가진 터미널로부터 고속의 국지적 처리가 가능한 복잡한 멀티프로세서(multiprocessor)에까지 달한다. 하나의 노드는, 네트워크 인터페이스(network interface)가 네트워킹 표준 또는 아키텍쳐(networking standard or architecture)를 따른다는 것을 보증하기 위하여 요구되는 일련의 제어 기능(control function)을 통합한다. 이러한 제어 기능은, 기능에 기초한 집합(set)들로 분류될 수 있다. 예를 들면, 본 발명의 출원인인 인터내셔널 비즈니스 머신즈 코포레이션(International Business Machines Corporation)(이하, IBM이라 함.)에 의하여 개발된 시스템 네트워크 아키텍쳐(Systems Network Architecture)(이하, SNA라 함.)에서는, 링크(link)와 같은 실제의 네트워크 자원의 동작을 제어하는 물리적 장치(Physical Unit)(이하, PU라 함.)와, 애플리케이션과 같은 논리적인 소프트웨어에 기초한 개체(entity)를 제어하는 논리적 장치(Logical Unit)(이하, LU라 함.)가 상기 SNA에 의하여 정의된다. 다른 네트워킹 아키텍쳐는 유사한 기능적 분류(functional grouping)를 정의한다.
상기 노드들을 상호 접속하는 통신 설비의 범위도 또한 고속의 입력/출력(이하, I/O라 함.) 채널(channel)로부터 저속의 직통 전화 회선(point-to-point telephone line)에까지 달한다. 예를 들면, 상기 통신 설비를 구현하는 데에 사용되는 매체는 위성 링크(satellite link) 또는 광대역 광섬유(wide band optical fiber)가 포함될 수 있다.
도 1을 참조하면, 두 개의 노드를 가진 애플리케이션간 통신 네트워크(application-to-application communication network)의 구성요소를 도시하는 상위 레벨의 블록도로서, 이 경우에는, 직접 부착 환경(direct-attach environment)내의 호스트 컴퓨터(host computer)(10)가 도시되었다. 애플리케이션간 통신 네트워크에 대한 이러한 형식의 관찰(view)은 때때로 종단간(end-to-end) 관찰로 불린다. 두 개의 호스트 컴퓨터(12 및 14)가 각각 도시되었다. 상기 호스트 컴퓨터는, 예를 들어본 발명의 출원인인 IBM사가 제작한 IBM 390 메인프레임 컴퓨터(mainframe computer)가 될 수 있다. 각 호스트 컴퓨터는 네트워크를 가로질러 데이터를 송신하기 위한 아웃바운드(outbound)측(16)과, 상기 네트워크를 가로질러 전송되는 데이터를 수신하기 위한 인바운드(inbound)측(18)을 구비한다. 또한, 상기 호스트 컴퓨터상에서 애플리케이션들(20 및 22)이 실행된다. 일단 애플리케이션이 데이터를 처리하고, 상기 데이터를 네트워크상의 다른 노드로 송신하여야 함을 요구하면, 그 다음에 상기 전송될 데이터는 상기 애플리케이션이 실행중인 노드의 통신 스택(24 및 26)내에서 처리되고, 시스템의 I/O 인터페이스(28)를 통하여 전송된다. 시스템 I/O 인터페이스(28)는 또한 네트워크를 가로질러 전송되는 데이터의 수신을 지원하기 위하여 작용한다.
예를 들면, 본 발명은 도 2에 도시된 것과 유사한 통신 네트워크 환경에도 적용될 수 있다. 도 2에 도시된 바와 같은 통신 네트워크에는 두 개의 호스트 컴퓨터(50 및 52)가 도시되었다. 상기 도시된 호스트 컴퓨터(50)는, 본 발명에 따르는 통신 스택내에서 상대적으로 대규모인 데이터 객체를 관리하기 위한 능력을 갖는다. 상기 컴퓨터(54)는 단지, 상기 호스트 컴퓨터(50)가 네트워크(60)를 가로질러 전송하기 위하여 처리한 데이터를 루팅(routing)하기 위한 네트워크상의 루터(router)로서 사용되는 제어기(controller)이다. 애플리케이션(62)은 호스트 컴퓨터(50)상에서 실행된다. 일단 애플리케이션이 데이터를 처리하고 상기 데이터를 네트워크상의 다른 노드로 송신하여야 함을 요구하면, 그 다음에 상기 전송될 데이터는 상기 통신 스택(64)내에서 처리된다.
도 1 또는 도 2에 도시된 것과 같은 통신 시스템상의 통신은, 네트워크 아키텍쳐에 의하여 제어된다. 도 1 또는 도 2에 도시된 것과 같은 통신 시스템상에 구현된 네트워크 아키텍쳐의 하나로서, 본 발명의 출원인인 IBM사에 의하여 개발된 시스템 네트워크 아키텍쳐(SNA)가 있다. SNA는 사용자들이 통신 시스템상에 그들 자신의 사설 네트워크(private network)를 구축할 수 있도록 허용하기 위한 네트워크 아키텍쳐이다. SNA 네트워크는 머신들 또는 컴퓨터들(즉, 노드들)의 집합으로서 정의된다. SNA 네트워크에는 서로 다른 몇 가지 형식의 노드들이 있는데, 터미널(terminal)과, 상기 터미널 및 기타 주변기기의 동작(behavior)을 감시하는 제어기와, 주요 중앙 처리 장치(main central processing unit)의 작업을 경감하는 전위 처리기(front-end processor)와, 데이터 통신에 관련된 인터럽트 처리기(interrupt handling)와, 주요 호스트 컴퓨터 등이 포함된다. 본질적으로, SNA는 노드들이 상호간에 접속하고 통신하는 방법에 관하여 규정한다. 또한, SNA에 의하면, 서로 다른 형식의 워크스테이션이나 유사하지 않은 애플리케이션에 대한 별개의 통신 링크를 설치할 필요 없이, 또한 프로그램과 장치의 수를 감소시킴으로써, 시스템이 네트워크 자원을 공유할 수 있게 된다.
SNA 네트워크내의 통신 스택의 기능은 몇 개의 레이어(layer)으로 편제된다. 도 3을 참조하면, SNA 아키텍쳐를 구현하는 통신 시스템상의 주어진 노드에서 SNA의 계층적 레이어들(hierarchical layers)(100)을 도시하는 한 방법이 도시되었다. 상기 SNA 아키텍쳐하에서 동작하는 통신 네트워크의 각 노드는 일반적으로, 노드들간의 통신을 활성화할 수 있도록, 동일한 계층적 소프트웨어 구조를 갖는다. 도 3에 도시된 바와 같이, 통신 스택의 이러한 레이어들은, 하나의 머신으로부터 다른 머신으로 비트(bit)들을 물리적으로 이송(transport)하기 위하여 인접한 노드들을 물리적으로 또한 전기적으로 접속하는 물리적 제어 레이어(physical control layer)(102)과, 인접 노드간에 데이터를 전송하고, 보다 상위의 레이어들에 투명한 방식으로 전송 오류를 검출하고 복구하기 위하여 미가공 비트 스트림(raw bit stream)으로부터 프레임(frame)을 구성하는 데이터 링크 제어 레이어(data link control layer)(104)과, 발신처 노드(source node)와 수신처 노드(destination node)간에 데이터를 루팅(routing)하며, 네트워크의 데이터 트래픽(data traffic)을 제어하는 경로 제어 레이어(path control layer)(때때로 네트워크 레이어(network layer)이라 불림)(106)과, 이송 접속(transport connection)을 생성하고 관리하고 삭제하는 전송 제어 레이어(transmission control layer)(108)을 포함한다. 또한 상기 SNA 레이어들은, 대화(conversation)를 위하여 두 최종 사용자들간에 세션을 설정하고 제어할 수 있도록 세션의 종점간의 데이터 흐름을 동기화하는 데이터 흐름 제어 레이어(data flow control layer)(때때로 세션 레이어(session layer)이라 불림)(110)과, 서로 다른 프리젠테이션 매체(presentation media)를 위한 데이터의 포맷(format)을 지정하고, 자원의 공유를 조정하는 프리젠테이션 서비스 레이어(presentation service layer)(112)과, 분산형 데이터베이스 억세스와 문서 교환과 같은 애플리케이션 서비스(application service)를 제공하는 트랜잭션 서비스 레이어(transaction service layer)(114)과, 마지막으로 그 자체가 두 최종 사용자간의 대화에 관련된 네트워크 사용자 레이어(network user layer) 또는 애플리케이션 레이어(application layer)(116)을 포함한다.
상기 물리적 제어 레이어(102), 데이터 링크 제어 레이어(104), 경로 제어 레이어(106) 및 전송 제어 레이어(108)은, SNA 모델이 개방형 시스템 인터페이스 참조 모델(Open Systems Interface Reference Model)(이하, OSI라 함.)에 관련되므로, 상기 SNA 모델의 하위(lower) 레이어(120)라 불린다. 상기 데이터 흐름 제어 레이어(110), 프리젠테이션 서비스 레이어(112) 및 트랜잭션 서비스 레이어(114)은 상기 아키텍쳐의 상위(upper) 레이어(122)이라 불린다. 마지막으로, 상기 상위 레이어(122)과 상기 하위 레이어(120)의 조합은 통신 스택(124)으로 표현된다.
상기 호스트 프로세서상에 존재하는 억세스 방식은 SNA 네트워크에 대한 제어원(source of control)을 제공한다. 상기 억세스 방식의 하나로서, SNA 네트워크내의 애플리케이션 프로그램과 호스트 프로세서 및 다른 자원들 사이의 인터페이스를 제공하는 가상 통신 접근 방식(Virtual Telecommunication Access Method)(이하, VTAM이라 함)이 있다. 본질적으로, VTAM은, 동일한 또는 서로 다른 SNA 노드들내의 터미널과 애플리케이션 프로그램간 및 애플리케이션들간의 통신을 제어하는 프로그램이다. VTAM 애플리케이션 프로그램과 호스트 및 네트워크 터미널간의 통신은 일반적으로 VTAM을 통하여서만 발생한다. VTAM은 또한 네트워크의 성능을 모니터(monitor)하며, 잠재적인 문제의 위치를 식별하고, 네트워크 오류로부터의 복구를 지원한다. VTAM은 다중 가상 기억(Multiple Virtual Storage)(이하, MVS라 함.) 운영 체계, 가상 머신/시스템 제품(Virtual Machine/System Product)(이하, VM/SP라 함.) 운영 체계 및 가상 기억 확장(Virtual Storage Extended)(이하, VSE라 함.) 운영 체계 등과 같은 가상 운영 체계(virtual operating system)의 제어하에 실행(run)된다. 상기 MVS 환경내에서 동작중일 때에는, VTAM에 의하여 독립적인 SNA 네트워크가 상호간에 통신할 수 있게 된다.
VTAM 애플리케이션 프로그램은 다른 모든 프로그램과 유사한 운영 체계의 제어하에서 실행된다. 그러나, VTAM 애플리케이션 프로그램은 일반적으로, 그것이 네트워크내의 터미널이나 기타 애플리케이션들과 통신하기 전에, VTAM에 접속된다. VTAM 애플리케이션 프로그램은 터미널과 통신하기 위하여 VTAM 매크로 명령(macro instruction)을 사용한다. 호스트 프로세서내의 애플리케이션 프로그램은, 네트워크의 편성(organization)에 대하여 알고 있는 프로그램 없이도 네트워크내의 어떤 곳에서도 사용될 수 있다. VTAM은 다음의 주요 기능을 제공한다. 즉, 네트워크의 시작(starting)과 정지(stopping); 네트워크 구성(configuration)의 동적 변경(dynamical changing); 네트워크 자원의 할당(allocation); 및 입력/출력 처리의 제어 등이 그것이다.
도 4를 참조하면, VTAM하에서 동작중인 통신 시스템(200)의 주요 구성요소가 도시되었는데, 여기에는 VTAM(206)과 VTAM 애플리케이션 프로그램(204)을 구비한 호스트 컴퓨터(host computer)(202)가 포함된다. 상기 호스트 컴퓨터(202)는 원격통신 네트워크(telecommunication network)(210)와 함께 부기억장치(즉, 보조 기억장치)(208)에 접속된다. 상기 원격통신 네트워크(210)는 SNA 터미널 환경(212)과, 지역(local) 3270, BSC 및 시작/정지 터미널 환경(214)으로 구분된다. 특히, 상기 호스트 컴퓨터는 지역 3790 터미널(216) 및 지역 3270 터미널(218)과 같은 상기 지역 컴퓨터 및 터미널에 접속된다. 또한, VTAM은 NCP로 불리는 지역 통신 제어기(local communications controller)(220)에 접속되는데, 이것은 다시 원격 통신 제어기(remote communications controller)(222), 교환 회선(switched line)상의 터미널(224), 그리고 비교환 회선(nonswitched line)상의 터미널(226)에 순서대로 접속된다.
상기 SNA 네트워크 아키텍쳐와 VTAM은, System Network Architecture, Concepts and Products, IBM, GC30-3072-3, VTAM Concepts, Independent Study Program, IBM, 1982, 및 타넨바움(Tanenbaum)의 computer Networks(2nd ed.), Prentice Hall, Inc., 1988의 제 1 장에 상세히 기술되어 있으며, 모두 본 출원의 참고 자료로서 인용한다. VTAM은 또한, 미합중국 등록 특허 제 4,586,134 호인 Computer Network Systems and Its Use for Information Unit Transmission과 미합중국 등록 특허 제 5,027,269 호인 Method and Apparatus for Providing Continuous Availability of Applications in a Computer Network에 상세히 기술되어 있으며, 역시 모두 본 출원의 참고 자료로서 인용한다.
대부분의 통신 시스템에서의 데이터의 이동(movement)은 시스템의 효율(efficiency)에 심각한 영향을 줄 수 있다. 데이터 전송의 수와 주파수가 증가함에 따라, 메모리 버스(memory bus), 중앙 처리 장치(central processing unit)와 같은 프로세서의 구성요소의 이용률(utilization)이 현저히 증가한다. 구성요소의 비효율적인 사용으로 인하여 그 구성요소의 이용률이 최대 용량에 달하면, 상기 통신 시스템에 의하여 지원되는 전체 스루풋(throughput)은 심각하게 제한된다.
시스템 성능에 미치는 데이터 전송의 영향에도 불구하고, 현재는 대규모의 데이터 객체를 전송하는 경향을 보인다. 이것은 특히 멀티미디어(multimedia), 이미지(image) 및 대규모의 파일 애플리케이션 처리(large file application processing)에 관련된 애플리케이션에서 발생한다. 멀티미디어 애플리케이션에서는, 상기 대규모의 데이터 객체가 방송되고, 결과적으로 여러 번 복제된다. 상기 대규모의 복제는 일반적으로 데이터의 반복적인 복사를 요구하고, 그것은 다시 일반적으로 통신 스택내의 기억 장치 소유권(storage ownership)을 갖는 도메인(domain)간에 데이터의 수많은 이동을 요구한다. 결과적으로, 상기 데이터의 수많은 이동은 통신 네트워크의 성능에 심각한 영향을 준다. 대규모의 데이터 객체를 처리하고 전송하는 멀티미디어 애플리케이션과 같은 애플리케이션에 대한 통신 시스템의 성능을 향상시키기 위하여는, 동일한 노드상에 존재하는 도메인간의 데이터 전송 실행 경로내에서의 데이터 이동을 제거하거나 또는 최소한 현저히 감소시켜야 한다. 이것은 통신 프로토콜(protocol)을 구현하는 데에 몇 가지 문제를 처리하는 것에 상당하는데, 상기 문제에는 기억 장치 소유권(storage ownership), 자원 공유(resource sharing) 및 헤더 관리(header management) 등이 포함된다.
따라서, 본 발명의 목적은, 통신 시스템의 성능을 향상시키기 위하여, 통신 시스템내에서 상대적으로 대규모인 데이터 객체의 전송을 제어하기 위한 방법 및 그 시스템과 컴퓨터 프로그램 제품을 제공하는 것이다.
본 발명의 다른 목적은 도메인간에 단지 상대적으로 소규모인 데이터 객체의 전송만을 위하여 최적화된 성능을 가진 통신 시스템에서, 상기 도메인간에 상대적으로 대규모인 데이터 객체의 전송을 위한 방법 및 그 시스템과 컴퓨터 프로그램 제품을 제공하는 것이다.
상기 본 발명의 목적들은, 도메인간에 대규모인 데이터 객체를 전송하는 데에 관련된 통신 시스템의 성능을 향상시키기 위한 본 발명의 시스템에 의하여 성취된다. 본 발명은, 본질적으로 IBM사의 SNA 아키텍쳐와 VTAM 억세스 방식에 기반을 둔 환경내에서 기술된다. 상기 SNA 아키텍쳐 환경에서 상기 SNA 네트워크의 각 레이어(102 내지 116)은, 도 5에 일반적으로 도시된 바와 같은 본 발명의 토큰(token)화된 공유 기억 장치 관리자(shared storage manager)와 직접 통신한다. 상기한 바와 무관하게, 본 발명은 도메인간에 단지 상대적으로 소규모인 데이터 객체를 효율적으로 전송하는 모든 형식의 네트워크에도 적용될 수 있다.
도메인간의 데이터 전송은, 상기 도메인간의 데이터 전송을 지원하는 콘테이너(container)를 제공함으로써 성취된다. 도메인간의 데이터 전송을 감소하거나 제거하기 위하여, 본 발명은 하나의 도메인내의 한 콘테이너로부터 다른 도메인내의 다른 콘테이너로의 콘테이너 내용(content)의 이동에 대비되는, 콘테이너의 소유권의 전달을 지향한다. 본 발명은, 하나의 도메인으로부터 그 다음 도메인으로 데이터를 전송하기 위하여는, 상기 데이터가 정의된 인터페이스를 사용하여 도메인간에 전달되며, 만약 데이터의 이동이나 복사를 제거하면 성능이 향상된다는 점에 대한 이해로부터 발생하였다.
따라서, 본 발명에 의한 전송 제어는, 도메인간에 상대적으로 소규모인 데이터 객체의 전송만을 효율적으로 수행할 수 있는 통신 시스템내에서, 상기 도메인간에 상대적으로 대규모인 데이터 객체의 전송을 제어한다. 본 발명에 의한 전송 제어는, 상대적으로 대규모인 데이터 객체를 저장하기 위한 버퍼와, 통신 시스템내에서 데이터를 처리할 수 있는 애플리케이션을 대표하는 도메인과, 상대적으로 대규모인 데이터 객체가 저장된 제 1 버퍼의 소유권을 제 1 도메인에 할당하고, 상기 상대적으로 대규모인 데이터 객체를 상기 제 1 도메인으로부터 제 2 도메인으로 이동하지 않은 채로(즉, 상기 버퍼의 내용을 이동하지 않은 채로) 상기 상대적으로 대규모인 데이터 객체가 저장된 상기 제 1 버퍼의 소유권을 상기 제 1 도메인으로부터 상기 제 2 도메인으로 전송하기 위한 소유권 제어 수단을 포함한다.
상기 소유권 제어기는, 상기 제 1 버퍼를 대표하는 주토큰(primary token)과, 상기 제 1 버퍼의 제 1 논리적 뷰(logical view)를 대표하는 부토큰(secondary token)을 포함한다. 상기 본 발명에 의한 시스템은 또한, 상기 제 1 버퍼를 상기 제 1 도메인에 고유하게 결합시키며, 상기 제 1 부토큰을 상기 제 1 주토큰에 의하여 식별된 제 1 버퍼에 고유하게 결합시키며, 상기 제 1 부토큰을 상기 제 2 도메인에 고유하게 결합시키는 기억 장치 관리자를 포함한다.
상기 전송 제어 시스템은 또한, 상기 제 1 버퍼의 제 2 논리적 뷰를 대표하는 제 2 부토큰을 포함한다. 상기 기억 장치 관리자는 또한, 상기 제 2 부토큰을 상기 제 1 주토큰에 의하여 식별된 제 1 버퍼에 결합시키고 상기 제 2 부토큰을 제 3 도메인에 결합시켜, 상기 제 1 버퍼에 저장된 상대적으로 대규모인 데이터 객체를 물리적인 데이터의 이동 없이(즉, 상기 제 2 도메인으로부터 상기 제 3 도메인으로의 상기 버퍼 내용의 물리적인 이동 없이) 상기 제 2 도메인으로부터 상기 제 3 도메인으로 전달될 수 있게 한다.
상기 토큰은 버퍼들의 풀(pool)내의 각 버퍼를 대표하는 데에 사용된다. 상기 토큰은 버퍼의 물리적 어드레스가 아니라 상기 버퍼의 식별자(identification)이어서, 애플리케이션 프로그램 또는 도메인이 버퍼를 요구하거나 버퍼를 참조할 때, 상기 애플리케이션 프로그램이나 도메인 또는 상기 기억 장치 관리자까지도 상기 물리적 어드레스와는 대비되는 상기 토큰에 의하여 상기 버퍼를 참조할 수 있게 된다. 다시 말하면, 상기 토큰은, 상기 버퍼를 접촉(touch)할 필요가 없을 때(즉, 버퍼의 내용을 읽는 것이 아니거나 또는 데이터를 버퍼에 기록하는 것이 아닐 때) 상기 버퍼를 참조하기 위하여 사용된다. 상기 토큰은 어느 도메인이 상기 버퍼의 현재 소유자인가를 판단하기 위한 기초(basis)가 된다. 상기 버퍼와 결합된 주토큰 또는 부토큰의 어느 것을 가진 각 도메인에 의한 처리가 완료되면, 상기 버퍼는 해제(release)되거나 재할당(reallocate)되어 상기 버퍼 풀로 복귀한다.
본 발명의 다른 실시예에서는, 상기 버퍼에 결합된 주토큰 또는 부토큰의 어느 것을 가진 모든 도메인에 의한 버퍼의 처리가 완료되면, 상기 버퍼의 소유권은 그 본래의 소유자에게 복귀한다.
도 1은 직접 부착 환경내에서 두 개의 호스트 컴퓨터를 가진 애플리케이션간 통신 네트워크의 블록도.
도 2는 두 개의 호스트 컴퓨터와 네트워크 제어기를 가진 애플리케이션간 통신 네트워크의 구성요소의 블록도.
도 3은 특정 노드에서 통신 시스템의 시스템 네트워크 아키텍쳐를 구현하기 위한 컴퓨터 소프트웨어의 견지로부터의 네트워크 프로토콜 레이어를 도시하는 개략적 블록도.
도 4는 도 1의 SNA 아키텍쳐를 구현할 수 있는 통신 시스템을 위한 VTAM의 주요 구성요소의 블록도.
도 5는 본 발명에 따라 토큰화된 공유 기억 장치 관리자를 가진 통신 시스템의 SNA 아키텍쳐를 위한 컴퓨터 소프트웨어의 견지로부터의 네트워크 프로토콜 레이어의 개념적 블록도.
도 6은 토큰, 기억 장치 관리자 및 버퍼 사이의 관계를 도시한 블록도.
도 7은 하나의 노드상의 애플리케이션간에 토큰을 사용하는 버퍼를 공유함으로써 데이터 전송을 제어하기 위한 동작을 도시한 블록도.
도 8은 토큰을 사용하는 버퍼의 공유를 통하여 데이터의 전송을 제어하기 위한 통신 스택의 제어에 관련된 동작을 도시한 흐름도.
도 9는 토큰을 사용하여 대규모의 데이터 객체를 처리하는 애플리케이션의 동작을 도시한 흐름도.
도 10은 버퍼의 소유권이 세 개의 애플리케이션간에 전달되어, 상기 버퍼의 소유권을 요구한 본래의 애플리케이션인 애플리케이션 1로 복귀된 예를 도시한 제어 흐름 테이블(control flow table)
*도면의 주요 부분의 부호의 설명
10 : 호스트 컴퓨터 20, 22 : 애플리케이션
24, 26 : 통신 스택 28 : 시스템 I/O 인터페이스
60 : 네트워크 200 : 통신 시스템
204 : VTAM 애플리케이션 프로그램 206 : VTAM
208 : 보조기억장치 210 : 원격통신 네트워크
212 : SNA 터미널 환경
214 : 지역 3270, BSC 및 시작/정지 터미널 환경
216 : 지역 3790 터미널 218 : 지역 3270 터미널
220 : 지역 통신 제어기 222 : 원격 통신 제어기
224 : 교환 회선상의 터미널 226 : 비교환 회선상의 터미널
본 발명에 관하여, 본 발명의 바람직한 실시예가 도시된 첨부 도면을 참조하여 이하에서 상세히 설명한다. 그러나, 본 발명은 다수의 서로 다른 형태로 실시될 수 있으며, 이하에서 개시된 실시예로 한정되는 것으로 해석되어서는 아니되며, 본 명세서가 전체적이고 완전한 것으로서 본 발명의 기술 분야에서 통상의 지식을 가진 자에게 본 발명의 범위를 충분히 전달하는 실시예인 것으로 해석되어야 한다. 전 명세서에 걸쳐 동일한 참조 번호는 동일한 구성요소(element)를 가리킨다.
도 6을 참조하면, 토큰 및 기억 장치 관리자의 구조와 버퍼 사이의 관계를 도시하는 블록도이다. 제 1 버퍼 내지 제 12 버퍼(300a 내지 300l)는 애플리케이션 프로그램 또는 도메인에 의하여 사용되기 위하여 상기 버퍼들에 저장된 데이터를 가진 콘테이너(container)들이다. 이러한 버퍼가 특정의 도메인에 의하여 소유되지 않았을 때에는, 활용 가능한 버퍼들의 풀(pool)내에 위치한다. 도 6에 도시된 실시예에서는, 제 13 버퍼 내지 제 16 버퍼(300m 내지 300p)가 활용 가능한 버퍼들의 풀내에 존재한다. 이러한 버퍼들은, 32 킬로 바이트 또는 60 킬로 바이트 등과 같이 서로 다른 사이즈(size)의 기억 용량(storage capacity)을 가질 수 있다. 도메인이 버퍼를 요구할 때에는 특정한 사이즈의 버퍼를 요구한다. 형식과 버퍼의 크기는, 데이터가 공유될 방식과 억세스를 위하여 요구되는 방식에 기초하여, 그를 요구하는 도메인에 의하여 선택된다.
상기 기억 장치 관리자(130)는 요구된 사이즈를 위하여 활용 가능한 버퍼들의 풀로부터 소정의 버퍼로의 토큰화된 매핑(tokenized mapping)을 제공한다. 상기 토큰은 상기 버퍼 풀내의 버퍼를 대표하는 데에 사용된다. 상기 토큰은 식별자(identification)로서 행동하여, 상기 버퍼가 요구될 때에는, 토큰이 복귀되는데, 이로 인하여 상기 도메인은 처리중에 버퍼의 어드레스를 도출할 필요가 있는 실제 버퍼의 접촉(touching) 없이 상기 토큰을 참조하면 된다. 버퍼는 그로부터 데이터를 읽거나, 그것으로 데이터를 기록할 때 접촉된다. 그렇지 않다면, 즉 만약 버퍼가 읽혀지거나 기록되고 있지 않다면, 본 발명은 상기 버퍼에 접촉하지 않고, 대신에 토큰을 사용하여 상기 버퍼를 참조한다. 상기 토큰은, 통신 스택내에서 도메인간에 데이터를 전달할 때, 그리하여 버퍼의 내용이 아니라 소유권을 전달할 때, 상기 버퍼를 참조하는 데에 사용될 수 있다. 결과적으로, 데이터의 불필요한 복제 - 그렇지 않다면 데이터가 도메인간에 전달될 때 발생하게 되는 복제 - 를 피할 수 있다. 따라서, 상기 도메인과 상기 기억 장치 관리자는, 어드레스를 도출하여야 하는 기억 장치의 실제 접촉 없이 상기 버퍼를 참조할 수 있다.
상기 기억 장치 관리자는 각 토큰에 대한 구조를 제공한다. 상기 기억 장치 관리자의 구조는 버퍼의 어드레스, 버퍼의 길이, 기억 장치의 소유자 및 상기 버퍼가 자유로운 것인가 또는 사용중인 것인가의 여부와 그에 할당된 토큰을 현재 가지고 있는가의 여부에 관한 지시(indication) 등에 관한 정보를 포함한다. 별도의 기억 장치 관리자의 구조가 각 주토큰 및 각 부토큰에 대하여 제공된다. 상기 버퍼에 대한 상기 기억 장치 관리자의 구조는 구조 테이블(table of structure)로서 관찰될 수도 있다.
상기 토큰 자체는 어드레스일 수도 있으며, 또는 다른 두 개의 토큰의 조합일 수도 있으며, 또는 어드레스가 아닌 버퍼를 참조하기 위한 어떤 다른 식별자일 수도 있다. 상기 기억 장치 관리자는 상기 토큰에 의하여 상기 제어 구조를 사용하는 버퍼의 어드레스를 도출할 수 있게 된다. 상기한 바와 같이, 상기 제어 구조는, 다른 정보 가운데, 거기에 저장된 버퍼의 어드레스를 갖는다. 또한, 하나 이상의 토큰이 하나의 버퍼를 포인팅(pointing)할 수 있다. 결과적으로, 각 토큰이 기억 장치 관리자의 구조를 가지고 고유하게 식별되기 때문에, 하나 이상의 기억 장치 관리자 구조가 하나의 버퍼를 포인팅할 수 있다.
다시 도 6을 참조하여, 버퍼의 소유권의 예를 기술한다. 도 6의 제 1 애플리케이션(302)은 그것에 의하여 처리중인 데이터의 저장을 위하여 버퍼를 요구한다. 도 6에 도시된 예에서, 상기 제 1 애플리케이션은 각각 제 1 토큰(304)과 제 3 토큰(306)에 할당된 두 개의 버퍼를 구비한다. 제 1 토큰은 상기 기억 장치 관리자 구조(310)를 참조하며, 특히 상기 제 1 토큰에 의하여 식별되는 버퍼에 대한 기억 장치 관리자 구조인 기억 장치 관리자(310a)를 참조한다. 상기 기억 장치 관리자(310a)는 다양한 기억 장치 운영 정보(storage administration information)를 포함하는데, 여기에는 도 6에 예시된 바와 같이, 제 1 버퍼(300a)를 포인팅하는 어드레스, 제 1 버퍼(300a)의 길이, 제 1 버퍼(300a)의 소유자의 정체(identity) 등이 포함된다.
제 2 애플리케이션(312)은 그의 개별 용도를 위한 그 자신의 어드레스 공간을 구비한다. 이 공간은 그것이 소유한 버퍼를 참조하기 위하여 상기 제 2 애플리케이션에 의하여 사용되는 토큰을 보전한다. 이 예에서 상기 제 2 애플리케이션은 제 7 토큰(314)과 제 10 토큰(316)을 구비한다. 마지막으로, VTAM은 또한 상기 VTAM에 관련된 어드레스 공간을 가지며, 상기 공간은 그의 개별 용도를 위한 것으로서 다른 어떤 애플리케이션도 억세스할 수 없다.
도 6 내지 도 9와 도 10A 내지 10D는 본 발명에 의한 방법 및 그 시스템과 프로그램 제품을 도시한 블록도, 흐름도 및 제어 흐름도이다. 상기 블록도, 흐름도 및 제어 흐름도의 각 블록 또는 단계와 그들의 조합이 컴퓨터 프로그램 명령(computer program instruction)에 의하여 구현될 수 있음을 이해하여야 한다. 이러한 컴퓨터 프로그램 명령은 컴퓨터 또는 머신을 제작하기 위한 기타의 프로그램 가능 장치(programmable apparatus) 상에 로드(load)되어, 상기 컴퓨터 또는 기타의 프로그램 가능 장치 상에서 실행되는 상기 명령에 의하여 상기 블록도, 흐름도 또는 제어 흐름 블록 또는 단계 등에 규정된 기능을 구현하기 위한 수단을 생성한다. 또한, 이러한 컴퓨터 프로그램 명령어는, 컴퓨터 또는 기타의 프로그램 가능 장치를 특정의 방식으로 기능하도록 하는, 컴퓨터에 의하여 판독 가능한 메모리내에 저장되어, 상기 블록도, 흐름도 또는 제어 흐름 블록 또는 단계에 규정된 기능을 구현하기 위한 명령 수단을 포함하는 제조물(article of manufacture)을 생성한다. 또한, 상기 컴퓨터 프로그램 명령은, 컴퓨터에 의하여 구현되는 프로세스(process)를 생성하기 위하여, 상기 컴퓨터 또는 기타의 프로그램 가능 장치상에서 일련의 동작 가능 단계가 수행되도록 하기 위한 상기 컴퓨터 또는 기타의 프로그램 가능 장치상에 로드되어, 상기 컴퓨터 또는 기타의 프로그램 가능 장치상에서 실행되는 명령에 의하여 상기 블록도, 흐름도 또는 제어 흐름 블록 또는 단계에 규정된 기능을 구현하기 위한 단계들이 제공된다.
따라서, 상기 블록도, 흐름도 또는 제어 흐름도의 블록 또는 단계는, 상기 규정된 기능을 수행하기 위한 수단의 조합과, 상기 규정된 기능을 수행하기 위한 단계의 조합과, 상기 규정된 기능을 수행하기 위한 프로그램 명령 수단을 지원한다. 상기 블록도, 흐름도 또는 제어 흐름도의 블록 또는 단계와 그들의 조합은, 상기 규정된 기능 또는 단계, 또는 특수 목적 하드웨어 명령 및 컴퓨터 명령의 조합을 수행하는 특수 목적 하드웨어 기반 컴퓨터 시스템(special purpose hardware-based computer system)에 의하여 구현될 수 있음을 이해하여야 한다.
도 7을 참조하면, 토큰을 사용하는 버퍼를 공유함으로써, 하나의 노드상의 통신 스택내에서 애플리케이션간 또는 도메인간의 데이터 전송을 제어하기 위한 본 발명의 동작을 도시한 블록도이다. 도 7에 도시된 예에서는, 제 1 애플리케이션과 제 2 애플리케이션이 모두, 제 1 단계에서 인바운드 데이터로 표시된 바와 같이, 상기 제 1 및 제 2 애플리케이션에 의하여 사용되기 위하여 상기 노드에서 수신되는 데이터를 갖는다. 상기 인바운드 데이터는 네트워크의 다른 노드로부터 수신되는 데이터를 의미한다. 도 7의 제 2 단계에서, 상기 인바운드 데이터는 공유 버퍼(shared buffer)내로 읽혀지고, 토큰을 할당받는다. 다음으로 제 3 단계에서, 상기 공유 버퍼의 새로운 토큰(즉, 논리적 이미지)이 생성되고, 상기 제 1 및 제 2 애플리케이션으로 질의를 보낸다. 상기 통신 스택(350)이 도 7에 도시되었다. 상기 통신 스택은 제 1 애플리케이션에 제 1A 토큰을 할당하고 제 2 애플리케이션에 제 1 토큰을 할당한 기억 장치 관리자를 포함한다.
그리고 나서, 상기 제 1 애플리케이션은, 제 4 단계에서, 상기 제 1A 토큰에 의하여 식별되는 버퍼에 저장된 데이터를 처리하며, 상기 처리가 완료됨에 따라 데이터의 논리적 이미지를 미사용 상태가 되게 한다(즉, 상기 데이터의 처리를 완료함에 따라 상기 토큰을 미사용 상태가 되게 한다.). 그리고 나서, 상기 공유 버퍼의 소유권은 상기 제 2 애플리케이션으로 이전된다. 상기 제 2 애플리케이션은 상기 제 1 토큰을 사용하여 상기 공유 버퍼를 참조한다. 상기 제 2 애플리케이션은, 제 5 단계에서, 상기 제 1 토큰에 의하여 참조된 데이터를 처리하고, 상기 데이터의 처리가 완료됨에 따라 상기 공유 버퍼내의 데이터의 논리적 이미지를 미사용 상태가 되게 한다. 상기 데이터의 논리적 이미지의 미사용 상태가 완료됨에 따라(즉, 상기 공유 버퍼에 관련된 토큰이 더 이상 존재하지 않게 됨에 따라), 상기 기억 장치 관리자는, 제 6 단계에서, 상기 버퍼를 활용 가능한 버퍼들의 풀로 복귀시킨다.
도 8을 참조하면, 토큰을 사용하는 공유 버퍼를 통하여 도메인간의 데이터 전송을 제어하기 위한 통신 스택의 제어에 관한 동작을 도시한 흐름도이다. 요약하면, 도 8은 주토큰과 동일한 버퍼로 매핑하는 부토큰을 생성하는 기능을 제공함으로써 다수의 도메인간에 버퍼를 공유할 수 있는 능력을 도시한다. 각 토큰은 버퍼의 논리적 뷰(logical view)를 제공하며, 동일한 버퍼를 대표하는 다른 토큰과 독립적으로 사용될 수 있다. 상기 기억 장치 관리자는, 각 버퍼의 논리적 뷰와 각 버퍼를 소유하는 도메인의 개수를 계속하여 추적한다. 이것에 의하여, 각 도메인은 상기 버퍼내의 데이터를 사용하고, 완료된 후에는 그 논리적 뷰를 대표하는 토큰을 미사용 상태로 되게 할 수 있다. 상기 공유 버퍼는, 그의 논리적 뷰를 대표하는 모든 토큰이 미사용 상태로 된 이후에, 재할당을 위하여 활용 가능한 것으로 간주된다(즉, 활용 가능한 버퍼들의 풀로 복귀된다.). 결과적으로, 본 발명에 의하여, 통신 시스템의 노드에서 수신되어 버퍼내에 저장된 데이터는, 이를 물리적으로 상기 버퍼로부터 각 애플리케이션을 위한 고유의 기억 영역으로 이동하지 않은 채, 데이터가 수신된 모든 애플리케이션으로 전달될 수 있다. 버퍼내에 저장된 데이터를 하나의 애플리케이션 또는 도메인으로부터 다른 애플리케이션 또는 도메인으로 전달하기 위하여, 그 데이터의 수많은 사본을 만드는 것 대신에, 단순히 그 데이터를 위한 새로운 토큰(즉, 논리적 이미지)과 버퍼를 생성하는 것이 요구된다.
상기 통신 스택은 도 8의 단계 400으로부터 시작한다. 그 다음에, 상기 통신 스택은 상기 기억 장치 관리자로부터 공유 메모리 버퍼를 요구한다(단계 402). 상기 기억 장치 관리자는, 상기 통신 스택의 공유 메모리 버퍼에 대한 요구를 처리하고, 상기 활용 가능한 버퍼들의 풀로부터의 버퍼를 그에 관련된 주토큰과 함께 상기 통신 스택으로 복귀시킨다(단계 404). 그리고 나서, 상기 통신 스택은 상기 데이터를 상기 입력/출력 설비를 통해 상기 공유 메모리 버퍼로 읽어들인다(단계 406). 데이터를 상기 입력/출력 설비를 통해 상기 공유 메모리 버퍼로 읽어들이는 상기 단계 406은 도 7의 상기 제 2 단계에 해당한다.
다시 도 8을 참조하면, 상기 통신 스택은 상기 공유 메모리 버퍼내의 메시지의 개수가 1보다 큰가의 여부를 판단한다(단계 408). 만약 상기 공유 메모리 버퍼내의 메시지의 개수가 1보다 크다고 판단되었다면, 상기 통신 스택은 기억 장치 관리자로부터의 부토큰을 요구한다(단계 410). 상기 기억 장치 관리자는, 상기 통신 스택으로부터의 요구에 응답하여, 논리적 이미지를 생성하고 부토큰을 상기 통신 스택으로 복귀시킨다(단계 412). 그리고 나서, 상기 통신 스택은, 상기 데이터를 처리하기 위하여, 상기 데이터를 상기 부토큰과 함께 상기 애플리케이션의 인바운드 데이터 처리기 루틴(routine)으로 송신한다(단계 414).
만약 상기 공유 메모리 버퍼내의 메시지의 개수가 1보다 크지 않다(즉, 상기 공유 메모리 버퍼내에 단 하나의 메시지만이 존재한다)고 판단되었다면, 제어는 상기 단계 414로 이동하고, 상기 통신 스택은 상기 데이터를 상기 부토큰과 함께 상기 애플리케이션의 인바운드 데이터 처리기 루틴으로 송신하는데, 이에 관하여는 도 9를 참조하여 후술한다.
도 8의 흐름도에 도시된 상기 단계들(408, 410, 412 및 414)은 도 7의 블록도의 제 3 단계에 해당한다.
그리고 나서, 상기 통신 스택은 상기 공유 버퍼에 메시지가 더 남아 있는가의 여부를 판단한다(단계 416). 만약 상기 통신 스택이 상기 공유 버퍼내에 남아 있는 메시지가 존재한다고 판단하였다면, 제어는 상기 공유 버퍼에 얼마나 많은 메시지가 잔존하는지를 판단하기 위하여 상기 단계 408로 이동한다. 만약 상기 통신 스택이 상기 단계 416에서 상기 공유 버퍼에 더 이상의 메시지가 남아 있지 않다고 판단하였다면, 제어는 상기 통신 스택이 상기 기억 장치 관리자로부터 공유 메모리 버퍼를 요구하기 위한 상기 단계 402로 복귀한다.
도 9를 참조하면, 토큰을 사용하여 대규모의 데이터 객체를 처리하기 위한 애플리케이션의 인바운드 데이터 처리기의 동작을 도시한 흐름도이다. 상기 통신 관리자가 도 8의 상기 단계 414에서 상기 애플리케이션의 인바운드 데이터 처리기 루틴으로 상기 공유 메모리 버퍼에 대한 토큰을 송신한 결과로서, 애플리케이션이 수행되기 시작한다. 상기 애플리케이션 인바운드 데이터 처리기가 토큰을 사용하여 대규모의 데이터 객체를 처리하는 것이 단계 500에서 시작된다. 시작하게 되면, 상기 애플리케이션은 상기 통신 스택에 의하여 공유 메모리 버퍼내에 저장된 인바운드 데이터에 대하여 폴링(polling)한다(단계 502). 상기 애플리케이션은 상기 공유 메모리 버퍼내의 데이터를 처리(단계 504)하고, 이어서 토큰을 파라미터로서 상기 기억 장치 관리자로 전달함으로써 상기 공유 메모리의 소유권을 상기 기억 장치 관리자에 복귀시킨다(단계 506). 상기 애플리케이션의 인바운드 데이터 관리자 루틴의 단계들(단계 504 및 단계 506)은 도 7의 상기 제 4 단계 및 제 5 단계에 해당한다.
그리고 나서, 상기 기억 장치 관리자는 아웃스탠딩 버퍼 토큰(outstanding buffer token)의 개수를 하나 감소시킨다(단계 508). 그 다음에, 상기 기억 장치 관리자는 상기 아웃스탠딩 버퍼 토큰의 개수가 영(0)인지의 여부를 판단한다. 만약 상기 기억 장치 관리자가 상기 아웃스탠딩 버퍼 토큰의 개수가 영(0)이라고 판단하였다면, 상기 기억 장치 관리자는 상기 공유 메모리 버퍼를 상기 활용 가능한 버퍼들의 풀로 복귀(단계 512)시키고, 상기 애플리케이션은 계속하여 인바운드 데이터에 대하여 폴링한다(단계 502). 만약 상기 기억 장치 관리자가 상기 아웃스탠딩 버퍼 토큰의 개수가 영(0)이 아니라고 판단하였다면, 상기 애플리케이션은 단지 계속하여 인바운드 데이터에 대하여 폴링한다(단계 502). 도 9의 흐름도의 상기 단계들(단계 508 내지 512)은 도 7의 상기 제 6 단계에 해당한다.
다른 실시예에서는, 상기 기억 장치 관리자는, 상기 버퍼를 활용 가능한 버퍼들의 풀로 복귀시키는 대신에, 그 원래의 요구 장치(original requester)에 상기 버퍼의 소유권을 복귀시킬 수 있다. 이것은, 상기 원래의 요구 장치로 하여금, 모든 이후의 사용자들(즉, 모든 다른 애플리케이션 또는 도메인)에 의하여 미사용 상태가 될 때 상기 버퍼가 복귀될 미사용 루틴(free routine)을 지정하게 함으로써 달성할 수 있다. 상기 기억 장치 관리자는, 상기 버퍼가 도메인들간에 전달됨에 따라 계속하여 상기 원래의 소유자와 모든 이후의 소유권의 변경을 추적한다. 버퍼가 최종 수신 도메인에 의하여 미사용 상태로 될 때, 상기 기억 장치 관리자는, 상기 버퍼를 미사용 상태로 되게 하기 위한 루틴을 초기화하기 전에, 상기 버퍼의 소유권을 상기 원래의 요구 장치에 재할당한다. 이러한 소유권 추적(ownership tracking)과 상기 버퍼를 요구하는 원래의 도메인으로 상기 버퍼를 복귀시키는 것은, 상기 버퍼를 사용하는 중간의 어떤 도메인도 이를 인식하지 못한 채 수행된다. 상기 중간의 도메인은 단지 상기 버퍼를 사용하고 상기 버퍼의 소유권을 다음 도메인으로 전달한다. 최후의 도메인은 궁극적으로, 재할당되도록 활용 가능한 버퍼들의 풀로 버퍼를 정규적으로 복귀시키는 동일한 버퍼 미사용 기능을 사용하여, 상기 버퍼를 미사용 상태로 되게 한다. 이 기능에 의하여, 복사하지 않고서 필요로 하는 모든 당사자들이 데이터를 사용할 수 있으며, 상기 버퍼의 소유권은 궁극적으로 원래의 요구 도메인에 의한 이후의 사용을 위하여 상기 원래의 도메인으로 복귀된다는 점에서 성능의 향상을 가져온다. 이러한 상기 버퍼의 소유권이 상기 버퍼를 원래 요구했던 애플리케이션(즉, 제 1 애플리케이션)으로 복귀되는 본 발명의 다른 실시예는 도 10A 내지 10D에 예시되었다.
본 발명에 의하면, 통신 시스템내에서 상대적으로 대규모인 데이터 객체의 전송을 제어함으로써, 통신 시스템의 성능을 향상시킬 수 있다.
또한, 본 발명에 의하면, 도메인간에 단지 상대적으로 소규모인 데이터 객체의 전송만을 위하여 최적화된 성능을 가진 통신 시스템에서, 상기 도메인간에 상대적으로 대규모인 데이터 객체의 전송을 효율적으로 할 수 있다.
상기한 바와 같이, 본 발명의 전형적인 바람직한 실시예를 첨부된 도면과 함께 상세히 설명하였으며, 특정의 용어가 채용되었으나 그들은 일반적이고 기술적인 의미로만 사용된 것이지 그 제한을 위한 것이 아니다. 본 발명의 범위는 첨부된 특허 청구의 범위에 의하여 밝혀진다.

Claims (36)

  1. 다수의 도메인 사이에 상대적으로 소규모인 데이터 객체의 효율적인 전송만을 위해 성능이 최적화된 통신 시스템에서, 다수의 도메인 사이에 상대적으로 대규모인 데이터 객체의 전송을 제어하기 위한 시스템에 있어서,
    상대적으로 대규모인 데이터 객체를 저장하기 위한 다수의 버퍼;
    데이터를 처리할 수 있는 애플리케이션을 각각 대표하는 다수의 도메인 - 상기 다수의 도메인은, 상기 다수의 버퍼중의 제 1 버퍼에 저장된 상대적으로 대규모인 데이터 객체를 처리할 수 있는 제 1 애플리캐이션을 대표하는 제 1 도메인과, 상기 다수의 버퍼중의 상기 제 1 버퍼에 저장된 상대적으로 대규모인 데이터 객체를 처리할 수 있는 제 2 애플리캐이션을 대표하는 제 2 도메인을 포함함 - ;
    상기 상대적으로 대규모인 데이터 객체가 저장된 상기 제 1 버퍼의 소유권을 상기 제 1 도메인에 할당하고, 상기 제 1 버퍼에 저장된 상기 상대적으로 대규모인 데이터 객체가 물리적으로 이동할 것을 요구하지 않고, 또한 상기 제 1 버퍼에 저장된 상기 상대적으로 대규모인 데이터 객체를 복사할 것을 요구하지 않으면서, 상기 상대적으로 대규모인 데이터 객체가 저장된 상기 제 1 버퍼를 상기 제 1 도메인으로부터 상기 제 2 도메인으로 전송하기 위한 소유권 제어 수단을 포함하는 전송 제어 시스템.
  2. 제 1 항에 있어서,
    상기 소유권 제어 수단은,
    상기 다수의 버퍼중의 상기 제 1 버퍼를 대표하기 위한 제 1 주토큰(primary token) 수단;
    상기 다수의 버퍼중의 상기 제 1 버퍼의 제 1 논리적 뷰(logical view)를 대표하기 위한 제 1 부토큰(secondary token) 수단;
    상기 제 1 버퍼를 상기 다수의 도메인중의 제 1 도메인에 고유하게 결합시키며, 상기 제 1 부토큰 수단을 상기 제 1 주토큰 수단에 의하여 식별된 상기 다수의 버퍼중의 제 1 버퍼에 고유하게 결합시키며, 상기 제 1 부토큰 수단을 상기 다수의 도메인중의 제 2 도메인에 고유하게 결합시키는 기억 장치 관리자 수단을 포함하는 전송 제어 시스템.
  3. 제 2 항에 있어서,
    상기 시스템이, 상기 다수의 버퍼중의 상기 제 1 버퍼의 제 2 논리적 뷰를 대표하기 위한 제 2 부토큰 수단을 더 포함하며;
    상기 다수의 도메인이, 상기 제 1 버퍼에 저장된 데이터를 처리할 수 있는 제 3 애플리케이션을 대표하기 위한 제 3 도메인을 더 포함하며;
    상기 기억 장치 관리자 수단이, 상기 제 2 부토큰 수단을 상기 제 1 주토큰 수단에 의하여 식별되는 상기 다수의 버퍼중의 제 1 버퍼에 결합시키고, 상기 제 2 부토큰 수단을 상기 다수의 도메인중의 상기 제 3 도메인에 결합시키며;
    그리하여, 상기 제 1 버퍼에 저장된 상기 상대적으로 대규모인 데이터 객체를 물리적으로 이동할 것을 요구하지 않고, 또한 상기 제 1 버퍼에 저장된 상기 상대적으로 대규모인 데이터 객체를 복사할 것을 요구하지 않으면서, 상기 제 1 버퍼에 저장된 상기 상대적으로 대규모인 데이터 객체를 상기 제 2 도메인으로부터 상기 제 3 도메인으로 전달할 수 있는 전송 제어 시스템.
  4. 제 2 항에 있어서,
    상기 기억 장치 관리자 수단이,
    상기 다수의 버퍼중의 제 1 버퍼에 결합된 부토큰 수단의 개수를 계산하기 위한 수단을 포함하는 전송 제어 시스템.
  5. 제 4 항에 있어서,
    상기 제 1 도메인이 상기 다수의 버퍼중의 제 1 버퍼에 저장된 상대적으로 대규모인 데이터 객체를 처리하며, 상기 제 2 도메인이 상기 다수의 버퍼중의 제 1 버퍼에 저장된 상대적으로 대규모인 데이터 객체를 처리하는 데이터 프로세서(data processor)를 더 포함하는 전송 제어 시스템.
  6. 제 5 항에 있어서,
    상기 기억 장치 관리자 수단은,
    상기 데이터 프로세서상의 상기 제 2 도메인에 의하여 상기 다수의 버퍼중의 제 1 버퍼의 데이터 처리가 완료됨에 따라, 상기 제 1 주토큰 수단에 의하여 식별되는 상기 다수의 버퍼중의 제 1 버퍼로부터 상기 제 1 부토큰 수단을 분리시키기 위한 수단; 및
    상기 데이터 프로세서상의 상기 제 1 도메인에 의하여 상기 다수의 버퍼중의 제 1 버퍼의 데이터 처리가 완료됨에 따라, 상기 제 1 주토큰 수단에 의하여 식별되는 상기 다수의 버퍼중의 제 1 버퍼로부터 상기 제 1 주토큰 수단을 분리시키기 위한 수단을 더 포함하는 전송 제어 시스템.
  7. 제 6 항에 있어서,
    상기 기억 장치 관리자 수단은,
    상기 다수의 버퍼중의 제 1 버퍼로부터 상기 제 1 부토큰 수단을 분리시킴에 따라, 또한 상기 다수의 버퍼중의 제 1 버퍼로부터 상기 제 1 주토큰 수단을 분리시킴에 따라, 상기 다수의 버퍼중의 제 1 버퍼를 재할당하기 위한 수단을 더 포함하는 전송 제어 시스템.
  8. 제 1 항에 있어서,
    상기 소유권 제어 수단은,
    상기 다수의 버퍼중의 제 1 버퍼의 소유권을 표시하기 위한 주토큰 수단; 및
    상기 제 1 버퍼에 저장된 상기 상대적으로 대규모인 데이터 객체가 물리적으로 이동할 것을 요구하지 않고, 또한 상기 제 1 버퍼에 저장된 상기 상대적으로 대규모인 데이터 객체를 복사할 것을 요구하지 않으면서, 상기 제 1 도메인이 상기 제 1 버퍼를 소유함을 표시하기 위하여, 상기 주토큰 수단을 사용하여 상기 다수의 도메인중의 제 1 도메인에 상기 제 1 버퍼를 고유하게 결합시키며,
    상기 제 1 도메인에 의하여 상기 제 1 버퍼의 데이터의 처리를 완료함에 따라, 상기 주토큰 수단을 사용하여 상기 제 1 도메인으로부터 상기 제 1 버퍼를 분리시키며,
    상기 제 2 도메인이상기 제 1 버퍼를 소유함을 표시하기 위하여, 상기 주토큰 수단을 사용하여 상기 다수의 도메인중의 제 2 도메인에 상기 제 1 버퍼를 고유하게 결합시키기 위한 기억 장치 관리자 수단을 포함하는 전송 제어 시스템.
  9. 제 8 항에 있어서,
    상기 기억 장치 관리자 수단은,
    상기 제 2 도메인에 의하여 상기 제 1 버퍼의 데이터의 처리가 완료됨에 따라, 상기 주토큰 수단을 사용하여 상기 제 2 도메인으로부터 상기 제 1 버퍼를 분리시키기 위한 수단을 더 포함하는 전송 제어 시스템.
  10. 제 9 항에 있어서,
    상기 기억 장치 관리자 수단은,
    상기 제 2 도메인에 의하여 상기 제 1 버퍼의 데이터의 처리가 완료된 후에, 상기 제 1 버퍼가 사용 가능함을 표시하기 위하여, 상기 제 1 버퍼로부터 상기 주토큰 수단을 분리시킴에 따라 상기 다수의 버퍼들중의 제 1 버퍼를 재할당하기 위한 수단을 더 포함하는 전송 제어 시스템.
  11. 제 9 항에 있어서,
    상기 기억 장치 관리자 수단은,
    상기 제 1 도메인이 상기 제 1 버퍼를 소유함을 표시하기 위하여, 상기 주토큰 수단을 사용하여 상기 다수의 도메인중의 제 1 도메인에 상기 제 1 버퍼를 고유하게 재할당하기 위한 수단을 더 포함하는 전송 제어 시스템.
  12. 제 1 항에 있어서,
    상기 통신 시스템은 가상 통신 접근 방식(Virtual Telecommunication Access Method)(VTAM) 시스템인 전송 제어 시스템.
  13. 다수의 도메인 사이에 상대적으로 소규모인 데이터 객체의 효율적인 전송만을 위해 성능이 최적화된 통신 시스템 - 상기 통신 시스템은 상대적으로 대규모인 데이터 객체를 저장하기 위한 다수의 버퍼를 구비함 - 에서, 각각 상대적으로 대규모인 데이터 객체를 처리할 수 있는 애플리케이션을 대표하는 다수의 도메인 사이에 상대적으로 대규모인 데이터 객체의 전송을 제어하기 위한 방법에 있어서,
    상기 다수의 버퍼중의 제 1 버퍼에 상대적으로 대규모인 데이터 객체를 저장하는 단계;
    상기 다수의 도메인중의 제 1 도메인과, 상기 다수의 버퍼중의 제 1 버퍼에 저장된 상기 상대적으로 대규모인 데이터 객체를 처리할 수 있는 제 2 애플리케이션을 대표하는 제 2 도메인을 사용하여, 상기 다수의 버퍼중의 제 1 버퍼에 저장된 상기 상대적으로 대규모인 데이터 객체를 처리하는 단계;
    상대적으로 대규모인 데이터 객체가 저장된 상기 제 1 버퍼의 소유권을 상기 다수의 도메인중의 제 1 도메인에 할당하는 단계;
    상기 제 1 버퍼에 저장된 상기 상대적으로 대규모인 데이터 객체가 물리적으로 이동할 것을 요구하지 않고, 또한 상기 제 1 버퍼에 저장된 상기 상대적으로 대규모인 데이터 객체를 복사할 것을 요구하지 않으면서, 상기 상대적으로 대규모인 데이터 객체가 저장된 상기 제 1 버퍼를 상기 다수의 도메인중의 제 1 도메인으로부터 제 2 도메인으로 전송하는 단계를 포함하는 전송 제어 방법.
  14. 제 13 항에 있어서,
    상기 할당하는 단계가, 상기 다수의 버퍼중의 제 1 버퍼를 대표하기 위한 제 1 주토큰을 생성하는 단계를 포함하며,
    상기 상대적으로 대규모인 데이터 객체의 전송 제어 방법이,
    상기 다수의 버퍼중의 제 1 버퍼의 제 1 논리적 뷰를 대표하기 위한 제 1 부토큰을 생성하는 단계;
    상기 제 1 버퍼를, 상기 다수의 도메인중의 상기 제 1 도메인에 고유하게 결합시키는 단계;
    상기 제 1 부토큰을, 상기 제 1 주토큰에 의하여 식별되는 상기 다수의 버퍼중의 제 1 버퍼에 고유하게 결합시키는 단계;
    상기 제 1 부토큰을 상기 다수의 도메인중의 제 2 도메인에 고유하게 결합시키는 단계를 더 포함하는 전송 제어 방법.
  15. 제 14 항에 있어서,
    상기 다수의 버퍼중의 제 1 버퍼의 제 2 논리적 뷰를 대표하기 위한 제 2 부토큰을 생성하는 단계;
    상기 제 2 부토큰을, 상기 제 1 주토큰에 의하여 식별되는 상기 다수의 버퍼중의 제 1 버퍼에 고유하게 결합시키는 단계;
    상기 제 2 부토큰을, 상기 다수의 도메인중의 제 3 도메인에 결합시키는 단계를 더 포함하며,
    상기 전송하는 단계가,
    상기 제 1 버퍼에 저장된 상기 상대적으로 대규모인 데이터 객체가 물리적으로 이동할 것을 요구하지 않고, 또한 상기 제 1 버퍼에 저장된 상기 상대적으로 대규모인 데이터 객체를 복사할 것을 요구하지 않으면서, 상기 제 1 버퍼에 저장된 상기 상대적으로 대규모인 데이터 객체를 상기 다수의 도메인중의 제 2 도메인으로부터 제 3 도메인으로 전송하는 단계를 포함하는 전송 제어 방법.
  16. 제 14 항에 있어서,
    상기 전송하는 단계가,
    상기 다수의 버퍼중의 제 1 버퍼에 결합된 부토큰 수단의 개수를 계산하는 단계를 더 포함하는 전송 제어 방법.
  17. 제 16 항에 있어서,
    데이터 프로세서상에서 상기 제 1 도메인을 사용하여 상기 다수의 버퍼중의 제 1 버퍼에 저장된 상기 상대적으로 대규모인 데이터 객체를 처리하는 단계;
    데이터 프로세서상에서 상기 제 2 도메인을 사용하여 상기 다수의 버퍼중의 제 1 버퍼에 저장된 상기 상대적으로 대규모인 데이터 객체를 처리하는 단계를 더 포함하는 전송 제어 방법.
  18. 제 17 항에 있어서,
    상기 전송하는 단계가,
    상기 데이터 프로세서상의 상기 제 2 도메인에 의하여 상기 다수의 버퍼중의 제 1 버퍼의 데이터 처리가 완료됨에 따라, 상기 제 1 주토큰에 의하여 식별되는 상기 다수의 버퍼중의 제 1 버퍼로부터 상기 제 1 부토큰 수단을 분리시키는 단계;
    상기 데이터 프로세서상의 상기 제 1 도메인에 의하여 상기 다수의 버퍼중의 제 1 버퍼의 데이터 처리가 완료됨에 따라, 상기 제 1 주토큰에 의하여 식별되는 상기 다수의 버퍼중의 제 1 버퍼로부터 상기 제 1 주토큰 수단을 분리시키는 단계를 더 포함하는 전송 제어 방법.
  19. 제 18 항에 있어서,
    상기 전송하는 단계가,
    상기 다수의 버퍼중의 제 1 버퍼로부터 상기 제 1 부토큰 수단을 분리시킴에 따라, 또한 상기 다수의 버퍼중의 제 1 버퍼로부터 상기 제 1 주토큰 수단을 분리시킴에 따라, 상기 다수의 버퍼중의 제 1 버퍼를 재할당하는 단계를 더 포함하는 전송 제어 방법.
  20. 제 13 항에 있어서,
    상기 할당하는 단계가,
    상기 다수의 버퍼중의 제 1 버퍼의 소유권을 표시하기 위한 주토큰을 생성하는 단계;
    상기 제 1 도메인이 상기 제 1 버퍼를 소유함을 표시하기 위하여, 상기 주토큰을 사용하여 상기 다수의 도메인중의 제 1 도메인에 상기 제 1 버퍼를 고유하게 결합하는 단계를 더 포함하며,
    상기 전송하는 단계가,
    상기 데이터 프로세서상의 상기 제 1 도메인에 의하여 상기 제 1 버퍼의 데이터 처리가 완료됨에 따라, 상기 주토큰을 사용하여 상기 제 1 도메인으로부터 상기 제 1 버퍼를 분리시키는 단계;
    상기 제 1 버퍼에 저장된 상기 상대적으로 대규모인 데이터 객체가 물리적으로 이동할 것을 요구하지 않고, 또한 상기 제 1 버퍼에 저장된 상기 상대적으로 대규모인 데이터 객체를 복사할 것을 요구하지 않으면서, 상기 제 2 도메인이 상기 제 1 버퍼를 소유함을 표시하기 위하여, 상기 주토큰을 사용하여 상기 다수의 도메인중의 제 2 도메인에 상기 제 1 버퍼를 고유하게 결합시키는 단계를 포함하는 전송 제어 방법.
  21. 제 20 항에 있어서,
    상기 제 2 도메인에 의하여 상기 제 1 버퍼의 데이터의 처리가 완료됨에 따라, 상기 주토큰을 사용하여 상기 제 2 도메인으로부터 상기 제 1 버퍼를 분리시키는 단계를 더 포함하는 전송 제어 방법.
  22. 제 21 항에 있어서,
    상기 제 2 도메인에 의하여 상기 제 1 버퍼의 데이터의 처리가 완료된 후에, 상기 제 1 버퍼가 사용 가능함을 표시하기 위하여, 상기 제 1 버퍼로부터 상기 주토큰을 분리시킴에 따라 상기 다수의 버퍼들중의 제 1 버퍼를 재할당하는 단계를 더 포함하는 전송 제어 방법.
  23. 제 21 항에 있어서,
    상기 제 1 도메인이 상기 제 1 버퍼를 소유함을 표시하기 위하여, 상기 주토큰을 사용하여 상기 다수의 도메인중의 제 1 도메인에 상기 제 1 버퍼를 고유하게 재할당하는 단계를 더 포함하는 전송 제어 방법.
  24. 제 13 항에 있어서,
    상기 통신 시스템은 가상 통신 접근 방식(Virtual Telecommunication Access Method)(VTAM) 시스템인 전송 제어 방법.
  25. 상대적으로 소규모인 데이터 객체의 효율적인 전송만을 위해 성능이 최적화된 통신 시스템 - 상기 통신 시스템은, 처리 장치상에서 실행될 때 상대적으로 대규모인 데이터 객체를 처리할 수 있는 애플리케이션을 각각 대표하는 다수의 도메인과, 상대적으로 대규모인 데이터 객체를 저장하기 위한 다수의 버퍼를 구비함 - 에서, 상대적으로 대규모인 데이터 객체의 전송을 제어하기 위한 컴퓨터 프로그램 제품에 있어서,
    컴퓨터에 의하여 판독 가능한 코드 수단이 구현된 컴퓨터에 의하여 판독 가능한 기억 매체를 포함하며,
    상기 컴퓨터에 의하여 판독 가능한 코드 수단은,
    상기 다수의 버퍼중의 제 1 버퍼에 상대적으로 대규모인 데이터 객체를 저장하기 위한 컴퓨터 명령 수단;
    상기 다수의 도메인중의 제 1 도메인과, 상기 다수의 버퍼중의 제 1 버퍼에 저장된 상기 상대적으로 대규모인 데이터 객체를 처리할 수 있는 제 2 애플리케이션을 대표하는 제 2 도메인을 사용하여, 상기 다수의 버퍼중의 제 1 버퍼에 저장된 상기 상대적으로 대규모인 데이터 객체를 처리하기 위한 컴퓨터 명령 수단;
    상대적으로 대규모인 데이터 객체가 저장된 상기 제 1 버퍼의 소유권을 상기 다수의 도메인중의 제 1 도메인에 할당하기 위한 컴퓨터 명령 수단;
    상기 제 1 버퍼에 저장된 상기 상대적으로 대규모인 데이터 객체가 물리적으로 이동할 것을 요구하지 않고, 또한 상기 제 1 버퍼에 저장된 상기 상대적으로 대규모인 데이터 객체를 복사할 것을 요구하지 않으면서, 상기 상대적으로 대규모인 데이터 객체가 저장된 상기 제 1 버퍼를 상기 다수의 도메인중의 제 1 도메인으로부터 제 2 도메인으로 전송하기 위한 컴퓨터 명령 수단을 포함하는 전송 제어를 위한 컴퓨터 프로그램 제품.
  26. 제 25 항에 있어서,
    상기 할당하기 위한 컴퓨터 명령 수단이, 상기 다수의 버퍼중의 제 1 버퍼를 대표하기 위한 제 1 주토큰을 생성하기 위한 컴퓨터 명령 수단을 포함하며,
    상기 컴퓨터 프로그램 제품이,
    상기 다수의 버퍼중의 제 1 버퍼의 제 1 논리적 뷰를 대표하기 위한 제 1 부토큰을 생성하기 위한 컴퓨터 명령 수단;
    상기 제 1 버퍼를, 상기 다수의 도메인중의 상기 제 1 도메인에 고유하게 결합시키기 위한 컴퓨터 명령 수단;
    상기 제 1 부토큰을, 상기 제 1 주토큰에 의하여 식별되는 상기 다수의 버퍼중의 제 1 버퍼에 고유하게 결합시키기 위한 컴퓨터 명령 수단;
    상기 제 1 부토큰을 상기 다수의 도메인중의 제 2 도메인에 고유하게 결합시키기 위한 컴퓨터 명령 수단을 더 포함하는 전송 제어를 위한 컴퓨터 프로그램 제품.
  27. 제 26 항에 있어서,
    상기 다수의 버퍼중의 제 1 버퍼의 제 2 논리적 뷰를 대표하기 위한 제 2 부토큰을 생성하기 위한 컴퓨터 명령 수단;
    상기 제 2 부토큰을, 상기 제 1 주토큰에 의하여 식별되는 상기 다수의 버퍼중의 제 1 버퍼에 고유하게 결합시키기 위한 컴퓨터 명령 수단;
    상기 제 2 부토큰을, 상기 다수의 도메인중의 제 3 도메인에 결합시키기 위한 컴퓨터 명령 수단을 더 포함하며,
    상기 전송하기 위한 컴퓨터 명령 수단이,
    상기 제 1 버퍼에 저장된 상기 상대적으로 대규모인 데이터 객체가 물리적으로 이동할 것을 요구하지 않고, 또한 상기 제 1 버퍼에 저장된 상기 상대적으로 대규모인 데이터 객체를 복사할 것을 요구하지 않으면서, 상기 제 1 버퍼에 저장된 상기 상대적으로 대규모인 데이터 객체를 상기 다수의 도메인중의 제 2 도메인으로부터 제 3 도메인으로 전송하기 위한 컴퓨터 명령 수단을 포함하는 전송 제어를 위한 컴퓨터 프로그램 제품.
  28. 제 26 항에 있어서,
    상기 전송하기 위한 컴퓨터 명령 수단이,
    상기 다수의 버퍼중의 제 1 버퍼에 결합된 부토큰의 개수를 계산하기 위한 컴퓨터 명령 수단을 더 포함하는 전송 제어를 위한 컴퓨터 프로그램 제품.
  29. 제 28 항에 있어서,
    데이터 프로세서상에서 상기 제 1 도메인을 사용하여 상기 다수의 버퍼중의 제 1 버퍼에 저장된 상기 상대적으로 대규모인 데이터 객체를 처리하기 위한 컴퓨터 명령 수단;
    데이터 프로세서상에서 상기 제 2 도메인을 사용하여 상기 다수의 버퍼중의 제 1 버퍼에 저장된 상기 상대적으로 대규모인 데이터 객체를 처리하기 위한 컴퓨터 명령 수단을 더 포함하는 전송 제어를 위한 컴퓨터 프로그램 제품.
  30. 제 29 항에 있어서,
    상기 전송하기 위한 컴퓨터 명령 수단은,
    상기 데이터 프로세서상의 상기 제 2 도메인에 의하여 상기 다수의 버퍼중의 제 1 버퍼의 데이터 처리가 완료됨에 따라, 상기 제 1 주토큰에 의하여 식별되는 상기 다수의 버퍼중의 제 1 버퍼로부터 상기 제 1 부토큰을 분리시키기 위한 컴퓨터 명령 수단;
    상기 데이터 프로세서상의 상기 제 1 도메인에 의하여 상기 다수의 버퍼중의 제 1 버퍼의 데이터 처리가 완료됨에 따라, 상기 제 1 주토큰에 의하여 식별되는 상기 다수의 버퍼중의 제 1 버퍼로부터 상기 제 1 주토큰을 분리시키기 위한 컴퓨터 명령 수단을 더 포함하는 전송 제어를 위한 컴퓨터 프로그램 제품.
  31. 제 30 항에 있어서,
    상기 전송하기 위한 컴퓨터 명령 수단이,
    상기 다수의 버퍼중의 제 1 버퍼로부터 상기 제 1 부토큰을 분리시킴에 따라, 또한 상기 다수의 버퍼중의 제 1 버퍼로부터 상기 제 1 주토큰을 분리시킴에 따라, 상기 다수의 버퍼중의 제 1 버퍼를 재할당하기 위한 컴퓨터 명령 수단을 더 포함하는 전송 제어를 위한 컴퓨터 프로그램 제품.
  32. 제 25 항에 있어서,
    상기 할당하기 위한 컴퓨터 명령 수단이,
    상기 다수의 버퍼중의 제 1 버퍼의 소유권을 표시하기 위한 주토큰을 생성하기 위한 컴퓨터 명령 수단;
    상기 제 1 도메인이 상기 제 1 버퍼를 소유함을 표시하기 위하여, 상기 주토큰을 사용하여 상기 다수의 도메인중의 제 1 도메인에 상기 제 1 버퍼를 고유하게 결합하기 위한 컴퓨터 명령 수단을 더 포함하며,
    상기 전송하기 위한 컴퓨터 명령 수단이,
    상기 데이터 프로세서상의 상기 제 1 도메인에 의하여 상기 제 1 버퍼의 데이터 처리가 완료됨에 따라, 상기 주토큰을 사용하여 상기 제 1 도메인으로부터 상기 제 1 버퍼를 분리시키기 위한 컴퓨터 명령 수단;
    상기 제 1 버퍼에 저장된 상기 상대적으로 대규모인 데이터 객체가 물리적으로 이동할 것을 요구하지 않고, 또한 상기 제 1 버퍼에 저장된 상기 상대적으로 대규모인 데이터 객체를 복사할 것을 요구하지 않으면서, 상기 제 2 도메인이 상기 제 1 버퍼를 소유함을 표시하기 위하여, 상기 주토큰을 사용하여 상기 다수의 도메인중의 제 2 도메인에 상기 제 1 버퍼를 고유하게 결합시키기 위한 컴퓨터 명령 수단을 포함하는 전송 제어를 위한 컴퓨터 프로그램 제품.
  33. 제 32 항에 있어서,
    상기 제 2 도메인에 의하여 상기 제 1 버퍼의 데이터의 처리가 완료됨에 따라, 상기 주토큰을 사용하여 상기 제 2 도메인으로부터 상기 제 1 버퍼를 분리시키기 위한 컴퓨터 명령 수단을 더 포함하는 전송 제어를 위한 컴퓨터 프로그램 제품.
  34. 제 33 항에 있어서,
    상기 제 2 도메인에 의하여 상기 제 1 버퍼의 데이터의 처리가 완료된 후에, 상기 제 1 버퍼가 사용 가능함을 표시하기 위하여, 상기 제 1 버퍼로부터 상기 주토큰을 분리시킴에 따라 상기 다수의 버퍼들중의 제 1 버퍼를 재할당하기 위한 컴퓨터 명령 수단을 더 포함하는 전송 제어를 위한 컴퓨터 프로그램 제품.
  35. 제 33 항에 있어서,
    상기 제 1 도메인이 상기 제 1 버퍼를 소유함을 표시하기 위하여, 상기 주토큰을 사용하여 상기 다수의 도메인중의 제 1 도메인에 상기 제 1 버퍼를 고유하게 재할당하기 위한 컴퓨터 명령 수단을 더 포함하는 전송 제어를 위한 컴퓨터 프로그램 제품.
  36. 제 25 항에 있어서,
    상기 통신 시스템은 가상 통신 접근 방식(Virtual Telecommunication Access Method)(VTAM) 시스템인 전송 제어를 위한 컴퓨터 프로그램 제품.
KR1019970056057A 1997-02-19 1997-10-29 통신 시스템내에서 상대적으로 대규모인 데이터 객체의 전송을 제어하기 위한 시스템 및 그 방법 KR100241218B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/802,596 1997-02-19
US8/802,596 1997-02-19
US08/802,596 US5909553A (en) 1997-02-19 1997-02-19 Systems and methods for controlling the transmission of relatively large data objects in a communications system

Publications (2)

Publication Number Publication Date
KR19980070053A true KR19980070053A (ko) 1998-10-26
KR100241218B1 KR100241218B1 (ko) 2000-02-01

Family

ID=25184167

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970056057A KR100241218B1 (ko) 1997-02-19 1997-10-29 통신 시스템내에서 상대적으로 대규모인 데이터 객체의 전송을 제어하기 위한 시스템 및 그 방법

Country Status (4)

Country Link
US (1) US5909553A (ko)
JP (1) JP3364587B2 (ko)
KR (1) KR100241218B1 (ko)
CA (1) CA2228334A1 (ko)

Families Citing this family (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6081834A (en) * 1998-04-15 2000-06-27 Unisys Corporation Network data path interface method and system for enhanced data transmission
US6161153A (en) * 1998-07-30 2000-12-12 Micron Technology, Inc. Method for sharing data buffers from a buffer pool
US20030158890A1 (en) * 2002-01-31 2003-08-21 Miller Layne B. Channel communication mechanism
US20040215578A1 (en) * 2003-04-09 2004-10-28 Nokia, Inc. Controlling usage of system resources by a network manager
US8200918B2 (en) 2004-10-01 2012-06-12 International Business Machines Corporation Tracking ownership of memory in a data processing system through use of a memory monitor
US7668186B1 (en) * 2006-03-07 2010-02-23 Xilinx, Inc. Token ecosystem for buffer management
US7778986B2 (en) * 2007-08-29 2010-08-17 International Business Machines Corporation Securing transfer of ownership of a storage object from an unavailable owner node to another node
US7991822B2 (en) * 2007-08-29 2011-08-02 International Business Machines Corporation Propagation of updates for attributes of a storage object from an owner node of the storage object to other nodes
US7899895B2 (en) * 2007-08-29 2011-03-01 International Business Machines Corporation Transfer of ownership of a storage object in response to an original owner node becoming available after a period of unavailability
US8270299B2 (en) * 2008-11-10 2012-09-18 International Business Machines Corporation Communicator-based token/buffer management for eager protocol support in collective communication operations
US8484422B2 (en) 2009-12-08 2013-07-09 International Business Machines Corporation Maintaining data coherence by using data domains
US9053065B2 (en) * 2012-12-10 2015-06-09 Vmware, Inc. Method for restoring virtual machine state from a checkpoint file
US9053064B2 (en) * 2012-12-10 2015-06-09 Vmware, Inc. Method for saving virtual machine state to a checkpoint file
US10454714B2 (en) 2013-07-10 2019-10-22 Nicira, Inc. Method and system of overlay flow control
US10749711B2 (en) 2013-07-10 2020-08-18 Nicira, Inc. Network-link method useful for a last-mile connectivity in an edge-gateway multipath system
US10498652B2 (en) 2015-04-13 2019-12-03 Nicira, Inc. Method and system of application-aware routing with crowdsourcing
US10135789B2 (en) 2015-04-13 2018-11-20 Nicira, Inc. Method and system of establishing a virtual private network in a cloud service for branch networking
US10425382B2 (en) 2015-04-13 2019-09-24 Nicira, Inc. Method and system of a cloud-based multipath routing protocol
US11334882B1 (en) * 2016-03-28 2022-05-17 United Services Automobile Association (Usaa) Data access management on a distributed ledger system
US11706127B2 (en) 2017-01-31 2023-07-18 Vmware, Inc. High performance software-defined core network
US10992558B1 (en) 2017-11-06 2021-04-27 Vmware, Inc. Method and apparatus for distributed data network traffic optimization
US20200036624A1 (en) 2017-01-31 2020-01-30 The Mode Group High performance software-defined core network
US20180219765A1 (en) 2017-01-31 2018-08-02 Waltz Networks Method and Apparatus for Network Traffic Control Optimization
US10992568B2 (en) 2017-01-31 2021-04-27 Vmware, Inc. High performance software-defined core network
US11121962B2 (en) 2017-01-31 2021-09-14 Vmware, Inc. High performance software-defined core network
US11252079B2 (en) 2017-01-31 2022-02-15 Vmware, Inc. High performance software-defined core network
US10778528B2 (en) 2017-02-11 2020-09-15 Nicira, Inc. Method and system of connecting to a multipath hub in a cluster
US10523539B2 (en) 2017-06-22 2019-12-31 Nicira, Inc. Method and system of resiliency in cloud-delivered SD-WAN
US11089111B2 (en) 2017-10-02 2021-08-10 Vmware, Inc. Layer four optimization for a virtual network defined over public cloud
US10999165B2 (en) 2017-10-02 2021-05-04 Vmware, Inc. Three tiers of SaaS providers for deploying compute and network infrastructure in the public cloud
US10999100B2 (en) 2017-10-02 2021-05-04 Vmware, Inc. Identifying multiple nodes in a virtual network defined over a set of public clouds to connect to an external SAAS provider
US11115480B2 (en) 2017-10-02 2021-09-07 Vmware, Inc. Layer four optimization for a virtual network defined over public cloud
US11005684B2 (en) 2017-10-02 2021-05-11 Vmware, Inc. Creating virtual networks spanning multiple public clouds
US11223514B2 (en) 2017-11-09 2022-01-11 Nicira, Inc. Method and system of a dynamic high-availability mode based on current wide area network connectivity
US11310170B2 (en) 2019-08-27 2022-04-19 Vmware, Inc. Configuring edge nodes outside of public clouds to use routes defined through the public clouds
US11044190B2 (en) 2019-10-28 2021-06-22 Vmware, Inc. Managing forwarding elements at edge nodes connected to a virtual network
US11489783B2 (en) 2019-12-12 2022-11-01 Vmware, Inc. Performing deep packet inspection in a software defined wide area network
US11394640B2 (en) 2019-12-12 2022-07-19 Vmware, Inc. Collecting and analyzing data regarding flows associated with DPI parameters
US11606712B2 (en) 2020-01-24 2023-03-14 Vmware, Inc. Dynamically assigning service classes for a QOS aware network link
US11245641B2 (en) 2020-07-02 2022-02-08 Vmware, Inc. Methods and apparatus for application aware hub clustering techniques for a hyper scale SD-WAN
US11709710B2 (en) 2020-07-30 2023-07-25 Vmware, Inc. Memory allocator for I/O operations
US11575591B2 (en) 2020-11-17 2023-02-07 Vmware, Inc. Autonomous distributed forwarding plane traceability based anomaly detection in application traffic for hyper-scale SD-WAN
US11575600B2 (en) 2020-11-24 2023-02-07 Vmware, Inc. Tunnel-less SD-WAN
US11929903B2 (en) 2020-12-29 2024-03-12 VMware LLC Emulating packet flows to assess network links for SD-WAN
US11792127B2 (en) 2021-01-18 2023-10-17 Vmware, Inc. Network-aware load balancing
US11979325B2 (en) 2021-01-28 2024-05-07 VMware LLC Dynamic SD-WAN hub cluster scaling with machine learning
US11509571B1 (en) 2021-05-03 2022-11-22 Vmware, Inc. Cost-based routing mesh for facilitating routing through an SD-WAN
US12009987B2 (en) 2021-05-03 2024-06-11 VMware LLC Methods to support dynamic transit paths through hub clustering across branches in SD-WAN
US11729065B2 (en) 2021-05-06 2023-08-15 Vmware, Inc. Methods for application defined virtual network service among multiple transport in SD-WAN
US12015536B2 (en) 2021-06-18 2024-06-18 VMware LLC Method and apparatus for deploying tenant deployable elements across public clouds based on harvested performance metrics of types of resource elements in the public clouds
US11489720B1 (en) 2021-06-18 2022-11-01 Vmware, Inc. Method and apparatus to evaluate resource elements and public clouds for deploying tenant deployable elements based on harvested performance metrics
US11375005B1 (en) 2021-07-24 2022-06-28 Vmware, Inc. High availability solutions for a secure access service edge application
US11943146B2 (en) 2021-10-01 2024-03-26 VMware LLC Traffic prioritization in SD-WAN
CN114627580B (zh) * 2022-03-11 2023-10-27 青岛海信智慧生活科技股份有限公司 智能门锁及其状态上报方法、家居设备联动系统
US11909815B2 (en) 2022-06-06 2024-02-20 VMware LLC Routing based on geolocation costs

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4228496A (en) * 1976-09-07 1980-10-14 Tandem Computers Incorporated Multiprocessor system
SE448919B (sv) * 1983-03-04 1987-03-23 Ibm Svenska Ab Metod for att overfora informationsenheter i ett datornetsystem, samt datornetsystem for genomforande av metoden
US4926322A (en) * 1987-08-03 1990-05-15 Compag Computer Corporation Software emulation of bank-switched memory using a virtual DOS monitor and paged memory management
US5055999A (en) * 1987-12-22 1991-10-08 Kendall Square Research Corporation Multiprocessor digital data processing system
US5027269A (en) * 1989-04-27 1991-06-25 International Business Machines Corporation Method and apparatus for providing continuous availability of applications in a computer network
US5269013A (en) * 1991-03-20 1993-12-07 Digital Equipment Corporation Adaptive memory management method for coupled memory multiprocessor systems
US5386536A (en) * 1991-03-28 1995-01-31 Courts; Howard R. Apparatus and method for managing memory allocation
US5278834A (en) * 1992-05-26 1994-01-11 Alcatel Network Systems, Inc. Method for implementing a data communication protocol stack
US5396614A (en) * 1992-06-25 1995-03-07 Sun Microsystems, Inc. Method and apparatus for a secure protocol for virtual memory managers that use memory objects

Also Published As

Publication number Publication date
US5909553A (en) 1999-06-01
JP3364587B2 (ja) 2003-01-08
JPH10301873A (ja) 1998-11-13
CA2228334A1 (en) 1998-08-19
KR100241218B1 (ko) 2000-02-01

Similar Documents

Publication Publication Date Title
KR100241218B1 (ko) 통신 시스템내에서 상대적으로 대규모인 데이터 객체의 전송을 제어하기 위한 시스템 및 그 방법
US5920703A (en) Systems and methods for managing the processing of relatively large data objects in a communications stack
KR100255503B1 (ko) 통신 시스템의 통신 스택에 관련된 데이터를 전송하고 수신하기위한 시스템 및 그 방법
US5991797A (en) Method for directing I/O transactions between an I/O device and a memory
TW544589B (en) Loosely coupled-multi processor server
US6421769B1 (en) Efficient memory management for channel drivers in next generation I/O system
US5781741A (en) Message communications system in a parallel computer
JPH07120337B2 (ja) プロセツサシステム
JPH1011372A (ja) Cpu及びi/oデバイス間のリファレンスによるコンピュータシステムデータi/o
JPS61289456A (ja) 分散処理システムの作業要求通信方法
JPH0950404A (ja) 遅延ページ再マッピングを使用するドメイン間データ転送
US5056003A (en) Distributed data management mechanism
US7002956B2 (en) Network addressing method and system for localizing access to network resources in a computer network
JPH103441A (ja) Cpu及び多重メモリ装置間のリファレンスによるコンピュータシステムデータi/o
JPH0926929A (ja) 効率のよいデータ転送メカニズムに関する方法及び装置
US5218713A (en) Distributed data management mechanism for handling a data stream
JP4208506B2 (ja) 高性能記憶装置アクセス環境
CA1244142A (en) Distributed data management mechanism
JP2007004710A (ja) ストレージアクセス方式、データ転送装置、ストレージアクセス方法、及びプログラム
JPH11175485A (ja) 分散システムおよび並列演算制御方法
JP3644158B2 (ja) 並列計算機におけるデータ送受信方法
JPH09288653A (ja) Cpu間のリファレンスによるコンピュータシステムデータi/o
JPH1145220A (ja) Tcp/ipソケット・アプリケーションを使用したシステム資源削減装置および方法
JPH01191234A (ja) 仮想計算機間通信方式
KR20000065846A (ko) 오퍼레이팅 시스템에서 커널과 사용자 사이의 제로-카피 방법

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: 20091103

Year of fee payment: 11

LAPS Lapse due to unpaid annual fee