KR20040028956A - 제1 애플리케이션과 제2 애플리케이션간 데이터를전송하도록 적응된 가변구성 커넥터 - Google Patents

제1 애플리케이션과 제2 애플리케이션간 데이터를전송하도록 적응된 가변구성 커넥터 Download PDF

Info

Publication number
KR20040028956A
KR20040028956A KR10-2004-7001326A KR20047001326A KR20040028956A KR 20040028956 A KR20040028956 A KR 20040028956A KR 20047001326 A KR20047001326 A KR 20047001326A KR 20040028956 A KR20040028956 A KR 20040028956A
Authority
KR
South Korea
Prior art keywords
data
application
protocol
protocol handler
interface
Prior art date
Application number
KR10-2004-7001326A
Other languages
English (en)
Inventor
비시젤마이클
델휘노진세바스챤미첼
프르지빌스키피오트르
Original Assignee
인터내셔널 비지네스 머신즈 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인터내셔널 비지네스 머신즈 코포레이션 filed Critical 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR20040028956A publication Critical patent/KR20040028956A/ko

Links

Classifications

    • 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/08Protocols for interworking; Protocol conversion
    • 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/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • 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/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Landscapes

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

Abstract

본 발명의 실시예는 제1 애플리케이션(14)과 제2 애플리케이션(또는 애플리케이션 컴포넌트(20))간에 데이터를 전송하도록 적응된 커넥터(10)을 제공한다. 통신 링크(18) 또는 네트워크에 의해 상호접속된 다른 컴퓨터 시스템은 애플리케이션을 호스트할 수도 있다. 커넥터는 제1 및 제2 애플리케이션 사이에 놓여진다는 것 외에도 하나 이상의 프로토콜 핸들러와 통신하도록 적응된다{여기에서 프로토콜 핸들러는 특정 프로토콜에 맞는 데이터 포맷팅을 제공한다(예를 들면 HTTP, SOAP 등)}. 프로토콜 핸들러는 제1 애플리케이션으로부터 커넥터에 의해 수신된 데이터가 커넥터로 플러그된 프로토콜 핸들러에 의해 제공된 프로토콜에 맞게 서비스되도록(예를 들면 포맷되도록) 하는 커넥터를 구성한다.

Description

