4

2つの製品があります:

  1. BIレポート(ビジネス情報)
  2. ソーシャルネットワーキング

製品「ソーシャルネットワーキング」は、企業内のユーザーが、特に製品「BIレポート」に関してコラボレーションできるようにするWebアプリケーションです。

両方の製品が共有する1つのデータベースがあります。それらはそれぞれデータベースに独自のテーブルを持ち、いくつかの「ユーザー管理」テーブルも共有します。

各製品には独自のリリースサイクルがあります。「ソーシャルネットワーキング」の新しいバージョンをリリースするときに、「BIレポート」の新しいバージョンを常にリリースするとは限りません。

顧客が「BIレポート」のバージョン「X」と「ソーシャルネットワーキング」のバージョン「Y」を使用している場合、データベースのアップグレード/バージョン管理に関して頭痛の種になりました。内部的には、データベースには2つのバージョンがあります。

データベースを2つに分割するのが最善のアイデアだと思います。各製品は独自のデータベースを取得し、「ソーシャルネットワーキング」は「BIレポート」が提供するWebサービスを介してユーザー管理情報を取得します。しかし、私のチームの他のメンバーは、これは大変な作業であり、そのアイデアが気に入らないと考えています。

複数のアプリケーション間でデータベースを共有することに関して、誰か経験がありますか?

4

4 に答える 4

3

いくつかの異なるモジュールで構成された製品があります。お客様は、インストールするモジュールを選択できます。

すべてのモジュールは、ユーザーログインやその他の非常に一般的なサイト全体の機能を処理するコアピースを共有しています。

これを複雑にしているのは、一部のモジュールが他のモジュールに依存していることです。大量のコードを簡単に取得し、新しいモジュールを簡単に構築するために、モジュラーアプローチを採用しました。

とはいえ、各モジュールがバージョン管理され、個別にリリースされる可能性があるという点で、同様の状況があります。これを処理するために、2つのことを行いました。

まず、各モジュールが現在のリビジョン番号で共通のデータベーステーブルに登録されます。また、セキュリティの役割とアクションを共通のテーブルに登録します。これらのチェックは、コアが処理できるほど一般的です。次に、各モジュールには、データベース内に独自のスキーマがあります。すなわち:module1.Table1、module2.Table2。これにより、複数のモジュール間で同じテーブル名を使用できます。

特定のモジュールをアップグレードすると、それ自体のDDL(構造/データ/ s'procs / views)にのみ影響します。モジュール間に依存関係がある場合、これはアップグレードツールによって処理されます。データベースをチェックして、関連するモジュールのバージョンxyz(またはそれ以上)がインストールされているかどうかを確認します。その場合、アップグレードを続行できます。そうでない場合、アップグレードは中止され、最初に他のパーツをアップグレードする必要があることをユーザーに通知します。

これから取り除く主なことは、依存関係のチェックです。モジュールが本当に分離していて、共通のセキュリティチェックのみを共有している場合は、それほど重要ではありません。ただし、他に重複がある場合は、それぞれのインストーラーがバージョンをチェックして、互換性があることを確認する必要があります。

同期がとれていないアプリについては、両方のアプリを現在のレベルにアップグレードする「完全な」インストーラーを提供することもできます。

于 2010-12-08T16:22:23.633 に答える
2

これが経営上の決定である場合、私は次のようにアプローチします。

  1. システムをそのまま管理するのにどれくらいの時間/リソースがかかりますか?

  2. システムを提案された新しいシステムに作り直すのにどのくらいの時間/リソースがかかりますか?

  3. 変更が加えられたときにシステムを管理するのにどのくらいの時間/リソースがかかりますか?

変更を加えることである程度のリソースを節約できると仮定すると、投資の見返りがあるときにカットオーバー期間があるはずです。管理者は、現在からそれまでの時間の長さが、優先する必要があるかもしれない他の項目と比較して、現在の努力の費用に見合うかどうかを判断することができます。

hth

于 2010-12-08T16:02:53.417 に答える
1

これはリリースサイクル以上のものに関係していると思います-私たちはこれについてかなり自分たちで考えています。

私たちのカタログ作成アプリケーションにもBIの側面がありますが、BI部分がカタログのパフォーマンスに影響を与えている可能性があることがわかりました。

これは、2つのアプリケーション用に別々のデータベースがリリース管理だけでなく、パフォーマンスにも役立つ可能性があるためです。ソーシャルネットワークアプリからBIアプリへの主要なデータの定期的な「アーカイブ」により、ソーシャルアプリとリリース管理の両方の長所が得られる可能性があります。

共有ユーザー管理の側面についてよくわかりません...

于 2010-12-08T16:05:50.983 に答える
1

共有テーブルを変更する場合は、両方のアプリを更新する必要があります。個別のリリースサイクルを持つことはできません。

これは明らかです....いいえ?

于 2010-12-08T20:11:06.303 に答える