KR100798859B1 - 패스트 메모리 액세스 바이트코드를 이용한 이동통신단말기 상에서의 자바 가상 머신 실행 방법 - Google Patents

패스트 메모리 액세스 바이트코드를 이용한 이동통신단말기 상에서의 자바 가상 머신 실행 방법 Download PDF

Info

Publication number
KR100798859B1
KR100798859B1 KR1020060011637A KR20060011637A KR100798859B1 KR 100798859 B1 KR100798859 B1 KR 100798859B1 KR 1020060011637 A KR1020060011637 A KR 1020060011637A KR 20060011637 A KR20060011637 A KR 20060011637A KR 100798859 B1 KR100798859 B1 KR 100798859B1
Authority
KR
South Korea
Prior art keywords
bytecode
field
putfield
virtual machine
java virtual
Prior art date
Application number
KR1020060011637A
Other languages
English (en)
Other versions
KR20070083274A (ko
Inventor
김흥수
Original Assignee
에스케이 텔레콤주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 에스케이 텔레콤주식회사 filed Critical 에스케이 텔레콤주식회사
Priority to KR1020060011637A priority Critical patent/KR100798859B1/ko
Publication of KR20070083274A publication Critical patent/KR20070083274A/ko
Application granted granted Critical
Publication of KR100798859B1 publication Critical patent/KR100798859B1/ko

Links

Images

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
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Abstract

본 발명은 패스트 메모리 액세스 바이트코드를 이용한 이동통신 단말기의 자바 가상 머신 실행 방법에 관한 것이다.
본 발명은 패스트 메모리 액세스 바이트코드를 이용한 이동통신 단말기의 자바 가상 머신 실행 방법에 있어서, (a) 이동통신 단말기에서 애플리케이션을 실행하는 동안에 Putfield 바이트코드를 호출하는 단계; (b) Putfield 바이트코드가 실행되면 목적 필드의 필드 데이터를 변경하는 단계; (c) Putfield 바이트코드를 X-Putfield 바이트코드로 업데이트하는 단계; (d) Putfield 바이트코드의 파라미터인 컨스탄트 풀 인덱스를 오프셋 데이터(Offset Data)로 업데이트하는 단계; (e) X-Putfield 바이트코드를 호출하고, X-Putfield 바이트코드는 파라미터인 오프셋 데이터를 검색하는 단계; (f) 다른 목적 필드의 필드 데이터를 변경하는 단계; 및 (g) 애플리케이션을 종료하여 자바 가상 머신에 대한 종료 신호가 생성되면 X-Putfield 바이트코드를 Putfield 바이트코드로 업데이트하고, 파라미터인 오프셋 데이터를 컨스탄트 풀 인덱스로 업데이트하는 단계를 포함하는 것을 특징으로 하는 패스트 메모리 액세스 바이트코드를 이용한 이동통신 단말기의 자바 가상 머신 실행 방법을 제공한다.
본 발명에 의하면, 이동통신 단말기에서 자바 가상 머신을 실행하여 Putfield와 Getfield를 사용하는 경우 자바 가상 머신이 실행되는 동안 최초 1 회에 Putfield와 Getfield를 사용하고, 최초 1 회 이후에는 Putfield와 Getfield를 X-Putfield와 X-Getfield로 정의하며, Putfield와 Getfield의 컨스탄트 풀 인덱스 파라미터(Constant Pool Index Parameter)를 필드 정보로부터 얻은 오프셋(Offset)으로 업데이트하여 자바 가상 머신의 실행을 제공하는 패스트 메모리 액세스 바이트코드를 이용한 이동통신 단말기의 자바 가상 머신 실행을 제공함으로써, 새로운 애플리케이션을 실행하여 동작하는 동안 클래스, 필드 또는 메쏘드를 검색하여 유효한 데이터인지 점검하는 과정과 클래스, 필드 또는 메쏘드의 사용 가능한지 여부를 점검하는 과정을 최초 1 회만 실행하여 불필요한 반복적인 실행을 하지 않아 이동통신 단말기에서 실행하는 애플리케이션의 실행 속도를 향상시키는 효과가 있다.
자바 가상 머신, JVM, 메모리, 바이트코드, Putfield, Getfield

Description

패스트 메모리 액세스 바이트코드를 이용한 이동통신 단말기 상에서의 자바 가상 머신 실행 방법{Method for Excuting Java Virtual Machine on Mobile Communication Terminal by Using Fast Memory Access Bytecode}
도 1은 본 발명의 바람직한 실시예에 따른 자바 가상 머신에서 패스트 메모리 액세스 바이트코드인 X-Putfield를 실행하는 과정을 나타낸 순서도,
도 2는 본 발명의 바람직한 실시예에 따른 자바 가상 머신에서 패스트 메모리 액세스 바이트코드인 X-Getfield를 실행하는 과정을 나타낸 순서도이다.
본 발명은 패스트 메모리 액세스 바이트코드를 이용한 이동통신 단말기 상에서의 자바 가상 머신 실행 방법에 관한 것이다. 더욱 상세하게는, 이동통신 단말기에서 자바 가상 머신을 실행하여 Putfield와 Getfield를 사용하는 경우 자바 가상 머신이 실행되는 동안 최초 1 회에 Putfield와 Getfield를 사용하고, 최초 1 회 이후에는 Putfield와 Getfield를 X-Putfield와 X-Getfield로 업데이트하며, Putfield와 Getfield의 컨스탄트 풀 인덱스 파라미터(Constant Pool Index Parameter)를 필드 정보로부터 얻은 오프셋(Offset)으로 업데이트하여 자바 가상 머신을 실행하는 패스트 메모리 액세스 바이트코드를 이용한 이동통신 단말기 상에서의 자바 가상 머신 실행 방법에 관한 것이다.
이동통신 시스템은 제 1 세대 아날로그 AMPS(Advanced Mobile Phone System) 방식과, 제 2 세대 셀룰러(Cellular) / 개인 휴대 통신(PCS: Personal Communication Service) 방식을 거쳐 발전하여 왔으며, 최근에는 정보통신의 발달로 ITU-R에서 표준으로 제정하고 있는 제 3 세대 이동통신 시스템인 IMT-2000(International Mobile Telecommunication 2000)이 상용화되고 있다. IMT-2000은 CDMA 2000 1X, 3X, EV-DO, WCDMA(Wideband CDMA) 등으로 기존의 IS-95A, IS-95B 망에서 진화한 IS-95C 망을 이용하여 IS-95A, IS-95B 망에서 지원 가능한 데이터 전송 속도인 14.4 Kbps나 56 Kbps보다 훨씬 빠른 최고 144 Kbps의 전송 속도로 무선 인터넷을 제공할 수 있는 서비스이다. 특히 IMT-2000 서비스를 이용하면 기존의 음성 및 WBS(Wireless Broadcasting Service) 서비스 품질의 향상은 물론 각종 멀티미디어 서비스(AOD, VOD 등)를 보다 빠른 속도로 제공할 수 있다.
또한, 최근에는 전술한 이동통신 시스템이 갖는 무선 인터넷 서비스를 제공하는 데에 있어서의 한계를 극복하기 위한 일환으로서, 이동하면서도 저렴한 요금으로 초고속 무선 인터넷 서비스를 이용할 수 있는 휴대 인터넷 시스템(HPi: High Speed Portable Internet System 또는 WiBro: Wireless Broadband Internet System)에 대한 개발이 진행 중에 있다. 휴대 인터넷 시스템은 노트북, PDA, Handheld PC 등 다양한 형태의 휴대용 단말기를 이용하여 실내 및 실외의 정지 환경에서와 보행 속도 및 중저속 이동 수준의 이동 환경에서 인터넷에 접속하여 다양 한 정보 및 컨텐츠를 이용할 수 있는 서비스이다. 또한, 이동통신 가입자로 하여금 시속 60 km/h의 속도로 이동하면서 무선 인터넷을 이용할 수 있게 하고, 24 Mbps의 하향 전송 속도를 제공하고 MIMO(Multiple Input Multiple Output) 시스템을 적용하면 50 Mbps의 하향 전송 속도까지도 제공할 수 있는 IP(Internet Protocol) 기반의 무선 데이터 시스템이다.
이동통신 가입자는 이러한 이동통신 시스템을 이용하여 이동통신 단말기를 휴대하면서 음성 통신을 수행할 뿐만 아니라, 무선 인터넷(Wireless Internet) 기술을 이용하여 이동통신 시스템을 통해 무선으로 인터넷에 접속하여 문자, 이미지, 음성 또는 동영상 등의 멀티미디어 데이터 서비스를 제공받는다. 이러한 무선 인터넷은 이동통신 가입자가 이동통신 단말기를 이용하여 시간적 또는 공간적 제약 없이 인터넷에 접속하여 다양한 정보를 검색 및 다운로드할 수 있게 한다.
최근에는 인터넷 및 멀티미디어 데이터 기술이 발달함에 따라 멀티미디어 통신, 네트워크 게임, 동영상 게임 등 다양한 컨텐츠를 제공하는 컨텐츠 제공업체(CP: Content Provider)가 등장하고 이동통신 단말기로 컨텐츠 제공업체가 제공하는 다양한 서비스를 이용하고자 하는 이동통신 가입자가 증가하였다.
또한, 이동통신 단말기의 하드웨어도 제공되는 서비스에 맞추어 발전을 거듭하고 있다. 초기 모델이 음성 통화와 단문 메시지 서비스(Short Message Service)만을 지원하였지만, 이동통신 단말기에 카메라를 설치하여 사진을 찍을 수 있도록 하고, 음원을 재생할 수 있는 기능을 가진 모듈을 이동통신 단말기에 장착하여 음악을 재생할 수 있게 하고, 최근에는 위성방송을 수신할 수 있는 모듈을 탑재한 이 동통신 단말기에 이르기까지 하드웨어적인 발전을 거듭하고 있다.
한편, 이동통신 단말기에 제공하는 서비스가 다양해지면서 이동통신 단말기에서 다양한 서비스를 이용하기 위하여 실행하는 애플리케이션도 다양해지고 있다. 이동통신 단말기에서 사용하는 애플리케이션은 자바 가상 머신(Java Vurtual Machine)을 이용하여 만들어진다.
자바(Java)는 객체 지향 프로그래밍 언어로서 클래스(Class)의 집합이다. 클래스는 필드(Field)와 메쏘드(Method)로 구성되고, 이동통신 단말기에서 사용하는 애플리케이션은 각 클래스의 메쏘드를 호출하여 필드 데이터(클래스의 상태)를 변화시킴으로써 프로그램을 실행시킨다. 따라서, 자바의 바이트코드(Bytecode)에는 일반적인 연산뿐만 아니라 클래스에 대한 오퍼레이션(Operation)용 바이트코드도 정의되어 있다.
일반 연산 바이트코드와는 달리 클래스에 대한 바이트코드는 클래스, 필드 및 메쏘드를 검색하는 과정, 상속 및 인터페이스 정의에 의한 실제 메쏘드를 검색하는 과정 및 클래스, 필드 및 메쏘드를 호출하여 실행하는 등의 복잡한 과정을 거쳐야한다.
그러나, 새로운 애플리케이션이 실행되고 동작하는 동안 클래스, 필드, 및 메쏘드를 검색하여 유효한 데이터인지 확인하는 과정과 클래스, 필드 및 메쏘드의 사용 가능 여부를 확인하는 과정은 애플리케이션이 실행되면 최초 1 회만 필요한데, 기존에 정의된 바이트코드인 Putfield와 Getfield를 사용하면 클래스, 필드 및 메쏘드를 검색하여 유효한 데이터인지 확인하는 과정과 클래스, 필드 및 메쏘드의 사용 가능한지 여부를 확인하는 과정을 Putfield와 Getfield를 사용할 때마다 반복적으로 실행하기 때문에 애플리케이션의 실행 속도를 저하시키는 문제점이 있었다.
이러한 문제점을 해결하기 위해 본 발명은, 이동통신 단말기에서 자바 가상 머신을 실행하여 Putfield와 Getfield를 사용하는 경우 자바 가상 머신이 실행되는 동안 최초 1 회에 Putfield와 Getfield를 사용하고, 최초 1 회 이후에는 Putfield와 Getfield를 X-Putfield와 X-Getfield로 업데이트하며, Putfield와 Getfield의 컨스탄트 풀 인덱스 파라미터(Constant Pool Index Parameter)를 필드 정보로부터 얻은 오프셋(Offset)으로 업데이트하여 자바 가상 머신을 실행하는 패스트 메모리 액세스 바이트코드를 이용한 이동통신 단말기 상에서의 자바 가상 머신 실행 방법을 제공하는 것을 그 목적으로 한다.
이러한 목적을 달성하기 위하여, 본 발명의 제 1 목적에 의하면, 패스트 메모리 액세스 바이트코드를 이용한 이동통신 단말기의 자바 가상 머신 실행 방법에 있어서, (a) 이동통신 단말기에서 애플리케이션을 실행하는 동안에 Putfield 바이트코드를 호출하는 단계; (b) Putfield 바이트코드가 실행되면 목적 필드의 필드 데이터를 변경하는 단계; (c) Putfield 바이트코드를 X-Putfield 바이트코드로 업데이트하는 단계; (d) Putfield 바이트코드의 파라미터인 컨스탄트 풀 인덱스를 오프셋 데이터(Offset Data)로 업데이트하는 단계; (e) X-Putfield 바이트코드를 호출하고, X-Putfield 바이트코드는 파라미터인 오프셋 데이터를 검색하는 단계; (f) 다른 목적 필드의 필드 데이터를 변경하는 단계; 및 (g) 애플리케이션을 종료하여 자바 가상 머신에 대한 종료 신호가 생성되면 X-Putfield 바이트코드를 Putfield 바이트코드로 업데이트하고, 파라미터인 오프셋 데이터를 컨스탄트 풀 인덱스로 업데이트하는 단계를 포함하는 것을 특징으로 하는 패스트 메모리 액세스 바이트코드를 이용한 이동통신 단말기의 자바 가상 머신 실행 방법을 제공한다.
또한, 본 발명의 제 2 목적에 의하면, 패스트 메모리 액세스 바이트코드를 이용한 이동통신 단말기의 자바 가상 머신 실행 방법에 있어서, (a) 이동통신 단말기에서 애플리케이션을 실행하는 동안에 Getfield 바이트코드를 호출하는 단계; (b) Getfield 바이트코드가 실행되면 목적 필드가 저장하고 있는 필드 데이터를 획득하여 스택의 가장 윗부분에 저장하는 단계; (c) Getfield 바이트코드를 X-Getfield 바이트코드로 업데이트하는 단계; (d) Getfield 바이트코드의 파라미터인 컨스탄트 풀 인덱스를 오프셋 데이터(Offset Data)로 업데이트하는 단계; (e) X-Getfield 바이트코드를 호출하고, X-Getfield 바이트코드는 파라미터인 오프셋 데이터를 검색하는 단계; (f) 다른 목적 필드가 저장하고 있는 필드 데이터를 획득하여 스택의 가장 윗부분에 저장하는 단계; 및 (g) 애플리케이션을 종료하여 자바 가상 머신에 대한 종료 신호가 생성되면 X-Getfield 바이트코드를 Getfield 바이트코드로 업데이트하고, 파라미터인 오프셋 데이터를 컨스탄트 풀 인덱스로 업데이트하는 단계를 포함하는 것을 특징으로 하는 패스트 메모리 액세스 바이트코드를 이용한 이동통신 단말기의 자바 가상 머신 실행 방법을 제공한다.
이하, 본 발명의 바람직한 실시예를 첨부된 도면들을 참조하여 상세히 설명 한다. 우선 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어서, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
또한, 이하에서는 이동통신 시스템으로서는 CDMA(Code Division Multiple Access) 2000 시스템을 이용한다는 가정 하에서 본 발명을 설명한다. 단, CDMA 2000 시스템은 설명의 편의를 위해 지정한 시스템으로서 본 발명에서 이용되는 이동통신 시스템은 이에 한정되는 것은 아니다.
도 1은 본 발명의 바람직한 실시예에 따른 자바 가상 머신에서 패스트 메모리 액세스 바이트코드인 X-Putfield를 실행하는 과정을 나타낸 순서도이다.
이동통신 단말기에서 애플리케이션을 실행하고 동작하는 동안에 자바 가상 머신에서 오브젝트(Object)의 지정된 목적 필드(Field)에 대한 필드 데이터를 변경하기 위하여 Putfield 바이트코드를 호출한다(S100).
Putfield 바이트코드는 자바 가상 머신에서 오브젝트의 목적 필드에 대한 필드 데이터를 변경하는 작업을 수행하기 위한 바이트코드로서, 2 바이트(Byte)의 컨스탄트 풀 인덱스(Constant Pool Index)를 파라미터로 가지고, 필드 데이터와 오브젝트는 스택(Stack)에 존재한다.
Putfield 바이트코드가 실행되면 컨스탄트 풀 인덱스에서 필드 데이터를 변경할 목적 필드에 대한 정보를 검색하고, 검색한 목적 필드에 대한 정보가 유효한 데이터인지 여부를 확인한다(S102).
본 발명에서 목적 필드에 대한 정보는 오브젝트 내에서 목적 필드의 클래스와 오프셋(Offset) 데이터를 포함하고 있는 정보이다.
단계 S102에서 검색한 목적 필드에 대한 정보가 유효하다고 판단한 경우 목적 필드에 대한 클래스가 로딩되어 있는지 여부를 확인한다(S104).
단계 S102에서 검색한 목적 필드에 대한 정보가 유효하지 않다고 판단한 경우 오류 메시지를 생성하고, 생성한 오류 메시지를 애플리케이션 관리자에게 전송한다(S106).
단계 S104에서 목적 필드에 대한 클래스가 로딩되어 있지 않다고 판단한 경우 클래스 로더를 이용하여 클래스를 메모리에 로딩한다(S108).
단계 S104에서 목적 필드에 대한 클래스가 로딩되어 있다고 판단한 경우 목적 필드에 대한 정보로부터 필드 데이터가 저장된 메모리 주소를 계산하여 목적 필드의 필드 데이터를 변경한다(S110).
목적 필드에 대한 필드 데이터의 변경이 완료되면 Putfield 바이트코드를 X-Putfield 바이트코드로 업데이트한다(S112).
Putfield 바이트코드를 X-Putfield 바이트코드로 업데이트한 후 파라미터인 컨스탄트 풀 인덱스를 오프셋 데이터(Offset Data)로 업데이트한다(S114).
애플리케이션이 실행하는 동안 자바 가상 머신에서 다른 목적 필드에 대한 필드 데이터를 변경하기 위해서는 X-Putfield 바이트코드를 호출하고, X-Putfield 바이트코드는 파라미터인 오프셋을 검색한다(S116).
스택의 오브젝트와 오프셋 데이터로부터 목적 필드의 필드 데이터를 저장할 메모리 주소를 계산하여 목적 필드의 필드 데이터를 변경한다(S118).
애플리케이션을 종료하여 자바 가상 머신에 대한 종료 신호가 생성되면 X-Putfield 바이트코드를 Putfield 바이트코드로 업데이트하고, 파라미터인 오프셋 데이터를 컨스탄트 풀 인덱스로 업데이트한다(S120).
도 2는 본 발명의 바람직한 실시예에 따른 자바 가상 머신에서 패스트 메모리 액세스 바이트코드인 X-Getfield를 실행하는 과정을 나타낸 순서도이다.
이동통신 단말기에서 애플리케이션을 실행하고 동작하는 동안에 자바 가상 머신에서 오브젝트(Object)의 지정된 목적 필드(Field)가 저장하고 있는 필드 데이터를 획득하기 위하여 Getfield 바이트코드를 호출한다(S200).
Getfield 바이트코드는 자바 가상 머신에서 오브젝트의 목적 필드가 저장하고 있는 필드 데이터를 획득하는 작업을 수행하기 위한 바이트코드로서, 2 바이트(Byte)의 컨스탄트 풀 인덱스(Constant Pool Index)를 파라미터로 가지고, 오브젝트는 스택(Stack)에 존재하며, 오브젝트의 목적 필드가 저장하고 있는 필드 데이터를 스택에 저장한다.
Getfield 바이트코드가 실행되면 컨스탄트 풀 인덱스에서 필드 데이터를 획득할 목적 필드에 대한 정보를 검색하고, 검색한 목적 필드에 대한 정보가 유효한 데이터인지 여부를 확인한다(S202).
본 발명에서 목적 필드에 대한 정보는 오브젝트 내에서 목적 필드의 클래스와 오프셋(Offset) 데이터를 포함하고 있는 정보이다.
단계 S202에서 검색한 목적 필드에 대한 정보가 유효하다고 판단한 경우 목적 필드에 대한 클래스가 로딩되어 있는지 여부를 확인한다(S204).
단계 S202에서 검색한 목적 필드에 대한 정보가 유효하지 않다고 판단한 경우 오류 메시지를 생성하고, 생성한 오류 메시지를 애플리케이션 관리자에게 전송한다(S206).
단계 S204에서 목적 필드에 대한 클래스가 로딩되어 있지 않다고 판단한 경우 클래스 로더를 이용하여 클래스를 메모리에 로딩한다(S208).
단계 S204에서 목적 필드에 대한 클래스가 로딩되어 있다고 판단한 경우 목적 필드에 대한 정보로부터 필드 데이터가 저장된 메모리 주소를 계산하여 목적 필드가 저장하고 있는 필드 데이터를 획득하고, 획득한 필드 데이터를 스택의 가장 윗부분에 저장한다(S210).
목적 필드에 대한 필드 데이터의 변경이 완료되면 Getfield 바이트코드를 X-Getfield 바이트코드로 업데이트한다(S212).
Getfield 바이트코드를 X-Getfield 바이트코드로 업데이트한 후 파라미터인 컨스탄트 풀 인덱스를 오프셋 데이터(Offset Data)로 업데이트한다(S214).
애플리케이션이 실행하는 동안 자바 가상 머신에서 다른 목적 필드가 저장하고 있는 필드 데이터를 획득하기 위해서는 X-Getfield 바이트코드를 호출하고, X-Getfield 바이트코드는 파라미터인 오프셋을 검색한다(S216).
스택의 오브젝트와 오프셋 데이터로부터 목적 필드가 저장하고 있는 필드 데이터를 획득할 메모리 주소를 계산하여 목적 필드가 저장하고 있는 필드 데이터를 획득한다(S218).
애플리케이션을 종료하여 자바 가상 머신에 대한 종료 신호가 생성되면 X-Getfield 바이트코드를 Getfield 바이트코드로 업데이트하고, 파라미터인 오프셋 데이터를 컨스탄트 풀 인덱스로 업데이트한다(S220).
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
이상에서 설명한 바와 같이 본 발명에 의하면, 이동통신 단말기 상에서 자바 가상 머신을 실행하여 Putfield와 Getfield를 사용하는 경우 자바 가상 머신이 실행되는 동안 최초 1 회에 Putfield와 Getfield를 사용하고, 최초 1 회 이후에는 Putfield와 Getfield를 X-Putfield와 X-Getfield로 정의하며, Putfield와 Getfield의 컨스탄트 풀 인덱스 파라미터(Constant Pool Index Parameter)를 필드 정보로부터 얻은 오프셋(Offset)으로 업데이트하여 자바 가상 머신의 실행을 제공하는 패스트 메모리 액세스 바이트코드를 이용한 이동통신 단말기의 자바 가상 머신 실행을 제공함으로써, 새로운 애플리케이션을 실행하여 동작하는 동안 클래스, 필드 또는 메쏘드를 검색하여 유효한 데이터인지 점검하는 과정과 클래스, 필드 또는 메쏘드의 사용 가능한지 여부를 점검하는 과정을 최초 1 회만 실행하여 불필요한 반복적인 실행을 하지 않아 이동통신 단말기에서 실행하는 애플리케이션의 실행 속도를 향상시키는 효과가 있다.

Claims (8)

  1. 패스트 메모리 액세스 바이트코드(Fast Memory Access Bytecode)를 이용하여 이동통신 단말기상에서 자바 가상 머신을 실행하는 방법에 있어서,
    (a) 상기 이동통신 단말기에서 애플리케이션을 실행하는 동안에 상기 자바 가상 머신에서 오브젝트(Object)의 목적 필드(Field)에 대한 필드 데이터를 변경하기 위하여 Putfield 바이트코드를 호출하는 단계;
    (b) 상기 Putfield 바이트코드가 실행되면 컨스탄트 풀 인덱스(Constant Pool Index)에서 상기 필드 데이터를 변경할 상기 목적 필드에 대한 정보를 검색하고, 상기 목적 필드의 상기 필드 데이터를 변경하는 단계;
    (c) 상기 목적 필드에 대한 상기 필드 데이터의 변경이 완료되면 상기 Putfield 바이트코드를 X-Putfield 바이트코드로 업데이트하는 단계;
    (d) 상기 컨스탄트 풀 인덱스를 오프셋 데이터(Offset Data)로 업데이트하는 단계;
    (e) 상기 애플리케이션이 실행하는 동안 상기 자바 가상 머신에서 다른 목적 필드에 대한 상기 필드 데이터를 변경하기 위하여 상기 X-Putfield 바이트코드를 호출하고, 상기 X-Putfield 바이트코드는 파라미터인 상기 오프셋 데이터를 검색하는 단계;
    (f) 스택의 오브젝트와 오프셋 데이터로부터 상기 다른 목적 필드의 상기 필드 데이터를 저장할 메모리 주소를 계산하여 상기 다른 목적 필드의 상기 필드 데이터를 변경하는 단계; 및
    (g) 상기 애플리케이션을 종료하여 상기 자바 가상 머신에 대한 종료 신호가 생성되면 상기 X-Putfield 바이트코드를 상기 Putfield 바이트코드로 업데이트하고, 파라미터인 상기 오프셋 데이터를 상기 컨스탄트 풀 인덱스로 업데이트하는 단계
    를 포함하는 것을 특징으로 하는 패스트 메모리 액세스 바이트코드를 이용하여 이동통신 단말기 상에서 자바 가상 머신을 실행하는 방법.
  2. 제 1 항에 있어서, 상기 Putfield 바이트코드는,
    상기 자바 가상 머신에서 상기 오브젝트의 상기 목적 필드에 대한 상기 필드 데이터를 변경하는 작업을 수행하기 위한 바이트코드로서, 2 바이트(Byte)의 상기 컨스탄트 풀 인덱스를 파라미터로 가지는 것을 특징으로 하는 패스트 메모리 액세스 바이트코드를 이용하여 이동통신 단말기 상에서 자바 가상 머신을 실행하는 방법.
  3. 제 1 항에 있어서,
    상기 단계 (b)는,
    (b1) 상기 Putfield 바이트코드가 실행되면 상기 컨스탄트 풀 인덱스에서 상기 필드 데이터를 변경할 상기 목적 필드에 대한 정보를 검색하는 단계;
    (b2) 검색한 상기 목적 필드에 대한 정보가 유효한 데이터인지 여부를 확인하는 단계;
    (b3) 상기 단계 (b2)에서 검색한 상기 목적 필드에 대한 정보가 유효하다고 판단한 경우 상기 목적 필드에 대한 클래스가 로딩되어 있는지 여부를 확인하는 단계;
    (b4) 상기 단계 (b2)에서 검색한 상기 목적 필드에 대한 정보가 유효하지 않다고 판단한 경우 오류 메시지를 생성하고, 생성한 오류 메시지를 애플리케이션 관 리자에게 전송하는 단계;
    (b5) 상기 단계 (b3)에서 상기 목적 필드에 대한 상기 클래스가 로딩되어 있다고 판단한 경우 상기 목적 필드에 대한 정보로부터 상기 필드 데이터가 저장된 메모리 주소를 계산하여 상기 목적 필드의 상기 필드 데이터를 변경하는 단계; 및
    (b6) 상기 단계 (b3)에서 상기 목적 필드에 대한 상기 클래스가 로딩되어 있지 않다고 판단한 경우 클래스 로더를 이용하여 상기 클래스를 메모리에 로딩하는 단계
    를 포함하는 것을 특징으로 하는 패스트 메모리 액세스 바이트코드를 이용하여 이동통신 단말기 상에서 자바 가상 머신을 실행하는 방법.
  4. 제 3 항에 있어서, 상기 목적 필드에 대한 정보는,
    상기 오브젝트 내에서 상기 목적 필드의 상기 클래스와 상기 오프셋 데이터를 포함하고 있는 정보인 것을 특징으로 하는 패스트 메모리 액세스 바이트코드를 이용하여 이동통신 단말기 상에서 자바 가상 머신을 실행하는 방법.
  5. 패스트 메모리 액세스 바이트코드(Fast Memory Access Bytecode)를 이용하여 이동통신 단말기 상에서 자바 가상 머신 실행하는 방법에 있어서,
    (a) 상기 이동통신 단말기에서 애플리케이션을 실행하는 동안에 Getfield 바이트코드를 호출하는 단계;
    (b) 상기 Getfield 바이트코드가 실행되면 목적 필드가 저장하고 있는 필드 데이터를 획득하여 스택의 가장 윗부분에 저장하는 단계;
    (c) 상기 Getfield 바이트코드를 X-Getfield 바이트코드로 업데이트하는 단계;
    (d) 상기 Getfield 바이트코드의 파라미터인 컨스탄트 풀 인덱스를 오프셋 데이터(Offset Data)로 업데이트하는 단계;
    (e) 상기 X-Getfield 바이트코드를 호출하고, 상기 X-Getfield 바이트코드는 파라미터인 상기 오프셋 데이터를 검색하는 단계;
    (f) 다른 목적 필드가 저장하고 있는 필드 데이터를 획득하여 상기 스택의 가장 윗부분에 저장하는 단계; 및
    (g) 상기 애플리케이션을 종료하여 상기 자바 가상 머신에 대한 종료 신호가 생성되면 상기 X-Getfield 바이트코드를 상기 Getfield 바이트코드로 업데이트하고, 파라미터인 상기 오프셋 데이터를 상기 컨스탄트 풀 인덱스로 업데이트하는 단계
    를 포함하는 것을 특징으로 하는 패스트 메모리 액세스 바이트코드를 이용하여 이동통신 단말기 상에서 자바 가상 머신을 실행하는 방법.
  6. 제 5 항에 있어서, 상기 Getfield 바이트코드는,
    상기 목적 필드가 저장하고 있는 상기 필드 데이터를 획득하는 작업을 수행하기 위한 바이트코드로서, 2 바이트(Byte)의 상기 컨스탄트 풀 인덱스를 파라미터로 가지는 것을 특징으로 하는 패스트 메모리 액세스 바이트코드를 이용하여 이동통신 단말기 상에서 자바 가상 머신을 실행하는 방법.
  7. 제 5 항에 있어서,
    상기 단계 (b)는,
    (b1) 상기 Getfield 바이트코드가 실행되면 상기 컨스탄트 풀 인덱스에서 상기 필드 데이터를 획득할 상기 목적 필드에 대한 정보를 검색하는 단계;
    (b2) 검색한 상기 목적 필드에 대한 정보가 유효한 데이터인지 여부를 확인하는 단계;
    (b3) 상기 단계 (b2)에서 검색한 상기 목적 필드에 대한 정보가 유효하다고 판단한 경우 상기 목적 필드에 대한 클래스가 로딩되어 있는지 여부를 확인하는 단계;
    (b4) 상기 단계 (b2)에서 검색한 상기 목적 필드에 대한 정보가 유효하지 않다고 판단한 경우 오류 메시지를 생성하고, 생성한 오류 메시지를 애플리케이션 관리자에게 전송하는 단계;
    (b5) 상기 단계 (b3)에서 상기 목적 필드에 대한 상기 클래스가 로딩되어 있다고 판단한 경우 상기 목적 필드에 대한 정보로부터 상기 필드 데이터가 저장된 메모리 주소를 계산하여 상기 목적 필드가 저장하고 있는 상기 필드 데이터를 획득하고, 획득한 상기 필드 데이터를 상기 스택의 가장 윗부분에 저장하는 단계; 및
    (b6) 상기 단계 (b3)에서 상기 목적 필드에 대한 상기 클래스가 로딩되어 있 지 않다고 판단한 경우 클래스 로더를 이용하여 상기 클래스를 메모리에 로딩하는 단계
    를 포함하는 것을 특징으로 하는 패스트 메모리 액세스 바이트코드를 이용하여 이동통신 단말기 상에서 자바 가상 머신을 실행하는 방법.
  8. 제 7 항에 있어서, 상기 목적 필드에 대한 정보는,
    상기 오브젝트 내에서 상기 목적 필드의 상기 클래스와 상기 오프셋 데이터를 포함하고 있는 정보인 것을 특징으로 하는 패스트 메모리 액세스 바이트코드를 이용하여 이동통신 단말기 상에서 자바 가상 머신을 실행하는 방법.
KR1020060011637A 2006-02-07 2006-02-07 패스트 메모리 액세스 바이트코드를 이용한 이동통신단말기 상에서의 자바 가상 머신 실행 방법 KR100798859B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060011637A KR100798859B1 (ko) 2006-02-07 2006-02-07 패스트 메모리 액세스 바이트코드를 이용한 이동통신단말기 상에서의 자바 가상 머신 실행 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060011637A KR100798859B1 (ko) 2006-02-07 2006-02-07 패스트 메모리 액세스 바이트코드를 이용한 이동통신단말기 상에서의 자바 가상 머신 실행 방법

Publications (2)

Publication Number Publication Date
KR20070083274A KR20070083274A (ko) 2007-08-24
KR100798859B1 true KR100798859B1 (ko) 2008-01-29

Family

ID=38612641

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060011637A KR100798859B1 (ko) 2006-02-07 2006-02-07 패스트 메모리 액세스 바이트코드를 이용한 이동통신단말기 상에서의 자바 가상 머신 실행 방법

Country Status (1)

Country Link
KR (1) KR100798859B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109933410B (zh) * 2019-03-22 2021-06-01 北京智游网安科技有限公司 一种基于虚拟化技术的虚拟指令下发方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990078122A (ko) * 1998-03-23 1999-10-25 썬 마이크로시스템즈, 인코포레이티드 컴파일을 마친 코드에서 동적 클래스 초기화 검사의 비용을 줄이는 기술
KR20060017046A (ko) * 2004-08-19 2006-02-23 엘지전자 주식회사 이동 통신 단말기의 자바 어플리케이션 실행 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990078122A (ko) * 1998-03-23 1999-10-25 썬 마이크로시스템즈, 인코포레이티드 컴파일을 마친 코드에서 동적 클래스 초기화 검사의 비용을 줄이는 기술
KR20060017046A (ko) * 2004-08-19 2006-02-23 엘지전자 주식회사 이동 통신 단말기의 자바 어플리케이션 실행 방법

Also Published As

Publication number Publication date
KR20070083274A (ko) 2007-08-24

Similar Documents

Publication Publication Date Title
JP4597973B2 (ja) 移動通信フレームワークにおいてコンテンツ/セキュリティ分析機能にアクセスするためのapiシステム、方法、及びコンピュータプログラム製品
JP4597974B2 (ja) 移動通信装置を使用してコンテンツ/コンテクストの高感度スキャニングを行うシステム、方法及びコンピュータプログラム製品
JP4597975B2 (ja) 移動通信フレームワークに使用するためのプラットホーム独立のスキャニングサブシステム
JP4448849B2 (ja) 移動通信フレームワークにおいてスキャニングサブシステムを更新するための更新システム及び方法
CN102521284B (zh) 基于移动终端浏览器的页面截图处理方法和装置
KR101593359B1 (ko) 라우팅 결정 컨텍스트 객체
US20120102195A1 (en) System and method for providing information relating to an email being provided to an electronic device
CN109408132A (zh) 一种配置文件处理方法及服务器、用户终端、存储介质
JP2016123103A (ja) モバイル機器
US20060084478A1 (en) Most frequently used contact information display for a communication device
TW201029422A (en) Methods, apparatuses, and computer program products for determining a network interface to access a network resource
KR101198437B1 (ko) 컨텍스트 트리거형 배포 방법, 장치 및 컴퓨터 판독 가능한 저장매체
US20070220498A1 (en) Method, mobile terminal and computer program product for interworking via a card application toolkit
MX2007015279A (es) Sistema, terminal, entidad de red, metodo, y producto de programa de computadora para selecciion de sistema en un sistema de comunicacion de modos multiples.
US9246798B2 (en) Message handling extension using context artifacts
US20090216716A1 (en) Methods, Apparatuses and Computer Program Products for Providing a Search Form
US20060085519A1 (en) Method and apparatus providing domain-based cache storage for a mobile internet browser
US20150088883A1 (en) Subscriber record context objects
KR100798859B1 (ko) 패스트 메모리 액세스 바이트코드를 이용한 이동통신단말기 상에서의 자바 가상 머신 실행 방법
CN114124889B (zh) 确定业务服务器地址的方法和通信装置
US8280943B1 (en) Managing service provider messaging
US20110078317A1 (en) Electronic apparatus with router device for managing connections
US8423002B2 (en) Obtaining location server address on a mobile device
WO2009106677A1 (en) Methods, apparatuses, and computer program products, for automatically finding configuration settings for services
KR100608150B1 (ko) 무선인터넷 서비스 시스템을 위한 무선컨텐츠 다운로드시스템 및 그 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
J201 Request for trial against refusal decision
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20111209

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20121228

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee