遠江総合高等学校:オープンデータとWebアプリケーション

「オープンデータとWebアプリケーション」
静岡理工科大学 情報学部 コンピュータシステム学科
幸谷 智紀(こうや とものり)

0.【宣伝】静岡理工科大学情報学部について
静岡理工科大学情報学部のWebページ

1.オープンデータとは?
「オープンデータ(Open Data)」とは,誰でも閲覧できる状態で広く公開されているデータのことです。今の時代はデータを扱う主体はコンピューターですので,オープンデータと言っても紙媒体ではなく,電子化されているもの,即ち,コンピューターが直接読み書きできるファイルの形式になっているものを指すことが殆どです。
電子化されたデータは,コンピューター同士が繋がっているインターネット(The Internet)の上でやり取りしやすい形式ですので,公開するにしても,インターネット上で誰しも読める状態になっている方が,読む方としても都合が良いわけです。インターネットでは様々なサービスが展開されていますが,現在ではWeb(World Wide Web)を通じたサービスが普通になっていますので,オープンデータもWeb上で,つまり,データを持っている会社,行政組織,個人,各種団体のWebページ(ホームページ)上に置き,誰でもブラウザを通じて読むことができるようにしています。こうしたオープンデータを活用したWeb上のサービス,いわゆるWebアプリケーションが様々な形で展開されています。

以下,オープンデータとは,Web上で誰でもブラウザから閲覧できるようになっている電子ファイル状態のデータである,と定義します。最近では,行政機関が積極的にデータを公開するようになっています。静岡県も積極的にオープンデータの活用を後押ししていますし,静岡県内の市,静岡市,浜松市では下記のところでオープンデータにアクセスできるようになっています。

オープンデータは,単なる公開情報という存在を超えるものです。コンピューターで利用しやすいファイルの形式になっているということは,そのままソフトウェアで加工できることになります。これをうまく活用することで,より便利なWebアプリケーションを作ることができます。

2.オープンデータをどのように活用するか?
ここでは,簡単なオープンデータの活用方法を具体例で示します。

皆さんは,「国民の祝日」,例えば正月,成人の日,建国記念日,春分の日,がどこでどのように決まっているか,ご存知ですか? 検索すればすぐに分かりますが,これは政府が法律に基づいて決めているもので,内閣府に解説ページがあります。ただ,これは情報を人間に見やすく表示しているだけで,余り使い勝手の良いものではありません。そこで,近年の国民の祝日を表計算ソフトで扱いやすい形式で公開しています。これが国民の祝日のオープンデータです。この形式であれば,表計算ソフトだけでなく,様々なソフトウェアに利用することができるようになります。例えば,下記の図は,FullcalendarというJavaScriptで構築されたスケジュール帳に,国民の祝日を上のURLからファイルを読み取り,自動的に挿入したものです(サンプル)。

但し,これはあまり使い勝手の良いものではありません。元々の国民の祝日ファイルは,単なるテキストファイルなので,データそのものを使いやすい形で形成し,流し込む処理が必要になります。例えば,上記のFullcalendarに取り込むためには,次のようなPHPスクリプト(プログラム)の手助けが必要です。

このように,直接データを取得して自動的に加工できるようになると,人間を介しての作業が不要になります。

オープンデータの利用のためには,もう少し,利用者の立場に立って,使い勝手の良い形式で必要な分量のデータを受け取れるようにする必要があります。最悪な形式は,いわゆる「ネ申Excel(三重大学・奥村晴彦)」と呼ばれる,書類をそのまま表計算ソフトウェアで成形しただけのシロモノで,人間が手作業でチェックするには便利かもしれませんが,コンピューターにとっては最も加工の難しいものです。オープンデータは人間よりも,コンピューターにとって使い勝手の良いシンプルな形式であることが望まれます。

しかし,もっと使い勝手の良いオープンデータは,情報を加工したい側が欲しいデータだけをいつでも取得できるようになっているものです。そのためには,上記のFullcalendarに祝日データを渡すプログラムのように,オープンデータと利用者の間で仲介し,利用者の要求に応じた返答を返すような仕組みを作らなくてはなりません。これを実現しているのが,Web API (Application Programming Interface)と呼ばれるものです。

3.Web APIの実例
最も良く知られたweb APIは,GoogleやYahoo! Japan,Bingといった検索エンジンです。

どの検索エンジンも,URLの中に検索すべき単語を埋め込んであります。例えばGoogleの場合は

https://www.google.co.jp/#q=遠江総合高等学校

