반응형

SW/클라우드 서비스 아키텍처 27

SERVICE MASHUPS, MICROSERVICES : 개념, 개요, 설명, 정의

Service Mashups 웹 환경에서 Mashup이라는 개념이 등장하게 되었습니다. 이것은 하나 이상의 Resource로부터 데이터를 수집하고 통합해서 웹 애플리케이션 만듭니다. 최근에는 이 개념이 Service Mashup까지 포함돼서 확장이 되었습니다. Service Mash-ups Architecture Service Mashup은 앞에서 배우셨던 OpenAPI를 사용해서 다양한 서비스로부터 콘텐츠와 기능들을 받아 통합함으로써 애플리케이션을 제작합니다. Mashup에는 OpenAPI 뿐만 아니라 RSS와 같은 Web Feed도 많이 활용합니다. 서비스 Mashup을 위한 아키텍처는 일반적으로 세 가지 요소로 구성됩니다. 먼저 Mashup할 콘텐츠를 제공하는 Content Provider가 있습니..

Open API 아키텍처 : 개념, 개요, 설명, 정의

OpenAPI OpenAPI는 Application Programming Interface, 즉 API가 오픈되었다는 의미입니다. OpenAPI는 웹사이트의 정보와 서비스 기능을 API를 통해 직접 접근할 수 있도록 합니다. 웹사이트 상호간 또는 웹사이트와 애플리케이션이 서로 연동될 수 있도록 하기 위한 것으로서 Web 2.0 트렌드의 가장 중요한 기술 중에 하나입니다. 즉, OpenAPI를 사용하면 우리는 다른 웹사이트로부터의 서비스를 Outsourcing해서 사용할 수 있습니다. OpenAPI를 사용할 수 있도록 하는 기술적 방법의 대표적인 것은 JavaScript와 같은 웹애플리케이션 구현 언어를 사용하는 Language API, SOAP RPC를 사용하는 방법, REST 기술을 사용합니다. Ope..

클라우드 컴퓨팅 : 개념, 특징, 개요, 설명, 종류

클라우드 컴퓨팅 클라우드란 분산 컴퓨팅을 위한 플랫폼입니다. 이 클라우드에 연결된 컴퓨터와 각종 기기들이 컴퓨팅 자원과 데이터를 On Demand로 필요에 따라 공유하고 활용할 수 있도록 하는 환경입니다. 클라우드를 통해 공유 가능한 컴퓨팅 자원으로는 네트워크, 서버, 저장소, 애플리케이션, 서비스 등이 있습니다. 클라우드 컴퓨팅 특징 이러한 클라우드 컴퓨팅 환경은 몇 가지 중요한 특징들이 있습니다. 먼저 매우 Scalable하고 Dynamic한 인프라스트럭처입니다. 즉, 많은 사용자들이 필요에 따라 가상의 서버와 저장 공간을 클라우드에서 동적으로 할당받아 사용할 수가 있습니다. 두 번째 특징은 언제 어디서나 이러한 자원들을 Access할 수 있습니다. 즉, 네트워크 연결만 있으면 클라우드 자원들을 언제..

REST API 아키텍처 : 개념, 방법, 개요, 설명

Representational State Transfer (REST) Language API를 사용하는 것뿐만 아니라 최근에는 REST라고 하는 방법을 사용하여 OpenAPI 서비스들을 제공하는 웹사이트들이 늘어나고 있습니다. REST는 Representational State Transfer의 약자로서 웹의 분산된 Hypermedia 콘텐츠를 접근하기 위해 개발된 Software Architecture Style입니다. 이 REST 아키텍처에서는 웹의 각 Hypermedia 자원이 고유한 주소를 가지고 있습니다. 이 자원에 대한 수정이 HTTP 인터페이스를 통해 Domain Specific한 데이터를 전송함으로써 이루어지게 됩니다. 즉, SOAP을 활용해서 메시지를 전달할 필요가 없이 애플리케이션에서 ..

서비스 기반 아키텍처 스타일 : 방법, 종류, 정의, 개요, 개념

