【转】互联网项目的技术选择与应用

 
http://www.cnblogs.com/Pig-Bear/archive/2007/07/19/824018.html
一、技术是基础
二、 CGI ASP ASP.NET  PHP JSP ,什么技术好?
三、 ACCESS MSSQL MYSQL Oracle ,什么数据库好?
四、 AJAX 火了和生成静态页面
五、 DIV 和页面布局
六、服务器技术
七、新技术应用
八、期待新一代的 SGML 和笔者的研究
九、网站如何选择

一、技术是基础  
          对于互联网项目运营来说,技术是一个基础,离开了技术,互联网项目就什么也不是。但是光有技术也不行,大家可以看到,很多网站技术先进,但是就是无法盈利。我们现在看到的大门户网站,如搜狐、雅虎等,并没有什么太先进的技术。  
         
在这一章里面将来详细介绍互联网相关技术的长短,以及企业的应用选择。  

二、 CGI ASP ASP.NET  PHP JSP ,什么技术好?  
        
第一个问题是开发互联网项目,有那些技术  

         CGI
Common Gateway Interface( 通用网关界面),是一个用于制定 Web 服务器与外部程序之间通信方式的标准,使得外部程序能生成 HTML 、图像或者其他内容,而服务器处理的方式与那些非外部程序生成的 HTML 、图像或其他内容的处理方式是相同的。 CGI 可以用任何一种语言编写,只要这种语言具有标准输入、输出和环境变量。 Perl 由于其跨操作系统、易于修改的特性成为了 CGI 的主流编写语言,以至于一般的 “CGI 程序 就是 Perl 程序。
         CGI
是目前最稳定的运行方式,因其是独立的进程,而且执行完后自动释放进程,所以稳定性是最高的,如用大量点击方式攻击,攻击完后 cgi 还能照常运作,而且其性能不变。另一优点就是安全性比脚本高很多,  cgi 还有一个优点可以和系统底层相互通讯。  
         CGI
的缺点是每一个连接都启动一个进程。很消费系统的资源,每秒支持的击点率不高,在 NT win2000 下也就 20 / 秒左右。 asp 可以支持 200 / 每秒。  

         ASP
是微软公司开发的代替 CGI 脚本程序的一种应用,它可以与数据库和其它程序进行交互。是一种简单、方便的编程工具。 ASP 的网页文件的格式是 .ASP 。用 ASP 做网站的时候当你网站数据变大时候。网站访问速度越来越慢。有人说现在很流行 ASP 所以相应的 ASP 脚本安全性差很多,实际上写 ASP 的程序的时候如果严格按照书写安全的代码的规范去写,写出来的程序会非常安全。单纯的 ASP 是不太高效的,真的想要高效的话就必须结合 COM+ ,在 Win32 平台下 COM+ 的效率是非常高。这是脚本语言的先天缺陷。
         
有评论是这样说的: “ASP 的入门门槛最低。这按理说应该算 ASP 的优点,它秉承了微软技术一贯的作风 —— 简单,入门门槛低。也正是因为这一点,使得大量的 Web 开发领域的新手能够很快地开发网站。但也正因为这一点,使许多掌握了 ASP 的一点皮毛知识的人自认为对 ASP 很懂,结果写出很垃圾的程序,让别人看了 ASP 的笑话。 ” 

         PHP
Hypertext Pre-Processor (超文本预处理器),它是一种服务器端的 HTML 脚本 / 编程语言。 PHP 语法上与 C 相似,可运行在 Apache, Netscape/iPlanet,   Microsoft IIS Web  服务器上。 PHP 实际上就是 现代版的 PERL” ,只是名称不同而已。 PHP 具有和 JAVA 类似的 Class 关键字。因为不需要虚拟机,以致速度比 JAVA 5 倍。 PHP 是一种功能强大的脚本语言。  
         
