아키텍트2008. 11. 18. 19:25

전체 글은 파일을 첨부합니다. 다운받아서 읽으시면 됩니다.

Cloud 기반 인프라의 등장

Cloud 기반 인프라가 새로운 핵심으로 등장하고 있습니다. 과연 Cloud 기반 인프라는 무엇일까요? 오늘 전통적인 방식의 인프라와 Cloud 기반 인프라를 접목한 새로운 모델을 제안해 보려고 합니다. 기업의 IT 인프라를 살펴보면 Cloud로 가면 좋을 것과 내부에서 운영하면 좋은 것을 구분할 수 있는데 두 가지 아키텍처상의 Trade Off을 살펴보는 것이 중요합니다. 구체적으로 들어가기 전에 한가지 예를 살펴보겠습니다.

 

서울에서 부산의 Hyatt 호텔까지 가는 방법

1.       승용차, 편리하지만 경제적으로 비효율적입니다.

2.       대중교통, 즉 기차, 비행기는 약간 불편하지만 가격이 저렴합니다.

 

그런데 왜 승용차를 이용하는 걸까요? 이유는 하고 싶은 대로 할 수 있기 때문입니다. (통제)

언제 출발 할지, 어디로 갈지(고속도로, 국도, 해안도로 등), 아파트 주차장에서 최종 목적지 Hyatt 호텔 주차장까지 직접 연결된다는 장점이 있죠. 기차의 경우는 정해진 시간표에 맞춰서 기차를 타야 하고, 정해진 경로, 즉 서울역에서 부산역까지 간 후 다시 대중교통을 이용해야 하며, 시끄러운 승객으로 인해 잠을 설칠 수도 있습니다. 장점은 가격이 싸고, 운전할 필요가 없다는 것이겠죠. (규모의 경제)

 

어떤 수단이 최선인가요? 이건 비용과 하고 싶은 대로 할 수 있는 것 어디에 우선순위를 둘 것이냐에 따라, 상황에 따라 다를 것 입니다. 약간의 비약 같지만, 기차를 클라우드라고 가정하도록 하겠습니다.

 

Lesson1. 클라우드는 직접 설치(On-Premise), 승용차에 비해 자유도가 떨어지지만, 규모의 경제를 얻을 수 있는 시스템입니다.

 

서울역에서 부산역까지 역과 역까지만 타고 갈 수 있다면 승용차에 비해 비용 효율적이겠지만 그렇게 매력적이지 않습니다. 원하는 목적지, Hyatt 호텔까지 가려면 버스, 택시, 오토바이, 자전거 등의 다른 운송수단이 필요합니다. 즉, 다양한 교통 수단이 혼합된 하이브리드 형태입니다. 높은 규모의 경제 (기차, 주요 도시간), 중간 정도의 규모의 경제로 (버스), 낮은 규모의 경제지만 최대의 유연성을 가진 택시, 오토바이, 자전거 등이 혼재되어 실 사회를 이루게 됩니다.

 

Lesson2. 하이브리드 형태를 통해 유연성과 신속성이 보장되면서 규모의 경제 또한 가능하게 됨

 

지금까지는 사람을 운송하는 이야기를 했지만, 화물에 대해 이야기를 해보면 효율적으로 짐을 싣고 내릴 수 있는 것이 굉장히 중요합니다. 특별한 장비, 및 프로세스가 사용되지 않는다면 싣고 내릴 때 엄청난 비용이 들 수 있습니다. 비용을 줄이는 방법이 바로 표준 컨테이너를 사용하는 방식이죠. 모든 화물을 컨테이너로 운반한다면 다양한 운송수단 간의 적재에 소요되는 비용을 최소화 할 수 있고 정제된 운송 네트웍을 사용할 수 있습니다.

Lesson3. 짐을 싣고 내리는 허브, 컨테이너화 기술을 통해 운송 시스템을 최적화하고, 정보 교환비용을 최소화 할 수 있음

 

이제 운송수단을 정보 시스템으로 바꾸어서 이야기를 진행해보도록 하겠습니다. 승용차는 On-Premise (직접 설치), 버스 및 택시는 호스팅 (운영 대행), 기차는 클라우드 및 SaaS로 이해를 하시면 됩니다.

 

