<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>技術レポート</title>
    <link rel="alternate" type="text/html" href="http://www.arksystems.co.jp/closeupit/" />
    <link rel="self" type="application/atom+xml" href="http://www.arksystems.co.jp/closeupit/atom.xml" />
    <id>tag:www.arksystems.co.jp,2010-11-22:/closeupit//5</id>
    <updated>2012-02-21T02:58:42Z</updated>
    <subtitle>顧客・技術動向から製品比較・構築・導入事例まで！
IT基盤構築・運用のプロによる技術レポート

実際にシステムを構築・運用している当社技術者が各テーマを担当。IT関連の多種多様な情報が溢れるなか、システム構築や製品選定をする際の判断材料や基準となる情報を整理し、現場担当者ならではの視点でレポートしていきます。</subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type Pro 5.06</generator>

<entry>
    <title>【事例2】HiperSocketsを活用してアクセス高速化を実現した新規ファイルサーバーシステム構築</title>
    <link rel="alternate" type="text/html" href="http://www.arksystems.co.jp/closeupit/zlinux/0202.html" />
    <id>tag:www.arksystems.co.jp,2012:/closeupit//5.559</id>

    <published>2012-02-17T05:00:00Z</published>
    <updated>2012-02-21T02:58:42Z</updated>

    <summary> 	この章ではアークシステムが携わったz/Linux構築事例を2点紹介いたします...</summary>
    <author>
        <name>ウェブマスター</name>
        
    </author>
    
        <category term="z/Linuxノウハウ紹介 ～構築の勘どころからPCでの稼動方法まで～" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.arksystems.co.jp/closeupit/">
        <![CDATA[<p>
	この章ではアークシステムが携わったz/Linux構築事例を2点紹介いたします。2つめはHiperSocketsを活用してアクセス高速化を実現した新規ファイルサーバーシステムの構築事例です。</p>
<h2>
	プロジェクト概要</h2>
<p>
	金融系企業のお客様において新規システムとしてファイルサーバーを構築しました。業務性質上は高い信頼性と拡張性、高速でのファイル共用などが求められるものの、コストミニマムでの運用が必要という要件を満たすために、z/Linuxによる環境構築を採択しました。</p>
<h2>
	アークシステムの担当業務</h2>
<p>
	当プロジェクトにおいてアークシステムは主に以下の範囲を担当しました。</p>
<ul>
	<li>
		システム詳細設計</li>
	<li>
		z/Linux環境構築方法および運用方法の検討</li>
	<li>
		インフラ構築から結合テストまで</li>
</ul>
<h2>
	特徴</h2>
<h3>
	1. HiperSocketsを活用したファイル共用の高速化</h3>
<p>
	System z上のz/Linux同士でファイルシステムを共有した上でクライアント（Windows端末）へ資源を提供するという要件を満たすために、System zの機能であるHiperSocketsと呼ばれるネットワークインターフェース上にNFSを構築することで、ファイルシステム共有を実装しました。</p>
<p>
	HiperSocketsとは仮想的なネットワークインターフェースであり、同一筐体内の仮想区画同士がメモリー転送速度とほぼ同等の速度で通信を行えるという仕組みです。これを用いることによって高速なI/Oが可能なNFSを構築しました。</p>
<p>
	<img alt="HiperSocketsを活用したファイル共用の高速化" class="bdr-fine" height="245" src="http://www.arksystems.co.jp/closeupit/materials/hipersockets.jpg" width="491" /></p>
<p>
	HiperSocketsを活用したファイル共用の高速化</p>
<h3>
	2. 設計書（設定情報）と実際の設定値の設定や検証の効率化</h3>
<p>
	z/Linuxのパラメータ設定および確認コマンドからの出力形式を意識した上で、設計書（設定情報部分）のフォーマットおよび記述方法を検討・作成し、設定ミスや、設定値の確認ミスを極力排除する仕組みを構築しました。</p>
<p>
	&nbsp;</p>
<hr />
<div class="supplement">
	次章では、実際にz/Linuxを触っていただくために、Herculesというエミュレータを使い、PC上にz/Linuxをインストールする手順を紹介します。</div>
]]>
        
    </content>
</entry>

<entry>
    <title>【事例1】世界初、z/LinuxでSatellite Serverによるパッケージ管理を実現した大規模サーバー統合</title>
    <link rel="alternate" type="text/html" href="http://www.arksystems.co.jp/closeupit/zlinux/0201.html" />
    <id>tag:www.arksystems.co.jp,2012:/closeupit//5.558</id>

    <published>2012-02-17T04:00:00Z</published>
    <updated>2012-02-17T05:26:21Z</updated>

    <summary> 	この章ではアークシステムが携わったz/Linux構築事例を2点紹介いたします...</summary>
    <author>
        <name>ウェブマスター</name>
        
    </author>
    
        <category term="z/Linuxノウハウ紹介 ～構築の勘どころからPCでの稼動方法まで～" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.arksystems.co.jp/closeupit/">
        <![CDATA[<p>
	この章ではアークシステムが携わったz/Linux構築事例を2点紹介いたします。1つめはSatellite Serverによる大量のパッケージ管理を世界で初めてz/Linuxシステムで実現した大規模サーバー統合の事例です。</p>
<h2>
	プロジェクト概要</h2>
<p>
	金融機関の基幹システムにおいて、650店舗を越える営業店に散在する2100台のサーバーをz/Linuxによって統合するという、アジア圏内では最大級の統合規模となったプロジェクトでした。サーバーのコンソリデーションによって運用コスト、維持管理コストを削減するとともに、System zの高い信頼性を活かした高可用システムを実現するということが、本プロジェクトの目的でした。お客様は元より、メーカーのIBM社や運用ベンダーの方も含めるとピーク時6000人のエンジニアが関わった大規模プロジェクトとなりました。</p>
<p>
	アークシステムは、z/Linuxインフラの設計・構築に留まらず、システムアベイラビリティの確保、および大規模サーバー群のリソース管理（Linuxパッケージ管理）を実現する運用上の仕組み作りに携わりました。どちらも、大規模なサーバー統合においては必ず必要になるノウハウと考えております。</p>
<h2>
	アークシステムの担当業務</h2>
<p>
	当プロジェクトにおいてアークシステムは主に以下の範囲を担当しました。</p>
<ul>
	<li>
		&nbsp;ハードウェア構成設計、定義</li>
	<li>
		&nbsp;z/Linux環境構築</li>
	<li>
		&nbsp;インフラ系基本テスト、結合テスト</li>
	<li>
		&nbsp;Satellite Serverによるパッケージ管理</li>
</ul>
<h2>
	特徴</h2>
<h3>
	1. LVMミラーによる可用性の確保</h3>
<p>
	アプリケーション要件として挙げられた「ディスク筐体障害時やロングビジー状態時等の際、アプリケーションのタイムアウト値以内にI/Oを再開し業務を継続する」というサービスレベルを満たすために、IBMが開発したLVMミラーという技術を採用して可用性の高いシステムを構築しました。基本的な操作は通常のLVMと同じなのですが、ログ領域の冗長化や片系障害時におけるI/Oの継続等、様々な機能を追加したものです。そのテクノロジーに関する技術検証と運用方法の確立に携わりました。</p>
<p>
	<img alt="LVMミラーによる可用性の確保" class="bdr-fine" src="http://www.arksystems.co.jp/closeupit/materials/lvm_mirror.gif" /><br />
	LVM ミラーによる可用性の確保</p>
<h3>
	2. 世界初、z/LinuxシステムでのSatellite Serverによる大規模パッケージ管理</h3>
<p>
	今回のサーバー統合によるz/Linuxのサーバー数は300OSという規模になりました。この膨大な数のLinuxのパッケージ管理をいかに行うかという点が運用上の大きな課題であり、構築後にバグフィックス等のパッケージ適用を実施する便宜においてもLinuxのパッケージを同レベルに維持する必要があります。本案件ではSatellite Serverを使用することでz/Linuxのパッケージ管理を行いました。</p>
<p>
	Satellite Serverとは、IA Linuxで大規模サーバー群のパッケージ管理を行う際に使用されている運用技術です。管理対象のLinuxに適用されているパッケージ情報と、Red Hatが管理するRed Hat Network Satellite Serverが持つ最新パッケージ情報を連携させることにより、自社環境におけるLinuxのパッケージの整合性を維持管理するという仕組みになります。z/Linuxへ適用するのは全世界でも初の試みでしたが、前述のLVMミラー同様に、アークシステムがその技術検証と運用方法の確立に携わりました。</p>
<p>
	<img alt="Red Hat Satellite Serverによるパッケージ管理" class="bdr-fine" src="http://www.arksystems.co.jp/closeupit/materials/satellite_server.jpg" /><br />
	Red Hat Satellite&nbsp;Serverによるパッケージ管理</p>
]]>
        
    </content>
