Web应用工作方式

内容在发送到浏览器之前由Web站点动态生成
基于浏览器/服务器模式(B/S)
浏览器
Microsoft Internet Explorer, Netscape Navigator, Safari
服务器

  • Web Server

如MS IIS/IBM Http Server/Apache

  • Web Application Server

如 IBM WebSphere Application Server

访问Internet的基本机制

客户通过指定URL地址,向位于特定位置的计算机提交文件访问请求
存储请求文件的计算机称为服务器
服务器为向其发起文件服务请求的任何客户提供服务
服务器必须一直运行

Web应用结构组成

Web服务器
是安装在Web服务器计算机上的一个软件包
负责接收用户请求并响应之
HTTP
基于请求/应答模式
是一个支持web浏览器与Web应用之间通信的应用层协议
无状态、面向对象

HTTP会话处理

当用户在浏览器地址栏输入URL时
客户浏览器建立到服务器的TCP/IP连接
浏览器向服务器发送服务请求
服务器发送应答信息给客户
服务器关闭连接
注意

请求页面发送给客户后,服务器通常主动关闭连接,而不管该客户是否会继续向该服务器发送服务请求

工业界对Web应用的关注

Web技术变得越来越重要,Web应用成为未来的标准应用模式
在客户端,IE占有主流地位
在服务器端,J2EE和.NET成为两个主流且相互竞争的Web服务器架构技术

企业级应用开发面临的问题

面向Web环境
分布式、可移植、可装配
旧系统集成支持
满足企业计算要求

  • 一致性
  • 事务性
  • 安全性

要有好的特性

  • 可伸缩
  • 可扩展
  • 易维护

“企业”是指一个为了实现某个共同目的而在一起工作的人或实体的组织
这些组织的形式和大小并不限定,有大有小、是盈利性的或非营利性的、可能是政府机关也可能是非政府机构
一般使用术语“企业”时,极有可能指的就是大型营利性组织,如Intel、GE、Wal-Mart、摩根银行或eBay等等
企业通常都有一些共同的需求,例如信息共享与处理、资产管理与跟踪、资源规划、客户机用户管理、商业机密保护等等
术语“企业软件”就是能够支持企业共同需求的这类软件的总称

企业软件与中间件
在软件开发过程中,出现面向对象开发软件的方法后,可以实现代码重用,但只能部分实现,原因之一是对象都细粒度化,造成对象间紧密耦合状态,从而使得大范围的重用变得很困难
解决途径——设计软件组件
与对象不同,软件组件是在更高的抽象级别中设计的,可以提供一个完整的功能或服务
组件间的耦合更为松散。利用组件的接口,可以将组件迅速组合在一起构建更大的应用程序,这样所用的成本也比较合算

J2EE的优势

提供一套完整的解决所有这些问题的框架方案
提供分布式、可移植组件的框架
为组件与应用服务器提供标准API
简化服务器端中间层组件的设计
对开发者及用户而言
更短的开发时间
可重用组件
JSP(Java Server Pages)
EJB(Enterprise JavaBeans)
更简化的连接
XML,JDBC,RMI-IIOP

客户/服务器结构

“胖”客户端
用户界面和程序逻辑绑在一起,代码难以重用
服务器的数据库必须同每一个活动的客户保持连接,消耗大量的运算资源,随着客户数目的增加性能不断下降,且存在死锁及崩溃的可能
数据模型“紧耦合”在每一客户端,数据库结构改变将导致全体客户端改变,不利于更新和维护
客户端应用程序越来越大,对使用者的要求越来越高

浏览器/服务器模式

WWW浏览方式带来的变化
“Browser-based” 的客户端与 “Internetworking”(网际互连)
计算方式向服务器端的集中转化
客户端
业务数据模型与UI分开,更“瘦”
业务逻辑在中间层
通过连接池,多线程可以处理多客户端
早期应用编程困难且性能比较差
CGI(C/C++, VB, Perl等等),ISAPI ,NSAPI

N层计算模式

从逻辑角度看,系统分成客户端、Web服务器、应用服务器、数据库服务器四层
从物理角度看,应用服务器可以视用户并发数从1到N台进行扩充,以保证客户端用户的响应要求

每一层可以被单独改变,而无需其它层的改变
降低部署与维护的开销,提高灵活性、可伸缩性
引入“瘦客户端”,计算被集中至服务器端,使性能提高成为可能

