前两年...

  大一大二期间,不知道软件架构、云服务器、数据库为何物,偶尔听过却从未用过。天天学的写的东西都是一些命令行代码,所幸在学完《数据结构》和《算法导论》后能够独立实现一些较为复杂的功能需求了。但是要我写成一个具有UI的正儿八经的软件,简直是天方夜谭!
  直到这个学期的一门课《软件工程》,让我真正有机会接触和学习如何去根据用户需求作出一个真真正在的应用出来。当然,想要成功完成一个项目,尤其是对我这种还没有过任何的项目经验的人,还需付出加倍的努力。
  细想起来,得自学好多东西。例如说数据库,java,javascript,JSP,Html,服务器的搭建,各种工具的环境配置...
  任重而道远啊!!!!

计算模式的变迁历史

  • 1965-1985:以大型机为核心的集中式处理模式(mainframe);
  • 1986-1990:以PC/文件服务器为核心的文件共享计算模式;
  • 1990-1996:以C/S结构为主流的分布式计算模式;
  • 1996- :以Web为核心、B/S结构为主流的分布式计算模式;
  • 2005- :以各类移动设备为核心的普适计算模式(无所不在的计算,无所不在
    的通讯);
  • 2008-:以云计算为核心的集中式共享模式(虚拟化);

几种体系结构

客户机/服务器

  • 概念:一个应用系统被分为两个逻辑上分离的部分,每一部分充当不同的角色、完成不同的功能,多台计算机共同完成统一的任务。如下:

    • 客户机(前端,front-end):业务逻辑、与服务器通讯的接口;
    • 服务器(后端:back-end):与客户机通讯的接口、业务逻辑、数据管理。
  • “客户机客户机-服务器”结构的发展历程:
    • 两层C/S
    • 三层C/S
    • 多层C/S

三层C/S体系结构

  • 概念:其实相对与前一种结构,三层C/S体系结构只是在客户端和数据库服务器之间增加了一个中间层。如下:

    • 第一层:用户界面—表示层
    • 第二层:业务逻辑—功能层
    • 第三层:数据库—数据层

B/S结构

  • 概念:浏览器/服务器(B/S)是三层C/S风格的一种实现方式。

    • 表现层:浏览器
    • 逻辑层:
      • Web服务器
      • 应用服务器
    • 数据层:数据库服务器
  • 与三层C/S的区别:
    C/S:表现层仍部署在客户端;
    B/S:客户端除了浏览器之外无任何程序需要部署。

C/S和B/S混合模式

  • 优势:为了克服为了克服C/S与与B/S各自的缺点,发挥各自的优点,在实际应用中,通常将二者结合起来;
  • “内外有别”原则:
    • 企业内部用户通过局域网直接访问数据库服务器

      • C/S结构
      • 交互性增强
      • 数据查询和修改的响应速度高
    • 企业外部用户通过Internet访问Web服务器/应用服务器
      • B/S结构
      • 用户不直接访问数据,数据安全
  • “查改有别”原则:
    • 不管用户处于企业内外什么位置(局域网或Internet),凡是需要对数据进行更新操作的,都需要使用C/S结构;
    • 如果只是执行一般的查询与浏览操作(Read/Query),则使用B/S结构。

M/C结构

  • 概念:也称为移动端/云端结构,可以看成C/S的拓展。
  • 优势:移动,可以做到anytime & anywhere使用软件的功能。
  • 客户端程序的体现形式:各类App。

什么是SaaS

基本概念
  一种通过Internet提供软件的模式,用户不用再购买软件,而改用向提供商租用基于web的软件,来管理企业经营活动,且无需对软件进行维护,服务提供商负责软件的可用性(软件维护、可扩展性、灾难恢复等)管理与支持;
  本质:属于B/S结构,对B/S的拓展。SaaS与传统B/S的本质区别:多租户共享Server和软件实例。

层次划分

  • 表示层

    1. 接收用户输入的数据与指令、展示数据的处理结果;
    2. 本身并不维护数据,也不包含业务逻辑;
  • 控制层
    1. 统一维护一组对象;
    2. 根据界面层发来的指令,调度这些对象的行为;
    3. 除了调度之外,本身也可能包含业务逻辑(处理对象集合的逻辑);
    4. 亦可直接访问DB;
  • 逻辑层
    对象(数据+业务逻辑)
  • 持久化层
    数据的持久存储(DB/file)

框架模式MVC

  • 概念:MVC是一种软件体系结构,它将应用程序的数据模型将应用程序的数据模型/业务逻辑、用户界面分别放在独立的构件中,从而对用户界面的修改不会对数据模型/业务逻辑造成很大影响。
  • 目标:将承担不同职责的软件实体之间清晰的分离开来,降低耦合;

实现技术

  • 针对不同层次,采用不同的实现技术:

    • 用户界面层:HTML/JavaScript/CSS、jQuery、JSP、AJAX、Flex、HTML5、Dojo、Bootstrap、Node.js…
    • 控制层: PHP、Python、Servlet, Python、Ruby、…
    • 业务逻辑层:JavaBean、Pojo、…
    • 持久化层:JDBC、JDO、Hibernate、iBatis、…

