WebSphere 란?

: IBM에서 제공하는 WAS(Web Application Server)

- Java EE(JavaPlatform, Enterprise Edition) 스펙을 준수하는 애플리케이션 컴포넌트 지원.

- 크게 웹 컨테이너 + EJB 컨테이너로 구성.

- JCA(Java EE Connector Architecture) 서비스, 메시징 엔진, 웹서비스 엔진 기능 제공.

- 확장 레지스트리, JNDI, 트랜잭션, 성능 인프라, PD 인프라, WLM 및 HA 기능, 보안 인프라, 환경 설정 기능 제공.


WebSphere의 Architecture(구조)

WebSphere의 Architecture 다이어그램

  • 웹 컨테이너(Web container)
    - 웹 애플리케이션(Servlet, JSP 파일, HTML 파일로 구성)의 컴포넌트가 실행되는 애플리케이션 서버 파트.
    - 각 애플리케이션 서버 런타임에는 하나의 논리적 웹 컨테이너가 있으며, 해당 웹 컨테이너가 수정될 수는 있지만, 새롭게 생성되거나 제거되지는 못함.
    - 역할)
    웹 컨테이너 전송 처리
      Request가 웹 컨테이너 인바운드 전송 체인을 사용하여 웹 컨테이너로 전달됨. 이때 체인은 네트워크에 대한 연결을 제공하는 TCP 인바운드 채널, HTTP 요청을 제공하는 HTTP 인바운드 채널, 서블릿 및 JSP 파일에 대한 요청이 처리를 위해 웹 컨테이너로 전송되는 웹 컨테이너 채널로 구성됨.
    ▶ 서블릿 처리
     웹 컨테이너가 Request 객체와 Response 객체를 생성한 후, 서블릿 서비스 메소드를 호출함. 이때 웹 컨테이너는 적절한 시기에 서블릿의 Destroy 메소드를 호출하고, 서블릿을 Unload한 후, JVM이 가비지 수집을 수행.
     서블릿(Servlet) : 동적 웹페이지 컨텐츠 지원, DB 액세스 제공, 한 번에 여러 클라이언트에 서비스 제공, 데이터 필터링 등의 작업을 수행.
    ▶ HTML 및 기타 정적 컨텐츠 처리
     웹 컨테이너로 향하는 HTML 및 정적 컨텐츠에 대한 Request가 웹 컨테이너 인바운드 채널에 의해 전달됨. 해당 기능을 제공하기는 하나, 대부분의 경우 외부 웹 서버 및 플러그인을 웹 컨테이너의 Front-End로 사용하는 것이 프로덕션 환경에서 더 적합함.
    ▶ 세션 관리
     javax.servlet.http.HttpSession 인터페이스에 대한 지원이 제공되는데, 세션을 통해 웹 컨테이너에서 실행되는 애플리케이션이 개별 사용자를 추적할 수 있다. 
     *세션(Session) : 일정 시간(방문자가 웹 브라우저를 통해 웹 서버에 접속한 시점부터 웹 브라우저를 종료함으로써 연결을 끝내는 시점까지의 시간)동안 같은 사용자(브라우저)로부터 들어오는 일련의 Request하나의 상태로 보고 그 상태를 일정하게 유지시키는 기술.
    ▶ SIP 애플리케이션 및 해당 컨테이너
     SIP 응용 프로그램은 하나 이상의 SIP(Session Initiation Protocol) 서블릿을 사용하는 Java 프로그램으로, SIP는 IP telephony, Presence, 인스턴트 메시징을 포함한 멀티미디어 IP 세션들을 생성, 수정, 종료하는 데에 사용됨.
    ▶ 포틀릿 애플리케이션 및 해당 컨테이너
     포틀릿(Portlet) : 포털 페이지에서 일정 영역으로 정의되어 표시되는, 특별히 재사용 가능한 Java Servlet. 여기서 재사용 가능하다는 말은, 하나의 포틀릿이 온전한 하나의 war파일로 구성되어 있으며 다른 서버에서도 독립적으로 배포 및 사용이 가능하다는 말을 의미. ex) '네이버' vhxjfdptjdml '날씨', '주가' 영역으로 표시되어지는 부분.

  • EJB 컨테이너
    - EJB(Enterprise JavaBeans)를 배포 및 운영하기 위해 필요한 모든 런타임 서비스를 제공하며, 세션Entity Beans에 대한 Request를 다룸.
      **EJB : 기업 환경의 시스템을 구현하기 위한 서버 측 컴포넌트 모델. Java EE의 Java API 중 하나로, 주로 웹 시스템에서 JSP는 화면 로직을 처리, EJB는 업무 로직 및 데이터 접근을 처리 한다고 보면 된다.
    - EJB가 WAS에 설치되기는 하나, 서버와 직접적으로 통신하지는 않는데, 이때 EJB 컨테이너가 EJB와 WAS 간의 인터페이스 역할을 수행.
    - 스레딩 트랜잭션 지원(데이터 접근)을 포함한 많은 Low-level 서비스를 제공.
    - EJB 컨테이너는 컨테이너 내에 포함된 Bean에 대한 데이터 액세스를 처리하며, 이때 각 단일 컨테이너는 둘 이상의 EJB JAR 파일을 호스트할 수 있음.

  • JCA 서비스
    - JCA(Java EE Connector Architecture) : WAS에서 EIS(Enterprise Inforamtion Systems)로접근(Data Access)에 대한 연결 관리의 기반.
    - Enterprise Application과 EIS 간 연결은 EIS에서 제공되는 Resource 어댑터를 사용하는데, 이 Resource 어댑터가 웹 스피어에 플러그인 되어 있음.

  • 메시징 엔진(Messaging Engine)
    - JMS(Java Message Service)
    지원
    - JMS 큐 또는 토픽 시스템을 활용함으로써, 다른 JMS 클라이언트와의 비동기적인 메시지 교환 가능.
      '비동기적인 메시지 교환'이란, Polling을 명시적으로 사용하지 않으며, Message-driven Beans를 사용함을 의미.
    ***Poling(폴링) : 하나의 장치(또는 프로그램)가 충돌 회피 또는 동기화 처리 등을 목적으로 다른 장치(또는 프로그램)의 상태를 주기적으로 검사하여, 일정한 조건을 만족할 때 송수신 등의 자료처리를 하는 방식.
    Default Messaging Provider
     Service Integration Bus를 사용하며, Point-to-Point 방식, Publish & Subscribe 방식 제공. Service Integration Bus에 대응되는 JMS 연결 Factory와 Destination을 정의.
    WebSphere MQ Provider : 외부 JMS Provider로 사용. 큐 기반 메시징 시스템을 제공.
    Generic JMS Provider : JMS 1.0.2 스펙의 ASF 컴포넌트를 구현한다는 가정하에, 다른 Messaging Provider를 사용 가능. Generic JMS Provider에 대응되는 JMS 리소스는 관리자 콘솔로는 설정이 불가함.

  • 서비스 통합 버스(Service Integration Bus)
    - 메시징 서비스 및 SOA(Service-Oriented Applications)를 위한 하나의 통일된 통신 인프라 역할.
     *SOA : 각각의 시스템의 기능들을 업무 단위 기준으로 주요 기능들을 묶어서, 플랫폼으로부터 독립적인 인터페이스(XML, HTTP, CORBA, SOAP 등)를 구현하여 외부로 서비스를 제공.
      => 새로운 업무를 구현할 때 새로운 시스템을 신규 개발하는 것이 아닌, 이미 제공되어 있는 기존의 서비스 단위들을 조합하여 하나의 업무 구현 가능.
    - 신뢰성 있는 메시지 전송 및 네트워크로의 효율적인 메시지 흐름을 적용하기 위한 중재자 로직을 사용하는 JMS Provider 역할.
    - Bus members : Bus에 추가된 어플리케이션 서버들을 말함.
    - Messaging Engine : Bus 리소스들을 관리하는 컴포넌트로, 클라이언트가 메시지를 생성하거나 소비할 수 있는 connection point를 제공.

  • 웹 서비스 엔진
    - 웹 서비스 지원을 담당. 여기서 웹 서비스란, 네트워크를 통해 묘사, 게시, 위치 지정 및 호출이 가능한 자체 내장 모듈러 어플리케이션을 말함. 
    - 유연하고 표준화된 방식으로 리소스와 데이터의 연결 또는 공유를 지원하는 SOA를 구현.
    - 서비스는 동적 자동 검색 재사용을 지원하도록 형성됨.
    - WebSphere 제품은 웹 서비스 Provider Requestor 역할을 하는데, Provider로서는 클라이언트가 사용하도록 게시된 웹 서비스를 호스팅하는 역할을 하며, Requestor로서는 다른 지역의 웹 서비스를 호출하는 어플리케이션을 호스팅함. (위 다이어그램 상으로는 웹 서비스 Provider 또는 게이트웨이와 컨택팅하는 역할로서 묘사됨.)

 

참조

https://www.ibm.com/docs/en/was/9.0.5?topic=websphere-application-server-overview 

 

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기