私は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 のことは忘れて、次の設計を考えてみましょう :-
HR は UI に John の給与 1000 を入力します。
データはWebサービスを介してビジネス層に渡されます(Pythonが良い選択だと思います)
ビジネス層は控除を担当します。John だけでなく、組織で働く 10,000 人の従業員 (おそらく C++ が最適な言語です)。
控除後、正味給与がキューに渡されます (ミドルウェアがわからない、提案してください)
給与計算プロセスは毎月末に実行され、メッセージ キューからデータをフェッチし、データベースを更新します。
プロセスの実行中に停電が発生したため、プロセスが完全に実行されず、一部の従業員の給与の詳細が更新されなかったとします。この場合、メッセージ キューは未処理のデータを保持する必要があり、次の給与計算プロセスが実行される前に、未処理のデータを最初に処理する必要があります。
データベースにはデータが格納されます。(データベースはまだ決めていません)
ドメインの専門家がいるので、アーキテクチャ設計の改善に関する提案を探しています。
「いいえ、これは正しいアプローチではありません。XYZ のようにする必要があります」と言うのは大歓迎です。なぜあなたのアプローチが優れているのか。これは、あなたのアプローチと私のアプローチを比較するのに役立ちます。