</entry>

<entry>
    <title>z/Linuxとは（IA Linuxとの違い）</title>
    <link rel="alternate" type="text/html" href="http://www.arksystems.co.jp/closeupit/zlinux/0102.html" />
    <id>tag:www.arksystems.co.jp,2012:/closeupit//5.552</id>

    <published>2012-01-17T02:00:00Z</published>
    <updated>2012-01-18T02:45:47Z</updated>

    <summary> 	私がz/Linuxに最初に出会ったのは2006年になりますが、そのときは既に...</summary>
    <author>
        <name>ウェブマスター</name>
        
    </author>
    
        <category term="z/Linuxノウハウ紹介 ～構築の勘どころからPCでの稼動方法まで～" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.arksystems.co.jp/closeupit/">
        <![CDATA[<p>
	私がz/Linuxに最初に出会ったのは2006年になりますが、そのときは既に導入済みの環境でしたので、ログオンしてみて「IA Linuxと何が違うの？」というのが第一印象でした。シェルスクリプトを書いてみても、PerlやCで簡単なプログラムを書いて動かしてみても、当初はIA Linuxとの違いが分かりませんでした。</p>
<p>
	本稿では、z/Linuxのインフラ構築、運用ツールの作成をする中で私が感じた点を加えながら、System zおよびz/Linuxについて一般的な紹介をさせていただこうと思います。</p>
<h2>
	z/Linuxとは</h2>
<p>
	z/Linuxとは、IBMの製品であるSystem z（いわゆるメインフレーム）上で動作するLinuxを指します。LinuxのディストリビューションとしてはSUSE (R) Linux Enterprise Server、Red Hat Enterprise Linux等があります。この他にもSystem z上で動作するLinuxは存在しますが、現在商用目的として利用されるz/Linuxは前記の2種類がほとんどです。</p>
<h2>
	何故System zなのか？</h2>
<p>
	メインフレームは1964年に誕生し、長年に渡って企業システムの基幹業務を支えてきました。その長い歴史と技術革新の変遷の中で非常に高い「信頼性」、「可用性」、「拡張性」を培ってきました。また昨今の流行である仮想化技術もその祖はSystem zであり、40年の歴史を持っています。他にもI/O処理能力や同時並行処理能力に優れているのがSystem zの特徴です。企業システムのプラットホームとして圧倒的な信頼性と安定性を誇るSystem zの上でLinuxを稼動させることで、Linuxのオープン性を保持したままSystem zのこれらのメリットを享受できるのがz/Linuxを選択する最大の理由です。</p>
<h2>
	IA Linuxとの違い</h2>
<p>
	z/LinuxとIA Linuxを比べるとそのソース改修箇所は全体の数％と言われています。Linuxのコード構造自体には変更を加えず、「カーネル内のハードウェア依存コード」、「デバイスドライバ」、「アセンブラコード」のみに改修が入っており、IA Linux用に開発されたソースコードの90%以上は無修正のままz/Linux上で動くといわれています。</p>
<p>
	では、どこがどう違うのか？</p>
<p>
	アセンブラコードについては我々の目に触れるようなことはありません。IA Linuxとの最大の違いは「デバイス周り」と言ってしまえばそれまでなのですが、インフラ構築のSEとして実作業の中で気づいた違いについて、いくつか例を挙げてみます。</p>
<h3>
	ディスク</h3>
<p>
	z/Linuxが使用するディスク形式には大きくFBとCKDの2つの形式があります。</p>
<p>
	FBはIA Linuxが使用するディスクと使われ方も見え方も同じです。z/Linuxからは、SCSIディスクとして/dev/sdxといった名称で認識されます。</p>
<p>
	一方で、多くの場合に使用されているのはCKD形式です。CKD形式はz/Linux独自の形式で、System zのH/W機能であるChannel subsystemを使用してI/Oを行うことが出来ます。通常System zにおけるディスク接続は冗長性を考慮し、複数経路を用意します。FB形式では複数経路に対してソフトウェア的にI/Oの最適化を図りますが、CKD形式の場合Channel subsystemが専用H/WとしてI/Oの最適化を担います。単独のI/OのパフォーマンスとしてはFB形式のほうが速いですが、細かいI/Oが重なるようなケースでは最適化のオーバーヘッドが大きくなるため、CKD形式が向いているといわれています。CKD形式はz/Linux独自のドライバが使用され、/dev/dasdxといった名称で認識されます。</p>
<h3>
	ネットワークデバイス</h3>
<p>
	IA Linuxではひとつのポートに対してeth<em>x</em>といったように単純にデバイスが割り当てられます。z/Linuxでは、System zがQDIOというプロトコルを用いてポートを使用し、論理的に複数デバイスとして分割します。z/Linuxは分割された論理デバイスのうち3つのデバイスをRead、Write、Dataとして用途を分けて認識し、これらをグルーピングすることによってひとつのネットワークデバイスqeth-<em>xxxx</em>として認識します。構築時にはこれらを意識してデバイスの追加・削除といった定義変更をしなくてはなりません。</p>
<h3>
	sysfs（/sys配下）</h3>
<p>
	Linuxでは/sys配下にデバイスドライバにアクセスするための構造を提供していますが、System zが提供する独自のデバイスをz/Linuxにおいて使用するために、z/Linux独自のドライバが追加され、sysfsから操作できるようになっています。例えば、同一筐体上の別区画で稼動するOSを含めたリソース使用状況を取得するためのものや、CKD形式のディスク、ネットワークデバイス等を動的に追加・削除するためのドライバ等です。後に述べるz/Linux独自コマンドは実はスクリプトが多く、このsysfsの中身を収集・操作しているものがほとんどです。</p>
<h3>
	ブートローダー</h3>
<p>
	IA LinuxがLiloやGrubといったブートローダーを使用するのに対して、z/Linuxは起動時にSystem z独自のデバイス制御を必要とするため、ziplと呼ばれるブートローダーを使用します。</p>
<h3>
	設定ファイル</h3>
<p>
	上記のような違いを吸収する必要があるため、やはり設定ファイルもオプションが増えたりしています。IA Linuxをご存知の方であれば想像がつくと思いますが、/etc/fstab（ファイルシステム定義）、/etc/sysconfig/network/ifcfg-*（ネットワークデバイス定義）、/etc/zipl.conf（ブートローダー定義）等のファイルがその影響を受ける設定ファイルです。</p>
<h3>
	独自コマンド</h3>
<p>
	やはりデバイス周りのコマンドになりますが、構築時に頻繁に利用したz/Linux独自のコマンドをいくつか紹介します。</p>
<table class="diagram">
	<tbody>
		<tr>
			<th scope="row">
				zipl</th>
			<td>
				ブートローダー情報書き換え、表示</td>
		</tr>
		<tr>
			<th scope="row">
				dasdfmt</th>
			<td>
				dasdデバイスフォーマット</td>
		</tr>
		<tr>
			<th scope="row">
				fdasd</th>
			<td>
				dasdデバイス上のパーティション作成</td>
		</tr>
		<tr>
			<th scope="row">
				lsdasd</th>
			<td>
				dasd情報表示（スクリプト：sysfs情報収集）</td>
		</tr>
		<tr>
			<th scope="row">
				lscss</th>
			<td>
				接続デバイス情報表示（スクリプト：sysfs情報収集）</td>
		</tr>
		<tr>
			<th scope="row">
				chccwdev</th>
			<td>
				dasdのon/off制御（スクリプト：sysfs操作）</td>
		</tr>
		<tr>
			<th scope="row">
				chchp</th>
			<td>
				チャネルのon/off制御（スクリプト：sysfs操作）</td>
		</tr>
		<tr>
			<th scope="row">
				lschp</th>
			<td>
				チャネル情報表示（スクリプト：sysfs情報収集）</td>
		</tr>
		<tr>
			<th scope="row">
				lsqeth</th>
			<td>
				ネットワークデバイス情報表示（スクリプト：sysfs情報収集）</td>
		</tr>
	</tbody>
</table>
<hr />
<p>
	上述のように、z/LinuxとIA Linuxの違いは</p>
<ul>
	<li>
		利用者から見ると変わらない</li>
	<li>
		しかしながら構築時にはH/Wを意識した違いがある</li>
</ul>
<p>
	といった説明が一番わかりやすいと思います。構築時のH/Wを意識した違いは、「高い信頼性／可用性／拡張性」を享受するために必要なものであり、予め分かっていれば臆する事は無い、と言えると考えています。</p>
<p>
	次回からは、私が経験した事例の紹介、構築・運用の勘どころを順次紹介します。</p>
]]>
        
    </content>
