Skip to content

DevHRSoftUsingJVLinkToSQLite

Akira Sugiura edited this page Jan 7, 2024 · 8 revisions

ここでは、新しく競馬ソフトを開発する際、JVLinkToSQLite を使って JV-Data を SQLite データベースに変換し、ご自分で開発された予想理論のソフトで活用するための手順を説明します。

  • ビルド手順
  • 設計のポイント

ビルド手順

前提条件

Visual Studio 2022 のインストール

JVLinkToSQLite のビルドには、Visual Studio 2022 以降で、Professional エディション相当の機能を持つ開発環境が必要になります。競馬ソフトであれば、基本的に「個人開発」が想定される使用シナリオになるはずですので、以下のページから無料のコミュニティ エディションを入手していただくことが可能です。

Chocolatey のインストール

Windows 向けのパッケージ マネージャーとして Chocolatey をインストールします。

NuGet コマンド ライン インターフェイス (CLI) のインストール

Chocolatey のインストールが終わっていれば、以下の手順でインストール可能です:

  1. 管理者権限で PowerShell を実行します。
  2. 以下のコマンドを投入します:
PS C:\> choco install nuget.commandline -y

7-Zip のインストール

Chocolatey のインストールが終わっていれば、以下の手順でインストール可能です:

  1. 管理者権限で PowerShell を実行します。
  2. 以下のコマンドを投入します:
PS C:\> choco install 7zip -y

作者 ID/ソフトウェア IDの取得

JRA-VAN データラボの「ソフト登録の流れ」に従い、作者 ID/ソフトウェア IDを発行しておきます(未発行の場合でも手順は進められますが、最終的には発行した各種 ID をお使いください)。

手順

  1. JVLinkToSQLite のソース コードを clone するなどして取得します(以下、C:\git\JVLinkToSQLite フォルダに取得したものとして説明しています)。
  2. 「開発者コマンド プロンプト for VS 2017」を起動し、取得したフォルダに移動します:
**********************************************************************
** Visual Studio 2022 Developer Command Prompt v17.8.3
** Copyright (c) 2022 Microsoft Corporation
**********************************************************************

C:\Program Files\Microsoft Visual Studio\2022\Professional>cd "C:\git\JVLinkToSQLite"

C:\git\JVLinkToSQLite>
  1. 「開発者コマンド プロンプト for VS 2017」内で PowerShell を起動します:
C:\git\JVLinkToSQLite>powershell
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

新しいクロスプラットフォームの PowerShell をお試しください https://aka.ms/pscore6

PS C:\git\JVLinkToSQLite>
  1. 以下のコマンドを投入し、公開鍵/秘密鍵を生成します:
PS C:\git\JVLinkToSQLite> $rsa = New-Object System.Security.Cryptography.RSACryptoServiceProvider
PS C:\git\JVLinkToSQLite> $rsa.ToXmlString($false) | Out-File public.txt -Encoding utf8
PS C:\git\JVLinkToSQLite> $rsa.ToXmlString($true) | Out-File private.txt -Encoding utf8
PS C:\git\JVLinkToSQLite>
  1. 発行した作者 ID/ソフトウェア ID/公開鍵(public.txt の内容)を指定し、Build.ps1 を実行します:
PS C:\git\JVLinkToSQLite> .\Build.ps1 -AuthorId '<ここに作者 ID を指定>' -SoftwareId '<ここにソフトウェア ID を指定>' -PublicKey '<ここに公開鍵を指定>'

・・・略

PS C:\git\JVLinkToSQLite>

なお、作者 ID/ソフトウェア ID が未発行の場合は、オプションを何も指定せずに、Build.ps1 を実行してください。

PS C:\git\JVLinkToSQLite> .\Build.ps1

・・・略

PS C:\git\JVLinkToSQLite>
  1. ビルド結果は、work ディレクトリに出力されます。ここに生成される自己解凍形式のファイルは、簡単な使い方の「インストール」で扱う自己解凍形式ファイルと同等のものになります。展開結果を、ご自分の予想理論ソフトから参照できる箇所に配置・集積するなどしてご利用ください。
PS C:\git\JVLinkToSQLite> dir .\work\


    ディレクトリ: C:\git\JVLinkToSQLite\work


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----        2024/01/07     17:46        4092833 JVLinkToSQLiteArtifact_0.1.0.0.exe


PS C:\git\JVLinkToSQLite>

設計のポイント

以下は JVLinkToSQLite を活用した予想理論ソフトを開発する際の設計のポイントになります:

  • ライセンスの考慮
  • 実行時
  • 動作設定の更新時
  • SQLite データベースの使用時

ライセンスの考慮

以下の理由から、JVLinkToSQLite は、ライセンスとして GPLv3 を採用しています:

  • JVLinkToSQLite とは」に記載の通り、競馬ソフトの開発者が本来やりたいのは、予想理論の実装や支援機能の開発であり、独自性が強いデータを使いやすい形式に変換することではありません。そういった共通的な機能は、誰でも再利用できるよう、オープン ソースになっているべきです。
  • しかし、オープン ソースな競馬ソフトにするには、不自由なソフトウェアライセンス部分※1が問題になります。コピー レフトではないオープン ソース ライセンスは、その条件の緩さからか、明確な区分けができません。これを解決するため、例えば、MIT ライセンスに独自の条項を加えている方もいらっしゃいましたが、独自ライセンスは一般的な理解が定まりにくいリスクがあり、やはり標準的なライセンスで対応できることが望ましいです。
  • この点、GPLv3 では、こういう不自由なライブラリを利用するソフトウェアを書くことも標準で考慮されており、追加の許可を認めるだけで、それが可能になるのです。

ただ、GPLv3 は、周知の通り、「ウイルス性」や「ライセンス感染」などとまで呼ばれる強いコピー レフト性を持つライセンスです。それを考慮し、JVLinkToSQLite とご自分で実装された予想理論のソフトが、別々のプログラムであり続けるよう設計をお願いします。ポイントは次節以降にまとめました。

実行時

あいうえお

動作設定の更新時

かきくけこ

SQLite データベースの使用時

さしすせそ

===============================================================================

※1)開発に必要な JRA-VAN Data Lab. SDK の「JV-Data構造体\C#版\JVData_Struct.cs」など。一般的に、ライセンスなしと呼ばれる、OSS にできないものになる。

Clone this wiki locally