카테고리 없음

미들웨어 기초 활용하기(NCS 학습모듈)

야생늑대 2022. 8. 27. 20:14
반응형

☆ 미들웨어 파악

 

학습목표 

운영체제와 응용소프트웨어 사이에 존재하는 미들웨어의 역할을 파악할 수 있다.

미들웨어에서 제공하는 기능 및 처리 흐름을 파악할 수 있다.

 

필요지식

1. 미들웨어(Middleware)

1-1 미들웨어 개념

하나의 시스템에서 다양한 목적의 응용소프트웨어가 동시에 수행되거나 복수 시스템의 응용소프트웨어가 서로 연계되어 수행되는 경우에도 안정적으로 실행될 수 있도록 운영체제와 응용소프트웨어 사이에서 다양한 기능을 지원하는 소프트웨어이다.

1-2 미들웨어 주요기능

미들웨어는 분산 시스템 SW, IT 자원 관리, 서비스 플랫폼 및 네트워크 보안 등의 기능을 포함한다.

 

주요기능 설명
분산시스템 SW  - 물리적으로 분산되어 구축되어 있는 다수의 컴퓨팅 환경에서 사용자가 하나의 시스템처럼 사용할 수 있도록 구성된 소프트웨어
IT 자원 관리 - IT 자원에 대한 관리 정책을 기반으로 지속적으로 모니터링하고 성능과 기용성을 관리하는 기능을 제공하는 소프트웨어
서비스 플랫폼 - 서로 다른 서비스들을 하나의 통합 환경에서 인터랙티브하게 사용할 수 있도록 해주는 인터넷 기반 환경 구성 기술
네트워크 보안 네트워크에 연결된 호스트들의 송수신 정보 탈취 및 변조를 통한 불법적인 서비스 이용을 방지하는 기술

1-3 미들웨어 주요 기능별 분류 체계

 

(1) 분산 시스템 SW

분류 설명
웹 애플리케이션 서버 - Web Application Server
- 웹 시스템에서 전달된 Request를 처리하기 위해 트랜잭션 관리, 세션 유지, 부하 분산 등의 역할을 하는 서버의 소프트웨어
연계 통합 솔루션 - 시스템 간 표준화된 데이터 송수신 처리를 통해 통합 환경 구성지원
- EAI(Enterprise Application Intergration, 각 애플이케이션에 어댑터를 설치하고 중앙 허브를 통해 연결하는 방식), ESB(Enterprise Service Bus), 시스템 간 연계 및 메시징 변환 라우팅 등의 작업을 표준 기반 인터페이스를 통해 연결하는 방식) 등 솔루션 존재
실시간 데이터
처리
- 지속적으로 발생하는 데이터를 실시간 분석하고 반응하는 시스템
- CEP(Complex Event Processing, 실시간 발생하는 다양한 데이터를 조합하여 복잡한 상황에 대한 이벤트 또는 유형을 추론하는 방식) 등 존재
분산 병렬 처리 - 대규모 데이터를 실시간 처리, 분석하기 위해 다수의 노드에서 분할 처리
- DDS(Data Distribution Service, 각 시스템에서 교환 데이터 유형을 정의하면 해당 데이터 교환 대상 시스템 검색, 교환 등 처리 수행) 등 존재
TP모니터 - Transaction Processing Monitor
- 트랜잭션 처리 모니터링 및 제어 시스템

 

(2) IT 자원 관리

 

분류 설명
시스템 관리 - 서버의 리소스 및 프로세스 관리 시스템
- 하드웨어 자원 관리, 서버 가용성 모니터링 및 측정, SW 자원 관리, 사용자별 권한 및 사용현황 관리, 서버 보안 관리 등 수행
SW 실행 관리 - 시스템 소프트웨어의 실행 상태 관리 시스템
- 실행 소프트웨어의 아키텍처 분석 사용자 체감 성능 모니터링, 트랜잭션 자동 분석 및 보고서 생성 등 수행
네트워크 관리 - 네트워크 장비, 회선, 트래픽 등 관리 시스템
- 네트워크 장애 검출 및 대응, 네트워크 구성 관리, 네트워크 성능 측정 및 분석/보고, 네트워크 보안 예방/탐지/억제/복수 관리 등 수행
IT 서비스 운영 관리 - IT 시스템의 운영 과정 모니터링 관리 시스템
- 헬프 데스크(Help Desk), 구성 관리, 형상 관리, 문제 관리, 장애 관리, 이행 관리 등 수행

(3)서비스 플랫폼

