目录

  • 1 概论
    • 1.1 课程简介
    • 1.2 导入
    • 1.3 计算机安全概念
    • 1.4 OSI安全体系结构
    • 1.5 安全攻击
    • 1.6 安全服务
    • 1.7 安全机制
    • 1.8 网络安全模型
    • 1.9 讨论和作业
  • 2 对称加密和消息机密性
    • 2.1 对称加密原理
    • 2.2 对称分组加密算法
    • 2.3 随机数和伪随机数
    • 2.4 流密码和RC4
    • 2.5 分组密码工作模式
    • 2.6 讨论和作业
  • 3 公钥密码和消息认证
    • 3.1 消息认证方法
    • 3.2 安全散列函数
    • 3.3 消息认证码
    • 3.4 公钥密码原理
    • 3.5 公钥密码算法
    • 3.6 数字签名
    • 3.7 讨论和作业
  • 4 密钥分配和用户认证
    • 4.1 基于对称加密的密钥分配
    • 4.2 Kerberos
    • 4.3 基于非对称加密的密钥分配
    • 4.4 X.509证书
    • 4.5 公钥基础设施
    • 4.6 联合身份管理
    • 4.7 讨论和作业
  • 5 网络访问控制和云安全
    • 5.1 网络访问控制
    • 5.2 可扩展认证协议
    • 5.3 IEEE 802.1X基于端口的网络访问控制
    • 5.4 云计算
    • 5.5 云安全风险和对策
    • 5.6 云端数据保护
    • 5.7 云安全即服务
    • 5.8 讨论和作业
  • 6 传输层安全
    • 6.1 Web安全需求
    • 6.2 安全套接字层和传输层安全
    • 6.3 传输层安全
    • 6.4 HTTPS
    • 6.5 SSH
    • 6.6 讨论和作业
  • 7 无线网络安全
    • 7.1 无线安全
    • 7.2 移动设备安全
    • 7.3 IEEE 802.11无线局域网概述
    • 7.4 IEEE 802.11i无线局域网安全
    • 7.5 讨论和作业
  • 8 电子邮件安全
    • 8.1 引言
    • 8.2 PGP
    • 8.3 S/MIME
    • 8.4 DKIM
    • 8.5 讨论和作业
  • 9 IP安全
    • 9.1 IP安全概述
    • 9.2 IP安全策略
    • 9.3 IPSec通信协议
    • 9.4 安全关联组合
    • 9.5 因特网密钥交换
    • 9.6 密码套件
    • 9.7 讨论和作业
  • 10 恶意软件
    • 10.1 恶意软件类型
    • 10.2 传播-感染内容-病毒
    • 10.3 传播-漏洞利用-蠕虫
    • 10.4 传播-社会工程-垃圾邮件与特洛伊木马
    • 10.5 载荷-系统破坏
    • 10.6 载荷-攻击代理-僵尸病毒与机器人
    • 10.7 载荷-信息窃取-键盘监测器、网络钓鱼与间谍软件
    • 10.8 载荷-隐身-后门与隐匿程序
    • 10.9 防护措施
    • 10.10 分布式拒绝服务攻击
    • 10.11 讨论和作业
  • 11 入侵者
    • 11.1 入侵者
    • 11.2 入侵检测
    • 11.3 口令管理
    • 11.4 讨论和作业
  • 12 防火墙
    • 12.1 防火墙的必要性
    • 12.2 防火墙特征
    • 12.3 防火墙类型
    • 12.4 防火墙载体
    • 12.5 防火墙的位置和配置
    • 12.6 讨论和作业
  • 13 总结
    • 13.1 信息安全
    • 13.2 网络安全
    • 13.3 系统安全
    • 13.4 思维导图
云计算





推荐阅读

1.SaaS(Software as a Service; 软件即服务)

目录

[隐藏]

[编辑]

什么是SaaS

  SaaS是一种通过Internet提供软件的模式,用户不用再购买软件,而改用向提供商租用基于Web的软件,来管理企业经营活动,且无需对软件进行维护,服务提供商会全权管理和维护软件,对于许多小型企业来说,SaaS是采用先进技术的最好途径,它消除了企业购买、构建和维护基础设施和应用程序的需要,近年来,SaaS的兴起已经给传统套装软件厂商带来真实的压力。

