ビジネスインフォマティクスの概観と体系(筑波大学 EDP-entry「インターネットのビジネスインパクト」＃ 4)
久野靖∗

2005.8.19

1

今回のストーリー□ ビジネス・インフォマティクスとは?

• ではどうするか?
□ 解 1:

なぜ必要か?

□ ビジネス・インフォマティクスの課題例

情報の専門家が起業し経営者に→確かに存在• それが唯一解では困る。ビジネス専門家も必要なはず□ ビジネス・インフォマティクスの体系・全体像□ 解 2:□ 代表的なドメインのクローズアップ

ビジネスパーソンであっても情報の基本原理とメカニズムを熟知→ビジネスインフォマティクスの目標• → ネットワーク、WWW• そんなことが可能か?

→だからこそチャレンジ!

□ 情報の専門家→今日では専門の範囲が極めて狭い

2

ビジネス・インフォマティクス (BI)

• 情報技術の範囲は極めて広くかつ急速に変化とその必要性• 専門技術者、研究者なら専門だけでよいが…
• ビジネスに情報技術を駆使する場合→自分の専門範囲だけでは済まない。他分野のことを「知らない」ま□ 従来の情報系の学問体系 --- JABEE の認定プログラム(情報系) を見ると:

ま進むことは危険• コンピュータ科学 (CS) --- プログラミング、言語、OS□ 必要な全範囲をカバーする理解→ビジネスインフォマ
ティクスの目標• コンピュータ工学 (CE) --- ハードウェア、システ
ム設計• ソフトウェア工学 (SE) --- システム分析、ソフト
開発

3の定義

• 情報システム (IS) --- 情報システム設計、開発、運用

ビジネス・インフォマティクス (BI)

□ 情報の非専門家や特定範囲の専門家が、□ その道の (深い) 専門家→他の分野の人がその素養を獲 □ 必要に応じ情報各分野の専門家と協働する上で必要な、得するのは困難□ 原理理解と思考体系獲得を可能とするための、□ 一方、今日ではビジネスに情報システムは不可欠• 20 世紀:□ 知識/技術体系化手法の総体□ →ビジネス・インフォマティクス (BI)

情報システムはビジネスを効率化/サポート• 21 世紀: 情報システムなしには存在し得ないビジネスが主流に

4

ビジネス・インフォマティクスの課題
例□ →「情報のことは専門家が」では済まない世の中に□ 次のような課題を考えてみる∗ 筑波大学ビジネス科学研究科

1• 裸の記憶装置→ OS による機能付加→ファイル• 地球の裏側 (ブラジル) に支社がありそこの在庫管理を当地のサーバでやっている• データの共有/定型化→データベース/DBMS• システム管理、メンテナンス、トラブル対応等が日• DB の用途→ Web サービス、データウェアハウス

本と全く別なので問題が多い□ [3] コンピュータとの対話→ユーザインタフェース→• そこで、本社 (日本) のサーバで支社の在庫管理もするのはどうか?

CUI/GUI/Web• 「対話」が持つ意味→人間の能力を引き出す□ Q:これだけ聞いて「アリ」「ナシ」どっち?

• 人間側の持つ特製、限界→認知的側面□ Q:このプランの可否を判断するのには何が分かっている• コンピュータ側の選択肢→多くの可能性 (普通の GUI必要?

以外)• ネットワークの伝達時間は実用範囲内なの?

□ [4] ネットワークの原理→ネットサービス→ Web/Web• ソフトウェア開発の手間/コストは?

アプリ• システムの可用性や信頼性は?

• パケット→経路制御/伝送制御→自在な通信媒体• セキュリティは?

• インフラ (インターネット) →各種サービス□ それぞれについて根拠を持った判断ができるかどうか?

