WO2020162174A1 - 解析装置、解析方法、および解析プログラム - Google Patents

解析装置、解析方法、および解析プログラム Download PDF

Info

Publication number
WO2020162174A1
WO2020162174A1 PCT/JP2020/002093 JP2020002093W WO2020162174A1 WO 2020162174 A1 WO2020162174 A1 WO 2020162174A1 JP 2020002093 W JP2020002093 W JP 2020002093W WO 2020162174 A1 WO2020162174 A1 WO 2020162174A1
Authority
WO
WIPO (PCT)
Prior art keywords
connection
oss
compatibility
degree
analysis
Prior art date
Application number
PCT/JP2020/002093
Other languages
English (en)
French (fr)
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 US17/428,852 priority Critical patent/US11853744B2/en
Publication of WO2020162174A1 publication Critical patent/WO2020162174A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Definitions

  • the present invention relates to an analysis device, an analysis method, and an analysis program for analyzing connection compatibility of software such as OSS.
  • OpS Operaation Support System
  • OSS Open Source Software
  • OpS is a system necessary for operators (carriers) who provide communication services to build and operate services.
  • OSS is free software whose source code can be modified or redistributed freely.
  • Patent Document 1 there is a technique for calculating the complexity of a program.
  • the present invention has been made in view of the above circumstances, and an object of the present invention is to provide a technique for analyzing connection compatibility between software such as OSS.
  • one aspect of the present invention is an analysis device, which is a first source code of a connection source OSS (Open Source Software), a second source code of a connection destination OSS, and the connection source OSS and Based on the number of overlapping data formats in the acquisition unit that acquires the connection plug-in of the connection destination OSS, the output plug-in of the first source code, and the input plug-in of the second source code, A first analysis unit that calculates a first compatibility degree; a second analysis unit that calculates a second compatibility degree based on the number of functions and the number of instances included in the connection plug-in; And a third analysis unit that calculates the degree of connection compatibility between the connection source OSS and the connection destination OSS using the degree of duality.
  • a connection source OSS Open Source Software
  • One aspect of the present invention is an analysis apparatus, which includes a first source code of connection source software, a second source code of connection destination software, and a connection plug-in of the connection source software and the connection destination software.
  • a first analysis unit that calculates a first compatibility degree based on the number of overlapping data formats in the acquisition unit that acquires, the output plug-in of the first source code, and the input plug-in of the second source code;
  • a second analysis unit that calculates a second compatibility degree based on the number of functions and the number of instances included in the connection plug-in, and the connection source software using the first compatibility degree and the second compatibility degree.
  • a third analysis unit that calculates a connection compatibility degree with the connection destination software.
  • One aspect of the present invention is an analysis method performed by a computer, which is a first source code of a connection source OSS (Open Source Software), a second source code of a connection destination OSS, the connection source OSS and the connection destination OSS.
  • the first compatibility degree is determined based on the number of overlapping data formats in the acquisition step of acquiring the connection plug-in of, the output plug-in of the first source code, and the input plug-in of the second source code.
  • a third analysis step of calculating the connection compatibility degree between the connection source OSS and the connection destination OSS.
  • One aspect of the present invention is an analysis program characterized by causing a computer to function as the analysis device.
  • 1 is an overall configuration diagram of an analysis system according to an embodiment of the present invention. It is a figure for explaining the 1st degree of compatibility. It is a figure for demonstrating a 2nd degree of compatibility. It is a flow chart which shows analysis processing. It is an example of an image showing an analysis result.
  • FIG. 1 is an explanatory diagram for explaining the outline of the embodiment of the present invention.
  • a certain system 9 is constructed using a plurality of OSSs (Open Source Software).
  • OSSs Open Source Software
  • a system is constructed using three OSSs and independently developed software.
  • OSS-C that provides function C connects with OSS-B that provides function B, so it is necessary to analyze the connection compatibility between OSS-C and OSS-B in advance.
  • the connection compatibility between OSS-C and OSS-B is analyzed without conducting a manual investigation or actually mounting OSS-C and OSS-B in the system 9.
  • OSS-C is the connection source OSS
  • OSS-B is the connection destination OSS.
  • connection compatibility is analyzed using the plug-in's completeness.
  • OSS plug-ins there are two types: a plug-in included in the source code of the OSS main body (main body plug-in) and a connection plug-in acquired from the OSS repository as an external plug-in.
  • the connection compatibility is analyzed for these two plug-ins.
  • the connection compatibility between OSS-B and OSS-A can be similarly analyzed in this embodiment.
  • FIG. 2 is a system configuration diagram showing the entire analysis system according to the embodiment of the present invention.
  • the illustrated analysis system includes an analysis device 1, a user terminal 2, and an OSS repository 3.
  • OSS repository 3 is a database that centrally manages various information related to multiple OSSs.
  • the user terminal 2 is a device that inputs the analysis target OSS to the analysis device 1 and displays the analysis result of the analysis device 1.
  • a computer such as a PC, a tablet, or a smartphone is used for the user terminal 2.
  • Analyze device 1 is a device that analyzes the compatibility of connections between OSSs.
  • the analysis apparatus 1 for example, a computer such as a server or a PC is used.
  • the illustrated analysis device 1 includes a reception unit 11, an acquisition unit 12, an analysis unit 13, a visualization unit 14, and a storage unit 15.
  • the reception unit 11 receives from the user terminal 2 an analysis request in which two OSSs to be analyzed are specified.
  • the analysis request includes identification information such as the names of the connection source OSS and the connection destination OSS.
  • the names of the connection source OSS and the connection destination OSS are included.
  • the reception unit 11 may receive at least one of the first compatibility degree weight and the second compatibility degree weight.
  • the acquisition unit 12 acquires the first source code of the connection source OSS, the second source code of the connection destination OSS, and the connection plug-in (external plug-in) of the connection source OSS and the connection destination OSS from the OSS repository 3. To do.
  • the analysis unit 13 includes a first analysis unit 131, a second analysis unit 132, and a third analysis unit 133.
  • the first analysis unit 131 analyzes and calculates the first compatibility degree based on the number of overlapping data formats in the output plug-in of the first source code and the input plug-in of the second source code.
  • the second analysis unit 132 analyzes and calculates the second degree of compatibility based on the number of functions and the number of instances included in the connection plug-in.
  • the third analysis unit 133 calculates the connection compatibility degree between the connection source OSS and the connection destination OSS using the first compatibility degree and the second compatibility degree. In addition, the third analysis unit 133 may calculate the connection compatibility degree by using the weight.
  • the first analysis unit 131, the second analysis unit 132, and the third analysis unit 133 store the respective analysis results in the storage unit 15.
  • the visualization unit 14 generates an image (analysis result image) in which a connection line connecting the connection source OSS and the connection destination OSS is drawn with a thickness or a type according to the connection compatibility degree calculated by the analysis unit 13.
  • the visualization unit 14 transmits the generated image to the user terminal 2 and causes the display (output device) of the user terminal 2 to display the image.
  • the visualization unit 14 determines the connection source based on the connection compatibility degree with the other connection destination OSS.
  • a connection line connecting the OSS and another connection destination OSS may be drawn on the generated image.
  • FIG. 3 is an explanatory diagram for explaining the process of the first analysis unit 131.
  • "fluentd” is used as the connection source OSS and "Elasticsearch” is used as the connection destination OSS.
  • the first analysis unit 131 analyzes the source code of the connection source OSS and the source code of the connection destination OSS acquired by the acquisition unit 12 from the OSS repository 3. That is, the first analysis unit 131 analyzes the main body plug-in.
  • the first analysis unit 131 is based on the number of overlapping data formats of the output plug-in included in the source code of the connection source OSS and the input plug-in included in the source code of the connection destination OSS. , The first compatibility degree between the connection source OSS and the connection destination OSS is analyzed. If the output plug-in and the input plug-in have the same data format, the connection destination OSS can be considered to have supported the connection source OSS. Therefore, in the present embodiment, the first analysis unit 131 counts the overlapping data formats of the output plug-in and the input plug-in, and sets the number of overlapping data formats as the first compatibility degree.
  • the data format of the output plug-in 31 is "file”, “syslog”, “json”.
  • the data formats of the input plug-in 32 are “syslog” and “json”. Therefore, there are two overlapping data formats, "syslog” and "json”.
  • the first analysis unit 131 analyzes the first compatibility degree as “2”. In this way, the first analysis unit 131 analyzes duplication of distribution data (syslog, json, file, stdin/out, etc.) and calculates the first compatibility degree.
  • FIG. 4 is an explanatory diagram for explaining the processing of the second analysis unit 132.
  • "fluentd” is used as the connection source OSS and "Elasticsearch” is used as the connection destination OSS.
  • the second analysis unit 132 analyzes the source code of the connection plug-in acquired by the acquisition unit 12 from the OSS repository 3.
  • the connection plug-in is an external plug-in for connecting the connection source OSS and the connection destination OSS.
  • the second analysis unit 132 analyzes the second degree of compatibility between the connection source OSS and the connection destination OSS based on the number of functions and the number of instances included in the source code of the connection plug-in.
  • the function means a method described in the source code of the plug-in for connection. For example, when the programming language of the source code is Ruby, the second analysis unit 132 counts the number of description parts (codes) described as “def xxxx” in the source code to obtain the source code. Analyze the number of functions contained in.
  • Instance also means a variable used in a function.
  • the second analysis unit 132 counts the number of description parts described as “@xxxx” in the source code, so that the source code Analyze the number of included instances.
  • connection plug-ins acquired from the OSS repository 3 include a first connection plug-in (fluentd-filter-Elasticsearch) 41 and a second connection plug-in (fluentd-output-Elasticsearch) 42. It is 2.
  • the first connection plug-in the number of functions is 20, the number of instances is 10, and the total of functions and instances is 30.
  • the second connection plug-in the number of functions is 15, the number of instances is 5, and the total number of functions and instances is 20.
  • the second analysis unit 132 sets “50”, which is the total number of functions and instances of the first connection plug-in and the second connection plug-in, as the second compatibility degree.
  • connection plug-in does not exist in the OSS repository 3, that is, if the connection plug-in cannot be acquired from the OSS repository 3, the degree of second compatibility is 0.
  • the third analysis unit 133 uses the first compatibility degree and the second compatibility degree to calculate the connection compatibility degree between the connection source OSS and the connection destination OSS.
  • the third analysis unit 133 may set the sum of the first compatibility degree and the second compatibility degree as the connection compatibility degree. Further, the third analysis unit 133 multiplies at least one of the first compatibility degree and the second compatibility degree by a weight (weighting coefficient), and multiplies the weight by the first compatibility degree and the second compatibility degree value. May be added to obtain the connection compatibility. When using the weight, the third analysis unit 133 calculates the connection compatibility degree by the following formula.
  • Connection compatibility degree first compatibility degree ⁇ first compatibility degree weight+second compatibility degree ⁇ second compatibility degree weight
  • a predetermined value is used for each of the first compatibility degree weight and the second compatibility degree weight.
  • the value specified by the user using the user terminal 2 may be used.
  • the user may also specify at least one of the weight of the first degree of compatibility and the weight of the second degree of compatibility.
  • the weight for the first degree of compatibility is set to a relatively large value, and the weight for the second degree of compatibility is set to a relatively small value.
  • Examples of connection compatibility using the compatibility shown in FIGS. 3 and 4 are as follows.
  • FIG. 5 is a flowchart showing the analysis processing of this embodiment.
  • the user inputs to the user terminal 2 a request for analysis of the connection compatibility of the two desired OSSs.
  • the user terminal 2 transmits the analysis request input by the user to the analysis device 1.
  • the reception unit 11 of the analysis device 1 receives the analysis request in which the two OSSs are specified from the user terminal 2 (step S11).
  • the analysis request contains the names (identification information) of the connection source OSS and the connection destination OSS.
  • the analysis request includes the weight of the first compatibility degree and the weight of the second compatibility degree. At least one is included.
  • the acquisition unit 12 accesses the OSS repository 3. Then, the acquisition unit 12 acquires the source code of the connection source OSS and the source code of the connection destination OSS from the OSS repository 3 using the connection source OSS and the connection destination OSS included in the analysis request as keys. Further, the acquisition unit 12 acquires the connection plug-in from the OSS repository 3 using the connection source OSS and the connection destination OSS as keys (step S12).
  • the first analysis unit 131 analyzes the output plug-in of the source code of the connection source OSS and the input plug-in of the source code of the connection destination OSS, and determines the number of data formats that overlap between the output plug-in and the input plug-in. To count. Then, the first analysis unit 131 calculates the first compatibility degree based on the number of overlapping data formats (step S13).
  • the second analysis unit 132 analyzes the source code of the connection plug-in and counts the number of functions and the number of instances included in the source code. Then, the second analysis unit 132 calculates the second compatibility degree based on the number of functions and the number of instances (step S14). When a plurality of connection plug-ins are acquired, the second analysis unit 132 counts the number of functions and the number of instances for each connection plug-in, and calculates the second compatibility degree based on the total of these.
  • the third analysis unit 133 calculates the connection compatibility degree between the connection source OSS and the connection destination OSS using the first compatibility degree and the second compatibility degree (step S15). Further, when the analysis request in step S11 includes weights, the third analysis unit 133 calculates the connection compatibility degree using the weights.
  • the visualization unit 14 generates an image in which a connection line connecting the connection source OSS and the connection destination OSS is drawn with a thickness or a type according to the connection compatibility degree calculated by the third analysis unit 133. Then, the visualization unit 14 transmits the generated image to the user terminal 2 and displays it on the display of the user terminal 2 (step 16).
  • the third analysis unit 133 stores the analysis result such as the calculated connection compatibility degree in the storage unit 15 (step S17).
  • the first analysis unit 131 and the second analysis unit 132 also store the analysis result in the storage unit.
  • FIG. 6 is a diagram showing an example of the analysis result image generated by the visualization unit 14 and displayed on the user terminal 2.
  • the connection line 61 between the connection source OSS (fluentd) specified in the analysis request and the connection destination OSS (Elasticsearch) is calculated by the third analysis unit 133 as the connection compatibility degree (35 in the example shown). Draw according to the thickness. Further, in the illustrated example, when the connection compatibility degree is other than 0, it is drawn with a solid line, and when the connection compatibility degree is 0, it is drawn with a dotted line. The case where the connection compatibility degree is 0 is a case where the first compatibility degree and the second compatibility degree are 0. As shown in the figure, the visualization unit 14 may also draw the searched connection plug-in 64 on the image.
  • connection compatibility degree, etc. when the storage unit 15 stores the analysis results (connection compatibility degree, etc.) with the other connection destination OSSs 65 and 66 corresponding to the connection source OSS, the visualization unit 14 determines other connection destinations.
  • the connection lines 62 and 63 connecting the connection source OSS and the other connection destination OSS may be drawn on the generated image based on the analysis result of the OSSs 65 and 66. Since the degree of connection compatibility with the other connection destination OSS 66 (NewOSS) is 0, the visualization unit 14 draws the connection line 63 with the connection source OSS as a dotted line.
  • the analysis device 1 of the present embodiment described above acquires the first source code of the connection source OSS, the second source code of the connection destination OSS, and the connection plug-in of the connection source OSS and the connection destination OSS.
  • a first analysis unit 131 that calculates the first compatibility degree based on the number of overlapping data formats of the acquisition unit 12, the output plug-in of the first source code, and the input plug-in of the second source code.
  • a second analysis unit 132 that calculates a second compatibility degree based on the number of functions and the number of instances included in the connection plug-in, and the connection source using the first compatibility degree and the second compatibility degree.
  • the third analysis unit 133 that calculates the degree of connection compatibility between the OSS and the connection destination OSS.
  • compatibility of the connection between OSSs can be analyzed without performing a manual investigation or OSS implementation. Therefore, in the present embodiment, in the development of a large-scale system, when the system is divided into parts and each part is realized by the existing software such as OSS, the appropriate OSS can be quickly selected and applied to develop the system. The period and development cost can be greatly reduced. In addition, the system expandability can be improved by selecting an appropriate OSS.
  • the analysis apparatus 1 of the present embodiment also includes a visualization unit that generates an image in which a connection line connecting the connection source OSS and the connection destination OSS is drawn with a thickness or a type according to the connection compatibility degree.
  • a visualization unit that generates an image in which a connection line connecting the connection source OSS and the connection destination OSS is drawn with a thickness or a type according to the connection compatibility degree.
  • the analysis device 1 described above includes, for example, a CPU (Central Processing Unit, processor), a memory, a storage (HDD: Hard Disk Drive, SSD: Solid State Drive), a communication device, an input device, A general-purpose computer system including an output device can be used.
  • each function of the analysis device 1 is realized by the CPU executing a predetermined program loaded on the memory.
  • the program for the analysis device 1 can be stored in a computer-readable recording medium such as HDD, SSD, USB memory, CD-ROM, DVD-ROM, MO, or can be distributed via a network.
  • connection compatibility between OSSs is analyzed, but the present invention is not limited to OSSs, and the connection compatibility between software other than OSS may be analyzed.
  • Analysis device 11 Reception unit 12: Acquisition unit 13: Analysis unit 131: First analysis unit 132: Second analysis unit 133: Third analysis unit 14: Visualization unit 15: Storage unit 2: User terminal 3: OSS repository

