A 謝辞

 著者が本研究を進めるに当たって、まさに日進月歩と言う言葉がふさわしい情報技術の情報を入手するのに最も役立ったものは、やはり情報技術そのものによるWorld Wide Webであった。そのWWW上において、非常に有益な情報を迅速に(しかも無償で)提供していただいている世界中の技術者たちに感謝を述べる。
 とりわけその中でも、米Sun Microsystems.社・米IBM社・World Wide Web Consortium・Java Apache Project・Apache XML Project、著者自身も所属するJava Conferenceなどには、より大きな感謝を述べさせていただきたい。
 そして、共に甲南大学で学生生活を過ごした友人達、数多くの助力を与えて下さった理学部応用数学科の教授の方々に感謝をする。

B 論文概要

 本論文では教育現場で用いやすい情報システムのモデリングを行い、実際にそのシステムを実装する際に利用することが有効と考えられる技術に関しての解説を行う。教育現場での現状の取り組みの問題点として、システム統一されていない事から利用者にとって必ずしも利用しやすいものではないということや、同様のシステムを様々な場所で開発され能率が悪いと言うことがあげられる。本論文ではこのような問題点に対処するために、拡張性を保ちながら様々な機能を統合できるシステムを提案した。
 第1章では、本論文の目的を示す。実際に用いられているシステムの、学生や講師などの利用者の側から見える問題点を取り上げ、それらを解決する必要性を述べる。
 第2章では、本システムが求められる背景について述べる。教育的側面としては生涯学習の必要性と教師と生徒が積極性を持って教育に関わる事の必要性を、情報技術的側面としてはインターネットの急速な普及と情報技術の発展をとりあげる。
 第3章では、実際にモデリングしたシステムの説明を行う。また本システムでは、システムのモデリングの定石であるデザインパターンの中から一枚札パターンと命令パターンを用いたので、ここでそれらのデザインパターンについても説明を行う。
 第4章では、本システムを実装する際にどのような技術を用いることができるかを示す。それらの技術としてJavaやXMLを取り上げる。
 第5章では、本論文のまとめと今後の課題を述べる。今後の課題としては実際のサービスをどのように行うことが効果的かを調べていく必要性をあげる。
 また付録として、本論文で取り上げたシステムのプログラミング方法の例を解説する。
 以上のように本研究では、教育現場で用いられる情報システムの問題点を解決するようなシステムのモデルを提案し、どのように実装することが有効かを述べる。

C 目次

A. 謝辞
B. 論文概要
C. 目次
D. 図表の一覧
1. 序
2. 背景
 1. 教育的背景
 2. 情報的背景
3. システムのモデリング
 1. 一枚札パターン
 2. 命令パターン
4. システムの実装方法
 1. Java言語
 2. XML
5. 結び
プログラミング方法の例
参考ホームページ
参考文献

D 図表の一覧

  1. システム全体クラス図
  2. システム全体シーケンス図
  3. 命令パターン・クラス図
  4. 命令パターン・シーケンス図
  5. 実装システム全体クラス図

1.序

 今日のインターネットの急激な普及と時を合わせるように、様々な教育現場でコンピュータやインターネットを用いた教育が行われている。しかしながらそう言った試みの多くは実験的な要素も強く、学生や講師にとって必ずしも利用しやすいものではない。そこで本論文では、学生や講師にとって利用しやすい環境を作るためにはどのようなシステムを構築するのがよいのかを考え、そのシステムのモデリングを行う。その後、そのシステムを実際に構築するにはどのような技術を用いることが有効であるかについて考察を行う。
 本学に於ける情報システムを用いた教育環境として、レポート提出システム、それぞれの講師が独自に講義内容をホームページ上に公開しているもの等があげられる。それぞれの取り組みは完全に独立しており、利用する学生にとって必ずしも利用しやすいものではない。著者の経験も含めその問題点をあげるとすると、①科目のホームページ毎のURL(Uniform Resource Locator)をどこかに記録しておかなければせっかく広くインターネットに公開されていても結局講義時間のみしか利用しなくなってしまう事、②レポートシステムなどが科目毎に存在しそのパスワードもそれぞれに覚えておかなければならない事、③科目毎に何度も個人情報を入力し直さなければならない事、④科目毎に別々のシステムを用いているので個々のシステムの使い方を覚えなければならない事、などが考えられる。また講師の側に立って考えてみると、⑤講義内容を公開したりインターネットを用いてレポートを回収するためにシステムの開発から始めなければならないので手間がかかると言う問題もある。他の講師が開発したシステムなどをより簡単に再利用できれば、インターネット上の教育環境はより発展しやすいと考えられる。
 以上のような問題点を解決し、誰にとっても利用しやすいシステムを構築すれば、情報システムを用いた教育環境を学内にとどまらずインターネット上に公開することで、知的なコミュニケーションを広く行うことができ、学生や講師がより広い視野に立って学問に取り組むことができるようになると考えられる。


