상명대학교?/?서광규?교수
2014년 10월에 브라질 상파울르에서 열린 ISO/IEC JTC 1 SC 38 회의에서 신규로 탄생한 WG4 클라우드 컴퓨팅 상호운용성 워킹 그룹에서의 클라우드 컴퓨팅 상호운용성 표준화 과제는 2017년 12월 ISO/IEC 19941 Information technology - Cloud computing - Interoperability and portability (First Edition)의 국제 표준화 문서로 완성되었다.
일반적으로 상호운용성이나 이식성은 특정 서비스 제공자에게 종속되는 것을 막기 위한 중요한 요소이다. 상호운영성과 이식성의 정의는 다음과 같다.
- 상호 운용성(Interoperability: 공통적인 API)은 인터페이스가 어떤 제한된 접근이나 수행 없이, 현재나 미래, 다른 제품이나 시스템과 일할 수 있도록 완전히 이해되는 제품이나 시스템의 속성이며, IEEE 용어집에서 교환되는 정보를 사용하기 위해서 혹은 정보를 교환하기 위해서 두 개 이상의 시스템이나 요소의 기량이라 정의한다. 또한, 서로 다른 클라우드 제공자들이 데이터 스키마/포맷의 전환이 없이도 함께 작업하는 것이 가능하다. 표면/프락시 API와 다양한 API들에서 의존성을 이해하는 것을 기반으로 한다.
- 이식성(Portability: 표준 패키징과 적용 포맷)은 원시 프로그램을 다른 기종으로 옮기기가 얼마나 쉬운가를 나타내는 정도로 기술/사업자 종속(lock-in)이 없으며 서비스 제공자들 간에 서비스를 자유롭게 사용할 수 있으며 사용자들이 쉽게 그들의 사업 제공자를 사업 목표에 따라 전환할 수 있다. 또한 기술에 들어가는 비용을 최소화하면서 경쟁력을 강화하는 것이 가능하다.
클라우드 서비스 간 상호운용성 및 이식성을 확보하면 개발 비용·시간 등의 절감 및 기업 간 기술 격차를 줄일 수 있고 이용자에게 서비스 선택의 폭을 확대 시킬 수 있는 등의 장점이 있다. 본 고에서는 ISO/IEC 19941 Information technology?- Cloud computing - Interoperability and portability의 국제 표준화 문서의 내용에서 다루고 있는 클라우드 컴퓨팅의 상호운용성과 이식성을 설명하기로 한다.
클라우드 컴퓨팅 상호운영성과 이식성 일반(General)
여기에서는 클라우드 상호운용성, 클라우드 데이터 이식성 및 클라우드 애플리케이션 이식성에 대한 개요와 모델을 제공한다. 상호 운용성과 이식성은 다양한 관점이 고려되어야 하는데, 이를 "패싯(facets)"이라 한다.
클라우드 컴퓨팅의 상호운용성 및 이식성에는 기술, 정보 및 인적 측면의 영향을 받는 상호 작용이 포함된다. 상호 운용성 및 이식성 관련 당면 과제는 시스템이 점점 복잡해지고 상호 연결됨에 따라 더욱 심화되고 관리하기가 어려워질 가능성이 높다. 국제적으로 상호 연결된 시스템이 있는 클라우드 컴퓨팅 환경에서 복잡성에는 기업 정책, 규제 및 국제 법의 문제도 포함된다.
클라우드 컴퓨팅 상호운영성의 고려사항(Considerations)
ISO/IEC 17788은 상호 운용성을 "두 개 이상의 시스템 또는 응용 프로그램이 정보를 교환하고 교환된 정보를 상호 사용하는 능력"으로 정의한다. 클라우드 컴퓨팅의 맥락에서 상호 운용성은 클라우드 서비스 고객 시스템이 클라우드 서비스와 상호 작용하고 사전 정의 된 방법에 따라 정보를 교환하고 예측 가능한 결과를 얻는 능력을 제공하는 것으로 설명된다. 상호 운용성에는 한 클라우드 서비스가 다른 클라우드 서비스와 상호 작용하는 기능도 포함된다. [그림 1]은 클라우드 상호 운용성이 CSC의 응용 프로그램과 클라우드 서비스간에 발생하며 클라우드 서비스간에 발생 함을 나타낸다. 다중 화살표로 표시된 것처럼 일반적으로 이 두 가지 경우에 관련된 다중 인터페이스가 있다.
클라우드 상호 운용성 문제를 해결할 때는 많은 고려 사항이 있는데, 여기에는 다음이 포함된다.
- 예측 가능한 결과를 얻는 규정된 방법에 따라 정보를 교환함으로써 CSC가 클라우드 서비스와 상호 작용할 수 있는 능력
- 클라우드 서비스가 다른 클라우드 서비스와 함께 작동할 수 있는 능력
- 조직의 ICT 시설과 클라우드 서비스 간의 성공적인 상호 작용을 촉진하는 데 필요한 속성
- ISO/IEC 17789에 정의된 역할 및 활동
- ISO/IEC 17788에 정의된 클라우드 기능 유형
- ISO/IEC 17789 : 2014, 9.2에 정의된 다른 기능 컴포넌트 간 인터페이스

