原创 自己动手打造企业级短信平台(下)收藏

新一篇: 今日关注-网络创业和工作环境 | 旧一篇: 自己动手打造企业级短信平台(上)

看了上一篇文章,大家一定觉得我在吹牛,不就是一个发送短消息的小程序,也敢称企业级短信平台,呵呵,别着急,昨天的内容就好比万里长征的第一步,只有第一步走出去才会有以后的千千万万步,所以第一步要走好走扎实才行。

费话就不多说了,马上开始今天的内容。

昨天我们的目标很明确,就是做一个能发送短消息的小程序,而今天的需求就更复杂一些,我常说具体问题具体分析,但这次我不能再这样了,因为需求是多种多样的,为了不使本文沦为长篇大论而无法收尾,我尽量把问题简单化,所以我们这次的这个DEMO仅仅是构建一个发送短消息的平台。

既然是一个平台,就需要有服务提供者和服务使用者。两种之间的关系显然是一种调用和被调用的关系。既然是一个平台,那么我们当然希望它能在大多数环境下使用,比如说可以针对互联网上的用户提供发送服务,可以只针对局域网内用户提供发送服务,可以只针对本机用户提供发送服务(废话…@#$#^%)。既然是一个平台,我们当然希望这个服务能很容易的被其它的客户端引用,比如说windows应用程序或是web应用程序。

OK,面对以上三个对短信平台的基本要求,我们可以看到这将是一个分布式的项目。值得庆幸的是,.NET已经为我们进行分布式开发提供了充分的准备,我们只需要拿起手中的利器就能毫不费力的取得胜利。而这些利器就是Remoting和Web Service。和昨天一样,如果你对这些技术不是很了解,可以查阅网上的资料,但你并不需要很深入的学习(暂时不需要),因为他们都高深莫测,想一口吃个胖子是不可能的,我们可以通过一些实例来逐渐深入的学习和熟悉它们。


 (图1:发送短消息的简单用例)

通过上面的用例可以看出,服务调用者是通过“发送短消息”这样一个接口来实现发送的,说到服务接口,我们马上就会想到web service,对,就是这么一个东东,用它来做为服务接口再合适不过了。一下就被你猜中,是不是觉得太简单了?

先不要高兴的太早,服务端以web服务的形式出现是不切合实际的。这样做的后果是:在每次请求时都需要重新打开手机的串口,初始化服务,然后才能发送,首先这样会因为时间上的延误造成调用端超时、死锁,其次我们并不能保证每次连接都能成功,如果不成功就会造成信息丢失,这显然是不允许的。造成以上情况的直接原因是web service和所有web应用程序一样,不能保持对象状态,只能对请求作出回应。因此在建立web service的同时,我们还需要在服务端创建一个对象来保持短信服务的状态并监控连接和发送情况。这个对象一般情况下是一个windows应用程序,但在我的这个DEMO里它是一个windows服务,因为我希望它一开机就加载。

这样的话,我们的服务器端就运行了两个应用程序,一个提供web service接口,一个执行短信发送服务,两者共同合作完成发送短消息的动作。为了使它们能够互相交互,我们有两种选择,一种就是刚才用到web service技术,一种就是Remoting技术。关于Remoting的技术细节,大家可以查看这里。因为两个服务程序在同一台服务器,所以出于性能的考虑我选择了Remoting。

流程已经很清楚了,服务端:服务器开机->自动加载短信服务->初始化短信平台;客户端:调用者调用服务->服务接口接收信息->触发“发短信事件”->发送短消息。在搞清楚这些之后我们就可以动手搭建平台了,具体过程我就不细述了,大家可参考本文最下边的DEMO。需要说明的是,这个DEMO只是简单的实现了一些基本功能,并没有考虑安全性、并发性、稳定性和异常处理,因为这些技术细节不在本文讨论范围之内,我会在以后的blog中针对部分内容做更深入的探讨。

以下是这个平台各个模块的功能和要点:

RemoteServer:相当于业务逻辑层,所有短信操作都在这里边。ReadConfig.cs文件里存放手机的端口号和其它参数信息。
WindowsServer:看名字就知道是一个windows服务程序,它是RemoteServer的宿主,它里边的内容很简单,只是注册了一个信道。在第一次接收到调用端请求时,它会构造一个服务对象。并将一直保持其状态,直到服务被中断。
这个程序在使用时需要先注册。注册方法是:installutil WindowsServer.exe 卸载方法是:installutil /u WindowsServer.exe
WindowsTest:调用短信服务的一个windows应该程序,通过它可以打开或关闭串口、发送短消息等。
SmsWebService:服务接口,可以被windows应用程序和web应用程序引用。
WebTest:一个web应用程序,只有一个发送短消息的页子,在它里边引用了上面的web服务。


源码下载:

本文的DEMO(下载关闭)

发表于 @ 2004年09月23日 16:02:00|评论(loading...)|编辑

新一篇: 今日关注-网络创业和工作环境 | 旧一篇: 自己动手打造企业级短信平台(上)

评论

#阿不 发表于2004-10-14 16:53:00  IP: 210.74.2.*
你所用的方法是否可以适用于第四种办法,即通过多路短信专用设备(GSM MODEM池)发送短消息?
#hpy223 发表于2004-10-18 14:40:00  IP: 61.52.228.*
你好呀,看到你的文章很受启发,你的demo怎么不能下载了,能不能发个我,我的邮箱hpy223@sohu.com谢谢!
#qq7good 发表于2004-11-21 11:11:00  IP: 61.177.19.*
demo怎么不能下载了,能发一份给我吗
wukun52@163.com
#程先生 发表于2004-11-29 15:16:00  IP: 218.104.1.*
看到你的文章,我很受启发,我亦有个想法:先生成一个window服务程序,里面作一个TCP/IP监听服务,如果客户通过网页访问该服务时,向该端口提交服务,那么服务程序就可发送短信。
希望能有一份您做的demo程序。我的E-MAIL:crb1@163.net
谢谢
#jisiki 发表于2004-12-08 15:59:00  IP: 218.14.201.*
希望能有一份您做的demo程序。
我的E-MAIL:jisiki@163.com
谢谢
#royi 发表于2004-12-23 10:37:00  IP: 218.26.222.*
demo怎么关了,给我发一份吧,谢谢!
royiwang@yahoo.com.cn
#royi 发表于2004-12-23 10:39:00  IP: 218.26.222.*
demo关了,给我发一份吧,谢谢您!
royiwang@yahoo.com.cn
#圆满完成 发表于2004-12-29 22:10:00  IP: 218.0.233.*
ling2113@21cn.com

喜欢
#fangaoxin 发表于2005-01-04 22:35:00  IP: 221.5.80.*
请给我也发一份吧!谢谢!
fan_gao_xin@163.com
#jelin 发表于2005-01-10 03:55:00  IP: 221.137.51.*
我也要阿,我的信箱是lgjie@163.com
#myx 发表于2005-01-12 10:45:00  IP: 219.137.239.*
你好呀,看到你的文章很受启发,你的demo怎么不能下载了,能不能发个我,我的邮箱myxname@gmail.com谢谢!
#myx 发表于2005-01-12 10:46:00  IP: 219.137.239.*
你好呀,看到你的文章很受启发,你的demo怎么不能下载了,能不能发个我,我的邮箱myxname@gmail.com谢谢!
#lyy 发表于2005-01-18 09:56:00  IP: 218.24.182.*
能不能发一个demo给我?aslyy@sina.com //bow :)
#jim 发表于2005-01-22 02:54:00  IP: 61.235.82.*
能不能发一个demo给我?txc@prfri.ac.cn
#pzm 发表于2005-01-26 14:40:00  IP: 61.145.175.*
您好﹕
你的文章寫的非常好﹐能否將你的DEMO給我看看。謝謝
jimmypzm@163.com
#dulm 发表于2005-02-02 14:25:00  IP: 211.94.94.*
给一份DEMO看看吧:)

