备选问题标题: 如何翻译“这个软件给了我一个商业案例”,让高层pipe理人员不买它?
我是一个经历了几年持续发展的小公司的IT部门。 我们开始使用QuickBooks,转而使用不同的会计系统,现在正在市场上推出更为全面和可定制的中端市场ERP系统。 我们目前正在评估一个用Visual FoxPro 9编写的ERP系统,而且我对这个系统有一种不好的感觉,但是我无法确切地说明这是为什么。
它由几个模块组成,后台模块和Web模块是我们感兴趣的两个模块。后台模块包含通常的ERP订单/履行/运输/计费function。 Web模块由相同的FoxPro数据库驱动,通过指向IIS的.NET组件,使用UNCpath从另一台机器打开数据库。 我也不知道,但现在这是一个单独的问题。
我担心的是,通过执行以下操作来“安装”系统:
1. Create a top-level folder on a server. 2. share that folder with appropriate users and groups as \\server\erp 3. unzip the .exe and dlls and \data folder in the shared folder 4. map \\server\erp to a drive on client computers 5. create a shortcut to the \\server\data\erp.exe on client desktops. 6. double click on shortcut! You're ERPing! (after some other minimal setup)
.exe使用对\\ server \ data子目录中的文件的访问权限,以像往常一样填充表单等。
我担心访问一个通过networking文件系统(cifs)访问文件以执行数据库function的并发用户(25个或更多)似乎…是可疑的。 我见过的每一个其他系统都使用一个单独的数据库引擎,或者是一个本地的数据库引擎(这是足够糟糕的),或者像SQL Server,Oracle,甚至是PostGreSQL,甚至是MySQL来处理数据访问,但是这只是一个共享文件夹上的.exe文件,直接从每个客户端桌面上的共享文件夹运行。 这似乎是低效率的,至less不雅,而且会导致大量的networkingstream量。 .exe大小约为10MB,位于服务器上,打开驻留在相邻\ data目录中的.dbf文件。 供应商问我们是否有一个千兆networking(我们这样做),这对他来说似乎非常重要…现在我明白他为什么要问了。
我没有深入的开发背景,但在我看来,你应该有一个单独的数据库引擎,通过命名pipe道或TCP / IP套接字与客户端进行通信,或者至less是某种二进制networking协议。 使用netBIOS共享(作为属性inputUNCpath到数据库)似乎是错误的,因为如果例如两个用户想要在A / R中打开同一个客户,你会不会遇到文件locking问题? 我只是过于谨慎? 供应商说这是非常标准的做法吗? 在这样的大型会计系统中,我没有太多的经验。 我们当前的软件包使用带有数据库引擎处理文件的客户机 – 服务器模型,然后运行其机器上的软件的用户通过networking与之通信。 我错误地认为,更高级的东西会有类似的界面吗?
你所描述的一定会让我担心几个原因:
代表这个事实,代表坚持千兆networking这样一个小应用程序。 这可能会对您的networking没有实际的影响,但这会让我非常担心应用程序的devise。 一个50用户的ERP系统不应该麻烦一个10M的线路,更不用说一个千兆的线路了。
安装过程对安全性的影响对我来说是一个难题。 这是一个持有客户(可能是客户支付)信息的系统。 用户将启动一个简短的EXEforms,这意味着将有25-50个实例运行在他们的工作站上的用户的凭据下的EXE。 这些进程直接访问和写入共享数据库文件在同一个共享上 。 这意味着每个用户在devise时都必须具有对整个数据库的直接读/写访问权限。 从技术和安全合规的angular度来看,这是非常可怕的。
就个人而言,我只能从后面的这个应用程序运行一英里。 我相信在合规领域(或使用FoxPro)更熟悉的人可以进一步评论。
去过也做过。
我承认VFP9显得有点过时了,但是它被certificate是技术。
相信与否:VFP9在这样的设置中非常强大。 它根本不像msaccess。 一开始我也怀疑这个问题,但实际上根本没有问题。
额外的好处:只要没有用户打开应用程序,你甚至可以对数据库进行简单的基于文件的备份,如果你没有运行24/7店。
但是您需要在客户端和服务器之间build立一个快速(至less100 Mb)的局域网。 (为了上帝的缘故,在服务器中放置一个1G网卡。)EXE本地或服务器上并不重要,要么工作得很好。
正如其他人所说:对于非本地用户,您需要一个WTS设置。 build议是在单独的机器上,而不是在VFP9服务器上。 (当然,使用Hyper-V或VMWare,这两台机器可以是同一个物理机器上的虚拟机。)
请注意,WTS用户可能需要每个用户相当数量的RAM。 这取决于DB查询的效率和应用程序的需求。
从我所看到的100到200 MB的工作集对于vfp9应用程序是相当正常的,其中大约一半将被固定在物理RAM中。 根据我的经验,如果在WTS会话中不需要运行其他许多function,则可以使用4GB RAM WTS服务器上的20到30个用户。 根据您的应用需求,您的里程可能有所不同。
我在Visual FoxPro 9 ERP软件包方面有很多经验,这些软件包或多或less地以相同的方式工作 – 在服务器上共享文件,使用本地 EXE的多个客户端以及访问SMB共享的支持文件。 ERP中每个公司的数据集是数百个DBF文件。
就性能而言,我们没有看到任何问题 – 我们有许多客户在相当标准的Windows服务器上运行30个或更多的客户端,访问数百万行和超过1GB的DBF文件。 如果索引和locking由ERP正确执行,那么这些数字都没有问题。
是的,存在一个文件共享完整的DBF文件的安全隐患。 我想这取决于我们ERP销售给客户的types,但是在15年以上的时间里,有数千个网站,我个人知道我们因为这个设置而丢失的数量可能会达到20个左右。 使用terminal服务也可以解决这个问题。
你也绝对正确,你将不得不采用terminal服务,可能通过VPN,远程运行它。
另外,如果您最终使用的是有问题的ERP,而且您有Windows 7计算机和Server 2008,请确保它们在SP1上,因为SMB中存在导致索引文件损坏的错误。