• 代表例:□ これらのことを「専門家に聞いて受け売りする」のではWeb →基本アイデア→多様な活用□ [5] 各種メディア→ドキュメント/マルチメディア/動的ダメ□ [6] AI 技術→学習、推論、知識表現• 自分で考え納得した上でなければ責任も取れない□ [7] データ→データマイニング、自然言語• 考えた上で専門家と議論して詰めるのなら正しい• アイデアは非専門家の方が出せる (ただし feasible □ [8] 情報社会→リテラシ、セキュリティ、ネット社会□ [9] 情報システムの分析/設計/開発→ソフト工学/ビジでないと…)
ネスプロセス□ これらを自力で考える上で必要な土台の構築＝ BI の目標□ [X] システムズマネジメントアプローチ→研究型/他プ
ログラムと連携

5

ビジネス・インフォマティクスの体系□ BI では「どのように」各ドメイン内を体系化するか?
→ 下記の問い□ 従来の「○○が分かる」的解説本の駄目なところ…

• (「何がどのようになっているのか?」) ←普通の知識• 個別のドメインの話だけしても「例示」「現象」にとどまる←本一冊で素人に説明するとしたらそれしか• 「何がもっとも本質的か?」• 「原理的に何が可能で何が不可能か?」ないから• 上記 3 点に:「それはなぜか?」←もっとも重要• そのようなものを多数取り入れても「薄皮饅頭」□ BI の主張:

最初は敷居が高くても土台から積み上げる □ すべての「なぜ」には技術的/経済的/社会的理由方が早道• それなしに「こうなのだ」と断言しても単なる演説□ [1] コンピュータの原理→プログラミング言語→ OS/プ

□ すべての「なぜ」に具体的に答えられるようになるため

ログラムの実行の体系=ストーリを提供→ BI が提供する体系化• 「プログラムを動かす体験」は必須• 「プログラムをゼロから書く」訓練は時間的に難しい

6• サンプルを持って来て/動かし/直して観察 (理科の実験モデル)

クローズアップ: ネットワークの原理と応用□ [2] データ記憶→ファイルシステム→データベース□ ネットワークのドメインから具体例を抜粋

2

• 全体テーマ「インターネットのビジネスインパクト」 □ 「なぜ」こうなのか?
ですから…

• 「誰かが計画的に」作り上げたものではない→網状• ただしわずか数十分で抜粋なので全ての「なぜ」に• 一元管理でない→自律システムの集合体は対応しない• 各サブネットが「善意で」相互に配送• BI プログラムの雰囲気を味わって頂ければ幸いです□ 進め方:□ 巨大な「草の根ネットワーク」がインターネットの本質

各自 quiz を記入→続いてレクチャー

6.3

ネットワークとその目的

6.1

回線交換とパケット交換□ Q:インターネット上の通信は「小包」「電話」どちらに□ 計算機ネットワークを構成する目的として何がある?

近いか?

• 資源の共有 --- 「ファイルサーバ」「計算サーバ」

なぜそう思うか?

• 回線交換 (電話): 最初に伝送経路を全部確保する(ダイヤリング) →使用中はずっと確保→切断時に開放• 信頼性 --- 1 台止まっても残りで処理• 経済性 --- 巨大なマシンより量産品は割安• パケット交換 (インターネット):• 段階的成長 --- マシンを増やす→能力増強

データを決まったサイズ (以下) に切り分けて随時投入• 通信媒体 --- 「距離をなくす」新たな応用□ なぜパケット交換が使われるか?

ネットワークとトポロジ

6.2• 伝送量の増減がある→確保して使わない→無駄• 各中継点での「確保」「開放」は大変な手間□ Q:インターネットの「つながり方」はどんな感じ?

• 「確保」されっぱなしは困る□ 典型的なネットワークトポロジ:
バス型

リング型

CC

CC

• 中継点はできる限りシンプルに→廉価・高速スター型

CC

C

A

AtoF

AtoF
AtoF

C

C

C

BtoE

F
D

C

C
BtoE
ツリー型

網状（ネットワーク）

CC

B

BtoE

E

CC

CC
CC

CC

