KR101648047B1 - System and method for recommending compatible open source software - Google Patents

System and method for recommending compatible open source software Download PDF

Info

Publication number
KR101648047B1
KR101648047B1 KR1020140155248A KR20140155248A KR101648047B1 KR 101648047 B1 KR101648047 B1 KR 101648047B1 KR 1020140155248 A KR1020140155248 A KR 1020140155248A KR 20140155248 A KR20140155248 A KR 20140155248A KR 101648047 B1 KR101648047 B1 KR 101648047B1
Authority
KR
South Korea
Prior art keywords
software
sub
open source
compatible
source software
Prior art date
Application number
KR1020140155248A
Other languages
Korean (ko)
Other versions
KR20160056341A (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 KR1020140155248A priority Critical patent/KR101648047B1/en
Publication of KR20160056341A publication Critical patent/KR20160056341A/en
Application granted granted Critical
Publication of KR101648047B1 publication Critical patent/KR101648047B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/907Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • 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

Abstract

본 발명에 따른 호환 오픈소스 소프트웨어 추천 방법은, 오픈소스 소프트웨어들 및 각 오픈소스 소프트웨어의 메타 정보를 제공하는 적어도 하나의 오픈소스 소프트웨어 제공 서버들로부터 오픈소스 소프트웨어들 및 메타정보들을 수집하여 오픈소스 소프트웨어 데이터베이스를 구축하되, 수집된 오픈소스 소프트웨어가 그에 속한 오픈소스 소프트웨어인 서브소프트웨어를 포함하는 경우 해당 서브소프트웨어 리스트를 구성하는 단계; 특정 오픈소스 소프트웨어에 포함된 특정 서브소프트웨어와 호환이 되는 서브소프트웨어의 검색 요청을 입력받는 단계; 상기 오픈소스 소프트웨어 데이터베이스의 서브소프트웨어들을 대상 서브소프트웨어들로 하여, 상기 특정 서브소프트웨어의 메타정보, 상기 대상 서브소프트웨어들의 메타정보, 및 상기 서브소프트웨어 리스트를 바탕으로, 상기 특정 서브소프트웨어와 호환이 될 수 있는 적어도 하나의 서브소프트웨어를 검색하는 단계; 및 상기 검색된 서브소프트웨어를 표시하는 단계를 포함하는 것을 특징으로 한다.A compatible open source software recommendation method according to the present invention collects open source software and meta information from at least one open source software providing servers that provide open source software and meta information of each open source software, Constructing a database, if the collected open-source software includes sub-software which is open-source software belonging thereto, configuring the sub-software list; Receiving a search request of sub-software compatible with a specific sub-software included in the specific open-source software; The sub-software of the open-source software database may be compatible with the specific sub-software based on the meta information of the specific sub-software, the meta information of the target sub-software, Searching for at least one sub-software having at least one sub-software; And displaying the retrieved sub-software.

Description

호환 오픈소스 소프트웨어 추천 시스템 및 방법{System and method for recommending compatible open source software}Compatible Open Source Software Recommendation System and Method [

본 발명은 오픈소스 소프트웨어 추천 시스템 및 방법에 관한 것으로, 보다 상세하게는 오픈소스 소프트웨어를 수집하여 데이터베이스화하고, 오픈소스 소프트웨어를 구성하는 오픈소스 소프트웨어인 서브소프트웨어들 중 특정 서브소프트웨어를 대체할 수 있는 다른 서브소프트웨어를 추천하는 시스템 및 방법에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an open source software recommendation system and method, and more particularly, to an open source software recommendation system and method that collects and databases open source software, And a system and method for recommending other sub-software.

일반적으로 오픈 소스 소프트웨어(open source software, OSS)란 무료이면서 소스코드를 개방한 상태로 실행 프로그램을 제공하는 동시에 소스코드를 누구나 자유롭게 개작 및 개작된 소프트웨어를 재배포할 수 있도록 허용된 소프트웨어를 말한다. In general, open source software (OSS) is software that is freely available, freeing the source code to provide executable programs, and allowing anyone to freely adapt the source code and redistribute the modified software.

오픈소스 소프트웨어는 누구라도 소스코드를 읽을 수 있고 사용자가 능력이 있다면 각종 버그의 수정은 물론이고 그것을 개조하여 기능을 추가할 수 있으며, 누구나 그 소프트웨어의 개발에 참여할 수 있다. 따라서 오픈소스 소프트웨어는 프로그램을 복제하여 배포할 수 있는 권리, 소프트웨어의 소스코드에 접근할 수 있는 권리, 프로그램을 개선할 수 있는 권리를 개발자에게 보장한다.Open source software can read anyone's source code, and if the user is capable, they can modify the bug, add features, and anyone can participate in the development of the software. Therefore, open source software ensures that developers have the right to copy and distribute the program, to access the source code of the software, and to improve the program.

최근에, 개발자들이 오픈소스 소프트웨어를 업로드하거나 개발에 참여할 수 있도록 하고 오픈소스 소프트웨어의 공개 및 배포 서비스를 제공하는 오픈소스 프로젝트 호스팅 서비스가 나타나고 있다. 예컨대, SourceForge(www.sourceforge.net), GitHub(www.github.com) 등이 그것이다.Recently, open source project hosting services have emerged that allow developers to upload and participate in open source software development and to provide open source software distribution and distribution services. For example, SourceForge (www.sourceforge.net) and GitHub (www.github.com).

오픈소스 소프트웨어는 그 자체로 하나의 소프트웨어일 수 있으나, 많은 오픈소스 소프트웨어는 그것을 구성하는 하부 요소로서 역시 오픈소스 소프트웨어를 포함한다. 본 명세서에서는 편의상 어떤 오픈소스 소프트웨어에 속하거나 속할 수 있는 오픈소스 소프트웨어를 편의상 '서브소프트웨어'라 칭하기로 한다. Open source software can be a piece of software in itself, but many open source software also include open source software as a sub-element that makes up it. For convenience, open source software that belongs to or belongs to any open source software is referred to herein as "sub-software" for convenience.

오픈소스 소프트웨어의 개발자나 사용자들은 통상 여러 서브소프트웨어를 조합하여 오픈소스 소프트웨어를 개발하거나 개조한다. 그런데 오픈소스 소프트웨어에 포함된 어떤 서브소프트웨어가 해당 오픈소스 소프트웨어에서 개발자 또는 사용자가 원하는 성능 또는 기능을 제공하지 못하거나, 라이선스의 문제 등으로 사용이 제한되는 등 다양한 이유로, 개발자 또는 사용자는 해당 서브소프트웨어를 다른 오픈소스 소프트웨어(서브소프트웨어)로 대체하기를 희망할 수 있다. Developers and users of open source software typically develop or modify open source software by combining several sub-software. However, for various reasons, such as the sub-software included in the open-source software is not available to the developer or the user in the open-source software, or the license is limited due to licensing problems, With other open source software (sub-software).

그러나 산재해 있는 수많은 오픈소스 소프트웨어들 중에서 특정 서브소프트웨어와 호환이 될 수 있는 오픈소스 소프트웨어를 찾기는 거의 불가능하고, 기존의 오픈소스 프로젝트 호스팅 서비스들이 제공하는 오픈소스 소프트웨어들에 대한 정보들만으로는 어떤 오픈소스 소프트웨어가 호환이 될 수 있는지, 호환 가능성은 어느 정도인지 가늠할 수조차 없다. However, it is almost impossible to find open-source software that is compatible with a particular sub-software among many scattered open-source software, and information about open-source software provided by existing open- There is no way to know if the source software is compatible or not.

따라서 본 발명이 이루고자 하는 기술적 과제는 오픈소스 소프트웨어를 구성하는 서브소프트웨어들 중 특정 서브소프트웨어를 대체하여 호환될 수 있는 서브소프트웨어를 효과적으로 추천하는 시스템 및 방법을 제공하는 데 있다. 또한, 상기된 바와 같은 기술적 과제로 한정되지 않으며, 이하의 설명으로부터 또 다른 기술적 과제가 도출될 수도 있다.Accordingly, it is an object of the present invention to provide a system and method for effectively recommending sub-software that can be compatible with a sub-software of sub-software constituting open-source software. Further, the present invention is not limited to the above-described technical problems, and another technical problem may be derived from the following description.

상기 기술적 과제를 해결하기 위한 본 발명에 따른 호환 오픈소스 소프트웨어 추천 방법은, 오픈소스 소프트웨어들 및 각 오픈소스 소프트웨어의 메타 정보를 제공하는 적어도 하나의 오픈소스 소프트웨어 제공 서버들로부터 오픈소스 소프트웨어들 및 메타정보들을 수집하여 오픈소스 소프트웨어 데이터베이스를 구축하되, 수집된 오픈소스 소프트웨어가 그에 속한 오픈소스 소프트웨어인 서브소프트웨어를 포함하는 경우 해당 서브소프트웨어 리스트를 구성하는 단계; 특정 오픈소스 소프트웨어에 포함된 특정 서브소프트웨어와 호환이 되는 서브소프트웨어의 검색 요청을 입력받는 단계; 상기 오픈소스 소프트웨어 데이터베이스의 서브소프트웨어들을 대상 서브소프트웨어들로 하여, 상기 특정 서브소프트웨어의 메타정보, 상기 대상 서브소프트웨어들의 메타정보, 및 상기 서브소프트웨어 리스트를 바탕으로, 상기 특정 서브소프트웨어와 호환이 될 수 있는 적어도 하나의 서브소프트웨어를 검색하는 단계; 및 상기 검색된 서브소프트웨어를 표시하는 단계를 포함하는 것을 특징으로 한다.According to another aspect of the present invention, there is provided a method for recommending a compatible open source software, the method comprising: receiving open source software and meta information from at least one open source software providing server providing meta information of each open source software; Collecting information to construct an open source software database, and configuring a corresponding sub software list when the collected open source software includes sub software which is open source software belonging thereto; Receiving a search request of sub-software compatible with a specific sub-software included in the specific open-source software; The sub-software of the open-source software database may be compatible with the specific sub-software based on the meta information of the specific sub-software, the meta information of the target sub-software, Searching for at least one sub-software having at least one sub-software; And displaying the retrieved sub-software.

상기 호환 오픈소스 소프트웨어 추천 방법은, 상기 오픈소스 소프트웨어 데이터베이스의 오픈소스 소프트웨어들의 서브소프트웨어 리스트들로부터, 각 서브소프트웨어마다 해당 서브소프트웨어를 포함하는 오픈소스 소프트웨어들 각각에 대하여 해당 오픈소스 소프트웨어에 함께 포함된 서브소프트웨어의 리스트인 메이팅 리스트를 구성하는 단계를 더 포함하고, 상기 서브소프트웨어를 검색하는 단계에서, 상기 대상 서브소프트웨어들의 메이팅 리스트들을 바탕으로 상기 특정 서브소프트웨어와 호환이 될 수 있는 적어도 하나의 서브소프트웨어를 검색할 수 있다.The method for recommending a compatible open source software may further comprise the steps of extracting from the sub software lists of the open source software of the open source software database each of the open source software including the sub- The method of claim 1, further comprising: configuring a mating list that is a list of sub-software, wherein, in the step of searching for the sub-software, at least one sub-software Can be searched.

상기 서브소프트웨어를 검색하는 단계는, 상기 대상 서브소프트웨어들 중 상기 특정 서브소프트웨어와 메타정보가 적어도 일부 대응하는 서브소프트웨어로서, 상기 특정 서브소프트웨어의 상기 특정 오픈소스 소프트웨어에 대한 메이팅 리스트를 포함하는 메이팅 리스트를 가지는 서브소프트웨어를 상기 특정 서브소프트웨어와 호환이 될 수 있는 서브소프트웨어로서 검색할 수 있다.The searching of the sub-software may include sub-software having meta information at least partially corresponding to the specific sub-software among the target sub-software, the mating list including the mating list of the specific sub- Can be searched as sub-software compatible with the specific sub-software.

상기 서브소프트웨어를 검색하는 단계는, 상기 특정 서브소프트웨어의 상기 특정 오픈소스 소프트웨어에 대한 메이팅 리스트를 포함하는 메이팅 리스트를 보다 많이 가지는 적어도 하나의 서브소프트웨어를 상기 특정 서브소프트웨어와 호환이 될 수 있는 서브소프트웨어로서 검색할 수 있다.The step of searching for the sub-software may further comprise the step of searching at least one sub-software having more mating lists including a mating list for the specific open-source software of the sub-software, As shown in FIG.

상기 대응하는 메타정보는, 용도, 분류, 언어, 운영체제, 하드웨어 사양 중 적어도 하나를 포함할 수 있다.The corresponding meta information may include at least one of an application, a classification, a language, an operating system, and a hardware specification.

상기 기술적 과제를 해결하기 위한 본 발명에 따른 호환 오픈소스 소프트웨어 추천 시스템은, 오픈소스 소프트웨어들 및 각 오픈소스 소프트웨어의 메타 정보를 제공하는 적어도 하나의 오픈소스 소프트웨어 제공 서버들로부터 오픈소스 소프트웨어들 및 메타정보들을 수집하는 오픈소스 소프트웨어 수집부; 상기 수집된 오픈소스 소프트웨어들 및 메타정보들로 오픈소스 소프트웨어 데이터베이스를 구축하되, 수집된 오픈소스 소프트웨어가 그에 속한 오픈소스 소프트웨어인 서브소프트웨어를 포함하는 경우 해당 서브소프트웨어 리스트를 구성하는 데이터베이스 구축부; 특정 오픈소스 소프트웨어에 포함된 특정 서브소프트웨어와 호환이 되는 서브소프트웨어의 검색 요청을 입력받는 웹서비스부; 및 상기 오픈소스 소프트웨어 데이터베이스의 서브소프트웨어들을 대상 서브소프트웨어들로 하여, 상기 특정 서브소프트웨어의 메타정보, 상기 대상 서브소프트웨어들의 메타정보, 및 상기 서브소프트웨어 리스트를 바탕으로, 상기 특정 서브소프트웨어와 호환이 될 수 있는 적어도 하나의 서브소프트웨어를 검색하는 호환 서브소프트웨어 검색부를 포함하고, 상기 웹서비스부는 상기 검색된 서브소프트웨어를 표시하는 것을 특징으로 한다.According to an aspect of the present invention, there is provided a compatible open source software recommendation system, which includes open source software and at least one open source software providing server providing meta information of each open source software, An open source software collection section for collecting information; A database building unit constructing an open source software database with the collected open source software and meta information, and configuring a corresponding sub software list when the collected open source software includes sub software which is open source software belonging thereto; A Web service unit receiving a search request of a sub software compatible with a specific sub software included in the specific open source software; And the sub-software of the open-source software database as target sub-software, the sub-software being compatible with the specific sub-software based on the meta information of the specific sub-software, the meta information of the target sub- And a compatible sub-software searching unit for searching at least one sub-software that can search the sub-software, and the web service unit displays the searched sub-software.

상기 데이터베이스 구축부는, 상기 오픈소스 소프트웨어 데이터베이스의 오픈소스 소프트웨어들의 서브소프트웨어 리스트들로부터, 각 서브소프트웨어마다 해당 서브소프트웨어를 포함하는 오픈소스 소프트웨어들 각각에 대하여 해당 오픈소스 소프트웨어에 함께 포함된 서브소프트웨어의 리스트인 메이팅 리스트를 구성하고, 상기 호환 서브소프트웨어 검색부는, 상기 대상 서브소프트웨어들의 메이팅 리스트들을 바탕으로 상기 특정 서브소프트웨어와 호환이 될 수 있는 적어도 하나의 서브소프트웨어를 검색할 수 있다.The database construction unit may be configured to obtain, from the sub software lists of the open source software of the open source software database, a list of sub software included in the corresponding open source software for each of the open source software including the sub software for each sub software And the compatible sub-software searching unit may search for at least one sub-software compatible with the specific sub-software based on the mating lists of the target sub-software.

상기 호환 서브소프트웨어 검색부는, 상기 대상 서브소프트웨어들 중 상기 특정 서브소프트웨어와 메타정보가 적어도 일부 대응하는 서브소프트웨어로서, 상기 특정 서브소프트웨어의 상기 특정 오픈소스 소프트웨어에 대한 메이팅 리스트를 포함하는 메이팅 리스트를 가지는 서브소프트웨어를 상기 특정 서브소프트웨어와 호환이 될 수 있는 서브소프트웨어로서 검색할 수 있다.Wherein the compatible sub-software search unit is a sub-software having meta information at least partially corresponding to the specific sub-software among the target sub-software, and having a mating list including a mating list of the specific sub- The sub-software can be searched as sub-software compatible with the specific sub-software.

상기 호환 서브소프트웨어 검색부는, 상기 특정 서브소프트웨어의 상기 특정 오픈소스 소프트웨어에 대한 메이팅 리스트를 포함하는 메이팅 리스트를 보다 많이 가지는 적어도 하나의 서브소프트웨어를 상기 특정 서브소프트웨어와 호환이 될 수 있는 서브소프트웨어로서 검색할 수 있다.The compatible sub-software search unit searches at least one sub-software having more mating lists including a mating list for the specific open-source software of the sub-software as sub-software compatible with the specific sub-software can do.

상기 대응하는 메타정보는, 용도, 분류, 언어, 운영체제, 하드웨어 사양 중 적어도 하나를 포함할 수 있다.The corresponding meta information may include at least one of an application, a classification, a language, an operating system, and a hardware specification.

상기된 본 발명에 의하면, 오픈소스 소프트웨어를 구성하는 서브소프트웨어들 중 특정 서브소프트웨어를 대체하여 호환될 수 있는 서브소프트웨어를 효과적으로 추천하여 줄 수 있다. According to the present invention described above, it is possible to efficiently recommend sub-software that can be replaced by replacing specific sub-software among sub-software constituting open-source software.

나아가서, 메타정보와 더불어 오픈소스 소프트웨어에 포함된 서브소프트웨어의 리스트를 바탕으로 호환이 될 수 있는 서브소프트웨어를 검색하므로, 실제 호환 가능성이 높은 서브소프트웨어를 추천하여 줄 수 있다. In addition, meta information is searched for compatible sub software based on the list of sub software included in open source software, so that sub software with high compatibility can be recommended.

도 1은 본 발명의 일 실시예에 따른 호환 오픈소스 소프트웨어 추천 시스템의 구성을 나타낸다.
도 2는 본 발명의 일 실시예에 따른 호환 오픈소스 소프트웨어 추천 서버(200)의 구성을 나타낸다.
도 3은 본 발명의 일 실시예에 따른 호환 오픈소스 소프트웨어 추천 방법에서 오픈소스 소프트웨어 데이터베이스(300)를 구축하는 과정을 보여주는 흐름도이다.
도 4는 오픈소스 소프트웨어 데이터베이스(300)에 저장되는 메타정보 테이블의 일 예를 보여준다.
도 5는 오픈소스 소프트웨어들이 서브소프트웨어를 포함하는 것의 일 예를 보여주는 도면이다.
도 6은 서브소프트웨어들에 대하여 각각 메이팅 리스트들이 구성된 예를 보여준다.
도 7은 본 발명의 일 실시예에 따른 호환 오픈소스 소프트웨어 추천 방법에서 사용자의 호환 서브소프트웨어 검색 요청에 따라 호환될 수 있는 서브소프트웨어를 추천해 주는 과정을 보여주는 흐름도이다.
도 8은 도 6의 메이팅 리스트들에서 메이팅 리스트 (b, c)를 포함하는 메이팅 리스트를 가지는 서브소프트웨어가 검색된 예를 보여준다.
1 shows a configuration of a compatible open source software recommendation system according to an embodiment of the present invention.
2 illustrates a configuration of a compatible open source software recommendation server 200 according to an embodiment of the present invention.
3 is a flowchart illustrating a process of building an open source software database 300 in a compatible open source software recommendation method according to an embodiment of the present invention.
FIG. 4 shows an example of a meta information table stored in the open source software database 300. FIG.
Figure 5 is a diagram illustrating an example of where open source software includes sub-software.
6 shows an example in which mating lists are respectively configured for sub-software.
FIG. 7 is a flowchart illustrating a process of recommending a sub software compatible with a compatible subware search request of a user in a compatible open source software recommendation method according to an exemplary embodiment of the present invention.
FIG. 8 shows an example of searching for sub-software having a mating list including mating lists (b, c) in the mating lists of FIG.

이하에서는 도면을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명한다. 이하 설명 및 첨부된 도면들에서 실질적으로 동일한 구성요소들은 각각 동일한 부호들로 나타냄으로써 중복 설명을 생략하기로 한다. 또한 본 발명을 설명함에 있어 관련된 공지기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그에 대한 상세한 설명은 생략하기로 한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the drawings. In the following description and the accompanying drawings, substantially the same components are denoted by the same reference numerals, and redundant description will be omitted. In the following description of the present invention, a detailed description of known functions and configurations incorporated herein will be omitted when it may make the subject matter of the present invention rather unclear.

도 1은 본 발명의 일 실시예에 따른 호환 오픈소스 소프트웨어 추천 시스템의 구성을 나타낸다. 본 실시예에 따른 호환 오픈소스 소프트웨어 추천 시스템은, 오픈소스 소프트웨어 제공 서버들(100_1, 100_2, 100_3), 호환 오픈소스 소프트웨어 추천 서버(200), 오픈소스 소프트웨어 데이터베이스(300), 사용자 단말(400)을 포함하여 이루어진다. 오픈소스 소프트웨어 제공 서버들(100_1, 100_2, 100_3), 호환 오픈소스 소프트웨어 추천 서버(200), 사용자 단말(400)은 네트워크(예컨대, 인터넷)를 통하여 연결된다. 1 shows a configuration of a compatible open source software recommendation system according to an embodiment of the present invention. The compatible open source software recommendation system according to the present embodiment includes open source software providing servers 100_1, 100_2 and 100_3, a compatible open source software recommendation server 200, an open source software database 300, a user terminal 400, . The open source software providing servers 100_1, 100_2, and 100_3, the compatible open source software recommending server 200, and the user terminals 400 are connected through a network (e.g., the Internet).

오픈소스 소프트웨어 제공 서버(100_1, 100_2, 또는 100_3, 이하 100)는 개발자들로부터 오픈소스 소프트웨어를 업로드받아 저장하고, 오픈소스 소프트웨어의 배포 및 공개 서비스를 제공한다. 각 오픈소스 소프트웨어에는 해당 오픈소스 소프트웨어에 대응하는 메타정보가 정의된다. 즉, 오픈소스 소프트웨어 제공 서버(100)는 오픈소스 소프트웨어들 및 각 오픈소스 소프트웨어의 메타정보를 제공한다. 상기 메타정보에는 예를 들어, 소프트웨어 이름, 언어, 운영체제(operating system), 하드웨어 사양, 생성일, 만든이, 용도, 분류, 설명, 키워드, 다운로드수, 평점, 사용후기, 라이선스 정보 등이 포함될 수 있다. 그러나 상기 메타정보는 이에 제한되지 않으며 추가될 수 있고, 메타정보의 내용 역시 변경되거나 업데이트될 수 있음은 물론이다. The open source software providing servers 100_1, 100_2, or 100_3 (hereinafter referred to as " 100 ") upload and store open source software from developers, and provide open source software distribution and open services. Each open source software defines meta information corresponding to that open source software. That is, the open source software providing server 100 provides open source software and meta information of each open source software. The meta information may include, for example, a software name, a language, an operating system, a hardware specification, a creation date, a creator, an application, a classification, a description, a keyword, a number of downloads, a rating, have. However, the meta information is not limited thereto and may be added, and the content of the meta information may be changed or updated.

메타정보의 일부는 해당 오픈소스 소프트웨어를 업로드하는 개발자가 정할 수 있다. 또한 메타정보의 일부는 오픈소스 소프트웨어 제공 서버에서 변경되거나 서비스 사용자들에 의해 정해질 수도 있다. 예컨대, 개발자는 오픈소스 소프트웨어를 업로드할 때 소프트웨어 이름, 언어, 운영체제(operating system), 하드웨어 사양, 만든이, 용도, 분류, 설명, 키워드, 라이선스 정보 등을 정의할 수 있고, 분류, 설명, 키워드, 라이선스 정보, 다운로드수, 평점, 사용후기 등은 오픈소스 소프트웨어 제공 서버(100)의 관리자에 의해 변경되거나 서비스 사용자들에 의해 정해질 수 있다. 후술하겠지만 오픈소스 소프트웨어의 메타 정보는 호환 오픈소스 소프트웨어 추천 서버(200)에 의하여 추가되거나 변경될 수도 있다. Some of the meta information can be determined by the developer uploading the open source software. In addition, some of the meta information may be changed at the open source software-provided server or determined by service users. For example, developers can define software names, languages, operating systems, hardware specifications, author, usage, classification, description, keywords, license information, etc. when uploading open source software, License information, the number of downloads, ratings, reviews, etc. may be changed by an administrator of the open-source software providing server 100 or determined by service users. The meta information of the open source software may be added or changed by the compatible open source software recommendation server 200 as will be described later.

호환 오픈소스 소프트웨어 추천 서버(200)는 오픈소스 소프트웨어 제공 서버들(100_1, 100_2, 100_3)로부터 그들이 보유한 오픈소스 소프트웨어들 및 메타정보들을 수집하여 오픈소스 소프트웨어 데이터베이스(300)를 구축한다. 또한 호환 오픈소스 소프트웨어 추천 서버(200)는 사용자 단말(400)에게 제공하는 웹페이지를 통하여 사용자로부터 특정 오픈소스 소프트웨어에 포함된 특정 서브소프트웨어와 호환이 되는 서브소프트웨어의 검색 요청을 입력받고, 오픈소스 소프트웨어 데이터베이스(300)의 서브소프트웨어들을 대상 서브소프트웨어들로 하여, 특정 서브소프트웨어의 메타정보, 대상 서브소프트웨어들의 메타정보 등을 바탕으로 특정 서브소프트웨어와 호환이 될 수 있는 적어도 하나의 오픈소스 소프트웨어(서브소프트웨어)를 검색한다. 그리고 호환 오픈소스 소프트웨어 추천 서버(200)는 검색된 오픈소스 소프트웨어의 적어도 일부를 웹페이지를 통하여 사용자에게 표시하여 준다. 이때 호환 오픈소스 소프트웨어 추천 서버(200)는 웹페이지를 통하여 오픈소스 소프트웨어의 파일을 직접 제공할 수도 있고, 웹페이지를 통하여 해당 오픈소스 소프트웨어 제공 서버(100)로의 링크를 제공할 수도 있다. The compatible open source software recommendation server 200 collects the open source software and the meta information from the open source software providing servers 100_1, 100_2, and 100_3 to establish the open source software database 300. [ Also, the compatible open source software recommendation server 200 receives a search request of a sub software compatible with a specific sub software included in the specific open source software from a user through a web page provided to the user terminal 400, The sub-software of the software database 300 is used as target sub-software, and based on the meta information of the sub-software and meta information of the target sub-software, at least one open source software Software). The compatible open source software recommendation server 200 then displays at least a portion of the retrieved open source software to the user via the web page. At this time, the compatible open source software recommendation server 200 may directly provide a file of the open source software through a web page or may provide a link to the open source software providing server 100 through a web page.

특정 서브소프트웨어와 호환이 되는 서브소프트웨어를 찾고자 할 때, 용도, 분류, 하드웨어 사양 등의 메타정보가 활용될 수 있으나, 일부 메타정보가 동일하거나 유사하다는 점만으로 호환성이 보장되지는 않으며, 메타정보가 동일 또는 유사한 오픈소스 소프트웨어의 수는 일반적으로 매우 많아서 그들 중 어떤 것이 실제로 호환될 가능성이 높은지 판단하는 것은 매우 어려운 일이다. When searching for sub-software that is compatible with a particular sub-software, meta information such as usage, classification, and hardware specifications may be utilized, but compatibility is not ensured merely by the fact that some meta information is the same or similar, The number of identical or similar open source software is generally very large, so it is very difficult to determine which of them is likely to be actually compatible.

전술한 바와 같이 많은 오픈소스 소프트웨어는 그것을 구성하는 하부 요소로서 역시 오픈소스 소프트웨어인 서브소프트웨어들을 포함한다. 따라서 특정 오픈소스 소프트웨어 내에 특정 서브소프트웨어와 함께 포함된 다른 서브소프트웨어들이 존재할 것이다. 본 발명의 실시예에서는, 특정 오픈소스 소프트웨어에 포함된 특정 서브소프트웨어를 대체할 수 있는 서브소프트웨어를 찾고자 할 때, 어떤 대상 서브소프트웨어가 상기 다른 서브소프트웨어들과 함께 동일 또는 유사한 기능을 가지는 오픈소스 소프트웨어를 구성하는 경우가 많다면, 그 대상 서브소프트웨어는 특정 서브소프트웨어와 호환 가능성이 높은 것으로 가정한다. 오픈소스 소프트웨어를 구성하는 서브소프트웨어들은 서로 유기적으로 결합되고 상호 의존성이 존재할 것이므로, 이러한 가정은 매우 합리적이다. As described above, many open source software include sub-software, which is also open source software as a sub-element that constitutes it. Therefore, there will be other sub-software included with the specific sub-software in the specific open-source software. In an embodiment of the present invention, when searching for sub-software that can replace the specific sub-software included in the specific open-source software, it is preferable that the target sub-software is open source software , It is assumed that the target sub-software is highly compatible with the specific sub-software. This assumption is very reasonable since the sub-software that make up the open-source software will be organically coupled and interdependent.

이러한 점에 착안하여, 호환 오픈소스 소프트웨어 추천 서버(200)는 수집된 오픈소스 소프트웨어가 서브소프트웨어를 포함하는 경우 해당 서브소프트웨어 리스트를 구성하고, 메타정보와 더불어 서브소프트웨어 리스트들을 바탕으로 특정 서브소프트웨어와 호환이 될 수 있는 적어도 하나의 서브소프트웨어를 오픈소스 소프트웨어 데이터베이스(300)로부터 검색하여, 사용자에게 제공한다. In view of this point, the compatible open source software recommendation server 200 configures the corresponding sub software list when the collected open software includes the sub software, and, based on the sub software list together with the meta information, At least one sub-software that can be compatible is retrieved from the open-source software database 300 and provided to the user.

이하에서는 도 2 내지 8을 참조하여, 호환 오픈소스 소프트웨어 추천 서버(200)의 구성 및 동작을 보다 구체적으로 설명한다.Hereinafter, the configuration and operation of the compatible open source software recommendation server 200 will be described in more detail with reference to FIGS.

도 2는 본 발명의 일 실시예에 따른 호환 오픈소스 소프트웨어 추천 서버(200)의 구성을 나타내고, 도 3은 본 발명의 일 실시예에 따른 호환 오픈소스 소프트웨어 추천 방법에서 오픈소스 소프트웨어 데이터베이스(300)를 구축하는 과정을 보여주는 흐름도이며, 도 7은 본 발명의 일 실시예에 따른 호환 오픈소스 소프트웨어 추천 방법에서 사용자의 호환 서브소프트웨어 검색 요청에 따라 호환될 수 있는 서브소프트웨어를 추천해 주는 과정을 보여주는 흐름도이다. FIG. 2 illustrates a configuration of a compatible open source software recommendation server 200 according to an exemplary embodiment of the present invention. FIG. 3 illustrates an open source software database 300 in a compatible open source software recommendation method according to an exemplary embodiment of the present invention. FIG. 7 is a flowchart illustrating a process of recommending a sub software compatible with a compatible sub software search request of a user in a compatible open source software recommendation method according to an embodiment of the present invention. FIG. to be.

도 2를 참조하면, 호환 오픈소스 소프트웨어 추천 서버(200)는, 네트워크를 통하여 오픈소스 소프트웨어 제공 서버(100) 및 사용자 단말(400)과 데이터를 송수신하는 통신부(210), 오픈소스 소프트웨어 제공 서버(100)로부터 오픈소스 소프트웨어들 및 메타정보들을 수집하는 오픈소스 소프트웨어 수집부(220), 수집된 오픈소스 소프트웨어들 및 메타정보들로 오픈소스 소프트웨어 데이터베이스(300)를 구축하되, 수집된 오픈소스 소프트웨어가 서브소프트웨어를 포함하는 경우 해당 서브소프트웨어 리스트를 구성하는 데이터베이스 구축부(230), 사용자 단말(400)에게 호환 오픈소스 소프트웨어 검색 및 추천을 위한 웹페이지를 제공하고 웹페이지를 통하여 사용자로부터 호환 오픈소스 소프트웨어 검색 요청을 입력받아 검색된 결과를 제공하는 웹서비스부(240), 오픈소스 소프트웨어 데이터베이스(300)의 서브소프트웨어들을 대상 서브소프트웨어들로 하여, 특정 서브소프트웨어의 메타정보, 대상 서브소프트웨어들의 메타정보, 그리고 서브소프트웨어 리스트들을 바탕으로 특정 서브소프트웨어와 호환이 될 수 있는 적어도 하나의 서브소프트웨어를 검색하여 웹서비스부(240)에 제공하는 호환 서브소프트웨어 검색부(250)를 포함하여 이루어진다. 2, the compatible open source software recommendation server 200 includes a communication unit 210 for transmitting and receiving data to and from the open source software providing server 100 and the user terminal 400 via a network, an open source software providing server An open source software collection unit 220 for collecting open source software and meta information from the open source software database 100, an open source software database 300 with collected open source software and meta information, When the sub-software is included, the database building unit 230 and the user terminal 400 constituting the sub-software list are provided with a web page for searching and recommending compatible open source software, and a compatible open source software A web service unit 240 for receiving a search request and providing a search result, The sub-software of the source software database 300 is used as the target sub-software, and based on the meta information of the specific sub-software, the meta information of the target sub-software, And a compatible sub-software search unit 250 for searching sub-software of the sub-software of the web service unit 240.

도 3을 참조하여, 호환 오픈소스 소프트웨어 추천 서버(200)의 동작 중 오픈소스 소프트웨어 데이터베이스(300)를 구축하고 서브소프트웨어 리스트 등을 구성하는 과정을 보다 구체적으로 설명한다.Referring to FIG. 3, a process of constructing an open source software database 300 and configuring a sub software list during operation of the compatible open source software recommendation server 200 will be described in more detail.

310단계에서, 오픈소스 소프트웨어 수집부(220)는 오픈소스 소프트웨어 제공 서버들(100_1, 100_2, 100_3)로부터 오픈소스 소프트웨어들 및 메타정보들을 수집한다. 오픈소스 소프트웨어들 및 메타정보들의 수집은 주기적, 계속적으로 수행될 수 있다.In step 310, the open source software collection unit 220 collects open source software and meta information from the open source software providing servers 100_1, 100_2, and 100_3. The collection of open source software and meta information can be performed periodically and continuously.

320단계에서, 데이터베이스 구축부(230)는 수집된 오픈소스 소프트웨어들 및 메타정보들로 오픈소스 소프트웨어 데이터베이스(300)를 구축한다. In step 320, the database building unit 230 constructs the open source software database 300 with the collected open source software and meta information.

오픈소스 소프트웨어 제공 서버(100)로부터 수집되는 메타정보는 각 오픈소스 소프트웨어의 언어, 운영체제, 하드웨어 사양, 생성일, 만든이, 용도, 분류, 설명, 키워드, 다운로드수, 평점, 사용후기, 라이선스 정보 등일 수 있다. 이러한 메타정보는 모두 존재할 수도 있고, 그중 일부만이 존재할 수도 있다. 데이터베이스 구축부(230)는 수집된 메타정보를 가지고 예컨대 도 4와 같은 메타정보 테이블을 구성할 수 있다. The meta information collected from the open source software provision server 100 includes the language, operating system, hardware specification, creation date, author, usage, classification, description, keyword, download count, And so on. All of these meta information may be present, and some of them may exist. The database construction unit 230 may construct a meta information table as shown in FIG. 4, for example, with the collected meta information.

메타정보들 중 '분류'는 예컨대 한국정보통신기술협회(TTA)에서 정의하는 소프트웨어 표준 분류체계를 따를 수 있다. 오픈소스 소프트웨어 제공 서버(100)에서 제공되는 분류가 소프트웨어 표준 분류체계를 따른 경우 그 분류를 사용할 수 있고, 그렇지 않은 경우 제공된 분류, 용도, 설명, 키워드 등을 기초로 소프트웨어 표준 분류체계에 따른 분류가 지정될 수 있다. 오픈소스 소프트웨어에 분류를 지정하는 것은, 전체 중 일부의 오픈소스 소프트웨어들에 대하여 수동으로 분류를 행한 다음, 나머지에 대하여는 수동 분류 결과를 학습하여 자동으로 분류되도록 할 수 있다.Among the meta information, 'classification' may follow the software standard classification system defined by Korea Information and Communication Technology Association (TTA). If the classification provided by the open source software providing server 100 conforms to the software standard classification system, the classification may be used. Otherwise, the classification according to the software standard classification system based on the provided classification, use, description, Can be specified. Assigning a classification to open source software can be done by manually classifying some of the open source software as a whole and then automatically classifying the results by learning the results of the manual classification.

전술한 바와 같이 많은 오픈소스 소프트웨어는 그것을 구성하는 하부 요소로서 역시 오픈소스 소프트웨어인 소위 서브소프트웨어를 포함하는데, 데이터베이스 구축부(230)는 수집된 오픈소스 소프트웨어에서 서브소프트웨어를 추출하여, 도 4에 도시된 바와 같이 서브소프트웨어 리스트를 메타정보 테이블에 저장한다. 서브소프트웨어 역시 오픈소스 소프트웨어이므로, 서브소프트웨어 및 그것의 메타정보 역시 메타정보 테이블을 통하여 관리된다. As described above, many of the open source software includes so-called sub software, which is also open source software, as a sub-element constituting it. The database building unit 230 extracts the sub software from the collected open source software, The sub software list is stored in the meta information table as shown in FIG. Since the sub-software is also open-source software, the sub-software and its meta information are also managed through the meta information table.

도 5는 오픈소스 소프트웨어들이 서브소프트웨어를 포함하는 것의 일 예를 보여주는 도면이다. 도 5를 참조하면, 오픈소스 소프트웨어 A는 서브소프트웨어 a, b, c를 포함하고, 오픈소스 소프트웨어 B는 서브소프트웨어 a, b, c, k를 포함하며, 오픈소스 소프트웨어 C는 서브소프트웨어 b, c, d, e, k를 포함하고, 오픈소스 소프트웨어 D는 서브소프트웨어 b, c, d, k, f를 포함한다. 그러면 도 4에 도시된 바와 같이 오픈소스 소프트웨어 A, B, C, D에 대한 서브소프트웨어 리스트가 메타정보 테이블에 구성된다. Figure 5 is a diagram illustrating an example of where open source software includes sub-software. 5, open source software A includes sub software a, b, c, open source software B includes sub software a, b, c, k, open source software C includes sub software b, c , d, e, k, and open source software D includes sub-software b, c, d, k, Then, as shown in FIG. 4, the sub software list for the open source software A, B, C, and D is configured in the meta information table.

수집된 오픈소스 소프트웨어로부터 서브소프트웨어를 추출하고 서브소프트웨어 리스트를 생성하는 것에 관하여 설명하면 다음과 같다. 일반적으로 오픈소스 소프트웨어는 압축 파일 형태로 제공되며, 압축 파일의 이름이 그 오픈소스 소프트웨어의 이름이 된다. 압축 파일을 풀면 통상 여러 개의 디렉토리들이 생성되는데, 디렉토리들이 각각 서브소프트웨어에 해당할 수 있다. 다만 일부 디렉토리는 설정 파일 등을 저장하는 용도로서 서브소프트웨어에 해당하지 않을 수도 있다. 통상 디렉토리의 이름은 해당 오픈소스 소프트웨어(서브소프트웨어)의 이름에 대응하며, 전형적으로, 서브소프트웨어의 경우 오픈소스 소프트웨어 데이터베이스(300)에 이미 저장되어 있다. 따라서 데이터베이스 구축부(230)는 오픈소스 소프트웨어가 수집되면 그것의 압축을 풀고, 디렉토리들의 이름들을 이미 오픈소스 소프트웨어 데이터베이스(300)에 있는 오픈소스 소프트웨어들의 이름과 비교하여 일치하는 것이 있는지 확인한다. 일치하는 것이 있으면 그것은 소위 서브소프트웨어일 수 있다. 다만 이름만 동일하고 실제로 동일한 소프트웨어가 아닐 수 있으므로, 오픈소스 소프트웨어 데이터베이스(300)에 저장된 소프트웨어의 내용(파일)과 해당 디렉토리의 내용(파일)을 비교한다. 소프트웨어의 이름과 내용이 모두 동일한 경우, 해당 디렉토리는 서브소프트웨어인 것으로 확인되어, 서브소프트웨어 리스트가 메타정보 테이블에 추가된다. A description of extracting the sub-software from the collected open-source software and generating the sub-software list is as follows. In general, open source software is provided in the form of compressed files, the name of which is the name of the open source software. Unpacking a compressed file usually creates several directories, each of which may correspond to a sub-software. However, some directories may not correspond to sub-software for the purpose of storing configuration files and the like. Typically, the name of the directory corresponds to the name of the corresponding open source software (sub-software) and is typically stored in the open-source software database 300 for sub-software. Thus, the database building unit 230 decompresses the open source software when it is collected, compares the names of the directories with the names of the open source software already in the open source software database 300 to see if there is a match. If there is a match it can be so-called sub-software. However, the contents (files) of the software stored in the open-source software database 300 are compared with the contents (files) of the corresponding directories. If both the name and the content of the software are the same, the directory is confirmed to be sub-software, and the sub-software list is added to the meta information table.

예컨대, 도 5를 참조하면, 오픈소스 소프트웨어 a, b, c가 오픈소스 소프트웨어 데이터베이스(300) 및 메타정보 테이블에 이미 존재할 때, 오픈소스 소프트웨어 A가 수집된다. 압축을 푼 결과 a, b, c의 이름을 가지는 디렉토리가 존재하며 그 내용까지 오픈소스 소프트웨어 데이터베이스(300)에 저장된 a, b, c와 동일한 경우, 오픈소스 소프트웨어 A는 서브소프트웨어 a, b, c를 포함하는 것으로 확인되어, 메타정보 테이블에 서브소프트웨어 리스트가 추가된다.For example, referring to FIG. 5, when open source software a, b, c already exists in open source software database 300 and meta information table, open source software A is collected. B, and c stored in the open source software database 300 are the same as the a, b, and c stored in the open source software database 300, the open source software A uses the sub software a, b, c , And a sub software list is added to the meta information table.

다시 도 3을 참조하면, 330단계에서, 데이터베이스 구축부(230)는 오픈소스 소프트웨어 데이터베이스(300)의 메타정보 테이블의 서브소프트웨어 리스트들로부터, 각 서브소프트웨어마다 해당 서브소프트웨어를 포함하는 오픈소스 소프트웨어들 각각에 대하여 해당 오픈소스 소프트웨어에 함께 포함된 서브소프트웨어의 리스트를 구성한다. 본 명세서에서는 이 리스트를 편의상 '메이팅 리스트(mating list)'라 칭하기로 한다. Referring back to FIG. 3, in step 330, the database building unit 230 acquires, from the sub software lists of the meta information table of the open source software database 300, open source software Constitute a list of sub-software included with the corresponding open source software for each. In this specification, this list will be referred to as 'mating list' for convenience.

예컨대, 도 5를 참조하면, 서브소프트웨어 a를 포함하는 오픈소스 소프트웨어는 A, B가 있으므로, 서브소프트웨어 a의 경우 A, B에 대한 메이팅 리스트가 구성된다. 서브소프트웨어 b를 포함하는 오픈소스 소프트웨어는 A, B, C, D가 있으므로, 서브소프트웨어 b의 경우 A, B, C, D에 대한 메이팅 리스트가 구성된다. 같은 방식으로, 서브소프트웨어 c의 경우 A, B, C, D에 대한 메이팅 리스트, 서브소프트웨어 d의 경우 C, D에 대한 메이팅 리스트, 서브소프트웨어 e의 경우 C에 대한 메이팅 리스트, 서브소프트웨어 f의 경우 D에 대한 메이팅 리스트가, 서브소프트웨어 k의 경우 B, C, D에 대한 메이팅 리스트가 구성된다.For example, referring to FIG. 5, since there are A and B open source software including sub software a, a mating list for A and B in the case of sub software a is formed. Since there are A, B, C, and D open source software including sub software b, a mating list for A, B, C, and D is made for sub software b. In the same manner, in the case of sub-software c, the mating list for A, B, C, and D, the mating lists for C and D for sub-software d, the mating list for C for sub- A mating list for D, and a mating list for B, C, and D in the case of sub-software k.

도 6은 서브소프트웨어 a, b, c, d, e, f, k에 대하여 각각 메이팅 리스트들이 구성된 예를 보여준다. 6 shows an example in which mating lists are respectively formed for the sub-software a, b, c, d, e, f, and k.

도 5를 참조하면, 서브소프트웨어 a는 오픈소스 소프트웨어 A에 서브소프트웨어 b, c와 함께 포함되어 있으므로, 도 6에서 a의 A에 대한 메이팅 리스트는 b, c가 된다. 또한 서브소프트웨어 a는 오픈소스 소프트웨어 B에 서브소프트웨어 b, c, k와 함께 포함되어 있으므로 도 6에서 a의 B에 대한 메이팅 리스트는 b, c, k가 된다. Referring to FIG. 5, since the sub-software a is included in the open-source software A together with the sub-software b, c, the mating list for A in FIG. Also, since the sub-software a is included in the open-source software B together with the sub-software b, c, and k, the mating list for B in FIG. 6A is b, c, k.

같은 방식으로, 도 6을 참조하면, 서브소프트웨어 b의 오픈소스 소프트웨어 A, B, C, D 각각에 대한 메이팅 리스트들은 (a, c), (a, c, k), (c, d, e, k), (c, d, k, f)가 되고, 서브소프트웨어 c의 오픈소스 소프트웨어 A, B, C, D 각각에 대한 메이팅 리스트들은 (a, b), (a, b, k), (b, d, k, e), (b, d, k, f)가 된다. 마지막으로 서브소프트웨어 k의 경우, 오픈소스 소프트웨어 B, C, D 각각에 대한 메이팅 리스트들은 (a, b, c), (b, c, d, e), (b, c, d, f)가 된다. 6, the mating lists for the open source software A, B, C and D of the sub software b are (a, c), (a, c, k) and the mating lists for the open source software A, B, C and D of the sub software c are (a, b), (a, b, k) (b, d, k, e) and (b, d, k, f). Finally, for sub-software k, the mating lists for open source software B, C and D are (a, b, c), (b, c, d, e) do.

도 3을 통하여 설명한 각 단계들은 주기적, 계속적으로 반복될 수 있다. 다만 반복 과정에서는 새로 수집된 오픈소스 소프트웨어들을 가지고 앞서 구성된 메타정보 테이블과 메이팅 리스트들이 업데이트된다.Each of the steps described with reference to FIG. 3 can be repeated periodically and continuously. In the iterative process, the meta information table and the mating list are updated with newly collected open source software.

이제 도 7을 참조하여, 호환 오픈소스 소프트웨어 추천 서버(200)의 동작 중 사용자의 호환 서브소프트웨어 검색 요청에 따라 호환될 수 있는 서브소프트웨어를 추천해 주는 과정을 보다 구체적으로 설명한다. Referring now to FIG. 7, a process for recommending compatible sub software in response to a user's request for searching for compatible sub software during operation of the compatible open source software recommendation server 200 will be described in more detail.

710단계에서, 웹서비스부(240)는 그것이 제공하는 웹페이지를 통하여 사용자로부터 특정 오픈소스 소프트웨어에 포함된 특정 서브소프트웨어와 호환이 되는 서브소프트웨어의 검색 요청을 입력받는다. 이때 사용자는 오픈소스 소프트웨어 데이터베이스(300)에 있는 오픈소스 소프트웨어 및 그것의 서브소프트웨어를 특정 오픈소스 소프트웨어 및 특정 서브소프트웨어로 지정할 수도 있고, 오픈소스 소프트웨어 데이터베이스(300)에 없는 새로운 오픈소스 소프트웨어 및 그것의 서브소프트웨어를 특정 오픈소스 소프트웨어 및 특정 서브소프트웨어로 지정할 수도 있다. 후자의 경우 사용자는 특정 오픈소스 소프트웨어와 메타정보를 호환 오픈소스 소프트웨어 추천 서버(200)에 제공하고 그것의 특정 서브소프트웨어를 지정할 수 있다. 그러면, 호환 오픈소스 소프트웨어 추천 서버(200)는 사용자가 제공한 특정 오픈소스 소프트웨어로부터 서브소프트웨어를 추출하고 해당 서브소프트웨어 리스트를 생성하여, 특정 서브소프트웨어의 특정 오픈소스 소프트웨어에 대한 메이팅 리스트를 생성한다. In operation 710, the web service unit 240 receives a search request of a sub-software compatible with the specific sub-software included in the specific open-source software from the user through the web page provided by the web service unit 240. At this time, the user may designate the open source software and its sub-software in the open-source software database 300 as the specific open-source software and the specific sub-software, the new open-source software not in the open- The sub-software may be designated as specific open-source software and specific sub-software. In the latter case, the user can provide specific open source software and meta information to the compatible open source software recommendation server 200 and specify its specific sub software. Then, the compatible open source software recommendation server 200 extracts the sub software from the specific open source software provided by the user, generates a corresponding sub software list, and generates a mating list for the specific open software of the specific sub software.

720단계에서, 호환 서브소프트웨어 검색부(250)는 오픈소스 소프트웨어 데이터베이스(300)에서 메타정보 테이블을 바탕으로 특정 서브소프트웨어와 메타정보가 적어도 일부 대응하는 서브소프트웨어들을 추출한다. 여기서, 비교 대상이 되는 메타정보로는 용도, 분류, 언어, 운영체제, 하드웨어 사양 등이 될 수 있다. 예컨대 특정 서브소프트웨어와 용도와 분류가 매칭되는 서브소프트웨어들을 추출하거나, 용도, 분류, 언어, 운영체제, 하드웨어 사양이 매칭되는 서브소프트웨어들을 추출할 수 있다. In step 720, the compatible sub-software search unit 250 extracts sub-software corresponding to at least some of the specific sub-software and the meta information based on the meta information table in the open-source software database 300. Here, the meta information to be compared may be usage, classification, language, operating system, hardware specification, and the like. For example, it is possible to extract specific sub-software, sub-software whose usage and classification match, or sub-software whose usage, classification, language, operating system, and hardware specification match.

730단계에서, 호환 서브소프트웨어 검색부(250)는 위에서 추출된 서브소프트웨어들 중에서 해당 메이팅 리스트, 즉 특정 서브소프트웨어의 특정 오픈소스 소프트웨어에 대한 메이팅 리스트를 포함하는 메이팅 리스트를 가지는 서브소프트웨어를 검색한다. In step 730, the compatible sub-software search unit 250 searches sub-software having a mating list including the mating list for the specific open source software of the specific sub-software, out of the sub-software extracted above.

도 6을 참조하여 예를 들면, 사용자로부터 오픈소스 소프트웨어 A의 서브소프트웨어 a와 호환이 되는 서브소프트웨어의 검색 요청을 입력받았다고 하자. 그러면 서브소프트웨어 a의 오픈소스 소프트웨어 A에 대한 메이팅 리스트는 (b, c)가 된다. For example, suppose that a search request of a sub software compatible with the sub software a of the open source software A is input from the user, with reference to FIG. Then, the mating list for the open source software A of the sub software a becomes (b, c).

서브소프트웨어 a, b, c, d, e, f, k가 모두 비교 대상이 되는 메타정보가 매칭된다고 가정하면, 720단계를 통하여 서브소프트웨어 a, b, c, d, e, f, k가 추출될 것이다.The sub software a, b, c, d, e, f, and k are extracted through step 720, assuming that the meta information of the sub software a, b, c, Will be.

그러면 730단계에서 서브소프트웨어 a, b, c, d, e, f, k 중에서 메이팅 리스트 (b, c)를 포함하는 메이팅 리스트를 가지는 서브소프트웨어를 검색하게 된다. Then, in step 730, the sub software having the mating list including the mating lists (b, c) among the sub software a, b, c, d, e, f and k is searched.

도 8은 도 6의 메이팅 리스트들에서 메이팅 리스트 (b, c)를 포함하는 메이팅 리스트를 가지는 서브소프트웨어가 검색된 예를 보여준다. 도 8을 참조하면, 서브소프트웨어 d는 메이팅 리스트 (b, c)를 포함하는 메이팅 리스트를 두 개, 서브소프트웨어 e는 메이팅 리스트 (b, c)를 포함하는 메이팅 리스트를 한 개, 서브소프트웨어 f는 메이팅 리스트 (b, c)를 포함하는 메이팅 리스트를 한 개, 서브소프트웨어 k는 메이팅 리스트 (b, c)를 포함하는 메이팅 리스트를 3개 가진다. FIG. 8 shows an example of searching for sub-software having a mating list including mating lists (b, c) in the mating lists of FIG. 8, the sub software d includes two mating lists including the mating lists b and c, the sub software e includes one mating list including the mating lists b and c, the sub software f One mating list including the mating lists b and c, and the sub software k has three mating lists including the mating lists b and c.

따라서 730단계에서 서브소프트웨어 d, e, f, k가 검색된다. Thus, in step 730, the sub-software d, e, f, and k are retrieved.

호환 서브소프트웨어 검색부(250)는 특정 서브소프트웨어의 특정 오픈소스 소프트웨어에 대한 메이팅 리스트를 포함하는 메이팅 리스트를 가지는 서브소프트웨어 모두를 검색 결과로 제공할 수도 있지만, 전형적으로는 이러한 서브소프트웨어의 수는 매우 많을 것이므로, 해당 메이팅 리스트를 포함하는 메이팅 리스트를 보다 많이 가지는 일부의 서브소프트웨어를 검색 결과로 제공할 수도 있다. 즉, 해당 메이팅 리스트를 포함하는 메이팅 리스트를 보다 많이 가질수록 특정 서브소프트웨어와 호환성이 높은 것으로 보아 그러한 서브소프트웨어를 우선적으로 추천할 수 있다. The compatible sub-software search unit 250 may provide search results for all of the sub-software having a mating list including a mating list for a particular open source software of a particular sub-software, but the number of such sub- It is possible to provide some sub-software having a greater number of mating lists including the corresponding mating list as a search result. That is, the more mating lists including the corresponding mating list are, the higher the compatibility with the specific sub software is, and thus the sub software can be preferentially recommended.

예컨대 다시 도 8을 참조하면, 메이팅 리스트 (b, c)를 포함하는 메이팅 리스트를 d, e, f, k가 각각 2개, 1개, 1개, 3개 가지므로, 서브소프트웨어 a와의 호환성은 k, d, (e, f) 순으로 높다고 할 수 있다. For example, referring again to FIG. 8, since the mating lists including the mating lists b and c are 2, 1, 1, and 3, respectively, k, d, and (e, f).

740단계에서 웹서비스부(240)는 730단계를 통하여 검색된 서브소프트웨어를, 해당 메이팅 리스트를 포함하는 메이팅 리스트의 수에 따라 웹페이지를 통하여 표시한다. 예컨대, 웹서비스부(240)는 호환성이 높은 순서로 서브소프트웨어 k, d, (e, f)를 표시하여 주거나, 호환성이 높은 일부, 즉 k, d를 호환성이 높은 순서로 표시하여 줄 수 있다. 또한, 웹서비스부(240)는 해당 메이팅 리스트를 포함하는 메이팅 리스트의 수를 보여주거나, 이를 점수로 환산하여 보여줄 수도 있다.In operation 740, the web service unit 240 displays the searched software through the web page according to the number of mating lists including the corresponding mating list. For example, the web service unit 240 may display the sub software k, d, (e, f) in the order of high compatibility, or may display a part with high compatibility, that is, k and d in the order of high compatibility . In addition, the web service unit 240 may display the number of mating lists including the mating list, or may convert the mating list into a score.

한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드 디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등)와 같은 저장매체를 포함한다.The above-described embodiments of the present invention can be embodied in a general-purpose digital computer that can be embodied as a program that can be executed by a computer and operates the program using a computer-readable recording medium. The computer-readable recording medium includes a storage medium such as a magnetic storage medium (e.g., ROM, floppy disk, hard disk, etc.), optical reading medium (e.g., CD ROM,

이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.The present invention has been described with reference to the preferred embodiments. It will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined by the appended claims. Therefore, the disclosed embodiments should be considered in an illustrative rather than a restrictive sense. The scope of the present invention is defined by the appended claims rather than by the foregoing description, and all differences within the scope of equivalents thereof should be construed as being included in the present invention.

Claims (10)

호환 오픈소스 소프트웨어 추천 서버가, 오픈소스 소프트웨어들 및 각 오픈소스 소프트웨어의 메타 정보를 제공하는 적어도 하나의 오픈소스 소프트웨어 제공 서버들로부터 오픈소스 소프트웨어들 및 메타정보들을 수집하여 오픈소스 소프트웨어 데이터베이스를 구축하되, 수집된 오픈소스 소프트웨어가 그에 속한 오픈소스 소프트웨어인 서브소프트웨어를 포함하는 경우 해당 서브소프트웨어 리스트를 구성하는 단계;
상기 호환 오픈소스 소프트웨어 추천 서버가, 특정 오픈소스 소프트웨어에 포함된 특정 서브소프트웨어와 호환이 되는 서브소프트웨어의 검색 요청을 입력받는 단계;
상기 호환 오픈소스 소프트웨어 추천 서버가, 상기 오픈소스 소프트웨어 데이터베이스의 서브소프트웨어들을 대상 서브소프트웨어들로 하여, 상기 특정 서브소프트웨어의 메타정보, 상기 대상 서브소프트웨어들의 메타정보, 및 상기 서브소프트웨어 리스트를 바탕으로, 상기 특정 서브소프트웨어와 호환이 될 수 있는 적어도 하나의 서브소프트웨어를 검색하는 단계; 및
상기 호환 오픈소스 소프트웨어 추천 서버가, 상기 검색된 서브소프트웨어를 표시하는 단계를 포함하는 것을 특징으로 하는 호환 오픈소스 소프트웨어 추천 방법.
A compatible open source software recommendation server collects open source software and meta information from at least one open source software provision server that provides meta information of open source software and each open source software to build an open source software database Configuring the sub-software list if the collected open-source software includes sub-software which is open-source software belonging thereto;
The compatible open source software recommendation server receiving a search request of a sub software compatible with a specific sub software included in the specific open source software;
Wherein the compatible open source software recommendation server uses sub-software of the open source software database as target sub-software, and based on the meta information of the specific sub-software, meta information of the target sub-software, Retrieving at least one sub-software that is compatible with the particular sub-software; And
Wherein the compatible open source software recommendation server comprises the step of displaying the retrieved sub-software.
제1항에 있어서,
상기 호환 오픈소스 소프트웨어 추천 서버가, 상기 오픈소스 소프트웨어 데이터베이스의 오픈소스 소프트웨어들의 서브소프트웨어 리스트들로부터, 각 서브소프트웨어마다 해당 서브소프트웨어를 포함하는 오픈소스 소프트웨어들 각각에 대하여 해당 오픈소스 소프트웨어에 함께 포함된 서브소프트웨어의 리스트인 메이팅 리스트를 구성하는 단계를 더 포함하고,
상기 서브소프트웨어를 검색하는 단계는, 상기 대상 서브소프트웨어들의 메이팅 리스트들을 바탕으로 상기 특정 서브소프트웨어와 호환이 될 수 있는 적어도 하나의 서브소프트웨어를 검색하는 것을 특징으로 하는 호환 오픈소스 소프트웨어 추천 방법.
The method according to claim 1,
Wherein the compatible open source software recommendation server is operable to extract, from the sub software lists of the open source software of the open source software database, for each of the open software, Further comprising constructing a mating list that is a list of sub-software,
Wherein the searching for the sub software includes searching at least one sub software compatible with the specific sub software based on the mating lists of the target sub software.
제2항에 있어서,
상기 서브소프트웨어를 검색하는 단계는, 상기 대상 서브소프트웨어들 중 상기 특정 서브소프트웨어와 메타정보가 적어도 일부 대응하는 서브소프트웨어로서, 상기 특정 서브소프트웨어의 상기 특정 오픈소스 소프트웨어에 대한 메이팅 리스트를 포함하는 메이팅 리스트를 가지는 서브소프트웨어를 상기 특정 서브소프트웨어와 호환이 될 수 있는 서브소프트웨어로서 검색하는 것을 특징으로 하는 호환 오픈소스 소프트웨어 추천 방법.
3. The method of claim 2,
The searching of the sub-software may include sub-software having meta information at least partially corresponding to the specific sub-software among the target sub-software, the mating list including the mating list of the specific sub- As sub-software that is compatible with the particular sub-software.
제3항에 있어서,
상기 서브소프트웨어를 검색하는 단계는, 상기 특정 서브소프트웨어의 상기 특정 오픈소스 소프트웨어에 대한 메이팅 리스트를 포함하는 메이팅 리스트를 보다 많이 가지는 적어도 하나의 서브소프트웨어를 상기 특정 서브소프트웨어와 호환이 될 수 있는 서브소프트웨어로서 검색하는 것을 특징으로 하는 호환 오픈소스 소프트웨어 추천 방법.
The method of claim 3,
The step of searching for the sub-software may further comprise the step of searching at least one sub-software having more mating lists including a mating list for the specific open-source software of the sub-software, As a result of the search.
제3항에 있어서,
상기 대응하는 메타정보는, 용도, 분류, 언어, 운영체제, 하드웨어 사양 중 적어도 하나를 포함하는 것을 특징으로 하는 호환 오픈소스 소프트웨어 추천 방법.
The method of claim 3,
Wherein the corresponding meta information comprises at least one of an application, a classification, a language, an operating system, and a hardware specification.
오픈소스 소프트웨어들 및 각 오픈소스 소프트웨어의 메타 정보를 제공하는 적어도 하나의 오픈소스 소프트웨어 제공 서버들로부터 오픈소스 소프트웨어들 및 메타정보들을 수집하는 오픈소스 소프트웨어 수집부;
상기 수집된 오픈소스 소프트웨어들 및 메타정보들로 오픈소스 소프트웨어 데이터베이스를 구축하되, 수집된 오픈소스 소프트웨어가 그에 속한 오픈소스 소프트웨어인 서브소프트웨어를 포함하는 경우 해당 서브소프트웨어 리스트를 구성하는 데이터베이스 구축부;
특정 오픈소스 소프트웨어에 포함된 특정 서브소프트웨어와 호환이 되는 서브소프트웨어의 검색 요청을 입력받는 웹서비스부; 및
상기 오픈소스 소프트웨어 데이터베이스의 서브소프트웨어들을 대상 서브소프트웨어들로 하여, 상기 특정 서브소프트웨어의 메타정보, 상기 대상 서브소프트웨어들의 메타정보, 및 상기 서브소프트웨어 리스트를 바탕으로, 상기 특정 서브소프트웨어와 호환이 될 수 있는 적어도 하나의 서브소프트웨어를 검색하는 호환 서브소프트웨어 검색부를 포함하고,
상기 웹서비스부는 상기 검색된 서브소프트웨어를 표시하는 것을 특징으로 하는 호환 오픈소스 소프트웨어 추천 시스템.
An open source software collector for collecting open source software and meta information from at least one open source software providing servers that provide open source software and meta information of each open source software;
A database building unit constructing an open source software database with the collected open source software and meta information, and configuring a corresponding sub software list when the collected open source software includes sub software which is open source software belonging thereto;
A Web service unit receiving a search request of a sub software compatible with a specific sub software included in the specific open source software; And
The sub-software of the open-source software database may be compatible with the specific sub-software based on the meta information of the specific sub-software, the meta information of the target sub-software, And a compatible sub-software searching unit for searching at least one sub-software having at least one sub-
And the web service unit displays the retrieved sub-software.
제6항에 있어서,
상기 데이터베이스 구축부는, 상기 오픈소스 소프트웨어 데이터베이스의 오픈소스 소프트웨어들의 서브소프트웨어 리스트들로부터, 각 서브소프트웨어마다 해당 서브소프트웨어를 포함하는 오픈소스 소프트웨어들 각각에 대하여 해당 오픈소스 소프트웨어에 함께 포함된 서브소프트웨어의 리스트인 메이팅 리스트를 구성하고,
상기 호환 서브소프트웨어 검색부는, 상기 대상 서브소프트웨어들의 메이팅 리스트들을 바탕으로 상기 특정 서브소프트웨어와 호환이 될 수 있는 적어도 하나의 서브소프트웨어를 검색하는 것을 특징으로 하는 호환 오픈소스 소프트웨어 추천 시스템.
The method according to claim 6,
The database construction unit may be configured to obtain, from the sub software lists of the open source software of the open source software database, a list of sub software included in the corresponding open source software for each of the open source software including the sub software for each sub software Forming an inmating list,
Wherein the compatible sub-software searching unit searches at least one sub-software compatible with the specific sub-software based on the mating lists of the target sub-software.
제7항에 있어서,
상기 호환 서브소프트웨어 검색부는, 상기 대상 서브소프트웨어들 중 상기 특정 서브소프트웨어와 메타정보가 적어도 일부 대응하는 서브소프트웨어로서, 상기 특정 서브소프트웨어의 상기 특정 오픈소스 소프트웨어에 대한 메이팅 리스트를 포함하는 메이팅 리스트를 가지는 서브소프트웨어를 상기 특정 서브소프트웨어와 호환이 될 수 있는 서브소프트웨어로서 검색하는 것을 특징으로 하는 호환 오픈소스 소프트웨어 추천 시스템.
8. The method of claim 7,
Wherein the compatible sub-software search unit is a sub-software having meta information at least partially corresponding to the specific sub-software among the target sub-software, and having a mating list including a mating list of the specific sub- Wherein the sub-software is searched as sub-software compatible with the specific sub-software.
제8항에 있어서,
상기 호환 서브소프트웨어 검색부는, 상기 특정 서브소프트웨어의 상기 특정 오픈소스 소프트웨어에 대한 메이팅 리스트를 포함하는 메이팅 리스트를 보다 많이 가지는 적어도 하나의 서브소프트웨어를 상기 특정 서브소프트웨어와 호환이 될 수 있는 서브소프트웨어로서 검색하는 것을 특징으로 하는 호환 오픈소스 소프트웨어 추천 시스템.
9. The method of claim 8,
The compatible sub-software search unit searches at least one sub-software having more mating lists including a mating list for the specific open-source software of the sub-software as sub-software compatible with the specific sub-software Said system comprising:
제8항에 있어서,
상기 대응하는 메타정보는, 용도, 분류, 언어, 운영체제, 하드웨어 사양 중 적어도 하나를 포함하는 것을 특징으로 하는 호환 오픈소스 소프트웨어 추천 시스템.
9. The method of claim 8,
Wherein the corresponding meta information comprises at least one of an application, a classification, a language, an operating system, and a hardware specification.
KR1020140155248A 2014-11-10 2014-11-10 System and method for recommending compatible open source software KR101648047B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140155248A KR101648047B1 (en) 2014-11-10 2014-11-10 System and method for recommending compatible open source software

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140155248A KR101648047B1 (en) 2014-11-10 2014-11-10 System and method for recommending compatible open source software

Publications (2)

Publication Number Publication Date
KR20160056341A KR20160056341A (en) 2016-05-20
KR101648047B1 true KR101648047B1 (en) 2016-08-16

Family

ID=56103541

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140155248A KR101648047B1 (en) 2014-11-10 2014-11-10 System and method for recommending compatible open source software

Country Status (1)

Country Link
KR (1) KR101648047B1 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101766859B1 (en) * 2016-07-05 2017-09-06 엘에스웨어(주) Method for checking incompatibilities between open source licenses based on feature points
WO2018088589A1 (en) * 2016-11-11 2018-05-17 엘에스웨어(주) Method and system for collecting and recommending compatible open source software
KR101876688B1 (en) * 2016-12-27 2018-07-10 엘에스웨어(주) System for providing meta data of open source project and method thereof
KR102068680B1 (en) * 2018-03-27 2020-01-22 동국대학교 산학협력단 Apparatus and method for recommending software
KR101950208B1 (en) * 2018-12-04 2019-02-22 (주)에스앤씨랩 Method and device for assessing web accessibility and openness

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009116733A (en) 2007-11-08 2009-05-28 Nec Corp Application retrieval system, application retrieval method, monitor terminal, retrieval server, and program

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101135963B1 (en) * 2010-03-25 2012-04-18 김대영 Application searching system
KR101376226B1 (en) * 2012-06-08 2014-03-26 (주)네오위즈게임즈 Method for total managing open-source systems and total management server thereof
KR20140098276A (en) * 2013-01-30 2014-08-08 (주)토마토시스템 Authoring method of application using templete

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009116733A (en) 2007-11-08 2009-05-28 Nec Corp Application retrieval system, application retrieval method, monitor terminal, retrieval server, and program

Also Published As

Publication number Publication date
KR20160056341A (en) 2016-05-20

Similar Documents

Publication Publication Date Title
US10621211B2 (en) Language tag management on international data storage
KR101648047B1 (en) System and method for recommending compatible open source software
US20160188448A1 (en) Discovery of application states
Shepherd et al. Sando: an extensible local code search framework
CN111279335B (en) Retrieving multilingual documents based on document structure extraction
Kuc et al. Elasticsearch server
Plugge et al. The Definitive Guide to MongoDB: A complete guide to dealing with Big Data using MongoDB
CN106462632B (en) Media store with content specification layer
CN110990057B (en) Method, device, equipment and medium for extracting small program subchain information
US20160191338A1 (en) Retrieving content from an application
US9330372B2 (en) Generating an improved development infrastructure
Valentine et al. EarthCube Data Discovery Studio: A gateway into geoscience data discovery and exploration with Jupyter notebooks
KR101372942B1 (en) Social media contents sharing apparatus and method
KR20150120591A (en) System and method for recommending related app
CN113568923A (en) Method and device for querying data in database, storage medium and electronic equipment
JP5661449B2 (en) File name creation device
KR101648046B1 (en) System and method for recommending open source software
Bojinov RESTful Web API Design with Node. js
US20140244698A1 (en) Method for Skipping Empty Folders when Navigating a File System
JP4469818B2 (en) Data management apparatus, data program, and data management method
US10204106B2 (en) Management method, management device, and management system
Dixit Elasticsearch essentials
JP7340952B2 (en) Template search system and template search method
Srivastava et al. Elasticsearch 7 Quick Start Guide: Get up and running with the distributed search and analytics capabilities of Elasticsearch
WO2018088589A1 (en) Method and system for collecting and recommending compatible open source software

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

Year of fee payment: 4