毋庸质疑的是业务服务层是系统最重要、最复杂、也最核心的部分,用户服务层的工作实际上可以理解为是界面的设计和表示,更多的是美工方面的工作......
毋庸质疑的是业务服务层是系统最重要、最复杂、也最核心的部分,用户服务层的工作实际上可以理解为是界面的设计和表示,更多的是美工方面的工作。
而业务服务层则是应用系统核心、每一种应用的最大的区别严格的说也就是在业务服务层上。业务服务层处于用户服务层和数据库服务层之间,它接收用户的请求,对用户的请求进行分析,根据业务逻辑的需要从数据库服务层提取数据并对数据进行过滤、整理和汇总,在格式化以后,发送给用户服务层。
在我们这个示例框架系统中,业务逻辑层的作用就是从用户处提取关于用户想要的计算机相关参数,对请求数据进行分析,然后把请求给它所有已知的零售商,从零售商处获得数据并进行整合,然后对结果进行格式化并返回给用户。
具体的操作流程如下:
1. strReturnURL = Request.ServerVariables("HTTP_REFERER");
该代码的含义是用来记录发出请求的用户机器的IP地址。
2. 对用户传送的参数和参数值进行解析,并保存到相应的变量中,在ASP中,可以通过Request组件的方法QueryString来提取用户传递的参数的值。
3. 初始化XML解析对象,我们知道,在安装了IE 5.0以后的版本后,系统就自动安装了XML解析器,它实际上是一个dll文件,名称为MSXML.DLL。该解析器提供了两种解析方法,一种是通过文档对象模型(DOM)进行XML文档的解析,另外就是通过Simple API for XML(SAX)的方法进行文档的解析,这里我们采用的是DOM的方法进行文档的解析,用以下的代码创建一个新的解析对象
objXMLDocument = new ActiveXObject("microsoft.xmldom");
4.使用FileSystem服务组件可以从一个文件中读取所有零售商的列表,相关的代码如下:
file://创建一个新的FileSystem组件
objVendorFileSystem = new ActiveXObject("Scripting.FileSystemObject");
file://OpenTextFile读取文件VENDOR_FILE
objVendorFile = objVendorFileSystem.OpenTextFile(VENDOR_FILE);
while (objVendorFile.AtEndOfStream == 0) file://判断是否到文件尾
{
strURL = objVendorFile.ReadLine(); file://读取文件的每一行
if (strURL.length > 0)
{
objXMLDocument.async = false; file://设置XML文档解析的属性
strURL = BuildURL(strURL); file://得到零售商的URL
objXMLDocument.load(strURL); file://装载零售商返回的结果文件URL
if ((objXMLDocument.parseError.errorCode == 0)) ' 进行XML文档解析
{
// 建立XML字符串
AddXMLBody(objXMLDocument.documentElement);
}
file://其他相关代码.
}
}
这里VENDOR_FILE内容形式如下所示:
http://WebServerName1/ VendorDealXML1.asp
http://WebServerName2/ VendorDealXML2.asp
http://WebServerName3/ VendorDealXML3.asp
………..
其中VendorDealXMLx.asp是表示某个零售商处理用户请求的文件。不同的零售商可能
有自己不同的对用户请求的处理方式和自己不同的数据库结构和从数据库中提取记录的方法。