となっています。このように,ブラウザからアクセスする際に,利用者が欲しいデータの範囲(この場合は「遠江総合高等学校」を含むWebページの一覧)を指定することで,必要のないデータまで取り込むことがなくなります。

現在では様々なデータを,Web APIを通じて取り込むことができるようになっています。Google map(地図情報)やぐるなび(グルメ情報)なども,細かくデータを指定して取り込むことができるようになっています。

その他,下記のようなWeb APIもあります。

4.openBDを基盤とする書誌データの活用
オープンデータとWeb API活用の事例として,現在本研究室で取り組んでいるopenBDについて紹介します。
2017年初めに広く公開された本のオープンデータ化を進めるプロジェクトで,2017年6月現在では約90万件の本のデータが取得できます。今のところ,本のISBN番号一覧と,ISBN番号に紐づけされた書誌データ(表紙画像も含む)を取得できるWeb APIが提供されており,基本的にはユーザーがダウンロードして使用する全データを提供することを主目的としています。
本研究室でも,簡単なWebのインターフェースを提供しています。

openBD API

本一冊一冊ごとに異なるISBN番号が振られており,それが分かればその本のデータだけを入手することが可能です。しかし,普通本を買うときにISBN番号で指定することはありません。普通は,本のタイトル,著者名,出版社名,定価等で探すものです。

それを可能にするため,本研究室では全件検索ができるような仕組みを作り,公開しています。使い勝手はまだ改良の余地がありますが,これも改良されたopenBDのWeb API化の一つと言える仕事になっています。

5.おわりに
インターネットが当たり前になった今では,様々なデータを自由に取得でき,もっと便利に使うためのWeb APIの利用が盛んになっています。今後は,これらのオープンデータやWeb APIを通じてより高度なデータ解析を自動的に,例えばAIを使って行うことが普通になっていきます。
人間の側はもっと賢く,これらのオープンデータやWeb API,そしてその分析結果を使って高度な知を使いこなしていくことになります。プログラミングを行うだけでなく,それをより良い方向に生かす技術を,今後の大学生活で身につけて下さい。

[卒研メモ] DPZとconcrete5

 愛読している老舗オモシロ系Webサイト,デイリーポータルZ(略称:DPZ)がリニューアルしました。@niftyが富士通から切り離されても存続し,その後ほどなく,サイト,というより,編集部員ごと切り売りされるというあたり,信用されているブランドの強みを感じさせます。

 とはいえ,「老舗」ならではの弱みというものもあります。システム的に古いものを継続してメンテナンスしていかねばならず,HTML & CSSの改良だけで済むならデザイナーに発注すれば済む話ですが,CMSと一体化したサイトとなると,バックエンドのDB構造から考え直さないとリニューアルもままならないことになります。現状のWordPress, MovableType, NetCommonsといった,バージョンアップが頻繁な(NetCommonsはイマイチですが)CMSなら,ほぼ自動的にアップデートできますが,DPZは@nifty時代に作った独自のCMSで動いていたらしく,長らくリニューアルができずにいたようです。

 今回のDPZのリニューアルで使ったのはconcrete5という,割と新顔のCMSで,私もその存在を知りませんでした。ちょろっと検索して見た限りでは,PHP+MySQL環境で動作する,プログラミングいらずでWYSIWYGカスタマイズできることがウリのようです。とはいえ,少し複雑なことをしようとすると有償のプラグインが必要になるところは,逆にビジネス的にも有用なのかなという安心感も与えてくれますね。

 本研究室の卒研はWebプログラミングですが,この手のCMSで有用なコンセプトを持った独自サイトを構築するというテーマでもO.K.です。できればプラグインを自作するところまで到達してほしいものですが,どこまで標準的な機能だけで構築できて,どこから先は独自プラグインが必要になるのかという見極めぐらいはつけて頂きたく,卒研テーマ設定の際はこの点を考えておいて下さい。

