KR20010005989A - 입력 방법 편집자를 버츄얼 머신에 통합하는 방법 - Google Patents

입력 방법 편집자를 버츄얼 머신에 통합하는 방법 Download PDF

Info

Publication number
KR20010005989A
KR20010005989A KR1019997009067A KR19997009067A KR20010005989A KR 20010005989 A KR20010005989 A KR 20010005989A KR 1019997009067 A KR1019997009067 A KR 1019997009067A KR 19997009067 A KR19997009067 A KR 19997009067A KR 20010005989 A KR20010005989 A KR 20010005989A
Authority
KR
South Korea
Prior art keywords
input method
manager
interface
ime
keyboard
Prior art date
Application number
KR1019997009067A
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 KR20010005989A publication Critical patent/KR20010005989A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • 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/451Execution arrangements for user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

본 발명은 필요에 기본하여 IME용의 소오스 코드를 변경하여 사용하는 JAVA 버츄얼 머신을 제공하는 것이다. 본 발명은 또한, JAVA 양립성 IME를 창출하는 제어 인터페이스를 형성하는 것이다. 본 발명에 따르는 JAVA 기본 버츄얼 머신은 (1)JAVA 버츄얼 머신에 JAVA 기본 IME를 사용; (2)JAVA 기본 IME를 라이팅(writing); (3)시스템 IME에 JAVA 버츄얼 머신을 통합 하는, 3가지 와 관련하여 기능적으로 IME를 지원하는 것이다. 버츄얼 머신은 윈도우즈 관리자, 입력 방법 관리자, 일 이상의 IME 및/또는 키보드 드라이버(KBDs) 및 콤포넌트를 구비하는 것이다. 구성요소는 일반적으로 IME에 의해 복귀되는 구성 문자를 사용자가 처리하는 것을 허용하는 사용자 인터페이스를 공급하는 것이다. 사용자 정의 IMEs 와 구성요소를 수용하여, 버츄얼 머신은 IME 와 구성요소가 서로 통신하고 그리고 버츄얼 머신의 다른 요소 즉, 윈도우즈 관리자 와 IMM이 서로 통신하도록 허용하는 인터페이스의 정의된 세트를 제공하는 것이다. 이러한 정의된 인터페이스는 시스템 개발자가 IME의 기능성 과 구성요소의 기능성을 변경하도록 허용하고 그리고 버츄얼 머신을 변경된 IME 와 구성요소에 통합하는 것을 허용하는 것이다. 특정하게는, 양립식 IME는 IMLI(Interface Method Listener Interface)로서 공지된 인터페이스를 제공하는 것이다. IMM은 IMLI로서 공지된 인터페이스를 제공하는 것이다. 윈도우즈 관리자는 IMCI(Input Method Callback Interface)로서 공지된 인터페이스를 제공한다. 그리고 상기 구성요소는 IMMSI(Input Method Message Listener Interface)로서 공지된 인터페이스를 제공한다. 양립성 IME는 IMLI를 제공하는 IME를 라이팅하여 창출되는 것이다. 즉, IMLI를 제공하는 IME의 창출은, 본 발명에 의거 구조된 버츄얼 머신과 양립할 수 있는 IME를 창출하기에 필요충분한 것이다.

Description