SaaS的那些事儿的更多相关文章

  1. 【转】《从入门到精通云服务器》第七讲—IAAS、PAAS、SAAS

    Saas.Paas.IaaS这三个词,一直困扰众人很久.就拿字面意思来说,分别是:软件即服务,平台即服务,设施即服务.小编表示这个不往深了讲,真心看不懂,还容易弄混淆.今天我们就来扒一扒这三者的深层含 ...

  2. 说说Makefile那些事儿

    说说Makefile那些事儿 |扬说|透过现象看本质 工作至今,一直对Makefile半知半解.突然某天幡然醒悟,觉得此举极为不妥,只得洗心革面从头学来,以前许多不明觉厉之处顿时茅塞顿开,想想好记性不 ...

  3. 为什么很多SaaS企业级产品都熬不过第一年

    因工作缘由,笔者与周边数位SaaS企业级应用的创始人.运营负责人有过深入接触,发现一个有趣的现象:刚起步时,蓝图远志.规划清晰,但是一路下来,却异常艰难,有些甚至熬不过第一年,就关门歇业. 2015年 ...

  4. 总结iOS开发中的断点续传那些事儿

    前言 断点续传概述 断点续传就是从文件赏赐中断的地方重新开始下载或者上传数据,而不是从头文件开始.当下载大文件的时候,如果没有实现断点续传功能,那么每次出现异常或者用户主动的暂停,都会从头下载,这样很 ...

  5. setTimeout那些事儿

    一.setTimeout那些事儿之单线程 一直以来,大家都在说Javascript是单线程,浏览器无论在什么时候,都且只有一个线程在运行JavaScript程序. 但是,不知道大家有疑问没——就是我们 ...

  6. Javascript中关于cookie的那些事儿

    Javascript-cookie 什么是cookie? 指某些网站为了辨别用户身份.进行session跟踪而储存在用户本地终端上的数据(通常经过加密).简单点来说就是:浏览器缓存. cookie由什 ...

  7. 浏览器对localstorage的支持情况以及localstorage在saas系统中的应用实践思考

    首先,还是要说,任何一种新特性的引入,通常有着其特有的场景和解决的目标需求,localstorage也一样.在我们的应用场景中,主要在金融业务服务的saas系统.其中涉及很多更改频率很多的元数据的客户 ...

  8. 传统软件和SaaS,差异究竟在哪里

    这篇文章从创业起步阶段.产品形态和产品策略.市场竞争格局三个方面比较了中美 SaaS 领域的异同,在文章的最后,作者根据自己在 Box 的工作经历对在国内做 SaaS 的公司提出了四点建议. 我曾有幸 ...

  9. webpack那些事儿

    webpack那些事儿01-webpack到底是什么 webpack那些事儿02-从零开始 webpack那些事儿03-热插拔 hot webpack那些事儿04-spa项目实战分析 webpack那 ...

随机推荐

  1. 6个重要的.NET概念: - 堆栈,堆,值类型,引用类型,装箱和拆箱(转)

    今天在Code Project上面看到一篇文章<6 important .NET concepts: - Stack, heap, Value types, reference types, b ...

  2. 【BZOJ1899】午餐(动态规划)

    [BZOJ1899]午餐(动态规划) 题面 BZOJ 题解 我太弱了 这种\(dp\)完全做不动.. 首先,感性理解一些 如果所有人都要早点走, 那么,吃饭时间长的就先吃 吃饭时间短的就晚点吃 所以, ...

  3. 【POI2001】【HDU1814】和平委员会

    题面 Description 根据宪法,Byteland民主共和国的公众和平委员会应该在国会中通过立法程序来创立. 不幸的是,由于某些党派代表之间的不和睦而使得这件事存在障碍. 此委员会必须满足下列条 ...

  4. up61博客模版版本v1.0.0

    经过两天的努力 终于把博客模板框架写出来了. 表示写模板累死了,很久没有写样式了,还是那么难搞.没有PHP写函数爽. 不管怎么样 第一版出来了.以下是部分截图.预览 当然在示例部署到项目上的时候 ,部 ...

  5. UWP 调用系统拍照程序

    当需要用户选择照片时,一般有两种方法: 1.从本地磁盘选择 2.调用照相机拍照 这次就说一下第二种方法,毕竟第一种大家都会. 先看下效果 如图所示,点击拍照后,会弹出系统照相机界面,在手机上,会打开相 ...

  6. kubernetes关键概念总结

    service 每个service对应一个cluster IP,cluster IP对应的服务网段最初是在配置kube-apiserver.kube-controller-manager和kube-p ...

  7. canvas小球

      小球碰撞效果是采用面向对象的方式写的,在小球的构造器里包含了小球的属性值,大小,移动速度,半径大小以及颜色. 在小球的原型方法里,添加了小球运动的方法,当小球碰撞到屏幕边界的时候进行反弹. 小球是 ...

  8. 笔记:Jersey REST 传输格式-XML

    XML类型是使用最广泛的数据类型,Jersey 对XML类型的数据处理,支持Java领域的两大标准,即JAXP(Java API for XML Processing,JSR-206)和JAXB(Ja ...

  9. SpringBoot中MongoDB注解概念及使用

    spring-data-mongodb主要有以下注解 @Id 主键,不可重复,自带索引,可以在定义的列名上标注,需要自己生成并维护不重复的约束.如果自己不设置@Id主键,mongo会自动生成一个唯一主 ...

  10. Slow HTTP Denial of Service Attack漏洞整改方法

    前期现场反馈系统扫描出Slow HTTP Denial of Service Attack漏洞,根据以往经验提供了更改建议,居然没有生效,深入研究了一下WebLogic下该漏洞的修复方法,现记录如下: ...