快是指访问更快,操作更快;轻是指业务更简单,操作更简单。但往往很多业务是很重的,像ERP,OA等。这些业务怎样做到轻呢?
首先先来谈怎样做到快的问题,如果一款产品操作起来很慢,那即使它的功能很好,它也不可能成功,除非用户没有其它选择,但这种情况通常不会存在。互联网上就没有什么有价值的产品是唯一存在的,所以如果你的产品很慢,那你根本无法与别人竞争。
一、要做到快,一般可以从以下五点来展开:
1、时空转换,用空间来换时间,用更多的服务器,更多的访问点,更多的缓存数据来减少访问的时间,让访问更快的返回给客户;
2、最优网络,网络的传输距离和带宽的问题会影响访问的速度,可以优化网络访问路径来解决该问题,例如CDN,CDN缓存等,让用户就近访问,最快返回;
3、数据分类分级,不是所有的数据都需要服务器来处理的,也不是所有的数据都需要实时从数据库查询出来。所以可以根据数据的动态性与静态性来设置数据的访问与存储策略,尽量减少对服务器和数据库的访问。因为这两个是性能的最大瓶颈。
4、异步处理,对于长事务或对实时性要求没那么高的业务来说,异步处理的话就能以最快的速度先将部分结果返回安稳住客户的情绪,后面再安排与客户的继续沟通,最后完成所有的业务处理。所以有时候取巧的业务设计比莽撞的技术为上更能解决问题。
例如电商上的订单处理,用户下单会涉及到库存扣减,物流调度,积分奖励等问题,如果这些环节都要在用户下单时实时连续的处理结束后再返回,那肯定是要不少时间的,如果这些环节不是在同一个系统上的呢,那系统间的同步处理就更难了,就算能做到,效果也不能保证。
同步处理是一条越走越窄的路,异步才有无限的空间,用户下单后先返回一个下单成功的结果给用户,然后通过消息机制,通知到其它业务模块接手处理,并将处理结果以消息的形式通知到客户,可以是邮件或即时消息。
这里可能会出现超卖的问题,但这个问题也是有其它技术手段可以解决的,例如通过资源锁,可以先将商品锁住,被锁住的商品在锁住的短时间内只能被该用户购买。
数据即是分散的又是集中的,分散来存储,集中来控制。我们可以建立一个所有数据的特征集中库,通过该库就可以知道分散存储的数据的统计信息,根据这些结果信息来对业务操作进行控制,例如,商品的库存还有多少,这个数据点就可以放到中央库这里来,保持定时更新,事务更新。这样就不需要每次都遍历所有的存储点来作这样的计算了。
5、预加载,在非业务时间,提高将某些数据准备好,黄金时间只做最有价值的事情,不要浪费时间去做前期的准备工作。这有点像做餐饮的,在非饭点时先把菜和材料备好,客人来了,下锅一炒就可以了,饭点的时间很短,所有的时间都只拿来炒菜,你能炒出的菜肯定会更多,如果还要切菜备菜什么的,那你肯定很慢,客人都等不耐烦了。
二、轻并不代表服务质量下降,轻是相对的,互联网上的轻是相较于传统软件来说有哪些方面是可以借助互联网手段(即时通讯、实时定位、大数据)来简化与优化的。
所以我们要避免走进一个误区,认为业务互联网化就要绝对的简单,本来是5个环节的,要简化到2步来完成。这是有违业务的严谨性的,根本原则是要在保证业务完整性的前提下通过技术手段来简化流程,例如,手机上处理业务的,那可以通过手机的强身份性精简用户的身份验证环节,还有利用手机的定位与拍照功能就可以精简一些业务表单数据的录入和减少人工参与。让我们的业务处理更加的智能化、人性化。如果实在是简化不了的,那可以只将部分环节转移到互联网上,例如ERP是一个庞大的系统,但我们可以将某个采购环节放到网上,方便采购人员实时查询库存信息与生产情况。
如果只是单纯的照搬传统软件的模式或将PC的内空完整的转移到手机上,同样复杂的流程和业务,却要在更小的工作区上操作,任谁都不会乐意授受的。