분류 설명
IoT플랫폼 - IoT 장치를 연결하고 응용 서비스의 설치, 구동, 정지, 해제 등을 제어하고 관리하는 플랫폼
클라우드 서비스 플랫폼 - 클라우드 서버 기반 서비스 제공 플랫폼
UI/UX 프레임워크 - 사용자와 소프트웨어 간 소통 기능 구성을 위해 필요한 라이브러리 및 응용소프트웨어 집합
CDN - Content Delivery Network
- 다수의 노드에 콘텐츠를 복제 저장하여 사용자가 인접 노드에서 빠르게 콘텐츠를 받을 수 있도록 지원하는 시스템

 

(4) 네트워크 보안

분류 설명
네트워크 접근 
제어
- 인가된 사용자만 네트워크에 접근할 수 있도록 검사 및 차단 관리 기술
보안 통신 - 네트워크의 모든 통신 데이터를 암호화하여 데이터의 유출 및 변조를 방지 하는 기술
침임 방지/사고 대응 - 네트워크의 비정상적 트래픽을 탐지하고 대응하는 기술
- SIEM(Security Information and Event Management) 솔루션 등
보안 관리 - 다양한 보안 정책을 통합 관리하고 적용 현황을 분석하여 보안 위협을 탐지하고 관리하는 시스템

 

수행내용  /  미들웨어 파악하기

수행순서

1. 운영체제와 응용소프트웨어 사이에 존재하는 미들웨어의 역할을 파악한다.

  •  운영체제는 응용소프트웨어를 실행히키고 정상적으로 구동될 수 있도록 관리하며 응용소프트웨어 간에 통신을 지원하는 역할을 수행한다.
  • 이러한 처리는 단일 시스템 내에서 수행되는 경우도 있지만, 물리적으로 분리되어 있는 다수의 시스템 간에도 실행되기 때문에, 운영체제는 복잡하게 얽혀있는 응용소프트웨어의 프로세스와 자원들을 통제해야 한다.
  • 미들웨어는 운영체제와 응용소프트웨어 사이에 위치하며 복잡한 처리가 원활하게 수행되도록 지원한다.

1-1 미들웨어의 개념을 학습하고 필요성을 분석한다.

(1) 미들웨어의 개념을 학습한다.

  - 사용자는 미들웨어의 존재를 인지할 필요가 없지만 복잡한 시스템 구성일수록 미들웨어는 중요한 역할을 수행하기 때문에 응용소프트웨어 엔지니어는 정확히 알고 활용할 수 있어야 한다.

미들웨어 개념도

(2) 미들웨어의 필요성을 분석한다.

      -시스템의 규모가 점점 커지고 시스템 간 연결 관계 및 시스템 구성이 복잡해지면서 미들웨어의 필요성은 점점

       부각되고 있다.

구분 필요성 설명
운영체제 처리 효율 향상 - 다수의 응용소프트웨어가 개별적으로 운영체제에 요청하는 작업을 미들웨어가
   중간에서 통합하고 정리하여 운영체제에 요청함으로써 작업 효율 향상
유지보수성 향상 - 개선 요구 사항 발생 시 연결 된 모든 응용소프트웨어를 고려할 필요 없이
   미들웨어만 고려함으로써 개선 작업이 용이함.
응용
소프트웨어
개발 생산성 향상 - 시스템 간 상호작용을 위해서 응용소프트웨어마다 개발해야하는 부분을
  별도로 분리하여 미들웨어로 개발하고, 각각의 응용소프트웨어에서는 미들웨어를
  활용하여 처리하므로써 중복 개발최소화
안정성 향상 - 시스템 제어를 위한 복잡한 기능을 응용소프트웨어마다 직접 개발하는 대신 검증된 미들웨어 모듈을 활용함으로써 시스템 전반의 안정성 향상

   

1-2 미들웨어의 역할을 파악한다.

(1) 미들웨어의 주요 기능 조사

(2) 미들웨어의 유형을 조사

(3) 미들웨어의 적용 사례를 조사

미들웨어 적용사례

(4)미들웨어의 역할을 파악한다.

2. 미들웨어에서 제공하는 기능 및 처리 흐름을 파악한다.

2-1 미들웨어에서 제공하는 기능을 파악한다.

 -오픈소스 웹 애플리케이션 서버 중에서 가장 널리 사용되는 아파치 톰캣을 중심으로 기능 파악하기

(1) 아파치 톰캣 홈페이지 접속

(2) Documentation 메뉴를 클릭하여 User Guide를 확인한다.

(3) 웹 애플리케이션 서버에서 제공 가능한 기능을 확인하여 정리한다.

