内容紹介
分散オブジェクトシステムdRubyの仕組みから、Webアプリケーションの作り方までを、dRubyの作者自身が解説
dRubyは、オブジェクト指向プログラミング言語Rubyで書かれた分散オブジェクトフレームワークである。本書は、最新のdRubyに基づいて作者自身が執筆した、dRubyとその周辺のライブラリのチュートリアル。dRubyの仕組みを理解し、アプリケーションを作りたい人に。
このような方におすすめ
RubyやdRubyでアプリケーションを書きたい人、分散システムやマルチスレッドプログラミングに好奇心をかきたてられる人、J2EEなどちょっと大掛かりなシステムに疑問を感じている人、クライアント/サーバ型のネットワークプログラミングやCGI/JSP/ASP/Servletなどウェブプログラミングに興味のある人。
分散オブジェクトシステムについての前提知識は必要なし。Rubyについては文法や標準のクラスライブラリについてほぼ理解していて、簡単なツールが書ける程度の知識があることが望ましい。
(本文より)
目次
主要目次
はじめに
■1章 分散オブジェクトシステムdRuby
1.1 分散オブジェクトシステム
1.2 RPCとRMI
1.3 プログラミングから見た分散オブジェクト
1.4 代表的な分散オブジェクトシステム
1.5 dRubyの特徴
1.6 まとめ
■2章 Hello, dRuby
2.1 Hello, World.
2.2 Reminder
2.3 まとめ
■3章 eRuby
3.1 eRuby
3.2 ERB
3.3 Reminder CGIインタフェース
3.4 まとめ
■4章 参照渡しと値渡し
4.1 参照渡しと値渡し(pass by reference、pass by value)
4.2 自動的な参照渡し
4.3 未知のオブジェクトとDRbUnknown
■5章 マルチスレッド
5.1 dRubyとマルチスレッド
5.2 Rubyのマルチスレッド
5.3 スレッド間の通信
■6章 Webアプリケーション
6.1 プロセスの分割とオブジェクトの配置
6.2 DivとTofu
6.3 まとめ
■7章 Rindaによるプロセスの協調
7.1 LindaとRinda
7.2 Rindaの基本操作
7.3 基本分散データ構造体
7.4 アプリケーションに向けて
7.5 Rindaの拡張??タプルの有効期限
7.6 Rindaの拡張:notify
7.7 Hashタプル
7.8 moveとTupleSpaceProxy
7.9 Rindaの拡張:Ring
7.10 Ringを使ったアプリケーションの例
■8章 GCとのつきあい
8.1 GC
8.2 dRubyとGC
8.3 アプリケーションで工夫しよう
8.4 DRbIdConvでGCを防ぐ
■9章 dRubyのセキュリティ
9.1 dRubyの態度
9.2 SSHによるポートフォワーディング
■付録
参考文献
分散、並列、マルチスレッド
プログラミング一般
Ruby
利用例
詳細目次
はじめに
謝辞
この本の内容について
読者対象
動作環境
この本の構成について
凡例
著者紹介
■1章 分散オブジェクトシステムdRuby
1.1 分散オブジェクトシステム
1.2 RPCとRMI
1.3 プログラミングから見た分散オブジェクト
1.4 代表的な分散オブジェクトシステム
1.5 dRubyの特徴
1.5.1 Pure Ruby
1.5.2 Rubyの特徴をそのままに
1.5.3 値渡しと参照渡し
1.6 まとめ
■2章 Hello, dRuby
2.1 Hello, World.
2.1.1 印字サーバ
2.1.2 irbからの利用
2.1.3 スクリプト版クライアント
2.1.4 dRubyのURI
2.2 Reminder
2.3 まとめ
■3章 eRuby
3.1 eRuby
3.2 ERB
3.2.1 ERBのインストール
3.2.2 erubyとの違い
3.2.3 ERBクラス
3.2.4 ERB使用例
3.3 Reminder CGIインタフェース
3.3.1 CGIの準備
3.3.2 一覧表示
3.4 まとめ
■4章 参照渡しと値渡し
4.1 参照渡しと値渡し(pass by reference、pass by value)
4.1.1 Rubyではどうなる?
4.1.2 dRubyでは?
4.1.3 どちらがサーバでどちらがクライアント?
4.2 自動的な参照渡し
4.2.1 can't dump
4.2.2 DRbUndumped
4.3 未知のオブジェクトとDRbUnknown
■5章 マルチスレッド
5.1 dRubyとマルチスレッド
5.1.1 いつでもマルチスレッド
5.2 Rubyのマルチスレッド
5.2.1 スレッドの操作
5.2.2 セーフレベル
5.3 スレッド間の通信
5.3.1 排他制御
5.3.2 スレッド間のオブジェクトのやりとり
■6章 Webアプリケーション
6.1 プロセスの分割とオブジェクトの配置
6.1.1 オブジェクトの配置
6.1.2 Rubyのバグトラッキングシステムの報告より
6.2 DivとTofu
6.2.1 Divのセッション管理の戦略
6.2.2 Div::Div
6.2.3 Tofu
6.2.4 Divのインストール
6.2.5 First Div
6.2.6 Div::Div more.
6.2.7 セッション管理
6.2.8 DivCal
6.2.9 DivをWEBrickで使用する
6.3 まとめ
■7章 Rindaによるプロセスの協調
7.1 LindaとRinda
7.1.1 Linda
7.1.2 Rinda
7.2 Rindaの基本操作
7.2.1 TupleSpaceの生成
7.2.2 タプルとwrite、take
7.2.3 readとread_all
7.2.4 タイムアウトとinp、rdp
7.2.5 タプルとパターンマッチング
7.3 基本分散データ構造体
7.3.1 Bag
7.3.2 Struct, Hash
7.3.3 Array, Stream
7.4 アプリケーションに向けて
7.5 Rindaの拡張??タプルの有効期限
7.5.1 有効期限とRenewer
7.5.2 TupleEntryを用いた明示的なキャンセル
7.6 Rindaの拡張:notify
7.7 Hashタプル
7.8 moveとTupleSpaceProxy
7.9 Rindaの拡張:Ring
7.9.1 ネームサーバの場所
7.9.2 TupleSpaceの検索
7.9.3 TupleSpaceを利用したネームサーバ
7.10 Ringを使ったアプリケーションの例
7.10.1 待ち合わせのいろいろ
7.10.2 tiny I like Ruby.
■8章 GCとのつきあい
8.1 GC
8.2 dRubyとGC
8.3 アプリケーションで工夫しよう
8.4 DRbIdConvでGCを防ぐ
8.4.1 DRbIdConvのカスタマイズ
■9章 dRubyのセキュリティ
9.1 dRubyの態度
9.1.1 $SAFE
9.1.2 ACL
9.1.3 UNIXドメインソケット
9.2 SSHによるポートフォワーディング
9.2.1 実験
9.2.2 dRubyゲートウェイ
■付録
参考文献
分散、並列、マルチスレッド
プログラミング一般
Ruby
利用例
続きを見る