网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > DELPHI > 正文
用Delphi 5创建Web Services
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/12
下载{$ArticleTitle}原创论文样式


M 作 者: cn_prince(欢喜王子) 2001-06-11 20:58:55 :0 :0    
[回复] [打包] [转贴]  
我尚无缘得见新版本的Delphi。据可靠消息称,它提供对SOAP--Web Services的基础--的全面支持,而扔弃了Borland MIDAS。

为什么这只软件大鲨会对Web Services如此钟情?他们的动机很容易明白。Web services意味着不用再卖产品,而是卖服务。不再会有盗版。版权受到完全保护:制造商独家保有软件。和消费者签订的合同将会是长期的。而且如同上瘾一半,用户用得越多,就越是想用。对于大企业来说这就是白花花的银子、用户忠诚和集权。从坏处想,Web services也有可能使客户的交流和日常生活被主宰--新资本主义革命的混合体以及"大哥"--噩梦。

有人希望那只是刺激的白日梦。只有在未来才能看到Web services在社会中所起的作用。但无庸置疑,它们已经使业界产生了极大的改变,就像PC和Internet的出现一样。而我们,开发人员,必须做好准备。

这里有一个简单的例子--执行某个数学计算,x+y什么的。(这是一个高度抽象的例子;你可以把它投射到真实世界中)。以前,要完成这个任务,用这样的代码:

function HaveSum (x: integer; y: integer): integer;
begin
  Result:=x+y;
End;

后来,人们发明了OOP(面向对象编程)。于是我们就有了一个包括两个整数值和一个GetSum方法的ThaveSum类,然后用它创建一个对象实例。在设计层面上,这显得既雅致又高效(此出就不再继续讨论OOP的好处了)。跟着是微软的COM。对象不再只是被创建,更是一个生命体。程序设计变成协调所有这些生命体,完成某种任务,而非单纯做一个工匠的工作。

问题在于这些生命体并非都易于伺候,但Microsoft Office仍然实现了这一策略。理论上COM被设计为可以接收远程调用,如果一个办公室里有20个用户想知道x+y到底等于几,我们就只需要创建一个IhaveSum COM,然后分发、销售、回答所有这些用户的问题

现在,Web services之梦来了:不分发产品,而是分发服务。如果谁要求服务,就要呼叫分发者执行,并且为服务付钱。软件用户与软件产品完全隔绝,他只关心产品给出的结果(而那就是在已然过去了的"黄金时代"里,购买或合法拷贝的真正原因)。


简单的Delphi 5例子

Web services的两大柱石--HTTP和XML已经为Delphi开发者所熟知了。下面我想展示用Delphi 5来实现Web services。希望Delphi 6的例子很快就可以给出。

首先我要实现HTTP协议。服务器可以是asp或PHP页面。既然我们用Delphi,那就用Delphi CGI stand-alone可执行文件做服务器。只需要几分钟时间、一行代码就可以完成(我在解释给菜鸟听呢)。

选择 File(文件)- New(新建)- New Web Server Application(新Web服务器应用程序)。我们要做的事用CGI就可以了,而且便于调试。在真实环境中用ISAPI DLL会好些。于是我们得到一个WebModule。打开它的Action Editior,在OnAction事件中加入下面的代码:

procedure TWebModule1.WebModule1WebActionItem1Action(Sender: TObject;
  Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
begin
  Response.Content :=IntToStr( StrToIntDef(Request.QueryFields.Values[''x''],0) +
  StrToIntDef(Request.QueryFields.Values[''y''],0));
end;

服务器计算两个变量之和,然后传送到客户端。

在Delphi中可以有多种方法实现HTTP协议。可以用WinInet API函数(在Marco Cantu的《精通Delphi 5》中有很好的例子)或者Indy组件(在Delphi 6中应该整合了Indy,也可以在http://www.nevrona.com/Indy下载。这里我打算用Microsoft Internet Tran

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号