透视和调整你的企业和商务系统(Ⅱ:COM+、ASP)

小气的神 2001-10-11

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

接着上一篇所说的三个过程中第一个步骤开始进行,环境需要两部机器,一部做SQL Server,一部做App和安装IIS。模拟现在常见的Windows DNA结构,在ASP中调用Biz组件。VB的Client端我就省略了,选择IE作为Client端,唯一想验证的是构架和组件是OK的就好了。

 

这一篇和dotNET还没有任何关系,因为那时还没有dotNET技术,为了更真实的模拟现实比如复杂一点带有事务要求的逻辑,我决定把SQL Server和组件放在两台机器上。

 

    内容我选用SQL Server自带的Pub数据库的Author表作为原型。当我翻看原来的一些应用代码和组件发现整个的代码一般分为两类:一类是完成一个商业和业务逻辑的操作,带入必须的参数给Biz组件,Biz组件调用其它Biz组件或DB组件完成需要的各种操作,然后返回一个简单的数据类型回来给表现层。比如一个String字符串(错误描述),一个Long型(表示某种流水号,什么编号或是错误代码等);另一类是查询或某种操作之后返回的大量数据,让我庆幸的是自己已经习惯了用ADODB.Recordset来返回这些大量数据,所以这一类很统一,一般都是ADODB.Recordset类型的返回值。除此之外连Variant都很少很少,自己定义的结构类型在Biz这一层的返回值中几乎为零。

 

    对于WebService来说,数据被统一成XML的格式,我开始想象这些ADODB.Recordset在XML中会是什么模样的?客户端又如何使用这些XML格式的ADO数据呢?几乎第一个反应是用Microsoft SOAP Toolkit来解决这个问题,所以对SOAP Toolkit产生的WSDL文件充满好奇,想知道这种ADODB.Recordset返回值的WSDL会是怎样的。事实上,以后试验的结果让人泄气。不过问题更早的暴露出来了,就是这些自定义或说不是SOAP支持的数据类型的数据如何处理的问题,目前集中在ADODB.Recorset这种数据类型上。这些问题也就决定了要产生的db和Biz组件。

 

    DB组件没有特别的,Biz组件我决定直接调用这些DB组件,先没有任何的逻辑,事实上Biz中可能是很复杂的,调用很多其它的Biz或DB组件,但往往它最后只会有一个结果:成功或失败,或是返回一组数据,也就是我上面归类的两种。所以我开始用类似的Update,Delete功能:

Public Function DeleteAuthor(ByVal au_id As String) As Long

来模拟第一类返回SOAP支持的单一数据类型的情况,现实的应用中可能会是:

Public Function ChangePaymentType( Byval nTypeID as Long, Byval Value as Integer) As Long 一个修改用户付款方式的商业逻辑。

用Select 功能

Public Function GetAuthorsByName(ByVal fName As String, ByVal lName As String) As ADODB.Recordset 来模拟第二类返回不是基本数据类型的返回值,现实的应用中可能会是

Public Function GetCustomerInfoByID( Byval nCustomerID as Long ) As ADODB.Recordset 一个根据客户ID来获得客户资料的商业逻辑。

 

我列出后面用的最多的两个函数的代码,特别是这两个函数名会在后面被大量涉及到:

Biz组件:bus_Authors.Authors ,编译成DLL: bus_Authors.DLL

Public Function Version() As String

Version = "VB & SOAP ver 1.00 "

objCtx.SetComplete

 

End Function

 

Public Function GetAuthors() As ADODB.Recordset

 

On Error GoTo ErrHandler

 

Dim obj  As Object

 

Set obj = CreateObject(dbcomName)

 

Set GetAuthors = obj.GetAuthors()

objCtx.SetComplete

 

Exit_Err:

    Exit Function

ErrHandler:

    Set GetAuthors = Nothing

    objCtx.SetAbort

    Err.Raise Err.Number, SetErrSource(modName, "GetAuthors"), Err.Description

    Resume Exit_Err

End Function

 

db组件:db_Authors.Authors ,编译成DLL: db_Authors.DLL

Public Function GetAuthors() As ADODB.Recordset

