存档

文章标签 ‘架构’

(转)Websphere Application Server 6.0配置与管理

2009年11月19日 hashei 没有评论

温故而知新:这篇文章应该是半年前在webspherechina.net上下载的,今天查找如何在webshpere下对应用程序采用key认证时候偶然发现,应该说是从开发人员的角度理解了was这个产品,贴出来大家分享。

Websphere Application Server 6.0配置与管理

一、 WebSphere Application Server 6.0家族概述

WebSphere Application Server6.0(以下简称“AppServer”)在安装IBM Rational Application Developer6.0的时候已经为我们自动安装了,完全可以做为一个独立服务器运行。具体情况请参考“IBM Rational Application Developer 6.0安装、配置与开发”一文。所以本文只是为了在用IBM Rational Application Developer 6.0(以下简称“RAD”)开发时,我们可以更好地配合AppServer在测试、运行、部署等过程中一起工作,减少因为对AppServer不甚了解而遇到问题时无从下手的麻烦。

IBM公司的软件产品有五大系列:DB2、Lotus、Rational、Tivoli、Websphere(其中大部分都是收购别的公司的)。其中的Websphere系列,主要是为了电子商务而建立的一个基础平台。它可以使公司开发、部署和整合电子商务应用。

基础平台与工具(Foundation&Tools

WebSphere Application Server

WebSphere Application Server – Express

WebSphere Studio

商业门户(Business Portals

WebSphere Portal

WebSphere Portal – Express

WebSphere Commerce

WebSphere Everyplace

WebSphere Voice

商业整合(Business Integration

WebSphere MQ

WebSphere Business Integration

Adapters and Connectors

clip_image001

(IBM Websphere家族)

下图为概要说明:

clip_image003

IBM的AppServer是Webshpere的软件平台的基础(Foundation)。而WebSphere Studio(在6.0中已经转移到Rational系列中)是其开发测试工具(Tools)。

而对于AppServer,又有几个不同的版本,主要是应对不同规模需求的应用,我们项目组提供的是Network Deployment版本,它们大致描述如下:

clip_image005

Websphere AppServer 6.0系列(从上到下为包含关系

下面是WebSphere Application 5.1的几个版本的关系,比较上下两个图,我们会发现在版本升级后,它们的变化(如6.0版本中,去掉了Base这个称呼,不过表达时一般还是附带)

clip_image007

Websphere AppServer 5.1系列

对于6.0各版本AppServer,它们的差别和需要注意的地方:

1、 Express版本主要是支持Web系统开发的易用性,不支持EJB和JCA。

2、 Base版本(缺省版本)提供EJB和JCA、内置JMS等支持,但不支持负载和中央集中式管理。

3、 Network Deployment版本除了Base版本的所有功能外,还支持集群、高可用性(High Availability)等。

二、 WebSphere Application Server 6.0系统结构

说明:

IBM WebSphere Application Server – Express V6, 指Express

IBM WebSphere Application Server V6, 指 Base

IBM WebSphere Application Server Network Deployment V6, 指Network Deployment

2.1 AppServer的运行和管理方式

从AppServer运行和管理的角度考虑,我们可以将它分成standalone和distribution模式。Express和Base只能运行在standalone模式下,而Network Deployment在两种方式下均可,它可以提供在standalone模式下没有的功能,如workload(负载)和failover(失效转移)。

对于这两种模式和运行,Websphere 有其专用术语,如Profile,Cell-Node-Server等等,下面我们会分别介绍,

不管服务器运行在何种模式下,AppServer均以cell、node、server等概念组织。除非你在Network Deployment环境下运行,否则cell、node等概念并没有多大参考价值,也就是说,在standalone模式下只有一个cell和node(从服务器Profile的目录结构就可以看出, profile的概念下面会具体谈到)。

clip_image009

Standalone模式下的架构总览

ServerApplication Server是首要的runtime组件,它是applications的执行点。多个standalone的server能够存在于一台物理机器上,它们的配置文件被独立维护和存储。有两种方式可以做到:通过全新安装新的AppServer代码,或者通过一次AppServer的安装,然后配置多个profile。每个AppServer运行在它们各自的Java虚拟机上。

Nodenode(节点)是一组Server进程的逻辑组合。它们通过websphere管理,共享通用的配置和操作控制。一个node和一个webSphere的物理安装对应。

在standalone的配置下,仅有一个node。在Network Deployment下,你能从一个总的管理服务器来配置和管理多个nodes。在中央集中式管理的配置下,每个node有一个node agent,它和deployment manager一起工作,来管理受管进程。

NodeGroup 是一个被V6.0引入的新概念,node group是在cell内的一组节点,它们有相似的capability。

Cellcell是一组集成到一个管理domain的nodes(Distribution 环境下)。在该cell下的所有nodes的配置文件和application被集中到一个cell master的中央配置存储容器(repository)。deployment Manager 进程管理这个存储器并且和它管理下的每个node上的备份相同步(synchronize)。

clip_image011

2.2 AppServer静态结构――Server和Container的概念

WebSphere AppServer 本身提供一些功能给application,并且它还能将外部server集成到管理进程中来。下图说明了你能集成什么server到websphere Application 管理工具中。

clip_image013

Web Server能够作为Web Server 节点(nodes)集成到管理进程中,它允许应用程序关联到一个或多个web Server。

Web Server Nodes能够在管理和非管理状态。在管理状态下,被管理的node有一个node agent在web Server的机器上,它允许deployment manager来管理这个web Server。在非管理状态下,该web Server 并不被websphere管理,你能够发现这些web Server在防火墙外面,或在非军事化区(demilitarized zone)。你必须手动地拷贝Web Server 的plug-in文件到web Server的。然而,如果你定义该web Server作为一个node,你就可以为它定制的plug-in文件。

Generic Server是指该server在websphere domain下接受管理,但是并不是由 WebSphere Application Server提供的第三方Server,如OpenJMS server,tomcat等。

J2EE规范提出了容器(container)的概念,它提供application的运行时支持。在application Server实现中有两类容器:

Web Containe它处理HTTP Request,Servlet和JSP。

EJB Container它处理Enterprise JavaBean(Session Bean,Entity Bean和Message-Driven Bean)。

Application Client Container(ACC):它允许J2EE application 客户端软件访问服务器资源。ACC需要单独安装在客户端机器上,然后我们就可以通过命令行方式在ACC里运行客户端程序(lauchClient)。具体specification,请参考sun J2EE specification 1.4。

注意:websphere AppServer客户端并不支持单独的J2EE客户端jar执行。

clip_image015

利用J2EE容器资源的J2EE客户端程序

下表说明了几种AppServer对它们的支持:

clip_image017

2.3 AppServer的动态结构――Profile概念

AppServer profile的概念是V6.0提出的。在V5.0中,AppServer就允许在一台机器的一个Server上允许多个实例。在V6.0中,IBM对AppServer该功能有了进一步增强,提出了Profile的概念:

AppServer由两部分组成:

第一, 一组共享的只读产品静态文件或二进制文件。它们被AppServer的实例共享。

第二, 一组用户自定义的配置文件,这些文件就称为Profile。它是一些用户数据,包括服务器配置,application,属性文件等。

在我们安装V6.0的应用服务器时,我们应该先安装AppServer,然后再安装Profile,这样才能建立一个逻辑上并且是物理上的AppServer。

结合前面的cell,node,server和现在的profile概念,我们看看我们的application在服务器Profile下的目录结构:

clip_image019

在standalone模式和distribution下,profile的目录结构区别并不大,它们的区别,以及各目录下的具体文件含义,请参考IBM的红皮书:《WebSphere Application Server V6 System Management & Configuration》。

【每周精华】第一期(6月21日-28日)

2009年6月29日 hashei 没有评论

技术是需要钻研的,但是IT的发展一日千里,闭门造车难免会固步自封;作为公司的初级员工,老板让干啥就干啥又容易成为井底之蛙。所以欢迎添加jaintkiller at gmail dot com为好友,通过Google Reader一起分享优秀文章。当然我也会把自己觉得好的内容以每周一期的形式写在博客上,“问泉哪得清如许,为有源头活水来”。(其实我是偷懒不想更新)

[1]《豆瓣网技术架构变迁》

豆瓣网从2005年到现在的架构发展历程,PPT很早推出了,这次演讲视频总算是千呼万唤始出来。关注架构、关注大型web站点技术内幕的同学可以看看。

地址:http://www.infoq.com/cn/presentations/hongqn-douban

豆瓣的架构—专访豆瓣网站的技术总监洪强宁

[2]虚拟化扑面而来

虚拟化真是越来越近了,以前还只是听到个概念,去年Vmware来公司介绍VMware Infrastructure时还在考虑“一般的企业用不起,用得起的企业看不上”的问题。但现在虚拟化后对服务器利用率的提高、对电力消耗的降低、物理服务器管理的简化等好处已经深入人心,虽然还面对着几大厂商各自为政的窘境和把所有鸡蛋都放一个篮子里的担忧,但是已经有客户主动提出要把现有的非关键应用转移到虚拟机上去了。上次Red Hat来公司介绍的也是他们的RHEL5.0 Advanced Server中的虚拟化技术,所以趁早熟悉一下虚拟机的安装、管理、故障转移是正道——对于系统管理员来说。

服务器市场成本压倒一切

虚拟化整合之势凸显

[3]Java性能分析和监控

现在的主业不能丢:

使用Perf4J进行性能分析和监控

使用Jprofile解决应用服务器内存泄露问题诊断一例

WebSphere 2009年发展方向