아키텍트2009. 1. 7. 16:07
SaaS 서비스를 개발하고 싶은데 어떻게 하면 되는지에 대한 질문을 받는 경우가 많습니다.

SaaS 애플리케이션을 개발하고 싶은데, SOA로 개발하면 되죠?
웹서비스로 개발하면 되죠?
SaaS가 SOA하고 같은 거죠?
프로토콜은 SOAP을 쓰면 되는 건가요?

SaaS와 SOA의 관계를 이해하기 위해 두 가지 유형의 서비스를 살펴보겠습니다.

애플리케이션 서비스
 - 서비스 제공자가 제공하는 서비스를 인터넷을 통해 이용하고, 이 서비스는 비즈니스 로직을 제공합니다. 
   이런  유형의 서비스는 대부분의 차별화 되어 있지 않고, Commodity 인 경우가 많습니다.
   . 이메일, 회계, 세무, 인사 & 성과, 급여, CRM 등
 
   규모의 경제를 통해 저렴한 가격으로 Commodity 서비스를 제공 합니다. 해당 서비스를 사용하는 회사가 
   데이터의 생성 및 소유권을 갖게 됩니다. 각 회사의 서비스별로 큰 차별점이 많지 않기 때문에 동일한 서비스를
   제공하는 회사가 일반적으로 많고, 시장에서 경쟁이 치열합니다. 따라서, 메타데이터를 통한 각 회사별 설정 및
   멀티태넌트 특징 등이 요구됩니다. 일반적인 SaaS가 바로 이 영역 이라고 할 수 있죠.

정보 제공 서비스
 - 회사가 보유한 지적 재산권, 유용한 정보를 표준 인터페이스를 통해 고객에게 제공하는 서비스 입니다. 
    해당 정보는 서비스 제공자의 소유이고, 사용권한이 라이선스화 되어 있습니다. 
   . Netcraft, MediaMetrix, UPS(상품 배송 상태), FedEx(상품 배송 상태), Reuters, Gartner, Forrester 등

   고객의 필요에 따라 위의 회사의 정보를 구독하게 됩니다. 해당 정보를 직접 조사하는 것보다 서비스로 구독하는
   것이 훨씬 효율적일 것 입니다.

애플리케이션 서비스은 특정 업무를 서비스 제공자가 제공하는 소프트웨어를 인터넷을 통해 서비스로 제공받는 것이고, 정보 제공 서비스는 지적 재산권 정보를 제공 받는 것 입니다. 이 두가지 서비스 모두 SaaS 서비스라고 할 수 있겠죠.

자, 그럼 이제 SOA를 살펴보겠습니다. SOA는 아키텍처 스타일이고, SaaS는 하나의 비즈니스 모델 입니다.

SOA는 보유하고 있는 서비스들의 조합을 통해 새로운 소프트웨어 시스템을 신속하게 만들수 있도록 해주는 아키텍처 스타일입니다. SOA는 위의 애플리케이션 서비스, 정보 제공 서비스를 개발하는데 모두 적용될 수 있습니다.  SaaS를 개발하는데 있어 SOA가 반드시 적용되어야 할 필요는 없지만, SOA는 SaaS 서비스를 만들고 운영하는 것을 최적화 하는데 유용 합니다. 전자세금계산서를 웹을 통해 처리하도록 하는 것은 SaaS이고, 세금계산 애플리케이션을 국세청의 시스템과 연계하여 처리하는 것에는 SOA를 적용하여 개발될 수 있다는 것이죠.

즉, SaaS 서비스를 개발하는데 있어 SOA가 반드시 필요한 것은 아니지만, SOA 아키텍처를 이용하면 다른 시스템과의 연동이 쉬워지기 때문에 유용하게 적용될 수 있다는 것입니다.
그렇기 때문에 앞의 질문에 대한 답이 될 수 있을 것 같습니다.

추가 질문은 올려주시면 답변 드리도록 하겠습니다.

Hanu Kommalapati의 블로그 내용을 인용하였습니다.
Posted by 조이트리