</entry>

<entry>
    <title>z/Linuxノウハウ紹介の概要</title>
    <link rel="alternate" type="text/html" href="http://www.arksystems.co.jp/closeupit/zlinux/0101.html" />
    <id>tag:www.arksystems.co.jp,2012:/closeupit//5.551</id>

    <published>2012-01-17T01:00:00Z</published>
    <updated>2012-01-24T01:54:15Z</updated>

    <summary> 	運用コストの削減手段として、サーバー統合や仮想化が注目されてから随分長い時間...</summary>
    <author>
        <name>ウェブマスター</name>
        
    </author>
    
        <category term="z/Linuxノウハウ紹介 ～構築の勘どころからPCでの稼動方法まで～" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.arksystems.co.jp/closeupit/">
        <![CDATA[<p>
	運用コストの削減手段として、サーバー統合や仮想化が注目されてから随分長い時間が経っていますが、そのひとつの方策として、System z上のLinuxを活用するケースが確実に増えてきています。System zが長年培ってきた高信頼性と従来実装されていた仮想化技術の効果が再認識されてきているものと考えています。</p>
<p>
	近年注目を集めてきたz/Linuxについて、実際に構築現場に携わってきた中で感じた設計上の考慮点、メリット／デメリットを踏まえながら、以下の内容でそのノウハウを紹介したいと思います。Linuxサーバーの運用負荷が高くて困っている方や堅牢性に不満を持っている方にお勧めします。</p>
<ul>
	<li>
		第1章： z/Linuxとは<br />
		System zおよびz/Linuxの一般的な紹介を、実際にz/Linuxの構築現場に携わって感じた点を踏まえながらお伝えします。</li>
	<li>
		第2章： z/Linux構築事例<br />
		アークシステムが携わった構築事例を数点紹介します。</li>
	<li>
		第3章： z/Linuxに触れてみよう<br />
		Windows上で動くSystem zエミュレータHercules上でのz/Linuxの導入手段を紹介します。</li>
	<li>
		第4章： z/Linux構築の勘どころ<br />
		アークシステムのインフラSEが考える構築の勘どころを紹介します。</li>
	<li>
		第5章： z/OS、z/Linux共存環境における運用方法<br />
		日本GUIDE/SHARE委員会（JGS）における研究プロジェクト [SP-02]部会「z/Linux環境の運用をどう設計するか？」について紹介します。</li>
	<li>
		第6章：&nbsp;おわりに<br />
		&nbsp;</li>
</ul>
]]>
        
    </content>
</entry>

