<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-2079305058201693972</atom:id><lastBuildDate>Thu, 16 Feb 2012 06:21:32 +0000</lastBuildDate><category>Puppet</category><category>Phroni</category><category>Weaver</category><category>Fabric</category><category>Linux</category><category>CentOS</category><title>Ousia Lab.</title><description>株式会社Studio Ousiaの公式ブログです。</description><link>http://blog.ousia.jp/</link><managingEditor>noreply@blogger.com (Studio Ousia Inc.)</managingEditor><generator>Blogger</generator><openSearch:totalResults>4</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/ousialab" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="ousialab" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2079305058201693972.post-7313563016094045211</guid><pubDate>Mon, 25 Apr 2011 04:19:00 +0000</pubDate><atom:updated>2011-04-25T13:40:20.618+09:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">CentOS</category><category domain="http://www.blogger.com/atom/ns#">Linux</category><category domain="http://www.blogger.com/atom/ns#">Fabric</category><title>Fabricで複数サーバのyumパッケージ更新を効率化</title><description>こんにちは。ikuyamadaです。&lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;Fabric&lt;/em&gt;というPythonのライブラリをご存知ですか？&lt;em&gt;Fabric&lt;/em&gt;は、SSH経由で任意のコマンドを実行するPythonスクリプトを簡単に記述できるようにするためのライブラリです。&lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;Fabric&lt;/em&gt;を使うと、従来はシェルスクリプト等で行っていた、ソフトウェアの複数サーバへのデプロイやシステム管理などを簡単なPythonのスクリプトで自動化することが出来ます。&lt;br /&gt;
&lt;br /&gt;
例えば、通常のコマンド実行は、&lt;em&gt;run("ls")&lt;/em&gt;などと書けばできますし、その他、管理者権限のコマンドを実行する&lt;em&gt;sudo&lt;/em&gt;や任意のファイルをコピーする&lt;em&gt;put&lt;/em&gt;など、様々な関数が用意されています。&lt;br /&gt;
&lt;br /&gt;
今回は、&lt;em&gt;Fabric&lt;/em&gt;の紹介も兼ねて、弊社で実際に用いている&lt;em&gt;Fabric&lt;/em&gt;を用いたyumによるパッケージ更新スクリプトについて紹介と思います。この簡単なスクリプトを使うと、複数のサーバへのyumのパッケージ更新を、内容を確認しながらインタラクティブに行えるようになります。&lt;br /&gt;
&lt;br /&gt;
（この記事は、先月に&lt;a href="http://linuxgazette.net/" target="_blank"&gt;Linux Gazette&lt;/a&gt;誌に投稿した「&lt;a href="http://linuxgazette.net/185/ikuya.html" target="_blank"&gt;Applying Yum Package Updates to Multiple Servers Using Fabric&lt;/a&gt;」を翻訳、編集したものです）&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;インストール&lt;/h2&gt;&lt;br /&gt;
まず&lt;em&gt;Fabric&lt;/em&gt;をインストールする必要があります。&lt;em&gt;easy_install&lt;/em&gt;や&lt;em&gt;pip&lt;/em&gt;でインストール可能です。&lt;br /&gt;
&lt;br /&gt;
CentOSの場合は、下記のように、まず&lt;a href="http://fedoraproject.org/wiki/EPEL" target="_blank"&gt;EPEL&lt;/a&gt;およびPython 2.6をインストールした後、&lt;em&gt;easy_install&lt;/em&gt;で&lt;em&gt;Fabric&lt;/em&gt;を導入します。&lt;br /&gt;
&lt;pre&gt;EPELをインストール:
# sudo rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm
Python 2.6をインストール:
# sudo yum -y install gcc python26 python26-devel python26-distribute
Fabricをインストール:
# sudo easy_install-2.6 fabric&lt;/pre&gt;&lt;h2&gt;スクリプト&lt;/h2&gt;それではスクリプトを紹介します。任意のディレクトリに&lt;em&gt;fabfile.py&lt;/em&gt;というファイルを作成し、下記の内容をペーストしてください。&lt;br /&gt;
&lt;pre&gt;#!/usr/bin/env python2.6

from fabric.api import *
from fabric.contrib.console import confirm

env.warn_only = True