2.本研究の背景

 ここでは、本論文で考えるようなシステムの構築が求められる教育的背景と情報的背景につい述べる。

2.1.教育的背景

 情報システムを用いた教育環境が求められる教育的背景として、生涯学習社会の必要性と教師と生徒が共に積極性を持つ形の教育の必要性があげられる。
 教育白書[p.228,19]によれば、生涯学習社会とは「人々が、生涯のいつでも、自由に学習機会を選択して学ぶことができ、その成果が適切に評価される」ような社会のことであり、そのような社会の構築が求められる理由として、①学歴社会の弊害の是正、②社会の成熟化に伴う学習需要の拡大、③社会・経済の変化に対応するための学習の必要性があげられている。
 そのような理由から、今日において生涯学習社会の実現のために様々な試みがなされているが、その中で大学等の高等教育機関が、その学術情報を広く公開し社会に役立てる事が要求されている。そのために書籍の出版や公開講座などが行われているが、書籍に関しては専門書が採算がとれるほど部数が売れない上に最新の学術情報を公開するのに出版するのでは時間がかかりすぎるという問題もある。また公開講座に関しては、大学の近所に住む人以外は参加するのが難しいことや時間的に都合がつく人でなければ参加できないという問題がある。そのような状況の中で大学によるインターネットを用いた学術情報の公開を進めることが、生涯学習社会の実現のために大きな意味を持つのではないかと考えられる。
 次の背景として教師から生徒へ一方的に指示する形や生徒の自主性だけに任せる形の教育ではなく、積極的に教師と生徒が共に教育に関与する形の教育が求められている事があげられる。
 妹尾堅一郎[6]によると、情報技術を用いたコミュニケーションが地位の上下に関わらず発言の機会を与えられる可能性を指摘し、「通常の会議では、地位の高い人が発言量の半分以上を占めるのに対して、電子メールによる会議では発言量が相当に平準化される」と言う例があげられている。このようなことから情報システムを用いた教育環境を構築することが、生徒にも教師と同様に教育に関与する機会を与えると考えられる。そのようなことから、教師と生徒が共に積極的に関与する形の教育を実現するために、本論文で提案するようなシステムが有効性を持つことがうかがわれる。

2.2.情報的背景

 情報システムを教育環境に取り入れることが有効であると考えられる背景に、近年のインターネットの急速な普及と情報技術の発展があげられる。
 近年、職場や家庭にインターネット接続環境が急速に普及しているが、教育白書[p.462,19]によると文教分野では「多様な情報への効率的なアクセス、距離や時間という制約を克服したコミュニケーション、さらには双方向での多彩な情報交流などを可能にする情報通信技術の利点を最大限に活用することにより、教育や学習といった人間の知的・創造的活動に飛躍的な広がりがもたらされるものと大いに期待されている」という状況があり、現在急速にその環境が整えられようとしている。
 そのような環境が整備される近い将来にその環境を活用して学習することが予想されるが、そのときに利用しやすい環境を整えるためには、ハードだけではなくソフトの面の整備も求められる。そのために本論文のような教育環境システムの研究開発や学術情報配信の研究開発が必要だと考えられる。
 一方、次の背景に情報技術の発展があり、その中でもWWW(World Wide Web)技術の発展はめざましい。WWWとはネットワークに接続された端末から電子テキストを閲覧するためのシステムであるが、今日では様々なシステムがWWWに統合されつつある。CGI(Common Gateway Interface)やSSI(Server Side Include)と呼ばれる技術を用いてテキストを閲覧するだけでなく、閲覧している側からメッセージを送ったりする事などができるようになったり、データベース管理システムと連携しホームページ上からデータベースを操作することができるようになったりしている。情報管理入門[p48,15]によると、WWW方式によるデータベースシステムの長所として「GUIによるメニュー方式のため、利用しやすい」ことや「検索の基礎知識で利用可」など、誰にでも容易に利用できることが強調されている。このようなことから、情報技術が誰にでも利用しやすい形で発展しており、またそのような利用しやすい形で様々なことが実現されようとしている事がわかる。
 その情報技術を利用し今までにあげたような背景に対応するシステムを構築していくことで、大学が持つ学術情報を誰もが利用しやすい形で提供し、広く学際的なコミュニケーションを行うことができるようになると考えることができる。


