※当サイトの記事には、広告・プロモーションが含まれます。

JavaだとjPOSというライブラリがISO 8583をサポートしてるがJReactive-8583というライブラリが良さ気?

www.publickey1.jp

NVIDIAのHuang CEOは議論の中で、AIの進化によって自然言語でコンピュータに指示が可能になった現在、コンピュータサイエンスやプログラミングの教育は重要ではなくなったと示唆する発言をしています。

NVIDIA CEO、AIにより人間の言葉がプログラミング言語となったことで、プログラミングを学ぶことは重要でなくなった、と発言 - Publickey

コンピュータサイエンスを学ばなくとも、世界中の誰もがプログラマになる

AlOlama大臣から、テクノロジーの最先端を知る人として教育についてどう考えているかを問われたJensen Huang氏は、「皆さんの考えとは逆の意見になるかもしれない」と前置きした上で、これまでこうした壇上で話す人たちの多くが子供たちがコンピュータサイエンスやプログラミングを学ぶことは重要だと主張してきたけれども、「現実に起きているのはその逆です」として、次のように答えました。

NVIDIA CEO、AIにより人間の言葉がプログラミング言語となったことで、プログラミングを学ぶことは重要でなくなった、と発言 - Publickey

「誰もプログラミングする必要がないようなコンピュータテクノロジを開発することが自分たちの仕事であり、人間の言葉がプログラミング言語となったことで、いまや世界中の誰もがプログラマになりました。これこそAIが起こした奇跡です」(Huang氏)

NVIDIA CEO、AIにより人間の言葉がプログラミング言語となったことで、プログラミングを学ぶことは重要でなくなった、と発言 - Publickey

⇧う~む、逆な気がするんだが...

AIが生成したソースコードの妥当性を評価するために、プログラミング学習が必要な気がしますけどね。

AIが100%の精度で、全てプログラミングしてくれるんなら良いんだけど、そうではない以上、AIが生成したソースコードが適切なのかを人間が解釈して評価する必要がある以上、プログラミング教育は避けて通れないと思いますが...

jPOSとは

Wikipediaさんによりますと、

jPOS is a free and open source library/framework that provides a high-performance bridge between card messages generated at the point of sale or ATM terminals and internal systems along the entire financial messaging network. jPOS is an enabling technology that can be used to handle all card processing from messaging, to processing, through reporting.

https://en.wikipedia.org/wiki/JPOS

It can be used to implement financial interchanges based on the ISO 8583 standard and related protocols and currently supports versions 1987, 1993 and 2003 of the standard as well as multiple ANSX9.24 standards.

https://en.wikipedia.org/wiki/JPOS

⇧ とあることから、「ISO 8583」をサポートしているOSSOpen Source Software)なJavaライブラリであると。

JavaだとjPOSというライブラリがISO 8583をサポートしているらしいが...

GitHubに公開されているっぽいのだけど、

github.com

⇧ ライセンスは、「GPLv3」というものらしい。

xtech.nikkei.com

 オープンソース・ソフトウエア向けのライセンス方式である「GNU General Public License」の第3版。米Free Software Foundation (FSF)が2007年6月に公開した。GPLv2を公開した1991年以来,およそ16年ぶりの全面改訂となる。ただしGPLv3はGPLv2を置き換えるものではなく,どちらのライセンスも利用可能である。

GPLv3 | 日経クロステック(xTECH)

 GPLv3は,「ソフトウエアを自由に利用できるようにする」というGPLv2の基本精神を引き継ぎながら,GPLv2では時代遅れになった部分,特に新技術への対処やソフトウエア特許への対抗を盛り込んだ。またライセンスとしての完成度を高めるため,米国著作権法に依拠しない文言を使って国際化し,同時により法的に精緻にした。