[编辑]

SaaS服务提供模式

  SaaS服务提供商为中小企业搭建信息化所需要的所有网络基础设施及软件、硬件运作平台,并负责所有前期的实施、后期的维护等一系列服务,企业无需购买软硬件、建设机房、招聘IT人员,只需前期支付一次性的项目实施费和定期的软件租赁服务费,即可通过互联网享用信息系统。服务提供商通过有效的技术措施,可以保证每家企业数据的安全性和保密性。企业采用SaaS服务模式在效果上与企业自建信息系统基本没有区别,但节省了大量用于购买IT产品、技术和维护运行的资金,且像打开自来水龙头就能用水一样,方便地利用信息化系统,从而大幅度降低了中小企业信息化的门槛与风险

[编辑]

SaaS让CIO面临三重转变

  不仅厂商们关注着SaaS的发展,一些有远见的CIO们也同样对SaaS模式充满了期待。把过去一些底层的事务性工作交给SaaS服务商来完成,让CIO腾出更多的时间来关注其它工作。SaaS为CIO的带来了新的工作内容的同时,也让CIO面临着三重观念转变。

  首先,在战略层面上,CIO应该从以前被动为企业战略服务的角色变为主动地战略思考,利用最适合的信息技术去帮助企业提升核心竞争力

  其次,在管理层面上,CIO要认识到SaaS的大趋势,顺应这种趋势。更多的思考如何利用专业的IT服务,来提高自己的ROI:哪些工作适合外包,哪些软件适合采用SaaS,哪些需要自行购买和实施,这些问题将成为CIO更关注的问题。

  最后,在决策层面上,企业的CIO应在尽可能贴近企业核心业务的同时,努力提高对科技市场的把握和决策信息的收集。采用专业的科技信息咨询服务提供商的服务,掌握与自己相关的科技市场的动向,结合自己对企业核心业务的理解,进行科学决策。这才是新一代企业CIO的价值所在。

[编辑]

SaaS服务的优缺点

  对企业来说,SaaS的优点在于:

  1. 从技术方面来看:企业无需再配备IT方面的专业技术人员,同时又能得到最新的技术应用,满足企业对信息管理的需求。

  2. 从投资方面来看:企业只以相对低廉的“月费”方式投资,不用一次性投资到位,不占用过多的营运资金,从而缓解企业资金不足的压力;不用考虑成本折旧问题,并能及时获得最新硬件平台及最佳解决方案。

  3. 从维护和管理方面来看:由于企业采取租用的方式来进行物流业务管理,不需要专门的维护和管理人员,也不需要为维护和管理人员支付额外费用。很大程度上缓解企业在人力、财力上的压力,使其能够集中资金对核心业务进行有效的运营。

[编辑]

认识SaaS的缺点

  不过,正如进行其他决策一样,一定要留意SaaS的相关缺点。尤为重要的是有必要知道实施SaaS项目不可能解决企业的所有问题,毕竟,通过SaaS解决方案获得的只不过是一个软件平台。以下这些问题需要注意:

  •   企业的内部流程;

  •   如何处理审计和合规问题;

  •   在有效使用工具方面进行内部培训,从而解决内部业务问题;

  •   要定期向提供商支付费用;

  •   将外部的SaaS解决方案与内部的业务解决方案以及其他外部的SaaS解决方案集成起来。

  SaaS并不是什么“万灵药”,明白这点很重要。另外一点是,与从外部提供商获得的任何服务一样,确保企业可以依靠服务提供商通过持续、稳定、具有成本效益的方式提供服务,这同样很重要。不过尽管SaaS提供商本身可能存在这样那样的缺点,但还是值得投资购买对方的服务,如果这意味着自己可以避免经历成长的麻烦,更是如此。

[编辑]