<entry>
    <title>【ケーススタディ2】もっと詳しく : 既存ソフトウェアのみでデータの整合性確認</title>
    <link rel="alternate" type="text/html" href="http://www.arksystems.co.jp/closeupit/migration/050303.html" />
    <id>tag:arksystems.ark-web.jp,2010:/closeupit//5.186</id>

    <published>2011-09-15T05:33:06Z</published>
    <updated>2011-09-16T05:33:40Z</updated>

    <summary>金融B社のシステム移転において、ディスク装置のデータ移行にはテープ媒体搬送を採用...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
        <category term="システム移転 ～テクノロジー、推進、運用の観点から～ " scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.arksystems.co.jp/closeupit/">
        <![CDATA[<p>金融B社のシステム移転において、ディスク装置のデータ移行にはテープ媒体搬送を採用した。</p>
<p>テープ媒体を使用してデータ移行するにあたり、既存ソフトウェアのみでデータの整合性を確認できる手順を作成することで、データロストしないしくみを確立するとともに、コスト削減を図った。</p>
<h2>データの整合性確認の手順</h2>
<p><img class="center" height="264" src="/closeupit/materials/migration/50303_01.gif" width="531" alt="説明図：データの整合性確認の手順" /></p>
<ol>
<li>移転元で、ディスク装置からテープ媒体へデータを吸いあげる時にVTOC情報を取得</li>
<li>移転元のVTOC情報は、データと一緒のタイミングに同媒体で搬送</li>
<li>移転先で、テープ媒体からディスク装置へデータを落とした後、VTOC情報を取得</li>
<li>移転元と移転先でのVTOC情報を比較し、差異がないことを確認</li>
</ol>]]>
        
    </content>
</entry>

<entry>
    <title>モデルケース[2] システムは生きもの、トラブルは起こるもの 実施による効果</title>
    <link rel="alternate" type="text/html" href="http://www.arksystems.co.jp/closeupit/operationmgmnt/030205.html" />
    <id>tag:arksystems.ark-web.jp,2010:/closeupit//5.267</id>

    <published>2011-09-13T20:20:39Z</published>
    <updated>2011-09-16T05:35:13Z</updated>

    <summary>1. 事業計画とシステム運用計画の連携による効果 システム状況予測から、事業企画...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
        <category term="最適コストで安定運用！モデルケースで紐解く「システム運用管理」の勘どころ" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.arksystems.co.jp/closeupit/">
        <![CDATA[<h2>1. 事業計画とシステム運用計画の連携による効果</h2>

<p>システム状況予測から、事業企画側へ締め切り日の前倒しなどを依頼できるようになり、処理の分散化が可能になった。特処理を実施した際、時折発生していた作業ミスなども審査会を行うことで減少した。その上、事業企画部門との定例会を設けたことで、システム化計画や廃止計画が共有されるようになり、余剰機器 (CPUやメモリなど) の流用により無駄な投資を抑えることができてきている。今後は、流用や共用も見込んだ機種選定につながると期待できる。</p>


<h2>2. サービスレベルにあったシステム構成への変更による効果</h2>

<p>レスポンス悪化やバッチ遅延などは、ほとんどなくなった。今後は、余裕を持ったサーバー増強、ピーク時対応の実施が期待できる。</p>


<h2>3. 回復管理におけるユーザー広報の徹底による効果</h2>

<p>レスポンス悪化につながる障害が発生した際にも、迅速にユーザーへ連絡できるようになり、コールセンターの負荷は軽減。エンドユーザー側でも回復待ち時間は業務形態を切り替えるなどし、生産性を向上させる動きが出てきた。</p>


<p><img src="/closeupit/materials/operationmgmnt/30205_fig_01.gif" alt="Z社担当課長「ARKさんのおかげです、ありがとうございました！事業計画を踏まえてシステム運用する流れが確立されたので、さらに一歩踏み込んで、システム運用側から経営側へアプローチしようと考えているんですよ。経営側の興味を惹く分析とか提案とか・・・」" width="800" height="130" class="center" /></p>
<p><img src="/closeupit/materials/operationmgmnt/30205_fig_02.gif" alt="ARK太郎「それは大変意義のある取り組みですね！経営側とシステム運用側でタイムリーな情報交換を行えるようになれば、適切な対応がすみやかにとれるようになるはずです。」" width="800" height="125" class="center" /></p>]]>
        
    </content>
</entry>

