아키텍트2008. 10. 17. 10:19
2008년 10월 15일자 디지털타임즈에 위와 같은 제목의 기사가 게재되었습니다.
그 내용 중 제가 밝힌 내용도 나와서 참고로 올려 놓습니다.
http://www.dt.co.kr/contents.html?article_no=2008101602010560744002

SOA의 ROI에 의문이 제기 되고 있다.

"이런 가운데 기존 SOA의 단점을 보완하기 위한 대안찾기 움직임도 활발하다. 웹지향아키텍처(WOA)가 바로 그것으로 `단순함'이라는 웹의 근본적 장점을 충분히 살려 부동산 회사가 외부 지도정보 위에 매물정보를 함께 보여주는 등 기존의 웹 서비스를 차용해 빠르게 새로운 서비스를 개발하는 개념이다.

신현석 한국MS 개발자플랫폼 사업총괄 부장은 "WOA를 SOA와 같은 형태로 기업 환경에 적용하기 위해서는 데이터 암호화나 서비스 단위의 재사용 등 해결해야 할 기술적 과제가 아직 많이 남아있다"며 "그러나 일반 소비자 대상 서비스 영역에서 SOA의 단점을 보완해 활용할 수 있는 가능성은 충분할 것"이라고 말했다."

제일 중요한 것은 "고객이 얼마나 Benefit, 즉 혜택을 느낄 수 있는가" 라고 생각합니다. 그것이 SOA를 기반으로 개발되었든, 아니면 전통적 개발 방식으로 개발되었든 최종 사용자는 차이를 느끼기 어렵기 때문입니다. 그렇다면 비즈니스적으로 비용, 시간 등의 가시적인 효과가 없다면 무슨 이유로? 이런 질문을 해보게 됩니다.


Posted by 조이트리
아키텍트2008. 10. 15. 13:10

"WOA는 웹을 이루는 검증된 기술인 HTTP 프로토콜을 그대로 사용하고, SOAP 보다 간단한 REST 아키텍처 스타일을 사용하여 URI 형태로 참조되면서 웹 서비스를 구현할 수 있다." 마이크로소프트의 Virtual Earth를 이용하여 부동산 중개업소가 활용하는 경우 아주 획기적인 서비스를 제공할 수 있습니다.
아래 그림에서 보듯, 해당 지도에 나타나는 매물을 보실 수 있죠. 집 모양의 아이콘을 클릭하면 상세 가격, 정보가 나타납니다. 이런 형태로 중개업소 사이트를 구축하는 것이 어려울까요? 어렵지 않습니다. Virtual Earth API가 제공되기 때문에 그대로 가져다가 쓰면 된다는 거죠. 이것이 WOA의 장점 입니다.


위와 같이 WOA를 활용하면 누구나 거대한 서비스 공급망의 일원이 될 수 있습니다.

SOAP vs REST 비교 자료를 올려 보겠습니다.

SOAP(Simple Object Access Protocol) vs REST(Representational State Transfer)

 

새로 웹서비스를 시작하려는 개발자는 많은 기술 및 개념에 압도되곤 합니다. SOAP, REST, WSDL, XML Schema, UDDI, WS-I, WS-Security, WS-* 등 정말 많고 계속 생겨나고 있죠. 그 중 웹서비스 개발에서 가장 대표적인 SOAP REST 중에서 한가지를 선택하게 됩니다.

 

SOAP