def update():
    if run("yum check-update").return_code != 0:
        if confirm("execute yum update?", default=False) == True:
            sudo("yum -y update")&lt;/pre&gt;このスクリプトでは各サーバにSSHで接続、&lt;em&gt;yum check-update&lt;/em&gt;を実行し、アップデートがあった場合に、アップデートの内容を表示して、&lt;em&gt;yum -y update&lt;/em&gt;を実行するかどうか問い合せます。&lt;br /&gt;
&lt;br /&gt;
内部的には、&lt;em&gt;yum check-update&lt;/em&gt;がパッケージの更新があった場合に返り値として0以外を返すため、それを利用して、パッケージ更新があるかないかを検出しています。&lt;br /&gt;
また、&lt;em&gt;Fabric&lt;/em&gt;はコマンドの返り値が0以外であった場合にデフォルトで終了してしまうため、&lt;em&gt;env.warn_only = True&lt;/em&gt;とすることで、終了しないように設定しています。&lt;br /&gt;
&lt;br /&gt;
それでは、早速実行してみます。&lt;em&gt;fabfile.py&lt;/em&gt;を作成したディレクトリで下記のコマンドを実行してみてください。&lt;br /&gt;
&lt;pre&gt;# fab -H HOST_NAME1,HOST_NAME2 update&lt;/pre&gt;(HOST_NAME1, HOST_NAME2にホスト名を入力してください)&lt;br /&gt;
&lt;br /&gt;
そうすると、下記のような形で、&lt;em&gt;Fabric&lt;/em&gt;がパッケージ更新があるかをチェックし、更新がある場合、更新を行うかどうかを問い合せます。&lt;br /&gt;
&lt;pre&gt;[qui-gon.ikuya.net] Executing task 'update'
[qui-gon.ikuya.net] run: yum check-update
[qui-gon.ikuya.net] out: Loaded plugins: fastestmirror
[qui-gon.ikuya.net] out:
[qui-gon.ikuya.net] out: bind-libs.x86_64                        30:9.3.6-4.P1.el5_5.3            updates
(snip)
[qui-gon.ikuya.net] out: udev.x86_64                             095-14.21.el5_5.1                updates

Warning: run() encountered an error (return code 100) while executing 'yum check-update'

execute yum update? [y/N]&lt;/pre&gt;&lt;br /&gt;
また、下記のような形で&lt;em&gt;fabfile.py&lt;/em&gt;内に予めホスト名を設定しておくこともできます。&lt;br /&gt;
&lt;pre&gt;#!/usr/bin/env python2.6

from fabric.api import env, run, sudo
from fabric.contrib.console import confirm

