ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 241226_WEB/WAS 특징 및 장단점
    미들웨어 2024. 12. 26. 11:10

    WEB : 정적 콘텐츠 (ex : HTML, CSS, 이미지) 제공

    1. WebToB

    - 특징 : 웹의 HTTP를 사용하여 웹 페이지가 들어있는 파일을 사용자들에게 제공하는 웹 서버. 기존 웹 서버가 가지고 있는 구조적인 문제를 개선하여 성능 및 안정성에서 탁월한 기능을 제공함.
    또한, 웹 상에서의 대규모 트랜잭션 처리에 적합하도록 설계되어 처리 속도 지연, 서버 다운 등 웹 시스템의 문제를 효과적으로 소화함.

    - 장점 : 높은 성능, 기업 환경에 최적화, 보안 기능 우수
    - 단점 : 상용 제품으로 비용 발생, 설정 복잡

    2. iPlanet

    - 특징 : GUI 기반의 관리 툴을 통해 다수의 인스턴스 관리 및 구성을 편리하게 수행하도록 하며, Clustering 기능을 통한 확장성 및 페일 오버를 제고함으로써 대규모 웹 시스템에 최적화된 환경 제공
    Scaleablity : Multi-thread 형식의 애플리케이션, In-process Java container, 64 bit 지원 가능.
    SPECweb2005 성능 자료 보유, 캐싱 HTTP 압축, Data Center 친화적 - 표준 text 파일 형태의 구성 파일로 CVS 같은 버전 관리 툴을 통해 관리 가능.
    Health check를 위한 통계 제공 및 SNMP 지원
    Dos 공격으로부터의 자체 방어를 위한 요청 매핑.
    통합된 Reverse Proxy; URL rewriting 보안
    내장된 접근 제어 가능
    사용자 관리를 위한 LDAP 및 DB연계, SSL 기능 default 설정, Eliptic Curve Cyptography, Dos 공격 인지, Cross-site script 감지, WebDac ACL Extensiblity, 서버 Capacity 확장을 위한 다양한 API 보유 (NSAPI, Java EE S Sevlet/JSP, FastCGI 등

    - 장점 : 엔터프라이즈 환경에 적합, 보안 및 확장성 뛰어남.
    - 단점 : 오래된 기술 스택, 커뮤니티 지원 부족

    3. IIS (Internet Information Services)

    - 특징 : 마이크로소프트에서 개발한 웹서버 Windows Server와 밀접하게 통합되어 있음. 주로 Windows 기반의 기업 환경에서 사용. ASP, .NET 애플리케이션을 지원하는데 최적화되어있음. 그래픽 인터페이스를 통한 직관적인 관리. Microsoft 제품군과의 쉬운 통합.

    - 장점 : (특징에 있으니 생략)
    - 단점 : Windows에 종속적, 대규모 트래픽 처리에 한계, 라이선스 비용 발생, 오픈 소스 커뮤니티 지원 부족.

    4. Apache

    - 특징 : [스레드/프로시스 기반 구조 -> 클라이언트 요청 건당 하나의 스레드 처리 구조 (1:1) 1:1 구조로 사용자가 많다면 스레드 생성, 메모리 CPU 낭비가 심함.]
    [MPM (Multi-Pricess Module) 방식 : PreFork MPM 방식 (다중 프로세스) Client 요청은 Apache 자식 프로세스 생성 및 처리 진행, 다중 요청에 따른 Process 생성 처리 (default 설정), 하나의 자식 프로세스는 하나의 스레드 구조이며, 자식 프로세스는 최대 1024개까지 가능, 스레드 간 메모리 공유 X (독립적이라 안정적이지만 메모리 소비가 큼) 실행 중인 프로세스 복제 (메모리 영역 포함) 응답 프로세스를 선호출 후 클라이언트 요청시 자식 프로세스 반응 방식.
    쉬운 디버깅 기능, Single $ Dual CPU에서 성능 좋음.]
    [Worker MPM 방식 (멀티 프로세스 - 스레드 ) : Prefork보다 메모리 사용량 낮음. 동시 접속자 수는 많음. (각 프로세스의 스레드를 생성하여 처리하는 구조) 스래드 간의 메모리 공유 O, 프로세스당 최대 64개 스레드 처리 O, 각 스레드는 하나의 연결만 받음.
    Multi CPU 시스템에서 성능이 좋음

    동적 컨텐츠 처리, 다양한 모듈
    오픈 소스(무료), JBoss와 연동 최적화, 다양한 플랫폼 지원.

    기술 지원이 부족할 수 있음. 고급 기능 부족.


    - 장점 : 파란색
    - 단점 : 분홍색

    WAS (Web Application Server) : 동적 콘텐츠 (ex : 사용자 로그인, DB 접근) 처리

    1. JEUS

    - 특징 : 웹 환경에서 애플리케이션을 개발, 운용, 실행할 수 있는 플랫폼 역할을 하면서 필요한 각종 서비스를 제공해주는 WAS. JAVA 표준이자, 세계 표준인 Jakarta EE 8 Full Spec 지원. 대용량 트랜잭션의 처리는 물론 클라우드 환경에 최적화된 제품으로 안정성 및 고성능을 기반으로 편의성, 호환성 측면의 기능 구현.
    Auto Scaling 지원 : 컨테이너 및 VM 환경에서 Master 기능을 통해 Auto Scale In/Out 기능을 사용할 수 있으며 On-Premise 환경과 동일하게 Session Clustering 지원.
    Security API 제공 : 자체적으로 포함된 보안 API를 제공하여, 보안 부분에 대한 표준화된 방법을 제공하여 개발용이성 향상
    다양한 고성능 처리 기술 탑재 : 고성능 처리 를 위한 검증 받은 최신의 기술들을 내재화하여 제공.
    JMS 클러스터링 Durable과 SharedDurable 단위의 JMS 클러스터링을 지원하여 향상된 고가용성을 제공.
    (Multi-Thread & Pooling & NIO : Servlet Worker Thread Pooling 기능 제공, DB Connection Pooling, NIO (Non Blocking IO)를 통해 OLTP 환경에서 성능 향상)
    (Memory Caching : WebtoB 캐싱 알고리즘 개선 통한 성능 향상 (HTML, 이미지 등), Statement Caching을 설정하여 DB와의 통신 횟수를 줄임. EJB Transaction Cache 동기화)
    (Local Optimization : EJB 호출을 위한 Local Optimization 처리, XA Transaction Local Optimization 처리)
    (부하 분산 : 클러스터링 된 WAS 노드의 각종 자원에 대한 부하 분산 기능, Sticky Session 처리를 통한 처리 성능 극대화, 웹 서버 연계를 통한 WAS 부하 분산)
    (Local IPC 통신 : 일반 Web Server-WAS 서버간의 소켓 통신보다 성능이 월등한 Stream Pipe 통신 지원 단일 하드웨어 내에서 WebtoB, Jeus 통신 시 활용)
    (In-Memory JSP Compilation : 변경된 JSP 애플리케이션에 대하여 메모리상에서 컴파일을 수행하는 방식을 채택, File I/O Operation을 줄여 최초 서비스 시간을 단축)

    - 장점 : 위에 있지만 간단하게 말하자면 빠른 성능, 낮은 리소스 사용?, 보안 기능 우수
    - 단점 : 상용 제품으로 고비용, 커뮤니티 지원 부족

    2. WebLogic

    - 특징 : 엔터프라이즈 애플리케이션을 구축하고 배포하기 위한 애플리케이션 서버. 확장성 - 조직에서 대량의 트랜잭션을 효율적으로 처리할 수 있음. 다양한 Oracle 제품 및 타사 서비스와 강력한 통합 기능을 제공하여 복잡한 환경에서 유용성을 향상시킴. 그러나 높은 라이선스 비용이 들 수 있으며 구성 및 관리의 복잡성으로 인해 전문 지식이 필요하여 운영 오버헤드가 증가 할 수 있음. 전반적으로 엔터프라이즈 애플리케이션에 좋은 기능을 제공하지만 비용과 복잡성으로 인해 모든 조직에 가장 적합하지 않을 수 있음. 이는 소규모 조직의 경우 상당한 단점. (고가용성, 확장성 : 조직이 증가하는 워크로드를 원활하게 처리할 수 있음. 클러스터링, 로드밸런싱, 장애 조치와 같은 고급 기능을 제공하여 최대 사용 또는 하드웨어 장애 시에도 애플리케이션이 작동 상태를 유지하도록 함. 또한 광범위한 프로그래밍 모델과 프레임워크를 지원하여 개발자가 다양한 애플리케이션을 효율적으로 빌드할 수 있음.
    Oracle 에코 시스템과의 통합은 성능과 보안을 강화시키는 반면, 포괄적인 모니터링 및 관리도구는 보다 쉬운 관리 및 문제 해결을 용이하게 함. 전반적으로 WebLogic은 기업이 안정적이고 안전하며 고성능 애플리케이션을 제공할 수 있도록 지원함.

    - 장점 : 정리하자면 뛰어난 확장성, 다양한 기업용 기능 지원, 안정적인 트랜잭션 관리
    - 단점 : 설치 및 유지보수 복잡, 고비용.

    3. WebSphere

    - 특징 : 트랜잭션 관리, 보안, 클러스터링, 기능성, 가용성, 연결성, 확장성에 이르는 완전한 애플리케이션 서비스 세트를 구비하고, 개방형 테크놀로지와 API들을 활용하는 동시에 기업 전반의 애플리케이션에 대한 관리와 통합 지원.
    고객 프로파일 정보, 거래 데이터, 고객 선택 정보 등 개인화된 정보를 기반으로 고객의 취향과 기호에 맞는 상품과 서비스를 제공할 수 있는 e-비즈니스 사이트 구축 지원, 강력한 개인화 지원 엔진을 구비한 소프트웨어 플랫폼을 통해 운영 환경 범위 확장과 더불어 e-비즈니스 뿐 아니라 인트라넷, 엑스트라넷, SCM 등 다양한 비즈니스 환경에서 외부 고객 외에도 내부 직원까지 대상.
    네이티브, 가상 머신 및 애플리케이션 컨테이너 배치 방법 중에서 선택할 수 있는 멀티 클라우드 환경 지원, 현재와 미래의 비즈니스 니즈에 가장 적합한 모델을 결정해주는 유연한 라이센싱 모델이며 운영 안정성, 확장성, 가용성, 관리성을 향상할 수 있는 지능형 관리 기능이 가능함. 보안 표준, 통합 관리 및 관리 도구에 대한 광범위한 지원을 활용할 수 았는 보안성 및 제어력이 개선됨. 손쉽게 설치하여 빠르게 시작할 수 있으며 향후에 런타임 마이그레이션을 수행할 필요없이 애플리케이션 또는 구성 변경에 능동적으로 대응할 수 있듯이 개발자 생산성이 향상됨.

    - 장점 : 위의 글 참고, +엔터프라이즈급 안정성, 다양한 시능 및 도구 제공, 강력한 트랜잭션 관리.
    - 단점 : 플랫폼은 디멘드웨어에 의해 주최되기 때문에, 개발자들은 맞춤화 및 개발을 완전히 통제하지 못할 수 있음. 또한 업데이트 및 릴리스를 구현하는데 시간이 걸릴 수 있는 승인 계층이 있음. 파트너 수 및 통합이 상대적으로 제한됨. 고비용, 설정과 관리의 어려움.

    4. Tomcat

    - 장점 : 데이터 흐름이 유동적, DB 등 여러 서비스가 가능, 오픈 소스 (무료), 설치와 설정이 쉬움, 경량화된 서버
    - 단점 : 속도가 느림, 부가적인 비용 발생, 트래픽 과부하에 약함, 고급 기능 부족, 대규모 시스템에 한계.

    4. JBoss

    - 특징 : 엔터프라이즈 환경에서 미들웨어가 갖춰야 하는 대용량 트랜잭션, 고가용성을 위한 클러스터링, 메시징, 분산 캐싱, 고성능 보장 등의 기술 제공.
    모듈형 클래스 로딩 : 기존에 사용하던 계층형 클래스 로더를 사용하는 경우에는 부모와 자식 클래스 로더 간에 동일한 클래스의 충돌로 인하여 개발자나 관리자에게 많은 어려움에 있었고, 이를 해결하기 위해 많은 시간을 소모함.
    JBoss EAP 6에서 사용되는 JBoss Modules는 배포된 모듈마다 검색 범위가 한정되고 그 내부에서도 패키지마다 인덱스 되어 있어 신속하게 클래스를 로드할 수 있으며, JBoss Module을 통해 의존성을 사용하여 애플리케이션에서 사용하는 클래스와의 충돌을 회피할 수 있게 됨. 또한, 애플리케이션이 요청할 때 클래스를 병렬로 빠르게 로드할 수 있는 장점이 있음.
    효율적인 메모리 사용 : GC 정지 시간을 최소화하기 위해 jar 파일에 대한 색인 데이터를 사용하는 방법이나, 모든 클래스를 로딩해 놓는 것이 아니라 애플리케이션에서 사용하는 시점에 로드하는 방법 등 메모리를 효율적으로 사용하기 위한 많은 개선점이 생김. 이런 방식을 사용하여 메모리 사용량이 크게 줄었으며, 최적화된 메모리 사용으로 소형 디바이스니 아마존 AWS와 같은 클라우드 환경에서 사용이 쉬워짐. 또, Profile을 정의하여 애플리케이션에서 사용하지 않는 기능 ( mail, messaging 등)을 손쉽게 제거할 수 있어 최적화된 상태로 서버를 운영할 수 있음.
    인덱스를 이용한 성능 향상 : Web Application Server에 애플리케이션 배포시 XML과 어노테이션 클래스를 리플렉션으로 스캔하는 것은 리소스에 많은 부담을 줌. 이런 문제를 개선하기 위해 JBoss EAP 6에서는 클래스 인덱스 및 주석 인덱스를 이용하여 클래스 정보를 얻을 수 있으며 한 번 로드된 클래스 정보는 캐시되어 실제로 호출되는 횟수를 최소화 함. JBoss EAP 6 에서 애플리케이션 배포와 관련된 부분들은 jar 파일내의 클래스들에 대한 인덱스를 만들어 두었다가 사용하기 때문에 클래스를 스캔할 때 발생하는 병목 문제를 해결할 수 있음.
    중앙 집중화된 설정 파일과 편리한 관리 도구, CLI를 통한 커맨드 형식의 관리, standalone Mode - 인스턴스를 개별적으로 관리할 수 있으며 서버 별로 개별 프로세스를 제공하는 방식. 별도의 관리 프로세스가 없으며, 여러 개의 독립적인 프로세스를 대상으로 HA 클러스터링을 통해 묶어서 사용 가능.
    Domain Mode : 도메인 컨트롤러라고 불리는 프로세스가 전체 도메인 관리를 담당하며 각 머신 상에서 동작하는 호스트 컨트롤러에서 실제 서비스를 담당하는 서바 인스턴스를 관리함.

    - 장점 : 오픈 소스 (무료), JBoss와 연동 최적화, 다양한 플랫폼 지원
    - 단점 : 기술지원이 부족할 수 있음. 고급 기능 부족



    작은 프로젝트 : Tomcat + Apache
    기업용 대규모 프로젝트 : WebLogic + WebtoB
    Windows 환경 : IIS + WebLogic

Designed by Tistory.