입력 방법 편집자를 버츄얼 머신에 통합하는 방법{METHOD FOR INTEGRATING A VIRTUAL MACHINE WITH INPUT METHOD EDITORS}
인터넷에 제공되는 글로벌 접속성은 세계적 소프트웨어 제품의 필요성을 증가시킬 것이고 그리고 국제적인 응용 시에 부가적인 요구가 있을 것이다. 예를 들면, 인터넷 상에서 배급 및 운영되는 응용은 운용시간에서 사용자 언어를 채택할 필요성이 있을 것이다. 다른 응용은 다국어로 있을 필요성 과 다른 언어의 조합을 지원할 필요가 있을 것이다. JAVA인 플래폼-포터블 프로그램 언어는, 국제적으로 지원을 하도록 설계되어진 것이다. JAVA 의 초기 문자 타입은, 암호 기재 언어요소(encoding written language elements)용으로 국제적 표준인 유니코드(Unicode)에 기본하는 것이다.
JAVA가 유니코드 기호열용 지원체제를 구비하고 있다 하더라도, 대다수 텍스트 편집기는 DBCS(double-byte character set)를 사용하고 그리고 대다수 텍스트 파일은 유니코드 기호열 보다 나은 DBCS기호열을 함유한다. DBCS 기호열을 함유한 텍스트 파일용으로, 소오스 파일은 콤파일 시에 유니코드로 변환되어야 한다. 또한, DBCS 기호열은 읽기 및 쓰기 조작 중에 유니코드로 변환되어야 한다. JAVA용 마이크로소프트 시스템 개발 툴은 DBCS 엔코딩 및 마이크로소프트 윈도우즈 공급원용 지원체계로 JAVA의 국제적 이점을 향상시킨 것이다.
특정하게는, 클래스 파일로 소오스 코드를 콤파일 할 시에, 마이크로소프트 JAVA 콤파일러(JVC)가 소오스 코드 파일에 DBCS 문자 기호열을 유니코드로 전환하는 것이다. 유니코드-인에이블 JAVA 지원 체계(예를 들면, 마이크로소프트 인터넷 익스플로러에 지원 체계, 버젼 3.0)를 가진 브라우저가 상기 클래스 파일을 운영하면, 문자 기호열은 올바르게 나타나게 될 것이다. 또한, 마이크로소프트 버츄얼 머신은 시스템 개발자가 DBCS 와 유니코드 사이에서 텍스트 기호열을 변환하는 JAVA 기본 프로그램을 쓰는 것(to write)을 허용하는 것이다.
입력 방법 편집기(IME: input method editor)는 컴퓨터 사용자가 표준 키보드를 사용하는 일본 간지 문자와 같은 복합 문자 및 심볼을 입력하는 것을 허용하는 프로그램 이다. 마이크로소프트 윈도우즈의 국제적 버젼은 일본어, 한국어, 원 중국어, 및 약식된 중국어 와 같은 비라틴 알파벳을 사용하는 언어를 가진 지역용의 시스템 IME를 제공한다. IME는 또한 러시아어, 아랍어, 헤브리아어 및, 그와 같은 종류의 다른 언어용으로도 개발되어질 수 있을 것이다.
현재, IME소오스 코드는 필요한 기본 바탕에서 시스템 개발자에 의해 변경될 수 없는 것이다. 일반적으로 활용 가능한 IME소오스 코드 변경을 만드는 것은 다른 운영 시스템을 사용하는 플래폼의 많은 다른 타입에서 IME가 실행된다는 사실로 인해서 곤란한 실정이다. 실질적으로, IME와 상호 동작을 가져야 하는 모든 가능한 운영 시스템의 업데이트 예측으로 해결이 되지는 않는다.
따라서, 필요에 기본하여 각 개발자가 IME소오스 코드를 개조하는 것을 허용하는 플래폼-포터블 버츄얼 머신의 필요가 있다. 특히, 현존 시스템 IME와 같은 JAVA 기본 IME를 호스트 하는 JAVA 이용자용 IME지원체계를 제공하는 시스템에 필요가 있다는 것이다.
본 발명은 확장 키보드 편집기(extended keyboard editors)에 관한 것이며, 특히 일본어, 중국어 그리고 한국어를 포함하는 비라틴 언어에서의 필기체 표의문자 와 같은 구성 문자를 창출하는 입력방법 편집기(input method editors)를 플래폼-포터블 버츄얼 머신(platform-portable virtual machine)에 통합하는 방법에 관한 것이다.
도 1은 본 발명의 예를든 실시예에 적합한 운영 환경을 제공하는 퍼스널 컴퓨터의 개략적 블록 다이어그램.
도 2는 복수 입력 방법 편집자 와 키보드 드라이버가 운영 시스템에 합체된 플래폼-포터블 버츄얼 머신과 함께 동작하는 운영 시스템을 설명하는 개략적 블록 다이어그램.
도 3은 도 2의 버츄얼 머신 내에 윈도우즈 관리자를 운영하는 제 1루틴을 설명하는 논리 흐름 다이어그램.
도 4는 도 2의 버츄얼 머신 내에 윈도우즈 관리자를 운영하는 제 2루틴을 설명하는 논리 흐름 다이어그램.
도 5는 도 2의 버츄얼 머신 내에 입력 방법 관리자를 운영하는 루틴을 설명하는 논리 흐름 다이어그램.
도 6은 본 발명의 실시예에 따르는 입력 방법 편집자용 인터페이스를 설명하는 개략적 블록 다이어그램.
도 7은 본 발명의 실시예에 따르는 입력 방법 관리자용 인터페이스를 설명하는 개략적 블록 다이어그램.
도 8은 본 발명의 실시예에 따르는 윈도우즈 관리자용 인터페이스를 설명하는 개략적 블록 다이어그램.
도 9는 본 발명의 실시예에 따르는 구성요소용 인터페이스를 설명하는 개략적 블록 다이어그램.
도 10a는 키보드 명령을 처리하는 종래 기술 방법을 설명하는 개략적 블록 다이어그램.
도 10b는 입력 방법 편집자를 실행하는 종래 기술을 설명하는 개략적 블록 다이어그램.
도 11은 본 발명의 실시예에 따르는 시스템 입력 방법 편집자를 지원하는 버츄얼 머신을 설명하는 개략적 블록 다이어그램.
도 12는 본 발명의 실시예에 따르는 입력 방법 편집자를 실행하는 버츄얼 머신을 설명하는 개략적 블록 다이어그램.
도 13은 본 발명의 실시예에 따르는 시스템 입력 방법 편집자를 호스팅(hosting)하는 버츄얼 머신을 설명하는 개략적 블록 다이어그램.
본 발명은 일 개 이상의 IME를 JAVA 버츄얼 머신에 통합하여 필요한 기본적 상태에서 IME 소오스 코드를 개인 개발자가 변경할 수 있는 플래폼 포터블 버츄얼 머신에 필요한 것을 제공하는 것이다. JAVA 프로그래밍 환경은 다른 운영 시스템을 사용하는 플래폼의 넓은 가변성으로 우호적으로 이행되는 것이다. 따라서, 시스템 개발자는 다른 운영 시스템을 사용하는 플래폼의 넓은 가변성으로 IME 소오스 코드를 변경하는데 JAVA 버츄얼 머신을 사용하는 것이다. 또한, 일 플래폼에서 변경된 IME는 다른 운영 시스템을 사용하는 다른 플래폼에 포트(port)될 수 있을 것이다. 따라서, 본 발명은 필요한 기본적 상태에서 IME 소오스 코드를 개별 개발자가 변경할 수 있는 플래폼-포터블 버츄얼 머신을 제공하는 것이다.
본 발명에 따르는 JAVA 기본 버츄얼 머신은 (1)JAVA 버츄얼 머신에 JAVA 기본 IME를 사용; (2)JAVA 기본 IME를 라이팅(writing); (3)시스템 IME에 JAVA 버츄얼 머신을 통합 하는, 3가지 와 관련하여 기능적으로 IME를 지원하는 것이다. 버츄얼 머신은 윈도우즈 관리자, 입력 방법 관리자, 일 이상의 IME 및/또는 키보드 드라이버(KBDs) 및 구성요소를 구비하는 것이다. 또한, 버츄얼 머신은 시스템 IME을 버츄어 머신에 통합하는 시스템 IME 브리지 와, 시스템 KBD를 버츄얼 머신에 통합하는 시스템 KBD 브리지 를 구비할 수도 있는 것이다. 윈도우즈 관리자는 운영 시스템 과 버츄얼 머신 간에 게이트웨이로서 역활을 한다. IMM(input method manager)은 윈도우즈 관리자 와 복수 IME 와 KBD 사이에 라우터(router)로서 역활을 한다. IME는 유니코드 키보드 명령에 의해 인덱스되는 구성 문자의 보기 테이블을 구비하는 것이다. 구성요소는 일반적으로 IME에 의해 복귀되는 구성 문자를 사용자가 처리하는 것을 허용하는 사용자 인터페이스를 공급하는 것이다.
사용자 정의 IMEs 와 구성요소를 수용하여, 버츄얼 머신은 IME 와 구성요소가 서로 통신하고 그리고 버츄얼 머신의 다른 요소 즉, 윈도우즈 관리자 와 IMM이 서로 통신하도록 허용하는 인터페이스의 정의된 세트를 제공하는 것이다. 이러한 정의된 인터페이스는 시스템 개발자가 IME의 기능성 과 구성요소의 기능성을 변경하도록 허용하고 그리고 버츄얼 머신을 변경된 IME 와 구성요소에 통합하는 것을 허용하는 것이다. 특정하게는, 양립식 IME는 IMLI(Interface Method Listener Interface)로서 공지된 인터페이스를 제공하는 것이다. IMM은 IMLI로서 공지된 인터페이스를 제공하는 것이다. 윈도우즈 관리자는 IMCI(Input Method Callback Interface)로서 공지된 인터페이스를 제공한다. 그리고 상기 구성요소는 IMMSI(Input Method Message Listener Interface)로서 공지된 인터페이스를 제공한다. 양립성 IME는 IMLI를 제공하는 IME를 라이팅하여 창출되는 것이다. 즉, IMLI를 제공하는 IME의 창출은, 본 발명에 의거 구조된 버츄얼 머신과 양립할 수 있는 IME를 창출하기에 필요충분한 것이다.
일반적으로, 본 발명은 키보드, 디스플레이 디바이스, 처리 유닛, 및 처리 유닛을 조작하는 운영 시스템을 구비하는 컴퓨터 시스템에서 동작하는 플래폼-포터블 버츄얼 머신 이다. 처리 유닛에서도 동작하는 버츄얼 머신은 운영 시스템으로부터의 키보드 명령을 수신하는 윈도우즈 관리자를 구비하는 것이다. 입력 방법 관리자는 윈도우즈 관리자로부터의 키보드 명령을 수신한다. 입력 방법 편집자는 입력 방법 관리자로부터의 키보드 명령을 수신하여 캘리그래픽 표의문자의 요소 또는 캘리그래픽 표의문자 와 같은 구성 문자로 키보드 명령을 전환한다. 구성요소는 입력 방법 편집자로부터의 구성 문자를 수신하여 디스플레이 디바이스에 표시용으로 구성 문자를 만든다.
보다 특정하게는, 윈도우즈 관리자는 키보드 로부터 키보드 명령을 수신하여 입력 방법 관리자가 활성(active) 인지를 판단한다. 만일 입력 방법 관리자가 비활성 이면, 윈도우즈 관리자는 상기 구성요소으로 키보드 명령을 패스 한다. 만일 입력 방법 관리자가 활성이면, 다른 측에서, 윈도우 관리자가 키보드 명령을 입력 방법 관리자에 패스하여 입력 방법 관리자로부터의 복귀 메시지를 수신한다. 만일 입력 방법 관리자가 키보드 메시지를 처리할 수 없으면, 윈도우즈 관리자로 "FALSE" 복귀 메시지가 복귀한다. 다음, 윈도우즈 관리자는 상기 구성요소으로 키보드 명령을 패스 한다. 다르게는, 입력 메시지 관리자는 키보드 명령을 처리하고 그리고 윈도우즈 관리자로 "TRUE"를 복귀한다.
입력 방법 관리자는 윈도우즈 관리자로부터의 키보드 명령을 수신하고 키보드 명령이 입력 방법 관리자로 향하는지를 판단한다. 입력 방법 관리자는, 만일 키보드 명령이 응신 입력 방법 관리자로 향한다면 키보드 명령에 응답한다. 예를 들어, 키보드 명령은 입력 방법 관리자가 현재 활성 입력 방법 편집자를 불활성으로 하게 하고 그리고 다른 한쪽 입력 방법 편집자를 활성으로 하게 할 수 있을 것이다. 만일 키보드 명령이 입력 방법 관리자로 향하지 않는다면, 입력 방법 관리자는 현재 활성인 입력 방법 편집자에 키보드 명령을 패스한다.
입력 방법 편집자는 입력 방법 관리자로부터의 키보드 명령을 수신하고 그리고 앞서 수신된 키보드 명령과 키보드 명령을 합성하여 혼합 기호열을 창출하는 것이다. 다음, 입력 방법 편집자는 혼합 기호열이 합성 문자에 대응하는지를 판단한다. 만일 합성 기호열이 합성 문자에 대응하면, 입력 방법 편집자는 합성 문자로 합성 기호열을 전환하고 그리고 윈도우즈 관리자로 합성 문자를 패스한다. 윈도우즈 관리자는 입력 방법 편집자로부터의 합성 문자를 수신하고 그리고 구성요소으로 합성 문자를 패스한다.
상기 구성요소는 윈도우즈 관리자로부터의 합성 문자를 수신하고, 디스플레이 디바이스에 사용자 인터페이스를 나타내고, 그리고 사용자 인터페이스와 관련하여 디스플레이 디바이스에 합성 문자를 나타낸다. 다음, 상기 구성요소는 사용자 인터페이스를 통하여 사용자 명령을 수신하고, 사용자 명령에 반응하여 합성 문자를 변경하고 그리고 사용자 인터페이스와 관련하여 디스플레이 디바이스에 변경된 합성 문자를 나타낸다.
또한, 컴퓨터 시스템은 처리 유닛에서 동작하는 시스템 입력 방법 편집자도 구비할 수 있고 그리고 버츄얼 머신도 윈도우즈 관리자 와 입력 방법 관리자를 시스템 입력 방법 편집자에 통합하는 입력 방법 편집자 브리지를 구비할 수 있을 것이다.
본 발명의 일 면에 따라서, 입력 방법 편집자는 키보드 명령을 다루도록 입력 방법 편집자를 지시하는 입력 방법 관리자로부터의 메시지를 수신하는 제 1 인터페이스 방법을 구비하는 인터페이스를 형성한다. 입력 방법 편집자 인터페이스는 또한, 입력 방법 편집자를 지시하는 입력 방법 관리자로부터의 메시지를 수신하여 활성화 하는 제 2 인터페이스 방법을 구비할 수 있는 것이다. 또한, 입력 방법 편집자 인터페이스는 또한 입력 방법 편집자를 지시하는 입력 방법 관리자로부터의 메시지를 수신하여 비활성화 하는 제 3 인터페이스 방법을 구비할 수 있는 것이다. 또한, 입력 방법 편집자 인터페이스는 메시지를 다루도록 입력 방법 편집자를 지시하는 윈도우즈 관리자로부터의 메시지를 수신하는 제 4 인터페이스 방법을 구비하는 것이다.
입력 방법 편집자 인터페이스는 또한 입력 방법 편집자를 지시하는 구성요소으로부터의 메시지를 수신하여 디스플레이 디바이스에 표시용 사용자 인터페이스를 나타나게 하는 제 5 인터페이스 방법도 구비할 수 있는 것이다. 입력 방법 편집자 인터페이스는 또한 디스플레이 디바이스에 표시하는 입력 방법에 의해 나타나게 되는 사용자 인터페이스의 크기를 한정하는 구성요소으로부터의 메시지를 수신하는 제 6 인터페이스 방법을 구비할 수 있는 것이다. 입력 방법 편집자 인터페이스는 또한 디스플레이 디바이스에 표시하는 입력 방법에 의해 나타나게 되는 사용자 인터페이스의 위치를 한정하는 구성요소으로부터의 메시지를 수신하는 제 7 인터페이스 방법을 구비할 수 있는 것이다.
본 발명의 다른 일 면에 의거, 입력 방법 관리자는 입력 방법 관리자를 지시하는 윈도우즈 관리자로부터의 메시지를 수신하여 제 1 입력 방법 편집자를 활성화하는 제 1 인터페이스 방법을 구비하는 인터페이스를 형성하는 것이다. 또한, 입력 방법 관리자는 입력 방법 관리자를 지시하는 윈도우즈 관리자로부터의 메시지를 수신하여 입력 방법 편집자의 등록 리스트로부터 제 2 입력 방법 편집자를 제거하는 제 2 인터페이스 방법을 구비할 수도 있는 것이다. 입력 방법 관리자는 입력 방법 관리자를 지시하는 윈도우즈 관리자로부터의 메시지를 수신하여 활성 입력 방법 편집자를 인식하는 제 3 인터페이스 방법도 구비할 수 있는 것이다. 입력 방법 관리자는 입력 방법 관리자를 지시하는 윈도우즈 관리자로부터의 메시지를 수신하여 등록된 입역 방법 편집기의 리스트를 열거하는 제 4 인터페이스 방법도 구비할 수 있는 것이다. 입력 방법 관리자는 입력 방법 관리자가 키보드 명령을 다루기를 요구하는 윈도우즈 관리자로부터의 메시지를 수신하는 제 5 인터페이스 방법을 구비할 수도 있는 것이다.
본 발명의 다른 면에 의거, 윈도우즈 관리자는 입력 방법 편집자로부터의 메시지를 수신하는 인터페이스 방법을 구비하는 인터페이스를 형성한다. 또한, 구성요소는 윈도우즈 관리자로부터의 메시지를 수신하는 인터페이스 방법을 구비하는 인터페이스를 형성하는 것이다.
본 발명은 이하에 기술되는 예를 든 실시예를 통한 설명으로 이해되며 그를 통하여 종래 기술의 결함을 해소하고 본 발명의 목적이 달성되는 것이다.
본 발명은 다음의 3가지: (1)JAVA 버츄얼 머신에 JAVA 기본 IME를 사용; (2)JAVA 기본 IME를 라이팅(writing); (3)시스템 IME에 JAVA 버츄얼 머신을 통합 하는 것과 관련하여 기능적으로 IME를 지원하는 버츄얼 머신에서 실시되는 것이다. 버츄얼 머신은 윈도우즈 관리자, 입력 방법 관리자(IMM), 일 이상의 JAVA 기본 IME, 일 이상의 JAVA 기본 키보드 드라이버(KBDs) 및, 구성요소를 구비하는 것이다. 또한, 버츄얼 머신은 시스템 IME을 버츄어 머신에 통합하는 시스템 IME 브리지 와, 시스템 KBD를 버츄얼 머신에 통합하는 시스템 KBD 브리지 를 구비할 수도 있는 것이다.
윈도우즈 관리자는 운영 시스템 과 버츄얼 머신 사이에서 게이트웨이로서 역활을 한다. 윈도우즈 관리자는, 표준 키보드에 의해 독특하게 인식될 수 있는 문자의 수를 증가하는 "CTRL+", "ALT+" 및 "CTRL ALT+"와 같은 혼합 키보드 명령 과 기능 명령을 구비하는 운영 시스템으로부터 키보드 명령을 수신한다. 윈도우즈 관리자는 키보드 명령을 표준 유니코드 포맷으로 전환하여 적절하게 구성요소으로 또는 IMM으로 유니코드 키보드 명령을 보낸다. 또한 윈도우즈 관리자는 IME에 의해 복귀되는 합성 문자를 수신하여 합성 문자를 표시용 구성요소 그리고 구성요소의 기능성으로 형성되는 바로서 사용자에 의한 부가적인 조작용 구성요소으로 보내진다. 윈도우즈 관리자는 또한 IME 메시지를 수신할 수 있고 그리고 구성요소으로 IME 메시지를 보낼 수 있는 것이다.
IMM은 복수 IME 및 KBD 와 윈도우즈 관리자 와의 사이에서 라우터(router)로서 역할을 하는 것이다. IMM은, 특정한 IME 또는 KBD를 사용자가 활성화 하는 것을 허용하는 토글 명령(toggle commands) 과 같은 임의적인 IMM 명령에 응답하는 것이다. IMM은 일반적으로 이전 활성(previously-active) IME 또는 KBD를 비활성으로 하고 그리고 지시된 IME 또는 KBD를 활성으로 하는 IMM 명령에 응답하는 것이다. 다음, IMM은, 다른 IMM 명령이 수신될 때까지 활성 IME 또는 KBD로 순차적으로 키보드 명령을 보낸다.
IME는 다양한 유니코드 키보드 명령에 의해 인덱스 되는 합성 문자의 룩업 테이블을 구비하는 것이다. IME는 WM_IME_CHAR 키보드 명령으로 공지된 유니코드 메시지를 수신하여 그들을 대응 합성 문자로 전환 한다. 표준 키보드에 의해 독특하게 인식될 수 있는 문자의 수를 일층 증가시키면, IME가 멀티플 키보드 명령에 기본된 합성 문자를 인덱스하는 구조로 될 수 있다. 즉, IME는 WM_IME_CHAR 키보드 명령의 수를 합성하여 미리 정의된 합성 문자에 대응하는 유니코드 혼합 기호열을 형성할 수 있는 것이다. 멀티플-키보드 명령 혼합 기호열의 사용은 IME가, 일본어, 한국어, 및 중국어 와 같은 비라틴계 캘리그레픽 표의문자를 생성하는데 매우 유용성이 있는 수천가지의 개별 합성 문자의 인덱스를 허용하는 것이다. 다음, IME는, 사용자에 의한 부가적인 조작에 적합한 구성요소으로 합성 문자를 패스 하는 윈도우즈 관리자에 합성 문자를 패스 하는 것이다.
또한, IME는 IME 메시지로서 공지된 지시를 윈도우즈 관리자에게 패스하는 것이다. 일반적으로 윈도우즈 관리자는 IME 메시지를 구성요소으로 패스 한다. IME 메시지는 일반적으로 IME가 구성요소 과 상호작용하도록 허용하는 "begin composed character" 그리고 "end composed character"과 같은 혼합 메시지를 구비하는 것이다. 상기 구성요소 및 IME는 필요한 기본 상태에서 많은 다른 IME 메시지를 다루도록 시스템 개발자에 의해 구성될 수 있는 것이다. JAVA 버츄얼 머신은 구성요소 과 IME가 통신할 수 있는 메카니즘을 제공하지만, JAVA 버츄얼 머신은 구성요소 또는 IME의 기능성을 강요할 수는 없는 것이다. JAVA 버츄얼 머신은, 구성요소 과 IME 사이에서 통신될 수 있는 IME 메시지의 타입 또는 구조를 강요할 수 없는 것이다. 따라서, 특정한 IME 메시지는 버츄얼 머신에 의해 결정되지 않지만 필요에 기본한 상태에서 개별 시스템 개발자에 의해 형성되도록 양호하게 남겨있는 것이다. 버츄얼 머신의 기능은 사용자 정의 구성요소과 사용자 정의 IME를 통합하는 표준화된 비클(standardized vehicle)을 제공하는 것이다.
구성요소 또는 IME가 IME의 드로잉 공간을 제어하는 구조로 있을 지라도, 일반적으로 상기 구성요소는 IME에 의해 복귀되는 캘리그래픽 표의문자의 요소 또는 캘리그래픽 표의문자 와 같은 합성 문자를 사용자가 변경하는 것을 허용하는 사용자 인터페이스를 만든다. 물론, 특정한 사용자 정의 IME 및 구성요소의 기능성은 플래폼에서 플래폼으로 그리고 사용자로부터 사용자로 변경될 수 있을 것이다. 상기 사용자 정의 IME 와 구성요소를 수용하도록, 버츄얼 머신은, IME 와 구성요소가 서로 통신을 허용하고 그리고 버츄얼 머신의 다른 요소가 즉, 윈도우즈 관리자 와 IMM이 서로 통신을 허용하는 미리 정의된 세트의 인터페이스를 제공한다. 미리 정의된 인터페이스는 시스템 개발자가 IME 와 구성요소의 기능성을 변경하고 그리고 버츄얼 머신이 변경된 IME 와 구성요소에 합체하는 것을 허용한다.
따라서, 본 발명의 예를 든 실시예에 중심은 버츄얼 머신의 요소가 서로 통신하도록 허용하는 일 세트의 함께 동작하는 인터페이스를 형성하는 것이다. 양립성 IME는 IMLI(Interface Method Listener Interface)로서 공지된 인터페이스를 제공한다. IMLI는 양호하게 8개 인터페이스 방법을 구비하는 것이다. 즉, 핸들 키-이벤트(예를 들면, 키보드 명령)에 대응하여 IME가 시도하도록 지시; 핸들 IME 메시지-IME가 IME 메시지를 다루도록 지시; 비져블 구성요소 설정(Set Visible Component)-IME의 드로잉 공간을 모듈이 제어하는 IME를 말함; 위치 설정(Set Position)-특정 구역에서 드로잉을 IME가 시작하도록 지시; 크기 설정(Set Size)-IME가 드로우 되는 그래픽 이미지의 사이즈를 세트; 페인트-IME가 문자를 드로잉 개시하도록 지시; 활성(Activate)-순차적 메시지에 IME가 응답하도록 지시; 그리고 비활성(Deactivate)-순차적 메시지(활성 제외)에 IME가 응답하지 않도록 지시.
IMM은 IMLI(Interface Method Listener Interface)로서 공지된 인터페이스를 제공한다. IMLI(Interface Method Listener Interface)는 양호하게 5개 인터페이스 방법을 구비하는 것이다. 즉, 입력방법 획득(Get Input Method)-IMM이 활성 IME를 인식하도록 지시; 수 입력 방법 획득(Get Number Input Methods)-IMM이 등록된 IME를 열거하도록 지시; 입력 방법 제거(Remove Input Method)-상기 IMM에게 IME의 등록 리스로부터 IMM을 제거하도록 지시; 입력 방법 설정(Set Input Method)-IMM에게 특정 IME를 활성화 하도록 지시; 및 키 처리(Handled Key)-윈도우즈 관리자가 IMM으로 키보드 명령이 패스하도록 허용 하고 그리고 IMM이 키보드 명령을 수용하는지 또는 거절하는지를 나타내는 IMM으로부터의 복귀 메시지를 획득.
윈도우즈 관리자는 IMCI(Input Method Callback Interface)로서 공지된 인터페이스를 제공한다. IMCI(Input Method Callback Interface)는 양호하게 2개 인터페이스 방법을 가지는 것이다. 즉, IME Char 처리(Handle IME Char)-IME에 의해 캘리그래픽 표의문자 또는 캘리그래픽 표의문자의 요소 와 같은 합성 문자를 윈도우즈 관리자에게 복귀하는데 사용; 그리고 IME 메시지 처리(Handle IME Message)-IME에 의해 IME 메시지가 윈도우즈 관리자로 패스하는데 사용.
상기 구성요소는 IMMLI(Input Method Message Listener Interface)로서 공지된 인터페이스를 제공한다. IMMLI(Input Method Message Listener Interface)는 양호하게 일 인터페이스 방법을 가진다. 즉, IME메시지 처리(Handle IME Message)-윈도우즈 관리자가 합성 문자를 패스하는데 그리고 IME메시지가 구성요소를 패스하는데 사용.
양립성 IME는 IMLI(Input Method Listener Interface)를 제공하는 IME를 라이팅(writing)하여 창출된다. 즉, IMLI를 제공하는 IME의 창출은, 본 발명에 의거 구조된 버츄얼 머신과 양립할 수 있는 IME를 창출하기에 필요충분한 것이다. 또한, 버츄얼 머신은 시스템 IME을 버츄어 머신에 통합하는 시스템 IME 브리지도 구비하는 것이다. 시스템 IME 브리지는 플래그(flag) 또는 다른 명령 이름 인식자(identifier)를 IME 메시지에 삽입하여 시스템 IME로부터 운영 시스템으로의 원하지 않는 피드백을 방지하는 것이다. 유사하게, 버츄얼 머신은 또한 시스템 KBD를 버츄얼 머신에 통합하는 시스템 KBD 브리지 를 구비할 수도 있는 것이다.
JAVA 기본 IME는 보다 많은 융통성을 제공하며 그리고 시스템 IME 보다 양호하게 제어되는 것이다. 예를 들면, JAVA 기본 IME는 임의적 버젼의 윈도우즈에 사용될 수 있는 것이다. 따라서, 다른 언어에 기본하는 크로스-플래폼 JAVA 기본 IME는, 단일 JAVA응용으로 동시 발생적으로 활성화 될 수 있는 것이다. JAVA 기본 IME는 애플렛(applets)으로 인터넷으로부터 팩키지 되어 다운로드 받거나 또는 사용자의 자율적인 판단으로 다운로드 받을 수 있는 것이다. 응용은 구성요소, 상태 및 후보 윈도우즈(candidate windows) 와 같은 JAVA IME 인터페이스 요소를 제어할 수 있는 것이다. 정상적 JAVA에 동반하는 시큐어 JAVA 기본 IME는 JAVA 응용으로 "sandbox"에서 지배 운영된다.
com.ms.util 팩키지는 JAVA 기본 IME용 베이스 클래스인 IMLI 클래스를 함유한다. 이러한 클래스에 기본한 IME는 IMM에 의해 인정될 것이다. 또한, 버츄얼 머신은 JAVA 기본 IME와 상호 교환 가능하게 COM랩퍼(wrapper)에 둘러싸인 현존하는 시스템 IME를 지원하는 것이다. 그런데, 여기에는 시스템 IME를 사용하는 것과 관련하여 약간의 제한이 있다. JAVA 기본 IME는 JAVA 버츄어러 머신이 설치되면서 지역화되는 시스템이 언어의 종류를 무시하고 임의적 시스템에 사용될 수 있는 것이다. 다른 한편에서, 시스템 IME는 호스트 시스템에 IMM에 의해 지원되는 IME로 제한된다. 예를 들면, 한국어 시스템 IME는 그리스어용으로 지역화된 윈도우즈 95의 버젼과 접속되어 운영될 수 없는 것이다.
시스템 IME는 com.ms.util 팩키지에 시스템 IME 클래스에 지원을 받는다. 시스템 IME 클래스는 시스템 IME와 직접 통신하도록 COM 객체를 매립하여 IML(Input Method Listener)인터페이스를 제공한다. COM 객체는 IME로부터 키보드 명령 메시지를 수신하고 윈도우즈 관리자에게 그리고 구성요소에게 합성분(composition)의 결과를 전달한다.
(문: 이러한 응용에 앞서 공지된 com.ms.util 팩키지 인가 또는 이러한 타입의 응용 표준인가? 우리는 API로부터의 다음의 정보가 이러한 응용에서 상세하게 기술되지 않았음에 주목: "About com.ms.util.InputMethod," "Class IME Composition Message," "Class IMENotifyMessage," 및 "Class InputMethodMessage." 이러한 정보가 본 발명을 이해하고 실행하는데 필요한가?)
이하, 첨부 도면을 참고로 본 발명의 예를 든 실시예를 설명한다. 도 1은 본 발명의 개시된 실시예의 운영 환경을 설명하는 도면이다.
예로서의 운영환경
도 1 및 다음의 설명은 본 발명을 실행할 수 있는 적절한 컴퓨팅 환경의 일반적 설명을 간략하게 제공하는 것이다. 본 발명이 퍼스날 컴퓨터와 관련된 운영 시스템에서 동작하는 일반적 응용 프로그램 과 관계하여 설명되었지만, 당 분야의 기술인은 다른 프로그램 모듈과 협력하여 제공될 수도 있는 것임을 이해할 수 있을 것이다. 일반적으로, 프로그램 모듈은 특정한 테스크를 수행하거나 또는 특정한 추상적 데이터 형을 제공하는 루틴, 프로그램, 구성요소, 데이타 구조 등,등을 구비하는 것이다. 또한, 당 분야의 기술인은 본 발명이, 핸드 유지 디바이스(hand-held devices), 멀티프로세서 시스템, 마이크로프로세서 기본 또는 프로그램 가능한 소비 전자체(programmable consumer electronics), 미니 컴퓨터, 메인프레임 컴퓨터, 및 그와 같은 류의 것을 구비하는 다른 컴퓨터 시스템 구조체에서 실행될 수 있는 것임을 예견할 수 있을 것이다. 본 발명은 또한 통신망을 통해 링크되는 원격 처기 디바이스에 의해 과제가 수행되는 지점에 분포된 컴퓨팅 환경에서도 실행될 수 있는 것이다. 임의적으로 분포된 컴퓨팅 환경에서, 프로그램 모듈은 지역 및 원격 메모리 저장 디바이스(local and remote memory storage devices) 모두에 배치될 수 있는 것이다.
도 1를 참고로, 본 발명을 이행하는 예를 든 시스템은 프로세싱 유닛(21), 시스템 메모리(22), 및 프로세싱 유닛(21)에 시스템 메모리를 결합시키는 시스템 버스(23)를 구비하는 종래 퍼스널 컴퓨터(20)를 포함하는 것이다. 시스템 메모리(27)는 ROM(Read Only Memory)(24) 및 RAM(Random Access Memory)(25)을 구비하는 것이다. 스타트-업 도중에서와 같이 퍼스널 컴퓨터(20) 내에 요소 사이에 정보를 전달하는데 도움을 주는 베직 루틴(basic routines)을 가진 BIOS(basic input/output system)(26)는 ROM(24)에 저장된다. 퍼스널 컴퓨터(20)는 하드 디스크 드라이브(27), 예를 들어 분리식 디스크(29)로부터 판독 또는 기록을 하는 마그네틱 디스크 드라이브(28), 그리고 예를 들어 CD-ROM디스크(31)를 판독하는 또는 다른 광 매체로부터 판독 또는 기록하는 광 디스크 드라이브(30)를 부가로 포함하는 것이다. 하드 디스크 드라이브(27), 마그네틱 디스크 드라이브(28), 및 광 디스크 드라이브(30)는, 하드 디스크 드라이브 인터페이스(32), 마그네틱 디스크 드라이브 인터페이스(33), 및 광 드라이브 인터페이스(34)에 의해 각각 시스템 버스(23)에 접속된다. 드라이브 및 그 관련 컴퓨터-리드어블 매체는 퍼스널 컴퓨터(20)용의 비휘발성 저장부를 제공하는 것이다. 상기 컴퓨터-리드어블 매체의 설명이 하드 디스크, 분리식 마그네틱 디스크 및 CD-ROM디스크를 언급할 지라도, 이것은 마그네틱 카세트, 플래시 메모리 카드, 디지탈 비디오 디스크, 베르누이 카트리지 및 그와 같은 종류의 컴퓨터에 의해 판독될 수 있는 다른 타입의 매체가 예를 든 운영 환경에서 사용될 수도 있음을 당 분야에서의 기술인은 예견할 수 있을 것이다.
다스의 프로그램 모듈은 운영 시스템(35), 일 개 이상의 응용 프로그램(36), 다른 프로그래 모듈(37), 및 프로그램 데이타(38)를 구비하는 RAM(25)과 드라이브에 저장될 수 있는 것이다. 특정하게, 다른 프로그램 모듈(37)의 하나는 도 2 내지 도 13을 참고로 이하에 설명되는 본 발명의 임의적 실시예를 구비하는 JAVA버츄얼 머신(100) 이다. 선 마이크로시스템의 등록상표인 JAVA는 당 기술분야에서 공지된 멀티 플래폼 프로그래밍 언어로 참고되는 것이다. JAVA 버츄얼 머신(100)의 사용자는 키보드(40) 및 마우스(42)와 같은 포인팅 디바이스를 통해서 퍼스널 컴퓨터(20)에 명령 및 정보를 유입시킬 수 있는 것이다. 다른 입력 디바이스(도시 않음)는 마이크로폰, 조이스틱, 게임 패드, 위성 안테나(satellite dish),스캐너 등, 등을 구비할 수 있는 것이다. 이들 및 다른 입력 디바이스는 시스템 버스에 결합되는 시리얼 포트 인터페이스(46)를 통해 프로세싱 유닛(21)에 주로 접속되지만, 게임 포트 또는 USB(universal serial bus)와 같은 다른 인터페이스에 의해 접속될 수도 있는 것이다. 디스플레이 디바이스의 모니터(47) 또는 다른 타입의 것은 비디오 어댑터(48)와 같은 인터페이스를 통해 시스템 버스(23)에도 접속되는 것이다. 모니터에 더하여, 일반적으로 퍼스널 컴퓨터는 스피커 또는 프린터 와 같은 다른 주변 출력 기구(도시 않음)을 구비하는 것이다.
퍼스널 컴퓨터(20)는 원격 컴퓨터(49)와 같은 일 개 이상의 원격 컴퓨터에 논리적 접속되어 사용하는 네트워크 환경에서 동작할 수 있는 것이다. 원격 컴퓨터(49)는 서버, 라우터(router), 피어(peer) 디바이스, 또는 다른 공동 네트워크 노드(node)이고 그리고 일반적으로 메모리 저장 디바이스(50)가 도 1에서 설명되어져 있지만 퍼스널 컴퓨터(20)에 대해 기술된 많은 요소를 구비하는 것이다. 도 1에서 기재된 논리적 접속체는 LAN(local area network)(51) 및 WAN(wide area network)(52)을 구비하는 것이다. 상기 네트워킹 환경은, 오피스, 엔터프라이즈-와이드(enterprise-wide) 컴퓨터 네트워크, 실내통신망(intranets) 및 인터넷에 공통장소 이다.
LAN네트워킹 환경에서의 사용 시에, 퍼스널 컴퓨터(20)는 네트워크 인터페이스(53)를 통해 LAN(51)에 접속된다. WAN 네트워킹 환경에서 사용 시에, 퍼스널 컴퓨터(20)는 일반적으로 인터넷 과 같이, WAN(52)에 걸쳐 통신을 확립시키는 모뎀(54) 또는 다른 수단을 구비하는 것이다. 내부 또는 외부에 있을 수 있는 모뎀(54)은 시리얼 포트 인터페이스(46)를 통해 시스템 버스(23)에 접속된다. 네트워크 환경에서는, 퍼스널 컴퓨터(20) 또는 그 부분에 관계하여 나타낸 프로그램 모듈이 원격 메모리 저장 디바이스에 저장될 수 있는 것이다. 나타낸 네트워크 접속은 예를 든 것이고 그리고 컴퓨터 사이에 통신 링크를 확립시키는 다른 수단이 사용될 수도 있는 것이다.
실시예의 운영
도 2는, IME/F(112, 114)로 나타낸 복수 JAVA 기본 입력 방법 편집자 와 KBD/J(118, 120)으로 나타낸 복수 JAVA 기본 키보드 드라이버를 구비하는 JAVA 버츄얼 머신(100)과 함께 동작하는 운영 시스템(35)을 설명하는 개략적 블록 다이어그램이다. 캘리그래픽 표의문자에 기록된 문서의 입안자는 미리 정의된 키보드 명령을 키보드(40) 또는 일부 다른 적절한 입력 디바이스 형태에 유입하여 캘리그래픽 표의문자를 창출한다. 운영 시스템(35)은 상기 키보드 명령을 키보드 명령으로 전환하는 키보드 드라이버(102)에서 키보드 명령을 수신한다. 각각의 키스트로크는 개별적으로 다루어져 해석되는 3개 키보드 명령으로 전환된다. 즉, WM_KEYDOWN-키가 담입 되어져 있는 상태를 지시; WM_CHAR-일반적으로 담입 키와 관련된 ASCII코드 또는 값; 그리고 WM_KEYUP-키가 담입 해제되어져 있는 상태를 지시. 이들 키보드 명령은 JAVA 버츄얼 머신(100)에 전해진다.
키보드 명령은 JAVA 버츄얼 머신(100)의 다른 구성요소에 의해 이해되는 유니코드 키보드 명령으로 명령을 전환하는 JAVA 윈도우즈 관리자(108)에 의해 개시적으로 수신된다. 윈도우즈 관리자(108)는 일반적으로 멀티 키 콤플렉스 키보드 명령을 구비하는 키보드 명령 구분자로서 역할을 하는 WM_KEYDOWN 및 WM_KEYUP키보드 명령을 소비한다. 윈도우즈 관리자(108)는 일반적으로 복수 IME 와 KBD 그리고 윈도우즈 구성요소(108)와의 사이에 라우터로서 동작을 하는 IMM(110)에 WM_CHAR키보드 명령의 유니코드 전환부를 패스한다.
IME는 일반적으로 중국어, 한국어, 및 일본어 와 같은 비라틴계 언어에서 합성 문자를 창출하는데 사용된다. IME는 개별적으로 구성된 문자를 정의하는 것이 실질적으로 상당히 복잡하고 그리고 멀티플 키보드 명령을 자주 사용하는 것이다. 또한, 일반적으로 IME는 IME에 의해 발생되는 합성 문자를 사용자가 부가적으로 조작할 수 있게 하는 구성요소와 접속하여 동작하는 것이다. KBD는 프랑스어,독일어, 및 스페인어 와 같은 라틴계 언어에서의 문자를 창출하는데 사용되는 상당히 간단한 번역기 이다. IME와 달리, KBD는 일반적으로 개별적인 합성 문자를 형성하는데 단일 키보드 명령 및 혼합 키보드 명령(예를 들면 동시적으로 담입되는 멀티플 키)을 사용하는 것이다. KBD는 일반적으로 구성요소 사용자 인터페이스에 의해 제공되는 기능성을 필요로 하지 않는다. 그럼에도 불구하고, KBD는 IME와 일반적으로 관련된 모든 복잡성 및 구성요소 사용자 인터페이스 기능성이 개발되어져야 한다.
IMM(110)은 등록된 IME 및 KBD의 리스트를 유지하고 그리고 등록된 리스트에 IME 및 KBD를 활성적으로 하고 비활성적으로 하는 동작성이 있는 것이다. 예를 들면, IME/J(112)로서 나타낸 제 1 JAVA 베이스 IME는 중국어에서의 캘리그래픽 표의문자를 생성하는 동작성이 있는 것이다. IME/J(114)로서 나타낸 제 2 JAVA 베이스 IME는 일본어에서의 캘리그래픽 표의문자를 생성하는 동작성이 있는 것이다. 또한, KBD/J(120)로서 나타낸 제 2 JAVA 베이스 KBD는 독일어 또는 스페인어를 기록하는 동작성이 있는 것이다. 명료하게 하고자, 다음의 기술은 IME 만을 참고로 한다. 그러나, KBD도 유사한 동작으로 구현되는 것으로 이해되어야 한다.
IMM(110)은 IME(112, 114, 116)으로 나타낸 복수 IME와 윈도우즈 관리자(108) 사이에 라우터로서 역할을 한다. IME/J(112, 114)는 JAVA 베이스 IME를 나타내고 그리고 IME/S(116)는 시스템 IME를 나타낸다. IME(112, 114, 116)사이에서 선택하여, IMM(110)이 사용자가 특정한 IME를 선택하도록 허용하는 임의적으로 미리 정의된 IMM명령(예를 들면, 토글 명령)에 응답하는 것이다. IMM(110)은 이전 활성 IME를 비활성으로 하고 그리고 지시된 IME를 활성으로 하는 IMM명령에 응답하는 것이다. 다음, IMM(110)은 다른 IMM명령이 접수될 때까지 순차적으로 이벤트를 활성부로 보낸다. non-IMM 명령을 위해서, IMM(110)은 윈도우즈 관리자(108)로부터 활성 IME로 명령을 보낸다. 일반적으로 IMM(108)으로부터 활성 IME로 패스되는 명령은 WM_CHAR 키보드 명령의 유니코드 번역부를 구비하는 것이다. IMM(110)로부터 활성 IME로 패스되는 키보드 명령은 또한 IME를 제어하는 기능 명령도 구비할 수 있는 것이다.
JAVA 베이스 IME/J(112, 114)에 의한 IMLI(Input Method Listener Interface)의 구현은 JAVA 구성요소(108)가 IME와의 적절한 상호 작용을 허용하기에 필요 충분한 것이다. 따라서, JAVA 버츄얼 머신 SDK(System Development Kit)의 구조에 의거, JAVA 개발자에 의해 창출되는 IME/J(112, 114)는, 일반적으로 버츄얼 머신(100)을 통해서 운영 시스템(35)과 통신하도록 프로그램된다. 그러나, 버츄얼 머신(100)을 고려하기 전에 또는 고려하지 않고 창출되어져 있을 수 있는 운영 시스템 베이스 IME/S(116)는, 임의적 환경 하에서 운영 시스템(35)과 직접적으로 통신하도록 프로그램될 수 있는 것이다. 차례로 윈도우즈 관리자(108)로 IME메시지를 공급하는 운영 시스템(35) 과 IME/S(116) 사이에 피드백은, 운영 시스템(35) 과 JAVA 버츄얼 머신(100) 사이에 연속성 루프 또는 다른 예견 불가하고 그리고 바랄 수 없는 최종 생성물에 유입되는 명령에서 발생한다.
이러한 타입의 피드백 방지를 위해서, 일반적으로 JAVA 버츄얼 머신(100)은 시스템 IME/S(116)에 윈도우즈 관리자(108)를 링크 하는 IME/S 브리지(124)를 구비하는 것이다. JAVA 버츄얼 머신(100)은 또한 일반적으로 시스템 KBD/S에 윈도우즈 관리자를 링크하는 시스템 KBD/S 브리지(126)를 구비한다. 시스템 IME/S브리지(124) 와 시스템 KBD/S브리지(126)는 플래그 또는 다른 명령 이름 인식기를 IME/S(116) 과 시스템 KBD/S에 의해 각각 발생되는 명령에 삽입하여, IME/S(116)으로부터 운영 시스템(35)으로의 원하지 않는 피드백을 방지한다. 특정하게, 시스템 IME/S브리지(124) 와 KBD/S브리지(126)는 WM_CHAR 키보드 명령을 WM_IME_CHAR 키보드 명령으로 변경하여 메시지가 시스템 IME/S(116) 또는 시스템 KBD/S에 의해 각각 이미 처리되어졌음을 나타내도록 한다.
IME에 의해 창출되는 합성 문자는 합성 문자가 구성요소로 패스되는 윈도우즈 관리자로 복귀되는 것이다. 구성요소(122)는 운영 시스템(35)의 스크린 드라이버(104)에 의해 이해되는 운영 시스템 명령으로 합성 문자를 번역한다. 특정하게, JAVA 구성요소(122)는 당 분야에 기술인에게 공지된 바와 같이 "키 이벤트"명령, "포스트 이벤트"명령, 및 "키 다운"명령을 포함하는 순차적 명령을 구현하여 모니터(47)에 이미지를 나타낸다.
일반적으로 구성요소(122)는 다수의 드로잉 툴을 구비하는 일 개 이상의 툴 바아를 포함하는 사용자 인터페이스를 만든다. 사용자 인터페이스는 IME에 의해 복귀되는 합성 문자와 상관된 모니터(47)에 디스플레이 된다. 사용자 인터페이스는 구성요소(122)가 사용자 명령을 수신하는 것을 허용하여 합성 문자를 부가적으로 조작한다. 예를 들면, 구성요소(122)는 IME로부터 수신되는 합성문자가 사용자 인터페이스 내에 디스플레이 되도록 한다. 다음, 구성요소(122)는 사용자 인터페이스의 드로잉 툴로 창출되는 사용자 명령을 받아들여서 합성 문자를 변경하거나 또는 증가시키는 것이다. 따라서, 구성요소(122)는 IME에 의해 복귀되는 합성 문자를 조작하는 JAVA 베이스 사용자 인터페이스에 IME를 통합하는 것이다. 다르게는, 버츄얼 머신(100)이 워드 프로세서 또는 편집자 와 같은 다른 프로그램 모듈에 의해 제어되는 드로잉 스페이스 내에 합성 문자를 활성 IME가 드로우(draw) 하는 것을 허용한다.
도 3은 버츄얼 머신(100) 내에 윈도우즈 관리자(108)를 운영하는 제 1 루틴(300)을 설명하는 논리적 흐름 다이어그램 이다. 단계(302)에서는, 윈도우즈 관리자(108)가 이벤트를 위해 대기한다. 일반적으로, 윈도우즈 관리자(108)는 IME로부터, 합성 문자 와 다른 시스템 IME메시지를 구비하는, IME메시지 와 운영 시스템(35)으로부터의 키보드 명령인 2개 타입의 이벤트를 수신하는 것이다. 단계(304)에서, 윈도우즈 관리자(108)는 운영 시스템으로부터의 키보드 명령인 경우에 이벤트를 수신하는 것이다.
단계(306)에서는, 윈도우즈 관리자(108)는 버츄얼 머신(100)이 IMM(100)에 의해 대표되는 활성 IMM을 구비하는지를 판단한다. 만일 버츄얼 머신(100)이 활성 IMM을 구비하지 않는다면, "NO"브렌치가 단계(308)에 따르고, 여기서 윈도우즈 관리자(108)는 구성요소(122)로 키보드 명령의 유니코드 번역부를 패스 한다. 만일 버츄얼 머신(100)이 활성 IMM를 구비한다면, "YES"브렌치는 단계(310)를 따르고, 여기서 윈도우즈 관리자(108)는 IMM(110)으로 키보드 명령의 유니코드 번역부를 패스 한다.
명령 형태에 따라서, IMM(110)은 이벤트를 수용하거나 또는 IMM(110)은 이벤트를 거절한다. 단계(311)에서, 윈도우즈 관리자(108)는 IMM이 이벤트를 수용하는지를 점검한다. 양호하게 윈도우즈 관리자(108)는, IMM(110)으로 키보드 명령을 패스하도록 호출되는 IMLI(Input Manager Listener Interface)의 핸들 키 방법(Handled Key method)으로부터의 복귀 메시지를 수신하여 이러한 의문(query)을 양호하게 수행한다. 만일 IMM(100)이 상기 IMM은 이벤트를 수용하는 것을 나타내는 "TRUE"로 복귀하면, "YES"브렌치는 단계(302)로 루프되고, 여기서 윈도우즈 관리자(108)는 다른 이벤트를 대기한다. 만일 IMM(100)이, 상기 IMM이 이벤트를 거절하는 것을 나타내는 "FALSE"로 복귀하면, "NO"브렌치가 단계(308)로 루프되고, 여기서 윈도우즈 관리자(108)는 구성요소(122)로 이벤트를 패스 한다.
단계(308)를 따라서, 루틴(300)은 단계(302)로 루프되고, 여기서 윈도우즈 관리자(108)는 다른 이벤트를 대기한다. 단계(311)의 의문은 IMM(110)을 통하는 제 1 패스 동작 없이 구성요소(122)로 임의적 이벤트가 직접 패스되게 하는 것이다. 따라서, 윈도우즈 관리자(108)는 모니터(47)에 부가적인 프로세싱 및 이벤트적 렌더링용으로 IMM(110)으로 이벤트를 패스하거나 또는 구성요소로 이벤트를 패스하여 각각의 이벤트를 처리한다.
도 4는 버츄얼 머신(100) 내에서 윈도우즈 관리자를 운영하는 제 2 방법(400)을 설명하는 논리적 흐름 다이어그램 이다. 단계(402)에서, 윈도우즈 관리자(108)는 이벤트를 대기한다. 단계(404)에서, 윈도우즈 관리자(108)는 IME로부터의 합성 문자 또는 다른 시스템 IME 메시지인 경우에 이벤트를 수용한다. IME는 양호하게 IMCI(Input Method Callback Interface)의 핸들 IME 메시지 방법을 호출하여 윈도우즈 관리자(108)로 이벤트를 패스 한다.
단계(406)에서, 윈도우즈 관리자(108)는 구성요소(122)가 IMMLI(Input Method Message Listener Interface)를 구현하는지를 판단한다. 만일 구성요소(122)가 IMMLI(Input Method Message Listener Interface)를 구현하면, "YES"브렌치는 단계(408)로 가게되고, 여기서 윈도우즈 관리자(108)는 이벤트를 구성요소(122)로 패스 한다. 윈도우즈 관리자(108)는 양호하게 IMMLI(Input Method Message Listener Interface)의 핸들 IME메시지 방법을 호출하여 구성요소(122)로 이벤트를 패스 한다. 만일, 구성요소(122)가 IMMLI(Input Method Message Listener Interface)를 구현하지 않는다면, "NO"브렌치가 단계(412)로 가게되고, 여기서 윈도우즈 관리자(108)는 활성 IME로 직접 이벤트를 패스한다.
다시 단계(408)로 가서, 구성요소(122)는 이벤트를 수용하거나 또는 구성요소(122)는 이벤트를 거절한다. 만일 구성요소(122)가 이벤트를 수용하면, 구성요소는 양호하게 핸들 IME 메시지 명령으로 "TRUE"를 복귀한다. 만일 구성요소(122)가 이벤트를 거절하면, 구성요소는 양호하게 핸들 IME 메시지 명령으로 "FALSE"를 복귀한다. 단계(410)에서, 윈도우즈 관리자(108)는 구성요소(122)가 "TRUE"로 복귀하는지를 판단한다. 만일 구성요소(122)가 "TRUE"를 복귀하면, "YES"브렌치가 단계(402)로 루프 하고, 여기서 윈도우즈 관리자는 다른 이벤트를 대기한다. 만일 구성요소(122)가 "FALSE"를 복귀하면, "NO"브렌치가 단계(412)로 가며, 여기서 윈도우즈 관리자(108)는 활성 IME로 이벤트를 패스 한다. 단계(412)로 가면, 루틴(400)은 단계(402)로 루프하고, 여기서 윈도우즈 관리자(108)는 다른 이벤트를대기한다.
따라서, 루틴(400)은 구성요소(122)로 또는 활성 IME로, 합성 문자 및 다른 시스템 IME 명령을 구비하는 각각의 IME 메시지를 패스 한다. 특정한 IME 메시지를 수용하도록, 활성 IME로 또는 구성요소(122)로 IME를 패스 하도록 윈도우즈 관리자(108)가 허용하는 것은 JAVA 시스템 개발자가 구성요소(122) 또는 IME의 어느 하나의 구성하도록 하는 것이다. 이러한 특징적인 객체는 각각의 경우에 기본하여 구성요소 와 IME를 설계하는데 융통성을 JAVA 시스템 개발자에게 제공하는 것이다.
도 5는 버츄얼 머신(100) 내에 IMM(110)을 운영하는 루틴(500)을 설명하는 논리적 흐름 다이어그램 이다. 단계(502)에서, IMM(110)은 일반적으로 윈도우즈 관리자(108)로부터 수신되는 WM_CHAR키보드 명령의 유니코드 번역인, 이벤트를 대기 한다. 단계(504)에서, IMM(110)은 윈도우즈 관리자(108)로부터의 이벤트를 수신한다. 단계(506)에서, IMM(110)은 이벤트가 IMM명령 인지를 판단한다. 만일 이벤트가 IMM명령 이면, "YES"브렌치가 단계(506)로부터 단계(508)로 가고, 여기서 IMM(110)은 예를 들어 이전 활성 IME를 비활성으로 하고 그리고 지시된 IME를 활성으로 하여 IMM명령에 응답하는 것이다. IMM은 양호하게 IMLI의 비활성 방법을 호출하여 이전 활성 IME를 비활성으로 하고 그리고 IMLI의 활성 방법을 호출하여 지시된 IME를 활성으로 한다. 단계(508)는 단계(510)으로 가고, 여기서 IMM(110)은 이벤트가 IMM에 의해 수용되어져 있음을 나타내는 윈도우즈 관리자(108)로 "TRUE"를 복귀한다. 단계(510) 후에, 루틴(500)은 단계(502)로 루프하고, 여기서 IMM(110)은 다른 이벤트를 대기한다.
단계(506)을 다시 참고로, 만일 이벤트가 IMM명령이 아니면, "NO"브렌치는 단계(506)으로부터 단계(512)로 가게되고, 여기서 IMM(110)은 버츄얼 머신(100)이 활성 IME를 구비하는지를 판단 한다. 만일 버츄얼 머신(100)이 활성 IME를 구비하면, "YES"브렌치는 단계(412)로 가게되고, 여기서 IMM(110)은활성 IME로 이벤트를 패스 한다. IMM(110)은 양호하게 IMLI의 핸들 키 방법을 호출하여 활성 IMM으로 이벤트를 패스 한다. 단계(514)는 단계(510)에 의해 따라가고, 여기서 IMM(110)은 이벤트가 IMM에 의해 수용되어져 있음을 나타내는 윈도우 관리자(108)로 "TRUE"를 복귀 한다. 단계(510) 후에, 루틴(500)은 단계(502)로 루프하고, 여기서 IMM(110)은 다른 이벤트를 대기한다.
다시, 단계(512)를 참고로, 만일 버츄얼 머신(100)이 활성 IME를 구비하지 않는다면, IMM(110)는 이벤트가 IMM에 의해 거절되어져 있음을 나타내는 윈도우즈 관리자(108)로 "FALSE"를 복귀한다. 단계(516) 후에, 루틴(500)으너 단계(502)로 루프하고, 여기서 IMM(110)은 다른 이벤트를 대기한다. 따라서, IMM(110)은 이전 활성적 IME 를 비활성으로 하고 그리고 지시된 IME를 활성으로 하거나(그리고 윈도우즈 관리자(108)로 "TRUE"를 복귀), 활성 IME로 이벤트를 패스 하거나(그리고 윈도우즈 관리자(108)를 "TRUE"로 복귀), 또는 IMM가 이벤트를 거절하는 것을 나타내는 윈도우즈 관리자(108)로 "FALSE"를 복귀하여 각각의 이벤트를 처리한다.
도 6은 버츄얼 머신(100)과 양립할 수 있는 IME에 의해 구현되는 IMLI(600)를 설명하는 개략적 블록 다이어그램이다. 대표적으로 IME/J(112)인, IME 또는 KBD는 버츄얼 머신(100)과 양립할 수 있는 IMLI를 구현하여야 한다. IMLI(600)는 양호하게 제 1 인터페이스 방법 핸들 키(602)를 구비하는 것이다. 핸들 키 인터페이스 방법(602)은 IMM(110)에 의해 호출되어 키보드 명령을 IME/J(112)로 패스 한다. 예를 들면, IME/J(112)로 패스되는 키보드 명령은 윈도우즈 관리자(108)에 의해 IMM(110)으로 패스되는 WM_CHAR키보드 명령의 유니코드 번역 이다. IME/J(112)는 만일 IME가 키보드 명령을 수용하면 "TRUE" 로 복귀 하고, 그리고 IME가 명령을 수용하지 않으면 "FALSE"로 복귀 한다.
핸들 키 인터페이스 방법(602)은 양호하게 5개의 피연산자를 구비한다. 즉, "imeCallback"-IMCI(Input Method Callback Interface)(윈도우즈 관리자(108))를 구현하는 콜백 객체를 인식; "when"- 핸들 키 방법이 호출되는 시간; "keyCode"-키보드 명령의 ASCII키 코드; "keyChar"-키보드 명령의 유니코드 키 문자; 및 "state"-핸들 키 방법이 호출될 때에 버츄얼 머신(100)의 상태.
IMLI(600)는 양호하게 제 2 인터페이스 방법 활성(604)을 구비한다. 활성 인터페이스 방법(604)은 IMM(110)에 의해 호출되어 지시된 IME를 활성시킨다. 활성 인터페이스 방법(604)은 양호하게 IME가 활성이 되도록 나타내는 피연산자("ime")를 구비하는 것이다. 활성 인터페이스 방법(604)은 복귀 메시지를 포함하지 않는다.
IMLI(600)는 양호하게 제 3 인터페이스 방법 비활성(606)을 구비한다. 비활성 인터페이스 방법(606)은 IMM(110)에 의해 호출되어 현재 활성 IME를 비활성으로 한다. 비활성 인터페이스 방법(606)은 피연산자("ime")를 필요로 하지 않으며 그리고 복귀 메시지를 포함하지 않는다.
IMLI(600)는 양호하게 제 4 인터페이스 방법 세트 포지션(608)을 구비한다. 세트 포지션 인터페이스 방법(608)은 구성요소(122)에 의해 호출되어 모니터(47)의 디스플레이 스크린에 합성 문자의 위치를 설정한다. 세트 포지션 인터페이스 방법(608)은 모니터(47)의 디스플레이 스크린에 직각좌표("x,y")를 나타내는 피연산자를 구비하는 것이다. 세트 포지션 인터페이스 방법(608)은 복귀 메시지를 포함하지 않는다.
IMLI(600)는 양호하게 제 5 인터페이스 방법 세트 사이즈(610)를 구비한다. 세트 사이즈 인터페이스 방법(610)은 구성요소(122)에 의해 호출되어 모니터(47)의 디스플레이 스크린에 합성 문자의 사이즈를 설정한다. 세트 사이즈 인터페이스 방법(610)은 모니터(47)의 디스플레이 스크린에 합성 문자의 크기를 판단하는 그래픽 객체("g")를 나타내는 피연산자를 구비하는 것이다. 그래픽 객체("g")는 또한 모니터(47)의 디스플레이 스크린에 나타나는 합성 문자의 폰트 와 색상을 판단하는 것이다. 세트 사이즈 인터페이스 방법(610)은 널(null) 값으로 복귀한다.
IMLI(600)는 양호하게 제 6 인터페이스 방법 페인트(612)를 구비한다. 페인트 인터페이스 방법(612)은 구성요소(122)에 의해 호출되어 특정한 그래픽 객체에 합성 문자를 페인트 한다. 페인트 인터페이스 방법(612)은 그래픽 객체("g")를 나타내는 피연산자를 구비하는 것이다. 페인트 인터페이스 방법(612)은 복귀 메시지를 함유하지 않는다.
IMLI(600)는 양호하게 제 7 인터페이스 방법 세트 비져불 구성요소(614)를 구비한다. 세트 비져불 구성요소 인터페이스 방법(614)은 구성요소(122)에 의해 호출되어 IME 드로잉 공간을 제어하는 객체로서 구성요소를 설정한다. 세트 비져불 구성요소 인터페이스 방법(614)은 구성요소(122)를 예를 들어 IME 드로잉 공간을 제어하는 구성요소("g")를 나타내는 피연산자를 구비하는 것이다. 세트 비져불 구성요소 인터페이스 방법(614)은 복귀 메시지를 함유하지 않는 것이다. 세트 비져불 구성요소 인터페이스 방법(614)은, 다수의 드로잉 툴을 구비하는 일 개 이상의 툴 바아를 구비하는 모니터(47)에 디스플레이되는 사용자 인터페이스 인, 구성요소(122)에 의해 제어되는 드로잉 공간 내에 합성 문자를 IME가 드로우 하게 한다. 만일 세트 비져불 구성요소 인터페이스 방법(614)이 호출되지 않으면, IME는 일반적으로 IME에 의해 제어되는 드로잉 공간 내에 합성 문자를 드로우 한다. 다르게는, IME는 워드프로세서 또는 편집자 와 같은 다른 프로그램 모듈에 의해 제어되는 드로잉 공간 내에 합성 문자를 드로우 한다.
IMLI(600)는 양호하게 제 8 인터페이스 방법 핸들 IME 메시지(616)을 구비한다. 핸들 IME 메시지 인터페이스 방법(616)은 윈도우즈 관리자(108)에 의해 호출되어 IME 에 특정한 IME 메시지를 패스 한다. 핸들 IME 메시지 인터페이스 방법(616)은 피연산자로서 특정한 IME 메시지를 구비하는 것이다. 핸들 IME 메시지 인터페이스 방법(616)은 복귀 메시지를 함유하지 않는 것이다. IME 메시지는 일반적으로 IME에 의해 발생되고 그리고 윈도우즈 관리자(108)인 콜백 객체로 패스된다. 만일, 윈도우즈 관리자가 IME 메시지를 다루지 않으면, 윈도우즈 관리자는 핸들 IME 메시지 인터페이스 방법(616)을 호출하여 IME로 IME메시지를 다시 패스 한다. 이러한 사실은 윈도우즈 관리자(108)에게 IME메시지를 다룰 기회를 제공하는 것이다. 만일, 윈도우즈 관리자가 IME 메시지를 다루지 않으면, IME는 일반적으로 디폴트 상태를 구현한다. 즉, 윈도우즈 관리자(108)용 IME "listens"은 IME 메시지에 반응하여 활성하고 그리고 만일 윈도우즈 관리자(108)가 IME 메시지를 다루지 않는다면, IME는 디폴트 상태를 구현하는 것이다.
도 7은 버츄얼 머신(100)의 IMM(100)용 IMLI(700)를 설명하는 개략적 블록 다이어그램 이다. IMLI(700)는 양호하게 제 1인터페이스 GET INPUT METHOD(702)를 구비하는 것이다. GET INPUT METHOD 인터페이스 방법(702)은 윈도우즈 관리자(108)에 의해 호출되어 IME가 활성으로 있는 IMM(100)을 물어본다. GET INPUT METHOD(702)는 현재 활성 IME와 관련된 인덱스를 지정하는 피연산자("idx")를 구비하는 복귀 메시지를 함유하는 것이다.
IMLI(700)는 양호하게 제 2인터페이스 방법 GET NUMBER INPUT METHOD(704)를 구비하는 것이다. GET NUMBER INPUT METHOD 인터페이스 방법(704)은 윈도우즈 관리자(108)에 의해 호출되어 얼마나 많은 IME가 IMM에 등록되는지를 물어본다. GET NUMBER INPUT METHOD 인터페이스 방법(704)은 IMM에 등록된 IME를 열거하는 복귀 메시지를 함유한다. 예를 들면, IMM은 IMM에 등록된 IME의 수를 지정하는 피연산자를 구비하는 메시지를 복귀시킨다. 다르게는, IMM은 IMM에 등록된 IME의 리스트를 복귀시킬 수 있다.
IMLI(700)는 양호하게 제 3인터페이스 방법 REMOVE INPUT METHOD(706)를 구비하는 것이다. REMOVE INPUT METHOD 인터페이스 방법(706)은 윈도우즈 관리자(108)에 의해 호출되어 IMM에 의해 유지되는 IME의 등록 리스트로부터 특정한 IME를 IMM(110)이 제거하는지를 물어본다. REMOVE INPUT METHOD 인터페이스 방법(706)은 등록된 리스트로부터 특정한 IME가 제거되는 것을 지시하는 피연산자("ime")를 함유한다. REMOVE INPUT METHOD 인터페이스 방법(706)은 복귀 메시지를 함유하지 않는다.
IMLI(700)는 양호하게 제 4인터페이스 방법 SET INPUT METHOD(708)를 구비하는 것이다. SET INPUT METHOD 인터페이스 방법(708)은 윈도우즈 관리자(108)에 의해 호출되어 IMM에 의해 유지되는 IME의 등록 리스트로부터 특정한 IME를 활성적으로 IMM(110)이 하는지를 물어본다. SET INPUT METHOD 인터페이스 방법(708)은 특정한 IME가 활성으로 되는 것을 지시하는 피연산자("ime")를 함유한다. SET INPUT METHOD 인터페이스 방법(708)은 복귀 메시지를 함유하지 않는다.
IMLI(700)는 양호하게 제 5인터페이스 방법 HANDLED KEY(710)를 구비하는 것이다. HANDLED KEY 인터페이스 방법(710)은 윈도우즈 관리자(108)에 의해 호출되어 WM_CHAR 키보드 명령의 유니코드 번역으로 키보드 명령을 IMM(110)이 다루는지를 물어본다. HANDLED KEY 인터페이스 방법(710)은 특정한 IME가 활성화 되는 것을 지시하는 피연산자("ime")를 함유한다. SET INPUT METHOD 인터페이스 방법(708)은 복귀 메시지를 함유하지 않는다.
HANDLED KEY 인터페이스 방법(710)은 다음의 5개 피연산자를 구비하는 것이다. 즉, "imeCallback"-IMCI(Input Method Callback Interface)(윈도우즈 관리자(108))를 구현하는 콜백 객체를 인식; "when"- 핸들 키 방법이 호출되는 시간; "keyCode"-키보드 명령의 ASCII키 코드; "keyChar"-키보드 명령의 유니코드 키 문자; 및 "state"-핸들 키 방법이 호출될 때에 버츄얼 머신(100)의 상태.
도 8은 버츄얼 머신(100)의 윈도우즈 관리자(108)용 IMCI(800)를 설명하는 개략적 블록 다이어그램 이다. IMCI(800)는 양호하게 제 1인터페이스 방법 HANDLE IME CHAR(802)를 구비한다. HANDLE IME CHAR인터페이스 방법(802)은 IME에 의해 호출되어 윈도우즈 관리자(108)로 특정한 합성 문자를 패스 한다. 윈도우즈 관리자(108)는 키보드(40)로부터 수신된 단일 문자이면 내부 입력 큐에, 다수의 키보드 명령을 구비하는 합성 기호열에 기본되는 합성 문자를 더한다. HANDLE IME CHAR 인터페이스 방법(802)은 3가지 피연산자를 구비한다. 즉, "when"- HANDLE IME CHAR 인터페이스 방법(802)이 호출되는 시간; "keyChar"-합성 문자의 유니코드 키 문자; 및 "state"-HANDLE IME CHAR 인터페이스 방법(802)이 호출될 때에 버츄얼 머신(100)의 상태. HANDLE IME CHAR 인터페이스 방법(802)은 복귀 메시지를 함유하지 않는다.
IMCI(800)는 양호하게 제 2인터페이스 방법 HANDLE IME MESSAGE(804)를 구비한다. HANDLE IME MESSAGE 인터페이스 방법(804)은 IME에 의해 호출되어 윈도우즈 관리자(108)로 특정한 IME 메시지를 패스 한다. HANDLE IME MESSAGE 인터페이스 방법(804)은 피연산자로서 특정한 IME메시지를 구비한다. HANDLE IME MESSAGE 인터페이스 방법(804)은 복귀 메시지를 함유하지 않는다. IME 메시지는 일반적으로 IME에 의해 발생되고 윈도우즈 관리자(108)인 콜백 객체로 패스된다. 만일 윈도우즈 관리자가 IME 메시지를 다루지 않으면, 윈도우즈 관리자는 IMLI의 HANDLE IME MESSAGE인터페이스 방법(616)을 호출하여 IME로 다시 IME 메시지를 패스 한다. 이러한 사실은 IME 메시지를 다루는 기회를 윈도우 관리자(18)에게 주는 것이다.
도 9는 버츄얼 머신(100)의 구성요소(122)용 IMMLI(900)를 설명하는 개략적 블록 다이어그램 이다. IMMLI(900)는 양호하게 윈도우즈 관리자(108)에 의해 호출되는 인터페이스 방법 HANDLE IME MESSAGE(902)를 구비한다. 이러한 방법은 윈도우 관리자(108)에 의해 호출되어 IME에 의해 복귀되는 합성 문자를 조작하도록 사용자가 사용할 수 있는 사용자 인터페이스를 구성요소가 드로우 하고 제어하는지를 구성요소(122)에 물어본다. HANDLE IME MESSAGE 인터페이스 방법(902)은 피연산자로서 IME 메시지를 구비한다. HANDLE IME MESSAGE 인터페이스 방법(902)은 사용자 인터페이스를 구성요소가 드로우 하고 제어하는지를 지시하는 복귀 메시지를 함유한다. 구성요소(122)는 만일 사용자 인터페이스가 드로우 및 제어를 하면 "TRUE"로 복귀하고 그리고 사용자 인터페이스가 드로우 및 제어를 하지 않으면 "FALSE"로 복귀한다.
(물음: 왜, 합성 문자가 윈도우즈 관리자로부터 구성요소로 패스되는 것을 허용하도록 HANDLE KEY 또는 HANDLE WM CHAR인터페이스를 구성요소가 구비하지 않는지? 어떻게 윈도우 관리자가 합성 문자를 구성요소로 패스 하는지?)
도 10a는 키보드 명령을 다루는 종래기술의 방법을 설명하는 개략적 블록 다이어그램 이다. 사용자는 키보드(40)에 키를 담입한다. 키보드 명령은 운영 시스템(35)의 모듈인 키보드 드라이버(102)에 의해 키보드 명령으로 전환된다. 키보드 드라이버(102)는 개별적으로 다루어 지고 설명되는 3개 키보드 명령으로 각각의 키스트로크를 전환한다. 즉, WM_KEYDOWN-키가 담입되어져 있음을 지시, WM_CHAR-일반적으로 담입 키와 관련된 ASCII코드 또는 값; 그리고 WM_KEYUP-키가 담입 해제되어져 있는 상태를 지시. 이들 키보드 명령은 워드 프로세싱 프로그램, 편집자, 또는 그와 같은 류의 응용 프로그램(36)에 전달된다. 응용프로그램(36)은 응용 프로그램에 의해 정의된 기능성에 의거 키보드 명령을 설명한다. 다음, 응용 프로그램은 모니터(47)를 구동하는 스크린 드라이버(104)에 스크린 업데이트를 패스 한다.
도 10b는 시스템 IME(116)을 구현하는 종래기술을 설명하는 개략적 블록 다이어그램 이다. 사용자는 키보드(40)에 키를 담입한다. 키보드 명령은 키보드 드라이버(102)에 의해 키보드 명령으로 전환된다. 키보드 드라이버(102)는 각각 WM_KEYDOWN, WM_CHAR 그리고 WM_KEYUP키보드 명령으로 각각의 키스트로크를 전환한다. 상기 키보드 명령은 합성 문자로 키보드 명령을 전환하는 시스템 IME(116)으로 전달된다.
시스템 IME/S(116)은 일반적으로 합성문자용 합성 기호열을 구성하도록 다수 키보드 명령을 축적하는 구조이다. 멀티플 키보드 명령 합성 기호열의 사용은 일반적으로 중국어, 한국어, 및 일본어 와 같은 비라틴계 언어에서 캘리그래픽 표의문자용으로 유용한 수천개의 각각의 합성 문자를 시스템 IME/S(116)가 인덱스 하게 한다. 다음, 시스템 IME/S(116)은 응용 프로그램(36)으로 합성 문자를 패스 한다. 응용 프로그램(36)은 응용 프로그램에 의해 정의된 기능성에 의거 키보드 명령을 설명한다. 다음, 응용 프로그램은 모니터(47)를 구동하는 스크린 드라이버(104)로 스크린 업데이트를 패스 한다.
도 11은 본 발명의 실시예에 따르는 시스템 IME/S(116)를 지원하는 버츄얼 머신(100)을 설명하는 개략적 블록 다이어그램 이다. 사용자는 키보드(40)에 키를 담입한다. 키보드 명령은 키보드 드라이버(102)에 의해 키보드 명령으로 전환된다. 키보드 드라이버(102)는 각각 WM_KEYDOWN, WM_CHAR 그리고 WM_KEYUP키보드 명령으로 각각의 키보드 명령을 전환한다. 상기 키보드 명령은 키보드 명령에 기본한 합성 문자를 발생하는 시스템 IME/S(116)으로 패스 된다.
시스템 IME/S(116)은 유니코드 포맷으로 합성문자를 번역하는 유니코드 번역기를 구비하는 윈도우즈 관리자(108)로 합성 문자를 패스 한다. 윈도우즈 괸리자(108)는 사용자가 합성 문자의 조작을 허용하는 사용자 인터페이스를 만드는 구성요소(122)로 유니코드 포맷에 합성 문자를 패스한다. 다음, 구성요소(122)는 모니터(47)를 구동하는 스크린 드라이버(104)로 스크린 업데이트를 패스 한다.
도 12는 본 발명의 실시예에 따르는 JAVA베이스 IME/J(112)를 구현하는 버츄얼 머신(100)을 설명하는 개략적 블록 다이어그램 이다. 사용자는 키보드(40)에 키를 담입한다. 키보드 명령은 키보드 드라이버(102)에 의해 키보드 명령으로 전환된다. 키보드 드라이버(102)는 각각 WM_KEYDOWN, WM_CHAR 그리고 WM_KEYUP키보드 명령으로 각각의 키보드 명령을 전환한다. 상기 키보드 명령은 버츄얼 머신(100)의 윈도우즈 관리자(108)에게 전달된다.
윈도우즈 관리자(108)는 유니코드 포맷으로 키보드 명령을 번역하는 유니코드 번역기를 구비한다. 윈도우즈 관리자(108)는 IMM(110)에 유니코드 키보드 명령을 패스 한다. IMM(110)은 합성 문자로 유니코드 키보드 명령을 전환하는 JAVA베이스 IME/J(112)로 유니코드 키보드 명령을 패스한다. JAVA베이스 IME/J(112)는 구성요소(122)로 합성 문자를 패스하는 윈도우즈 관리자(108)로 다시 합성 문자를 패스 한다. 다음, 구성요소(122)는 합성 문자를 사용자가 조작하게 하는 사용자 인터페이스를 만든다. 상기 구성요소(122) 다음 모니터(47)를 구동하는 스크린 드라이버(104)로 스크린 업데이트를 패스 한다.
도 13은 본 발명의 실시예에 따르는 시스템 IME/S(116)을 호스팅하는 버츄얼 머신(100)을 설명하는 개략적 블록 다이어그램 이다. 사용자는 키보드(40)에 키를 담입한다. 키보드 명령은 운영 시스템(35)의 일반적인 모듈이 키도브 드라이버(102)에 의해 키보드 명령으로 전환된다. 키보드 드라이버(102)는 각각 WM_KEYDOWN, WM_CHAR 그리고 WM_KEYUP키보드 명령으로 각각의 키보드 명령을 전환한다. 상기 키보드 명령은 멀티플 WM_CHAR 및 WM_IME_CHAR키보드 명령을 구비하는 합성 기호열로 멀티플 키보드 명령을 강화하는 시스템 IME/S(116)에 전해진다.
시스템 IME/S(116)은 버츄얼 머신(100)의 윈도우즈 관리자(108)에 합성 기호열을 패스한다. 윈도우즈 관리자(108)는 유니코드 포맷으로 합성 기호열을 번역하는 유니코드 번역기를 구비한다. 윈도우즈 관리자(108)는 시스템IME/S 브리지(124)에 유니코드 합성 기호열을 패스 한다. 시스템 IME/S브리지(124)는 WM_CHAR 키보드 명령을 WM_IME_CHAR 키보드 명령으로 변경하여 합성 기호열이 처리되어진 시스템 IME/S(116)을 나타낸다. 시스템IME/S브리지(124)는 구성성분(122)으로 합성 문자를 패스하는 윈도우즈 관리자(108)로 합성 기호열을 패스한다. 다음, 구성요소(122)는 합성 문자를 사용자가 조작하게 하는 사용자 인터페이스를 만든다. 상기 구성요소(122) 다음 모니터(47)를 구동하는 스크린 드라이버(104)로 스크린 업데이트를 패스 한다.
상술된 바로서 본 발명은 필요에 기본하여 IME용의 소오스 코드를 변경하여 사용하는 JAVA 버츄얼 머신을 제공하는 것이다. 본 발명은 또한, JAVA 양립성 IME를 창출하는 제어 인터페이스를 형성하는 것이다. 본 발명에 따르는 JAVA 기본 버츄얼 머신은 (1)JAVA 버츄얼 머신에 JAVA 기본 IME를 사용; (2)JAVA 기본 IME를 라이팅(writing); (3)시스템 IME에 JAVA 버츄얼 머신을 통합 하는, 3가지 와 관련하여 기능적으로 IME를 지원하는 것이다. 버츄얼 머신은 윈도우즈 관리자, 입력 방법 관리자, 일 이상의 IME 및/또는 키보드 드라이버(KBDs) 및 콤포넌트를 구비하는 것이다. 구성요소는 일반적으로 IME에 의해 복귀되는 구성 문자를 사용자가 처리하는 것을 허용하는 사용자 인터페이스를 공급하는 것이다. 사용자 정의 IMEs 와 구성요소를 수용하여, 버츄얼 머신은 IME 와 구성요소가 서로 통신하고 그리고 버츄얼 머신의 다른 요소 즉, 윈도우즈 관리자 와 IMM이 서로 통신하도록 허용하는 인터페이스의 정의된 세트를 제공하는 것이다. 이러한 정의된 인터페이스는 시스템 개발자가 IME의 기능성 과 구성요소의 기능성을 변경하도록 허용하고 그리고 버츄얼 머신을 변경된 IME 와 구성요소에 통합하는 것을 허용하는 것이다.

