透视和调整你的企业和商务系统(Ⅰ:Analyzing、Requirement)
小气的神 2001-10-09
对于dotNET,这是一项新的技术,一个为适应变化的应用系统体系。你可能不屑一顾还是测试版而已,宁愿观望;你可能已经开始接触它,透过这些新的技术开始思考现在和未来的企业或商务的应用程序结构。它们会是怎样的呢,呈现在你面前的将是一幅怎样的情景?一般你会问自己这样的问题:
Why-这项新技术是什么?是用来干什么的,和现有的技术有什么优劣。
Who-谁会用这项技术?对我或我的应用有用吗?
When-什么时候可以应用它?什么时候开始调整我目前的系统或应用。
Where-从何处开始?何处将会受到影响,调整从哪里开始和继续下去。
你也许和我一样,在接触dotNET之前就有Windows DNA的一些应用或一个系统在运行。老实说,它们有些问题,但基本上运行良好;另一个角度看,对dotNET又很感兴趣,因为从目前看它确实可以解决以前的一些问题。好吧,来假设一下目前的系统和构架:
我假设它运行在Windows 2000 环境下,标准的Windows DNA构架,如下图:
需要的数据在在SQL Server中,假设它是Windows 2000 ADV+ MS SQL 2000;所有的db和Biz组件安装在App Server中,也假设它是Windows 2000 ADV即COM+ 1.0环境中; Web Server也是Windows 2000 ADV 即IIS 5.0;Web Client 假设它是IE5 ;Exe Client 是VB或VC生成的EXE程序。中间的红色虚线是防火墙。Web Server和Exe Client上都将安装App Server的Proxy程序包。
如何加入dotNET技术改善目前的结构和功能呢?是否可以象下图:
再让我们看看从中我们可以获得什么好处,同时为获得这些益处又必须做些什么呢?
好处:
1. 显而易见开始运用了dotNET技术,体系结构发生了变化。
2. Client丰富起来,几乎可以是现在流行的任何形式,只要兼容WebService规范和格式。
3. 防火墙问题,这样的体系结构下不会有COM或DCOM穿越防火墙的问题了。
4. 有了WebService你可以迅速的将你以前的应用Show出去,比如你原来的是一个股票系统或是一个航班查询系统或是一个价格查询系统等等。
5. 其它另外的一些,比如可以告别以前痛苦的COM组件+ASP的方式,特别是那些夹在HTML中的杂乱代码,开始使用Web Form和Mobil Form等等,我想开发人员喜欢的许多改善和用户界面方面。
那么为获得这些改善和好处又要做些什么呢?
1. 我不愿意把目前已有的组件重新写一遍(会不会太痛苦重写!);老实说dotNET并不是围绕目前的COM+和DNA来设计的所以想依靠迁移工具整体迁移几乎是不现实的,再说众多的商业逻辑还要重新实现,那又会产生多少错误,一定会影响目前还算正常的运行,99.8%的人不会这么做。
2. 也不想对照每个Biz组件另写一个封装的WebService,因为这样不仅加大以后的维护工作而且这些“封装WebService”,性能低下,同样条件下比起以前性能一定会降低很多。
3. 调整可以,必须保证不影响目前的运行情况下,局部的进行调整和编写一些代码。
4. 要连接老的体系结构,同时如果可以,新的需求和功能考虑用dotNET来实现,也就是保证平稳的慢慢的切换到dotNET的新体系结构下,而且老的代码不用改动或重写。
5. 其它另外的一些,比如调整的方式,今后的升级维护等等,调整可能带来的其它风险。
之后我想最好的是办法是模拟一下目前的环境,产生一个模型。开始时,可能是一个很简单的念头,但之后我发现整个的过程是一个体验过程,很有趣也很有意思。不知你是否会同意我在这篇文章最后的观点或结论(如果真有什么结论和观点haha),但我想有一点可以肯定,那就是平台, 你在什么样的平台上编程?选择不同的平台,你所处和面临的环境将是截然不同的,开发和思考的视角也将是完全不同的,也许今后你思考的第一个问题将是:你要站在那个平台上?。
下面是后面几篇要讨论和涉及到的,也是我模拟的整个过程:
1. 产生一个COM+的DB和Bus,模拟目前现有的应用或功能。分布在两部机器上。一个是SQL Server(Ericsvr)一个是APP(Henrysvr),将DB和Biz组件放在一起,而且IIS也在这部机器上。IE和EXE的客户端也在这部机器上或是另外一台机器(Dereksvr)。
2. 针对上面的Biz即商业逻辑使用Microsoft SOAP Toolkit 产生WebService。有趣的是我发现实际应用中不是像Sample上那么简单的Add(A,B) Return (A+B)的应用,而是存在大量的ADODB.Recordset的返回和应用,于是很想知道这些Recordset在WebService中将变成什么?最后我分别用VB和VS.NET产生一个VB和dotNET的Client在另外一部机器(Dereksvr)上调用这个HenrySvr上的的WebService
3. MS SOAP Toolkit产生的WebService特别是带有ADODB.Recordset的WebService,可以说已经是一个不错的WebService,但也许不是最优的,然后我用VS.NET产生另外一种形式的WebService(ASP.NET WebService),这样Recordset被封装和看不见了,因为有了你很熟悉的.asmx,对于客户端来说,接近上面dotNET构架图展现的。最后我只简单的用了一个Web Form调用了这个WebService。
最可怜的是Ericsvr只有64M还要跑MS SQL 2000,Henrysvr也是几年前的PⅡ350,倒是借来的Hub和网卡表现都不凡,还好它们用“实力”证明了它们能够完成这些过程。
本文地址:http://com.8s8s.com/it/it46250.htm