KR102118666B1 - 웹브라우저를 위한 라이브러리 구동 및 업데이트 방법, 장치 및 프로그램 - Google Patents

웹브라우저를 위한 라이브러리 구동 및 업데이트 방법, 장치 및 프로그램 Download PDF

Info

Publication number
KR102118666B1
KR102118666B1 KR1020190063471A KR20190063471A KR102118666B1 KR 102118666 B1 KR102118666 B1 KR 102118666B1 KR 1020190063471 A KR1020190063471 A KR 1020190063471A KR 20190063471 A KR20190063471 A KR 20190063471A KR 102118666 B1 KR102118666 B1 KR 102118666B1
Authority
KR
South Korea
Prior art keywords
library
web browser
file
processor
command
Prior art date
Application number
KR1020190063471A
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 (주)토마토시스템
Priority to KR1020190063471A priority Critical patent/KR102118666B1/ko
Application granted granted Critical
Publication of KR102118666B1 publication Critical patent/KR102118666B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

웹브라우저를 위한 라이브러리 구동 및 업데이트 방법으로서, 웹브라우저에 웹소켓 규격의 연결모듈이 설치되고, 라이브러리 파일을 포함하는 로컬 리소스와 상기 웹브라우저에 연결되도록 라이브러리 처리기가 설치되는 준비단계와; 상기 웹브라우저에서 라이브러리의 기능이 필요할 때, 상기 웹브라우저에서 상기 연결모듈을 통해 명령과 데이터가 전송되면서 상기 라이브러리 처리기에 라이브러리 호출메시지가 전송되는 호출단계와; 상기 라이브러리 처리기 내의 로더에 상기 로컬 리소스로부터 상기 라이브러리 파일이 로드되는 로드단계와; 로드된 상기 라이브러리 파일을 이용하여 상기 라이브러리 처리기 내의 웹소켓 미들웨어에서 상기 명령과 데이터가 처리되는 처리단계와; 상기 명령과 데이터의 처리결과가 상기 라이브러리 처리기로부터 상기 웹브라우저에 상기 연결모듈을 통해 리턴되는 리턴단계를 포함하여 이루어짐을 특징으로 한다.

Description

