KR20150063800A - 자바 스크립트가 포함된 html 문서를 이용한 애플리케이션 배포 방법과 그를 위한 장치 및 컴퓨터로 읽을 수 있는 기록매체 - Google Patents

자바 스크립트가 포함된 html 문서를 이용한 애플리케이션 배포 방법과 그를 위한 장치 및 컴퓨터로 읽을 수 있는 기록매체 Download PDF

Info

Publication number
KR20150063800A
KR20150063800A KR1020130148618A KR20130148618A KR20150063800A KR 20150063800 A KR20150063800 A KR 20150063800A KR 1020130148618 A KR1020130148618 A KR 1020130148618A KR 20130148618 A KR20130148618 A KR 20130148618A KR 20150063800 A KR20150063800 A KR 20150063800A
Authority
KR
South Korea
Prior art keywords
target terminal
intermediate language
html document
device information
executable file
Prior art date
Application number
KR1020130148618A
Other languages
English (en)
Other versions
KR101598820B1 (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 KR1020130148618A priority Critical patent/KR101598820B1/ko
Publication of KR20150063800A publication Critical patent/KR20150063800A/ko
Application granted granted Critical
Publication of KR101598820B1 publication Critical patent/KR101598820B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/447Target code generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms

Abstract

애플리케이션(application) 배포 방법은, 인터프리터(interpreter) 언어로 기록된 중간 언어(intermediate language) 변환기 및 중간 언어로 기록된 애플리케이션 코드를 포함하는 HTML(Hyper Text Markup Language) 문서를 생성하는 단계; 및 상기 HTML 문서를 전송하는 단계를 포함할 수 있다. 상기 중간 언어 변환기는, 상기 HTML 문서가 인터프리터에 의해 해석되어 상기 중간 언어 변환기가 실행되는 것에 대한 응답으로 목표 단말기의 장치 정보를 수집하도록 구성될 수 있다. 또한, 상기 중간 언어 변환기는, 수집된 상기 장치 정보를 이용하여 상기 애플리케이션 코드를 상기 목표 단말기에 대응되는 실행파일로 변환하도록 구성될 수 있다.

Description

자바 스크립트가 포함된 HTML 문서를 이용한 애플리케이션 배포 방법과 그를 위한 장치 및 컴퓨터로 읽을 수 있는 기록매체{METHOD FOR DISTRIBUTION OF APPLICATION USING HYPER TEXT MARKUP LANGUAGE DOCUMENT COMPRISING JAVA SCRIPT, APPARATUS AND COMPUTER-READABLE RECORDING MEDIUM WITH PROGRAM THEREFOR}
실시예들은 애플리케이션(application) 배포 방법과 그를 위한 장치 및 컴퓨터로 읽을 수 있는 기록매체에 대한 것이다. 더욱 상세하게는, 실시예들은 자바 스크립트(Java script) 등 인터프리터(interpreter) 언어로 기록된 중간 언어(intermediate language) 변환기와 해당 중간 언어로 기록된 애플리케이션 코드를 포함하는 HTML(Hyper Text Markup Language) 문서를 이용한 애플리케이션 배포 방법과, 그를 위한 장치 및 컴퓨터로 읽을 수 있는 기록매체에 관한 것이다.
프로그램(program)은 프로그래밍 언어(programming language)로 기입된다. 프로그래밍 언어는 컴퓨터에 의해 처리 및 실행될 수 있는 명령의 시퀀스(sequence)를 정의하는데 사용될 수 있는 임의의 인공 언어이다. 그러나, 프로그래밍 언어는 일반적으로 프로그래밍 언어를 사용하여 표현된 소스(source) 코드로부터 컴퓨터 또는 데이터 처리 시스템이 작업하는데 필요한 기계 코드로의, 컴파일러(compiler)와 같은 또 다른 프로그램에 의한 번역 절차를 필요로 한다.
컴파일러에 의한 번역 절차를 필요로 하지 않는 프로그래밍 언어로서, 자바(Java) 언어와 같은 인터프리터(interpreter) 기반의 언어가 있다. 인터프리터 기반의 언어들은 장치의 프로세서(processor)(예컨대, CPU) 명령과 무관한 독자적인 명령어 체계를 구축하고, 별도의 인터프리터를 통하여 이를 해석함으로써 실행된다. 따라서, 인터프리터 기반의 언어를 이용할 경우, 장치 독립적인 실행파일을 구현할 수 있어 이기종 단말기간의 소프트웨어 전송이 가능하다. 그러나, 인터프리터 기반의 언어는 태생적으로 느린 속도를 가지고 있으며, 또한 이를 해석하기 위해서는 미리 단말기에 대응되는 인터프리터가 구비되어 있어야만 하는 한계가 있다.
공개특허공보 제10-2011-0065804호
본 발명의 일 측면에 따르면, 이기종의 단말기 사이에서 파일을 복사하는 것만으로 애플리케이션(application)의 전송이 가능하도록 하는 애플리케이션 배포 방법과, 그를 위한 장치 및 컴퓨터로 읽을 수 있는 기록매체를 제공할 수 있다.
일 실시예에 따른 애플리케이션(application) 배포 방법은, 인터프리터(interpreter) 언어로 기록된 중간 언어(intermediate language) 변환기 및 중간 언어로 기록된 애플리케이션 코드를 포함하는 HTML(Hyper Text Markup Language) 문서를 생성하는 단계; 및 상기 HTML 문서를 전송하는 단계를 포함할 수 있다.
일 실시예에 따른 애플리케이션 배포 장치는, 인터프리터 언어로 기록된 중간 언어 변환기 및 중간 언어로 기록된 애플리케이션 코드를 포함하는 HTML 문서를 생성하도록 구성된 코드 생성부; 및 상기 HTML 문서를 전송하도록 구성된 송신부를 포함하는 개발자 단말기를 포함할 수 있다. 또한, 애플리케이션 배포 장치는 HTML 문서를 읽어들여 중간 언어 변환기를 실행하는 웹 서버(web server)를 더 포함할 수도 있다.
이상의 애플리케이션 배포 방법 및 장치에서, 상기 중간 언어 변환기는, 상기 HTML 문서가 인터프리터에 의해 해석되어 상기 중간 언어 변환기가 실행되는 것에 대한 응답으로 목표 단말기의 장치 정보를 수집하도록 구성될 수 있다. 또한, 상기 중간 언어 변환기는, 수집된 상기 장치 정보를 이용하여 상기 애플리케이션 코드를 상기 목표 단말기에 대응되는 실행파일로 변환하도록 구성될 수 있다.
일 실시예에 따른 컴퓨터로 판독 가능한 기록 매체에는, 데이터 처리 기기에 의해, 전술한 애플리케이션 배포 방법에 사용되는 HTML 문서를 생성하기 위한 프로그램이 기록될 수 있다.
본 발명의 일 측면에 따르면, 자바 스크립트(Java script) 등 인터프리터(interpreter) 언어로 기록된 중간 언어(intermediate language) 변환기와 해당 중간 언어로 기록된 애플리케이션 코드를 포함하는 HTML(Hyper Text Markup Language) 문서를 이용하여 애플리케이션(application)을 전송함으로써, 이기종의 단말기 간에 용이하게 애플리케이션을 배포할 수 있다.
또한, 목표 단말기에 HTML 문서의 해석을 위한 인터프리터(interpreter)가 존재하지 않는 경우에도, 웹 서버(web server)에서 HTML 문서를 읽어들여 목표 단말기에 대응되는 실행파일을 생성함으로써, 인터프리터가 구비되지 않은 목표 단말기에서도 해당 단말기에 최적화된 실행파일의 형태로 애플리케이션을 수신할 수 있다.
도 1은 일 실시예에 따른 애플리케이션 배포 방법에 사용되는 HTML(Hyper Text Markup Language) 문서의 개략적인 구성도이다.
도 2는 일 실시예에 따른 애플리케이션 배포 방법에 사용되는 HTML 문서의 또 다른 개략적인 구성도이다.
도 3은 일 실시예에 따른 애플리케이션 배포 장치의 개략적인 구성을 나타내는 블록도이다.
도 4는 또 다른 실시예에 따른 애플리케이션 배포 장치의 개략적인 구성을 나타내는 블록도이다.
도 5는 실시예들에 따른 애플리케이션 배포 방법 및 장치에서 변환 과정의 출력 형태를 도시하는 예시적인 도면이다.
도 6은 실시예들에 따른 애플리케이션 배포 방법 및 장치에서 중간 언어의 예시적인 변환 과정을 도시하는 순서도이다.
이하에서, 도면을 참조하여 본 발명의 실시예들에 대하여 상세히 살펴본다.
도 1은 일 실시예에 따른 애플리케이션 배포 방법에 사용되는 HTML(Hyper Text Markup Language) 문서의 개략적인 구성도이다.
도 1을 참조하면, HTML 문서(10)는 중간 언어(intermediate language) 변환기(110) 및 애플리케이션 코드(120)를 포함한다. 중간 언어 변환기(110)는 인터프리터(interpreter) 기반의 언어로 작성된다. 예컨대, 중간 언어 변환기(110)는 자바(Java) 프로그래밍 언어로 작성된 자바 스크립트(Java script)일 수 있다. 그러나, 이는 예시적인 것으로서, 중간 언어 변환기(110)는 다른 상이한 인터프리터 기반의 언어로 기록된 코드일 수도 있다. 한편, 애플리케이션 코드(120)는 중간 언어 변환기(110)에 의하여 변환 가능한 중간 언어로 작성된다. 중간 언어 변환기(110)는 애플리케이션 코드(120)를 목표 단말기에서 실행 가능한 실행파일로 변환하기 위한 코드를 포함한다.
보다 구체적으로, 본 명세서에서 "중간 언어"란 플랫폼의 CPU 종류(예컨대, x86, x64, ARM 등) 또는 운영체제의 종류(예컨대, 윈도우(Windows), 리눅스(Linux), OSX, iOS, 안드로이드(Android), 윈도우 모바일, 윈도우 폰 등)와 같은 플랫폼의 특성에 의존하지 않으며, 플랫폼에 대해 독립적인 형태의 언어를 의미한다. "중간 언어"로 기록된 코드는 추후 컴파일(compile) 시에 특정 플랫폼에 대응되는 바이너리(binary) 코드로 변환하여 실행하는 것이 가능하다. 예를 들어, 중간 언어 코드는 소정 규격의 가상머신(Virtual Machine; VM)에 의하여 실행되는 코드일 수 있다.
또한, 본 명세서에서 "인터프리터 언어"란 이를 실행할 플랫폼에서 대응되는 인터프리터를 이용하여 해석되는 언어를 의미한다. 인터프리터 언어로 작성된 코드는 바이너리 코드와 같은 실행파일로 컴파일되지 않으며, 그 대신 플랫폼에 구비된 인터프리터를 이용하여 인터프리터 언어 코드를 해석하는 동시에 실행이 이루어진다. 따라서, "인터프리터 언어"로 기록된 코드는 특정 플랫폼에 대응되는 변환 과정을 요하지 않는 점에서, 실행에 앞서 실행하고자 하는 플랫폼에 대응되는 바이너리 코드 등 실행파일로 컴파일되어야 하는, "중간 언어"로 기록된 코드와 상이하다.
도 1의 실시예에서, 중간 언어 변환기(110)는 인터프리터 언어로 기록되는 반면, 애플리케이션 코드(120)는 중간 언어로 기록된다. 애플리케이션 코드(120)는 배포하고자 하는 애플리케이션에 해당하는 코드이다. 애플리케이션 코드(120)로 기록될 수 있는 애플리케이션은 특정 종류에 한정되지 않으며, 배포하고자 하는 임의의 애플리케이션이 애플리케이션 코드(120)로 기록될 수 있다. 한편, 중간 언어 변환기(110)는 장치 플랫폼을 참조하여 애플리케이션 코드(120)를 실행파일로 변환하기 위한 변환기, 즉, 컴파일러에 해당하는 코드이다.
개발자는 자신의 단말기에서 C, C++ 또는 그 외 다른 프로그래밍 언어를 이용하여 애플리케이션의 소스 코드(source code)를 작성하고, 소스 코드를 중간 언어로 변환함으로써 애플리케이션 코드(120)를 생성할 수 있다. 또한, 개발자는 애플리케이션 코드(120)에 사용된 중간 언어를 추후 목표 단말기에서 실행파일로 변환하기 위한 컴파일러를 인터프리터 언어로 작성함으로써, 중간 언어 변환기(110)를 생성할 수 있다. C 또는 C++ 등의 프로그래밍 언어로 작성된 소스 코드를 중간 언어로 변환하는 방법, 및 중간 언어를 실행파일로 컴파일하기 위한 변환 방법에 대해서는 본 발명의 기술분야에서 잘 알려져 있으므로, 자세한 설명을 생략한다.
한편, 도 2는 일 실시예에 따른 애플리케이션 배포 방법에 사용되는 HTML 문서의 또 다른 개략적인 구성도이다. 도 2는, 도 1에 도시된 HTML 문서(10)가 실제 애플리케이션을 배포하고자 하는 목표 단말기의 정보를 참조하여 변형된 형태 및 이에 의해 생성도니 실행파일(20)을 나타낸다.
목표 단말기 또는 웹 서버(web server)에서 도 1의 HTML 문서(10)를 읽어들이면, 목표 단말기 또는 웹 서버에 탑재된 인터프리터에 의하여 중간 언어 변환기(110)가 실행된다. 중간 언어 변환기(110)는, 애플리케이션이 배포될 목표 단말기의 정보를 수집하기 위한 제1 코드, 및 수집된 정보를 이용하여 애플리케이션 코드(120)를 실행파일로 변환하기 위한 제2 코드를 포함할 수 있다. 도 2에 도시된 HTML 문서(10)에서 장치 정보(130)는, 중간 언어 변환기에서 목표 단말기의 정보를 수집하여 HTML 문서(10) 내에 기록함으로써 생성된다.
또한, 도 2에 도시된 HTML 문서(10)에서 실행파일(20)은, 중간 언어 변환기(110)는 장치 정보(130)를 이용하여 애플리케이션 코드(120)를 변환함으로써 생성된다. 실행파일(20)은 HTML 문서(10)와 별개의 파일로 목표 단말기 내에 생성되거나, 또는 별도의 웹 서버에서 생성되어 목표 단말기로 전송될 수 있다. 실행파일(20)은 애플리케이션을 목표 단말기에서 실제 구동하기 위한 파일로서, 예컨대, 바이너리 코드(binary code)로 되어 있을 수도 있다. 중간 언어 변환기의 구체적인 동작에 대해서는 도 3 및 도 4를 참조하여 상세히 후술한다.
도 3은 일 실시예에 따른 애플리케이션 배포 장치의 개략적인 구성을 나타내는 블록도이다.
도 3을 참조하면, 애플리케이션 배포 장치는 개발자 단말기(30)를 포함할 수 있다. 본 명세서에 기술된 실시예는 전적으로 하드웨어이거나, 부분적으로 하드웨어이고 부분적으로 소프트웨어이거나, 또는 전적으로 소프트웨어인 측면을 가질 수 있다. 본 명세서에서 "부(unit)", "장치", "단말기" 또는 "서버" 등의 용어는 하드웨어 및 해당 하드웨어에 의해 구동되는 소프트웨어의 조합을 지칭하는 것으로 의도된다. 예를 들어, 하드웨어는 CPU 또는 다른 프로세서(processor)를 포함하는 데이터 처리 기기일 수 있다. 또한, 하드웨어에 의해 구동되는 소프트웨어는 실행중인 프로세스, 객체(object), 실행파일(executable), 실행 스레드(thread of execution), 프로그램(program) 등을 지칭할 수 있다.
개발자 단말기(30)는 도 1을 참조하여 전술한 것과 같은 HTML 문서(10)를 생성하기 위한 장치이다. 개발자 단말기(30)는 사용자의 조작 또는 명령에 의해 프로그램 코드를 생성할 수 있으며, 통신망을 경유하여 각종 데이터를 송수신할 수 있는 임의의 단말기일 수 있다. 예컨대, 개발자 단말기(110)는 태블릿 PC(Tablet PC), 랩톱(Laptop), 개인용 컴퓨터(PC: Personal Computer), 스마트폰(Smart Phone), 개인휴대용 정보단말기(PDA: Personal Digital Assistant) 및 이동통신 단말기(Mobile Communication Terminal) 등 중 어느 하나일 수 있으나, 이에 한정되는 것은 아니다.
일 실시예에서, 개발자 단말기(30)는 코드 생성부(310) 및 송신부(320)를 포함할 수 있다. 코드 생성부(310)는 개발자가 HTML 문서(10)를 생성할 수 있도록 하기 위한 부분이다. 코드 생성부(310)는 프로그램 코드를 작성할 수 있는 프로그램(예컨대, 개발자 툴), 프로토콜(protocol)을 저장하기 위한 메모리(memory), 해당 프로그램을 실행하여 연산 및 제어하기 위한 마이크로프로세서(microprocessor) 등을 포함할 수 있다. 송신부(320)는 생성된 HTML 문서(10)를 목표 단말기(40)에 전송하기 위한 부분이다. 예컨대, 송신부(320)는 목표 단말기(40)와 서버-클라이언트(server-client) 방식으로 통신할 수도 있으나, 이에 한정되는 것은 아니다. 한편, 개발자 단말기(30)는 통신망을 통하여 HTML 문서(10)를 생성할 수 있는 클라우드 컴퓨팅(cloud computing)을 지원하는 클라우드 컴퓨팅 단말기일 수도 있다.
개발자는, 개발자 단말기(30)를 이용하여 도 1을 참조하여 전술한 HTML 문서(10)를 생성할 수 있다. 즉, 개발자 단말기(30)에 의해 생성된 HTML 문서(10)는 인터프리터 언어로 기록된 중간 언어 변환기(110) 및 중간 언어로 기록된 애플리케이션 코드(120)를 포함할 수 있다. 생성된 HTML 문서(10)는 송신부(320)를 통하여 목표 단말기(40)에 전송될 수 있다. 예컨대, HTML 문서(10)는 개별 파일의 형태로 목표 단말기(40)에 전송될 수 있다. 또는, HTML 문서(10)는 목표 단말기(40)에 의하여 접속 가능한 웹 페이지(web page)의 일부로 구현되어, 목표 단말기(40)가 해당 웹 페이지에 접속하는 것에 의해 HTML 문서(10)가 목표 단말기(40)에 수신될 수도 있다.
목표 단말기(40)는, 애플리케이션을 배포하고자 하는 대상이 되는 사용자의 단말기이다. 목표 단말기(40)는 통신망을 경유하여 각종 데이터를 송수신할 수 있는 임의의 단말기일 수 있으며, 예컨대, 태블릿 PC(Tablet PC), 랩톱(Laptop), 개인용 컴퓨터(PC: Personal Computer), 스마트폰(Smart Phone), 개인휴대용 정보단말기(PDA: Personal Digital Assistant) 및 이동통신 단말기(Mobile Communication Terminal) 등 중 어느 하나일 수 있으나, 이에 한정되는 것은 아니다.
목표 단말기(40)에는, HTML 문서(10)의 중간 언어 변환기(110)를 해석하기 위한 인터프리터가 미리 구비될 수 있다. 예컨대, 목표 단말기(40)는 목표 단말기(40)에 의해 구동되는 웹 브라우저(web browser)에 의하여 HTML 문서(10)를 읽어들이고, 웹 브라우저에 탑재된 자바 인터프리터를 이용하여 중간 언어 변환기(110)를 해석 및 실행할 수 있다. 중간 언어 변환기가 실행된 결과, 도 2에 도시된 것과 같이 HTML 문서(10) 내에 목표 단말기(40)의 장치 정보(130)가 기록될 수 있으며, 또한 목표 단말기(40)에 대응되는 실행파일(20)이 생성될 수 있다.
이를 위하여 중간 언어 변환기(110)는 목표 단말기(40)의 장치 정보를 수집하기 위한 제1 코드 및 애플리케이션 코드(120)를 실행파일로 변환하기 위한 제2 코드를 포함할 수 있다. 목표 단말기(40)에 의해 구동되는 웹 브라우저 등에 의해 중간 언어 변환기가 실행되면, 중간 언어 변환기는 먼저 목표 단말기(40)의 장치 정보를 수집한다. 수집되는 장치 정보에는 목표 단말기(40)의 CPU의 종류, 운영체제의 종류 및 버전(version) 등이 포함될 수 있다. 또한, 이때 중간 언어 변환기는 HTML 문서(10) 내에 기존에 기록되어 있는 장치 정보가 존재하는지 여부 및 목표 단말기(40)에 기존에 생성된 실행파일이 존재하는지 여부 등의 정보도 장치 정보로서 수집할 수 있다.
만약, 목표 단말기(40) 내에 배포하고자 하는 애플리케이션에 대응되는 실행파일이 존재하지 않으면, 중간 언어 변환기는 수집된 목표 단말기(40)의 장치 정보(130)를 이용하여 목표 단말기(40)에 대응되는 실행파일(20)을 생성할 수 있다. 실행파일(20)은, 중간 언어로 기록된 애플리케이션 코드(120)를 목표 단말기(40)에 대응되는 실행파일(예컨대, 바이너리 코드)로 컴파일함으로써 생성된다. 실행파일(20)이 생성되는 경우, 중간 언어 변환기는 수집된 목표 단말기(40)의 장치 정보를 HTML 문서(10) 내에 장치 정보(130)로서 기록할 수 있다.
만약, 배포하고자 하는 애플리케이션에 대응되는 실행파일이 목표 단말기(40) 내에 이미 존재할 경우, 중간 언어 변환기는 HTML 문서(10) 내에 기록되어 있는 장치 정보(130)가 새로 수집된 장치 정보와 일치하는지 여부를 검사한다. 새로 수집된 장치 정보가 HTML 문서(10)에 기록된 장치 정보(130)와 일치하는 경우에는, 새롭게 실행파일을 생성하지 않고 단지 기존의 실행파일이 목표 단말기(40)에 의해 실행되도록 한다. 목표 단말기(40)에 저장되어 있는 특정 실행파일을 실행시키는 것은, 목표 단말기(40)에 의해 구동되는 웹 브라우저를 이용하여 수행될 수 있다.
새로 수집된 장치 정보가 HTML 문서(10)에 기록된 장치 정보(130)와 상이할 경우에는, 중간 언어 변환기는 목표 단말기(40)에 기존에 저장되어 있는 실행파일을 삭제하고 새로 수집된 장치 정보를 이용하여 목표 단말기(40)에 최적화된 실행파일(20)을 생성할 수 있다. 또한, 중간 언어 변환기는 새로 수집된 장치 정보를 HTML 문서(10) 내에 장치 정보(130)로서 기록할 수 있다.
도 4는 또 다른 실시예에 따른 애플리케이션 배포 장치의 개략적인 구성을 나타내는 블록도이다.
도 4를 참조하면, 본 실시예에 따른 애플리케이션 배포 장치는 개발자 단말기(30) 및 웹 서버(50)를 포함할 수 있다. 도 3을 참조하여 전술한 실시예에서와 마찬가지로, 개발자 단말기(30)는 도 1에 도시된 것과 같은 HTML 문서(10)를 생성할 수 있다. 다만, 도 3의 실시예와 상이하게, 개발자 단말기(30)는 HTML 문서(10)를 직접 목표 단말기(40)에 전송하는 대신 웹 서버(50)에 전송하도록 구성된다.
웹 서버(50)에는 HTML 문서(10)를 해석하기 위한 웹 브라우저가 구동될 수 있다. 웹 서버(50)가 개발자 단말기(30)로부터 수신한 HTML 문서(10)를 웹 브라우저에 의하여 읽어들임으로써, 웹 브라우저에 탑재된 자바 인터프리터에 의하여 중간 언어 변환기가 실행된다. 웹 서버(50)에 의해 실행된 중간 언어 변환기는 애플리케이션이 배포될 목표 단말기(40)의 장치 정보를 수집할 수 있다. 목표 단말기(40)의 정보는 개발자 단말기(30)로부터 HTML 문서(10)와 함께 웹 서버(50)에 전송될 수 있으며, 또는 목표 단말기(40)에서 HTML 문서(10)에 대한 접근을 요청하는 시점에 목표 단말기(40)로부터 웹 서버(50)에 전송될 수도 있다.
중간 언어 변환기는, 수집된 목표 단말기(40)의 장치 정보를 HTML 문서(10)에 기록함으로써 도 2에 도시된 것과 같이 장치 정보(130)를 포함하는 HTML 문서(10)를 생성할 수 있다. 또한, 중간 언어 변환기는 수집된 장치 정보를 이용하여 목표 단말기(40)에 대응되는 실행파일(20)을 생성할 수 있다. 웹 서버(50)에 의해 실행되는 중간 언어 변환기의 구체적인 동작은, 도 3을 참조하여 전술한 실시예에서 목표 단말기(40)에 의해 실행되는 중간 언어 변환기의 동작과 동일하므로 자세한 설명을 생략한다.
목표 단말기(40)에 대응되는 실행파일(20)이 생성되면, 웹 서버(50)는 실행파일(20)을 목표 단말기(40)에 전송할 수 있다. 그 결과, 목표 단말기(40)가 웹 브라우저 등 인터프리터 언어를 해석할 수 있는 인터프리터를 구비하고 있지 않은 경우에도, 목표 단말기(40)는 웹 서버(50)에 접속함으로써 목표 단말기(40)에 최적화된 실행파일(20)을 수신할 수 있다. 예컨대, 웹 서버(50)는 HTML 문서(10)가 포함된 소정의 웹 페이지를 제공하며, 목표 단말기(40)가 웹 서버(50)에 접속하여 해당 웹 페이지에 접근하는 것에 대한 응답으로, 목표 단말기(40)에 대응되는 실행파일(20)을 생성하여 제공할 수 있다.
도 5는 실시예들에 따른 애플리케이션 배포 방법 및 장치에서 변환 과정의 출력 예시를 도시하는 도면이다.
도 3 및 도 5를 참조하면, 목표 단말기(40)가 HTML 문서를 읽어들여 중간 언어 변환기가 실행될 경우, 중간 언어 변환기는 애플리케이션 코드의 실행파일로의 변환 과정에 대한 정보를 목표 단말기(40)상에 표시하여 사용자가 볼 수 있게 할 수 있다. 예컨대, 표시되는 정보는 생성되는 실행파일명, 실행파일의 크기, 실행파일에 관련된 아이콘(icon) 등 관련 이미지, 변환 과정의 진행 정도, 및 실행파일의 날짜 등 기타 정보를 포함할 수 있다.
또는, 도 4및 도 5를 참조하면, 웹 서버(50)가 HTML 문서를 읽어들여 중간 언어 변환기가 실행될 수도 있다. 이 경우, 웹 서버(50)는 도 5에 도시된 것과 같은 화면을 출력하기 위한 정보를 목표 단말기(40)에 전송할 수 있다. 목표 단말기(40)는 웹 서버(50)로부터 변환 과정에 대한 정보를 수신하고, 이를 목표 단말기(40)상에 표시하여 사용자가 볼 수 있게 할 수 있다. 또한, 변환 과정이 완료되면 목표 단말기(40)는 웹 서버(50)로부터 변환된 실행파일을 수신할 수 있다.
도 6은 실시예들에 따른 애플리케이션 배포 방법 및 장치에서 중간 언어의 예시적인 변환 과정을 도시하는 순서도이다. 도 1 및 도 6을 참조하면, 중간 언어 변환기(110)가 실행될 경우 중간 언어 변환기(110)는 도 6에 도시된 순서에 의하여 애플리케이션 코드(120)를 바이너리 코드로 변환할 수 있다.
먼저, 중간 언어로 된 애플리케이션 코드(120)의 각 표현에 대응하는 CPU의 명령어를 선택할 수 있다(S61). 선택된 각 명령어에는 임시 명칭이 부여될 수 있다. 다음으로, 애플리케이션 코드(120)에서 명령어의 제어 흐름을 분석하고(S62), 이에 기반하여 데이터 흐름을 분석할 수 있다(S63). 이상의 단계(S62, S63)는, 제어 흐름 그래프(control flow graph)를 구성하고 이에 기반하여 최적화 알고리즘을 적용함으로써 수행될 수 있다. 다음으로, 사용될 레지스터(register)를 할당할 수 있다(S64). 즉, 목표 단말기의 CPU에서 사용 가능한 레지스터의 수를 고려하여, 코드 치환 및 출력에 효율적으로 사용될 수 있도록 각 레지스터에 값을 할당할 수 있다. 다음으로, 이상의 과정에서 최적화를 이용하여 사용되었던 임시 명칭을 실제 기계 명령어로 치환할 수 있다(S65). 또한, 치환된 기계 명령어를 실행가능한 바이너리 파일의 형태로 최종 변환할 수 있다(S66).
이상에서 도 6을 참조하여 중간 언어 변환기의 동작에 대해 예시적으로 설명하였으나, 이는 예시적인 것으로서, 중간 언어 변환기에 의한 애플리케이션 코드의 변호나 과정은 사용된 인터프리터 언어 및 중간 언어에 따라 상이할 수 있다. 본원발명이 속하는 기술분야에서 통상의 기술자는 HTML 문서에서 중간 언어 변환기에 사용되는 인터프리터 언어 및 해당 중간 언어를 고려하여 적절하게 중간 언어 변환기의 코드를 작성할 수 있으며, 중간 언어 변환기의 구체적인 구성은 통상의 기술자에게 용이하게 이해될 수 있으므로 자세한 설명을 생략한다.
이상에서 설명한 실시예들에 따른 애플리케이션 배포 방법 및 장치에 의하면, 애플리케이션 코드가 중간 언어로 변환되어 HTML 문서의 형태로 배포됨과 동시에, 애플리케이션 코드를 실행파일로 변환하기 위한 변환기 역시 자바 스크립트 등 인터프리터 언어 코드의 형태로 HTML 문서 내에 포함된다. 따라서, 중간 언어 코드를 바이너리 코드로 변환하기 위한 프로그램들이 목표 단말기에 사전에 구비될 필요가 없이, HTML 문서를 인터프리터로 해석하는 것만으로 목표 단말기에 최적화된 실행파일을 생성할 수 있다. 따라서, 목표 단말기에서 추가적인 소프트웨어 설치나 네트워크 접속이 없이도 애플리케이션의 실행파일을 제공받고 실행할 수 있는 이점이 있다.
한편, 실시예들에 따른 애플리케이션 배포 방법은 프로그램으로 구현되고 컴퓨터로 읽을 수 있는 기록매체에 기록될 수 있다. 본 실시예에 따른 애플리케이션 배포 방법을 구현하기 위한 프로그램이 기록되고 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 이러한 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(carrier wave)(예를 들어, 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수도 있다. 또한, 본 실시예를 구현하기 위한 기능적인 프로그램, 코드 및 코드 세그먼트(segment)들은 본 실시예가 속하는 기술 분야의 통상의 기술자에 의해 용이하게 이해될 수 있을 것이다.
이상에서 살펴본 본 발명은 도면에 도시된 실시예들을 참고로 하여 설명하였으나 이는 예시적인 것에 불과하며 당해 분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 실시예의 변형이 가능하다는 점을 이해할 것이다. 그러나, 이와 같은 변형은 본 발명의 기술적 보호범위 내에 있다고 보아야 한다. 따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해서 정해져야 할 것이다.

Claims (21)

  1. 인터프리터 언어로 기록된 중간 언어 변환기 및 중간 언어로 기록된 애플리케이션 코드를 포함하는 HTML 문서를 생성하는 단계; 및
    상기 HTML 문서를 전송하는 단계를 포함하되,
    상기 중간 언어 변환기는, 인터프리터에 의해 상기 중간 언어 변환기가 실행되는 것에 대한 응답으로,
    목표 단말기의 장치 정보를 수집하며,
    수집된 상기 장치 정보를 이용하여, 상기 애플리케이션 코드를 상기 목표 단말기에 대응되는 실행파일로 변환하도록 구성된 것을 특징으로 하는 애플리케이션 배포 방법.
  2. 제 1항에 있어서,
    상기 목표 단말기에서 상기 HTML 문서를 수신하는 단계;
    상기 목표 단말기에서 상기 HTML 문서를 읽어들여 상기 중간 언어 변환기를 실행하는 단계; 및
    상기 중간 언어 변환기가 상기 목표 단말기의 장치 정보를 이용하여 상기 실행파일을 생성하는 단계를 더 포함하는 것을 특징으로 하는 애플리케이션 배포 방법.
  3. 제 2항에 있어서,
    상기 중간 언어 변환기를 실행하는 단계는, 상기 목표 단말기에서 웹 브라우저(web browser)를 이용하여 상기 HTML 문서를 읽어들이는 단계를 포함하는 것을 특징으로 하는 애플리케이션 배포 방법.
  4. 제 1항에 있어서,
    웹 서버에서 상기 HTML 문서를 수신하는 단계;
    상기 웹 서버에서 상기 HTML 문서를 읽어들여 상기 중간 언어 변환기를 실행하는 단계;
    상기 중간 언어 변환기가 상기 목표 단말기의 장치 정보를 이용하여 상기 실행파일을 생성하는 단계; 및
    상기 실행파일을 상기 웹 서버로부터 상기 목표 단말기에 전송하는 단계를 더 포함하는 것을 특징으로 하는 애플리케이션 배포 방법.
  5. 제 4항에 있어서,
    상기 중간 언어 변환기를 실행하는 단계는, 상기 웹 서버에서 웹 브라우저(web browser)를 이용하여 상기 HTML 문서를 읽어들이는 단계를 포함하는 것을 특징으로 하는 애플리케이션 배포 방법.
  6. 제 1항에 있어서,
    상기 중간 언어 변환기는, 상기 목표 단말기의 장치 정보, 상기 HTML 문서에 기록된 장치 정보, 및 상기 목표 단말기 내 실행파일의 존재 여부에 대한 정보를 수집하도록 더 구성된 것을 특징으로 하는 애플리케이션 배포 방법.
  7. 제 6항에 있어서,
    상기 중간 언어 변환기는, 상기 목표 단말기에 실행파일이 존재하지 않을 경우, 수집된 상기 목표 단말기의 장치 정보를 상기 HTML 문서에 기록하도록 더 구성된 것을 특징으로 하는 애플리케이션 배포 방법.
  8. 제 6항에 있어서,
    상기 중간 언어 변환기는,
    상기 목표 단말기에 실행파일이 존재하는 경우, 수집된 상기 목표 단말기의 장치 정보가 상기 HTML 문서 내 장치 정보와 일치하는지 여부를 결정하고,
    수집된 상기 목표 단말기의 장치 정보가 상기 HTML 문서 내 장치 정보와 일치하지 않는다는 결정에 대한 응답으로, 상기 애플리케이션 코드를 상기 실행파일로 변환하도록 더 구성된 것을 특징으로 하는 애플리케이션 배포 방법.
  9. 제 8항에 있어서,
    상기 중간 언어 변환기는, 수집된 상기 목표 단말기의 장치 정보가 상기 HTML 문서 내 장치 정보와 일치하지 않는다는 결정에 대한 응답으로, 상기 목표 단말기에 미리 존재하는 실행파일을 삭제하도록 더 구성된 것을 특징으로 하는 애플리케이션 배포 방법.
  10. 제 1항에 있어서,
    상기 중간 언어 변환기는 자바 스크립트(Java script)인 것을 특징으로 하는 애플리케이션 배포 방법.
  11. 인터프리터 언어로 기록된 중간 언어 변환기 및 중간 언어로 기록된 애플리케이션 코드를 포함하는 HTML 문서를 생성하도록 구성된 코드 생성부; 및
    상기 HTML 문서를 전송하도록 구성된 송신부를 포함하는 개발자 단말기를 포함하되,
    상기 중간 언어 변환기는, 인터프리터에 의해 상기 중간 언어 변환기가 실행되는 것에 대한 응답으로,
    목표 단말기의 장치 정보를 수집하며,
    수집된 상기 장치 정보를 이용하여, 상기 애플리케이션 코드를 상기 목표 단말기에 대응되는 실행파일로 변환하도록 구성된 것을 특징으로 하는 애플리케이션 배포 장치.
  12. 제 11항에 있어서,
    상기 목표 단말기를 더 포함하되, 상기 목표 단말기에 의해 상기 HTML 문서가 해석되어 상기 중간 언어 변환기가 실행되는 것을 특징으로 하는 애플리케이션 배포 장치.
  13. 제 12항에 있어서,
    상기 목표 단말기는 웹 브라우저(web browser)를 이용하여 상기 HTML 문서를 읽어들이도록 구성된 것을 특징으로 하는 애플리케이션 배포 장치.
  14. 제 11항에 있어서,
    상기 개발자 단말기로부터 상기 HTML 문서를 수신하고, 상기 HTML 문서를 읽어들여 상기 중간 언어 변환기를 실행하며, 상기 중간 언어 변환기에 의해 생성된 상기 실행파일을 상기 목표 단말기에 전송하도록 구성된 웹 서버를 더 포함하는 것을 특징으로 하는 애플리케이션 배포 장치.
  15. 제 14항에 있어서,
    상기 웹 서버는 웹 브라우저(web browser)를 이용하여 상기 HTML 문서를 읽어들이도록 구성된 것을 특징으로 하는 애플리케이션 배포 장치.
  16. 제 11항에 있어서,
    상기 중간 언어 변환기는, 상기 목표 단말기의 장치 정보, 상기 HTML 문서에 기록된 장치 정보, 및 상기 목표 단말기 내 실행파일의 존재 여부에 대한 정보를 수집하도록 더 구성된 것을 특징으로 하는 애플리케이션 배포 장치.
  17. 제 16항에 있어서,
    상기 중간 언어 변환기는, 상기 목표 단말기에 실행파일이 존재하지 않을 경우, 수집된 상기 목표 단말기의 장치 정보를 상기 HTML 문서에 기록하도록 더 구성된 것을 특징으로 하는 애플리케이션 배포 장치.
  18. 제 16항에 있어서,
    상기 중간 언어 변환기는,
    상기 목표 단말기에 실행파일이 존재하는 경우, 수집된 상기 목표 단말기의 장치 정보가 상기 HTML 문서 내 장치 정보와 일치하는지 여부를 결정하며,
    수집된 상기 목표 단말기의 장치 정보가 상기 HTML 문서 내 장치 정보와 일치하지 않는다는 결정에 대한 응답으로, 상기 애플리케이션 코드를 상기 실행파일로 변환하도록 더 구성된 것을 특징으로 하는 애플리케이션 배포 장치.
  19. 제 18항에 있어서,
    상기 중간 언어 변환기는, 수집된 상기 목표 단말기의 장치 정보가 상기 HTML 문서 내 장치 정보와 일치하지 않는다는 결정에 대한 응답으로, 상기 목표 단말기에 미리 존재하는 실행파일을 삭제하도록 더 구성된 특징으로 하는 애플리케이션 배포 장치.
  20. 제 11항에 있어서,
    상기 중간 언어 변환기는 자바 스크립트(Java script)인 것을 특징으로 하는 애플리케이션 배포 장치.
  21. 인터프리터 언어로 기록된 중간 언어 변환기 및 중간 언어로 기록된 애플리케이션 코드를 포함하는 HTML 문서를 생성하기 위한 프로그램이 기록된, 컴퓨터로 판독 가능한 기록매체로서,
    상기 중간 언어 변환기는, 인터프리터에 의해 상기 중간 언어 변환기가 실행되는 것에 대한 응답으로,
    목표 단말기의 정보를 수집하며,
    수집된 상기 정보를 이용하여, 상기 애플리케이션 코드를 목표 단말기에 대응되는 실행파일로 변환하도록 구성된 것을 특징으로 하는, 컴퓨터로 판독 가능한 기록 매체.
KR1020130148618A 2013-12-02 2013-12-02 자바 스크립트가 포함된 html 문서를 이용한 애플리케이션 배포 방법과 그를 위한 장치 및 컴퓨터로 읽을 수 있는 기록매체 KR101598820B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130148618A KR101598820B1 (ko) 2013-12-02 2013-12-02 자바 스크립트가 포함된 html 문서를 이용한 애플리케이션 배포 방법과 그를 위한 장치 및 컴퓨터로 읽을 수 있는 기록매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130148618A KR101598820B1 (ko) 2013-12-02 2013-12-02 자바 스크립트가 포함된 html 문서를 이용한 애플리케이션 배포 방법과 그를 위한 장치 및 컴퓨터로 읽을 수 있는 기록매체

Publications (2)

Publication Number Publication Date
KR20150063800A true KR20150063800A (ko) 2015-06-10
KR101598820B1 KR101598820B1 (ko) 2016-03-02

Family

ID=53505490

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130148618A KR101598820B1 (ko) 2013-12-02 2013-12-02 자바 스크립트가 포함된 html 문서를 이용한 애플리케이션 배포 방법과 그를 위한 장치 및 컴퓨터로 읽을 수 있는 기록매체

Country Status (1)

Country Link
KR (1) KR101598820B1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010086595A (ko) * 2001-05-22 2001-09-15 정경호 웹 문서 기반의 원클릭 브이오아이피 서비스 시스템 및 그방법
KR20060082353A (ko) * 2005-01-12 2006-07-18 와이더댄 주식회사 실행가능 웹 컨텐트 제공 및 처리 시스템 및 방법
KR20070067953A (ko) * 2005-12-26 2007-06-29 주식회사 신지소프트 모바일 플랫폼의 중간 언어 변환 장치 및 그 방법
KR20110065804A (ko) 2009-12-10 2011-06-16 주식회사 엘지유플러스 이동 단말기 및 상기 이동 단말기에서 웹 애플리케이션 실행 방법
KR20110080768A (ko) * 2010-01-07 2011-07-13 한국과학기술연구원 C언어 기반의 프로그래밍 언어로 작성된 애플리케이션의 배포 시스템 및 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010086595A (ko) * 2001-05-22 2001-09-15 정경호 웹 문서 기반의 원클릭 브이오아이피 서비스 시스템 및 그방법
KR20060082353A (ko) * 2005-01-12 2006-07-18 와이더댄 주식회사 실행가능 웹 컨텐트 제공 및 처리 시스템 및 방법
KR20070067953A (ko) * 2005-12-26 2007-06-29 주식회사 신지소프트 모바일 플랫폼의 중간 언어 변환 장치 및 그 방법
KR20110065804A (ko) 2009-12-10 2011-06-16 주식회사 엘지유플러스 이동 단말기 및 상기 이동 단말기에서 웹 애플리케이션 실행 방법
KR20110080768A (ko) * 2010-01-07 2011-07-13 한국과학기술연구원 C언어 기반의 프로그래밍 언어로 작성된 애플리케이션의 배포 시스템 및 방법

Also Published As

Publication number Publication date
KR101598820B1 (ko) 2016-03-02

Similar Documents

Publication Publication Date Title
EP3971706B1 (en) Method, apparatus and electronic device for deploying operator in deep learning frame work
US11556348B2 (en) Bootstrapping profile-guided compilation and verification
US9383979B2 (en) Optimizing intermediate representation of script code by eliminating redundant reference count operations
US9152437B2 (en) Dynamically installing image processing
US9152400B2 (en) Eliminating redundant reference count operations in intermediate representation of script code
KR101242479B1 (ko) 어플리케이션 배포 시스템 및 방법
KR101092373B1 (ko) 소프트웨어 패키지의 생성 및 설치를 위한 시스템 및 방법
US9405652B2 (en) Regular expression support in instrumentation languages using kernel-mode executable code
CN111913741B (zh) 对象拦截方法、装置、介质及电子设备
CN107608672B (zh) 一种ui模块管理器、ui模块管理方法和系统
US11321236B2 (en) Reduced instructions to generate global variable addresses
KR101598820B1 (ko) 자바 스크립트가 포함된 html 문서를 이용한 애플리케이션 배포 방법과 그를 위한 장치 및 컴퓨터로 읽을 수 있는 기록매체
CN116431155A (zh) 前端应用构建方法、介质、装置和计算设备
KR101349631B1 (ko) 중간 언어 변환 방법과 그를 위한 시스템 및 컴퓨터로 읽을 수 있는 기록매체
CN111782196A (zh) 基于mvp架构的开发方法及装置
JP2004192038A (ja) 情報処理装置、情報処理システム、情報処理プログラム、および該プログラムを記録した記録媒体
KR101670726B1 (ko) 중간 언어 코드의 디버깅 정보를 이용한 코드 변환 방법과 그를 위한 장치 및 컴퓨터로 읽을 수 있는 기록매체
KR101449657B1 (ko) 연산자의 값의 범위를 이용한 중간 언어 변환 방법과 그를 위한 시스템 및 컴퓨터로 읽을 수 있는 기록매체
KR20110110509A (ko) 원격 프로그래밍 시스템 및 방법
CN115904334A (zh) 代码处理方法、装置、计算机设备及存储介质
KR101598819B1 (ko) 타겟 독립적인 디버깅 정보를 이용한 코드 변환 방법과 그를 위한 장치 및 컴퓨터로 읽을 수 있는 기록매체
KR101288845B1 (ko) 멀티 모바일 서비스 시스템 및 그 방법
KR101349628B1 (ko) 연산자를 이용한 중간 언어 변환 방법과 그를 위한 시스템 및 컴퓨터로 읽을 수 있는 기록매체
CN112291380A (zh) 网络请求处理方法、装置、设备及计算机可读存储介质
CN114816672A (zh) 虚拟机的创建方法、装置、电子设备和存储介质

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20200203

Year of fee payment: 5