在很多地方流传一种说法: 有人做过试验,对这三种语言分别做循环性能测试及存取 Oracle 数据库测试。  在循环性能测试中, JSP 只用了令人吃惊的四秒钟就结束了 20000 20000 的循环。而 ASP  PHP 测试的是 2000 2000 循环(少一个数量级),却分别用了 63 秒和 84 秒。(参考 PHPLIB   这个说法很容易误导,大家注意这个 (参考 PHPLIB ,原来是拿别的数据来跟自己测试数据对比,但是这里又没有公开测试环境,比如服务器是否一样,操作系统是否有可比性,如果在一台奔三的服务上面运行 ASP PHP ,然后到一台小型机上面运行 JSP ,那恐怕很滑稽。 
         JSP 的定义:
         JSP
Sun 公司倡导许多公司参与一起建立的一种动态网页技术标准。 JSP 技术有点类似 ASP 技术,它是在传统的网页 HTML 文件 (*.htm,*.html) 中插入 Java 程序段 (Scriptlet) JSP 标记 (tag) ,从而形成 JSP 文件。
         Java 
是面向对象的,但速度很慢。而且十分复杂(具有许多层,如 JVM JIT  等等)。 Java Servlet  JSP 的技术基础,而且大型的 Web 应用程序的开发需要 Java Servlet JSP 配合才能完成。 JSP 具备了 Java 技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。 JSP 的优点是跨平台应用,但是缺点也因此而来,在 windows 平台上面,比不了 ASP ASP.NET, UNIX 平台上面比不了 PHP

         ASP.NET
做起来快,因为 Microsoft 给我们封装了很多控件,以及很多现成的模式,
         ASP.NET 
的优势很明显在于它简洁的设计和实施。语言灵活,并支持复杂的面向对象特性。在这种意义下,它真正能够与编程人员现有的技能进行互操作。但是 ASP.NET 是以损失效率为代价的。 ASP.NET  在内存使用和执行时间方面耗费非常大,这大部分归因于较长的代码路径。对基于  Web  的应用程序,这些局限可能是一个严重的问题,因为在  Web  上,您的应用程序可能扩展为每秒成千上万的用户。内存使用率还可能成为  Web  服务器上的一个问题。 
          整体看来几大开发语言各有优缺点,不能简单评论,公正的评价是将该语言与所需要的环境结合起来:
         ASP
的应用应该是以 VB COM+ 为基础支持,以 ASP 作为脚本开发语言,运行在 windows  IIS 服务器上面。对 VB COM+ 不精通就不要说自己精通 ASP
         PHP
的应用应该是以 C CGI 为基础支持,以 PHP 作为脚本开发语言,运行在 UNIX LINUX 服务器上面。
         JSP
的应用应该是以 JAVA Java Servlet 为基础,以 JSP 作为脚本开发语言,通过虚拟机运行在各种服务器上面。
         ASP.NET
的应用应该是以 VB C )为基础,以 VB.NET C#.NET 为开发语言,通过调用编译的 DLL 来运行在 windows  IIS 服务器上面。 
三、 ACCESS MSSQL MYSQL Oracle DB2 ,什么数据库好?
         
ACCESS 结构简单容易处理,而且也能满足多数的网站程序要求。 ACCESS 是小型数据库,既然是小型就有他根本的局限性,以下几种情况下数据库基本上会吃不消:  
            1
)数据库过大,一般 ACCESS 数据库达到 50M 左右的时候性能会急剧下降!  
            2
)网站访问频繁,经常达到 100 人左右的在线。  
            3
)记录数过多,一般记录数达到 10 万条左右的时候性能就会急剧下降!

         MSSQL
是微软公司开发的一种大型数据库系统,它可以支持的数量达到 G 的级别,也是微软公司为了与 ACCESS 高低搭配的一种高端方案。但是他的缺点也很明显,大型数据库通常都要求速度快,稳定可靠,维护方便。而 MSSQL 恰好是速度不是最快,连 MYSQL 都比不了,由于 windows 平台的原因,也不是很稳定,操作是比较简单但是经常出现各种莫名奇妙的问题。 Windows 操作系统有一个先天缺陷,就是不能长时间运行,一般情况下,运行两三天后性能就大幅度下降,必须重新启动。 MSSQL 数据库系统对于资源占用是很惊人的,通常情况下,如果单独的数据库服务器,就不推荐使用 MSSQL (最少也要是双 CPU )。  
         MySQL