SOA Layers 이 서비스 기반 아키텍처, 즉 SOA는 소프트웨어 아키텍처 스타일입니다. 이 아키텍처 스타일은 서비스 공급자가 제공하는 서비스를 서비스 소비자가 메시지를 주고받으면서 활용하는 기본 구조를 가집니다. SOMA 방법론에서와 같이 엔터프라이즈 SOA 구축을 위해서는 몇 개의 계층, 즉 Layer에 걸쳐서 분석과 모델링 과정이 필요합니다. 여기 보시는 그림은 SOA를 계층적인 아키텍처 스타일로 표현합니다. 이 아키텍처 스타일에서 맨 아래에 있는 Operational Systems Layer가 있습니다. 이 Layer에는 그 기업이 보유하고 있는 기존의 CRM이나 ERP 같은 레거시 시스템들이 표현되어 있습니다. 이 Operational Systems Layer 위에는 Enterprise Co..

서비스 지향 아키텍처 모델링 언어 : SoaML : 개요, 개념, 방법, 정의

SoaML SOMA 방법론은 서비스를 식별하고 명세하고 구현하는 전반적인 틀과 절차를 정의합니다. SoaML은 이러한 서비스 모델링 과정에서 사용할 수 있는 구체적인 언어 그리고 표현 방법을 제공합니다. SoaML은 Object Management Group, 즉 OMG에서 개발한 오픈소스 서비스 Specification 방법입니다. SoaML은 소프트웨어 모델링에 널리 사용되고 있는 Unified Modeling Language(UML)을 기반으로 합니다. SOA 구축을 위한 서비스 모델링과 디자인을 위한 여러 방법을 제공합니다. SoaML의 공식 웹사이트는 www.soaml.org입니다. SoaML을 위한 다양한 도구가 개발되었습니다. Modeling Capabilities of SoaML SoaML..

서비스 아키텍처 : 서비스 모델의 필요성 : 개념, 정의, 개요

서비스 기반 모델링 먼저 이 비즈니스 도메인 자체를 잘 이해하고 시뮬레이션 할 수 있어야 합니다. 그러한 것을 잘하기 위해서는 먼저 사용자가 사용해야 되는 서비스가 무엇이고 그 주요 특성과 기능들이 무엇인지를 먼저 잘 표현해야 합니다. 그래서 서비스 기반의 모델링이라는 것은 엔터프라이즈 시스템 구축의 문제를 체계적이고 전략적으로 풀기 위해서 소프트웨어 모델링의 원칙과 기술을 효과적으로 활용하는 것을 의미합니다. 세 가지 원칙이 있습니다. 첫째는 Virtualization, 즉 가상화입니다. 가상화의 원칙은 서비스의 행위, 구조, 관계를 매우 높은 수준에서 모델링해야 한다는 의미를 말합니다. 두 번째는 서비스 모델링의 원칙은 Metamorphosis, 즉 변화에 대한 반영이 필요하다는 것입니다. 비즈니스 ..

서비스 기반 어플리케이션 기반 : 웹 서비스 코디네이션 모델 : 개요, 개념, 정의

Service Integration 웹정보나 서비스를 접근해서 실생활에 활용할 때는 그냥 각각을 독자적으로 사용하진 않습니다. 일반적으로, 여행을 가기 위해서 그 준비에 필요로 하는 정보를 확인할 때 먼저 LonelyPlanet 같은 웹사이트에 가서 여행지의 정보를 확인할 수가 있습니다. 그 이후에는 여행을 실제로 가기 위한 비행기표를 예매하고 호텔을 예약하는 작업을 실제 여행사 사이트를 통해서 수행합니다. 여러 가지 준비가 된 이후에는 실제 여행을 떠나서 목적지에 갔을 때 예기치 못한 날씨를 접할 수도 있습니다. 그래서 날씨도 체크하고 그 지역에 대한 뉴스도 확인할 수 있습니다. 이러한 일련의 웹정보 혹은 서비스를 접근함을 통해서 여행에 관련된 정보를 확인합니다. 그에 대한 실제적인 준비를 할 수가 있..

WSDL : Web Services Desription Language : 개요, 개념, 정의, 예제

