概述
在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 三层架构的更多相关文章

  1. java:(九大内置对象,计算服务器访问次数,filter过滤器,MVC框架,MVC和三层架构的关系)

    1.九大内置对象: <%@ page language="java" import="java.util.*" pageEncoding="UT ...

  2. java:Session(概述,三层架构实例(实现接口封装JDBC),Session实现简单购物车实例)

    1.Session概述: Session:在计算机中,尤其是在网络应用中,称为“会话控制”.Session 对象存储特定用户会话所需的属性及配置信息.这样,当用户在应用程序的 Web 页之间跳转时,存 ...

  3. Java Web 三层架构详解

    java 三层架构ssh 一个spring2.5+hibernate3.2+struts2.0组合框架,使用spring的 IoC来管理应用的 所有bean,包括struts2的 action,充分发 ...

  4. Java Web(八) MVC和三层架构

    今天终于认识到自己的渺小,想起了一句话,不努力机会来了你也抓不住,不要一直想一步登天,一直沉浸在白日梦的美好之中,一步一个脚印,有多大能力做多大的事情,走程序员的这条路,那么我就想去好公司,一切都以进 ...

  5. Java MVC和三层架构

    一.设计模式 Model 1 和Model 2 Model 1 前面学习了Servlet和Jsp,对这两个有个大概的认识,Servlet就是为了解决静态页面的问题,能够实现动态的页面,使维护,开发更加 ...

  6. Java学习笔记——三层架构

    Layer: UI层: user interface 用户接口层 Biz层:   service business login layer 业务逻辑层 DAO层:   Date Access Obje ...

  7. 【转载】 JAVA三层架构,持久层,业务层,表现层的理解

    JAVA三层架构,持久层,业务层,表现层的理解 转载:http://blog.csdn.net/ljf_study/article/details/64443653 SSH: Struts(表示层)+ ...

  8. MVC设计模式与Java Web经典三层架构

    MVC设计模式 MVC的概念 首先我们需要知道MVC模式并不是javaweb项目中独有的,MVC是一种软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(View)和控 ...

  9. Java单体应用 - 架构模式 - 01.三层架构

    原文地址:http://www.work100.net/training/monolithic-architecture-3level.html 更多教程:光束云 - 免费课程 三层架构 序号 文内章 ...

随机推荐

  1. WCF服务类的实例模式(本文为转载)

    WCF开发时如何选择正确的实例模式(InstanceMode)?   在使用WCF实例模型时,你是否思考过这几个的问题: ”WCF中的实例模式如何正确应用”? ”使用WCF中的实例模式有何原则可以遵循 ...

  2. tomcat+svn+maven+jenkins实现自动构建

    首先说明一个各软件的版本: tomcat:apache-tomcat-8.5.16.tar.gz maven:apache-maven-3.5.0-bin.tar.gz svn:subversion- ...

  3. docker使用Mesos

    https://github.com/PyreneGitHub/mesos_use/tree/master

  4. 20145310 《Java程序设计》第5周学习总结

    20145310 <Java程序设计>第5周学习总结 教材学习内容总结 本周主要进行第八章和第九章的学习. java中所有的错误都会打包为对象,可以try catch代表错误的对象后做一些 ...

  5. 20145331 《Java程序设计》第7周学习总结

    20145331 <Java程序设计>第7周学习总结 教材学习内容总结 第十二章 Lambda 1.Lambda定义:一个不用被绑定到一个标识符上,并且可能被调用的函数. 2.在只有Lam ...

  6. linux-android(任务处理)

    1.开辟任务内存 2.设置每个任务优先级 ,,

  7. 贝叶斯公式由浅入深大讲解—AI基础算法入门【转】

    本文转载自:https://www.cnblogs.com/zhoulujun/p/8893393.html 1 贝叶斯方法 长久以来,人们对一件事情发生或不发生的概率,只有固定的0和1,即要么发生, ...

  8. Graph_Master(连通分量_G_Trajan+Thought)

    Graph_Master~(连通分量) 题目大意:给出m条边(隧道,无向),每条边连接两个点(矿场).要在这些矿场中建设救援出口,防止矿场坍塌造成人员伤亡,问最少需要几个救援出口,以及对应方案数.(假 ...

  9. maven下载与配置环境变量

    1.打开maven官网下载 http://maven.apache.org/download.cgi 下载 解压(这里博主放在D盘下) 2.配置环境变量 验证是否配置成功 3.本地仓库配置

  10. python collections deque

    collections是python的高级容器类库,包含了dict.truple之外的常用容器. 下面介绍常用的deque 1. deque是双端队列,可以从两端塞元素进去,也可以从两端取元素. 2. ...