2-2 미들웨어에서 제공하는 처리 흐름을 파악한다.

(1) 웹 애플리케이션 서버의 구성을 확인한다.

웹 애플리케이션서버는 웹 서버와 웹 컨테이너로 구성되며 웹 서버는 정적 콘텐츠 처리, 웹 애플리케이션 서버는

동적 컨텐츠 처리를 수행한다.

웹 애플리케이션 서버 구성

※ 웹 서버와 웹 애플리케이션 서버

   - 웹 서버는 웹애플리케이션 서버에 포함하여 구성 가능하나 일반적으로 웹 애플리케이션 서버 앞에 별도로 구성한다.

    보안을 고려하여 웹 애플리케이션 서버의 중요한 설정 정보가 외부에 노출되는 위험을 최소화 하기 위해

    DMZ(DeMilitarized Zone, 내외부 네트워크 경계지역) 구간에 웹 서버만 분리하여 설치하기도 하고, 서비스 안전성을 고려하여 웹 애플리케이션 서버가 다운되어도 웹 서버가 사용자에게 안내 메세지를 보여줄 수 있도록 분리하기도 한다.

또한, 서비스성능을 고려하여 웹 서버가 처리 가능한 요청은 웹 애플리케이션 서버까지 전달되지 않고 바로 응답함으로써 웹 애플리케이션 서버의 부하를 경감시키기 위한 목적으로 분리하기도 한다.

 

(2) 웹 애플리케이션 서버의 처리흐름을 파악

(가) 웹 브라우저에서 웹 서버로 데이터 조회 요청(Request) 처리를 확인한다.

       - 웹 브라우저에서 HttpRequest를 전송한다.

(나) 웹 서버가 동적 컨텐츠 제공이 불가능하여 웹 컨테이너로 조회 요청을 전달하는 처리를 확인한다.

       - 웹서버는 HttpRequest를 웹 컨테이너로 전달한다.

(다) 웹 컨테이너가 스레드(Thread)를 생성하여 데이터 베이스와 커넥션을 맺고 데이터를 조회하는 서블릿(Servlet)을

       실행하는 과정을 확인한다. 이때 컨테이너에 서블릿이 생성되지 않은 경우 서블릿을 먼저 생성 및 초기화 하고

       실행하는 것을 확인한다.

       - 웹 컨테이너는 효율적으로 자원을 관리하기 위하여 서블릿을 컨테이너당 한개만 생성하여 관리하며 스레드를

         스레드 풀을 이용해 적정량만 생성하여 관리한다. 웹 서버에서 전달받은 HttpRequest 객체는 서블릿이 이해할 수

         있도록 HttpServletRequest로 변환하고 HttpServletResponse를 생성하여 서블릿에 전달한다.

(라) 서블릿이 데이터베이스를 조회하고 결과를 컨테이너에 전달하는 처리를 확인한다.

       - 서블릿은 HttpServletRequest의 요청 내용을 이용하여 데이터 베이스를 조회하고, 조회 결과는 HttpServletResponse

         에 담아서 웹 컨테이너에 전송한다.

(마) 웹 컨테이너가 처리 결과를 웹 서버에 전송하는 과정을 확인한다.

       - 웹 컨테이너는 HttpServletResponse를 HttpResponse로 변환하여 웹 서버에 전송한다.

(바) 웹 서버가 웹 브라우저로 처리 결과를 전달하는 과정을 확인한다.

       - 웹 서버는 HttpResponse를 웹 브라우저로 전달한다.

 

☆ 미들웨어 운용

1. 전자정부 표준프레임워크

   1-1 전자정부 표준프레임워크의 개념

        - 정부 부처 , 지자체, 공공기관 등의 공공정보화 사업에서 JAVA 기반 웹/ 모바일 시스템 구축 시 활용 되는 개발

         프레임워크로 한국지능정보사회진흥원(NIA)의 표준프레임워크센터에서 Apache 2.0 라이선스로 공개하고 있어

         일반 기업 및 학습 용으로도 활용 가능하다.

전자정부 표준프레임워크 특징

1-2 전자정부 표준프레임워크의 구성

      - 로그인, 세션 관리 등 웹/모바일 시스템 구축 시 공통적으로 개발하는 부분을 공통 컴포넌트로 제공하고,

        개발에 필요한 오픈소스 기반의 개발도구, 실행환경, 관리 환겨으 운영환경 등을 표준 프레임웤로 제공한다.

전자정부 표준프레임워크 구성