3.システムのモデリング

 ここでは本システムの考え方とモデルを示し、その後で本システムで用いたデザインパターンについて説明を行う。
 本システムは背景で述べたような状況に対応するために、さまざまな機能が統合された利用しやすい環境、一方向でなく利用者からも情報を発信できる環境の構築を目指す。さらに、システムの開発者が独自に機能を追加することもできるようにするのが望ましいと考えられる。

 UML(Unified Modeling Language)を用いて表した本システムのモデルのクラス図を図1として、シーケンス図を図2として示す。

integedu-01 図1.システム全体クラス図

integedu-02 図2.システム全体シーケンス図

 このモデルは、顧客クラス・ユーザ管理クラス・学科管理クラス・抽象命令クラス・具象命令クラス・受け手クラスからなる。ここでクラスとはオブジェクトの鋳型となるものであり、オブジェクトとはそのシステムに必要な情報と操作をまとめたものである。あるクラスに対するオブジェクトをインスタンスという。

それぞれのクラスを以下のように定義する。

顧客クラス:サービスを利用する学生や講師など
ユーザ管理クラス:学生や教員を管理する部分
学科管理クラス:科目を管理する部分
抽象命令クラス:全サービスに共通する情報と操作をまとめたもの
具象命令クラス:抽象命令クラスの機能を継承し具体的なサービスを提供する部分
受け手クラス:サービスの受け手(通常、顧客クラスと同じ学生や講師)
 顧客クラスのインスタンスは複数の学生や講師が共用するので、誰がサービスを要求しようとしているのかを識別できない。そこでこのクラスのインスタンスは、ユーザ管理クラスのインスタンスにパスワードなどを用いて認証を受ける。そして認証を受けたユーザの要求した具象命令クラスのインスタンスを生成し実行する。ここで認証を受けていないユーザの命令は実行されない。
 ユーザ管理クラスのインスタンスは一つしか生成されない。そのようにすることで、ユーザ情報の不整合などを回避する。このクラスのインスタンスは、顧客クラスのインスタンスからの認証要求に応えることや、具象命令クラスのインスタンスからの個人情報の要求に答える。
 学科管理クラスのインスタンスは、顧客クラスのインスタンスからの学科リストや学科に応じた具象命令のリスト等の要求に応じる。顧客クラスのインスタンスは、学科管理クラスから得たリストに応じて、具象命令クラスのインスタンスを生成する。このクラスのインスタンスは一つの顧客クラスに対し、一つしか生成されない。その理由はユーザ管理クラスの場合と同様である。
 抽象命令クラスのインスタンスは生成されず、具象命令クラスがこのクラスの持つ機能を継承して、具象命令クラスのインスタンスが生成される。このように具象命令クラスの共通部分を抽象命令クラスとすることで、顧客クラスはどのような命令でも同じ方法で利用することができる。
 具象命令クラスは、外部のデータベースやメールサービスなどと接続することで、ネットワーク上の様々なサービスをこのシステムに吸収する役割を果たす。
 このように、このモデルでは抽象命令クラスによって全てのサービスの操作方法が統一されるので、利用者側からみて統合されたように見える。しかし、システムの開発者は抽象命令クラスを継承し具象命令クラスを作ることで様々な機能を自由に追加することができ、また追加された機能は学科管理クラスのインスタンスが管理しているのでどの学科からでも自由に利用することができる。また、利用者からの情報の発信などの機能はこの具象命令クラスの拡張によって実現することができる。

