한국 시간 3월 28일 현재 미국 캘리포니아 샌디에고에서는  오렐리스에서 추최하는 E-Tech

사용자 삽입 이미지
(Emerging Technology Conference)가 열리고 있습니다. E-Tech은 외부에 공개되지 않은 기술과 제품, 서비스들만을 선별해서 소개하는 컨퍼런스로서 씽크프리에서도 전략적으로 많은 제품과 서비스를 해당 컨퍼런스에 맞춰 개발해 오고 있습니다.

여러 발표 중 재미난 것은 요즘 가장 웹 애플리케이션 분야에서 화두가 되고 있는 오프라인 지원 문제에 대해 이번에 오프라인 지원 제품을 발표한 짐브라의 CEO인  Satish Dharmaraj가 "Making Offline Web Applications a Reality" 라는 제목의 발표가 있었습니다. 이 주제에 대해서는 한국에서도 제가 29일 Web2.0 Conference에서 발표를 합니다.  

사용자 삽입 이미지
그리고 씽크프리에서는 이번에 Flickr for Office Docs - Content Syndication through ThinkFree Doc Exchange 라는 제목으로 CEO인 강태진 대표이사가 씽크프리의 본격적인 오피스 문서 UCC 포탈 서비스인 ThinkFree Docs에 대한 발표를 합니다.

ThinkFree Docs는 말그대로 이미지 파일들을 업로드하고 이들을 공유하는 UCC 서비스입니다. 사용자는 자신이 작성한  오피스 파일을 업로드하고 이에 대한 태킹을 하며 다른 사람과 공유할 수 있습니다. 또한 어디서나 오피스 문서를 조회할 수도 있습니다. 아주 단순하면서도 직관적인 서비스입니다. 서비스의 모토는 "share your idea and creations with the world"입니다.

자! 첫화면을 살펴볼까요?

사용자 삽입 이미지


각종 오피스 문서들을  종류별,언어별,중요도별 등 다양한 분류 필터에 의해 볼 수 있는 기능이 왼편에 위치하고 중앙에 문서들이 존재합니다. 모든 서비스는 철저하게 CSS,DHTML,Ajax 개발이 되어 화면간에 전환이 없이 문서를 조회하며 공유할 수 있습니다.

문서 조회를 해 볼까요? 원하는 문서를 클릭하면 아래와 같이 실시간에 HTML로 변환된 오피스 문서를 볼 수 있습니다. 아래 화면은 thinkfreeviewer.PPT 문서를 조회화면 입니다.

사용자 삽입 이미지

오피스 문서의 실시간 변환 기술은 지난 번에 소개한 글에서 처럼 이미 네이버 메일에 첨부 문서 미리 보기에 적용되어 있읍니다.  이번에 E-tech에서 소개한 놀라울 기술은 위의 화면에서 붉게 표시하 기능은  [ Quick Slide Show ]  입니다. 이 기능을 수행하면 아래와 같은 화면이 나타납니다.

사용자 삽입 이미지

위의 기능은 Quick Slide Show란 기능으로 실시간에 PPT 파일을 SWF로 변환하여 어떤 부라우져에서나 PPT 문서의 Show 가 가능합니다. 정리하면 HTML보기 , SWF 보기, 그리고 실제 Slideshow 보기가 모두 가능합니다.

이제 어디 발표를 다니거나 공유 가능한 문서를 공개하고 공유할 때 무척 편하지 않을까요? 물론 사용자는 무료 웹 오피스를 제공받습니다. 이를 통해 온라인 상에서도 MS Office 수준의 문서를 작성할 수 있습니다. 문서의 작성에서 공유에 이르기 까지 .. 바로 이게 웹2.0 시대에 진정한 웹 오피스의 생명주기라고 생각합니다.

또한 기술적으로 위의 모든 서비스는 아마존과 전략적인 제휴를 통해 EC2 플랫폼과 S3 스토리지 서비스위에 구현이 되었습니다. 아마 후에 EC2와 S3 플랫폼을 활용하여 저렴하게 포탈을 구축하고 운영하는 기술에 대해 소개하게 될 것 같읍니다.

아직 마무리 중입니다. 다음달에 정식 베타 오픈을 하게 되면 많은 관심과 참여 부탁드리겠습니다.
 



Posted by 박재현
,

2편에 이어...

웹 플랫폼의 확산과 더불와 많은 응용 서비스들이 웹을 기반으로 개발되고 있지만 웹 자체 특히, 웹 브라우져가 갖고 있는 기술적인 한계들로 인해 많은 제약을 받고 있다. 또한 끊임없는 베타 서비스와 무료 서비스에서 벗어나 수익을 창출해야 하는 기로서 있다.

Online-Offline 간의 투명한 통합과 대용량 파일 처리

웹 플랫폼이 안고 있는 가장 큰 문제는 웹 브라우져의 한계이다. 웹 브라우져가 자체가 웹 애플리케이션을 모두 수용하기에는 부족한 점이 많다는 것이다. 실제 모든 웹 브라우져가 OS의 응용 프로그램이기 때문에 내부에서 대용량의 웹 애플리케이션을 수행할 수 없으며 오프라인시 정보를 읽어버리기 일수 있다.

이러한 배경하에서 현재 데스트탑 오피스에 대해 웹 오피스 서비스의 한계로 지적받는 가장 큰 문제가 바로 오프라인 지원과 대용량 파일 처리 문제이다. 현재 웹 오피스 서비스는 오프라인 상태에서는 사용할 수 없으며 대용량 파일도 지원하지 못한다. 따라서 실제 업무에 적용하는 것이 불가능하다고 말할 수 있다. 따라서 현재에는 웹 오피스는 데스크탑 오피스 환경의 보조 역할로 여겨지는 경우가 많다.

사용자 삽입 이미지
그러나 현재 이러한 문제를 해결하기 위해 관련 업체들이 여러 노력을 벌이고 있다. 이중에서 씽크프리는 현재 가장 앞선 기술로 오프라인과 대용량 파일을 지원하고 있다. 씽크프리는 사용자에게 온라인 버전과 오프라인 버전을 모두 제공하며 이들 간에 동기화 서비스를 제공하여 네트웍 환경에 상관없이 두 환경하에서 동일하게 대용량 작업을 할 수 있게 해준다. 가령, 사용자가 문서 편집 작업 중 네트웍이 중단되고 작업을 계속할 수 있으며 이를 동기화 서비스에서 보관한 후 다시 네트웍이 연결되면 이를 웹 오피스에 반영한다.

현재 기반기술로는 WHAT/WG에서 DOM Storage 표준을 만들고 있고 현재 IE , FF , Flash등에서 미약하나마 브라우져에서 오프라인 스토리지를 제공하고 있다.( 오는 29일 2007 Web2.0 Conference 발표에서 이 부분에 대해 설명할 예정입니다.)


SaaS 모델로서의 수익 창출

CRM 분야에서 Salesforce.com이 SaaS(Software As A Service) 모델로 성장을 하면서 서비스 로서의 소프트웨어의 성공이 입증된 이후 여러 분야에서 다양한 SaaS(Software as a Service) 서비스가 출현하였다. 그 중 가장 큰 시장 잠재력을 갖은 것이 웹 오피스 서비스이다. 현재까지 많은 관심을 받고 있지만 실제 관심에서 끝나는 것이 아니라 수익을 창출하면서 기존의 데스크탑 오피스 시장을 온라인 오피스 시장으로 전환할 수 있는 가에 따라 성패가 달려 있다고 말할 수 있다.

본 글들은 소프트웨어진흥원에서 요청한 "웹 오피스의 현황과 미래" 라는 주제의 글에서 일부를 정리해서 소개한 것입니다.



Posted by 박재현
,

REST Architecture

Architecture 2007. 3. 25. 21:29


                                            REST Architecture

사용자 삽입 이미지
근래 들어 웹 개발 커뮤니티에서 가장 많이 사용하는 용어 중 하나가
REST( Representational State Transfer )
일 것입니다. REST는 많은 웹2.0 회사들이 자신이 개발한 서비스를 외부에 공개하기 위한 Open API의 구현 방법으로 많이 사용되어 있습니다.  실제 구글, 플리커, 아마존 등의 Open API가 REST 방식으로 구현되어 공개되면서 급속히 확산되었습니다. 이러한 Open API 뿐만 아니라 REST는 서비스의 서버 플랫폼 구축에 있어 필수적인 아키텍쳐 입니다.  
 

아키텍쳐(Architecture)
일반적으로 소프트웨어 분야에서 아키텍쳐라 하면 컴포넌트와
데이터 그리고 이들 간의 인터페이스   S/W 구성하는 요소들의 적절히 구성하고 배치하여 원하는 목적을 이뤄내는 것을 말합니다. 원하는 목적에는 기능 , 성능 , 확장성 다양한 이슈들이 포함될 수 있습니다.


REST 아키텍쳐(Architecture)

REST는 Roy Fielding 의해서 처음 사용된 용어로서 웹의 특성을 활용한 서비스 호출 Architecture를 말합니다. 좀 더 자세히 살펴보면 ,  
웹상이
모든 것들은 URL  표현(Representation)됩니. 이렇게 표현된 URL 클릭하는 순간 다른 URL 이동하게 됩니다. 과정을 달리 표현하면 해당 URL 표현하고 있는 상태(State)에서 다른 URL 상태로 이동(Transfer)하는 것입니다. 이렇게 정의된 URL 통해 애플릿케이션을 구동시키고 결과(상태) 전달(Transfer)받아 처리하는 것이 바로 REST 방식 입니.


REST 실제 표준은 아니지만 HTTP/URL/MIME Type같은 표준을 사용한다. 따라서 실제 표준 기술이기도 합니다. 최근 Sun에서는 JRS311, Java API for RESTful Web services 을 발표하기도 했습니다.




REST에 대해 좀 더 실제 예를 들어 이해해보도록 하겠습니다.

가령, 아래 URL 직원들의 명단을 조회하는 서비스입니다. 서비스를 통해 직원 명단을 받는 클라이언트는 서버측의 구현이 어떻게 되어 있는지 상관할 필요가 없습니다.


http://wisefree.com/employee



클라이언트가 이 서비스를 요청하면 다음과 같은 결과를 받게 됩니.


<?xml version="1.0"?>
<p:
Employee  xmlns:p="http://wisefree.com
" xmlns:xlink="http://www.w3.org/1999/xlink">
<Employee id="603045"  xlink:href="http://wisefree.com/employee/6030
45"/>
<
Employee id="741146" xlink:href="http://wisefree.com/employee/7411
46"/>
</p:
Employee
>


또한 클라이언트는 전달받은 직원 명단 중 603545번의 자세한 내용을 받기 위해 다음과 같이 REST 서비스를 호출합니다.
 

http://wisefree.com/employee/603045 


 

클라이언트는 다음과 같이 보다 자세한 결과를 받게 됩니.

<?xml version="1.0"?>
<p:
Employee xmlns:p="http://wisefree.com
" xmlns:xlink="http://www.w3.org/1999/xlink">
<
Employee-ID>741146</Employee
-ID>
<Name>
jisu park
</Name>
<
Resume xlink:href="http://wisefree.com/employee/741146/resume
/"/>
</p:
Employee
>


이처럼 REST 방식은 "서버 주소 + 서비스 이름 + 자원" 으로 이루어진 URL을 호출하고 이에 대한 자원을 전달받으면서 서비스를 수행하는 구조입니다.
이러한 REST
방식으로 시스템을 디자인할 때는 다음의 사항을 주의해야 합니다.

- 제공하고자 하는 모든 conceptual 리소스(엔티티)들을 서비스로 제공합니다.

- 각 리소스들에 대한 URL 설계합니다. , 주의할 점은 URL 명사로 설계하며 서버 주소 + 서비스 이름 + 자원 방식으로 설계합니다.


http://wisefree.com/employee/getEmployee?id=603045 우울한 설계

http://wisefree.com/employee/603045 , 멋진 설계


- 이 , URL 통해 필요한 자원을 계속해서 추적하여 얻어(HTTP GET) 가거나 삽입(HTTP PUT), 삭제(HTTP DELETE) 있게 분류 설계합니다. 결코 한번에 모든 정보를 제공해서는 안됩니다.


http://wisefree.com/employee 전체 직원 명단을 얻어 온다.

http://wisefree.com/employee/603045 특정 직원의 자세한 정보를 얻어 온다.(HTTP GET)

http://wisefree.com/employee/603045 특정 직원의 해당 정보를 갱신 온다.(HTTP PUT)


- HTTP GET 통해 제공되는 모든 자원은 있는 상태의 정보를 제공하는 것이지 자원의 상태를 변경하고 그에 대한 결과를 제공하는 것은 아닙니다.

- 제공되는 결과는 Ajax RIA 기술을 사용할 경우 반드시 XML 포맷을 사용한다. 외의 경우에는 응용 프로그램의 상태에 따라 적절히 결정합니다.

자! 간략하지만 아주 중요한 사항들입니다. 개발자와 아키텍쳐 분들은 반드시 유의해 주길 바랍니다.




Posted by 박재현
,

3월 29일날 삼성동에서 열리는 "웹2.0 코리아 2007 컨퍼런스"에서 발표를 하게 되었습니다. 당일 발표는 주제가 " 웹 플랫폼화에 따른 애플릿케이션의 개발,배포"에 관한 내용입니다.

사용자 삽입 이미지

그 간 웹 개발 기술은 서버 플랫폼을 중심으로 발전해 왔습니다. 초기 CGI에서 Servlet, EJB 등 많은 서버 기술들이 출현했고 이에 따라 많은 발전을 거듭해 왔습니다. 그러나 현재에는 웹의 서버측의 플랫폼 기술만이 아니라 RIA(Rich Internet Application)으로 불리는 웹의 클라이언트측 플랫폼 기술이 발전하면 개발 뿐만 아니라 초기 기획,디자인,코딩에 이르기 까지 많은 변화가 불어왔고 , 또한 서비스의 아케텍쳐 또한 변하게 되었습니다.

본 발표에서는 이러한 것들을 살펴보고 현재 웹 플랫폼하에서 개발할 때 고려해여 할 사안들과 현재 가장 이슈가 되고 있는 웹 애플릿케이션의 오프라인 지원 기술에 대해 정리하려고 합니다.

발표가 마치고 나면 자료와 발표 내용을 정리해서 올리도록 하겠습니다.




'Architecture' 카테고리의 다른 글

IoT 클라우드 레퍼런스 모델  (0) 2014.07.16
Ajax Framewirk Review  (0) 2009.05.02
서비스 플랫폼 구축을 위한 솔루션은?  (0) 2008.10.28
구글 Gear에 대한 이해를 위한 도움말  (2) 2007.06.09
2007 Web 2.0 korea 발표 후기  (3) 2007.03.29
REST Architecture  (0) 2007.03.25

Posted by 박재현
,