SOAP 1998 CORBA DCOM 같은 미들웨어 기술에 대한 대안으로 마이크로소프트에 의해 언어 및 플랫폼 중립적으로 선보였습니다. 이후 수정을 거쳐 1999 12 SOAP 1.0, 2000 5월에 1.1 버전이 W3C에 제출되었고 웹서비스의 핵심으로 부각되었습니다. 현재는 1.2버전이 사용되고 있습니다. SOAP과 함께 WSDL, XML Schema XML 기반의 메시지를 교환하는 표준이며 디자인 개념에 확장이 가능하도록 설계되어 다른 표준이 통합되기 쉽습니다. 현재도 계속 추가되고 있고, WS-*로 표현할 수 있습니다. 쉽게 말하면 점점 복잡해지고 있는 거죠. 하지만 필요한 것만 선택해서 사용할 수 있기에 걱정할 필요는 없습니다. SOAP의 기본 구조는 <Header>, <Body>로 구성되어 있습니다. <Header>는 선택, <Body>는 필수적으로 있어야 합니다. SOAP <Body>는 메시지를 보낼 때 에러가 발생하면 전송자에게 알려주는데 <Fault> element <Body> element의 자식으로 포함되어 보내지는데, 분산 컴퓨팅에서는 아주 중요한 개념 입니다.

SOAP을 이용하여 개별 종목의 주가를 가져오는 웹 서비스 예제를 살펴보겠습니다.

The request:

GET /StockPrice HTTP/1.1
Host: cooolguy.net
Content-Type: application/soap+xml; charset=utf-8
Content-Length: nnn
 
<?xml version="1.0"?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
   xmlns:s="http://www.cooolguy.net/stock-service">
   <env:Body>
     <s:GetStockQuote>
          <s:TickerSymbol>MSFT</s:TickerSymbol>
     </s:GetStockQuote>
   </env:Body>
</env:Envelope>

The response:

HTTP/1.1 200 OK
Content-Type: application/soap+xml; charset=utf-8
Content-Length: nnn
 
<?xml version="1.0"?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
   xmlns:s="http://www.cooolguy.net/stock-service">
   <env:Body>
     <s:GetStockQuoteResponse>
          <s:StockPrice>30.08</s:StockPrice>
     </s:GetStockQuoteResponse>
   </env:Body>
</env:Envelope>

 

REST

HTTP/1.0 Spec, HTTP/1.1, URI(Uniform Resource Identifiers) 등 인터넷의 표준을 수립하던 ROY T.FIELDING 교수가 웹 어플리케이션간 상호작용을 위한 이상적인 모델을 만들었는데, 그것이 바로 REST(Representational State Transfer) 아키텍처 스타일이며 최초 버전은 1995년에 만들어졌고, 현재 존재하는 웹 아키텍처의 근간을 이루고 있습니다. REST를 정의하기에 앞서 잘 디자인된 웹 어플리케이션이 동작하는 방식을 살펴보면 왜 이런 이름이 붙여졌는지 이해할 수 있습니다. 네트웍 상의 웹 페이지를 상태(State)를 가진 객체로 본다면 사용자가 링크를 클릭하거나 간단한 입력 값을 넣은 후 버튼을 클릭하면 해당 상태(State)가 특정한 형태(Representation)로 전송되고, 이 상태(State) 역시 다른 형태로 전송되는 과정을 갖게 됩니다. 결국 현재 우리가 매일 사용하는 Web REST를 가장 잘 표현한 아키텍처의 예가 됩니다. REST는 자원(Resource)에 대한 정의를 제공하는데 웹페이지, 이미지, 텍스트, 비디오, MP3, 슬라이드쇼, 지도 등 어떤 것도 자원이 될 수 있습니다. 자원을 명사라고 하면, 이 자원에 어떤 동작을 취하도록 하는 동사(Verb)가 필요하게 되는데 HTTP에서는 ‘GET’, ‘PUT’, ‘DELETE’, ‘POST’ 4개를 사용하고 있습니다.

HTTP

동작

GET

읽기

PUT

생성, 수정

POST

생성, 수정, 삭제

DELETE

삭제

RESTful 웹 서비스는 Plain old XML(POX) HTTP 프로토콜을 이용하여 사용하는 방식 입니다. 위의 4개의 동사를 이용하여 네트웍 상에 위치하는 자원에 원하는 조작을 하게 됩니다.‘신현석이라는 사용자의 상세한 정보를 가져오는 웹서비스를 만든다고 했을 때 HTTP GET 방식으로 “http://www.cooolguy.net/users/신현석과 같이 사용할 수 있는 겁니다.

 