是完全网络化的跨平台关系型数据库系统,同时是具有客户机 / 服务器体系结构的分布式数据库管理系统。它具有功能强、使用简便、管理方便、运行速度快、安全可靠性强等优点,用户可利用许多语言编写访问 MySQL 数据库的程序,特别是与 PHP 更是黄金组合,运用十分广泛。 MySQL 不支持事务处理,就这一条让 PHP 开发者吃了亏,没有视图,没有存储过程和触发器,没有数据库端的用户自定义函数,不能完全使用标准的 SQL 语法,这都是 MySQL 的缺点。 
         Oracle 是这些年来最引人瞩目的数据库系统,他具有很强大的数据处理能力,但是如果是在 windows 环境下运行 Oracle ,那么他的性能与 MSSQL 相比基本不相上下,如果是在 UNIX 平台下,则远比只能用于 windows 平台的 MSSQL 好得多。不过他的操作也远比 MSSQL 复杂。 
         DB2 就是 IBM 开发的一种大型关系型数据库平台,基本应用在海量数据环境下,它支持多用户或应用程序在同一条 SQL  语句中查询不同 database 甚至不同 DBMS 中的数据。特别是 DB2+ 小型机 +UNIX 是诸如银行、证券交易所等使用的性价比最高的数据库环境。 
四、 AJAX 火了和生成静态页面  
         
静态页面是指网页内容是提前制作好的,放到网上去,不人为的更改时不会变化的。制作简单,不易更新,一般适于极为简单的宣传。静态页面的优点是容易被搜索引擎收录。  
         
而动态是指网站本身是一个系统,网站的内容是查询数据库返回的内容,平时只要在后台上传、更新内容,在网站的前台立刻就会更新。制作复杂,更新、维护非常容易。现在绝大多数网站都采用动态代码。
         
用户上网浏览网页时, WEB 服务器会判断用户浏览的是动态网页还是静态网页,如果是静态网页, WEB 服务器就会把静态网页直接发送给用户,如果是动态网页,那么, WEB 服务器会先在服务器上执行这个动态网页,然后把执行结果发送给浏览用户,因此动态网页消耗服务器的 CPU 、内存资源会比静态网页多得多,因此一些大网站都使用静态页面。  
         
同时搜索引擎为了避免陷入死循环 , 对于索引 xxx.xxx?xx=xxx 这类的 , 都不会过于深入 . 所以 , 生成 html 比较好 , 即便不生成 html, rewrite 伪造成 html 也一样。  

         Ajax
AsynchronousJavaScriptandXML )是结合了 Java 技术、 XML 以及 JavaScript 等编程技术,可以让开发人员构建基于 Java 技术的 Web 应用,并打破了使用页面重载的惯例。使用旧模式,每当用户执行某种操作、向服务器请求获得新数据, Web 浏览器就会更新当前窗口。如果使用 AJAX 的异步模式,浏览器就不必等用户请求操作,也不必更新整个窗口就可以显示新获取的数据。只要来回传送采用 XML 格式的数据,在浏览器里面运行的 JavaScript 代码就可以与服务器进行联系。
         Ajax
可以让阅读的时候有很好的体验感受,但是这样一来,搜索引擎通常只会搜索第一次导入的那个页面,对于以后的页面视而不见。 
          最佳的方法就是采用 Ajax+ 生成静态页面,一般内容还是生成静态页面,少数内容可以使用 Ajax 技术,毕竟讨好搜索引擎是第一位。 
五、 DIV 和页面布局  
         