Landscapes

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

Abstract

OSSなどのソフトウェア間の接続相性を解析する技術を提供する。解析装置1であって、接続元OSSの第1ソースコードと、接続先OSSの第2ソースコードと、前記接続元OSSおよび前記接続先OSSの接続用プラグインと、を取得する取得部12と、第1ソースコードのアウトプットプラグインと、第2ソースコードのインプットプラグインとで重複するデータ形式の数に基づいて、第1相性度を算出する第1解析部131と、前記接続用プラグインに含まれる関数の数およびインスタンスの数に基づいて、第2相性度を算出する第2解析部132と、第1相性度および第2相性度を用いて、前記接続元OSSと前記接続先OSSとの接続相性度を算出する第3解析部133と、を備える。

Description

解析装置、解析方法、および解析プログラム
 本発明は、OSSなどのソフトウェアの接続相性を解析する解析装置、解析方法、および解析プログラムに関する。
 OpS(Operation Support System)などのシステムの機能を部品化し、部品化した各機能をOSS(Open Source Software)により実現することで、システムの開発期間の短縮、開発費の削減、拡張性の向上などが期待されている。OpSは、通信サービスを提供している事業者(キャリア)が、サービスを構築および運営するために必要なシステムである。OSSは、ソースコードの改変や再配布が自由に認められている無償のソフトウェアである。
 また、プログラムの複雑度を算出する技術が存在する(特許文献1)。
