精华内容
参与话题
问答
  • 自己动手——快速搭建前后端分离应用服务器

    万次阅读 多人点赞 2017-05-08 11:33:17
    Motivation 我写这套帖子的目的,是在自己学会、实现...我在学习编写自己的Android应用程序服务器的时候遇到过以下的问题: 1.我需要准备什么? 2.我该选择哪一套实现方案? …… 这些问题的搜索和查证都...


    Motivation

    我写这系列博文的目的,是在自己学会、实现并熟练掌握之后,想帮助正在学习的人门,通过将自己的经验传递出去,让你们少走一点弯路,节省大量用在查询和翻阅资料上的时间。

    我在学习编写自己的服务器程序的时候遇到过以下的问题:
    1.我需要准备什么?
    2.我该选择哪一套实现方案?

    这些问题的搜索和查证都需要占用大量的时间,以至于初学者们手头的项目可能长达几个月没有进展,而我会一一为大家解决这些问题,你只需要花费看这一篇博文的时间。


    好了,言归正传:

    一、后端程序如何实现对多端一致?

    当前的后端开发,只提供统一的数据接口,各端发送统一格式的请求数据到后端,后端发送格式统一的响应数据回客户端。需要注意的是,现在后端程序在web端不再控制前端页面的跳转。 根据响应数据,各端自行控制页面跳转或弹出提示等。


    二、我需要准备什么?

    硬件要求:

    一台开发机和一台云服务器,当前各大云服务提供商的云服务器产品十分便宜,甚至有大学生优惠。每月不超过10块,所以推荐租一台Linux系统的云服务器,省去了很多麻烦(后续会有帖子介绍流程)。

    软件要求:

    安装JDK并配置完环境变量 (本系列博文统一采用JDK 1.8)
    还有一些软件是需要用到的,到了具体的章节我们再引入。

    知识储备要求:

    1.基础Java知识和基础Java编程能力:

    也不需要对Java有多么深的理解,但是Java面向对象的三大要素——封装、继承、多态——至少要理解得清清楚楚!如果连静态方法和非静态方法都搞不清楚,那还怎么写程序?!

    2.计算机网络基础知识:

    对以下概念有较清晰的认识即可:
    ①内网与外网;②局域网;③IP地址;④端口号;⑤Http请求;

    3.数据库相关知识:

    时间充分的话还是强烈建议系统学习,因为没有学好可能以后写出的查询语句效率低下还不知道怎么优化。时间紧迫的话,会常用的建库、建表、创建字段、增删改查即可。


    三、我该选择哪一套方案?

    在具有了一台云服务器这一硬件条件后,我们的服务器仅仅有了一个容器,真正能让它工作起来的是一套软件相关的东西。
    在本系列博文中,我们用:MySQL + Java Web + Tomcat来实现我们的服务器。

    其中:
    ①MySQL是开源的数据库软件;
    ②Java Web是遵循Java语言风格的服务器应用程序组件(即客户端发来的请求的应答者);
    ③Tomcat是开源的服务器软件(作为Java Web应用程序的容器)。


    四、开发部署流程

    1. 在Windows、Mac等有UI界面的机器上做开发。
    2. 开发完成后,将工程打包成.jar或.war文件,称为jar包或war包。
    3. 将jar包或war包上传到服务器上进行解包——称作“部署”。

    由于开发时需要做一定的测试,每次测试都部署一遍会消耗大量时间和精力。因此,开发机上也需要装MySQL数据库和Tomcat服务器容器。


    五、客户端发送Http请求和接收到应答的流程

    我来描述一下从各客户端发出一趟请求到收到应答的过程(没图,但是我会说到各种图往往笼统和忽略的部分):

    1.客户端向指定IP地址(或域名)的服务器发出一条Http请求(例如包含账号和密码的登录请求);

    2.服务器容器Tomcat收到Http请求,寻找相应Java Web编写的服务器应用程序,把请求分派给它来处理;

    3.Java Web编写的服务器应用程序找到处理请求相应的Servlet(Java Web项目的一部分,后面会讲)实例,把请求分配给它处理;

    4.Servlet根据请求来执行相应的操作(如调用数据库然后验证登录是否成功),将结果添加到应答中,发回客户端;

    5.客户端接收到应答,从应答中解析出结果(如登录是否成功),然后根据结果执行相应的逻辑(如跳转页面或提示账号密码不正确等)。


    六、基础实现

    实现的部分,我分到了多篇博文中去讲各个部分的实现及其衔接:

    1. 构建开发环境——安装集成开发工具包XAMPP

    2. 调试入门——如何快速定位并修复Bug

    3. Web开发入门——创建Java Web工程

    4. 部署和测试


    七、初级进阶

    到这里,我们实现了基础的请求/响应流程,但要实现完善的后端服务,还需要学习一些进阶知识:

    1. 数据管理——创建并通过Java连接MySQL数据库

    2. 数据传输——JSONObject与JSONArray

    3. Servlet请求调度器——DispatcherServlet

    4. Q&A


    八、中级进阶

    学习了前面的这些知识,并做了一些实践,实际上学习成本不高,但是实现成本比较高。这些都是10多年前开发者们实现Java Web后端程序的方法和过程。

    看到这里你可能有点失落:“学了半天,居然是10多年前的老方法”。我自然会讲现在的新技术,但前面的过程也是必不可少的,理由如下:

    • 一步一步进阶学习的过程比较平稳,不至于被新技术的复杂知识体系吓住。
    • 老技术学习成本低,但实现成本高,适合快速学习。
    • 进阶学习的过程可以使我们知道,老技术为何被放弃,新技术的优越性有哪些。

    总之,技术的革新都是为了不断地解放生产力,让我们用更少的代码实现更多的功能,热爱学习和实现的你,耐心地往下看吧。

    1. 依赖管理进阶——Maven学习笔记

    2. 初识框架——Spring学习笔记


    九、高级进阶

    这个部分,我是想写SpringBoot的,记得当时进阶学习也就用了两天,因此从Spring Framework进阶到SpringBoot是很快的。Spring Framework中我们扔掉了web.xml,Spring Boot中我们连配置文件也不要了。写后端服务更加便捷。

    敬请期待
    ——2020.11.13


    更新日志

    这篇综述和索引的博文我就写到这了,去写几个分帖了,写出来之后我会第一时间在这里挂上链接,敬请期待。
    我的这一系列博文应该会在两周左右全部写完,如果是有紧急的问题需要帮助的朋友,直接回帖或者给我发邮件,在时间充足和我会的情况下帮你解决。
    ——2017.05.08

    实在是有些忙,今天忙里偷闲一天,写完了内网穿透的博文,已经在上面挂上了链接。我仔细想了一下,上面第二步可能需要三篇博文分别来讲服务器、数据库集成开发工具包的介绍,Java Web的编写和Tomcat的使用,之前吹牛说两周写完可能做不到了
    ——2017.05.12

    今早写了服务器、数据库集成开发工具包这篇文章,已经在上面挂上了链接。
    ——2017.05.13

    今天开始写Java Web的编写,写了之后才发现,这个确实挺麻烦的,各种细节需要各种截图,已经在上面挂上了链接,没写完,可以先看看前面的准备部分。
    ——2017.05.15

    今晚终于抽空写完了Java Web的编写, 诸君可以照葫芦画瓢,写自己的服务器程序了,博文有点长,进下心来慢慢看吧,绝对有收获!今天写着写着,又想到我好像没有规划MySQL建数据库的部分,就在索引中添上了。
    ——2017.05.17

    今天写完了MySQL数据库的建立,已经在上面挂上了链接。
    ——2017.05.18

    今天把Tomcat的一些使用方法写完了,写着写着突然忘了本来准备的内容了,略尴尬。
    ——2017.05.19

    今天终于把原计划的这最后一篇文章写完了,已经在上面挂上了链接。 原本计划两周写完的,这都拖了将近一个多月了。但是最近真的很忙,没办法。

    近期如果有空,我会写一篇番外文章,讲一点关于JSONObject和JSONArray的东西,应该会比较短,但是会很有用,尽请期待吧!
    ——2017.07.01

    根据各位开发者看完这一系列博文之后在开发过程中的反馈,今天对《内网穿透》、《Tomcat》和《Java Web》等三帖做了一些更新。
    ——2018.03.11

    时隔将近一年,我终于把承诺的JSONObject和JSONArray的部分写出来了,作为进阶使用的番外部分,已在上面挂上了链接。

    另外,今天写的尽兴的时候,想起了Servlet分配器这个东西,作为进阶内容的话还是很有意义与价值的。这次不会再跳票那么长时间了,一两天内完成,尽情期待!
    ——2018.04.12

    Servlet请求分派器的博文已经写完了,在上面挂上了链接。
    ——2018.04.14

    鉴于做整体的系统测试的时候,很难定位Bug出在了客户端还是服务端,我将《Tomcat的一些使用方法》这篇博文改名为《服务器端的一些测试方法》,并在里面添加了分享3。根据分享3,大家可以先写服务端,不写客户端,服务端测试正确了再开始写客户端,这样做的好处就是,我们可以更加精准的做到Bug定位了。
    ——2018.05.05

    今天做了一个重要的调整,即《MySQL》和《JavaWeb》两篇博文的次序,如果还是按我写它们时的顺序放在索引里,会造成你们逻辑的颠倒,因此,调了过来。
    ——2018.05.11

    根据近期自己在开发中的亲身经历和大家的反馈,写了一篇收集由PC和真实服务器环境的差异造成的Bug的博文,不光收集问题,也写了这些问题的解决方法。 大家在服务端出现Bug的时候可以点进去看看,有可能就对号入座,解决问题了,同时也鼓励各位开发者同仁,贡献出你们在开发过程中遇到的,各种各样的问题及其解决方案。
    ——2018.05.14

    为了便于索引和阅读,准备在所有的博文上加上目录,尤其是篇幅比较长的博文。
    ——2018.12.27

    近期发现有不止一个人问,non-static method 'XXX' can not be referenced from a static context这个异常怎么解决,怎样把XXX函数改成静态的?这就相当过分了。我也反省了一下是不是我这个教程写得太傻瓜式操作了。最后还是觉得,好东西也要看谁拿着。我再清清楚楚地声明一下:我这篇博文不是针对一点基础知识都没有的小白的,缺什么基础知识就去学完再来搞实践!!!
    ——2019.04.16

    今天对博文的内容和格式做了部分修改,同时根据近期开发和部署上遇到的一些问题,写了一篇新的博文用于记录软件版本差异造成的异常及其解决方案。
    ——2019.05.08

    我时常觉得自己比较后知后觉,却又很庆幸,虽然晚一些,但最终还是“觉”了。直到不久前才学到了所谓“前后端分离”的真正内涵和实现方法。由此,已经不需要为任何一种客户端来单独开发后端模块了,有了web端的前后端分离,后端程序对任何客户端都是通用的。 因此,我决定再次修改着系列博文,从标题到内容。
    ——2020.11.04


    后记

    几年前,我在自己辛苦求索,花了近半个月把这一套东西弄通之后,写下了这一系列博文。目的在于给和我处境类似的初学者们一些指引,让大家少走一些弯路。

    如果发现了代码或者理论方面的错误,请直接回复,我会尽快修改博文,避免误导了大家。

    如果在实现中出现了自己难以解决的问题,我的邮箱是implementist@outlook.com

    展开全文
  • web服务器、应用服务器和常见的服务器概念

    千次阅读 多人点赞 2020-04-17 16:36:01
    什么是web服务器,什么是应用服务器? 浏览器的编译原理是什么? http的头文件为何要这样配置? Nginx,Apache等为何要这样操作? 不同的服务器软件有什么作用? 而网上关于http的实战讲解一般都是以操作为主,涉及...

    http协议解析–绪篇

    在做开发的过程中,总是能感觉到自己对http相关的各种概念模糊不清。

    什么是web服务器,什么是应用服务器?

    浏览器的编译原理是什么?

    http的头文件为何要这样配置?

    Nginx,Apache等为何要这样操作?

    不同的服务器软件有什么作用?

    而网上关于http的实战讲解一般都是以操作为主,涉及到原理的部分大多模糊不清,自己又很少花时间去系统的学习http协议相关的内容,大多数时候都是照着配一配就行了,所以明明写了挺多代码了,对于http还是知之甚少。所以,决定写一个专题,留作笔记也以此来督促自己深入的看看http,后续有什么地方说错了,也欢迎大家指出。
    在这里插入图片描述


    热点问题

    在之前的学习中,曾经困扰我许久的问题便是:web服务器,http服务器,服务器软件,网站后台,应用服务器这些都有什么区别,与Apache,Nginx究竟是什么关系,Tomcat又是什么?

    在绪篇中首先便先讲一下这些容易混淆的概念性问题。

    web服务器

    一般我们把发出http请求的一方称作请求分,比如浏览器就是http的请求方,那么应答方就是我们常说的web服务器(web Server)。

    应该说web服务器在某些时候是一种很广泛的概念,比如在web代表一项应用软件是,web服务器有时候会被理解为软化的后台,也正是因为这样,很多人会混淆这个概念。

    在硬件层面上,web服务器可以简单的理解为另一台性能更好的主机。不过在现实生活中,不仅仅只是一台主机,而是利用反向代理、负载均衡等等技术组成的一大群机房。

    在软件层面上指的是提供web服务的应用程序。我的理解就是响应http请求,返回超文本文件等数据,或者把请求转发给后面的Tomcat、node.js等应用服务器。因此,web服务器是静态服务器。

    常见的web服务器有Apache,Nginx,Tomcat等,其实Tomcat更多的做为应用服务器使用,一般不会直接用Tomcat做web服务器。

    在这里插入图片描述

    在这里插入图片描述
    当然目前Nginx等也经常用来做反向代理服务器和负载均衡等

    http服务器

    http服务器就是指使用http协议传输资源提供服务,由于应用层通讯协议主要就是http协议,所以在普遍情况下,web服务器==http服务器

    网站后台

    可以提供数据接口等服务的应用层软件。常说的就是应用的后端,进行数据和逻辑处理。

    应用服务器

    应用程序服务器通过各种协议把商业逻辑暴露给客户端应用程序。能实现动态网页技术,也称之为应用容器,web容器等

    应用服务器不等于网站后台,但是在应用服务器上可以部署网站后台。通常,Web服务器会有插件来支持脚本语言,比如PHP、ASP等,也可以生成动态的HTTP内容。那为什么要使用应用服务器呢?

    应用服务器可以更好的相应超大用户量的访问,并杜绝sql注入等安全问题,提供动态功能的支持。

    常见的应用服务器有,Tomcat、Jetty、Undertow等。应用服务器也包含http服务

    在这里插入图片描述

    但是一般不会做为http服务器也就是web服务器使用,经常是搭配使用

    浏览器>>>>>>web服务器>>>>>应用服务器>>>>>>数据库

    在这里插入图片描述

    总结

    1. 服务器分静态服务器和动态服务器,web服务器是静态服务器,应用服务器是动态服务器
    2. 应用服务器也可以处理静态需求,但是由于没有web服务器那么专业,所以一般搭配使用,常见如(Nginx+Tomcat)
    3. Apache,Nginx等是静态服务器,是web服务器,也是web服务器软件
    4. tomcat是动态服务器,也可以称之为web容器、应用容器等
    5. 网站后台不是web服务器,但是当web做为一种应用来表达的时候,web服务器可能在口头上会被理解为后台。

    下一篇将正式开始进入http协议的学习

    展开全文
  • web服务器和应用服务器的区别与分析

    万次阅读 多人点赞 2018-07-10 15:28:21
    一、Apache应用服务器 简介: Apache是世界使用排名第一的Web服务器。它可以运行在几乎所有广泛使用的计算机平台上。源于NCSAhttpd服务器,经过多次修改,成为世界上最流行的Web服务器软件之一。Apache取自“a ...

    web服务器和应用服务器

    前导:要想了解web服务器和应用服务器,必须要了解什么是web服务器、什么是应用服务器,以及二者之间的区别和联系

    web服务器(Web Server)
       理解WEB服务器,首先你要理解什么是WEB?
       WEB你可以简单理解为你所看到的HTML页面就是WEB的数据元素,处理这些数据元素的应用软件就叫WEB服务器,如apache、IIS。 WEB服务器与客户端打交道,它要处理的主要信息有:session、request、response、HTML等
       Web服务器可以解析(handles)HTTP协议。当Web服务器接收到一个HTTP请求(request),会返回一个HTTP响应(response),例如送回一个HTML页面。为了处理一个请求(request),Web服务器可以响应(response)一个静态页面或图片,进行页面跳转(redirect),或者把动态响应(dynamic response)的产生委托(delegate)给一些其它的程序例如CGI脚本,JSP(JavaServer Pages)脚本,servlets,ASP(Active Server Pages)脚本,服务器端(server-side)JavaScript,或者一些其它的服务器端(server-side)技术。无论它们(译者注:脚本)的目的如何,这些服务器端(server-side)的程序通常产生一个HTML的响应(response)来让浏览器可以浏览。
       要知道,Web服务器的代理模型(delegation model)非常简单。当一个请求(request)被送到Web服务器里来时,它只单纯的把请求(request)传递给可以很好的处理请求(request)的程序(译者注:服务器端脚本)。Web服务器仅仅提供一个可以执行服务器端(server-side)程序和返回(程序所产生的)响应(response)的环境,而不会超出职能范围。服务器端(server-side)程序通常具有事务处理(transaction processing),数据库连接(database connectivity)和消息(messaging)等功能
       虽然Web服务器不支持事务处理或数据库连接池,但它可以配置(employ)各种策略(strategies)来实现容错性(fault tolerance)和可扩展性(scalability),例如负载平衡(load balancing),缓冲(caching)。集群特征(clustering—features)经常被误认为仅仅是应用程序服务器专有的特征。

    应用服务器:
       应用服务器,如JSP,处理的是非常规性WEB页面(JSP文件),它动态生成WEB页面,生成的WEB页面在发送给客户端(实际上当应用服务器处理完一个JSP请求并完成JSP生成HTML后它的任务就结束了,其余的就是WEB处理的过程了)
       根据定义,作为应用程序服务器,它通过各种协议,可以包括HTTP,把商业逻辑暴露给(expose)客户端应用程序。Web服务器主要是处理向 浏览器发送HTML以供浏览,而应用程序服务器提供访问商业逻辑的途径以供客户端应用程序使用。应用程序使用此商业逻辑就像你调用对象的一个方法(或过程 语言中的一个函数)一样。
       应用程序服务器的客户端(包含有图形用户界面(GUI)的)可能会运行在一台PC、一个Web服务器或者甚至 是其它的应用程序服务器上。在应用程序服务器与其客户端之间来回穿梭(traveling)的信息不仅仅局限于简单的显示标记。相反,这种信息就是程序逻 辑(program logic)。 正是由于这种逻辑取得了(takes)数据和方法调用(calls)的形式而不是静态HTML,所以客户端才可以随心所欲的使用这种被暴露的商业逻辑。
       在大多数情形下,应用程序服务器是通过组件(component)的应用程序接口(API)把商业逻辑暴露(expose)(给客户端应用程序)的,例 如基于J2EE(Java 2 Platform, Enterprise Edition)应用程序服务器的EJB(Enterprise JavaBean)组件模型。此外,应用程序服务器可以管理自己的资源,例如看大门的工作(gate-keeping duties)包括安全(security),事务处理(transaction processing),资源池(resource pooling), 和消息(messaging)。就象Web服务器一样,应用程序服务器配置了多种可扩展(scalability)和容错(fault tolerance)技术。

    简而言之,应用服务器处理业务逻辑,web服务器则主要是让客户可以通过浏览器进行访问,处理HTML文件,web服务器通常比应用服务器简单。
    WEB服务器:Apache、IIS、Nginx(也是反向代理服务器)
    应用服务器:Tomcat、Weblogic、Jboss


    一 web服务器

    1.Apache服务器
       Apache是世界使用排名第一的Web服务器。它可以运行在几乎所有广泛使用的计算机平台上。源于NCSAhttpd服务器,经过多次修改,成为世界上最流行的Web服务器软件之一。Apache取自“a patchy server”的读音,意思是充满补丁的服务器,Apache有多种产品,可以支持SSL技术,支持多个虚拟主机。Apache是以进程为基础的结构,进程要比线程消耗更多的系统开支,不太适合于多处理器环境,因此,在一个Apache Web站点扩容时,通常是增加服务器或扩充群集节点而不是增加处理器。
    Apache web服务器软件拥有以下特性:
    1、支持最新的HTTP/1.1通信协议
    2、拥有简单而强有力的基于文件的配置过程
    3、支持通用网关接口
    4、支持基于IP和基于域名的虚拟主机
    5、支持多种方式的HTTP认证
    6、集成Perl处理模块
    7、集成代理服务器模块
    8、支持实时监视服务器状态和定制服务器日志
    9、支持服务器端包含指令(SSI)
    10、支持安全Socket层(SSL)
    11、提供用户会话过程的跟踪
    12、支持FastCGI
        更多Apache相关信息请参考Apache入门篇1Apache入门篇3

    2.IIS web服务器
    IIS是Internet Information Services的缩写,是一个World Wide Web server。Gopher server和FTP server全部包容在里面。 IIS意味着你能发布网页,并且有ASP(Active Server Pages)、JAVA、VBscript产生页面,有着一些扩展功能。IIS支持一些有趣的东西,像有编辑环境的界面(FRONTPAGE)、有 全文检索功能的(INDEX SERVER)、有多媒体功能的(NET SHOW) 其次,IIS是随Windows NT Server 4.0一起提供的文件和应用程序服务器,是在Windows NT Server上建立Internet服务器的基本组件。它与Windows NT Server完全集成,允许使用Windows NT Server内置的安全性以及NTFS文件系统建立强大灵活的Internet/Intranet站点。IIS(Internet Information Server,互联网信息服务)是一种Web(网页)服务组件,其中包括Web服务器、FTP服务器、NNTP服务器和SMTP服务器,分别用于网页浏览、文件传输、新闻服务和邮件发送等方面,它使得在网络(包括互联网和局域网)上发布信息成了一件很容易的事。
    IIS应用服务器有以下特性:
    IIS 6.0 与Windows Server 2003为网络应用服务器的管理提供了许多新的特性,包括实用性、可靠性、安全性与可扩展性。IIS 6.0也增强了开发和国际化支持,Windows Server 2003和IIS 6.0为您提供了一整套最可靠、高效、连接的一体化网络应用解决方案。微软自带的产品,操作简单,下一步下一步就可以完成架设了。

    二 应用服务器

    1.Tomcat应用服务器
        Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当你 运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。
        更多Tomcat相关信息请参考Tomcat快速入门

    2.Weblogic应用服务器
        Web Logic是美国bea公司出品的一个application server确切的说是一个基于Javaee架构的中间件,BEA Web Logic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中,是用来构建网站的必要软件,拥有解析发布网页等功能,它是用纯java开发的。
    Web logic应用服务器有以下优点:
    1对业内多种标准的全面支持,包括EJB、JSB、JMS、JDBC、XML和WML,使Web应用系统的实施更为简单,并且保护了投资,同时也使基于标准的解决方案的开发更加简便。
    2无限的可扩展性BEA Web Logic Server以其高扩展的架构体系闻名于业内,包括客户机连接的共享、资源pooling以及动态网页和EJB组件群集。
    3、凭借对EJB和JSP的支持,以及BEA Web Logic Server 的Servlet组件架 构体系,可加速投放市场速度。这些开放性标准与Web Gain Studio配合时,可简化开发,并可发挥已有的技能,迅速部署应用系统。
    4、BEA Web Logic Server的特点是与领先数据库、操作系统和Web服务器紧密集成。
    5、关键任务可靠性其容错、系统管理和安全性能已经在全球数以千记的关键任务环境中得以验证。
    6、BEA Web Logic Server简化了可移植及可扩展的应用系统的开发,并为其它应用系统和系统提供了丰富的互操作性。凭借其出色的群集技术,BEA Web Logic Server拥有最高水平的可扩展 性和可用性。BEA Web Logic Server既实现了网页群集,也实现了EJB组件 群集,而且不需要任何专门的硬件或操作系统支持。网页群集可以实现透明的复制、负载平衡以及表示内容容错,如Web购物车;组件群集则处理复杂的复制、负载平衡和EJB组件容错,以及状态对象(如EJB实体)的恢复。 无论是网页群集,还是组件群集,对于电子商务解决方案所要求的可扩展性和可用性都是至关重要的。共享的客户机/服务器和数据库连接以及数据缓存和EJB都增强了性能表现。这是其它Web应用系统所不具备的。

    3.JBoss应用服务器
    简介:
    JBoss 是一套开源的企业级 Java 中间件系统,用于实现基于 SOA 的企业应用和服务。是一个运行EJB的J2EE应用服务器。它是开放源代码的项目,遵循最新的J2EE规范。从JBoss项目开始至今,它已经从一个EJB容器发展成为一个基于的J2EE的一个web操作系统(operating systemfor web),它体现了J2EE规范中最新的技术,含有Jsp和Servlet容器,也就可以做web容器,也包含 EJB容器,是完整的J2EE应用服务器。JBoss 是最受欢迎而且功能最为强大的应用服务器。最新版本的JBoss AS 7.0.2已经发布。
    JBoss应用服务器有以下优点:
    1、JBoss是免费的,开放源代码J2EE的实现,通过LGPL许可证进行发布。但同时也有闭源的,开源和闭源流入流出的不是同一途径。
    2、JBoss需要的内存和硬盘空间比较小。
    3、安装便捷:解压后,只需配置一些环境变量即可。
    4、JBoss支持"热部署",部署BEAN时,只拷贝BEAN的JAR文件到部署路径下即可自动加载它;如果有改动,也会自动更新。
    5、JBoss与Web服务器在同一个Java虚拟机中运行 ,Servlet调用EJB不经过网络,从而大大提高运行效率,提升安全性能。
    6、用户可以直接实施J2EE-EAR,而不是以前分别实施EJB-JAR和Web-WAR,非常方便。
    7、Jboss支持集群。

    对以上几种服务器的对比和分析
        Apache是一个静态页面,而Tomcat是一个动态页面。如果想要在Apache环境下运行jsp动态网页就需要一个jsp解释器,而tomcat就是作为一个解释器来帮助在Apache的环境下执行动态页面,Tomcat是先将静态页面转换成java.类型文件,然后再以jsp.的文件形式运行。但是在处理静态页面时,tomcat就不如Apache那样迅速,也不能对其进行配置。因此在现实的使用中,Tomcat是做为一Apache的一个插件来显示网站的动态页面的。这样可以使网站具有更好的扩展性和安全性。
        JBoss Web将Tomcat内核作为其Servlet容器引擎,Tomcat,在很活动连接支持、静态内容、大文件和HTTPS处理上表象不如JBoss那样优越,同时Tomcat只能运行Java应用程序,企业在使用时Tomcat,这样在使用时需要用Apache Web Server进行整合。
        Apache支持所有的操作系统,可以跨平台使用,而IIS只能基于windows操作系统下使用,在开源代码方面Apache是完全开放免费的,而IIS是部分开源代码。在安装上IIS使用的是傻瓜式图形化安装,使用者只要按照提示安装即可,但是Apache在安装上相对复杂困难,在语言的运行方面Apache支持多种运行语言例如ASP,PHP,JSP,但是IIS如果要运行PHP需要反复的配置才能运行。

    展开全文
  • 数据库服务器一般都装有数据库如oracle,mssql,mysql等,如:oracle的linux服务器, 应用服务器是你的应用得服务器,提供应用服务,如你的j2ee中间件:基于jboss,weblogic等的应用,也可以是自己的网络应用服务器...

    数据库服务器一般都装有数据库如oracle,mssql,mysql等,如:oracle的linux服务器,

      应用服务器是你的应用得服务器,提供应用服务,如你的j2ee中间件:基于jboss,weblogic等的应用,也可以是自己的网络应用服务器,接口服务器是提供给第三方调用的服务,主要是为了我们自己的应用得安全性,所以我们只把能供给第三方调用的东西封装在接口服务器

      数据服务器和应用服务器有什么区别?

      不知道你对数据库了解不了解!数据库服务器简单点:还不好和你解释!

      数据库服务器

      数据库:存储数据的应用软件

      服务器:公共的意思了!

      一台机子!安装一个软件,你可以用,别人也可以用!就像你的电脑一样可以有多个用户一样,你可以用你的用户名登陆,别人可以有另一个用户名登陆,就是说可以有多个人用,但是每个人又是独立的!(当然这个还是有点区别的!)

      首先,根据你应用环境的不同,需要的数据库服务器也不同,一般来说,如果数据库服务器需要连接的客户端多、并且是不同权限组的客户端的话需要网络接口比较多的,除此之外,数据库服务器的处理器性能要求比较高,因为其要进行频繁的操作,内存要求大,加快数据存取速度。

      应用服务器相对而言要求低一些,如果是FTP服务器的话网卡的速率要求要高,起码是千兆的,网页服务器对于网卡的速率也同样有较高的要求,但对于处理器性能要求就不那么高了。

      其次,后面涉及到产品硬件这块也是非常重要的。

      应用服务器位于网络和数据库之间,但是应用服务器实际上是做什么的?

      应用程序服务器是为应用程序提供业务逻辑的。它是基于组件的,位于以服务器为中心的架构的中间件。

     应用服务器和数据库服务器有什么区别

      这个架构通常是一个主要的基于Web的界面。中间件是业务逻辑所在的应用服务器。而第三层,后端是负责数据库的服务器。应用程序服务器充当用户和数据库之间的交互。

      应用服务器通过各种协议向客户端应用程序打开业务逻辑。它还可以包括计算机,web服务器或其他应用服务器上的图形用户界面。业务逻辑通过组件API。它还管理自己的资源以及执行安全性,事务处理,资源和连接池以及消息传递。

      对于高端要求,应用服务器往往具有高可用性监控,集群,负载平衡,集成冗余和高性能分布式应用服务,并支持复杂的数据库访问。

      为什么要使用应用服务器?有什么好处?

      当你需要与现有数据库和服务器(如Web服务器)集成时,应使用应用程序服务器。

      它可以通过启用集中式方法来提供应用程序更新和升级来提供数据和代码的完整性。

      可伸缩性是使用应用服务器的另一个原因和好处。应用程序服务器可以与数据库连接。这意味着企业可以扩展Web服务器群,而不需要增加数据库连接的数量。

     应用服务器和数据库服务器有什么区别

      另一个好处是安全。从网页到数据库的直接链接如果暴露,可导致SQL注入攻击基础架构。通过单独的数据访问层执行数据验证和/或显示业务逻辑,可以确保以Web表单输入的文本不被用作SQL调用。通过集中身份验证过程以及数据访问管理,还可以提高安全性。

      它还可以通过对网络流量进行限制来提高对性能要求高的应用程序的性能。

      它与其他类型服务器有何区别?

      应用程序服务器与Web服务器不同,因为前者通过多种协议处理向应用程序提供业务逻辑,而Web服务器响应并处理HTTP请求;它托管一个网站并存储静态内容,如图像,CSS,JavaScript和HTML页面。虽然Web服务器可能不支持事务或数据库连接,但它可能具有容错和可扩展性功能,如负载平衡,缓存和集群。

      应用服务器和数据库服务器有什么区别

      它与数据库服务器不同,因为该服务器执行诸如数据分析,存储,数据处理,归档以及其他数据管理相关任务之类的任务。数据库服务器使用诸如ODBC,JDBC等协议。他们还将托管数据库,如Oracle,SQL Server,MySQL等。

    展开全文
  • 文章目录购买阿里云轻量级应用服务器后如何获取服务器的实例ID1、通过控制台获取2、通过手机短信3、通过95187电话进行咨询 购买阿里云轻量级应用服务器后如何获取服务器的实例ID 因为阿里云的轻量应用服务器在控制...
  • 详情请查看: https://blog.csdn.net/dingguanyi/article/details/80894382
  • 应用服务器(主要处理逻辑层) web应用框架 负责处理http请求,响应静态文件,常见的有Apache,Nginx以及微软的IIS. 负责处理逻辑的服务器。比如php、python的代码,是不能直接通过nginx这种web服务器...
  • 轻量应用服务器MySQL远程连接踩坑

    万次阅读 2018-08-31 23:38:45
    轻量应用服务器MySQL远程连接踩坑 不算是给阿里云打广告吧,因为被阿里云的“云服务器ECS” 和 “轻量应用服务器”搞的很蛋疼。很多年前,阿里云的学生机“云翼计划”默认就只有“云服务器ECS”,所以上个月我准备...
  • 常见的应用服务器

    千次阅读 2019-05-10 11:26:03
    常见的应用服务器 Tomcat:免费开源,轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当...
  • HTTP服务器和Web应用服务器用什么区别? HTTP服务器也称为Web... Web应用服务器能够运行服务器上的应用程序,并将结果返回给客户端浏览器;例如,Tomcat就是一种Web应用服务器;通常情况下,Web应用服务器兼具HT...
  • 什么是阿里云轻量应用服务器? 轻量应用服务器是面向入门级云计算及简单应用用户,提供基于单台云服务器的域名管理、应用部署、安全和运维管理的一站式综合服务。用户可以选择精品应用镜像(比如wordpress),并可...
  • 网站的高性能架构--应用服务器优化

    万次阅读 2020-09-07 22:47:08
    1.分布式缓存 当网站遇到性能瓶颈时,第一个...使用集群 在网站高并发访问的情况下,使用负载均衡技术为一个应用构建一个由多台服务器组成的集群,将并发访问请求分发到多台服务器上处理 4.代码优化 :多线程 ...
  • 阿里云轻量应用服务器是阿里云新推出的服务器,本文介绍阿里云轻量服务器的价格,已经何为“轻量”?轻量与阿里云ECS服务器有什么区别?轻量性能就一定不如ECS服务器吗?什么是轻量应用服务器?轻量应用服务器是面向...
  • 为了改善网站性能,此时,网站可以使用三台服务器:应用服务器,数据库服务器,文件服务器。如下图所示。   这三台服务器对硬件资源的要求各不相同。 应用服务器:需要处理大量的业务逻辑,因此需要更快的CPU...
  • Jboss 中间件(应用服务器)部署web应用

    万次阅读 2017-10-20 10:52:34
    1、免安装版JBOSS_7.1兼容JDK1.8以下 JDK1.7或低版本JDK; 2、配置电脑环境变量JBOSS_HOME=安装路径,在path变量后面添加;%JBOSS_HOME%\bin 2.1 运行standalone.... 3、将开发包war复制放在C:\jboss7\standalo...
  • 1、登录:系统应用服务器向携程请求一个令牌,获取到令牌后再根据携程分配的 用户名密码登录系统。 2、订票完成后,可以根据订单号,从携程获取机票的订票信息。 现在系统的部署是:客户端(有外部网权限) -> WEB...
  • 本人最近想把web应用与上传的文件资源分离,分成两类服务器:应用服务器与资源服 务器。应用服务器与资源服务器都有多台,通过nginx 做负载均衡,那么问题来了,如 何能保证上传到资源服务器的文件能比较及时、高效...
  • Web服务器、HTTP服务器及应用服务器有何区别?Apache、Nginx、IIS、Tomcat、JBoss、Weblogic、WebSphere 都各属于哪种服务器? Web服务器是指驻留在Internet上的计算机程序,它的...应用服务器是指通过各种协议把商...
  • 应用服务器是指通过各种协议把商业逻辑曝露给客户端的程序。它提供了访问商业逻辑的途径以供客户端应用程序使用。应用服务器使用此商业逻辑就像调用对象的一个方法一样。 简单的说能实现动态网页技术的服务器叫做...
  • 应用服务器和web服务器的区别

    千次阅读 2018-07-19 10:48:46
    Web服务器的基本功能就是提供Web信息浏览服务。它只需支持HTTP协议、HTML文档格式及URL。与客户端的网络浏览器配合。因为Web服务器主 要支持的协议就是HTTP,所以通常情况下HTTP服务器和WEB服务器是相等的(有没有...
  • 应用服务器:负责处理逻辑的服务器。比如php、python的代码,是不能直接通过nginx这种web服务器来处理的,只能通过应用服务器来处理,常见的应用服务器有uwsgi、tomcat等。 web应用框架:一般使用某种语言,封装了...
  • Java中常用WEB服务器和应用服务器

    万次阅读 2018-06-29 15:20:31
    一、web服务器和应用服务器的区别 Web服务器传送页面使浏览器可以浏览,然而应用程序服务器提供的是客户端应用程序可以调用(call)的方法(methods)。确切一点,你可以说:Web服务器专门处理HTTP请求(request),但是...
  • 应用服务器ping十余台机器,值都2~10ms跳动,其余机器ping该应用服务器1~6ms间,但其余机器互ping值都在1ms以下,网卡、操作系统、部署业务都检查过了,没查出什么问题,只能重启后恢复正常,但基本维持一天就出现...
  • 本次我们选用的是阿里云的轻量应用服务器,如果进行学生认证的话可以购买9.5一个月的服务器,系统镜像建议选择ubutu版本 接下来我们进入控制台,选择远程连接,点击设置密码,设置一个服务器连接密码 完成后点击...
  • 应用服务器优化技术

    千次阅读 2018-07-27 16:37:01
    缓存的本质就是内存中的哈希表 主要用来存放那些读写比很高、变化很少的数据,这样应用程序读取数据时先到缓存中读取,如果没有或者数据已经失效再去访问数据库或文件系统,并根据拟定的规则将数据写入缓存。...
  • web服务器和web应用服务器的区别

    千次阅读 2018-06-10 20:22:43
    首先,web服务器和web应用服务器不是同一个概念。起初,我也把两者混为一谈。现在说说自己对这两个的理解,如有不对之处,欢迎指出。 web应用服务器 在java web开发时,最早接触的web服务器是tomcat,其实tomcat是...
  • 现在公司的一个项目有一个关于信息安全方面的需求,需要将两台服务器搬到虚拟平台,采用私网映射的方式提供访问,一台是应用服务器,一台是数据库服务器,数据库服务器使用的是oracle。并且要求在系统迁移期间采用双...
  • 轻量应用服务器这个类型的主机应该是阿里云主机独家有,为什么明明已经有了规格全面的ECS云服务器之后,还要单独推出轻量应用服务器这个类型的云主机呢?对于我们用户来说阿里云轻量应用服务器和ECS云服务器哪个好?...
  • 常用Web应用服务器

    千次阅读 2017-12-07 11:37:45
    常用Web应用服务器有: nginx、Apache、Tomcat、JBoss、WebSphere、WebLogic、Resin、Glassfish nginx介绍 Nginx (engine x) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Nginx是由...
  • JAVA应用服务器都有那些?

    千次阅读 2019-11-05 22:52:47
    从功能上看分为两种:web应用服务器和java EE服务器 web服务器 * Tomcat、Jetty、Orion、Resin、 Bejy Tiger、Geronimo、Jonas、Jrun java EE 服务器 TongWeb 、BES Application Server 、 Apusic Application ...

空空如也

1 2 3 4 5 ... 20
收藏数 235,039
精华内容 94,015
关键字:

应用服务器