env.hosts = [
    "HOST_NAME1",
    "HOST_NAME2"
]
（略）&lt;/pre&gt;&lt;h2&gt;最後に&lt;/h2&gt;今回は&lt;em&gt;Fabric&lt;/em&gt;を使ってyumのパッケージ更新スクリプトを紹介しました。もし&lt;em&gt;Fabric&lt;/em&gt;に興味を持たれた場合は、&lt;a href="http://docs.fabfile.org"&gt;Fabricのオフィシャルドキュメント&lt;/a&gt;を参照してみてください。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2079305058201693972-7313563016094045211?l=blog.ousia.jp' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.ousia.jp/2011/04/fabricyum.html</link><author>noreply@blogger.com (ikuyamada)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2079305058201693972.post-7229443025036407181</guid><pubDate>Mon, 04 Apr 2011 11:17:00 +0000</pubDate><atom:updated>2011-04-04T23:33:19.892+09:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">CentOS</category><category domain="http://www.blogger.com/atom/ns#">Puppet</category><category domain="http://www.blogger.com/atom/ns#">Linux</category><title>PuppetでCentOSサーバ管理を自動化</title><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;こんにちは。ikuyamadaです。&lt;br /&gt;
&lt;br /&gt;
今回は、独自のプログラミング言語を使ってサーバの状態を記述することで、サーバ管理を効率化することの出来るツール「Puppet」を使ったサーバ管理手法について紹介したいと思います。当社では、このPuppetを使うことで、かなりサーバ管理を効率的に管理することができるようになりました。皆さんもぜひ一度使ってみてください。&lt;br /&gt;
&lt;br /&gt;
(この記事は2月にLinux Gazette誌に寄稿した「&lt;a href="http://linuxgazette.net/183/ikuya.html"&gt;Automating virtual server administration using Puppet&lt;/a&gt;」を翻訳し編集したものです)&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;イントロダクション&lt;/h2&gt;&lt;br /&gt;
サーバ環境をXenやKVMなどで構築すると、使用する仮想サーバの台数は多くなりがちです。用途ごとに仮想サーバを切り分けることで、サーバ資源をより有効に使用できたり、障害の原因を切り分けられるなどのメリットがありますが、反面、サーバのインストールや運用にはより多くの手間がかかるようになります。また、cronやapacheなど、複数のサーバで使用されている設定を変更するのも大変です。&lt;br /&gt;
&lt;br /&gt;
そこで、今回は、弊社のサーバ環境でも広範に使用されている「Puppet」というツールを使って、自動的にサーバ環境を構築・運用できる方法を紹介したいと思います。このツールは主に大規模サーバの管理を効率化するために作られたものですが、小規模なサーバ管理にも適しています。&lt;br /&gt;
&lt;br /&gt;
掲載された設定例を使うことで、数行のコマンドを打つだけで、基本的なセキュリティ設定を含めた新しいサーバを簡単にセットアップすることができます。また、Puppetは自動的に設定をサーバ間で同期するため、設定を最新のものに保つこともできます。&lt;br /&gt;
&lt;br /&gt;
ここで紹介するサーバの設定はCentOS 5.5でテストを行っています。&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;インストール&lt;/h2&gt;&lt;br /&gt;
Puppetはクライアント/サーバモデルで動作します。各クライアントは定期的にマスターサーバと設定を同期します。このため、Puppetのインストールにはマスタサーバとクライアントサーバを１台ずつ用意する必要があります。&lt;br /&gt;
&lt;br /&gt;
それではPuppetをインストールします。&lt;a href="http://fedoraproject.org/wiki/EPEL"&gt;Fedora EPEL&lt;/a&gt;がPuppetのYumパッケージを提供しているため、まずインストールします。&lt;br /&gt;
&lt;pre&gt;$ sudo rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm&lt;/pre&gt;そして、&lt;em&gt;puppet-server&lt;/em&gt;パッケージをマスターサーバに、&lt;em&gt;puppet&lt;/em&gt;パッケージをクライアントサーバにインストールします。&lt;br /&gt;
&lt;br /&gt;
マスターサーバ：&lt;br /&gt;
&lt;pre&gt;$ sudo yum -y install puppet-server
$ sudo service puppetmaster start&lt;/pre&gt;&lt;br /&gt;
クライアントサーバ：&lt;br /&gt;
&lt;pre&gt;$ sudo yum -y install puppet
$ sudo service puppet start&lt;/pre&gt;&lt;br /&gt;
&lt;h2&gt;Puppetの簡単な紹介&lt;/h2&gt;&lt;br /&gt;
Puppetでは、全ての設定を「リソース」として記述します。リソースではファイルやソフトウェア・パッケージ、サービスなど様々なものを記述できます。例えば、下記のリソースは&lt;em&gt;/etc/passwd&lt;/em&gt;がrootによって所有され、644のパーミッションを保持していることを示しています。&lt;br /&gt;
&lt;pre&gt;file { '/etc/passwd':
    owner   =&amp;gt; root,
    mode    =&amp;gt; 644,
}&lt;/pre&gt;また、下記の設定は、&lt;em&gt;openssh-server&lt;/em&gt;パッケージをインストールし、&lt;em&gt;sshd&lt;/em&gt;サービスをデフォルトで有効化することを示しています。&lt;br /&gt;
&lt;pre&gt;package { 'openssh-server':
    ensure =&amp;gt; installed,
}

service { 'sshd':
    enable  =&amp;gt; true,
    ensure  =&amp;gt; running,
    require =&amp;gt; Package['openssh-server'],
}&lt;/pre&gt;それでは、これらの設定を適用してみたいと思います。Puppetは、デフォルトで&lt;em&gt;site.pp&lt;/em&gt;というファイルを使用します。まずは&lt;em&gt;site.pp&lt;/em&gt;を作成しましょう。下記の内容をマスターサーバの&lt;em&gt;/etc/puppet/manifests/site.pp&lt;/em&gt;にペーストしてください。&lt;br /&gt;
&lt;pre&gt;file { '/etc/passwd':
    owner   =&amp;gt; root,
    mode    =&amp;gt; 644,
}