제1 애플리케이션과 제2 애플리케이션간 데이터를 전송하도록 적응된 가변구성 커넥터{CONFIGURABLE CONNECTOR ADAPTED TO CONVEY DATA BETWEEN A FIRST APPLICATION AND A SECOND APPLICATION}
최근에 정보 공유를 위한 컴퓨터 네트워크 이용이 상당한 증가세에 있다. 비록 근거리 통신망(LAN)과 인터넷이 얼마간 이용되어 오고 있긴 하지만 데이터 교환을 위한 몇몇 단순한 프로토콜들이면 대체로 이러한 동질의 네트워크에 충분하였다. 월드 와이드 웹 이용에 있어서의 가파른 상승은 많은 컴퓨터 시스템을 상호 연결하는 결과를 초래해 왔다. 시간이 흐름에 따라 데이터 교환을 위한 많은 프로토콜들이 개발되어 오고 있다.
전형적으로 이러한 프로토콜들은 하나의 컴퓨터 시스템에서 다른 시스템으로 전송될 데이터를 패키징하기 위한 메커니즘을 정의한다. 전형적인 프로토콜은 데이터가 전송될 때 조합(assemble)될 엔벌로프 또는 헤더를 정의한다. 엔벌로프는 서비스 품질 정보와 전송하는 컴퓨터 시스템 및/또는 데이터에 관한 다른 정보를 정의할 수도 있다. 그후 엔벌로프와 데이터는 메시지로 조합되고 수신 컴퓨터 시스템에 전송된다.
프로토콜에 따라 데이터를 전송하는 모든 소프트웨어 컴포넌트 또는 클라이언트는 엔벌로프를 요구된 포맷으로 생성하고 그것을 요구된 방식으로 데이터와 결합함으로써 프로토콜에 따라 데이터를 포맷하여야 한다. 이는 전형적으로 엔벌로프를 조합하고 엔벌로프와 데이터의 전송 및 수신을 관리하는 프로토콜 핸들러를 사용함으로써 이루어진다.
예를 들면 엔벌로프의 포맷을 변경하고 프로토콜의 일부분을 부가 또는 대체함으로써 프로토콜이 수정될 때 프로토콜 핸들러도 전형적으로 수정되어져야 한다. 많은 경우에 있어 프로토콜을 사용하는 소프트웨어 컴포넌트 또한 수정되어져야 한다. 그러한 수정은 시간과 비용이 소모될 수 있다. 통신 프로토콜의 변화들을 수용하기 위하여 각 소프트웨어 컴포넌트가 수정되어져야 하는 많은 상이한 소프트웨어 컴포넌트를 사용하는 큰 회사에 있어서, 각 컴포넌트를 위하여 수정하고 업데이트를 구입하는 비용은 필수불가결하다. 컴포넌트들이 다양한 상이한 프로토콜들을 사용할 때 그 비용은 엄청날 수 있다.
프로토콜을 사용하는 소프트웨어의 수정을 요하지 않은 채 데이터 전송 프로토콜이 수정되도록 하는 커넥터로 컴퓨터 시스템들을 연결하는 것이 바람직하다. 바람직하게는, 커넥터는 임의의 데이터 포맷을 다루고 처리할 수 있도록 변경가능하다.
본 발명은 일반적으로 컴퓨터 통신 분야에 관한 것이다. 보다 구체적으로는 데이터 교환을 용이하게 하기 위한 가변구성 커넥터에 관한 것이다.
도 1은 본 발명에 따른 커넥터의 블록 다이어그램과 커넥터를 사용하기 위한 시스템.
도 2는 도 1에 도시된 커넥터의 더 상세한 블록 다이어그램.
도 3, 4, 5는 도 1에 도시된 커넥터의 동작을 도해하는 통신 및 데이터 흐름도.
본 발명은 구체적으로 제1 애플리케이션과 제2 애플리케이션(또는 애플리케이션 컴포넌트)간 데이터를 전송하도록 적응된 커넥터를 제공한다. 통신 링크 또는 네트워크에 의하여 상호 연결된 상이한 컴퓨터 시스템들은 애플리케이션들을 호스트할 수 있다.
커넥터는 제1 및 제2 애플리케이션 사이에 놓여질 뿐만 아니라 하나 이상의 프로토콜 핸들러와 통신하도록 적응된다{여기에서 프로토콜 핸들러는 특정 프로토콜(예를 들면 HTTP, SOAP 등)에 맞는 데이터 포맷팅을 제공한다}. 프로토콜 핸들러가 커넥터를 구성함으로써, 제1 애플리케이션으로부터 커넥터에 의해 수신되는 데이터가 커넥터로 플러그된 프로토콜 핸들러에 의하여 제공되는 프로토콜에 맞게 서비스될 수(예를 들면 포맷될 수) 있도록 한다.
전형적인 실시예에 있어서 발명의 특징들을 구현하는 커넥터는 객체의 형태로 제1 애플리케이션으로부터의 데이터를 수신하고 전송하도록 적응된다. 이러한 객체들은 두가지 함수(또는 메소드)를 포함하는데 객체 내에 저장된 정보를 읽도록 적응된 "read" 메소드(예를 들면 특성 값을 얻는 것)와 객체에 정보를 "write" 메소드(예를 들면 특성을 설정하는 것)가 그것이다.
전형적인 동작에 있어서 발명의 측면들을 구현화하는 커넥터는 통신 링크를 사용하여 제2 애플리케이션으로의 전송을 위한 데이터(페이로드 데이터)를 포함하는 객체를 제1 애플리케이션으로부터 수신한다. 프로토콜 핸들러의 플러그인을 통해 프로토콜 서비스를 제공하기 위하여 구성된 커넥터는 객체를 수신한다. 이렇게 수신된 객체는 그후 커넥터에 의해 프로토콜 핸들러로 넘겨진다. 프로토콜 핸들러는 핸들러에 의해 지원된 프로토콜에 따라 "read" 및 "write" 메소드들을 사용하여그 안에 포함된 데이터를 처리하고, 페이로드 데이터를 포함하는 패킷 또는 엔벌로프를 발생시킨다. 그후 패킷은 커넥터로 넘겨진다. 커넥터는 다시 전송을 위하여 통신 링크로 패킷을 넘긴다.
커넥터는 또한 통신 링크를 통하여 수신된 객체에 대하여 (역으로) 같은 동작을 수행한다. 다시 말하면 커넥터에 의해 제2 애플리케이션으로부터 수신된(그리고 통신 링크상으로 전송된) 패킷은 페이로드 데이터를 추출하는 프로토콜 핸들러에 전송되고, "write" 메소드를 이용하여 객체를 실장하고(populate), 그후 이 객체는 커넥터로 넘겨진다. 커넥터는 그후 이 실장된 객체를 제1 애플리케이션에 넘긴다.
앞으로 살펴보겠지만 본 발명의 실시예들은 제1 애플리케이션에 정적 인터페이스를 제공한다. 결과적으로 제1 및 제2 애플리케이션간 통신을 위하여 채용되고 있는 프로토콜에 변화가 가해지고 다른 프로토콜로 수정되거나 대체될지라도 제1 애플리케이션은 수정될 필요가 없다. 오히려 커넥터는 전에 채용된 프로토콜을 지원하는 프로토콜 핸들러를 언플러그함으로써 재구성되어지고, 새로 채용된 프로토콜을 지원하는 새로운 프로토콜 핸들러가 커넥터에 플러그된다.
한가지 측면에 있어 본 발명은 제1 및 제2 애플리케이션간 데이터 전송을 용이하게 하기 위하여 커넥터를 제공하는 것으로, 상기 커넥터는 제1 및 제2 애플리케이션간에 통신을 위한 데이터 변환 서비스를 제공하고, 상기 제1 애플리케이션으로부터 데이터를 수신하고 통신 프로토콜을 지원하는 프로토콜 핸들러로부터 포맷된 데이터를 수신하도록 적응된 수신기와, 상기 프로토콜 핸들러로부터 수신된 포맷된 데이터를 상기 제2 애플리케이션으로 전송하고 상기 제1 애플리케이션으로부터 수신된 데이터를, 상기 수신된 데이터를 포맷된 데이터로 변환하는 상기 프로토콜 핸들러로 전송하도록 적응된 전송기를 포함하며, 상기 커넥터에 의하여 제공된 상기 데이터 변환 서비스는 상기 프로토콜 핸들러에 의해 지원되는 상기 통신 프로토콜에 의해 결정된다.
또 다른 측면으로 본 발명은 제1 및 제2 애플리케이션간 데이터 전송을 용이하게 하기 위한 커넥터를 제공하며, 상기 커넥터는 상기 제1 애플리케이션과 통신하도록 적응된 제1 인터페이스와, 프로토콜 핸들러와 통신하도록 적응된 제2 인터페이스와, 상기 제2 애플리케이션과 통신하도록 적응된 제3 인터페이스와, 상기 제1, 제2, 제3 인터페이스와 통신하는데 있어서의 프로세싱 코어를 포함하고, 상기 프로세싱 코어는, 상기 제1 인터페이스를 통해 상기 제1 애플리케이션과 데이터를 송수신하고, 상기 제1 애플리케이션으로부터 수신된 데이터를 상기 제2 인터페이스를 통해 상기 프로토콜 핸들러에 전달하고, 상기 제2 인터페이스를 통해 상기 프로토콜 핸들러로부터 수신된 포맷된 데이터를 상기 제3 인터페이스를 통해 상기 제2 애플리케이션에 전달하고, 상기 제2 인터페이스를 통해 상기 프로토콜 핸들러로부터 수신된 데이터를 상기 제1 인터페이스를 통해 상기 제1 애플리케이션에 전달하고, 상기 제3 인터페이스를 통해 상기 제2 애플리케이션으로부터 수신된 포맷된 데이터를 상기 제2 인터페이스를 통해 상기 프로토콜 핸들러에 전달하도록 적응된다.
또 다른 측면으로 본 발명은 제1 및 제2 애플리케이션 사이에 놓여진 커넥터를 제공하며, 상기 커넥터는 상기 제1 애플리케이션과의 통신을 위한 제1 인터페이스와, 상기 제2 애플리케이션과의 통신을 위한 제2 인터페이스와, 다수의 프로토콜 핸들러로부터 선택된 프로토콜 핸들러를 제거 가능하게 수신하도록 적응된 구성 인터페이스를 포함하며, 제1 및 제2 애플리케이션간 통신을 위한 데이터 변환 서비스(상기 데이터 변환 서비스는 상기 구성 인터페이스에 의해 수신된 상기 선택된 프로토콜 핸들러에 의해 결정됨)를 제공한다.
또 다른 측면으로 본 발명은 제1 및 제2 애플리케이션간 통신을 용이하게 하기 위하여 다수의 상이한 데이터 변환 서비스를 제공하는 커넥터를 제공하며, 상기 커넥터는 제1 데이터 포맷을 이용하여 상기 제1 애플리케이션과 통신하고, 제2 데이터 포맷을 이용하여 상기 제2 애플리케이션과 통신하며, 상기 커넥터와 상기 제1 애플리케이션 사이에서 상기 제1 데이터 포맷에 맞는 데이터를 전송하기 위한 제1 수단과, 상기 커넥터와 상기 제2 애플리케이션 사이에서 상기 제2 데이터 포맷에 맞는 데이터를 전송하기 위한 제2 수단과, 제1 프로토콜 핸들러(상기 프로토콜 핸들러는 상기 제1 데이터 포맷과 상기 제2 데이터 포맷간 변환을 하고, 상기 제2 데이터 포맷이 수정된다면 상기 제1 프로토콜 핸들러는 상기 제1 데이터 포맷과 상기 수정된 제2 데이터 포맷간 변환을 하는 제2 프로토콜 핸들러로 대체됨)를 제거 가능하도록 수신하기 위한 구성 인터페이스 수단을 포함한다.
또 다른 측면으로 본 발명은 통신선을 거쳐 하부 구조에서 동작하는 컴포넌트로부터 목표 시스템으로 데이터를 전송하는 방법을 제공하며, 상기 방법은 (a) 발신 데이터를 발신 메시지로 변환하기 위해 발신 프로토콜 핸들러를 구성하는 단계와, (b) 상기 하부 구조와 상기 통신선간 연결을 설정하는 단계와, (c) 상기 컴포넌트로부터 상기 발신 데이터를 포함하는 출력 레코드를 수신하는 단계와, (d) 상기 통신선상에서 상기 발신 데이터를 전송하는 단계를 포함한다.
또 다른 측면으로 본 발명은 목표 시스템에 의해 통신선상으로 컴포넌트에 전송된 착신 데이터를 수신하는 방법을 제공하며, 상기 방법은 (a) 착신 메시지로부터 상기 착신 데이터를 추출하기 위해 착신 프로토콜 핸들러를 구성하는 단계와, (b) 상기 통신선으로부터 상기 착신 메시지를 수신하는 단계와, (c) 상기 착신 프로토콜 핸들러를 호출함으로써 상기 착신 메시지로부터 상기 착신 데이터를 추출하는 단계와, (d) 상기 컴포넌트에 상기 착신 데이터를 제공하는 단계를 포함한다.
또 다른 측면으로 본 발명은 통신선을 거쳐 하부 구조에서 동작하는 컴포넌트로부터 목표 시스템으로 데이터를 전송하는 방법을 구현하기 위한 명령어들을 포함하는 컴퓨터가 읽을 수 있는 매체를 제공하며, 상기 방법은 (a) 발신 데이터를 발신 메시지로 변환하기 위해 발신 프로토콜 핸들러를 구성하는 단계와, (b) 상기 하부 구조와 상기 통신선간 연결을 설정하는 단계와, (c) 상기 컴포넌트로부터 상기 발신 데이터를 포함하는 출력 레코드를 수신하는 단계와, (d) 상기 통신선상에서 상기 발신 데이터를 전송하는 단계를 포함한다.
또 다른 측면으로 본 발명은 목표 시스템에 의해 통신 링크상에서 컴포넌트에 전송된 착신 데이터를 수신하는 방법을 실행하기 위한 명령어들을 포함하는 컴퓨터가 읽을 수 있는 매체를 제공하며, 상기 방법은 (a) 착신 메시지로부터 상기 착신 데이터를 추출하기 위해 착신 프로토콜 핸들러를 구성하는 단계와, (b) 상기 통신선으로부터 상기 착신 메시지를 수신하는 단계와, (c) 상기 착신 프로토콜 핸들러를 호출함으로써 상기 착신 메시지로부터 상기 착신 데이터를 추출하는 단계와, (d) 상기 컴포넌트에 상기 착신 데이터를 제공하는 단계를 포함한다.
또 다른 측면으로 본 발명은 제1 및 제2 애플리케이션간 데이터 전송을 용이하게 하기 위한 방법을 제공하며, 상기 방법은 상기 제1 및 제2 애플리케이션간 통신을 위한 데이터 변환 서비스를 제공하고, 상기 제1 애플리케이션으로부터 데이터를 수신하고 통신 프로토콜을 지원하는 프로토콜 핸들러로부터 포맷된 데이터를 수신하는 단계와, 상기 프로토콜 핸들러로부터 수신된 포맷된 데이터를 상기 제2 애플리케이션에 전송하는 단계를 포함하고, 제공된 상기 데이터 변환 서비스가 상기 프로토콜 핸들러에 의해 지원되는 상기 통신 프로토콜에 의해 결정되는 것을 특징으로 한다.
또 다른 측면으로 본 발명은 제1 및 제2 애플리케이션간 데이터 전송을 용이하게 하기 위한 방법을 제공하며, 상기 방법은 제1 인터페이스를 통해 상기 제1 애플리케이션과 데이터를 전송 및 수신하는 단계와, 상기 제1 애플리케이션으로부터 수신된 데이터를 제2 인터페이스를 통해 상기 프로토콜 핸들러에 전달하는 단계와, 상기 제2 인터페이스를 통해 상기 프로토콜 핸들러로부터 수신된 포맷된 데이터를 제3 인터페이스를 통해 상기 제2 애플리케이션에 전달하는 단계와, 상기 제2 인터페이스를 통해 상기 프로토콜 핸들러로부터 수신된 데이터를 상기 제1 인터페이스를 통해 상기 제1 애플리케이션에 전달하는 단계와, 상기 제3 인터페이스를 통해 상기 제2 애플리케이션으로부터 수신된 포맷된 데이터를 상기 제2 인터페이스를 통해 상기 프로토콜 핸들러에 전달하는 단계를 포함한다.
또 다른 측면으로 본 발명은 제1 및 제2 애플리케이션간 통신을 용이하게 하기 위한 방법을 제공하며, 상기 방법은 상기 제1 애플리케이션과의 통신을 위한 제1 인터페이스를 제공하는 단계와, 상기 제2 애플리케이션과의 통신을 위한 제2 인터페이스를 제공하는 단계와, 다수의 프로토콜 핸들러로부터 선택된 프로토콜 핸들러를 제거 가능하게 수신하도록 적응된 구성 인터페이스를 제공하는 단계(상기 커넥터는 상기 제1 및 제2 애플리케이션간 통신을 위한 데이터 변환 서비스를 제공하고, 상기 데이터 변환 서비스는 상기 구성 인터페이스에 의해 수신된 상기 선택된 프로토콜 핸들러에 의해 결정되는 것을 특징함)와, 상기 제2 애플리케이션을 위해 예정된 상기 제1 애플리케이션으로부터 수신된 제1 데이터를 데이터 변환을 위하여 제거 가능하도록 수신된 프로토콜 핸들러에 넘기는 단계와, 제거 가능하도록 수신된 프로토콜 핸들러로부터 수신된 변환된 제1 데이터를 상기 제2 애플리케이션에 넘기는 단계와, 상기 제2 애플리케이션으로부터 수신된 제2 데이터를 변환을 위하여 상기 프로토콜 핸들러에 넘기는 단계와, 변환된 제2 데이터를 상기 제1 애플리케이션에 넘기는 단계를 포함한다.
또 다른 측면으로 본 발명은 데이터와 명령어들을 저장하는 컴퓨터가 읽을 수 있는 매체를 제공하고, 상기 데이터와 명령어들은 제1 및 제2 애플리케이션간 데이터 전송을 용이하게 하도록 컴퓨터 시스템을 적응시키고, 상기 컴퓨터 시스템은 제1 및 제2 애플리케이션간 통신을 위한 데이터 변환 서비스를 제공하고, 상기 데이터와 명령어들은 상기 컴퓨터 시스템이 상기 제1 애플리케이션으로부터 데이터를 수신하고 통신 프로토콜을 지원하는 프로토콜 핸들러로부터 포맷된 데이터를 수신하며, 상기 프로토콜 핸들러로부터 수신된 포맷된 데이터를 상기 제2 애플리케이션에 전송하도록 상기 컴퓨터 시스템을 적응시키고, 제공된 상기 데이터 변환 서비스는 상기 프로토콜 핸들러에 의해 지원되는 상기 통신 프로토콜에 의해 결정된다.
또 다른 측면으로 본 발명은 제1 및 제2 애플리케이션간 데이터 전송을 용이하게 하도록 컴퓨터 시스템을 적응시키는 데이터와 명령어들을 저장하는 컴퓨터가 읽을 수 있는 매체를 제공하며, 상기 데이터와 명령어들은 상기 컴퓨터 시스템이 제1 인터페이스를 통해 상기 제1 애플리케이션으로부터의 데이터를 전송 및 수신하고, 상기 제2 인터페이스를 통해 상기 제1 애플리케이션으로부터 수신된 데이터를 상기 프로토콜 핸들러에 전달하고, 상기 제2 인터페이스를 통해 상기 프로토콜 핸들러로부터 수신된 포맷된 데이터를 제3 인터페이스를 통해 상기 제2 애플리케이션에 전달하고, 상기 제2 인터페이스를 통해 상기 프로토콜 핸들러로부터 수신된 데이터를 상기 제1 인터페이스를 통해 상기 제1 애플리케이션에 전달하고, 상기 제3 인터페이스를 통해 상기 제2 애플리케이션으로부터 수신된 포맷된 데이터를 상기 제2 인터페이스를 통해 상기 프로토콜 핸들러에 전달하도록 상기 컴퓨터 시스템을 적응시킨다.
또 다른 측면으로 본 발명은 제1 및 제2 애플리케이션간 통신을 용이하게 하도록 컴퓨터 시스템을 적응시키기 위한 데이터와 명령어들을 저장하는 컴퓨터가 읽을 수 있는 매체를 제공하며, 상기 데이터와 명령어들은 상기 컴퓨터 시스템이 상기 제1 애플리케이션과의 통신을 위한 제1 인터페이스를 제공하고, 상기 제2 애플리케이션과의 통신을 위한 제2 인터페이스를 제공하고, 다수의 프로토콜 핸들러로부터 선택된 프로토콜 핸들러를 제거 가능하게 수신하도록 적응된 구성 인터페이스를 제공(상기 커넥트는 제1 및 제2 애플리케이션간 통신을 위한 데이터 변환 서비스를 제공하고 상기 데이터 변환 서비스는 상기 구성 인터페이스에 의해 수신된 상기 선택된 프로토콜 핸들러에 의해 결정됨)하고, 상기 제2 애플리케이션을 위해 예정된 상기 제1 애플리케이션으로부터 수신된 제1 데이터를 데이터 변환을 위하여 제거 가능하도록 수신된 프로토콜 핸들러에 넘기고, 제거 가능하도록 수신된 프로토콜 핸들러로부터 수신된 변환된 제1 데이터를 상기 제2 애플리케이션에 넘기고, 상기 제2 애플리케이션으로부터 수신된 제2 데이터를 변환을 위하여 상기 프로토콜 핸들러에 넘기고, 변환된 제2 데이터를 상기 제1 애플리케이션에 넘기도록 상기 컴퓨터 시스템을 변환한다.
다른 측면에서 본 발명은,
(a) B2BConnection;
(b) B2BConnectionFactory;
(c) B2BConnectionMetaData;
(d) B2BConnectionRequestInfo;
(e) B2BConnectionSpec;
(f) B2BInteraction;
(g) B2BInteractionSpec;
(h) B2BManagedConnectionFactory;
(i) B2BManagedConnection;
(j) B2BManagedConnectionMetaData;
(k) B2BPayloadBufferRecord;
(l) B2BPayloadMappingRecord;
(m) B2BProtocolRecord;
(n) B2BResourceAdapterMetaData;
(o) B2BQOS;
(p) Protocol2ServiceMessageMapping;및
(q) ServiceMessage2ProtocolMapping와 같은 클래스를 포함하는 J2EE 컴플라이언트 커넥터를 제공한다.
본 발명의 다른 측면들은 컴퓨터로 읽을 수 있는 기록매체상에서 제공된 상기 측면들과 실시예들의 모든 것을 포함한다. 본 발명의 다른 특징들과 측면들은 후술할 발명의 바람직한 실시예에서 설명된다.
개관하면 여기에서 설명된 전형적인 실시예는 제1(클라이언트) 애플리케이션과 제2(목표) 애플리케이션(또는 애플리케이션 컴포넌트)간 데이터를 전송하도록 적응된 커넥터를 제공한다. 통신 링크 또는 네트워크에 의해 상호 연결된 상이한 컴퓨터 시스템들은 애플리케이션들을 호스트한다. 그러나 앞으로 살펴보겠지만 다른 실시예에서 동일한 컴퓨터 시스템이 제1 및 제2 애플리케이션을 호스트할 수도 있다.
커넥터는 제1 및 제2 애플리케이션 사이에 놓여지는 것 외에 하나 이상의 프로토콜 핸들러{여기에서 프로토콜 핸들러는 특정 프로토콜(예를 들면 HTTP, SOAP 등)에 맞는 데이터 포맷팅을 제공함}와 통신하도록 적응된다. 프로토콜 핸들러는 제1 애플리케이션으로부터 커넥터에 의해 수신된 데이터가 커넥터로 플러그된 프로토콜 핸들러에 의해 제공된 프로토콜에 맞게 서비스되도록(예를 들면 포맷되도록) 하는 커넥터를 구성한다.
전형적인 실시예에 있어서 본 발명의 측면들을 구현하는 커넥터는 객체의 형태로 제1 애플리케이션으로부터의 데이터를 송수신하도록 적응된다. 이러한 객체들은 두가지 함수(또는 메소드)를 포함하는데 객체 내에 저장된 정보를 읽도록 적응된 "read" 메소드(예를 들면 특성 값을 얻는 것)와 객체에 정보를 쓰도록 적응된 "write" 메소드(예를 들면 특성을 설정하는 것)가 그것이다.
전형적인 동작에 있어서 발명의 측면들을 구현하는 커넥터는 통신 링크를 사용하여 제2 애플리케이션으로의 전송을 위한 데이터(페이로드 데이터)를 포함하는 객체를 제1 애플리케이션으로부터 수신한다. 프로토콜 핸들러의 플러그인을 통해 프로토콜 서비스를 제공하도록 구성된 커넥터는 객체를 수신한다. 수신된 객체는그후 커넥터에 의해 프로토콜 핸들러로 넘겨진다. 프로토콜 핸들러는 핸들러에 의해 지원되는 프로토콜에 따라 그 안에 포함된 데이터를 처리하고("read" 및 "write" 메소드를 사용하여) 페이로드 데이터를 포함하는 패킷 또는 엔벌로프를 발생시킨다. 그후 패킷은 커넥터로 넘겨진다. 커넥터는 그후 제2(목표) 애플리케이션으로의 전송을 위한 통신 링크로 패킷을 넘긴다.
커넥터는 또한 통신 링크를 통하여 수신된 데이터에 대하여 (역으로) 같은 동작을 수행한다. 다시 말하면 커넥터에 의해 제2 애플리케이션으로부터 수신된(그리고 통신 링크상으로 전송된) 패킷은 페이로드 데이터를 추출하는 프로토콜 핸들러에 전해지고 "write" 메소드를 이용하여 객체를 실장(populate)하고, 이 객체는 커넥터에 넘겨진다. 커넥터는 그후 이 실장된 객체를 제1 애플리케이션에 넘긴다. 전형적인 실시예에 있어서 프로토콜 핸들러에 의해 실장된 객체는 제1 애플리케이션에 의해 커넥터에 제공되거나 그렇지 않으면 커넥터가 실장된 객체(일반적 객체)를 생성할 수도 있다.
앞으로 살펴보겠지만 본 발명의 실시예들은 제1 애플리케이션에 정적 인터페이스를 제공한다. 결과적으로 제1 및 제2 애플리케이션간 통신을 위하여 채용되고 있는 프로토콜에 변화가 가해지고 다른 프로토콜로 수정되거나 대체될지라도 제1 애플리케이션은 수정될 필요가 없다. 오히려 커넥터는 전에 채용된 프로토콜을 지원하는 프로토콜 핸들러를 언플러그함으로써 재구성되어지고 새로 채용된 프로토콜을 지원하는 새로운 프로토콜 핸들러가 커넥터에 플러그된다.
앞으로 더 살펴보겠지만 프로토콜이 변한다면 애플리케이션 컴포넌트는 단지커넥터와 통신하기 때문에 애플리케이션 컴포넌트는 프로토콜 핸들러에 있어의 변화와 이에 의해 수행되는 계획을 인식하지 못한다. 본 발명의 다른 이점들은 명세서 전체를 통해서 기술분야에서 통상의 지식을 가진 자에 의해 인식될 것이다.
우선 본 발명에 따른 커넥터(10)를 도시하는 도 1을 참조한다. 커넥터(10)는 전형적으로 컴퓨터 시스템이 될 하부 구조(12)내에서 동작한다. 하부 구조(12)는 플랫폼이라고 언급할 수 있고, 운영 체제와, 다른 소프트웨어와 하드웨어를 포함할 수도 있다. 애플리케이션 컴포넌트(14)(또는 클라이언트) 또한 하부 구조(12) 내에서 동작한다. 이러한 전형적인 실시예에서 컴포넌트(14)는 발신 데이터{상기 발신 데이터는 목표 컴퓨터 시스템(16)내에서 동작하는 애플리케이션 컴포넌트(20)에 의해 사용되기 위하여 양방향 통신 링크(18)를 사용하여 목표 컴퓨터 시스템(16)으로 보내짐}를 포맷하기 위하여 XML을 사용하도록 구성된다. 애플리케이션 컴포넌트(20)는 통신 링크(18)를 이용하여, XML를 이용하여 포맷된 착신 데이터를 반환한다. 다른 실시예에 있어서 착발신 데이터는 임의의 다른 포맷이나 방법을 사용하여 포맷될 수도 있다.
커넥터(10)는 컴포넌트(14)가 통신 링크(18)를 사용하여 발신 데이터를 전송하고 착신 데이터를 수신하도록 한다. 통신 링크(18)는 하부 구조(12)와 목표 시스템(16) 사이에 설정된 고정 링크일 수도 있다. 다른 대안으로서, 통신 링크(18)는 전송 프로토콜(예를 들면 J2EE 커넥터 아키텍쳐 인터페이스를 통해 활용 가능한 HTTP 또는 MQSeries)을 사용하는 인터넷(INTERNET), 랜(LAN) 또는 왠(WAN)과 같은 네트워크상에서 설정된 일시적 또는 영구적 링크일 수도 있다.
커넥터(10)는 보안 수단과 다른 서비스들을 이용하여 하부 구조(12)를 통해 통신 링크(18)에 액세스한다. 통신 링크(18)는 선택된 전송 프로토콜을 사용하여 동작한다. 이러한 전형적인 실시예에 있어서 통신 링크(18)는 그 전송 프로토콜로서 HTTP 프로토콜을 사용하고 데이터 포맷으로서 단순한 객체 액세스 프로토콜(SOAP)을 사용하여 동작한다. SOAP 프로토콜은 www.w3.org/TR/SOAP, 버젼 1.1에서 인터넷상으로 설명되어 있고 이 내용은 참조를 위해 본 명세서에 포함된다. 대부분의 다른 프로토콜처럼 SOAP 프로토콜도 통신 링크(18)를 경유하여 전송된 메시지를 형성하기 위해 데이터에 부가된 엔벌로프를 지정한다.
본 발명의 전형적인 실시예는 http://java.sun.com/j2ee/download.html#connectorspec("J2EE 커넥터 아키텍쳐 스펙", 버젼 1.0, 최종 제안 안 2, 2001년 4월 4일에 발표)에서 인터넷상으로 활용 가능한 자바 2, 에터프라이즈 에디션 커넥터 아키텍쳐, 최종 제안 안 2 문서(Java 2, Enterprise Edition Connector Architecture, Proposed Final Draft 2 document)와 일치하며, 이 내용은 참조를 위해 본 명세서에 포함된다.
전형적인 커넥터(10)는 "기업 대 기업"(B2B) 컴퓨터 접속을 허용하도록 의도된다. 그러나 이러한 용례는 단지 전형적인 것일뿐이고 커넥터(10)는 임의의 종류의 컴퓨터 시스템이나 하부 구조를 서로 접속하는 데에도 적합하다. B2B의 사용은 단지 전형적일뿐 아래에 설명될 커넥터(10)의 클래스와 메소드의 명칭들은 본 발명의 범위내에서 변화될 수도 있다.
커넥터(10)는,
1. B2BConnection
2. B2BConnectionFactory
3. B2BConnectionMetaData
4. B2BConnectionRequestInfo
5. B2BConnectionSpec
6. B2BInteraction
7. B2BInteractionSpec
8. B2BManagedConnectionFactory
9. B2BManagedConnection
10. B2BManagedConnectionMetaData
11. B2BPayloadBufferRecord
12. B2BPayloadMappingRecord
13. B2BProtocolRecord
14. B2BResourceAdapterMetaData
15. B2BQOS
16. Protocol2ServiceMessageMapping
17. ServiceMessage2ProtocolMapping와 같은 클래스를 포함한다.
이러한 클래스와 인터페이스 각각의 기능은 아래에서 논한다.
1.B2BConnection 클래스
B2BConnection 클래스는,
B2BConnection(ManagedConnection)
void call(InteractionSpec, Record, Record)
void close()
Interaction createInteraction()
boolean getAutoCommit()
LocalTransaction getLocalTransaction()
B2BManagedConnection getManaged()
ConnectionMetaData getMetaData()
ResultSetInfo getResultSetInfo()
void logTrace(String)
void getAutoCommit(boolean)
void setLogWriter(PrintWriter)
void setManaged(B2BManagedConnection)과 같은 메소드를 포함한다.
B2BConnection 클래스는 통신 링크(18)에 대한 컴포넌트(14)의 애플리케이션 핸들을 표현한다. B2BConnection 객체는 B2BConnectionFactory 클래스에 의해 생성되고 데이터가 통신 링크(18)상에서 전송되는 특별한 B2BManagedConnection 인스턴스와 관련된다. B2BConnection 객체는 createInteraction() 메소드 구현을 사용하여 B2BInteraction 객체를 생성한다.
B2BConnection 객체는 setAutoCommit(boolean), getLocalTransaction(), getAutoCommit()과 getResultSetInfo()와 같은 메소드들로부터javax.resource.NotSupportedException을 낳는다.
close() 메소드 구현에 있어서 close 요청은 관련된 B2BManagedConnection인스턴스에 close 요청을 넘긴다.
이 클래스는 call() 메소드(이는 그 인스턴스와 함께 실행 요청을 관련된 B2BManagedConnection 인스턴스에 넘김으로써, 요구된 인터페이스 메소드들에 더하여 구현됨)에서 그것이 생성하는 B2BInteraction 객체로부터의 인터랙션 요청을 처리한다.
2.B2BConnectionFactory
B2BConnectionFactory 클래스는,
B2BConnectionFactory()
B2BConnectionFactory(ConnectionManager)
Connection getConnection()
Connection getConnection(ConnectionSpec)
Connection getConnection(Map)
ManagedConnectionFactory getManagedConnectionFactory()
ResourceAdapterMetaData getMetaData()
RecordFactory getRecordFactory()
Reference getReference()
Service getService()
void logTrace(String)
void setConnectionManager(ConnectionManager)
void setManagedConnectionFactory(ManagedConnectionFactory)
void setReference(Reference)와 같은 메소드들을 포함한다.
B2BConnectionFactory 클래스는 통신 링크(18)를 이용하여 활성화된 접속을 생성할 수 있는 객체들을 표현한다. 이는 B2BManagedConnectionFactory의 인스턴스와의 연계에 의해 인스턴스화되고 그 연계를 유지한다. 이는 또한 ConnectionManager 클래스의 인스턴스{getConnection() 메소드 구현에 있어서 접속 요청 중에 접속을 얻기 위하여 이를 사용함}를 포함한다.
3.B2BConnectionMetaData
B2BConnectionMetaData 클래스는,
B2BConnectionMetaData(B2BConnection)
String getEISProductName()
String getEISProductVersion()
String getUserName()와 같은 메소드들을 포함한다.
B2BConnectionMetaData 클래스는 접속 정보를 저장하기 위하여 사용되는 객체이다. 이는,
EISProductName
EISProductVersion
UserName과 같은 정보를 검색하는 액세서 메소드들을 포함한다.
4.B2BConnectionRequestInfo
B2BConnectionRequestInfo 클래스는,
boolean euals(Object)
String getPassword()
String getUserName()
int hashCode()
void setPassword(String)
void setUserName(String)과 같은 메소드들을 포함한다.
B2BConnectionRequestInfo 클래스는 B2BManagedConnection 객체의 특징을 변화시키지 않는 접속에 따른 정보를 포함한다. 이러한 전형적인 실시예에 있어서 B2BConnectionRequestInfo 객체는 사용자 이름과 패스워드를 포함한다. 사용자 이름과 패스워드는 컴포넌트(14)의 자격증명을 표현하고 컴포넌트(14)를 인증하기 위해 사용된다.
5.B2BConnectionSpec
B2BConnectionSpec 클래스는,
boolean equals(Object)
String getPassword()
String getUserName()
int hashCode()
void setPassword(String)
void setUserName(String)와 같은 메소드들을 포함한다.
B2BConnectionSpec 클래스는 관련된 B2BConnectionRequestInfo 객체에 포함된 정보에 대응하는 접속에 따른 정보에 대한 애플리케이션 레벨 액세스를 표현한다.
6.B2BInteraction
B2BInteraction 클래스는,
B2BInteraction(Connection)
void clearWarnings()
void close()
Record execute(InteractionSpec, Record)
boolean execute(InteractionSpec, Record, Record)
Connection getConnection()
RecordFactory getRecordFactory()
ResourceWarning getWarnings()
void logTrace(String)
void setLogWriter(PrintWriter)와 같은 메소드들을 포함한다.
B2BInteraction 클래스는 통신 링크(18) 상에서 커넥터(10)를 통해 목표 시스템(16)과 통신을 수행하기 위하여 컴포넌트(14)에 의해 사용되는 객체들을 표현한다. B2BInteraction 객체는 이 객체에 대한 참조를 유지하는 B2BConnection 클래스에 의해 생성된다. B2BInteraction 클래스의 execute() 메소드들 중 어느 하나로부터의 실행 요청이 call() 메소드를 불러 옴으로써 프로세싱을 위한 관련B2BConnection 인스턴스에 넘겨진다.
단지 입력 레코드만 지닌 execute 메소드가 호출된다면(Record execute(InteractionSpec, Record)), B2BInteraction은 B2BPayloadBufferRecord의 새로운 인스턴스를 생성하고 그것을 출력 레코드로서 call 메소드에 넘긴다.
B2BInteraction는 어떤 상태도 유지하지 않기 때문에 close 메소드의 구현은 그것이 벌써 클로즈되지 않았다는 것를 확인하는 것을 제외하고는 어떠한 동작도 수행하지 않는다. 만약 close 메소드가 전에 호출되어졌다면 메소드는 javax.resource.spi.IllegalStateException을 던진다. B2BInteraction이 종료될 때 execute() 메소드 중 하나가 호출된다면 이러한 예외가 또한 던져진다.
7.B2BInteractionSpec
B2BInteractionSpec 클래스는,
int getInteractionVerb()
InteractionSpec getTransportInteractionSpec()
void setInteractionVerb(int)
void setTransportInteractionSpec(InteractionSpec)와 같은 메소드들을 포함한다.
B2BInteractionSpec 인터페이스는 J2EE 커넥터 아키텍쳐의 InteractionSpec 인터페이스를 확장한다. B2BInteractionSpec은 사용되어지고 있는 통신 링크(18)에 관하여 커넥터(10)의 행동을 구성하기 위해 사용된다. B2BInteractionSpec의 구현은 ServiceMessage2ProtocolMapping과 Protocol2ServiceMessageMapping 프로토콜 핸들러의 제공자에 의하여 제공된다. B2BInteractionSpec은 수행될 인터랙션의 유형(send, receive, or send_sreceive)과 transport InteractionSpec의 유형을 결정하는 B2BInteractionSpec의 InteractionVerb를 설정하고 검색하는 메소드를 포함한다. 후자는 선택된 전송 프로토콜을 사용하여 수행되는 인터랙션의 특성을 결정한다.
B2BInteractionSpec은 커넥터(10)와 애플리케이션(14) 사이에 인터페이스를 제공한다. 부가적으로 B2BInteractionSpec은 통신 링크(18)를 지닌 인터페이스{그러므로 목표 컴퓨터 시스템(16)의 애플리케이션 컴포넌트(20)}를 제공한다. 또한 B2BInteractionSpec은 데이터 전환 프로세스(즉 애플리케이션 컴포넌트(14)로부터 수신된 데이터를 통신 링크(18)상에서 애플리케이션 컴포넌트(20)로의 전송을 위한 포맷으로 프로세싱 또는 전환하는 것)를 제공하는 커넥터(10)를 구성하기 위한 인터페이스를 제공한다. 이에 따라 후자의 특징에 있어서 B2BInteractionSpec은 커넥터(10)가 프로토콜 핸들러(24)와 관여되고 인터페이스될 수 있도록 하기 위하여 구성 인터페이스를 제공한다. 프로토콜 핸들러(24)는 커넥터(10)와 제거 가능하도록 관여되거나 인터페이스된다.
B2BInteractionSpec은 커넥터(10)의 프로세싱 코어 중 일부(예를 들면 애플리케이션 컴포넌트(14), 애플리케이션 컴포넌트(20) 그리고 프로토콜 핸들러(24)로부터 다양한 형태의 데이터를 수신하고 전송하는 것)를 제공한다.
B2BInteractionSpec이 일부를 형성하는 이러한 프로세싱 코어는 (하나의 데이터 포맷에 맞는 - 전형적인 실시예에 있어서 객체) 애플리케이션(14)으로부터의 데이터와, 패킷 또는 엔벌로프로부터 전환된 데이터의 수신기로서 역할을 한다. 부가적으로 프로세싱 코어는 애플리케이션들(14, 20)에 대한 전송을 요구하는 데이터를 위한 전송기로서 역할을 한다. 따라서 커넥터(10)는 부분적으로 송수신기로서 역할을 한다.
앞으로로 설명되겠지만 커넥터(10)는 애플리케이션(14, 20) 그리고 프로토콜 핸들러(24) 세개의 요소에 세개의 인터페이스를 제공한다. 그러나 이러한 세개의 인터페이스들 중 많은 부분이 B2BInteractionSpec에 의해 제공된다.
8.B2BManagedConnectionFactory
B2BManagedConnectionFactory 클래스는,
B2BManagedConnection(Subject, ConnectionRequestInfo)
void addConnectionEventListener(ConnectionEventListener)
void associateConnection(Object)
void call(B2BConnection, InteractionSpec, Record, Record)
void cleanup()
void close(B2BConnection)
void destroy()
void errorOccurred(Exception)
Object getConnection(Subject, ConnectionRequestInfo)
LocalTransaction getLocalTransaction()
PrintWriter getLogWriter()
ManagedConnectionMetaData getMetaData()
Subject getSecurityContext()
String getUserName()
XAResource getXAResource()
boolean isDirty()
void logTrace(String)
void removeConnectionEventListener(ConnectionEventListener)
void setDirty(boolean)
void setLogWriter(PrintWriter)
void setManagedConnectionFactory(B2BManagedConnectionFactory)와 같은 메소드들을 포함한다.
B2BManagedConnectionFactory는 통신 링크(18) 상에서 물리적 접속을 생성한다. 이는 목표 시스템(16)과 실제적인 통신을 수행하기 위하여 통신 링크(18)를 사용하는 B2BManagedConnection의 인스턴스를 생성하는 createManagedConnection() 메소드를 사용함으로써 행하여진다.
B2BManagedConnectionFactory는 커넥터(10)의 행동이 다음과 같은 특성들을 위한 액세서들을 제공함으로써 구성되도록 한다.
Protocol2ServiceMessageMapping - 이 특성은 통신 링크(18)로부터 커넥터(10)에 의해 수신된 수신(inbound) 메시지를 처리할 수 있고 메시지내의 엔벌로프를 해석할 수 있는 커스텀(custom) 프로토콜 핸들러의 인스턴스를 포함한다.
ServiceMessage2ProtocolMapping - 이 특성은 컴포넌트(14)로부터 출력 데이터를 수신할 수 있고 전송에 적합한 메시지를 생산하기 위하여 통신 링크(18)에 의하여 사용되는 프로토콜과 일치하는 엔벌로프를 생산할 수 있는 커스텀 프로토콜 핸들러의 인스턴스를 포함한다.
TransportSpec - 이 특성은 커넥터(10)에 의해 사용될 전송 프로토콜을 정의하는 B2BManagedConnectionTransportSpec 객체의 인스턴스이다.
다른 대안으로 전송 프로토콜은 통신 링크(18)에 의해 사용되는 프로토콜이거나 J2EE 커넥터 아키텍쳐에 부합하는 임의의ㄴ 어떤 다른 커넥터에 의하여 이해되는 프로토콜일 수도 있다. 이는 커넥터(10)가 다른 커넥터와 함께 스택되도록 한다. 이 경우 TransportSpec 특성은 접속을 생성하기 위하여 사용되는 전송 프로토콜의 ConnectionFactory 인스턴스와, 특정한 전송 프로토콜을 사용하여 커넥터(10)에 의해 수행되는 인터랙션들을 특징으로 하는 전송 프로토콜의 InteractionSpec 인스턴스를 포함한다.
만약 커넥터(10)가 다른 커넥터와 함께 스택되지 않는다면 그후 TransportSpec 특성은 정의되지 않는다. 이 경우에 커넥터(10)는 B2BManagedConnection의 call() 메소드의 구현에 있어 제시된 통신 링크에 따른 인터페이스를 사용하여 통신 링크(18) 상에서 통신을 수행하여야 한다.
TransportSpecName - 사용되는 전송 프로토콜의 명칭. 만약 transportSpec 특성이 정의되지 않으나 TransportSpecName 특성이 특정된다면 B2BManagedConnectionFactory는 createTransportSpec() 메소드 구현에 있어서 TransportSpecName을 찾아봄으로써 JNDI 문맥으로부터 TransportSpec 객체를 검색하려고 시도할 것이다.
HttpTransportURL - 만약 전송 프로토콜이 HTTP 프로토콜이라면 시스템(16)의 URL 주소는 어떤 다른 방법으로도 전송 요구사항을 제공하지 않고(즉 TransportSpec과 TransportSpecName 특성들을 사용하지 않고) 이러한 특성을 사용하여 직접 지정될 수도 있다. HTTP 프로토콜은 커넥터(10)를 위한 디폴트 전송이다.
B2BManagedConnectionFactory 클래스는 또한,
(i) B2BConnectionFactory 객체를 생성하는 createConnectionFactory(..)와
(ii) B2BManageConnectionFactory의 인스턴스를 비교하는 equals()와
(iii) 로그하는 기능을 지정하는 get/setLogWriter()와
(iv) factory 인스턴스의 해시값을 계산하는 hashCode()와
(v) matchManagedConnections()와 같은 J2EE 커넥터 아키텍쳐 요구사항에 의하여 요구되는 메소드들을 구현한다.
9.B2BManagedConnection
B2BManagedConnection 클래스는,
Object createConnectionFactory()
Object createConnectionFactory(ConnectionManager)
ManagedConnection createManagedConnection(Subject, ConnectionRequestInfo)
void createTransportSpec()
boolean equals(Object)
String getHttpTransportURL()
PrintWriter getLogWriter()
Protocol2ServiceMessageMapping getProtocol2ServiceMessageMapping()
ServiceMessage2ProtocolMapping getServiceMessage2ProtocolMapping()
B2BManagedConnectionTransportSpec getTransportSpec()
String getTransportSpecName()
int hashCode()
void logTrace(String)와 같은 메소드들을 포함한다.
B2BManagedConnection 클래스는 목표 시스템(16)에 대한 통신 링크(18) 상에서의 물리적인 접속을 표현한다. B2BManagedConnection는 컴포넌트(14)가 물리적인 접속에 액세스하기 위하여 사용하는 B2BConnection들을 인스턴스화한다.
B2BManagedConnection은 다중 핸들을 지원하나 단지 가장 최근에 생성된 핸들만이 인터랙션을 수행하기 위하여 사용될 수 있다. 생성된 마지막 핸들이 종료되기 전에 어떤 다른 핸들로부터 물리적인 접속에 액세스하기 위한 시도는 에러로 취급되고 IllegalStateException이 나오도록 유발한다.
확인과 현재 핸들 유지는 상부에 유효한(그리고 가장 최근에 생성된) 핸들을 가진 스택 데이터 구조에 핸들을 저장함으로써 구현된다. B2BConnection으로부터 물리적인 접속에 대한 각 액세스는 이러한 데이터 구조와 비교하여 확인되고 적절한 조치가 취해진다.
B2BManagedConection 클래스는 구성된 발신 프로토콜 핸들러ServiceMessage2ProtocolMapping이 발신 메시지를 생산하기 위하여 프로토콜에 따른 엔벌로프를 부가하도록 함으로써 커넥터(10)에 의해 전송되어지는 발신 데이터를 둘러싸는 일반적인 엔벌로프의 구성을 위한 지원을 구현한다.
B2BManagedConnection의 인터페이스상에서 정의된 메소드들 외에 구현되는 call() 메소드는 ServiceMessage2protocolMapping과 Protocol2ServiceMessageMapping 프로토콜 핸들러를 호출하는 보호된 메소드이다. call() 메소드는 현재의 핸들, InteractionSpec, 입력과 출력 레코드들을 프로토콜 핸들러에 넘긴다.
B2B ManagedConnection 클래스는 또한 접속들을 관리하기 위하여 사용되는 다음과 같은 메소드들을 구현한다.
(i) void associateConection(Object) - 이 메소드에 있어서 넘겨진 B2BConnection 객체는 그 close 메소드를 호출함으로써 그 현재 B2BManagedConnection로부터 분리되고 그후 이러한 관리 접속과 관련된다. 실행 후 넘겨진 B2BConnection은 B2BManagedConnection에 대한 현재 핸들이다.
(ii) void cleanup() - 이 메소드는 접속 핸들 스택을 비운다.
(iii) void close(B2BConnection) - 이 메소드에 있어서 B2BManagedConnection은 스택의 상부로부터 매소드를 호출했던 핸들을 제거하고 CONNECTION_CLOSED 이벤트를 개시한다.
(iv) void destroy() - 이 메소드는 핸들 스택을 비우고 할당을 제거함으로써 B2BManagedConnection의 내부 상태를 해제한다(clean up).
(v) Object getConnection(Subject, ConnectionRequestInfo) - 이 메소드에 있어서 새로운 접속 핸들이 생성되고 핸들 스택의 상부에 놓여지며 반환된다.
10.B2BManagedConnectionMetaData
B2BManagedConnectionMetaData 클래스는,
B2BManagedConnectionMetaData(B2BManagedConnection)
String getEISProductName()
String getEISProductVersion()
int getMAXConnections()
String getUserName()
B2BPayloadBufferRecord
Object clone()
String getRecordName()
String getRecordShortDescripton()
void read(InputStream)
void setRecordName(String)
void setRecordShortDescription(String)
void write(OutputStream)과 같은 메소드들을 포함한다.
B2BManagedConnectionMetaData 클래스는 목표 시스템(16) 제품과 버젼, 목표 시스템(16)에 의해 지원되는 접속들의 최대 수 및 컴포넌트(14)의 사용자 이름과 같은 커넥터(10)에 관한 정보를 제공한다.
11.B2BPayloadBufferRecord
B2BPayloadBufferRecord는 그것이 구현하는 J2EE 커넥터 아키텍쳐 요구사항 인터페이스에 의해 정의된 메소드를 구현한다(Record와 Streamable). 이 메소드들은,
clone()
eqals(Object)
getRecordName()
getRecordShortDescription()
hashCode()
setRecordName(String)
setRecordShortDescription(String)
read(InputStream)
write(OutputStream)이다.
B2BPayloadBufferRecord 클래스는 페이로드 레코드, J2EE 커넥터 아키텍쳐 요구사항으로부터의 javax.resource.cci.Record와 javax.resource.cci.Streamable 인터페이스들을 구현하므로 인터랙션의 execute() 메소드에 대한 인수로 사용될 수 있다. 커넥터(10)는 B2BPayloadBufferRecord를 단지 입력 인수만 지닌 B2BInteraction의 execute() 메소드 구현에 있어서 출력 레코드로서 사용할 수 있다.
12.B2BPayloadMappingRecord
B2BPayloadMappingRecord 클래스는,
Object clone()
String getRecordName()
String getRecordShortDescription()
void read(InputStream)
void setRecordName(String)
void setRecordShortDescription(String)
void setX2XMLMapping(X2XMLMapping)
void setXML2xMapping(XML2xMapping)
void write(OutputStream)와 같은 메소드를 포함한다.
B2BPayloadMappingRecord는 그 콘텐츠가 맵핑을 이용하여 쓰여지거나 읽혀질 수 있는 레코드를 구현한다. 이 구현은 XML에 대한 임의의 레코드의 콘텐츠를 맵핑하기 위하여 사용되어질 수 있다.
13.B2BProtocolRecord
B2BProtocolRecord 클래스는,
Object clone()
String getRecordName()
String getRecordShortDescription()
void read(InputStream)
void setB2BInteractionSpec(B2BInteractionSpec)
void setB2BQOS(B2BQOS)
void setProtocol2ServiceMessageMapping(Protocol2ServiceMessageMapping)
void setProtocol2ServiceResponseMapping(Protocol2ServiceMessageMapping)
void setRecord(Record)
void setRecordName(String)
void setRecordShortDescription(String)
void setServiceMessage2ProtocolMapping(ServiceMessage2ProtocolMapping)
void write(OutputStream)와 같은 메소드를 포함한다.
B2BProtocolRecord의 역할과 동작은 아래 설명된 트랜잭션(100)의 기재에서 설명된다.
14.B2BResourceAdapterMetaData
B2BResourceAdapterMetaData 클래스는,
String getAdapterName()
String getAdapterShortDescription()
String getAdapterVendorName()
String getAdapterVersion()
String getInteractionSpecsSupported()
String getSpecVersion()
boolean supportsExecuteWithInputAndOutputRecord()
boolean supportsExecuteWithInputRecordOnly()
boolean supportsLocalTransactionDemarcation()와 같은 메소드를 포함한다.
B2BResourceAdapterMetaData 클래스는 컴포넌트(14)에 명칭, 설명, 공급자 명칭, 지원되는 어댑터 버젼과 스펙 버젼과 같은 커넥터(10)의 특징들을 제공한다. 그것은 또한 InteractionSpec 구현 클래스의 명칭과 같이 J2EE 커넥터 아키텍쳐의 어떠한 선택적 특징들이 구현되어져 왔는지, 커넥터(10)가 어떠한 종류의 execute() 메소드를 지원하는지, 그리고 커넥터(10)가 로컬 트랜잭션을 지원하는지에 대해 설명하는 정보를 포함한다.
15.B2BQOS
이 클래스는 커넥터의 구현자가 다양한 서비스 품질(QOS) 정보를 넘기도록 하기 위하여 제공된다. QOS는 트랜잭션 정보, 인증 정보 그리고 허가 정보를 포함한다. 이 메소드의 구현은 하부 구조(12)의 능력에 따르므로 본 발명은 클래스의 어떠한 메소드도 정의하지 않는다. 이러한 메소드들은 특정 하부 구조(12)를 위한 클래스 구현자에 의해 정의될 것이다.
16.Protocol2ServiceMessageMapping
Protocol2ServiceMessageMapping 클래스는,
void execute()
void setB2BInteractionSpec(B2BInteractionSpec)
void setB2BQOS(B2BQOS)
void setInputStream(InputStream)
void setRecord(Record)와 같은 메소드를 포함한다.
Protocol2ServiceMessageMapping 클래스는 통신 링크(18) 상에서 수신된 착신 메시지를 컴포넌트(14)의 사용을 위한 착신 데이터로 변환하기 위하여 커 넥터(10)에 의해 사용되는 프로토콜 핸들러이다. Protocol2ServiceMessageMapping는 커넥터(10)의 제공자 또는 선택된 전송 프로토콜이나 데이터 프로토콜에 따르는 다른 실체에 의해 구현된다. 전송 프로토콜 또는 데이터 프로토콜에 변화가 생길 때 커넥터(10)와 컴포넌트(14)가 수정된 전송 프로토콜 또는 데이터 프로토콜을 수정 없이 사용하도록 하면서 Protocol2ServiceMessageMapping 구현이 이에 상응하도록 수정된다.
17.ServiceMessage2ProtocolMapping
ServiceMessage2ProtocolMapping은,
void execute()
void setB2BInteractionSpec(B2BInteractionSpec)
void setB2BQOS(B2BQOS)
void setOutputStream(OutputStream)
void setRecord(Record)와 같은 메소드를 포함한다.
ServiceMessage2ProtocolMapping 클래스는 발신 메시지를 위한 Protocol2ServiceMessageMapping 클래스에 대한 컴플리먼트이다. 이는 선택된 전송 프로토콜 또는 데이터 프로토콜의 현재 버젼과 일치하도록 하기 위하여 커넥터(10)의 제공자에 의하여 유사하게 구현되고 최신상태로 유지된다.
다음으로 도 2를 참조한다. 총괄적으로 Protocol2ServiceMessageMapping과ServiceMessage2ProtocolMapping 클래스는 컴포넌트(14)가 (i) 통신 채널 상에서 발신 데이터(26)와 엔벌로프(30)를 포함하는 발신 메시지(28)의 일부로서 발신 데이터(26)를 전송하고 (ii) 엔벌로프(36)를 포함하는 착신 메시지(34)로부터 추출된 착신 데이터(32)를 수신하도록 하는 프로토콜 핸들러(24)를 제공한다.
통신 링크(18)에 따라 커넥터(10)를 구성하기 위해 사용되는 B2BInteractionSpec 클래스는 인터랙션의 유형(송신, 수신 또는 송수신)이 설정되도록 하기 위하여 프로토콜 핸들러(24)와 컴포넌트(14) 사이에서 연결된다.
이제 커넥터(10)의 동작이 컴포넌트(14)와 목표 시스템(16)간 전형적인 트랜잭션(100) 중 통신과 데이터 흐름을 도시하는 도 3, 4, 5를 참조하여 설명될 것이다. 트랜잭션(100)은 송신 트랜잭션 또는 수신 트랜잭션 또는 송수신이 조합된 트랜잭션일 수도 있다. 트랜잭션(100)의 단계(102)에서 단계(122)까지는 송신과 수신 트랜잭션 모두에 공통된다. 단계(122) 후 트랜잭션(100)은 브랜치 200과 300으로 나누어진다. 브랜치 200은 송신 트랜잭션이 지정되면 수행된다. 브랜치 300은 수신 트랜잭션이 지정되면 수행된다. 브랜치 200과 300은 연속적으로 수행되거나 동시에 수행될 수도 있다. 송신 및 수신 트랜잭션은 B2BInteractionSpec 클래스의 InteractionVerb 특성을 설정함으로써 지정된다.
전형적인 트랜잭션(100)은 컴포넌트(14)가 B2BManagedConnection Factory의 인스턴스를 생성하고 그 Protocol2ServiceMessageMapping, ServiceMessage2ProtocolMapping, 및 TransportSpec 특성들을 설정하는 102 단계에서 시작한다.
Protocol2ServiceMessageMapping과 ServiceMessage2ProtocolMapping 특성들의 설정은 데이터 전송 프로토콜에 좌우될 것이다. 현재 전형적인 실시예에 있어서 Protocol2ServiceMessageMapping과 ServiceMessage2ProtocolMapping 특성들은 각각 SOAP 프로토콜을 사용하여 착신 및 발신 메시지를 처리하는 커스텀 핸들러를 포함한다.
TransportSpec 특성은 전송 커넥터로서의 사용으로 의도된 커넥터의 전송 프로토콜을 정의한다. 현재의 예에서 커넥터(10)는 통신 링크(18) 상에서 통신을 허용하는 J2EE 컴플라이언트 HTTP 전송 커넥터와 함께 스택된다.
단계(102) 중 컴포넌트(14)는 B2BConnectionFactory의 인스턴스를 생성하기 위하여 B2BManagedConnectionFactory 클래스의 createConnectionFactory() 메소드를 이용한다. 컴포넌트(14)는 그후 하부 구조(12)가 B2BManagedConnectionFactory로부터 새로운 접속을 요청하도록 유발하면서 B2BConectionFactory의 getConnection() 메소드를 호출한다.
트랜잭션(100)은 다음으로 단계(104)로 진행하며 여기에서 B2BManagedConnectionFactory는 새로운 B2BManagedConnection의 인스턴스를 생성하고 그 특성들을 설정한다. 설정되는 특성들 중 하나는 차례로 B2BManagedConnection에게 Protocol2ServiceMessageMapping과 ServiceMessage2ProtocolMapping 프로토콜 핸들러에 대한 액세스를 주는 B2BManagedConnectionFactory 그 자체이다.
트랜잭션(100)은 다음으로 단계(106)로 진행하며 104 단계에서 생성된B2BManagedConnection은 B2BConnection의 인스턴스를 생성한다. B2BManagedConnection에 대한 접속 핸들, B2BConnection의 인스턴스는 컴포넌트(14)에 반환된다.
트랜잭션(100)은 다음으로 단계(108)로 진행한다. 이 단계에서 컴포넌트(14)는 B2BConnection 인스턴스의 createInteraction() 메소드를 호출함으로써 B2BInteraction을 요청한다. createInteraction() 메소드에 대한 호출 중 B2BConnection은 B2BInteraction 객체의 새로운 인스턴스를 생성한다. B2BManagedConnectionFactory의 TransportSpec 객체는 검색되고 전송 프로토콜의 ConnectionFactory를 얻기 위해 사용된다. TransportSpec 객체는 Connection 객체를 생성하기 위하여 차례로 이용된다. Connection 객체로부터 B2BManagedConnection은 B2BInteraction 객체의 인스턴스를 생성한다.
트랜잭션(100)은 다음으로 단계(110)로 진행하며 여기에서 새로운 B2BInteraction 객체가 컴포넌트(14)에 반환된다.
트랜잭션(100)은 다음으로 단계(112)로 진행하며 여기에서 컴포넌트(14)는 새로운 B2BInteraction 객체의 execute() 메소드를 호출한다. 컴포넌트(14)는 B2BInteractionSpec 인터페이스와 입력 및 출력 레코드를 B2BInteraction 객체에 넘긴다.
B2BInteractionSpec은 현재 전형적인 실시예에 있어서 B2BInteractionSpec 인터페이스를 구현하는 SOAP 프로토콜의 SOAPInteractionSpec 객체에 대한 인터페이스이다. 다른 실시예에 있어서 B2BInteractionSpec 인터페이스는 단계(102)에서B2BManagedConnectionFactory에 대하여 지정된 Protocol2ServiceMessageMapping과 ServiceMessage2ProtocolMapping 프로토콜 핸들러와 일치하는 인터페이스일 것이다.
입력 및 출력 레코드는 javax.resource.cci.Record와 javax.resource.cci.Streamable 인터페이스를 구현하고 입력 레코드는 목표 시스템(16)에 보내질 XML 데이터를 포함한다.
트랜잭션(100)은 다음으로 단계(114)로 진행하며 여기에서 B2BInteraction 객체는 B2BConnection의 call() 메소드를 호출하고 그것에 컴포넌트 요청을 넘긴다.
트랜잭션(100)은 다음으로 단계(116)로 진행하며 B2BConnect는 B2BManagedConnection의 call() 메소드를 호출하고 컴포넌트(14)로부터의 요청과 그 자체에 대한 참조를 B2BManagedConnection에 넘긴다.
트랜잭션(100)은 다음으로 단계(118)로 진행하며 여기에서 B2BManagedConnection은 단계(116)에서 호출된 call() 메소드를 실행한다. 이 단계에서 InteractionSpec 객체의 InteractiveVerb 특성이 수신 또는 송수신이라면 B2BManagedConnection은 B2BprotocolRecord의 새로운 인스턴스를 생성하고 그후 다음과 같은 특성들을 설정한다.
i. 단계(102)에서 컴포넌트(14)에 의해 설정되고 B2BManagedConnectionFactory로부터 수신되는 protocol2ServiceMessageMapping.
ii. 단계(112)에서 컴포넌트(14)에 의해 B2BInteraction 객체의 execute() 메소드에 넘겨진 B2BInteractionSpec.
iii. 단계(112)에서 컴포넌트에 의해 B2BInteraction 객체의 execute() 메소드에 넘겨진 입력 레코드.
iv. 하부 구조(12)에 관한 서비스 정보 품질을 포함하는 B2BQOS 객체.
이러한 B2BProtocolRecord 객체는 새로운 착신 B2BProtocolRecord 레코드이다.
트랜잭션(100)은 다음으로 단계(120)로 진행한다. InteractionSpec 객체의 InteractionVerb 특성이 송신 또는 송수신이라면 B2BManagedConnection은 B2BProtocolRecord 객체의 새로운 인스턴스를 생성하고 다음과 같은 특성들을 설정한다.
i. 단계(102)에서 컴포넌트(14)에 의해 설정된 B2BManagedConnectionFactory 인스턴스로부터 취해진 ServiceMessage2ProtocolMapping.
ii. 단계(112)에서 컴포넌트(14)에 의해 B2BInteraction 객체의 execute method()에 넘겨진 B2BInteractionSpec.
iii. 단계(112)에서 컴포넌트(14)에 의해 B2BInteraction 객체의 execute method()에 또한 넘겨진 출력 레코드.
iv. 하부 구조(12)에 관한 서비스 정보 품질을 포함하는 B2BQOS 객체.
이러한 B2BProtocolRecord 객체는 새로운 발신 B2BProtocolRecord 레코드이다.
트랜잭션(100)은 다음으로 단계(122)로 진행하며 여기에서 B2BManagedConnection 객체는 전송 커넥터의 Interaction 객체의 execute() 메소드를 호출한다. 이 Interaction은 전송 커넥터(전형적인 실시예에 있어서 HTTP 전송커넥터임)를 식별하기 위하여 B2BManagedConnection Factory의 transportSpec 특성을 설정함으로써 단계(102)에서 생성되었다. 현재의 예에 있어서 입력 B2BProtocolRecord 객체와 출력 B2BProtocolRecord 객체 모두가 B2BManagedConnection에 의해 인스턴스화되어 왔다.
트랜잭션(100)은 그후 별개로 또는 순서대로 실행될 수도 있는 두개의 브랜치 200과 300를 갖고 송신하고 수신한다.
InteractionSpec 객체의 InteractionVerb 특성이 송신 또는 송수신이라면 그후 브랜치 200이 수행될 것이다.
브랜치 200은 단계(202)에서 시작하며 그동안 transport는 입력 B2BProtocolRecord 객체의 write() 메소드를 호출한다.
브랜치 200은 다음으로 단계(204)로 진행하며 여기에서 124 단계에서 호출된 write() 메소드가 프로세스된다. 입력 B2BProtocolRecord 객체는 ServiceMessage2ProtocolMapping 프로토콜 핸들러의 B2BInteractionSpec, Record, B2BQOS(118 단계에서 설정되었던 모든 것) 그리고 출력 스트림(다시 말하면 통신 링크(18)가 하부 구조(12)에 접속되는 포트)과 같은 특성들을 설정한다. 그 결과 출력 스트림은 하나의 인수로 전송 커넥터에 의해 write() 메소드에 넘겨진다.
브랜치 200은 다음으로 단계(206)로 진행되며 여기에서 ServiceMessage2ProtocolMapping 전송 핸들러의 execute() 메소드가 호출된다. ServiceMessage2ProtocolMapping 전송 핸들러는 112 단계에서 넘겨진 데이터 레코드로부터 취해진 엔벌로프와 데이터에 기록한다. 데이터가 기록될 때 execute()는124 단계에서 정의되었던 B2BProtocolRecord의 write() 메소드로부터의 반환을 허용하며 반환한다. 그후 브랜치 200은 종결된다.
B2BProtocolRecord와 B2B Connector 중 어느 것도 ServiceMessage2ProtocolMapping 전송 핸들러에 의해 출력 스트림에 기록된 엔벌로프 또는 발신 메시지의 내용을 알지 못한다. 이러한 투명성 때문에 ServiceMessage2ProtocolMapping 전송 핸들러는 어떤 방법으로든 커넥터(10) 또는 컴포넌트(14)를 변경할 필요 없이 그것이 기록한 데이터를 변경할 수 있다.
브랜치 300은 커넥터(10)의 수신 동작을 도시한다. 브랜치 300은 수신 동작이 입력 B2BProtocolRecord 객체를 인스턴스화함으로써 구성되어 왔다면 단계(122) 후에 수행되는 단계(203) 에서 시작한다.
단계(302)에서 전송 커넥터는 입력 B2BProtocolRecord 객체의 read() 메소드를 호출하고 입력 스트림을 read 메소드에 넘긴다. 입력 스트림은 목표 시스템(16)으로부터의 엔벌로프와 입력 데이터를 모두 포함한다.
브랜치 300은 다음으로 단계(304)로 진행하며 여기에서 입력 B2BProtocolRecord 객체는 Protocol2ServiceMessageMapping 객체의 read() 메소드에 넘겨진 데이터 출력 레코드, B2BQOS, B2BInteractionSpec 및 입력 스트림과 같은 특징들을 단계(102)와 유사한 방법으로 설정한다.
브랜치 300은 다음으로 단계(306)로 진행하며 여기에서 입력 B2BProtocolRecord 객체는 Protocol2ServiceMessageMapping 객체의 execute() 메소드를 호출한다. Protocol2ServiceMessageMapping 객체는 전송 커넥터에 의해 넘겨진 입력 스트림으로부터 엔벌로프와 입력 데이터를 판독한다. Protocol2ServiceMessageMapping 객체는 엔벌로프를 떼어내고 입력 데이터를 단지 출력 레코드로만 넣는다.
브랜치 300은 다음으로 단계(308)로 진행하며 여기에서 Protocol2ServiceMessageMapping의 execute() 메소드가 반환된다. 이 시점에 있어 단계(120)에서 설정된 입력 B2BProtocolRecord 객체의 출력 레코드는 목표 시스템(16)에 의해 전송된 엔벌로프가 없는 데이터를 포함한다.
브랜치 300은 다음으로 단계(310)로 진행하며 여기에서 입력 B2BProtocolRecord 객체의 read() 메소드가 반환된다.
브랜치 300은 다음으로 단계(312)로 진행하며 여기에서 transport execute() 메소드가 단계(122)에서 시작된 호출로부터 반환된다. 이 시점에 있어 B2BManagedConnection은 단계(116)에서 호출되었던 그의 call() 메소드로부터 반환된다. 그후 B2BConnection은 단계(114)에서 호출되었던 그의 call() 메소드로부터 반환된다. 그후 B2BInteraction은 단계(112)에서 호출되었던 그의 call() 메소드로부터 반환된다. 단계(112)에서 컴포넌트(14)에 의해 지정된 출력 레코드는 목표 시스템으로부터 반환된 입력 데이터를 포함한다.
브랜치 300은 그러므로 그로부터 제거된 엔벌로프를 가진 컴포넌트(14)에 착신 데이터를 제공하고 그로 인하여 엔벌로프를 정의하기 위하여 사용된 프로토콜( 본 실시예에 있어서 SOAP 프로토콜) 또는 전송 프로토콜(본 실시예에 있어서 HTTP 프로토콜)이 수정되거나 또는 완전히 대체될지라도 컴포넌트(14)를 수정할 어떤 필요도 없게 된다.
커넥터(10)는 목표 시스템(16)과 통신하는 컴포넌트(14)를 위한 투명한 메커니즘을 제공한다. 발신 및 착신 메시지의 조립과 분해도 투명하게 이루어진다. 메시지나 전송 프로토콜에 있어서 엔벌로프에 대한 어떤 변화도 단순히 ServiceMessage2ProtocolMapping과 Protocol2ServiceMessageMapping 프로토콜 핸들러들을 수정함으로써 어드레스되어질 수도 있다.
본 발명은 기업 대 기업("B2B")을 배경으로 설명되어져 왔다. 본 발명은 컴포넌트가 통신 링크를 거쳐 목표 시스템에 대한 액세스를 요구하는 어떤 상황에 대해서도 적합하다. 더 나아가 클래스, 메소드, 객체 그리고 커넥터(10)의 인터페이스에 대해 특정 명칭을 사용하는 것은 단지 전형적인 것에 불과하고 임의의 적절한 명칭들이 사용되어질 수도 있다. 설명된 실시예의 다양한 변화는 단지 다음의 청구항들에 의해 제한된 본 발명의 사상과 범위내에서 이루어진다.
앞으로 살펴 보겠지만 여기에서 설명된 실시예에 대한 다른 방안들도 가능하다. 예를 들면 단일 커넥터가 다중 애플리케이션, 통신 링크 및 또는 프로토콜 핸들러에 제거 가능하도록 동시에 접속할 수 있다. 부가적으로 전형적인 실시예에 있어서 객체들은 커넥터와 애플리케이션(14) 사이에서 넘겨지는 반면 다른 실시예들은 객체들을 넘겨줄 필요 없이 다른 데이터 포맷들을 넘겨줄 수 있다. 그 외에 전형적인 실시예가 객체 지향 개념으로 설명되었지만 다른 종류의 언어(예를 들면 구조 언어 등)도 마찬가지로 사용될 수 있다.