[그림 1] 클라우드 상호운용성 상위수준 관점(High-level view of cloud interoperability)
* 출처: ISO/IEC 19941 Information technology?- Cloud computing - Interoperability and portability
클라우드 컴퓨팅 환경에서 이식성을 위한 고려사항(Considerations)
여기에서는 클라우드 애플리케이션 이식성과 클라우드 데이터 이식성을 구분한다. 클라우드 컴퓨팅 맥락에서 이식성이란 CSC의 시스템과 클라우드 서비스간에, 서로 다른 클라우드 배치 모델간에, 다른 CSP의 클라우드 서비스간에 응용 프로그램과 데이터를 이동하고 적절하게 적응시키는 CSC의 기능을 의미한다.
클라우드 컴퓨팅에서 이식성을 다룰 때는 많은 고려 사항이 있는데, 여기에는 다음이 포함된다.
- CSC가 보다 신속한 서비스, 저렴한 비용, 높은 신뢰성 또는 재해 복구 요구와 같은 비즈니스 요구에 대응하여 애플리케이션 및 데이터를 마이그레이션할 수 있도록 함
- 광범위한 시장에 대한 액세스를 허용하는 애플리케이션 및 데이터의 더 넓은 가용성
- 응용 프로그램과 데이터 모두 포팅하는 데 드는 시간과 노력은 공통 프로그래밍 언어, 표준, 도구, 프레임 워크, 모델, 실행 시간 및 API를 사용하여 줄일 수 있음
- CSC가 하나의 CSP의 클라우드 서비스에 묶여있는 잠금 상태를 제한
클라우드 데이터 이식성
클라우드 데이터 이식성은 하나의 클라우드 서비스에서 다른 클라우드 서비스로 또는 클라우드 서비스 고객의 시스템과 클라우드 서비스간에 데이터를 전송하는 기능이다.
[그림 2]는 CSC 시스템과 클라우드 서비스 간의 데이터 포팅과 한 클라우드 서비스에서 다른 클라우드 서비스로의 데이터 포팅을 나타낸다. 두 방향의 화살표는 해당 위치로 데이터를 주고 받을 수 있는 가능성을 나타낸다.