Claims (23)

  1. 처리 유니트와, 상기 처리 유니트에 연결된 키보드와, 상기 처리 유니트에 연결된 디스플레이 장치와, 상기 처리 유니트에서 작동되는 운영 시스템과, 상기 처리 유니트상에서 작동되는 플렛폼-포터블 버츄얼 머신를 포함하는 컴퓨터 시스템에 서의 버츄얼 머신에 있어서,
    윈도우 관리자로부터 키보드 명령을 수용하기 위한 입력 방법 관리자와,
    상기 입력 방법 관리자로부터 키보드 명령을 수용하여 이를 조합된 문자로 전송하도록 작동되는 입력 방법 편집자와,
    상기 입력 방법 편집자로부터의 조합된 문자를 수용하여 디스플레이 장치상에서 디스플레이하기 위해 조합된 문자를 묘사하는 구성요소를 포함하는 것을 특징으로 하는 버츄얼 머신.
  2. 제 1 항에 있어서, 상기 윈도우 관리자는 키보드로부터 키보드 명령을 수용하고, 입력 방법 관리자가 활성중인지를 결정하며,
    만일 상기 입력 방법 관리자가 활성중이지 않을 경우 키보드 명령을 구성요소로 통과시키고,
    입력 방법 관리자가 활성중일 경우 키보드 명령을 입력 방법 관리자로 통과시키고, 입력 방법 관리자로부터 복귀 메시지를 수용하며, 만일 상기 복귀 메시지가 잘못된 복귀 메시지일 경우에는 키보드 명령을 구성요소로 통과시키도록 작동되는 것을 특징으로 하는 버츄얼 머신.
  3. 제 1 항에 있어서, 상기 입력 방법 관리자는 키보드로부터 키보드 명령을 수용하고, 키보드 명령이 입력 방법 관리자로 지향되었는지를 결정하며, 만일 키보드 명령이 입력 방법 관리자로 지향되었을 경우 키보드 명령에 응답하고, 만일 입력 방법 관리자로 지향되지 않았을 경우 키보드 명령을 입력 방법 편집자로 통과시키도록 작동되는 것을 특징으로 하는 버츄얼 머신.
  4. 제 1 항에 있어서, 상기 입력 방법 편집자는 입력 방법 관리자로부터 키보드 명령을 수용하며,
    복합 스트링을 생성하기 위해 상기 키보드 명령을 이전에 수용한 키보드 명령과 조합하고, 상기 복합 스트링이 복합 문자에 대응하는지의 여부를 결정하며,
    만일 상기 복합 스트링이 복합 문자에 대응하는 경우에는 복합 스트링을 복합 문자로 전송하고 복합 문자를 윈도우 관리자로 통과시키도록 작동되는 것을 특징으로 하는 버츄얼 머신.
  5. 제 1 항에 있어서, 상기 윈도우 관리자는 입력 방법 편집자로부터 복합 문자를 수용하고, 복합 문자를 구성요소로 통과시키도록 작동되는 것을 특징으로 하는 버츄얼 머신.
  6. 제 1 항에 있어서, 상기 구성요소는 윈도우 관리자로부터 복합 문자를 수용하고, 디스플레이 장치상에 사용자 인터페이스를 묘사하고, 디스플레이 장치상의 복합 문자를 사용자 인터페이스와 관련시켜 묘사하도록 작동되는 것을 특징으로 하는 버츄얼 머신.
  7. 제 1 항에 있어서, 복합 문자를 사용자 인터페이스와 관련시켜 묘사한 후에, 사용자 인터페이스를 통해 사용자 명령을 수용하고, 사용자 명령에 응답하여 복합 문자를 변화시키고, 디스플레이 장치상의 상기 변화된 복합 문자를 사용자 인터페이스와 관련시켜 묘사하도록 작동되는 것을 특징으로 하는 버츄얼 머신.
  8. 제 1 항에 있어서, 입력 방법 관리자로 지향된 키보드 명령에 응답하는 단계는 입력 방법 편집자를 작동중지시키는 단계와, 다른 입력 방법 편집자를 작동시키는 단계를 포함하는 것을 특징으로 하는 버츄얼 머신.
  9. 제 1 항에 있어서, 상기 컴퓨터 시스템은 처리 유니트상에서 작동되는 시스템 입력 방법 편집자를 부가로 포함하며, 상기 시작 장치는 시스템 입력 방법 편집자와 윈도우 관리자와 입력 방법 관리자를 일체화시키는 입력 방법 편집자 브리지를 부가로 포함하는 것을 특징으로 하는 버츄얼 머신.
  10. 제 1 항에 있어서, 상기 입력 방법 편집자는 인터페이스를 한정하며, 상기 인터페이스는 입력 방법 편집자가 키보드 명령을 다루도록 지시하는 메시지를 입력 방법 관리자로부터 수용하는 제 1 인터페이스 방법과, 입력 방법 편집자가 작동되도록 지시하는 메시지를 입력 방법 관리자로부터 수용하는 제 2 인터페이스 방법과, 입력 방법 편집자가 작동정지되도록 지시하는 메시지를 입력 방법 관리자로부터 수용하는 제 3 인터페이스 방법과, 입력 방법 편집자가 메시지를 다루도록 지시하는 윈도우 관리자로부터 수용하는 제 4 인터페이스 방법을 포함하는 것을 특징으로 하는 버츄얼 머신.
  11. 제 10 항에 있어서, 입력 방법 편집자에 의해 형성된 인터페이스는
    입력 방법 편집자가 입력 방법 편집자에 의해 묘사되어 디스플레이 장치상에 디스플레이된 사용자 인터페이스를 조종하도록 지시하는 메시지를 구성요소로부터 수용하는 제 5 인터페이스 방법을 부가로 포함하는 것을 특징으로 하는 버츄얼 머신.
  12. 제 10 항에 있어서, 입력 방법 편집자에 의해 형성된 인터페이스는 디스플레이 장치상에 디스플레이기 위해 입력 방법 편집자가 사용자 인터페이스를 묘사하도록 지시하는 메시지를 구성요소로부터 수용하는 제 5 인터페이스 방법과, 디스플레이 장치상에서의 디스플레이를 위해 입력 방법에 의해 묘사된 사용자 인터페이스의 크기를 한정하는 구성요소로부터 메시지를 수용하는 제 6 인터페이스 방법과, 디스플레이 장치상에서의 디스플레이를 위해 입력 방법에 의해 묘사된 사용자 인터페이스의 위치를 한정하는 구성요소로부터 메시지를 수용하는 제 7 인터페이스 방법을 포함하는 것을 특징으로 하는 버츄얼 머신.
  13. 제 1 항에 있어서, 입력 방법 관리자가 제 1 입력 방법 편집자를 작동시키도록 지시하는 메시지를 윈도우 관리자로부터 수용하는 제 1 인터페이스 방법과, 입력 방법 관리자가 입력 방법 편집자의 등록 리스트로부터 제 2 입력 방법 편집자를 제거하도록 지시하는 메시지를 윈도우 관리자로부터 수용하는 제 2 인터페이스 방법과, 입력 방법 관리자가 활성 입력 방법 편집자인지를 확인하도록 지시하는 메시지를 윈도우 관리자로부터 수용하는 제 3 인터페이스 방법과, 입력 방법 관리자가 입력 방법 편집자의 등록 리스트를 열거하도록 지시하는 메시지를 윈도우 관리자로부터 수용하는 제 4 인터페이스 방법과, 입력 방법 관리자가 키보드 명령을 다룰 것을 요구하는 메시지를 윈도우 관리자로부터 수용하는 제 5 인터페이스 방법을 포함하는 것을 특징으로 하는 버츄얼 머신.
  14. 제 1 항에 있어서, 상기 윈도우 관리자는 입력 방법 편집자로부터 메시지를 수용하는 인터페이스 방법을 포함하는 인터페이스를 형성하는 것을 특징으로 하는 버츄얼 머신.
  15. 제 1 항에 있어서, 상기 구성요소는 윈도우 관리자로부터 메시지를 수용하는 인터페이스 방법을 포함하는 인터페이스를 형성하는 것을 특징으로 하는 버츄얼 머신.
  16. 처리 유니트와, 상기 처리 유니트에 연결된 키보드와, 상기 처리 유니트에 연결된 디스플레이 장치와, 상기 처리 유니트에서 작동되는 운영 시스템을 포함하는 컴퓨터 시스템상에서 작동가능한 플랫폼 포터블 버츄얼 머신 버츄얼 머신는 지시를 저장하는 컴퓨터 저장 매체에 있어서,
    윈도우 관리자는 키보드로부터 키보드 명령을 수용하고, 입력 방법 관리자가 활성중인지를 결정하며, 만일 상기 입력 방법 관리자가 활성중이지 않을 경우 키보드 명령을 구성요소로 통과시키고, 입력 방법 관리자가 활성중일 경우 키보드 명령을 입력 방법 관리자로 통과시키고, 입력 방법 관리자로부터 복귀 메시지를 수용하며, 만일 상기 복귀 메시지가 잘못된 복귀 메시지일 경우에는 키보드 명령을 구성요소로 통과시키도록 작동되며,
    상기 입력 방법 관리자는 키보드로부터 키보드 명령을 수용하고, 키보드 명령이 입력 방법 관리자로 지향되었는지를 결정하며, 만일 키보드 명령이 입력 방법 관리자로 지향되었을 경우 키보드 명령에 응답하고, 만일 입력 방법 관리자로 지향되지 않았을 경우 키보드 명령을 입력 방법 편집자로 통과시키도록 작동되며,
    상기 입력 방법 편집자는 입력 방법 관리자로부터 키보드 명령을 수용하며, 복합 스트링을 생성하기 위해 상기 키보드 명령을 이전에 수용한 키보드 명령과 조합하고, 상기 복합 스트링이 복합 문자에 대응하는지의 여부를 결정하며, 만일 상기 복합 스트링이 복합 문자에 대응하는 경우에는 복합 스트링을 복합 문자로 전송하고 복합 문자를 윈도우 관리자로 통과시키도록 작동되며,
    상기 윈도우 관리자는 입력 방법 편집자로부터 복합 문자를 수용하고, 복합 문자를 구성요소로 통과시키도록 작동되며,
    상기 구성요소는 윈도우 관리자로부터 복합 문자를 수용하고, 디스플레이 장치상에 사용자 인터페이스를 묘사하고, 디스플레이 장치상의 복합 문자를 사용자 인터페이스와 관련시켜 묘사하도록 작동되는 것을 특징으로 하는 컴퓨터 저장 매체.
  17. 제 16 항에 있어서, 입력 방법 관리자로 지향된 키보드 명령에 응답하는 단계는 입력 방법 편집자를 작동중지시키는 단계와, 다른 입력 방법 편집자를 작동시키는 단계를 포함하는 것을 특징으로 하는 컴퓨터 판독 매체.
  18. 제 16 항에 있어서, 처리 유니트상에서 작동되는 시스템 입력 방법 편집자와, 시스템 입력 방법 편집자와 윈도우 관리자와 입력 방법 관리자를 일체화시키는 입력 방법 편집자 브리지를 부가로 포함하는 것을 특징으로 하는 컴퓨터 판독 매체.
  19. 제 16 항에 있어서, 상기 입력 방법 편집자는 인터페이스를 한정하며, 상기 인터페이스는 입력 방법 편집자가 키보드 명령을 다루도록 지시하는 메시지를 입력 방법 관리자로부터 수용하는 제 1 인터페이스 방법과, 입력 방법 편집자가 작동되도록 지시하는 메시지를 입력 방법 관리자로부터 수용하는 제 2 인터페이스 방법과, 입력 방법 편집자가 작동정지되도록 지시하는 메시지를 입력 방법 관리자로부터 수용하는 제 3 인터페이스 방법과, 입력 방법 편집자가 메시지를 다루도록 지시하는 윈도우 관리자로부터 수용하는 제 4 인터페이스 방법과, 입력 방법 편집자가 사용자 인터페이스를 디스플레이 장치상에 디스플레이하도록 지시하는 메시지를 구성요소로부터 수용하는 제 5 인터페이스 방법과, 디스플레이 장치상에서의 디스플레이를 위해 입력 방법에 의해 묘사된 사용자 인터페이스의 크기를 한정하는 구성요소로부터 메시지를 수용하는 제 6 인터페이스 방법과, 디스플레이 장치상에서의 디스플레이를 위해 입력 방법에 의해 묘사된 사용자 인터페이스의 위치를 한정하는 구성요소로부터 메시지를 수용하는 제 7 인터페이스 방법을 포함하는 것을 특징으로 하는 컴퓨터 판독 장치.
  20. 제 16 항에 있어서, 입력 방법 관리자가 제 1 입력 방법 편집자를 작동시키도록 지시하는 메시지를 윈도우 관리자로부터 수용하는 제 1 인터페이스 방법과, 입력 방법 관리자가 제 2 입력 방법 편집자를 작동중지시키도록 지시하는 메시지를 윈도우 관리자로부터 수용하는 제 2 인터페이스 방법과, 입력 방법 관리자가 활성 입력 방법 편집자인지를 확인하도록 지시하는 메시지를 윈도우 관리자로부터 수용하는 제 3 인터페이스 방법과, 입력 방법 관리자가 키보드 명령을 다루도록 지시하는 메시지를 윈도우 관리자로부터 수용하는 제 4 인터페이스 방법을 포함하는 것을 특징으로 하는 컴퓨터 판독 매체.
  21. 제 20 항에 있어서, 입력 방법 관리자에 의해 한정된 인터페이스는
    입력 방법 관리자가 입력 방법 관리자로 등록된 입력 방법 편집자의 등록 리스트를 열거하도록 지시하는 메시지를 윈도우 관리자로부터 수용하는 제 5 인터페이스 방법을 부가로 포함하는 것을 특징으로 하는 컴퓨터 판독 매체.
  22. 제 21 항에 있어서, 상기 윈도우 관리자는 입력 방법 편집자로부터 메시지를 수용하는 인터페이스 방법을 구비하는 인터페이스를 포함하는 것을 특징으로 하는 컴퓨터 판독 매체.
  23. 제 22 항에 있어서, 상기 구성요소는 윈도우 관리자로부터 메시지를 수용하는 인터페이스 방법을 포함하는 인터페이스를 형성하는 것을 특징으로 하는 컴퓨터 판독 매체.