WSDL Web Service Description Language, 즉 WSDL은 XML 기반의 웹서비스 명세 언어입니다. 2001년에 IBM 등의 회사에서 W3C에 제안을 한 것입니다. 2007년에 W3C에 표준으로 지정이 되었습니다. WSDL은 웹서비스 간에 교환되는 메시지 포맷과 데이터 타입, 그리고 전송 방식에 대한 정보를 기술할 수 있는 언어입니다. WSDL을 사용하는 웹서비스 명세는 abstract한 부분과 concrete한 부분, 두 레벨로 구성이 됩니다. abstract-level 명세는 웹서비스가 받고 전달을 해야 되는 메시지를 중심으로 interface를 기술하는 것입니다. concrete한 level의 명세는 웹서비스 호출을 위한 네트워크상의 주소, 프로토콜, 이러한 기술적인 것들을..

SOAP : simple object access protocol : 개념, 정의, 개요, 예제

SOAP SOAP은 웹서비스 간에 교환되는 메시지의 packaging과 전송을 위한 표준 프레임워크로서 두 가지 정의가 있습니다. 첫 번째 정의는 service oriented architecture protocol이라는 정의입니다. SOAR을 이루는 서비스의 인터페이스를 정의하고 이에 따라서 서비스 간의 정보를 교환하는 프로토콜을 의미합니다. 두 번째 정의는 RPC 모델을 기반으로 서비스를 원격으로 호출합니다. 이때 필요로 하는 메시지를 marshaling, unmarshaling하기 위한 프로토콜이라는 정의가 있습니다. 이러한 SOAP 메시지는 네 개의 요소로 구성이 되어 있습니다. 먼저 전체 SOAP 메시지는 SOAP envelope이라는 것으로 감싸져서 전송이 됩니다. 그 SOAP envelope..

서비스 기반 아키텍처 : SOA 구축 : 사례, 정의, 개요, 개념

은행 도메인 먼저 SOA를 적용해서 어떤 비즈니스 Goal을 달성하고자 하는지를 설정해야 합니다. 금융 도메인을 보면 다양한 비즈니스 라인에서 다양한 서비스가 제공되어야 합니다. 또한 다양한 채널을 통해서 고객들이 그러한 서비스를 소비해야 됩니다. 그래서 이 경우에서는 비즈니스 Goal로서 새로운 비즈니스 환경에서 어떻게 하면 혁신을 이루고 또한 투자 대비 효과를 빠르게 할 수 있을까 하는 것을 목표로 설정합니다. 또한 금융권을 보면 은행이 빈번하게 서로 합병을 하게 됩니다. 이러한 경우에 기존에 은행들이 사용하고 있던 서로 다른 금융 시스템들이 기존의 사용자들에게 제공되는 서비스의 중단 없이 효과적으로 통합되는 것이 굉장히 중요합니다. 그래서 SOA를 적용할 때를 이러한 문제 해결을 목표로 설정할 수 ..

웹 서비스 : 개념, 표준, 구성 요소, 상호작용 : 정의, 개요

웹 서비스란 무엇인가? 기능들을 API(Application Programming Interface)로 제공을 해서 프로그램에 직접 활용할 수 있는 것들을 웹 서비스라고 일반적으로 부릅니다. 그래서 웹 서비스는 전체적인 SOA의 구성 레이어에서 서비스 컴포넌트와 서비스 클라이언트 간의 Interaction이 웹 표준적인 인터페이스를 통해서 이루어집니다. 웹 서비스라는 것은 어떠한 표준적인 수단입니다. 즉, 서비스 간의 Interaction을 표준적인 수단을 통해서 하게 됩니다. 그런 것들을 통해서 애플리케이션을 개발할 수 있는 환경이 됩니다. 웹 서비스 디렉토리 이렇게 다양한 웹 서비스들이 웹에 존재합니다. 대표적인 웹 서비스 디렉토리, 웹 서비스를 찾을 수 있는 디렉토리 중에 하나가 programmab..

서비스 기반 아키텍처 (SOA) : 개념, 정의, 개요, 목표, 특징