[그림 2] 클라우드 데이터 이식성 상위수준 관점(High-level view of cloud data portability)
* 출처: ISO/IEC 19941 Information technology?- Cloud computing - Interoperability and portability
클라우드 데이터 이식성과 관련된 고려 사항은 다음과 같다.
- 클라우드 서비스 고객 데이터 검색 : 원본 클라우드 서비스에서 클라우드 서비스 고객 데이터를 검색하는 기능이 필요하며 클라우드 서비스 고객 데이터를 대상 클라우드 서비스로 가져올 수 있는 기능이 필요하다. 클라우드 데이터는 종종 시스템간에 사용 가능한 대역폭을 부과하기에 충분히 크므로 물리적 스토리지 미디어의 물리적 이동에 따라 데이터가 이동될 수 있다.
- 데이터 구문 : 데이터의 구문은 소스 서비스와 대상 서비스에 이상적이다. 그러나 구문이 일치하지 않아도, 예를 들어 소스는 JSON 구문을 사용하지만 대상은 XML을 사용하므로, 일반적으로 사용 가능한 도구를 사용하여 데이터를 매핑할 수 있다.
- 데이터의 의미 : 데이터의 의미는 일반적으로 온톨로지에 의해 표현된다. 호환 가능한 온톨로지는 소스 및 대상 서비스 간 데이터 포팅을 단순화한다. 온톨로지가 호환되지 않는 경우 불일치를 감지하기 위해 추가 리소스가 적용될 수 있다. 이러한 불일치가 해결되거나 데이터의 충실도가 감소되어 데이터를 이식할 수 있다.
클라우드 애플리케이션 이식성
클라우드 애플리케이션 이식성은 CSC 시스템에서 클라우드 서비스로 또는 클라우드 배포 모델 인스턴스 (사설, 공개, 커뮤니티 및 하이브리드) 간의 마이그레이션을 비롯하여 한 클라우드 서비스에서 다른 클라우드 서비스로 응용 프로그램을 마이그레이션할 수 있는 기능이다.
[그림 3]은 CSC의 시스템과 클라우드 서비스간에 응용 프로그램을 이식하고 두 클라우드 서비스간에 응용 프로그램을 이식하는 것을 보여준다. 양방향의 화살표는 응용 프로그램을 해당 위치로 이식할 수 있는 가능성을 나타낸다.