<entry>
    <title>3745 EOS対応のモデルケース</title>
    <link rel="alternate" type="text/html" href="http://www.arksystems.co.jp/closeupit/3745eos/0301.html" />
    <id>tag:arksystems.ark-web.jp,2010:/closeupit//5.222</id>

    <published>2011-09-13T08:08:36Z</published>
    <updated>2011-09-16T05:35:49Z</updated>

    <summary>お客様のネットワーク環境や今後の方針などによって、3745 EOSへの対応方針や...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
        <category term="IBM 3745 EOS対応の勘どころ" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.arksystems.co.jp/closeupit/">
        <![CDATA[<p>お客様のネットワーク環境や今後の方針などによって、3745 EOSへの対応方針や最適な解決策は異なりますが、ここでは比較的シンプルなモデルケースを使用して、完全IP化する場合のアークシステムの具体的な支援内容や納品物件 (ドキュメント) 、作業期間、支援価格などを紹介いたします。</p>
<h2>前提事項および対応前後の環境</h2>
<h3>前提</h3>
<ul>
<li>それぞれの汎用機にはOSA装置が既に存在する。</li>
<li>SDLC専用端末はすべて直接LAN接続可能な3270端末装置にリプレースする。</li>
<li>すべての周辺装置のOWNERはMVSAとし、MVSAおよびMVSBの両方のアプリケーション (TSO / CICSなど) をCDRM接続で使用する。</li>
</ul>
<h3>対応前後の環境</h3>

<img alt="説明図：3745 EOS対応のモデルケース 対応前後の環境" src="/closeupit/materials/3745eos/3745eos_301_01.gif" width="860" height="450" class="center" />

<h2>アークシステムの支援内容および納品物件</h2>
<p>このモデルケースにおいて、アークシステムが果たす役割と業務分担は次のとおりとなります。お客様のご担当者様との協働作業にて、計画作成から実装、テスト、移行まで、首尾一貫して業務推進いたします。</p>
<p>あくまで想定モデルですので、現状環境の複雑さや規模、またお客様との役割分担によって当社の作業範囲と必要工数は変動いたします。お打ち合わせのうえ、概算のお見積もりとご提案を提示させていただきますので、お気軽にご相談ください。<p> 
<h3>支援内容</h3>
<p style="text-align: right;">凡例 : 　◎実施　　○支援</p>
<table class="diagram">
<thead>
<tr>
<th scope="row" colspan="3">作業項目</th>
<th scope="col">お客様担当</th>
<th scope="col">アークシステム<br />
担当</th>
</tr>
</thead>
<tbody>
<tr>
<td colspan="2" rowspan="3" valign="top">調査・設計</td>
<td>現状調査</td>
<td align="center">◎</td>
<td align="center">◎</td>
</tr>
<tr>
<td>基本設計</td>
<td align="center">○</td>
<td align="center">◎</td>
</tr>
<tr>
<td>リソース調達 (ハードウェア / ソフトウェアなど)</td>
<td align="center">◎</td>
<td align="center"> </td>
</tr>
<tr>
<td rowspan="6" valign="top" width="11%">新環境構築</td>
<td rowspan="3" valign="top" width="22%">(1) 汎用機側新環境構築</td>
<td>新ハードウェア / ソフトウェアの環境設定</td>
<td align="center"> </td>
<td align="center">◎</td>
</tr>
<tr>
<td>基本テスト計画作成およびテスト環境作成</td>
<td align="center"> </td>
<td align="center">◎</td>
</tr>
<tr>
<td>基本テスト実施</td>
<td align="center"> </td>
<td align="center">◎</td>
</tr>
<tr>
<td rowspan="3" valign="top">(2) 周辺装置側新環境構築</td>
<td>新ハードウェア / ソフトウェアの環境設定</td>
<td align="center">◎</td>
<td align="center">○</td>
</tr>
<tr>
<td>基本テスト計画作成およびテスト環境作成</td>
<td align="center">◎</td>
<td align="center">○</td>
</tr>
<tr>
<td>基本テスト実施</td>
<td align="center">◎</td>
<td align="center">○</td>
</tr>
<tr>
<td colspan="2" rowspan="2" valign="top">システムテスト</td>
<td>システムテスト計画作成およびテスト環境構築</td>
<td align="center">○</td>
<td align="center">◎</td>
</tr>
<tr>
<td>システムテスト実施</td>
<td align="center">◎</td>
<td align="center">○</td>
</tr>
<tr>
<td colspan="2" rowspan="4" valign="top">移行・本番稼動</td>
<td>移行計画作成</td>
<td align="center">○</td>
<td align="center">◎</td>
</tr>
<tr>
<td>本番環境構築</td>
<td align="center">○</td>
<td align="center">◎</td>
</tr>
<tr>
<td>移行判定</td>
<td align="center">◎</td>
<td align="center">○</td>
</tr>
<tr>
<td>本番移行</td>
<td align="center">○</td>
<td align="center">◎</td>
</tr>
</tbody>
</table>
<p class="bullet">※ 上記の役割分担はあくまで想定ですので、お客様のご要望に応じて調整は可能です。 </p>

<h3>納品物件 (ドキュメント) </h3>
<table class="diagram">
<tr>
<th rowspan="6" scope="row">設計書 / 計画書</th>
<td><img src="../materials/3745eos/3745eos_301_03.gif" alt="" width="16" height="16" />基本設計書</td>
</tr>
<tr>
<td><img src="../materials/3745eos/3745eos_301_03.gif" alt="" width="16" height="16" />基本テスト計画書</td>
</tr>
<tr>
<td><img src="../materials/3745eos/3745eos_301_03.gif" alt="" width="16" height="16" />システムテスト計画書</td>
</tr>
<tr>
<td><img src="../materials/3745eos/3745eos_301_03.gif" alt="" width="16" height="16" />移行計画書</td>
</tr>
<tr>
<td><img src="../materials/3745eos/3745eos_301_03.gif" alt="" width="16" height="16" />環境設定書</td>
</tr>
<tr>
<td><img src="../materials/3745eos/3745eos_301_03.gif" alt="" width="16" height="16" />パラメーター設定書</td>
</tr>
<tr>
<th rowspan="4" scope="row">報告書</th>
<td><img src="../materials/3745eos/3745eos_301_03.gif" alt="" width="16" height="16" />ネットワーク構成図</td>
</tr>
<tr>
<td><img src="../materials/3745eos/3745eos_301_03.gif" alt="" width="16" height="16" />基本テスト結果報告書</td>
</tr>
<tr>
<td><img src="../materials/3745eos/3745eos_301_03.gif" alt="" width="16" height="16" />システムテスト結果報告書</td>
</tr>
<tr>
<td><img src="../materials/3745eos/3745eos_301_03.gif" alt="" width="16" height="16" />移行結果報告書</td>
</tr>
<tr>
<th scope="row">作業管理</th>
<td><img src="../materials/3745eos/3745eos_301_03.gif" alt="" width="16" height="16" />作業報告書</td>
</tr>
</table>
<ul class="bullet">
<li>※お客様ご担当作業範囲分のドキュメントはお客様にて作成いただくことになります。 </li>
<li>※ご要望があれば以下のドキュメントも提供可能です。<br />
別途、ドキュメント作成およびデータ収集、テストなどの費用を申し受けます。
<ul>
<li>・変更手順書･･･ネットワークの変更 (追加、削除、変更など) にともなって発生する作業の概要および作業手順 </li>
<li>・操作手順･･･ネットワーク操作全般 (状況確認、障害時の対応など) に関する操作手順</li>
<li>・その他･･･お客様のご要望に応じたドキュメント</li>
</ul>
</li>
</ul>
<h2>作業期間、支援価格</h2>
<p>上の「支援内容」の表でアークシステム担当が◎の作業項目を実施する場合の、期間と価格は次のとおりです。</p>
<h3>作業期間 </h3>
<p>1ヶ月程度から</p>
<h3>支援価格</h3>
<p>100万円程度から</p>

<h2>補足</h2>
<ul>
<li>汎用機側のハードウェア環境 (OSAなど) を追加構築する必要がある場合、ハードウェア追加にかかわるすべての環境構築業務をトータルに支援することが可能です。</li>
<li>実際はこのモデルケースのようにシンプルなネットワーク環境ではないことが予想され  ますが、アークシステムでは汎用機全般の豊富な経験をベースに、お客様の環境および要件を考慮した、最適なソリューションを個別に提供いたします。また、  IP化が難しい特殊なプロトコルについても豊富な経験に基づき、最適な解決策を提示いたします。</li>
<li>CCLへの移行を希望される場合、作業期間が長期にわたり、かつ多額の費用が発生することが予想されますので、予めご了承ください。</li>
</ul>]]>
        
    </content>
</entry>