2. Scouter

 2-1 Scouter 개념

       - Scouter는 오픈소스 소프트웨어(Apache-2.0 License)로 공객된 애플리케이션 성능 관리(APM : Application Performance Management) 도구로서 응용소프트웨어 엔지니어가 분산 환경에서 안정적으로 시스템을 운영 및 관리하도록 지원하는 미들웨어 이다. C/S(Client/Server) 형태가 일반적이지만 플로그인을 이용하면 Web 기반으로도 이용이 가능하며 오픈소스 소프트웨어이므로 학습용으로도 적합하다.

2-2 Scouter 구성

     -Server,  Client,  Agent 로 구성된다.

Scouter 구성도
Scouter 구성요소

수행내용 / 미들웨어 운용하기

 

수행순서

1. 응용소프트웨어 특성에 따라 미들웨어를 선정하여 설치한다.

 1-1 응용소프트웨어 특성을 파악한다.

   (1) 응용소프트웨어 구축계획서 내용을 파악한다.

     아래 그림을 참고하여 응용소프트웨어의 구축 개요 및 요구 기능 등을 파악한다.

(2) 응용소프트웨어 특성을 파악한다.

   - 예시 자료는 글로벌 내부 직원 및 외부 협력사가 평가 업무에 활용하기 위한 시스템으로 PC, 태블릿, 휴대폰에서

     활용 가능한 시스템이다. PC와 모바일에서 모두 활용 가능한 웹 시스템으로 구성할 수도 있고 PC용 웹과 모바일용

     앱을 별도로 구성할 수도 있기 때문에 요구 기능을 정확하게 파악해야 하며, 네트워크 상황이 열악한 해외사업장에서도

     원활하게 시스템을 사용할 수 있도록 성능 측면의 특성을 파악해야 한다.

 

1-2 미들웨어를 선정한다.

   - 파악된 응용소프트웨어의 특성을 고려하여 미들웨어를 선정한다. 웹 시스템을 구성하기 위해 웹 애플리케이션 서버를

    선정하고 개발 생산성 향상을 위한 개발 프레임워크, 시스템 간 데이터 연계를 위한 EAI 도구, 성능 관리를 위한

    모니터링 도구등을 선정할 수 있으며, 실무에서는 기업마다 개발 표준을 사전에 정의해두고 이를 기반으로 선정하기도

    한다.

1-3 미들웨어를 설치한다.

  - 다양한 미들웨어 선정이 가능하나 이번에는 실습 환경을 고려하여 오픈소스 소프트웨어 기반으로 웹 시스템을 

    구축하는 환경을 저으이하고 전자정부 프레임워크, Scouter 등 관련 프로그램을 설치한다.

(1) 웹 시스템 개발 및 실행환경을 구성하기 위한 미들웨어를 정의한다.

※ 수행 TIP

  •  오픈소스 소프트웨어를 이용하는 경우에는 라이선스를 반드시 확인해야 한다. 특허 출원 예정인 소프트웨어를 GPL     라이선스 소프트웨어를 활용하여 만드는 경우 수정한 소스코드를 공개해야 해서 문제가 될 수 있다. 충분한 검토 후     이용하도록 한다.
  • 응용소프트웨어 개발환경 구성 시에는 다양한 소프트웨어를 동시에 설치해야 하므로 소프트웨어들의 버전을 잘 확인해야 한다. 특히 전자정부 표준프레임워크의 경우 전자 정부 표준프레임워크의 버전과 호환되는 각 소프트웨어의 버전을 제시하고 있으며 이를 준수하지 않는 경우 설치 및 실행에 많은 오류가 발생될 수 있다.