웹브라우저를 위한 라이브러리 구동 및 업데이트 방법, 장치 및 프로그램 {METHOD, APPARATUS AND PROGRAM FOR DRIVING AND UPDATING LIBRARIES FOR WEB BROWSER}
본 발명은, 웹브라우저를 위한 라이브러리 구동 및 업데이트 방법, 장치 및 프로그램에 관한 것으로서, 웹브라우저의 기능을 확장시킬 수 있는 외부 모듈 라이브러리를 수정 없이 구동 가능하고 신속 정확하게 외부 모듈 라이브러리의 개선사항을 업데이트할 수 있는 방법, 장치 및 프로그램에 관한 것이다.
일반적으로, 인터넷 통신을 통해 데이터를 주고 받고 그 처리결과를 유저 인터페이스하기 위해 웹브라우저가 이용되고 있다. 이러한 웹브라우저는, 기본적으로 통신에 관한 기능을 위주로 구성된 프로그램이다.
그런데, 경우에 따라서는, 통신 이외의 기능이 웹브라우저에 필요한 경우가 있다. 예컨대 웹 데이터를 이용한 통계처리나 그래픽, 수학연산, 게임 등의 전문적 기능이 필요할 수 있다. 원래의 웹브라우저에는 이런 기능이 결여돼 있다.
따라서, 종래부터 액티브X나 DLL 등과 같은 외부 모듈 라이브러리와 웹브라우저 사이의 연동기술이 이용되어 왔다. 이러한 외부 모듈 라이브러리는, 웹브라우저로부터 제어를 넘겨받아, 웹브라우저에 부족한 기능을 처리한 후, 제어를 다시 웹브라우저에 넘겨준다.
예컨대 인터넷 익스플로러(TM)의 액티브X나, 예컨대 크롬(TM)의 NPAPI 등이 이러한 외부 모듈 라이브러리에 해당된다. 이들 외부 모듈 라이브러리는, 실행파일 형태로 되어 있는 경우가 많다. 따라서, 처리속도가 빠르다는 장점이 있었다.
그런데, 최근의 웹브라우저는, HTML5 등과 같이 그 기능이 크게 향상되었다. 그래서 외부 모듈 라이브러리의 도움을 받을 필요성이 많이 없어졌다. 게다가 외부 모듈 라이브러리를 가장한 악성코드 등으로 인해 보안에 문제를 야기하는 경우가 많아짐으로써, 최근 웹브라우저에 있어서는 외부 모듈 라이브러리의 사용 자제촉구, 내지는 사용불허, 지원철회(연동기능 차단) 등의 움직임마저 대두되고 있는 상황이다.
하지만, HTML5 등의 웹브라우저 강화스펙에도 구비되어 있지 않거나 구비되어 있더라도 불편하거나 성능이 흡족하지 않은 기능이 있을 수 있다. 웹브라우저에서 외부 모듈 라이브러리 연동기능이 없어진 상황에서는, 외부 모듈 라이브러리 없이 웹브라우저에 다양한 기능을 구현하는 것은 곤란하거나 불가능하다. 이러한 기능은 결국 개발자가 개발해야 하는 것이다. 그러므로, 외부 모듈 라이브러리 연동기능이 없는 웹브라우저에서 외부 모듈 라이브러리를 이용할 수 있도록 하는 기술의 출현이 필요하다.
한편, 외부 모듈 라이브러리 연동기능이 없는 웹브라우저에서 이용되는 외부 모듈 라이브러리의 업데이트 과정에서, 악성코드의 혼입 가능성을 철저히 배격하고, 신속 정확히 업데이트가 필요한 부분만 선별하여 업데이트 가능한 기술의 출현이 요청된다.
종래에, 도 9에 나타낸 바와 같이, '로컬 서버 역할을 하는 프로그램을 설치하여 웹페이지가 로컬 서버를 호출하면 로컬 서버가 웹페이지로부터 데이터를 전달받아 실행하고, 실행 결과를 웹페이지에 전달함을 특징으로 하는 액티브X 대체 기술'이 개시(하기 특허문헌 참조)되어 있다.
특허공개 10-2017-0027230 공보
그런데, 상기 특허문헌의 기술은, 요청(request)과 응답(response)을 주고받는 HTTP에 의하여 통신하도록 되어 있으므로, 1회 연결 후에도 자유롭게 데이터를 송수신할 수 있는 것은 아니어서, 통신속도가 매우 느리다는 단점이 있다.
그리고 상기 특허문헌의 기술은, HTTP URL에 호출할 액티브X 및 그 파라미터를 명시해서 호출하는 방식이므로, 직관적이지 못하고, 웹브라우저 URL의 변화로 인해, 외부에 노출되는 정보가 많아서, 해킹의 대상이 된다는 문제가 있다.
그리고 상기 특허문헌의 기술은, 액티브X의 처리만을 대상으로 하므로, DLL의 처리는 불가능하다는 문제가 있다.
그리고 상기 특허문헌의 기술은, 다수의 라이브러리를 관리해야 함에도 불구하고 그 업데이트에 관한 방안이 개시되어 있지 않아서, 실시간 업데이트 유지보수 효율성이 저하될 여지가 있다는 문제가 있다.
그리고 상기 특허문헌의 기술은, 동기적 명령과 비동기적 명령을 함께 지원하는 구성에 대해 함구하고 있다는 문제가 있다.
그리고 상기 특허문헌의 기술은, 에러 발생시 원인 추적에 필수인 로그 기록 플랜이 전혀 개시되어 있지 않으므로, 효율적인 원인 추적이 어렵다는 문제가 있다.
그리고 상기 특허문헌의 기술은, 예기치 않은 문제 또는 오류로 인해 종료된 경우, 강제로 다시 기동시키는 기능이 구비되어 있지 않아서, 시스템 관리상 효율이 저하된다는 문제가 있다.
본 발명은, 종래기술의 문제점을 해소하기 위한 것으로서, 요청(request)과 응답(response)을 주고받는 HTTP에 의하여 통신하지 않고, 웹소켓 통신을 사용해 1회 연결 후에 자유롭게 데이터를 송수신할 수 있어서, 통신속도가 빠른, 웹브라우저를 위한 라이브러리 구동 및 업데이트 방법, 장치 및 프로그램을 제공하고자 하는 것이다.
그리고 HTTP URL에 호출할 액티브X 및 그 파라미터를 명시해서 호출하는 방식을 배제하여, 직관적이고, 웹브라우저 URL의 변화가 없고, 외부에 노출되는 정보가 적어서, 해킹의 대상이 되지 않는, 웹브라우저를 위한 라이브러리 구동 및 업데이트 방법, 장치 및 프로그램을 제공하고자 하는 것이다.
그리고 액티브X의 처리만을 대상으로 하지 않고, DLL의 처리도 가능하게 하는, 웹브라우저를 위한 라이브러리 구동 및 업데이트 방법, 장치 및 프로그램을 제공하고자 하는 것이다.
그리고 다수의 라이브러리를 관리해야 하므로 그 업데이트에 관한 방안을 제시함으로써, 실시간 업데이트 유지보수 효율성이 향상되도록 하는, 웹브라우저를 위한 라이브러리 구동 및 업데이트 방법, 장치 및 프로그램을 제공하고자 하는 것이다.
그리고 동기적 명령과 비동기적 명령을 함께 지원하는 구성을 제시하는, 웹브라우저를 위한 라이브러리 구동 및 업데이트 방법, 장치 및 프로그램을 제공하고자 하는 것이다.
그리고 에러 발생시 원인 추적에 필수인 로그 기록 플랜을 제시하여, 효율적인 원인 추적을 가능하게 하는, 웹브라우저를 위한 라이브러리 구동 및 업데이트 방법, 장치 및 프로그램을 제공하고자 하는 것이다.
그리고 예기치 않은 문제 또는 오류로 인해 종료된 경우, 강제로 다시 기동시키는 기능이 구비되어 있어서, 시스템 관리상 효율이 향상되도록 하는, 웹브라우저를 위한 라이브러리 구동 및 업데이트 방법, 장치 및 프로그램을 제공하고자 하는 것이다.
상기 과제를 달성하기 위한 본 발명의 방법은, 웹브라우저를 위한 라이브러리 구동 및 업데이트 방법으로서, 웹브라우저에 웹소켓 규격의 연결모듈이 설치되고, 라이브러리 파일을 포함하는 로컬 리소스와 상기 웹브라우저에 연결되도록 라이브러리 처리기가 설치되는 준비단계와; 상기 웹브라우저에서 라이브러리의 기능이 필요할 때, 상기 웹브라우저에서 상기 연결모듈을 통해 명령과 데이터가 상기 웹소켓 미들웨어에 전송되면서 상기 라이브러리 처리기에 라이브러리 호출메시지가 전송되는 호출단계와; 상기 라이브러리 처리기 내의 로더에 상기 로컬 리소스로부터 상기 라이브러리 파일이 로드되는 로드단계와; 로드된 상기 라이브러리 파일을 이용하여 상기 라이브러리 처리기 내의 웹소켓 미들웨어에서 상기 명령과 데이터가 처리되는 처리단계와; 상기 명령과 데이터의 처리결과가 상기 라이브러리 처리기로부터 상기 웹브라우저에 상기 연결모듈을 통해 리턴되는 리턴단계를 포함하여 이루어짐을 특징으로 한다.
여기서, 상기 연결모듈은, 자바 스크립트로 이루어질 수 있다.
그리고 상기 라이브러리 파일은, 액티브X 파일과 DLL 파일을 적어도 포함하고, 상기 로더는, 상기 액티브X 파일에 연결된 액티브X 로더와 상기 DLL 파일에 연결된 DLL 로더를 적어도 포함하며, 복수의 상기 라이브러리 파일은, 각각 대응되는 디바이스에 연결될 수 있고, 상기 방법에는, 호출시 받은 상기 명령과 데이터에 따라, 상기 라이브러리 처리기의 상기 웹소켓 미들웨어에 의해 복수의 상기 로더 중 하나가 선택되는 로더 선택단계;가 더 구비되도록 이루어짐이 바람직하다.
그리고 상기 라이브러리 처리기 및 상기 로컬 리소스에는, 업데이터가 연결되어 있고, 상기 업데이터에는, 최신버전의 라이브러리 파일 및 처리기 파일 중 적어도 하나가 보관되는 파일서버가 연결되어 있으며, 상기 업데이터는, 정기적으로 상기 로컬 리소스 내의 파일과 상기 파일서버 내의 파일을 비교하여 업데이트를 체크하는 윈도우즈 서비스에 의한 업데이트와, 상기 웹브라우저로부터의 업데이트 요청명령에 의한 업데이트 중 적어도 하나를 지원함이 바람직하다.
그리고, 상기 라이브러리 처리기 및 상기 로컬 리소스에는, 업데이터가 연결되어 있고, 상기 업데이터에는, 최신버전의 라이브러리 파일 및 처리기 파일 중 적어도 하나가 보관되는 파일서버가 연결되어 있으며, 상기 로컬 리소스 내에는, 상기 로컬 리소스 내의 라이브러리 파일 및 라이브러리 처리기 파일의 정보 및 버전정보가 입력 및 관리되는 로컬 관리파일이 구비되어 있고, 상기 파일서버 내에는, 상기 파일서버 내의 라이브러리 파일 및 라이브러리 처리기 파일의 정보 및 버전정보가 입력 및 관리되는 서버 관리파일이 구비되어 있으며, 상기 업데이터는, 상기 로컬 관리파일과 상기 서버 관리파일을 비교함으로써 업데이트를 체크하도록 이루어짐이 바람직하다.
그리고 상기 연결모듈은, 웹소켓 통신을 통해 상기 웹소켓 미들웨어에 동기적 명령비동기적 명령의 전달이 가능하고, 상기 웹소켓 미들웨어는, 상기 동기적 명령 및 비동기적 명령의 구분 실행이 가능하도록 이루어짐이 바람직하다.
그리고 상기 연결모듈과 상기 웹소켓 미들웨어 사이에는, 제이슨 스트링(Json String) 규약에 의한 라이브러리 호출 통신규약이 사용되도록 이루어짐이 바람직하다.
그리고 상기 웹소켓 미들웨어에 의해, 상기 웹소켓 미들웨어에 관한 상태로그, 액티브X 호출 로그, DLL 호출 로그, 에러 로그, 업데이트 로그 중 적어도 하나의 로그(log)가 기록되도록 이루어짐이 바람직하다.
그리고 상기 웹소켓 미들웨어에는, 상기 웹소켓 미들웨어가 예기치 못한 문제 또는 오류로 종료된 경우, 강제로 다시 재기동되도록 하는 리라이브(Relive) 기능이 구비되도록 이루어짐이 바람직하다.
그리고 상기 로드단계 이전에, 상기 웹소켓 미들웨어 내의 웹소켓 통신모듈로부터 받은 호출 명령어가 파싱되는 호출 명령어 파싱단계와; 상기 호출 명령어가 사전 규약된 프리픽스 명령어인 경우, 상기 라이브러리 처리기의 자체명령어가 처리되고 결과가 리턴되는 자체명령어 처리단계와; 상기 호출 명령어가 라이브러리 명령어인 경우, 상기 로드단계가 수행되는 라이브러리 명령어 처리단계;가 구비되도록 이루어짐이 바람직하다.
그리고 상기 로드단계 이전에, 라이브러리 명령어의 분석에 따라 동기처리와 비동기처리가 선택되는 동기/비동기 선택단계가 구비되도록 이루어짐이 바람직하다.
그리고 상기 라이브러리 파일은, 액티브X 파일이고, 상기 로더는, 액티브X 로더이며, 상기 액티브X 로더는, 상기 로컬 리소스로부터 레지스트리를 통해 상기 액티브X 파일을 로드하고, 액티브X 객체에 대해 액티브X 메서드 분석을 행하며, 명령어 구조에 맞춰 액티브X 메서드를 실행하고, 상기 액티브X가 디바이스 제어용인 경우에는 상기 액티브X 메서드를 통해 상기 액티브X 파일에 연결된 디바이스를 구동하고, 실행 또는 구동 결과를 상기 웹소켓 미들웨어에 보내도록 이루어짐이 바람직하다.
그리고 상기 라이브러리 파일은, DLL 파일이고, 상기 로더는, DLL 로더이며, 상기 DLL 로더는, 상기 로컬 리소스로부터 상기 DLL 파일을 로드하고, DLL 타입을 판단한 후, DLL 객체를 로드하고, DLL 메서드 분석을 행하며, 상기 명령과 데이터에 맞춰 DLL 메서드를 실행하고, 상기 DLL이 디바이스 제어용인 경우에는 상기 DLL 메서드를 통해 상기 DLL 파일에 연결된 디바이스를 구동하고, 실행 또는 구동 결과를 상기 웹소켓 미들웨어에 보내도록 이루어짐이 바람직하다.
그리고 상기 라이브러리 처리기에 연결된 모니터와; 상기 로컬 리소스, 상기 파일서버 및 상기 모니터에 연결된 매니저;가 더 포함되고, 상기 모니터는, 상기 라이브러리 처리기와 상기 매니저의 구동 여부를 실시간 모니터링하고, 상기 라이브러리 처리기와 상기 매니저를 제어하며, 상기 모니터링 결과를 이용하여 로그 기능을 부여하고, 상기 모니터링과 제어에 의해 상기 라이브러리 처리기에 대해 독립 구비된 리라이브 기능을 부여하며, 내부에 IPC 서버가 구비되어 있고, 상기 매니저는, 상기 IPC 서버에 통신 접속되는 IPC 클라이언트가 구비되고, 사용자에 의해 발생된 이벤트를 통해 상기 라이브러리 처리기를 간접 제어하며, 사용자에 의한 상기 로컬 리소스의 수동 업데이트를 허용하고, 업데이트 타이머에 의한 정기 업데이트를 허용하도록 구성됨이 바람직하다.
한편, 상기 과제를 달성하기 위한 본 발명의 장치는, 웹브라우저를 위한 라이브러리 구동 및 업데이트 장치로서, 웹소켓 규격의 연결모듈이 설치되어 있는 웹브라우저와; 라이브러리 파일이 포함되어 있는 로컬 리소스와; 상기 웹브라우저 및 상기 로컬 리소스에 연결되어 있고, 웹소켓 미들웨어 및 로더가 구비되어 있는 라이브러리 처리기;를 포함하여 이루어지고, 상기 연결모듈은, 상기 웹브라우저에서 라이브러리의 기능이 필요할 때, 명령과 데이터를 상기 웹소켓 미들웨어에 전송하면서 상기 라이브러리 처리기에 라이브러리 호출메시지를 전송하고, 상기 라이브러리 처리기에 의한 상기 명령과 데이터의 처리결과를 상기 라이브러리 처리기로부터 리턴받는 모듈이고; 상기 웹소켓 미들웨어는, 상기 연결모듈로부터 수신된 상기 명령과 데이터의 처리에 필요한 라이브러리 파일을 결정하고, 로드된 상기 라이브러리 파일을 이용하여 상기 명령과 데이터를 처리하는 수단이며; 상기 로더는, 상기 로컬 리소스로부터 상기 명령과 데이터의 처리에 필요한 상기 라이브러리 파일을 로드하는 수단임을 특징으로 한다.
한편, 상기 과제를 달성하기 위한 본 발명의 프로그램은, 웹브라우저를 위한 라이브러리 구동 및 업데이트용 프로그램으로서, 정보처리기기에 청구항 1 또는 청구항 2에 기재된 방법의 각 단계를 실행시키기 위한 프로그램을 기록한 정보처리기기로 읽을 수 있는 저장매체에 기록된 프로그램이다.
본 발명에 의하면, 요청(request)과 응답(response)을 주고받는 HTTP에 의하여 통신하지 않고, 웹소켓 통신을 사용해 1회 연결 후에 자유롭게 데이터를 송수신할 수 있어서, 통신속도가 빠른, 웹브라우저를 위한 라이브러리 구동 및 업데이트 방법, 장치 및 프로그램이 제공된다.
그리고 HTTP URL에 호출할 액티브X 및 그 파라미터를 명시해서 호출하는 방식을 배제하여, 직관적이고, 웹브라우저 URL의 변화가 없고, 외부에 노출되는 정보가 적어서, 해킹의 대상이 되지 않는, 웹브라우저를 위한 라이브러리 구동 및 업데이트 방법, 장치 및 프로그램이 제공된다.
그리고 액티브X의 처리만을 대상으로 하지 않고, DLL의 처리도 가능하게 하는, 웹브라우저를 위한 라이브러리 구동 및 업데이트 방법, 장치 및 프로그램이 제공된다.
그리고 다수의 라이브러리를 관리해야 하므로 그 업데이트에 관한 방안을 제시함으로써, 실시간 업데이트 유지보수 효율성이 향상되도록 하는, 웹브라우저를 위한 라이브러리 구동 및 업데이트 방법, 장치 및 프로그램이 제공된다.
그리고 동기적 명령과 비동기적 명령을 함께 지원하는 구성을 제시하는, 웹브라우저를 위한 라이브러리 구동 및 업데이트 방법, 장치 및 프로그램이 제공된다.
그리고 에러 발생시 원인 추적에 필수인 로그 기록 플랜을 제시하여, 효율적인 원인 추적을 가능하게 하는, 웹브라우저를 위한 라이브러리 구동 및 업데이트 방법, 장치 및 프로그램이 제공된다.
그리고 예기치 않은 문제 또는 오류로 인해 종료된 경우, 강제로 다시 기동시키는 기능이 구비되어 있어서, 시스템 관리상 효율이 향상되도록 하는, 웹브라우저를 위한 라이브러리 구동 및 업데이트 방법, 장치 및 프로그램이 제공된다.
도 1은, 본 발명에 관한 웹브라우저를 위한 라이브러리 구동 및 업데이트 방법 및 프로그램이 구현되는 장치의 일실시예의 전체 블록도이다.
도 2는, 본 발명에서 제시되는 웹소켓 미들웨어의 일실시예의 블럭도이다.
도 3은, 본 발명에서 제시되는 액티브X 로더의 일실시예의 블럭도이다.
도 4는, 본 발명에서 제시되는 DLL 로더의 일실시예의 블럭도이다.
도 5는, 본 발명에서 제시되는 업데이터의 일실시예의 블럭도이다.
도 6은, 본 발명에 관한 웹브라우저를 위한 라이브러리 구동 및 업데이트 방법 및 프로그램의 일실시예의 플로차트이다.
도 7은, 본 발명에서 제시되는 매니저 및 모니터가 포함된 웹브라우저를 위한 라이브러리 구동 및 업데이트 방법 및 프로그램이 구현되는 장치의 일실시예의 전체 블록도이다.
도 8은, 본 발명에서 제시되는 매니저 및 모니터의 일실시예의 블럭도이다.
도 9는, 종래기술의 액티브X 대용 처리기술의 블럭도이다.
이하, 첨부도면을 참조하면서 본 발명에 따른 웹브라우저를 위한 라이브러리 구동 및 업데이트 방법, 장치 및 프로그램에 대해 상세히 설명한다. 다만, 동일구성에 의해 동일기능을 가지는 부재에 대해서는, 도면이 달라지더라도 동일부호를 유지함으로써, 그 상세한 설명을 생략하는 경우가 있다.
또한, 어떤 부재의 전후, 좌우, 상하에 다른 부재가 배치되거나 연결되는 관계는, 그 중간에 별도 부재가 삽입되는 경우를 포함한다. 반대로, 어떤 부재가 다른 부재의 '바로' 전후, 좌우, 상하에 있다고 할 때에는, 중간에 별도 부재가 없는 것을 뜻한다. 그리고 어떤 부분이 다른 구성요소를 '포함'한다고 할 때, 이는 특별히 반대되는 기재가 없는 한, 다른 구성요소를 제외하는 것이 아니라, 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
그리고 구성의 명칭을 제1, 제2 등으로 구분한 것은, 그 구성이 동일한 관계로 이를 구분하기 위한 것으로, 반드시 그 순서에 한정되는 것은 아니다. 또한, 명세서에 기재된 '유닛', '수단', '부', '부재' 등의 용어는, 적어도 하나의 기능이나 동작을 하는 포괄적인 구성의 단위를 의미한다. 그리고 명세서에 기재된 단말, 서버 등의 정보처리기기는, 특정한 기능이나 동작이 구현된 하드웨어를 의미하는 하드 와이어링을 기본적으로 의미하지만, 특정한 하드웨어에 한정되도록 해석되어서는 안되고, 일반 범용 하드웨어 상에 그 특정한 기능이나 동작이 구현되도록 하기 위해 구동되는 소프트웨어로 이루어지는 소프트 와이어링을 배제하는 것이 아니다. 즉, 단말 또는 서버는, 어떤 장치가 될 수도 있고, 앱과 같이, 어떤 기기에 설치되는 소프트웨어가 될 수도 있다.
그리고 도면에 나타난 각 구성의 크기 및 두께는, 설명의 편의를 위해 임의로 나타내었으므로, 본 발명이 반드시 도면에 도시된 바에 한정되지 않으며, 층 및 영역 등의 여러 부분 및 영역을 명확하게 표현하기 위해 두께 등은 과장하여 확대 또는 축소하여 나타낸 경우가 있다.
<기본구성 - 방법>
본 발명의 방법은, 웹브라우저를 위한 라이브러리 구동 및 업데이트 방법이다. 본 발명의 방법은, 도 6과 같이, 준비단계(S10)와; 호출단계(S20)와; 로드단계(S40)와; 처리단계(S50)와; 리턴단계(S60)를 포함하여 이루어짐을 특징으로 한다. 본 발명의 방법은, 범용 브라우저에서 액티브X 지원 중단에 따라, 웹브라우저(100)에서 구현하기 어려운 다양한 기능을 지원하는 액티브X의 기능을 웹브라우저(100)에서 사용할 수 있게 지원하는 미들웨어 플랫폼의 구현방법이다. 바람직하게는 자바 스크립트와 직접 통신을 하며, 다양한 범용 브라우저에서 액티브X 및 DLL의 기능을 사용할 수 있게 지원한다. 이하, 도 1을 참조한다.
상기 준비단계(S10)는, 웹브라우저(100)에 웹소켓 규격의 연결모듈(110)이 설치되고, 라이브러리 파일(420, 430)을 포함하는 로컬 리소스(400)와 상기 웹브라우저(100)에 연결되도록 라이브러리 처리기(200)가 설치되는 단계이다.
상기 웹브라우저(100)는, 웹소켓 지원의 범용 웹브라우저이다. 따라서, 웹소켓 이외의 특수한 기능이 요구되는 것이 아니다. 상기 웹브라우저(100)가 동작하는 OS에 대한 제한은 없다. 웹소켓 통신을 기본 통신포맷으로 사용해, 동기적 명령 전달 및 비동기적 명령 전달을 지원할 수 있다. 통신규격으로 사용하는 웹소켓 통신은, ws 및 wss 통신방식을 사용할 수 있기 때문에, 필요시 SSL 인증서를 사용하는 방식을 통해 보안성을 높일 수 있다.
상기 연결모듈(110)은, 웹소켓 기능을 가지는 클라이언트 모듈이고, 통신에 의한 연결기능을 가진다. 상기 연결모듈(110)은, 후술하는 웹소켓 미들웨어(210)에 통신 연결된다. 상기 연결모듈(110)은, 상기 웹브라우저(100)에서 라이브러리 이용하기 위한 이벤트가 발생하면, 종래의 웹브라우저 내 라이브러리 이용모듈 대신에 기동되어, 외부에서 라이브러리 파일을 이용하여 처리된 처리결과를 받아서, 상기 웹브라우저(100)에 리턴하는 모듈이다.
여기서, 상기 연결모듈(110)은, 예컨대 자바 스크립트로 이루어짐이 바람직하다. 다만, 이에 한하지 않고, 웹소켓 통신을 구현하는 한, 웹브라우저(100)에서 지원하는 다른 툴이나 구성요소로 이루어져도 좋다.
상기 라이브러리 파일(420, 430)은, 웹브라우저(100) 입장에서 외부에 존재하면서, 어떤 기능을 수행할 때 웹브라우저(100)가 이용할 수 있도록 미리 만들어 놓은 모듈의 파일이고, 액티브X 파일(420)이 대표적이다. 여기서, 동적으로 링크되는 DLL 파일(430)은, 상기 액티브X와는 사용방법이 다르지만 상기 라이브러리 파일(420, 430)에 포함시켜서 본 발명이 구현될 수 있고, 이에 한하지 않고, 형식을 불문하고 웹브라우저(100)에 포함되어 있지 않으나, 기능 수행시 웹브라우저(100)에서 이용할 수 있는 외부 모듈, 예컨대 JQuery, NumPy 등 기성품 라이브러리나 자체 제작된 라이브러리 등이 모두 포함될 수 있다. 다만, 본 발명에서는, 상기 라이브러리 파일(420, 430)은, 웹브라우저(100)에 의해 직접 이용되지는 않고, 상기 라이브러리 처리기(200)에 의해 이용된 후 그 결과를 받도록 되어 있다.
본 발명에서 적용되는 라이브러리는, 주변 디바이스 제어를 위한 액티브X 및 DLL을 사용할 수 있으므로, 확장성, 호환성이 향상된다. 주변 디바이스 제어시 exe 프로그램이 디바이스를 직접 제어하는 것이 아니라, 디바이스 제조업체에서 제공하는 액티브X 및 DLL을 사용할 수 있다. 따라서, 추가 연동이 필요한 디바이스에 대한 확장성이 높아진다. 그리고 디바이스 제어를 위한 액티브X와 DLL 외에, 일반적인 액티브X와 DLL에도 호환 가능하다.
상기 로컬 리소스(400)는, 상기 사용자의 컴퓨터나 스마트폰 등과 같은 정보처리기기의 구성요소로서, 특히 상기 라이브러리 파일(420, 430)을 포함하도록 구성되어 있다. 상기 정보처리기기는, OS와 함께 상기 로컬 리소스(400)를 포함할 뿐 아니라, 프린터 등의 각종 디바이스(450, 460)와, 웹브라우저(100)도 포함하고, 또한, 본 발명의 상기 라이브러리 처리기(200)도 포함하도록 이루어질 수 있다.
상기 라이브러리 처리기(200)는, 상기 웹브라우저(100)에서 라이브러리 기능을 이용하는 것과 동일한 효과를 얻을 수 있도록 하는 모듈이고, 독립된 실행파일 형태의 프로그램으로 이루어질 수도 있고, 상기 웹브라우저(100) 내에 포함된 예컨대 플러그인 형태로 이루어질 수도 있다. 상기 라이브러리 처리기(200)는, 상기 웹브라우저(100)로부터 특정 기능을 처리하기 위한 명령과 데이터를 받아서, 필요한 라이브러리를 판단한 후, 로더(220, 230)에 라이브러리 파일(420, 430)을 로드한 후, 상기 기능을 처리하여, 그 결과를 상기 웹브라우저(100)에 리턴하는 역할을 한다. 상기 라이브러리 처리기(200)는, 웹소켓 미들웨어(210)와 로더(220, 230)를 포함하도록 이루어질 수 있다.
상기 호출단계(S20)는, 상기 웹브라우저(100)에서 라이브러리의 기능이 필요할 때, 상기 웹브라우저(100)에서 상기 연결모듈(110)을 통해 명령과 데이터가 상기 웹소켓 미들웨어(210)에 전송되면서 상기 라이브러리 처리기(200)에 라이브러리 호출메시지가 전송되는 단계이다.
상기 명령과 데이터는, 상기 웹브라우저(100)의 상기 연결모듈(110)로부터 상기 라이브러리 처리기(200)의 상기 웹소켓 미들웨어(210)에 전달되고, 상기 명령과 데이터의 처리결과는, 반대로, 상기 웹소켓 미들웨어(210)에서 상기 연결모듈(110)로 전달된다. 상기 연결모듈(110)과 상기 웹소켓 미들웨어(210) 사이의 연결은, 웹소켓 방식에 의하므로, 매번 HTTP 프로토콜에 의해 요청과 응답을 기다려서 송수신하는 종래기술의 방식과 달리, 한번 연결되면 계속하여 통신이 가능하다는 점에 본원발명의 특징 및 장점이 있다. 상기 명령과 데이터는, 연결 상태에서 2회 이상 송수신되도록 구성되어도 좋다. 이는 인터렉티브한 처리를 수행하는 라이브러리의 경우에 중간결과의 리턴과 그에 따른 후속 데이터의 송수신과 같은 경우에 특히 유용할 수 있다.
상기 로드단계(S40)는, 상기 라이브러리 처리기(200) 내의 로더(220, 230)에 상기 로컬 리소스(400)로부터 상기 라이브러리 파일(420, 430)이 로드되는 단계이다.
상기 로더(220, 230)는, 상기 라이브러리 호출메시지에 따라 작동된다. 상기 로더(220, 230)는, 상기 라이브러리 파일(420, 430)을 상기 라이브러리 처리기(200)에 로드하는 모듈이다. 상기 로더(220, 230)는, 상기 라이브러리 파일(420, 430)의 종류에 대응하여 구비된다. 하나의 라이브러리 처리기(200) 내에 하나의 로더(220, 또는 230)가 구비되도록 이루어져도 좋지만, 후술하는 바와 같이, 하나의 라이브러리 처리기(200) 내에 복수의 로더(220, 230)가 구비되도록 이루어지고, 실제 로딩시에는, 그 중의 하나의 로더만 선택되도록 이루어져도 좋다.
상기 처리단계(S50)는, 로드된 상기 라이브러리 파일(420, 430)을 이용하여 상기 라이브러리 처리기(200) 내의 웹소켓 미들웨어(210)에서 상기 명령과 데이터가 처리되는 단계이다.
상기 웹소켓 미들웨어(210)는, 상기 라이브러리 처리기(200) 내에서 상기 연결모듈(110)로부터 상기 명령 및 데이터를 받아서, 상기 처리에 필요한 라이브러리를 결정한 후, 상기 라이브러리 파일(420, 430)을 상기 로더(220, 230)에 로드하여, 상기 라이브러리에 의해 상기 명령 및 데이터를 처리한 후, 처리결과를 상기 연결모듈(110)에 리턴하는 모듈이다. 상기 웹소켓 미들웨어(210)는, 명령 및 데이터의 입력을 기다려야 하므로 일종의 서버 형태로 이루어질 수 있지만, 이에 한하지 않고, 상기 연결모듈(110)에서 연결되어 통신 가능한 모듈이라면 형식에 무관하게 이루어질 수 있다.
상기 리턴단계(S60)는, 상기 명령과 데이터의 처리결과가 상기 라이브러리 처리기(200)로부터 상기 웹브라우저(100)에 상기 연결모듈(110)을 통해 리턴되는 단계이다.
상기 처리결과는, 상기 호출단계에서 상기 라이브러리 처리기(200)의 상기 웹소켓 미들웨어(210)가 상기 웹브라우저(100)의 상기 연결모듈(110)로부터 받은 상기 명령과 데이터를 상기 라이브러리를 이용하여 처리한 결과이다. 따라서, 상기 처리결과를 리턴받은 상기 웹브라우저(100)는, 상기 호출단계에서 처리하고자 했던 외부 라이브러리를 통한 처리를 완료할 수 있다.
<효과>
이처럼 웹브라우저(100)에서 외부 라이브러리의 직접 이용이 불가능하게 된 경우라 하더라도, 웹브라우저(100)에서 라이브러리 처리기(200)에 명령과 데이터를 전송하고, 상기 라이브러리 처리기(200)에서 명령과 데이터를 처리하고, 처리결과를 상기 웹브라우저(100)가 받음으로써, 라이브러리를 이용한 처리가 가능하게 된다. 특히 상기 라이브러리 처리기(200)는, 명령 및 데이터에 적합한 라이브러리를 판단하는 웹소켓 미들웨어(210)와 상기 라이브러리를 로드하는 로더(220, 230)를 구비하고 있으므로, 명령 및 데이터에 적절한 라이브러리 처리가 가능하다.
<동기적/비동기적 명령>
여기서, 상기 연결모듈(110)은, 웹소켓 통신을 통해 상기 웹소켓 미들웨어(210)에 동기적 명령비동기적 명령의 전달이 가능하고, 상기 웹소켓 미들웨어(210)는, 도 2와 같이, 상기 동기적 명령 및 비동기적 명령의 구분 실행이 가능하도록 이루어짐이 바람직하다.
일반적으로 액티브X 등 라이브러리 기능 수행시, 기본적으로 동기적 명령에 의해 라이브러리 구동이 가능하지만, 자바 스크립트에서 요청시나 기타 특별한 경우에, 비동기적 명령에 의한 라이브러리 구동이 적절한 경우가 있다. 이 경우, 웹소켓 통신을 통해 두 종류의 명령이 모두 전달 가능하도록 구성하고, 상기 웹소켓 미들웨어(210)에서 그 명령의 종류를 구분하여 실행할 수 있도록 하면 좋다.
이를 위해, 상기 로드단계 이전에, 라이브러리 명령어의 분석(214)에 따라 동기처리와 비동기처리를 선택하는 동기/비동기 선택단계(215)가 구비되도록 이루어짐이 바람직하다.
즉, 호출단계에서 받은 명령이 라이브러리에 관한 명령인 경우에, 상기 라이브러리 처리기(200)의 상기 웹소켓 미들웨어(210)는, 이 라이브러리 명령어를 분석(214)함으로써, 상기 명령이 동기적 명령인지 비동기적 명령인지를 구분(215)하고, 그에 따라 동기처리와 비동기처리를 선택하도록 하면 좋다.
이로써, 본 발명의 라이브러리 처리기(200)는, 동기적 명령 뿐 아니라 비동기적 명령도 처리할 수 있게 된다.
<웹소켓 명령의 포맷>
나아가서, 상기 연결모듈(110)과 상기 웹소켓 미들웨어(210) 사이에는, 제이슨 스트링(Json String) 규약에 의한 라이브러리 호출 통신규약이 사용되도록 이루어짐이 바람직하다.
상기 웹브라우저(100)의 상기 연결모듈(110)은, 라이브러리 호출을 위해 제이슨 스트링을 통해 명령을 전송할 수 있고, 상기 라이브러리 처리기(200)의 상기 웹소켓 미들웨어(210)는, 상기 제이슨 스트링을 분석함으로써, 예컨대 라이브러리명, 메서드명, 파라미터, 리턴 타입, 동기/비동기 호출 여부 등을 분석할 수 있다.
또한, 라이브러리 처리기(200)를 직접적으로 제어하기 위한 명령어 외에, 라이브러리(액티브X, DLL)의 메서드를 호출하기 위해 제이슨 스트링 포맷을 사용할 수 있다. 웹브라우저에서 라이브러리의 메서드를 호출할 때, 별도의 규약된 명령어를 사용하지 않고 제이슨 스트링 포맷을 사용하기 때문에 유연성이 있다.
<자체 명령어 처리>
그리고 상기 웹브라우저(100)는, 라이브러리 기능을 요하지 않는 명령을 상기 라이브러리 처리기(200)에 보낼 수 있도록 구성될 수 있다. 이 경우에, 본 발명은, 상기 로드단계(S40) 이전에, 도 2와 같이, 호출 명령어 파싱단계(212)와; 자체명령어 처리단계(213)와; 라이브러리 명령어 처리단계(214 이하);를 구비하도록 이루어짐이 바람직하다.
상기 호출 명령어 파싱단계(212)는, 상기 웹소켓 미들웨어(210) 내의 웹소켓 통신모듈(211)로부터 받은 호출 명령어가 파싱되는 단계이다.
상기 웹소켓 통신모듈(211)은, 상기 웹브라우저(100)에서 전송한 웹소켓 명령 및 데이터를 수신하는 모듈이고, 또한, 상기 라이브러리 처리기(200)에 의한 상기 명령 및 데이터의 처리결과를 상기 웹브라우저(100)에 전송(리턴)하는 모듈이다.
상기 호출 명령어의 파싱(212)에 의해, 상기 웹브라우저(100)로부터 전송받은 명령어가 자체 처리 가능한 명령어인지, 아니면 라이브러리 호출 명령어인지를 알 수 있다.
상기 자체명령어 처리단계(213)는, 상기 호출 명령어가 사전 규약된 프리픽스 명령어인 경우, 상기 라이브러리 처리기의 자체명령어가 처리되고 결과가 리턴되는 단계이다.
상기 프리픽스 명령어는, 사전 정의(prefix)된 라이브러리 처리기(200)용 컨트롤 명령을 의미한다. 상기 프리픽스 명령어의 처리결과는 상기 웹브라우저(100)에 리턴된다.
상기 라이브러리 명령어 처리단계(214 이하)는, 상기 호출 명령어가 라이브러리 명령어인 경우, 상기 로드단계(S40)가 수행되는 단계이다.
상기 라이브러리 명령어는, 라이브러리 처리를 통해 데이터를 처리하게 되는 명령어이다. 이 경우, 상기 로드단계(S40)에 의해, 라이브러리 파일을 로더에 로드하여 처리한 후 결과를 웹브라우저(100)에 리턴하게 된다.
<복수의 라이브러리>
한 종류의 라이브러리만 이용하는 웹브라우저(100)의 구성이라면, 로더도 그 종류의 로더 하나만 구비되면 족하다. 그러나, 웹브라우저(100)가 다양한 액티브X를 이용하고, 또한 다양한 DLL도 이용할 수 있도록 하는 것이 보다 바람직할 수 있다.
본 발명의 방법에 있어서, 복수 종류의 상기 라이브러리 파일(420, 430)을 처리하기 위해 상기 로더(220, 230)가 복수 종류로 구비될 수 있다. 이 경우, 처리 시에는 한 종류의 상기 라이브러리 파일(420, 430)이 선택되어야 하고, 이 선택된 종류의 라이브러리 파일(420, 430)에 대응되는 종류의 로더(220, 230)가 선택될 필요가 있다.
이를 위해, 상기 라이브러리 파일(420, 430)은, 도 1과 같이, 액티브X 파일(420)과 DLL 파일(430)을 적어도 포함하고, 상기 로더(220, 230)는, 상기 액티브X 파일(420)에 연결된 액티브X 로더(220)와 상기 DLL 파일(430)에 연결된 DLL 로더(230)를 적어도 포함하며, 복수의 상기 라이브러리 파일(420, 430)은, 각각 대응되는 디바이스(450, 460)에 연결되어 있도록 구성될 수 있다. 이 경우에, 본 발명의 방법에는, 호출시 받은 상기 명령과 데이터에 따라, 상기 라이브러리 처리기(200)의 상기 웹소켓 미들웨어(210)에 의해 복수의 상기 로더(220, 230) 중 하나가 선택되는 로더 선택단계(S30);가 더 구비되도록 이루어짐이 바람직하다.
복수의 라이브러리의 종류는, 액티브X와 DLL로 한정되는 것이 아니다. 그리고 복수의 라이브러리를 처리할 수 있도록 하는 경우에, 라이브러리 종류에 따라 그에 대응되는 로더도 구비되어야 한다. 대상 로더의 선택은, 라이브러리 호출 관련 명령의 분석으로부터 도출된 결과를 기반으로 가능하다. 그리고 복수의 라이브러리 중 하나가 선택되는 선택단계(S30)에 의해, 간단한 구조에 의해 다양한 종류의 라이브러리에 대한 처리가 가능해진다.
본 발명의 방법은, 액티브X를 로드하는 모듈과 DLL을 로드하는 모듈을 분리하여 구축해서, 사용자의 요구에 따라 각 로더 중 필요한 로더만을 포함되도록 하여 배포할 수 있다.
<액티브X 처리>
특히, 상기 라이브러리 파일(420, 430)은, 액티브X 파일(420)이고, 상기 로더(220, 230)는, 액티브X 로더(220)인 경우에, 상기 액티브X 로더(220)는, 도 3과 같이, 상기 로컬 리소스(400)로부터 레지스트리(470)를 통해 상기 액티브X 파일(420)을 로드(221)하고, 액티브X 객체에 대해 액티브X 메서드 분석(222)을 행하며, 명령어 구조에 맞춰 액티브X 메서드를 실행(223)하고, 상기 액티브X가 디바이스 제어용인 경우에는 상기 액티브X 메서드를 통해 상기 액티브X 파일(420)에 연결된 디바이스(450)를 구동하고, 액티브X 메서드의 실행 또는 디바이스의 구동 결과를 상기 웹소켓 미들웨어(210)에 보내도록 이루어짐이 바람직하다.
액티브X는, 웹브라우저(100)에 의해 이용되는 대표적 라이브러리이고, 레지스트리는, OS의 시스템 레지스트리이며, 액티브X가 시스템 메모리에 등록된 장소이고, COM(Component Object Model) 특성상 액티브X는, 레지스트리에 등록되어야 사용 가능하다.
액티브X의 처리에 있어서, 파일 로드(221), 메서드 분석(222), 메서드 실행(223), 리턴의 단계로 처리할 수 있다.
액티브X 파일 로드(221)는, 시스템 레지스트리에 등록된 액티브X를 로드하는 것이고, 웹브라우저의 요청에 의해 액티브X 로드 및 객체 생성을 행한다.
액티브X 메서드 분석(222)은, 로드된 대상 액티브X 객체의 전체 메서드를 분석하는 것이고, 웹브라우저(100)에서 전달받은 데이터와 일치하는 메서드의 정보를 획득한다.
액티브X 메서드 실행(223)은, 웹브라우저(100)의 명령에 따른 액티브X 메서드를 실행하는 것으로서, 액티브X와 매칭되는 디바이스의 기능을 수행하거나, 액티브X 자체 기능을 수행하는 것이며, 수행결과를 웹소켓 미들웨어(210)에 리턴한다.
<DLL 처리>
그리고 상기 라이브러리 파일(420, 430)은, DLL 파일(430)이고, 상기 로더(220, 230)는, DLL 로더(230)인 경우에, 상기 DLL 로더(230)는, 도 4와 같이, 상기 로컬 리소스(400)로부터 상기 DLL 파일(430)을 로드(231)하고, DLL 타입을 판단(232)한 후, DLL 객체를 로드(233)하고, DLL 메서드 분석(234)을 행하며, 상기 명령과 데이터에 맞춰 DLL 메서드를 실행(235)하고, 상기 DLL이 디바이스 제어용인 경우에는 상기 DLL 메서드를 통해 상기 DLL 파일(430)에 연결된 디바이스(460)를 구동하고, 상기 DLL 메서드의 실행 또는 디바이스의 구동 결과를 상기 웹소켓 미들웨어(210)에 보내도록 이루어짐이 바람직하다.
DLL은, 웹브라우저(100)에 의해 이용될 수 있는 동적 링크 라이브러리이고, 이 DLL의 처리에 있어서, 파일 로드(231), 타입 판단(232), 객체 로드(233), 메서드 분석(234), 메서드 실행(235), 리턴의 단계로 처리할 수 있다.
DLL 파일 로드(231)는, 로컬 리소스(400)로부터 DLL 파일(430)을 읽어들이는 것이다.
DLL 타입(구조) 판단(232)은, 읽어들인 대상 DLL이 Managed DLL인지 Unmanaged DLL인지, 구조 분석 및 판단하는 것이다. 판단기준은 CLR 지원/미지원 여부에 의한다.
DLL 객체 로드(233)는, InteropService::Appdomain, Kernel32.LoadLibrary를 사용해서 DLL 객체를 동적으로 로드하는 것이다.
메서드 분석(234)은, 로드된 대상 DLL 객체의 전체 메서드를 분석하는 것으로, 웹브라우저(100)에서 전달받은 데이터와 일치하는 메서드 정보를 획득하는 것이다.
DLL 메서드 실행(235)은, 웹브라우저(100)의 명령에 따른 DLL 메서드를 실행하는 것으로, DLL과 매칭되는 디바이스의 기능을 수행하거나, DLL 자체의 기능을 수행하는 것이다.
수행결과는, 웹소켓 미들웨어(210)에 리턴된다.
<업데이트 기능>
한편, 로컬 리소스(400)의 라이브러리 파일(420, 430)을 최신버전으로 업데이트할 필요가 있다. 또한, 상기 라이브러리 처리기(200) 파일(440)도 최신버전으로 업데이트할 필요가 있다. 이러한 자체 버전 업데이트를 통한 실시간 유지보수를 위해, 업데이터(300)가 구비된다.
이 경우, 상기 라이브러리 처리기(200) 및 상기 로컬 리소스(400)에는, 도 1 및 도 5와 같이, 업데이터(300)가 연결되어 있고, 상기 업데이터(300)에는, 최신버전의 라이브러리 파일(520, 530) 및 처리기 파일(540) 중 적어도 하나가 보관되는 파일서버(500)가 연결되어 있도록 이루어질 수 있다.
이때, 상기 업데이터(300)는, 도 5와 같이, 윈도우즈 서비스(480)에 의한 업데이트와, 업데이트 요청명령에 의한 업데이트 중 적어도 하나를 지원하도록 구성될 수 있다.
상기 윈도우즈 서비스(480)에 의한 업데이트는, 정기적으로 상기 로컬 리소스(400) 내의 파일의 버전과 상기 파일서버(500) 내의 파일의 버전을 비교하여 업데이트를 체크하는 방식의 업데이트이다. 윈도우즈 서비스는, 정기 업데이트를 지원하기 위한 윈도우즈 서비스로서, 정기 업데이트는, 사용자 요청에 따른 시간(업데이트 주기)마다 정기 업데이트를 하게 된다.
상기 업데이트 요청명령에 의한 업데이트는, 상기 웹브라우저(100)로부터의 명령에 의한 방식의 업데이트이다.
업데이트 체크는, 상기 정기 업데이트나 웹소켓 미들웨어(210)의 업데이트 명령 수신시에 수행된다.
이로써, 미리 정해져 있는 정기적으로, 또는 일시적 명령에 의해, 다수의 클라이언트에 대한 실시간 유지보수용 업데이트가 가능하게 된다.
<업데이트 효율 제고>
한편, 업데이트 효율성의 향상을 위해, 상기 로컬 리소스(400) 내에는, 도 1 및 도 5와 같이, 상기 로컬 리소스(400) 내의 라이브러리 파일(420, 430) 및 라이브러리 처리기 파일(440)의 정보 및 버전정보가 입력 및 관리되는 로컬 관리파일(410)이 구비되어 있고, 상기 파일서버(500) 내에는, 상기 파일서버(500) 내의 라이브러리 파일(520, 530) 및 라이브러리 처리기 파일(540)의 정보 및 버전정보가 입력 및 관리되는 서버 관리파일(510)이 구비되어 있도록 이루어질 수 있다. 이들 로컬 관리파일(410)과 서버 관리파일(510)은, 요컨대 요약정보를 가지는 파일이다.
이 경우에, 상기 업데이터(300)는, 상기 로컬 관리파일(410)과 상기 서버 관리파일(510)을 비교함으로써 업데이트를 체크(업데이트 여부 결정)하도록 이루어짐이 바람직하다.
이를 위해, 상기 업데이터(300)는, 도 5와 같이, 업데이트 체크모듈(310)과 파일 다운로더 모듈(320)을 구비하여 이루어질 수 있다.
상기 업데이트 체크모듈(310)은, 정기 업데이트시 또는 웹소켓 미들웨어(210)의 업데이트 명령 수신시에 수행될 수 있다. 그리고 업데이트 여부의 결정은, 로컬 리소스(400)와 파일서버(500)의 관리파일들(410, 510)을 비교함으로써 행할 수 있다. 업데이트가 있는 경우, 상기 업데이터(300) 내의 파일 다운로더 모듈(320)에 다운로드 명령을 전달한다.
상기 파일 다운로더 모듈(320)은, 업데이트 체크모듈(310)에서 다운로드 명령을 전달받은 경우에 수행된다. 이로써, 파일서버(500)에서 최신버전 파일을 다운로드하여 로컬 리소스(400)에 적용하게 된다.
이로써, 로컬 리소스(400) 내의 모든 라이브러리 파일(420, 430)과 파일서버(500) 내의 모든 라이브러리 파일(520, 530)을 하나하나 비교하거나, 로컬 리소스(400) 내의 모든 처리기 파일(440)과 파일서버(500) 내의 모든 처리기 파일(540)을 하나하나 비교해서 업데이트를 체크하지 않고, 단순히 로컬 리소스(400) 내의 로컬 관리파일(410)과 파일서버(500) 내의 서버 관리파일(510)만을 비교해서 업데이트를 체크하므로, 파일 하나로 다수의 파일정보를 획득하여, 매우 소량의 요약정보만 비교하므로, 신속 정확하게 업데이트가 가능하다.
<로그 기능>
상기 웹소켓 미들웨어(210)에 의해, 상기 웹소켓 미들웨어(210)에 관한 상태로그, 액티브X 호출 로그, DLL 호출 로그, 에러 로그, 업데이트 로그 중 적어도 하나의 로그(log)가 기록되도록 이루어짐이 바람직하다.
상기 로그는, 상기 라이브러리 처리기(200)의 구동과 함께 개시됨이 바람직하다. 이로써, 상태, 호출정보, 에러기록, 업데이트 기록 등이 유지되므로, 원인규명의 기본자료가 된다.
<리라이브 기능>
상기 웹소켓 미들웨어(210)에는, 상기 웹소켓 미들웨어(210)가 예기치 못한 문제 또는 오류로 종료된 경우, 강제로 다시 재기동되도록 하는 리라이브(Relive) 기능이 구비되도록 이루어짐이 바람직하다.
상기 리라이브 기능은, 실시간 감시를 통해 수행되며, 이로써, 복구불능 장애(Fatal error)시에 재기동 가능하게 된다.
<모니터 및 매니저 기능>
상기 로그 기능 및 리라이브 기능이 상기 라이브러리 처리기(200) 내부에 구비되는 경우, 구조적 종속성에 의해 예컨대 상기 라이브러리 처리기(200)의 고장 발생시에 로그 기능이나 리라이브 기능이 제대로 작동되지 못할 우려가 있다. 또한, 상기 업데이터(300)가 독립 구동됨으로써 자원의 원활한 활용이 미흡하게 되는 경우가 있다. 이를 보완하기 위해, 상기 업데이트, 로그 기능 및 리라이브 기능을 구현하기 위한 구성에 대한 대체 구성 실시예로서, 상기 라이브러리 처리기(200) 외부에 모니터(600)와 매니저(700)가 독립 설치되어 운용되도록 구성됨이 바람직한 경우가 있다.
그리고 도 7과 같이, 상기 라이브러리 처리기(200)에 연결된 모니터(600)와; 상기 로컬 리소스(400), 상기 파일서버(500) 및 상기 모니터(600)에 연결된 매니저(700);가 더 포함되고, 도 8과 같이, 상기 모니터(600)는, 상기 라이브러리 처리기(200)와 상기 매니저(700)의 구동 여부를 실시간 모니터링(610)하고, 상기 라이브러리 처리기(200)와 상기 매니저(700)를 제어(620)하며, 상기 모니터링(610) 결과를 이용하여 로그 기능을 부여하고, 상기 모니터링(610)과 제어(620)에 의해 상기 라이브러리 처리기(200)에 대해 독립 구비된 리라이브 기능을 부여하며, 내부에 IPC 서버(630)가 구비되어 있고, 상기 매니저(700)는, 상기 IPC 서버(630)에 통신 접속되는 IPC 클라이언트(730)가 구비되고, 사용자에 의해 발생된 이벤트를 통해 상기 라이브러리 처리기(200)를 간접 제어하며, 사용자에 의한 상기 로컬 리소스(400)의 수동 업데이트를 허용하고, 업데이트 타이머(740)에 의한 정기 업데이트를 허용하도록 구성됨이 바람직하다.
상기 모니터(600)는, 상기 라이브러리 처리기(200)와 상기 매니저(700)의 구동 여부를 모니터링(610)하고, 상기 라이브러리 처리기(200)와 상기 매니저(700)를 제어(620)한다. 그리고 모니터(600)는, IPC(Inter Process Communication) 서버(630)를 포함한다. 상기 IPC 서버(630)는, 상기 매니저(700)와 프로세스간 메시지 교환을 위해 사용되는 서버로서, 상기 매니저(700)가 상기 라이브러리 처리기(200)를 직접 제어하지 않고, 상기 모니터(600)를 통해 간접 제어하도록 하는 용도로 사용된다.
상기 매니저(700)는, 버튼 클릭 등 사용자가 발생시킨 이벤트를 통해 상기 라이브러리 처리기(200)를 간접적으로 제어할 수 있고, 사용자에 의한 상기 로컬 리소스(400) 및 라이브러리 처리기(200)의 수동 업데이트가 가능하다. 또한, 도 8과 같이, 업데이트 타이머(740)에 의한 정기 업데이트를 지원한다. 상기 매니저(700)는, 상기 라이브러리 처리기(200)를 직접 제어하지 않고, 내부의 IPC 클라이언트(730)를 통해 상기 모니터(600)의 IPC 서버(630)와 통신하여 상기 라이브러리 처리기(200)를 간접 제어한다.
업데이트시에 상기 라이브러리 처리기(200)가 점유하고 있는 자원을 해제해야 하고, 상기 라이브러리 처리기(200) 또한 업데이트 대상이다. 따라서, 상기 라이브러리 처리기(200)를 종료한 뒤에 업데이트를 수행해야 한다. 이에 따라, 업데이트 메카니즘에 있어서, 제어 메카니즘에 대한 추가 이해가 필요하다.
상기 매니저(700)는, 도 8과 같이, 업데이트 타이머(740)를 구비한다. 상기 업데이트 타이머(740)에 의해 타이머 이벤트가 발생되면, 업데이트 체크(710)가 수행된다. 업데이트 체크(710)에서, 로컬 리소스(400)의 관리파일(410)과 파일서버(500)의 관리파일(510)의 비교에 의해 업데이트 수행 여부를 결정할 수 있음은 전술한 바와 같다. 그리고 업데이트 수행시에는, 파일 다운로드(720)가 이루어진다. 파일 다운로드(720)에 의해, 상기 파일서버(500)의 최신 파일(520, 530, 540)이 로컬 리소스(400)에 다운로드되어 교체 및 업데이트가 수행됨도 전술한 바와 같다.
상기 모니터(600)의 상기 IPC 서버(630)에 대응하여, 상기 매니저(700)에 IPC 클라이언트(730)가 구비된다. 이들 상기 IPC 서버(630)와 상기 IPC 클라이언트(730)는, 상기 모니터(600)와 상기 매니저(700)의 프로세스간 통신을 위해 구축되어야 되는 환경이다. 즉, 상기 모니터(600)와 상기 매니저(700)는, 서버와 클라이언트간 메시지를 주고 받으면서 통신을 한다.
한편, 상기 라이브러리 처리기(200)와 상기 매니저(700) 간에는, 직접적인 상호 제어기능이 제거되고, 상기 라이브러리 처리기(200)와 상기 모니터(600) 간에만 직접적인 모든 제어기능이 부여된다. 따라서, 상기 매니저(700)가 상기 라이브러리 처리기(200)를 제어하기 위해서는, 상기 모니터(600)를 통해 제어해야 한다.
또한, 상기 리라이브 기능은, 상기 라이브러리 처리기(200) 내에 구비되지 않고, 상기 라이브러리 처리기(200) 외부, 즉 상기 모니터(600) 내에 모니터링(610) 및 제어(620)모듈로서 구비된다. 상기 라이브러리 처리기(200)에 대해 독립 구비된 상기 리라이브 기능에 의해, 상기 모니터(600)는 상기 라이브러리 처리기(200)과 상기 매니저(700)의 구동 여부를 항시 실시간 모니터링 가능하다. 따라서, 상기 라이브러리 처리기(200)나 상기 매니저(700)가 오류로 인해 종료됐을 경우, 상기 모니터(600)는, 이를 감지해서 로그를 남기고 재기동 시킬 수 있게 된다.
<장치>
본 발명의 장치는, 웹브라우저를 위한 라이브러리 구동 및 업데이트 장치이다. 본 발명의 장치는, 웹브라우저(100)와; 로컬 리소스(400)와; 라이브러리 처리기(200);를 포함하여 이루어진다.
상기 웹브라우저(100)는, 웹소켓 규격의 연결모듈(110)이 설치되어 있는 브라우저이다.
상기 로컬 리소스(400)는, 라이브러리 파일(420, 430)이 포함되어 있는 리소스이다.
상기 라이브러리 처리기(200)는, 상기 웹브라우저(100) 및 상기 로컬 리소스(400)에 연결되어 있고, 웹소켓 미들웨어(210) 및 로더(220, 230)가 구비되어 있는 처리기이다.
여기서, 상기 연결모듈(110)은, 상기 웹브라우저(100)에서 라이브러리의 기능이 필요할 때, 명령과 데이터를 상기 웹소켓 미들웨어(210)에 전송하면서 상기 라이브러리 처리기(200)에 라이브러리 호출메시지를 전송하고, 상기 라이브러리 처리기(200)에 의한 상기 명령과 데이터의 처리결과를 상기 라이브러리 처리기(200)로부터 리턴받는 모듈이고; 상기 웹소켓 미들웨어(210)는, 상기 연결모듈(110)로부터 수신된 상기 명령과 데이터의 처리에 필요한 라이브러리 파일(420, 430)을 결정하고, 로드된 상기 라이브러리 파일(420, 430)을 이용하여 상기 명령과 데이터를 처리하는 수단이며; 상기 로더(220, 230)는, 상기 로컬 리소스(400)로부터 상기 명령과 데이터의 처리에 필요한 상기 라이브러리 파일(420, 430)을 로드하는 수단이다.
<프로그램>
본 발명의 프로그램은, 웹브라우저를 위한 라이브러리 구동 및 업데이트용 프로그램이다. 본 발명의 프로그램은, 정보처리기기에 청구항 1 또는 청구항 2에 기재된 방법의 각 단계를 실행시키기 위한 프로그램을 기록한 정보처리기기로 읽을 수 있는 저장매체에 기록된 프로그램이다.
이상 본 발명의 바람직한 실시예에 대해 설명했지만, 본 발명은, 상기 개시되는 실시예들에 한정되는 것이 아니라, 특허청구범위와 발명의 상세한 설명 및 첨부 도면의 범위 안에서 서로 다른 다양한 형태로 변형하여 구현 실시될 수 있고, 균등한 타 실시예가 가능하며, 이 또한 본 발명의 범위에 속하는 것은 당해 분야에서 통상적 지식을 가진 자에게 당연하며, 단지 실시예들은, 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은, 청구항의 범주에 의해 정의될 뿐이다.
본 발명은, 웹브라우저를 위한 라이브러리 구동 및 업데이트 방법, 장치 및 프로그램의 산업에 이용될 수 있다.
100: 웹브라우저 110: 연결모듈
200: 라이브러리 처리기
210: 웹소켓 미들웨어 211: 웹소켓 통신모듈
212: 명령어 파싱모듈 213: 자체명령어 처리모듈
214: 라이브러리 호출명령 분석모듈 215: 동기/비동기 선택모듈
216: 로더 선택모듈
220: 액티브X 로더 221: 액티브X 로드모듈
222: 액티브X 메서드 분석모듈 223: 액티브X 메서드 실행모듈
230: DLL 로더 231: DLL 파일 로드모듈
232: DLL 타입 판단모듈 233: DLL 객체 로드모듈
234: DLL 메서드 분석모듈 235: DLL 메서드 실행
300: 업데이터
310: 업데이트 체크모듈 320: 파일 다운로더
400: 로컬 리소스
410: 관리파일 420: 액티브X 파일
430: DLL 파일 440: 처리기 파일
450: 디바이스 460: 디바이스
470: 레지스트리 480: 윈도우즈 서비스
500: 파일서버
510: 관리파일 520: 액티브X 파일
530: DLL 파일 540: 처리기 파일
600: 모니터 610: 모니터링 모듈
620: 제어 모듈 630: IPC 서버
700: 매니저 710: 업데이트 체크모듈
720: 파일 다운로더 730: IPC 클라이언트
740: 업데이트 타이머

