...

講義受講者支援機能を持つ学科内向けSNS の構築

by user

on
Category: Documents
6

views

Report

Comments

Transcript

講義受講者支援機能を持つ学科内向けSNS の構築
Nara Women's University Digital Information Repository
Title
講義受講者支援機能を持つ学科内向けSNS の構築
Author(s)
西岡, 弘明
Citation
西岡弘明 : 人間文化研究科年報(奈良女子大学大学院人間文化研究
科), 第27号, pp. 191-202
Issue Date
2012-03-31
Description
URL
http://hdl.handle.net/10935/2975
Textversion
publisher
This document is downloaded at: 2017-03-31T01:34:25Z
http://nwudir.lib.nara-w.ac.jp/dspace
講義受講者支援機能を持つ学科内向け SNS の構築
西 岡 弘 明*
ソーシャル ネットワーキング サービス(SNS と略す)とは,加入時に会員の紹介もしくは一
定の資格要件を満たす必要がある会員制ウェブサイトである。同じ関心を持つ利用者同士が安全
に情報交換できる仮想的社交場として注目されている。
現在,情報科学科内の主要な情報交換手段としてメーリングリストを用いた電子メールの一斉
配信が用いられている。この方法ではサーバ管理者がメーリングリストの作成・変更を行ってい
る為,個人にとって不必要なメールが流れやすいという弊害がある。講義科目や学習テーマごと
の柔軟なグループ形成には不便である。
本研究では管理者の介在をできるだけ減らし学生同士の情報交換をより自然かつ容易に行なえ
る学科内向け SNS を構築する。学科内向け SNS に特化する機能として,講義科目時間割を取り
扱う機能を拡張し,同一科目受講者同士の自然なグループ形成により情報交換の場を提供するこ
とを目標とする。
1 SNS について
会員制のウェブサイトである SNS は共通の話題や趣味などを通じて会員同士が安全に意見交
換できる交流の場(仮想社会)をウェブ上に構築するサービスである。
SNS には,自分の履歴や写真を公開する「プロフィール公開機能」,日記のような日々の個人
記録を公開できる「日記機能」
,互いにメールアドレスを知られる事なく意見をやり取りできる
「メッセージ機能」
,掲示板のような形で趣味や地域などテーマを決めて意見を述べ合う「コミ
ュニティ機能」
,同じ趣味を持つ会員や消息の分からない友人を探す「検索機能」等の多くの機
能が搭載されており,これらは公開範囲を個別に限定することもできる。
公開される個人プロフィールから同じ趣味・話題を持つユーザ同士の「相互のページを繋げる
仕組み」を持ち,新たな人間関係を構築する場としても利用される。
2 他のウェブサービスとの比較
ここでは SNS と類似機能を持つサービスの中からブログと掲示板を選び比較を行う。
ブログ(blog)とは,少人数で運営され頻繁に更新される論評・日記的ウェブサイトの総称で
ある。ブログ作成者はソフトウェアの支援下で専門知識を必要とせずにウェブページを作成でき
コンテンツ案出のみに専念できる。記事や画像の入力等の技術支援がありページの体裁を整えや
すい点は評価されるが,文責やセキュリティに関しては通常のウェブページと差はない。掲載記
事は公開が原則である。対して SNS は会員制で閲覧が会員限定である。日記以外にコミュニテ
*複合現象科学専攻
─ ─
191
ィ機能やメッセージ機能で親交を深める事もできる。読者層が分かっているので専門的表現も可
能で匿名性も低いので悪意ある書き込みも行われにくい。
掲示板は参加者がテーマに沿った意見を交互に投稿する。匿名性が高い為,無意味な投稿や中
傷の問題がある。SNS において掲示板と同じ役割を持つものにコミュニティ機能がある。これ
は話題を共有するグループを作る機能である。コミュニティの中でトピックを作成すれば掲示板
と同じようにテーマに沿って討論する事が可能である。書き込んだ人のプロフィールを確認する
事が可能な為,匿名性が低く悪質な書き込みは少ない。
3 動作環境
3.
1 OpenPNE(おーぷんぴーね)
OpenPNE ⑵⑶⑺は SNS 構築専用のオープンソースプログラムである。OpenPNE はパソコンや
携帯端末から閲覧・操作等の機能をブラウザ画面から操作できる。また SNS 管理もウェブ上の
専用管理画面から行え,画面デザイン変更や各種カスタマイズも容易である。
3.
2 Apache
ウェブサーバとはパソコン等のウェブブラウザからウェブページの閲覧要求があった時,その
内容を返すシステムの事である。Apache ⑴⑹は処理の高速性と信頼性を兼ね備えたウェブサーバ
として世界中で使用されているオープンソースソフトウェアである。
3.
3 PHP , Smarty
PHP ⑷⑼(PHP:Hypertext Preprocessor)は Rasmus Lerdorf によって生み出されたスクリプ
ト言語である。ウェブページを記述する HTML に直接埋め込み可能でサーバサイドアプリケー
ション(ウェブサーバ側で動作するアプリケーション)として実行され動的にウェブページを作
成する。Smarty ⑾は主に PHP アプリケーションで利用できるテンプレートエンジンであり,こ
れによりプログラム部分と画面デザイン部分を分離作成する事が可能となる。OpenPNE パッケ
ージの中には Smarty が外部ライブラリとして含まれる。
3.
4 MySQL , phpMyAdmin
MySQL ⑸⑻は,オープンソースのリレーショナルデータベース管理システムである。ネット
経由でもデータ検索や更新命令を高速に処理できる。phpMyAdmin ⑽はネット経由での MySQL
管理ツールでブラウザ画面から MySQL の各種操作が可能である。
4 OpenPNE の内部構造
4.
1 MVC モデル
OpenPNE は MVC モデル(Model-View-Controller model)という概念を基に作られており,次
の利点を持つ。
⑴ スクリプトの内容をモデル(演算)・ビュー(表示)・コントローラ(制御)という3処理
に分割する事で,1スクリプト当りに必要な情報や技術が大幅に絞られる。これにより,
個々のスクリプトに対して最適化やセキュリティ対策を十分に行える。
⑵ バグの原因特定や修正が容易になる。バグが発生した場合,テンプレートやスクリプトな
ど問題箇所のみを修正すればよいので効率が格段に上がる。
─ ─
192
(3)
表示修正するのはビューのみでよく,閲覧手法に応じて表示切り替えが自動でできる。
図1 OpenPNE の処理の流れ(MVC モデル)
4.
2 OpenPNE の処理の詳細
図2 OpenPNE における処理の流れと主要ファイル群
─ ─
193
OpenPNE は,index.php フ ァ イ ル を 基 点 と し て 全 て の プ ロ グ ラ ム が 起 動 さ れ る。SNS
の URL に ア ク セ ス す る と, 最 初 に index.php が 参 照 さ れ る( ① )。index.php フ ァ イ ル に
は config.inc.php と init.inc を呼び出すように書かれている(②,③)。 config.inc.php では
config.php の場所を確認し,config.php を呼び出す(④)。config.php は使用データベースやパ
スワードなど,SNS を立ち上げ時に設定値を読むファイルである。 init.inc では認証系のラ
イブラリや Smarty ライブラリ,データベース操作ライブラリなどの外部のライブラリを読み
込み,初期化を行う(⑤)
。その後データを controller.php に渡す(⑥)。controller.php は情
報を読み込んだ後,実際の処理を行うファイルである。 実際のページを表示する際にはまず
「page 系 PHP ファイル」が呼び出される(⑦)。page 系とは,データベースから情報を読み
込みページを表示する為の PHP ファイルの総称である。page 系 PHP ファイルで読み込んだ
情報は template ファイルに渡され画面生成を行う(⑧)。OpenPNE ではテンプレートエンジ
ンに Smarty が使用されている為,Smarty が情報を読み込み,テンプレートファイルをレン
ダリングする事になる。一方,フォーム処理等を実行した時に呼び出されるファイルを「do
系 PHP ファイル」と呼び,データベースに書き込む処理を主に取り扱う(⑨)。
5 システムの改良点
本研究では OpenPNE で構築される SNS に以下のような機能拡張を行った。まず,作成・変
更したデータベースのテーブルを示し,その後データベースに関わる関数を集めた PHP ファイ
ルの説明をする。そして拡張した管理者側,ユーザ側での機能について説明する。
5.
1 データベース
OpenPNE に新たなテーブルとして,講義が行われる曜日・時間についての c_lessons テー
ブル,各講義科目の情報に関する c_lessons_option テーブル,各ユーザの受講情報に関する
c_member_lessons テーブルを追加する。また,最初から存在するコミュニティに関する c_
commu テーブルやコミュニティのメンバー参加状況に関する c_commu_member テーブルに新
たな列(カラム)を追加する。以下は,それぞれの列名とその内容である。
・ c_lessons(c_lessons_id,name,caption,sort_order)
①開講時間 ID ②識別名 ③曜日 時間 ④並び順
・ c_lessons_option(c_lessons_option_id,c_lessons_id,value,lessons_term,sort_order,
①講義科目 ID
②開講時間 ID ③講義名 ④学期 ⑤並び順
teacher,class,nolecture,nolecture_time_m,nolecture_time_d,changeclass,
⑥担当教官⑦教室 ⑧休講有無 ⑨休講日時(月)⑩休講日時(日)⑪教室変更有無
changed_class,indication)
⑫変更後教室名 ⑬表示
・ c_member_lessons(c_member_id,mon_1, 〜 , fri_5)
①ユーザ ID
②曜日・時間(例:mon_1→月曜1コマを指す)
・ c_commu(c_commu_id,name,c_member_id_admin,c_member_id_sub_admin,
─ ─
194
①コミュニティID ②コミュニティ名 ③管理人 ④副管理人ユーザ ID
topic_authority,info,c_commu_category,r_datetime,r_date,image_filename,
⑤トピック作成権限 ⑥説明文 ⑦カテゴリーID ⑧作成時 ⑨作成日⑩コミュニティ画像
public_flag,is_send_join_mail,is_regist_join,u_datetime,c_lessons_commu)
⑪参加条件 ⑫メール設定 ⑬強制参加の設定 ⑭最終更新日時 ⑮講義科目
公開範囲 メンバー参加時のお知らせ コミュニティID
講義科目コミュニティを管理画面で作成する為に⑮を追加した。また通常のコミュニティと講
義科目コミュニティとを区別する為に初期値を0とし,通常のコミュニティ作成時には⑮は初期
値を,講義科目のコミュニティを作成する場合は⑮に講義科目 ID を入力する。
・ c_commu_member(c_commu_member_id,c_cmember_id,c_commu_id,r_datetime,
①コミュニティメンバーID ②ユーザ ID ③コミュニティID ④参加日時
is_receive_mail,is_receive_mail_pc,is_receive_message,lessons)
⑤メール設定
⑥メール設定 ⑦コミュニティ管理者 ⑧自動参加の判定
(携帯端末) (PC)
からのメッセージ設定
本研究では受講登録した講義科目のコミュニティに自動的に参加させる機能を追加する為,他
のコミュニティと区別する為に⑧を追加した。これにより,受講登録をやり直した場合には,変
更前の講義科目に関するコミュニティから自動的に削除される。
5.
2 関数
講義科目情報のデータベースへの読み出し/書き込みといった SQL のやり取りを行う為の関
数を新規作成した。作成した関数を集めた PHP ファイルを OpenPNE 起動処理時にライブラリ
として読み込まれるようにした。
5.
2.
1 db_lessons.php について
これは管理者画面でのみ呼び出される講義科目に関する関数を集めたファイルである。
関数名
機能
① db_admin_delete_c_lessons_option
講義科目の削除を行う
② db_admin_insert_c_lessons_option
講義科目の追加を行う
③ db_admin_update_c_lessons_option
講義科目の更新を行う
④ db_admin_c_lessons_commu
コミュニティの生成を行う
─ ─
195
5.
2.
2 lessons_db.php について
これは主にユーザページで呼び出される講義科目に関する関数を集めたファイルである。
関数名
機能
⑤ db_member_c_lessons_list4null
曜日・時間の情報を返す
⑥ db_member_c_lessons_option_list
同曜日・時間の講義科目情報を返す
4c_lessons_id
⑦ db_member_c_lessons_list
全ての講義科目の情報を返す
⑧ db_member_c_lessons_list
ユーザの受講情報を返す
4curriculum4null
⑨ db_member_c_lessons_option4value
講義科目の情報を返す
⑩ db_member_c_lessons_list4curriculum
ユーザの受講情報を返す
⑪ db_member_c_lessons_list4config
同曜日・時間の講義科目情報を返す
⑫ db_member_lessons_commu4new
講義科目コミュニティ参加の削除を行う
⑬ db_member_lessons_commu
講義科目コミュニティへの自動参加を行う
⑭ db_member_config_lessons4null
受講情報の初期化を行う
⑮ db_member_config_lessons
受講情報の更新を行う
⑯ db_lessons_detail
講義の詳細を格納した配列を返す
5.
3 管理者側 拡張機能
管理者画面の「SNS 設定」に「授業項目設定」を追加した。これにより SNS 管理者が講義デ
ータをウェブ上で操作できる。これらのファイルは全て admin フォルダに存在する。
● (templates)inc_header.tpl
管理画面共通の上部表示のテンプレートファイルである。このナビゲーションに講義科目を変
更するページへのリンクを追加した。
● (templates)inc_subnavi_adminSNSConfig.tpl
「SNS 設定」のサブナビゲーションにあたる部分の共通テンプレートファイルである。
● (page)edit_c_lessons.php
講義科目の追加・更新・削除を行うページを表示させる為の PHP ファイルである。
図3 講義科目変更ページへのリンクの追加
図4 講義科目変更ページへのリンクの追加
─ ─
196
● (templates)edit_c_lessons.tpl
講義科目変更ページを表示させる為のテンプレートファイルである。
図5 講義科目変更ページ選択 配列から読み取った曜日・時間の情報を使いテーブルに値を入れ表示させた。次に講義科目選
択肢一覧を表示する。
図6 講義科目選択肢一覧の表示
● (do)update_c_lessons_option.php
操作の「変更」を選択した時に処理されるファイルである。
● (validate/do)update_c_lessons_option.ini
─ ─
197
do 系 update_c_lessons_option.php の validate ファイルである。
● (do)delete_c_lessons_option.php
操作の「削除」を選択した時に処理されるファイルである。
● (validate/do)delete_c_lessons_option.ini
do 系 delete_c_lessons_option.php の validate ファイルである。
● (do)insert_c_lessons_option.php
操作の「追加」を選択した時に処理されるファイルである。
● (validate/do)insert_c_lessons_option.ini
do 系 insert_c_lessons_option.php の validate ファイルである。
● (do)c_lessons_commu.php
操作の「コミュ」を選択した時に処理が行われるファイルである。
● (validate/do)c_lessons_commu.ini
do 系 c_lessons_commu.php の validate ファイルである。
5.
4 ユーザ側 拡張機能
モジュールが PC 時のユーザの機能に時間割表示を追加した。入力済みの講義科目情報に基づ
き,ユーザがメニュー選択した講義科目を時間割として表示させるものである。
● (templates)h_home.tpl
ログイン直後のページのテンプレートファイルである。
● (templates)c_home.tpl
コミュニティのトップページを表示するテンプレートファイルである。
図7 ログイン直後の SNS トップ画面(コミュニティ等を選択できる画面)
─ ─
198
通常のコミュニティではユーザがコミュニティに不参加だとページ上部の点線で囲んだ部分に
「コミュニティに参加しますか?」と表示され参加が促されるが(図8),講義科目コミュニティ
に関しては受講者のみの参加としたいのでこの表示をしない(図9)。 図8 通常のコミュニティ画面
図9 講義科目コミュニティ画面
● (page)h_lessons.php
時間割ページを表示する為の PHP ファイルである。
● (page)h_config_lessons.php
時間割の設定を行うページを表示する為の PHP ファイルである。
● (templates)h_config_lessons.tpl
時間割の設定を行うページを表示させる為のテンプレートファイルである。
● (do)h_config_lessons.php
時間割の設定を行うページで「登録」を選択した時に処理が行われるファイルである。
─ ─
199
● (page)h_lessons_detail.php
講義科目の詳細を表示する為の PHP ファイルである。
● (templates)h_lessons_detail.tpl
講義科目の詳細を表示する為のテンプレートファイルである。
図10 時間割と科目ごとの最新情報の表示
図11 時間割上での科目名選択(時間割設定画面)
図12 講義科目の詳細情報の表示画面
5.
5 その他
● xhtml_style.php
OpenPNE 全体に適用される統一ページデザインのスタイルシートである。
6 まとめ
⑴ SNS の機能拡張により講義時間割作成機能を追加することができた。
⑵ 各人の講義時間割データを基に講義受講者のコミュニティを形成できることを示した。
⑶ 少人数での動作試験はできたが,学科全体でのシステム採用に至っていない為,多人数で運
用した場合に生ずる問題点については試験出来ないものも若干残った。
7 今後の課題
SNS の運用による評価からは次のような点が今後の課題として挙げられる。
⑴ SNS への新機能追加作業の前に必要な OpenPNE の内部構造解析やモジュール間のデータ
─ ─
200
受け渡し方法の把握に想定以上に多くの時間を必要とした。
⑵ 情報科学科の講義を受講している他学科の学生の SNS 参加をどのように行うかが問題とな
る。セキュリティ対策にメールアドレスに制限をかける方法(学科内メールアドレスに登録
限定)を採用すると他学科学生の登録が難しく,今後別の方法を検討したい。
⑶ ユーザが入力した全情報を SNS 管理者に監視される為に登録をしないという懸念がある。
日記機能などコミュニティ形成と関係の無いデータは暗号化する事で対処できる。
⑷ 今後,履修登録支援システム⑿との連携ができれば履修単位計算や履修科目の選択に関する
アドバイスが得られるので利点が多い。
謝辞
システム設計等で協力頂いた情報科学科卒業生の隅田夕紀氏に深謝する。
参考文献
⑴ Apache 辞典,翔泳社,松本光春著
⑵ OpenPNE による SNS サイトの構築,秀和システム,荒木祐二他著
⑶ OpenPNE カスタマイズによる SNS サイトの構築と運営 , 秀和システム , 荒木裕二他著
⑷ やさしい PHP,ソフトバンク クリエイティブ,高橋麻奈著
⑸ MySQL 徹底入門,翔泳社,日本 MySQL ユーザ会著
⑹ Apache 公式サイト,http://www.apache.jp/ ⑺ OpenPNE 公式サイト,http://www.openpne.jp/
⑻ MySQL 公式サイト,http://www.mysql.com/ ⑼ PHP 公式サイト,http://www.php.gr.jp/
⑽ pspMyAdmin 公式サイト,http://www.phpmyadmin.net/
⑾ Smarty 公式サイト,http://www.smarty.net/
⑿ 大学における履修登録支援システムの構築,西岡弘明,大学情報システム環境研究 ,
14号,pp.87-97,2011年6月
─ ─
201
Construction of SNS system for information department
with a lecture participant support function
Hiroaki Nishioka
The Division of Information and Computer Sciences
Social Networking Service (SNS) is a very powerful computer tool for generating new
Communities.
OpenPNE is a tool to generate optimal user-defined SNS system.
We construct Nara Women's University SNS system for students by OpenPNE.
Our system generates virtual SNS Communities for study automatically by using personal lecture
timetable information.
The SNS system will assist group study for students with same interest.
─ ─
202
Fly UP