GPLv3 | 日経クロステック(xTECH)

 オープンソース・ソフトウエアの開発プロジェクトの多くが,既にGPLv3への対応を表明している。例えば,ファイル・サーバー用ソフトウエアの「Samba」や,顧客関係管理(CRM)ソフトウエア「SugarCRM」などがGPLv3に対応する。ただし,GPLv3に否定的な立場をとるLinus Torvalds氏が手掛けるLinuxカーネルは,GPLv2で配布され続ける可能性が高い。

GPLv3 | 日経クロステック(xTECH)

xtech.nikkei.com

 GPLv3の初期の草稿では,DRM(デジタル著作権管理技術)利用について厳しい制限が盛り込まれていた。しかし「最終的にはGPLv3の正式な条文ではコピー・ガードやコピー・プロテクトにDRMを使用することは,実務上はほとんど問題ないところに落ち着いている」(IPA オープンソフトウェア・センター リーガル・タスクフォース委員の上山浩弁護士)。

GPLv3の条文解説書,IPAがクリエイティブ・コモンズで公開 | 日経クロステック(xTECH)

また上山氏は「GPLはよくわからないのでGPLソフトは一切利用しないという企業もあるが,それは合理的な態度ではない。GPLを理解し,戦略的に使っていくべき。逐条解説はそのための材料を提供する」と語った。

GPLv3の条文解説書,IPAがクリエイティブ・コモンズで公開 | 日経クロステック(xTECH)

⇧ う~む、「GPLv3」だと商用向けの開発プロジェクトで利用するのは厳しいのかね?

JReactive-8583とは

GitHubで公開されているライブラリで、

github.com

⇧「JReactive-8583」なるものがあって、

Free ISO8583 Connector for JDK (Netty)

https://github.com/kpavlov/jreactive-8583

Motivation

  1. jPOS library is not free for commercial use.
  2. j8583 is free but does not offer network client

Solution: "J-Reactive-8583" ISO8583 Client and Server built on top of excellent Netty asynchronous messaging framework with the help of j8583 for encoding/decoding. It is distributed under Apache License 2.0.

https://github.com/kpavlov/jreactive-8583

⇧『jPOS library is not free for commercial use.』とあるので、商用利用ではフリーじゃないって言ってますな。

「JReactive-8583」は、「Netty」を利用するらしいのだけど、ライセンスは「Apache License 2.0」ですと。

Supported Features

  • Client and Server endpoints.
  • Java 11+
  • Support ISO8583 messages using j8583 library.
  • Customizable ISO MessageFactory.
  • Automatic responding to Echo messages.
  • Automatic client reconnection.
  • Secure message logger: mask PAN and track data or any other field (customizable). Optionally prints field descriptions.
  • Configurable netty Bootstrap and ChannelPipeline

https://github.com/kpavlov/jreactive-8583

Java 11以上を利用できるのと、「Netty」を利用してもOKな環境であれば、「JReactive-8583」も選択肢としてありなのかな?

ただ、日本で利用してるっていうような情報が無いんよな...

実績が無いから、何とも言えんですな...

By the way、

www.codeproject.com

⇧ 一般的なクレジットカード決済のフローは、上記サイト様のような感じになるということですかね?

ISO 8583に準拠した電子メッセージのIF(インタフェイス)でリクエストの送受信を行うということなのだと思うのですが、ISO 8583に準拠した電子メッセージのIF(インタフェイス)にエンコードした状態で送信し、電子メッセージのIF(インタフェイス)を受信したら、値を取り出して処理するためにデコードする必要があると。

このあたりのパース処理(エンコード、デコード)を扱うライブラリが無い場合は、

ts0818.hatenablog.com

⇧ 前回の記事で、ネット上の情報にあった、Go言語での開発例のように、自前でパース処理を実装する必要があると。

まぁ、結局のところ、ISO 8583に準拠した電子メッセージのIF(インタフェイス)の仕様書が無いと、IF(インタフェイス)を作りようが無いですし、どのフィールドに対してどういったパース処理をすれば良いのか分からんものな...

毎度モヤモヤ感が半端ない...

今回はこのへんで。