• 网络学院
  • IT资讯
  • 操作系统
  • 网络技术
  • 软件应用
  • 办公软件
  • 编程技术
  • 网站架设
  • 数据库类
  • 平面设计
  • 多媒体类
  • 游戏资讯
  • 教学论文
  • 认证考试
构建稳定的服务器端组件的七个步骤
  站点:
  • 首 页
  • 最新软件
  • 文章教程
  • 国内软件
  • 国外软件
  • 绿色软件
  • 源码下载
  • 字体下载
构建稳定的服务器端组件的七个步骤
软件发布 构建稳定的服务器端组件的七个步骤
网络软件 系统工具 应用软件 联络聊天 图形图像 多媒体类 行业软件 游戏娱乐 编程开发 安全相关 教育教学 数码软件 绿软下载
热门软件: QQ 瑞星 pplive e话通 木马克星 千千静听 office2000 五笔字根 Photoshop 视频分割
返回文章教程首页 >> 文章首页 >> 编程技术 >> ASP & ASP.NET教程 >> 构建稳定的服务器端组件的七个步骤

构建稳定的服务器端组件的七个步骤

添加时间: 2006-5-4 23:51:18  作者: ASP教程  阅读次数:44   来源: http://d9soft.com

        实现健壮性能的规则

Hank Marquis
来自于Enterprise Solutions for Microsoft BackOffice and Windows NT Magazine
原稿地址:http://www.microsoft.com/china/technet/intranet/sevstep.asp

在你的服务器上安装了微软IIS(Internet Information Server),你就可以发挥ASP(Active Server Pages)的优势了,ASP利用ActiveX组件来为你的网络应用完成所有种类的工作。尽管你可以在HTML和有ASP页面的IIS里面使用许多ActiveX组件,服务器端组件也不是运行在一台服务器上的普通组件。它在运行时不会告诉你同需要特别关照的产品服务器有关的任何信息。你将无法做任何事情去改变其对服务器性能、安全和稳定性的影响。对服务器端的组件的不恰当选择可能会导致一些问题,包括速度的明显下降,安全漏洞或者其它更恶劣的问题。

客户端的组件在用户计算机上执行。客户端组件包括绝大多数我们现在已经了解的一些流行组件:标签控件,文本框,命令按钮,格子等。这些组件可以通过<OBJECT>标签和(或)HTML对象语法来包含在客户端HTML代码中。

多数的有用的客户端组件会提供特定种类的用户界面。记住,使用客户端组件就意味着真实组件已经被传到客户计算机上。寻常的做法就是把组件下载到客户计算机上。当然,用户不得不等待下载过程,而且客户计算机必须被配置为允许下载。

与此形成对比的是,服务器端的组件在服务器计算机上执行。服务器端组件也为用户做一些工作,但却是在服务器上运行的。你必须认识到这个差异并且相应地编制代码。服务器端组件为你的整个应用程序封装了一些逻辑或功能。

当一个用户使用应用程序时,他将不会真正看到服务器端的组件。这些组件大多数都可以通过需要使用组件的ASP脚本中的<OBJECT>标识来被包含。你同样可以通过服务器的CreateObject语法来包含服务器端的组件。

建造健壮的组件

用于创建健壮组件的好材料并不多。但是,我在这里向大家推荐七个关键步骤,它可以帮助你创建稳定和安全的服务器端组件,可以很优雅地缩放并且维持性能。在创建一个服务器端网络应用时,你需要把稳定,安全和性能放在你心目中的首要位置。

服务器端组件不应该具有GUI(图形用户界面)。因为服务器端组件是在服务器上运行,网络应用的用户是看不到可能弹出的任何对话的。你的组件需要能够同脚本和其它组件进行交流,却无需同用户交流。避免所有的消息框和其它任何图形的用户界面单元。你必须开发利用返回结果来同状态和其它模块信息进行交流的代码。如果什么东西出问题,不要抛出一个错误消息或者使用一个消息框,可以返回一个状态变量。你需要做的最后一件事是锁定忙碌服务器等待OK按钮被按下。


服务器端组件不得被传递引用或者传递引用给对象。普遍的做法是把控制作为一个参数传递给其它过程或组件。这包括其它对象的引用,比如RecordSets。尽管如此,向网络中的组件传递引用可能导致速度明显下降,使一个繁忙的服务器更加缓慢,网络应用程序在响应用户需求时也表现得更慢。


服务器端组件应该尽可能地少含方法和属性。每一个方法或属性的调用都需要大量处理。因此,一个编写的好的服务器端组件应该几乎不含明显的方法和属性。组件含有的那些方法和属性会带来更多的参数。具有很多参数的调用越少,性能就越好,尤其是你的网络应用程序需要支持许多用户时。这个技巧和许多开发人员的经验是相反的。尽量少的使用带有许多参数的调用也会带来另外一些问题,这使得编码和调试更加困难,但是速度上的改进是与付出的努力相当的。


服务器端组件必须实现恰当的线程模型。利用单线程组件可能导致服务器限制一个线程的会话,这将带来速度的明显下降。应该选择VB的房间模型线程选项并且努力避免单线程组件。但是,VB不能创建你可以在Visual C++里发现的具有线程选择范围的组件,。这一点也表明VB不是一种很合适这项工作的开发语言。


服务器端组件应该使用早期绑定。如果你的服务器应用程序要扩容,这显得特别重要。早期绑定的对象在编译时就拥有引用解析,可以节省不少执行时间。