주가 정보를 가져오는 서비스를 RESTful 웹서비스로 구현하면 아래와 같습니다. SOAP 방식과 비교하면 훨씬 간단한 것을 느끼실 수 있습니다.

 

The request:

GET /StockPrice/MSFT HTTP/1.1

Host: coooguy.net

Accept: text/xml

Accept-Charset: utf-8

The response:

HTTP/1.1 200 OK

Content-Type: text/xml; charset=utf-8

Content-Length: nnn

 

<?xml version="1.0"?>

<s:Quote xmlns:s="http://cooolguy.net/stock-service">

     <s:TickerSymbol>MSFT</s:TickerSymbol>

     <s:StockPrice>32.08</s:StockPrice>

</s:Quote>

 

SOAP XML 기반의 분산 컴퓨팅을 위한 프로토콜이라면, REST는 웹기반의 아키텍처 스타일 입니다. 이렇게 역사가 오래된 REST가 지금 부각되고 있는 이유는 웹은 간단함을 통해 성장 발전했는데, SOAP을 이용한 웹서비스는 복잡하다는 겁니다. HTTP, XML, URI만 가지고 웹서비스에 생명력을 불어넣고 싶어졌다는 거죠. 한가지 잊지 말아야 할 것은 RESTful 웹서비스를 가지고 SOAP이 할 수 있는 모든 것을 구현할 수는 없겠지만, “간단함”, “매시업같은 형태를 통해 웹의 서비스화가 가속화되고 있다는 사실 입니다.

 

SOAP의 장점

1.     언어, 플랫폼, 전송(Transport) 중립

2.     분산컴퓨팅 환경에서 사용하기 위한 디자인

3.     웹서비스를 위해 널리 사용되는 표준이며, 다른 표준과 통합을 통한 확장성이 뛰어나고 다양한 Vendor를 통한 지원이 이루어지고 있음

4.     에러처리 기능이 포함되어 있음

SOAP의 단점

1.     개념적으로 REST보다 더 어렵고, 무거움

2.     개발이 REST 보다 어렵고 Tool이 필요한 경우가 많음

 

REST의 장점

1.     언어, 플랫폼 중립

2.     일반적으로 SOAP보다 웹서비스 개발이 더 쉬움

3.     매시업을 통한 새로운 형태의 웹서비스 개발을 쉽게 할 수 있음
. Virtual Earth API
와 연계하여 교통정보 제공 웹사이트를 개발하는 등

REST의 단점

1.     분산환경에서 메시지가 중간 경유지를 여러 번 통과하는 경우 사용하기 어려움

2.     보안, 정책, 안정적인 메시지 전달을 지원하기 위한 표준이 부족함
, 복잡한 요구사항을 표현하기 위해 직접 구현해야 함

Posted by 조이트리
아키텍트2008. 10. 15. 10:22

한국 시간으로 2008년 10월 15일, http://www.microsoft.com/silverlight/ 을 통해 다운로드 받으실 수 있습니다.

주목할 만한 내용은 Eclipse Foundation과 함께 Eclipse 개발 환경에서 Silverlight 컨트록 팩을 이용하여 개발할 수 있게 되었다는 것입니다. 지금까지 Eclipse 툴을 사용하는 Java 개발자들은 Adobe flash를 de-facto 스탠다르 같이 사용해 왔지만, Silverlight도 함께 이용할 수 있게 됨으로 상호운영성 측면에서 획기적인 진전을 이루었다고 할 수 있습니다.

