2010-11-03 155 views
0

目前我们公司在Lotus Notes中使用升级数据库。我们的升级数据库处理L1-L3支持无法解决的问题,因此升级为开发。该数据库由整个公司使用,因此包含许多部门(硬件,固件,软件)和产品。每个部门和产品都具有帮助调试特定客户问题所需的特定信息。最佳工作流管理软件/体系结构问题

最近我们在Lotus Notes数据库方面遇到了很多麻烦,我在寻找其他选项。作为一家公司,我们也将在未来从Lotus Notes移开。我想知道其他人使用什么样的工作流管理软件来处理这样的事情?

我一直在环顾四周,并没有发现任何看起来完全有希望的东西,所以我一直在考虑如何在需要时提供一个主题。我目前的规划路径是具有完全动态的表单,这些表单存储在数据库中,当某人在表单中移动时,根据他们所做的选择添加其他输入。我知道这样做很难做到正确,并且不会在将来添加产品和部门时混淆人。那么另一个问题是,您会遇到上述设计中的哪些重大缺陷,以及需要注意什么?如果有人在遇到任何问题之前已经在家里推出了系统?

回答

2

我不知道任何事情可以处理你的问题,尽管这样的任务必须有现成的解决方案。

如果您考虑Roll Your Own,我会建议您查看一下CouchDB,因为它与Lotus Notes有很多相似之处,并且它们的功能大大增强了整个体验。

http://couchdb.apache.org

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

你需要得到了它的速度,但因为你熟悉的Lotus Notes,应该是轻松的学习曲线。

希望这会有所帮助。

-1

我一直在四处寻找,并没有发现任何看起来完全是有前途的,所以我一直在盘算着如何homeroll一个在需要时

更努力。没有冒犯的意思!

从架构的角度来看,我的第一个问题是'我们真的需要打造''吗?建筑软件是不平凡的,特别是你会保持加班。

目前尚不清楚您的功能要求或现有技术标准是什么,但两者都会影响市场上哪些选项最适合您。那么当然你有支持方面,许可等

我想说你需要制定一个相关的评估标准清单,并评估任何可能的候选COTS解决方案,你可以找到(开源也可能是一个选项)以及自定义构建;您需要根据一套严格的标准进行评估,并计算TCO(总体拥有成本)。是的,TCO可能听起来像营销宣传/商业流行语 - 但在一天结束时,这是你必须做的事情(除非你是百万富翁而金钱不成问题)。

做你以后的事情的工具很常见 - 因此我最初的(并且确实有些轻浮)响应。

+0

这里可以帮助您,为什么要花费数小时搜索时间,这可能是一个更快,更明智的解决方案。 – WeNeedAnswers 2010-11-03 01:28:40

+2

WeNeedAnswers恰当地命名以发表评论。 – 2010-11-03 01:34:11

+0

我的回答集中在'考虑如何归位'方面,我认为这个阶段是有效的 - 我(错误地?)给人的印象是帕特里克可能很快就会走这条路。我注意到@WeNeedAnswers也包含了一个评论。 – 2010-11-03 02:28:15

1

什么样的工作流管理软件,其他人都在使用来处理这样的事情?

  • 在工作中,我们必须使用一种称为疑难杂症的系统的人,我只是用Google搜索,并不能找到它(!),我没有在工作,所以不能轻易地获得更多的信息。
  • 主要的LOB工作流程由一个旧的传统主框架系统提供(不要去那里!)。
  • 几年前,我参与了在.Net中构建主要工作流系统 - 我们使用K2 Workflow(当前产品名称为'BlackPearl')作为核心工作流系统。 K2非常强大,非常适合.Net/Microsoft环境,并且(至少在理论上)它将与SharePoint集成。

我目前的规划路径是拥有完全动态的形式...你会用上面的设计遇到什么大的错误?

不是一个陷阱 - 但管理数据将是一个挑战。拥有动态表单可能意味着数据库物理设计方面的几件事情之一:

  • 表结构反映了表单结构;向表单添加字段意味着向DB添加一列;并添加新表单意味着向数据库添加新表格。如果表格不会有太大的改变,那么这可能是可以的,他们越难以维护。
  • 半通用表结构:一些常见的列,然后是一些通用的列,如FormField1FormField2等。这将更易于管理,并且您可以实现自动化,以便用户可以自行提供字段。不足之处是你正在处理数量有限的列/表格模式。对此的更改将非常具有挑战性。

在上述两种情况下,物理数据结构都与逻辑数据结构紧密匹配。其中一个关键问题是,为了让您的应用程序自动创建额外的列,需要该应用程序对系统拥有更大的安全权限 - 所以您不会希望在任何公共互联网上都这样做。或者:

  • 有一个'窄'表,其中字段值存储更像键值对。

这种方法将支持一种解决方案,让用户自行提供字段和表单,并且没有限制。缺点是报告要困难得多,而且会变慢。您可以通过将“易失性”事务数据迁移到专为报告设计的数据库来解决这个问题。

这种数据库设计常用的术语是'NoSql Database',CouchDB(由@WeNeedAnswers建议)就是一个例子。

一个相关的陷阱(如果你允许用户自行提供表单/域)是管理数据和它的质量;你不希望人们使用不同的术语来表达同一个事物,或者同一个术语意味着多个事物。