很多企业为什么孩子不愿意上学怎么办使用SaaS级CRM系统

2B Saas系统最近几年都很火。很多创业公司都在尝试创建企业级别的应用&cRM, HR,销售, Desk Saas系统。很多Saas创业公司也拿了大额风投。毕竟Saas相对传统软件的优势非常明显。 &&
最近一年,有幸架构一个Crm saas 系统,上线了几个月来,各方面都比满意。整个系统创建过程,踩了很多坑,收获也比较多。总结一下Saas系统架构一些特点:
1.分层设计
saas系统分层大概是:
租户识别&应用层&数据访问层&缓存层&数据库
业务代码都是写在应用层。
租户识别可以用spring拦截器实现,然后使用ThreadLocal传递给后端
数据库和缓存层对应用层应该是透明的。程序员在写代码的时候,只关心业务逻辑,不应该担心多租户的问题。
2.数据隔离要透明
saas系统说起来很简单,任何系统似乎加个tenant_id(租户id)就变成saas系统了。比如原来的用户登录是:
select username,password from users where email=''
select username,password from users where email='' and tenant_id =1;
对于复杂业务的saas系统,这样做法非常危险,而且开发效率很低。你想想如果那个程序员写sql时候忘了加 & and tenant_id =1& . 结果不堪设想。
比较好做法是在数据库访问层对SQL进行改写。
TenantContext.exec("select username,password from users where email='' ");
在连接池根据TenatnContext改写Sql.&
这样做好处是,一来程序猿最多把系统搞down了,也不至于信息串了互相泄露。二来将来做分表分库也很方便,上层应用不用修改。
3. 租户识别方案
比较好做法是通过url识别租户。系统是给租户生成一个随机的三级域名,比如 abc.crm.baidu.com. & 如果客户想使用自己的域名,可以在cname到我们生成的三级域名,并在管理系统里面做绑定。
这样一个租户可以有两个域名,访问saas,一个随机生成的三级域名,另外一个租户自己的域名.代码里面可以根据过来的域名,判断是那个租户然后初始化TenantContext.
如果不想通过域名来做,也可以通过登录名来判断。这种方式要涉及到租户切换问题。
4. 智能DNS
以后补充。
5. 租户管理系统(计费,订购,定制,充值,催缴)
Saas系统是必须考虑计费系统和租户控制系统。这个系统需要都是独立设计。比如那个租户购买了那些模块,一个月多少钱。租户可以创建最多的用户数。计费到期邮件提醒等功能。
计费方式一般有两种,周期性计费,类似月租方案,和使用量计费,用多少付多少。 周期性计费比较简单。也可以两者结合起来。
6. 定制化开发
SAAS的优势在于一套系统多人使用,似乎和定制化开发有冲突。比如A客户想要A功能,B客户不想要。但定制化开发是无法避免的,比如CRM系统这样复杂的系统,不可能一套系统满足所有公司的要求。定制化开发尽可能分系统,分模块去做。然后通过控制台中配置不同租户订购不同模块,那些模块可以在前端页面上显示。不同的子系统需要分开部署。前端可通过nginx根据url分发,比如&abc.crm.baidu.com/bi/xxx/xx这个地址,就分发到BI子系统。不要尝试OSGI去搞模块化,这个是个大坑。
还有开发和产品,现有需求一定要分析清楚,不要一上线发现后患无穷。新功能尽量做的独立可以配置。
7. 灰度升级
SAAS付费企业客户对系统问题都特别敏感。 为了减少升级可能出现问题的影响范围,一般都采用灰度升级策略。如果使用了url来区分不同租户,灰度升级配置就会很方便。可以配置nginx 来根据域名做分发,比如租户A(aaa.com)到实例1(版本1.0),租户B(bbb.com)到实例2(版本). 当需要域名配置非常多的时候,nginx配置文档会乱。这块时候可以考虑使用nignx_lua来写一些扩展模块。
8. 容量估计
暂时先写这么多了。有时间再补充。
&----------
http://www.cnblogs.com/codemind/
阅读(...) 评论()&&&&&&&&&&&&&&&
基于SaaS模式的CRM软件系统探讨
&&&&来源:万方数据&&&&作者:&&&&&&
关键字:&&&&&&
SaaS模式有效解决了信息化建设成本高、信息不对称和软件盗版等问题,因此对于许多中小型企业,尤其是很多小型商业和制造业企业,采用SaaS模式实施CRM应该说是一种最好的途径。
&&& 近几年,很多企业投入大量人力物力实施,但很多却以失败告终,究其原因,主要是在传统软件模式下:1、企业需要购买大量IT设备,投资巨大;2、企业必须保持一定数量的专业IT技术人员;3、企业应用人员需要经常进行相应的培训;4、项目建设周期长,风险巨大。
&&& 软件应用模式SaaS(Softwareas a Service,软件即服务)通过互联网提供软件,使得客户无需花费大量资金购买硬件、软件、人员,而只需支出一定的租赁服务费用,通过互联网便可以享受到相应的硬件、软件和维护服务,享有软件使用权,且可以不断升级。有效解决了成本高、信息不对称和软件盗版等问题,因此对于许多中小型企业,尤其是很多小型商业和企业,采用SaaS模式实施CRM应该说是一种最好的途径。
SaaS模式CRM发展现状分析
&&& 当前,国内外各大IT厂商开始进军SaaS模式CRM领域。一些新兴的软件企业率先进入这一领域:美国Salesforce公司干2004年推出了第一个租用型CRM产品,中文版也于2007年4月正式上线;2004年成立的Xtools CRM通过三年的努力已经发展到了上千用户,2007年6月,中国的领军企业阿里巴巴集团旗下的SaaS模式“阿里软件外贸版”正式开放对外注册平台。传统管理软件厂商也开始涉足SaaS服务领域:国内的厂商用友、金蝶公司在2006年都成立了相关部门;微软公司也于2006年11月推出了名为Live的在线软件服务,全球最大的ERP软件厂商SAP也干2007年9月推出了名为AIS的SaaS商业管理软件,Oracle公司于2007年7月初在中国市场发布了最新版Oracle Siebel托管CRM软件。此外,C3 CRM、思信ERP等国内开源软件厂商也推出了自己的在线产品。
&&& 但是,SaaS模式CRM还存在着一些不足之处,有待进一步的完善研究。1、SaaS提供的是一种软件托管服务,企业所有的程序和数据都存放在提供商的上,而企业数据,尤其是财务数据和客户信息的安全性往往至关重要,将这些核心数据放在软件提供商的服务器上,企业最担心数据的泄漏,以及停止租用后承租商不归还数据的风险。目前大型软件企业提供的解决方案都是基于本公司的信誉,然而在国际大公司不断出现信誉危机的背景下,客户很难打消这方面的顾虑;2、SaaS模式软件本身具有通用性但缺乏个性化,大型软件公司的产品由于针对的是全国,甚至全球的通用用户,因此软件本身存在大而全、但缺乏针对性的缺点。3、在网上开展营销活动的很多商家认为,网络营销活动和CRM管理使用不同的平台,系统缺乏整合性,给企业经营带来诸多不便。
SaaS模式的CRM应用体系架构探讨
&&& SaaS模式CRM架构较传统CRM软件的多层架构更复杂, SaaS模式下的CRM应用架构应该采用更高一级的架构。当前我们采用在传统方案的基础上加协作层,该层主要是为了在单实例多用户系统中能够控制用户定制,也就是说为客户提供了定制和配置应用,满足其特定需求的主要控制。此架构与采用服务导向型设计原理开发的其他应用很相似,进程服务给出了智能客户端或网络供应层可调用的界面,并能启动同步工作流程或长时间运行的事务处理,以调用其它业务服务,与各处的数据存储进行互动以读写业务数据。安全性服务负责控制最终用户和后台软件服务的存取(如图1所示)。
图1 SaaS模式CRM体系结构
&&& 1、元数据服务
&&& 元数据服务供应商为客户提供了定制和配置应用,是满足其特定需求的主要手段。通常,客户可在四大领域进行配置更改。
&&& (1)用户界面风格:客户通常希望具有个性化界面的调整功能,以反映各自公司的品牌风格,因此SaaS应用通常都提供相关特性,以便客户能够更改图形、色彩、字体等相关内容。
&&& (2)工作流程与业务规则:为了能广泛地向各种潜在客户提供服务,SaaS应用必须能够满足不同工作流程的需要。
&&& (3)数据模型的扩展:对于许多数据驱动型SaaS应用而言,单个模型显然不能满足所有需要。可扩展的数据模型使客户能自由地让应用根据自身需要工作,而不必为了满足应用的要求而改变业务。
&&& (4)存取控制:通常,客户负责创建每个最终用户各自的账户,并确定每个用户能够存取使用的资源和功能。通常通过安全策略跟踪每个用户的使用权限,客户可以对安全策略加以配置。与传统业务应用不同,SaaS应用更多情况下是由客户自身进行配置的。因此,设计配置界面非常重要。理想情况下,客户应能够通过向导或简易直观的屏幕指导进行应用配置,屏幕上应提供所有可用的选项,从而避免客户面临一大堆信息无从下手。
&&& 2、安全服务
&&& 在任何软件环境下,安全性都是至关重要的,SaaS的性质决定了安全性尤其重要,通常安全控制措施包括认证和授权两种方式,一般采用两种通用办法来解决认证问题:
&&& (1)集中认证系统
&&& 对于集中认证系统而言,由供应商管理中央用户账户数据库,该数据库为所有应用用户提供服务。客户的管理员被授权在用户账户目录下创建、管理和删除用户账户。登录应用的用户需提供认证信息,根据中央目录下的信息加以确认,如果数据有效,就允许该用户访问。
&&& 这种方法所要求的认证基础设施相对简单,便于设计和实施,也不需要改变客户自身的用户基础没施。不过这种方法的主要缺点在于,集中认证系统很难实现单点登录(Single Sign on,即用户一次登录,就始终能访问企业网络)。没有单点登录功能,用户每次总会被提示输入应用登录信息,都要手动再次输入。
&&& (2)非集中认证系统
&&& 在非集中认证系统中,客户采用可与其用户目录服务相连接的联合服务(Federation Service)。当用户尝试访问应用时,联合服务将对用户进行本地认证,并发布安全令牌,SaaS供应商的认证系统将接受安全令牌,并允许用户接入应用。
&&& 所选的认证系统不同,将导致架构的复杂性不同,也会导致最终用户应用体验的不同。因此在制定决策时,应根据商业模型的需要来确定应用、客户和最终用户的需要。授权通常通过“角色”的概念来管理,角色与公司中的特定岗位功能映射。每个角色都被赋予一项或多项许可,分配到某个角色的用户就能根据相应的业务规则来操作系统。
&&& 3、客户层
&&& 在该架构中客户端和浏览器均处于该层,主要作用是与客户进行交互,一般要求操作简单,使用方便,大多数是瘦客户端的形式,即采用Web浏览器加上纯Web页面来实现。对于特殊情况,如对实时性要求较高的音频数据、视频数据及实时控制数据等,可采用智能客户端的形式。
&&& 4、表示层
&&& 主要将客户层的请求转交到业务层,因此可以不考虑系统业务的实现细节,也往往作为登陆管理、会话管理等服务的网关。可以采用Sun公司的JSP/Servlet技术来实现。
&&& 5、协作层
&&& 这是SaaS模式中特有的,该层主要是为了在单实例多用户系统中能够控制用户定制,也就是说为客户提供了定制和配置应用,满足其特定需求。
&&& 6、控制层
&&& 主要作用是表示层与业务层,协作层与业务层交互的一个中间桥梁。也就是通过控制层来协调表示层与业务层、协作层与业务层之间的信息交互。
&&& 7、业务逻辑层
&&& 实现所有业务过程的实际处理逻辑,可以采用Sun公司的EJB中的会话Bean和消息驱动的Beans来实现。
&&& 总之,SaaS模式下的CRM软件系统应该是建立在多用户效率、高度可扩展性与元数据可配置性基础上的架构模型,并能够以极低的成本为现有的和潜在的客户提供出色的软件。
责任编辑:
本文为授权转载文章,任何人未经原授权方同意,不得复制、转载、摘编等任何方式进行使用,e-works不承担由此而产生的任何法律责任! 如有异议请及时告之,以便进行及时处理。联系方式:editor@e-works.net.cn tel:027-/21。
12345678910
12345678910
12345678910
12345678910

我要回帖

更多关于 你不愿意种花 的文章

 

随机推荐