谢谢!
#dulm 发表于2005-02-02 14:26:00  IP: 211.94.94.*
给一份DEMO看看吧:)
goldenfiredo@163.net
谢谢!

#AK47 发表于2005-02-24 17:05:00  IP: 219.159.239.*
给一份DEMO看看吧:)
xxx8152@sina.com
谢谢!

#hzm17 发表于2005-02-28 14:14:00  IP: 202.114.58.*
您好,我的毕业设计是“手机短信网关的研就与开发”
想参考一下您的Demo程式,谢谢。
顺便问一声,您是郑州人?
邮箱:hzm17@163.com
我的MSN是:siemens17@hotmail.com
#wmh 发表于2005-03-11 19:15:00  IP: 202.96.113.*
给一份DEMO看看吧:)
wmh.net@163.com
谢谢!
#jeffrey 发表于2005-03-16 10:14:00  IP: 218.1.127.*
您好,我是学校的学生,想学习学习,能给我一份吗?
#jeffrey 发表于2005-03-16 10:15:00  IP: 218.1.127.*
忘了我的mail。哈哈
lxh@mail.tongji.edu.cn
#wandy8424 发表于2005-03-19 14:10:00  IP: 210.43.128.*
可以给我吗
wandy8424@163.com
#walkman 发表于2005-04-19 13:02:00  IP: 218.94.36.*
可以给我一份吗??感激不尽
wzk@suypower.com
#Zero 发表于2005-05-11 22:42:00  IP: 218.75.208.*
您好!拜求demo一份学习。感激涕零!
#Zero 发表于2005-05-11 22:44:00  IP: 218.75.208.*
俺的邮箱:ma_gu@126.com
#John 发表于2005-05-20 14:28:00  IP: 61.186.252.*
您好,看了您的文章很受启发,能否给我一份Demo.
我的邮箱:Johnfang@vip.sina.com
谢谢!
#wewe 发表于2005-05-29 10:21:00  IP: 61.186.252.*
你好,看了文章发现和我要做的毕业设计很类似,不知道可否发一份DEMO给我参考一下,我会在自己的毕业设计上注明出处的.谢谢!
我的e-mail:wewegreat@163.com
#SHIWEI 发表于2005-05-31 09:24:00  IP: 61.186.252.*
我是一个刚进入这项工作的 我想了解进一步的的知识
可以帮忙吗?
我的E--MAIL:shiwei2539----jing@163.com
#SHIWEI 发表于2005-05-31 09:26:00  IP: 61.186.252.*
谢谢
#StrongerLiu 发表于2005-06-08 12:56:00  IP: 61.186.252.*
可否给一份DEMO參考一下?
strongerliu@gmail.com
谢谢!
#deiva 发表于2005-07-29 13:23:00  IP: 61.186.252.*
你好。是否也能给我发一份?
我加在一个教育上http://shey.stu.edu.cn。(有新贴就发短信给管理员)
deiva@tom.com