Claims (39)

  1. 제1 및 제2 애플리케이션간 데이터 전송을 용이하게 하고, 상기 제1 및 제2 애플리케이션간 통신을 위한 데이터 변환 서비스를 제공하는 커넥터에 있어서,
    상기 제1 애플리케이션으로부터 데이터를 수신하고, 통신 프로토콜을 지원하는 프로토콜 핸들러로부터 포맷된 데이터를 수신하도록 적응된 수신기와,
    상기 프로토콜 핸들러로부터 수신된 포맷된 데이터를 상기 제2 애플리케이션에 전송하고, 상기 제1 애플리케이션으로부터 수신된 데이터를 상기 수신된 데이터를 포맷된 데이터로 변환하는 상기 프로토콜 핸들러에 전송하도록 적응된 송신기를 포함하고, 상기 커넥터에 의해 제공되는 상기 데이터 변환 서비스는 상기 프로토콜 핸들러에 의해 지원되는 상기 통신 프로토콜에 의해 결정되는 것을 특징으로 하는 커넥터.
  2. 제1항에 있어서,
    상기 커넥터가 다수의 프로토콜 핸들러 중 적어도 하나의 프로토콜 핸들러와 통신하도록 적응되고, 상기 다수의 프로토콜 핸들러 각각은 상이한 통신 프로토콜을 지원하고, 제1 애플리케이션에 제공되는 인터페이스가 상기 적어도 하나의 프로토콜 핸들러에 의해 지원되는 통신 프로토콜에 관계없이 정적인 상태로 남아 있는 것을 특징으로 하는 커넥터.
  3. 제2항에 있어서,
    상기 수신기는 또한 상기 제2 애플리케이션으로부터 포맷된 데이터를 수신하고 상기 프로토콜 핸들러로부터 데이터를 수신하도록 적응되고,
    상기 송신기는 또한 상기 제2 애플리케이션으로부터 수신된 포맷된 데이터를 상기 프로토콜 핸들러로 전송하고 상기 프로토콜 핸들러로부터 수신된 데이터를 상기 제1 애플리케이션에 전송하도록 적응되는 것을 특징으로 하는 커넥터.
  4. 제3항에 있어서,
    상기 데이터가 객체를 포함하고 상기 포맷된 데이터가 패킷을 포함하는 것을 특징으로 하는 커넥터.
  5. 제4항에 있어서,
    상기 프로토콜 핸들러로부터 수신된 패킷은 상기 제1 애플리케이션으로부터 수신된 객체에 의해 저장된 페이로드 데이터로부터 발생되고,
    상기 제1 애플리케이션에 전송된 객체는 상기 제2 애플리케이션으로부터 수신된 패킷내에 저장된 페이로드 데이터로부터 발생되는 것을 특징으로 하는 커넥터.
  6. 제5항에 있어서,
    상기 객체가 상기 객체로부터 페이로드 데이터를 판독하고 상기 객체에 페이로드 데이터를 기록하는 메소드를 포함하는 것을 특징으로 하는 커넥터.
  7. 제3항에 있어서,
    상기 적어도 하나의 프로토콜 핸들러를 더 포함하고, 상기 적어도 하나의 프로토콜 핸들러가 착신 프로토콜 핸들러와 발신 프로토콜 핸들러를 포함하는 것을 특징으로 하는 커넥터.
  8. 제7항에 있어서,
    상기 착신 프로토콜 핸들러가 상기 커넥터에 의해 상기 제2 애플리케이션으로부터 수신된 패킷으로부터 객체를 발생시키고, 상기 발신 프로토콜 핸들러가 상기 커넥터에 의해 상기 제1 애플리케이션으로부터 수신된 객체로부터 패킷을 발생시키는 것을 특징으로 하는 커넥터.
  9. 제8항에 있어서,
    발신 프로토콜 핸들러가 B2BServiceMessage2ProtocolMapping 프로토콜 핸들러를 포함하고 상기 착신 프로토콜 핸들러가 B2BProtocol2ServiceMessage 프로토콜 핸들러를 포함하는 것을 특징으로 하는 커넥터.
  10. 제1 및 제2 애플리케이션간 데이터 전송을 용이하게 하기 위한 커넥터에 있어서,
    상기 제1 애플리케이션과 통신하도록 적응된 제1 인터페이스와,
    프로토콜 핸들러와 통신하도록 적응된 제2 인터페이스와,
    상기 제2 애플리케이션과 통신하도록 적응된 제3 인터페이스와,
    상기 제1, 제2, 제3 인터페이스와 통신하는데 있어 프로세싱 코어를 포함하고, 상기 프로세싱 코어는,
    상기 제1 인터페이스를 통해 상기 제1 애플리케이션에 데이터를 전송하고 상기 제1 애플리케이션으로부터 데이터를 수신하며,
    상기 제1 애플리케이션으로부터 수신된 데이터를 상기 제2 인터페이스를 통해 상기 프로토콜 핸들러에 전달하고,
    상기 제2 인터페이스를 통해 상기 프로토콜 핸들러로부터 수신된 포맷된 데이터를 상기 제3 인터페이스를 통해 상기 제2 애플리케이션에 전달하고,
    상기 제2 인터페이스를 통해 상기 프로토콜 핸들러로부터 수신된 데이터를 상기 제1 인터페이스를 통해 상기 제1 애플리케이션에 전달하고,
    상기 제3 인터페이스를 통해 상기 제2 애플리케이션으로부터 수신된 포맷된 데이터를 상기 제2 인터페이스를 통해 상기 프로토콜 핸들러에 전달하도록 적응된 것을 특징으로 커넥터.
  11. 제10항에 있어서,
    상기 데이터가 객체를 포함하고 상기 포맷된 데이터가 패킷을 포함하는 것을 특징으로 하는 커넥터.
  12. 제11항에 있어서,
    상기 프로토콜 핸들러로부터 수신된 패킷이 상기 제1 애플리케이션으로부터 수신된 객체에 의해 저장된 페이로드 데이터로부터 발생되고,
    상기 제1 애플리케이션으로 전송된 객체가 상기 제2 애플리케이션으로부터 수신된 패킷내에 저장된 페이로드 데이터로부터 발생되는 것을 특징으로 하는 커넥터.
  13. 제12항에 있어서,
    상기 제1, 제2, 제3 인터페이스가 단일 송수신기에 의해 제공되는 것을 특징으로 하는 커넥터.
  14. 제1 및 제2 애플리케이션 사이에 놓여진 커넥터에 있어서,
    상기 제1 애플리케이션과의 통신을 위한 제1 인터페이스와,
    상기 제2 애플리케이션과의 통신을 위한 제2 인터페이스와,
    다수의 프로토콜 핸들러로부터 선택된 프로토콜 핸들러를 제거 가능하게 수신하도록 적응된 구성(configuration) 인터페이스를 포함하고,
    상기 제1 및 제2 애플리케이션간 통신을 위한 데이터 변환 서비스를 제공하며,
    상기 데이터 변환 서비스는 상기 구성 인터페이스에 의해 수신된 상기 선택된 프로토콜 핸들러에 의해 결정되는 것을 특징으로 하는 커넥터.
  15. 제1 및 제2 애플리케이션간 통신을 용이하게 하기 위하여 다수의 다른 데이터 변환 서비스를 제공하고, 제1 데이터 포맷을 이용하여 상기 제1 애플리케이션과 통신하고 제2 데이터 포맷을 사용하여 상기 제2 애플리케이션과 통신하는 커넥터에 있어서,
    상기 커넥터와 상기 제1 애플리케이션간에 상기 제1 데이터 포맷에 맞는 데이터를 전송하기 위한 제1 수단과,
    상기 커넥터와 상기 제2 애플리케이션간에 상기 제2 데이터 포맷에 맞는 데이터를 전송하기 위한 제2 수단과,
    상기 제1 데이터 포맷과 상기 제2 데이터 포맷간에 변환을 행하는 제1 프로토콜 핸들러를 제거 가능하도록 수신하기 위한 구성 인터페이스 수단을 포함하고,
    상기 제2 데이터 포맷이 수정된다면 상기 제1 프로토콜 핸들러는 상기 제1 데이터 포맷과 상기 수정된 제2 데이터 포맷간에 변환하는 제2 프로토콜 핸들러로 대체되는 것을 특징으로 하는 커넥터.
  16. 하부 구조에서 동작하는 컴포넌트로부터 목표 시스템으로 데이터를 통신선을 거쳐 송신하는 방법으로서,
    (a) 발신 데이터를 발신 메시지로 변환하기 위하여 발신 프로토콜 핸들러를 구성하는 단계와,
    (b) 상기 하부 구조와 상기 통신선간에 접속을 설정하는 단계와,
    (c) 상기 컴포넌트로부터 상기 발신 데이터를 포함하는 출력 레코드를 수신하는 단계와,
    (d) 상기 통신선 상에서 상기 발신 데이터를 전송하는 단계를 포함하는 것을 특징으로 하는 데이터 전송 방법.
  17. 제16항에 있어서,
    상기 발신 프로토콜 핸들러에서, 선택된 데이터 프로토콜에 따라 상기 발신 메시지를 포맷하도록 구성되는 것을 특징으로 하는 데이터 전송 방법.
  18. 제17항에 있어서,
    상기 발신 프로토콜 핸들러에서, 선택된 전송 프로토콜에 따라 상기 발신 메시지를 포맷하도록 구성되는 것을 특징으로 하는 데이터 전송 방법.
  19. 제16항에 있어서,
    상기 출력 레코드를 수신하는 단계는,
    i. 출력 프로토콜 레코드 객체를 생성하는 단계와,
    ii. 상기 출력 프로토콜 레코드 객체에서 상기 출력 레코드를 지정하는 단계와,
    iii. 상기 출력 프로토콜 레코드 객체에서 서비스 객체의 품질을 지정하는단계를 포함하는 것을 특징으로 하는 데이터 전송 방법.
  20. 제19항에 있어서,
    출력 레코드를 수신하는 단계는,
    iv. 상기 출력 프로토콜 레코드 객체에서 상기 발신 프로토콜 핸들러를 지정하는 단계를 더 포함하는 것을 특징으로 하는 데이터 전송 방법.
  21. 제20항에 있어서,
    상기 출력 레코드를 수신하는 단계는,
    v. 상기 출력 프로토콜 레코드 객체에서 송신 인터랙션을 지정하는 단계를 더 포함하는 것을 특징으로 하는 데이터 전송 방법
  22. 제21항에 있어서,
    출력 레코드를 수신하는 단계는,
    vi. 상기 착신 프로토콜 레코드 객체에서 송신 및 수신 인터랙션을 지정하는 단계를 더 포함하는 것을 특징으로 하는 데이터 전송 방법.
  23. 제16항에 있어서,
    상기 통신선 상에서 상기 발신 데이터를 전송하는 단계는 상기 프로토콜 핸들러를 호출하는 단계를 포함하는 것을 특징으로 하는 데이터 전송 방법.
  24. 목표 시스템에 의해 통신 링크 상으로 컴포넌트에 전송된 착신 데이터를 수신하는 방법에 있어서,
    (a) 착신 메시지로부터 상기 착신 데이터를 추출하기 위하여 착신 프로토콜 핸들러를 구성하는 단계와,
    (b) 상기 통신선으로부터 상기 착신 메시지를 수신하는 단계와,
    (c) 상기 착신 프로토콜 핸들러를 호출함으로써 상기 착신 메시지로부터 상기 착신 데이터를 추출하는 단계와,
    (d) 상기 착신 데이터를 상기 컴토넌트에 제공하는 단계를 포함하는 것을 특징으로 하는 데이터 수신 방법.
  25. 제24항에 있어서,
    상기 착신 프로토콜 핸들러가 선택된 프로토콜에 따라 상기 착신 메시지로부터 상기 착신 데이터를 추출하도록 구성되는 것을 특징으로 하는 데이터 수신 방법.
  26. 하부 구조에서 작동하는 컴포넌트로부터 목표 시스템으로 통신선을 거쳐 데이터를 전송하는 방법을 구현하기 위한 명령어들을 포함하는 컴퓨터로 읽을 수 있는 기록매체에 있어서, 상기 방법은,
    (a) 발신 데이터를 발신 메시지로 변환하기 위하여 발신 프로토콜 핸들러를구성하는 단계와,
    (b) 상기 하부 구조와 상기 통신선간에 접속을 설정하는 단계와,
    (c) 상기 발신 데이터를 포함하는 출력 레코드를 상기 컴포넌트로부터 수신하는 단계와,
    (d) 상기 통신선 상에서 상기 발신 데이터를 전송하는 단계를 포함하는 컴퓨터로 읽을 수 있는 기록매체.
  27. 목표 시스템에 의해 통신 링크를 통하여 컴포넌트에 전송된 착신 데이터를 수신하는 방법을 실시하기 위한 명령어들을 포함하는 컴퓨터로 읽을 수 있는 기록매체에 있어서, 상기 방법은,
    (a) 착신 메시지로부터 상기 착신 데이터를 추출하기 위하여 착신 프로토콜 핸들러를 구성하는 단계와,
    (b) 상기 통신선으로부터 상기 착신 메시지를 수신하는 단계와,
    (c) 상기 착신 프로토콜 핸들러를 호출함으로써 상기 착신 메시지로부터 상기 착신 데이터를 추출하는 단계와,
    (d) 상기 착신 데이터를 상기 컴포넌트에 제공하는 단계를 포함하는 컴퓨터로 읽을 수 있는 기록매체.
  28. 제1 및 제2 애플리케이션간 데이터 전송을 용이하게 하고, 제1 및 제2 애플리케이션간 통신을 위한 데이터 변환 서비스를 제공하는 방법에 있어서,
    상기 제1 애플리케이션으로부터 데이터를 수신하고, 통신 프로토콜을 지원하는 프로토콜 핸들러로부터 포맷된 데이터를 수신하는 단계와,
    상기 프로토콜 핸들러로부터 수신된 포맷된 데이터를 상기 제2 애플리케이션에 전송하는 단계를 포함하고,
    제공된 상기 데이터 변환 서비스는 상기 프로토콜 핸들러에 의해 지원되는 상기 통신 프로토콜에 의해 결정되는 것을 특징으로 하는 데이터 전송을 용이하게 하는 방법.
  29. 제28항에 있어서,
    포맷된 데이터는 다수의 프로토콜 핸들러 중 적어도 하나의 프로토콜 핸들러로부터 수신될 수 있고, 상기 다수의 프로토콜 핸들러 각각은 상이한 통신 프로토콜을 지원하며, 상기 제1 애플리케이션에 제공된 인터페이스는 상기 적어도 하나의 프로토콜 핸들러에 의해 지원되는 통신 프로토콜에 관계없이 정적인 상태로 남아 있는 것을 특징으로 하는 데이터 전송을 용이하게 하는 방법.
  30. 제29항에 있어서,
    상기 제2 애플리케이션으로부터 포맷된 데이터를 수신하고 상기 프로토콜 핸들러로부터 데이터를 수신하는 단계와,
    상기 제2 애플리케이션으로부터 수신된 포맷된 데이터를 상기 프로토콜 핸들러에 전송하고 상기 프로토콜 핸들러로부터 수신된 데이터를 상기 제1 애플리케이션에 전송하는 단계를 더 포함하는 데이터 전송을 용이하게 하는 방법.
  31. 제30항에 있어서,
    상기 데이터는 객체를 포함하고 상기 포맷된 데이터는 패킷을 포함하는 것을 특징으로 하는 데이터 전송을 용이하게 하는 방법.
  32. 제31항에 있어서,
    상기 프로토콜 핸들러로부터 수신된 패킷은 상기 제1 애플리케이션으로부터 수신된 객체에 의해 저장된 페이로드 데이터로부터 발생되고,
    상기 제1 애플리케이션에 전송된 객체는 상기 제2 애플리케이션으로부터 수신된 패킷내에 저장된 페이로드 데이터로부터 발생되는 것을 특징으로 하는 데이터 전송을 용이하게 하는 방법.
  33. 제32항에 있어서,
    상기 객체는 상기 객체로부터 페이로드 데이터를 판독하고 상기 객체에 페이로드 데이터를 기록하는 메소드들을 포함하는 것을 특징으로 하는 데이터 전송을 용이하게 하는 방법.
  34. 제1 및 제2 애플리케이션간에 데이터 전송을 용이하게 하는 방법에 있어서,
    제1 인터페이스를 통해 상기 제1 애플리케이션에 데이터를 전송하고 상기제1 애플리케이션으로부터 데이터를 수신하는 단계와,
    제2 인터페이스를 통해 상기 제1 애플리케이션으로부터 수신된 데이터를 상기 프로토콜 핸들러에 전달하는 단계와,
    상기 제2 인터페이스를 통해 상기 프로토콜 핸들러로부터 수신된 포맷된 데이터를 제3 인터페이스를 통해 상기 제2 애플리케이션에 전달하는 단계와,
    상기 제2 인터페이스를 통해 상기 프로토콜 핸들러로부터 수신된 데이터를 상기 제1 인터페이스를 통해 상기 제1 애플리케이션에 전달하는 단계와,
    상기 제3 인터페이스를 통해 상기 제2 애플리케이션으로부터 수신된 포맷된 데이터를 상기 제2 인터페이스를 통해 상기 프로토콜 핸들러에 전달하는 단계를 포함하는 데이터 전송을 용이하게 하는 방법.
  35. 제34항에 있어서,
    상기 포맷된 데이터의 상기 포맷이 수정될 때 상기 프로토콜 핸들러를 다른 프로토콜 핸들러로 대체하는 단계를 더 포함하는 데이터 전송을 용이하게 하는 방법.
  36. 제1 및 제2 애플리케이션간 통신을 용이하게 하는 방법에 있어서,
    상기 제1 애플리케이션과의 통신을 위한 제1 인터페이스를 제공하는 단계와,
    상기 제2 애플리케이션과의 통신을 위한 제2 인터페이스를 제공하는 단계와,
    다수의 프로토콜 핸들러로부터 선택된 프로토콜 핸들러를 제거 가능하게 수신하도록 적응된 구성 인터페이스를 제공하는 단계로서, 커넥터는 상기 제1 및 제2 애플리케이션간 통신을 위한 데이터 변환 서비스를 제공하고, 상기 데이터 변환 서비스는 상기 구성 인터페이스에 의해 수신되는 상기 선택된 프로토콜 핸들러에 의해 결정되는, 상기 구성 인터페이스 제공 단계와,
    상기 제2 애플리케이션을 위해 예정된 상기 제1 애플리케이션으로부터 수신된 제1 데이터를, 제거 가능하도록 수신된 프로토콜 핸들러에 데이터 변환을 위해 넘기는 단계와,
    제거 가능하도록 수신된 프로토콜 핸들러로부터 수신된 변환된 제1 데이터를 상기 제2 애플리케이션에 넘기는 단계와,
    상기 제2 애플리케이션으로부터 수신된 제2 데이터를 변환을 위하여 상기 프로토콜 핸들러에 넘기는 단계와,
    변환된 제2 데이터를 상기 제1 애플리케이션에 넘기는 단계를 포함하는 통신을 용이하게 하는 방법.
  37. 제1 및 제2 애플리케이션간 데이터 전송을 용이하게 하도록 컴퓨터 시스템을 적응시키는 데이터와 명령어들을 저장하는 컴퓨터로 읽을 수 있는 기록매체로서,
    상기 컴퓨터 시스템은 상기 제1 및 제2 애플리케이션간 통신을 위한 데이터 변환 서비스를 제공하며,
    상기 데이터와 명령어들은,
    상기 제1 애플리케이션으로부터 데이터를 수신하고, 통신 프로토콜을 지원하는 프로토콜 핸들러로부터 포맷된 데이터를 수신하며,
    상기 프로토콜 핸들러로부터 수신된 포맷된 데이터를 상기 제2 애플리케이션에 전송하도록 상기 컴퓨터 시스템을 적응시키고,
    제공된 상기 데이터 변환 서비스는 상기 프로토콜 핸들러에 의해 지원되는 상기 통신 프로토콜에 의해 결정되는 것을 특징으로 하는 컴퓨터로 읽을 수 있는 기록매체.
  38. 제1 및 제2 애플리케이션간 데이터 전송을 용이하게 하도록 컴퓨터 시스템을 적응시키기 위한 데이터와 명령어들을 저장하는 컴퓨터로 읽을 수 있는 기록매체로서, 상기 데이터와 명령어들은,
    제1 인터페이스를 통해 상기 제1 애플리케이션에 데이터를 전송하고 상기 제1 애플리케이션으로부터 데이터를 수신하고,
    제2 인터페이스를 통해 상기 제1 애플리케이션으로부터 수신된 데이터를 상기 프로토콜 핸들러에 전달하고,
    상기 제2 인터페이스를 통해 상기 프로토콜 핸들러로부터 수신된 포맷된 데이터를 제3 인터페이스를 통해 상기 제2 애플리케이션에 전달하고,
    상기 제2 인터페이스를 통해 상기 프로토콜 핸들러로부터 수신된 데이터를 상기 제1 인터페이스를 통해 상기 제1 애플리케이션에 전달하며,
    상기 제3 인터페이스를 통해 상기 제2 애플리케이션으로부터 수신된 포맷된 데이터를 상기 제2 인터페이스를 통해 상기 프로토콜 핸들러에 전달하도록 상기 컴퓨터 시스템을 적응시키는 것을 특징으로 하는 컴퓨터로 읽을 수 있는 기록매체.
  39. 제1 및 제2 애플리케이션간 통신을 용이하게 하도록 컴퓨터 시스템을 적응시키는 데이터와 명령어들을 저장하는 컴퓨터로 읽을 수 있는 기록매체로서, 상기 데이터와 명령어들은,
    상기 제1 애플리케이션과의 통신을 위한 제1 인터페이스를 제공하고,
    상기 제2 애플리케이션과의 통신을 위한 제2 인터페이스를 제공하고,
    다수의 프로토콜 핸들러로부터 선택된 프로토콜 핸들러를 제거 가능하게 수신하도록 적응된 구성 인터페이스를 제공하고,
    상기 제2 애플리케이션을 위해 예정된 상기 제1 애플리케이션으로부터 수신된 제1 데이터를 제거 가능하도록 수신된 프로토콜 핸들러에 데이터 변환을 위해 넘기고,
    제거 가능하도록 수신된 프로토콜 핸들러로부터 수신된 변환된 제1 데이터를 상기 제2 애플리케이션에 넘기고,
    상기 제2 애플리케이션으로부터 수신된 제2 데이터를 변환을 위하여 상기 프로토콜 핸들러에 넘기고,
    변환된 제2 데이터를 상기 제1 애플리케이션에 넘기도록 상기 컴퓨터 시스템을 적응시키고, 커넥터는 제1 및 제2 애플리케이션간 통신을 위한 데이터 변환 서비스를 제공하고 상기 데이터 변환 서비스는 상기 구성 인터페이스에 의해 수신된 상기 선택된 프로토콜 핸들러에 의해 결정되는 것을 특징으로 하는 데이터와 명령어들을 저장하는 컴퓨터로 읽을 수 있는 기록매체.