3.1.一枚札パターン

 利用者管理部分で用いた、オブジェクト指向設計の定石であるデザインパターンの一つについて解説する。この部分では、生成パターンの一つである一枚札パターンと呼ばれるデザインパターンを用いている。このパターンは、クラスにインスタンスが一つしかないことを保証するパターンであり、このようにすることで保守性と再利用性が増す。
 実際にこのパターンによるクラスを実装する場合は、クラスを生成する命令であるコンストラクタをエラーとして処理し、クラスのインスタンスが一つしかないことを保証するインスタンス生成操作命令をこのクラスが持つようにする。
 本システムでは一枚札パターンをユーザ管理クラスに用い、ユーザ管理の保守性と再利用性を高めている。

3.2.命令パターン

 命令の実行部分で用いたデザインパターンは、振る舞いパターンの一つである命令パターンと呼ばれるものである。これは、抽象命令クラスから継承された様々な具象命令クラスで命令を定義することで、命令を要求する側が命令を受信するオブジェクトの知識なしにその操作を行えるようにしたデザインパターンである。このようにすることで、命令の明確化・順序化・実行を独立させたり、命令の取り消しや再実行が行えたり、基本的な命令から高度な命令などによってシステムを構造化できる。
 以下にこのデザインパターンのクラス図とシーケンス図を示す。

integedu-03 図3.命令パターン・クラス図

integedu-04 図4.命令パターン・シーケンス図

 このデザインパターンをシーケンス図の流れに沿って説明すると、顧客クラスのインスタンスが命令クラスのインスタンスを生成する。命令クラスのインスタンスが生成されるとき引数として受け手クラスのインスタンスが渡される。次に、顧客クラスのインスタンスが実施者クラスのインスタンスに命令を格納する。実施者クラスのインスタンスは命令を実行する。
 本システムの中心部分がこのデザインパターンを用いて構成されている。このようにすることで、このシステムでは具象命令クラスが処理するデータベースや他のWWWサーバとの接続などを顧客クラスが意識せずに利用することができる。


4.システムの実装

 ここでは、このシステムを実装するときにどのような技術を用いる事ができるかを示し、またそれらの技術の解説もおこなう。ここで解説しやすくするためにシステム全体のクラス図を示し、その中でそれぞれのクラスがどのようなマシンに配置されるかも示す。

integedu-05 図5.実装システム全体クラス図

 まずクライアントは一般的なWWWブラウザを想定し、命令用サーバはJava Servletを、ユーザ管理サーバはJavaによるRMI(Remote Method Invocation)サーバまたはJava Servletを用いて実装すると考える。次に命令用サーバとクライアントの通信はHTTP(Hyper Text Transfer Protocol)を用いて行い、ユーザ管理サーバと命令用サーバはユーザ管理サーバの実装に応じ、JRMP(Java Remote Method Protocol)またはHTTPとXML(eXtensible Markup Language)を用いて通信を行う。また、具象命令やユーザ管理サーバがそのデータを管理するためにデータベース管理システムを用い、Java言語からJDBCを用いてそのデータに接続する。

 以下に、このシステムを実装するときに用いることが有効だと思われる技術に関しての解説をおこなう。

4.1.Java言語

 Java言語とは、1995年に米Sun Microsystems社が発表したオブジェクト指向プログラミング言語である。オブジェクト指向言語は他人の作ったプログラムを再利用するのに優れた言語で、Java言語もその特徴を持っている。それ以外に、Java言語は高い互換性を持つので、様々なシステム上で同一のプログラムを動作させることができる。また、Java言語には多くの優れたプログラムモジュールが存在するので、それを上手に再利用することで、開発期間を大幅に短縮できるというメリットもある。
 以下にJava言語のプログラムモジュールの中から、このシステムに用いることが有効だと思われるものをあげる。

4.1.1.Java Servlet

 Java Servletとは、米Sun Microsystems社が1997年にJava Web Serverと同時に発表した、WWWサービスを提供する側のマシンであるWWWサーバにJava言語によって作られたプログラムモジュールで生成した文書を送るシステムである。このシステムによって、Java言語で書かれたプログラムモジュールの実行結果をHTTPを用いてWWWクライアントに送ることができる。HTTPとは、WWWサービスに用いられる通信規則で、Internet上で最もよく用いられている通信規則の一つである。