现在很流行 CSS+DIV 的方式重新构建网站 , 因为用这种方法构建的网站访问速度快 , 占用的带宽小 . CSS+DIV 只是一种通俗的说法 , 具体的说应该是制作符合 W3C 标准的网站所用的语言 :XHTML, 也就是下一代的 HTML.DIV 只是布局的方法 , 做出来的网页代码简单 , 虽然页面看起来没有 TAB 所带来的那么华丽 , 至少要做出和 TAB 一样的效果来 , 要麻烦的多 , 但是维护起来却是很方便 , 因为是用 CSS 定义的样式 .TAB 制作的网站代码庞大 , 这是必然的 , 因为他是形式与内容混合在一起的 ,WEB 标准的网站代码清晰明快 , 体积小 , 因为很多形象的东西都在 CSS .
         
通常使用 CSS+DIV 方式需要手工编写代码。  
         
         
这里推荐使用 Microsoft Office SharePoint Designer 2007 ,也就是 FRONTPAGE2007 ,是目前最好的可视 CSS+DIV 编写工具。 
六、服务器技术  
         
什么样的服务器好,这是一个有意思的问题。  
         
首先 是服务器的硬件环境
            
服务器硬件环境可以分为几大类:
               1
  虚拟主机:这种适合小型网站项目,一般访问量每天几千 IP 、数据大小在几个 G 以内都可以考虑,成本低,不需要技术人员维护。但是由于对服务器没有控制权,无法实现很多复杂功能。
               2
VPS 虚拟服务器:这种适合起步的商业项目,操作时看上去像一台独立的服务器,对服务器有部分控制权,需要技术人员简单维护,但是没有核心控制能力。
               3
、单服务器:这种适合中型商业网站,如果需要大的存储空间可以考虑磁盘阵列,如果在服务器上安装有 MSSQL 等大型数据库或者动态调用数据较多,推荐使用双 CPU 服务器(最好把数据库分装在另一台服务器上面),如果访问量较大,内存和主板总线带宽一定要大。
               4
、服务器群集,就是多台服务器一起,这种适合大型商业网站,当其中一台服务器满负荷的时候,转向到另一台服务器。这里有内网转向和外网转向两种模式,前者访问时看不到域名变化,后者访问者会发现域名变化为 www1.****.com www2.***.com  
             其次 是服务器的操作系统
               
目前市场流行的服务器操作系统主要有两大阵营,
                  1
Windows 系统,是微软公司开发的操作系统,目前代表是 windows server 2003 ,它具有操作简单,维护方便等优点,但是 windows 先天的缺陷他也同样继承了,如运行时间越长就越慢,系统盘上面堆积大量无效文件,如果连续运行一周不重新启动,服务器就会慢得让人难以接受。
                     
如果网络项目确定使用 ASP ASP.net ACCESS MSSQL 数据库,那最佳的选择就是 windows  服务器。  
                  2
Unix 系统,目前可用的 UNIX 操作系统有很多,但只有 IBM AIX 5L 包括了 IBM 在为全球客户创建业务解决方案中所获得的经验。而且它还通过实现与 Linux 之间的亲和关系,提供了对 64 位平台的支持,它可以在所有的 IBM p 系列和 IBM RS/6000 工作站、服务器和大型并行超级计算机上运行。。
                     
如果公司技术力量雄厚,建议使用 FreeBSD FreeBSD 可以说是 UNIX 的一个变种, Yahoo  所采用的  Web Server ,是进阶的  BSD UNIX  操作系统,全球十大站点中有七八成的服务器基于 FreeBSD, 
                  3
Red Flag Advanced Server 系统(红旗 Linux )是目前世界上发行最多的 LINUX 版本,
                     
目前, Red Flag Advanced Server 4.1 支持超过 500 种的商业应用软件,包括 DB2 Sybase Websphere Weblogic Netbackup CA ARCServ Openview Tivoli Domino 等企业级关键应用。红旗开发了主机管理工具 Rfmin1.1 ,它由 17 个工具组成,涵盖了主机管理的方方面面。 Rfmin1.1 覆盖了主要的服务器管理工作,实现了三大差异的消除:手工编辑配置文件和应用管理工具之间的差异、 Windows 系统管理和  Linux  系统管理之间的差异、本地管理和远程管理的差异。通过这些管理工具,无论是 UNIX 系统管理员还是 Windows 系统管理员,都能够高效地管理红旗 Linux 服务器,从而降低了管理费用。
                     