<entry>
    <title>利用宣言と組み込み</title>
    <link rel="alternate" type="text/html" href="http://www.arksystems.co.jp/closeupit/struts/article005_09.html" />
    <id>tag:arksystems.ark-web.jp,2010:/closeupit//5.380</id>

    <published>2010-12-30T07:51:44Z</published>
    <updated>2011-03-01T01:38:00Z</updated>

    <summary>Struts-Tilesの利用宣言 Struts-Tilesはその利用を宣言する...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
        <category term="Strutsをはじめとするオープンソースプロダクト情報" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.arksystems.co.jp/closeupit/">
        <![CDATA[<h2>Struts-Tilesの利用宣言</h2>

<p>Struts-Tilesはその利用を宣言する必要があるとお話ししました。その方法を紹介します。定義方法は前述のようにプラグインをモジュール設定ファイルに追加するのみです。この時に「リスト：struts-config.xml抜粋」のように、ページ定義ファイルへのパスをpropertyとして指定します。</p>

<p class="text-center"><img src="/closeupit/materials/struts/article005_09_fig_01.gif" alt="リスト：struts-config.xml抜粋" width="560" height="62" class="bdr-fine" /><br />
リスト：struts-config.xml抜粋</p>


<h2>リクエスト処理手順へのTilesの組み込み</h2>

<p>最後に、Struts1.3のHTTPリクエスト処理チェーンにStruts-Tilesが組み込まれるように、Tiles自身が用意しているチェーン定義を設定する必要があります。この定義は Webデプロイメントディスクリプタ (web.xml) のStrutsサーブレットへのパラメーターとして定義ファイルを指定します。具体的には、web.xml の action サーブレットの定義を下記のように指定することになります。</p>

<p class="text-center"><img src="/closeupit/materials/struts/article005_09_fig_02.gif" alt="リスト：web.xmlのactionサーブレット定義" width="556" height="202" class="bdr-fine" /><br />
リスト：web.xmlのactionサーブレット定義</p>

<p>以上で、Struts-Tilesを用いたページが生成可能となります。準備に若干の手間がかかりますが、それ以上の効果が得られるはずです。</p>

<p>Struts-Tilesには、ご紹介した機能以外にもプログラム中から動的にレイアウトを変更する機能や定義する機能などが用意されています。この機能を用いることでポータルサイトを構築することも可能です。非常に強力なレイアウト機能を提供してくれるStruts-Tilesに興味のある方は、ぜひ利用してみてください。</p>


<div class="supplement">※本稿は月刊JavaWorld (株式会社IDGジャパン発行) 2003年12月号に掲載した連載「Jakarta活用指南」記事の元原稿に加筆修正したものです。</div>]]>
        
    </content>
</entry>

<entry>
    <title>モジュール設定ファイルの記述</title>
    <link rel="alternate" type="text/html" href="http://www.arksystems.co.jp/closeupit/struts/article005_08.html" />
    <id>tag:arksystems.ark-web.jp,2010:/closeupit//5.379</id>

    <published>2010-12-30T07:50:54Z</published>
    <updated>2011-03-02T23:31:50Z</updated>

    <summary>モジュール設定ファイルには通常、JSPへのパスを直接記述します。しかし、Stru...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
        <category term="Strutsをはじめとするオープンソースプロダクト情報" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.arksystems.co.jp/closeupit/">
        <![CDATA[<p>モジュール設定ファイルには通常、JSPへのパスを直接記述します。しかし、Struts-Tilesを用いた場合、JSPへのパスは、各ページの論理名として扱うことになります (「リスト：モジュール設定ファイル (struts-config.xml) 抜粋」)。Struts-Tilesを用いない場合、JSPへのパスを定義していたforwardタグ内のpath属性に、ページ定義ファイルの definitionタグで定義したページ名を指定しているのがお分かりいただけると思います。このようにして、各ページを指定していきましょう。</p>

<p>ここで1つ注意しなくてはならないことがあります。それは、このページ名はStruts-TilesプラグインすなわちStrutsのコントローラーを経由しないと有効にならないということです。ブラウザから直接この論理名のページを指定しても、表示することはできません。そのため、すべてのリクエストがコントローラーを経由するように、アプリケーション全体のページ遷移を設計する必要があります。最初のページ (通常、index.jspなど) にもStruts-Tilesを用いる場合は、コントローラーにリダイレクト処理などを行うようにする必要があります。</p>

<p class="text-center"><img src="/closeupit/materials/struts/article005_08_fig_01.gif" alt="リスト：モジュール設定ファイル (struts-config.xml) 抜粋" width="556" height="258" class="bdr-fine" /><br />
リスト：モジュール設定ファイル (struts-config.xml) 抜粋</p>


<div class="supplement">※本稿は月刊JavaWorld (株式会社IDGジャパン発行) 2003年12月号に掲載した連載「Jakarta活用指南」記事の元原稿に加筆修正したものです。</div>]]>
        
    </content>
</entry>

<entry>
    <title>ページ定義ファイルの作成</title>
    <link rel="alternate" type="text/html" href="http://www.arksystems.co.jp/closeupit/struts/article005_07.html" />
    <id>tag:arksystems.ark-web.jp,2010:/closeupit//5.378</id>

    <published>2010-12-30T07:50:01Z</published>
    <updated>2011-03-02T05:53:04Z</updated>

    <summary>ページ定義ファイルでは、前述のJSPを組み合わせて1つのページとして定義します。...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
        <category term="Strutsをはじめとするオープンソースプロダクト情報" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.arksystems.co.jp/closeupit/">
        <![CDATA[<p>ページ定義ファイルでは、前述のJSPを組み合わせて1つのページとして定義します。定義の方法は「リスト：tileDefinitions.xml」のように極めて単純です。1つのページ (合成後のWebページイメージ) は&lt;definition&gt;タグにてその内容を定義します。ページの論理名をname属性に定義して、レイアウト用JSPへのパスをpath属性に指定します。レイアウト内の各部 (headerやfooter) に実際のコンテンツ用JSPを割り当てるには、&lt;put&gt;タグをネストして定義します。&lt;put&gt;タグには部位名と割り当てるJSPへのパスを指定するだけです。すべての部位への割り当てが完了したものは、論理的なWebページとしてStruts-Tilesが認知し、モジュール設定ファイルにてこの論理名でWebページを指定できるようになります (指定方法は後述します)。また、文字列を動的にJSPに挿入するタグ&lt;tiles:getAsString&gt;カスタムタグのための文字列の指定は、この&lt;definition&gt;タグ単位で行います。定義方法はコンテンツ用JSPを指定した時と同様に &lt;put&gt;タグを用いてJSPへのパスの代わりに文字列を定義するだけです。</p>

<p>このStruts-Tilesのページ定義を行うしくみには、1つ強力な機能が備わっています。それが、レイアウトの継承です。「リスト：tileDefinitions.xml」のuser.shoplistの定義を参照してください。この定義にはtitleとbodyしか指定されていません。&lt;definition&gt;タグのpath属性を指定する代わりにextends属性が指定されています。extends属性はその名の通り、継承を示しています。要するにextendsで指定したページレイアウトを継承し、指定した部位のコンテンツのみを再定義しているのです。再定義されなかった部位は継承元の定義が引き継がれます。この機能により、ベースとなるページレイアウトを1つ定義し、実際に表示させるページはベースのレイアウトを継承し、titleやボディー部のみを再定義してゆけば、簡単にページを定義することができます。また、フッタやヘッダを変更する場合にも、ベースのレイアウト定義のみを変更すれば、継承しているページはすべて変更されるため、メンテナンス性が格段に向上します。Struts-Tilesの素晴らしい機能の1つです。</p>

<p class="text-center"><img src="/closeupit/materials/struts/article005_07_fig_01.gif" alt="リスト：tileDefinitions.xml" width="556" height="622" class="bdr-fine" /><br />
リスト：tileDefinitions.xml</p>


<div class="supplement">※本稿は月刊JavaWorld (株式会社IDGジャパン発行) 2003年12月号に掲載した連載「Jakarta活用指南」記事の元原稿に加筆修正したものです。</div>]]>
        
    </content>