SaaS的客户价值

  SaaS服务提供商为中小企业搭建信息化所需要的所有网络基础设施及软件、硬件运作平台,并负责所有前期的实施、后期的维护等一系列服务,企业无需购买软硬件、建设机房、招聘IT人员,只需前期支付一次性的项目实施费和定期的软件租赁服务费,即可通过互联网享用信息系统。服务提供商通过有效的技术措施,可以保证每家企业数据的安全性和保密性。企业采用SaaS服务模式在效果上与企业自建信息系统基本没有区别,但节省了大量用于购买IT产品、技术和维护运行的资金,且像打开自来水龙头就能用水一样,方便地利用信息化系统,从而大幅度降低了中小企业信息化的门槛与风险。具体来说saas可以为客户带来如下的价值:

  1. 服务的收费方式风险小,灵活选择模块,备份,维护,安全,升级

  2. 让客户更专注核心业务

  3. 灵活启用和暂停,随时随地都可使用

  4. 按需定购,选择更加自由

  5. 产品更新速度加快

  6. 市场空间增大

  7. 实现年息式的循环收入模式

  8. 有效降低营销成本

  9. 准面对面使用指导

  10. 在全球各地,7*24全天候网络服务

  11. 不需要额外增加专业的IT人员

  12. 大大降低客户的总体拥有成本

[编辑]