在实际中, UNIX LINUX 由于具有非常稳定的性能,特别适合对于服务器性能和稳定要求较高的环境下,它们可以长时间运行几年而不需要重新启动。特别指出,红旗 LINUX 这几年发展出乎大家意料之外,特别是它在易操作性方面接近 windows 系统,是中小服务器优选的 LINUX 操作系统。  
                     
UNIX 具有功能强大但是维护复杂,适合大型网站使用,特别是采用小型机 +UNIX 是各种高性能网络环境如银行等的必备选择。 
             第三 是服务器的带宽,带宽就是表达速度的,带宽越大,速度越大。例如内存带宽、总线带宽、网络带宽等等都是以 字节 / 为单位。 500 人同时在线的文章类网站差不多带宽占 1-3M BPS  500 人同时在线的论坛一般占 3-5M BPS,500 人同时在线的视频看传输方式的  如果全部通过服务器那至少要 30-100M BPS
  七、新技术应用
         
随着互联网的发展,新的技术也在不断涌现,目前有这么几个方向
            1
3D 方向,也就是 web 3D ,互联网 3D 图形技术。目前,已有几家公司推出了自己虚拟社区及全套的解决方案,如 Blaxxun pointworlds 等。它们除了提供虚拟场景制作以外,还提供:服务器管理,通讯管理,用户管理等功能。 Blaxxun 公司 Virtual Worlds Platform 5.1 服务器已经有许多网站用它建立虚拟社区。他们的特点都是采用下载模型和渲染数据 + 渲染引擎插件模式来显示 3 维效果,但是目前标准多种,比较有影响力是:
                  X3D
:由 Web 3D Consortium 制定,得到大学,政府机构及一些 Wed3D 图形公司的支持 . 它是 VRML97 下一代新的国际标准,有比较广泛的社会基础。
                  Shockwave3D
  这是 Macromedia 公司 ( 现在已经被 ADOBE 公司收购 ) Flash 插件,有着极为广大的用户群,据说世界上有 1 亿 3 千万人安装, Intel 把它的 Wed3D  图形集成到 Shockwave

            2
、终端应用方向  
               
终端应用也就是通过互联网来进行各种网络化的实际应用,比如远程操作某些设备,比如在网上控制家里的微波炉做饭。各种软件之间也可以远程同步协作。也就是从目前的信息传达到信息应用。这里的发展趋势应该是网络技术更多采用编译化的语言作为开发引用,因为单纯的脚本语言已经无法适应。

            3
、模块化开发方向  
               
随着网络开发的技术越来越复杂,开发工程越来越大,将会出现各种便于二次开发的中间件,比如目前出现的 CMS 系统就是这样,只需要简单改变一下模版,其中的国产优秀者有动易、风讯等就可以建设像搜狐、新浪那样的网站。 
八、期待新一代的 SGML 和笔者的研究  
         