앞의 3가지 Lesson을 통한 애플리케이션의 특징은 다음과 같습니다.

1.       전문화를 통한 최적화 (규모의 경제)

2.       유연성과 규모의 경제를 함께 이루는 하이브리드 전략

3.       데이터 교환을 쉽게 가능하도록 함

 

엔터프라이즈 적용 시나리오, Big Pharma (가상의 제약회사)

 

엔터프라이즈 기업에서 위와 같은 업무 특성에 맞는 최적화를 어떻게 적용하는지에 대한 글을 적어 보겠습니다.


첨부의 글을 참고하세요.
Posted by 조이트리
아키텍트2008. 11. 7. 14:55

온실가스, 탄소배출량 절감 등의 그린 IT 개념이 등장한지 벌써 꽤 많은 시간이 지난 것 같습니다. 지금까지 그린 IT하면 서버, 네트웍 장비, 스토리지 등의 저전력 하드웨어를 통해서만 가능한 것처럼 인식되었습니다. 하지만, 마이크로소프트는 소프트웨어를 활용한 그린 IT가 가능한 전략을 가지고 있고, 내부적으로 적용하여 효과를 얻고 있습니다. 이름하여, 그린 컴퓨팅 전략 입니다.

대한민국의 총 전기 생산량이 100이라고 가정하면, 화력발전을 통해 얻어지는 전기가 몇 정도 될까요? 놀랍게도 63.1 정도, 즉 63%에 육박합니다. 화력발전은 석탄, 석유, 천연가스를 태워서 물을 끊인 다음 터빈을 돌려서 전기를 생산합니다. 국내 보령화력발전소의 경우 하루 약 3만톤의 석탄을 사용하고, 24시간에 7만3천톤의 이산화탄소를 배출합니다. 이 정도의 이산화탄소를 분해하려면 하루에 잣나무 2,238만 9400그루를 심어야 한다고 하죠. 엄청나지 않습니까? 결국 나무로는 해결이 불가능 합니다. 우리가 할 수 있는 건 전기 사용을 줄이는 방법이 최선이라고 할 수 있죠. 마이크로소프트가 사용하는 전략은 크게 3가지 입니다.

줄이고, 관리하고, 다시 생각하자

1. 줄이고
    - Windows Server 2008은 Windows Server 2003에 비해 10% 에너지 효율성 ↑
    - 가상화를 통한 자원 최적화
       . 가상화 ROI 계산 도구 (무료)
    - 가이드 및 교육
       . Assessment & Planning Toolkit (무료) : 도구를 통해 전원관련 설정 가이드 제공
       . 데이터센터 베스트 프랙티스 제공

2. 관리하고
    - 에너지 낭비요인 줄이기 "측정할 수 없으면 개선할 수 없다"
    - 10~30% 서버는 아무일도 하지 않고 전원을 공급받는 상태 (미국, Uptime Institute 조사) 
    - System Center Configuration Manager, Virtual Machine Manager, Operation Manager등

3. 다시 생각
    - 환경 오염을 줄이고, 생산성 향상 시키는 방안을 늘 고민하고 적용하려고 해야 함

마이크로소프트가 위의 전략에 의해 실제 운영환경의 물리적인 서버, 477대를 16대의 서버로 줄여 약 2백만불 (24억)의 비용 절감 효과, 19TB의 디스크 공간을 8TB로 줄여 11TB의 절감 효과, 30개의 Rack을 단 2개로 줄였으며, 525 암페어의 전력 사용량을 8 암페어로 줄이는 효과를 직접 체험하였음

위와 같은 노력이 실제로 어느 정도의 탄소배출량을 절감하는지에 대한 수치를 산출하여 대외에 알리는 노력이 그린 활동의 중요한 실행, 집행 이라고 생각합니다.

Posted by 조이트리
아키텍트2008. 11. 4. 17:52
안녕하세요, 까만돌 입니다. 오늘 2008년 11월 4일에 코엑스 인터콘티넨탈에서 "클라우드 컴퓨팅의 현황과 비전" 이라는 주제로 Keynote 발표를 하였습니다.