[그림 3] 클라우드 애플리케이션 이식성 상위수준 관점(High-level view of cloud application portability)
* 출처: ISO/IEC 19941 Information technology?- Cloud computing - Interoperability and portability
클라우드 애플리케이션 이식성과 관련된 고려 사항은 다음과 같다.
- 클라우드 응용 프로그램 이식성은 더 큰 멀티 클라우드 응용 프로그램의 일부인 하나 이상의 응용 프로그램 구성 요소를 이동할 수 있어야 있다. 복잡한 응용 프로그램의 이식성은 CSP가 응용 프로그램 메타 데이터를 공유하도록 요구할 수도 있다. 복잡한 응용 프로그램의 이식성은 CSP가 응용 프로그램 메타 데이터를 공유하도록 요구할 수도 있다. 이 메타 데이터는 자동화된 검사, 발견 또는 다른 방법을 통해 라이프 사이클 전반에 걸쳐 해당 응용 프로그램의 배포 및 후속 관리와 관련된 전문 지식과 모범 사례를 포착하여 얻을 수 있다.
- 클라우드 애플리케이션 이식성은 소스 환경에서 애플리케이션이 필요로 하는 인터페이스를 대상 환경에서도 사용할 수 있어야 한다. 일부 환경에서는 인터페이스를 통해 응용 프로그램이 기본 자원을 관리할 수도 있다.
- 클라우드 애플리케이션 이식성으로 인한 중단 감소 및 증가된 선택은 CSC에 위험 완화 기능을 제공한다. 클라우드 애플리케이션 이식성은 변화하는 비즈니스 조건 및 기술적 경향에 대응하여 대체 또는 보완적인 CSP에 클라우드 애플리케이션 및 서비스를 보다 신속하게 재배포함으로써 비즈니스 민첩성을 향상시킨다.
- 클라우드 애플리케이션 이식성은 소스 시스템에서 지원되는 CSC 및 CSN 및 해당 서브 롤의 식별된 활동이 대상 시스템 및 해당 구성 요소에 의해 허용 가능한 충실도로 지원되어야 한다.
클라우드 상호운용성과 클라우드 이식성과의 관계
이식성과 상호 운용성이 동의어가 아니라는 것을 이해하는 것이 중요하다. 상호 운용성과 이식성은 종종 병렬로 논의되고 관련 개념이지만 사실 직접적인 의존성이 없는 별도의 개념이다.
상호 운용성의 초점은 CSC 시스템과 클라우드 서비스 간 또는 클라우드 서비스와 다른 클라우드 서비스간에 정보를 교환할 수 있는 기능으로 교환된 정보를 상호 사용할 수 있다. 상호 운용 가능한 클라우드 서비스가 애플리케이션과/또는 데이터의 이식성을 반드시 지원하는 것은 아니다.
이식성은 하나의 클라우드 서비스에서 다른 클라우드 서비스로 또는 CSC 시스템과 클라우드 서비스간에 데이터 또는 응용 프로그램을 마이그레이션할 수 있는 기능이다. 마이그레이션의 효율성과 효율성의 정도는 ISO/IEC 17788에 설명된 대로 마이그레이션 프로세스에서 애플리케이션을 수동으로 변경하거나 거의 사용하지 않고 애플리케이션을 실행하거나 데이터를 사용할 수 있는 기능으로 간주된다. 이식성의 초점은 마이그레이션의 용이성 데이터 및 응용 프로그램의 이식성을 지원하는 클라우드 서비스가 반드시 상호 운용될 필요는 없다.
클라우드 상호 운용성 패싯(Facet) 모델
상호 운용성은 단순한 "예/아니오" 개념이 아니다. 상호 운용성은 데이터 바이트의 단순한 교환부터 시작하여 교환된 정보의 의미에 대한 이해를 촉진하고 교환의 양측에서 비즈니스 프로세스, 행동 및 정책을 조정하는 많은 요소를 포함한다. 시맨틱, 행동 및 정책 상호 운용성은 비트 및 바이트보다 훨씬 더 큰 문제일 수 있다.
여기서 설명하는 상호 운용성 패싯(facet) 모델은 클라우드 상호 운용성의 맥락에서 5 가지 측면을 정의한다.
[그림 4]에서 볼 수 있듯이 5가지 측면은 전송, 구문, 의미 데이터, 행동 및 정책으로 이 모델은 European Interoperability Framework과 LCIM (Level of Conceptual Interoperability Model)을 결합하여 추상화한 모델이다.

[그림 4] 클라우드 상호 운용성 패싯(Facets of cloud interoperability)
* 출처: ISO/IEC 19941 Information technology?- Cloud computing - Interoperability and portability
클라우드 데이터 이식성 패싯(Facet) 모델
클라우드 데이터 이식성은 하나의 클라우드 서비스에서 다른 클라우드 서비스로 데이터를 전송하거나 CSC의 시스템과 클라우드 서비스간에 데이터를 기계 가독형 형식으로 전송하는 기능이다. 상호 운용성과 마찬가지로 데이터 이식성은 각 패싯(facet)이 단일 차원에 중점을 두는 다양한 패싯(facet)에서 관찰할 수 있다. 데이터 이식성을 달성하려면 모든 패싯(facet)을 이해하고 상호 동의하거나 충분히 이해하여 데이터를 포팅할 때 주의해야 할 점이 무엇인지 분명히 해야 한다.
여기에서는 클라우드 컴퓨팅의 맥락에서 데이터 이식성의 세 가지 측면을 정의하는데, 이는 [그림 5]와 같이 데이터 정책, 데이터 구문 및 데이터 의미로 이 모델은 클라우드 상호 운용성 모델을 기반으로 하며 클라우드 데이터 이식성의 다른 관심사항에 초점을 맞춘다.