挑选SaaS供应商企业需要注意十要素

  1. 动态计费。我们只应当为使用的那部分服务付费,这是一个基本原则。公司的业务是动态的,很有可能有几个月业务量增长,有几个月业务量减少。如果企业的使用量有变化,那么支付的SaaS费用也应当随之变化。这对零售业或服务业等一些受季节性影响明显的行业尤其重要。另外,千万不要答应支付“软件维护费”或者购买事先确定的“用户许可证”,因为这样一来,改用SaaS模式的一个首要目的简化IT的管理也就无从谈起了。

  2. 安全性。安全压倒一切。大多数用户只是问问SaaS厂商是不是采用了安全套接层(SSL)技术,而安全性涵盖的不仅仅只有这个方面。要向潜在的SaaS厂商询问下列问题:

  • 放置服务器的数据中心有没有24×7全天候的物理安全措施?

  • 数据中心有没有得到保护(保安是不是24小时在周围至少巡视一次)?

  • 谁有权访问这些服务器(只有内部员工可以访问,还是承包商也可以访问?)

  • 有没有日志记录谁何时进入、何时离开?如果有日志,那么隔多长时间审计这些日志?

  • 应用程序有没有使用基于行业标准的128位加密技术?

  • 如果多个客户使用的应用程序放在同一台服务器上,那么它们有没有采用逻辑或物理分隔,从而确保你的数据不被未授权的人所看到?

  • SaaS厂商中可以访问你企业数据的工作人员有没有经过犯罪背景调查?知道被定罪的重罪犯是不能访问你企业那些敏感的个人数据,这很重要。

  • 厂商有没有正规的业务连续性方案BCP)?对方愿不愿意与你共享该方案、它能消除你的担忧吗?

  3. 完全基于Web。选择一个能提供完全基于Web的解决方案的SaaS合作伙伴,这个同样很重要。这意味着用户应当远离那些需要把应用程序安装到计算机上的厂商。如果仍要维护客户端软件,基于Web的应用程序带来的一个最主要优点也就荡然无存了。

  另外,问一下SaaS应用程序是不是可以运行在所有浏览器上,还是只能运行在Internet Explorer上?真正的SaaS产品可以运行在任何平台、任何Web浏览器上。由于眼下FireFox、Safari和Chrome等浏览器大行其道,你需要确信: 一旦正在使用的计算机崩溃,可以立即在一台新计算机上访问应用程序(不必为本地安装而操心)。真正的无缝切换意味着你的业务连续性不会受到影响。

  4. 厂商的经验。你需要确信自己选择的SaaS供应商在运行应用程序和托管应用程序方面都有着丰富经验。许多软件公司试图对现有的客户机/服务器应用进行程序 “网络化”,简单地改头换面后就开始托管。实际上,它们只是对传统的软件产品进行一些表面上的改造,并换上SaaS的品牌。这其实是被动而不是主动的软件开发,而且通常解决不了扩展性问题,更重要的是,解决不了安全性问题。你所选择的SaaS厂商应当在应用程序托管方面至少要有3~5年的经验,那样才能避免早期采用者遇到的一些问题。

  5. 升级周期。使用SaaS解决方案的主要优点之一是,能够获得自动升级的便利。升级可确保你总是使用最新版本,而且使用最新功能。这种升级应当不需要任何费用,也根本不需要重新培训你的员工。这意味着一旦部署了新功能,它们对你开展业务的方式应当没有任何干扰性影响。

  6. 集成能力。该SaaS解决方案能不能与你现有的软件进行集成?SaaS服务应当为你提供这样的功能: 只要使用基于文件(Excel文件或.csv文件格式)等方法或者使用Web服务就能与内部部署的应用软件无缝交换数据,从而可以让数据在软件之间自由进出。

  7. 备份。企业的数据至关重要,所以,在挑选SaaS厂商时,务必确信对方有相应的备份机制,这一点很关键。最起码,除了每周一次的异地备份外,它还需要每晚进行一次备份。要问的其他问题还有: 服务供应商隔多长时间测试数据库恢复,遇到紧急情况这家厂商能不能从容地恢复大量数据。

  8. 数据中心。确认托管该解决方案的是谁。有些厂商会自己运行和管理SaaS软件(即内部托管软件),而有一些厂商与第三方(名为管理服务或主机托管提供商)签有托管协议。有必要调查一下该厂商用来托管SaaS解决方案的是哪一个数据中心。数据中心最好通过了某些业内的审计,不妨要求厂商出示一份这样的报告。另外,你要确信数据中心采用了N+1配置,这意味着每个系统至少有一套独立的备份机制。万一出现系统故障,仍可以确保可用性。不过,许多数据中心不允许上门参观,但总是可以上它们的网站虚拟参观一下,以了解更多信息。

  9. 可扩展性。可扩展性始终与用户体验息息相关。所选择的SaaS厂商需要证明: 它能够与公司一同发展。问一下厂商他们最大的客户有哪些?你企业的要求会不会超出他们当前的最大客户?厂商会不会需要任何特别的准备才能适应你的未来发展?厂商的发展计划又怎样?别想当然地以为所有SaaS厂商都会与你的公司一同成长。事实并非总是如此,你有必要事先认真调查一番。

  10. 监控。有没有落实监控SaaS系统的机制很重要。这个关键问题常常被忽视,或者只是一带而过。问问厂商是不是仅仅执行“ping测试”,还是采用了监控软件来检查防火墙内外的系统。毕竟,即使服务器在防火墙内部顺畅运行,要是防火墙或路由设置出了问题,用户同样无法访问外部系统。

  一旦你选定了SaaS服务供应商,并且与对方建立了合作关系,最好每半年评估一次厂商的服务,确保厂商全面符合上述这10个标准。毫无疑问,SaaS会继续改变软件行业乃至整个IT业格局。SaaS厂商们会继续在这个大舞台上争夺用户,所以,用户应该对厂商进行精挑细选。要记住,也是最为重要的是,作为用户要做好份内事,换而言之,用户必须确信SaaS供应商也做好了份内事。

2.基础设施即服务(Infrastructure as a Service; IaaS)

目录

[隐藏]

[编辑]

什么是基础设施即服务

  基础设施即服务是一种通过网络按需提供给对所有设施的利用,包括处理、存储、网络和其它基本的计算资源,用户能够部署和运行任意软件,包括操作系统和应用程序。消费者不管理或控制任何云计算基础设施,但能控制操作系统的选择、储存空间、部署的应用,也有可能获得有限制的网络组件(例如防火墙,负载均衡器等)的控制。IaaS是云计算的主要服务提供模式之一,

[编辑]