Claims (16)

  1. 웹브라우저를 위한 라이브러리 구동 및 업데이트 방법으로서,
    웹브라우저에 웹소켓 규격의 연결모듈이 설치되고, 라이브러리 파일을 포함하는 로컬 리소스와 상기 웹브라우저에 연결되도록 라이브러리 처리기가 설치되는 준비단계와;
    상기 웹브라우저에서 라이브러리의 기능이 필요할 때, 상기 웹브라우저에서 상기 연결모듈을 통해 명령과 데이터가 상기 라이브러리 처리기 내의 웹소켓 미들웨어에 전송되면서 상기 라이브러리 처리기에 라이브러리 호출메시지가 전송되는 호출단계와;
    상기 라이브러리 처리기 내의 로더에 상기 로컬 리소스로부터 상기 라이브러리 파일이 로드되는 로드단계와;
    로드된 상기 라이브러리 파일을 이용하여 상기 웹소켓 미들웨어에서 상기 명령과 데이터가 처리되는 처리단계와;
    상기 명령과 데이터의 처리결과가 상기 라이브러리 처리기로부터 상기 웹브라우저에 상기 연결모듈을 통해 리턴되는 리턴단계
    를 포함하여 이루어지고,
    상기 라이브러리 파일은, 액티브X 파일이고,
    상기 로더는, 액티브X 로더이며,
    상기 액티브X 로더는, 상기 로컬 리소스로부터 레지스트리를 통해 상기 액티브X 파일을 로드하고, 액티브X 객체에 대해 액티브X 메서드 분석을 행하며, 명령어 구조에 맞춰 액티브X 메서드를 실행하고, 상기 액티브X가 디바이스 제어용인 경우에는 상기 액티브X 메서드를 통해 상기 액티브X 파일에 연결된 디바이스를 구동하고, 실행 또는 구동 결과를 상기 웹소켓 미들웨어에 보내도록 이루어짐
    을 특징으로 하는, 웹브라우저를 위한 라이브러리 구동 및 업데이트 방법.
  2. 웹브라우저를 위한 라이브러리 구동 및 업데이트 방법으로서,
    웹브라우저에 웹소켓 규격의 연결모듈이 설치되고, 라이브러리 파일을 포함하는 로컬 리소스와 상기 웹브라우저에 연결되도록 라이브러리 처리기가 설치되는 준비단계와;
    상기 웹브라우저에서 라이브러리의 기능이 필요할 때, 상기 웹브라우저에서 상기 연결모듈을 통해 명령과 데이터가 상기 라이브러리 처리기 내의 웹소켓 미들웨어에 전송되면서 상기 라이브러리 처리기에 라이브러리 호출메시지가 전송되는 호출단계와;
    상기 라이브러리 처리기 내의 로더에 상기 로컬 리소스로부터 상기 라이브러리 파일이 로드되는 로드단계와;
    로드된 상기 라이브러리 파일을 이용하여 상기 웹소켓 미들웨어에서 상기 명령과 데이터가 처리되는 처리단계와;
    상기 명령과 데이터의 처리결과가 상기 라이브러리 처리기로부터 상기 웹브라우저에 상기 연결모듈을 통해 리턴되는 리턴단계
    를 포함하여 이루어지고,
    상기 라이브러리 파일은, DLL 파일이고,
    상기 로더는, DLL 로더이며,
    상기 DLL 로더는, 상기 로컬 리소스로부터 상기 DLL 파일을 로드하고, DLL 타입을 판단한 후, DLL 객체를 로드하고, DLL 메서드 분석을 행하며, 상기 명령과 데이터에 맞춰 DLL 메서드를 실행하고, 상기 DLL이 디바이스 제어용인 경우에는 상기 DLL 메서드를 통해 상기 DLL 파일에 연결된 디바이스를 구동하고, 실행 또는 구동 결과를 상기 웹소켓 미들웨어에 보내도록 이루어짐
    을 특징으로 하는, 웹브라우저를 위한 라이브러리 구동 및 업데이트 방법.
  3. 웹브라우저를 위한 라이브러리 구동 및 업데이트 방법으로서,
    웹브라우저에 웹소켓 규격의 연결모듈이 설치되고, 라이브러리 파일을 포함하는 로컬 리소스와 상기 웹브라우저에 연결되도록 라이브러리 처리기가 설치되는 준비단계와;
    상기 웹브라우저에서 라이브러리의 기능이 필요할 때, 상기 웹브라우저에서 상기 연결모듈을 통해 명령과 데이터가 상기 라이브러리 처리기 내의 웹소켓 미들웨어에 전송되면서 상기 라이브러리 처리기에 라이브러리 호출메시지가 전송되는 호출단계와;
    상기 라이브러리 처리기 내의 로더에 상기 로컬 리소스로부터 상기 라이브러리 파일이 로드되는 로드단계와;
    로드된 상기 라이브러리 파일을 이용하여 상기 웹소켓 미들웨어에서 상기 명령과 데이터가 처리되는 처리단계와;
    상기 명령과 데이터의 처리결과가 상기 라이브러리 처리기로부터 상기 웹브라우저에 상기 연결모듈을 통해 리턴되는 리턴단계
    를 포함하여 이루어지고,
    상기 라이브러리 처리기에 연결된 모니터와;
    상기 로컬 리소스, 파일서버 및 상기 모니터에 연결된 매니저;
    가 더 포함되고,
    상기 모니터는, 상기 라이브러리 처리기와 상기 매니저의 구동 여부를 실시간 모니터링하고, 상기 라이브러리 처리기와 상기 매니저를 제어하며, 상기 모니터링 결과를 이용하여 로그 기능을 부여하고, 상기 모니터링과 제어에 의해 상기 라이브러리 처리기에 대해 독립 구비된 리라이브 기능을 부여하며, 내부에 IPC 서버가 구비되어 있고,
    상기 매니저는, 상기 IPC 서버에 통신 접속되는 IPC 클라이언트가 구비되고, 사용자에 의해 발생된 이벤트를 통해 상기 라이브러리 처리기를 간접 제어하며, 사용자에 의한 상기 로컬 리소스의 수동 업데이트를 허용하고, 업데이트 타이머에 의한 정기 업데이트를 허용하도록 구성됨
    을 특징으로 하는, 웹브라우저를 위한 라이브러리 구동 및 업데이트 방법.
  4. 웹브라우저를 위한 라이브러리 구동 및 업데이트 장치로서,
    웹소켓 규격의 연결모듈이 설치되어 있는 웹브라우저와;
    라이브러리 파일이 포함되어 있는 로컬 리소스와;
    상기 웹브라우저 및 상기 로컬 리소스에 연결되어 있고, 웹소켓 미들웨어 및 로더가 구비되어 있는 라이브러리 처리기;
    를 포함하여 이루어지고,
    상기 연결모듈은, 상기 웹브라우저에서 라이브러리의 기능이 필요할 때, 명령과 데이터를 상기 웹소켓 미들웨어에 전송하면서 상기 라이브러리 처리기에 라이브러리 호출메시지를 전송하고, 상기 라이브러리 처리기에 의한 상기 명령과 데이터의 처리결과를 상기 라이브러리 처리기로부터 리턴받는 모듈이고;
    상기 웹소켓 미들웨어는, 상기 연결모듈로부터 수신된 상기 명령과 데이터의 처리에 필요한 라이브러리 파일을 결정하고, 로드된 상기 라이브러리 파일을 이용하여 상기 명령과 데이터를 처리하는 수단이며;
    상기 로더는, 상기 로컬 리소스로부터 상기 명령과 데이터의 처리에 필요한 상기 라이브러리 파일을 로드하는 수단이고,
    상기 라이브러리 파일은, 액티브X 파일이고,
    상기 로더는, 액티브X 로더이며,
    상기 액티브X 로더는, 상기 로컬 리소스로부터 레지스트리를 통해 상기 액티브X 파일을 로드하고, 액티브X 객체에 대해 액티브X 메서드 분석을 행하며, 명령어 구조에 맞춰 액티브X 메서드를 실행하고, 상기 액티브X가 디바이스 제어용인 경우에는 상기 액티브X 메서드를 통해 상기 액티브X 파일에 연결된 디바이스를 구동하고, 실행 또는 구동 결과를 상기 웹소켓 미들웨어에 보내도록 이루어짐
    을 특징으로 하는, 웹브라우저를 위한 라이브러리 구동 및 업데이트 장치.
  5. 웹브라우저를 위한 라이브러리 구동 및 업데이트 장치로서,
    웹소켓 규격의 연결모듈이 설치되어 있는 웹브라우저와;
    라이브러리 파일이 포함되어 있는 로컬 리소스와;
    상기 웹브라우저 및 상기 로컬 리소스에 연결되어 있고, 웹소켓 미들웨어 및 로더가 구비되어 있는 라이브러리 처리기;
    를 포함하여 이루어지고,
    상기 연결모듈은, 상기 웹브라우저에서 라이브러리의 기능이 필요할 때, 명령과 데이터를 상기 웹소켓 미들웨어에 전송하면서 상기 라이브러리 처리기에 라이브러리 호출메시지를 전송하고, 상기 라이브러리 처리기에 의한 상기 명령과 데이터의 처리결과를 상기 라이브러리 처리기로부터 리턴받는 모듈이고;
    상기 웹소켓 미들웨어는, 상기 연결모듈로부터 수신된 상기 명령과 데이터의 처리에 필요한 라이브러리 파일을 결정하고, 로드된 상기 라이브러리 파일을 이용하여 상기 명령과 데이터를 처리하는 수단이며;
    상기 로더는, 상기 로컬 리소스로부터 상기 명령과 데이터의 처리에 필요한 상기 라이브러리 파일을 로드하는 수단이고,
    상기 라이브러리 파일은, DLL 파일이고,
    상기 로더는, DLL 로더이며,
    상기 DLL 로더는, 상기 로컬 리소스로부터 상기 DLL 파일을 로드하고, DLL 타입을 판단한 후, DLL 객체를 로드하고, DLL 메서드 분석을 행하며, 상기 명령과 데이터에 맞춰 DLL 메서드를 실행하고, 상기 DLL이 디바이스 제어용인 경우에는 상기 DLL 메서드를 통해 상기 DLL 파일에 연결된 디바이스를 구동하고, 실행 또는 구동 결과를 상기 웹소켓 미들웨어에 보내도록 이루어짐
    을 특징으로 하는, 웹브라우저를 위한 라이브러리 구동 및 업데이트 장치.
  6. 웹브라우저를 위한 라이브러리 구동 및 업데이트 장치로서,
    웹소켓 규격의 연결모듈이 설치되어 있는 웹브라우저와;
    라이브러리 파일이 포함되어 있는 로컬 리소스와;
    상기 웹브라우저 및 상기 로컬 리소스에 연결되어 있고, 웹소켓 미들웨어 및 로더가 구비되어 있는 라이브러리 처리기;
    를 포함하여 이루어지고,
    상기 연결모듈은, 상기 웹브라우저에서 라이브러리의 기능이 필요할 때, 명령과 데이터를 상기 웹소켓 미들웨어에 전송하면서 상기 라이브러리 처리기에 라이브러리 호출메시지를 전송하고, 상기 라이브러리 처리기에 의한 상기 명령과 데이터의 처리결과를 상기 라이브러리 처리기로부터 리턴받는 모듈이고;
    상기 웹소켓 미들웨어는, 상기 연결모듈로부터 수신된 상기 명령과 데이터의 처리에 필요한 라이브러리 파일을 결정하고, 로드된 상기 라이브러리 파일을 이용하여 상기 명령과 데이터를 처리하는 수단이며;
    상기 로더는, 상기 로컬 리소스로부터 상기 명령과 데이터의 처리에 필요한 상기 라이브러리 파일을 로드하는 수단이고,
    상기 라이브러리 처리기에 연결된 모니터와;
    상기 로컬 리소스, 파일서버 및 상기 모니터에 연결된 매니저;
    가 더 포함되고,
    상기 모니터는, 상기 라이브러리 처리기와 상기 매니저의 구동 여부를 실시간 모니터링하고, 상기 라이브러리 처리기와 상기 매니저를 제어하며, 상기 모니터링 결과를 이용하여 로그 기능을 부여하고, 상기 모니터링과 제어에 의해 상기 라이브러리 처리기에 대해 독립 구비된 리라이브 기능을 부여하며, 내부에 IPC 서버가 구비되어 있고,
    상기 매니저는, 상기 IPC 서버에 통신 접속되는 IPC 클라이언트가 구비되고, 사용자에 의해 발생된 이벤트를 통해 상기 라이브러리 처리기를 간접 제어하며, 사용자에 의한 상기 로컬 리소스의 수동 업데이트를 허용하고, 업데이트 타이머에 의한 정기 업데이트를 허용하도록 구성됨
    을 특징으로 하는, 웹브라우저를 위한 라이브러리 구동 및 업데이트 장치.
  7. 웹브라우저를 위한 라이브러리 구동 및 업데이트용 프로그램으로서,
    정보처리기기에 청구항 1 내지 청구항 3 중 어느 하나에 기재된 방법의 각 단계를 실행시키기 위한 프로그램을 기록한, 정보처리기기로 읽을 수 있는 저장매체에 기록된 프로그램.
  8. 삭제
  9. 삭제
  10. 삭제
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
KR1020190063471A 2019-05-29 2019-05-29 웹브라우저를 위한 라이브러리 구동 및 업데이트 방법, 장치 및 프로그램 KR102118666B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190063471A KR102118666B1 (ko) 2019-05-29 2019-05-29 웹브라우저를 위한 라이브러리 구동 및 업데이트 방법, 장치 및 프로그램

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190063471A KR102118666B1 (ko) 2019-05-29 2019-05-29 웹브라우저를 위한 라이브러리 구동 및 업데이트 방법, 장치 및 프로그램

