我正在提供ERP系统的顶级技术设计。我已经提出了草案,但需要帮助来决定我是否走在正确的轨道上。
我正在采取婴儿步骤,所以我专注于人力资源模块,因为我们都熟悉它。
人力资源模块主要有薪资,休假,评估,员工福利。所有HR模块在夜间作为批处理进行运行。
我想制作ERP跨平台,所以决定使用python / C ++(wxPython / wxWidgets来到我的脑海,或者我可以使用普通的Python / C ++)
我不确定中间件应该是什么,如果有人可以帮助我,那将是伟大的。如果你能为我提供优质的中间件的优点/缺点,那么请提及中间件的名称,我会查看其余的。
我拥有C,C ++和C#中的skils,所以我对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
请随时提供您对上述设计的评论。
示例
John是一个拥有10,000名员工的组织的员工。约翰的工资总额为1000美元。
让我们暂时忘记ERP的东西,并考虑以下设计: -
工资核算流程每个月结束运行,从消息队列中提取数据并更新数据库。
让我们说,在执行流程时,会有停电,因此流程没有完全运行,并且某些员工的工资详细信息未更新。在这种情况下,消息队列应保留未处理的数据,并且在下一个工资核算进程运行之前,应首先处理未处理的数据。
数据库存储数据。 (尚未确定数据库)
领域的专业知识在那里,所以我正在寻找改善建筑设计的建议。
欢迎您说“不,这不是正确的方法,您应该像XYZ一样”。为什么你的方法更好。这将有助于我比较你的方法和我的方法。
答案 0 :(得分:3)
我同意JonAlb,它听起来像是所有项目的母亲。您是否考虑过那里的开源实现?
http://en.wikipedia.org/wiki/List_of_ERP_software_packages
他们中的许多人使用Python,而其中一人使用的是C ++(我甚至惊讶地发现其中一个:)
ERP系统是企业中最复杂的概念之一(具有相当程度的失败)。看看定义:
企业资源规划(ERP)系统集成内部和 整个组织的外部管理信息, 拥抱财务/会计,制造,销售和服务, 客户关系管理等ERP系统实现了自动化 具有集成软件应用程序的活动。它的目的是为了 促进所有业务功能之间的信息流动 在组织的边界内并管理连接 外部利益相关者
请帮助自己,不要从头开始。
PS:如果您的公司正在构建ERP以与Oracle,Microsoft,PeopleSoft,SalesForce等进行直接竞争,那么您必须做您必须做的事情。我现在不关心技术堆栈。首先从业务角度了解ERP尝试解决的问题。答案 1 :(得分:1)
首先,您必须找出所需的响应时间以及将处理的数据量。然后你必须找出你的团队中存在哪些技能。 当你期望性能问题时,使用C ++是好事,但编程C ++比Java更昂贵(需要更多时间,有更多错误)。除了你有C ++专家和Java技能。
我个人:我用Spring(Spring Security,Spring Web Services,DI等)制作了我的上一个应用程序(电子健康记录),Hibernate作为数据库抽象,ZK(www.zkoss.org)作为用户界面技术(这真的太棒了,不用担心Javascript ......)。这比C ++ / Python堆栈更容易编程。对于我的团队: - )
那么为什么不切换到Java,有大量的开源,消息队列,你需要的一切......
答案 2 :(得分:1)
我建议,使用用例来研究基于UML的建模,以捕获架构的业务案例。 逆向工程并融入Adempiere和Openbravo的许多方面。 您需要Jboss,Spring和对管理会计系统的良好理解。 你需要了解Oracle,Postgress等。