基础设施即服务的应用方式

  作为Infrastructure as a Service (IaaS) 在实际应用中的一个例子,The New York Times 使用成百上千台 Amazon EC2 实例在 36 小时内处理 TB 级的文档数据。如果没有 EC2,The New York Times 处理这些数据将要花费数天或者数月的时间。

  IaaS 分为两种用法:公共的和私有的。Amazon EC2在基础设施云中使用公共服务器池。更加私有化的服务会使用企业内部数据中心的一组公用或私有服务器池。如果在企业数据中心环境中开发软件,那么这两种类型都能使用,而且使用EC2临时扩展资源的成本也很低 — 比方说测试。结合使用两者可以更快地开发应用程序和服务,缩短开发和测试周期。

  同时,IaaS也存在安全漏洞,例如服务商提供的是一个共享的基础设施,也就是说一些组件,例如CPU 缓存,GPU等对于该系统的使用者而言并不是完全隔离的,这样就会产生一个后果,即当一个攻击者得逞时,全部服务器都向攻击者敞开了大门,即使使用了hypervisor,有些客户机操作系统也能够获得基础平台不受控制的访问权。解决办法:开发一个强大的分区和防御策略,IaaS供应商必须监控环境是否有未经授权的修改和活动。

[编辑]

基础设施即服务与云计算

  根据NIST的权威定义,云计算有SPI, 即SaaS、PaaS和IaaS三大服务模式。这是目前被业界最广 泛认同的划分。PaaS和IaaS源于SaaS理念。PaaS和IaaS可以直接通过SOA/Web Services向平台用户提供服务, 也可以作为SaaS模式的支撑平台间接向最终用户服务。

  SaaS:提供给客户的服务是运营商运行在云计算基础设施上的应用程序,用户可以在各种设备上通过客户端界面访问,如浏览器。消费者不需要管理或控制任何云计算基础设施,包括网络、服务器、操作系统、存储等等;

  PaaS:提供给消费者的服务是把客户采用提供的开发语言和工具(例如Javapython, .Net等)开发的或收购的应用程序部署到供应商的云计算基础设施上去。客户不需要管理或控制底层的云基础设施,包括网络、服务器、操作系统、存储等,但客户能控制部署的应用程序,也可能控制运行应用程序的托管环境配置;

  IaaS: 提供给消费者的服务是对所有设施的利用,包括处理、存储、网络和其它基本的计算资源,用户能够部署和运行任意软件,包括操作系统和应用程序。消费者不管理或控制任何云计算基础设施,但能控制操作系统的选择、储存空间、部署的应用,也有可能获得有限制的网络组件(例如,防火墙,负载均衡器等)的控制。

3.PaaS(Platform as a Service; 平台即服务)

目录

[隐藏]

[编辑]

什么是PaaS

  PaaS是平台即服务(Platform as a Service)的简称,平台即服务是一种云计算服务,提供运算平台与解决方案堆栈即服务。在云计算的典型层级中,平台即服务层介于软件即服务基础设施即服务之间。

  平台即服务提供用户能将云基础设施部署与创建至客户端,或者借此获得使用编程语言、程序库与服务。用户不需要管理与控制云基础设施,包含网络、服务器、操作系统或存储,但需要控制上层的应用程序部署与应用代管的环境。

  PaaS将软件研发的平台做为一种服务,以软件即服务(SaaS)的模式交付给用户。因此,PaaS 也是 SaaS 模式的一种应用。但是,PaaS 的出现可以加快 SaaS 的发展,尤其是加快 SaaS 应用的开发速度。

  平台即服务(PaaS)这是在软件即服务Software as a Service,简称 SaaS)之后兴起的一种新的软件应用模式或者架构。是应用服务提供商the Application Service Provider,简称 ASP)的进一步发展。

[编辑]

PaaS的独特特点

  平台即服务(PaaS)常常是最容易让人迷惑的云计算类别,因为很难识别它,常常把它误认为是基础设施即服务(IaaS)或软件即服务(SaaS)。PaaS的独特特点是,它让开发人员可以在驻留的基础设施上构建并部署web应用程序。换句话说,PaaS让您能使用云基础设施似乎无穷的计算资源。

  当然,计算资源的数量看起来无穷只是幻想,限制取决于基础设施的规模。但是,正如在本系列的第一篇中了解到的,Google基础设施大约包含超过一百万台基于x86的计算机。另外,因为用于PaaS的基础设施是弹性的(第1部分中讨论过这个概念),在需要时云可以扩展以提供更多的计算资源,所以无穷的资源并不完全是想像。

