昨天参加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. 编译系统中的LR与LL理解

    编译原理:LL(1),LR(0),SLR(1),LALR(1),LR(1)对比 LL(1)定义:一个文法G是LL(1)的,当且仅当对于G的每一个非终结符A的任何两个不同产生式 A→α|β,下面的条件成 ...

  2. SpringAOP代理报错问题

    public class BaseDataSyncPushJob implements StatefulJob{ /*** 日志 */ private static final Log LOG = L ...

  3. testng参数化(提供测试数据)【转】

    testng提供测试数据的两个注释:@DataProvide和@Parameter   一.通过testng.xml中设置参数 (实际上testng.xml只是一个名字,可以起任何一个名字,只要是.x ...

  4. xcode6如何支持空模板

    Single View Application 改成空模板的歩揍(xcode6.0.1): 1.删除info.plist 中的Main Storyboard file base name 选项 2.将 ...

  5. Android--Intent传递对象

    Intent 传递对象通常有两种实现方式,Serializable 和 Parcelable: 一.Serializable:序列化,表示将一个对象转换成可存储或可传输的状态,序列化后的对象可以在网络 ...

  6. jQuery树形菜单(1)jquery.treeview

    jQuery的树形插件资料URL:http://bassistance.de/jquery-plugins/jquery-plugin-treeview/从该网站Download得到jquery.tr ...

  7. linux shell 字符串操作

    转:http://justcoding.iteye.com/blog/1963463 在做shell批处理程序时候,经常会涉及到字符串相关操作.有很多命令语句,如:awk,sed都可以做字符串各种操作 ...

  8. 初学python里的yield send next

    今天看书的时候突然看到这个想起来一直没有怎么使用过send和next试了一下 发现了一个诡异的问题 import math def get_primes(start): while 1 : if is ...

  9. C++ REST SDK in Visual Studio 2013

    The C++ REST project provides a modern asynchronous C++ API for cloud-based client-server communicat ...

  10. SQLSERVER全文搜索

    SQLSERVER全文搜索 看这篇文章之前请先看一下下面我摘抄的全文搜索的MSDN资料,基本上MSDN上关于全文搜索的资料的我都copy下来了 并且非常认真地阅读和试验了一次,并且补充了一些SQL语句 ...