본문 바로가기

강의 정리/소프트웨어 분석 및 설계

소프트웨어분석및설계 (13) 컴포넌트 모델과 OOP /

- 컴포넌트란 무엇인가?

- 클라이언트 컴포넌트와 서버 컴포넌트는 어떻게 구분하는가?

 

- 클라이언트 컴포넌트

  • 로컬 자원을 사용하여 작업을 수행.
  • 서버에게 데이터를 요청하거나, 특정 작업을 수행하도록 요청을 보낸다.
  • 사용자와 직접 상호작용.
  • 주로 GUI 컴포넌트: 버튼, 리스트, 스프레드 시트.

- 서버 컴포넌트

  • 클라이언트의 요청을 처리, 응답을 제공.
  • 서버의 중앙집중 자원 사용, 다수의 클라이언트 요청에 응답.
  • 컨테이너 안에 포함되어 통신. 이때 통신은 서버 내부에 들어있는 비즈니스 오브젝트들이 서로 통신하는 것.
  • EJB(Enterprise Java Beans), CORBA(Common Object Request Broker Architecture) 등.

 

- 컴포넌트 아키텍쳐

  • 플러그-인 된 컴포넌트를 관리하는 시스템
    • 컴포넌트가 어떤 기능을 수행하는지
    • 컴포넌트의 서로 통신하는 방법
    • 컴포넌트를 생성/찾는 매커니즘
    • 기타 기반 서비스
  • 컨테이너의 역할
    • 컴포넌트의 생성, 소멸, 생명주기 관리 제공.
    • 클라이언트 - 컴포넌트 사이 메시지 패싱 관리.
    • 트랜잭션, 보안 등 다수의 컴포넌트들이 사용하는 기반 서비스 제공.

 

- 컴포넌트 아키텍쳐 1 -  Web Application Server (WAS)

 

 

- 컴포넌트 아키텍쳐 2 - CORBA

 

IDL(Interface Description Language)로 자바/C++ 등의 각자 다른 언어를 표준 언어로 전환.

스텁을 통해 ORB로 접근.

 

 

- 컴포넌트 아키텍쳐 3 – 계층 아키텍처

계층을 나누는 이유: 계층간의 독립성 확보, 각 레이어마다 어울리는 프로그램으로 구성.

  • 사용자 인터페이스: Windows widget, GUI 컴포넌트
  • 사용자 다이얼로그: 한 세션에서 발생하는 사용자 상호작용 관리
  • 시스템서비스: 비즈니스 서비스의 접속장치
  • 비즈니스 서비스: 핵심 비즈니스 정보업무, 규칙 표현

4개의 계층으로 나눠서 컴포넌트들을 정의.

 

 

 

- EJB 구성요소

 

- EJB 프로그래밍 단계

  1. 인터페이스 작성
    • 홈 인터페이스: 엔터프라이즈 빈을 클라이언트가 사용할 수 있도록 생성, 탐색함
    • 리모트 인터페이스: 엔터프라이즈 빈이 클라이언트에게 제공하는 메서드를 선언함
  2. 응용 클래스 작성
    • 엔터프라이즈 빈이 실제 어떤 일을 하는지를 구체적으로 정의한 클래스를 작성함

 

  • 홈 인터페이스: HelloHome.java

  • 리모트 인터페이스: Hello.java

  • 세션빈 클래스: HelloBean.java

 

  • 클라이언트: helloClient.java

 

 

 

- 시스템 컴포넌트 명세

 

- 통합 아키텍쳐

 

- 명세의 실현

 

 - 배치의 개념

  • 물리적 구현물 (HW, SW)의 배치에 관한 정보를 표현함
  • 대상: 프로세서, 디바이스, 네트워크, DB, 응용 소프트웨어
  • 노드(node) 단위로 표현함

 

- 노드의 표현

 

- 홈 시스템 배치

 

 

- CoCoME - The Common Component Modeling Example

 

 

- CoCoME Use case