特開2014-032466号公報
 複数のOSSを組み合わせてシステムを構築する際にはOSS間の接続が必須である。OSS間の接続にあたっては、OSSが高度化している他、流通データ(syslog, file, stdin/out)の可否などが接続先のOSS毎に異なり、対応状況が変化する。このため、システム開発の都度、複数のOSSの組合せの決定には手作業による調査が必要となる。
 将来的には、候補となるOSSの数が膨大になることが予想され、これにより、OSSの選択肢が多くなる。そのため、最適なOSSを選択するための調査の稼働負荷が増大し、システム開発の迅速化が損なわれるという問題が発生する。
 本発明は、上記事情に鑑みてなされたものであり、本発明の目的は、OSSなどのソフトウェア間の接続相性を解析する技術を提供することにある。
 上記目的を達成するため、本発明の一態様は、解析装置であって、接続元OSS(Open Source Software)の第1ソースコードと、接続先OSSの第2ソースコードと、前記接続元OSSおよび前記接続先OSSの接続用プラグインと、を取得する取得部と、第1ソースコードのアウトプットプラグインと、第2ソースコードのインプットプラグインとで重複するデータ形式の数に基づいて、第1相性度を算出する第1解析部と、前記接続用プラグインに含まれる関数の数およびインスタンスの数に基づいて、第2相性度を算出する第2解析部と、第1相性度および第2相性度を用いて、前記接続元OSSと前記接続先OSSとの接続相性度を算出する第3解析部と、を備える。
 本発明の一態様は、解析装置であって、接続元ソフトウェアの第1ソースコードと、接続先ソフトウェアの第2ソースコードと、前記接続元ソフトウェアおよび前記接続先ソフトウェアの接続用プラグインと、を取得する取得部と、第1ソースコードのアウトプットプラグインと、第2ソースコードのインプットプラグインとで重複するデータ形式の数に基づいて、第1相性度を算出する第1解析部と、前記接続用プラグインに含まれる関数の数およびインスタンスの数に基づいて、第2相性度を算出する第2解析部と、第1相性度および第2相性度を用いて、前記接続元ソフトウェアと前記接続先ソフトウェアとの接続相性度を算出する第3解析部と、を備える。
 本発明の一態様は、コンピュータが行う解析方法であって、接続元OSS(Open Source Software)の第1ソースコードと、接続先OSSの第2ソースコードと、前記接続元OSSおよび前記接続先OSSの接続用プラグインと、を取得する取得ステップと、第1ソースコードのアウトプットプラグインと、第2ソースコードのインプットプラグインとで重複するデータ形式の数に基づいて、第1相性度を算出する第1解析ステップと、前記接続用プラグインに含まれる関数の数およびインスタンスの数に基づいて、第2相性度を算出する第2解析ステップと、第1相性度および第2相性度を用いて、前記接続元OSSと前記接続先OSSとの接続相性度を算出する第3解析ステップと、を行う。
 本発明の一態様は、上記解析装置として、コンピュータを機能させることを特徴とする解析プログラムである。
 本発明によれば、OSSなどのソフトウェア間の接続相性を解析する技術を提供することができる。