Silverlight의 채택율은 급격히 증가하고 있습니다. 일본 같은 경우 이미 50%를 넘어섰고, 약 150여개의 파트너와 수만개의 어플리케이션이 Silverlight을 이용하여 개발되었습니다. 지난 베이징 올림픽의 경우 NBCOlympics.com을 통해 약 5천만명의 사용자가 사용하였고 13억건의 페이지 뷰, 7천만개의 비디오가 Silverlight을 통해 전달되어졌습니다. 우리나라에서도 KBS가 Silverlight을 이용해 올림픽을 중계하여, 온 국민을 감동의 도가니로 몰아넣었던 야구 한일전, 결승전의 경우 엄청난 양의 트래픽이 발생했다고 합니다.

Silverlight을 이용했을 때의 장점은 사이트에 체류하는 시간을 길게 해준다는 건데, 평균 3분 정도 체류하던 고객이 27분 이상 머물른다는 통계 데이터가 발표되기도 했습니다. MNet의 TVDeep을 보시면 아시겠지만 미디어를 지속적으로 소비하도록 하는 구조로 개발되고, 사용자의 시선을 끌기 때문이죠.

한 번 보세요. 매력적인 모습을 확인할 수 있습니다.

Posted by 조이트리
아키텍트2008. 10. 14. 21:24

아이뉴스24가 주최한 넥스컴 2008에서 "소프트웨어 플러스 서비스 전략을 통한 SaaS, 클라우드컴퓨팅의 이해"에 대한 발표가 기사화 되었습니다. 아래 링크를 클릭하시면 보실 수 있습니다. 제가 전달하고자 했던 내용과 기사의 방향이 조금 다릅니다. 블로그를 통해 다시 정리해 보겠습니다.

"SaaS(Software as a Service) 개념은 기업의 IT 비용 절감의 가장 확실한 대안이다."

한국마이크로소프트는 14일 서울 논현동 건설회관에서 개최된 차세대 컴퓨팅
기술 세미나 '추계 넥스컴 2008' 행사를 통해 이같이 강조했다.


SaaS란 소프트웨어를 제 3의 서비스 제공자 하드웨어에 설치하고, 인터넷을
통해 이를 이용할 수 있도록 하는 개념이다.

한국마이크로소프트는 자사 주요 제품을 서비스로 이용할 수 있도록 선택의
폭을 넓혔으며, 이를 통해 기업이 IT 비용을 줄여나가는데 앞장서고 있다고
설명했다.

한국마이크로소프트 신현석 부장은 "사용자는 적지 않은 금액의 소프트웨어
구매  비용을 지불하고, 구매 이후에도 주기적인 유지보수를위해 추가적인
비용을 지불한다"면서 "인터넷을 통해 소프트웨어를 서비스 형태로 '빌려쓰고'
사용한 만큼의 요금을 월이나 연간 단위로 지불하는 SaaS 방식은 기업의
이같은 고민을 해결해 준다"고 말했다.
http://itnews.inews24.com/php/news_view.php?g_serial=364553&g_menu=020200

Posted by 조이트리
아키텍트2008. 10. 14. 11:35

ADS의 목적은 잠재적인 솔루션을 승인할 "Power Sponsor"를 확보하는 것 입니다.
 - 기본적인 샘플 아키텍처 청사진을 이용합니다. 이해 당사자들이 해당 솔루션을 이해하도록 하는 것이 가장 중요하고, 잠재적인 가치에 대해 정보를 제공해야 합니다.

. PT 형태일 필요는 없습니다. 보드에 그림을 그리거나, 대화를 통해 진행하는 것이 바람직한 경우도 많습니다.
. 솔루션 아키텍처 디자인을 개략적으로 그린 후 승인을 받습니다.
. POC까지 필요없다고 판단된다면, 의사결정을 이 단계에 받아 냅니다.
  - 가능하면 Deal을 Close 하는 것이 좋습니다.
     즉, 고객으로 High Level 테크니컬 디자인에 대한 승인을 받아내는 것이 목적 입니다. 