한국과학기술정보연구원(KISTI) 주관으로 진행된 간담회에 지식경제부, 방송통신위원회, KISTI 등 정부기관을 비롯하여 삼성SDS, SK텔레콤, KT 등의 국내 대기업, 한국마이크로소프트, 한국Sun, 한국IBM, 한국HP 등의 업체들이 참여하여 간담회를 진행하였습니다.

목적은
1. 국내 클라우드 컴퓨팅 관련 정부, 학계 및 산업체간의 정보 공유
2. 클라우드 컴퓨팅 연구 사업 및 실용 사업 추진 주도
3. 공공분야(과학기술분야) 클라우드 컴퓨팅 기술방향 및 정책 협의
4. 기술교류, 운영관련 정보교류 등 상호 협력 체계를 마련
5. 클라우드 컴퓨팅 서비스 활성화 및 IT 응용 산업 발전에 기여 하는 것입니다.

제가 진행한 발표의 핵심은 아래와 같습니다. 클라우드 컴퓨팅 플랫폼 제공자, 현재 마이크로소프트의 Windows Azure가 대표적 입니다. (www.azure.com)
국내에서도 비슷한 형태로 클라우드 컴퓨팅 플랫폼을 제공하는 업체가 등장해야 한다고 생각합니다.
 

클라우드 컴퓨팅은 애플리케이션을 개발하거나 서비스할 때 서버나 스토리지 등 컴퓨팅 자원등을 자체적으로 보유하기 보다 이 같은 자원을 갖고 있는 클라우드 컴퓨팅 플랫폼 제공자를 통해 운용하는 것을 의미합니다.” , 우리 나라의 천재 개발자가 마이크로소프트의 메일 서비스인 핫메일에 대응하는, 즉 전 세계인을 상대로 한 메일 서비스를 개발하고자 할 때, 장애 요인은 수억 명의 사용자를 대상으로 메일을 서비스 하기 위해 필요한 네트웍 장비, 웹서버, 데이터베이스 서버, 막대한 양의 스토리지를 확보하기 어렵기 때문입니다. 동시에 메일 시스템을 사용하는 사용자가 100, 200명 일 때는 큰 문제 없이 서비스가 가능하겠지만 10만명, 100만명, 1,000만명으로 늘어나면 하드웨어 시스템을 감당하기가 어려울 것 입니다. 하지만, 클라우드 컴퓨팅 플랫폼 제공자는 아무리 많은 사용자라도 서비스할 수 있는 인프라를 보유하고 있기에 개발 능력만 보유하고 있다면 전 세계를 상대로 서비스를 판매할 수 있는 새로운 돌파구가 열리는 것을 가능하게 합니다.

클라우드 컴퓨팅이 적용된 실제 사례는 바로 이 사진 사이트, Smugmug (www.smugmug.com) 가 대표적입니다. 이 사이트는 클라우드 컴퓨팅 인프라를 이용해 개발되었습니다. 사이트 개발 시 사용한 만큼만 비용을 지불하는 방식이었기에 인프라 비용, 즉 서버, 스토리지, 네트웍 장비 등의 하드웨어 구입 비용이 전혀 들지 않았고, 즉 투자 비용이 없이도 사이트를 개설할 수 있었고 전세계의 사용자를 대상으로 서비스를 하고 있으며 현재 315,000명의 유료 사용자를 확보하여 큰 수익을 올리고 있습니다. 클라우드 컴퓨팅을 이용하면, 국내의 개발자가 인프라 투자 비용 없이도 아이디어 및 개발 능력만 보유하고 전세계를 상대로 비즈니스를 할 수 있게 되는 것 입니다.


메릴린치 보고서에 의하면 2020년 클라우드 컴퓨팅은 약 1,000억불, 100조원의 시장이 될 것이라고 예측되고 있습니다. 이 중의 10%, 아니 1%만 확보할 수 있어도 1조원이나 되는 방대한 시장입니다. 클라우드 컴퓨팅에 대한 정부, 산업계, 학계의 집중적인 관심과 투자가 필요하다고 생각합니다.


감사합니다.

