KR20040074922A - 소프트웨어 개발 환경 - Google Patents

소프트웨어 개발 환경 Download PDF

Info

Publication number
KR20040074922A
KR20040074922A KR1020040009249A KR20040009249A KR20040074922A KR 20040074922 A KR20040074922 A KR 20040074922A KR 1020040009249 A KR1020040009249 A KR 1020040009249A KR 20040009249 A KR20040009249 A KR 20040009249A KR 20040074922 A KR20040074922 A KR 20040074922A
Authority
KR
South Korea
Prior art keywords
adapter
component
data
software
software component
Prior art date
Application number
KR1020040009249A
Other languages
English (en)
Other versions
KR100950212B1 (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 KR20040074922A publication Critical patent/KR20040074922A/ko
Application granted granted Critical
Publication of KR100950212B1 publication Critical patent/KR100950212B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Computer And Data Communications (AREA)

Abstract

본 발명은 소프트웨어 개발 환경에서 이동 통신 애플리케이션들을 구현하는 소프트웨어 구성요소들간에 데이터 시스템에서 데이터를 전송하는 것에 관한 것이다. 상기 데이터 시스템은 상이한 소프트웨어 구성요소들을 위한 어댑터들 및 상이한 어댑터들간에 데이터를 전송하는 브로커(broker) 구성요소를 포함하고, 상기 어댑터는 상기 어댑터에 접속된 적어도 하나의 소프트웨어 구성요소를 위해 상기 브로커 구성요소의 인터페이스를 제공한다. 상기 데이터 시스템의 어댑터들에 대한 어드레싱 정보가 상기 브로커 구성요소에 유지된다. 제1 소프트웨어 구성요소 및 제2 소프트웨어 구성요소 간의 데이터 전송의 요구에 응답하여 상기 제1 소프트웨어 구성요소를 위해 상기 데이터 시스템의 제1 어댑터가 활성화되고 상기 제2 소프트웨어 구성요소를 위해 제2 어댑터가 활성화된다. 상기 브로커 구성요소에서 어드레싱 정보에 따라 상기 제1 어댑터 및 상기 제2 어댑터간에 데이터가 전송된다.

Description

소프트웨어 개발 환경{Software development environment}
본 발명은 소프트웨어 개발 환경에 관한 것으로, 특히 이동 통신에 관련된 소프트웨어를 위한 소프트웨어 개발 환경에 관한 것이다.
도 1에 도시된 바와 같이, 이동 통신 환경은 그 사이에서 데이터가 전송되는 몇몇 상이한 당사자(party)들을 포함한다. 단말기들(TE)은 서비스의 사용자들을 나타낸다. 서비스는 서비스 제공자들(SP) 및 네트워크(MNW), 예를 들어 이동 네트워크에 의해 제공된다. 상기 환경은 또한 내용 제공자들(CP; content provider)을 포함할 수 있고, 상기 내용 제공자들에 의해 제공되는 내용은 서비스 제공자들(SP) 또는 네트워크(MNW)에 의해 단말기들(TE)에 공급된다. 예를 들어 뉴스를 얻기 위하여, 짧은 메시지가 단말기(TE)로부터 이동 네트워크(MNW)로 전송되고, 상기 이동 네트워크는 상기 짧은 메시지를 날씨 서비스 제공자(SP)에게 전송한다. 상기 서비스 제공자(SP)는 날씨 예보를 제공하는 내용 제공자(CP)로부터 획득된 날씨 데이터에 기초하여 멀티미디어 메시지를 생성한다. 상기 멀티미디어 메시지는 상기 이동 네트워크(MNW)에 전송되고, 상기 이동 네트워크(MNW)는 상기 멀티미디어 메시지를 상기 단말기(TE)에 전송한다. 이동국(TE)에 접속이 수행될 수 없는 경우, 이동 네트워크는 멀티미디어 메시지를 메시지 센터에 저장할 수 있고 상기 이동국(TE)이 다시 상기 네트워크에 접속하는 즉시 상기 멀티미디어 메시지를 전송할 수 있다. 신규 서비스가 단말기들(TE)에 대해 개발되는 경우, 신규 단말기들(TE) 또는 네트워크 요소들이 개발되는 경우, 및 단말기들(TE) 또는 네트워크 요소들에 대해 신규기능들이 개발되는 경우 개발된 소프트웨어 구성요소들의 기능이 테스트될 필요가 있다.
소프트웨어 구성요소들은 소프트웨어 개발 환경의 개발 단계에서 테스트될 수 있고, 실제 장비가 필요하지 않지만, 상기 테스트는 예를 들어 하나의 컴퓨터에 의하여 소프트웨어에 의해 충분히 수행될 수 있다. 전체적으로 또는 부분적으로 단말기의 동작을 설계하는 단말기 에뮬레이터들이 개발되었다. 이러한 종류의 애플리케이션 개발 환경의 장점은 상기 애플리케이션들이 애플리케이션의 기능을 테스트하기 위해 실제 장치들에 로딩(loaded)될 필요가 없다는 것이다. 에뮬레이터들을 이용하는 애플리케이션 개발 환경은 미국 공개 특허 출원번호 제20020169591호에 개시된다. 단말기 에뮬레이터는 소프트웨어 개발 환경으로 로딩될 수 있고 애플리케이션의 동작을 테스트, 예를 들어 단말기에서 서비스에 의해 전송된 메시지가 어떤 것인지에 대해 테스트하는데 사용될 수 있다. 전형적으로, 특별한 소프트웨어 개발 환경이 상이한 기법에 따라 생성되고, 상기 환경들을 서로 연결하는데 불가능하였다. 예를 들어, 상이한 통신 애플리케이션들에 대해 특별한 소프트웨어 개발 환경들이 있고, 인터넷 브라우저 애플리케이션들에 대해 특별한 소프트웨어 개발 환경들이 있다. 비록 몇몇 상이한 단말기 에뮬레이터들이 소프트웨어 개발 환경에 로딩될 수 있다 하더라도, 개발되는 소프트웨어 구성요소는 또한 각 단말기 에뮬레이터에 대해 별개의 테스트 프로세스들에서 테스트되어야 한다. 이것의 일 예는 애플리케이션 개발자가 각 전화 모델에 대해 개별적으로 에뮬레이터를 로딩해야 하고 상기 애플리케이션에 의해 생성된 멀티미디어 메시지를 상기 에뮬레이터들 각각에개별적으로 전송해야 하는 것이다.
본 발명이 이루고자 하는 기술적 과제는, 상기와 같은 단점들을 해결하기 위하여, 소프트웨어 구성요소들의 접속성을 개선하기 위한 방법, 데이터 시스템, 데이터 처리 장치, 소프트웨어 생성물, 데이터 저장 매체 및 신호를 제공하는 데 있다.
도 1은 일반적으로 이동 통신 환경에서의 상이한 당사자(party)들을 나타내는 도면이다.
도 2는 본 발명의 바람직한 실시예의 소프트웨어 개발 환경을 나타내는 도면이다.
도 3은 데이터 처리 장치를 나타내는 도면이다.
도 4는 본 발명의 바람직한 실시예의 어댑터에서의 계층들을 나타내는 도면이다.
도 5는 본 발명의 바람직한 실시예의 브로커 구성요소에서의 계층들을 나타내는 도면이다.
도 6은 본 발명의 바람직한 실시예에 의한 방법을 나타내는 도면이다.
<도면의 주요 부분에 대한 부호의 설명>
200...데이터 시스템, 201...소프트웨어 구성요소,
202...브로커 구성요소, 203...어댑터,
205...필터 어댑터, 206...필터 구성요소,
207...대몬 구성요소, 208...콘솔 구성요소.
본 발명은 상기한 기술적 과제를 달성하기 위하여, 독립 청구항에서 기술된 것을 특징으로 하는 방법, 데이터 시스템, 데이터 처리 장치, 소프트웨어 생성물, 데이터 저장 매체 및 신호를 제공한다. 본 발명의 바람직한 실시예들은 종속 청구항에 기술되어 있다.
본 발명은 상이한 소프트웨어 구성요소들을 위한 어댑터들 및 상이한 어댑터들간에 데이터를 전송하는 브로커(broker) 구성요소를 포함하는 데이터 시스템으로서, 상기 어댑터는 상기 어댑터에 접속된 적어도 하나의 소프트웨어 구성요소를 위해 상기 브로커 구성요소의 인터페이스를 제공하며, 상기 데이터 시스템의 상기 어댑터들에 대한 어드레싱 정보가 상기 브로커 구성요소에 유지되는 데이터 시스템에 바탕을 둔다. 상기 데이터 시스템에 있어서, 제1 소프트웨어 구성요소 및 제2 소프트웨어 구성요소 간의 데이터 전송의 요구에 응답하여 상기 제1 소프트웨어 구성요소를 위해 상기 데이터 시스템의 제1 어댑터가 활성화되고 상기 제2 소프트웨어 구성요소를 위해 제2 어댑터가 활성화된다. 상기 브로커 구성요소에서 상기 어드레싱정보에 따라 상기 제1 어댑터 및 상기 제2 어댑터간에 데이터가 전송된다. 어댑터는 일반적으로 소프트웨어 구성요소 및 브로커 구성요소간에 데이터 전송을 가능하게하는 기능을 지칭한다.
본 발명의 구성의 장점은 매우 많은 상이한 종류의 기법들을 지원하는 소프트웨어 구성요소들이 접속될 수 있고 그 사이에서 데이터 전송이 수행될 수 있는 일반적인 통신 플랫폼이 제공된다는 것이다. 어댑터들은 브로커 구성요소에 의해 제공되는 데이터 전송 기능이 소프트웨어 구성요소들로부터 은닉되도록 허용하고, 다른 한편 상이한 기법들을 지원하는 소프트웨어 구성요소들이 브로커 구성요소에 접속되도록 허용한다. 각 소프트웨어 구성요소에 대해 단 하나의 어댑터가 필요하다. 이것은 예를 들어 내용 제공자가 브로커 구성요소로의 하나의 인터페이스만을 사용함으로써 다양한 단말기 에뮬레이터들에 있는 내용을 테스트하도록 허용한다. 요구되는 소프트웨어 구성요소들로의 모든 데이터 전송이 브로커 구성요소 및 어댑터들을 통해 동일한 소프트웨어 개발 환경에서 수행될 수 있기 때문에, 본 발명은 이동 통신 애플리케이션들의 동작을 더 용이하고 더 신속하게 테스트할 수 있게 한다.
본 발명의 바람직한 실시예에 따라, 어댑터는 이동 시스템의 데이터 전송 애플리케이션으로의 인터페이스를 제공하고, 상기 애플리케이션은 브로커 구성요소 및 어댑터로부터 수신된 메시지를 제2 이동국 또는 이동 네트워크로 전송할 수 있게 한다. 상기 실시예는 예를 들어 실제 장치를 이용함으로써 테스트가 수행될 수 있거나 예를 들어 소프트웨어 개발 환경으로부터 이동 네트워크의 실제 요소로의데이터 전송이 수행될 수 있다는 장점을 제공한다. 몇몇 소프트웨어 구성요소들은 동시에 테스트될 수 있고, 상기 소프트웨어 구성요소들은 실제 단말기들 및 단말기 에뮬레이터들 양자에 있을 수 있다.
이하, 본 발명의 바람직한 실시예들은 부록 1 및 첨부한 도면들을 참조하여 상세하게 기술될 것이다.
도 2는 본 발명의 바람직한 실시예에 의한 데이터 시스템(200)을 나타낸다. 데이터 시스템(200)은 적어도 상이한 소프트웨어 구성요소들(201)의 테스트를 가능하게 하는 소프트웨어 개발 환경으로서 동작할 수 있다. 소프트웨어 구성요소(201)는 예를 들어 이동 통신 애플리케이션 소프트웨어 개발 툴, 단말기, 시스템 또는 서비스 에뮬레이터, 내용 개발 툴, 테스트 툴, 또는 외부 시스템 또는 장치의 애플리케이션 프로그램일 수 있다. 상기 데이터 시스템(200)은 어댑터에 접속되는 적어도 하나의 소프트웨어 구성요소(201)를 위한 인터페이스를 제공하는 몇몇 어댑터들(203)을 포함한다. 특히, 상기 어댑터(203)는 (외부) 소프트웨어 구성요소(201)를 브로커(broker) 구성요소(202)에 접속시키고, 상기 브로커 구성요소는 어댑터들간에 데이터 전송 게이트웨이로서 동작한다. 상기 브로커 구성요소(202)는 상기 어댑터들(203)간에 따라서 소프트웨어 구성요소들(201)간에 모든 데이터 전송에 참여한다. 상기 브로커 구성요소(202)는 상기 데이터 시스템(200)의 통신 센터이고 어댑터들(203)간의 모든 데이터 전송에 참여한다. 상기 어댑터들(203) 및 상기 브로커 구성요소(202)는 외부 소프트웨어 구성요소들(201)을 위한 브로커 기능을 구성한다.
상기 데이터 시스템(200)은 또한 대몬(daemon) 구성요소(207), 콘솔(console) 구성요소(208), 및 바람직하기로는 필터 구성요소(206) 및 필터 구성요소와 관련된 필터 어댑터(205)를 포함한다. 상기 대몬 구성요소(207)는 로컬 워크스테이션에서 실행가능한 소프트웨어 구성요소들(201, 206), 상기 브로커 구성요소(202), 상기 어댑터들(203, 205), 상기 콘솔 구성요소들(208)을 관리하고 로컬 로그 파일을 유지한다. 상기 콘솔 구성요소(208)는 그래픽 사용자 인터페이스 툴(GUI Tool)이고, 상기 그래픽 사용자 인터페이스 툴에 의하여 사용자는 시스템(200)에 대한 정보를 획득할 수 있고, 상기 브로커 구성요소(202)를 경유하는 데이터 전송 및 어댑터들(203, 205)과 같은 기능을 관리할 수 있다. 상기 필터 어댑터(205)는 브로커 구성요소(202)에서 전송된 데이터를 모니터하고 분석하며 가능하게는 수정할 수 있게 한다. 상기 브로커 구성요소(202)는 필터 구성요소(206)의 분석을 위해 필터 어댑터(205)를 통해 주어진 어댑터들(203)간에 트래픽을 전송할 수 있다. 상기 데이터 시스템(200)은 하나의 데이터 처리 장치에서 또는 예를 들어 TCP/IP 네트워크를 통해 서로 접속된 몇몇 데이터 처리 장치들에서 수행될 수 있다. 도 2에 도시된 시스템은 본 발명을 구현하는 하나의 방식일 뿐이라는 것을 유념해야 한다. 예를 들어 상기 콘솔 구성요소(208) 및 상기 대몬 구성요소(207)의 기능들은 하나의 성분에서 수행될 수 있다.
도 3은 상기 데이터 시스템(200)의 적어도 일부가 구현되는 데이터 처리 장치(301)를 나타낸다. 상기 데이터 처리 장치(301)는 메모리(302), 사용자 인터페이스(304), 외부 데이터 전송을 수행하는 I/O 수단(305), 및 하나 이상의 프로세서들을 포함하는 중앙 처리 장치(303, CPU)를 포함한다. 상기 메모리(302)는 상기 중앙 처리 장치(303)를 제어하는 애플리케이션들 및 저장될 다른 데이터를 저장하는 비휘발성 부분 및 일시적인 데이터 처리를 위해 사용하는 휘발성 부분을 포함한다. 상기 중앙 처리 장치(303)에서 실행되는 컴퓨터 프로그램 코드는 상기 데이터 처리 장치(301)가 하나 이상의 소프트웨어 구성요소들(201), 어댑터들(203, 205), 대몬 구성요소(207), 콘솔 구성요소(208) 및 브로커 구성요소(202)와 같은 도 2 및 후술되는 도 3 내지 도 6에 예시된 기능들을 수행하게 할 수 있다. 컴퓨터 프로그램 코드는 어떤 하나 이상의 메모리 수단, 예를 들어 PC의 하드디스크, 메모리 카드, 또는 CD롬에 저장될 수 있고, 상기 메모리 수단으로부터 상기 컴퓨터 프로그램 코드를 실행하는 장치(301)의 메모리(302)에 로딩될 수 있다. 컴퓨터 프로그램 코드는 또한 전송 제어 프로토콜/인터넷 프로토콜(TCP/IP) 프로토콜 스택을 이용하여 네트워크를 통해 로딩될 수 있다. 발명 수단은 또한 적어도 부분적으로 하드웨어 솔루션들을 이용하여 구현될 수 있다.
도 2에 도시된 기능들은 서로 통신하는 몇몇 데이터 처리 장치들(301)에서 실행될 수 있다는 것을 유념해야 한다. 이 경우에 있어서, 데이터 시스템(200)은 분배될 수 있고, 예를 들어 이동 애플리케이션들의 개발 및 테스트는 몇몇 별개의 장치들(301)에서 수행될 수 있다. 이 경우에 있어서, 브로커 구성요소(202)는 상이한 장치들의 실체들에 의해 구현될 수 있다. 상기 실체들은 어떤 데이터 전송 프로토콜, 예를 들어 TCP/IP 프로토콜 스택을 이용하여 통신한다. 분배된 데이터 시스템에 있어서, 원격 사용이 수행될 수 있고, 그것에 의해 제2 데이터 처리 장치의소프트웨어 구성요소들(201)이 제1 데이터 처리 장치의 소프트웨어 구성요소(201, 207, 208)로부터 활성화될 수 있다. 데이터 처리 장치(301)는 몇 개의 가능하게는 매우 큰 소프트웨어 구성요소들을 실행할 수 있는 어떤 장치일 수 있다. 바람직한 실시예에 따라, 시스템(200)은 장치(301)에서 실행되는 자바-기반 기능들, 자바 런타임 환경(JavaTMRuntime Environment)을 이용한다. 이하, 이 실시예에 대해 참조된다. 하지만, 본 발명은 또한 다른 프로그래밍 기법들을 사용하여 구현될 수 있다는 것을 유념해야 한다.
도 4는 바람직한 실시예에 의한 어댑터(203, 205)의 계층들을 나타낸다. 어댑터(203, 205)는 (외부) 소프트웨어 구성요소들(201, 206)을 브로커 구성요소(202)에 연결하는 구성요소이다. 상기 어댑터(203, 205)는 소프트웨어 구성요소들(201)로의 애플리케이션 프로그램 인터페이스, 소프트웨어 구성요소(201) 및 애플리케이션 프로그램 인터페이스간의 데이터 전송을 위한 어댑테이션 코드(adaptation code), 및 어댑테이션 코드를 실행하는 부분을 포함한다. 어댑터(203, 205)는 어댑테이션 코드를 지정하기 위해 상이한 소프트웨어 구성요소들(201) 및 브로커 구성요소(202)간의 인터페이스들을 발표(publish)하고, 대몬 구성요소(207) 및 콘솔 구성요소(208)를 브로커 구성요소(202)에 연결하는 시스템 인터페이스를 발표하며, 상기 브로커 구성요소(202)로의 연결을 유지한다. 어댑터(203, 205)는 소프트웨어 구성요소(201, 207, 208)로부터 브로커 구성요소(202)의 기능을 숨긴다. 어댑터(203, 205)는 상이한 어댑테이션 유형으로어댑테이션을 가능하게 하는 재사용가능한 구성요소들을 이용하여 구현될 수 있다. 이 경우에 있어서, 예를 들어 상이한 플랫폼들을 위해 생성된 어댑터들이 동일한 구성요소들을 이용할 수 있다.
어댑터(203)는 프레임워크 인터페이스(Framework IF)(407), 서비스 인터페이스(Service IF)(406), 및 점 대 점(point-to-point) 인터페이스(P2P IF)(405)로 구성되는 어댑테이션 계층(adaptation layer)을 포함한다. 상기 어댑테이션 계층 아래에, 프레임워크 애플리케이션 프로그램 인터페이스(Framework API)(402), 서비스 애플리케이션 프로그램 인터페이스(Service API)(403), 및 점 대 점 애플리케이션 프로그램 인터페이스(P2P API)(404)를 포함하는 구현 계층이 있다. 상기 구현 계층 아래에 통신 애플리케이션 프로그램 인터페이스(통신 API)(401)를 포함하는 전송 계층이 있다. 상기 어댑테이션 계층(405, 406, 407)은 외부 소프트웨어를 브로커 구성요소(202)에 연결하는 기본 어댑테이션 인터페이스이다; 상기 어댑테이션 계층은 상기 구현 계층(402, 403, 404)을 관련 기술에 연결한다. 상기 어댑테이션 계층은 어댑터(203)가 신규 기술로 개발되는 경우 수정되어야하는 유일한 계층이다. 상기 프레임워크 인터페이스(407)는 어댑터(203)를 브로커 구성요소(202)에 연결하는 메인 인터페이스이고, 점 대 점 레지스터링(registering)과 같은 일반 어댑터 관련 기능을 포함한다. 서비스 인터페이스(406)는 동기 및 비동기 전송 및 이벤트 기반 데이터, 즉 이벤트들의 수신에 관여한다. 점 대 점 인터페이스(405)는 점 대 점 접속, 즉 P2P 접속의 관리에 관련된 기능들을 포함한다. 점 대 점 인터페이스는 어댑터(203)에게 다른 어댑터(203)가 접속을 오픈하기를 원하는지를 알리고, 브로커 구성요소(202)에 접속된 어댑터(203)에 들어오고 나가는 흐름들을 열고 닫을 수 있다. 유사하게, 어댑테이션 계층 블록들(405, 406 및 407)은 구현 계층의 애플리케이션 프로그램 인터페이스들(404, 403, 402)을 사용한다. 바람직한 실시예에 따라, 상기 어댑테이션 계층(405, 406, 407)은 플랫폼-독립 자바 구현이다. 전송 계층, 즉 통신 애플리케이션 프로그램 인터페이스(401)는 어댑터(203)를 브로커 구성요소(202)에 연결한다. 통신 애플리케이션 프로그램 인터페이스(401)는 접속, 접속 오류 및 자동 접속 재설정에 관여한다. 바람직한 실시예에 따라, 어댑터(203) 및 브로커 구성요소(202)간의 데이터 전송은 원격 방법 기동(RMI; Remote Method Invocation)-기반이고, 전송 계층은 다른 블록들로부터 RMI 기능을 숨긴다.
소프트웨어 구성요소(201, 206) 및 브로커 구성요소(202)간에 어댑테이션을 수행하는데 2가지 상이한 방식이 있다: 소프트웨어 어댑테이션 또는 통신 어댑테이션에 의해. 소프트웨어 어댑테이션에 있어서, 소프트웨어 구성요소들(201)은 애플리케이션 프로그램 인터페이스 호들(API calls)을 사용하여 소프트웨어(401 내지 407)에 의해 직접 어댑테이션 인터페이스로 통합된다. 따라서, 도 4에 도시된 기능들 및 어댑터(203)의 어댑테이션 로직들은 소프트웨어 구성요소(201) 프로세스에서 실행될 수 있다. 이 실시예는 소프트웨어 구성요소(201)가 또한 데이터 시스템(200)으로부터 (대몬 구성요소(207)로부터) 관리될 수 있다는 장점을 제공한다.
통신 어댑테이션에 있어서, 소프트웨어 구성요소(201)는 몇몇 데이터 전송 프로토콜을 사용하여 어댑테이션(203)과 통신한다. 어댑터(203) 및 소프트웨어 구성요소(201)는 서로 완전히 별개인 별개 프로세스들이다. 전송 프로토콜은 기본 운영 시스템 및 프로그래밍 언어, 예를 들어 TCP/IP-기반 프로토콜 또는 파일 전송에 의해 지원되는 어떤 프로토콜일 수 있다. 통신 어댑테이션을 위해, 주소 데이터에 기초하여 어댑터(203) 및 소프트웨어 구성요소(201)간의 데이터 전송에 관여하는 송신기 구성요소(408) 및 수신기 구성요소(409)와 같은 다양한 일반 데이터 전송 구성요소들이 어댑터들(203)에서 지정될 수 있다. 예들은 지정된 TCP/IP 포트로부터 데이터를 수신하는 수신기 구성요소 및 지정된 디렉토리 및 파일에 기록하는 송신기 구성요소이다. 데이터 전송 구성요소들에 추가하여, 통신 어댑테이션은 또한 지정된 내용을 올바르게 해석하고 내용 전송, 예를 들어 HTTP 명령들의 전송에 관여하는 내용 핸들러 구성요소(410)를 사용한다. 통신 어댑테이션은 소프트웨어 구성요소들의 코드가 수정될 필요가 없도록 소프트웨어 구성요소들(201)을 위한 현존 구성요소들을 이용함으로써 어댑터(203)의 구현을 가능하게 한다.
제품들(products)로 지칭될 수 있는 상이한 소프트웨어 구성요소들(201)을 위해, 구성된 어댑터들(203)이 템플릿들(templates)에 기초하여 지정된다. 템플릿은 설치된 (외부) 소프트웨어 구성요소(201)를 나타내고 데이터 전송을 수행하는데 필요한 특성들에 대한 정보를 포함한다. 소프트웨어 구성요소(201)를 통합하기 위하여, 상기 템플릿은 관련된 소프트웨어 구성요소(201)를 위해 어댑터(203)를 정확하게 구성하는데 사용될 수 있는 일반 사양을 포함한다. 템플릿은 특히 어댑터를 식별하고 서비스 유형 식별자와 같이 어댑터의 특성들을 지정하기 위한 요소들을 지정한다. 바람직하기로는 템플릿은 또한 예를 들어 상이한 장치에 있는 어댑터를활성화하는데 사용될 수 있는 호스트 주소를 지정하기 위한 요소를 포함한다. 템플릿은 또한 어댑터의 관리와 관련된 요소들, 및 통신 어댑테이션과 관련된 요소들, 예를 들어 송신기 및 수신기 클래스 이름들을 위한 요소들을 포함할 수 있다. 각 구성된 어댑터(203)는 어댑터 구성에 저장된 식별자에 기초하여 식별된다. 상기 식별자는 문자열, 예를 들어 전화번호이다. 구성된 어댑터는 브로커 구성요소(202)에 접속되고, 그 다음 데이터가 상기 브로커 구성요소(202)를 통해 전송될 수 있다. 템플릿은 또한 사용자를 위해 시스템에 설치된 소프트웨어 구성요소들(201)을 나타내기 위하여 콘솔 구성요소(208)에서 사용될 수 있다. 바람직한 실시예에 따라, 템플릿은 정보를 포함하는 하나 이상의 XML 파일들 및 어댑터-특정 자바 클래스들 및 자원들을 포함하는 JAR 파일을 포함한다. 별개의 템플릿들이 상이한 소프트웨어 구성요소들에 대해 생성된다. 예를 들어 각 이동국은 특별한 이동국 모델-특정 템플릿을 갖는다. 부록 1은 템플릿을 위한 문서 유형 정의(DTD; Document Type Definition) 정의를 나타낸다. 즉, 부록 1은 실시예에 의한 템플릿에서 그리고 정의된 구성에서 포함될 수 있는 요소들을 나타낸다. 바람직한 실시예에 따라, 동일한 템플릿이 데이터 시스템(200)의 몇몇 어댑터들(203)을 구성하는데 사용될 수 있고, 예를 들어 시스템(200)에서의 몇몇 동일 병렬 이동국 에뮬레이터들의 배열을 가능하게 한다.
소프트웨어 구성요소(201)의 특성들이 알려져 있는 경우 템플릿의 생성이 용이하다. 어댑테이션 메커니즘, 즉 소프트웨어 어댑테이션 또는 통신 어댑테이션 중 어느 것이 관련되는지가 우선 지정된다. 이것에 기초하여, 템플릿이 생성된다. 즉,사용될 요소들이 지정되고 디폴트 값들이 주어진다. 소프트웨어 어댑테이션에서보다 통신 어댑테이션에서 상이한 요소들이 필요하고, 특히 데이터 전송의 수행을 가능하게하는 구성요소들(408, 409 및 410)의 세팅이 추가로 필요하다. 소프트웨어 어댑테이션에 있어서, 템플릿은 소프트웨어 구성요소(201)에 통합된다. 생성된 템플릿은 데이터 시스템(200)에서 템플릿을 설치하기 위해 설치 파일들을 생성하는데 사용된다. 예를 들어 부록 1에 예시된 요소들이 사용될 수 있고, 상기 요소들에 대해 디폴트 값들이 지정된다.
도 5는 바람직한 실시예에 의한 브로커 구성요소(202)의 계층들을 나타낸다. 브로커 구성요소(202)는 소프트웨어 개발 시스템(200)에서 통신 플랫폼으로서 동작한다. 상기 브로커 구성요소(202)는 다음의 기능들을 수행한다:
설치된 템플릿들의 리스트(506)를 유지하고,
상기 브로커 구성요소에 연결된 어댑터들(203, 205) 및 상기 어댑터들의 특성들의 리스트(507)를 관리하며,
상기 어댑터들(203, 205)의 어드레싱 정보를 관리하고,
상기 어댑터들(203, 205) 사이에서 이벤트-기반 및 스트림-기반 데이터 전송을 관리하며,
예를 들어, 어댑터(203, 205)를 접속 해제하거나 접속된 어댑터들의 리스트를 획득하는 명령들을 수행하기 위하여 어댑터들(203, 205)에 대한 명령 인터페이스를 제공하고,
상기 어댑터들(203, 205)에게 이용가능한 템플릿들, 구성들 및 어댑터 상태들의 변경을 통보한다.
브로커 구성요소(202)는 인터페이스들 및 브로커 인터페이스(Broker IF)(502), 이벤트 콜백(callback) 인터페이스(503), 및 점 대 점 파이프 인터페이스(P2P Pipe IF)(504)를 포함하는 인터페이스 계층을 포함한다. 상기 인터페이스(502)는 브로커 구성요소(202)와 관련된 일반적인 기능들, 예를 들어 전송 기능을 포함한다. 상기 인터페이스(503)는 어댑터들(203, 205)과의 이벤트-기반 데이터 전송을 수행하기 위한 이벤트-기반 데이터 전송 기능들을 포함한다. 상기 인터페이스(504)는 들어오고 나가는 스트림들을 처리하기 위한 기능들을 포함한다. 바람직한 실시예에 따라, 브로커 구성요소(202)의 주입(implantation) 계층은 브로커 구현 클래스들을 포함한다; 브로커(501) 및 점 대 점 파이프 기능(P2P Pipe)(505). 바람직하기로는 브로커 구성요소(202)의 구성은 XML 파일에 저장된다. 상기 구성은 브로드캐스트 수 및 RMI 포트들과 같은 브로커 구성요소(202)의 일반적인 세팅들을 포함한다.
전형적으로, 브로커 구성요소(202)는 하나의 어댑터(203)로부터 다른 하나의 어댑터로 메시지들을 직접 라우팅한다. 메시지들은 또한 필터 어댑터(205) 및 필터 구성요소(206)를 통해 전송될 수 있다. 이것은 필터 구성요소(206)가 메시지들에 개입하도록 허용하고 예를 들어 전송될 메시지들에 대한 데이터 전송 오류들을 시뮬레이션한다. 전송 및 수신 어댑터들(203)은 중간에 있는 필터 어댑터(205)를 검출하지 않는다. 정적 라우팅이 또한 브로커 구성요소(202)에서 사용될 수 있다. 이 경우에 있어서, 브로커 구성요소(202)는 예를 들어 테스트를 위해 라우팅 테이블에서의 엔트리를 세팅하고, 상기 엔트리에 따라 제1 어댑터(203)로부터의 메시지들이 지정된 제2 어댑터(203)로 자동으로 전송되며, 그것에 의해 전송될 패킷들은 수신지 주소조차 필요로 하지 않는다.
어댑터들(203, 205)에 대해 지정된 식별자들은 브로커 구성요소(202)에서 통신 주소들로서 사용될 수 있다. P2P 접속이 활성화되어 있는 경우, 이것은 제1 어댑터(203, 205)가 제2 어댑터(203, 205)의 식별자, 및 제2 어댑터와의 통신이 일어났는지를 나타내도록 허용한다. 브로커 구성요소(202)에 있어서, 수신지 어댑터가 또한 전송될 데이터 실체로부터 지정될 수 있다. 예를 들어, 어댑터(203)는 전송될 짧은 메시지의 수신지 번호 필드로부터 수신지 전화번호를 지정한다. 전송될 짧은 메시지를 포함하는 데이터 패킷에 대한 수신지 주소로서 수신지 전화 번호가 브로커 구성요소(202)를 위해 세팅되고, 이것을 기초로 하여, 브로커 구성요소(202)는 어댑터의 지정된 식별자(리스트(507)에서)가 상기 전화번호인 어댑터(203, 205)로 데이터 패킷을 전송한다. 상술된 바와 같이, 일 실시예에 따라, 어댑터들(203, 205) 및 브로커 구성요소(202)간의 데이터 전송은 일반 RMI 기능들을 사용하여 수행되고, 그것에 의해 어댑터들(203, 205)은 브로커 구성요소(202)로의 특별한 RMI 인터페이스들(논리 포트들)을 갖는다.
상기 시스템(200)은 또한 브로드캐스트 또는 멀티캐스트 주소들을 포함할 수 있다. 메시지가 브로드캐스트 주소로 전송되는 경우, 브로커 구성요소(202)는 메시지의 사본들을 모든 동작중인 어댑터들(203)로 전송한다. 바람직한 실시예에 따라, 상기 브로커 구성요소(202)는 또한 접속된 어댑터들(203)의 특성들(즉, 접속된 어댑터들에 의해 표시되는 소프트웨어 구성요소들(201)의 특성들)에 대한 정보를 리스트(507)에 유지하고, 이벤트가 전송되고 있거나 접속이 설정되고 있는 경우 소프트웨어 구성요소(201)의 특성들을 검사한다. 이것은 브로커 구성요소가 어댑터들(203) 및 서로 데이터 전송할 수 있는 대응하는 소프트웨어 구성요소들(201) 사이에서만 데이터 전송을 수행하도록 허용한다. 예를 들어, 바람직한 경우, 메시지는 시스템 내에서 멀티미디어 메시징 서비스(MMS; Multimedia Messaging Service) 기법을 지원하는 모든 소프트웨어 구성요소들(201)로 전송될 수 있다. 이러한 종류의 그룹 전송을 위하여, 예를 들어 특별한 서비스 유형-특정 주소가 사용될 수 있고, 상기 주소를 기초로 하여 브로커 구성요소(202)는 주어진 서비스 유형의 소프트웨어 구성요소들로 인도되는 그룹 전송이 관련되어 있다는 것을 안다. 이 경우에 있어서, 브로커 구성요소(202)는 접속된 어댑터들의 리스트(507)를 기초로 하여, 어댑터 구성에서 어느 어댑터들(203)의 서비스 유형이 MMS로 정의되는지를 검사한다. 이때 브로커 구성요소(202)는 MMS 서비스를 지원하는 모든 어댑터들(203)로 메시지를 전송한다.
도 4 및 도 5에 도시된 어댑터(202) 및 브로커 구성요소(203)의 기능들은 데이터 시스템(200)에서 구현된 하나의 방식이라는 것을 유념해야 한다. 도 4 및 도 5에 도시된 모든 기능들이 필수적인 것은 아니며, 다른 한편, 신규 기능들이 어댑터(202) 및/또는 브로커 구성요소(203)에 추가될 수 있다.
이하, 예를 들어 테스트를 위해 소프트웨어 개발 환경에서 신규 소프트웨어 구성요소(201)를 데이터 시스템에 접속하는 것이 도 6을 참조하여 설명된다. 신규소프트웨어 구성요소(201)가 시스템(200)에 접속되는 경우, 구성된 어댑터(203)가 템플릿을 기초로 하여 생성된다. 시스템(200)에 있어서, 설치 프로그램은 신규 소프트웨어 구성요소(201) 및 상기 신규 소프트웨어 구성요소를 위해 생성된 템플릿(601)을 설치하기 위하여 콘솔 구성요소(208)를 통해 활성화될 수 있다. 대몬(207)은 신규 템플릿을 검출하여 브로커 구성요소(202)에 통지한다. 필요한 경우, 브로커 구성요소(202)는 신규 템플릿에 대한 정보를 콘솔 구성요소들(208)에 브로드캐스트한다.
사용자로부터 콘솔 구성요소(208)를 통해 수신된 입력(602)은 적어도 어댑터(203)에 대한 식별자를 세팅함으로써, 템플릿 중에서 취해진 사본에 사용자의 세팅들을 추가함으로써 템플릿으로부터 구성된 어댑터(203)를 생성하는데 사용될 수 있다. 사용자가 제공한 세팅들은 템플릿으로부터 획득된 디폴트 세팅들을 대체한다. 구성된 어댑터(203)는 시스템(200)의 소프트웨어 구성요소(201)에 식별자를 제공한다; 상기 식별자는 파일명 및 디렉토리 경로와 같은 소프트웨어 구성요소(201)와 관련된 다양하게 지정된 매개변수들을 포함할 수 있다. 브로커 구성요소(202)는 나중에 사용하기 위해 상기 구성을 저장한다(604). 바람직한 실시예에 따라, 상기 구성은 (XML형 템플릿으로부터) XML 파일로서 저장된다. 이제, 어댑터(202)가 신규 소프트웨어 구성요소를 위해 지정되고, 브로커 구성요소를 통해 다른 소프트웨어 구성요소들로 상기 구성요소에 대한 데이터 전송 접속을 수행하는데 사용될 수 있다.
구성된 어댑터(203)(및 상기 어댑터에 의해 지정된 소프트웨어구성요소(201))는 상기 어댑터(203)가 브로커 구성요소(202)에 접속되는 경우, 특히 접속된 어댑터들을 통해 상기 브로커 구성요소에 의해 유지되는 리스트(507)에 접속되는 경우, 데이터 시스템(200)의 부분이 된다. 이 경우에 있어서, 호스트와 같은 런타임 세팅이 또한 어댑터(203)와 관련될 수 있다. 콘솔 구성요소(208)를 통해, 사용자는 소프트웨어 구성요소(201)와 관련된 식별자(1111)를 기초로 하여 소프트웨어 구성요소(201)를 활성화할 수 있고, 예를 들어 또한 어댑터(203)를 연결하기 위한 명령(605)이 대몬 구성요소(207)에 전송된다. 상기 대몬 구성요소(207)는 소프트웨어 구성요소(201) 및 어댑터(203)를 활성화한다. 그 다음, 식별자(1111)에 의해 식별된 어댑터를 연결하기 위한 요청이 어댑터(203)로부터 브로커 구성요소(202)로 전송될 수 있고, 여기서 브로커 구성요소(202)(브로커(501))는 식별자(1111)를 기초로 하여 어댑터의 구성을 검색한다(606). 브로커 구성요소(202)는 식별자(1111)와 관련된 구성을 어댑터(203)에 전송하고 접속된 어댑터들을 통해 유지하는 리스트(507)에 상기 어댑터(203)를 추가한다. 즉, 어댑터(203)를 브로커 구성요소(202)에 접속한다.
그 다음, 소프트웨어 구성요소(201)로/로부터 상기 접속된 어댑터(203)를 통해 데이터 전송이 수행될 수 있다. 접속된 소프트웨어 구성요소(201)로부터 또는 브로커 구성요소(202)로부터 수신된 명령(608)에 응답하여 상기 접속된 어댑터(203)를 통해 데이터가 전송될 필요가 있는 경우, 어댑터(203)가 활성화된다(609). 사용자가 소프트웨어 구성요소(201)에 의해 제공되는 사용자 인터페이스에서 다른 소프트웨어 구성요소로 데이터 전송을 선택하는 경우어댑터(203)가 전형적으로 활성화된다. 어댑터(203)의 활성화(609)에 있어서, 필요한 자원들, 예를 들어 데이터를 수신/전송하기 위한 P2P 인터페이스(405)가 세팅된다. 그 다음, 브로커 구성요소(202)를 통해 어댑터(203) 및 다른 어댑터(203)간에 데이터가 전송될 수 있다(610).
시스템(202)의 사용자는 어댑터(203)의 프레임워크 인터페이스(407) 및 콘솔 구성요소(208)를 통해 동작중인 어댑터들(203, 205)을 추적할 수 있다. 이 경우에 있어서, 시스템에 접속된 어댑터들을 통해 브로커 구성요소(202)에 의해 유지되는 리스트(507)를 기초로 하여 이용가능한 어댑터들(및/또는 특히 상기 어댑터들에 접속된 소프트웨어 구성요소들(201))에 대한 통지가 제공된다.
이하, 어댑터들(203) 및 브로커 구성요소(202)를 경유한 데이터 전송을 수행하는 상이한 방식들, 즉, 도 6의 단계 609 및 단계 610가 상세하게 설명된다. 상술된 바와 같이, 어댑터들(203, 205)간에 데이터 전송은 접속형 또는 이벤트-기반, 즉 무접속일 수 있다.
이벤트-기반 데이터 전송에 있어서, 어댑터(203, 205)는 프레임워크 인터페이스(407)를 통해 서비스 인터페이스 인스턴스(instance)(403, 406)를 획득한다. 전송 어댑터는 또한 서비스 인터페이스 인스턴스(403, 406)가 아직 없는 경우 서비스 인터페이스 인스턴스(403, 406)를 획득한다. 양 어댑터들(203, 205)은 미래 이벤트들에 대한 청취자(listener)를 서비스 인터페이스(403, 406)에 추가한다. 어댑터(203)는 수신 어댑터(203, 205)의 식별자 및 전송 식별자를 구비하는 이벤트로서, 소프트웨어 구성요소(201)로부터 수신되거나 전송되는 내용을 묶는다. 이벤트가 브로커 구성요소(202)에 전송되고, 상기 브로커 구성요소(202)는 수신 어댑터(203)에 대해 유지하는 리스트(507)를 검색하여 수신 어댑터가 활동중이고 상기 종류의 이벤트를 처리할 수 있는지를 알아낸다. 그러한 경우, 상기 브로커 구성요소(202)는 상기 이벤트를 어드레스된 수신 어댑터(203)에 전송한다. 상기 어드레스된 수신 어댑터(203)는 청취자를 통해 이벤트를 수신하고, 이벤트의 내용을 소프트웨어 구성요소(201)에 전송한다. 동기 이벤트의 경우에 있어서, 수신 어댑터(203)는 응답 이벤트를 전송 어댑터(203)로 전송한다.
P2P 데이터 전송을 위해, 개시 어댑터(203)는 인터페이스(407)를 통해 접속을 오픈하기 위한 요청을 전송한다. P2P 인터페이스(405)가 접속을 위해 구현되고, 접속의 제2 끝점, 즉 호출된 어댑터(203)로의 접속을 나타낸다. 브로커 구성요소(202)는 P2P 접속을 오픈하기 위한 요청을 제2 어댑터(203)에 전송하고 상기 제2 어댑터(203)는 청취 인터페이스를 통해 상기 요청을 수신한다. 양 어댑터들(203)의 인터페이스들(405)이 데이터 스트림을 전송 및/또는 수신하도록 세팅된다. 바람직한 실시예에 따라, 데이터 스트림들은 보통의 자바.아이오(java.io) 스트림들일 수 있다; 어떤 데이터 스트림이 브로커 구성요소(202)에 의해 제공되는 P2P 접속을 통해 운반될 수 있다.
일 실시예에 따라, 데이터 시스템(200)에서, 바람직하기로는 대몬 구성요소(207)에서 검출 기능이 수행된다. 상기 검출 기능은 신규 소프트웨어 구성요소(201), 예를 들어 데이터 처리 장치(301)에 설치된 단말기 에뮬레이터를 자동으로 검출한다. 신규 소프트웨어 구성요소를 검출한 경우, 상기 검출 기능은 도 6에 도시된 기능들을 수행할 수 있고, 데이터 시스템(200)에 소프트웨어 구성요소를 접속시킬 수 있으며 어댑터(203)가 브로커 구성요소(202)에 접속할 수 있도록 할 수 있다.
또 다른 실시예에 따라, 데이터 시스템(200), 특히 소프트웨어 구성요소들(201)의 구성형태(topology)의 시각적인 뷰(view)가 콘솔 구성요소(208)를 통해 데이터 시스템(200)의 사용자에게 제공된다. 여기서, 사용자는 그래픽 아이콘들을 사용하여 데이터 시스템(200)의 예시적인 전체 뷰를 획득한다. 신규 구성요소들을 지정하고 그리기(drawing)에 의해 기존 구성요소들과의 인터페이스를 지정할 기회가 사용자에게 제공될 수 있다. 예를 들어, 사용자가 2개의 소프트웨어 구성요소들(201)간에 선을 그리는 경우, 상기 소프트웨어 구성요소들의 어댑터들(203)이 자동적으로 활성화될 수 있고, 상기 어댑터들간에 데이터 전송 접속이 이루어질 수 있다. 사용자가 아이콘을 화면(picture)에 추가하여 신규 소프트웨어 구성요소(201)를 데이터 시스템(200)에 추가하는 경우, 구성과 관련된 모든 기능들 및 소프트웨어 구성요소(201) 및 어댑터(203)의 접속이 수행될 수 있다. 즉 도 6의 단계 601 내지 단계 607이 실행될 수 있다. 이 실시예는 추가로 소프트웨어 개발 환경의 이용가능성을 개선하는데, 왜냐하면 신규 구성요소의 추가 및 수정이 사용자에게 용이하기 때문이다.
따라서, 바람직한 실시예에 따른 데이터 시스템(200)에 있어서, 매우 상이한 소프트웨어 구성요소들(201)이 어댑터들(203) 및 브로커 구성요소(202)를 통해 상호접속될 수 있다. 이하, 상이한 구성형태에서의 데이터 전송을 구현하는 예와 상술된 데이터 시스템(200)이 상이한 소프트웨어 개발 상황들에서 어떻게 이용될 수 있는지에 대한 예들이 제시된다.
제1 예에 있어서, SMS(짧은 메시지 서비스; Short Message Service)/MMS 환경에서 서버의 소프트웨어 개발의 테스트를 제공하기 위한 데이터 전송이 이루어진다. 여기서, 서버를 위한 MMS 애플리케이션을 개발하는 애플리케이션 개발자는 상이한 단말기 에뮬레이터들을 통해 애플리케이션의 기능을 용이하게 테스트할 수 있다. 짧은 메시지는 단말기 에뮬레이터로부터 어댑터(203)를 통해 브로커 구성요소(202)로 전송된다. 브로커 구성요소(202)는 SMS 서버 에뮬레이션 환경이 SMS 서버 에뮬레이터에 접속된 어댑터(203)를 통해 브로커 구성요소(202)에 접속되어 있는지를 검출하고, 메시지를 라우팅한다. 브로커 구성요소(202)는 짧은 메시지를 SMS 서버 에뮬레이터(짧은 메시지 서비스 센터(SMSC) 에뮬레이터)에, 즉 네트워크 짧은 메시지 서비스를 에뮬레이트하는 기능에 전달한다. SMS 서버 에뮬레이터는 짧은 메시지를 예를 들어 컴퓨터 인터페이스 메시지 분배(CIMD; Computer Interface to Message Distribution) 프로토콜을 사용하여 테스트되는 외부 MMS 애플리케이션에 전달한다. MMS 애플리케이션은 짧은 메시지의 표시를 수신한다. 이 예에서, 애플리케이션 로직은 MMS 메시지를 생성하여 짧은 메시지를 전송하는 단말기 에뮬레이터에 전송한다. MMS 애플리케이션은 예를 들어 외부 애플리케이션 인터페이스(EAIF; External Application Interface) 프로토콜을 이용하여 MMS 서버 에뮬레이터, 즉 MMS 기능을 에뮬레이트하는 소프트웨어 구성요소에 MMS 메시지를 전송한다. MMS 서버 에뮬레이터는 메시지를 상기 MMS 서버 에뮬레이터에 접속된 어댑터(203)를 통해 브로커 구성요소(202)에 전달한다. 상기 브로커 구성요소(202)는 메시지를 상기 브로커 구성요소(202)에 유지되는 어드레싱 데이터를 기초로 하여 어댑터(203)를 통해 올바른 단말기 에뮬레이터로 전달한다. (짧은 메시지의 전송에서의 어댑터와 동일하거나 상이한 어댑터일 수 있는) 어댑터(203)는 MMS 메시지를 단말기 에뮬레이터(201)에 전달하고, 상기 MMS 메시지는 보여질 수 있고 의도된 것에 따르는지 여부가 검사될 수 있다. 상기 실시예에 있어서, 소프트웨어 개발자는 한편으로 개발된 애플리케이션의 동작을 테스트하여 오류를 찾을 수 있고 다른 한편으로 동일한 소프트웨어 개발 환경에서 상이한 단말기들의 애플리케이션에 의해 생성된 메시지의 정확성을 테스트할 수 있다.
제2 예에 있어서, 내용 개발자는 상이한 단말기 에뮬레이터들 및/또는 실제 단말기에 내용을 용이하게 전달할 수 있고 상기 내용이 상이한 단말기들에서 어떻게 표시되는지를 알아낼 수 있다. 내용 제공자의 내용 개발 소프트웨어 구성요소(201)의 내용, 예를 들어 MMS 메시지가 단 하나의 인터페이스를 사용하여, 즉 내용 개발 소프트웨어 구성요소에 접속된 어댑터(203)를 통해 상이한 단말기 에뮬레이터들로 상기 단말기 에뮬레이터들에 접속된 어댑터들(203) 및 브로커 구성요소(202)를 통해 전달된다. 상기 내용은 또한 예를 들어 블루투스 환경(블루투스 애플리케이션)으로의 인터페이스를 제공하는 어댑터(203)를 통해 실제 무선 단말기로 전달될 수 있다. 이러한 종류의 어댑터는 블루투스 접속을 통해 전송가능한 형태로 MMS 메시지를 적합시키고, 그 다음 내용을 개발한 데이터 처리 장치의 블루투스 애플리케이션은 실제 단말기로 메시지를 전송할 수 있다. 이것은 실제 단말기들 및단말기 에뮬레이터들에 있을 수 있는 몇몇 소프트웨어 구성요소들의 동시 테스트를 가능하게 한다. 어댑터(203)는 또한 브로커 구성요소(202)에 접속될 수 있고, 어댑터를 통해 원격 운영자의 네트워크로의 인터페이스, 예를 들어 제3 세대 협력 프로젝트(3GPP; Third Generation Partnership Project) 시스템의 MMS 릴레이 기능으로의 인터페이스가 구현되고, 상기 인터페이스를 통해 내용이 실제 단말기(TE) 또는 이동 네트워크(MNW)로 릴레이될 수 있다.
제3 예에 있어서, 애플리케이션 개발자는 단말기 에뮬레이터, 어댑터들(203), 브로커 구성요소(202) 및 블루투스 환경 시뮬레이터를 이용하여 하나의 데이터 처리 장치에서 블루투스 애플리케이션을 테스트 및/또는 시뮬레이트할 수 있다. 블루투스 애플리케이션은 소프트웨어 개발 구성요소(201)에서 개발된다. 개발되는 애플리케이션의 소프트웨어는 애플리케이션 개발 구성요소의 어댑터(203), 브로커 구성요소(202) 및 단말기 에뮬레이터의 어댑터(203)를 통해 단말기 에뮬레이터로 전송될 수 있다. 수신된 애플리케이션은 단말기 에뮬레이터에서 실행될 수 있고 구비된 어댑터들(203)을 이용하여 블루투스 환경의 시뮬레이터 및/또는 실제 블루투스 환경을 가지고 테스트될 수 있다.
제4 예에 있어서, 단 대 단(end-to-end) 짧은 메시징 애플리케이션이 소프트웨어 개발 환경에서 개발되고, 어댑터(203) 및 브로커 구성요소(202)를 통해 애플리케이션이 단말기 에뮬레이터 및 짧은 메시지 센터 에뮬레이터(또는 서버 에뮬레이터)에 전송된다. 그 다음, 메시지들은 전송되는 애플리케이션 로직들에 따라 단말기 에뮬레이터(클라이언트) 및 짧은 메시지 센터 에뮬레이터 또는 서버 에뮬레이터간에 릴레이될 수 있고, 애플리케이션 로직의 기능이 하나의 데이터 처리 장치를 사용하여 테스트될 수 있다.
상기 예들을 기초로 하여 볼 수 있는 바와 같이, 본 발명의 해결책은 이용가능한 기법들에 상관없이 단 대 단 애플리케이션들의 테스트를 가능하게 한다. 예를 들어, 자바 에뮬레이터(201)에서 실행된 애플리케이션은 어댑터들(203) 및 브로커 구성요소(202)를 통해 시스템의 서비스(201)에 전송되는 짧은 메시지(SMS)를 자바 인터페이스(자바 API)를 통해 전송한다. 상기 서비스는 SMS 메시지들을 청취하고, SMS 메시지를 수신한 경우, MMS 메시지를 생성하며, 상기 MMS 메시지는 서비스에 접속된 어댑터(203) 및 브로커 구성요소(202)를 통해 환경에서의 MMS 소프트웨어 구성요소들(예를 들어, 에뮬레이터들, MMSC, MMSC 시뮬레이터)로 전송된다. 다시 말하면, 본 발명의 해결책은 애플리케이션들이 '체인(chained)'되어 상기 애플리케이션의 동작을 용이하게 테스트할 수 있게 한다. 물론, 상기 애플리케이션은 C, C++ 또는 파스칼(Pascal) 언어와 같은 어떤 다른 프로그래밍 언어를 사용하여 구현될 수 있다. 짧은 메시지 대신에, IP형 메시지들, MMS 메시지들 또는 HTTP 프로토콜에 따른 메시지들이 전송될 수 있다. 즉, 전송 프로토콜은 어떤 현존 프로토콜 또는 미래에 개발되는 프로토콜일 수 있다. 이용가능한 전송 채널들은 단거리 무선 접속들, GPRS 또는 UMTS 접속들과 같은 셀룰러 접속들 또는 적외선과 같은 광학 접속들을 포함한다.
기술이 진보함에 따라, 본 발명의 기본 사상은 다양한 방식으로 구현될 수 있다는 것이 당업자에게 명백하다. 따라서 본 발명 및 본 발명의 실시예들은 상기예들에 제한되지 않고, 청구범위내에서 변경될 수 있다.
상술한 바와 같이, 본 발명을 이용하면, 소프트웨어 구성요소들의 접속성을 개선할 수 있다.
또한, 이용가능한 기법들에 상관없이 단 대 단 애플리케이션들의 테스트를 수행할 수 있다.
한편, 애플리케이션들이 체인되어 애플리케이션의 동작을 용이하게 테스트할 수 있다.
또한, 본 발명에 따라, 매우 많은 상이한 종류의 기법들을 지원하는 소프트웨어 구성요소들이 접속될 수 있고 그 사이에서 데이터 전송이 수행될 수 있는 일반적인 통신 플랫폼을 제공할 수 있다.
부록 1 : DTD 정의

Claims (12)

  1. 소프트웨어 개발 환경에서 이동 통신 애플리케이션들을 구현하는 소프트웨어 구성요소들간에 데이터 시스템에서 데이터를 전송하는 방법으로서, 상기 데이터 시스템은 적어도 제1 소프트웨어 구성요소 및 제2 소프트웨어 구성요소를 포함하고, 상기 소프트웨어 구성요소들 중 적어도 하나는 이동국을 제어하는 프로그램 코드를 포함하는 데이터 전송 방법에 있어서,
    상기 데이터 시스템은 상이한 소프트웨어 구성요소들을 위한 어댑터들 및 상이한 어댑터들간에 데이터를 전송하는 브로커(broker) 구성요소를 포함하고, 상기 어댑터는 상기 어댑터에 접속된 적어도 하나의 소프트웨어 구성요소를 위해 상기 브로커 구성요소의 인터페이스를 제공하며, 상기 데이터 시스템의 어댑터들에 대한 어드레싱 정보가 상기 브로커 구성요소에 유지되고,
    상기 제1 소프트웨어 구성요소 및 상기 제2 소프트웨어 구성요소 간의 데이터 전송의 요구에 응답하여 상기 제1 소프트웨어 구성요소를 위해 상기 데이터 시스템의 제1 어댑터가 활성화되고 상기 제2 소프트웨어 구성요소를 위해 제2 어댑터가 활성화되며,
    상기 브로커 구성요소에서 상기 어드레싱 정보에 따라 상기 제1 어댑터 및 상기 제2 어댑터간에 데이터가 전송되는 것을 특징으로 하는 데이터 전송 방법.
  2. 제1항에 있어서,
    상기 제1 소프트웨어 구성요소 및 상기 제2 소프트웨어 구성요소 간의 데이터 전송의 요구에 응답하여 연결형 또는 무연결 데이터 전송을 위해 상기 제1 어댑터 및 상기 제2 어댑터에 대해 상기 브로커 구성요소의 인터페이스를 구현하는 단계를 포함하는 것을 특징으로 하는 데이터 전송 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 브로커 구성요소에 접속되어 있는 상기 제1 어댑터 및 상기 제2 어댑터에 응답하여 상기 브로커 구성요소에서 상기 어댑터들의 특성들에 대한 정보 및 상기 제1 어댑터 및 상기 제2 어댑터의 식별자들을 유지하는 단계; 및
    상기 브로커 구성요소에서, 상기 어댑터들의 특성들 및 상기 식별자들에 기초하여, 상기 제1 소프트웨어 구성요소 및 상기 제2 소프트웨어 구성요소 간의 데이터 전송의 요구에 응답하여 상기 제1 어댑터 및 상기 제2 어댑터 간에 데이터 전송이 가능한지 여부를 검사하는 단계를 포함하는 것을 특징으로 하는 데이터 전송 방법.
  4. 제1항 내지 제3항 중의 어느 한 항에 있어서,
    상기 데이터 시스템은 상기 제1 소프트웨어 구성요소를 위한 어댑터를 지정하기 위해 상기 제1 소프트웨어 구성요소의 특성들에 대한 정보를 포함하는 적어도 하나의 저장된 템플릿(template)을 구비하고,
    상기 제1 어댑터의 구성은 상기 템플릿을 기초로 하여 지정되며,
    상기 제1 어댑터의 구성은 상기 데이터 시스템에 저장되고,
    상기 제1 어댑터가 상기 브로커 구성요소에 접속되는 경우 상기 제1 어댑터의 구성이 검색되는 것을 특징으로 하는 데이터 전송 방법.
  5. 제1항 내지 제4항 중의 어느 한 항에 있어서,
    소프트웨어 어댑테이션(adaptation)을 이용하여 상기 어댑터에 의해 제공되는 어댑테이션 기능을 구현하는 단계로서, 상기 어댑터는 소프트웨어 구성요소 프로세스에서 구현되는 단계, 또는
    통신 어댑테이션을 이용하여 상기 어댑터에 의해 제공되는 어댑테이션 기능을 구현하는 단계로서, 상기 어댑터는 별개의 프로세스에서 구현되고 데이터 전송 프로토콜을 사용하여 상기 어댑터 및 상기 소프트웨어 구성요소 프로세스간에 데이터가 전송되는 단계를 포함하는 것을 특징으로 하는 데이터 전송 방법.
  6. 제1항 내지 제5항 중의 어느 한 항에 있어서,
    상기 시스템은 상기 브로커 구성요소에 접속되는 적어도 하나의 필터 어댑터를 더 포함하고,
    상기 제1 소프트웨어 구성요소 및 상기 제2 소프트웨어 구성요소간의 데이터 전송이 상기 필터 어댑터를 통해 구현되고,
    상기 제1 소프트웨어 구성요소 및 상기 제2 소프트웨어 구성요소간에 전송된 정보가 상기 필터 어댑터에서 수집되는 것을 특징으로 하는 데이터 전송 방법.
  7. 제1항 내지 제6항 중의 어느 한 항에 있어서,
    상기 제1 어댑터는 상기 이동 통신 시스템의 데이터 전송 애플리케이션의 인터페이스를 제공하고, 상기 애플리케이션은 상기 제1 소프트웨어 구성요소인 것을 특징으로 하는 데이터 전송 방법.
  8. 적어도 제1 소프트웨어 구성요소 및 제2 소프트웨어 구성요소를 포함하는 데이터 시스템으로서, 상기 소프트웨어 구성요소들 중 적어도 하나는 이동국을 제어하는 프로그램 코드를 포함하는 데이터 시스템에 있어서,
    상기 데이터 시스템은 상이한 소프트웨어 구성요소들을 위한 어댑터들 및 상이한 어댑터들간에 데이터를 전송하는 브로커(broker) 구성요소를 더 포함하고, 상기 어댑터는 상기 어댑터에 접속된 적어도 하나의 소프트웨어 구성요소를 위해 상기 브로커 구성요소의 인터페이스를 제공하며, 상기 브로커 구성요소는 상기 데이터 시스템의 어댑터들에 대한 어드레싱 정보를 유지하도록 구성되고,
    상기 제1 소프트웨어 구성요소 및 상기 제2 소프트웨어 구성요소 간의 데이터 전송의 요구에 응답하여 상기 데이터 시스템에서 상기 제1 소프트웨어 구성요소를 위해 제1 어댑터가 활성화되도록 구성되고 상기 제2 소프트웨어 구성요소를 위해 제2 어댑터가 활성화되도록 구성되며,
    상기 브로커 구성요소가 상기 어드레싱 정보에 따라 상기 제1 어댑터 및 상기 제2 어댑터간에 데이터를 전송하도록 구성되는 것을 특징으로 하는 데이터 시스템.
  9. 제8항에 의한 데이터 시스템을 포함하는 데이터 처리 장치.
  10. 제1 소프트웨어 구성요소 및 제2 소프트웨어 구성요소간에 데이터 전송을 구현하기 위해 하나 이상의 데이터 처리 장치들을 제어하는 컴퓨터 프로그램 생성물로서, 상기 소프트웨어 구성요소들 중 적어도 하나는 이동국을 제어하는 프로그램 코드를 포함하는 컴퓨터 프로그램 생성물에 있어서,
    상이한 소프트웨어 구성요소들을 위한 어댑터들을 구현하기 위한 프로그램 코드 부분으로서, 상기 어댑터는 상기 어댑터에 접속된 적어도 하나의 소프트웨어 구성요소를 위해 브로커 구성요소의 인터페이스를 제공하는 프로그램 코드 부분;
    상이한 어댑터들간에 데이터를 전송하는 브로커(broker) 구성요소를 구현하기 위한 프로그램 코드 부분으로서, 상기 브로커 구성요소는 데이터 시스템의 어댑터들에 대한 어드레싱 정보를 유지하도록 구성되는 프로그램 코드 부분;
    상기 제1 소프트웨어 구성요소 및 상기 제2 소프트웨어 구성요소 간의 데이터 전송의 요구에 응답하여 상기 제1 소프트웨어 구성요소를 위해 제1 어댑터를 활성화하고 상기 제2 소프트웨어 구성요소를 위해 제2 어댑터를 활성화하도록 상기 데이터 처리 장치를 제어하는 프로그램 코드 부분; 및
    상기 브로커 구성요소가 상기 어드레싱 정보에 따라 상기 제1 어댑터 및 상기 제2 어댑터간에 데이터를 전송하게 하도록 상기 데이터 처리 장치를 제어하는프로그램 코드 부분을 포함하는 것을 특징으로 하는 컴퓨터 프로그램 생성물.
  11. 데이터 처리 장치에 의해 독출가능한 데이터 저장 매체에 있어서,
    제10항에 의한 컴퓨터 프로그램 생성물을 포함하는 것을 특징으로 하는 데이터 저장 매체.
  12. 제10항에 의한 컴퓨터 프로그램 생성물을 포함하는 신호.
KR1020040009249A 2003-02-17 2004-02-12 이동 통신 애플리케이션들을 테스트하기 위한 소프트웨어 개발 시스템, 상기 소프트웨어 개발 시스템에서 소프트웨어 구성요소들간에 데이터를 전송하는 방법, 상기 소프트웨어 개발 시스템을 포함하는 데이터 처리 장치, 및 상기 데이터 처리 장치를 제어하는 컴퓨터 프로그램이 수록된 컴퓨터 판독가능 저장 매체 KR100950212B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FI20030240 2003-02-17
FI20030240A FI114581B (fi) 2003-02-17 2003-02-17 Ohjelmistokehitysympäristö

Publications (2)

Publication Number Publication Date
KR20040074922A true KR20040074922A (ko) 2004-08-26
KR100950212B1 KR100950212B1 (ko) 2010-03-29

Family

ID=8565657

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040009249A KR100950212B1 (ko) 2003-02-17 2004-02-12 이동 통신 애플리케이션들을 테스트하기 위한 소프트웨어 개발 시스템, 상기 소프트웨어 개발 시스템에서 소프트웨어 구성요소들간에 데이터를 전송하는 방법, 상기 소프트웨어 개발 시스템을 포함하는 데이터 처리 장치, 및 상기 데이터 처리 장치를 제어하는 컴퓨터 프로그램이 수록된 컴퓨터 판독가능 저장 매체

Country Status (5)

Country Link
US (1) US7317912B2 (ko)
EP (1) EP1447749A3 (ko)
KR (1) KR100950212B1 (ko)
CN (1) CN100485609C (ko)
FI (1) FI114581B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100877942B1 (ko) * 2003-02-26 2009-01-12 인터내셔널 비지네스 머신즈 코포레이션 동적 데이터 구동 애플리케이션 통합 어댑터

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7698383B2 (en) * 2004-02-27 2010-04-13 Research In Motion Limited System and method for building component applications using metadata defined mapping between message and data domains
KR100679865B1 (ko) * 2005-03-07 2007-02-07 아주대학교산학협력단 유비쿼터스 컴퓨팅 환경의 다양성을 지원하기 위한 시스템
US7546131B1 (en) 2006-01-20 2009-06-09 Google Inc. Emulating a messaging operation for mobile devices
US7958487B2 (en) * 2006-03-21 2011-06-07 International Business Machines Corporation Apparatus, system, and method for modifying an integration software template
CN101311903B (zh) * 2007-05-22 2011-05-18 国际商业机器公司 对基于组件的软件系统中的组件进行重用的方法和装置
US8495594B2 (en) * 2008-01-10 2013-07-23 International Business Machines Corporation Method and system for providing a componentized resource adapter architecture
US8620856B2 (en) * 2008-01-18 2013-12-31 International Business Machines Corporation Method and system for providing a data exchange service provider interface
CN101609396B (zh) * 2008-06-16 2012-12-26 成都吉锐触摸技术股份有限公司 一种触摸屏通讯协议的实现方法
US8402084B2 (en) * 2008-09-11 2013-03-19 Intel Corporation Host embedded controller interface bridge
US8699499B2 (en) * 2010-12-08 2014-04-15 At&T Intellectual Property I, L.P. Methods and apparatus to provision cloud computing network elements
KR101323270B1 (ko) 2012-05-22 2013-10-30 주식회사 오비고 웹 애플리케이션 개발용 에뮬레이터를 제공하기 위한 방법, 개발자 단말 장치 및 컴퓨터 판독 가능한 기록 매체
US9588788B1 (en) 2012-08-23 2017-03-07 Amazon Technologies, Inc. Optimized communication between program components executing in virtual machines
US9912517B1 (en) * 2012-08-23 2018-03-06 Amazon Technologies, Inc. Optimized deployment and execution of programs in a distributed computing environment
CN113535135B (zh) * 2021-09-09 2022-02-15 深圳市蓝凌软件股份有限公司 软件开发方法、装置、计算机设备和存储介质
CN114466055B (zh) * 2021-12-27 2024-04-26 天翼云科技有限公司 一种业务处理方法及装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6041365A (en) 1985-10-29 2000-03-21 Kleinerman; Aurel Apparatus and method for high performance remote application gateway servers
US5619685A (en) 1994-11-04 1997-04-08 Ball Corporation Run-time dynamically adaptive computer process for facilitating communication between computer programs
US6272556B1 (en) 1996-07-01 2001-08-07 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for migrating a client-server application (#5)
ID25779A (id) 1998-11-18 2000-11-02 Saga Software Inc Sistem integrasi aplikasi perusahaan yang terdistribusi yang dapat diperluas
US20030018694A1 (en) 2000-09-01 2003-01-23 Shuang Chen System, method, uses, products, program products, and business methods for distributed internet and distributed network services over multi-tiered networks
US7155381B2 (en) 2001-03-12 2006-12-26 Sun Microsystems, Inc. Module for developing wireless device applications using an integrated emulator

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100877942B1 (ko) * 2003-02-26 2009-01-12 인터내셔널 비지네스 머신즈 코포레이션 동적 데이터 구동 애플리케이션 통합 어댑터

Also Published As

Publication number Publication date
EP1447749A3 (en) 2008-09-03
FI114581B (fi) 2004-11-15
FI20030240A (fi) 2004-08-18
CN100485609C (zh) 2009-05-06
KR100950212B1 (ko) 2010-03-29
FI20030240A0 (fi) 2003-02-17
EP1447749A2 (en) 2004-08-18
CN1523917A (zh) 2004-08-25
US7317912B2 (en) 2008-01-08
US20040192277A1 (en) 2004-09-30

Similar Documents

Publication Publication Date Title
KR100950212B1 (ko) 이동 통신 애플리케이션들을 테스트하기 위한 소프트웨어 개발 시스템, 상기 소프트웨어 개발 시스템에서 소프트웨어 구성요소들간에 데이터를 전송하는 방법, 상기 소프트웨어 개발 시스템을 포함하는 데이터 처리 장치, 및 상기 데이터 처리 장치를 제어하는 컴퓨터 프로그램이 수록된 컴퓨터 판독가능 저장 매체
US7257817B2 (en) Virtual network with adaptive dispatcher
CA2605116C (en) System and method of testing wireless component applications
US7899047B2 (en) Virtual network with adaptive dispatcher
US7526482B2 (en) System and method for enabling components on arbitrary networks to communicate
US20030009539A1 (en) Distributed object middleware connection method
US8554980B2 (en) Triggered notification
US8855583B2 (en) Communication system, communication terminal, server, communication method to be used therein and program therefor
US7191232B2 (en) Extendable provisioning mechanism for a service gateway
US8725864B2 (en) Communication management network system and method for managing a communication network
US20020069257A1 (en) Provisioning mechanism for a service gateway
CN113810448B (zh) 云服务方法、部署方法、装置、电子设备和存储介质
US7007094B1 (en) Object oriented communications system over the internet
EP1389389B1 (en) An open messaging gateway
US20040093405A1 (en) Support interface module bug submitter
CN108683540B (zh) 一种网络管理协议通道跨平台的轻量级实现方法及系统
CN116669134B (zh) Smf网元与upf网元适配方法、装置、设备及介质
KR100439761B1 (ko) 코바에서의 그룹 통신 시스템 및 방법
WO2006040991A1 (ja) 端末装置、サーバ装置、及びWebサービス提供システム
Lakay et al. SIP-based content development for wireless mobile devices
Mørkved Peer-to-peer programming with wireless devices
KR20070058097A (ko) 컨텍스트 지향 이벤트 서비스 시스템 및 그 방법
CN113709237A (zh) 远程连接方法、装置、设备、存储介质及程序产品
CN114095464A (zh) 即时消息实现方法和系统
Holmström End-to-end monitoring of mobile services

Legal Events

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

Payment date: 20130307

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140228

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20150226

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20160218

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20170220

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20180219

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20200218

Year of fee payment: 11