09 2008 档案
Remoting基本原理及其扩展机制(3)
摘要:应用程序域 应用程序域(通常简称为AppDomain)可以视为一种轻量级进程。一个Windows进程内可以包含多个AppDomain。 AppDomain这个概念的提出是为了实现在一个物理服务器中承载多个应用程序,并且这些应用能够相互独立。ASP.NET中利用AppDomain在同一个进程内承载了多组Web应用程序就是一个例子。实际上微软曾进行过在单一进程内承载多达1000个简单Web应用程序的压力测试。 阅读全文
posted @ 2008-09-27 16:35 Alic 阅读(1498) 评论(2) 推荐(1)
Remoting基本原理及其扩展机制(2)
摘要:在上一篇文章我们已经介绍到通过在配置文件中指定自定义的ChannelSinkProvider,我们可以在Pipeline中加入自己的ChannelSink,此时我们就可以加入自己的信息处理模块,但是这里我们所能操作的对象是已经经过格式化的消息(即数据流),我们看不到原始的消息对象,这也势必影响了我们所能实现的扩展功能。而在上文的图1中,我们看到除了ChannelSink可以扩展之外,我们还可以加入自定义的MessageSink,而它是位于格式器之前的,也就是说在 MessageSink中我们可以直接操作尚未格式化的消息对象。此时,我们就获得一个功能更强大的扩展点。直接操作消息对象,这意味着什么呢? 阅读全文
posted @ 2008-09-27 16:33 Alic 阅读(1934) 评论(1) 推荐(0)
Remoting基本原理及其扩展机制(1)
摘要:.NET Remoting是.NET平台上允许存在于不同应用程序域中的对象相互知晓对方并进行通讯的基础设施。调用对象被称为客户端,而被调用对象则被称为服务器或者服务器对象。简而言之,它就是.NET平台上实现分布式对象系统的框架。 传统的方法调用是通过栈实现,调用方法前将this指针以及方法参数压入线程栈中,线程执行方法时将栈中的参数取出作为本地变量,经过一番计算后,将方法的返回结果压入栈中。这样我们就完成了一次方法调用。 阅读全文
posted @ 2008-09-27 16:23 Alic 阅读(2338) 评论(3) 推荐(0)
Lucene的评分(score)机制
摘要:在Lucene中score简单说是由 tf * idf * boost * lengthNorm计算得出的。 tf:是查询的词在文档中出现的次数的平方根 idf:表示反转文档频率,观察了一下所有的文档都一样,所以那就没什么用处,不会起什么决定作用。 boost:激励因子,可以通过setBoost方法设置,需要说明的通过field和doc都可以设置,所设置的值会同时起作用 lengthNorm:是由搜索的field的长度决定了,越长文档的分值越低。 阅读全文
posted @ 2008-09-24 10:34 Alic 阅读(1002) 评论(0) 推荐(0)
Lucene的基础知识
摘要:Lucene是什么? Lucene是Apache组织的一个用JAVA实现全文搜索引擎的开源项目。后来有人将Lucene移植到。Net语言。 Lucene是一个信息检索的函数库(Library),利用它你可以为你的应用加上索引和搜索的功能。 Lucene的使用者不需要深入了解有关全文检索的知识,仅仅学会使用库中的一个类,你就为你的应用实现全文检索的功能。 不过千万别以为Lucene是一个象google那样的搜索引擎,Lucene甚至不是一个应用程序,它仅仅是一个工具,一个Library。你也可以把它理解为一个将索引、搜索功能封装的很好的一套简单易用的API。利用这套API你可以做很多有关搜索的事情,而且很方便。 阅读全文
posted @ 2008-09-04 18:29 Alic 阅读(2216) 评论(0) 推荐(0)