</entry>

<entry>
    <title>コンテンツ用JSPの作成 (2)</title>
    <link rel="alternate" type="text/html" href="http://www.arksystems.co.jp/closeupit/struts/article005_06.html" />
    <id>tag:arksystems.ark-web.jp,2010:/closeupit//5.377</id>

    <published>2010-12-30T07:49:15Z</published>
    <updated>2011-03-01T01:44:46Z</updated>

    <summary>ボディー部のコンテンツ用JSPはページの数分用意する必要がありますが、本稿では1...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
        <category term="Strutsをはじめとするオープンソースプロダクト情報" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.arksystems.co.jp/closeupit/">
        <![CDATA[<p>ボディー部のコンテンツ用JSPはページの数分用意する必要がありますが、本稿では1つだけ紹介します (「リスト：shoplist.jsp」)。</p>

<p class="text-center"><img src="/closeupit/materials/struts/article005_06_fig_01.gif" alt="リスト：shoplist.jsp" width="556" height="678" class="bdr-fine" /><br />
リスト：shoplist.jsp</p>

<p>以上で、必要なJSPはすべて揃ったことになります。</p>


<div class="supplement">※本稿は月刊JavaWorld (株式会社IDGジャパン発行) 2003年12月号に掲載した連載「Jakarta活用指南」記事の元原稿に加筆修正したものです。</div>]]>
        
    </content>
</entry>

<entry>
    <title>コンテンツ用JSPの作成 (1)</title>
    <link rel="alternate" type="text/html" href="http://www.arksystems.co.jp/closeupit/struts/article005_05.html" />
    <id>tag:arksystems.ark-web.jp,2010:/closeupit//5.376</id>

    <published>2010-12-30T07:48:20Z</published>
    <updated>2011-02-24T10:38:34Z</updated>

    <summary>コンテンツ用の各JSPは、通常のJSPと同様に作成します。定常的に表示されるhe...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
        <category term="Strutsをはじめとするオープンソースプロダクト情報" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.arksystems.co.jp/closeupit/">
        <![CDATA[<p>コンテンツ用の各JSPは、通常のJSPと同様に作成します。定常的に表示されるheader部、menu部、footer部は、「リスト：header.jsp」、「リスト：menu.jsp」、「リスト：footer.jsp」のように用意します。コンテンツ用JSPすべてに言えることですが、タイトルやhtmlタグなどはレイアウト用JSPに既に記述してあるため必要ありません。</p>

<p class="text-center"><img src="/closeupit/materials/struts/article005_05_fig_01.gif" alt="リスト：header.jsp" width="556" height="216" class="bdr-fine" /><br />
リスト：header.jsp</p>

<p class="text-center"><img src="/closeupit/materials/struts/article005_05_fig_02.gif" alt="リスト：menu.jsp" width="556" height="300" class="bdr-fine" /><br />
リスト：menu.jsp</p>

<p class="text-center"><img src="/closeupit/materials/struts/article005_05_fig_03.gif" alt="リスト：footer.jsp" width="556" height="370" class="bdr-fine" /><br />
リスト：footer.jsp</p>

<div class="supplement">※本稿は月刊JavaWorld (株式会社IDGジャパン発行) 2003年12月号に掲載した連載「Jakarta活用指南」記事の元原稿に加筆修正したものです。</div>]]>
        
    </content>
</entry>

<entry>
    <title>レイアウト用JSPの作成</title>
    <link rel="alternate" type="text/html" href="http://www.arksystems.co.jp/closeupit/struts/article005_04.html" />
    <id>tag:arksystems.ark-web.jp,2010:/closeupit//5.375</id>

    <published>2010-12-30T07:47:31Z</published>
    <updated>2011-03-02T05:51:03Z</updated>

    <summary>実際に利用する場合には、各Webページの設計を綿密に行う必要があります。なぜなら...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
        <category term="Strutsをはじめとするオープンソースプロダクト情報" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.arksystems.co.jp/closeupit/">
        <![CDATA[<p>実際に利用する場合には、各Webページの設計を綿密に行う必要があります。なぜなら、そのWebページを何と名づけ、どのようなレイアウトで何を配置するかを決定する必要があるからです。ただし、この各要素は、定義ファイルを作成するために必要なだけであり、変更は非常に容易なので、必ずしもすべてが正確に決定している必要はありません。これらの要素が決定したら、</p>

<ul>
<li>レイアウト用JSPの作成</li>
<li>コンテンツ用JSPの作成 (ヘッダ用、フッタ用、ボディー用など)</li>
<li>ページ定義ファイルの作成</li>
</ul>

<p>を行い、ページ定義ファイルをStruts-Tilesプラグインに指定します。</p>


<h2>レイアウト用JSPの作成</h2>

<p>用意する必要があるレイアウト用JSPは、ページのレイアウトパターン分だけです。すべてのページを同一のレイアウトパターンで表示する場合には、1つということです。例えば、先の「スクリーンショット：サンプルデザイン」のようなWebページを作成する場合、そのレイアウト用JSPは、「リスト：layout.jsp」のようになります。レイアウト用JSPは通常のコンテンツ用JSPとは異なり、テーブル関連のHTMLタグを用いてレイアウトを定義します。その際、各テーブルのセルにStruts-Tilesが提供する&lt;tiles:insert&gt;カスタムタグを用いて名前を付けます。ページ定義ファイルでは、この名前をキーにさまざまなコンテンツを結びつけるのです。「リスト：layout.jsp」では「スクリーンショット：サンプルデザイン」の通り header、menu、 body、 footer と各セルに名前をつけています。セルに名前をつける以外にもう1つ、ページのタイトルを動的に変化させるための処理を記述しています。通常、Webページはページごとにさまざまなタイトルをつけ、ページを識別しやすくする必要があるでしょう。このような場合、&lt;tiles:getAsString&gt;カスタムタグを利用します。これはページ定義ファイルに記述した文字列を、動的に挿入するためのカスタムタグです。例えば、同じレイアウト用JSPを利用した2つのページがあり、1つはページA、もう1つはページBというタイトルを表示したい場合に、ページA、ページBという文字列をページ定義ファイルに定義しておけば、各レイアウトにあったタイトルを表示することが可能となるのです (実際の文字列の定義方法は後述します)。</p>

<p class="text-center"><img src="/closeupit/materials/struts/article005_04_fig_01.gif" alt="リスト：layout.jsp" width="556" height="538" class="bdr-fine" /><br />
リスト：layout.jsp</p>


<div class="supplement">※本稿は月刊JavaWorld (株式会社IDGジャパン発行) 2003年12月号に掲載した連載「Jakarta活用指南」記事の元原稿に加筆修正したものです。</div>]]>
        
    </content>