本発明の実施形態の概要を説明するための説明図である。 本発明の実施形態に係る解析システムの全体構成図である。 第1相性度を説明するための図である。 第2相性度を説明するための図である。 解析処理を示すフローチャートである。 解析結果を示す画像の一例である。
 以下、本発明の実施の形態について、図面を参照して説明する。なお、以下の本実施形態では、OSSについて説明するが、本発明はOSSに限定されるものではなく、OSS以外のソフトウェア間の接続相性を解析してもよい。
 図1は、本発明の実施形態の概要を説明するための説明図である。本実施形態では、複数のOSS(Open Source Software)を用いて、あるシステム9を構築するものとする。図示する例では、3つのOSSと、独自に開発したソフトウェアとを用いて、システムを構築することを想定している。
 この場合、機能Cを提供するOSS-Cは、機能Bを提供するOSS-Bと接続するため、事前にOSS-CとOSS-Bとの間の接続相性を解析する必要がある。本実施形態では、手作業による調査、または、OSS-CおよびOSS-Bを実際にシステム9に実装することなく、OSS-CおよびOSS-Bの接続相性を解析する。ここで、OSS-Cは接続元OSSで、OSS-Bは接続先OSSである。
 本実施形態では、プラグインの充実度を用いて接続相性を解析する。具体的には、OSSのプラグインには、OSS本体のソースコードに含まれるプラグイン(本体プラグイン)と、外部プラグインとしてOSSリポジトリから取得する接続用プラグインの2種類が存在する。本実施形態では、これら2つのプラグインを対象に接続相性を解析する。なお、OSS-BとOSS-Aと間の接続相性についても、本実施形態では、同様に解析することができる。
 図2は、本発明の実施形態に係る解析システムの全体を示すシステム構成図である。図示する解析システムは、解析装置1と、ユーザ端末2と、OSSリポジトリ3とを備える。
 OSSリポジトリ3は、複数のOSSに関する様々な情報を一元的に管理するデータベースである。
 ユーザ端末2は、解析装置1に解析対象のOSSを入力するとともに、解析装置1の解析結果を表示する装置である。ユーザ端末2には、例えば、PC、タブレット、スマートフォンなどのコンピュータが用いられる。
 解析装置1は、OSS間の接続の相性を解析する装置である。解析装置1には、例えば、サーバ、PCなどのコンピュータが用いられる。図示する解析装置1は、受付部11と、取得部12と、解析部13と、可視化部14と、記憶部15とを備える。
 受付部11は、解析対象の2つのOSSが指定された解析要求を、ユーザ端末2から受け付ける。例えば、解析要求には、接続元OSSおよび接続先OSSの名称などの識別情報が含まれる。本実施形態では、接続元OSSおよび接続先OSSの名称が含まれるものとする。また、受付部11は、第1相性度の重みおよび第2相性度の重みの少なくとも1つを受け付けてもよい。
 取得部12は、接続元OSSの第1ソースコードと、接続先OSSの第2ソースコードと、接続元OSSおよび接続先OSSの接続用プラグイン(外部プラグイン)とを、OSSリポジトリ3から取得する。
 解析部13は、第1解析部131と、第2解析部132と、第3解析部133とを備える。第1解析部131は、第1ソースコードのアウトプットプラグインと、第2ソースコードのインプットプラグインとで重複するデータ形式の数に基づいて、第1相性度を解析および算出する。第2解析部132は、接続用プラグインに含まれる関数の数およびインスタンスの数に基づいて、第2相性度を解析および算出する。第3解析部133は、第1相性度および第2相性度を用いて、接続元OSSと接続先OSSとの接続相性度を算出する。また、第3解析部133は、重みを用いて接続相性度を算出してもよい。第1解析部131、第2解析部132および、第3解析部133は、それぞれの分析結果を記憶部15に記憶する。
 可視化部14は、接続元OSSと接続先OSSとを結ぶ接続線を、解析部13が算出した接続相性度に応じた太さまたは種類で描画した画像(解析結果画像)を生成する。可視化部14は、生成した画像をユーザ端末2に送信し、ユーザ端末2のディスプレイ(出力装置)に表示させる。また、可視化部14は、記憶部15に接続元OSSに対応する他の接続先OSSとの接続相性度が記憶されている場合、他の接続先OSSとの接続相性度を基づいて、接続元OSSと他の接続先OSSとを結ぶ接続線を、生成する画像に描画してもよい。
 次に、解析部13の処理について説明する。
 図3は、第1解析部131の処理を説明するための説明図である。図示する例では、接続元OSSとして「fluentd」を、接続先OSSとして「Elasticsearch」を用いる。
 第1解析部131は、取得部12がOSSリポジトリ3から取得した、接続元OSSのソースコードおよび接続先OSSのソースコードを解析する。すなわち、第1解析部131は、本体プラグインを解析する。
 具体的には、第1解析部131は、接続元OSSのソースコードに含まれるアウトプットプラグインと、接続先OSSのソースコードに含まれるインプットプラグインとで重複するデータ形式の数に基づいて、接続元OSSと接続先OSSとの第1相性度を解析する。アウトプットプラグインと、インプットプラグインとでデータ形式が重複する場合、接続先OSSは接続元OSSをサポート済みであるとみなすことができる。そのため、本実施形態では、第1解析部131は、アウトプットプラグインと、インプットプラグインとで重複するデータ形式をカウントし、重複するデータ形式の数を第1相性度とする。
 図示する例では、アウトプットプラグイン31のデータ形式は、「file」、「syslog」、「json」である。インプットプラグイン32のデータ形式は、「syslog」、「json」である。したがって、重複するデータ形式は、「syslog」および「json」の2つである。この場合、第1解析部131は、第1相性度を「2」と解析する。このように、第1解析部131は、流通データ(syslog、json、file、stdin/outなど)の重複を解析し、第1相性度を算出する。
 図4は、第2解析部132の処理を説明するための説明図である。図示する例でも、接続元OSSとして「fluentd」を、接続先OSSとして「Elasticsearch」を用いる。
 第2解析部132は、取得部12がOSSリポジトリ3から取得した接続用プラグインのソースコードを解析する。接続用プラグインは、接続元OSSと接続先OSSとを接続するための外部プラグインである。
 第2解析部132は、接続用プラグインのソースコードに含まれる関数の数およびインスタンスの数に基づいて、接続元OSSと接続先OSSとの第2相性度を解析する。関数は、接続用プラグインのソースコードに記述されたメソッドを意味する。例えば、前記ソースコードのプログラミング言語がRubyの場合、第2解析部132は、前記ソースコードの中で「def xxxx」と記述された記述部分(コード)の数をカウントすることで、前記ソースコードに含まれる関数の数を解析する。
 また、インスタンスは、関数で使用する変数を意味する。接続用プラグインのソースコードのプログラミング言語がRubyの場合、第2解析部132は、前記ソースコードの中で「@xxxx」と記述された記述部分の数をカウントすることで、前記ソースコードに含まれるインスタンスの数を解析する。
 図示する例では、OSSリポジトリ3から取得した接続用プラグインは、第1の接続用プラグイン(fluentd-filter-Elasticsearch)41と、第2の接続用プラグイン(fluentd-output-Elasticsearch)42の2である。第1の接続用プラグインでは、関数の数は20で、インスタンスの数は10であり、関数およびインスタンスの合計は30である。第2の接続用プラグインでは、関数の数は15で、インスタンスの数は5であり、関数およびインスタンスの合計は20である。この場合、第2解析部132は、第1の接続用プラグインおよび第2接続用プラグインの関数の数およびインスタンスの数を合計した「50」を、第2相性度とする。
 なお、接続用プラグインがOSSリポジトリ3に存在しない場合、すなわち、接続用プラグインがOSSリポジトリ3から取得できない場合、第2相性度は0となる。
 第3解析部133は、第1相性度および第2相性度を用いて、接続元OSSと接続先OSSとの接続相性度を算出する。
 例えば、第3解析部133は、第1相性度と第2相性度との合計を接続相性度としてもよい。また、第3解析部133は、第1相性度と第2相性度の少なくとも1つに、重み(重み係数)を乗算し、重みを乗算した後の第1相性度と第2相性度値とを加算して接続相性度としてもよい。重みを用いる場合、第3解析部133は、以下の式により接続相性度を算出する。
 接続相性度=第1相性度×第1相性度の重み+第2相性度×第2相性度の重み
 第1相性度の重み、および、第2相性度の重みは、それぞれ所定の値を用いてよく、あるいは、ユーザがユーザ端末2を用いて指定した値を用いてもよい。また、ユーザは、第1相性度の重み、および、第2相性度の重みの少なくとも1つを指定してもよい。
 第1相性度を優先する場合は、第1相性度用の重みを比較的大きな値とし、第2相性度用の重みを比較的小さな値とする。この場合、図3および図4に示す相性度を用いた接続相性度の例は、以下のとおりである。
 2(第1相性度)×100(第1相性度の重み)+50(第2相性度)×1(第2相性度の重み)=250
 また、第2相性度を優先する場合は、第2相性度用の重みを比較的大きな値とし、第1相性度用の重みを比較的小さな値とする。この場合、図3および図4に示す相性度を用いた接続相性度の例は、以下のとおりである。
 2(第1相性度)×10(第1相性度の重み)+50(第2相性度)×5(第2相性度の重み)=270
 次に、本実施形態の解析装置1が行う解析処理について説明する。
 図5は、本実施形態の解析処理を示すフローチャートである。
 ユーザは、所望の2つのOSSの接続相性の解析要求をユーザ端末2に入力する。ユーザ端末2は、ユーザが入力した解析要求を解析装置1に送信する。これにより、解析装置1の受付部11は、2つのOSSが指定された解析要求を、ユーザ端末2から受信する(ステップS11)。
 解析要求には、接続元OSSおよび接続先OSSの名称(識別情報)が含まれる。また、ユーザが、第1相性度の重みおよび第2相性度の重みの少なくとも1つを、ユーザ端末2に入力した場合、解析要求には第1相性度の重みおよび第2相性度の重みの少なくとも1つが含まれる。
 取得部12は、OSSリポジトリ3にアクセスする。そして、取得部12は、解析要求に含まれる接続元OSSおよび接続先OSSをキーとして、接続元OSSのソースコード、接続先OSSのソースコードをOSSリポジトリ3から取得する。また、取得部12は、接続元OSSおよび接続先OSSをキーとして、接続用プラグインをOSSリポジトリ3から取得する(ステップS12)。
 第1解析部131は、接続元OSSのソースコードのアウトプットプラグインと、接続先OSSのソースコードのインプットプラグインとを解析し、アウトプットプラグインとインプットプラグインで重複するデータ形式の数をカウントする。そして、第1解析部131は、重複するデータ形式の数に基づいて第1相性度を算出する(ステップS13)。
 第2解析部132は、接続用プラグインのソースコードを解析し、ソースコードに含まれる関数の数およびインスタンスの数をカウントする。そして、第2解析部132は、関数の数およびインスタンスの数に基づいて、第2相性度を算出する(ステップS14)。複数の接続用プラグインを取得した場合、第2解析部132は、接続用プラグイン毎に関数の数およびインスタンスの数をカウントし、これらの合計に基づいて第2相性度を算出する。
 第3解析部133は、第1相性度および第2相性度を用いて、接続元OSSと接続先OSSとの接続相性度を算出する(ステップS15)。また、第3解析部133は、ステップS11の解析要求に重みが含まれている場合、重みを用いて接続相性度を算出する。
 可視化部14は、接続元OSSと接続先OSSとを結ぶ接続線を、第3解析部133が算出した接続相性度に応じた太さまたは種類で描画した画像を生成する。そして、可視化部14は、生成した画像をユーザ端末2に送信し、ユーザ端末2のディスプレイに表示させる(ステップ16)。
 第3解析部133は、算出した接続相性度などの分析結果を記憶部15に記憶する(ステップS17)。また、第1解析部131および第2解析部132も、分析結果を記憶部に記憶する。
 図6は、可視化部14が生成し、ユーザ端末2に表示される分析結果画像の一例を示す図である。図示する画像では、解析要求で指定された接続元OSS(fluentd)と、接続先OSS(Elasticsearch)との接続線61を、第3解析部133が算出した接続相性度(図示する例では35)に応じた太さで描画する。また、図示する例では、接続相性度が0以外の場合は実線で描画し、接続相性度が0の場合は点線で描画する。接続相性度が0の場合は、第1相性度および第2相性度が0の場合である。図示するように、可視化部14は、検索した接続用プラグイン64についても画像に描画してもよい。
 また、図示する例では、可視化部14は、記憶部15に接続元OSSに対応する他の接続先OSS65、66との解析結果(接続相性度等)が記憶されている場合、他の接続先OSS65、66との解析結果に基づいて、接続元OSSと他の接続先OSSとを結ぶ接続線62、63を、生成する画像に描画してもよい。なお、可視化部14は、他の接続先OSS66(NewOSS)との接続相性度は0であるため、接続元OSSとの接続線63を、点線で描画する。
 以上説明した本実施形態の解析装置1は、接続元OSSの第1ソースコードと、接続先OSSの第2ソースコードと、前記接続元OSSおよび前記接続先OSSの接続用プラグインと、を取得する取得部12と、第1ソースコードのアウトプットプラグインと、第2ソースコードのインプットプラグインとで重複するデータ形式の数に基づいて、第1相性度を算出する第1解析部131と、前記接続用プラグインに含まれる関数の数およびインスタンスの数に基づいて、第2相性度を算出する第2解析部132と、第1相性度および第2相性度を用いて、前記接続元OSSと前記接続先OSSとの接続相性度を算出する第3解析部133と、を備える。
 これにより本実施形態では、手作業による調査やOSSの実装を行うことなく、OSS間の接続の相性(プラグインの充実度)を解析することができる。したがって、本実施形態では、大規模システムの開発において、システムを部品化し、各部品をOSSなどの既存のソフトウェアで実現する際に、適切なOSSを迅速に選定し、適用することで、システム開発の期間および開発費用を大幅に削減することができる。また、適切なOSSを選定することで、システムの拡張性を向上することができる。
 また、本実施形態の解析装置1は、接続元OSSと接続先OSSとを結ぶ接続線を、接続相性度に応じた太さまたは種類で描画した画像を生成する可視化部を備える。これにより、本実施形態では、ユーザは、OSSの接続相性度を、一目で(直感的に)理解することができる。
 なお、上記説明した解析装置1には、例えば、CPU(Central Processing Unit、プロセッサ)と、メモリと、ストレージ(HDD:Hard Disk Drive、SSD:Solid State Drive)と、通信装置と、入力装置と、出力装置とを備える汎用的なコンピュータシステムを用いることができる。このコンピュータシステムにおいて、CPUがメモリ上にロードされた所定のプログラムを実行することにより、解析装置1の各機能が実現される。また、解析装置1用のプログラムは、HDD、SSD、USBメモリ、CD-ROM、DVD-ROM、MOなどのコンピュータ読取り可能な記録媒体に記憶することも、ネットワークを介して配信することもできる。
 また、本発明は上記実施形態に限定されるものではなく、その要旨の範囲内で数々の変形が可能である。例えば、上記実施形態では、OSS間の接続相性を解析することとしたが、本発明はOSSに限定されるものではなく、OSS以外のソフトウェア間の接続相性を解析してもよい。
 1  :解析装置
 11 :受付部 
 12 :取得部
 13 :解析部
 131:第1解析部
 132:第2解析部
 133:第3解析部
 14 :可視化部
 15 :記憶部
 2  :ユーザ端末
 3  :OSSリポジトリ