Publications (1)

Publication Number Publication Date
KR102118666B1 true KR102118666B1 (ko) 2020-06-05

Family

ID=71088918

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190063471A KR102118666B1 (ko) 2019-05-29 2019-05-29 웹브라우저를 위한 라이브러리 구동 및 업데이트 방법, 장치 및 프로그램

Country Status (1)

Country Link
KR (1) KR102118666B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150035387A (ko) * 2013-09-27 2015-04-06 삼성전자주식회사 컨텐츠 재생을 위한 클라이언트, 컨텐츠 재생 방법, 컨텐츠 접속 제공 방법, 전자 장치의 컨텐츠 재생 선택 방법 및 컴퓨터 판독가능 기록매체
KR20150124786A (ko) * 2014-04-29 2015-11-06 주식회사 모빌씨앤씨 자바 스크립트를 이용한 모바일 앱 및 웹 통합 개발 시스템
KR20170027230A (ko) 2015-09-01 2017-03-09 종 진 임 로컬 서버 기능을 이용한 액티브x 대체 기술
KR20180087901A (ko) * 2017-01-25 2018-08-03 (주)인스웨이브시스템즈 웹 표준 애플리케이션 개발을 위한 통합 외부 연동 시스템 및 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150035387A (ko) * 2013-09-27 2015-04-06 삼성전자주식회사 컨텐츠 재생을 위한 클라이언트, 컨텐츠 재생 방법, 컨텐츠 접속 제공 방법, 전자 장치의 컨텐츠 재생 선택 방법 및 컴퓨터 판독가능 기록매체
KR20150124786A (ko) * 2014-04-29 2015-11-06 주식회사 모빌씨앤씨 자바 스크립트를 이용한 모바일 앱 및 웹 통합 개발 시스템
KR20170027230A (ko) 2015-09-01 2017-03-09 종 진 임 로컬 서버 기능을 이용한 액티브x 대체 기술
KR20180087901A (ko) * 2017-01-25 2018-08-03 (주)인스웨이브시스템즈 웹 표준 애플리케이션 개발을 위한 통합 외부 연동 시스템 및 방법

