昨天参加Oracle的一个活动,知道了WebLogic的强大,于是对应用服务器产生了兴趣。

WebLogic是一个Java EE应用服务器(与Java EE对应的另外一个技术平台就是.NET)。

为什么要应用服务器?

当你开发了一个服务端应用程序,部署到服务器之后,需要一个针对这个应用程序的执行环境,而不是将代码放到服务器上就能运行。

你需要将Java的JVM或者.NET的CLR运行起来执行你的应用程序;如果是Web应用程序,需要接收用户通过浏览器发出来的请求,并且能将处理结果返回给浏览器。。。

所以,服务器上仅有操作系统是不够的,还需要相应的应用程序执行环境,最好能有提供执行环境、方便应用程序运行的专用服务器,于是应用服务器应运而生。

如果你是用Java开发的服务端应用程序,不管服务器用的是什么操作系统,只要安装一个Java应用服务器就行了,比如这里提到的WebLogic。

如果你是用.NET开发的服务端应用程序,如果服务器用的是Windows,你需要安装IIS,安装.NET Framework;如果服务器用的是Linux,您需要安装Apache,安装Mono,安装Apache Mono模块。如果有跨平台的.NET应用服务器,比如叫NWeblogLogic,不管服务器用的是什么操作系统,只要安装NWeblogLogic,就能跑.NET应用程序,是不是更幸福一些。

目前有没有.NET应用服务器?

有!一图胜千言,请看下图:

Windows Server 2012有一个专门的角色叫Application Server,而要跑.NET Web应用程序,必须要安装Application Server中的2个功能:IIS+.NET Framework 4.5。

所以,我觉得在不开源的.NET时代,真正的.NET应用服务器就一个——IIS+.NET Framework。

随着.NET进入开源时代,你可以把IIS换成另外的Web服务器(因为有了OWIN),把.NET Framework换成.NET Core,再加上OWIN服务器,再加上WCF的替代品,将这些打包在一起,做成一个.NET应用服务器——NWebLogic。Mono也许可以往这个方向发展。

应用服务器是一个不容易理解的概念,写出来理清一下自己的理解,不对之处,欢迎指出。

【更新】

目前我最喜欢的对Application Server的定义:

An application server exposes business logic to client applications through various protocols.

【补充】

PC Magazine对Application Server的解释值得一看,把其中的几张图贴出来:

【相关链接】

Java vs .Net

Why does Java apps need an application server and .Net just IIS Web Server?

Application Server vs. Web Server

.NET应用服务器的更多相关文章

  1. JSP之WEB服务器:Apache与Tomcat的区别 ,几种常见的web/应用服务器

    注意:此为2009年的blog,注意时效性(针对常见服务器)     APACHE是一个web服务器环境程序 启用他可以作为web服务器使用 不过只支持静态网页 如(asp,php,cgi,jsp)等 ...

  2. 使用ehcache持久化数据到磁盘 并且在应用服务器重启后不丢失数据

    使用ehcache时如何持久化数据到磁盘,并且在应用服务器重启后不丢失数据1.如何持久化到磁盘使用cache.flush(),每次写入到cache后调用cache.flush() ,这样ehcache ...

  3. OpenResty 是一个全功能的 Web 应用服务器

    OpenResty (也称为 ngx_openresty)是一个全功能的 Web 应用服务器.它打包了标准的 Nginx 核心,很多的常用的第三方模块,以及它们的大多数依赖项. 通过众多进行良好设计的 ...

  4. 分析案例:应用服务器W3WP进程CPU持续超过百分之九十(Oracle客户端Bug)

    问题描述: 项目反馈应用负载的其中一台服务器业务操作的响应非常慢,登录该服务器发现W3WP进程CPU持续超过90%,哪怕在业务低峰期也是如此?远程查看后发现该应用服务器承载的请求确实很低,why??? ...

  5. 应用服务器和Web服务器

    如上图所示,绝大部分的公司会采用Apache+tomcat集群(或jetty集群)来部署公司的Web服务, Web服务器和应用服务器关系,先介绍一下我们常说的服务器: Tomcat服务器,是运行ser ...

  6. Jetty应用服务器的安装详解

    Jetty是一个开源的Servlet容器和应用服务器,它极度轻量级.高便携性.功能强大.灵活和扩展性好,而且支持各种技术如SPDY.WebSocket.OSGi.JMX.JNDI和JAAS.Jetty ...

  7. 应用服务器Glassfish任意文件读取漏洞

    catalogue . 前言和技术背景 . Glassfish安装配置 . 漏洞利用 . 漏洞缓解(修复) 1. 前言和技术背景 0x1: GlassFish是什么 GlassFish 是用于构建 J ...

  8. EBS应用服务器启动指南

    1.ssh应用服务器    applprod用户密码:*** 管理脚本在$ADMIN_SCRIPTS_HOME路径下 adstrtal.sh       启动所有服务,命令行为adstrtal.sh ...

  9. Spring-事物-不依赖应用服务器的开源JTA事物实现

    不依赖应用服务器的开源JTA事物实现JOTM和Atomikos Transactions JOTM 即基于Java开放事务管理器(Java Open Transaction Manager),实现JT ...

随机推荐

  1. ios开发中经常用到的控件

    以下是按照使用频率对ios的控件进行罗列. 1.最常用的UI控件: UIButton (按钮).UILabel (文本标签).UITextField (文本输入框).UIImageView( 图片显示 ...

  2. android开发学习之Layer List

    Android中drawable分为Bitmap File.Nine-Patch File.Layer List.State List.Level List.Transition Drawable.I ...

  3. js基础知识:变量

    一.什么是变量? 在JavaScript中,变量用来存放值的,存放任何数据类型的值都可以,它就是值的容器. 二.变量怎么用? (一)用var声明1个变量 在使用变量之前,需要var关键字来声明变量,变 ...

  4. 一张图片说明MII

  5. 2013-09-22 [随笔]-Roy

    不能因为一些小事情而一直影响自己的心情. 每天过得都应该有重点,无论是家庭还是工作还是其他. 要多花时间去吸取些新东西,看书,丰富自己的想法. 不能让日常的乱七八糟影响心情. bingo!

  6. Powershell--批量拆分SQL语句为事务并批处理

    作为DBA,时不时会遇到将数据导入到数据库的情况,假设业务或研发提供一个包含上百万行INSERT语句的脚本文件,而且这些INSERT 语句没有使用GO来进行批处理拆分,那么直接使用SQLCMD来执行会 ...

  7. java提高篇(二九)-----Vector

    在java提高篇(二一)-–ArrayList.java提高篇(二二)-LinkedList,详细讲解了ArrayList.linkedList的原理和实现过程,对于List接口这里还介绍一个它的实现 ...

  8. 如何为编程爱好者设计一款好玩的智能硬件(八)——LCD1602点阵字符型液晶显示模块驱动封装(中)

    六.温湿度传感器DHT11驱动封装(下):如何为编程爱好者设计一款好玩的智能硬件(六)——初尝试·把温湿度给收集了(下)! 七.点阵字符型液晶显示模块LCD1602驱动封装(上):如何为编程爱好者设计 ...

  9. 做NavMesh相关工作时收集的一些文章

    三角形拾取 http://www.blackpawn.com/texts/pointinpoly/default.htmlCS NavMesh使用手册https://developer.valveso ...

  10. 如何在CRM系统中集成ActiveReports最终报表设计器

    有时候,将ActiveReports设计器集成到业务系统中,为用户提供一些自定义的数据表,用户不需要了解如何底层的逻辑关系和后台代码,只需要选择几张关联的数据表,我们会根据用户的选择生成可供用户直接使 ...