J2EE的三层结构部件视图

N层计算模型特征分析

优点
应用程序各部分松耦合,各部分的更新相互独立
业务逻辑集中放在服务器上由所有用户共享,使得系统的维护和更新变得简单,也更安全
弱化客户端,计算被集中至服务器端,使性能提高成为可能
数据库不再和每一个活动的用户保持一个连接,而是由应用程序组件负责与数据库打交道,降低数据库服务器的负担,提高了性能
缺点
对企业级应用开发人员要求太高:需熟悉分布式协议(IIOP、IIOPS、HTTP、HTTPS、ISAPI、NSAPI),进行一致性事务处理,负载平衡,考虑安全性……

J2EE的四层模型描述

J2EE规范
一个多层次的分布式应用模型和一系列开发技术规范
简化和加速企业级应用开发
J2EE Blue Prints
是一组集成的企业API库软件和开发工具
参考实现
快速原型化J2EE应用
提供对J2EE平台的操作定义
兼容性测试组件
测试J2EE平台产品是否与J2EE规范兼容
WebSphere Application Server 5.0与J2EE 1.3兼容
WebSphere Application Server 6.0与J2EE 1.4兼容

客户层(Client Tier)
通常是一台桌面计算机,客户可以使用GUI与应用程序进行交互
中间层(Middle Tier)
由表示层和业务层组成
通常由一个或者多个Web服务器和应用服务器组成
应用服务器处理客户的请求,执行复杂的表示形式和业务逻辑,然后将结果返回给客户层
企业信息系统层(Enterprise Information System,EIS)
也称为数据层
是驻留业务数据的地方,在处理业务逻辑时,由中间层访问EIS层

J2EE应用程序构成

J2EE技术提供了一个基于组件的方法来设计、开发、装配和部署企业级应用程序
一个J2EE应用程序可能包含一个或多个EJB组件、Web组件,或应用程序客户端组件
组件(component)是一个应用程序级的软件单元
J2EE组件
客户端组件
客户端应用程序和Applet
服务器端Web组件
Java Servlet和JSP
服务器端的商业组件
Enterprise JavaBeans

Web客户端 vs. Applet

Web客户端
瘦客户
包括Web组件生成的动态页面及服务器返回的页面
Applet
用Java编写的小的客户端程序,嵌入在Web浏览器
两者比较
易用性
Web表现方式丰富、形式多样; Applet交互性强
性能
Web页面更新需要经过servlet从服务器获取;Applet直接访问数据库,可保留静态数据,提高了效率
可维护性和可扩展性
Web易于定制界面;Swing技术开发Applet较为复杂
安全性
Applet需要配置访问策略来控制对本地资源的访问;而Web可通过HTTP来控制

J2EE容器

运行在服务器上的软件实体,为J2EE组件提供执行环境
通过容器,J2EE体系结构能在开发和部署间提供无关性,并在不同类型中间层服务器间提供可移植性
依赖于容器的类型,还可访问一些或全部J2EE API
每个Web组件、EJB或者应用程序客户端组件都必须在执行前被装配到一个J2EE应用程序中,并部署到相应容器

设置并定制由J2EE服务器提供的底层支持
J2EE安全模型:配置Web组件或Enterprise Bean,支持授权访问
J2EE事务管理:让用户指定组成一个事务中所有方法之间的关系,并将这些方法看成一个整体
JNDI寻址服务:为企业内的多重名字和目录服务提供一个统一的接口,以便访问名字和目录服务
J2EE远程连接:管理客户端与EJB间的交互
生存周期管理:管理EJB的创建/删除
数据库连接池:提高数据库访问效率

