GitHubでのIBM i関連プロジェクト
IBM iコミュニティとオープンソースとの関係は、始まり方としてはゆっくりとしたものでしたが、今ではますます重要なものへと変わってきています。そうした蜜月関係の中心的なプレーヤーとなっているのは、GitHubに他なりません。GitHubは、世界最大のオープンソース コードのリポジトリーであることに加え、IBM iプラットフォームにおけるオープン イノベーションのデリバリーのための媒体としての役割をますます高めつつあります。
GitHubは、10年前にサンフランシスコでLogical Awesome LLCとして設立された株式非公開会社であり、当初の目的は、Gitオープンソース バージョン管理システムを用いて管理されるソフトウェア開発プロジェクトのために、ホスティング サービスおよびコラボレーション フレームワークを提供する、という単純なものでした。
同社はすぐに人気に火が着き、2009年にはユーザー10万人、2013年にはユーザー300万人、今では2700万人のユーザーを集めるまでになっています。現在、ハウジングしているリポジトリー数は何千万にも上り、2015年にSequoia Capitalから2億5千万ドルの資金調達を受けた際には、同社の市場価値は20億ドルと評価されたと報じられています。
オープンシステムを舞台としたソフトウェア プロジェクトの開発にとってGitHubがどれほどポピュラーな存在であるかを考えると、GitHubが、急成長しているIBM iのオープンソース コミュニティにとっても拠点となる場所となって行くであろうことは当然の流れと言えるでしょう。GitHub上で開始された最近のIBM iプロジェクトがその兆候であるように思えます。
GitHubでは、ユーザーはプロジェクトにスター(星印)を付けることでプロジェクトの価値を評価することができます。以下では、現在、GitHubにホスティングされているオープンソースのIBM i関連のプロジェクトのうち、ユーザーが付けたスターの数のランキングによる、最も人気の高いプロジェクトをいくつか紹介して行きます。
tn5250j - スター数 40個
tn5250jプロジェクト(https://github.com/tn5250j/tn5250j)は、同じ名前のJavaベースの5250ターミナル エミュレーターの開発を管理します。このプロジェクトは9年前に追加され、それ以降、8名のコントリビューターによって1,200回以上のコミットが行われ、リリース数11、フォーク数21、およびブランチ数5に達しています。このプロジェクトはGitHubスターを40個獲得し、ウォッチしているユーザーが10名います。GitHubサイトのIBM i関連のプロジェクトで最も活動的で人気の高いプロジェクトと言えるでしょう。
ILEditor - スター数 24個
Liam Allan氏のILEditor(github.com/WorksOfBarry/ILEditor)は、IBM i ILE言語向けの軽量なWindowsベースの開発環境を提供します。このソフトウェア(最初はIdleという名前でした)は、Allan氏のWorks of Barryウェブページによれば、ユーザー数が1,000名を超えているということです。このWindowsベースのコード エディターは無償ですが、本当に値札が付いているとしたら、それは良いセールス ポイントとなるでしょう。
ILEditorは、活動的なプロジェクトであり、コミット数459、リリース数24、ブランチ数5で、4名のコントリビューターがいます。GitHubスターは24個獲得しています。Profound Logic社の開発者でもあるAllan氏は、ユーザーとオープンな関係を保つことを望んでいます。Allan氏は「開発者とユーザーの間で積極的にコミュニケーションを取ることを通じて、どのようなことがILEditorの機能強化に役立つのか、今後どのようにILEditorを改善して行くべきかのヒントをいただきたいと考えています」と自身のWebサイトで述べています。
Cobol - スター数 18個
MarinfxのCobol(github.com/Martinfx/Cobol)プロジェクトは、OpenCobol(すなわちGnuCobol)やAS/400 COBOLなど、いくつかのCOBOL方言向けのサンプルを提供します。AS/400 COBOLでは、このプロジェクトはILE COBOL、ILE CL、物理ファイル、論理ファイル、およびディスプレイ ファイル向けのサンプルを提供しています。このプロジェクトは8か月前に追加され、すでにスターを18個獲得しています。
check-as400 - スター数 11個
ShaoPin Cheng氏のcheck-as400プロジェクト(github.com/cjt74392/check_as400)は、人気の高いオープンソースの、IT、ネットワーク、サーバー、およびアプリケーション監視システムであるNagiosからIBM iサーバーを監視するためのプラグインを提供します。このプロジェクトは最初に4年以上前に追加され、それ以降、GitHubスターを11個獲得しています。
Write-to-IFS-with-SQL - スター数 9個
Birgitta Hauser氏のWrite-to-IFS-with-SQL (github.com/BirgittaHauser/Write-to-IFS-with-SQL)は、名前が示しているように、XMLおよびJSONファイルを生成し、SQLを介して直接IFSに書き込むRPGプログラムを、ユーザーが作成できるようにするユーティリティです。このプロジェクトは約3か月前にGitHubに投稿され、それ以降、スターを9個獲得しており、ウォッチしているユーザーが6名います。
Hauser氏は、Toolmaker Advanced Efficiency GmbH社のソフトウェア エンジニアであり、この他に2つのGitHubプロジェクトを持っています。その1つは、開発者がDb2 for iデータベース向けのJSONおよびXMLデータを生成するRPGプログラムを作成するのを支援するGenerate-XML-and-JSONであり、もうひとつは、IBM i向けのユーティリティのコレクションであるOSSILEです。Generate-XML-and-JSONプロジェクトは、スターを6個獲得しています。
ibmi - スター数 9個
Scott Guilbeaux氏のibm iプロジェクト(github.com/smokerbag/ibmi)は、IBM iアプリケーションをNode.jsにエクスポーズするためのクライアント ライブラリーです。「厄介な要件があるためにIBM iとインターフェースできない人に向けて作成しました」とGuilbeaux氏は記しています。作成者のこのプラットフォームに対する熱意はあふれんばかりです。ibm iはスターを9個獲得しています。
iRPGEditor - スター数 8個
egomezalのiRPGEditor(github.com/egomezal/irpgeditor)。RPG、SQL、DDS、およびCLを使用してIBM iアプリケーションを作成するための開発ツールです。このJavaベースのソフトウェアは、SourceForge プロジェクトのフォークであり、約1年前に公開されて以降、スターを8個獲得しています。
activerecord-jdbcas400-adapter - スター数 7個
Pierrick Rouxel氏のactiverecord-jdbcas400-adapterプロジェクト(github.com/pierrickrouxel/activerecord-jdbcas400-adapter)は、リレーショナル データベースで作業するためのRubyライブラリーであるActiveRecord用のIBM i JDBCアダプターを提供します。このプロジェクトは4年前に追加され、それ以降、3名のコントリビューターが、71のコミット、14のリリース、および2つのブランチを行っています。GitHubスターを7個獲得しています。
SQL-for-IBM-i-examples - スター数 6個
Alan Seiden氏のSQL-for-IBM-i-examples((github.com/Club-Seiden/SQL-for-IBM-i-examples)は、Db2 for iの機能を説明するサンプルを提供します。このソフトウェアは、2か月前に公開されたばかりですが、すでにGitHubで注目を集めており、スターを6個獲得し、コントリビューターは4名、ブランチが1つあります。
Seiden氏は、自らが主宰するClub Seidenグループ(club.seidengroup.com)を通じて他にもいくつかのGitHubプロジェクトを持っています。PyKit(IBM i向けのPythonツールキット)、ibmiToolkit(IBM iツールキット向けのZend Framework 3モジュール)、RPG-Watson-SDK(RPGとIBMのWatsonをリンクする開発キット)、giti(5250グリーン スクリーン リポジトリー ブラウザ)、 ibmisearch(「大量の」IBM i関連のリンクを検索できます)、といったプロジェクトがあります。
loopback-connector-db2iseries - スター数 6個
Strongloop社のloopback-connector-db2iseries(github.com/strongloop/loopback-connector-db2iseries/)は、迅速にAPIを構築するための、Node.jsで構築されるオープンソース フレームワークであるLoopBackにDb2 for iのサポートをもたらします。
Strongloop社(現在はIBM傘下)は、Db2 for iデータベース(別名、DB2 for i、DB2iSeries、DB2/400)を利用する最新のAPIベースのアプリケーションを顧客が構築できるようにするDb2 for iデータベース用のコネクタを開発しました。GitHub上のこのコネクタ プロジェクトは、現時点でコントリビューターは10名、スター数6個、リリース数は4で、ウォッチしているユーザーが31名います。
RPGUnit - スター数 6個
Cyril Clemenceau氏のRPGUnit(github.com/takshil/RPGUnit)は、RPGでRPG単体テストを実装するのに使用されるJunitに似たレグレッション テスト フレームワークです。このソフトウェアは、GitHubの黎明期である10年前に追加され、7つのリリースを経ています。長い年月に渡ってスターを6個獲得しています。
iSeriesPDF - スター数 5個
Tom White氏のiSeriesPDF(github.com/jenkstom/iSeriesPDF)は、IBM iホストからのプリント ジョブをPDFへ変換し、元のユーザーへメール送信するC#ベースのLPDサーバーです。このソフトウェアは約1年前に追加され、それ以降、スターを5個獲得しています。
system_i_audit - スター数 5個
system_i_audit(github.com/s1th/system_i_audit)は、GitHubユーザーのs1thが5年前に作成した、ユーザーがIBM iサーバーのシステム値、ユーザー/グループ プロファイルおよび特権、およびオブジェクト権限の監査を実行するのを支援するソフトウェアです。
このソフトウェア(時間の経過とともにこれらの領域に対してなされた変更を記録することもできます)は古くなっているため、「調整が必要かもしれない」とコントリビューターも認めています。とはいうものの、長い年月に渡ってスターを5個獲得しています。
FTPCLNT - スター数 4個
FTPCLNTは、Chris Hird氏が開発した、IBM i用のシンプルなFTP Clientとして機能するソフトウェアです。このソフトウェアはパネル グループを使用してローカルおよびリモート コンテンツを表示する、とHird氏は述べています。FTPCLNTは約1年前に追加されました。これまでに、8つのリリースおよび32のコミットが行われています。7名がウォッチしており、スターを4個獲得しています。
Hird氏は、他にもFTP-Guard、OSSILE、MD5CRC、およびCF_APIなどのプロジェクトをGitHubに持っています。また、彼は約2か月前に、CでIBM iプログラムを開発するための様々なツールを提供するOSTools(https://github.com/ChrisHird/OSTOOLS)も作成しました。
Hird氏が自身のIBM iソフトウェア会社Shield Advanced Solutions社のブログで説明しているように、OSToolsの目的は、他のIBM iのショップが構築の基盤とすることができる、C言語でのアプリケーションの開発の技術的基盤を作ることにあります。PASE環境とは対照的に、ネイティブに稼働するIBM i向けのオープンソース ソフトウェアの開発についてHird氏がどれほど積極的に発言してきたかを考えると、OSToolsがどのように進化して行くかは見守ってみる価値がありそうです。
liquibase-db2i - スター数 4個
Nathan Voxland氏のliquibase-db2i(https://github.com/liquibase/liquibase-db2i/)は、データベース スキーマの変更を追跡、管理、および適用するためのオープンソース ライブラリーであるLiquibaseに、Db2 for iデータベースのサポートを追加します。
約5年前のLiquibaseバージョン3.1のリリースで、メインとなるLiquibase製品はDb2 for i(当時の呼び方ではDB2 for i)のサポートを終了し、サポートはエクステンションへ移行しました。LiquibaseのBDFL(優しい終身の独裁者)の称号を持つVoxland氏が、GitHubでDb2 for iエクステンションをリリースしたものです。スターを4個獲得しています。
RPG - スター数 4個
Edoardo Luppi氏のRPGプロジェクト(github.com/lppedd/RPG)は、ArrayListおよびLinkedList関数およびHashMapをチェックする、IBM i向けのいくつかのユーティリティ関数およびコレクション実装を提供します。このプロジェクトは約1年前に開始され、スターを4個獲得しています。
IBM i関連のGitHubプロジェクトで、スターを3個獲得しているプロジェクトには以下のものがあります。
- Vladimír Župka氏のIBMiProgTool (github.com/vzupka/IBMiProgTool)
- Kevin Schroeder氏のiSeries-PHP-toolkit (github.com/kschroeder/iSeries-PHP-toolkit)
- Uptimesoftwareのibm-as400-monitor (github.com/uptimesoftware/ibm-as400-monitor)
- Linq2DBのLinq2DB4iSeriesプロジェクト(github.com/LinqToDB4iSeries/linq2db)
- Geoffrey Wiseman氏のAS-400-Shell (github.com/geoffreywiseman/AS-400-Shell)
- Alexandru Giurovici氏のAS400-automation (github.com/betaphreak/AS400-automation)
- Rainer Ross氏のChatserver (github.com/RainerRoss/Chatserver)