package { 'openssh-server':
    ensure =&amp;gt; installed,
}

service { 'sshd':
    enable  =&amp;gt; true,
    ensure  =&amp;gt; running,
    require =&amp;gt; Package['openssh-server'],
}&lt;/pre&gt;次にクライアントサーバをマスターサーバに登録する必要があります。下記のコマンドを順にクライアントサーバとマスターサーバで実行してください。&lt;br /&gt;
&lt;br /&gt;
クライアントサーバ:&lt;br /&gt;
&lt;pre&gt;$ sudo puppetd --test --waitforcert 30 --server MASTER_SERVER_ADDRESS&lt;/pre&gt;マスターサーバ:&lt;br /&gt;
&lt;pre&gt;$ sudo puppetca --list
(クライアントサーバのアドレスが表示されます)
$ sudo puppetca --sign CLIENT_SERVER_ADDRESS&lt;/pre&gt;クライアントサーバのコンソールでしばらく待つと、Puppetが設定を同期するメッセージが表示されると思います。もし表示されない場合は、一旦コマンドをCtrl-Cで終了し、下記コマンドを再度実行してみてください。&lt;br /&gt;
&lt;pre&gt;$ sudo puppetd --test --server MASTER_SERVER_ADDRESS&lt;/pre&gt;&lt;br /&gt;
最後に、Puppetにマスターサーバのアドレスを登録するため、クライアントサーバの&lt;em&gt;/etc/puppet/puppet.conf&lt;/em&gt;に下記の内容を記述してください。&lt;br /&gt;
&lt;br /&gt;
クライアントサーバ:&lt;br /&gt;
&lt;pre&gt;[main]
server = MASTER_SERVER_ADDRESS&lt;/pre&gt;設定後、Puppetは30分ごとに自動的に設定を同期します。設定が成功していれば、&lt;em&gt;/var/log/messages&lt;/em&gt;でログを確認することができるはずです。&lt;br /&gt;
&lt;pre&gt;$ sudo tail /var/log/messages&lt;/pre&gt;&lt;br /&gt;
&lt;h2&gt;設定例&lt;/h2&gt;&lt;br /&gt;
この節では、いくつかの基本的な設定例を記述します。&lt;em&gt;site.pp&lt;/em&gt;に記述することで使用することができます。&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;管理ユーザの追加&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
Puppetはユーザアカウントの管理を行える&lt;em&gt;user&lt;/em&gt;リソースを提供しています。下記の設定で、サーバに&lt;em&gt;admin&lt;/em&gt;ユーザを追加します。&lt;br /&gt;
&lt;pre&gt;# Add "admin" account
user { 'admin':
     # home directory is /home/admin
    home       =&amp;gt; '/home/admin',
    # manage the home directory by Puppet
    managehome =&amp;gt; true,
    # the user belongs to wheel group
    groups     =&amp;gt; ['wheel'],
    # hashed password text
    password   =&amp;gt; 'PASSWORD_HASH',
}&lt;/pre&gt;&lt;em&gt;PASSWORD_HASH&lt;/em&gt;は&lt;em&gt;/etc/shadow&lt;/em&gt;等で使われている基本的なパスワードハッシュです。Perl等で簡単に生成することが出来ます。&lt;br /&gt;
&lt;pre&gt;$ perl -wle 'print crypt "PASSWORD", "SALT"'&lt;/pre&gt;&lt;strong&gt;sudo&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
下記の設定は&lt;em&gt;sudo&lt;/em&gt;パッケージをインストールし、&lt;em&gt;augeas&lt;/em&gt;を使ってwheelユーザにsudoの実行権限を付与します。&lt;br /&gt;
&lt;pre&gt;# Install sudo package
package { 'sudo':
    ensure =&amp;gt; installed,
}