. 실제 구현을 위한 아키텍처가 아닙니다. 이 부분은 프로젝트팀 및 컨설턴트가 투입되어 진행합니다.
. 5-7명 정도를 대상으로 긴밀하게 진행하는 것이 효과적 입니다.
. Project Framework (Microsoft Project Framework)을 활용할 수 있습니다.
. 진행 중에는 자주 Summarize 가 필요합니다.
. 목적에 대해 종종 확인합니다.
. 요구사항과 실제 프로덕트 및 솔루션과 매핑하여 구현 가능함을 중간 중간 확인합니다.

산출물
 - 비전 및 범위 도큐먼트
 - 솔루션 아키텍처

이후의 글에서 MDOP(Microsoft Desktop Optimization Pack)에 대한 ADS 및 아키텍처 등을 적어 보겠습니다.
Posted by 조이트리
아키텍트2008. 10. 13. 10:24

아이뉴스24가 주최하는 "무한경쟁 시대의 뉴 패러다임, 클라우드 컴퓨팅 [넥스컴 2008] 가을 컨퍼런스"에서
"소프트웨어 플러스 서비스 전략"을 통한 SaaS, 클라우드 컴퓨팅의 이해" 라는 주제로 발표를 합니다.

장소는 학동역 건설회관 2층 대강당에서 진행됩니다..
제 세션은 오후 1시부터 1시40분까지 총 40분간 진행되고, Track 2 입니다.
새로운 컨셉, 비즈니스 모델이 계속 추가되는 상황에서 어떻게 이해하고 접근하는 것이 기업의 이익에 가장 부합하는 방식인지를 알 수 있는 자리가 될 거라고 생각합니다.

Posted by 조이트리
아키텍트2008. 10. 10. 16:05

앞의 글에서 PDC에 대해 설명 드렸죠? 전 세계의 많은 블로거 들이 PDC 사이트를 찾다가 놀라운 사실을 하나 발견했다죠. 대부분의 세션이 "Windows Strata" 라는 이름 밑에 들어가 있더라는 거죠. 그래서, 새로운 이름에 대한 추측, "Windows Strata" 라고 이야기들을 하고 계시네요. 맞을까요? 저도 잘 모릅니다. :)

마이크로소프트는 PC용 운영체제, 모바일용 운영체제, 서버용 운영체제가 있죠. Windows Vista, Windows Mobile, Windows Server 입니다. 그렇다면 인터넷, 즉 클라우드용 이름은 무엇일까요? Windows Cloud? 가 맞을까요, Windows Strata가 맞을까요? 쩝. 저도 슬슬 기대가 됩니다. 과연 무얼까? 이름 맞추기 이벤트 한 번 해보면 재밌을 것 같다는 생각도 드네요. 자, PDC를 기다려 보죠. ㅋㅋ
Posted by 조이트리
아키텍트2008. 10. 9. 22:45
PDC(Professional Developers Conference) 2008 !!

마이크로소프트의 역사적인 발표는 PDC에서 이루어져 왔습니다. .NET 전략도 PDC를 통해 이루어졌었죠. 마이크로소프트의 클라우드 컴퓨팅에 대해 많은 기자분들, IT 정책을 수립하는 분들이 질문을 하셨지만, 시원하게 말씀드리지 못하고 늘 드리던 말씀이 있었죠. "PDC에서 다 발표됩니다. 조금만 기다려 주세요"

마이크로소프트의 클라우드 컴퓨팅에 대한 비전, PDC에서 공개되는 내용을 특집으로 다루어 보겠습니다. 사실 지금도 말하고 싶은게 많은데, 참고 또 참습니다. ^^, 그 날을 위해

2008년 10월 26일 (Pre-conference), 본 행사는 10월 27일 ~ 30일까지 LA 컨벤션 센터에서 진행됩니다.
기대하셔도 좋습니다. 개봉박두 ~
Posted by 조이트리
아키텍트2008. 10. 2. 19:07
개발자들이 웹 어플리케이션, 웹사이트를 개발할 때 뭐가 필요할까요? 웹서버가 필요하죠. 웹서버를 통해 웹사이트 및 웹 어플리케이션을 개발하고 정보를 저장하는 공간, 즉 스토리지가 필요합니다. 웹서버와 스토리지는 운영체제가 필요하고, 이 운영체제는 하드웨어, 즉 서버가 필요하게 됩니다.