KR10-2004-7001326A 2001-09-10 2002-07-01 제1 애플리케이션과 제2 애플리케이션간 데이터를전송하도록 적응된 가변구성 커넥터 KR20040028956A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CA2,357,165 2001-09-10
CA002357165A CA2357165A1 (en) 2001-09-10 2001-09-10 Configurable connector
PCT/GB2002/003050 WO2003024055A1 (en) 2001-09-10 2002-07-01 Configurable connector adapted to convey data between a first application and a second application

Publications (1)

Publication Number Publication Date
KR20040028956A true KR20040028956A (ko) 2004-04-03

Family

ID=4169948

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2004-7001326A KR20040028956A (ko) 2001-09-10 2002-07-01 제1 애플리케이션과 제2 애플리케이션간 데이터를전송하도록 적응된 가변구성 커넥터

Country Status (4)

Country Link
US (2) US7548983B2 (ko)
KR (1) KR20040028956A (ko)
CA (1) CA2357165A1 (ko)
WO (1) WO2003024055A1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100659584B1 (ko) * 2004-12-07 2006-12-20 한국전자통신연구원 메시지 교환 방법
KR20150032745A (ko) * 2012-08-17 2015-03-27 애플 인크. 모바일 디바이스의 전력 소비 관리
US9603086B2 (en) 2013-06-07 2017-03-21 Apple Inc. Smart management of background network connections based on historical data
US10187430B2 (en) 2013-06-07 2019-01-22 Apple Inc. Smart management of background network connections

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040015578A1 (en) * 2002-02-22 2004-01-22 Todd Karakashian Web services runtime architecture
US7769825B2 (en) * 2002-02-22 2010-08-03 Bea Systems, Inc. System and method for web services Java API-based invocation
US8037196B2 (en) * 2002-06-26 2011-10-11 Alcatel Lucent Method for maintaining communication between communication devices having inconsistent protocols
US7280559B2 (en) * 2002-08-16 2007-10-09 Mitsubishi Electric Research Laboratories, Inc. Distributed application layer protocol converter for communications network
US7487510B1 (en) * 2003-04-30 2009-02-03 Sun Microsystems, Inc. Method and apparatus to isolate changes in remoting system clients
US7475402B1 (en) * 2003-04-30 2009-01-06 Sun Microsystems, Inc. Method and apparatus to isolate changes in remoting system servers
US8533233B2 (en) * 2004-01-21 2013-09-10 Siemens Industry, Inc. Generic framework for porting legacy process automation assets to a new control system
US7422152B2 (en) 2004-05-13 2008-09-09 Cisco Technology, Inc. Methods and devices for providing scalable RFID networks
US7802260B1 (en) * 2004-06-07 2010-09-21 Oracle America, Inc. Receiver-processor-dispatcher mechanism for inbound connectors
US20060034254A1 (en) * 2004-08-11 2006-02-16 Trost William R System and method for managing HTTP connections in a J2EE environment
US8458467B2 (en) 2005-06-21 2013-06-04 Cisco Technology, Inc. Method and apparatus for adaptive application message payload content transformation in a network infrastructure element
US7987272B2 (en) 2004-12-06 2011-07-26 Cisco Technology, Inc. Performing message payload processing functions in a network element on behalf of an application
US7574710B1 (en) 2005-04-28 2009-08-11 Sun Microsystems, Inc. Method and apparatus for determining data encoding format in RMI-IIOP messages
US7533156B1 (en) 2005-04-28 2009-05-12 Sun Microsystems, Inc. Method and apparatus for RMI-IIOP implementation with java serialization
US7345585B2 (en) 2005-08-01 2008-03-18 Cisco Technology, Inc. Network based device for providing RFID middleware functionality
US20070260750A1 (en) * 2006-03-09 2007-11-08 Microsoft Corporation Adaptable data connector
US7797406B2 (en) 2006-07-27 2010-09-14 Cisco Technology, Inc. Applying quality of service to application messages in network elements based on roles and status
US7817636B2 (en) 2008-01-30 2010-10-19 Cisco Technology, Inc. Obtaining information on forwarding decisions for a packet flow
US8589776B2 (en) * 2010-06-04 2013-11-19 International Business Machines Corporation Translation between a first communication protocol and a second communication protocol
US8902750B2 (en) 2010-06-04 2014-12-02 International Business Machines Corporation Translating between an ethernet protocol and a converged enhanced ethernet protocol
US8489784B2 (en) * 2010-12-31 2013-07-16 Silicon Image, Inc. Adaptive interconnection scheme for multimedia devices
US9477483B2 (en) * 2013-01-03 2016-10-25 Tapjoy, Inc. Tracking mobile app installations
CN104956641B (zh) * 2013-03-19 2018-11-13 惠普发展公司,有限责任合伙企业 互连组件
CN104253840B (zh) * 2013-06-28 2017-12-12 中国银联股份有限公司 用于支持多种类型安全载体之间通信的装置及其通信方法
US9973584B2 (en) 2015-10-30 2018-05-15 Hyland Software, Inc. Methods and apparatuses for location-based data access
CN114095584A (zh) * 2021-11-29 2022-02-25 重庆忽米网络科技有限公司 工业设备数据的模型转换与构建方法及可读存储介质
CN114422625B (zh) * 2022-01-26 2024-01-26 杭州鸿泉物联网技术股份有限公司 数据接入方法及网关

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5257393A (en) * 1989-04-19 1993-10-26 Jrm Consultants, Inc. Serially controlled programmable test network
GB2264845B (en) * 1992-02-28 1995-09-20 Texas Instruments Ltd Local area network adaptive circuit for multiple network types
US6473609B1 (en) 1995-12-11 2002-10-29 Openwave Systems Inc. Method and architecture for interactive two-way communication devices to interact with a network
US5991885A (en) * 1997-06-11 1999-11-23 Clarinet Systems, Inc. Method and apparatus for detecting the presence of a remote device and providing power thereto
US6675054B1 (en) * 1998-04-20 2004-01-06 Sun Microsystems, Inc. Method and apparatus of supporting an audio protocol in a network environment
US6083276A (en) * 1998-06-11 2000-07-04 Corel, Inc. Creating and configuring component-based applications using a text-based descriptive attribute grammar
US6826597B1 (en) 1999-03-17 2004-11-30 Oracle International Corporation Providing clients with services that retrieve data from data sources that do not necessarily support the format required by the clients
US6745387B1 (en) * 1999-06-14 2004-06-01 Sun Microsystems, Inc. Method for using a transaction service synchronization interface to perform internal state clean up
EP1305746A2 (en) * 1999-08-20 2003-05-02 Black Pearl, Inc. Ontology-driven information system
DE19947032B4 (de) * 1999-09-30 2006-02-23 Siemens Ag System zur Steuerung und Überwachung von an Nebenstellenanlagen angekoppelten ersten oder von an Weitverkehrsnetze angekoppelten zweiten Telekommunikationsendgeräten
JP2001216226A (ja) * 1999-11-26 2001-08-10 Mitsubishi Electric Corp アプリケーション間データ送受信方式及びアプリケーション間データ送受信方法及びアプリケーション間データ送受信方法をコンピュータに動作させるプログラムを記録したコンピュータで読取可能な記録媒体
WO2002010944A1 (en) * 2000-08-01 2002-02-07 Qwest Communications International Inc. Performance modeling, fault management and repair in a xdsl network
US7080387B2 (en) * 2000-09-28 2006-07-18 Sun Microsystems, Inc. System and method for mediating communication between software applications
US20020152301A1 (en) * 2000-12-19 2002-10-17 Reactive Networking, Inc. System and method for determining the state of a service within a computer network
US7111077B1 (en) * 2000-12-22 2006-09-19 Unisys Corporation Method and apparatus for passing service requests and data from web based workstations directly to online transaction processing (OLTP) server systems
US6993585B1 (en) * 2000-12-22 2006-01-31 Unisys Corporation Method and system for handling transaction requests from workstations to OLTP enterprise server systems utilizing a common gateway
US6572556B2 (en) * 2000-12-29 2003-06-03 Ge Medical Systems Information Technologies Distributed multi-user catalog-based system for real time data access during cardiology procedures
US7502994B2 (en) * 2001-02-05 2009-03-10 Omniture, Inc. Web page link-tracking system
US20030110248A1 (en) * 2001-02-08 2003-06-12 Ritche Scott D. Automated service support of software distribution in a distributed computer network
US8412808B2 (en) * 2002-08-21 2013-04-02 Hewlett-Packard Development Company, L.P. Method and framework for service-based remote support delivery

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100659584B1 (ko) * 2004-12-07 2006-12-20 한국전자통신연구원 메시지 교환 방법
KR20150032745A (ko) * 2012-08-17 2015-03-27 애플 인크. 모바일 디바이스의 전력 소비 관리
US9363754B2 (en) 2012-08-17 2016-06-07 Apple Inc. Managing power consumption in mobile devices
US9603086B2 (en) 2013-06-07 2017-03-21 Apple Inc. Smart management of background network connections based on historical data
US10187430B2 (en) 2013-06-07 2019-01-22 Apple Inc. Smart management of background network connections

