本文へジャンプ

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む


お客様が developerWorks に初めてサインインすると、プロフィールが作成されます。プロフィールで選択した情報は公開されますが、いつでもその情報を編集できます。お客様の姓名(非表示設定にしていない限り)とディスプレイ・ネームは、投稿するコンテンツと一緒に表示されます。

送信されたすべての情報は安全です。

  • 閉じる [x]

developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む


送信されたすべての情報は安全です。

  • 閉じる [x]

Apache Muse を使用して HTTP サーバー用の WSDM インターフェースを作成する

Web サービス標準を使って一般的製品の管理機能を公開する方法

Dan Jemiolo, Advisory Software Engineer, EMC
Dan Jemiolo は、ノースカロライナ州リサーチ・トライアングル・パークにある IBM Autonomic Computing チームの Advisory Software Engineer です。彼は Apache Muse 2.0 の設計および開発を指揮し、現在も引き続きこのプロジェクトに取り組んでいます。また、Dan は WS-RF TC に WS-ResourceMetadata 仕様のエディターとして参加しており、Web サービス標準の採用を促進する IBM の戦略に携わっています。彼はわずか 2 年前に、Rensselaer Polytechnic Institute で Computer Science を専攻し理学修士の学位を取得した後、IBM に入社しました。

概要:  Apache Muse を使用して管理可能リソース用 WS-DistributedManagement (WSDM) 準拠インターフェースを作成する方法を学びましょう。このチュートリアルでは、リソース用の Web サービス・インターフェースを設計する方法、実装用コードを生成する方法、そしてそのコードを Web アプリケーションとしてデプロイする方法を学習します。このチュートリアルで取り扱う管理可能リソースは、一般に「httpd」と呼ばれる広く普及した Apache HTTP Server です。このチュートリアルを修了した時点で、WSDM 準拠の管理クライアントで httpd リソースを操作することができる、Muse ベースのアプリケーション が完成します。

日付:  2006年 11月 21日
レベル:  中級

アクティビティー:  11461 views
お気軽にご意見・ご感想をお寄せください:  

セクション 9. HTTP Server オペレーションの実装

このセクションでは、httpd.conf ファイルを使用して、リソース・プロパティー・フィールドの値を埋めていきます。実装では、WS-Security 認証を導入する必要がないように、リモート・クライアントに対して 3 つの プロパティーが読み取り専用として定義されています。また、これらのプロパティーを読み取り専用のままにしておけば、httpd プロセス実行中の変更を防止するためのチェックも、回避することができます。

プロパティーは起動後に変化することがないため、初期化中に httpd.conf からプロパティーを読み込んでおき、WSDL2Java が MyCapability クラスに作成したフィールドに、それらのプロパティーを保持することも可能です。この実装コードを MyCapability ファイルにコピー・アンド・ペーストしてください。


リスト 8. 実装コード
    public void initialize()
        throws SoapFault
    {
        super.initialize();
        
        Map configParams = null;
	        
	try
	{
	    configParams = readConfigFile("/apache-2.2/conf/httpd.conf");
	}

	catch (IOException error)
	{
	    throw new SoapFault("Error while reading httpd.conf.", error);
	}

	_ServerName = (String)configParams.get("ServerName");
	
	String portString = (String)configParams.get("Listen");
	String threadsString = (String)configParams.get("ThreadsPerChild");
	
	_PortNumber = Integer.valueOf(portString);
        _ThreadsPerChild = Integer.valueOf(threadsString);
    }
    
    protected Map readConfigFile(String filePath)
        throws IOException
    {
        BufferedReader reader = new BufferedReader(new FileReader(filePath));
        String nextLine = null;
        
        Map configParams = new HashMap();
        
        while ((nextLine = reader.readLine()) != null)
        {
            nextLine = nextLine.trim();
            
            // ignore comments and blank lines
            if (nextLine.length() == 0 || 
                nextLine.charAt(0) == '#' || 
                nextLine.charAt(0) == '<')
                continue;
            
            int space = nextLine.indexOf(' ');
            String name = nextLine.substring(0, space);
            String value = nextLine.substring(space + 1);
            configParams.put(name, value);
        }
        
        return configParams;
    }

可変のリソース・プロパティーを許可する

動的なプロパティーの場合は、フィールドの値を削除して、代わりに各 getter メソッドで httpd.conf からプロパティーの値を読み取ることになるでしょう。このアプリケーションを拡張してプロパティーを可変にした場合、getter メソッドと setter メソッドはどちらも、要求時に java.io パッケージを使用して httpd.conf ファイルを読み込むように実装されます。

最初のメソッドは、基本クラスの initialize メソッド (すべての自己完結型開始タスクを機能が実行できるメソッド) をオーバーライドしています。このメソッドは、httpd.conf ファイル内にある「名前と値」の対を単純に java.util.Map に読み込んだ後、見つけた値を使ってクラスのフィールドを設定します。initialize メソッドが呼び出されるのは、Muse アプリケーションがいずれかの SOAP 要求にサービスを提供する前です。

2 番目のメソッドは、ファイルを解析して java.util.Map に渡し、入力データからコメント行とブランク行を入念に削除するという、実際のタスクを実行します。最後に、getter メソッドはそのままにしておく必要があります。これらの getter メソッドは、Muse の GetResourceProperty 実装から呼び出されたときに、httpd.conf から読み込まれた値を返します。

9 / 15 | 前へ | 次へ

コメント



static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Tivoli, SOA and web services
ArticleID=252230
TutorialTitle=Apache Muse を使用して HTTP サーバー用の WSDM インターフェースを作成する
publish-date=11212006
author1-email=danjemiolo@us.ibm.com
author1-email-cc=weitzelm@us.ibm.com

タグ

Help
このタグで、My developerWorks のすべてのタイプのコンテンツを見つけるために検索フィールドを使用します。

スライダーバーを使用することで、より多く(少なく)タグを表示します。

人気のタグは、この特定のコンテンツ・ゾーン(例えば、Java テクノロジー、Linux や WebSphere など)に対するトップのタグを表示します。

マイ・タグは、この特定のコンテンツ・ゾーン(例えば、Java テクノロジー、Linux や WebSphere など)に対するお客様ご自身のタグを表示します。

このタグで、My developerWorks のすべてのタイプのコンテンツを見つけるために検索フィールドを使用します。人気のタグは、この特定のコンテンツ・ゾーン(例えば、Java テクノロジー、Linux や WebSphere など)に対するトップのタグを表示します。マイ・タグは、この特定のコンテンツ・ゾーン(例えば、Java テクノロジー、Linux や WebSphere など)に対するお客様ご自身のタグを表示します。