Claims (8)

  1.  解析装置であって、
     接続元OSS(Open Source Software)の第1ソースコードと、接続先OSSの第2ソースコードと、前記接続元OSSおよび前記接続先OSSの接続用プラグインと、を取得する取得部と、
     第1ソースコードのアウトプットプラグインと、第2ソースコードのインプットプラグインとで重複するデータ形式の数に基づいて、第1相性度を算出する第1解析部と、
     前記接続用プラグインに含まれる関数の数およびインスタンスの数に基づいて、第2相性度を算出する第2解析部と、
     第1相性度および第2相性度を用いて、前記接続元OSSと前記接続先OSSとの接続相性度を算出する第3解析部と、を備えること
     を特徴とする解析装置。
  2.  請求項1記載の解析装置であって、
     前記接続元OSSと前記接続先OSSとを結ぶ接続線を、前記接続相性度に応じた太さまたは種類で描画した画像を生成する可視化部を、備えること
     を特徴とする解析装置。
  3.  請求項2記載の解析装置であって、
     第3解析部は、前記接続相性度を記憶部に記憶し、
     前記可視化部は、前記記憶部に前記接続元OSSに対応する他の接続先OSSとの接続相性度が記憶されている場合、前記他の接続先OSSとの接続相性度を基づいて、前記接続元OSSと前記他の接続先OSSとを結ぶ接続線を、前記画像に描画すること
     を特徴とする解析装置。
  4.  請求項1から3のいずれか1項に記載の解析装置であって、
     第1相性度の重みおよび第2相性度の重みの少なくとも1つを受け付ける受付部を、備え、
     第3解析部は、前記重みを用いて前記接続相性度を算出すること
     を特徴とする解析装置。
  5.  解析装置であって、
     接続元ソフトウェアの第1ソースコードと、接続先ソフトウェアの第2ソースコードと、前記接続元ソフトウェアおよび前記接続先ソフトウェアの接続用プラグインと、を取得する取得部と、
     第1ソースコードのアウトプットプラグインと、第2ソースコードのインプットプラグインとで重複するデータ形式の数に基づいて、第1相性度を算出する第1解析部と、
     前記接続用プラグインに含まれる関数の数およびインスタンスの数に基づいて、第2相性度を算出する第2解析部と、
     第1相性度および第2相性度を用いて、前記接続元ソフトウェアと前記接続先ソフトウェアとの接続相性度を算出する第3解析部と、を備えること
     を特徴とする解析装置。
  6.  コンピュータが行う解析方法であって、
     接続元OSS(Open Source Software)の第1ソースコードと、接続先OSSの第2ソースコードと、前記接続元OSSおよび前記接続先OSSの接続用プラグインと、を取得する取得ステップと、
     第1ソースコードのアウトプットプラグインと、第2ソースコードのインプットプラグインとで重複するデータ形式の数に基づいて、第1相性度を算出する第1解析ステップと、
     前記接続用プラグインに含まれる関数の数およびインスタンスの数に基づいて、第2相性度を算出する第2解析ステップと、
     第1相性度および第2相性度を用いて、前記接続元OSSと前記接続先OSSとの接続相性度を算出する第3解析ステップと、を行うこと
     を特徴とする解析方法。
  7.  請求項6記載の解析方法であって、
     前記接続元OSSと前記接続先OSSとを結ぶ接続線を、前記接続相性度に応じた太さまたは種類で描画した画像を生成する可視化ステップを、行うこと
     を特徴とする解析装置。
  8.  請求項1から5のいずれか1項に記載の解析装置として、コンピュータを機能させること、を特徴とする解析プログラム。