# Allow users belonging wheel group to use sudo
augeas { 'sudowheel':
    context =&amp;gt; '/files/etc/sudoers',
    changes =&amp;gt; [
        'set spec[user = "%wheel"]/user %wheel',
        'set spec[user = "%wheel"]/host_group/host ALL',
        'set spec[user = "%wheel"]/host_group/command ALL',
        'set spec[user = "%wheel"]/host_group/command/runas_user ALL',
    ]
}&lt;/pre&gt;&lt;strong&gt;SSH&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
下記の設定は&lt;em&gt;ssh&lt;/em&gt;をサーバで有効化し、ssh経由でのrootログイン及び空パスワードでのログインを抑制します。&lt;br /&gt;
&lt;pre&gt;# Install openssh-server package
package { 'openssh-server':
    ensure =&amp;gt; installed,
}

# Enable sshd service
service { 'sshd':
    # execute sshd on startup
    enable  =&amp;gt; true,
    # ensure sshd running
    ensure  =&amp;gt; running, 
    # require openssh-server before applying this config
    require =&amp;gt; Package['openssh-server'],
}

# Change sshd configuration
augeas { 'sshd_config':
    context =&amp;gt; '/files/etc/ssh/sshd_config',
    # restart sshd after applying this config
    notify  =&amp;gt; Service['sshd'],
    changes =&amp;gt; [
        # deny root logins and logins with empty passwords
        'set PermitRootLogin no',
        'set PermitEmptyPasswords no',
    ],
}&lt;/pre&gt;&lt;strong&gt;iptables&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
Puppetで&lt;em&gt;iptables&lt;/em&gt;を管理するには&lt;em&gt;puppet-iptables&lt;/em&gt;という外部モジュールをインストールする必要があります。下記のコマンドでGitHubからインストールします。(&lt;em&gt;git&lt;/em&gt;がない場合はインストールしてください)&lt;br /&gt;
&lt;pre&gt;$ cd /tmp
$ git clone https://github.com/kbarber/puppet-iptables.git
$ sudo mkdir -p /etc/puppet/modules
$ sudo mv puppet-iptables /etc/puppet/modules/&lt;/pre&gt;また、プラグインを追加するため、下記の設定をマスターサーバ・クライアントサーバ双方の&lt;em&gt;/etc/puppet/puppet.conf&lt;/em&gt;に追加する必要があります。&lt;br /&gt;
&lt;pre&gt;[main]
    libdir = /var/lib/puppet/lib

[puppetd]
    pluginsync=true
    plugindest=/var/lib/puppet/lib&lt;/pre&gt;これで&lt;em&gt;iptables&lt;/em&gt;リソースが使えるようになったはずです。&lt;br /&gt;
&lt;br /&gt;
下記の設定は、内側からの接続、&lt;em&gt;localhost&lt;/em&gt;、及び&lt;em&gt;SSH&lt;/em&gt;のパケット以外を全てドロップする基本的なiptablesの設定を記述しています。&lt;br /&gt;
&lt;pre&gt;# Allow packets that belong to or related to an existing connection
iptables { 'allow established, related':
    state =&amp;gt; ['ESTABLISHED', 'RELATED'],
    proto =&amp;gt; 'all',
    jump  =&amp;gt; 'ACCEPT',
}

# Allow all packets from localhost
iptables { 'allow localhost':
    source =&amp;gt; '127.0.0.1',
    proto  =&amp;gt; 'all',
    jump   =&amp;gt; 'ACCEPT',
}

# Allow all packets to SSH
iptables { 'allow ssh':
    proto =&amp;gt; 'tcp',
    dport =&amp;gt; 22,
    jump  =&amp;gt; 'ACCEPT',
}

