2010년 6월 29일 화요일

엔터프라이즈아키텍쳐

1. 애플리케이션,솔루션,엔터프라이즈의 관계

 

  엔터프라이즈의 기념

  기업,회사의 의미라기 보다는 실제적으로 데이터를 공유할 필요가 있는 영역(다수의 회사일수도 있음)을 지칭하는 개념

 

  애플리케이션과 서비스 차이

  애플리케이션은 개발자를 중심으로 정의된 용어이고, 서비스는 고객 중심의 용어로 이런 차이로 인해서 EAI가 나온뒤 ESB의 개념이 추가되었다.

 

  각종 용어

 

  ERP(Enterprise Resource Planning)

  - 실제적으로 데이터를공유할 필요가 있는 영역의 다양한 Resource(사람,기계,절차 등)에 대한 계획을수행하는 프로그램

 

  EAI(Enterprise Application Integration)

  - 실제적으로 데이터를 공유할 필요가 있는 영역에 있는 애플리케이션의 통합과 관련된 프로그램

 

  ESB(Enterprise Service Bus)

  - 실제적으로 데이터를 공유할 필요가 있는 영역에 있는 다양한 서비스(사용자가 원하는 기능을 제공하기 위한 기본 단위)를 연결하는 프로그램

 

 

  애플리케이션과 솔루션의 관계

  솔루션은 엔터프라이즈의 구성단위, 개발자 관점에서 단독적으로 수행 가능한 기능 단위(보안솔루션,인증솔루션 등)

  애플리케이션은 개발자 관점에서 개발된 단위 작업 수행 프로그램(신규인증유저 등록 등)

 

 

       -----------E1-----------                엔터프라이즈

     --S1--       --S2--     --S3--              솔루션

    A1 A2 A3    A4 A5 A6    A7 A8 A9          애플리케이션

 

 

 

2. 시스템, 소프트웨어 아키텍처의 개념

 

  시스템

   - 유일한 기능을 수행하기 위하여 연관된 다양한 구성 요소의 모임 (회사, 컴퓨터, 모니터 등)

 

  아키텍처

  - 구성요소와 요소간의 연관관계를 정의한 것

  - 컴퓨터 아키텍처는 컴퓨터라는 시스템을 구성하는 요소와 요소 간의 관계를 Top-Down/Bottom-Up의 형태로 서술한 것이다.

 

 

 

3. 소프트웨어 아키텍처의 개념

  개념

  소프트웨어의 구성요소와 기능, 그리고 그들의 상호 관계에 대한 것을 정리

 

  실제적으로 수행하는 일

  - 시스템을 기능별로 분할

  - 분할된 기능을 체계화 하기 위하여 공통 기능 추출 및 관련 작업 수행

  - 준비된 자료를 체계적으로 정리하여 문서화

 

  어떤 필요성?

  개발자와 업무수행자(일반인) 사이의 의사 소통을 위한 방법으로 만들어짐

 

  일반인 - 업무에 대한 이해만 가진 상태로 자신이 사용하는 시스템은 전혀 모르는 상태

  전문가 - 업무에 대한 이해가 낮으며 일반인이 시스템을 모른다는 사실을 간과함

  위의 일바인과 전문가의 의사 소통을 위한 도구가 소프트웨어 아키텍처가 개발되었다

 

  의사 소통을 위해 필요한 다양한 정보를 표현하기위해 다양한 형태로 제작된 자료가 필요하다.

  카네기멜론대학은 다음과 같이 세가지 관점에서 제작하도록 제시했다.

 

  개념적 관점 : 소프트웨어를 구성하는 구성 요소(component)를 식별하고, 각 구성 요소의 역활을 명시하는 단계

  논리적 관점 : 구성 요소 간의 상호 연계성 및 연결 방법을 정의하고, 주고 받는 정보의 상세 내용을 정의하는 단계

  실행적 관점 : 실행 환경에서 구성 요소 인스턴스의 상호 자료 교환, 시스템 자원의 사용, 자원 구송 등에 대한 상세 사항을 정의하는 단계

 

  구성요소(component)란? 개발자 관점에서 시스템을 구성하는데 필요한 기능단위

 

 

  각 단계별 세분화된 자료 가이드라인

 

  개념적 관점

    - 행동적 관점 : Collaboration Trace

    - 구조적 관점 : Architecture Design, Informal Component Spec

 

  논리적 관점

    - 행동적 관점 : Collaboration Diagram

    - 구조적 관점 : Architecture Design with I/F, Interface Spec

 

   실행적 관점

     - 행동적 관점 : Collaboration Diagram Showing process

     - 구조적 관점 : Architecture Diagram Showing Action Component

 

   위의 8개의자료는 일반인과 전문가 사이의 의사 소통을 위한 것으로 필요시 더 늘어날 수도 있고 줄여서 사용할 수도 있다. 중요한 것은 의사 소통이지 자료가 아니란 것을 잊어서는 안된다

 

 

 

4. 엔터프라이즈 아키텍처의 개념

 

  정보시스템 아키텍쳐란?

 

  소프트웨어 아키넥처의 개념을 정립한 후 이것을 전체 전산 환경으로 확장하여 적용하면 "정보 시스템 아키텍쳐"라는 개념이 수립된다.

 

  정의하면?

  전체적인 정보 시스템을 구성하는 구성 요소나 빌딩 블록을 정의한 것.

  그리고 Product(Solution과 동일 수준의 용어, 개발자 시각에서 본 것) 구성을 위한 계획과 이에 따르는 개발 계획을 전체 시스템의 관점에서 수립하는 것

 

  엔터프라이즈 아키텍처란?

  이러한 정보 시스템 아키텍처를 전체조직(enterprise)관점에서 적용한 것이 엔터프라이즈 아키텍처이다.

 

  정의하면?

  "애플리케이션/소프트웨어 아키텍처",  "기술적 아키텍처",  "정보/데이터 아키텍처",  "조직/비즈니스 아키텍처 " 를 포괄하는 개념으로 하부의 모든 아키턱처가 가져야하는 기본을 정의한다. 이를 통하여 시스템의 일치성,통합성,연결성,보안,유연성,재사용성을 높여서 비용 절감과 경쟁력을 향상시킨다.

 

 잘만들어진 엔터프라이즈 아키턱처는 변화의 과정을 신속하게 수행할 수 있으며, 파급되는 다른 문제를 발생시키지 않는다.

 

  관련된 많은 도구들

  Zachman이 발표한 Enterprise Architecture A Framework

 

  엔터프라이즈 아키턱처를 구현할 때 고려사항을 X축과 Y축에 놓고 각각에 항목에서 제작되어야 하는 것을 종합적으로 정리한 것이다.