PCT/JP2020/002093 2019-02-05 2020-01-22 解析装置、解析方法、および解析プログラム WO2020162174A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US17/428,852 US11853744B2 (en) 2019-02-05 2020-01-22 Analysis device, analysis method, and analysis program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2019018848A JP7216883B2 (ja) 2019-02-05 2019-02-05 解析装置、解析方法、および解析プログラム
JP2019-018848 2019-02-05

Publications (1)

Publication Number Publication Date
WO2020162174A1 true WO2020162174A1 (ja) 2020-08-13

Family

ID=71948115

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/002093 WO2020162174A1 (ja) 2019-02-05 2020-01-22 解析装置、解析方法、および解析プログラム

Country Status (3)

Country Link
US (1) US11853744B2 (ja)
JP (1) JP7216883B2 (ja)
WO (1) WO2020162174A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015212911A (ja) * 2014-05-07 2015-11-26 富士通株式会社 ソフトウェア選択装置、ソフトウェア選択方法、及びソフトウェア選択プログラム
JP2018010580A (ja) * 2016-07-15 2018-01-18 株式会社日立製作所 プログラム開発環境推薦システム及びその方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8996988B2 (en) * 2009-10-19 2015-03-31 Browsera, LLC Automated application compatibility testing
WO2011162746A1 (en) * 2010-06-22 2011-12-29 Hewlett-Packard Development Company, L.P. A method and system for determining a deployment of applications
JP2014032466A (ja) 2012-08-01 2014-02-20 Ntt Comware Corp 複雑度算出装置、複雑度算出方法および複雑度算出プログラム
KR102302361B1 (ko) * 2014-12-31 2021-09-15 삼성전자 주식회사 어플리케이션과 장치 간의 피처 매칭 방법 및 시스템

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015212911A (ja) * 2014-05-07 2015-11-26 富士通株式会社 ソフトウェア選択装置、ソフトウェア選択方法、及びソフトウェア選択プログラム
JP2018010580A (ja) * 2016-07-15 2018-01-18 株式会社日立製作所 プログラム開発環境推薦システム及びその方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
HIROYUKI OHYANAGI, ATSUSHI YOSHIDA, KOSUKE SAKATA, NAOYUKI TANJI, MIWAKA OHTANI (NTT): "Open Source Software Evaluation for Operation Support System", IEICE TECHNICAL REPORT., vol. 118, no. 420, 17 January 2019 (2019-01-17), pages 15 - 20 *