SGML(Standard Generalized Markup Language) ,即标准通用标记语言,是 1986 年出版发布的一个信息管理方面的国际标准 (ISO 8879) 。该标准定义独立于平台和应用的文本文档的格式、索引和链接信息,为用户提供一种类似于语法的机制,用来定义文档的结构和指示文档结构的标签。  

         
SGML 是一种在 Web 发明之前就早已存在的用标记来描述文档资料的通用语言。但 SGML 十分庞大且难于学习和使用。鉴于此,人们提出了 HTML 语言。 SGML XML HTML 的母语言。 SGML 的覆盖面很广。它几乎涉及人们生活的每一个领域。它被用来描述成千上万中文件。 HTML 只是其中一种文件类型,是一种在网上最常用的类型。它定义了一种简单而固定且含标识的文件类型。 
          但近年来,随着 Web 应用的不断深入, HTML 在需求广泛的应用中已显得捉襟见肘,有人建议直接使用 SGML 作为 Web 语言。但 SGML 太庞大了,于是 Web 标准化组织 W3C 建议使用一种精简的 SGML 版本 ——XML XML SGML 的简化版。为了实现更加方便地编写和理解应用程序,更加方便地在网络上传输信息,更加方便地实现互操作性, XML 申略了一些 SGML 中复杂和不常用的部分。但 XML 还能和 SGML 一样通过解析 
         XML SGML 一样,是一个用来定义其他语言的元语言。与 SGML 相比, XML 规范不到 SGML 规范的 1/10 ,简单易懂,是一门既无标签集也无语法的新一代标记语言。 
          目前, SGML 表达的还是基于传统平面的出版模式,而 HTML XML 就同样变成了只能表述平面信息的内容,这样导致要想实现 web 3D 就必须使用引擎插件。从目前看来, XML 已经基本是 SGML 在互联网上面应用的最大发挥了。下一代的 SGML 应该是基于 3D 和多媒体的,这样我们看到的就不仅是简单的一些文字图片了,而且也可以不依靠插件就能够实现 3D 效果。
          这里可以透露一点笔者本人正在对此做一些研究,目前已经取得了相应的进展,现在正在整理中,估计再过一年左右就可以公开,本人将其命名为 2-SGML ,也就是第二代 SGML 。特点是简化基本规则,增加扩充能力。该版本确定了若干基本扩充准则,用户可以很方便扩充自己的编码规则。在新的 2-SGML 环境下,用户的各种文档之类全是 3D 多媒体效果。 
          笔者现在正在完善 TXML ,特点是完全使用类似现在的脚本语言,向下兼容来实现 3D 和多媒体效果,如果是 TXML ,不光可以兼容现在的 XML ,还可以在浏览器里面看 3D 网页(不光是三维图像)也就是说,我们从浏览器里面看到的全是 3D 的了。而且不需要装 3D 引擎,直接用简单的编码规则语言写出 3D 。就像 HTML 里面写出表格等那样。
  九、网站如何选择  
         
不同的互联网项目对技术要求也不同。  
            1
、如果你的项目是一般企业网站之类应用,或者能够确定访问量不是很大,那么建议服务器采用虚拟主机方式,开发语言采用 ASP+ACCESS
            2
、如果你的项目是需要频繁交互,比如论坛、交友等等,建议采用 PHP+MYSQL ,服务器采用独立服务器或者虚拟服务器。
            3
、如果你的项目数据量足够大,同时对于系统稳定性没有苛刻要求,可以采用 ASP+MSSQL ,采用双 CPU 服务器。
            4
、如果你的项目对于系统可靠性要求特别苛刻,最好使用 PHP+Oracle, 服务器采用双 CPU 服务器。
            5
、如果你的项目对于系统可靠性要求特别苛刻,同时反应要求足够快,最好使用 PHP+Oracle 或者 PHP+DB2 ,或者直接使用编译开发语言,服务器采用服务器群集。
            6
、如果你的服务器足够好,你又想对外炫耀的技术力量的话,可以采用 JSP+MYSQL, 服务器一定要是 UNIX 或者 LINUX 操作系统。 
          一个互联网项目采用技术要注意几点
            1
、如果你有好的服务器,同时有好的技术条件,那你什么语言都可以用。语言没有高低之分,但是有适合不同条件之分。例如如果有谁告诉你 ASP 不行的话,那不妨问他对 COM+ 了解多少,能不能开发相关服务器组件。
                  
每一项互联网应用的语言技术,后面都有一个强大的编译语言作为后盾。
                  ASP
的背后是 VB
                  ASP.NET
的背后是 VB. Net 或者 C, 但是似乎微软在支持上更多偏向 VB. Net
                  PHP
的背后是 C
                  JSP
的背后是 JAVA 
            2
  判断技术高手的简单标准
                  ASP
高手:能够熟练使用 VB 开发 COM+
                  ASP.NET 
高手:能够熟练使用 VB.NET C# 来编写服务器组件。
                  PHP
高手:能够熟练在 UNIX/LIUNX 环境下使用 C
                  JSP
高手:能够熟练使用 JAVA 开发互联网环境下的数据库软件。
                  
如果上面的要求做不到,那就不能称为高手。
 
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值