서비스 기반 아키텍처를 구성하는 목표 다양한 기존의 레거시 시스템, 이미 존재하고 있는 시스템들이 복잡하게 연결되어 있습니다. 어떠한 기업에서 이미 가지고 있는 다양한 시스템들이 있습니다. 이런 시스템들을 서로 상호작용하게 해서 또 다른 새로운 애플리케이션을 만듭니다. 이미 새롭게 개발된 시스템들이 있는데 그런 것들하고 어떻게 연동시킬지는 어려운 문제입니다. 그래서 서비스 기반 아키텍처를 구성하는 첫 번째 목표 중에 하나는 기존의 레거시 시스템들을 잘 활용해서 새로운 애플리케이션을 만들어내자는 목표입니다. 두 번째 중요한 목표는 기존에 기업에서 제공하는 다양한 서비스를 웹을 통해서 사용자들한테 노출하는, 사용자들이 사용할 수 있게 하는 목표가 있습니다. SOA를 사용하게 되면 기존에 기업에서 제공하던 여..

IT 서비스 : 개념, 정의, 개요

서비스의 기본 개념 MS Word는 직접 이 소프트웨어를 구매해서 설치를 해야 합니다. 또한 이러한 MS Word는 설치한 컴퓨터에서만 사용을 할 수 있습니다.그래서 Availability 차원에서 MS는 굉장히 제한적입니다. Google Docs는 인터넷만 연결돼 있으면 어떠한 컴퓨터에서든지 웹 브라우저를 통해서 접근할 수 있습니다. 또한 이렇게 설치가 필요 없는 Google Docs은 어떠한 컴퓨터든 상관없이 Operating System, Hardware 그런 플랫폼에 상관없이 사용할 수 있는 특징이 있습니다. 또한 새로운 소프트웨어 버전이 나왔다든지 문제를 해결하는 패치가 나왔을 경우에 MS Word는 설치를 해야 됩니다. Google Docs 같은 경우는 언제나 접속만 하면 최신의 소프트웨어를 ..

소프트웨어 아키텍처 : 평가 절차, CBAM, 사례 : 개념, 정의, 개요

아키텍처의 평가 절차 첫째 단계는 평가방법 준비 단계로 이 단계에서는 아키텍처 평가 방법을 결정합니다. 둘째 단계에서는 아키텍처와 아키텍처 분석관점을 사용하여 분석을 수행하고 분석결과를 얻습니다. 분석결과는 아키텍처 설계를 통하여 이미 도출되어 있는 경우 이를 사용하면 됩니다. 그 렇지 않은 경우는 새로이 분석을 수행하여야 합니다. 마지막 단계에서는 단계2로부터 얻어진 분석결과에 대하여 단계1에서 결정된 종합 방법을 적용하여 평가결과를 얻습니다. CBAM CBAM 절차는 아키텍처 설계의 방향을 결정하는 아키텍처 전략들과 분석관점을 형성하는 N개의 품질속성 시나리오를 입력으로 하여 평가를 수행하고 평가결과로 각 아키텍처 전략의 순위를 결정합니다. CBAM은 비용과 이득 관점의 계량적 분석 방법으로 합리적인..

소프트웨어 아키텍처 : 분석, 평가 방법 : 개념, 정의, 개요

아키텍처 분석과 평가의 정의 아키텍처 분석과 평가라는 용어에 대하여는 표준화된 정의가 존재하지 않습니다. 분석과 평가를 구별 없이 사용하는 경우도 많습니다. 그러나 분석과 평가는 밀접히 관련된 서로 구별되는 개념입니다. 분석은 전체를 그것을 구성하는 부분들로 분리하는 활동으로 물체를 구성하는 요소들을 식별하거나 분리하는 활동, 즉 복합체와 그 요소들 및 그 관계를 상세히 검사하는 활동을 의미합니다. 평가는 가치를 판단하거나 결정하는 활동으로 신중한 조사 학습을 통하여 중요성, 가치 혹은 상태를 판단하는 활동을 의미합니다. 분석은 분해하여 들여다보는 활동이고, 분석을 위해서는 분석관점이 필요하며, 분석은 판단/평가를 위한 원시 데이터를 제공합니다. 반면 평가는 분석의 결과를 종합하여 판단하는 활동이며, 원..

소프트웨어 아키텍처 : 품질 속성 설계 전략 원리 : 개념, 개요, 정의

