このトピックでは、UMEのユーザを取り上げて説明します。
ユーザとは
ユーザとは、AsJAVAシステムを使用する個人又はアプリケーションで、それぞれ一意なIDを持ちます。
ユーザにグループやロールを割当することができます。
ABAPユーザとの統合
| UMEユーザプロファイル | マッピングされるABAPユーザデータ | ||
|---|---|---|---|
| 属性値 | 内容 | 属性値 | 内容 |
| company | 会社 | 無 | |
| country | 国 | 無 | |
| currency | - | 無 | |
| dateformat | - | 無 | |
| department | 追加情報:部門 | SU01/DEPARTMENT | 部署 |
| description | - | - | - |
| displayname | 一般情報:姓+名 | SU01/NAME_LAST + NAME_FIRST | 姓+名 |
| displayname_role | - | - | - |
| 電子メールアドレス | SU01/SMTP_ADDR | メールアドレス | |
| fax | コンタクト情報:FAX | SU01/FAX_NUMBER | ファックス |
| firstname | 一般情報:姓 | SU01/NAME_LAST | 姓 |
| jobtitle | 追加情報:ポジション | SU01/FUNCTION | 職務 |
| lastname | 一般情報:名 | SU01/NAME_FIRST | 名 |
| mobile | コンタクト情報:携帯電話 | SU01/MOB_NUMBER | 携帯電話 |
| name | 一般情報:姓 | SU01/NAME_LAST | 姓 |
| pobox | - | - | - |
| position | - | - | - |
| room_desc | - | - | - |
| room_id | - | - | - |
| room_name | - | - | - |
| room_role_name | - | - | - |
| salutation | 一般情報:敬称 | SU01/TITLE_MEDI | タイトル(敬称) |
| sip | - | - | - |
| state | コンタクト情報:都道府県 | - | - |
| streetaddress | コンタクト情報:地名 | - | - |
| telephone | コンタクト情報:電話番号 | SU01/TEL_NUMBER | 電話 |
| timezone | コンタクト情報:タイムゾーン | - | - |
| title | - | SU01/TITLE_ACA1 | 学位称号 |
| uniquename | 一般情報:姓 | SU01/NAME_LAST | 姓 |
| zip | コンタクト情報:郵便番号 | - | - |
ABAPデータソースの設定
UME-ABAP通信ユーザ作成
UMEからAsABAPシステムをアクセスするためのABAPユーザを作成します。
- ユーザタイプ
システムと指定する必要があります - ロール
以下の何れかを割り当てる必要があります。- SAP_BC_JSF_COMMUNICATION
UMEからABAPユーザを修正、削除できます。 - SAP_BC_JSF_COMMUNICATION_RO
UMEからABAPユーザデータを参照するのみです。
宛先作成
通信ユーザのアカウントとパスワードを登録します。
ABAPデータソース指定
外部リンク
このトピックでは、UMEの会社機能を取り上げて説明します。
目的
会社機能を利用することによって、一つのAsJAVAシステムの上に会社別の仮想システムを作成することができます。
- 記号なしリスト
- 会社別に管理ユーザを設定することができます。
設定
会社機能は主に下記二つのパラメータの設定により制御されます。
- ume.tpd.imp.class
実装クラス名
標準では以下の二つがデフォルトで用意されていますが、アドオン開発も可能です。- com.sap.security.core.tpd.abap.R3GroupTPD
- com.sap.security.core. tpd.SimpleTPD
- ume.tpd.companies
指定可能な会社を指定します。このパラメータはume.tpd.imp.class=com.sap.security.core. tpd.SimpleTPDの場合のみ有効です。
以下のように値を指定することができます。指定された会社のどちらにも所属していないユーザはゲスト会社を設けて纏めることができます。- 0:会社機能を利用しない
- 1:1会社のみが設定されます。
- 2:internal、externalの2会社が設定されます。
- 会社リスト:カンマ区切りの会社名リストで複数会社を設定できます。
外部リンク
このトピックでは、UMEのグループ機能を取り上げて説明します。
概要
グループはユーザの集まりです。
ユーザをグルーピングする基準は要件しだいですが、運用では職務や部署などが利用されることが多いと考えられます。
コンセプトでは、UMEのグループはAsABAPシステムのユーザグループ(SUGRで管理)に相当するものです。
利用目的
グループを使用することにより、各ユーザを所属しているグループ単位で纏めて権限を制御することができます。
階層化
グループは親子関係を持たせることにより、グループの階層を作成することができます。
このようにグループをネスト化することで、たとえば企業の階層を表すことができます。
種類
デフォルトグループ
デフォルトグループ(英:Built-in Group)は、システム実行時にUMEより自動的に生成されます。
3つのデフォルトグループがあります。
- すべてのユーザ
- 匿名ユーザ
- 認証済ユーザ
デフォルトグループは、UMEデータベースにも保存されることがなく、ユーザにより作成や削除、名前変更することができません。
ABAPロールグループ
AsABAPシステムがUMEのデータソースとして使用される場合、ABAPロールは自動的にUMEの同名のABAPロールグループとして読み込まれます。
ABAPロール割当はUMEでユーザからグループへの割当として処理されます。
会社グループ
会社グループ(英:Built-in Company Group)は、会社の設定時にUMEによって生成されます。
会社グループ、UMEデータベースにも保存されることがなく、ユーザにより作成や削除、名前変更することができません。
会社グループ機能を有効化するには、以下のUMEパラメータの値をTrueにする必要があります。
ume.company_groups.enabled = true
なお、どの会社にも所属しないユーザをゲスト会社グループに割り当てることができます。
ゲスト会社グループ機能を有効化するには、以下のUMEパラメータの値をTrueにする必要があります。
ume.guestcompany_groups.enabled = true
UMEグループ
UMEグループは、UME管理機能からユーザにより明示的に作成されるグループです。
UMEグループはUMEのローカルデータベースに保存されます。
UMEは、すべての Java アプリケーションに集中的なユーザ及び権限管理機能を提供し、複数のデータソースからユーザ管理データに対して作業することができます。
コンセプト
UMEのユーザ及び権限管理以下の要素から構成されます。
- ユーザ管理
- 権限制御
- 会社機能
ユーザ管理
AsJavaシステムを利用する個人や他のアプリケーションプログラムは、匿名ユーザを除く、すべてUMEで一意なIDをもって管理されます。
職位や部署など、同じ属性をもつユーザを纏めて権限などを管理できるような仕組みとして、ユーザの集まりを示すグループというコンセプトがサポートされています。
権限管理
UMEの権限管理の仕組みは、アクションとロールから構成されます。
アクションはどんな処理ができるかという権限を示すものです。
アクションはABAPシステムの権限オブジェクトに相当します、ABAP権限オブジェクトと同じ、アクションもプログラム実装やシステムコンフィグにより定義されるものです。そのため、ユーザからできる作業は割り当てだけです。
アクションをロールに割り当てて、さらにロールをユーザやグループに割り当てることにより、ユーザ毎の権限制御が実現されます。
下記の図でそのイメージを示します。
会社機能
会社機能を利用すれば、一つのAsJAVAシステムに会社毎の仮想システムを構築して、複数の会社を互いに影響せずに共存させることができます。
実現
アーキテクチャ
エンジン
UMEのエンジンはライブラリとしてAsJavaのコアに組み込まれています。
- SC:SERVERCORE
- DC:com.sap.security.core.sda
UMEを利用するアプリケーションに統一したAPIはまた別に提供されています。
- SC:ENGINEAPI
- DC:com.sap.security.api.sda
ツール
ユーザ管理機能
標準で用意されたユーザ管理機能はWebUIから利用することができます。
以下はポータルからアクセスした画面のイメージです。
ポータル画面の利用を含めて、ユーザ管理機能のWebUIをアクセスするには、下記のような方法があります。
- ポータル画面利用から
ナビケーションパス:ユーザ管理(User Management) - NWA画面から
ナビケーションパス:設定管理(Configuration Management)–セキュリティ(Security)–ID管理(Identity Management) - スタートページから
ナビケーションパス:User Management - 直接URL指定
URL:http://host-ip:host-port/useradmin
UME設定
UMEはさまざまなパラメータが用意されています。パラメータの値を変更するには、ローカルツールによるオフライン変更とWebUIによるオンライン変更の二つの方式があります。
オンライン変更の場合、パラメータによって、変更後にAsJAVAを再起動する必要があるものとないものが存在します。
オフライン方式
オンライン方式
オンライン方式はWebUIを使用します。ポータルからアクセスしたUME設定画面は以下のイメージです。
「Open Expert Mode」ボタンを押下すれば、パラメータ名を指定することによって、全パラメータの値を設定可能になります。
ポータル画面の利用を含めて、UME設定のWebUIをアクセスするには、下記のような方法があります。
- ポータル画面利用から
ナビケーションパス:システム管理(System Management)–システム設定(System Configuration)–UME設定(UME Configuration) - NWA画面から
ナビケーションパス:設定管理(Configuration Management)–セキュリティ(Security)–ID管理(Identity Management) –設定(Configuration)ボタン
このトピックでは、ポータルロールを取り上げて、その構成要素などを説明します。
概述
ポータルロールは、コンテンツをどのようにグループ化するか、コンテンツを SAP NetWeaver Portalにどのように表示するかが定義されます。
ユーザ、またはグループをポータルロールに割り当てることによって、ユーザまたはグループがどのコンテンツをポータルに表示するかを定義します。割当時、ロール割当ユーザ権限のチェックが行われ、ロールを割り当てるための適切な権限を保有しているかどうかが確認されます。
ポータルロールのほかにユーザマネジメントエンジン (UME) ロールがあります。UMEロールによって、権限のセットが定義されます。但しUMEロールはポータルの表示を制御することができません。
構成要素
ポータルロールの構成要素はおもに以下のようなものがあります。
- ページ:
レイアウトと割り当てられたiViewで構成されるiView のコンテナです。 - iView:
社内やインターネットのコンテンツソースからデータを取得し、ポータルのコンテンツエリアに表示するプログラムです。 - ワークセット:
特定の活動分野に属するタスク、サービス、情報のコレクションです。 - メニュー:
ワークセットとメニューの組み合わせを作成し、ロールに紐付けることでユーザーごとに異なる画面を表示することが可能です。
サンプル
このトピックでは、ポータルの画面構成を取り上げて説明します。
概要
レイアウト
各エリア
トップヘッダ
トップヘッダエリアは、主にシステムの各ページに不変なヘッダ内容が表示されます。例えば、会社のロゴやシステムの名前、検索のツールボックスなどはよくこのエリアに含められます。
概要で取り上げられたデスクトップサンプルの下記部分はこのエリアに該当します。 
ツール
ツールエリアは、ポータルにナレッジマネジメント (KM) がインストールされている場合に限り表示されます。
トップレベルナビゲーション
トップレベルナビゲーションは、ユーザに割り当てられたロールのコンテンツをアクセスするためのタブを並べられるバーエリアです。
設定により、2行目に選択中のロールの第1階層のサブフォルダを表示させることができます。
ページタイトルバー
表示されたページのパーソナライゼーション、ナビゲーション、およびアクションのオプションに関する情報などはこのエリアに表示されます。
ナビゲーションパネル
ページタイトルバーの直下にある左側のペインはナビゲーションiView 用に予約されており、これにはコンテンツツリー、インタフェースコントロール、各種コンテンツへのリンクが含まれています。
コンテンツエリア
EPを利用することにより、すべての操作が単一のユーザエクスペリエンスに統合されます。
コンセプト
EP(Enterprise Portal)はSAP NetWeaver PlatformのWEBフロントエンドとして機能します。 ポータルのほか、以下の機能も統合されておます。
- ナレッジマネジメント
さまざまなデータソースの非構造化情報にロールベースでアクセスすることができます。 - コラボレーション
社内の同僚や他の従業員との通信/連絡および連携に役立つサービスを提供します。 - ガイドプロシージャ
複数のバックエンドシステムへのアクセスを伴うプロセスをモデリングし、管理するためのフレームワークです。
実現
アーキテクチャ
利用タイプ
ポータル機能を利用するためにNetweaverから用意された利用タイプはEP(エンタープライズポータル)です。
EPの一部基本機能を抜き出してEPC(EPコア)という利用タイプとしても提供されております。EPCはEP利用の前提条件になります。
機能構成
以下の表でそれぞれの機能構成を示します。
| 機能 | EPC | EP |
|---|---|---|
| ポータル | ○ | ○ |
| ガイドプロシージャ | ○ | ○ |
| 統合ワークリスト | ○ | ○ |
| ナレッジマネジメント | × | ○ |
| コラボレーション | × | ○ |
| ビジュアルコンポーザ | × | ○ |
管理ロール
EPCの管理ロール
Super Admin ポータル管理環境のすべての管理ツールが含まれています。
Content Admin ポータルでコンテンツを登録および更新するためのツールが提供されます。
User Admin ポータルでのユーザ管理およびロール割り当てを行うためのツールが提供されています。
System Admin ポータル、ポータルのサービス、およびシステムランドスケープの設定、更新およびサポートを行うためのツールが提供されます。
このトピックでは、DTRのバージョン管理の仕組みを取り上げて説明します。
目的
主に下記の二つあります。
- 変更歴史の記録
バージョン間の変更点を確認したり、ふるいバージョンに戻したりすることができます。 - 統合時の判断
ソースファイルを統合する際に、バージョンを比較して統合できるかを判断できます。
管理レベル
DTRはファイルとワークスペースと二つのレベルでバージョン番号を管理しています。
ファイル
ファイルはそれぞれ個別のRev No.(リビジョン番号)をもっています。
Rev No.は、ワークスペース内で採番されます。1から始まり、ファイルが変更されるたびに一つずつあがっていきます。
ファイルのRev No.はNWDSで確認することができます。
ワークスペース
ワークスペースレベルのバージョン番号は、ISN (Integration Sequence Number、統合順序番号)と呼ばれます。
ワークスペースにチェックインされた変更には、そのワークスペース内で適用される一意なISN番号が割り当てられます。
ワークスペースへの変更は、アクティビティによるものと、伝播(Propagation)によるものがあります。
- アクティビティ
ローカルワークスペースで行った修正 - 伝播
トラックに跨ってインポートされる変更
統合
ワークスペースが統合されるときに、ファイルのバージョンが統合されます。
バージョングラフから、ワークスペースに跨ったファイルのバージョン歴史を確認することができます。
そこで、ワークスペース間でどうな統合が発生したのか、次の統合にコンフリクトも確認できます。
外部リンク
このトピックでは、DTRのアクティビティを取り上げて説明します。
(このトピックは編集中です。)
概述
アクティビティ(英:Activity)はDTRへ対する変更の開発及び移送の管理単位です。ABAPスタックにおける変更依頼に相当します。
アクティビティはOpenとClosedとの二つのステータスがあります。
ライフサイクル
このセクションはアクティビティ のライフサイクルを順次説明します。
作成
変更の記録
チェックイン
有効化
リリース
照会
NWDSやWEB-UIからアクティビティ一覧を照会することができます。アクティビティ一覧からワークスペース全体の変更経緯を確認することができます。
デザインタイムリポジトリ (DTR) はファイルバージョン管理を提供するリポジトリ及びそのシステムです。
同じバージョン管理システムとして、オープンシステム開発系の世界では、以下のオープンソースソリューションがよく利用されています。
- CVS
- SVN
- Git
歴史的には、最初はCVSがはやっていて、次はSVN、いまはGitが一番流行っているに間違いないです。
コンセプト
DTRはファイルバージョン管理を提供するリポジトリです。SAP のカスタマサイトやパートナサイト、および SAP 自社開発で使用されます。
DTRは以下のコンセプトがあります。
- ソースコード及びバージョンを一元管理
DTRでは、すべてのソースプログラム及びバージョンはセントラルデータベースで一元管理され、 標準DeltaVおよびWebDAVアクセスプロトコルによってDTR クライアントに階層ファイルシステムを公開されます。
そのため、DTRはCVS、SVNと同じ、集中型バージョン管理システムといえます。 - 変更を確実に管理
ソースコードに改修が発生する時に、まず変更依頼を作成しておかないといけない、改修はすべて変更依頼に記録されます。
これは本来プロジェクト管理システムの一部機能であり、よくチケットやチケット駆動開発と呼ばれています。DTRに統合されることにより、システムの変更がすべて確実に管理されることになります。 - ライフサイクルの各フェーズを統合的にサポート
開発やテストの各フェーズの間にソースの変更と移送が一元管理されます。
実現
アーキテクチャ
ワークスペース
DTRリポジトリは、複数の論理開発ロケーション(仮想リポジトリ)から構成されます、その論理開発ロケーションはワークスペースと呼ばれます。
ワークスペースはDTR構造の基本要素であり、以下のような仕組みで機能しています。
- ソフトウェアコンポーネント単位でワークスペースが分けられます。
- 4システムランドスケープの中でDEVとCONSが異なるワークスペースを使用、TESTとPRODが持たないことが多い
- 各システム(DEV、CONS)を無効と有効との二つのDTRワークスペースで表現。全ての変更は無効なワークスペースで実行し、ビルドが完了したソースのみが有効なワークスペースに格納されます。有効なワークスペースはCBSで利用可能なアーカイブと常に同期します。
- 同じソースはワークスペースに跨ってDTR全体で一元管理されます。そういう意味で、ワークスペースはSVN、GITなどのような一般のバージョン管理システムにおけるブランチに相当するものと考えられます。
DTRの構造
以下、DTRの構造のイメージです。
system-tools -|administration -|reports --|Activity Search --|Conflict Search --|File/Folder Search --|Resource Lookup --|VersionSet Comparison --|Workspace Comparison --|Workspace Integrations ws -|track_1 --|sc1 ---|cons ----|active ----|inactive ---|dev
サポートツールでは、CMS管理用の幾つかのツールが提供されております。
メイン画面
プロセス照会
CMSシステムで発生していた各プロセス(インポート、ビルド、承認)の情報を照会できます。
アクティビティ検索
CMSシステムで作成されていたアクティビティを検索することができます。
トラック検索
指定ソフトウェアコンポーネント(SC)が取り込まれたトラックを検索することができます。
SC照会
指定トラックに取り込まれたソフトウェアコンポーネント(SC)の情報を照会できます
システムステート削除
間違って追い越しして後のリリースが先に移送されてしまった場合、対象システムのシステムステートをクリアしておけば、古いリリースが再び移送可能になります。
このトピックでは、トラック内移送とトラック間移送に分けてNWDIにおける移送プロセスを説明します。
トラック内移送
開発者側作業
開発者側の作業はすべてNWDSで実施されます。
1.有効化
開発者が作成又は変更したソースをチェックインしたら、該当ソースはDTRのinactiveワークスペースからactiveワークスペースに反映され、有効化されます。
ソースが有効化すると、元開発者が保持したロックが解放されるため、同じ開発設定を使用するすべての開発者から再度修正をかけることができます。
有効化されるソースは、CBSにより再ビルドされます。
2.リリース
有効化及び開発システムでのテストが正常に完了すると、開発者はアクティビティをリリースし、CMSに変更を転送します。
これによって、開発者に選択された全てのアクティビティが一つのリリースに纏められ、コンソリデーションシステムのインポートキューに格納されます。
ABAPスタックの移送ディレクトリと異なり、インポートキューはファイルシステムではなくデータベースにされます。
CMS_TQUEUE:インポートキュー
CMS_THISTORY:インポート履歴
CMS_RCHANGELIST: 変更依頼の割当
管理者側作業
3.インポート
インポートは、インポートキューに入っている変更依頼を選択してコンソリデーションシステムに取り込みします。
CMSによって、自動ビルドと関連する実行時システムへの自動デプロイが行われます。
ログファイルです。
CMS/log: エクスポート及びインポートのログ
CMS/archives: エクスポート時に生成されるscaファイルおよびpraファイル
CMS/CBS`: デプロイのためにCBSによって生成されるsdaファイル
4.アセンブリ
アセンブリは構築のことです。
この間に変更依頼が収集され、それに基づいて、すべての変更依頼を含めたSCバージョンが作成されます。
個々の変更依頼はこれ以降の転播に使用されません
5.承認
承認とは、テストシステムで検証が完了したSCを本稼働システムへの移送を許可することです。
承認によって、本稼働システムのインポートキューにSCが格納されます。
6.出荷
トラック間移送
このトピックでは、開発トラックを取り上げて説明します。
概述
開発トラックとは、1つの開発の流れを定義します。
開発トラックには、開発されるSCのさまざまな開発ステータスの開発設定及び実行時システムが含まれます。
構成
セントラル開発システム(DEV)では、開発者のローカルPCで作成したソースを個々の開発者がさらにテストをします。
コンソリデーションシステム(CONS)は、特定の固定ステータスのSCの統合とそのSCの追加テストに使用されます。
その後、本稼働システム(PROD)へ適用する前に、テストシステム(TEST)でSCの新規バージョンを最終テストをします。
必要に応じて、これらの4つのシステムロールを実行時システムに割り当てることができます。実行時システムでは、インポート時に自動的にデプロイが実施されます。
外部リンク
変更管理サービス(CMS)は、ソフトウェア変更のシステム間の移送管理を行います。システムは開発設定と実行システムのどちらかまたは両方で構成することができます。
システムはシステム開発のフェーズ(開発、コンソリデーション、テスト、本稼働)に対応します。CMSはABAPシステムのCTSに相当します。
コンセプト
CMSはソフトウェアの変更を一元で管理可能にするサービスです、JavaシステムのCMSはABAPシステムのCTSと同等します。
CMSのコンセプトは主に以下になります。
実現
アーキテクチャ
構成要素
開発ドメイン
開発ドメインは、システムランドスケープ全体の構成を定義します。
開発ドメインには複数の開発トラックを含めることができます。
開発トラック
開発トラックは一つの開発の流れを定義します。
一つの開発トラックには、一つ以上のソフトウェアコンポーネントの開発、テスト、本稼働に必要な開発設定と実行時環境がすべて組み込まれます。
システム
CMSにおけるシステムは、厳密的にはシステムロールのことであり、開発設定と実行環境から構成され、各フェーズ(開発、コンソリデーション、テスト、本稼働)に対応します。
システムロールは、開発設定のみ、または実行環境のみのものとしても定義することができます。
このトピックでは、NWDIの管理ツールを纏めて説明します。
NWDIの管理ツールを利用するフロントエンドは、おもにNWDSとWEB画面との2種類があります。
NWDS
NWDSでは、NWDIをアクセスするためのフロントエンドツールとして、さまざまなパースペクティブとビューが組み込まれています。
DI
- Component Browserビュー
以下の作業を実施することができます。- SC/DCを照会
- DCをローカルに取り込み、プロジェクトを作成
- SCをscaファイルにExport
- DCをビルド、デプロイ
- Component Propersビュー
以下の作業を実施することができます。- コンポーネントの構成や依存関係を照会
DTR
- Repository Browsesrビュー
以下の作業を実施することができます。- ソースファイルの内容及び履歴などを照会
- Open Acvitiesビュー
以下の作業を実施することができます。- 未チェックインのActivityを照会
- 変更をチェックイン
- 変更を廃棄
- Closed Acvitiesビュー
以下の作業を実施することができます。- チェックイン済のActivityを照会
- Integration Conflictビュー
以下の作業を実施することができます。- ワークスページ統合時に発生したConflictを照会、処理
- Version Graphyビュー
以下の作業を実施することができます。- ソースファイルのトラックに跨ったバージョン履歴を図で表示
CMS
- Transport Viewビュー
以下の作業を実施することができます。- 未リリースの変更依頼をリリース
- 未リリースまたはリリース済の変更依頼を照会
CBS
- Activation Viewビュー
以下の作業を実施することができます。- チェックイン済のActivityを有効化
- Activation Requestビュー
以下の作業を実施することができます。- 有効化リクエストのステータスを確認
WEB画面
メイン画面
DTR
CMS
CBS
このトピックでは、 NWDI を使用した開発の流れを抜粋して説明します。
概述
NWDIを使用した開発の流れは製品・リリース毎に設計、管理され、通常、開発準備→開発→移送及びテスト→本番稼働→運用保守などのフェーズに分けられます。
NWDIで開発流れは開発トラックで定義されます。
製品が本番稼働後、大きなアップグレードは別のリリースをとり、新しい開発流れを起こしますが、不具合修正やある程度の機能改善は、運用保守フェーズとして、同じ開発流れで対応するのが一般的です。
前提条件
NWDIを使用した開発を始めるまえに、まず下記のようにNWDIの環境を整える必要があります。
- 構成要素(DTR、CBS、CMS、SLDなど)のインストール
- システムランドスケープに関する情報の更新
各フェーズ
開発準備
開発準備は以下のステップがあり、基本は管理者の作業となります。
- ユーザ及びロールの登録 UMEAdmin
- 製品及びソフトウェアコンポーネントの作成 SLD
- 名称領域の予約 ネームサーバ
- CMSドメインの作成 CMS
- システム、トラック、開発設定の作成 CMS
トラックによって1つ以上のSCで構成されるリリースの開発フェーズが定義されます。
開発設定は、SCの特定のステータス(DEV、CONS)の開発に必要です。 - 必要なソフトウェアコンポーネントの確認とインポート CMS
- ローカル開発環境の設定 NWDS
開発
開発は、開発者の作業であり、ローカルのNWDSを使ってNWDI各サービスに接続して実施します。
開発作業は主に以下のステップになります。
- チェックアウト
- ソースの作成又は変更
- ビルド
- ローカルテスト
- チェックイン
- セントラルビルド、有効化
- デプロイ
- リリース
移送及びテスト
CMSを使用して、移送、テスト、アセンブリを行います。
移送、アセンブリは管理者の作業であり、テストは開発者又はテスタが実施します。
本番稼働
CMSを使用してソフトウェアコンポーネントのバージョンを出荷します。
運用保守
運用保守フェーズで変更が発生するたびに、アクティビティ作成⇒修正⇒ローカルテスト⇒リリース⇒品証機移送⇒品質テスト⇒本番機移送という作業を繰り返します。
このトピックでは、NWDIを使用して開発、運用されるソフトウェアのコンポーネントモデルを取り上げて説明します。
モデルの構成
NWDIのコンポーネントモデルは、製品、ソフトウェアコンポーネント(SC)と開発コンポーネント(DC)の三つのレイヤから構成されます。
開発コンポーネント(DC)にはさまざまな開発オブジェクトが含みます。
製品
製品は、 価格設定と販売の単位であり、一つ以上のソフトウェアコンポーネントを集めたものです。1つのソフトウェアコンポーネントを複数の製品に含めることができます。
SAP社が販売した「製品+バージョン」は3000近くあり、その中に一番有名なのはSAP ERPに違いがないです。
SLDの「製品とソフトウェアコンポーネントの照会」画面から、SAP社の製品を確認することができます。

ソフトウェアコンポーネント
ソフトウェアコンポーネント (SC) は出荷およびインストールの単位であり、開発コンポーネントを重複せずにまとめたものです。
通常のファイル形式はSCA形式です。
MDM(Master Data Management)という製品を例として、SLDの「製品とソフトウェアコンポーネントの照会」画面から製品の中身を確認してみます。

上記の図で示した通り、MDM製品には数多くのソフトウェアコンポーネントが含められております。
開発コンポーネント
開発コンポーネント (DC) は開発およびビルド、デプロイの単位です。
開発コンポーネントは、明確な外部インタフェースとカプセルされた内部実装があり、他のコンポーネントのパブリックインタフェースを参照して相互使用することができます。そのため、基本的な再利用可能な単位になります。
通常のファイル形式はSDA形式です。
以下はNWDSから取得したDCのコンポーネントプロパティビューのイメージです。


開発オブジェクト
開発オブジェクトは、コンポーネントの構成要素で、機能部分を提供します。
保守の視点
ソフトウェアの保守は、パッチ、サポートパッケージ、アップグレードの3つのレイヤに分かれます。
パッチ
パッチ(英:Patch)は開発コンポーネント(DC)レベルで配布されます。主に発見されたプログラムバグを修正するために開発、適用されます。
パッチにソースが含まれている場合、CMSのリソースを使用してインポートする必要があります。
サポートパッケージ
サポートパッケージ(英:Support Package、略:SP)は、ソフトウェアコンポーネント(SC)レベルで配布されます。、幾つかのパッチを含みます。
サポートパッケージにソースが付属している場合は、CMSを使用して、トラックにサポートパッケージをチェックインして移送する必要があります。
サポートパッケージにアーカイブのみが含まれる場合、SDMを使用して関連するシステムに直接インポートすることができます。
製品にどんなサポートパッケージが提供されているかは、SLDの「製品とソフトウェアコンポーネントの照会」画面から確認できます。

アップグレード
アップグレードは製品単位で実施されます、製品に大きな機能強化や新規機能の追加があった場合、新しいリリースが配布されます。
アップグレードはCMSを使用しません。
開発の視点
開発の視点からは、開発モデルの基本構成となるものは、ソフトウェアコンポーネント(SC)と開発コンポーネント(DC)になります。
ソフトウェアコンポーネント
- SCは複数のDCを纏める大きい単位になり、SC情報とSC間の依存関係はSLD上に登録する必要があります。
- 開発設定はソフトウェアコンポーネント(SC)単位で管理されます。
- SC名はシステム全体としてユニークである必要があり、最初に設定した名称を変更することはできない。
- 移送はSC単位で分けられます。
- DTRのワークスペースはSC単位で分けられます
開発コンポーネント
- DCは最小の開発単位(Web Dynpro JAVA, CAF等)でSCの配下に定義します。
- DC毎にNWDS環境でJAVA開発プロジェクトが作成されます
- DC間の再利用定義は利用される側からはPublicパーツを定義して利用する側は該当Publicパーツを参照するようになります。
- DC名はシステム全体としてユニークである必要があります。
- DCの参照設定はNWDSの「Development Infrastructure」パースペクティブウィンドウから行います。
- 参照対象のDCを「Component Properties」Viewの「Dependencies」タブから追加します。
- 「Dependency Details」は「Design Time」「Runtime」を設定して「Deploy Time」は外すようにします。
バージョン管理
製品
製品には、リリース番号がバージョンになります。
例えば、NetWeaver AS Java は7.0、7.1、7.2、7.3、7.4などのバージョンがあります。
ソフトウェアコンポーネント
ソフトウェアコンポーネントのバージョン番号には、製品のバージョン、サポートパッケージのバージョンが含められます。
システム情報画面からインストール済のソフトウェアコンポーネントのバージョンを確認することができます。

| パーツ | 値 | 意味 |
|---|---|---|
| 1 | 1000 | 固定 |
| 2 | 7.20 | 製品のバージョン |
| 3 | 5.2 | サービスパッケージ(SP)のバージョン |
| 4 | 20110906181900 | リリースのタイムスタンプ |
NWDI(NetWeaver Development Infrastructure) は、 NetWeaverプラットフォームの上に動作するJavaベースのアプリケーションを開発するための基盤であり、アプリケーションのバージョン、構築、およびライフサイクルを管理する機能を備えています。
NWDI自体もNetWeaver Javaプラットフォームに稼働するものですので、NetWeaverインストール時に利用タイプDIを選択してインストールを行うことで、 NWDIに必要な機能がインストールされます。
コンセプト
NWDIは、システムの開発作業を一つのプラットフォームに統合することにより、集中管理が可能になります。
NWDIでは以下の作業がすべて集中管理できるようになっております。
- ソースプログラムの集中管理化⇒DTR
- 構築配置作業の集中管理化⇒CBS
- 変更管理移送作業の集中管理化⇒CMS
実現
アーキテクチャ

(source: sap help portal)
機能構成
上記のアーキテクチャ図で示したとおり、NWDIを構成する要素は、NWDS、DTR、CBS、CMSがあります。
- NWDS
NWDSにおけるJavaアプリケーションの開発は、ソフトウェアコンポーネントモデルを基準としております。従ってソフトウェアプロジェクトが、開始時から管理しやすい再利用可能な単位に体系的に構造化されます。 - DTR
DTRでは、バージョンニングソースコードを管理できるため、チームにおけるソフトウェアの分散開発、及びソースの移送と複製が可能です。 - CBS
CBSは、ソースコードのセントラルビルドに使用されます。開発者の操作はNWDSに統合されます。CBSはビルドプロセスのために自動的にDTSと通信います。 - CMS
CMSは、JAVA開発ランドスケープ、及びソフトウェアライフサイクル全体に渡る移送を集中管理するため、に使用します。CMSの機能は、DTR、CBS及びSLDに緊密に統合されています。
ロール
NWDIは開発者と管理者のためにそれぞれロールを用意しています。
- 管理者ロール
NWDI.Administrator - 開発者ロール
NWDI.Developer



















