어플리케이션, 사이트 개발에 꼭 필요한 이런 기본적인 것들이 준비된 이후 개발이 가능합니다. IT 관리자를 통해 하드웨어 선정, 발주, 입고, 설정 등의 복잡한 절차 및 기간이 필요하게 되죠.
IDC 및 호스팅 업체를 통해 장비를 임대하여 사용할 수도 있지 않을까? 라고 생각이 드시죠. 그래도 여러가지 절차는 거쳐야 하죠.

클라우드 컴퓨팅은 위의 꼭 필요한 것들이 이미 모두 설정이 다 되어 있습니다. 내 로컬 운영체제를 쓰는 것처럼 클라우드에 존재하는 데이터베이스, 웹서버를 사용하는 거죠. "Windows Cloud"라고 하면 Windows 7 하고 비슷하게 느껴지시나요? 아닙니다. 새로운 클라우드 운영체제 개념입니다. 더 자세한 내용은 아직 밝히기 어렵습니다. 올해 11월에 개최되는 PDC(Pro Developer Conference)에서 발표될 예정입니다. 기대해주세요.

2008년 10월 1일, 스티브 발머 마이크로소프트 CEO께서 언급해주신 내용을 정리해 봤습니다.  
Posted by 조이트리
아키텍트2008. 9. 23. 14:27
2008년 9월 IT Today지에서 SaaS 코리아 포럼의 15명의 전문가를 대상으로 SaaS 활성화에 관한 설문 조사가 있었습니다. 저도 그 중의 한명으로 참여를 했었지요.


많은 분들이 기업용 어플리케이션이라고 답했지만, 저는 통신업체라고 답을 했죠. 그 이유는 "SaaS는 서비스 형태로 제공됩니다. 24시간 * 7일, 365일 운영되어야 하죠. Service Level도 관리해야 합니다. 어플리케이션 업체들은 어플리케이션 개발은 잘 하죠. 하지만, 운영하고는 주력 분야가 다르다고 생각합니다. 개별 업체들이 1,2개의 자체 어플리케이션을 자체적으로 운영까지 하면서 수익을 낸다는 것은 생각보다 어려운 일이라고 생각되기 때문이죠. 규모의 경제가 안나올 수 있다는 겁니다. 따라서, 마켓플레이스를 갖춘 통신업체가 SaaS 비즈니스를 Drive하고, 어플리케이션 업체는 수익을 Share하는 모델이 적당할 것이라고 생각합니다."

Zdnet 기사를 보면 영국의 대표적인 통신 사업자 BT가 SaaS 서비스를 SMB(Small & Medium Business) 대상으로 번들링하여 제공하기 시작했다고 밝히고 있습니다.
BT는 영업대표가 회사 웹사이트에서 마케팅 메일에 대한 고객 응답 메일을 보면서, 고객의 정보를 바로 확인할 수 있는 이메일 마케팅 솔루션을 보유한 Genius.com 이라는 업체와 파트너쉽을 맺었습니다. 영업 대표가 가능성 있는 잠재고객을 빠르게 확인할 수 있는 바로 이 솔루션을 BT 스마트 마케팅에 패키지로 포함시킨 거죠.
올 초에 발표한 NetSuite와 SugarCRM과도 잘 연계된다고 하죠. 고객들의 요구는 그렇게 단순하지 않습니다. 하나의 어플리케이션 사업자의 서비스로는 해결하지 못하는 경우가 많지만, 통신 업체가 마켓플레이스를 통해 여러 서비스를 하나로 묶어서 서비스할 수 있다면 성공가능성은 훨씬 높아진다고 생각합니다.

이것이 바로 통신업체가 더 유리할 것이라고 생각하는 이유 입니다.

Posted by 조이트리