快速业务通道

要注意的问题 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-25

要注意的问题

时间:2007-05-29 yycnet.yeah.net yyc译 前面采取的似乎是一种完美的方法。没有CGI编程,所以在服务器启动一个CGI程序时不会出现延迟。数据报方式似乎能产生非常快的响应。此外,一旦Java 1.1得到绝大多数人的采纳,服务器端的那一部分就可完全用Java编写(尽管利用标准输入和输出同一个非Java程序连接也非常容易)。但必须注意到一些问题。其中一个特别容易忽略:由于Java应用在服务器上是连续运行的,而且会把大多数时间花在Datagram.receive()方法的等候上面,这样便为CPU带来了额外的开销。至少,我在自己的服务器上便发现了这个问题。另一方面,那个服务器上不会发生其他更多的事情。而且假如我们使用一个任务更为繁重的服务器,启动程序用“nice”(一个Unix程序,用于防止进程贪吃CPU资源)或其他等价程序即可解决问题。在许多情况下,都有必要留意象这样的一些应用——一个堵塞的receive()完全可能造成CPU的瘫痪。第二个问题涉及防火墙。可将防火墙理解成自己的本地网与因特网之间的一道墙(实际是一个专用机器或防火墙软件)。它监视进出因特网的所有通信,确保这些通信不违背预设的规则。防火墙显得多少有些保守,要求严格遵守所有规则。假如没有遵守,它们会无情地把它们拒之门外。例如,假设我们位于防火墙后面的一个网络中,开始用Web浏览器同因特网连接,防火墙要求所有传输都用可以接受的http端口同服务器连接,这个端口是80。现在来了这个Java程序片NameSender,它试图将一个数据报传到端口8080,这是为了越过“受保护”的端口范围0-1024而设置的。防火墙很自然地把它想象成最坏的情况——有人使用病毒或者非法扫描端口——根本不允许传输的继续进行。只要我们的客户建立的是与因特网的原始连接(比如通过典型的ISP接驳Internet),就不会出现此类防火墙问题。但也可能有一些重要的客户隐藏在防火墙后,他们便不能使用我们设计的程序。在学过有关Java的这么多东西以后,这是一件使人相当沮丧的事情,因为看来必须放弃在服务器上使用Java,改为学习如何编写C或Perl脚本程序。但请大家不要绝望。一个出色方案是由Sun公司提出的。如一切按计划进行,Web服务器最终都装备“小服务程序”或者“服务程序片”(Servlet)。它们负责接收来自客户的请求(经过防火墙允许的80端口)。而且不再是启动一个CGI程序,它们会启动小服务程序。根据Sun的设想,这些小服务程序都是用Java编写的,而且只能在服务器上运行。运行这种小程序的服务器会自动启动它们,令其对客户的请求进行处理。这意味着我们的所有程序都可以用Java写成(100%纯咖啡)。这显然是一种非常吸引人的想法:一旦习惯了Java,就不必换用其他语言在服务器上处理客户请求。由于只能在服务器上控制请求,所以小服务程序API没有提供GUI功能。这对NameCollector.java来说非常适合,它本来就不需要任何图形界面。在本书写作时,java.sun.com已提供了一个非常廉价的小服务程序专用服务器。Sun鼓励其他Web服务器开发者为他们的服务器软件产品加入对小服务程序的支持。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号