模拟器设计--未完待续

最近跟同事讨论电信系统特点的时候,特别提到系统接口太多了,开发起来各种交织,存在开发效率低的问题。针对这个问题,我想写点对这几年电信的理解和想法;

先引用别人一段对传统系统和互联网系统的区别总结。

    互联网应用不传统信息系统应用的区别

   互联网应用

    自行开发系统、快速迭代,持续交付,持续维护

    直接到达客户端,对接Mass用户

   业务逡辑简单,Straightforward,一致性要求较低

    系统内部模块间可以无标准(REST),性能/用户体验至上(KISS

    

    传统信息系统

    多方开发,依赖集成商,基于版本交付和维护

    Vendor对接集成商,集成商对接最终用户

    业务逡辑复杂,系统要求稳定可靠,安全性要求较高

    系统模块间依靠工业标准耦合,如应用逡辑和数据库系统通过SQL耦合


针对电信行业,这个特点更为突出,针对以上特点分别描述:

1、多方开发:由于移动是不会自己开发系统,因此移动的各级系统、基站、网络设置大部分都承包到集成商,涵盖
计费、客服、营业、客户管理、资源管理、网上营业厅、wap、宽带施工、跨省功能、sp、代收费、各种合作伙伴、mas等,
对于大的移动省各种子系统多达上百个;而各家公司的开发语言、网络协议则不尽相同;
2、电信、移动、联通是直接对接最用用户,而集成商根据甲方的需求完成开发和支持;
3、业务逻辑复杂,一方面是地区限制、工号限制、归属限制、产品资费复杂、家庭集团业务复杂;而且各省的功能在细节上差异较大,有时候甚至是整体流程也不一样;这3家厂商都是央企,也面对着全国的焦点,面对媒体的轰炸,变得十分敏感,甚至过度;
4、国际电信联盟标准、各家运营商制定的业务、技术规范,是这个行业最大的特点,每年一度的测试直接影响各省地区分公司的考核和集成商的准入;对与数据库几乎都是Oracle,对于中间件也是像Tuxedo这样的重量级产品,服务器大多都是昂贵的AIX、HP-UX、SUN-SALARY这样的UNIX系统服务器;而能支撑这一切的,就是因为电信用户的高ARUP。

这几年互联网技术的突飞猛进,让我这种技术迷宠宠欲动。hadoop、云存储、nosql、在线分析、缓冲系统、搜索引擎、自动化测试、移动开发就像湖里的鱼一样,而我则像站在湖边却没有渔具的渔夫,只能满足于天马行空的看别人写得各种系统应用实例和总结。经过一年的彷徨期和在新公司的体会,我逐渐意识到,千百个零不如一个壹。多大的船,捕多大的鱼。这些都是互联网行业的产品,照套路搬过来肯定不行,只能学习他们的技术和方法。举例来说,云计算拿到业务支撑就很难直接照搬,电信行业的用户量是大,但是业务规则复杂,这些业务规则如果全部并行执行就是一种浪费,因为任意一条规则不通过,整个业务都不允许继续执行;对于用户数据来说,计费装入内存是合理的,但是CRM等系统就没有必要了,用户一个月才办理几笔业务啊,这么做是吃力费钱不讨好;nosql呢?个性化数据还不是首要问题,太多的接口才是现在的问题,而接口太多怎么又快又能保证事物的一致性呢?我曾经接触几个特别复杂和流程长的业务,都是横跨好几个集成商和集团boss及省boss系统,业务规范中允许超时时间为60秒。

前些年,电信行业是信息技术的领头羊,而现在却被互联网落下一大截,而且以后还会被落下更远。随着以后各行各业交互性的加强,现有系统的性能和易维护性都会面临巨大的挑战。特别是三网融合和全国统一一个boss系统,系统怎么做?现有的框架肯定是不行的。而且这种业务和技术的发展方向也让我产生怀疑。

有点扯远了,回到主题。

面对这种现状,怎么去提高开发效率?特别是基于tuxedo的开发,逼着你不得不连着服务器进行开发,有比这更难受的事情吗? 开发环境是高度迭代的环境,可是在这种模式下大家都不能随便搞,因为不是你一个人在用。我做完功能,想去压测一下,不好意思,马上就会有人来找你。ok,这个可以忍,晚上没人了,我加班压测总可以了吧! 可是等晚上了,你的功能调用资源接口了,但是资源接口又不通,你再等明天晚上吧!好容易等到了资源接口可以了,计费接口又出问题了,后面还有一级boss、短信营业厅,在这种共有的环境下,不是你更新代码就是他更新代码。你仔细算算,你一天有多少问题花费在环境上?你要问,不是说版本向下兼容嘛? 是啊,可是我们在单元测试还没通过呢,等通过了还是兼容的。以上这些问题,在统一各省版本的要求下和c语言这种面向过程的工作方式下,会变得更加地焦作!

同样的烦恼还来自前后台,我一直在思考一个问题,系统升级管界面什么事情,为什么界面也总跟着升级,而且我还觉得老系统的界面挺好看呢!还有对前台来说,数据是否正确跟我关系不大,只要保证流程和展示的方式是正确的,我干嘛要等你后台程序开发完毕呢?假的也是可以的呀。

看到这里,你或许猜到方案了,那就是题目要说的,做模拟器!模拟器不要太高的性能、不需要正式的流程,但是一样可以模拟正常的和异常的流程。还可以劈开第三方接口,单压自己的程序。有模拟器后,就可以实现这种多接口程序的本地化开发了,就可以自己觉得升级不升级本地的开发库和接口库。

先基于以上的烦恼,整理出来一个简单的需求吧

1、模拟接口的正常流程的输入和输出,最好是可以配置的,这样开发人员就可以根据需求返回不同的结果;

2、能做参数的合法性校验和部分基本业务规则校验,以确保主流程的畅通;

3、性能比提供接口方要高,这样我的压测数据就有参考性了。这个不难做到,毕竟什么业务也没有做;

4、接口之间可以相互调用,也可以调用我们的接口;

这样是否够了呢?? 不够,最大的问题是tuxedo这个巨无霸,只在生产环境才有意义,对于开发和环境又有什么意义呢?

对这个东西的模拟,不是没信心是不知道到底需要多大的工作量,虽然只是模拟缓冲区交互、tpcall这样简单的功能,性能什么的统统不用管!

或者不要这个东西,只有保证我们开发的框架能无缝对接即可。最近看了下有一个开源软件可以模拟tuxedo,叫tuxtone,回头可以试试!
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值