我期待着构建我的第一个web服务,我希望从一开始就被指向正确的方向。
以下是必须进行的互动:
最大的问题是:,为了实现这样的东西,我需要学习哪些基本的东西?
下面是我脑子里还有一些杂乱无章的小问题。如果你愿意的话,可以回答这些问题。(...maybe认为他们是额外的学分?)
其他可能帮助你知道我来自哪里的信息:
发布于 2010-12-06 18:51:00
语言:为了便于使用,假设吉尔不是您的需求(例如多线程)所特别关注的问题。它为大多数数据库提供了驱动程序,并支持多种协议。它有几个web框架--最流行的可能是姜戈。
协议:如果您专注于HTTP,那么学习肥皂和休息。注意,SOAP往往是冗长的,这会导致移动大量数据的问题。另一方面,如果您正在研究其他选项,请研究套接字编程,或者某种二进制格式,比如Google的协议缓冲器。闪存也是一种可能性(参见:闪存遥控)。注意,二进制选项要求用户在他们的机器上安装一些东西(例如applet或独立应用程序)。
回复:如果进程运行时间很长,并且在完成时应该通知客户端,我建议为客户机开发一个应用程序。浏览器可以用JavaScript编程以定期轮询,也可以嵌入Flash电影进行实时更新,但这些都是浏览器编程中比较棘手的部分。如果你在处理无线电话,请看短信。否则,我只会为客户端提供一种获得状态的方法,但不发送通知(例如,推送和拉)。正如@jcomea_ictx所写的,如果AJAX是一种基于浏览器的解决方案--学习jQuery,那么AJAX是一种选择。
Concurrency:理解酸对数据库的意义。想一想,如果您接收到对同一个数据的多次写入,那么应该发生什么--数据库可能不一定以您想要的方式解决这个问题。
发布于 2010-12-06 18:22:05
出于对编程的热爱,如果您已经习惯了Python,请不要使用PHP。后者使代码更加简洁,更易于维护。这并不是说用PHP编写好代码是不可能的,但这是相对罕见的。您可以使用Python处理所有服务器端的内容,包括MySQL与MySQLdb模块的交互。要么使用标准CGI,要么使用FCGI,或者使用mod_python。
至于数据库,使用事务将消除冲突。但是,您通常可以设计一个系统,使其不会发生冲突。例如,在每次插入时使用自动递增主键is将确保每个条目都是唯一的。
您可以使用Javascript“拉动”数据,可能使用AJAX方法,也可以使用SMS或其他技术“推送”数据。
当计算答复需要一段时间时,您可以使用AJAX“轮询”。这是一种非常普遍的技术。服务器只返回“我们正在进行此操作”(或等效的),并进行内置刷新,直到结果就绪。
我不是REST方面的专家,但是AJAX,尤其是在使用轮询而不是简单地响应用户输入时,可以说违反了RESTful原则。但是你可以是一个纯粹主义者,或者你可以做任何有用的事情。由你决定。
我相信除了SMS之外,我从来没有使用过任何“推送”技术,那是几年前很多公司都有免费短信网关的时候。因此,如果你想“推送”数据,最好希望其他人加入对话!
发布于 2010-12-07 13:30:41
使用Java。Java 6的最新版本使编写RESTful和SOAP服务变得轻而易举,而且它也非常容易与数据库进行互操作。
使用真正的语言而不是脚本的好处是:完全的服务器端状态、强大的输入、多线程和无数其他可能有用的东西,但知道它们是可用的,这将为您的项目提供未来的证明。
https://stackoverflow.com/questions/4372822
复制相似问题