Web 技术体系概述 曹力
前言 什么是Web应用(Web Application) 使用网页浏览器在互联网或企业内部网上操作的应用软件。是一种以浏览器支持的语言(例如HTML、JavaScript、Java等编程语言)撰写的应用程式
前言 Web技术是用于构建Web应用的技术
前言 Web应用和技术的优势 跨平台(各平台都有浏览器,都使用通用标准如HTML/CSS/JavaScript)
不需要事先安装或定期升级等程序
Web技术的现状和前景 前言
前言 Google(98年成立,市值1899亿$) Facebook(04年成立,估值在2000亿$)
第一部分 架构视角
架构视角 服务器端 表现层(Presentation Layer) 业务逻辑层(Business Logical Layer) 数据持久层(Data Persistant Layer) 辅助系统 (Auxiliary  System)
表现层 将数据展示给用户 处理与用户的交互
表现层技术 负责内容的HTML(HyperText Markup Language)超文本标记语言
负责外观的CSS(Cascading Style Sheets)层叠样式表
负责行为的JavaScript
其他替代的表现层技术 Adobe Flash
Microsoft Silverlight
业务逻辑层 应用逻辑 应用框架 应用服务器 操作系统
操作系统 提供访问机器资源的统一接口,统一调度资源 Linux
FreeBSD
Windows 200X Server
应用服务器 为上层的应用框架提供基本的连接处理、调度
应用服务器 通用 IIS
Apache HTTPD
Lighttpd
nginx
Cherokee
应用服务器 Java领域 Apache Tomcat
Sun Glassfish
Redhat JBoss
Oracle Weblogic Server
etc...
应用服务器 脚本类的通常功能不全面,不能单独作为应用服务器,往往和通用服务器联用 Python CherryPy Ruby Mongrel

Web技术体系概述

Editor's Notes

  • #2 欢迎 这次演讲的主要目的是给大家展示Web应用开发的概貌,让大家从宏观上对Web开发有一些认识 独家原创,我大学时就希望能获得这样的信息,但是现在也没有看到类似的信息,所以整理了这样一份资料给大家。
  • #5 大家知道哪些Web应用吗? 知名的Web应用如Gmail,功能非常强大不输于桌面软件,而且能够在手机这样的平台上使用
  • #8 首先,介绍典型的Web应用的架构所涉及到的技术。 下面有很多名词,大家可能会听的头晕,只要了解一下自己感兴趣的领域、层次中的内容即可,以后需要还可以问我或者看网上搜
  • #9 典型的三层架构,辅助系统不是必须的
  • #12 这两个更注重多媒体(动画和流媒体)以及交互,更靠近桌面程序,而且Flash起初并非开放标准,SL更非开放。
  • #13 业务逻辑层又可以细分为这几个层次,我们最关心的只是最上面的应用逻辑部分
  • #15 通过应用服务器处理HTTP连接,可以控制一些底层的内容,如连接的超时,
  • #19 比如统一的数据访问接口、模板的调用
  • #20 各种各样的应用框架层出不穷 各种框架都有自己的理念,解决自己的适用范围内问题。 所以大家可以多了解一些框架,将来遇到各种问题能灵活处理
  • #23 应用框架有时候作为应用服务器的一个插件,有时候作为应用服务器的一个通讯组件,应用框架接受哪些请求可以由应用服务器来控制和调度。通过分离这2者,应用服务器的开发人员可以单独优化服务器提高处理连接的性能,也不管后面的应用框架是使用何种语言编写
  • #24 有了现成的应用框架后,我们就可以将绝大部分精力,放在我们最关心的业务层面上了,这也是为何更青睐PHP/Python/Ruby等脚本的缘故,因为这些脚本语言可以让我们专注于所解决的问题,如果是使用C/C++,我们还要去处理像指针、内存分配等问题。
  • #25 广义上来说数据持久层就是个数据库,但并不一定是我们常说的关系型数据库
  • #26 应用最为广泛,理论也很成熟 他们基本都支持标准SQL+一些自己的扩展,有很多相通的功能 支持复杂的事务等等。 支持ACID(atomicity, consistency, isolation, durability)
  • #27 非关系型数据库近年来又热门起来了,虽然它没有关系型数据库那么多的功能,但是也很适合逻辑简单的业务,而且更容易进行规模上的扩张,构建分布式系统更方便,一般使用BASE (basically available, soft state, eventually consistent)。事务等功能放到业务逻辑层处理。 分布式系统中的CAP原理 Consistency. The client perceives that a set of operations has occurred all at once. Availability. Every operation must terminate in an intended response. Partition tolerance. Operations will complete, even if individual components are unavailable. Twitter计划迁移数据库到Cassandra,Digg已经在转换数据到Cassandra
  • #28 无法很简单地归于三层架构中的某一层,而且通常是作为服务器端的支撑服务在运行。
  • #30 简要说明,省略了很多东西,可能比较乱 为何选择这些组件 还有哪些可以替换的组件
  • #32 Web兴趣小组