On Error GoTo HandleError

    Dim Rst As ADODB.Recordset

    Dim strSql As String

    Set Rst = newClientRstOnlyRead(5)

   

    strSql = " SELECT * FROM Authors "

   

    Rst.Open strSql, strConstruct, adOpenStatic, adLockReadOnly, adCmdText

 

    If Not IsRstEmpty(Rst) Then

        Set GetAuthors = Rst

    Else

        Set GetAuthors = Nothing

    End If

   

    objCtx.SetComplete

   

HandleExit:

    Exit Function

HandleError:

    objCtx.SetAbort

    Set GetAuthors = Nothing

    Err.Raise Err.Number, SetErrSource(modName, "GetAuthors"), Err.Description

    Resume HandleExit

End Function

Version()和GetAuthors()分别用来模拟上诉的两类返回值的情况,剩下的还包括下面的函数:

Public Function Echo(ByVal sEcho As String) As String

Public Function GetAuthorsByName(ByVal fName As String, ByVal lName As String) As ADODB.Recordset

Public Function DeleteAuthor(ByVal au_id As String) As Long

Public Function UpdateAuthorByAddress(ByVal au_id As String, ByVal sAddress As String) As Long

这些不同的是加入了参数,和上面的Version和GetAuthors返回值没有什么不同所以我后面只讨论Version和GetAuthors这两个函数,剩下的实现上只有稍稍不同。

 

完成后编译组件,安装在Windows 2000的COM +中,我建立了一个叫Authors的Application。然后利用Component Services分别将Authors Application用Export...功能倒出一个Server Application 和Application proxy的安装包,后面我们会用上它们。如图:

然后设置好IIS,建立一个虚拟目录Authors写一个简单的ASP页面调用bus_Authros.Authors组件的Version和GetAuthors方法产生一个Html的输出(VB和ASP的客户端的测试代码我都省略了)。保证Http://localhost/Authors/TestAuthors.asp

Http://henrysvr/Authors/TestAuthors.asp 调用正常在IE中产生页面输出。

 

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />

 

TestAuthors.asp放的物理的目录我假设是:C:\Inetpub\wwwroot\Authors中,这个目录在下面的章节中还会涉及到并且存放我们的WSDL等文件。

 
    如果上述一切OK那么基本上完成了第一步,有了一个简单的Windows DNA构架的例子使得下面的步骤可以开始进行,目前的构架可能象下面这样的:

 

 

另外防火墙都将不再考虑在内了,我没有模拟它。实际应用中防火墙是需要具体考虑的一个因素。

时间: 2024-11-08 23:22:10

透视和调整你的企业和商务系统(Ⅱ:COM+、ASP)的相关文章

透视和调整你的企业和商务系统(Ⅰ:Analyzing、Requirement) (ccBoy原创)

和调整你的企业和商务系统(Ⅰ:Analyzing.Requirement) 小气的神 2001-10-09 对于dotNET,这是一项新的技术,一个为适应变化的应用系统体系.你可能不屑一顾还是测试版而已,宁愿观望:你可能已经开始接触它,透过这些新的技术开始思考现在和未来的企业或商务的应用程序结构.它们会是怎样的呢,呈现在你面前的将是一幅怎样的情景?一般你会问自己这样的问题:Why-这项新技术是什么?是用来干什么的,和现有的技术有什么优劣.Who-谁会用这项技术?对我或我的应用有用吗?When-什

透视和调整你的企业和商务系统(Ⅲ:SOAP、WebService、Server) (ccBoy原创)

和调整你的企业和商务系统(Ⅲ:SOAP.WebService.Server)小气的神 2001-10-12     好了,终于可以开始使用Microsoft SOAP Toolkit将上面的建立的Bus_Authors转换成一个WebService了,我使用的是Microsoft SOAP Toolkit 2.0 SP2,简单的Version()的我就跳过了,不再废话,MS的随机帮助有这方面的说明.因为我更感兴趣ADODB.Recordset的问题,不过失望的是,使用WSDL Generator

透视和调整你的企业和商务系统(Ⅱ:COM+、ASP) (ccBoy原创)