[그림 5] 클라우드 데이터 이식성 패싯(Facets of cloud data portability)
* 출처: ISO/IEC 19941 Information technology?- Cloud computing - Interoperability and portability
클라우드 애플리케이션 이식성?패싯(Facet) 모델
클라우드 응용 프로그램 이식성은 하나의 클라우드 서비스에서 다른 클라우드 서비스로 또는 CSC의 시스템과 클라우드 서비스간에 응용 프로그램을 마이그레이션 할 수 있는 기능이다. 이 목적은 포팅된 후에 소스 환경에서와 동일한 목표 환경에서 동일한 기능을 제공한다는 것이다. 응용 프로그램 이식성을 달성하려면 응용 프로그램을 포팅할 때 주의해야 할 패싯(facet)이 무엇인지 명확하게 알 수 있도록 모든 패싯(facet)을 충분히 이해해야 한다.
여기에서는 클라우드 컴퓨팅의 맥락에서 클라우드 애플리케이션 이식성의 5가지 측면을 정의하는데, 이는 [그림 6]에 보듯이 응용 프로그램 구문, 응용 프로그램 지침, 응용 프로그램 메타 데이터, 응용 프로그램 동작 및 응용 프로그램 정책으로 클라우드 상호 운용성 측면(facet) 모델을 기반으로 클라우드 애플리케이션 이식성과 관련된 여러 가지 고려 사항에 초점을 맞춘다.

[그림 6] 클라우드 애플리케이션 이식성 패싯(Facets of cloud application portability)
* 출처: ISO/IEC 1941 Information technology?- Cloud computing - Interoperability and portability
결언
클라우드 컴퓨팅의 상호운용성이나 이식성은 특정 클라우드 제공자에게 종속되는 것을 막기 위한 중요한 요소로 클라우드 서비스 간 상호운용성 및 이식성을 확보하면 개발 비용·시간 등의 절감 및 기업 간 기술 격차를 줄일 수 있고 이용자에게 서비스 선택의 폭을 확대 시킬 수 있다.
본 고에서는 ISO/IEC 19941 Information technology?- Cloud computing - Interoperability and portability의 국제 표준화 문서의 내용에서 다루고 있는 클라우드 컴퓨팅의 상호운용성과 이식성을 설명하였다. 구체적으로 클라우드 컴퓨팅 상호운영성과 이식성의 일반 개념과 고려사항, 클라우드 데이터 및 애플리케이션 이식성과 클라우드 상호운용성과 클라우드 이식성과의 관계 그리고 클라우드 상호 운용성, 데이터 이식성, 애플리케이션 이식성 패싯(facet) 모델을 설명하였다.
추가적으로 클라우드 컴퓨팅의 상호 운용성 및 이식성과 관련된 주요 도전 과제인 보안, ID 및 액세스 관리 (IdAM), 마이그레이션 중 보안, 동적 마이그레이션, 인터페이스, API 및 상호 운용성 그리고 오픈 소스 이슈는 설명하지 못하였는데, 이는 필요시 해당 국제 표준문서를 참조하면 된다.
※ 이 문서는 「ISO/IEC 19941/2017 Information technology?- Cloud computing - Interoperability and portability(1st Edition)」를 토대로 작성되었음.
참고문헌
1. ISO/IEC 19941/2017, Information technology?- Cloud computing - Interoperability and portability.
2. ISO/IEC 17788:2014 , Information technology - Cloud computing - Overview and vocabulary.
3. ISO/IEC 17789:2014, Information technology - Cloud computing - Reference architecture.
4. 이강찬, 이승윤, 양희동, 박철우, "클라우드 컴퓨팅 상호 운용성 기반의 서비스 평가 방법론 개발", 보안공학연구논문지, 11권, 4호, pp. 299-312, 2014.05?314, 2016.
5. 디지털데일리, “NIPA, 클라우드 상호운용성 확보 지원 사업 추진”, 2017.06.26.