服务器端组件不能使用在应用程序或会话作用域的声明中。请注意你的控件是如何被限定作用域的。作用域描述了如何创建一个组件的实例,这对你的服务端组件的成功起着关键作用。正如上月所讨论的那样,存在三种级别的作用域:页面级,会话级和应用程序级。页面级作用域对象可以用页面本身的HTML和ASP脚本代码来创建。页面级作用域组件的最佳性能可以通过使用房间线程来得到。而对应用程序级和会话级作用域组件来说,可以通过使用ATL组件的双线程模型来得到。同作用域结合的线程模型也影响服务器的安全性能。例如,一个利用应用程序级作用域的房间线程组件在系统安全环境里运行,但并不是当前用户的安全环境。这对那些具有安全意识的人来说可能是一个问题。


为了速度,服务器端组件应该是进程中组件;为了稳定,则应该是进程外组件。有两种方式去创建COM(OLE)服务器--进程中和进程外。在VB里,你用EXE或DLL扩展名去编译服务器。具有DLL扩展名的OLE服务器就被称为进程中服务器;而具有EXE扩展名的被叫做进程外服务器。进程外意味着组件作为一个独立的过程在运行,而且与调用它的应用程序不共享地址空间。运行进程外组件会导致性能的降低,因为Windows不得不在两个或多个应用程序之间来回移动数据。进程中意味着组件在调用它的应用程序的地址空间里运行。在过程之间交流无需中间物,这使性能显著提高。进程中组件的负面是如果组件失败,那调用它的应用程序也会失败。
服务器端组件使得创建一流的解决方案成为可能。利用IIS,可能还得用上MTS,你可以基于Windows NT的强有力的处理能力创建高性能的可升级的网络应用程序。


Hank Marquis是现代软件(Modern Software)的创始人,可以通过hankm@modernsoftware.com来联系他。本文首次发表于BackOffice CTO杂志。

我们微软公司希望这篇文章的信息对你有用。但是,使用这些信息是你自己愿意承担的风险。这里所有的信息都以"好像是"的方式提供,对信息的准确性、完整性、针对某种特定目的的适用性、无害性没有任何明显的或者暗示的担保,文章中提到的所有第三方产品或信息都不是被微软公司授权,推荐,支持和提供保证的。微软公司你使用这些信息而可能蒙受的无论是直接、间接、特殊的、偶然的或者有因果关系的损失不负任何责任,即使这种损失的可能性被仔细考虑过。文中提到的所有产品的价格都可以在不另做通知的情况下改变。

 

上下文章:

 

上一篇文章: 嵌入式Web视频点播系统实现方法 下一篇文章: ASP注册表项目修改

相关文章:

  • 用端口碰撞技术实现服务器远程管理
  • 以MDaemon为例解释邮件服务器的安全设置
  • 用Windows Server 2003架设小型邮件服务器
  • 用CMailServer打造邮件服务器
  • 你的email服务器准备好应对账号搜集攻击了吗

相关软件:

  • 北信源VRV 网络服务器端病毒库 90e
  • ibqsImage 图像处理组件 V2.4
  • iImgReSize图片处理组件 V3.0
  • wfGifAnimator 动画GIF组件 V2.0
  • 勤哲Excel服务器 2005 V6.0 企业版客户端
  • 勤哲Excel服务器 2005 V6.0 企业版服务器端

 

快速导航

  • 网络学院
  • 精品汇聚
  • 字体下载
  • 教程下载
  • ASP源码
  • PHP源码
  • Net源码
  • JSP 源码

编程技术分类导航

  • ASP & ASP.NET教程
  • PHP教程
  • JSP教程
  • C/C++教程
  • VB & VB.NET教程
  • VC教程
  • Delphi教程
  • BCB教程
  • VFP教程
  • PB教程
  • JAVA教程
  • XML教程
  • C#教程
  • CGI教程

本类经典文章推荐

  • 九阳神功 ASP.NET技术的学习顺序
  • 在ASP与ASP.NET之间共享对话状态(...
  • 17种正则表达式
  • 关闭窗口时保存数据的办法
  • 一个新的JMail(4.3版本)发送代码
  • 一个很简单的验证码程序
  • 用正则解析图片地址,并利用XMLHTT...
  • 利用ASP+JMAIL进行邮件群发的新思...
  • ASP操作Excel技术总结
  • MD5算法研究(2)

ASP & ASP.NET教程阅读排行

  • 用纯ASP代码实现图片上传
  • ASP数据库简单操作教程
  • aspjpeg组件高级使用方法介绍
  • 一个拷贝整个文件夹(包括子文件夹...
  • 利用ASP技术实现文件直接上传功能
  • 几例在ASP存储过程的使用方法
  • 一个很简单的验证码程序
  • 创建一个ASP通用分页类(一)
  • ASP操作Excel技术总结
  • 一个新的JMail(4.3版本)发送代码

编程技术阅读总排行

  • VB入门教程之一
  • Java连接数据库实例
  • 第二章 PowerBuilder 入门之创建新...
  • VC++之List Box/Check List Box控...
  • 第一章 什么是PowerBuilder
  • VC++ List Ctrl控件
  • VC++ Combo Box/Combo Box Ex控件
  • 学C++不得不看的一篇文章
  • VB入门教程之二
  • VC++之Button控件

广告位置

字母检索 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 回到顶部

关于我们 | 版权声明 | 免责条款 | 广告联系 | 软件发布 | 下载帮助 | 下载排行 | 网站地图 | 特别鸣谢 | 友情连接

copyright; 2005-2008 D9soft.com 第九软件网 版权所有