(2) 응용소프트웨어 개발을 위한 미들웨어 소프트웨어를 설치한다.

    (가) OpenJDK(Open Java Development Kit) 포털(https://openjdk.java.net/)의 다운로드메뉴에서  운영체제에 맞는

           소프트웨어 다운로드, 설치하고 시스템  환경변수에 JAVA_HOME, Path를 설정한다. 정상적으로 설치되면

          명령 처리기에서 java -version 명령어로 설치버전 확인한다.

(나) PostgreSQL 포털(https://postgresql.org/)의 다운로드 메뉴에서 운영체제에 맞는 소프트웨어 다운로드, 설치한다.

       PostgreSQL의 pgAdmin으로 쿼리를 조작할 수도 있지만 DBeaver와 같은 데이터베이스 관리 도구를 이용하면

       데이터베이스 조작이 용이하다.

(다) 전자정부 표준프레임워크 포털(https://www.egovframe.go.kr/)의 개발환경 다운로드 메뉴에서 운영체제에 맞는

       소프트웨어를 선택하고 포털의 개발 가이드를 참고하여 개발 도구인 이클립스와 빌드 도구인 메이븐을 설치한다.

(라) Apache Tomcat 포털(https://tomcat.apache.org/)의 다운로드 메뉴에서 학습자의 운영체제에 맞는 소프트웨어를

      선택하여 설치 한 후 개발 가이드를 참고하여 이클립스에 서버 설정을 한다.

(마) 전자정부 표준프레임워크 포털(https://www.egovframe.go.kr/) 공통 컴포넌트 다운로드 메뉴의 배포파일을 다운받고

       개발 가이드를 참고하여 설치한다.

(바) 다운받은 공통 컴포넌트의 script 폴더에 포함되어 있는 postgreSQL 테이블 생성용 DDL(Data Definition Language)과

       데이터 생성용 DML(Data Manipulation Language)을 이용해 postgreSQL에 테이블을 생성하고 필수 데이터를

      입력한다.

(사) 전자정부 표준프레임워크는 다양한 DBMS(DataBase Management System)를 지원하며 설정을 바꿔서 사용할 수

      있다. 여기선 PostgreSQL을 이용할 수 있도록 환경을 설정한다.

 

(3) 응용소프트웨어 운영을 위한 미들웨어 소프트웨어를 설치한다.

     - 안정적인 운영을 위해 APM(Application Performence Monitoring) 도구인 Scouter를 설치한다.

(가) Scouter 설치 프로그램을 다운로드한다.

      - 아래 그림을 참고하여 scouter 서버 및 에이전트 설치 파일과 클라이언트 설치 파일을 학습자의 운영체제에 

        맞춰서 다운로드 받는다.

scouter 설치 파일 다운로드

(나) Scouter Server를 실행한다.

     - scouter-all 을 C 드라이브에서 압축을 풀고 server 폴더 아래의 startup.bat 파일을 실행하여 Scouter Server를

       기동한다. 명령 프롬포트에서 netstat -an:find 6100  명령어를 입력하면 Agent의 성능 측정 결과를 수신하기 위해

       Listening 상태로 대기 중인 것을 확인할 수 있다.

Scouter Server 실행

(다) Scouter Agent를 실행한다.

     - WAS(Web Application Server)인 Tomcat의 성능을 측정하기 위해 이클립스의 서버 정보를 더블클릭하여 표시되는

      Open Launch Configuration의 VM arguments에 아래 그림과 같이 Java Agent 정보를 추가하고 Tomcat을 실행한다.

-Scouter Java Agent 실행

※ VM arguments 에 복사 붙여넣기 

-javaagent:"C:\scouter\agent.java\scouter.agent.jar"

-Dscouter.config="C:\scouter\agent.java\conf\scouter.conf"

-Dobj_name=scouterapptestWeb

 

(라) Scouter Client를 실행한다.

     -다운로드받은 scouter-client 파일의 압축을 풀어 scouter 파일을 실행하고 Server 정보와 ID, Password에

      초기 기본 값인 admin을 입력한다.   

(마) WAS 성능을 모니터링한다.

      - scouter client를 통해 scouter server가 Java Agent로부터 수집한 Tomcat의 성능 측정 정보를 모니터링 한다.

        Object에서 Java Agent 설정에 입력했던 명칭을 확인할 수 있고 Recent Usser에서 최근 Tomcat 사용자 수를 확인

       할 수 있으며 TPS(Transaction Per Seconds) 통해 초당 트랜잭션 처리 건수를 확인할 수 있다.

Scouter WAS 모니터링

2. 응용소프트웨어 특성에 따라 선정된 미들웨어를 운영한다.

   - WAS에 접속 가능한 최대 세션 수가 초과하여 시스템을 이용할 수 없는 상활을 실습해보기 위해 Tomcat에 

    최대 사용자 수를 2로 변경한 후 3번 접속해보고 해당시점에 Scouter의 변화를 확인한다.

2-1 Tomcat의 최대 세션 수를 2로 설정하고 Tomcat을 재기동 한다.

Tomcat 최대 세션 수 설정

2-2 시스템에 3회 접속을 시도하여 세션 초과 오류가 발생하는 것을 확인한다.

Tomcat 체션 초과 오류 발생

2-3 Scouter Client로 WAS 상태를 모니터링한다.

    - Recent User 수가 변동 없고 XLog에 Elapsed가 없이 빨간색 오류가 표시된다.

Scouter 세션 초과 모니터링

 

반응형