【发布时间】:2013-06-24 22:20:38
【问题描述】:
我正在提供 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
请随时为您提供上述设计的 cmets。
示例
John 是一家拥有 10,000 名员工的组织的员工。约翰的工资总额为 1000 美元。
让我们暂时忘掉 ERP 的东西,想想下面的设计:-
-
HR 在 UI 中输入 Johns 的薪水 1000
-
数据通过Web服务传递给业务层(我认为Python应该是一个不错的选择)
-
业务层负责扣款;不仅适用于 John,也适用于在该组织工作的 10,000 名员工(C++ 可能是首选语言)。
-
扣除后,净薪传到队列中(中间件不清楚,请指教)
-
工资核算流程在每个月底运行,从消息队列中获取数据并更新数据库。
假设在执行流程时,发生了断电,因此流程没有完全运行,并且一些员工的工资详细信息没有更新。在这种情况下,消息队列应该保留未处理的数据,并且在下一个工资核算流程运行之前,应首先处理未处理的数据。
-
数据库存储数据。 (还没有决定数据库)
领域专业知识在那里,所以我正在寻找有关改进建筑设计的建议。
欢迎您说“不,这不是正确的方法,您应该像 XYZ 那样做”。为什么你的方法更好。这将有助于我比较你的方法和我的方法。
【问题讨论】:
-
您有排除 Java 或 .NET 的特殊要求吗?对于商业软件场景,它们通常比 C++ 更高效,并且有许多不同的框架和库可供使用。
-
Anders - 我想让软件跨平台,所以我排除了 .NET ,尽管我知道如果在 *nix 机器上安装 MONO 应该运行 .NET 代码。 C++ 可能一直是产品中业务逻辑的首选语言。不排除 Java,只是我不是 Java 人...请提及您知道的框架/库.. Whaterp,Intars。是我遇到的一些名字。
-
天哪,从头开始设计整个 ERP 系统?这听起来像是所有项目之母。你确定你的意思是 ERP,光是技术设计就可能需要一个团队?
-
Jon ... :-) 它需要一个团队,我正在布置技术设计。
-
我不明白你为什么排除了 C#? Mono 真的很稳定。在我看来,您需要做更多的研究。
标签: architecture software-design erp