和调整你的企业和商务系统(Ⅱ:COM+.ASP)小气的神 2001-10-11 接着上一篇所说的三个过程中第一个步骤开始进行,环境需要两部机器,一部做SQL Server,一部做App和安装IIS.模拟现在常见的Windows DNA结构,在ASP中调用Biz组件.VB的Client端我就省略了,选择IE作为Client端,唯一想验证的是构架和组件是OK的就好了.这一篇和dotNET还没有任何关系,因为那时还没有dotNET技术,为了更真实的模拟现实比如复杂一点带有事务要求的逻辑,我决定把SQL

广大企业使用OA系统的六大理由

随着经济全球化.信息化时代的到来,传统的管理模式明显不能适应市场经济的高速发展.加快自身管理信息化建设,成为众企业寻求新发展的必然选择,而在企业办公领域,OA系统凭借其自身独特的优势已成为企业信息化办公的"必需品",在信息化大趋势下倍受青睐. 那么,协同OA到底有怎样的魅力能够引领企业管理信息化的潮流呢?让我们随万户OA来一一解读吧. 1.信息快速传达,节约行政成本 信息的发布与传递是企业日常工作中最普遍.最基本的应用,然而IT技术的不断发展与企业职能部门的不断变化造成的信息孤岛使信息

企业身份识别系统 corporate Identity System

cis的具体组成部分 mi:理念识别 bi:行为识别 vi:视觉识别 什么是cis ? cis是corporate identity system的缩写,意思是企业形象识别系统.60年代,美国人首先提出了企业的ci设计这一概念.据说是美国ibm公司是这方面开先河者. cis的主要含义是:将企业文化与经营理念,统一设计,利用整体表达体系(尤其是视觉表达系统),传达给企业内部与公众,使其对企业产生一致的认同感,以形成良好的企业印象,最终促进企业产品和服务的销售. cis的意义 对内,企业可通过ci设

行业商务解决方案 PHP168即将发布商务系统

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 商务系统让草根用户逐步转为运营型.盈利型网站创造者,其网站核心将更倾向于企业及企业产品.借助商务系统让网友将进一步利用PHP168 CMS程序,建成与传统经济或企业产品高结合度的互联网系统. 商务系统在现有的主流电子商务网站上进行优化,基本架构成熟.有完善的独立商家平台,能管理企业产品及一切相关行为,同时商家与运营者有良好关联体系.设有批量询

PHP168商务系统 为行业商务解决方案

&http://www.aliyun.com/zixun/aggregation/37954.html">nbsp;   商务系统让草根用户逐步转为运营型.盈利型网站创造者,其网站核心将更倾向于企业及企业产品.借助商务系统让网友将进一步利用PHP168 CMS程序,建成与传统经济或企业产品高结合度的互联网系统. 商务系统在现有的主流电子商务网站上进行优化,基本架构成熟.有完善的独立商家平台,能管理企业产品及一切相关行为,同时商家与站长有良好关联体系.设有批量询价.产品推荐.批量报价

企业构建ERP系统不得不考虑的因素

资源管理系统(ERP)目前企业使用十分普及,对于协助企业维持基本营运功能已是不可或缺,那么是不是可以像购买汽车一样,购买一套ERP系统及相关的教育训练服务就可以算是导入完成了?并且可以让企业达到ERP系统运作顺畅的目标?答案当然是"不可能". 一. 企业如何建构ERP系统 企业要取得合适的ERP系统的基本来源有三种:第一是咨询ERP系统服务公司,选购一套公司各部门比较可能接受的系统(一般而言会考察功能.价格.服务.时程.客户评价-等要素):第二则是以企业需求导向的ERP系统,已非一般E

企业建设CRM系统需达到什么目标?

CRM系统,即客户关系管理系统,它不仅是一套软件系统,更是一种先进的.系统的.周密全面的客户管理理念.企业进行CRM系统建设目标就是想利用这种先进的管理理念,通过对客户数据的全面采集.统计.分析.管理,最大限度地挖掘客户价值,方便企业决策,最终提升销售,实现企业经济效益. 下面我们具体从一下几个方面对企业CRM系统建设的目标进行分析,为您在选择CRM系统及其功能配置,以及企业CRM系统建设中提供方向性的指引. 1.CRM系统建设的目标中最重要的一点就是要充分发挥CRM系统的客户分析作用,实现精准