# Drop all incoming packets by default
iptables { 'drop incoming packets':
    chain =&amp;gt; 'INPUT',
    proto =&amp;gt; 'all',
    jump  =&amp;gt; 'DROP',
}&lt;/pre&gt;&lt;br /&gt;
&lt;h2&gt;最後に&lt;/h2&gt;&lt;br /&gt;
この記事では非常に基本的なPuppetの使用法及び設定例を紹介しました。もしPuppetにご興味を持たれた場合は、&lt;a href="http://docs.puppetlabs.com/"&gt;Puppetのオフィシャルドキュメント&lt;/a&gt;を参照してください。日本語のリソースでは、「&lt;a href="http://gihyo.jp/admin/serial/01/puppet"&gt;オープンソースなシステム自動管理ツール Puppet&lt;/a&gt;」にもより詳しい情報があります。&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2079305058201693972-7229443025036407181?l=blog.ousia.jp' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.ousia.jp/2011/04/puppetcentos.html</link><author>noreply@blogger.com (ikuyamada)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2079305058201693972.post-2310951439816854379</guid><pubDate>Tue, 15 Jun 2010 04:09:00 +0000</pubDate><atom:updated>2011-04-04T00:21:13.300+09:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Phroni</category><category domain="http://www.blogger.com/atom/ns#">Weaver</category><title>Interop Tokyo 2010に出展</title><description>幕張メッセで開催されたInterop Tokyo 2010にて、慶應義塾大学W3C内にStudio Ousiaのブースを設け、弊社の開発中のプロダクト「Phroni」と「Weaver」のデモ展示及びプレゼンテーションを行いました。&lt;br /&gt;
&lt;br /&gt;
プレゼンテーション：&lt;br /&gt;
&lt;div style="width:425px" id="__ss_4473578"&gt;&lt;strong style="display:block;margin:12px 0 4px"&gt;&lt;a href="http://www.slideshare.net/ikuyamada/phroni" title="Phroni: 「セマンティック・マッシュアップ」で作る新しいダイナミック百科事典サービス"&gt;Phroni: 「セマンティック・マッシュアップ」で作る新しいダイナミック百科事典サービス&lt;/a&gt;&lt;/strong&gt; &lt;object id="__sse4473578" width="425" height="355"&gt; &lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=interop2010-100611061230-phpapp01&amp;stripped_title=phroni&amp;userName=ikuyamada" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed name="__sse4473578" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=interop2010-100611061230-phpapp01&amp;stripped_title=phroni&amp;userName=ikuyamada" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt; &lt;/object&gt; &lt;div style="padding:5px 0 12px"&gt;View more &lt;a href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/ikuyamada"&gt;Ikuya Yamada&lt;/a&gt; &lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
ブースの様子：&lt;br /&gt;
&lt;table style="width: auto;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/yYHE-iyjaKJHq0WpmTqaUGMUkTLK7hCgr-7n2NhAvDw?feat=embedwebsite"&gt;&lt;img src="http://lh6.ggpht.com/_ZpBWogOuFXo/TBb7IUi2EdI/AAAAAAAAAFg/pfRPgmRAC34/s400/DSCN0213.JPG" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="font-family: arial,sans-serif; font-size: 11px; text-align: right;"&gt;送信者 &lt;a href="http://picasaweb.google.com/105952910874349315697/InteropTokyo2010?authkey=Gv1sRgCN2E3uGJxcLRJQ&amp;amp;feat=embedwebsite"&gt;Interop Tokyo 2010&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
発表の様子：&lt;br /&gt;
&lt;table style="width: auto;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/n6E91AIK25cljh7Y-tprrmMUkTLK7hCgr-7n2NhAvDw?feat=embedwebsite"&gt;&lt;img src="http://lh6.ggpht.com/_ZpBWogOuFXo/TBb7I8fMAlI/AAAAAAAAAFk/fKxuXQ-5xko/s288/4695842119.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="font-family: arial,sans-serif; font-size: 11px; text-align: right;"&gt;送信者 &lt;a href="http://picasaweb.google.com/105952910874349315697/InteropTokyo2010?authkey=Gv1sRgCN2E3uGJxcLRJQ&amp;amp;feat=embedwebsite"&gt;Interop Tokyo 2010&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
弊社ブースにお越しくださったみなさま、どうもありがとうございました。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2079305058201693972-2310951439816854379?l=blog.ousia.jp' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.ousia.jp/2010/06/interop-tokyo-2010w3cstudio.html</link><author>noreply@blogger.com (Studio Ousia Inc.)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/_ZpBWogOuFXo/TBb7IUi2EdI/AAAAAAAAAFg/pfRPgmRAC34/s72-c/DSCN0213.JPG" height="72" width="72" /><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2079305058201693972.post-3925477293762992000</guid><pubDate>Fri, 11 Jun 2010 04:36:00 +0000</pubDate><atom:updated>2011-04-04T00:26:06.892+09:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Phroni</category><title>Phroniを国際会議で発表</title><description>先日、弊社のプロダクト「Phroni」を、ギリシャのクレタ島で開催されたSemantic Webに関する国際会議「&lt;a href="http://www.eswc2010.org/"&gt;ESWC2010（Extended Semantic Web Conference 2010）&lt;/a&gt;」にて発表し、オライリーメディア社よりアワードをいただきました。&lt;br /&gt;
今回は発表の内容を簡単にご紹介します。&lt;br /&gt;
&lt;h2&gt;発表内容&lt;/h2&gt;ESWC2010はSemantic Webに関する国際的に著名な国際会議の一つです。今回は、弊社の技術を用いて、Web上の情報から動的に百科事典を生成するPhroniという開発中のサービスの一部を展示させていただきました。&lt;br /&gt;
&lt;br /&gt;
発表スライド:&lt;br /&gt;
&lt;strong style="display: inline !important; margin-bottom: 4px; margin-left: 0px; margin-right: 0px; margin-top: 12px;"&gt;&lt;a href="http://www.slideshare.net/ikuyamada/phroni-augmenting-wikipedia-using-mashups" title="Phroni: Augmenting Wikipedia Using Mashups"&gt;Phroni: Augmenting Wikipedia Using Mashups&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;div id="__ss_4343460" style="width: 425px;"&gt;&lt;object height="355" id="__sse4343460" width="425"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=aimashup2010-100528093129-phpapp02&amp;amp;rel=0&amp;amp;stripped_title=phroni-augmenting-wikipedia-using-mashups" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed name="__sse4343460" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=aimashup2010-100528093129-phpapp02&amp;amp;rel=0&amp;amp;stripped_title=phroni-augmenting-wikipedia-using-mashups" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;
&lt;div style="padding: 5px 0 12px;"&gt;View more &lt;a href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/ikuyamada"&gt;ikuyamada&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;発表資料:&lt;br /&gt;
Phroni: Augmenting Wikipedia Using Mashups&lt;br /&gt;
&lt;a href="http://sites.google.com/a/fh-hannover.de/aimashup/home/phroni"&gt;http://sites.google.com/a/fh-hannover.de/aimashup/home/phroni&lt;/a&gt;&lt;br /&gt;
&lt;h2&gt;会場の様子&lt;/h2&gt;会場:&lt;br /&gt;
&lt;table style="width: auto;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/U_aRrDm_lgvG862NNeTsAQ?feat=embedwebsite"&gt;&lt;img src="http://lh6.ggpht.com/_ZpBWogOuFXo/TA4Z9PXfJTI/AAAAAAAAAEc/TdsF5MLr1ek/s288/DSCN0054.JPG" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="font-family: arial,sans-serif; font-size: 11px; text-align: right;"&gt;送信者 &lt;a href="http://picasaweb.google.com/105952910874349315697/ESWC2010?feat=embedwebsite"&gt;ESWC2010&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;授賞式:&lt;br /&gt;
&lt;table style="width: auto;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/A8oFlS_ekqz7UjM-NmLy2g?feat=embedwebsite"&gt;&lt;img src="http://lh6.ggpht.com/_ZpBWogOuFXo/TBLY1PwDPrI/AAAAAAAAAFI/mCX6E_r7Wcs/s288/_ER_1650.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="font-family: arial,sans-serif; font-size: 11px; text-align: right;"&gt;送信者 &lt;a href="http://picasaweb.google.com/105952910874349315697/ESWC2010?feat=embedwebsite"&gt;ESWC2010&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
今回の国際会議で得た知見を活かして、今後とも開発を頑張って続けていきたいと思います。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2079305058201693972-3925477293762992000?l=blog.ousia.jp' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.ousia.jp/2010/06/phronieswc.html</link><author>noreply@blogger.com (Studio Ousia Inc.)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/_ZpBWogOuFXo/TA4Z9PXfJTI/AAAAAAAAAEc/TdsF5MLr1ek/s72-c/DSCN0054.JPG" height="72" width="72" /><thr:total>0</thr:total></item></channel></rss>