4.1.2.JDBC

 JDBCとは、Java言語からデータベース管理システムに接続し、SQL(Structured Query Language)を用いてそのデータを操作するシステムである。SQLとはISO(International Organization for Standardization)で標準化されている、データベース操作言語である。JDBCにより、Java言語から多くのデータベース管理システムのデータを操作することができる。

4.1.3.RMI

 RMIとは、あるマシンで動いているJava言語のオブジェクトを、別のマシンから操作するためのシステムである。RMIを用いることで高度な分散環境を実現することができる。しかしながら、RMIで用いられている通信規則であるJRMPは高度なものであるために、セキュリティ上の理由からネットワークによってはこの通信規則による通信を制限している場合がある。

4.2.XML

 XMLとは、W3C(World Wide Web Consortium)がISO-8879/JIS-X4151で規定されるSGML(Standard Generalized Markup Language)の機能を制限して勧告した文書記述言語である。この文書記述言語では、複合構造を持った文書の表現や、タグと呼ばれるものによって項目と内容の対応を表現することができる。このために、XMLを構文解析することでその文書の情報をプログラムで取得することなどができる。またXMLは単純な文書なのでHTTPを用いた通信に用いることができる。


5.結び

 以上のように本論文では、様々な機能を統合させることで利用者にとって利用しやすいシステムであり、またサービスを提供する側が自由にそのサービスを拡張できるようなシステムのモデルを提案し、そのモデリングに用いたデザインパターンとシステムの実装についての解説を行った。また本論文の付録にプログラミング方法の例を示す。
 このようにモデリングされたシステムを用いることが、インターネットを用いた教育環境に統合性をもたらし、ユーザーにとって利用しやすい教育環境を提供することに繋がると考えられる。
 しかしながら、本論文では実際にどのようなサービスを提供するのかについては何も述べていない上に、著者自身もどのようなサービスを提供することが有効なのかを把握できていない。そこで本研究の今後の課題としてどのようなサービスを提供することが有効なのか、またそのサービスをどのように実装することが効果的なのかを調べていく必要性があげられる。そのためにも本システムは、開発者が自由に命令を拡張する事ができるように配慮している。
 著者は、現時点ではこのようなモデルのシステムが最善だと考えるが、これよりも優れたシステムが生まれるのならば著者はそれを歓迎する。しかしシステムが変わることが、今までに作ったデータやプログラムが再利用できなくなるユーザにとって好ましいことではない。そこで本論文では実装に際して、一般的なもの・標準化されているものをとりあげている。このようにすることで、多くのユーザにとって好ましくない事態を極力避けることができると考えられる。そう言った理由からも、もしこの論文を読んでこのようなシステムを開発しようと思った技術者がいるとするならば、できる限りこの論文で紹介したような一般的なもの・標準化されているものを用いてシステムを開発する事を薦めたい。
 そして著者は、このようなシステムがインターネットを用いた学際的なコミュニケーションの活性化に役立つこと望んでやまない。


プログラミング方法の例

 付録として、Java言語を用いて本システムのプログラミングを行う場合の記述例を示す。Program.1[UserManager.java]は、ユーザ管理クラスを、Program.2[EducationalCommand.java]は、抽象命令クラス(但しここではインターフェイスで実装)を、Program.3[exampleConcreteCommand.java]は、具象命令クラスの例を、Program.4[EducationalSystem.java]は、顧客クラス(サーブレット)を表す。学科管理クラスはユーザ管理クラスと同様にして実装でき、受け手クラスはjavax.servlet.http.HttpServletResponseクラスを用いて実装する。但しこれらは、プログラミングの方法の説明のために書かれたものであり、完全なプログラムではないのでそのまま実行することはできない。

Program.1[UserManager.java]

public class UserManager
{
static UserManager theInstance = null;

public static UserManager getInstance()
{
if(UserManager.theInstance == null)
{
UserManager.theInstance = new UserManager();
}
return UserManager.theInstance;
}

private UserManager()
{
// インスタンス生成処理
}
}

Program.2[EducationalCommand.java]

import javax.servlet.*;
import javax.servlet.http.*;