Also Published As

Publication number Publication date
US7596623B2 (en) 2009-09-29
WO2003024055A1 (en) 2003-03-20
US20080091832A1 (en) 2008-04-17
CA2357165A1 (en) 2003-03-10
US20040267933A1 (en) 2004-12-30
US7548983B2 (en) 2009-06-16

Similar Documents

Publication Publication Date Title
US7596623B2 (en) Configurable connector
US9185082B2 (en) Method and apparatus for adaptive application message payload content transformation in a network infrastructure element
US8205007B2 (en) Native format tunneling
US5734651A (en) Transaction message routing in digital communication networks
CA2136921C (fr) Procede de conversion automatique pour le portage d'applications de telecommunication du reseau pct/ip sur le reseau osi-co et module utilise dans ledit procede
US7136913B2 (en) Object oriented communication among platform independent systems across a firewall over the internet using HTTP-SOAP
US7502851B1 (en) Facility to transmit network management data to an umbrella management system
US8065657B2 (en) Exchange infrastructure system and method
US5577202A (en) Message handling system for automated gateway between first and second handling systems wherein first envelope is added to a second envelope respectively without changing text
EP1025507B1 (en) Combined internet and data access system
US20090031324A1 (en) System and Method of Compact Messaging in Network Communications By Removing Tags and Utilizing Predefined Message Definitions
EP1782215B1 (en) A generic framework for deploying ems provisioning services
JPH04299758A (ja) ソフトウエア間通信のためのデータ交換装置
US7373424B2 (en) Exactly once protocol for message-based collaboration
WO2004042489A2 (en) User-identifier translator and linking apparatus for xml-based services and corresponding method
JPH10187641A (ja) 第1のエンティティと第2のエンティティとの間のアドレスインタラクションをサポートするための方法、アドレスインタラクションのためのコンバータ、及びコンピュータシステム
Rees et al. A web of distributed objects
EP2139193B1 (en) A method of performing data mediation, and an associated computer program product, data mediation device and information system
AU2003223040B2 (en) Exchange infrastructure system and method
JP2003141002A (ja) Url長変換システム及びそのプログラム
US7007094B1 (en) Object oriented communications system over the internet
CN114296985A (zh) 大规模微服务集群场景下的全局异常处理方法和平台
EP0615370A1 (fr) Système de communication avec un réseau
CN1968140B (zh) 实现过负荷控制组件可插拔的方法和系统
JP2002533808A (ja) コンピュータ・ソフトウェア・アプリケーション間通信のためのプロトコル

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application