谢谢了
#hypsuper 发表于2005-10-12 15:04:00  IP: 211.100.21.*
我刚接触这块,能不能给我发一份DEMO,谢谢!
hypsuper@sohu.com
#joesangui 发表于2005-10-14 14:23:00  IP: 211.100.21.*
您好,看了您的文章很受启发,能否给我一份Demo.
我的邮箱:unicheer@163.com
谢谢!
#leech 发表于2005-12-18 11:54:00  IP: 202.109.80.*
请写这篇文章的老大也发一个DEMO给我学习学习好么?或者谁已经有了DEMO?请发一份给我。谢谢。小弟跪求啊~~
#leech 发表于2005-12-18 12:45:00  IP: 202.109.80.*
忘记了写了,我的Email: leech@d9star.com
#ixulf 发表于2006-02-20 09:52:00  IP: 60.178.4.*
老大,给一份DEMO源码学习学习.
xulifu@gmail.com
谢谢啦
#lix 发表于2006-04-14 17:31:00  IP: 221.218.31.*
能否给我一份demo源码
likexiao1981@163.com
谢谢了
#Vichy 发表于2006-06-11 21:39:00  IP: 218.1.164.*
找了很多地方 都不能下载了 麻烦给我发个可以么 谢谢了
ichliebedich2005@163.com
#zjpro 发表于2006-07-08 10:12:00  IP: 60.176.255.*
学习 hzgame@hotmail.com
谢谢
#勇82 发表于2006-07-14 15:32:00  IP: 220.169.202.*
545445645656645435
#jsm 发表于2006-07-18 09:58:00  IP: 61.150.61.*
给一份DEMO源码看看吧:)
jiaxl@163.com
谢谢!
#longknife 发表于2006-08-02 02:26:00  IP: 218.17.64.*
您好!也请给我一份DEMO源程序,让我学习一下吧!
lintx@126.com

谢谢!
#dingjigang 发表于2007-03-12 12:36:49  IP: 61.243.202.*
能否给我一分啊????
djg414@163.com
\谢谢了。。。。。。
#phyun011 发表于2007-03-14 17:34:56  IP: 221.193.216.*
我也想要一份,不知道可不可以?

方便的话。。。。

phyun_011@163.com

静候佳音!!!

谢谢!
#czjearth 发表于2008-09-10 17:06:18  IP: 192.168.100.*
blog 主, 你的这个东东确实不错,
小弟正在做串口方面的开发,

能否发一份给小弟学习!!

谢谢!

czj.hn@163.com
#czjearth 发表于2008-09-10 17:06:24  IP: 192.168.100.*
blog 主, 你的这个东东确实不错,
小弟正在做串口方面的开发,

能否发一份给小弟学习!!

谢谢!

czj.hn@163.com
发表评论  


当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
Csdn Blog version 3.1a
Copyright © dever