转: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 更多教程:光束云 - 免费课程 三层架构 序号 文内章 ...
随机推荐
- 20145314郑凯杰 《Java程序设计》第1周学习总结
20145314郑凯杰 <Java程序设计>第1周学习总结 教材学习内容总结 跟着教材的顺序开始总结我学过的内容: 1.三大平台 JAVA SE ,JAVA EE,JAVA ME 从毕向东 ...
- STL学习笔记(不定期更新)
algorithm *1.sort() 用法:sort(数组名,名+长度(,cmp)); int cmp(T a,T b)//T是要排序的a,b的类型,也可以是结构体中任意成员变量 { return ...
- linux input输入子系统分析《四》:input子系统整体流程全面分析
1 input输入子系统整体流程 本节分析input子系统在内核中的实现,包括输入子系统(Input Core),事件处理层(Event Handler)和设备驱动层.由于上节代码讲解了设备 ...
- HAL编译问题
1 make:进入目录'/opt/FriendlyARM/tiny4412/android/android-4.1.2'make: *** 没有规则可以创建“out/target/product/ge ...
- 强大的jQuery选择器 平时用的太少了 下次要先来看看
- ArchLinux基本系统到XFCE4桌面搭建
Keep It Simple, Stupid 这是ArchLinux的哲学,更是一种人生哲学 好久没用linux了,这段时间因为一点点"破坏性"需求重新拾起linux用了一把 ...
- 爬虫之xpath
什么是XML XML 指可扩展标记语言(EXtensible Markup Language) XML 是一种标记语言,很类似 HTML XML 的设计宗旨是传输数据,而非显示数据 XML 的标签需要 ...
- spring junit4 测试
@Service @ContextConfiguration(locations = { "classpath:config/applicationContext.xml" }) ...
- Javascript 十移跳转页面
<srcipty> var t = 10; function openwin(){ t -= 1; if( t==0){ location.href='prototype.html'; } ...
- JDBC 插入大批量数据
时不时会有大量数据的插入操作,方式有多种,效率不同: 1. statement 2. prepareStatement 3. statement/prepareStatement + batch 4. ...