Posted by 조이트리
아키텍트2008. 10. 31. 23:20
"클라우드 컴퓨팅의 진화 및 이슈"라는 주제로 강의를 진행하였습니다. 

클라우드 컴퓨팅의 비즈니스 모델은 크게 4가지 정도가 있습니다.
1. Storage as a Service, 스토리지 서비스 사업자
2. Infrastructure as a Service, 컴퓨팅/스토리지 서비스 사업자
3. Platform as a Service (PaaS), 플랫폼 서비스 사업자
4. Software as a Service, 애플리케이션 사업자

PaaS를 통해 플랫폼을 장악하는 업체가 SaaS 영역의 주도권을 잡을 것이라고 보여지던 시기가 있었지만 지금 마이크로소프트의 Windows Azure 플랫폼, Azure Services 플랫폼이 발표되면서 클라우드 플랫폼을 통해 국내 애플리케이션 개발 업체가 얼마든지 글로벌 서비스를 개발할 수 있게 됨에 따라, PaaS가 아닌 클라우드 플랫폼 사업자가 훨씬 우위를 차지하는 시대가 도래했습니다. 앞으로 국내의 애플리케이션 개발자, 개발업체가 진행할 수 있는 다양한 비즈니스 모델에 대해 언급해 보도록 하겠습니다.

해외의 업체가 한글을 지원하면서 국내에 서비스를 하듯, 국내 업체가 영어를 지원하면서 해외에 서비스를 하는 것도 어렵지 않게 가능해지는 시대가 왔습니다.
Posted by 조이트리
아키텍트2008. 10. 28. 19:53

윈도우 애저는 굉장히 유연한 플랫폼으로 윈도우 런타임 환경에 전체 애플리케이션을 구동할 수도 있고, 개별 서비스만 활용할 수도 있습니다.

PDC에서 발표된 버전에서는 마이크로소프트 .NET 프레임웍과 비쥬얼 스튜디오(Visual Studio)를 이용해 Windows Azure(애저) 애플리케이션을 개발할 수 있고, 가까운 시일에 PHP, Ruby 등의 언어를 이용해서도 애플리케이션 개발이 가능해집니다.


1. 윈도우 애저에 애플리케이션 개발
  - 일단 애플리케이션을 개발한 후 윈도우 애저, 즉 클라우드 상에 배포합니다.
  - 컴퓨팅 파워 및 트래픽이 많든 적든 안정적인 애플리케이션을 최종 사용자가 사용 합니다.

굉장히 간단하죠?
How Does It work Diagram


2. 구름에 있는 애플리케이션에 애저 서비스 추가 및 On-Premise 애플리케이션에 기능 추가

지금 여러분이 개발한 클라우드 애플리케이션에 Windows Azure에서 제공하는 다른 서비스를 추가하고 싶습니다. Messenger 등의 Live Services (전 세계 4.6억명)이 쓰도록 할 수 있고, 워크플로우, 접근제어, 서비스 버스등을 이용하기 위해 .NET Services를 쓰거나 SQL Services를 사용할 수도 있겠죠. 물론 비즈니스 파트너 또는 업무용으로 사용될 어플리케이션을 개발할 수도 있습니다.

How Does It work Diagram

3. 모두 모아서

또한, 가장 중요한 내용은 Azure (애저) 서비스 플랫폼은 클라우드 운영체제이며 서비스들의 집합이므로 웹, 모바일, 소프트웨어 및 서비스, 즉 하이브리드 하게 어느 유형에도 사용할 수 있다는 장점이 있습니다.

현재 있는 소프트웨어에 클라우드 컴퓨팅이 가지고 있는 부가적인 기능을 추가할 수도 있고, 다른 어플리케이션에서 사용할 서비스를 만드는 것 등이 가능합니다.

How Does It work Diagram
Posted by 조이트리
아키텍트2008. 10. 28. 18:56
안녕하세요, 이전 글에 마이크로소프트의 클라우드 컴퓨팅 Platform에 대한 이야기를 했었는데요
어제 날자로 드디어 발표되었습니다. 이름이 Windows Strata 일지, 아니면 새로운 이름일지에 대해 의문을 제기했었는데요, 결국은 새로운 이름이네요. 윈도우 애저, Windows Azure 입니다.


