KR20120139403A - 게임 서버의 작업 파일 실행 장치 및 방법 - Google Patents
게임 서버의 작업 파일 실행 장치 및 방법 Download PDFInfo
- Publication number
- KR20120139403A KR20120139403A KR1020110059193A KR20110059193A KR20120139403A KR 20120139403 A KR20120139403 A KR 20120139403A KR 1020110059193 A KR1020110059193 A KR 1020110059193A KR 20110059193 A KR20110059193 A KR 20110059193A KR 20120139403 A KR20120139403 A KR 20120139403A
- Authority
- KR
- South Korea
- Prior art keywords
- file
- script
- job
- scheduler
- module
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45508—Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
- G06F9/45512—Command shells
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/468—Specific access rights for resources, e.g. using capability register
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
작업 시 코드의 수정이 자유롭고, 이종의 언어로 구현된 다른 서버와의 통신이 자유로운 파일 실행 및 관리 기술을 제공한다. 본 발명의 실시 예에 따른 게임 서버의 작업 파일 실행 및 관리 장치는, 처리할 작업 파일의 정보를 송출하도록 응용 프로그래밍 언어를 사용하여 구현된 스케줄러; 스크립트 언어로 개발된 복수의 작업 파일들을 저장하는 스크립트 개발 모듈; 및 작업 파일의 정보를 이용하여 스크립트 개발 모듈로부터 처리할 작업 파일을 선택하고, 선택된 작업 파일의 소스 코드 내의 함수 및 파라미터를 호출하여 실행한 결과를 스케줄러에 리턴하는 스크립트 번역 모듈을 포함하는 것을 특징으로 한다.
Description
본 발명은 게임 서버에서 스케줄링 된 작업 파일을 실행 및 관리하는 기술에 관한 것이다. 더욱 자세하게는, 게임 서버를 개발하기 위하여 작성된 파일 등을 수정 및 실행 시, 동작중인 파일의 재시작 없이 자유로운 수정이 가능하고, 다른 게임 서버와의 통신을 자유롭게 이루어지게 하여, 이용성 및 확장성이 높은 파일 실행 및 관리 기술에 관한 것이다.
웹보드 게임을 구동하기 위한 게임 서버의 운영에 있어서, 게임 서버의 운영을 위해서는 처리해야 하는 업무에 따라서 다양한 실행 파일을 개발해야 한다. 게임 서버의 운영에 필요한 실행 파일의 개발에 주로 사용되는 프로그래밍 언어는 C++을 포함하는 일반적인 응용 프로그래밍 언어이다.
응용 프로그래밍 언어는 컴파일 언어로도 불린다. 그 이유는 프로그램 소스 코드를 작성 한 뒤, 컴파일링을 통해 어셈블리 언어인 바이너리 파일로 변환하여 실행하기 때문이다. 응용 프로그래밍 언어는, 컴파일링 후 컴퓨터의 프로세서 및 운영체제만 구비되면 바로 실행이 가능하고, 실행 속도가 빠르다.
게임 서버의 개발 및 운영에 있어서 실행 속도의 확보를 위해 일반적으로 응용 프로그래밍 언어를 사용하고 있다. 그러나, 응용 프로그래밍 언어는 상기 기재된 바와 같이 소스 코드를 바이너리 파일로 변환하는 컴파일 과정을 거쳐 실행해야 하기 때문에, 파일 내용의 수정이 있을 경우, 소스 코드의 수정을 위해 동작 중인 바이너리 파일을 재시작해야 하는 문제점이 지적되어 왔다.
한편, 코드 작성을 위한 언어에는 일반적인 응용 프로그래밍 언어 이외에 스크립트 언어가 있다. 스크립트 언어는, 컴퓨터 프로세서가 아닌 다른 응용 프로그램에 의해 번역 및 수행되기 때문에, 실행 파일이 존재하지 않는 언어이다. 일반적인 응용 프로그래밍 언어에 비하여 빠르게 작성이 가능하지만, 컴파일된 프로그램에 비해 실행시간이 오래 걸리는 단점이 있다.
한편, 게임 서버의 운영 중 실시간으로 파일 내용을 수정해야 할 필요가 있다. 예를 들어, 게임 내에서 한시적으로 특정 아이템을 공개 또는 판매하거나, 새해 특집 이벤트 등을 게임 서버에서 구현할 필요가 있는 것이다. 일반적으로 이러한 경우, 게임 내에서 흔히 볼 수 있는 임시 점검 및 정기 점검 시간에 해당 이벤트를 실행하도록 파일 내용을 수정하는 것이 일반적이다. 파일 내용을 수정 시에는 아이템의 공개 또는 판매 시점 및 이벤트의 실시 시점을 지정하는 타이머를 삽입하여 시점이 도달할 때 상기의 이벤트를 실시하도록 파일이 실행 된다.
이런 경우, 이벤트를 기획 시 서버의 점검 시간에 맞추어야 하기 때문에, 게임 개발자 입장에서 이벤트 기획을 이벤트 중심이 아닌 서버의 점검 시간 중심으로 수행해야 하여, 게임 서버의 운영에 있어서 순발력이 감소하는 문제점이 지적되어 왔다. 또한, 이벤트가 끝나더라도 파일 내용에 이벤트에 해당하는 코드가 다음의 점검 때까지 잔존하기 때문에, 쓰지 않는 코드가 파일 내용에 불필요하게 존재하는 문제가 있다.
이에 본 발명은, 실행 속도가 빠른 응용 프로그래밍 언어를 기반으로 게임 서버의 운영에 필요한 파일을 실행하는 동시에, 자유로운 수정이 가능하여 다양한 작업을 효율적으로 실행할 수 있는 게임 서버의 작업 파일 실행 및 관리 기술을 제공하는 데 그 목적이 있다. 또한, 다른 언어를 사용하는 외부의 게임 서버와의 연동을 자유롭게 하여, 서버 운영에 있어서 확장성을 갖출 수 있는 기술을 제공하는 데 다른 목적이 있다.
본 발명의 상기의 목적을 달성하기 위해, 본 발명의 실시 예에 따른 게임 서버의 작업 파일 실행 및 관리 장치는, 처리할 작업 파일의 정보를 송출하도록 응용 프로그래밍 언어를 사용하여 구현된 스케줄러; 스크립트 언어로 개발된 복수의 작업 파일들을 저장하는 스크립트 개발 모듈; 및 작업 파일의 정보를 이용하여 스크립트 개발 모듈로부터 처리할 작업 파일을 선택하고, 선택된 작업 파일의 소스 코드 내의 함수 및 파라미터를 호출하여 실행한 결과를 스케줄러에 리턴하는 스크립트 번역 모듈을 포함하는 것을 특징으로 한다.
스케줄러는, 주기적으로 처리할 작업이 있는지 여부를 확인하는 신호를 발생하는 타이머; 기저장된 설정파일로부터 처리할 작업이 있는지 판단하고, 처리할 작업에 대응하는 작업 파일의 정보를 추출하는 실행 작업 확인부; 및 추출된 작업 파일의 정보를 스크립트 번역 모듈에 송출하는 스크립트 호출 인터페이스를 포함하는 것을 특징으로 한다.
작업 파일의 정보는, 작업의 이름, 작업 시작 시간, 작업 반복 수행 주기, 작업 파일 이름 및 상기 작업 파일의 소스 코드 내에서 작업을 위해 실행할 로직이 구현되어 있는 함수의 이름에 대한 정보를 포함하고 있다.
게임 서버의 작업 파일 실행 및 관리 장치는, 상기 스케줄러를 통한 외부 게임 서버와의 통신을 요청하고 통신 결과를 상기 스크립트 번역 모듈에 리턴하는 스크립트 확장 모듈을 더 포함할 수 있다.
스크립트 번역 모듈 및 스크립트 확장 모듈은 응용 프로그래밍 언어로 구현되어 스케줄러와 연동하며, DLL(Dynamic Linking Library) 파일인 것을 특징으로 한다.
스크립트 번역 모듈은, 함수 및 파라미터를 응용 프로그래밍 언어 상에서 사용하기 위해 호출하는 번역 어플리케이션과, 호출된 함수 및 파라미터를 실행하기 위해 컴파일하는 내부 컴파일러를 포함한다.
스크립트 확장 모듈은, 함수 및 파라미터 실행 중 외부 게임 서버에서 수행할 작업이 존재하는 것으로 판단될 때 스케줄러에 외부 게임 서버로의 작업 수행에 관한 통신을 요청한다.
본 발명의 실시 예에 따른 게임 서버의 작업 파일 실행 및 관리 방법은, 응용 프로그래밍 언어를 사용하여 개발된 스케줄러가 기저장된 설정파일을 로딩하여 현재 처리할 작업이 있는지 분석하는 단계; 스케줄러가 처리할 작업에 대응하는 작업 파일의 정보를 설정파일로부터 추출하여 송출하는 단계; 스크립트 번역 모듈이 작업 파일의 정보에 따라 스크립트 언어로 개발된 복수의 작업 파일들을 저장하는 스크립트 개발 모듈로부터 작업 파일을 선택하는 단계; 및 스크립트 번역 모듈이 선택된 작업 파일의 소스 코드 내의 함수 및 파라미터를 호출하여 실행한 결과를 스케줄러에 리턴하는 단계를 포함하는 것을 특징으로 한다.
분석하는 단계는, 타이머로부터 주기적으로 발생되는 처리 작업 확인 신호를 수신한 실행 작업 확인부가 설정파일로부터 처리할 작업이 있는지 판단하는 단계를 포함하는 것을 특징으로 한다.
작업 파일의 정보는, 작업의 이름, 작업 시작 시간, 작업 반복 수행 주기, 작업 파일 이름 및 작업 파일의 소스 코드 내에서 작업을 위해 실행할 로직이 구현되어 있는 함수의 이름에 대한 정보를 포함하는 것을 특징으로 한다.
게임 서버의 작업 파일 실행 및 관리 방법은, 스크립트 확장 모듈이 상기 스케줄러를 통한 외부 게임 서버와의 통신을 요청하고 통신 결과를 상기 스크립트 번역 모듈에 리턴하는 단계를 더 포함할 수 있다.
스크립트 번역 모듈 및 스크립트 확장 모듈은 응용 프로그래밍 언어로 구현되어 상기 스케줄러와 연동하되, DLL(Dynamic Linking Library) 파일인 것을 특징으로 한다.
스케줄러에 리턴하는 단계는, 번역 어플리케이션이 함수 및 파라미터를 응용 프로그래밍 언어 상에서 사용하기 위해 호출하는 단계; 및 내부 컴파일러가 호출된 함수 및 파라미터를 실행하기 위해 컴파일하는 단계를 포함하는 것을 특징으로 한다.
스크립트 번역 모듈에 리턴하는 단계는, 컴파일된 함수 및 파라미터 실행 중 외부 게임 서버에서 수행할 작업이 존재하는 것으로 판단될 때 수행된다.
본 발명에 의하면, 컴파일 없이 수행되는 스크립트 언어로 개발된 작업 파일을 컴파일 언어로 구현된 스케줄러, 스크립트 번역 모듈 및 스크립트 확장 모듈에서 실행할 수가 있다. 이에 따라서, 컴파일이 필요 없는 작업 파일 수정 시에는 파일을 재시동할 필요 없이, 작업 파일 수정 시 곧바로 작업 수행에 반영되기 때문에, 실시간으로 작업해야 하는 게임 내의 이벤트 실시 등의 작업 수행에 있어서 편리성이 증가하게 되는 효과가 있다. 또한, 다른 언어로 구현된 외부의 게임 서버와의 통신이 자유롭기 때문에, 작업 파일을 스크립트 언어로 구현하더라도 기능의 이용에 있어서 확장이 자유로운 효과가 있다.
도 1은 본 발명의 실시 예에 따른 게임 서버의 작업 파일 실행 및 관리 장치의 구조도이다.
도 2는 게임 서버의 작업 파일 실행 및 관리 장치의 구현 언어 구분도이다.
도 3은 스케줄러의 상세 구조에 대한 블록도이다.
도 4는 스크립트 파일의 종류가 달라질 때의 구성의 변화를 개략적으로 도시한 것이다.
도 5는 스크립트 번역 모듈의 상세 구조에 대한 블록도이다.
도 6은 스크립트 확장 모듈을 통한 외부 함수 호출 기능을 개략적으로 도시한 것이다.
도 7은 본 발명의 실시 예에 따른 게임 서버의 작업 파일 실행 및 관리 방법의 플로우차트이다.
도 2는 게임 서버의 작업 파일 실행 및 관리 장치의 구현 언어 구분도이다.
도 3은 스케줄러의 상세 구조에 대한 블록도이다.
도 4는 스크립트 파일의 종류가 달라질 때의 구성의 변화를 개략적으로 도시한 것이다.
도 5는 스크립트 번역 모듈의 상세 구조에 대한 블록도이다.
도 6은 스크립트 확장 모듈을 통한 외부 함수 호출 기능을 개략적으로 도시한 것이다.
도 7은 본 발명의 실시 예에 따른 게임 서버의 작업 파일 실행 및 관리 방법의 플로우차트이다.
이하에서는 본 발명의 실시 예에 따른 게임 서버의 작업 파일 실행 및 관리 장치와 그 방법에 대하여 첨부된 도면을 참조하여 상세히 설명하기로 한다. 이하의 설명에서, 각 실시 예는 특허청구범위를 한정하는 것이 아니며, 이와 균등한 실시 예에 대한 발명 역시 본 발명의 권리 범위에 속할 것이다.
또한, 이하의 설명에서 발명의 특징을 불명하게 할 수 있는 기재를 피하기 위해, 종래에 알려진 공지 기술에 대한 설명은 생략하기로 한다. 그리고 이하의 설명에서 동일한 참조부호는 동일한 구성을 지시한다.
도 1은 본 발명의 실시 예에 따른 게임 서버의 작업 파일 실행 및 관리 장치의 구조도이다.
도 1을 참조하면, 본 발명의 실시 예에 따른 게임 서버의 작업 파일 실행 및 관리 장치(100)는, 스크립트 개발 모듈(110), 스크립트 번역 모듈(120), 스크립트 확장 모듈(130) 및 스케줄러(140)를 포함하는 것을 특징으로 한다.
게임 서버의 작업 파일 실행 및 관리 장치(100)는, 전체적으로 스케줄러(140)에서 지정된 시간에 실행할 작업 파일을 스크립트 번역 모듈(120)을 통해 실행하며, 작업 파일 실행 시 필요에 따라서 스크립트 확장 모듈(130)을 통해 스케줄러(140)가 외부의 게임 서버(300)와 통신하도록 하게 된다.
스크립트 개발 모듈(110)에는, 스케줄러(140)가 스크립트 번역 모듈(120)을 통해 실행하는 작업 파일인 스크립트 파일이 작업 단위별로 작성되어 저장되어 있다. 스크립트 파일들은, 스크립트 언어 개발 툴에서 작성되고, 디버깅을 마친 후 스크립트 개발 모듈(110)에 저장된다.
스크립트 파일들은 컴파일링이 필요 없으며, 본 발명에서 실행되는 작업 파일이 스크립트 파일이기 때문에, 개발자들은 개발자 단말(200)을 통해 스크립트 개발 모듈(110)에 접속하여 작업 파일 실행 중에도 자유롭게 스크립트 파일의 코드를 수정할 수 있다. 즉, 스크립트 파일을 수정 시에도 게임 서버의 작업 파일 실행 및 관리 장치(100)의 동작이 계속될 수 있는 것이다.
스크립트 개발 모듈(110)에 저장되는 작업 파일은 지정된 시간에 스케줄러(140)에 의해 처리되는 일을 의미한다. 본 발명에서는 스크립트 언어를 사용하여 개발된 하나의 스크립트 파일이 하나의 작업 파일이 되나, 작업을 구분할 수 있는 수단이라면 복수의 작업 파일이 하나의 스크립트 파일에 존재하거나, 복수개의 스크립트 파일이 하나의 작업 파일로 존재할 수도 있다.
스크립트 개발 모듈(110)에 사용되는 스크립트 언어는 본 발명의 실시 예에서는 파이썬(Python)이 사용된다. 파이썬은 객체지향 프로그래밍 언어로서 가독성을 높이기 위해 프로그램 문장에 들여 쓰기를 사용하는 특징이 있으며, 다른 언어와 연동이 쉽다는 장점이 있다. 그러나, 자바 스크립트(Java Script) 등 파이썬 이외의 스크립트 언어 역시 본 발명에서 사용될 수 있다.
스케줄러(140)는, 응용 프로그래밍 언어(예를 들어 C++)로 작성된 파일 실행 모듈이다. 스케줄러(140)의 기능은 도 3에 대한 설명에서 자세히 하기로 한다.
스케줄러(140)는 처리할 작업 파일의 정보를 스크립트 번역 모듈(120)에 송출하는 기능을 기본적으로 수행한다. 추가적으로, 스케줄러(140)는 스크립트 번역 모듈(120)에 의해 처리된 작업 파일의 실행 결과를 출력하는 기능도 포함할 수 있다.
스케줄러(140)에는 복수의 작업 파일의 정보를 관리하기 위해 구동 초기화 시 기저장된 설정파일을 읽어들인다. 설정파일은 예를 들어 xml 확장자로 된 파일이며, 설정파일에는 수행할 작업의 이름, 작업을 시작할 시간, 작업의 반복 수행을 위한 수행 주기 및 횟수, 그리고 작업에 대응하는 작업 파일의 이름 및 작업 파일의 소스코드 내에서 작업을 위해 실행할 로직이 구현되어 있는 함수의 이름에 대한 정보를 작업 파일의 정보로 저장하고 있다.
스케줄러(140)에는 주기적으로 현재 수행해야 할 작업이 있는지를 확인하기 위한 수단이 존재할 수 있다. 주기적으로 수행해야 할 작업이 있는지는 작업 파일의 정보로서 설정파일에 포함된 작업을 시작할 시간과 현재 확인 시점을 비교하여 판단할 수 있을 것이다. 작업이 있는 경우 스케줄러(140)는 스크립트 번역 모듈(120)에 작업 파일의 정보를 넘겨주어, 스크립트 번역 모듈(120)에서 작업 파일을 실행하도록 한다.
본 발명의 게임 서버의 작업 파일 실행 및 관리 장치(100)에서는 컴파일이 필요한 응용 프로그래밍 언어(예를 들어 C++)로 개발된 구성과 스크립트 언어(예를 들어 파이썬)로 개발된 작업 파일의 구성을 사용한다. 따라서 이종 언어 사이의 번역 및 실행을 담당하는 구성이 필수적이며, 본 발명에서는 상기 기능을 수행하는 구성을 DLL 파일을 갖는 모듈로 따로 분리하여 사용하게 된다.
스케줄러(140)의 실행을 통해 작업 파일을 실행하기 위해서는, 응용 프로그래밍 언어 상에서 스크립트 언어 기반의 작업 파일을 수행하기 위한 번역 및 파일 실행 수단이 필수적이다. 스크립트 번역 모듈(120)은 상기 기능을 수행하기 위한 구성이다.
스크립트 번역 모듈(120)은 스케줄러(140)로부터 수행할 작업에 대응하는 작업 파일의 정보를 수신하고, 이를 이용해 스크립트 개발 모듈(110)로부터 처리할 작업 파일을 선택하게 된다. 이후, 스크립트 번역 모듈(120)은 선택된 작업 파일의 소스코드를 내부적으로 컴파일하여 바이트 코드를 생성하고 실행하게 된다. 이에 의해 작업 파일을 상기 언급한 바와 같이 용이하게 수정할 수 있는 동시에, 컴파일 과정 역시 거치기 때문에 두 번째 실행부터는 실행 속도가 응용 프로그래밍 기반의 파일의 실행과 같이 빨라지는 효과가 있다.
상세하게는, 스크립트 번역 모듈(120)은 응용 프로그래밍 언어를 기반으로 스크립트 언어에서 제공하는 번역 어플리케이션을 이용하여 개발되는 구성이다. 스크립트 번역 모듈(120)은, 작업 파일의 소스 코드 내의 함수 및 파라미터를 함께 호출하게 된다.
본 발명에서 사용되는 스크립트 언어인 파이썬은 멀티 스레드를 지원하기 위해 Global Interpreter Lock(이하 GIL)이라는 뮤텍스를 사용하며, 스크립트 번역 모듈(120)에서는 멀티 스레드 환경에서 동작해야 한다. 따라서, 멀티 스레드에 속하는 모든 스레드 내에서는 파이썬에서 제공하는 어플리케이션(예를 들어 번역 어플리케이션)을 호출하기 전에 GIL을 획득해야 한다. 그렇지 않으면 상기의 번역 어플리케이션이 제대로 동작하지 않을 수 있으며, 획득한 GIL은 어플리케이션 사용 후 풀어주어야 한다.
내부적으로, 작업 파일을 실행하는 도중 스크립트 번역 모듈(120)은 주기적으로 프로세서를 다른 스레드에게 할당하게 된다. 즉, 파이썬에서는 일정 바이트의 작업을 수행하고 나면 다른 스레드에게 제어권을 넘기는 방법으로 멀티 스레드를 지원하게 된다. 이때 파이썬은 각각의 스레드의 상태를 유지하기 위해 각 스레드의 정보를 따로 저장하게 된다.
스크립트 번역 모듈(120)은 상기의 기능을 수행하면서 작업 파일을 읽어들여 실행하게 된다. 스크립트 번역 모듈(120)은 DLL(Dynamic Linking Library) 파일로 구현되었다. 이종 언어의 번역 및 실행을 수행하는 모듈을 스케줄러(140)와 따로 분리하는 것이다. 이는, 추후 다른 스크립트 언어로 개발된 작업 파일을 실행할 필요가 있을 때, 스케줄러(140)은 다른 스크립트 언어와 연동해야 하며, 이때 스케줄러(140)에 포함된 파일의 소스코드를 수정할 필요 없이 이종 언어의 다른 스크립트 번역 모듈(120)만을 교체하여 연동이 가능하도록 하기 위해서이다.
스크립트 번역 모듈(120)에는 작업 파일의 인터페이스를 상속받은 객체의 포인터를 가져오는 함수 및 객체의 포인터를 구동 종료 시 정리하는 함수를 포함하고 있다.
스크립트 번역 모듈(120)에 의해 스크립트 언어를 컴파일 언어의 실행 시 사용할 수 있게 된다. 이에 따라서, 개발자들은 이벤트의 실시 등 실시간으로 게임 실행에 필요한 파일의 내용을 게임 서버의 재부팅 없이 수행할 수 있다. 이에 따라서, 점검 시에만 파일 내용을 수정하여 이벤트 내용을 파일에 삽입 또는 제거할 때보다, 필요 없는 코드의 잔존을 방지할 수 있어 서버 운영의 효율성을 높일 수 있다.
또한, 게임 서버의 운영 시 특정 이벤트에 대한 기획에 있어서도, 서버 점검 시간 중심이 아닌 각 이벤트를 중심으로 이벤트를 기획하여 실시간으로 이를 파일 내용에 반영할 수 있기 때문에, 이벤트 기획에 있어서의 순발력을 높일 수 있는 장점이 있다.
또한, 컴파일 언어로만 게임 서버를 운영하는 경우, 다른 이벤트 실시에 관한 파일 내용의 수정 도중 고정적으로 수행되는 게임 서버의 기능에 관한 프로그램 코드가 오작성될 가능성이 있다. 따라서, 이벤트 등 실시간으로 수정해야 하는 파일을 스크립트 언어로 작성하여 실행하면서, 수정 작업을 하게 되면, 중요 고정 기능을 담당하는 코드를 오작성 할 가능성을 배제할 수 있어, 서버 운영에 있어서 차질을 방지할 수 있는 효과를 기대할 수 있을 것이다.
본 발명의 실시 예에 따른 게임 서버의 작업 파일 실행 및 관리 장치(100)에는, 스크립트 확장 모듈(130)이 포함되어 있다. 스크립트 확장 모듈(130)은 스케줄러(140)로 외부 게임 서버와의 통신을 요청하고, 통신 결과를 스크립트 번역 모듈(120)에 리턴하는 기능을 수행한다.
스크립트 언어를 기반으로 개발된 작업 파일 실행 시, 스크립트 언어 자체에서 제공하는 기능 이외에 추가적인 기능 및 외부 게임 서버(300) 내에서의 작업 수행이 필요한 경우가 있다. 작업 파일 내에서 응용 프로그래밍 언어의 라이브러리를 사용하기 위한 것이 그 예이다. 또한 작업 파일을 수행 시 기존의 다른 외부 게임 서버(300)와 통신 및 작업 연동 수행을 할 필요가 있다.
스크립트 확장 모듈(130)은 스케줄러(140)의 export 함수를 호출하여 스케줄러(140)가 외부 게임 서버(300)들과 통신하여, 작업 결과를 스크립트 번역 모듈(120)에 알려주기 위한 구성이다.
본 발명의 실시 예에서 스크립트 번역 모듈(120) 및 스크립트 확장 모듈(130)은 스크립트 언어에서 제공하는 어플리케이션을 통해 응용 프로그래밍 언어 기반으로 개발될 수 있다.
스크립트 확장 모듈(130) 역시 DLL 파일로 구현되어 있을 수 있다. 스크립트 번역 모듈(120)과 마찬가지로 이종의 스크립트 언어 사이에서 쉽게 스케줄러(140)와 연동시킬 수 있게 하기 위함이다.
스크립트 확장 모듈(130)에서는 스케줄러(140)에 다른 게임 서버와 통신하기 위해 사용되는 함수를 export하게 되는데, 상기의 export 함수는 작업 파일 내에서만 호출하기 때문에 이종의 스크립트 언어에서 독립적으로 프로토 타입을 만들어 사용할 수 있다.
스크립트 확장 모듈(130)에서 외부 게임 서버(300)와 통신을 하는 경우는, 작업 파일의 소스 코드에 포함된 함수 및 파라미터를 호출하여 스크립트 번역 모듈(120)이 실행 중에, 외부 게임 서버(300)에서 수행할 작업이 존재하는 것으로 판단될 때이다. 이때 스크립트 확장 모듈(130)은, 스케줄러(140)에 외부 게임 서버(300)로의 작업 수행에 관한 통신을 요청하게 된다.
예를 들어, 상기 언급한 바와 같이 외부 게임 서버(300)와 연동하여 처리할 작업이 존재하거나, 외부 게임 서버(300)가 구현된 기반 프로그래밍 언어의 기능 중 필요한 기능을 사용해야 할 때가 될 수 있을 것이다.
또한, 스크립트 번역 모듈(120) 및 스크립트 확장 모듈(130)은 파일 형식이 DLL이라고 언급되었으나, 본 발명에서 사용되는 스크립트 언어가 파이썬이기 때문에, 본 발명에서는 스크립트 번역 모듈(120) 및 스크립트 확장 모듈(130)의 기능을 수행하는 파일의 확장자는 pyd가 된다. 파이썬 스크립트 에서는 pyd 파일만을 읽어서 사용하게 된다.
도 2는 게임 서버의 작업 파일 실행 및 관리 장치의 구현 언어 구분도이다. 이하의 설명에서는, 도 1에 대한 설명과 중복되는 부분은 그 설명을 생략하기로 한다.
도 2를 참조하면, 스크립트 개발 모듈(110)에 저장되는 작업 파일인 스크립트 파일(111)은 스크립트 언어로 구현되어 있다. 한편, 서버에서의 작업 파일의 실행을 위해 조작하는 스케줄러(140)는 컴파일 언어인 응용 프로그래밍 언어로 구현되어 있다.
이 둘을 연동하기 위해, 스크립트 번역 모듈(120) 및 스크립트 확장 모듈(130)은 스크립트 언어(예를 들어 파이썬)가 제공하는 어플리케이션을 이용하여 응용 프로그래밍 언어(예를 들어 C++)로 구현되어 있는 것을 특징으로 한다. 이에 따라서, 스케줄러(140)에서 스크립트 파일(111)을 실행하는 것과 같은 효과를 얻을 수 있으며, 스크립트 파일(111)의 교체는 모든 게임 서버의 동작 중에도 자유롭게 이루어질 수 있는 효과가 있다.
도 3은 스케줄러의 상세 구조에 대한 블록도이다.
도 3을 참조하면, 스케줄러는 타이머(141), 실행 작업 확인부(142), 설정파일 저장부(143), 스크립트 호출 인터페이스(144) 및 설정 변경부(145)를 포함한다.
타이머(141)는 주기적으로 현재 처리할 작업이 존재하는지 여부를 확인하는 신호를 발생하는 기능을 수행한다. 타이머(141)에서 신호를 발생하는 시간 및 주기는 본 발명의 게임 서버의 작업 파일 실행 및 관리 장치(100)의 초기화 시에 스케줄러(140)에서 설정파일을 읽을 때 셋팅될 수 있다.
실행 작업 확인부(142)는 타이머(141)에서 신호 발생 시, 설정파일 저장부(143)에 저장된 설정파일로부터 현재 처리할 작업이 있는지 판단하며, 설정파일로부터 처리할 작업에 대응하는 작업 파일의 정보를 추출하는 기능을 수행한다.
스크립트 호출 인터페이스(144)는 실행 작업 확인부(142)로부터 추출된 작업 파일의 정보를 수신하면, 이를 스크립트 번역 모듈(120)에 송출하여 작업 파일을 실행하도록 하는 기능을 수행한다.
설정 변경부(145)는, 설정파일을 작업 파일의 수행 중 수정하기 위한 구성으로서, 설정파일의 내용, 즉 작업 파일의 정보 등이 변경되면 스케줄러(140)는 이를 자동으로 감지하여 설정 파일을 새로 읽어 들여서 작업 수행 일정을 갱신하게 된다.
또한, 스케줄러(140)에는 추가적으로, 외부 게임 서버(300)와의 통신을 위한 통신부(미도시)가 포함되어 있을 수 있다. 통신부는 네트워크 또는 코드 링크 적으로 외부 게임 서버(300)와 연결되어, 작업 파일 실행 중 필요 시 스크립트 확장 모듈(130)로부터의 요청에 따라서 통신 및 작업을 수행하게 될 것이다.
도 4는 스크립트 파일의 종류가 달라질 때의 구성의 변화를 개략적으로 도시한 것이다.
본 발명에서는 작업 파일의 구현 언어로서 스크립트 언어인 파이썬이 사용되고 있으나, Java Script 등 이종의 스크립트 언어가 작업 파일 구현 언어로서 사용될 수도 있다. 도 4에 대한 설명에서는 현재 사용되는 스크립트 언어를 S1, 이종의 스크립트 언어를 S2로 지칭한다. 이에 따라서, 도 4에 표기된 두 쌍의 스크립트 번역 모듈 및 스크립트 확장 모듈 중, S1이 표기된 블록에 포함된 모듈을 제1 스크립트 번역 모듈(120) 및 제1 스크립트 확장 모듈(130), S2가 표기된 블록에 포함된 모듈을 제2 스크립트 번역 모듈(121) 및 제2 스크립트 확장 모듈(131)이라고 한다.
이종의 스크립트 언어로 구현된 스크립트 파일(112)의 실행을 위해서는, 제1 스크립트 번역 모듈(120) 및 제1 스크립트 확장 모듈(130) 역시 이종의 스크립트 언어로 구현된 제2 스크립트 번역 모듈(121) 및 제2 스크립트 확장 모듈(131)로 교체되어야 한다.
상기 언급한 바와 같이 제1 스크립트 번역 모듈(120) 및 제2 스크립트 확장 모듈(130)은 DLL 파일 형식으로 스케줄러(140)와 독립되어 구현되어 있다. 이에 따라서, 스케줄러(140)의 수정 없이 이종의 스크립트 언어(S2)에서 제공하는 어플리케이션을 통해 응용 프로그래밍 언어 상에서 구현된 제2 스크립트 번역 모듈(121) 및 제2 스크립트 확장 모듈(131)로 용이하게 교체하여 사용할 수 있는 것이다. 이를 통해, 스크립트 언어의 제약 없이 자유롭게 서비스를 이용할 수 있는 효과를 얻을 수 있을 것이다.
도 5는 스크립트 번역 모듈의 상세 구조에 대한 블록도이다. 이하의 설명에서, 도 1 내지 4에 대한 설명과 중복되는 부분은 그 설명을 생략하기로 한다.
도 5를 참조하면, 스크립트 번역 모듈(120)은 함수 및 파라미터를 응용 프로그래밍 언어 상에서 사용하기 위해 호출하는 번역 어플리케이션(122) 및 호출된 함수 및 파라미터를 실행하기 위해 작업 파일을 내부적으로 컴파일링하는 내부 컴파일러(123)를 포함한다.
스크립트 번역 모듈(120)은 컴파일된 작업 파일의 소스 코드 내에 존재하는 함수 및 파라미터를 이용해 작업 파일을 실행하는 파일 실행부(124)를 추가적으로 포함할 수 있다.
스크립트 번역 모듈(120)을 통해 스크립트 파일(111)인 작업 파일의 함수 및 파라미터가 호출되면 내부 컴파일러(123) 및 파일 실행부(124)를 통해 작업이 수행된다. 추가적으로 파일의 실행 결과가 스케줄러(140)를 통해 개발자 단말(200)에 출력될 수도 있을 것이다.
도 6은 스크립트 확장 모듈을 통한 외부 함수 호출 기능을 개략적으로 도시한 것이다. 이하의 설명에서 도 1 내지 5에 대한 설명과 중복되는 부분은 그 설명을 생략하기로 한다.
도 6을 참조하면, 스크립트 번역 모듈(120)의 파일 실행부(124)에서 작업 파일이 실행되는 도중, 외부 게임 서버(300)에서의 함수를 호출하고자 하면, 스크립트 확장 모듈(130)로 외부 함수를 호출하는 함수를 리턴하게 된다. 스크립트 확장 모듈(130)은 스케줄러(140)로 외부 게임 서버(300)와의 통신을 요청하게 되며, 스케줄러(140)는 외부 게임 서버(300)와의 통신을 통해 함수를 호출하고 결과를 리턴 받게 된다. 스케줄러(140)는 리턴 받은 결과를 차례로 파일 실행부(124)에 전달함으로써, 파일 실행부(124)에서 작업 파일의 실행을 계속하도록 할 수 있다.
도 7은 본 발명의 실시 예에 따른 게임 서버의 작업 파일 실행 및 관리 방법의 플로우차트이다. 이하의 설명에서, 도 1 내지 6에 대한 설명과 중복되는 부분은 그 설명을 생략하기로 한다.
도 7을 참조하면, 게임 서버의 작업 파일 실행 및 관리 방법의 시퀀스는 다음과 같다.
먼저, 스케줄러(140)는 프로세스 시작 시, 설정 파일을 분석한다(S10). 설정 파일 내에는 타이머(141)로부터 작업 확인용 신호가 발생하는 시간과 주기가 저장되어 있다. 또한 설정 파일 내에는 시간별로 수행해야 할 작업 파일인 스크립트 파일과, 파일 내의 함수 이름이 저장되어 있어, 스케줄러(140)는 이를 읽어와서 시간대별로 작업을 설정하게 된다(S20).
이후 스케줄러(140)는 스크립트 번역 모듈(120)과의 연동을 통해 스크립트 번역 모듈(120)의 작동을 초기화하고 실행을 시작하도록 하여 작업 파일을 실행하도록 한다(S30).
S30 단계 이후부터는 모든 작업이 종료될 때까지 스크립트 번역 모듈(120)에 의해 작업 파일이 주기적으로 확인되는 시간대 별로 실행된다.
작업 파일의 실행 도중, 외부 서버(외부 게임 서버)와의 통신이 필요한지 판단하는 단계(S40)가 계속적으로 실행되며. 외부 게임 서버(300)와의 통신이 필요한 것으로 판단되는 경우, 스크립트 번역 모듈(120)은 스크립트 확장 모듈(130)에 외부 게임 서버(300)와의 통신을 요청하는 함수를 호출하게 된다(S70). 이 경우 스크립트 확장 모듈(130) 및 스케줄러(140)를 통해 외부 게임 서버(300)와 통신 및 작업을 수행하게 된다(S80).
S40, S70, S80 단계를 포함하는 작업 파일 실행 단계는 스크립트 번역 모듈(120) 및 스케줄러(140)의 설정파일을 통해 구동이 종료되는지 여부(S50) 결과에 따라서, 구동이 종료될 때까지 계속적으로 반복된다.
모든 작업 파일의 실행이 종료되는 경우, 스크립트 번역 모듈 내에서 리스팅 및 호출된 함수가 정리되는 단계(S60)가 수행된다.
필요에 따라서, 작업 파일의 구현 기반 스크립트 언어 또는 설정파일이 바뀌는 경우, S10 또는 S30 단계가 다시 수행될 수 있다. 그러나, 이 때에도 스케줄러(140) 내부의 소스 코드를 수정하는 단계는 포함되지 않는다. 즉, 컴파일이 필요한 응용 프로그래밍 언어를 기반으로 구현된 스케줄러(140) 내부의 소스 코드를 수정이 되지 않고 컴파일이 필요 없거나 스케줄러(140)와 독립적인 파일을 포함하여 존재하는 스크립트 번역 모듈(120) 및 스크립트 확장 모듈(130)이 존재하기 때문에, 작업자는 스케줄러(140)의 재 시작 없이 작업의 수정 및 변환을 자유롭게 수행할 수 있다.
스크립트 번역 모듈(120)이 작업 파일을 실행하는 S30 단계는 자세하게는, 먼저 스케줄러(140)가 설정파일로부터 현재 처리할 작업이 있는지 분석하는 단계와, 스케줄러(140)가 처리할 작업에 대응하는 작업 파일의 정보를 설정파일로부터 추출하여 스크립트 번역 모듈(120)에 송출하는 단계를 포함한다.
이후, 스크립트 번역 모듈이 작업 파일의 정보에 따라서 스크립트 언어로 개발된 복수의 작업 파일들을 저장하는 스크립트 개발 모듈로부터 작업 파일을 선택하는 단계가 수행되며, 선택된 작업 파일은 스크립트 번역 모듈(120)에서 작업 파일의 소스 코드 내의 함수 및 파라미터를 호출하는 단계를 통해 실행된다.
Claims (16)
- 처리할 작업 파일의 정보를 송출하도록 응용 프로그래밍 언어를 사용하여 구현된 스케줄러;
스크립트 언어로 개발된 복수의 작업 파일들을 저장하는 스크립트 개발 모듈; 및
상기 스케줄러로부터 송출된 상기 작업 파일의 정보를 이용하여 상기 스크립트 개발 모듈로부터 상기 처리할 작업 파일을 선택하여 수신하고, 선택된 상기 작업 파일의 소스 코드 내의 함수 및 파라미터를 호출하여 상기 작업 파일을 실행하는 스크립트 번역 모듈;을 포함하는 것을 특징으로 하는 게임 서버의 작업 파일 실행 및 관리 장치.
- 제1항에 있어서,
상기 스케줄러는,
주기적으로 처리할 작업이 있는지 여부를 확인하는 신호를 발생하는 타이머;
기저장된 설정파일로부터 상기 처리할 작업이 있는지 판단하고, 상기 처리할 작업에 대응하는 작업 파일의 정보를 추출하는 실행 작업 확인부; 및
추출된 상기 작업 파일의 정보를 상기 스크립트 번역 모듈에 송출하는 스크립트 호출 인터페이스;를 포함하는 것을 특징으로 하는 게임 서버의 작업 파일 실행 및 관리 장치.
- 제2항에 있어서,
상기 작업 파일의 정보는,
작업의 이름, 작업 시작 시간, 작업 반복 수행 주기, 작업 파일의 이름 및 상기 작업 파일의 소스 코드 내에서 작업을 위해 실행할 로직이 구현되어 있는 함수의 이름에 대한 정보 중 적어도 하나 이상을 포함하는 것을 특징으로 하는 게임 서버의 작업 파일 실행 및 관리 장치.
- 제1항에 있어서,
상기 스케줄러를 통한 외부 게임 서버와의 통신을 요청하고 통신 결과를 상기 스크립트 번역 모듈에 리턴하는 스크립트 확장 모듈을 더 포함하는 것을 특징으로 하는 게임 서버의 작업 파일 실행 및 관리 장치.
- 제4항에 있어서,
상기 스크립트 번역 모듈 및 상기 스크립트 확장 모듈은 상기 응용 프로그래밍 언어로 구현되어 상기 스케줄러와 연동하는 것을 특징으로 하는 게임 서버의 작업 파일 실행 및 관리 장치.
- 제4항에 있어서,
상기 스크립트 번역 모듈 및 상기 스크립트 확장 모듈은 DLL(Dynamic Linking Library) 파일로 구현된 것을 특징으로 하는 게임 서버의 작업 파일 실행 및 관리 장치.
- 제5항에 있어서,
상기 스크립트 번역 모듈은,
상기 함수 및 파라미터를 상기 응용 프로그래밍 언어 상에서 사용하기 위해 호출하는 번역 어플리케이션과, 호출된 상기 함수 및 파라미터를 실행하기 위해 컴파일하는 내부 컴파일러를 포함하는 것을 특징으로 하는 게임 서버의 작업 파일 실행 및 관리 장치.
- 제4항에 있어서,
상기 스크립트 확장 모듈은,
상기 함수 및 파라미터 실행 중 상기 외부 게임 서버에서 수행할 작업이 존재하는 것으로 판단될 때 상기 스케줄러에 상기 외부 게임 서버로의 작업 수행에 관한 통신을 요청하는 것을 특징으로 하는 게임 서버의 작업 파일 실행 및 관리 장치.
- 응용 프로그래밍 언어를 사용하여 구현된 스케줄러가 기저장된 설정파일을 로딩하여 현재 처리할 작업이 있는지 분석하는 단계;
상기 스케줄러가 상기 처리할 작업에 대응하는 작업 파일의 정보를 상기 설정파일로부터 추출하여 송출하는 단계;
스크립트 번역 모듈이 상기 작업 파일의 정보에 따라 스크립트 언어로 개발된 복수의 작업 파일들을 저장하는 스크립트 개발 모듈로부터 상기 작업 파일을 선택하는 단계; 및
상기 스크립트 번역 모듈이 선택된 상기 작업 파일의 소스 코드 내의 함수 및 파라미터를 호출하여 실행하는 단계;를 포함하는 것을 특징으로 하는 게임 서버의 작업 파일 실행 및 관리 방법.
- 제9항에 있어서,
상기 분석하는 단계는,
타이머로부터 주기적으로 발생되는 처리 작업 확인 신호를 수신한 실행 작업 확인부가 상기 설정파일로부터 상기 처리할 작업이 있는지 판단하는 단계를 포함하는 것을 특징으로 하는 게임 서버의 작업 파일 실행 및 관리 방법.
- 제9항에 있어서,
상기 작업 파일의 정보는,
작업의 이름, 작업 시작 시간, 작업 반복 수행 주기, 작업 파일 이름 및 상기 작업 파일의 소스 코드 내에서 작업을 위해 실행할 로직이 구현되어 있는 함수의 이름에 대한 정보 중 적어도 하나 이상을 포함하는 것을 특징으로 하는 게임 서버의 작업 파일 실행 및 관리 방법.
- 제9항에 있어서,
스크립트 확장 모듈이 상기 스케줄러를 통한 외부 게임 서버와의 통신을 요청하고 통신 결과를 상기 스크립트 번역 모듈에 리턴하는 단계를 더 포함하는 것을 특징으로 하는 게임 서버의 작업 파일 실행 및 관리 방법.
- 제12항에 있어서,
상기 스크립트 번역 모듈 및 상기 스크립트 확장 모듈은 상기 응용 프로그래밍 언어로 구현되어 상기 스케줄러와 연동하는 것을 특징으로 하는 게임 서버의 작업 파일 실행 및 관리 방법.
- 제12항에 있어서,
상기 스크립트 번역 모듈 및 상기 스크립트 확장 모듈은 DLL(Dynamic Linking Library) 파일로 구현된 것을 특징으로 하는 게임 서버의 작업 파일 실행 및 관리 방법.
- 제13항에 있어서,
상기 실행하는 단계는,
번역 어플리케이션이 상기 함수 및 파라미터를 상기 응용 프로그래밍 언어 상에서 사용하기 위해 호출하는 단계; 및
내부 컴파일러가 호출된 상기 함수 및 파라미터를 실행하기 위해 컴파일하는 단계를 포함하는 것을 특징으로 하는 게임 서버의 작업 파일 실행 및 관리 방법.
- 제15항에 있어서,
상기 스크립트 번역 모듈에 리턴하는 단계는,
컴파일된 상기 함수 및 파라미터 실행 중 상기 외부 게임 서버에서 수행할 작업이 존재하는 것으로 판단될 때 수행되는 것을 특징으로 하는 게임 서버의 작업 파일 실행 및 관리 방법.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110059193A KR101264615B1 (ko) | 2011-06-17 | 2011-06-17 | 게임 서버의 작업 파일 실행 장치 및 방법 |
PCT/KR2012/004482 WO2012173355A2 (ko) | 2011-06-17 | 2012-06-07 | 게임 서버의 작업 파일 실행 장치 및 방법 |
CN2012800007885A CN103180827A (zh) | 2011-06-17 | 2012-06-07 | 游戏服务器中的任务文件执行装置以及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110059193A KR101264615B1 (ko) | 2011-06-17 | 2011-06-17 | 게임 서버의 작업 파일 실행 장치 및 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20120139403A true KR20120139403A (ko) | 2012-12-27 |
KR101264615B1 KR101264615B1 (ko) | 2013-05-27 |
Family
ID=47357575
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020110059193A KR101264615B1 (ko) | 2011-06-17 | 2011-06-17 | 게임 서버의 작업 파일 실행 장치 및 방법 |
Country Status (3)
Country | Link |
---|---|
KR (1) | KR101264615B1 (ko) |
CN (1) | CN103180827A (ko) |
WO (1) | WO2012173355A2 (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018070598A1 (ko) * | 2016-10-14 | 2018-04-19 | 한국전력공사 | 소스코드 변경 영향 평가를 이용한 불법 행위 감시 장치 및 그 방법 |
KR102649690B1 (ko) * | 2023-02-02 | 2024-03-21 | 쿠팡 주식회사 | 전자 장치 및 그의 작업 스케줄 관리 방법 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014209253A1 (en) * | 2013-06-24 | 2014-12-31 | Hewlett-Packard Development Company, L.P. | Generating a logical representation from a physical flow |
CN104679489A (zh) * | 2013-12-02 | 2015-06-03 | 厦门极致互动网络技术有限公司 | 一种在网络游戏客户端中内置网络浏览器的***及方法 |
CN107315576A (zh) * | 2016-04-26 | 2017-11-03 | 中兴通讯股份有限公司 | 一种动态扩展软件流程的方法和*** |
CN108512688A (zh) * | 2017-11-29 | 2018-09-07 | 中国平安人寿保险股份有限公司 | 网络节点配置方法和终端 |
CN109597618B (zh) * | 2018-10-23 | 2020-06-23 | 深圳微迅信息科技有限公司 | 程序开发方法、装置、计算机设备及存储介质 |
CN111803950B (zh) * | 2019-04-26 | 2022-08-16 | 厦门雅基软件有限公司 | 网页游戏的数据处理方法、装置、电子设备及存储介质 |
CN110083358B (zh) * | 2019-04-29 | 2023-06-20 | 南京国电南自轨道交通工程有限公司 | 基于脚本语言的修改牵引自投装置开关编号的工具 |
WO2022032476A1 (zh) * | 2020-08-11 | 2022-02-17 | 厦门雅基软件有限公司 | 网页游戏的数据处理方法、装置、电子设备及计算机可读存储介质 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06236349A (ja) * | 1993-02-10 | 1994-08-23 | Matsushita Electric Ind Co Ltd | コマンドスクリプト解釈処理装置 |
CN1278223C (zh) * | 2003-03-07 | 2006-10-04 | 珠海市西山居软件有限公司 | 应用于电脑游戏的脚本执行方法 |
JP2004086890A (ja) | 2003-08-19 | 2004-03-18 | Hitachi Ltd | アプリケーションプログラムの供給方法、スマートカード、スクリプト供給方法、端末装置およびアプリケーションプログラムを有する記憶媒体 |
JP2005275522A (ja) * | 2004-03-23 | 2005-10-06 | Nomura Research Institute Ltd | バッチ処理システム |
CN100531188C (zh) * | 2004-08-20 | 2009-08-19 | 中兴通讯股份有限公司 | 一种集成***中子***调度和驱动的装置及方法 |
US20080244514A1 (en) * | 2007-03-29 | 2008-10-02 | Microsoft Corporation | Scriptable object model for network based services |
CN101739277A (zh) * | 2009-12-08 | 2010-06-16 | 南京联创科技集团股份有限公司 | 基于自定义脚本方式管理业务监控***的方法 |
-
2011
- 2011-06-17 KR KR1020110059193A patent/KR101264615B1/ko not_active IP Right Cessation
-
2012
- 2012-06-07 WO PCT/KR2012/004482 patent/WO2012173355A2/ko active Application Filing
- 2012-06-07 CN CN2012800007885A patent/CN103180827A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018070598A1 (ko) * | 2016-10-14 | 2018-04-19 | 한국전력공사 | 소스코드 변경 영향 평가를 이용한 불법 행위 감시 장치 및 그 방법 |
KR102649690B1 (ko) * | 2023-02-02 | 2024-03-21 | 쿠팡 주식회사 | 전자 장치 및 그의 작업 스케줄 관리 방법 |
Also Published As
Publication number | Publication date |
---|---|
KR101264615B1 (ko) | 2013-05-27 |
WO2012173355A3 (ko) | 2013-03-28 |
CN103180827A (zh) | 2013-06-26 |
WO2012173355A2 (ko) | 2012-12-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101264615B1 (ko) | 게임 서버의 작업 파일 실행 장치 및 방법 | |
US9514026B2 (en) | Debugging analysis in running multi-user systems | |
JP4901075B2 (ja) | コンピュータ読取可能な媒体、方法及びコンピューティングデバイス | |
US8813035B2 (en) | Paradigm for concurrency testcase generation | |
US8756572B2 (en) | Debugger-set identifying breakpoints after coroutine yield points | |
CN111026601A (zh) | Java应用***的监控方法、装置、电子设备及存储介质 | |
EP3244306B1 (en) | A computer-implemented method for allowing modification of a region of original code | |
US20110126179A1 (en) | Method and System for Dynamic Patching Software Using Source Code | |
CN111382048B (zh) | 真机测试平台上移动设备的管理方法和装置 | |
CN105528231A (zh) | 一种基于中间辅助函数的软件动态升级方法及*** | |
CN108197004B (zh) | Ios应用的方法耗时、加载视图耗时的监测方法及*** | |
KR20140054948A (ko) | 임베디드 시스템을 위한 오픈씨엘 응용 소프트웨어 개발 지원 도구 구성 및 방법 | |
Klotzbücher et al. | Orocos rtt-lua: an execution environment for building real-time robotic domain specific languages | |
CN111176801A (zh) | 一种多进程管理方法、装置、设备及存储介质 | |
CN107179982B (zh) | 一种跨进程调试方法和装置 | |
Marr et al. | A concurrency-agnostic protocol for multi-paradigm concurrent debugging tools | |
Klingler et al. | Beyond@ cloudfunction: Powerful code annotations to capture serverless runtime patterns | |
CN105446886B (zh) | 一种计算机程序调试方法和装置 | |
EP3891613B1 (en) | Software checkpoint-restoration between distinctly compiled executables | |
JP2008135008A (ja) | プログラムモジュール検証方式 | |
EP3619612B1 (en) | Temporary de-optimization of target functions in a cloud debugger | |
KR20130020135A (ko) | 통합 개발 환경에서의 코드 동시 개발자 리스트 제공 시스템 및 방법 | |
Wood et al. | Triton: a domain specific language for cyber-physical systems | |
CN112445607B (zh) | 一种应用程序执行方法函数的方法及装置 | |
US9389838B2 (en) | Method for creating a computer software compiler for client server computing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
A302 | Request for accelerated examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
LAPS | Lapse due to unpaid annual fee |