KR1019997009067A 1997-04-02 1998-04-01 입력 방법 편집자를 버츄얼 머신에 통합하는 방법 KR20010005989A (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US83197597A 1997-04-02 1997-04-02
US8/831,975 1997-04-02
US09/021,089 US6003050A (en) 1997-04-02 1998-02-10 Method for integrating a virtual machine with input method editors
US9/021,089 1998-02-10

Publications (1)

Publication Number Publication Date
KR20010005989A true KR20010005989A (ko) 2001-01-15

Family

ID=25260340

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019997009067A KR20010005989A (ko) 1997-04-02 1998-04-01 입력 방법 편집자를 버츄얼 머신에 통합하는 방법

Country Status (2)

Country Link
US (1) US6003050A (ko)
KR (1) KR20010005989A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100834603B1 (ko) * 2003-03-13 2008-06-02 인터내셔널 비지네스 머신즈 코포레이션 레거시 운영체제에서 유니코드 입력을 가능하게 하는 장치및 방법

Families Citing this family (80)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7315860B1 (en) 1994-09-01 2008-01-01 Computer Associates Think, Inc. Directory service system and method with tolerance for data entry storage and output
US6052681A (en) 1994-09-01 2000-04-18 Datacraft Technologies Pty. Ltd. X.500 system and methods
US8065338B2 (en) 1995-08-30 2011-11-22 Computer Associates Think, Inc. Directory searching methods and systems
US6393497B1 (en) 1998-03-20 2002-05-21 Sun Microsystems, Inc. Downloadable smart proxies for performing processing associated with a remote procedure call in a distributed system
US6185611B1 (en) 1998-03-20 2001-02-06 Sun Microsystem, Inc. Dynamic lookup service in a distributed system
US6832223B1 (en) 1996-04-23 2004-12-14 Sun Microsystems, Inc. Method and system for facilitating access to a lookup service
US6466947B2 (en) * 1998-03-20 2002-10-15 Sun Microsystems, Inc. Apparatus and method for dynamically verifying information in a distributed system
US6421704B1 (en) * 1998-03-20 2002-07-16 Sun Microsystems, Inc. Method, apparatus, and product for leasing of group membership in a distributed system
US5832529A (en) 1996-10-11 1998-11-03 Sun Microsystems, Inc. Methods, apparatus, and product for distributed garbage collection
US6728737B2 (en) 1996-10-11 2004-04-27 Sun Microsystems, Inc. Method and system for leasing storage
US6237009B1 (en) 1996-10-11 2001-05-22 Sun Microsystems, Inc. Lease renewal service
US6826759B2 (en) * 1997-04-01 2004-11-30 Sun Microsystems, Inc. Method and apparatus for discovering and activating software components
WO1999044296A2 (en) 1998-02-26 1999-09-02 Sun Microsystems, Inc. Apparatus and method for dynamically verifying information in a distributed system
JP2002505473A (ja) 1998-02-26 2002-02-19 サンマイクロシステムズ インコーポレーテッド 決定性ハッシュでリモートメソッドを識別する方法とシステム
US20020046228A1 (en) * 1998-03-20 2002-04-18 Sun Microsystems, Inc. Method and system for facilitating access to a lookup service
US6256637B1 (en) * 1998-05-05 2001-07-03 Gemstone Systems, Inc. Transactional virtual machine architecture
JP2000057146A (ja) * 1998-06-03 2000-02-25 Canon Inc 文字処理装置、文字処理方法、記憶媒体、及び、フォント
US6185491B1 (en) * 1998-07-31 2001-02-06 Sun Microsystems, Inc. Networked vehicle controlling attached devices using JavaBeans™
US6356866B1 (en) * 1998-10-07 2002-03-12 Microsoft Corporation Method for converting a phonetic character string into the text of an Asian language
US6332216B1 (en) * 1999-03-09 2001-12-18 Hewlett-Packard Company Hybrid just-in-time compiler that consumes minimal resource
US6845393B1 (en) 1999-06-14 2005-01-18 Sun Microsystems, Inc. Lookup discovery service in a distributed system having a plurality of lookup services each with associated characteristics and services
US6735759B1 (en) 1999-07-28 2004-05-11 International Business Machines Corporation Editing system for translating displayed user language using a wrapper class
US6275790B1 (en) * 1999-07-28 2001-08-14 International Business Machines Corporation Introspective editor system, program, and method for software translation
US6567973B1 (en) * 1999-07-28 2003-05-20 International Business Machines Corporation Introspective editor system, program, and method for software translation using a facade class
US6311151B1 (en) * 1999-07-28 2001-10-30 International Business Machines Corporation System, program, and method for performing contextual software translations
AUPQ428499A0 (en) 1999-11-26 1999-12-23 Computer Associates Pty. Ltd. A method and apparatus for operating a data base
US6654038B1 (en) * 2000-06-02 2003-11-25 Sun Microsystems, Inc. Keyboard navigation of non-focusable components
US7051278B1 (en) * 2000-07-10 2006-05-23 International Business Machines Corporation Method of, system for, and computer program product for scoping the conversion of unicode data from single byte character sets, double byte character sets, or mixed character sets comprising both single byte and double byte character sets
US7278100B1 (en) 2000-07-10 2007-10-02 International Business Machines Corporation Translating a non-unicode string stored in a constant into unicode, and storing the unicode into the constant
KR20020082347A (ko) * 2001-04-23 2002-10-31 주식회사 에이시스커뮤니케이션스 에이치티엠엘/오씨엑스 기반의 버추얼 키보드 구현방법
US7571389B2 (en) * 2001-05-31 2009-08-04 International Business Machines Corporation System, computer-readable storage device, and method for combining the functionality of multiple text controls in a graphical user interface
US7562306B2 (en) * 2001-05-31 2009-07-14 International Business Machines Corporation System and method for reducing memory use associated with the graphical representation of a list control
US20020191018A1 (en) * 2001-05-31 2002-12-19 International Business Machines Corporation System and method for implementing a graphical user interface across dissimilar platforms yet retaining similar look and feel
US6865733B2 (en) * 2001-06-21 2005-03-08 International Business Machines Corp. Standardized interface between Java virtual machine classes and a host operating environment
US6880002B2 (en) * 2001-09-05 2005-04-12 Surgient, Inc. Virtualized logical server cloud providing non-deterministic allocation of logical attributes of logical servers to physical resources
US7660887B2 (en) 2001-09-07 2010-02-09 Sun Microsystems, Inc. Systems and methods for providing dynamic quality of service for a distributed system
US7756969B1 (en) 2001-09-07 2010-07-13 Oracle America, Inc. Dynamic provisioning of identification services in a distributed system
US20030051029A1 (en) 2001-09-07 2003-03-13 Reedy Dennis G. Dynamic provisioning of sevice components in a distributed system
US7483938B2 (en) * 2001-09-27 2009-01-27 International Business Machines Corporation System for character validation and method therefor
US7574496B2 (en) * 2001-11-30 2009-08-11 Surgient, Inc. Virtual server cloud interfacing
US20030110449A1 (en) * 2001-12-11 2003-06-12 Wolfe Donald P. Method and system of editing web site
US7257584B2 (en) 2002-03-18 2007-08-14 Surgient, Inc. Server file management
US6990666B2 (en) * 2002-03-18 2006-01-24 Surgient Inc. Near on-line server
US7089317B2 (en) * 2002-03-21 2006-08-08 Sun Microsystems, Inc. Architecture for plugging messaging systems into an application server
US7058950B2 (en) * 2002-03-21 2006-06-06 Sun Microsystems, Inc. Callback event listener mechanism for resource adapter work executions performed by an application server thread
US7036110B2 (en) * 2002-03-21 2006-04-25 Sun Microsystems, Inc. Mechanism to manage the lifecycle of a resource adapter
US20030182426A1 (en) * 2002-03-21 2003-09-25 Sun Microsystems, Inc. Apparatus and method of lazy connection transaction enlistment
US7251667B2 (en) * 2002-03-21 2007-07-31 International Business Machines Corporation Unicode input method editor
US7127463B2 (en) 2002-04-18 2006-10-24 International Business Machines Corporation Optimization of database network traffic based upon data-use analysis
US7356523B2 (en) * 2002-05-23 2008-04-08 International Business Machines Corporation Dynamic optimization of prepared statements in a statement pool
EP1632870A3 (en) * 2002-05-02 2006-03-29 Microsoft Corporation System and method for identifying a keystroke for a Far East language character
US7002491B2 (en) * 2002-05-02 2006-02-21 Microsoft Corporation System and method for filtering far east languages
US6650548B1 (en) * 2002-06-05 2003-11-18 Paul A. Swetland Apparatus, method and system for interfacing electronic circuits
JP4202857B2 (ja) * 2003-01-30 2008-12-24 富士通株式会社 プログラム、文字入力編集方法、装置及び記録媒体
US7478408B2 (en) 2003-04-04 2009-01-13 Sesma Systems, Inc. System and method for accessing objects in a platform dependent environment from a platform independent environment
US7490332B2 (en) * 2003-04-04 2009-02-10 Sesma Systems, Inc. System and method for accessing ActiveX objects in a platform dependent environment from objects in a platform independent environment
CA2638965A1 (en) * 2003-05-15 2004-11-15 Ibm Canada Limited - Ibm Canada Limitee Accessing a platform independent input method editor from an underlying operating system
US20040243415A1 (en) * 2003-06-02 2004-12-02 International Business Machines Corporation Architecture for a speech input method editor for handheld portable devices
US7287186B2 (en) 2003-06-02 2007-10-23 Surgient Inc. Shared nothing virtual cluster
CA2432868A1 (en) * 2003-06-20 2004-12-20 Ibm Canada Limited - Ibm Canada Limitee System and method of processing a document targeted for one system on another system
US7769004B2 (en) * 2003-09-26 2010-08-03 Surgient, Inc. Network abstraction and isolation layer for masquerading machine identity of a computer
US7643484B2 (en) * 2003-09-26 2010-01-05 Surgient, Inc. Network abstraction and isolation layer rules-based federation and masquerading
US7634720B2 (en) * 2003-10-24 2009-12-15 Microsoft Corporation System and method for providing context to an input method
US7409693B2 (en) * 2003-10-30 2008-08-05 International Business Machines Corporation Method and system for providing version control of parameters in a command-based API using Java serialization
US7607086B2 (en) * 2003-11-18 2009-10-20 Microsoft Corporation System and method for pre-processing input events
CA2452077A1 (en) * 2003-12-03 2005-06-03 Daniel A. Rose Verification of stream oriented locale files
US7792874B1 (en) 2004-01-30 2010-09-07 Oracle America, Inc. Dynamic provisioning for filtering and consolidating events
CN1315029C (zh) * 2004-06-21 2007-05-09 刘通 对称结构触感定位键盘
US7818755B1 (en) * 2004-12-22 2010-10-19 Apple Inc. Window server event taps
US8078728B1 (en) 2006-03-31 2011-12-13 Quest Software, Inc. Capacity pooling for application reservation and delivery
US7917750B2 (en) * 2006-07-25 2011-03-29 Hewlett-Packard Development Company, L.P. Virtual user authentication system and method
CN101286154B (zh) * 2007-04-09 2016-08-10 谷歌股份有限公司 输入法编辑器用户档案
CN101779200B (zh) * 2007-06-14 2013-03-20 谷歌股份有限公司 词典词和短语确定方法和设备
US8194674B1 (en) 2007-12-20 2012-06-05 Quest Software, Inc. System and method for aggregating communications and for translating between overlapping internal network addresses and unique external network addresses
US8010465B2 (en) 2008-02-26 2011-08-30 Microsoft Corporation Predicting candidates using input scopes
US8862989B2 (en) * 2008-06-25 2014-10-14 Microsoft Corporation Extensible input method editor dictionary
KR101681281B1 (ko) * 2010-04-12 2016-12-12 구글 인코포레이티드 입력 방법 에디터에 대한 확장 프레임워크
US8806481B2 (en) 2010-08-31 2014-08-12 Hewlett-Packard Development Company, L.P. Providing temporary exclusive hardware access to virtual machine while performing user authentication
CN105573816B (zh) * 2015-12-11 2018-12-21 北京奇虎科技有限公司 虚拟输入的方法、装置及系统
US11809839B2 (en) 2022-01-18 2023-11-07 Robert Lyden Computer language and code for application development and electronic and optical communication

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4327421A (en) * 1976-05-13 1982-04-27 Transtech International Corporation Chinese printing system
JPH07104765B2 (ja) * 1990-08-24 1995-11-13 ゼロックス コーポレイション コンピュータ駐在ソフトウエアシステムに対するユーザインタフェースとしての電子的ドキュメント
JPH0594436A (ja) * 1990-10-10 1993-04-16 Fuji Xerox Co Ltd 文書処理装置
KR950008022B1 (ko) * 1991-06-19 1995-07-24 가부시끼가이샤 히다찌세이사꾸쇼 문자처리방법 및 장치와 문자입력방법 및 장치
US5535119A (en) * 1992-06-11 1996-07-09 Hitachi, Ltd. Character inputting method allowing input of a plurality of different types of character species, and information processing equipment adopting the same
DE69330615T2 (de) * 1992-09-14 2002-06-13 Sony Corp Informationsverarbeitungsgerät
US5511193A (en) * 1993-02-19 1996-04-23 Apple Computer, Inc. Text services manager providing multiple instances of input methods for text language processing and automatic synchronization between met hods
US5659769A (en) * 1993-02-19 1997-08-19 Apple Computer, Inc. Text services manager
US5787452A (en) * 1996-05-21 1998-07-28 Sybase, Inc. Client/server database system with methods for multi-threaded data processing in a heterogeneous language environment

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100834603B1 (ko) * 2003-03-13 2008-06-02 인터내셔널 비지네스 머신즈 코포레이션 레거시 운영체제에서 유니코드 입력을 가능하게 하는 장치및 방법

Also Published As

Publication number Publication date
US6003050A (en) 1999-12-14

Similar Documents

Publication Publication Date Title
US6003050A (en) Method for integrating a virtual machine with input method editors
EP0209693B1 (en) Method of maintaining compatibility with different i/o types
US7694229B2 (en) System and theme file format for creating visual styles
US7886309B2 (en) Accessing a platform independent input method editor from an underlying operating system
NO332643B1 (no) Programmeringsgrensesnitt for en datamaskinplattform
US6388686B1 (en) Method, system and computer program product for rotating through a sequence of display states in a multi-field text string class in a graphical user interface
JP2000003274A (ja) コンピュータ上で実行可能なエディタのテキスト要素生成方法及びエディタのテキスト要素生成装置並びにエディタ上にテキスト要素を生成させるように構成されたプログラムを記憶したコンピュータ読み取り可能な記憶媒体
US20040039989A1 (en) Structured forms with configurable labels
US20040036722A1 (en) Configurable type-over text box prompt
EP0972238B1 (en) Method for integrating a virtual machine with input method editors
US6961944B2 (en) Method and system for accessing operating system resources
Kuhn UTF-8 and Unicode FAQ for Unix/Linux
Skansholm Java from the Beginning
Neumann et al. Wafe-An X Toolkit Based Frontend for Application Programs in Various Programming Languages.
Cisco ts9.0-14-tn3270
JPH064280A (ja) ウィズィウィグ式エディターでオブジェクトをユーザ制御する機能を備えたグラフィカル・ユーザ・インターフェース
Cowlishaw LEXX—A programmable structured editor
Robbins Vi and Vim Editors Pocket Reference
Gregory Programming with MotifTM
Stallman et al. XEmacs User’s Manual
Hall Internationalization in Windows NTTM, Part I: Programming with Unicode
Heiberger Emacs Speaks Statistics: One interface—many programs
Al-Salman An Arabic programming environment
JP2001160048A (ja) 文書作成装置における文字属性設定装置及び方法
Yip et al. A framework for the support of multilingual computing environments

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid