시장은 전문가들의 예측대로 움직이고 있다. 출하되는 유닛수로 보나 매출로 보나 유닉스와 메인프레임의 비율은 줄고 있으며 윈도우나 리눅스 기반의 x86의 비율이 꾸준히 증가하고 있다. 시장 조사 기관 IDC에 따르면, 윈도우 서버는 작년 대비 2010년 2분기 하드웨어 매출면에서 6.7% 증가했고, 출하 유닛면에서 28.2% 증가했으며, 분기 매출에서 50억 달러를 달성하여 서버시장에서 매출기준 46.5%를 점유한 것으로 나타났다.

리눅스 기반 서버 또한 증가세를 나타내, 작년 2분기 대비 30.1%가 증가하여 분기 매출에서 18억 달러를 기록했으며, 이는 전체 서버 매출의 16.8%를 차지하는 숫자이고 작년 동기 대비 2.5% 증가한 수치다.

반면, non-x86 서버 시장은 분기 매출 측면에서 16% 감소하여 39억 달러를 기록했다.

관련 기사 : http://www.networkworld.com/news/2010/082510-windows-linux-unix-servers.html?hpg1=bn

Posted by 장현춘

약 한달 전 쯤인 2010년 7월 2일 마이크로소프트가 닷넷과 자바에 관한 웹 애플리케이션 및 웹 서비스에 관한 성능 비교 자료를 내놓았다. 이름하여 "Microsoft .NET Framework 4.0 vs. IBM WebSphere 7 StockTrader Benchmark Report”로서 이는 작년 2009년 3월에 공개한 성능 비교 자료에 대한 업데이트이다.  작년 비교자료에 대해 올렸던 이전 포스트를 참고하면서 이 포스트와 함께 비교하며 읽으면 한층 재미가 있을 것으로 생각한다. 비교자료에 관한 상세한 정보는 http://msdn.microsoft.com/en-us/netframework/bb499684.aspx 에서 찾을 수 있으며, 이 테스트에 사용된 모든 자바 및 닷넷 소스 코드 또한 이 싸이트에서 다운로드 받을 수 있다. 
예전 비교와 달라진 것은 .NET Framework 버전이 3.5에서 4.0으로 업그레이드 되었고, Windows Server 버전이 2008에서 2008 R2로 달라졌고 따라서 IIS 또한 7.0에서 7.5로 높아졌다. 아울러 모든 테스트 환경은 64 Bit인 것은 작년과 동일하다.

이 테스트는 IBM이 WebSphere 기반으로 J2EE의 베스트 프랙티스를 바탕으로 만든 애플리케이션인 Trader를 닷넷 버전으로 만들어 아키텍처나, 각종 WAS 세팅에 대한 정보를 공개하여 독자 검증을 거치고 있으며, 성능과 확장성을 검증하며 이에 드는 비용을 산정하여 가장 비용 합리적인 애플리케이션 구축 방안을 제시함을 목적으로 한다. (예전 PetStore 관련 비교시와는 전혀 다르며 아키텍처나 소스 코드를 모두 공개하여 자신있게 결과를 공표하고 있다.)

서버 사양
1. IBM Power 570 with IBM WebSphere 7 and AIX 5.3
2. Hewlett Packard BladeSystem C7000 with IBM WebSphere 7 and Microsoft Windows Server 2008 R2
3. Hewlett Packard BladeSystem C7000 with Microsoft .NET 4.0 and Windows Server 2008 R2
JavaEE의 경우 IBM Power 570에서 한번, HP BladeSystem에서 한번, 이렇게 두번 진행하고 .NET의 경우 HP BladeSystem에서 한번 진행했다. (아마도 오해의 소지를 없애기 위해 JavaEE의 경우 IBM H/W에서 한번, 동일한 조건의 HP H/W에서 한번 진행한 것으로 보인다.)

테스트 항목 (작년과 동일)
1. 일반적인 웹 애플리케이션 성능 비교 : 웹 페이지에서 비지니스 로직을 호출하고 데이터베이스에서 가져온 정보를 웹에 뿌리는 일반적인 웹 애플리케이션 성능 비교로서 자바의 경우 JSP + Servlet + JDBC direct 호출 방식으로 오해를 없애기 위해  EJB를 사용치 않았다. 닷넷의 경우 ASP.NET + BLL + ADO.NET의 일반적인 방식을 따른다.
2. 미들티어 웹 서비스 성능 비교 : 클라이언트 부분은 배제하고, 비지니스 로직에서 데이터베이스 접근 로직을 거쳐 가져온 데이터를 SOAP 기반의 표준 웹 서비스로 노출하는 것 까지를 포함한다. 즉, SOAP 메시지로 serialization하는 성능까지만 포함한다.
3. 웹 서비스 벤치마크 (WSTest) : 애초 Sun 만들어 배포한 WSTest를 수정하여 진행하는 것으로 비지니스 로직을 전혀 담지 않고 순수하게  자바와 닷넷의 웹 서비스 스택 성능만을 비교한다. 즉, IBM WebSphere의 웹 서비스 스택 즉 JAX-WS 구현체와 마이크로소프트의 웹 서비스 구현체인 WCF의 성능을 비교한 것이다.

위 세가지 경우에 있어서 공통적으로 적용한 규칙은 테스팅 툴을 사용하여 30분간 부하를 적용하고 유지가능한 최고 TPS (Transaction per second)를 선정하는 것이다. 또한 성능 테스트에서 인프라가 방해를 하지 않도록 데이터베이스 서버의 CPU는 항상 50% 미만을 유지하도록 하였고, 비지니스 로직이 올라가는 서버 (WAS)의 CPU는 96% 정도 유지하여 최상의 성능을 발휘하도록 설정하였다.

시스템 아키텍처
웹 애플리케이션 성능 비교의 경우 Mercury의 LoadRunner를 사용하였으며, 32대의 물리적 클라이언트가 사용되었고, 각 클라이언트는 수백명의 서로 다른 사용자로 부하를 생성했으며, 각 사용자는 매 요청마다 1초의 Think time을 갖는 방식으로 진행되었으며 30분간 진행되었다. 에러 발생 빈도는 측정 기간동안 0.01%이내에 위치하도록 모니터링되었다.

image

미들티어 웹 서비스 성능 비교 및 WSTest 웹 서비스 벤치마크의 경우에는, .NET Capacity Planner 웹 서비스 테스트기를 이용하였고, 0.1초의 Think Time을 갖는 10개의 서로 다른 클라이언트에서 부하를 생성하였다.

image

공정한 벤치마크 테스팅을 위한 고려사항
1. 자바의 경우, Java EE 5 기반의 WebSphere 7에서 최적화되고 가장 빠른 Trader 애플리케이션 적용하였으며, EJB사용하지 않고 직접 JDBC를 호출하여 데이터베이스 작업하는 방식으로 JSP 와 Servlet 만을 이용하여 개발되었다. 또한 최적의 성능을 위해 WebSphere의 경우 쓰레드 풀, 커넥션 풀, queue connection factory, Heap size 등등에 대한 튜닝이 진행되었으며 결과적으로 최고 TPS 측정시 CPU 사용량이 96~100%이 될 수 있도록 하였다.
2. 캐쉬의 경우 양쪽 모두 적용하였다. 자바의 경우 WebSphere Servlet Caching을 적용하였고 닷넷의 경우 .NET Cache API를 적용하였다.
3. 데이터베이스의 부하 측면에서는 StockTrader를 만든 IBM의 기본 부하보다 더 현실적으로 하기 위해 500,000계정으로 각 계정마다 5개의 주문, 100,000 quote를 기본으로 가져가도록 했다.
4. 데이터베이스 구성은 IBM WebSphere 7의 경우 All-IBM 구성을 따랐으며 IBM DB2 v9.5 (Enterprise Edition), 최신의 IBM DB2 v9.5 JDBC 드라이버가 사용되었다. .NET의 경우 SQL Server 2008 (Enterprise Edition)을 사용하였다. 이 벤치마크는 데이터베이스 성능 비교가 아니기 때문에 데이터베이스때문에 결과가 왜곡되지 않도록 충분한 성능을 발휘하는 H/W를 제공되었다. (자세한 H/W 사양은 결과 리포트를 참고하시길...)
5. 총 36페이지 보고서에 공정한 테스트를 위한 고려사항 무려 6페이지를 차지할 정도로 닷넷과 자바 양 진영에서 모두 수긍할 수 있는 수준을 유지하려 했다.
6. 뒷 부분 부록에는 6페이지에 걸쳐 이 테스트에 사용된 각종 하드웨어, 소프트웨어에 대한 목록과 가격표를 제공한다. 또한 부록 B에는 3장에 걸쳐 WebSphere와 IIS에 대해 설정한 각종 설정값 및 튜닝한 정보를 상세히 제공하여 오해의 소지를 없앴다.

벤치마크 결과
1. 일반 웹 애플리케이션 성능 비교
앞서 기술한 대로 IBM WebSphere 7의 경우 EJB 없이 JSP/Servlet만으로 직접 JDBC 호출한 것이며, .NET의 경우 ASP.NET/Web Forms에서 ADO.NET을 통해 데이터베이스 호출한 경우이다.  작년 결과와 비교하면, 약간 의외의 사실도 발견할 수 있다. 전반적인 결과는 작년과 비슷하나 TPS 측면에서 Windows Server 2008 기반의 WebSphere의 성능은 향상되었고, IIS의 성능은 약간 내려가서 오히려 Windows Server 2008 R2 기반에서 WebSphere가 IIS보다 TPS숫자는 아주 약간 높게 나왔다. 물론 Power 570 보다는 Windows Server 2008 R2기반일 때 성능이 훨씬 좋다.

image

위와 같은 TPS를 달성하기 위해 지출된 비용을 산정하여, 역으로 하나의 TPS를 달성하기 위한 지불된 비용을 계산하면 아래와 같다.

image

이를 통해 다음과 같은 사실을 알 수 있다.
1. .NET / Windows Server 2008 R2 / HP BladeSystem C7000 조합이 IBM WebSphere 7 / IBM AIX 5.3 / IBM Power 570 기반의 Java EE에 비해 37% 성능이 우수함을 알 수 있으며, 서버를 구성하기 위해 들어간 절대 비용 측면에서는 오히려 IBM WebSphere 7 / IBM AIX 5.3 / IBM Power 570 의 경우가 .NET / Windows Server 2008 / HP BladeSystem C7000 에 비해 419% 더 지출된 것을 알 수 있다.
2. IBM WebSphere 7 / Windows Server 2008 R2 / HP BladeSystem C7000 의 성능이 IBM WebSphere 7 / IBM AIX 5.3 / IBM Power 570 에 비해 성능이 39% 더 나은 것을 알 수 있으며, 서버 구성에 들어간 절대 비용 측면에서는 오히려 IBM WebSphere 7 / IBM AIX 5.3 / IBM Power 570 조합이 IBM WebSphere 7 / Windows Server 2008 / HP BladeSystem C7000조합보다 198% 더 비싼 것을 알 수 있다.
3. 전반적으로 Windows Server 2008 R2 기반의 닷넷이 비용 성능 측면에서 훨씬 우수함을 알 수 있다. IBM WebSphere 7 / IBM AIX 5.3 / IBM Power 570 조합은 .NET / Windows Server 2008 R2 / HP BladeSystem C7000 조합보다 성능 대비 비용이 8배 높은 것으로 나타났다. 이는 결국, 같은 부하를 감당하는 시스템을 구축할 경우 IBM WebSphere 7 / IBM AIX 5.3 / IBM Power 570 조합이 .NET / Windows Server 2008 R2 / HP BladeSystem C7000 조합에 비해  비용을 8배나 더 지출해야함을 의미한다.

2. 미들티어 웹 서비스 테스트
이 테스트는 StockTrader의 비지니스 서비스 앞단에 웹 서비스를 위한 Facade를 만들고 이 Facade부터 데이터베이스 단까지의 성능을 비교한 것이다. 앞의 웹 애플리케이션 성능 비교와 다른 점은 전체 페이지가 아닌 개별 SOAP 요청이 처리되는 것을 기준으로 TPS가 산출된다는 것이다.
IBM WebSphere의 경우 웹 서비스 Facade는 JAX-WS로 구현되었고 표준 SOAP/WSDL 기반의 서비스를 노출하며, 사용자의 요청을 IBM HTTP Server가 WebSphere상의 웹 서비스 티어로 전달하는 구조로 되어 있다. .NET의 경우 WCF를 사용하여 웹 서비스 Facade를 구현하였고 SOAP/WSDL 기반의 표준 웹서비스를 노출하며, IIS 7.5가 사용자의 요청을 WCF 기반의 서비스에 전달한다.
.NET Capacity Planner 웹 서비스 테스트 툴을 이용하여 SOAP 요청을 생성하여 테스트를 진행하였다.

image

비용 대비 성능비 (Price Performance Ratio) 는 아래와 같다.

image

결과를 통해 다음과 같은 사실을 알 수 있다.
1. .NET / Windows Server 2008 R2 / HP BladeSystem C7000 조합이 IBM WebSphere 7 / IBM AIX 5.3 / IBM Power 570 조합에 비해 웹 서비스 성능이 111% 더 우수함을 알 수 있다. 반면, 서버 구성에 지출된 절대 비용 측면에서는 오히려 IBM WebSphere 7 / IBM AIX 5.3 / IBM Power 570 서버의 경우가 .NET / Windows Server 2008 / HP BladeSystem C7000 의 경우보다 419% 더 지출된 것을 알 수 있다.
2. IBM WebSphere 7 / Windows Server 2008 R2 / HP BladeSystem C7000 조합의 경우가 IBM WebSphere 7 / IBM AIX 5.3 / IBM Power 570 의 경우보다  성능이 37% 더 우수함을 알 수 있다.  반면 서버 구성에 지출된 절대 비용 측면에서는 오히려 IBM WebSphere 7 / IBM AIX 5.3 / IBM Power 570 의 경우가 IBM WebSphere 7 / Windows Server 2008 / HP BladeSystem C7000의 경우보다 198% 더 지출된 것을 알 수 있다.
3.전반적으로 비용 대비 성능 측면에서 Windows Server 2008 R2 기반의 닷넷 시스템이 훨씬 나은 결과를 보여주고 있다. .NET / Windows Server 2008 R2 / HP BladeSystem C7000 의 경우가 IBM WebSphere 7 / IBM AIX 5.3 / IBM Power 570 의 경우에 비해 비용 대비 성능 측면에서 10배 우수함을 보여준다. 이는 결국 같은 웹 서비스 성능을 내는 시스템을 구축할 경우, IBM WebSphere 7 / IBM AIX 5.3 / IBM Power 570 을 사용할 경우 .NET / Windows Server 2008 R2 / HP BladeSystem C7000 을 사용할 때보다 10배 비싼 구축 비용을 지불해야 함을 의미한다.

3. WSTest 벤치마크
WSTest는 뒷단 비지니스 로직이나 데이터베이스 엑세스 없이 순수하게 구현 플랫폼의 웹 서비스 스택 성능 (즉, XML Serialization/Deserialization, http 네트웍 접근 등) 을 비교하는 것이다. WSTest는 원래 썬마이크로시스템즈에서 고안한 것으로 마이크로소프트가 보완하여 적용하였다.
IBM WebSphere 7의 경우, 앞의 미들티어 웹 서비스 성능 벤치마크에서와 마찬가지로 JAX-WS 기반의 웹 서비스 스택에서  SOAP/WSDL 기반의 표준 웹 서비스로 노출시켜 진행하였으며, 전달된 요청은 IBM Http Server가 IBM WebSphere 7 서버내의 웹 서비스 구현체에 전달하는 구조로 되어있다.
.NET의 경우, WCF를 이용하여 SOAP/WSDL 기반의 표준 웹 서비스를 노출시켰고, 전달된 요청은 IIS 7.5이 WCF 기반의 웹 서비스 구현체에 전달하는 형태로 되어 있다. 표준 기반의 웹 서비스이기 때문에 IBM WebSphere 7기반의 자바 구현체와 .NET 기반의 구현체 사이에 상호 운용이 가능하다.

image

비용 대비 성능비 (Price Performance Ratio)로 환산한 결과는 다음과 같다. 비용 산출에 대한 근거는 리포트의 Appendix에 상세히 설명되어 있다.

image

위 결과를 통해 다음과 같은 사실을 알 수 있다.
1. .NET / Windows Server 2008 R2 / HP BladeSystem C7000 조합이 IBM WebSphere 7 / IBM AIX 5.3 / IBM Power 570 조합의 경우에 비해 최소 120% 성능이 더 우수함을 알 수 있다. (WSTest의 각 Operation별로 조금씩 다르다.) 반면 서버 구성에 지출된 절대 비용 측면에서는 오히려 IBM WebSphere 7 / IBM AIX 5.3 / IBM Power 570 서버의 경우가 .NET / Windows Server 2008 R2 / HP BladeSystem C7000의 경우보다 419% 더 지출된 것을 알 수 있다.
2. IBM WebSphere 7 / Windows Server 2008 R2 / HP BladeSystem C7000 조합의 경우가 IBM WebSphere 7 / IBM AIX 5.3 / IBM Power 570 의 경우보다  성능이 51% 더 우수함을 알 수 있다.  반면 서버 구성에 지출된 절대 비용 측면에서는 오히려 IBM WebSphere 7 / IBM AIX 5.3 / IBM Power 570 의 경우가 IBM WebSphere 7 / Windows Server 2008 R2 / HP BladeSystem C7000의 경우보다 198% 더 지출된 것을 알 수 있다.
3. 전반적으로 비용 대비 성능 측면에서 Windows Server 2008 R2 기반의 닷넷 시스템이 훨씬 나은 결과를 보여주고 있다. .NET / Windows Server 2008 R2 / HP BladeSystem C7000 의 경우가 IBM WebSphere 7 / IBM AIX 5.3 / IBM Power 570 의 경우에 비해 비용 대비 성능 측면에서 10배 우수함을 보여준다. 이는 결국 같은 웹 서비스 성능을 내는 시스템을 구축할 경우, IBM WebSphere 7 / IBM AIX 5.3 / IBM Power 570 을 사용할 경우 .NET / Windows Server 2008 R2 / HP BladeSystem C7000 을 사용할 때보다 10배 비싼 구축 비용을 지불해야 함을 의미한다. (최대 TPS 달성시 기준으로 단위 TPS당 드는 비용 산출)

결론
웹 애플리케이션을 구축할 경우, Windows Server 2008 R2 기반의 닷넷 시스템이 IBM Power 570 기반의 WebSphere 7 기반 Java EE 시스템에 비해 가격은 1/5 수준으로 성능은 37% 더 나은 시스템을 구축할 수 있음을 알 수 있다. 같은 WebSphere 7 기반의 웹 애플리케이션 시스템 구축의 경우에도 Windows Server 2008 R2 / HP BladeSystem C7000 위에서 구동하는 것이 IBM AIX 5.3 / IBM Power 570 위에서 구동하는 것에 비해 가격은 1/3 수준으로, 성능은 39%  더 나은 결과를 제공할 수 있음을 알 수 있다.
웹 서비스를 구축할 경우에도, Windows Server 2008 R2 기반의 닷넷 시스템이 IBM Power 570 기반의 WebSphere 7 기반 Java EE 시스템에 비해서 가격은 1/5 수준으로 성능은 111% 더 나은 웹 서비스를 구축할 수 있음을 알 수 있다. 같은 WebSphere 7 기반의 자바 웹 서비스 시스템 구축의 경우에도 Windows Server 2008 R2 / HP BladeSystem C7000 위에서 구동하는 것이 IBM AIX 5.3 / IBM Power 570 위에서 구동하는 것에 비해가격은 1/3 수준으로 성능은 37%  더 나은 결과를 제공할 수 있음을 알 수 있다.

image

Posted by 장현춘

마이크로소프트가 며칠전에 SSMA for MySQL을 공개하고 MySQL 마이그레이션을 위한 본격 행보에 나섰다. 기존에 SSMA for Oracle은 널리 알려져 있어서 국내에서 많이 활용되고 있으며, 지난 2005년 공개된 이후로 현재까지 250,000회가 다운로드 된 것으로 집계된다. SSMA는 데이터베이스 마이그레이션시에 수반되는 수작업을 줄여주고, 혹 발생할 수 있는 리스크를 졸여주는 기능을 제공한다. 최근 지금껏  SSMA를 다운로드 받은 사용자를 대상으로 진행한 조사 결과, 94%의 사용자가 이 툴을 다른 사람에게 추천할 것이라고 응답했다. 이번에 공개된 SSMA for MySQL과 최신 버전의 SSMA for Access의 경우에는 SQL Azure로의 빠르고 쉬운 마이그레이션도 제공한다.

현재까지 공개된 최신 버전의 SSMA는 다음과 같다. 아래 각 링크는 각각 2005와 2008을 위한 파일을 하나씩 제공하고 있다.
1. SSMA for MySQL v1.0 : SSMA 2008 for MySQL 1.0.zip을 이용하면 SQL Azure로의 마이그레이션을 이용할 수 있다.
2. SSMA for Access v4.2 :  SSMA 2008 for Access 4.2.zip을 이용하면 SQL Azure로의 마이그레이션을 이용할 수  있다.
3. SSMA for Oracle v4.2
4. SSMA for Sybase v4.2

SSMA for MySQL v1.0은 MySQL 4.1 이상을 대상으로 한다. 이 툴을 통해 마이그레이션 되는 것들은 아래와 같다.
- Tables, Views, Stored procedures, Stored functions, Triggers, Cursors, DML statements, Control statements, Transactions

좀 더 자세한 내용은 아래 블로그를 참고하면 좋을 듯 하다.
1. SQL Server Team 블로그
2. Microsoft SQL Server Migration Assistant Team 블로그

Posted by 장현춘

근래에 마이크로소프트가 다양한 시도를 하고 있는데, 그 중에 WebMatrix라는 새로운 방식의 웹 개발을 시도하고 있다. 예전 ASP 스크립팅 기반의 웹 개발 언어 및 방식을 폐기하고 닷넷으로 전환 후 다소 무거운 행보를 거듭해왔다. 엔터프라이즈라는 영역에서 자리 잡기 위해 개발 툴의 자동화에만 집중하기 보다는 여러 개발자들과의 협업 및 유지보수, 각종 프레임웍 및 프랙티스 들을 끊임없이 시장에 선보이며 엔터프라이즈에 적합한 플랫폼으로서 닷넷을 성공적으로 안착시켰다. 지금도 많은 고급 개발자들의 욕구를 충족시켜주고 있는 Patterns & Practices 싸이트를 비롯하여, 여러 사람이 협업해가며 ALM의 도움을 받을 수 있는 CodePlex라든지 돌아보면 든든한 지원군을 찾을 수 있다.
시장이 변하고 서비스 제공 측면보다는 쇼셜이라든지 서비스 소비 측면에서의 시장성이 부각되면서, 엔터프라이즈 급 애플리케이션의 구조화된 시스템 구축에 필수적인 요소들도 꾸준히 필요하지만, 그러한 인프라위에서 생성되는 서비스를 다양한 디바이스나 소비 채널에 전달하기 위한 빠르면서도 유연한 개발 플랫폼 또한 필요하게 되었다. 자체 구축하건 남이 제공하는 것이든, 클라우드를 자사 서비스 제공의 인프라로 삼고 남들과 차별되는 서비스를 남들보다 빨리 유연하게 제공하기 위해서는 무겁고 어렵고 쓸데없이 방대한 스킬을 요구하는 기술보다는 필요한 만큼 필요한 정도의 복잡성을 가지면서, 내가 알고 있는 것들을 함께 묶어낼 수 있고, 게다가 서비스 개발에 필요한 라이브러리들이 끊임없이 제공되는 그러한 개발 방식이 제공된다면...

WebMatrix는 이러한 시대 요구를 등에 없고 등장한 새로운 형태의 닷넷 개발 방식이다. ASP나 PHP같은 스크립팅 기반의 개발 방식을 취하고 있어서 진입 장벽을 최대한 낮추고, 기존 ASP나 PHP 개발자들로 하여금 Managed 환경을 무심결에 접하게 만들어 경력 개발 측면에서 도움을 줄 수 있는 부가적인 기능도 담고 있다. 기반이 닷넷이기 때문에 닷넷 프레임웍이 제공하는 기본 기능을 그대로 활용할 수 있고, 마이크로소프트가 온라인으로 제공하는 Gallery를 통해 다양한 템플릿을 활용할 수도 있고, 지금도 끊임없이 새롭게 제공되는 각종  Helper들을 통해 이전에 맨땅에 헤딩하며 만들었거나, 신뢰여부를 가늠하기 힘든 코드셋보다는 마이크로소프트가 제공하거나 신뢰할 수 있는 공간을 통해 제공되는 각종 Helper를 통해 개발자들이 장착할 수 있는 무기를 지속적으로 제공하고 있다. 개발에 필요한 IDE나 웹 서버, 데이터베이스가 일체로 제공되는 WebMatrix는 개발 툴이자 개발 환경인 셈이다. 
WebMatrix에 담겨 있는 기술이나 제품으로는 새로운 개발 방식인 ASP.NET Web Pages, 템플릿 엔진인 Razor, IIS 웹 서버, SQL CE 데이터베이스 등을 포함하고 있다. Razor는 ASP.NET MVC의 뷰 엔진으로도 활용될 예정이다.

며칠전 WebMatrix에서 사용할 수 있는 OData Helper가 공개되었다. REST라고 하면, 웹 기반 분산 환경에서 HTTP 기반으로 통신하는  아키텍처 스타일이라고 할 수 있는데, OData는 이 REST가 제시하는 원칙을 따르는 오픈 프로토콜이다. OData를 지원하는 Feed들이 점차 늘어나고 있고, 시장에서 REST가 꾸준히 세를 넓혀가면서 웹 서비스의 기본 지원 품목이 되다보니 OData를 기반으로 하는 개발 방식이 점차 확산되는 추세이다. 마이크로소프트가 제공하는 서비스는 대부분 OData를 지원하고 있다.
OData Helper는 Codeplex를 통해 다운로드 가능하다.

WebMatrix에 관한 한글화된 정보는 Sqler.com을 참고하면 좋을 듯 하다.

image

Posted by 장현춘

AJ16_cover

지난 포스팅에 이어 아키텍처 저널 16권에 실린 사용자 인증 및 아이덴티티 관련된 아티클 번역물 두번째를 올린다. 클라우드가 이제는 모든 비지니스의 기본 인프라처럼 여겨지는 시대가 되어 가는데, 이때 필요한 것이 상호간 Seamless 연동을 가능케하는 인증 체계의 통합이다. 이 글은 클레임 기반 인증 방식의 가장 기본이 되는 원칙과 원리를 설명하고 있으며, 이를 통해 클라우드 시대까지 확장할 수 있는 인증 통합을 살며시 이야기하고 있다. 

이 아티클의 원문은 아래에서 확인할 수 있다.
http://msdn.microsoft.com/ko-kr/architecture/cc836390(en-us).aspx

참고로, 현재까지 번역된 아키텍처 저널은 다음과 같으며 3개의 아티클이 한글 PDF 버전으로 다운로드 가능하다.
아키텍처 저널 21 : http://msdn.microsoft.com/ko-kr/architecture/aa699437.aspx
아키텍처 저널 19 : http://msdn.microsoft.com/ko-kr/architecture/aa699428.aspx
---------------------------------------------------------------------------------------
클레임 인식 솔루션의 아키텍처 패턴
앞서 언급한 기본 개념은 새로운 인증 메커니즘의 기반이 된다. 따라서 이러한 개념을 조합하면 어떤 시스템과 트랜잭션도 설명할 수 있다. 이 새로운 세상에서, 전통적으로 하나로 융합되어 있던 두 가지 기능, 즉 (클레임을 통해) 호출자에 대한 정보를 얻는 기능과 (자격 증명을 통해) 호출자가 기존 사용자인지 여부를 확인하는 기능을 마침내 분리할 수 있게 되었다. 이러한 분리 덕분에 이제 어떤 기능이 시나리오에 가장 적합한지 결정할 수 있다(보다 자세한 내용은 리소스 부분 참조: Vittorio Bertocci의 블로그, The TAO of Authentication).
일반적인 시나리오를 설명하는 데 특히 유용한 특정 패턴이 있으며, 이중 가장 일반적인 세 가지 패턴을 기술할 예정이다. 아울러 일반적인 시나리오에 대해서 클레임 기반 접근법이 기존 방식에 비해 갖는 장점을 몇 가지 설명할 예정이다. 모든 패턴은 온프레미스 및 클라우드 아키텍처 모두에 적합하다.

정식 패턴: 주체(Subject)-IP-RP
이 패턴은 인증 관리에 있어 드물게 발생하는 상황, 즉 하나의 주체가 제한된 리소스(RP)에 접근하길 원하는 상황을 설명한다. 이러한 패턴은 Windows 사용자가 네트워크 공유에 접근을 시도하는 경우, 스마트 클라이언트가 보안 웹 서비스를 호출하는 경우, 웹 서퍼가 제한된 컨텐츠를 찾아보는 경우 등에 발생한다(그림 2 참조). 주요 절차는 다음과 같다.

그림 2. 주체-IP-RP 정식 패턴. 숫자는 텍스트를 나타낸다.

  1. (독립적으로) RP가 정책의 형태로 요구 사항을 게시한다. 이러한 요구 사항은 다음을 포함한다.
    1. 클레임 목록
    2. RP가 이러한 클레임의 소스로 신뢰하는 IP
    3. RP가 사용할 수 있는 특정 인증 기술에 관한 세부 정보 (예: RP가 이해하는 토큰 형식)
  2. 주체(Subject)가 RP 정책을 읽고 이를 준수할 수 있는지 확인한다. 이것은 실제로 주체가 RP가 신뢰하는 그 어떤 IP로부터도 적절한 토큰을 확보할 수 있는지 여부를 확인하는 것을 의미한다.
  3. 주체가 적절한 IP를 호출하고, RP 정책을 준수하는 토큰을 요청한다. 실제로 이는 일반적으로 RST 메시지를 IP의 STS로 전송하는 것을 의미한다.
  4. IP가 RST를 수신하고 주체를 인증한다. 주체가 확인되면 IP는 필요한 클레임 값을 검색하고, 토큰으로 패키지화하여, 서명 후 주체에 다시 전송한다.
  5. 주체는 이 토큰을 수신하여 RP를 호출하는 데 사용한다.
  6. RP가 호출 메시지에서 토큰을 추출한 후, 신뢰할 수 있는 IP에 의해 서명된 것인지와 적절한 클레임을 포함하고 있는지를 검사한다. 확인 결과가 긍정적이면,
    1. 클레임 값은 일부 접근 제어 로직을 공급하는 데 사용된다.
    2. 접근 제어 로직이 충족되면, 리소스 자체에서 클레임 값을 사용할 수 있게 되고, 접근이 허용된다.

본 설명의 취지에 따라 여기서는 리소스가 웹 서비스라고 가정하도록 한다. 위의 패턴은 다수의 좋은 속성을 보여준다.

인증 외부화 (Authentication externalization)
토큰 및 클레임을 사용하면 리소스가 명시적 아이덴티티 관리 코드를 작성해야 하는 부담이 줄어든다. 또한, RP 정책 게시를 처리하는 인프라와 동일한 인프라가 토큰을 역직렬화하고, 서명을 확인하며, 리소스 개발자가 실제 사용되는 토큰의 형태에 관계없이 클레임 값을 손쉽게 사용할 수 있도록 하는 등의 작업을 수행할 수 있다. 이 인프라는 클레임 값에 기반해 일부 권한 부여를 결정할 수도 있어, 개발자의 작업을 더 줄여준다.
이는 모든 시나리오에 적용되는 장점이지만, 호스팅 기술이 하나의 변수인 클라우드에서 특히 진가를 발휘한다. 클레임을 사용하면 리소스를 호스팅하는 인프라의 세부 정보와 런타임 시 제공되는 인증 기술 세부 정보로부터 리소스를 분리시킴으로써 진정으로 이식 가능한 리소스를 실현한다.

리소스 레벨 정책 (Resource-level policy)
리소스 레벨에서 정책을 지정할 수 있게 되면, 배포가 매우 민첩해지고, 상세한 제어가 가능하며, 인증 기술에 대한 선택을 동적으로 가능하게 한다. 또한, 상호 운용이 가능한 표준을 사용하기 때문에 호스팅 환경에 관계없이 효과적인 관리 전략을 수립할 수 있으며, 실행 환경으로부터 리소스 자체가 분리되기 때문에 (클라우드로의 이동 포함해) 리소스를 훨씬 더 쉽게 이동시킬 수 있다.

자율성
모든 리소스는 자율적으로 자신의 요구 사항을 명시하고, 주체(Subject)가 그러한 요구 사항을 자신의 능력과 매칭시킨다. 이와 같은 상호 작용은 리소스와 주체가 결합할 때 나타나는 특징적인 속성이다. 리소스와 주체 양쪽 모두 독립적으로 변할 수 있고, 리소스에 접근할 수 있는 주체들의 집합은 외부적인 영향이나 인프라 의존 관계와는 상관없이 리소스의 요구 사항을 준수할 수 있는 능력에 의해서만 정의된다. 이 시스템은 각자의 요구 사항 및 능력에만 신경 쓰면 되기 때문에 매우 강력하다. 명시적인 협상이나 조정이 필요하지 않으므로 사용자 참여도 매우 쉽다.

일부 인증 및 권한 부여 로직의 중앙 집중화
이 패턴에서는 IP가 모든 특성(attribute) 검색 작업을 수행한다. RP는 다른 시스템에 쿼리를 실행하지 않고도 필요한 것을 토큰 형태로 받는다. 이는 RP가 접근 권한을 가지지 않는 특성에는 분명 이점이 된다. (즉, 항공사 A가 주체의 파트너 항공사 B의 마일리지 정보를 요청하는 것과 같은 이치이다.) 뿐만 아니라 특성 검색 로직을 한 곳으로 중앙 집중화할 수 있는 훌륭한 수단이 된다. 또한, 특성 저장소에 접근해야 하는 접점(endpoint)의 수를 줄이고, 관리 용이성 및 보안을 향상시켜 준다. 뿐만 아니라, 일단 주체가 토큰을 얻으면 만료될 때까지는 IP에 조회할 필요 없이 이를 캐시 및 재사용할 수 있기 때문에 접근 횟수 자체도 줄일 수 있다. 또한, IP는 권한 부여를 결정하는 데 사용될 수 있는데, 이는 클레임을 통해서도 표현할 수 있다. 단, 이 때 IP는 주체 및 리소스 모두와 긴밀한 관계를 가지고 있어야만 한다. 이러한 패턴은 예를 들어 IP가 디렉터리를 나타내고 RP는 IP가 관리하는 리소스 중 하나인 경우와 같이 중요한 시나리오에서 발생하지만, 일반적으로 RP와 IP 사이에는 어떠한 관계도 가정될 수 없다.
이것은, 가능한 사용자에 대한 정보를 확인하기 위해 리소스가 외부 IP에 의존해야 하는 경우와 같이 많은 클라우드 시나리오에 있어 핵심이 된다. 또한, 파트너 조직의 사용자가 기술이나 플랫폼과 무관한 토큰 형태로 표현될 수 있는, 전통적인 페더레이션보다는 다소 애자일한 경우에 아주 유용하며, 아울러 모든 유형의 경계를 넘나드는 경우에 큰 도움이 된다.

클레임 변환기 유형: 주체-IP-클레임 변환기-RP
방금 설명한 패턴은 일반 소비자(항공사 A의 단골 고객이 파트너 항공사 B의 웹 사이트를 접근하는 경우)에서 기업(거의 모든 Kerberos 시나리오가 그와 같은 방식으로 모델링될 수 있으며, 기술 독립성이라는 이점도 추가로 누릴 수 있음)에 이르기까지 광범위한 시나리오에 적용될 수 있다.
단, 실제로는 특정 제약 조건으로 인해 이 패턴을 적용하지 못하는 상황이 존재한다.

1. 간접 신뢰(Indirect trust). RP가 주체와 관계를 맺고 있는 IP를 직접적으로 신뢰하지 않을 수 있지만, 신뢰 관계를 중개해 줄 수 있는 일련의 중간 단계 인증 기관을 둘 수 있다. 비행기를 타고 싶다고 해서 지갑 속에 들어있는 신분 증명 문서(정부가 발행한 여권 또는 운전 면허증)만으로는 바로 비행기를 탈 수 없다. 탑승 게이트의 직원은 제대로 된 항공사에서 발급한 탑승권만 신뢰할 것이다. 따라서, 이미 소유하고 있는 신분 증명 문서를 체크인 프런트에서 사용하여 탑승권을 받으면 된다.

2. 클레임 형식. 주체가 바로 이용할 수 있는 IP에서 발급한 클레임의 형식을 RP가 이해하지 못할 수 있다. 이는 때로는 단순한 형식 문제일 수도 있고 (예를 들어, 이탈리아 ID에 “birth date” 대신 “nato il”로 되어 있다면, 미국의 바텐더는 필요한 정보를 눈 앞에 두고도 알지 못한다.), 때로는 RP가 요구하는 클레임이 수신된 원시 정보를 가공한 결과를 원하기 때문일 수도 있다. (RP가 수신된 “age”와 “Nationality”를 가공하여 “CanDrink?”라는 클레임을 필요로 할 수도 있다.)

위에서 언급한 것과 같은 새로운 제약 조건이 있을 경우, 이는 새로운 요소를 추가함으로써 쉽게 처리할 수 있다. 클레임 변환기 (claim transformer)로 불리게 될 이 요소는 리소스에 도달하기 전에 토큰을 처리할 수 있으며, RP가 신뢰를 중개하고 수신 클레임을 보다 적절한 형식으로 변환하는 데 활용할 수 있다. 주체와 RP 사이에는 임의의 긴 클레임 변환기 사슬이 존재할 수 있다. 따라서 상위 수준에서 계획하지 않고도, 동적인 정책 협상에서 경로(존재하는 경우)를 자동으로 “선택”할 수 있다.
클레임 변환기를 구현하는 최상의 아티팩트는 다시 말하지만 STS이다. 클레임 변환기가 사용하는 STS는 자체 데이터 소스로부터 발급된 클레임을 채우는 것 대신, 주로 수신된 정보를 조작하게 된다. 전통적인 페더레이션 경우처럼, RP를 소유하고 있는 동일한 엔터티가 STS를 실행하는 경우가 많기 때문에, 이러한 종류의 STS는 일반적으로 Resource STS, R-STS 또는 RP-STS로 지칭된다. 보다 자세한 정보는 저자 블로그에서 확인하도록 한다(리소스 부분 참조).
클레임 변환기를 적용하는 방식은 몇 가지 강력한 이점을 제공하며, 분산 시스템의 아이덴티티 관리를 위한 지배적인 패턴으로 부상할 것으로 생각된다(그림 3 참조).

Cc836390_ClaimsAndIdentity03(en-us,MSDN_10)

리소스 클러스터링
클레임 변환기는 엔터프라이즈 수준에서 단일 리소스와 디렉터리 간에 지속적인 granularity를 제공할 수 있다. R-STS는 요구 사항이 비슷한 여러 리소스를 모으는 데 사용할 수 있다. 복잡한 신뢰 중개 나 원본 클레임 처리 작업을 엔터프라이즈 수준까지 요청할 필요도 없이 한 지점 내로 이동시킴으로써 정책 관리를 간소화한다. R-STS는 네트워크 상에서 제 역할을 제대로 하지 못할 수 있는 레거시 리소스를 보호하는 가상 경계도 될 수 있다. 이러한 것들은 클레임 변환기의 강력한 효과를 보여 주는 일부 사례에 지나지 않는다(그림 4 참조).

Cc836390_ClaimsAndIdentity04(en-us,MSDN_10)

권한 부여 결정 지점(Authorization Decision Point)
IP는 일반적으로 독립적인 엔터티지만, R-STS는 협력하는 리소스의 일부 정보를 소유하는 경우가 많다. R-STS는 이러한 정보를 통해 권한 부여 결정을 내릴 수 있다. 수신 클레임은 주체가 접근을 시도하는 리소스의 요구 사항과 함께 처리될 수 있고, 그 결과는 곧 주체가 필요한 권한을 보유하고 있는지 여부에 관한 결정이 될 수 있다. 이러한 결정은 다양한 방식으로 표현될 수 있다.

  • 주체가 어떠한 권한도 가지고 있지 않은 경우, R-STS는 단순히 토큰 발급을 거부하고 호출을 차단할 수 있다. 이 경우 R-STS는 권한 부여를 강제하는 것이다.
  • 주체가 일정 권한을 가지고 있는 경우, R-STS는 이러한 권한 부여 결정을 클레임의 형태로 공식화할 수 있다. 따라서 RP는 권한 부여 로직을 실행해야 하는 부담에서 벗어나 R-STS에서 클레임의 형태로 받는 지시문을 적용하기만 하면 된다.

토큰, 클레임 및 IP 사용은 인증 과정 외부화를 가능하게 하고, 어느 특정 상황에서 R-STS는 권한 부여 결정에도 동일한 작업을 수행할 수 있도록 도움을 줄 수 있다.

위임
레거시 시스템, 디렉터리 수준에서 직접 관리되는 리소스 등 클레임이 인식하지 않는 수많은 리소스가 존재한다. 때로는 이러한 리소스에 대한 접근을 관리하기 위해 ACL 할당 및 그룹 생성과 같이 몇 가지 투자가 이루어진 경우도 있다. 클레임 기반 보안을 통해 프런트 엔드 애플리케이션을 호출하는 주체의 아이덴티티는 이러한 투자를 활용하는 데 적합하지 않다. 단, 프런트 엔드 애플리케이션이 호출자를 대신하여 디렉터리 아이덴티티를 받을 수 있다면 문제가 해결된다. 사실 다른 누군가를 대신하여 토큰을 받는 것은 발급된 토큰이 클레임의 영역에 남아 있는 경우에도 분명히 가치가 있다.

클레임과 클라우드
지금까지 설명한 것의 장점은 느슨하게 연결된 모든 시스템에 적용될 수 있다는 것이다. 최고의 분산 시스템이라 할 수 있는 클라우드도 예외가 아니다. 클라우드 차원에서 생각한다는 것은 모든 엔터티가 독립적으로 관리되는 환경을 다루는 것이다. 즉, 클레임, 토큰, 신뢰 및 아이덴티티 메타 시스템 기능은 다루고 있는 파티들 사이의 관계에 대해 알고 있는 정보의 크기가 얼마가 됐든 이를 최대한 활용할 수 있도록 지원한다. 클레임 기반 솔루션을 설명하면서 우리는 사내 및 클라우드에 모두 비슷하게 적용될 수 있는 도구를 제공하는 일석이조의 효과를 거두었다.
우리가 클라우드 시나리오에 대한 자세한 지침을 제공하기에는 앞으로 어떤 식으로 변하게 될지 너무 적게 알고 있는 실정이다. 하지만 몇 가지 기본적인 가설을 통해 클라우드에 특히 잘 맞는 클레임 인식 아이덴티티 관리의 여러 가지 측면은 조명해 볼 수 있다.

클레임 변환을 통한 접근 제어
클라우드 공급자가 저장 및 계산, 메시징, 통합 등과 같은 서비스를 제공할 수 있다는 것은 잘 알려진 사실이다. 클레임 변환기 섹션에서 다뤘던 내용을 상기해보면, 클라우드 공급자의 분명한 접근 제어 전략은 R-STS를 제공하고 리소스가 이를 신뢰하게 만드는 것임을 알 수 있다. 그러면 이 R-STS를 사용하는 모든 리소스들은 R-STS의 클레임 변환 규칙을 조작함으로써 간단하게 접근 제어를 관리할 수 있게 된다.
ISV로서 어떤 클라우드 공급자에 서비스를 구축하기를 원한다고 가정해 보자. 먼저 서비스가 받아들일 클레임 집합을 결정하고, 이 서비스가 클라우드 공급자의 R-STS를 신뢰하도록 설정한다. 이로써, 누가 서비스를 호출하더라도 접근 제어 전략은 이미 마련되어 있다! 새로운 고객을 참여시킬 때에는 R-STS 수준에서 몇 가지 규칙을 설정하여 고객의 클레임을 자신의 클레임으로 매핑하는 방법을 정의하기만 하면 된다. 이는 놀라울 정도로 민첩한 방법으로 유지 관리하기도 매우 쉽다(그림 5 참조).

Cc836390_ClaimsAndIdentity05(en-us,MSDN_10)

권한 부여 외부화 (Externalizing Authorization)
지금까지 R-STS가 권한 부여 결정을 편리하게 외부화하고 집계하는 방법에 대해 살펴보았다. 물론 이 방법은 클라우드 시나리오에서도 유효하다. 실제로는 권한 부여 적용까지 포함하도록 R-STS의 적용 범위가 확대된 사례가 많다. ISV 사례로 돌아가자.
서비스가 메시징 방식을 통해 제공되는 경우, 메시지가 타겟에 도달하기 전에 권한 부여에 관련된 클레임을 검사함으로써, 서비스 전송 인프라 자체에서 권한 부여 결정 사항을 강제할 수 있다. 이는 ISV의 부담을 줄여준다. 즉, 서비스가 해당 공급자의 메시징 인프라를 사용하지 않는 경우, 권한 부여 관련 결정 사항을 강제하기 위해서는 리소스 앞쪽에 일부 처리 파이프라인을 추가해야 하는 부담이 발생하게 된다. (보다 자세한 내용은 리소스 부분 참조: Vittorio Bertocci의 블로그, 클레임 유형).

관계 관리하기
설명한 모델을 통해 ISV는 고객 관계를 일련의 규칙으로 나타낼 수 있다. 이는 전통적인 방법을 통해 디렉터리 간에 페더레이션 관계를 생성하는 것보다 훨씬 더 민첩한 방식이다. 이 방식은 관리의 세분성은 떨어지지만, 피어 파트너 관계에는 필요하나 공급자-고객 관계에는 과도한 경우가 많은 추가 관리 부담을 해소시켜 준다.
또한, 이 모델은 고급 아이덴티티 기능 없이도 개인 및 고객을 수용할 수 있게 해 준다. ISV 서비스는 고객이 자체 IP에서 발급된 토큰을 통해 인증을 받았든, 단순한 일회용 사용자 이름 및 암호를 통해 인증을 받았든, 언제나 R-STS가 발급한 토큰을 확인한다.

미래
클라우드로의 전환은 확실히 이루어질 것이다. 업계에서는 중요한 것은 클라우드 환경으로 전환할지 여부가 아니라 전환 시점이라는 것을 매우 빠르게 인식하고 있다. 미래를 예측하는 것은 언제나 위험한 일이다. 하지만 클라우드는 오늘날 아이덴티티 유토피아처럼 보임에도 불구하고 지금까지 설명한 원리 덕분에 지극히 타당해 보이는 개발에 뛰어들지 않고 그냥 넘기기에는 너무 들떠 있는 상황이다.
오늘날 접근 제어는 기능보다는 순위를 반영하는 권한으로 인해 조직 구조의 철로에서 제약을 받는 경우가 많다. 상호 운용성 이벤트에 참여하는 기업 및 오픈 소스 이니셔티브의 수와 수준(리소스 부분 참조: RSA 2008 OSIS 상호 운용성 이벤트), 그리고 주요 제품에서의 클레임 지원 통합은 클레임 기반 프로그래밍이 주류가 되고 있음을 보여준다. 그렇게 된다면 아이덴티티 및 접근 제어 구조가 어떻게 조직이 아닌 작업을 중심으로 수렴될 수 있을지를 쉽게 상상할 수 있다. 수많은 기업의 주체, 리소스, 역할 및 인증 기관은 모두 특정 프로젝트의 측면에서 설명될 수 있고, 조직 순위가 아닌 프로젝트 자체의 측면에서 수행되는 기능에 따라 권한이 할당될 것이다. 작업이 이루어지는 동안에는 가상 조직이 생성되었다가 임무가 완료되면 사라질 수 있다. 또한, 기업 전체에서 이루어지는 작업 템플릿을 지원하여, 모범 사례를 적용하고, 예측 가능성을 향상시킬 수 있다(그림 6 참조).

Cc836390_ClaimsAndIdentity06(en-us,MSDN_10)

이를 실현하려면 클레임은 충분조건이 아닌 필요조건이다. 여기에 가상 디렉터리와 같은 새로운 기술이 또한 핵심 역할을 할 것이다. (보다 자세한 내용은 Kim Cameron의 블로그 www.identityblog.com을 참조할 것).

Call to Action
클레임 기반 방식은 전통적인 시나리오와 클라우드 시나리오 모두를 위한 훌륭한 방식이다. 차이가 있다면 전통적인 시나리오에서는 경우에 따라 다량의 추가 리소스를 사용하여 나쁜 전략을 피할 수 있는 반면, 일단 클라우드를 사용하는 경우에는 이것이 쉽지 않다는 것이다. 자신과 조직이 미래의 물결에 대비하길 원한다면 다음과 같은 몇 가지 작업을 수행할 수 있다.

여기서 ‘수박 겉핥기 식’이라는 속담을 언급할 수 있을 듯하다. 그리고 아마 그 말이 맞을지도 모른다. 하지만 그 대신 클레임은 전통적인 시나리오와 클라우드 시나리오 모두에 있어 흥미로운 아이덴티티 관리 전략 개발의 토대가 된다는 말로 이 글을 정리하고 싶다. 자신이 괴짜라고 생각한다면 이러한 상호 작용의 대부분이 아주 명백히 드러나는 특별한 전환의 순간을 즐기라고 권하고 싶다. 그리고 아울러 그 외 사람들에게는 세부 정보의 대부분은 인프라에 통합되고 새로운 차원의 도구를 통해 겉으로 드러나지 않을 것으로 예상되기 때문에 안심해도 된다고 말하고 싶다.

리소스
Vittorio Bertocci의 블로그:

Kim Cameron의 블로그:

“Understanding Windows Cardspace”, Chapter II (Addison Wesley 2008)(MSDN에 게시)

RSA2008 OSIS 상호 운용성 이벤트:

WS-Security

WS-Trust:

저자 소개
Vittorio Bertocci는 Microsoft사 Cloud Services Evangelism의 수석 아키텍트 전도사로 대기업이 신기술을 활용할 수 있도록 도움을 주고 있다. 그는 Italian Microsoft Services에서 몇 년간 근무한 후, 미국 본사로 전근하여 지난 3년간 고객이 아이덴티티 및 접근 관리, SOA 및 서비스를 토대로 솔루션을 구축할 수 있도록 지원해 왔다. 현재 클라우드 컴퓨팅의 아이덴티티 및 접근 측면에 전념하고 있으며, 사용자 중심의 ID를 주제로 공동 집필한 저서 Understanding Windows Cardspace가 지난 1월에 출간된 바 있다. Vittorio는 유명한 블로그(http://blogs.msdn.com/vbertocci)를 운영하고 있다.
이 글은 Microsoft가 출판하고 온라인으로 게시하는 Architecture Journal에 실려 있다. Architecture Journal에서 더 많은 글을 읽고 싶다면 Architecture Journal 웹 사이트를 참조한다.

Posted by 장현춘