PHP 5.6 security update終了

 WordPress用のセキュリティプラグインを提供しているWordfenceから,PHP 5.6セキュリティアップデート終了のアナウンスがありました。

 記事によれば,PHPの最新バージョンは7.2で,7.0のアップデートもあと一月で終了とのこと。一つのバージョン(Version x.x相当)につき3年のスパンでサポートしており,最初の2年が過ぎるとセキュリティアップデートのみ1年行ってサポート完全終了,という流れだそうです。

 で,慌てて自分の管理サーバも見ましたが,このblogのあるサーバはPHP 5.4という更に古い奴を使っており,もう一つの方も7.0系統でした。どちらもLinux distributionサイトからのアップデートが出ていないので,すぐにセキュリティの危機になるわけじゃありませんが,OSごとアップグレードしてやろうかという気分になってきましたが,そうなると,次のような手順でやりたいものです。

  1. バックアップ用のサーバを一台用意し,そちらを更新時の新しいOS環境にセッティングする
  2. 古いファイルを丸ごとバックアップ用サーバに移し,コンテンツがきちんと動くことを確認(特にWeb, MySQLサーバ)する。その後,現サーバマシンのDNS情報をバックアップ用サーバに書き換えておく
  3. 現サーバマシンに新しいOS環境を構築し,バックアップ用サーバからコンテンツを書き戻す
  4. きちんと動作することを確認したら,DNS情報を現サーバマシンに書き換え。

 現マシンのOS環境を毎書き換えるには時間がかかります(数時間程度)し,スッピンのOS環境を無法The Internet空間にさらし者にするのは避けるべきです。また,新しいOS環境構築の練習としてバックアップ用サーバを構築するのは役立ちます。使い終わったバックアップ用サーバの転用も考えていますので,初期投資として無駄になることはないでしょう。ちなみに,サーバ構築手順の解説は「ネコでもわかる!さくらのVPS講座」がお勧めです。

 ということで,来年3月ぐらいにはバックアップ用サーバを契約し,新年度に入る前にさっさと移行しようと計画しています。ま,見かけは変わらないでしょうが,本サーバの説明書きは大幅に変わりそうです。

Update or perish

 先週の「数値解析2」で,実習環境で使っているLinuxサーバのSamba(ネットワーク共有フォルダを提供するサーバソフト)に接続できない(「\\サーバIPアドレスが見つかりません」というエラーが出る)という現象が一部の受講生に出ました。不思議なのは,私やもう一人の受講生は普通に接続できること。接続できるグループとできないグループに分かれたことで,その時間内にはトラブルが解決できませんでした。TCP/IP接続には問題がないことは,Ping応答やTeraTerm接続ができることで確認済みです。

 後であれこれ検索してみたところ,実習用Linuxサーバの設定が古く(6年前に設定したまま放置状態),Windows 10 1709で無効化されたSMB 1.0プロトコルしか使えない状態になっていることが判明しました。Microsoftに言わせれば


SMBv1 のみをサポートする製品でこの問題を回避するには、製品の製造元に連絡し、SMBv2.02 以降のバージョンをサポートするソフトウェアまたはファームウェアの更新プログラムを依頼してください。

https://support.microsoft.com/ja-jp/help/4034314/smbv1-is-not-installed-by-default-in-windows

だそうで,ぐうの音も出ない正論です。

 ということで,Sambaの設定(/etc/samba/smb.conf)に”max protocol = SMB2″を追記して,SMB2接続ができるように変更しました。これで受講生全員が接続できるようになって一安心です。実際,PowerShellの管理者モードでGet-SmbConnectionコマンドを使うとSMB 2.0.2で接続されていることが確認できます。

PowerShellでSMBバージョンを確認

 古くからSambaやNASを使っていたり,Windows 8以下から10にアップデートしたマシンはSMB 1.0が最初から有効になっているので,問題なく接続できたのはそれが理由でしょう。あるいはWindows Updateをサボっているか,です。

 ICT技術はすさまじい勢いで進化しており,セキュリティ確保のための基盤ソフトウェアやネットワークの更新も頻繁に行われます。更新に伴う不都合が起きた時には,古い環境をそのまま維持するのではなく,Microsoftが主張するように,新しい環境に適応していく方向でトラブル対処を行うようにしましょう。”Update or perish”(アップデートせよ,できなきゃ滅びよ)はICTの世界で生きていく技術者が肝に銘じておくべき格言です。

突然の停電

 台風24号の強風により,中部電力管内,特に静岡県西部地方の送電網が至る所で寸断され,早期の復旧作業のままならない状況に陥りました。本学もそれに巻き込まれてしまい,昨日は丸一日電気が来ず,全学休講にせざるを得なくなりました。幸い本日は朝8時から無事電力を回復し,正常業務に戻ることができましたが,復旧作業のため,本日も休講と相成りました。明日からようやく平常に戻ることができます。

中部電力提供の停電状況(2018年10月2日15時現在)
http://teiden.chuden.jp/p/sizuoka.html

 本学内のネットワークは切り替えたばかりでしたが,電力の回復と同時に無線も有線も平常通り使用することができるようになりました。また,メールやWebサーバはデータセンターOffice365外部クラウドでの運用でしたので,the Internetを通じての伝達手段は本学の電力の有無に関わらず使うことができ,連絡を不自由なく行うことができたのは不幸中の幸いです。まぁこれが普通の組織のICT基盤なんですが。

 本サーバについても何の影響もなく起動し続けています。トラブルは日常的につきもの,いつでも平常業務出来るようにシステムやバックアップ体制を整えておく必要性を痛感した今回の停電騒動でした。