6.4

伝送制御/エラー制御□ Q:インターネット機器のパケット損失率はどれくらい?

□ インターネットの場合→階層構造□ Q:ネット通信のエラー率は途中で通過する経路のエラー• LAN/各家庭/企業内/学内→プロバイダ/プロジェク

率の最悪のものによって制約される (それより良くはな

ト→全体らない):ホント?ウソ?

サブネットワーク（自律システム）

相互接続点
(IX)

□ デモ:簡単なプログラムで裸のパケットを隣のマシンに送る

プロバイダ大学• 少量のデータは当然問題なく届く

ｅｔｃ．

• 多くなってくると→ボロボロに落ちる□ 品質の悪い通信路上でエラーのない伝送をするには?

• パケットに番号をつけ並べかえ• 確認パケットが来ないと再送

インターネット＝自律システムの集合（網状接続）

3

パケットの投入• そのアドレスを指定さえすれば途中経路がうまく選パケットの受領ばれ相互に行き来可能（再送用の保管）
8

5

6342

送信側

□ 相互運用性を持つ巨大な通信基盤→インターネットの受信側
7

本質

4635

• ア ド レ ス/パ ケット の 形 式 →1 OK 2 OK 4 OKProtocol) として規定。

受領確認□ Q:ブラジルまでのパケットの到達時間 (片道) はどれ位

□ 通信路の両端 (=コンピュータ、能力は十分ある) でサーと予想?

ビスを提供□ Q:ブラジルまでのパケットの途中中継数はいくつ位と□ 経路上の中継点では安く早くできる範囲で単にパケット予想?

を送る• 実際にやってみれば分かる。

□ →インフラの変更 (=大変) なしに新しいことが始められる

6.5