J2EE与中间件技术相关推荐

  1. J2EE与.NET技术架构的比较

    ●技术与应用 J2EE与.NET技术架构的比较 岳福香 (电信科学技术第十研究所  西安  710061) 摘  要:从体系架构.移植性.性能.安全性.稳定性.可扩展性.成熟度.第三方厂商支持.开源支 ...

  2. java中间件技术有哪些?

    java中间件技术有:1.tomcat:2.Weblogic:3.JBOSS:4.Coldfusion:5.Websphere:6.GlassFish. 本文操作环境:宏基S40-51.HBuilde ...

  3. 阿里云中间件技术 促进互联网高速发展

    本文讲的是阿里云中间件技术 促进互联网高速发展[IT168 资讯]从电商巨头向科技巨头华丽转身的阿里巴巴,正在凭借技术创新受到越来越多的海外关注.春节期间,<麻省理工科技评论>(MIT T ...

  4. 数据计算中间件技术综述

    传统企业大数据架构的问题 上图是大家都很熟悉的基于 Hadoop 体系的开源大数据架构图.在这个架构中,大致可以分成三层.最下一层是数据采集,通常会采用 kafka 或者 Flume 将 web 日志 ...

  5. 【中间件技术】第二部分 CORBA规范与中间件(4) 编写对象接口

    文章目录 4.1 概述 4.1.1 接口与实现的分离 4.1.2 接口定义语言 4.2 `OMG IDL` 的语法与语义 4.2.1 词法规则 4.2.2 模块的声明 4.2.3 类型的声明 1. 基 ...

  6. SUN J2EE企业应用技术学习计划

    SUN J2EE企业应用技术学习计划 由于J2EE技术众多,单纯的学技术是不可能的.从某方面讲,J2EE技术的学习,已经延伸到合理对一个软件项目框架结构的构建上了.所以,一切技术都服务于企业需求.只有 ...

  7. 阿里专家倪超:支撑海量用户的阿里中间件技术

    大流量高并发互联网应用实践在线峰会官网:https://yq.aliyun.com/activity/112 峰会统一报名链接:http://yq.aliyun.com/webinar/join/49 ...

  8. java中间件源码_《Java中间件技术及其应用开发》PDF下载

    资源名称:<Java中间件技术及其应用开发>PDF 下载 < 内容简介······ 本书使用丰富的案例介绍了使用Java技术进行中间件编程的方法及技巧,包括JSP.Java serV ...

  9. java 中间件 pdf_Java中间件技术及其应用开发 PDF扫描版[51MB]

    Java中间件技术及其应用开发 内容提要: 本书使用丰富的案例介绍了使用Java技术进行中间件编程的方法及技巧,包括JSP.JavaServlet.JDBC数据库开发.使用JavaMail开发邮件应用 ...

  10. 【中间件技术】第二部分 CORBA规范与中间件(1) CORBA基本原理

    文章目录 2.1 对象管理体系结构 2.1.1 对象管理组织与其主要规范 2.1.2 对象管理体系结构 2.1.2.1 `OMA` 参考模型 1. 对象请求代理 2. 对象服务 3. 公共设施 4. ...

最新文章

  1. java debugtrace_Debug与Trace的区别
  2. 编写纳新网站后端的相关知识总结
  3. C++拷贝构造函数详解
  4. GitHub上值得关注的iOS开源项目
  5. 计算机机房用户不规则行为,网络及网管机房管理理论练习
  6. 从能用到好用,GIS信创如何做到行稳致远?
  7. 商桥物流完成达晨创投领投2.5亿元A+轮融资,创建立体化零担物流网络
  8. 华为S5024p交换机配端口镜像
  9. 谁说国产操作系统没救了? | 人物志
  10. PHP读取Excel和导出数据至Excel
  11. 阿里maven私服配置和作品上传
  12. excel如何选中空单元格并计算总计、平均值、率
  13. cab文件介绍及制作方法 1
  14. 终极解决电脑缺失dll,应用程序无法正常启动0xc000007b
  15. 原创科幻短篇《高考》
  16. SQL语言增、删、改、查功能练习
  17. 【HTML5期末大作业】制作一个简单HTML我的班级网页(HTML+CSS+JS
  18. 最火爆的人工智能学习基础课程(2021人工智能视觉训练营)
  19. 科普类:什么是量子霸权?
  20. C语言二维数组的大小的获取

热门文章

  1. 集团企业信息化规划和实施研究
  2. android tabhost用法详解,android Tabhost部件详解
  3. ad采样的符号位_AD采样后数据如何在FPGA中转化为有符号数
  4. 电子商业汇票知识问答题
  5. jdk、jre、jvm区别
  6. 艾宾浩斯遗忘曲线复习计划表Excel下载
  7. python cpk计算器_CPK公式
  8. HTML 参考手册- (HTML5 标准)
  9. Halcon教程九:把Halcon程序放到C#程序里
  10. linux livecd 挂载硬盘,网上的Ubuntu LiveCD硬盘安装方法