レベル: 初級 Juergen Schaeck (jschaeck@de.ibm.com), Software Engineer, IBM Boeblingen Lab
2003年 1月 01日 Webサービスは、情報およびアプリケーションをプログラム的にインターネットで使用できるようにするための、支配的な方法になりつつあります。ポータルは、イントラネットおよびインターネットから得られた情報およびアプリケーションを統合するための、主要な方法になってきています。IBM WebSphere Portal for Multiplatforms Version 4.xを利用すると、リモート・ポートレットをビジュアルWebサービスとして簡単に統合することができます。しかし、旧来のデータ指向Webサービスをポータルに統合するには、どのようにすればよいのでしょうか?この記事では、WebSphere Studio Application DeveloperとIBM Portal Toolkitを使用して、最も便利なやり方でそれを行う方法について説明します (これらのプログラムは、WebSphere Portal製品に含まれています。具体的な詳細および制約事項については、使用しているバージョンのWebSphere Portalのライセンス文書を参照してください)。
ポータル
ポータル は、インターネットまたはイントラネットにおいて情報およびアプリケーションの開始点となるWebサイトです。さまざまなコンテンツを動的に集約および表示するために、ポータル・サーバーは、コンテンツを提供するポータル・コンポーネントを分割してプラグ可能なポートレット にするための、フレームワークを備えていなければなりません。(そのフレームワークについては、下記の図1 を参照) 各ポートレットは、特定の情報を提供するものであり、(例えば、Webサイト、データベース、またはWebサービスからの) コンテンツへのアクセスや、コンテンツの変換などのタスクを実行して、クライアントにコンテンツが効率良く届けられるようにしなければなりません。IBM WebSphere Portal for Multiplatforms Version 4.xは、できるかぎり簡単にポートレットを作成し、管理できるようにするためのサービスのフレームワークを備えています。
ポートレット
ユーザーの立場から見ると、ポートレットは、カレンダーやニュース配信などの特定のサービスまたは情報を提供する、ポータル・ページ内の小さなウィンドウです。アプリケーション開発の観点から見ると、ポートレットは、IBM WebSphere Portal Version 4.xのポートレット・コンテナーの内部で実行されるように設計された、プラグ可能なモジュールです。
ポートレットは、ポータル・インフラストラクチャーを使用して、ユーザー・プロファイル情報へのアクセス、ウィンドウおよびアクション・イベントへの参加、他のポートレットとの通信、リモート・コンテンツへのアクセス、証明書の検索、および永続データの保管を行うことができます。Portlet APIは、これらの機能への標準インターフェースを提供します。
図1. ポータル環境でのポートレットの呼び出し
ポートレットとサーブレット
IBM WebSphere Portal Version 4.xで実行されるすべてのポートレットは、Abstract Portlet クラスから継承を行います。このクラスはPortlet APIの中心的な抽象です。ポートレットは特殊なタイプのサーブレットであり、ポータル・サーバーに簡単にプラグインして、その中で実行できるようなプロパティーを備えています。ポートレットにはそのほかにも、さまざまな機能や、本来的な制約事項があります。サーブレットとは異なり、ポートレットは、リダイレクトやエラーをブラウザーに直接送信したり、要求を転送したり、出力ストリームに任意のマークアップを書き込んだりすることはできません。
一般に、ポートレットはサーブレットよりも動的に管理することができます。以下の更新は、ポータル・サーバーを再始動させずに適用することができます。
- 複数のポートレットからなるポートレット・アプリケーションは、ポータル管理ユーザー・インターフェースを使用して動的にインストールしたり除去したりすることができます。
- ポートレットの設定は、実行中に管理者が変更することができます。
ポートレット・コンテナーは、IBM WebSphere Application Serverによって実装されたJ2EEアーキテクチャーに依存します。これは、ポートレット開発者にとって次のような利点があります。
- Portlet APIは既知のServlet APIを利用し、必要に応じてその機能を拡張します。
- Servlet APIの知識を持つ開発者は即座にポートレットを作成することができます。
- 開発者は、既存のツールを使用してポートレットおよびJavaServer Pages (JSP) コンポーネントを開発することができます。
- ポートレットはJ2EEモデルの一部であるため、開発者はJ2EEに準拠したテクノロジーを多様に組み合わせて使用することができます。
- 開発者は、既存の単純なサーブレットおよびJSPコンポーネントを、ほとんど、あるいはまったく手間をかけずに再利用することができます。
ポートレットはJ2EE Webアプリケーションに似たWARファイル形式でパッケージされていて、サーブレットと似た方法で配置されます。他のサーブレットと同じように、ポートレットは、Webアプリケーション配置記述子 (web.xml) を使用して、アプリケーション・サーバーに対して定義されます。このファイルはポートレットのクラス・ファイル、サーブレット・マッピング、および読み取り専用の初期化パラメーターを定義します。
ポートレットには、サーブレット記述子のほかに、ポートレットの機能をポータル・サーバーに対して定義するためのポートレット配置記述子 (portlet.xml) も用意しなければなりません。この情報には、特定のポートレットまたはポートレット・アプリケーションに特有の構成パラメーター、およびすべてのポートレットが提供する一般情報 (例えば、ポートレットがサポートするマークアップのタイプ) が含まれます。ポータル・サーバーはこの情報を使用してポートレットにサービスを提供します。例えば、ポートレットがそのヘルプや編集モードに関するサポートをポートレット配置記述子に登録すると、ポータル・サーバーはアイコンを作成して、ユーザーがそのポートレットのヘルプおよび編集ページにアクセスできるようにします。
ポートレット・アプリケーション
ポートレット・アプリケーションは、同じコンテキストを共用する、関連したポートレットのグループをパッケージする手段を提供します。このコンテキストには、イメージ、プロパティー・ファイル、クラスなどの、すべてのリソースが含まれます。すべてのポートレットは、ポートレット・アプリケーションの一部としてパッケージされる必要があります。
ポートレット・アプリケーションは、それ自体でコードを提供するのではなく、ポートレットの論理グループを形成します。このような論理的な利点を備えているほかに、同じポートレット・アプリケーションのポートレットはセッションを共用し、また、メッセージを交換することもできます。
Webサービス
Webサービスを使用することにより、ビジネス・アプリケーションはインターネットを介して通信したり協調したりすることができます。Webサービスを使用するには、これまでのインターネットの操作方法からのパラダイム・シフトが必要です。インターネットにおけるサービスと対話する従来のアプリケーションは、それらのサービスを演繹的に知るようになっていて、アプリケーションに対してそれらのサービスを手動で指示する必要がありますが、Webサービスの場合、アプリケーションは標準化されたディレクトリー構造からWebサービスを検索するようになっていて、サービスとの結び付けに必要な人手による介入は最小限で済みます。図2 は、Webサービスの概念を示したものです。
図2. Webサービスの概念
Webサービスを使用すると、インターネット内でクライアントがアクセスできるWebサイトに、オブジェクトを分散させることができます。分散サービスを促進し、発見するためには、グローバル・サービス・レジストリーが使用されます。特定の種類のサービスを必要とする消費者は、グローバル・サービス・レジストリーに照会して、自分の要求に適したサービスを見付けることができます。消費者は、いずれかのサービスを選択し、そのサービスにバインドし、それを特定の期間使用します。サービスの発見と選択は、人手を介さずに行える可能性があるため、サービスの切り替えは非常に素早く行うことができます。サービスの発見が自動化されることにより、きわめて強固なサービスのネットワークを確立することも可能になります。同じ機能を提供するWebサービスが複数存在する場合、消費者は、現在使用しているサービスが失敗した場合に、バックアップ・システムに簡単に切り替えることができます。
この分野における最も重要な標準は以下のとおりです。
- Webサービスを登録および発見するためのUniversal Description, Discovery, and Integration (UDDI)
- Webサービスで通信を行うためのSimple Object Access Protocol (SOAP)
- Webサービスのインターフェースとバインディングを正式に記述するための、関連したWeb Services Description Language (WSDL)
ポートレットとWebサービス
ポータルの観点からは、「従来型の」データ指向のWebサービスと、プレゼンテーション指向のユーザー対面型の対話式Webサービスの、2つの異なる種類のWebサービスを区別することができます。
データ指向のWebサービスは、SOAP要求を受け取って、XML文書形式でエンコードされたデータ・オブジェクトをSOAP応答で戻します。このサービスのSOAP操作のシグニチャー、および戻されるデータの構造と意味体系は、サービス・タイプに特定のものです。図3 に示すように、受け取ったデータをサービス特定の方法で処理し、必要なプレゼンテーションを生成するのは、サービス消費者の仕事です。特定のデータを必要とし、そのデータの消費方法と処理方法が分かっているアプリケーションでは、これはすぐれた方法ですが、多種多様なソースから得られたコンテンツやアプリケーションを迅速に統合する必要のあるポータルでは、この方法は不適切です。
図3. ポートレットでのデータ指向のWebサービスの提供
ユーザー対面型のWebサービスには、サービス自体の一部としてプレゼンテーションが組み込まれています。このタイプのWebサービスは、消費者が処理したりプレゼンテーションに使用したりするための生データを提供することはありませんが、ポータルによって簡単に集約することのできるマークアップ・フラグメントを、自ら作成することができます。ユーザー対面型のWebサービスには、ユーザー対話を組み込むこともできます。こうしたWebサービスがポータルによって集約され、一般的な方法で処理を行うユーザー処置に関与することにより、消費者側でサービス特定のプレゼンテーションを行う必要がなくなるため、このタイプのWebサービスは、ポータルで統合および使用するのに適しています。
ポートレットで使用されるデータ指向のWebサービス
IBM WebSphere Portal V4.xを使用することにより、ポートレットは、データ指向のWebサービスにアクセスして、リモート・システムからデータを取得したり、トランザクションを駆動したりすることができます。データ指向のWebサービスを特定のインターフェースとともに使用する場合、ポートレットには、Webサービスの操作およびそれに特有の署名に一致した、サービス・インターフェース特定のコードを組み込む必要があります。ポートレットは、リモート・サービスの起動を必要とする要求を受け取った場合、サービス特定のSOAPプロキシーを呼び出します。SOAPプロキシーは、パラメーターを受け取り、プログラム言語独立なSOAP要求にマーシャルし、その要求をリモートWebサービスに送信します。このWebサービスは、SOAP要求を受け取り、パラメーターをアンマーシャルし、それらのパラメーターを使用してWebサービス実装を起動します。このサービス実装から結果が戻されると、Webサービスはその結果を基にプログラム言語から独立したSOAP応答を作成し、それを消費者側のSOAPプロキシーに戻します。SOAPプロキシーはそれを基に結果データを復元し、最後に、適切なオブジェクトとしてポートレットに戻します (図4 を参照)。
図4. ポートレットで使用されるデータ指向のWebサービス
サンプル・シナリオ
理論については一通り説明しましたので、次に、データ指向Webサービスを使用できるポートレットの開発方法を説明することにします。以下のセクションでは、段階的にサンプル・ポートレットを使用し、必要に応じて対応する概念を説明していきます。私たちが使用するサンプル・シナリオでは、ポータル・プロバイダーが自社のポータル (従業員に関するEメール・アドレスや電話番号などの情報を得るためにユーザーが使用するディレクトリー・ポートレット) に新規機能を追加しようとしています。この例では、ポートレットは該当の情報を得るためにデータ指向のWebサービスを使用することになります。図5 は、このシナリオをやや詳しく示したものです。
図5. サンプル・シナリオ
ポートレット・アプリケーションの開発
ポートレットをプログラミングするための設計方法としては、Model-View-Controller (MVC) パターンをお勧めします。下の図6 は、このパターンを私たちの例に合わせて調整する方法を示しています。ポートレットはコントローラーの役割を果たし、JSPコンポーネントはビューの役割を果たし、Webサービスはモデルのデータを提供します。ポートレットに対する最初の要求が到達すると、その要求はView.jspにディスパッチされます。View.jspには、ユーザーがディレクトリーに照会する内容として従業員の名前を定義するために使用する、フォームが含まれています。ビューが作成されて、マークアップがクライアントに送り返されます。ユーザーが名前を入力して検索ボタンをクリックすると、2番目の要求がポータルに送信されます。今回は、ポートレットはWebサービス・プロキシーを起動し、フォームで指定されたパラメーター値を引き渡します。プロキシーは、渡されたデータBeanをResult.jspに戻します。Result.jspはBeanから該当のパラメーターを入手し、生成されたマークアップにそれらのパラメーターの値を組み込みます。これは、私たちのポートレットが2つの異なる状態になり得ることを意味します。一方の状態のときには検索基準を入力することができ、もう一方の状態のときには結果が表示されます。
図6. アプリケーション制御フロー
標準サーブレットのシナリオとは対照的に、アクションを含む着信要求では、ポートレットが2回呼びされます。最初は、actionPerformed メソッドが起動され、その後service メソッドが起動されます。ポータルに対して後続の要求が行われてもポートレットの論理状態が維持されるようにするために、以下のステップが行われます。
- ポートレットが、そのポートレットを指し示す戻りURIをポータル・フレームワークから取得し、それにアクションを結び付けます。
- 該当の要求が到着すると、このアクションがポートレットの
actionPerformed メソッドに渡されます。必要な操作はすべて実行され、その結果に応じてポートレットの状態が調整されます。そして、その状態と追加データが要求またはセッションに保管されます。
- この状態は、
service メソッドで、該当のJSPコンポーネントにディスパッチしたり出力を生成したりするために使用されます。
以上でサンプル・シナリオの紹介と、ポートレットをプログラミングするための推奨パターンの説明を終わり、次に、サンプル・アプリケーションを実装することにします。このタスクは、さまざまなツールを使用して行うことができますが、ここでは、IBM WebSphere Studio Application Developer (Application Developer) を使用することにします。Application Developerは、必要なすべての機能を1つのツールに統合したものです。
ポートレットの実装
このセクションでは、Application DeveloperおよびPortal Development Toolkitを使用してポートレットを実装する方法について説明します。通常、ポートレットの開発には、少なくとも以下のステップが必要です。
- ポートレットのクラス・コードおよびJSPコンポーネントを実装する。
- リソースをWARファイルにパッケージ化し、web.xmlおよびportlet.xml記述子ファイルを作成する。
- ポートレット・アプリケーションをポータル・サーバーに配置し、テストする。
Application Developerは、最初のステップを支援するものであり、Portal Development Toolkitと併用することにより、アプリケーションをパッケージ化し、必要なXML記述子ファイルを作成するための手間を大幅に軽減します。このツールキットは、ポートレット・アプリケーションをポータル・システムに自動的に配置したり、リモート側からポートレット・アプリケーションをテストおよびデバッグしたりするための機能を備えています。ただし、この記事では、最初の2つのステップに焦点を合わせて説明します。詳細については、参考文献に示されたToolkitの文書を参照してください。
最初のステップでは、次のようにして新規ポートレット・アプリケーションを作成します。
- 「New (新規)>Other (その他)>Portlet Development (ポートレット開発)>Portlet Application Project (ポートレット・アプリケーション・プロジェクト)」と選択して、ポートレット・ウィザードを起動します。
- アプリケーションの名前を定義します。カスケード・スタイルシートを作成したい場合のみ、「CSS file (CSSファイル)」を選択します (この例では、選択しません)。
- 次のパネルで、いくつかのデフォルトのポートレットが表示されます。単一ポートレットの詳細な説明については、文書を参照してください。私たちの単純な例では、「Basic Portlet (基本ポートレット)」を選択します。「Next (次へ)」をクリックします。
- このパネルを使用して、ポートレット・アプリケーションとポートレットの名前、およびポートレットのクラス名を編集することができます。指定したい設定値を入力し、「Finish (終了)」をクリックして、ポートレット・アプリケーションを作成します。
以上で終わりです。これで、必要なXML記述子ファイルが組み込まれた、すぐに使用できるポートレット・アプリケーションが作成されました。これらのファイルを編集したい場合には、Application Developerが提供する便利なウィザードを利用することができます。
WSDL記述ファイル
<?xml version="1.0" encoding="UTF-8"?>
<definitions name="DirectoryAccessorService"
targetNamespace="http://localhost:8080/WebService/wsdl/
DirectoryAccessor-service.wsdl"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:binding="http://www.directoryaccessor.com/definitions/
DirectoryAccessorRemoteInterface"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="http://localhost:8080/WebService/wsdl/
DirectoryAccessor-service.wsdl">
<import
location="http://localhost:8080/WebService/wsdl/
DirectoryAccessor-binding.wsdl"
namespace="http://www.directoryaccessor.com/definitions/
DirectoryAccessorRemoteInterface"/>
<service name="DirectoryAccessorService">
<port binding="binding:DirectoryAccessorBinding" name="DirectoryAccessorPort">
<soap:address location="http://localhost:8080/WebService/
servlet/rpcrouter"/>
</port>
</service>
</definitions>
|
次に、前に説明したWebサービスにアクセスするためのプロキシーが必要になります。上の例には、私たちが使用したいと思っているサービスのWSDL記述が示されています。Application Developerを使用してこのようなWebサービスを作成するための方法については、Webサービスの開発のセクションを参照してください。
Webサービス・クライアントをプロジェクトに組み込むには、以下のステップに従ってください。
- 「New (新規)>Other (その他)>Web Service (Webサービス)>Web Service Client (Webサービス・クライアント)」と選択して、Webサービス・ウィザードを起動します。
- 読者のポートレット・アプリケーション・プロジェクトを選択します。「Generate a proxy (プロキシーを生成する)」フィールドだけを選択してください。
- 次に表示されるパネルで、WSDL定義ファイルにアクセスできるWSDLファイルの場所または該当のURLを定義します。サンプルWebサービス実装を使用する場合には、「Browse (ブラウズ)」をクリックし、Webサービス・プロジェクトにあるWSDL記述ファイルを選択してください。「Finish (終了)」をクリックします。
読者のプロジェクトには以下のパッケージが組み込まれます。
- ポートレット
- ポートレット開発ツールキットによって作成され、
WebServicePortlet クラスとWebServicePortletBean クラスを含みます。WebServicePortletBean クラスは使用しませんので、削除することができます。
- マッピング
- Webサービス・ウィザードによって作成されます。Webサービスによって戻されるデータBeanを表すSample_WebService_RecordBean.classが含まれます。
- proxy.soap
- プロキシー・クラスを含むパッケージ。
図7. ポートレット・アプリケーションの作成およびWebサービス・クライアントの統合後
最後のタスクは、単一コンポーネントの接続と追加JSPコンポーネントの作成です。
WebServicePortletクラスの編集
アクションを処理できるようにするためには、WebServicePortlet クラスを拡張して、このクラスにActionListenerインターフェース (org.apache.jetspeed.portlet.eventパッケージに入っています) を実装させ、actionPerformed メソッドを提供する必要があります。このメソッドには、着信アクションのタイプを判別するコードが含まれています。下記のコード・サンプルに示すように、この名前が「search」である場合には、Webサービス・プロキシーが起動し、戻されたBeanが属性として要求に追加され、状態属性が「Display Results」に設定されます。
actionPerformedの実装
public void actionPerformed(ActionEvent event) throws PortletException {
PortletRequest request=event.getRequest();
DefaultPortletAction action = (DefaultPortletAction) event.getAction();
if (action.getName().equals("search")) {
String name=request.getParameter("name");
Sample_webservice_RecordBeanContentType recordBean=null;
DirectoryAccessorProxy proxy=new DirectoryAccessorProxy();
try
{
recordBean=proxy.getEmployeeRecord(name);
}
catch(Exception e) {throw new PortletException(e.getMessage());}
if(recordBean==null) recordBean= new Sample_webservice_RecordBeanContentType();
request.setAttribute("Result", recordBean);
request.setAttribute("State","DisplayResult");
}
}
|
State属性の値に応じて2つのいずれかのJSPコンポーネントにディスパッチするために、doView メソッドを変更する必要があります。
doViewの実装
public void doView(PortletRequest request,
PortletResponse response) throws PortletException, IOException {
String jspName="/jsp/View.jsp";
String state=(String)request.getAttribute("State");
if((state!=null) & (state.equals("DisplayResult")))
jspName="/jsp/DisplayResult.jsp";
// Invoke the JSP to render
getPortletConfig().getContext().include(jspName, request, response);
}
|
JSPページの作成
Application DeveloperのWebページ・デザイナーを使用することにより、JSPページを簡単に作成し、実行できるようになります。これらのページの設計は、読者にお任せします。ただし、以下のコード・フラグメントを必ず使用するようにしてください。
- それぞれのJSPページで以下のタグ・ライブラリーを追加します。
<%@ taglib uri="/WEB-INF/tld/portlet.tld" prefix="portletAPI" %> |
- 最初のJSPページで、名前フォームのアクション・フィールドを次のように設定します。
<portletAPI:createURI><portletAPI:URIAction name="search" />
</portletAPI:createURI>
|
- DisplayResult JSPページに次のコードを追加します。
<%@ page import="mappings.Samples_webservice_RecordBeanContentType" %>
<jsp:useBean id="Result" class="Samples_webservice_RecordBeanContentType"
type="Samples_webservice_RecordBeanContentType" scope="request"/>
|
私たちの例では、View.jspは次のようになります。
View.jspコード
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<%@ page contentType="text/html"%>
<%@ taglib uri="/WEB-INF/tld/portlet.tld" prefix="portletAPI" %>
<HEAD>
<META name="GENERATOR" content="IBM WebSphere Studio">
</HEAD>
<P><BR>
</P>
<FORM method='POST' action='<portletAPI:createURI>
<portletAPI:URIAction name="search"
/></portletAPI:createURI>'>Enter the name of the employee:<BR>
<BR>
Name: <INPUT name='name'><BR>
<br>
<INPUT type='submit' name='searchButton' value='Search'><br>
</FORM>
|
図8. ポートレットのView.jsp
私たちの例では、DisplayResult.jspは次のようになります。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<%@ page contentType="text/html"%>
<%@ taglib uri="/WEB-INF/tld/portlet.tld" prefix="portletAPI" %>
<HEAD>
<META name="GENERATOR" content="IBM WebSphere Studio">
</HEAD>
<P><BR>
</P>
<FORM method='POST' action='<portletAPI:createURI>
<portletAPI:URIAction name="search"
/></portletAPI:createURI>'>Enter the name of the employee:<BR>
<BR>
Name: <INPUT name='name'><BR>
<br>
<INPUT type='submit' name='searchButton' value='Search'><br>
</FORM>
|
図9. ポートレットによって表示されるResult.jsp
Webサービスの開発
このセクションでは、上に述べたポートレット・アプリケーションをテストする手段を提供するために、Application Developerを使用したWebサービスの実装について簡単に説明します。
ポートレットの開発時には、さまざまなツールを使用することができます。私たちはApplication Developerを採用しました。これは、Application DeveloperにはWebサービスの作成に必要なすべてのツールが組み込まれているためです。ユーザーが行う必要があるのは、適切なクラスを実装することだけです。これによってサービス記述子が自動的に作成され、Application Developerの統合されたWebSphere Application Serverにサービスが配置されて、すぐにサービスが使用できるようになります。開始するためには、次のようにします。
- 新規Webプロジェクトを作成します。
- サービスのためのクラスを実装します。
- プロジェクトを右マウス・ボタンでクリックして「New (新規)」を選択し、さらに「Other (その他)」を選択します。「New (新規)」パネルが表示されます。Webサービス・フォルダーを選択し、「Web Service (Webサービス)」をクリックします。
- 「Web Service (Webサービス)」パネルを使用して、以下のパラメーターを指定することができます。
- Web Service Type (Webサービス・タイプ): 「Java Bean Web Service (Java Bean Webサービス)」を選択します。
- Web Project (Webプロジェクト): サービスの作成が行われるプロジェクトを指定することができます。上記のステップに従っている場合には、このフィールドは自動的に設定されます。
- Wizard defaults (ウィザードのデフォルト): 「Start Web Service in Web Project (WebプロジェクトでWebサービスを開始する)」が選択されていることを確認してください。「Launch the UDDI Browser to publish this Web Service (UDDIブラウザーを起動してこのWebサービスを公開する)」オプションを使用すると、Application DeveloperからサービスをUDDIレジストリーに公開することができます。
- 次のパネルで、Webサービスの作成対象となるクラスまたはファイルを指定するようにプロンプトが出されます。それ以降のパネルでは、タイプのマッピングとバインディングを編集することができます。この例の場合には、デフォルトの設定値を使用して「Finish (終了)」をクリックします。
ユーザーに代わってApplication Developerが自動的にWebサービスとすべてのWSDL記述を作成し、サービスをサーバーに公開して、開始させます。
この記事によって、IBMのWebSphere Studio Application Developerを使用すると、データ指向のWebサービスをポータルに簡単に組み込めることがお分かりいただけたと思います。さらに大きく踏み出すためには、下記の参考文献に記載された詳細を参照してください。
参考文献
著者について  | 
|  | Juergen Schaeck氏は、IBM Boeblingen研究所のソフトウェア・エンジニアです。JuergenはKarlsruhe大学より修士号を取得しており、現在はWebSphere Portal Developmentに勤務しています。Juergenの連絡先はjschaeck@de.ibm.com です。 |
記事の評価
|