转:java c/s tomcat 三层架构
概述
在c/s结构的发展历程中,产生了两层c/s结构和三层c/s结构之分。在两层c/s结构中,在信息管理系统的管理上主要分为客户端和数据库服务器。
缺点有两个:
1)开销高昂。在两层c/s结构中,为了维护其通信以及在通信上解决的通信采用的技术复杂。造成费用很高。
2)客户端升级复杂。
在软件行业发展如此迅速的今天,业务变化复杂。而两层c/s结构的业务处理主要放置在客户端。因此,当业务变化时,需要升级客户端。也就是需要重新安装客户端。由于以上的的缺点,三层c/s结构应运而生。三层主要分为表现、功能、数据。从业应对业务的复杂变化。当业务出现变化时,只需要升级服务器。减少升级客户端应用程序。有以上的介绍可以知道,在采用c/s结构中,我们要考虑的问题是如何尽可能较少客户端和服务器的通信开销以及如何构建一个易扩展和能够应付业务变化的客户端。在往往的c/s结构的开发中,客户端是公认的自己动手开发。但是服务器,大部分人都停留在动手编写服务器的阶段。这样的费用极其高昂。因为重新开发一个服务器不是一天两天的能够完成。在这里,我的观点是采用开源的服务器作为服务器。
应用
前提条件,采用java语言开发。
把三层分为了客户端、业务处理服务器、数据库服务器。在这里主要讨论的是如何构建一个客户端和业务处理服务器。采用tomcat作为服务器。在客户端自己动手编写客户端。
在tomcat中,用servelet作为发布服务的功能。客户端和业务处理服务器之间的相互连接采用http协议连接请求。为了方便操作,在tomcat和客户端的通信中,主要内容通过对象序列化作为信息传输的内容。因此,在设计阶段需要定义好通信过程中的实体类。
下面是个例子:
现在,我们要构建一个短信查询系统。这个系统主要分为了三个部分组成。分别为短信查询服务器、查询服务器、数据库服务器。采用三层c/s结构的方式。短信查询服务器端作为客户端;查询服务器作为业务处理;数据库服务器作为数据处理。在查询服务器中采用tomcat作为服务器。
设计原则是尽可能较少通信量以及通信技术费用。
整个过程如下:
1)短信查询服务器收到 查询短信后,对短信实体进行对象序列化后,通过http协议发送请求给查询服务器。
2)查询服务器接受到请求后,接受信息,并且反对象序列化,获得其短信实体类。进行处理、查询。并且把查询信息生成一个短信对象。
并且进行对象序列化返回给短信查询服务器。
3)短信查询服务器接受到短息内容后进行反对象序列化。并且进行发送短信。
整个过程采用的是tomcat作为服务器。构建c/s结构。避开了传统的书写服务器的不足指出。
总结
在整个设想过程中,主要存在以下几个优点:
1)减少开发成本。在开源给我们带来一个好处就是免费。然而,一般情况下往往采用的是两层c/s结构或重新编写服务器构建三层c/s结构。这样的费用过于高昂。采用了tomcat作为服务器,或者其他性能更好的web服务器作为服务器,便能减少开发成本。同时采用http协议的发布和对象序列化较少通信开销。
2)加快开发速度。采用开源web服务器,可以避开了开发服务器的过程,减少了开发时间。同时servelet技术已经发展到成熟阶段。能够很好地加快开发速度。
3)在c/s中提高应对业务的变化能力。采用三层c/s结构,很好地应对了复杂的业务变化以及业务的扩展。
有以下几个缺点:
1)实体类的定义。在整个过程中,由于采用的是对象序列化技术,因此,在客户端和服务器之间需要采用同样的传输实体类。
2)实力类的过度依赖。在设计阶段,如果传输需要的实体定义不合理,则对系统的灵活性造成严重的影响。造成系统不能很好地扩展。
转:java c/s tomcat 三层架构的更多相关文章
- java:(九大内置对象,计算服务器访问次数,filter过滤器,MVC框架,MVC和三层架构的关系)
1.九大内置对象: <%@ page language="java" import="java.util.*" pageEncoding="UT ...
- java:Session(概述,三层架构实例(实现接口封装JDBC),Session实现简单购物车实例)
1.Session概述: Session:在计算机中,尤其是在网络应用中,称为“会话控制”.Session 对象存储特定用户会话所需的属性及配置信息.这样,当用户在应用程序的 Web 页之间跳转时,存 ...
- Java Web 三层架构详解
java 三层架构ssh 一个spring2.5+hibernate3.2+struts2.0组合框架,使用spring的 IoC来管理应用的 所有bean,包括struts2的 action,充分发 ...
- Java Web(八) MVC和三层架构
今天终于认识到自己的渺小,想起了一句话,不努力机会来了你也抓不住,不要一直想一步登天,一直沉浸在白日梦的美好之中,一步一个脚印,有多大能力做多大的事情,走程序员的这条路,那么我就想去好公司,一切都以进 ...
- Java MVC和三层架构
一.设计模式 Model 1 和Model 2 Model 1 前面学习了Servlet和Jsp,对这两个有个大概的认识,Servlet就是为了解决静态页面的问题,能够实现动态的页面,使维护,开发更加 ...
- Java学习笔记——三层架构
Layer: UI层: user interface 用户接口层 Biz层: service business login layer 业务逻辑层 DAO层: Date Access Obje ...
- 【转载】 JAVA三层架构,持久层,业务层,表现层的理解
JAVA三层架构,持久层,业务层,表现层的理解 转载:http://blog.csdn.net/ljf_study/article/details/64443653 SSH: Struts(表示层)+ ...
- MVC设计模式与Java Web经典三层架构
MVC设计模式 MVC的概念 首先我们需要知道MVC模式并不是javaweb项目中独有的,MVC是一种软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(View)和控 ...
- Java单体应用 - 架构模式 - 01.三层架构
原文地址:http://www.work100.net/training/monolithic-architecture-3level.html 更多教程:光束云 - 免费课程 三层架构 序号 文内章 ...
随机推荐
- asp.net操作GridView添删改查的两种方法 及 光棒效果
这部份小内容很想写下来了,因为是基础中的基础,但是近来用的比较少,又温习了一篇,发现有点陌生了,所以,还是写一下吧. 方法一:使用Gridview本身自带的事件处理,代码如下(注意:每次操作完都得重新 ...
- 自我管理--拖延 vs 心理
案例1:你在销售公司产品,需要更多客户,这时你收到一条短信,说对你们产品感兴趣,让你马上发送详细资料看看,语气颇为傲慢.你有点恼火,这个人一点都不客气,于是两小时后你才发送过去. 案例2:这个月的 ...
- 20145329《Java程序设计》第八周学习总结
教材学习内容总结 日志 1.java.util.logging包提供了日志功能相关类与接口. 2.使用日志的起点是Logger类,Longer类的构造函数标示为protected,不同包的类药取得Lo ...
- 《JAVA程序设计》第五次实验报告
20145333 实验五 Java网络编程及安全 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1453 指导教师:娄嘉鹏 实验日期:2016.05.06 18:30-21:3 ...
- char,short,int长度
数据类型的本质就是固定内存大小的别名 char:1byte short: 2byte int:4byte 其实变量也是对连续内存的别名,相当于这段内存的句柄.钩子
- caffe2+cuda+Ubuntu16.04(u盘安装)
安装caffe2 预先准备.安装gflags及autoconf及GLOG https://github.com/caffe2/caffe2/issues/1810 一.下载源代码通过网盘 https: ...
- AVL树 - 学习笔记
2017-08-29 14:35:55 writer:pprp AVL树就是带有平衡条件的二叉查找树.每个节点的左子树和右子树高度相差最多为1的二叉查找树 空树的高度定为-1 对树的修正称为旋转 对内 ...
- [小问题笔记(五)] 用SQL加密字符串(MD5、SHA1),顺便解决读取数据加密后不一样的问题
这里用到SQL Server内置的函数 HashBytes(). select HashBytes('MD5','bubu') select HashBytes('SHA1','bubu') 以MD5 ...
- poj 2229 Sumsets 完全背包求方案总数
Sumsets Description Farmer John commanded his cows to search for different sets of numbers that sum ...
- 推荐给开发者的11个PHP框架(转)
PHP框架对于Web开发者来说是非常有用的工具,它可以帮助使用者更快.更容易的完成项目.根据调查,PHP仍是Web开发中最受欢迎和最实用的平台之一.当谈及Web开发时,很多人依然会选择使用PHP框架, ...