三省堂 大辞林 |
アイオーシー [ IOC ]
IOC [International Olympic Committee]
海洋基本計画用語集 |
政府間海洋学委員会(IOC)
石油/天然ガス用語辞典 |
メジャーズ
国際大手石油会社
【英】: international major oil company
同義語: 国際石油会社 メジャーズ
略語: IOC
国際石油会社
海の事典 |
政府間海洋学委員会(せいふかんかいようがくいいんかい)
馬の用語事典 |
国際オリンピック委員会
ウィキペディア |
制御の反転
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2009/06/13 09:45 UTC 版)
(IOC から転送)
制御の反転(Inversion of Control、IoC)は抽象化原則の一種で、手続き型プログラミングと比較したとき、システムの制御の流れが逆転しているソフトウェアアーキテクチャ設計を表している。
従来からのプログラミングでは、フローはコードの中核部分で制御されている。IoCを使うと、これが全く変わってくる。呼び出し側は応答を得るが、いつどのようにして応答を得るかは呼び出し側が制御できない。逆に呼び出された側がいつどのようにして応えるかを決定する。このため、制御の反転はハリウッドの原則 (Hollywood Principle) とも呼ばれる。設計ガイドラインとしてのIoCは以下のような目的で使われる。
- あるタスクの実行を実装から分離する場合。
- 全てのシステムが設計目的に集中できる場合。
- 全てのシステムが他のシステムが何をするかを仮定しない場合。
- システムの置換が他のシステムに全く副作用を与えないようにする場合。
目次 |
例
public class serverFacade { public Object respondToRequest(Object pRequest) { if(businessLayer.validateRequest(pRequest)) { DAO.getData(pRequest); return aspect.convertData(pRequest); } else { return null; } } }
この例は非常に恣意的に単純化してある。重要なのは、serverFacade においてDAOオブジェクトがどういうデータを返してくるかについて、多くの仮定をしている点である。それらの仮定は全て妥当な場合もあるかもしれないが、serverFacade と DAO の実装の結合度が高いことは否めない。「制御の反転」に従った設計では、制御を完全にDAOオブジェクトに渡してしまう。するとコードは次のようになる。
public class serverFacade { public Object respondToRequest(Object pRequest) { return DAO.getData(pRequest); } }
この場合、両方のオブジェクトは互いが何をするかについて全く仮定を設けていない。メソッドを呼び出す側とメソッドの中身を提供する側は知っている必要があるが、serverFacade は知る必要がない。これも制御の反転の重要な効果の1つである。serverFacade は純粋に設計されたタスクを実行する(おそらく、なんらかのシステムの接続)。
背景
「制御の反転」は計算機科学においては新しい用語ではない。マーティン・ファウラーによれば[1]、"Inversion of Control”という用語の起源は1988年に遡る。この考え方は、階層による抽象化とよく似ている。しかし、「制御の反転」という用語は何か新しいものとして大々的に流布された。これは、そのような設計原則に開発者の目を惹きつけ、その重要性を再認識させた。Javaの世界ではこの用語が一定の認知を得た。また、特定のプログラミング言語に依存しないアーキテクチャを述べる際にも好んで使われる。
「制御の反転」がデザインパターンなのか、それともアーキテクチャの原則なのかは議論が分かれている。Shivprasad Koirala の記事では[2]、「制御の反転」はデザインパターンとしての「依存性の注入」と組み合わせて語られており、そこでは依存性の注入がデザインパターンで、制御の反転は依存性の注入を使って実装されるとしている。一方 Mani Malarvannan の記事では[3]、「制御の反転」は文脈化された参照 (contextualized lookup) を使ったデザインパターンとして紹介されている。サービスロケータを使ったものも同じデザインパターンだとされている。
Robert C. Martin の記事 "The Dependency Inversion Principle" では[4]、階層による抽象化と共に論じている。彼がここで "inversion" という言葉を使ったのは、従来のソフトウェア開発手法との対比のためであった。彼が "Dependency Inversion" と呼んでいるのは、階層による抽象化でサービス群を分離することである。抽象化層を作る際には、システムの境界がどこにあるかを知ることが重要である。
「制御の反転」は「依存性の注入」と密接に関連している。依存性の注入は「制御の反転」を実装する主な手法である。
実装技法
実装技法は使用するプログラミング言語によって異なる。以下はJavaでIoCを実装する際の概要である。JavaにはIoC実装に利用できる6つの技法がある。
- Factory パターンを使用する。
- サービスロケータを使用する。
- コンストラクタ注入を使用する。
- セッター注入を使用する。
- インタフェース注入を使用する。
- 文脈化された参照 (contextualized lookup)
マーティン・ファウラーの最初の論文では[5]、上記の5番目までを論じていた。Inversion of Control types[6] では最後の技法も言及されている。通常、文脈化された参照はサービスロケータを使って実装される。技法よりも「制御の反転」をどういう目的で使うのかが重要である。「制御の反転」はこれらの技法に限ったものではない。
IoC の利点と欠点
「制御の反転」には他の抽象化技法と同じように利点と欠点がある。大まかに言えば、特定のタスクは単純化されるが、アプリケーションの協調動作はより複雑になる。デビッド・ホイーラーの有名な格言に「計算機科学の全ての問題は別のレベルへのインダイレクションで解決できる」という言葉がある[7]。この言葉の「インダイレクション」を「抽象化 (abstraction)」と間違って引用していることが多い。Kevlin Henney はこの格言の系として「…ただし、レイヤーが多すぎるせいで発生する問題を除く」という言葉もある。
同じことは「制御の反転」にも言える。Robert C. Martin の記事[4]にあるコードを例に説明すると、最終的なコードには5つのクラスが定義されているが、手続き型プログラミングならこれを1つのメソッド(ルーチン)で実装できる。「制御の反転」は2つの実装を互いに分離するという利点があるが、同時に全体として協調動作させるときに複雑さが増す。
関連項目
- 抽象化レイヤ
- 非同期I/O
- コールバック (情報工学)
- クロージャ
- 継続
- デリゲート (プログラミング)
- 割り込みハンドラ
- モナド (プログラミング)
- Observer パターン
- 出版-購読型モデル
- シグナル (ソフトウェア)
- Strategy パターン
- Visitor パターン
- XSLT - データ駆動型のスクリプト言語。入力データの内容によってどのテンプレート(メソッド)をどういう順序で実行するかが制御される。テンプレートは自動的に完了時に入力データに制御を戻すこともあるが、<xsl:apply-templates /> コマンドを使えばそれも制御できる。
脚注・出典
- ^ Inversion of Control on Martin Fowler's Bliki - Martin Fowler
- ^ Design pattern – Inversion of control and Dependency injection - Shivprasad Koirala
- ^ Design Better Software with the Inversion of Control Pattern - Mani Malarvannan
- ^ a b The Dependency Inversion principle - Robert C. Martin
- ^ Inversion of Control Containers and the Dependency Injection Pattern - Martin Fowler
- ^ IoC Types
- ^ Tanenbaum, Andrew S. (1979年). Structured Computer Organization. Englewood Cliffs, New Jersey: Prentice-Hall. ISBN 0-13-148521-0.
外部リンク
国際オリンピック委員会
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2012/01/11 19:09 UTC 版)
(IOC から転送)
| 略称 | 仏: CIO、英: IOC |
|---|---|
| 設立年 | 1894年6月23日 |
| 種類 | スポーツ組織 |
| 本部 | ローザンヌ |
| メンバー | 205ヶ国 |
| ウェブサイト | http://www.olympic.org/ |
国際オリンピック委員会(こくさいオリンピックいいんかい、仏: Comité International Olympique, CIO、英: International Olympic Committee, IOC、以下IOCで記述)は、近代オリンピックを主催する団体であり、またオリンピックに参加する各種国際スポーツ統括団体を統括する組織である。本部はスイス・ローザンヌ。国連等の国際機関の一つと思われがちであるが、非政府の非営利団体であり、運営資金は主に放送権料販売とスポンサーシップ収入による。2009年に国際連合総会オブザーバー資格を得た。
目次 |
歴史・役割
1894年にクーベルタン男爵が近代オリンピックの設立を提言し、オリンピックを通じて世界平和を実現しようと訴えた。IOCは各オリンピック大会を運営する各大会組織委員会の親組織であり、五輪の商標、過去の大会の映像などの著作権その他の、オリンピック関連の知的財産権を国際的に保有する唯一団体である。また、オリンピックに関する、スポーツ競技大会以外の活動(文化オリンピック活動、オリンピック博物館など)も含めた、「オリンピック・ムーブメント」の運営統括団体である。
またスポーツ振興のための国際組織として、国際競技連盟(International Federations、IF)とも非常に密接な関連を保っており、またIOCの下部組織である国内オリンピック委員会(National Olympic Committees、NOC)を通じ、世界各国のスポーツ振興にも注力している。
公用語とオリンピック賛歌
IOCの公用語はフランス語、及び英語でIOCのすべての会議は仏英2ヶ国語で運営される。また「オリンピック賛歌(Olympic Anthem)」が国歌の様な扱いとして行事で歌われる。
招致都市
オリンピック競技大会を招致したいと言う意志のある都市は、IOCに立候補を申し入れ、IOC総会にてIOC委員(IOC members)の投票によって決定される。過去招致都市決定について、一部のIOC委員が買収されたりというスキャンダルがあったため、ジャック・ロゲ会長の強力なリーダーシップにより、近年投票による公正な選定プロセスが運用されるようになった。
組織
国内オリンピック委員会がある国に在住する者が、国ごとに1名(オリンピック運動が盛んな国やオリンピック開催経験がある国からは2名)がIOC委員として任命され、委員で組織するIOC総会が最高位の意思決定機関となる。
IOC総会によって会長、副会長、理事、会計役が選出され、これらの者で理事会を構成する。理事会の元に各種委員会が組織される。委員会のメンバーはIOC委員以外からも選任されることがある。
理事
歴代会長
- ディミトリオス・ヴィケラス(Demetrius Vikelas)(1894年 - 1896年)ギリシャ
- クーベルタン男爵(Pierre de Frédy, baron de Coubertin)(1896年 - 1925年)フランス
- アンリ・ド・バイエ=ラトゥール伯爵(Le comte Henri de Baillet-Latour)(1925年 - 1942年)ベルギー
- ヨハネス・ジークフリード・エドストレーム(Sigfrid Edström)(1946年 - 1952年)スウェーデン
- アベリー・ブランデージ(Avery Brundage)(1952年 - 1972年)アメリカ
- キラニン男爵(Michael Morris, 3rd Baron Killanin)(1972年 - 1980年)アイルランド
- フアン・アントニオ・サマランチ(Juan Antonio Samaranch)(1980年 - 2001年)スペイン
- ジャック・ロゲ伯爵(Le comte Jacques Rogge)(2001年 - )ベルギー
委員
日本から選出された委員
1950年5月にコペンハーゲンで開催されたIOC総会で日本のIOC委員は2名と定められている。
- 嘉納治五郎 1909年(明治42年)5月から1938年(昭和13年)5月まで(死去)
- 岸清一 1924年(大正13年)6月から1933年(昭和8年)10月まで(死去)
- 杉村陽太郎 1933年(昭和8年)6月から1936年(昭和11年)7月まで(辞任)
- 副島道正 1934年(昭和9年)6月から1948年(昭和23年)10月まで(死去)
- 徳川家達 1936年(昭和11年)7月から1939年(昭和14年)6月まで(辞任)
- 高石真五郎 1939年(昭和14年)6月から1966年(昭和41年)4月まで(死去)
- 永井松三 1939年(昭和14年)6月から1950年(昭和25年)5月まで(辞任)
- 東龍太郎 1950年(昭和25年)5月から1968年(昭和43年)まで(辞任)
- 清川正二 1969年(昭和44年)6月から1990年(平成2年)まで(辞任)
- 竹田恒徳 1967年(昭和42年)2月から1982年(昭和57年)まで(辞任)
- 猪谷千春 1982年(昭和57年)から。2005年よりIOC副会長。
- 岡野俊一郎 1990年(平成2年)9月から。
非正式競技の承認競技
IOC承認国際競技団体連合(ARISF)に国際競技団体 (IF) が加盟しているスポーツ
- 滑空
- 自動車
- バンディ
- ビリヤード
- ペタンク(他、スポールブール)
- ボウリング
- コントラクトブリッジ
- チェス
- ダンス
- ゴルフ
- 空手
- コーフボール
- ライフセービング
- オートバイ
- 山岳競技(スポーツクライミング)
- ネットボール
- オリエンテーリング
- ハイアライ
- ポロ
- ラケットボール
- ローラースポーツ
- ラグビー
- スカッシュ
- サーフィン
- 綱引き
- 水中スポーツ(フィンスイミングなど)
- 水上スキー
- 武術太極拳
- 水上オートバイ
- ボディービル
- 相撲
- 野球(2012年のロンドン大会は正式競技から除外される予定)
- ソフトボール(2012年のロンドン大会は正式競技から除外される予定)
このほかに、承認競技ではない競技も含むIOC公認団体国際競技団体連合 (GAISF) に国際競技団体 (IF) が加盟している競技がある。正式競技は夏季オリンピック、冬季オリンピック、夏季オリンピックの競技一覧、冬季オリンピックの競技一覧を参照。
関連項目
オリンピック大会
地域オリンピック委員会
- アジアオリンピック評議会(OCA)
- ヨーロッパオリンピック委員会(EOC)
- パン・アメリカンスポーツ機構(PASO)
- アフリカオリンピック委員会連合(ANOCA)
- オセアニアオリンピック委員会(ONOC)
主な国内オリンピック委員会 (NOC)
- 日本オリンピック委員会(JOC)
- アメリカオリンピック委員会(USOC)
- イギリスオリンピック委員会(BOA)
その他関係団体
- 国際パラリンピック委員会(IPC)
- スポーツアコード (スポーツ組織)(旧GAISF) - IOC承認団体。
- ワールドゲームズ - IOC後援国際競技大会。
- 国際自動車連盟(FIA) - 2011年12月より2年間の暫定的なIOC承認団体[1]。
脚注
外部リンク
|
||||||||||||||
IOCに関係した商品
- 【エントリーで12/19(月)10:00〜12/27(火)9:59までポイント10倍以上】買いまわりセール中【中古】遊戯王/INVASION OF CHAOS(IOC) IOC-AE75 : BLACK TYRANNO/暗黒恐獣(アジア版)【10P20Dec11】【画】ネットショップ駿河屋 楽天市場店
- 【エントリーで12/19(月)10:00〜12/27(火)9:59までポイント10倍以上】買いまわりセール中【中古】遊戯王/韓国語/SR/Invasion of Chaos IOC-KR033 : 野性解放【10P20Dec11】ネットショップ駿河屋 楽天市場店
- 【エントリーで12/19(月)10:00〜12/27(火)9:59までポイント10倍以上】買いまわりセール中【中古】遊戯王/INVASION OF CHAOS(IOC) IOC-AE101 : DESTRUCTION RING/破壊指輪(アジア版)【10P20Dec11】ネットショップ駿河屋 楽天市場店