进程外组件与进程内组件
组件按照执行类型可以有两个基本形式,既可以是进程内组件也可以是进程外组件。进程内组件就像动态链接库DLL一样,它们与调用组件的应用程序运行在同一块存储控件当中。也就是说,当ASP应用程序调用DLL时,DLL和该ASP是处于同一存储空间的。
可以从两个方面来说明这样做是有好处的。首先内部调用范围不会超出系统给应用程序分配的存储控件,所以程序将会执行得更快一些。另外,既然是在同一存储空间,那么组件也就不大可能去破坏其他正在运行的进程,这样进程就有很好的独立性。第二个优点是如果你有许多组件程序,那么这些物理文件(组件程序)就只需要一次性装载到内存当中就够了。
进程外组件的服务是以一个可执行文件来实现的,它与调用组件的应用程序是不同的,它们不在同一存储空间里,而且进程外服务使用了更多的资源,这是因为组件的多个实例要求多次的内存装载。另外进程外服务在自己独立的存储空间运行,所以如果运行失败的话,影响到其他应用程序也是很有可能的。