DevSumi 2020 Summer(2020/7/21, 翔泳社開催)インターシステムズの発表スライドです。
【老舗DBベンダーが毎月開催】Git/コンテナを使ってプログラミングコンテストで腕試しインターシステムズジャパン株式会社飯島美穂子#devsumiA-6
View Slide
21978年からデータベース一筋新しい技術に対応しながら、42年間変わらないコアテクノロジを持つデータベースを開発し続けています。
3
4直近のコンテスト jp.community.intersystems.com/tags/contestコンテスト勝者に賞金あります
5本セッションの目標コンテストでは、参加者にプログラミングを楽しんでいただけるよう 、開発環境のテンプレートとして、コンテナを利用した開発環境作成手順をご提供しています。本セッションでは、このテンプレートがどのように作成されているのかをご覧いただきながら、プログラミングコンテストで腕試し する準備を行っていただきます!• テンプレートは、コンテスト以外の用途でも自由にご利用いただけます。• 実演では、RESTサーバを作成するテンプレートを使用します。
6毎月違うテーマのコンテスト 開催中!InterSystems IRIS Community Edition を利用した4月~12月までのコンテスト開催内容は以下の通りです。• 4月 REST API• 5月 Native API アプリケーション― Native APIとは、Python/Node.js/Java/.NETからキーバリュータイプで操作できるアクセス方法• 6~7月 AI/MLソリューション― IRIS の AutoMLを利用する方法/IRIS から Python を実行できる PythonGateway を利用する方法• 8月 FHIRアプリケーション• 9月 フルスタックアプリケーション― IRISをデータサーバとして任意のフレームワークを利用してWeb/デスクトップ/モバイルUIを作成• 10月 Interoperability(相互運用性)機能のアダプタ作成• 11月 IRISを使用したマルチモデルソリューション• 12月 IRISを使用したInteroperability(相互運用性)ソリューション≪準備その2≫ 4月開催分のRESTサーバ作成用テンプレートを使用し、コンテスト応募までの流れを実演します。 ≪準備その1≫コンテナを利用した開発環境準備の例を図解でご説明します。これからご応募いただけるコンテスト日本からの最初の応募になるかもしれません!
7≪準備その1≫テンプレートで何が提供されるのかプログラミングコンテストでは、アプリケーションの開発に没頭いただけるよう、短時間で簡単に開発環境の準備が行えるコンテナを利用した開発環境テンプレートをご用意しています。≪準備その1≫テンプレートにより「何ができるか」をご確認いただくため、実際のコンテストで利用していたテンプレートを例に、中身について解説します。• 開催するコンテスト毎、テンプレートの内容は異なります。
86~7月開催コンテストテンプレート 提供内容6~7月はAI/MLのソリューションを作る開催月でした。ご応募いただくために最低限、以下の準備が必要です。• 機械学習ができる環境(Python、R など)と使用するライブラリのインストール• データベースに接続するために必要なモジュールの準備• データ提供元となるデータベース(InterSystems IRIS)の準備
9コンテナを使わず最初から自分で全てを用意するのは大変!参加者にコンテストを楽しんでいただくため、具体的なコードの記述から始めていただけるように、便利な開発プロセス(=Gitからテンプレートをダウンロードし docker イメージ pullした後にコンテナ開始)を利用できるように、開発環境テンプレートをご用意しています。
106~7月開催コンテストテンプレート 図解データベース(IRIS)用コンテナDocker hub からInterSystems IRISCommunity Editionのイメージを pullJupyterサーバTensorflow2.2JDBC用Python3ライブラリ(JayDeBeAPI)を含んだコンテナ参加者はブラウザからIRISの管理ツールやJupyter Notebookにアクセスできます。具体的なコード記述はテンプレート内のJupyter Notebook を利用したり、お好みの利用方法を選択したり自由です。テンプレートの提供内容は開発環境の土台のみ(=データベースとその他必要な言語の実行環境/モジュールの準備)
11ご参考:InterSystems IRIS Community Edition イメージdocker pull store/intersystems/iris-community:2020.2.0.211.0docker pull store/intersystems/iris-community-arm64:2020.2.0.211.0docker pull store/intersystems/iris-aa-community:2020.3.0AA.331.0※ 2020年7月14日時点の情報InterSystems で検索してください無料!
12テンプレート起動までの手順(コンテスト共通)1、コンテスト告知ページで情報チェック 2、OpenExchangeでテンプレート情報確認 3、Gitからソースコードダウンロード4、コンテナ起動5、プログラミング、用意、はじめ!
13gitから一式をダウンロードして以下2コマンド実行するだけ!• docker-compose build• docker-compose up –dコンテストの開催内容によりテンプレートの中身は様々ですが起動までの手順は全て共通です。version: '3'services:irisimlsvr:build:context: ./iris-aa-serverimage: iris-aa-server:2020.3AAhostname: irisimlsvrrestart: on-failureports:- 8091:51773 # 51773 is the superserver default port- 8092:52773 # 52773 is the webserver/management portal portvolumes:- ./iris-shared:/sharedtf2jupyter: # tensorflow with jupyterbuild:context: ./tf2-jupyter-jdbcimage: tf2-jupyter-jdbc:1.0.0-iml-templatehostname: tf2jupyterrestart: on-failureports:- 8896:8888 # 8888 is the docker jupyter service port- 6026:6006 # 6006 is the tensorboard portvolumes:- ./jupyter-samples:/tf #shared volumesご参考:docker-compose.yml(6~7月開催分)
14優勝作品のご紹介5月 NativeAPIの会で優勝したブラジルのBanzaiさんの作品• Python Native APIを使用してPythonとIRISを組み合わせ「機械学習チャットボット」を作成されました!― チャットボットで会話したデータを IRIS に格納し、機械学習のトレーニングデータとして利用しています。• さらに、Pythonの便利なグラフ用ライブラリを使用してCOVID19チャートも作成されています。― グラフ用のデータは IRIS に格納しています。コンテストへの応募作品は全てOpenExchangeページで公開されています
15≪準備その2≫ご応募までの実際の流れシンプルなコンテストテンプレート使用してコンテナ開始から、事前に用意されるサンプルコードを利用した実行確認と、コンテスト応募までの流れをご紹介します。• 使用するテンプレートは過去の開催分です。• 時間の関係でソースコードやイメージのダウンロードは事前に済ませています。例では、4月開催のREST APIコンテストで使用したRESTサーバ作成用テンプレートを使用します。• IRISの独自スクリプト(ObjectScript)を使用することでデータが存在する場所でRESTサーバが作成できます!Nativeの言語です
16テンプレートで準備されるRESTサーバ作成環境Docker EngineDocker コンテナInterSystems IRIS Community Editionネームスペース(仮想の作業環境)=IRISAPP(IRISAPPデータベースを使用する設定あり)IRISAPPデータベースSample.PersonRESTディスパッチクラスRESTのベースURL/crud の設定RESTクライアント(Postman)POST要求でSample.Person登録localhost:52773/crud/persons/GET要求でSample.Person全件取得localhost:52773/crud/persons/allテンプレートで準備される内容RESTクライアントはお好みのツールをご利用くださいテーブル(クラス)定義の作成やRESTディスパッチクラスの開発に利用ObjectScriptのExtension追加が必要IDE(VSCode)をご準備ください
17実演内容と応募までの流れ1、コンテナ開始 2、準備完了!4、InterSystems 開発者コミュニティでアカウント作成3、リモートGitにPush5、OpenExchangeに移動しGitにPushしたアプリケーションを登録「Send Approval」ボタンクリック画面リロード後「Apply for Contest」ボタンクリック応募完了≪3、から応募の流れ≫
18コンテナを利用することで環境作成が簡単に!コンテナの利用により、データベースだけでなく必要な開発言語やモジュールを含めた開発環境が簡単に準備できます。コンテストのテンプレートに限らず、よく利用する開発/テスト環境についても、コンテナを再利用することで準備時間が大幅短縮できます。•本当にやりたいことに専念する時間が増えます。コンテストのテンプレートは全て公開しています。• コンテストに限らず、自由にご利用いただけます。• いつものデータベースの1つとして をぜひご利用ください!
19コンテストの情報は?InterSystems 開発者コミュニティで公開しています。jp.community.intersystems.com/tags/contest
20InterSystems 開発者コミュニティ日本語版公開!7月16日に日本語版コミュニティ( jp.community.intersystems.com )を公開しました!コミュニティでは、開発者同士の交流の場として技術的な質問&回答はもちろん、インターシステムズからのイベント情報、技術情報、最新リリース情報をお伝えしていきます!• コンテストの告知もコミュニティで行います!(contestタグ)https://jp.community.intersystems.com/tags/contest• 「はじめての InterSystems IRIS」セルフラーニングシリーズもあります!(beginnerタグ)https://jp.community.intersystems.com/tags/beginner祝・公開
21現在のコミュニティコミュニティ登録者数は2020年6月時点で 7,177名• 英語版、スペイン語版、日本語版で公開中プログラミングコンテストを通して世界の開発者と繋がることができます!コミュニティへのご参加コンテストへのご応募お待ちしております!
ありがとうございました