幸谷研究室・情報セミナー2スケジュール2018

2018年度情報セミナー2について

  • 実施日時:水曜2限目,木曜1限目
  • 場所:研究実験棟443実験室
  • 使用ソフトウェア:XAMPP for Windows
  • テキスト:暫定版

初回は443実験室ネットワークの設定,XAMPP for Windowsのインストール,輪講割り当て,連絡係の決定を行います。必ず自分のNote PCを持参して下さい。

卒研メモ:Apache Cordova on iMac


左からAndroid, iOS, browserのCordova実行画面

 学内研究費でiMacを購入したので,早速Apache Cordova開発環境を整備しました。Android, iOS, browserの3つがそろい踏みしているのを見ると感無量(大げさ)。Android StudioのAVDとXcode(macosの開発環境)付属のiOSシミュレータを使って実行しています。

まっさらのiMac

 今のところ,3年生の実験で使用する環境はWindowsメインで続けますが,希望があればiOSの実行も体験してもらえばと考えています。次年度からは実習時間が短くなるので,そんな暇ないかもしれませんが。

 環境整備方法はほぼここにある通りでいいようですが,ビルド時には新しいXcodeの方式ではなく,旧式指定を”cordova emulate ios –buildFlag=”-UseModernBuildSystem=0″のように行う必要があるようです。次のCordovaのバージョンアップで対応するかな?

 あとはボチボチ実験資料の手直しをしながら,結果報告原稿をまとめることにします。

大学内のWiFi環境が整いつつあります

 予定通り,大学内の情報基盤更新作業(主としてネットワーク環境)が進展しています。今日からは教育棟1F~3Fまで,無線LAN(WiFi)が,統一的なID (SIST-ID, Office365メールアドレスの@左側文字列)で使えるようになりました。このBlog記事も,テストを兼ねて201教室,202教室を移動しながら書きました。

202教室からWiFi経由のアクセス

 学生さんが使えるようになるのは9月26日のガイダンス以降になります。接続方法についてはガイダンス時に説明しますので,よく聞いておいて下さい。

 WiFiのAPは各教室の天井に取り付けてある,CISCO Meraki MRシリーズです。どこにあるかは探してみて下さい。情報センターで集中管理していますので,どこで障害が発生したかすぐ検知できるようになっています。

CISCO Meraki MR

 ネットワーク更新後は何かとトラブルが付きまとうものです。いろいろ面倒なこともあるかもしれませんが,使い勝手は前期よりだいぶ良くなるはずなので,末永くお付き合いして下さい。

本サイトは無事です

 以前ご紹介した通り,本サイトはさくらインターネットの石狩リージョンに設置してあるVPSを使用しています。2018年9月6日午前3時ごろに起きた胆振地方の地震による全道停電に,石狩リージョンのデータセンターも巻き込まれましたが,非常用電源に切り替わって正常に運営されているとのこと。また,一部に影響は出たようですが,本サイトが設置してある第一エリアではなく,第二エリアのみだそうです。

 データセンターは非常時に備えてハードウェアのバックアップ体制は整えてあるのが普通です。本サイトについてもそのおかげで無事に運営できており,自前のパソコンでサーバーを動かしていた時代を知るものとしては誠に感慨深いものがあります。

 皆さんも大いにクラウドサービスを利用して,地震の重要なデータは2重,3重のバックアップ体制を取るようにして下さい。

線形代数/演習 単位習得予定者

定期試験平均点:61.0点

1718061
1818002
1818003
1818004
1818006
1818007
1818013
1818014
1818015
1818017
1818018
1818021
1818023
1818024
1818027
1818028
1818029
1818030
1818031
1818033
1818035
1818036
1818038
1818042
1818044
1818045
1818046
1818047
1818048
1818049
1818050
1818051
1818052
1818053
1818059
1818060
1818063
1818067
1818069
1818073
1818074
1818075
1818077
1818081
1818083
1818084
1818086
1818087
1818090
1818091
1818092
1818093
1818099
1818101
1818102
1818103
1818113
1818115
1818118
1818119
1818120
1818123
1818126
1818129
1818132
1818136
1818138
1818141
1818143
1818144
1818146
1818147
1818150
1818152
1818156
1818157
1818159
1818161
1818165
1818167
1818168
1818169
1818170

以上