[编辑]

PaaS对于开发人员的意义

  开发人员常常误以为云计算只适用于网络管理员。但是,这个错误的观念忽视了云计算可能给开发和质量保证团队带来的许多好处。

  在软件开发过程中,一些东西常常会出问题。以我的经验,设置服务器环境以驻留开发团队要构建的Web应用程序可能会带来许多争吵。即使在最大的企业中,通常一位网络管理员要负责为几个开发团队服务。在不使用PaaS的情况下,设置开发或测试环境通常需要完成以下任务:

  • 获取并部署服务器

  • 安装操作系统、运行时环境、源代码控制存储库和必需的所有其他中间件。

  • 配置操作系统、运行时环境、存储库和其他中间件。

  • 转移或复制现有的代码。

  • 测试并运行代码以确保一切正常。

[编辑]

PaaS的主要成分

  了解PaaS的最好方法可能是把它分解为主要组件:平台和服务。现在,考虑提供的服务,这称为解决方案堆。也就是说,PaaS的两个主要成分是计算平台和解决方案堆。

  按照最简单的形式,计算平台是指一个可以一致地启动软件的地方(只要代码满足平台的标准)。平台的常见示例包括Windows、Apple MacOSX和Linux操作系统;用于移动计算的Google Android、Windows Mobile和Apple iOS;以及作为软件框架的Adobe AIR和Microsoft NET Framework。要记住的重点是,计算平台不是指软件本身,而是指构建并运行软件的平台。下表提供一张示意图以帮助理解这种关系。


范型转变特征关键词汇优点缺点和风险不应该使用的场合
IaaS基础设施即资产常常独立于平台;
分担基础设施成本,因此会降低成本
服务水平协议(SLA);
按使用量付费;
自我伸缩
网格计算,效用计算,计算实例,系统管理程序,暴雨(cloud bursting),多租用者计算,资源池避免在硬件和人力资源方面花费资产费用;
降低ROI风险;
降低进入门槛;
简化和自动化伸缩过程
企业效率和生产力很大程度上取决于厂商的能力;
可能会增加长期成本
集中化需要新的/不同的安全措施
当资产预算大于运营预算
PaaS许可证购买消费云基础设施;
能满足敏捷的项目管理方法
解决方案堆简化的版本部署集中化需要新的/不同的安全措施
SaaS软件即资产
(企业和消费者)
SLA;由“瘦客户机”应用程序提供UI;
云组件;
通过API进行通信;
无状态;
松散耦合;
模块化;
语义性互操作能力
瘦客户机;
客户机-服务器应用程序
避免在软件和开发资源方面花费资产费用;
降低ROI风险;
简化和迭代式的更新
数据的集中化需要新的/不同的安全措施

4.DaaS

5.后端即服务(Backend as a Service; BaaS)

目录

[隐藏]

[编辑]

什么是后端即服务

  后端即服务BaaS是指专为移动应用开发者提供整合云后端的服务。开发者无需过多研究服务器端程序,而只需调用云计算平台提供的API,使用相应SDK,就能迅速完成数据存储、账户管理、消息推送、社交网络整合等功能。

  BaaS也作为移动后端即服务(MBaaS)而出名,是连接移动应用到云服务的一种方式。作为移动中间件的一个备选方案,BaaS方法使用统一的应用编程接口(API)和软件开发工具包(SDK)来连接移动应用到后端云存储。它也提供一些常用的后端功能,如推送通知、社交网络集成、位置服务和用户管理,以及后台服务联合。

[编辑]