Also Published As

Publication number Publication date
US11853744B2 (en) 2023-12-26
JP2020126471A (ja) 2020-08-20
JP7216883B2 (ja) 2023-02-02
US20220121441A1 (en) 2022-04-21

Similar Documents

Publication Publication Date Title
JP6967534B2 (ja) データベースプロビジョニングのためのリソース配分
US10650424B2 (en) Dynamic cloud solution catalog
US20160018962A1 (en) User-interface for developing applications that apply machine learning
KR101283019B1 (ko) SaaS 어플리케이션 생성 방법 및 이를 실행하는 어플리케이션 생성 서버
US10198477B2 (en) System for automatic classification and routing
US10175954B2 (en) Method of processing big data, including arranging icons in a workflow GUI by a user, checking process availability and syntax, converting the workflow into execution code, monitoring the workflow, and displaying associated information
EP3093809B1 (en) Systems and methods for state machine management
US20210304142A1 (en) End-user feedback reporting framework for collaborative software development environments
CN110704749B (zh) 推荐引擎定制系统、推荐方法及推荐系统、电子设备
JP6094593B2 (ja) 情報システム構築装置、情報システム構築方法および情報システム構築プログラム
JP6299599B2 (ja) 情報システム構築支援装置、情報システム構築支援方法および情報システム構築支援プログラム
US11194783B2 (en) Multiple parameter based composite rule wise data validation in cloud hybrid model
US20130226670A1 (en) Method and system for automatically partitioning and processing a business process
WO2020162174A1 (ja) 解析装置、解析方法、および解析プログラム
US20070204213A1 (en) Form multiplexer for a portal environment
CN104424525B (zh) 辅助确定项目范围的方法和装置
US11714699B2 (en) In-app failure intelligent data collection and analysis
US9275358B1 (en) System, method, and computer program for automatically creating and submitting defect information associated with defects identified during a software development lifecycle to a defect tracking system
JP2009134511A (ja) サイジング装置、サイジング方法、サイジング用プログラム及び記録媒体
JP7457588B2 (ja) 計算機システム及びプログラムコードの実行制御方法
WO2021250812A1 (ja) 情報処理装置及びプログラム
US10922106B2 (en) Systems and methods for providing globalization features in a service management application interface
JP2023047815A (ja) 情報処理装置、情報処理方法、及びプログラム
US20150121244A1 (en) Building a Realized Topology with a Binding Document
JPWO2020225925A1 (ja) 情報処理装置、情報処理システムおよび情報処理プログラム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20752977

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20752977

Country of ref document: EP

Kind code of ref document: A1