interface EducationalCommand
{
EducationalCommand newInstance(HttpServletResponse response);
void executeCommand(HttpServletRequest request);
}

Program.3[exampleConcreteCommand.java]

import javax.servlet.*;
import javax.servlet.http.*;

public class exampleConcreteCommand implements EducationalCommand
{
public EducationalCommand newInstance(HttpServletResponse response)
{
// 命令生成処理
}

public void executeCommand(HttpServletRequest request)
{
// 命令実行処理
}
}

Program.4[EducationalSystem.java]

import javax.servlet.*;
import javax.servlet.http.*;

public class EducationalSystem extends HttpServlet
{
service(HttpServletRequest request,HttpServletResponse response)
throws ServletException, IOException
{
// ユーザ認証処理など
String cmdName = // 命令クラスの名前を取得 (ex. exampleConcreteCommand)
EducationalCommand eCmd = Class.forName(cmdName).newInstance(response);
eCmd.executeCommand(request);
}
}

参考ホームページ

  1. 文部省(http://www.monbu.go.jp/)
  2. Allaire Corporation(http://www.allaire.com/)
  3. Apache XML Project(http://xml.apache.org/)
  4. IBM alphaWorks(http://www.alphaworks.ibm.com/)
  5. Java Conference(http://www.java-conf.gr.jp/)
  6. Java Apache Project(http://java.apache.org/)
  7. The Source for Java Tech(http://java.sun.com/)
  8. Sun Microsystems Corporation (http://www.sun.com/)
  9. World Wide Web Consortium(http://www.w3.org/)

参考文献

  1. 浅海智晴著「Java分散アプリケーション 世代を越える究極の分散環境」『Java Press』Vol.4(技術評論社、1999年)
  2. 浅海智晴著「JavaプログラマーのためのUMLスーパー入門講座」『Java Press』Vol.8(技術評論社、1999年)
  3. 石井達夫著『PC UNIXユーザのためのPostgreSQL完全攻略ガイド』(技術評論社、1999年)
  4. 小高知宏著『基礎からわかるTCP/IP Javaネットワークプログラミング』(オーム社、1999年)
  5. 佐原伸著『デザインパターン オブジェクト指向分析/設計技法』(ソフト・リサーチ・センター、1999年)
  6. 妹尾堅一郎著「デジタル時代の歩き方第10回 デジタルコミュニケーションは次善の策なのか」『CROSS AND TALK』第18巻第1号(アルク、2000年)
  7. 原田洋子著『Java Servlet 最新サーバ・プログラミング』(秀和システム、1999年)
  8. 日置慎治著「シラバスインターネット公開のためのデータベースシステムの開発」『論文誌 情報教育方法研究』第2巻第1号(1999年)
  9. 丸山宏・田村健人・浦本直彦著/訳『XMLとJavaによるWebアプリケーション開発』(ピアソン・エデュケーション、1999年)
  10. 村井実著『教育学入門(上)』(講談社学術文庫、1992年)
  11. 村井実著『教育学入門(下)』(講談社学術文庫、1992年)
  12. 吉川和己著「Webアプリケーション・サーバ尖鋭研究 総論Webアプリケーション・サーバの機能要件を整理する」『JavaWorld』第3巻第3号(技術評論社、1999年)
  13. デヴィッド=メギンソン著・クイック訳『XML文書の構造』(アスキー出版局、1999年)
  14. アイテック情報技術教育研究所編『データベーススペシャリストのためのデータベース技術』(アイテック情報処理技術者教育センター、1999年)
  15. 情報科学技術協会編『情報管理入門 第5版』(情報科学技術協会、1999年)
  16. 情報科学技術協会編『情報検索の基礎 第2版』(日外アソシエーツ、1997年)
  17. 日本規格協会編『JISハンドブック56 情報処理 ソフトウェア編』(日本規格協会、1999年)
  18. 日本情報処理開発協会『情報化白書1999』(コンピュータ・エージ社、1999年)
  19. 文部省編『平成11年度 我が国の文教施策 進む「教育改革」』(文部省ホームページ、1999年)

※このエントリは「第26回 コンカレント工学研究会」(2000.8.8)で発表された研究です。
※論文情報:http://ci.nii.ac.jp/naid/110003300164