품질속성 설계전략의 원리 아키텍처 패턴은 자주 발생하는 아키텍처 설계 문제에 대한 준비된 해결 방법이므로 대개의 경우 특정한 품질을 확보하는 문제에 대한 해결 방법을 제시하지 않습니다. 패턴을 통하여 품질 개선 효과가 얻어질 수도 있으나 그것이 만족스럽지 않을 수 있습니다. 또한 마땅히 적용할 패턴이 없는 상황에서 어떤 품질을 확보해야 하는 문제가 대두될 수도 있습니다. 품질속성 설계전략은 특정한 품질속성 응답을 제어하는 데 효과가 있는 설계 전략입니다. 품질 속성의 분류 성능, 상호 운영성, 변경 용이성, 가용성, 보안성, 시험 용이성 및 사용 용이성의 7개 품질속성에 대한 설계전략 도출지침이 있습니다. 이들 중 성능을 예로 하여 품질속성 설계전략이 무엇인지를 알아봅니다. 성능 설계 전략 성능은 시간에..

소프트웨어 아키텍처 : 아키텍처 패턴 원리 : 개념, 정의, 개요

아키텍처 패턴 원리 테일러는 아키텍처 패턴을 반복적으로 발생하는 설계 문제에 적용될 수 있는 아키텍처 설계 결정으로 정의하였습니다. 그리고, 아키텍처 패턴의 급증으로 문제가 발생하는 여러 가지 다른 소프트웨어 개발 상황에 다뤄질 수 있도록 일반화되어 있다는 점을 강조하였습니다. 아키텍처 패턴의 표현 아키텍처 패턴을 기술하기 위하여는 패턴이 사용되는 문맥, 패턴이 해결해야 하는 문제와 그 해결 방법 외에도 패턴의 이름과 패턴의 사용에 따른 파급효과를 기술하여야 합니다. 아키텍처 패턴의 예 소프트웨어 시스템 개발에 자주 쓰이는 아키텍처 패턴의 예로 Three Tiers 아키텍처 패턴이 있습니다. 이 패턴에서 컴포넌트는 Front Tier 컴포넌트, Middle Tier 컴포넌트 Backend Tier 컴포넌..

아키텍처 : 설계의 일반 원리 : 개념, 개요, 정의

설계의 일반 원리 아래 그림은 문제해결에 사용되는 일반적인 접근 방법의 종류를 보여줍니다. 먼저 주어진 문제를 이미 해결책이 알려져 있는 문제로 변형하는 방법입니다. 이런 방법은 그 해결책을 원래의 문제에 대한 직접적인 해결책으로 쉽게 변형할 수 있으면 원래의 문제를 해결하기 위한 좋은 방법이 됩니다. 그림의 위 부분은 이 경우를 보여줍니다. 이미 존재하는 해결책을 이용할 수 없는 경우 원래의 문제를 더 쉬운 문제들로 나누어 해결할 수 있다면, 그 하위 문제들에 대한 해결책들을 합성하여 원래의 문제에 대한 해결책을 만들 수 있습니다. 위 그림의 중간 부분은 이 경우를 보여줍니다. 만일 문제 해결에 기존의 해결책을 활용할 수 있으면 기존의 해결책을 사용할 수 없는 부분에 대해서만 새로이 해결책을 만들고, ..

소프트웨어 아키텍처 설계 원리 : 아키텍처 설계 절차 원리

아키텍트 설계 절차 원리 아키텍처 설계의 출발점은 소프트웨어 시스템의 요구사항들입니다. 소프트웨어 개발의 폭포수 모델은 요구사항 분석이 끝나고 설계가 시작되는 것으로 소프트웨어 개발 프로세스를 설명하지만, 이는 논리적인 순서이고, 실제로는 요구사항 분석과 아키텍처 설계는 서로 얽혀서 상당 부분 동시적으로 진행되는 활동입니다. 초기 단계의 요구사항으로부터 초기 아키텍처가 만들어지면 이는 더 많은 구체적인 요구사항을 파악하는 데 이용됩니다. 이는 다시 아키텍처를 더 구체화하는 데 이용되고, 이 과정이 반복되면 요구사항 명세와 아키텍처가 만들어집니다. 요구사항 분석과 아키텍처 설계가 동시에 이루어지는 이유는 요구사항의 변경 및 추가가 수시로 일어납니다. 상용 소프트웨어 컴포넌트나 오픈소스 코드를 개발에 사용할..

반응형