应用服务器一些问题解答

来源:互联网 发布:cellquest软件下载 编辑:程序博客网 时间:2024/05/21 08:35

 

   做Java好多年了,这么些年,Java在不断的发展,开发工具,架构,脚本语言,数据库,很多与之相关的都在变化,有点眼花缭乱;在业务的海洋里,猛一天想起,java的本源是什么,为什么我们需要应用服务器,为什么我们需要架构,为什么需要集群,。。。。。

一。java运行原理

  1.运行环境 如图:

 

 

二。应用服务器

  1。为什么会产生应用服务器;

        应用服务器是数据库与软件应用程序之间的中间地段(中间层),用于处理用户与企业的业务应用程序和数据库之间的所有应用程序操作.主要为应用程序提供运行环境,为组件提供服务。Java 的应用服务器很多,从功能上分为两类:JSP 服务器和 Java EE 服务器。

当电脑原来越普及,网络变成生活中的日常工具,程序系统等就对于性能,稳定性,可扩展性等提出要求,而应用服务器通过自身的设计,满足提供服务的广泛性,也保证运行系统比较容易更新、兼容,在逻辑,业务变化时开发能够更简单,快速;


PS:JSP 服务器有 Tomcat 、Bejy Tiger 、Geronimo 、 Jetty 、Jonas 、Jrun 、Orion 、Resin。

  Java EE 服务器有TongWeb 、 Apusic Application Server 、 IBM Websphere 、Sun Application Server 、Oracle 的 Oracle9i/AS 、Sun Java System Application Server 、Bea Weblogic 、JBoss、开源GlassFish.

 

  2。程序加载过程;

    我们知道看类路径很简单的方法,就是方法出错,所以我试用了下,从结果看,jboss通过bin里面自带的run.jar包进行类初始化装载;如图:

 

 (在jboss中的run.bat脚本,可以发现jboss服务发布程序包是和jdk包配合的,作为遵循j2ee规范的应用服务器,jboss依赖于jdk的,所以一般我们下载jboss都会自带有jdk包在里面。)

上面的程序的入口代码主要是:

public static void main(String[] args)
    throws Exception
  {
    Runnable worker = new Runnable(args) {
      private final String[] val$args;

      public void run() {
        try {
          Main main = new Main();
          main.boot(this.val$args);
        }
        catch (Exception e)
        {
          System.err.println("Failed to boot JBoss:");
          e.printStackTrace();
        }
      }
    };
    ThreadGroup threads = new ThreadGroup("jboss");
    new Thread(threads, worker, "main").start();
  }



 3。负载均衡、集群;

   负载均衡是应用服务器间处于性能的需要,随着海量的用户,千亿级级别的访问量,单靠服务器本身的硬件升级,软件优化已经满足不了数据访问需要,所以才采用负载均衡。

含义为:大量的并发访问或数据流量分担到多台节点设备上分别处理,减少用户等待响应的时间;其次,单个重负载的运算分担到多台节点设备上做并行处理,每个节点设备处理结束后,将结果汇总,返回给用户,系统处理能力得到大幅度提高。

服务器集群就是指将很多服务器集中起来一起进行同一种服务,在客户端看来就象是只有一个服务器 集群可以利用多个计算机进行并行计算从而获得很高的计算速度,也可以用多个计算机做备份,从而使得任何一个机器坏了整个系统还是能正常运行。所以集群则是让应用服务器通过群体合作,提高搞可用性和性能的方法。


  4.应用服务器和WEB服务器的区别 

 通俗的讲,Web服务器传送(serves)页面使浏览器可以浏览,然而应用程序服务器提供的是客户端应用程序可以调用(call)的方法(methods)。确切一点,你可以说:Web服务器专门处理HTTP请求(request),但是应用程序服务器是通过很多协议来为应用程序提供(serves)商业逻辑(business logic)。作为应用程序服务器,它通过各种协议,可以包括HTTP,把商业逻辑暴露给(expose)客户端应用程序,应用程序服务器是通过组件 (component) 的应用程序接口(API)把商业逻辑暴露(expose)(给客户端应用程序)的,例如基于J2EE(Java 2 Platform, Enterprise Edition)应用程序服务器的EJB(Enterprise JavaBean)组件模型。此外,应用程序服务器可以管理自己的资源,例如看大门的工作(gate-keeping duties)包括安全(security),事务处理(transaction processing),资源池(resource pooling),和消息(messaging)。就象Web服务器一样

原创粉丝点击