第1講:学習を進めるための準備をする

その2 この講座の最終目標「時間割表示システム」とは何か

 この講座は全体を通して「時間割表示システム」というひとつの例題プログラムの完成を目標に進められます。個々の学習内容は、基本的には、この「時間割表示システム」の完成過程として位置づけられます。

 ここでは学習の手始めとして、この最終目標である「時間割表示システム」がいったいどんなプログラムであるのかをあらかじめ知っておいてもらいます。そのために、このプログラムの概要と、それがコンピュータ上で実際に稼働した結果どんなことが起こるのか、そして実際に完成品のプログラムはどんなものなのか、といったことを説明しておきます。

(1)「時間割表示システム」の概要

 「時間割表示システム」は、ある曜日・時限の時間割を知りたい人をユーザーとして想定し、その人が知りたい曜日・時限の時間割という情報の提供を目的とするプログラムです。この目的は、ユーザーがこのプログラムを起動し、知りたい曜日、時限をコンピュータに伝えると、時間割(後ほど詳しく定義しますが、ここでは「時限名」「科目名」「教室名」という項目から成り立っている情報を指します)がディスプレイに表示される、という経過をたどって達せられることになります。

 ところでこのプログラムは、単に「プログラム」ではなく「システム」という名前が付いています。これは「時間割を表示する」という最終目的が異なる機能を持った複数のプログラムの連携によって実現されることを強調するために、あえてそう名付けたのです。次には、その連携がどのように行われるのかを少し詳しく説明します。

(2)クライアント・サーバシステム

 「時間割表示システム」は、クライアント・サーバシステムという名前の機構を持っています。これは複数のコンピュータがネットワークを介して情報のやりとりをする仕組みのひとつです。この場合、クライアントとは何らかのサービスを受ける役割を、サーバは何らかのサービスを提供する役割を表します。

 例えば「時間割表示システム」においては、ユーザーが操作する側のコンピュータをクライアントと呼びます。ユーザーはクライアントコンピュータから、ネットワークを介してサーバコンピュータに時間割の提供を依頼します。一方サーバコンピュータの側には1週間の時間割すべての情報が登録されており、クライアントからのアクセスに従って必要な情報だけを送り返します。こうしてサーバから送られた情報はクライアントのディスプレイに表示され、ユーザーの要求を満たすことになるのです。その際、主に次の3つのプログラムが連携して働きます。

  1. <サーバ用のプログラム>クライアントからの要求に従って時間割の情報を送信する。
  2. <クライアント用のプログラム>サーバに対して要求を送り、送られてくる時間割を表示する。
  3. <時間割のテンプレート(ひな形)となるプログラム>扱うべき情報である「時間割」の内容を定義する。クライアント、サーバそれぞれが保持し、利用する。

 このような機構にするメリットは、たとえば「時間割」のような不特定多数の人が必要とするある程度公共性の高い情報を扱う際に、(1)管理者は情報の更新をしなければならない場合サーバが持つ情報のみを更新すればよい、(2)利用者は必要なときに必要な情報のみを自分から入手できる、といった点からの効率の良さをあげることができます。この機構が身近に利用されている例としては、World Wide Webがそれにあたります。この場合ホームページの情報を持つ「Webサーバー」に対してクライアントの側は「ブラウザ」を利用して情報の入手・表示を行います。

(3)「時間割表示システム」の画面表示の例

 ここでは、ユーザーがクライアントのプログラムを利用して「時間割表示システム」を利用する場合の画面表示の例を示しておきます。

 このシステムはUNIXまたはWindowsのコマンドラインを使って起動します。例えば次のように起動すると、

% java MainClient ←プログラムの起動コマンドについては後ほど詳しく説明します。

次のように接続先のサーバ名を尋ねるメッセージが表示されます。

接続するサーバ名を入力して下さい> abc012 ←サーバ名を入力する

するとサーバとの接続を開始し、次のようなやりとりを行うことになります。この場合は仮にユーザーが月曜3限の時間割を要求することにします。

該当する番号を入力して下さい。
曜日(1:月 2:火 3:水 4:木 5:金)>> 1 ←該当する曜日を数値で入力する
時限(1〜5)>> 3 ←該当する時限を数値で入力する

すると最後にサーバから送られてきた月曜3限の時間割が次のように表示されます。

時限:3
科目名:情報処理Ib
教室名:i308

この時点でプログラムが終了します。

(4)完成版のプログラム

 以上のような動作をする「時間割表示システム」を構成するプログラムとはいったいどのようなものなのでしょうか。このシステムを構成する3つのプログラムの実際に見ることにしましょう。それぞれのプログラムには

/* ・・・・・ */ あるいは //・・・・・

というふうに記号に挟まれた、あるいは隣り合った「・・・・」部分に日本語の記述が見られます。これはコメントといってプログラム中のその部分がいったいどんな目的で記述されているのかを説明しています。もちろんこれからプログラムを学んでゆくわけですから、プログラム自体が読めなくても全く問題はありません。むしろコメントの記述を頼りに、そのプログラムがどのような手順で仕事を指示しているのかを、全体的につかんでもらえればそれで十分です。細かいことが分からなくても、いまは気にする必要がありません。

  1. サーバ用プログラム「MainServer」
  2. クライアント用プログラム「MainClient」
  3. 時間割を定義するプログラム「ClassTable」


リンク:

<全体のトップページ>

     |

<第1講のトップページ

     |--------------------|

<第1講・その1>    <第1講・その2>