IP(Internet• (1) 確実にブラジルにある (ネット接続が良さそうな) サイトを探す• (2) 「ping 宛先」→パケット往復時間が分かる (禁経路制御と IP止してなければ)□ Q:インターネット上の通信の宛先はどういう形で指定• (3) 「tracert/traceroute 宛先」→中継点が分かする?

る ( 〃)□ 通信の宛先→「アドレス」• インターネットでは「IP アドレス」(32 ビットの数値)。「192.50.17.2」のような記法で書き表す。

6.6

プロトコルとプロトコル階層□ ネットワークは多数の機能の集成→階層構造• 「www.google.com」みたいなのは? 「ドメインアドレス」であり、それを IP アドレスに変換して利用• 下位の層の機能を利用して上位の層を実現している。

• 一番上には各種のサービスが来る• 理由: 人間は長い (読める) 名前がよい。中継点での処理には簡潔で効率よく扱える形式がよい。
□ Q:会社からここへ来る経路はどうやって決めたか?

ブラウザでページを見る

それと「ネットワークパケットさん」の行き先の決め方はどう違うと思う?
□ パケットの経路を決める処理→「経路制御」

Application layer

ＵＲＬ通知／返送Transportlayer

エラーのない通信

Networklayer

正しい経路の選択

Datalink
layer

パケットの伝送

Physicallayer• パケットは「どういう経路を通ろう」と予め計画できない

ケーブル□ 各層ごとに「やりとりの約束ごと (=プロトコル) がある• 経路が長く、しかも頻繁に変わる可能性がある→全体として「インターネットプロトコル群 (TCP/IP)」• すべての交差点 (中継点) で宛先 IP アドレスを提示する t「あなたはこっち」と指示される (この情報も• 伝達層以下→伝送媒体毎に多数ある (パケットが通ネット経由で絶えず配布更新)れば何でもよい)• ネットワーク層→ IP(Internet Protocol)□ 以上をまとめると…

• トランスポート層→ TCP(エラー制御) と UDP(裸パケット)• 世界中のインターネットに (直接) つながったマシンには固有の IP アドレスが割り当てられていて、• その上→サービスごとにさまざま

4□ Q:「ネットワークの伝送媒体としてネットワークを使う」 □ 解答:サービスを提供する側のプログラムを「常時」動というのは意味がない?

ある?

かしておけるあるとすればどういう場合?

• ＋ 固定した IP アドレスまたはドメイン名を持ち、□ 解答:大あり。一般に「トンネル」と呼ばれる外部からアクセス可能• 違うプロトコルのネットワーク内を通過したい場合□ 「クライアントサーバ方式」• 本来は通れないところを通過したい場合←セキュリ• サービスを提供する側=サーバティの問題が生じることも• サービスを受ける側=クライアント (各ユーザが利用• 暗号化トンネル→安全に隔離された「島」どうしを結ぶするマシン)
クライアント
プロセス

防火壁
トンネル

サーバマシン接続

外部ネットワーク□ その他の補足

サーバプロセス• IP アドレスはホスト (マシン) まで識別• サービスの識別は 1〜65535 の番号 (ポート番号) で□ 以下では「WWW」を例として取り上げ検討→代表的なサービスは決まった番号を持っている• そのサービスはどのような仕組みで作られているか?
• ド メ イ ン ア ド レ ス か ら IP ア ド レ ス へ の 変 換 →• そのサービスでは「どんなことが」できるか?

DNS(Domain Name System) というサービスとして提供されている• そのサービスを「インフラとして」何ができるか?

• これらの番号/名前の割り当ては ICANN と呼ばれる非営利団体が管理

6.7

6.8

World Wide Web□ Q:WWW を知らない人に「WWW とは何か」をどう説明する?

ネットワークサービス□ WWW とは:インターネット全体に分散した「ハイパーテ□ Q:「ネットワークサービス」で思いつくものを 5 つ挙げキスト」てみて。

• ハイパーテキスト:テキスト (文書) の中にリンクが埋め込まれていて、これをたどることでさまざまな• 遠隔ログイン…インターネットで最初に使われたサービス

順序で読めるもの• ＋ 画像、音声、動画などマルチメディアに対応• 電子メール…同じくらい古くからあり今日もポピュ
ラーページ• ファイル転送、ネットニュース、IRC、…WWW が増えて下火にページ• ファイル共有…比較的新しい• WWW…圧倒的に今日の主流 (その上に多様な「サービス」が存在)

サウンド
（音）

リンク

□ Q:ネットワークサービスを動かすマシンに必要な条件は?

ページ• ヒント:プログラムどうしが通信できるためには両方が同時に動く必要

ビデオ
（映像）

□ Q:以前からインターネットはあったが、WWW の何が革新的だった?

5

• 必要な操作が「クリックするだけ」• (3) もし HTML 中に画像ファイル等の参照があれば、• テキストに画像が混ざった情報表示

それらも同様にして取り寄せる (すべてブラウザ側• プラットフォーム (OS) に依存しないが主導)• 利点:非常に簡単なプロトコル→サーバの仕事が単純• 世界中のあらゆる場所の情報が指せる、無尽蔵の情報量、情報を作り出しているところから直接取れる(多数をサポート)□ Q:WWW を作った人 (Tim Berners-Lee) の「最大の発明」
は何?

□ HTML:非常に簡単なマークアップ言語• マークアップ:テキストに「印」を埋め込んでおく方式• 見出し、段落、箇条書き、表、などのタグ□ 解答:URI(URL)。これがあるから世界中の任意の情報が指せる• cf.

WYSIWYG:見たまま (Word 等)HTML• 「http:」「mailto:」等、先頭部分の区別により、あらゆるものをあらゆる取り寄せ方で取り寄せる場合<html><head><title>sample page</title></head><body><h1>What is HTML?</h1>に対応可能• ち な み に URI(Uniform Resource Identifier)<p> ＨＴＭＬはＷＷＷのために開発されたマークアップ
言語… </p></body></html>= URL(Uniform Resource Locator) +URN(Uniform Resource Name)。

ブラウザ表示sample page

• URN は「取り寄せ方」に関係しないような指定方法。
例:

What is HTML?

「urn:isbn:1-234567-8」とか。

ＨＴＭＬはＷＷＷのために開発されたマークアップ言語…

□ Q. リンクをクリックしたとき、元サーバと行き先ページのサーバとの間で通信は行われると思いますか?
□ HTML のサンプル□ WWW の原理…

• これをファイルに入れておく→ブラウザが取り寄せ→ページとして表示• (1) ブラウザはサーバからコンテンツ (HTML ページ)を取り寄せ表示<html><head><title>sample page</title></html><body><h1>What is HTML?</h1><p>HTML は WWW のために開発されたマークアップ言語です。</p></body></html>• (2) リンク選択→そこのに URI 情報が埋め込まれている→ (1) に戻る
HostA(1) ＵＲＩ指定してコンテンツ取り寄せ表示
http://HostA/x/y.html

click!
...detail...

□ Q:なぜ Web ページは Word みたいに見たままで作成できHostBないのか?

http://HostB/a/b.html(2) リンクには任意のＵＲＩが付随(3)
リンクが選択されるとそのＵＲＩからコンテンツ取り寄せ表示□ 解答:「見たようす」はマシンごとに違うから• Web ページは世界中のあらゆるマシンで見られる可能性がある□ つまり全部ブラウザ側だけで処理• だから自分のブラウザで見て OK でも完成ではない□ 実際のブラウザとサーバのやりとり• 特にブラウザ独自の機能を使っていると他では見えないことも• URL「http://x.jp//a/b/c.html」を取り寄せるとすると• →標準 (HTML であれば WWW コンソーシアムの標準)準拠が大切• (1) ホスト「x.jp」のポート 80 番 (http) に接続□ Q:Web サーバが FTP(ファイル転送) サーバと最も違うと• (2)「GET /a/b/c.html」でファイル取り寄せ

ころは何?

6

□ 解答:「プログラムを動かして出力を返す」機能がある

ブラウザ• 任意のプログラム (CGI) で任意の処理が行える
ＷＷＷサーバ＋ＣＧＩ等• ブラウザ画面からデータを渡す機能もある

サーバ側• ショッピングサイト等もこの原理で作成

ＤＢ

データ送信

□ Q:Web アプリケーションが従来のアプリに比べ革新的な

ＨＴＭＬ返送点は?

アプリ• 最初から分散アプリケーション• クライアント側に何もインストール不要• クライアント側は最初から出来ている□ Perl 言語による CGI(簡単な Unix コマンドを実行し結果を表示)#!/usr/local/bin/perl
print <<EOF;
Content-type: text/html; charset=euc-jpッダ• サーバ側はどんな言語でどういう開発でも OK• バグ/トラブル対応が全部サーバ上だけで済む□ クライアント側 (ブラウザ上) でもコードが動かせる← HTTP ヘ□ JavaScript このために開発されたスクリプト言語□ Q:どんな利点/用途があると思いますか?

<html><title>sample</title></html><body> ←ここからHTML<h1>w コマンドの実行</h1><pre>EOF
exec ’/usr/bin/w’;print <<EOF</pre></body></html>
EOF• ブラウザ上→速い応答が必要な場合に使う• 例:フォーム記入時のエラーチェック、メニュー等ユー
ザインタフェースの工夫、お遊び、飾り、ゲーム• Document Object Model(DOM): ペ ー ジ 内 容 (文書) を任意に操作□ フォームによる結果の受け取りとファイル出力□ JavaScript でページ内容を動かす#!/usr/local/bin/perl
use CGI; $cgi = new CGI;
print <<EOF;
Content-type: text/html; charset=euc-jp<html><head><title>sample page</title><script type="text/javascript">
var e = null, x, y, vx = 5, vy = 3;function click(v) {e = document.getElementById(’e0’);<html><title>sample bbs</title></html><body>if(window.event) v = window.event;<h1>書き込みの保存</h1>e.style.position = ’absolute’; x = v.clientX; y = v.clientY;<form method="post"><p>}
書き込み:<input type="text" name="tx" size="40">function step() {<input type="submit"></p></form></body></html>
if(e == null) return;
EOF
e.style.left = (x+=vx)+’px’; e.style.top = (y+=vy)+’px’;
if(defined $cgi->param(’tx’)) {if(x<0 && vx<0 || x>400 && vx > 0) vx = -vx;
open(FD, ">>tx.data"); print FD $cgi->param(’tx’), "\n";if(y<0 && vy<0 || y>300 && vy > 0) vy = -vy;
close(FD);}}</script></head><body onload="document.body.onclick=click;setInterval(step,20)"<h1 id="e0">What is HTML?</h1></body></html>□ 実際には「ブラウザ⇔ Web サーバ+CGI 等⇔ DB」の 3 層

構造□ Q:逆にどんな制約/注意点があると思いますか?

• データベースが確実なデータ保管を可能にする• サーバ上のデータにはアクセスできない (当り前)• 複数クライアントからの競合アクセスにも対処• ブラウザ上で実行→セキュリティ上の制約• しかも、しばしばセキュリティホールに7□ 例:クロスサイトスクリプティング (XSS)□ 解答:Y。コンピュータに超能力はありません。

• 掲示板/リンク登録など「書き込める」サイトに対して、7まとめ• 「<script>実行したいコード</script>」を書き込□ ビジネスインフォマティクス (BI) → 非専門家を準専む
門家に育成するための系統的なメソッド/カリキュラム• それを「見た」人のブラウザ上で…
• 「見た」人が「知らないうちに」…

• そのコアアイデア → 「なぜ」を考えて納得する• 何でもできる (ひどい書き込みをする等)□ 例:ネットワーク → 「つながる」ための緻密な体系• ショッピングサイトとかだと勝手に購入とか…

• 「なぜそうなのか/そうなっているのか」はすべて理
由が…

□ 「WWW で次のようなことができるといいなあ」と誰か (たぶん上司) が言ったとします。あなたは次のどれを回答するべきか選びなさい。

□ 例:WWW → サーバ側/クライアント側プログラミングによる任意の動作→ Web アプリケーション• W:「そんなことはもうできていますが…」• X:「確かに、いずれできるようになったら便利ですね」• Y:「そんなことは原理的に不可能ですよ」• Z:「そんなことは絶対にできてくれてはこまります」□ Q:Web サーバ上でサーバ管理者が用意した任意のプログ• 「どういうことはできるか/できては困るか」すべて
理由が…
□ 本来はこれらを「自分で確認しながら」身につけて行く
必要

ラムがユーザから入力を受け取って実行できて、結果をユーザに返せるといいね!
□ 解答:W。それはまさに CGI のこと。どこでもやっている。
□ Q:Web サーバ上でユーザが指定した任意のプログラムがユーザから入力を受け取って実行できて、結果をユーザに返せるといいね!
□ 解答:Z。ユーザが好きなプログラムを動かせる→サーバ上のデータでも何でも盗み放題になる→絶対にできてはいけない!
□ Q:Web ページを表示させるとそこに指定されている任意のコマンドが自動的に手元のマシンで実行されてデータ処理してくれるといいね!
□ 解答:Z。たまたま見たページに仕込まれているプログラ
ムが自分のマシンで実行されたら→データ盗まれ放題、破壊され放題→絶対にできてはいけない!
□ Q:Web ページを表示させるとそこに指定されているファイルを自動的に手元のマシンから吸い上げてデータ処理・表示されるといいね!
□ 解答:Z。たまたま見たページに指定されたファイルが勝手にサーバに吸い上げられたら→データ盗まれ放題→絶対にできてはいけない!
□ Q:Web ページを表示させて眺めただけでどういうデータ処理が必要かが読み取られてデータ処理・表示されるといいね!

8