Windows Azure (윈도우 애저)는 컴퓨팅, 스토리지, 매니지먼트 관련된 핵심 기반 인프라를 의미하고, 거기에 올라가는 애플리케이션은 Azure (애저) 서비스 플랫폼을 이용하여 개발할 수 있습니다.

윈도우 애저는 기존의 On-Premise를 대체하는 개념이 아닙니다. 고객은 상황에 맞는 것을 선택하게 되는데 선택의 폭이 넓어졌다, 라고 보시는 것이 좋습니다. 바로 소프트웨어 플러스 서비스의 핵심인 선택, 클라우드 컴퓨팅이 추가된 개념으로 이해하셔야 합니다.
Posted by 조이트리
아키텍트2008. 10. 24. 10:28
블로터닷넷 도안구 기자님이 아래와 같이 써 주셨습니다.

http://bloter.net/archives/7561

mmshsshin신현석 한국마이크로소프트 개발자와 플랫폼 사업총괄 부장은 “아마존의 아마존 웹서비스(Amazon Web Service)가 대표적이며 마이크로소프트의 버추얼어스를 부동산 정보와 결합해 제공하는 메시업, 다음커뮤니케이션과 NHN이 진행하고 있는 메시업, 오픈마루의 다양한 서비스 시도들이 WOA의 초기 모델이라고 볼 수 있습니다”라고 밝혔다.

야후의 교통정보라는 서비스를 마이크로소프트의 버추얼어스나 구글어스와 결합하거나 부동산 전문 업체들이 전세계 지도 서비스 업체들의 인프라를 활용해 3차원적인 정보 서비스를 별도로 만들어 내면서 이전과는 전혀 다른 서비스들이 속속 출현하고 있다. 이런 서비스를 제공하기 위해 자사의 서비스 아키텍처를 좀더 유연하게 만들어 내는 것이 WOA이다.

그렇다면 왜 WOA가 주목을 받을까?

신현석 부장은 “웹이 하나의 플랫폼이 됐기 때문입니다”라고 설명한다. 수 많은 웹 서비스 업체들은 자신들의 서비스를 네티즌들에게 제공하고 있지만 이와는 별개로 수많은 개발자들이 웹서비스 업체의 인프라를 활용해 또 다른 서비스를 만들어 낼 수 있도록 돕고 있다. 이런 서비스 인프라를 만들어 제공하지 않으면 경쟁 업체들이 선점하면서 생태계를 이끌어가기 때문에 웹서비스 업체들이 주목을 하고 있다.

그렇다고 해서 웹서비스 업체들만 관심을 가지는 것은 아니다. 일반 기업들도 인터넷뱅킹 서비스와 같은 다양한 인터넷 서비스를 제공하고 있는데 이런 사이트 구축을 할 때 WOA 형태로 진행할 수 있다. 다만 그동안 기업 내부적으로 SOA의 표준들이 다양하게 사용돼 왔기 때문에 웹 서비스 분야에서도 SOA 표준 중 하나인 SOAP를 사용할지 아니면 WOA의 REST를 사용할지의 선택을 해야 한다. 일장일단이 있기 때문에 어떤 아키텍처로 가져갈지에 대한 다각도의 검토 작업이 필수적이다.

공공 기관들의 경우, 통계정보나 지리정보, 기상정보 등 원천 데이터들을 보유하고 있고, 지속적으로 이를 담는 그릇을 서비스 형태로 만들어가기 위해 노력하고 있는만큼 WOA를 검토할 필요성은 기업이나 웹서비스 업체에 뒤쳐지지 않을 것으로 보인다.

신현석 부장은 “WOA가 SOA를 모두 대체할 수 있다고 보지는 않습니다. 어떤 서비스를 제공하기 위해 최적의 아키텍처는 무엇인지 검토가 필요한 상황이죠”라고 전하고 “SOA가 소개된지 오래됐지만 꾸준히 변화하고 있듯이 이제 막 소개되고 있는 WOA도 적용 가능한 분야를 찾아 진화, 진보해 나갈 것으로 봅니다”라고 밝혔다.

Posted by 조이트리
아키텍트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 조이트리