0

私はERPシステムのトップレベルの技術設計を提供しています。ドラフトを作成しましたが、正しい軌道に乗っているかどうかを判断するために助けが必要です。

私は赤ちゃんの一歩を踏み出しているので、私たち全員が慣れ親しんでいる HR モジュールに集中しています。

人事モジュールには、主に給与計算、休暇、評価、福利厚生があります。すべての HR モジュールは、夜間にバッチ プロセスとして実行されます。

ERP をクロスプラットフォームにしたいので、python / C++ に決めました ( wxPython / wxWidgets が頭に浮かびます。または、通常の Python /C++ を使用することもできます)。

ミドルウェアがどうなるかわかりません。誰かが私を助けてくれれば、それは素晴らしいことです。ミドルウェアの長所と短所を教えていただければ、それが素晴らしいと思います。そうでない場合は、ミドルウェアの名前を教えてください。残りは調べます。

私は C、C++、および C# のスキルを持っているため、C++ に少し偏っていますが、あなたの意見は重要です。

   User Interface ( have not decided yet )
        |
        |
    Web Service ( my suggestion is Python.  )
        |
        |
   Business Logic ( my suggestion is C++ )
        | 
        |
   Middleware   ( need a message queue here, not sure what should it be, an open source middleware )
        |
        |
   Database Broker ( my suggestion is C++ )
        |
        |
   Data Base

上記のデザインについてのご意見もお気軽にお寄せください。

ジョンは、10,000 人の従業員を抱える組織の従業員です。ジョンの総給与は 1000 米ドルです。

しばらく ERP のことは忘れて、次の設計を考えてみましょう :-

  1. HR は UI に John の給与 1000 を入力します。

  2. データはWebサービスを介してビジネス層に渡されます(Pythonが良い選択だと思います)

  3. ビジネス層は控除を担当します。John だけでなく、組織で働く 10,000 人の従業員 (おそらく C++ が最適な言語です)。

  4. 控除後、正味給与がキューに渡されます (ミドルウェアがわからない、提案してください)

  5. 給与計算プロセスは毎月末に実行され、メッセージ キューからデータをフェッチし、データベースを更新します。

    プロセスの実行中に停電が発生したため、プロセスが完全に実行されず、一部の従業員の給与の詳細が更新されなかったとします。この場合、メッセージ キューは未処理のデータを保持する必要があり、次の給与計算プロセスが実行される前に、未処理のデータを最初に処理する必要があります。

  6. データベースにはデータが格納されます。(データベースはまだ決めていません)

ドメインの専門家がいるので、アーキテクチャ設計の改善に関する提案を探しています。

「いいえ、これは正しいアプローチではありません。XYZ のようにする必要があります」と言うのは大歓迎です。なぜあなたのアプローチが優れているのか。これは、あなたのアプローチと私のアプローチを比較するのに役立ちます。

4

3 に答える 3

3

私はJonAlbに同意します、それはすべてのプロジェクトの母のように聞こえます。オープンソースの実装を検討しましたか?

http://en.wikipedia.org/wiki/List_of_ERP_software_packages

それらの多くはPythonを使用しており、1つはC ++を使用しています(1つでも見つけて驚いた:)

ERPシステムは、企業で最も複雑な概念の1つです(かなりの程度の障害があります)。定義を見てください:

エンタープライズリソースプランニング(ERP)システムは、組織全体の内部および外部の管理情報を統合し、財務/会計、製造、販売およびサービス、顧客関係管理などを包含します。ERPシステムは、統合されたソフトウェアアプリケーションを使用してこのアクティビティを自動化します。その目的は、組織の境界内のすべてのビジネス機能間の情報の流れを促進し、外部の利害関係者への接続を管理することです。

自分に有利になり、ゼロから始めないでください。

PS:あなたの会社がOracle、Microsoft、PeopleSoft、SalesForceなどと直接競争するためにERPを構築している場合、あなたはあなたがしなければならないことをしなければなりません。現時点では、テクノロジースタックについては気にしません。まず、ビジネスの観点からERPが対処しようとしていることを学びます。

于 2011-11-16T20:38:26.557 に答える
1

最初に、必要な応答時間と処理されるデータ量を確認する必要があります。次に、チームにどのようなスキルがあるかを調べる必要があります。パフォーマンスの問題が予想される場合、C++ を使用するのは良いことですが、C++ のプログラミングは Java よりも費用がかかります (時間がかかり、バグが多くなります)。ただし、C++ の専門家と Java のスキルがある場合を除きます。

個人的には、Spring (Spring Security、Spring Web Services、DI など)、データベースの抽象化としての Hibernate、およびユーザー インターフェイス テクノロジとしての ZK (www.zkoss.org) (つまり、本当に素晴らしいです。Javascript について心配する必要はありません...)。これは、C++/Python スタックよりもプログラミングが簡単です。私のチームのために:-)

では、Java に切り替えてみませんか。オープン ソース、メッセージ キューなど、必要なものはすべて揃っています。

于 2011-11-16T19:41:00.310 に答える
1

アーキテクチャのビジネス ケースを把握するために、UML ベースのモデリングとユース ケースを検討することをお勧めします。リバース エンジニアリングを行い、Adempiere と Openbravo の多くの側面を組み込みます。Jboss、春、および管理会計システムの十分な理解が必要です。Oracle、Postgress などの知識が必要です。

于 2012-10-28T18:21:46.810 に答える