わさっきhb

大学(教育研究)とか ,親馬鹿とか,和歌山とか,とか,とか.

情報を隠すこと

「先週と,今週の,主な実施内容は,『データベースアクセスを含むWebアプリケーションを作成すること』です.
 サンプルプログラムと,SQLiteのデータベースファイルを活用して,完成させてください.
 もう一つ,『利用ニーズに応じて適切に情報を隠すこと』というのも,配慮し,作成するプログラムコードに,うまく取り入れてください.
 何を隠すかですが…
 先週の課題で,データベース管理者向けのWebアプリケーションの作成をしてもらいました.
 そのときに,隠す必要があったのは,『SQL』です.
 データベース管理者が,SQL文を書くことなく,ブラウザ上で,データベースの登録内容を把握したり,少し変更したりしたい…といったニーズに応えるよう,開発すればよかったのです.
 今週の主な課題は,ショッピングサービスの利用客を想定した,商品検索などのWebアプリケーション開発です.
 そこでは,利用客から,『データベースそのもの』を隠すことになります.
 運営の詳細を知ることなく,ブラウザ上で,商品を見比べ購入したい…というのを実現しましょう.
 ところで,この科目から離れまして,みなさんはいろいろな機会に『情報を隠すこと』を学んできたはずです.ここで三つ,情報を隠す事例を紹介します.
 まず,Javaなどの『オブジェクト指向におけるカプセル化』というのは,『情報隠蔽』とも呼ばれ,まさに『情報を隠すこと』です.
 2番目は,OSI参照モデル7階層や,TCP/IPの4階層といった,『通信機能の階層モデル』です.それぞれの層においては,他の層を知る必要がない,という点で,これも『情報を隠すこと』なのです.
 3番目は,1年前期の情報処理科目,プレゼンテーションスライド作成のところです.右クリックを使用して,スライド上の要素や,スライドそのものを削除する方法を解説した中に,『何を話すか・見せるかと同じくらい,何を話さないか・見せないかを決めるのは,重要な作業です』と,書いていたのでした.
 さて,我々が,『情報を隠すことを意識すること』の効果は,どのようなものでしょうか.
 これについては,『誰に,何を知らせればよいかを,明確にすることができる』というのが,効果の一番目となるでしょう.
 ここで,『誰』は人物だけでなく,実行中のプロセスや,(オブジェクト指向の)インスタンスなどのこともあります.
 効果の二番目は,『対象の詳細を理解できる』ということです.
 より正確には,『対象の詳細を,理解しないといけない』のです.
 まず,重要項目を提示し,要求に応じて,詳細を伝える,といった情報送信も,有用となります.
 情報を隠すことを,意識しながら,『プログラミング』,テストやレポートの答案を含む『文書作成』,それと『対人コミュニケーション』に,役立ててください」

なにこれ

 昨日の授業のために5枚のスライドを作ってナレーションを行い,動画にしました.スライドおよび動画の公開は差し控えます.
 作成のきっかけは,先週の授業と今週の授業の間に,Teamsのチャットで,ある学生から,「何を(コーディング)すればよいかは分かったが,2週間にわたって何を(活動)すればよいのかが分からない」という趣旨の問い合わせがあったことです.
 一読して,HOWとWHATは理解したがWHYを把握できていないと判断し,「データベースアクセスを含むWebアプリケーションを作成すること」「ニーズに応じて情報を隠すこと」「管理者にはSQLを,一般客にはデータベースを隠す(その上で適切に動くWebアプリケーションを授業の範囲内で開発する)こと」を,返答しました.
 このやりとりを膨らませ,履修者向けの視聴コンテンツにした次第です.
 「カプセル化」「階層モデル」に関しては以下の情報を参考にしました.

 なお,管理者と利用客の違いですが,管理者向けのデータベースアクセスでは,データベースのテーブル名やカラム名は既知とし,問い合わせフォームで参照可能*1と指示していました.
 それに対し,利用客から,データベースのテーブル名やカラム名が見えてしまうのは不自然です.見せないように指示しました.SQLiteを用いたデータベースの参照は,すべてサーバサイドで行われ,JSPの<% ... %>で記述すれば,利用客を想定したWebページのソースに,表示されることはありません.
 …と思っていたら,サンプルプログラムを動かしたとき,デバッグ行として,入力パラメータや実行するSQL文が表示されますが,これは消去した方がいいですかという質問が,Teamsの投稿にありました.もちろんですと,回答しました.

*1:例えば,SELECT文を実行するためのフォームで,テーブル名やカラム名を,ドロップダウンリストから選ぶのは,管理者向けにはOK,利用客向けにはNGです.