后端即服务的兴起

  移动应用开发领域有一个BaaS(后端即服务:Backend as a Service)的概念。BaaS是指为移动应用开发者提供整合云后端的边界服务。现在,BaaS生态系统正从一个小众垂直领域迅速成为非常重要的行业环节。

  BaaS服务提供商的基础服务是数据/文件存储,主要帮助App开发者解决存储的问题。更进一步的集成服务则包括:账户管理、消息推送、社交网络整合、地理位置与广告等。BaaS分两种模式:一种是API模式,让开发者自己拓展代码;另一种是SDK模式,提供如iOSAndroid及Windows Phone等的SDK。

  国外比较知名的BaaS服务提供商是StackMob和Parse。在国内,Talking Data、友盟、Bmob、百度新浪开放平台均有相关业务。

[编辑]

后端即服务的用途

  BAAS为应用开发提供后台的云服务,在当前的移动互联网+云计算热潮中,尤其为这2类应用提供了大量的技术支持。包括提供存储、托管环境,也包括提供推送等通行后端技术能力。有单独的mBAAS的说法,但大多数人习惯将BAAS等同于为移动互联网应用开发而提供的云服务

  BAAS作为应用开发的新模型,进一步实现专业分工,有助于应用的成本下降和市场的进一步繁荣

  BAAS分公有云和私有云,公有云面向开发者提供运营服务;企业私有云企业构建移动信息化应用的基础平台,大量的移动应用基于该平台开发、管理,能有效降低企业移动信息化投入成本

  企业私有云也称E-BAAS。

[编辑]

后端即服务相关问答

  1.BaaS和移动中间件最主要的区别是什么?

  BaaS和移动中间件之间最主要区别在于他们对于后端流程的方法——或者说,是应用后端连接前端的方法。传统的移动中间件通过本地的物理服务把后端服务集成到应用中。BaaS正相反,它通过云集成后端服务。

  2.BaaS对移动应用开发产生怎样的影响?

  通过移动集成点到云中,BaaS提供了一种新的方法来连接后端服务和移动应用。通过使用统一的API和SDK,BaaS把移动应用 的前端连接到后端的各种基于云的服务上。这是与典型的移动应用开发相背离的,典型的移动应用开发要求开发人员吸收每一个后端服务的API

  3.BaaS是怎样影响开发人员的?

  后端即服务为开发人员消除了构想他们自己的后端的需求。BaaS供应商向开发者提供了现成的、可定制的后端,它已经配备了常见的后端功能。因此,该方法的支持者说它使开发人员的关注点从耗时、复杂的后端开发上转移了,并给他们更多的时间投入到前端工作上,如用户界面设计等。移动应用的扩展性是移动开发人员的一大痛点,它也是由BaaS供应商负责的;在云中,应用是根据用户和流量的变化自动扩展的。

  4.BaaS的使用者是谁,以及什么时候使用?

  BaaS已经发现使用了企业和非企业模式的开发人员。使用BaaS的开发人员常常在寻找一个可以简化建立移动应用复杂性的方法,从跨平台开发的困难到高效后端流程需要的技能集合。例如,那些习惯于前端工作的开发人员,如在客户端从事JavaScript工作的人,可能会转向BaaS,从而以免连接后端数据到前端的工作。

  承担后端构建的工作是一个耗时而昂贵的任务。对于那些不想花费时间和金钱来建立他们自己的或培训他们在后端基础设备的前端开发人员的团队来说,BaaS是一个外包的选择。

  5.BaaS的最主要问题是什么?

  虽然BaaS开始着手解决厂商绑定的问题——BaaS厂商说,他们给开发人员提供他们期望的灵活性来部署和迁移应用——技术绑定也是一个主要的障碍。把集成在后端服务的唯一码移到新的平台或供应商上仍然有难度。

[编辑]

后端即服务产品的案例

[编辑]

案例一:StackMob

  StackMob是一家提供移动应用后端服务的公司,成立于2010年1月,有人把StackMob称为移动版的Heroku。StackMob的创始人之一Ty Amell,2004年从西北大学获得MIS专业的学士学位。2007-2009年间,他在知名的音乐分享网站imeem担任工程经理,负责移动和前端产品,经历了从0到120万用户的全过程。他意识到,如果能够建立一个平台,帮助许许多多移动开发者提供后端云服务,便能够大大简化他们的工作。

  StackMob的云计算系统为App开发者提供实时分析、消息放送、Facebook/Twitter集成、Amazon S3集成、广告、地理位置、盈利等服务。开发者只需几十分钟,就可以通过Web界面勾勾选选,定制一个API架构,而且能很快在云端激活。StackMob支持Java、RubyPython、Lua和各种JVM语言。

  StackMob支持iOSAndroid以及HTML5平台。StackMob采用免费模式,入门是免费的,当使用平台的开发者开始有更多用户并挣钱后,会根据用户数、资源使用情况来收费。

