高交易系统build议

我是一名SQL Server数据库pipe理员和开发人员,作为应用程序开发人员,我也有多年的经验。 我现在有一个非常大的项目顾客正在寻找我的方向。

客户已经开始使用Microsoft Access开发系统的客户端,并且说这个部分已经接近完成了。 我问为什么MS Access被使用,被告知负责人当时知道MS Access,觉得它易于使用,function足够强大,可以完成这项工作,因为它只在客户端,并且已经通过模拟数据进行了testing我假设虚拟数据的数量非常有限,没有实际的压力/负载testing,而是简单的客户端逻辑按照需要运行)。

但是现在客户需要方向,转向了我。 他们似乎觉得其余的难题很简单,都在“数据库”方面。 他们意识到需要在客户端应用程序和数据库之间build立服务器和通信,但是并不知道实际需要做什么或如何做。

我知道如何开发应用程序,尤其是客户端应用程序。 而且我知道如何devise和构build数据库以及所有服务器端stream程和业务逻辑function。 但是我不确定客户在这个特定的情况下需要什么。

客户请求这个系统通过3G蜂窝无线连接在客户端和服务器之间进行通信。

系统将需要可扩展性,因为交易量很大,尽pipe交易可以“批量”。

将有多个地点,每个地点将有2000 – 5000个用户。

每个用户每十分钟会自动与服务器通信。

每个用户与服务器的通信都会传递约60个事务。 (5000个用户每10分钟通过60次交易=每十分钟交易30万次(或每分钟3万次交易;每秒交易500次))

我对这个小组的问题是:

  1. 这样一个高度交易系统的最佳devise是什么,随着交易数量的增加以及地点数量的增加,这个系统可以扩展?

  2. 什么是客户端应用程序的最佳开发语言? (将MS Access工作?)

  3. 我知道Microsoft SQL Serverfunction强大,足以处理工作量,特别是在多服务器和数据分区等方面。而且我很确定MySQL也能工作。 但是,这两个数据库中的哪一个都是最好的select(请明确客观的理由澄清你的答案,而不仅仅是个人偏好或意见)?

  4. 客户提到GoDaddy提供了每月特定数量的多个MySQL数据库,但这不需要一个网站/应用程序? GoDaddy不主持客户端服务器应用程序的数据库吗?

  5. 以前提到的交易金额,服务器和多达5000个客户端之间的3G蜂窝无线连接可以使这样的系统正常工作吗?

你的想法和build议将不胜感激。

谢谢

SQL Server和MySQL可以毫无问题地处理这种工作量。 每秒500笔交易不是一个非常高的工作量。

至于3G手机服务,您只需要使用手机即可访问互联网,然后通过正常的互联网与networking服务器联系。

除非您有从最终用户到应用程序的数据中心的VPN连接,否则您不希望将应用程序直接连接到数据库。 相反,您需要在Web服务器(或负载均衡器后面的多个Web服务器)上设置Web应用程序,并让最终应用程序在Web服务器上调用Web方法,然后与Web服务器通信。

虽然GoDaddy可以处理这个问题,但是对于这样的规模来说,你可能需要专门的服务器。 从RackSpace,EC2或Azure开始,然后转移到您自己的CoLo或数据中心的专用服务器。

我曾经作为MSAccess开发人员赚了一块地皮 – 创build简单的应用程序非常容易,而且一旦掌握了使用VB开发复杂逻辑的相对快速的方法,然而经常会感到沮丧的是要将其扩展到多个用户 – 获得用户机器上运行的客户端软件/中间件的正确运行和configuration,整理logginglocking以及从远程数据库获得可接受的性能。 它很快就成为一场噩梦。 而这仅仅是在同一个网站上有大约30个用户。

试图支持分布在多个站点上的 数以千计的用户的想法会让我大吃一惊!

每个用户每十分钟会自动与服务器通信。 …与服务器的每个用户通信将传递大约60个事务

所以你实际上是在谈论一个分布式数据库 – OMG !!!!!!! 你不希望这痛苦!

正如mrdenny所说 – 服务器端的工作负载很低 – 几乎任何多用户数据库pipe理系统都应该能够适应事务级别。

但是,如果是我,我不会尝试使用MS Access来实现UI。

您没有提供关于网站/用户/networking之间关系的许多信息。 看起来很奇怪,你会尝试用3G来连接网站,而不是使用传统的WAN / VPN,但是在一个通过3G通信的网站上你可能会有客户。 它也不寻常地find一个能够运行MSAccess的3G设备。

如果我假定每个站点都有一个传统的基础设施,并且这些站点通过3G连接,那么我会在每个站点上使用本地数据库 – 使用基于Web的前端(零部署)。 然后担心在各个站点之间整合/发布数据(MySQL和MSSQL都有工具来实现这一点),而Oracle有点困难。

当然,如果你有成千上万的网站和成千上万的用户,这是一个不同的故事。 如果只能通过3G连接它们,那么在客户端批量处理数据可能会更有效率 – 这对于使用旧浏览器来说非常棘手,但对于GoogleGears / HTML5本地存储来说是完全可能的。

即使您可以免费重新分配MSAccess运行时客户端,重新实现PHP或ASP系统的成本可能会低于部署和pipe理所有这些MSAccess实例(假设客户端设备可以运行MSAccess)的成本。

客户提到GoDaddy

噢亲爱的。 听起来就像你每天在WFT上看到的公司之一 。