Similar Documents

Publication Publication Date Title
US10409627B2 (en) System for downloading and executing virtualized application files identified by unique file identifiers
US20180322162A1 (en) Query dispatch and execution architecture
US6073163A (en) Method and apparatus for enabling web-based execution of an application
EP1909173B1 (en) Management of data of settings in an operating system of a computer
US8443347B2 (en) Translating declarative models
US20060206583A1 (en) Framework for managing client application data in offline and online environments
US20080140759A1 (en) Dynamic service-oriented architecture system configuration and proxy object generation server architecture and methods
US20080140857A1 (en) Service-oriented architecture and methods for direct invocation of services utilizing a service requestor invocation framework
US20080140760A1 (en) Service-oriented architecture system and methods supporting dynamic service provider versioning
US20070226715A1 (en) Application server system and computer product
KR20130139894A (ko) 복수의 원격 서버에 대한 통합 재연결
US10404568B2 (en) Agent manager for distributed transaction monitoring system
US20110276625A1 (en) Method and system for host independent keyboard, video, and mouse (kvm) redirection
EP3616061B1 (en) Hyper dynamic java management extension
CN111400041A (zh) 服务器配置文件的管理方法、装置及计算机可读存储介质
CN112596757A (zh) 一种云桌面虚拟机代理组件升级方法、装置及存储介质
KR102118666B1 (ko) 웹브라우저를 위한 라이브러리 구동 및 업데이트 방법, 장치 및 프로그램
CN113254217A (zh) 业务的消息处理方法、装置及电子设备
CN111045695A (zh) WebLogic中间件部署装置、方法及设备和介质
CN115859280A (zh) 内存马的检测方法、装置、设备及存储介质
CN114489847A (zh) 进程管理器的管控方法、系统、设备及存储介质
CN113254062B (zh) 一种bmc参数配置及生效的方法、装置、设备和介质
CN115408050A (zh) 一种微前端子应用的发布方法、装置、设备及存储介质
JP2021184235A5 (ko)
CN112306492A (zh) 一种基于管理者和工作者架构的支持多平台的自动化编译方法

Legal Events

Date Code Title Description
GRNT Written decision to grant