2007 정기세미나 SOA (Service-Oriented-Architecture) 2007. 2. 10 기술연구소 이 상 근 http://www.ansetech.co.kr
목차 1. SOA는 무엇입니까? 2. SOA로 얻는 이점 3. SOA와 웹 서비스 4. 우리의 대처방법 5. 마무리
1. SOA는 무엇입니까? SOA 란? 비즈니스 및 IT 커뮤니티 모두에서 널리 확산되고 있는 서비스 지향적 사고는 잘 정의되고 독립적이며 다른 서비스의 맥락이나 상태에 좌우되지 않는 기능으로 서비스를 인식하는 데에서 출발합니다. IT 분야에서 SOA는 이 기종 환경에서 시스템의 상호 운용성을 해결하기 위한 대표적인 방법 중 하나로 등장했습니다. SOA는 컴포넌트 재사용, 안정성 향상, 개발 및 운용 비용 절감과 같은 추가적인 이점을 약속했습니다. 비즈니스 분야에서 서비스 지향적 접근 방식은 비즈니스 프로세스 자동화를 위한 방편으로 서비스를 오케스트레이션하는데 중점을 둡니다.
1. SOA는 무엇입니까? SOA 프레임워크 SOA에서는 기업의 속도, 대처 능력 및 수익성을 높일 수 있는 새로운 기회를 발굴하고자 비즈니스와 정보 기술 영역을 결합시킵니다. 유연성을 높이기 위해 기업들은 고객 신용 조회, 자동차 대여와 같은 비즈니스 프로세스 및 서비스의 모음으로 스스로를 인식하고 있습니다. SOA는 엔터프라이즈 환경을 구성하는 각기 다른 업무 프로세스 및 서비스를 더 쉽게 재사용하고 연결할 수 있는 애플리케이션 프레임워크입니다. SOA 방식에서는 비즈니스 모델, 아키텍처 모델 및 프로그래밍 모델에 대해 하나의 개념(서비스)을 사용한다는 점에서 고유한 특성을 갖습니다. 비즈니스 모델에서는 비즈니스 서비스를 정의하고 이를 비즈니스 프로세스로 구성합니다. 아키텍처 모델에서는 기존 또는 새로운 IT 인프라를 이용해 이 서비스를 구현하고자 비즈니스 서비스를 선택하고 아키텍처 스타일, 원칙 및 패턴을 적용합니다. 그리고 마지막으로 프로그래밍 모델에서는 이 서비스를 물리적으로 구현하여 이 기종 환경에서 상호 운용성을 갖게 합니다. 비즈니스 관점에서 볼 때, 서비스의 핵심 원칙은 무엇을 하느냐에 중점을 두며 어떻게 또는 어떤 리소스가 이를 수행하는가에 구애 받지 않는다는 것입니다. 아키텍처 입장에서는 기술 중립적이지만 비즈니스적 관점에서 서비스를 나타내는 서비스 계약(Service Contract)에 초점이 모아집니다. 개발자는 서비스가 어떤 프로세스로 구성되었는가가 아니라 구성 요소 및 자원이 서비스를 어떻게 구현하느냐에 관심을 갖습니다. SOA는 컴포넌트 기반 아키텍처 또는 객체 지향 아키텍처와 같은 이전 아키텍처 프레임워크를 대체하는 것은 아닙니다. 기술적 구성 요소를 비즈니스 프로세스와 결합시키기 위해 또 하나의 아키텍처 계층을 추가할 뿐입니다.
1. SOA는 무엇입니까? SOA 아키텍처
1. SOA는 무엇입니까? SOA 정의 SOA 요구사항 서비스라 불리는 분할된 애플리케이션 조각들을 단위의 약 결합으로 연결하여 하나의 완성된 애플리케이션을 개발하기 위한 소프트웨어 아키텍처 SOA 요구사항 플랫폼 독립적: 표준화된 방법을 통해 모든 환경에서 호출이 가능해야 한다. 약 결합 방식: 서비스는 그 이용에 있어 내부 자료구조나 지식을 필요로 해서는 안 된다. 위치 투명성: 서비스는 그들의 정의와 위치 정보를 UDDI와 같은 저장소에 저장하고 여러 클라이언트를 통해 그들의 위치와 상관없이 호출되어야 한다.
1. SOA는 무엇입니까? SOA의 특징 상호 운용성: 표준화 된 메시지를 이용하여 서비스를 호출, 이용하는 약 결합 방식이므로 기존의 컴포넌트에서 보다 운영 플랫폼에 대한 상호운용성이 높은 특징 위치 투명성: 네트워크 주소로 접근 가능한 인터페이스를 가지고 있으며 이 네트워크 주소는 서비스 레지스트리를 통해 발견된다. 서비스의 이용은 해당프로세스가 실행중에 동적으로 발견 호출될 수가 있다. 프로세스 중심: 프로세스 서비스를 별도의 구성 요소로 두어 통합에 필요한 메시지 처리와 서비스 오케스트레이션을 담당히여 애플리케이션이 자신의 고유기능에 집중할 수 있도록 한다.
1. SOA는 무엇입니까? SOA 구성요소 Service Provider: ‘Service Client’가 호출 시 입력하는 값을 가공하여 그에 해당하는 결과를 제공하며 또 다른 ‘Service Provider’를 사용하는 ‘Service Client’가 될 수 있다. Service Registry: 서비스에 대한 기술정보를 저장, 검색할 수 있게 한다. ‘Service Provider’는 서비스를 등록하고 ‘Service Client’ 자신이 원하는 서비스를 검색, 호출할 수 있다. Service Client: ‘Server Provider’에 의해 제공되는 하나 이상의 서비스를 이용
1. SOA는 무엇입니까? SOA 주목 받는 이유 ■ 표준 인터넷 기술 기반으로 플랫폼에 무관 상호간 완벽한 호환성 보장 ■ 표준 인터넷 기술 기반으로 플랫폼에 무관 상호간 완벽한 호환성 보장 ■ 이 기종 시스템 간 통합과 레거시 시스템의 재사용 용이 ■ 빠르고 끊임없이 변화하는 비즈니스 요구반영 ■ 인터넷 익스트라넷 모바일 등 멀티 채널 어플리케이션 지원 ■ 서비스 단위 활용에 따른 점진적 개발과 무한한 확장 성 제공 ■ 대형 소프트벤더들의 통합 및 표준화 준수
2. SOA로 얻는 이점 전통적인 비즈니스 프로세스 ■ 비즈니스 프로세스는 세 개의 다른 어플리케이션이 포함되어있음 ■ 비즈니스 기능은 어플리케이션 내부에 코딩 되어있음 ■ 비즈니스 기능은 재사용하기 어려운 독자적이고 비 표준 인터페이스 가짐 ■ 수작업 단계는 프로세스 상에서의 가능간 간격을 메우고 있음 ■ 프로세스는 쉽게 평가되고 관리될 수 없음 ■ 프로세스 변경이 어려움 ■ 새로운 프로세스 개발기간이 오래 걸림
2. SOA로 얻는 이점 SOA를 적용한 유연한 비즈니스 ■ 웹 브라우저와 인터넷을 사용하여 고객이 주문을 입력함 ■ 웹 브라우저와 인터넷을 사용하여 고객이 주문을 입력함 ■ 비즈니스 파트너는 자신의 프로세스에서 웹 서비스 호출을 통해 주문입력 가능 ■ 고객은 더 좋을 서비스를 받음
2. SOA로 얻는 이점 SOA를 적용한 유연한 비즈니스 ■ 공통 비즈니스 기능은 전체 기업 모두에서 공유됨 ■ 마케팅, 청구 및 영수증 발행은 단일하게 수행됨
2. SOA로 얻는 이점 SOA를 적용한 유연한 비즈니스 ■ 재고 관리 기능을 없애거나 최소화함 ■ 재고가 적어지기 때문에 비용이 절감됨 ■ 프로세스와 공급자가 통합되어서 재고 서비스는 더 좋아짐
2. SOA로 얻는 이점 SOA를 적용한 유연한 비즈니스 ■ 발송은 핵심 역량이 아님 ■ 물류회사는 더 좋은 기능을 가지고 있음 ■ 물류 인프라스트럭쳐와 추가 비용 절감
2. SOA로 얻는 이점 비즈니스 측면 IT 측면 ■ 서비스를 통해 프로세스의 분할 수준이 증가되어 비즈니스 유연성 확보 ■ 시장의 변화에 대처하여 신속하게 비즈니스 프로세스 및 복합 애플리케이션 생성 가능 ■ 기반 IT 인프라에 대해 염려할 필요 없이 서비스를 사용해 고객 서비스 개선 IT 측면 ■ 안전한 통합 환경을 갖추고 대처 능력이 강화된 IT 조직으로 변모 ■ 재사용 가능한 서비스 구성 요소를 사용해 개발 및 운용 주기 단축 ■ 공통 서비스로 복잡성 및 유지 보수 비용 감소 ■ 기존 시스템을 대체하기 보다는 역량 강화
3. SOA와 Web Service 웹 서비스란? 웹 서비스는 HTTP, XML, SOAP, WSDL, UDDI등의 표준을 기본 구조로 이용하고 있으며 기술은 특정 플랫폼에 독립적이며 표준화된 기반을 가지고 있으며 또한 상호운용 성을 충분히 보장 웹 서비스는 XML표준을 기반으로 표준화된 XML 메시지를 통해 네트워크 상에서 접근 가능한 연산들의 집합을 기술한 인터페이스로 기존 웹과 분명한 차이가 있다. 기존의 분산 컴퓨팅 기술들인 CORBA,DCOM과 비교하면 차이점 ■ 느슨한 연결(loose coupling) ■ 이진 부호화(바이너리 인코딩)가 아닌 XML 유니코드 부호화를 사용한다. ■ 객체지향적(object-oriented)이기 보단 메시지 지향적 (message-oriented)이다.
3. SOA와 Web Service Web Service 구성요소 UDDI: 웹 서비스를 설명하고 찾을 수 있는 표준 포맷을 제공 SOAP: 원거리 객체와 객체 사이 데이터의 입출력 뿐 만 아니라 객체의 상태 정보의 전송도 고려한 프로토콜 - XML WSDL:웹 서비스를 XML을 이용해서 기술 하는 데 사용되는 표준 언어
3. SOA와 Web Service SOA와 Web Service의 관계 구분 SOA Web Service 의미 S/W 개발 패러다임 SOA 기술 구현 사례 개념 아키텍처 기술의 집합 특징 특정 컴퓨터 기술에 독립적 SOA의 Best Practice
4. 우리의 대처방법 현재 개발자들의 생각 현재 SOA가 얼마나 중요하다고 생각하나? (Devpia - Architecture and Design 포럼 2006년 12월) 꼭 필요하다고 생각하며, 현재 많은 프로젝트에 적용하고 있다.6명(14%) 중요하다는 생각은 있지만 프로젝트에 직접 적용하는 일은 드물다.25명 (59%) 중요하기는 하겠지만 아직 시기상조라고 생각한다. 9명(21%) 별로 필요치 않다고 생각한다. 1명(2%) 기타 1명(2%)
4. 우리의 대처방법 대처방법 그 동안 SOA는 서비스 중심이 아니라 이 기종간에 메시지전달 개념에 초점을 맞추어서 SOA를 바라봐왔다고 생각되어집니다. 물론 서비스 측면에서 WEB 2.0, OpenAPI 개념을 지향하고는 있지만 아직도 많은 기업들은 자신들의 서비스를 오픈 하지 않는다면 SOA의 발전도 없을 거라 생각됩니다. 만약 점차 민간기업들의 다양한 서비스들이 오픈 되고 사용되게 된다면 SOA 발전도 비약적으로 이루어 질 거라 생각됩니다. 이러한 시점에서 우리는 개발자 입장에서 이를 받아드려야 할지 아키텍처 중심의 개발로 받아드려야 할지 잘 모르겠습니다만 SOA는 분명 2007년도에서 2008년도 사이에 그 성장하게 될 것입니다. 아직 우리 개발자가 피부에 직접 느끼지는 못하겠지만 SOA개념을 확실하게 인지하고 준비하는 자세를 가졌으면 합니다.
5. 마무리 SOA 개념을 확실이 알아두자 당장은 아니지만 조만간 필요로 할 것이다. 늦었지만 XML을 활용하려고 하자
감사합니다. ㈜ 안세기술 / 기술연구소 / 이상근 대리 서울시 구로구 구로동 235-2 ACE하이엔드타워 701호 전화 : 02) 6220-6186 팩스 : 02) 6220-6128 Mobile : 011-1714-0344 Mail: sklee@ansetech.co.kr http://www.ansetech.co.kr