</entry>

<entry>
    <title>Struts-Tilesのしくみ</title>
    <link rel="alternate" type="text/html" href="http://www.arksystems.co.jp/closeupit/struts/article005_03.html" />
    <id>tag:arksystems.ark-web.jp,2010:/closeupit//5.374</id>

    <published>2010-12-30T07:46:41Z</published>
    <updated>2011-03-04T15:04:29Z</updated>

    <summary>Struts-Tilesを利用するためには、jarファイルの配置とは別に、Str...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
        <category term="Strutsをはじめとするオープンソースプロダクト情報" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.arksystems.co.jp/closeupit/">
        <![CDATA[<p>Struts-Tilesを利用するためには、jarファイルの配置とは別に、Struts-TilesプラグインをStrutsに組み込む必要があります。そして、プラグインにはページのレイアウトを定義したファイルを指定します。設定方法は後ほど説明します。Struts-Tilesを用いた場合のイメージを下に示します。</p>

<p class="text-center"><img alt="説明図：Struts-Tilesを用いた場合のイメージ" src="/closeupit/materials/struts/article005_03_fig_01.gif" width="531" height="340" /><br />
図：Struts-Tilesを用いた場合のイメージ</p>

<p>図からもわかるように、Struts-Tilesは各ページのレイアウト定義が記述されているファイル (本稿ではページ定義ファイルと呼びます) を参照して、その定義に従ってページの生成を行います。ページ定義ファイルには、生成するWebページに関して、どのJSPとどのJSPをどのレイアウトを用いて合成するかが定義されています。HTMLのフレームや、JSPのinclude機能を用いてページの合成を行う場合には、合成対象のJSP名がレイアウトと一体となり、ページごとにJSPを用意する必要があるためJSP数が増大します。また、JSP名がレイアウトファイル内に記述されるため、実JSP名がモジュール設定ファイル以外のファイルにも定義されることとなり、メンテナンス性が低下する危険性があります。Struts-Tilesでは、レイアウト (本稿ではレイアウト用JSPと呼びます) とコンテンツ (本稿ではコンテンツ用JSPと呼びます) を明確に分離して、両者を繋ぐ情報をページ定義ファイルで定義し、レイアウトに関する情報を集中管理することで、メンテナンス性の向上が図れます。また、レイアウト用JSPには実際に表示するコンテンツ用JSP名は定義しないため、レイアウトパターン数のみレイアウトファイルを用意すればよく、JSP数の大幅な削減が可能となるのです。</p>


<div class="supplement">※本稿は月刊JavaWorld (株式会社IDGジャパン発行) 2003年12月号に掲載した連載「Jakarta活用指南」記事の元原稿に加筆修正したものです。</div>]]>
        
    </content>
</entry>

<entry>
    <title>Struts-Tilesとは</title>
    <link rel="alternate" type="text/html" href="http://www.arksystems.co.jp/closeupit/struts/article005_02.html" />
    <id>tag:arksystems.ark-web.jp,2010:/closeupit//5.373</id>

    <published>2010-12-30T07:45:58Z</published>
    <updated>2011-03-04T15:03:23Z</updated>

    <summary>Struts-Tiles とは複数のJSPページを、1枚のWebページとしてサー...</summary>
    <author>
        <name>admin</name>
        
    </author>
    
        <category term="Strutsをはじめとするオープンソースプロダクト情報" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.arksystems.co.jp/closeupit/">
        <![CDATA[<p>Struts-Tiles とは複数のJSPページを、1枚のWebページとしてサーバーサイドで合成する機能です。Struts-TilesはStruts 1.1 から提供されるようになった機能ですがStruts1.3でも利用可能となっています。</p>

<p>Webページを設計する場合、下図のように、ページをヘッダ、メニュー、ボディー、フッタに分けたデザインをすることが多いはずです。</p>

<p class="text-center"><img alt="スクリーンショット：サンプルデザイン" src="/closeupit/materials/struts/article005_02_fig_01.jpg" width="560" height="516" /><br />
図：サンプルデザイン</p>

<p>単純に考えると部位ごとのページを用意し、フレームによって1つのWebページとして表示する実装方法を思い浮かべるでしょう。しかし、フレームを用いて複数のJSPを合成する方法では、各部位のレイアウトをフレームとして管理するJSPが必要となり、場合によってはそのレイアウト用のページがWebページと同じ数だけできてしまいます。ボディー部に表示したいページとあわせると膨大な数のJSPを作成することになりかねません。またそのメンテナンスも容易ではありません。JSP のinclude機能を使うことによっても同様の機能を実現可能ですが、やはり前述のような問題が発生します。</p>

<p>そこで Struts では、Webページのレイアウト管理を行うフレームワーク Struts-Tiles を提供しています。</p>

<p>Struts-Tilesの機能を以下に示します。</p>


<ul>
<li><strong>ページ合成</strong><br />
複数のJSPページが生成するコンテンツをサーバーサイドで合成して、1つのHTMLページとして生成します。</li>
<li><strong>ページレイアウト管理</strong><br />
複数JSPページの合成デザイン (レイアウト) をXMLファイルに定義します。レイアウトを継承して別のページを定義することもできます。モジュール設定ファイルでは、XMLファイルでページにつけた論理名をページに指定することになるため、実JSP名をモジュール設定ファイルから排除することが可能となります。</li>
<li><strong>動的なコンテンツ指定が可能</strong><br />
静的にXMLファイルに定義したレイアウト情報以外にも、プログラム中からレイアウトやその中身であるコンテンツのJSPを動的に指定することも可能です。使い方によってはポータルサイトの構築が可能となります。</li>
</ul>

<p>機能としては、レイアウト管理を行うだけのツールのため、非常にシンプルですが、その利用による効果は想像以上です。Struts-Tiles自身は、Struts1.3のディストリビューションにstruts-tiles-1.3.X.jar として含まれており、このjarファイルを WebアプリケーションのWEB-INF/lib ディレクトリに配置することで利用可能となります。</p>


<div class="supplement">※本稿は月刊JavaWorld (株式会社IDGジャパン発行) 2003年12月号に掲載した連載「Jakarta活用指南」記事の元原稿に加筆修正したものです。</div>]]>
        
    </content>
</entry>

</feed>