[编辑]

案例二:Parse

  Parse是由YC孵化出来的,专为移动应用提供后台服务的云计算平台,为开发者包办繁琐的后台服务,让开发者只需专注于具体的开发工作。它提供任意数据保存,照片或其它文件存储,发送推送通知,创建用户帐号,使用地理位置数据以及添加Facebook/Twitter帐号登录等服务。

  Parse用户无需再费时费力地折腾Facebook帐号连接和推送通知等服务器端的功能,只需把相应SDK拖放到应用内即可。

  Band of the Day是苹果App Store 2011年度一款重量级的应用,它就使用了Parse的服务。此外,有些大公司也在使用Parse。

[编辑]

案例三:Kinvey

  Kinvey同样是一个为移动应用开发者提供后台创建服务的平台。Kinvey成立于2010年,位于马萨诸塞州的剑桥市。Kinvey强调加速移动应用开发与销售的“即取即用”理念。Kinvey的中间层与数据层均托管在多个云服务提供商处,包括 Rackspace、AmazonMicrosoft。所有通过Kinvey存储的数据都会有四种方式备份:Amazon EC2、Windows Azure、Rackspace以及Kinvey自己的服务器,假如其中一两个出现了故障,用户的数据依然安然无恙。

[编辑]

案例四:Sencha.io

  Sencha.io号称“第一”个移动HTML5云,由Javascript网页开发框架提供商Sencha发布。这项服务允许应用开发者构建基于浏览器的应用而不用写服务器端代码或者管理托管代码。Sencha.io Data,Sencha.io Messages,Sencha.io Login 和Sencha.io Development是Sencha.io目前提供的服务。开发者只需要写很少的Javascript代码就能实现数据存储、信息发送、信息监听、应用部署或者使用FacebookTwitter的账号登录。Sencha公司表示,他们的目标是将多用户和多设备功能整合到应用中去,帮助开发者减少从零开始写代码带来的负荷。

[编辑]

案例五:Bmob

  Bmob是国内第一家专注于移动应用云存储的平台,是基于PaaS模式的云计算平台。开发者可以使用Bmob设计存储框架、获取应用密钥、下载SDK并嵌入应用程序、调用相应API,应用发布后查看存储的统计分析数据,整个流程能够快速实现,并且Bmob的云服务是免费的。

[编辑]

案例六:Amazon EC2

  Amazon EC2(Amazon Elastic Compute Cloud,亚马逊弹性云计算)是由亚马逊公司提供的Web服务,是一个让用户可以租用云电脑运行所需应用的系统。Amazon EC2虽然不属于严格意义上的BaaS体系,但它是国外最主流的云计算服务,拥有强大的生态系统和用户覆盖面,EC2甚至为中小型BaaS服务提供商提供基础设施租赁。EC2称得上广义的BaaS云服务。当下最热门的图片社交应用Instagram就是EC2平台的客户之一。

  一款App一旦流行起来,发行商还需考虑在极大并发量情况下的数据处理问题。上周,Instagram宣布其月活跃用户数达到1亿,如果背后没有强大的后端云服务作支撑,是很难并发处理这些海量图片信息的。

  Instagram于2010年在洛杉矶开始提供服务,创业时只有一台租赁服务器,为了适应迅速发展的业务情况,Instagram较早地采用了EC2。

  Amazon EC2是云计算IaaS(Infrastructure as a Service基础设施即服务)层面的佼佼者,Instagram创始团队在创业之初就意识到,只要他们能够在较早时期利用IaaS来构建系统,就没有必要像其他创业公司那样,将资金投放在存储器和服务器上了。