지난 한 주동안 인터넷상에서 가장 관심 있는 뉴스를 뽑으라면, 나는 Google의 Google App Engine라고 서스럼 없이 이야기 할 것이다.

요즘 여러 곳에서 화두가 되고 있는, Clouding Computing으로 이야기 되는 서버 팜이 이기도 한, Google의 이 거대한 개발자들을 위한 장난감은 그 규모로 볼때는 Apple의 App Store와 유사한 밥법으로 개발자들을 유혹하고 있다. 개발자들로 하여금 자신들의 서버와 리소스를 이용하여 서비스를 올리도록 Echo 시스템을 제공하고, 잘되면 돈을 받겠다는 정책이다. 이전에는 Account를 받기위해서는 허가가 떨어질때까지 기다려야 했는데, 지금은 신청하는 즉시 무료 서비스를 이용할 수 있다.

Google App Engine는 개발자들이 구글의 서버를 500MB까지 무료로 사용할 수 있도록 하고, 하루에 수백만 페이지 뷰를 서비스 할 수 있다. 더군다나, 지난 주에는 Python에 이어서 Java를 지원할 수 있는 Language로 제공한다고 블러그를 통해서 발표했다. (블러그의 내용은 여기를 참조 바람) 
구글의 Java의 원할한 지원을 위해서 벌써 Eclipse의 Plug-in역시 무료로 제공하고 있다.

아래는 최근에 제공하기로 한 Java 언어와 Eclipse상에서 SDK를 이용하여 개발하고 있는 동영상으로 Google에서 제공하고 있는 동영상이다.
 

이것이 이슈가 되고 있는 또 하나의 이유는 JVM위에 포팅되고 있는 여러가지 Dynamic Language들로 개발한 프로그램이 구동이 가능하다는 것이다.
그동안 200여종이 넘는 우리가 모르는 Language들이 이 JVM위에 포팅되어 왔다. 그 중에 Ruby쪽에 유명한 프로젝트는 JRuby와 Groovy가 있다. 이들 역시 크게 반기는 분위기이다.
Sprin Framwork를 개발하고 있는 SpringSouce 역시 재 빠르게 블러그를 통해서, Google App Engine팀과 공조하고 있을을 발표했다.

지난 주말에 인터넷을 뒤져가면서, 내가 알아낸 사실들이 여러가지가 있지만, Google App Engine의 ClassLoder와 DB에 대한 접속 방법이 이전에 사용하던 Lagacy 시스템과 많은 차이를 가지고 있다는 점이다.
(때가 되면 이 부분에 대해서 다시 이야기 하려고 한다.)
오늘은 Eclipse에서 JRuby를 실행해 보았는데, sqlite쪽에서 문제가 있었다. jdbc지원에 대한 부분에 대한 라이브러리가 없어서 였는데, 이 역시 나중에 정리해 이야기 하려한다.

Wikidipia에는 아래과 같은 정보들이 있다. (이는 Java 지원을 발표하기 이전에 작성된 것이라, 관심있는 것과 다를 수도 있지만, 기초 지식을 얻는데 많은 도움이 될거라 생각된다.)

 
  • 1 Supported programming languages and frameworks
  • 2 Differences from other application hosting
  • 3 Differences between SQL and GQL
  • 4 Restrictions
  • 5 Downloading data from App Engine
  • 6 Quota rates
  • 7 Competition
  • 8 References
  • 9 External links

  • 개발자들을 위한 환경이 또 한번 만들어지고 있다.
    이전에 MS의 경우는 SDK를 제공하여 개발자들을 자신들의 품에 끌어 들였다며, 이제는 Echo System이라 불리우는 Platform을 개발자들에게 제공하고 있고, 1인 개발도 가능하도록 환경들을 만들어 주고 있다. 다시 말하면, 시스템과 리소스 관리에 개발자들은 더 이상 신경 쓰지 않아도 된다는 말이다. (100% 믿기 어려울거라 생각된다.)

    하지만 아직 정확한 방향없이 마케팅적이고 소모적인 구호가 될 가능성은 여전히 높다. 정확한 비전과 방향을 제시하지 못한다면, 정말 거대한 장난감이 될지도 모르지만, MS의 그거와는 방향과 구글이 지향하는 바가 확연히 다르다는 점을 확실히 밝혔다는 점에서 JAVA의 지원은 큰 의미가 있다고 생각이 된다. 

    정말 많은 것을을 배워야 하고, 배울 것들이 너무나 많다.
    즐거운 고민에 대한 비명들이 여기 저기서 들린다.

     
     
    Posted by 행복상자
    지난 달에 미국 라스베사스에서 열렸던 CES쇼에 발표되어 호응을 얻었던 제품으로, 우리에게 비디오카드로 유명한 NVIDIA에서 개발하였다.
    NVIDIA는 비디오카드 Chip Set뿐만 아니라, 비디오 칩셋이 장착되어 있는 nForce라는 이름이 붙어있는 보드를 생산해 판매해 왔었다.

    CES에서 발표된 ION 플랫폼은 인텔의 ATOM프로세스와 NVIDIA의 GForce 9400 GPU를 탑재한 초미니 보드이다. 보드의 크기는 정말 사람 손 바닥만하다. (아래 그림 참조)... 정말 작고 귀엽다. ^^



    가로의 길이가 겨우 10Cm 밖에 되지 않는다. 정말 작은 미니 PC를 만들수 있을 것 같은데, 이의 성능에 대한 자료는 NVIDIA의 사이트를 참조하면, 결코 만만치 않은 성능을 제공한다는 것을 알수 있다.
    참고자료:


    아래는 CES에 발료된 ION 플랫폼의 사양으로, Full HD를 지원함을 볼수 있다..

    NVIDIA-Provided Benchmarks For The Ion Platform:

    CPU

    Atom 330, 1.6GHz, FSB 533MHz

    Memory

    Single Channel DDR3-1066, 2GB

    GPU

    GeForce 9400M, 16 graphics cores, full HD decode

    SATA

    3Gbps

    Networking

    10/100/1000 Ethernet

    Audio

    7.1 HD Azalia

    Max Res.

    2560x1600 dual link DVI, 1080p HDMI


    최근 며칠동안 ION 플랫폼에 대해서, 자료를 찾아 보았다. 하지만 생각보다 많은 자료를 찾아 볼수 없었는데, 한국 NVIDIA에 관련된 자료와 소개자료가 Update 되었다.

    최근의 계획은 올 여름에 일반에게 판매가 가능한 제품으로 출시될 예정이다.
    만약, 출시가 되면, 개인적으로 구매해서 집안에서, 서버를 설치해서 사용해보려한다. 최근에 개인적으로 외장하드와 NAS 제품을 두고 고민을 많이 하였다. 점점더 많아지는 컨텐츠와 동영상과 사진등을 보관하기 위해서, 대용량의 HDD의 필요성을 커져만 가고 있다. 내가 NAS 제품을 포기하고 2.5인지 외장 하드를 선택한 이유는, 혹시 NAS의 소음이 크지 않을까라는 염려에서 였다. 인터넷을 구매할 때는 제품의 보지 않고 이미지와 평만을 가지고 구매 결정을 하므로, NAS를 과감히 포기할 수 밖에 없었다. 결국 2.5인치 외장 하드를 구해해 사용하고 있다.

    http://www.nvidia.com/object/sff_ion.html 에 소개되어 있는 동영상을 보면, ION이 얼마만큼 뛰어난 성능을 제공하는지 가늠할 수 있는데, 개인적으로는 보드가 출시되면, 이를 이용하여, 홈서버를 구축하려고 생각하고 있다. 소음과 저절력의 시스템이라면, 운영에 큰 부담이 없을 거라 생각한다.
    케이스는 투명 아크릴로 조립한다면, 또 다른 개인적인 즐거움을 제공할 거라 믿어 의심치 않는다.

    그리고 ATOM 프로세스는 요즘 인기있는 넷북에서 사용하고 있는 프로세스로, WIN XP, WINDOWS 7, LINUX 그리고 MAC OS X 역시 무리 없이 잘 돌아가기 때문에, 메모리만 충분하다면, VirualBox와 같은 가상화 시스템 프로그램을 설치하면 여러가지 OS를 사용할 수 있는 만족감도 더불어 얻을 수 있을 거라 생각이든다.

    만약 TV옆에다 설치를 한다면, 이 역시 또다른 재미를 줄 수 있을 거다.

    '좋아하는 것 > Hardware' 카테고리의 다른 글

    라즈베리 파이 설치  (0) 2015.11.28
    NVIDIA의 ION(아이온) Platform에 대한 소개  (0) 2009.02.03
    Posted by 행복상자
    지난 10월 Microsoft는 PDC 행사에서, Azure라는 Cloud Computing Platform을 대중들에게 공개했다. 인터넷 OS 시스템 같기도 하고, 기존에 존재하던 ASP 서버스와도 같기도한데, 많은 사람들에게 실제로 공개되었을 때는, 놀라움을 가져다 주기에 충분했다. MS가 현재 가지고 있는 모든 기술 역량을 총동원하였다는 생각이 들 정도로 커다란 반향을 불러왔다. 현재까지의 기술적인 어려움과 실현 가능성에 대한 의문과 의구심을 뒤로 한채로 말이다. 그 만큼 이번에 발표된 Azure는 현실성을 등에 업고 등장했다는 의미이기도 하다. 그러나 개인적으로는 아직도 많은 시간과 준비가 필요한 것 같다.

    이러한 나와 같은 의심이 많은 사람들 때문에, MS에서는 PDC행사에 많은 준비를 했던것 같다, PDC의 스크린 캐스트된 동영상중에 상당 부분인 Azure에 대한 부분이 었다. (약 34개 정도) 다른 주제들에 비해서 가장 많이 만들어진 이유는 그만큼 중요하다는 의미일 것이다.

    마이크로소프트의 Azure사이트에는 관련된 내용들에 대해서 자세히 설명되어 있는데, 아마도 관심있는 개발자라면 아래와 같은 그림을 많이들 보았을 거라 생각이 든다. 사실 그림이 주는 것은 큰 의미가 없을 수도 있다. (향후 어떤식을 전개될지는 뚜껑을 열어보아야 하기 때문에, 그 동안에도, ASP와 같은 실패사례는 수도 없이 많이 있었다.) 
     

    마이크로 소프트는 Azure에 대해 이렇게 말하고 있다.
    이는,
     
    "Azure는 Internet규모의 cloud 서버스 플랫폼으로, 데이터 센터에서 제공하는 서비스(OS를 제공 받는 것과 같은)를 빌려서 사용할 수 있고, 개발자들이 개발한 서버스들을 제공받을수 있다"

    있는 그대로 받아들이면, 서버스를 제공할 수 있는 플렛폼을 제공하겠다는 것이다.
    그리고, 그 위에 여러가자 다양하 서버스를 올려서 이를 서버스하겠다는 것인데, 이에 대한 수익모델을 이전의 ASP와 다름이 없다. 물론 차이는 ASP 보다는 다양한 서버스의 제공인데, 이는 실 수요자들이 어떻게 받아 들이는냐에 달려있다.

    Azure는 Open Achitecture를 표방하고, 인터넷 표준 프로토콜들(HTTP, REST, SOAP, and XML)을 통해서 그들의 제공하는 시스템에 서비스들을 올릴것이다.  

    간략하게 Azure의 구성을 살펴보면,
    Windows Azure : Azure 호스팅 Platform의 서비스 환경의 설정과 관리를 위한 환경이다. 개발에 필요한 Storige의 크기와 규모와 제공해야할 인터넷 환경들을 관리한다.

    Live Services : Azure Service Platform에서 관리해야할 사용자 data와 어플리케이션 Resource들을 위한 것으로 Live Services는 개발자들이 쉽게 개발할 수 있는 환경을 제공한다.

    Microsoft SQL Services : SQL Server의 기능을 확장한 것으로 웹 기반의 분산 데이터 베이스 환경을 제공한다. 이는 웹 서비스를 통해서 쿼리와 데이터 동기화 서비스를 제공한다.

    Microsoft .NET Services : .Net Services는 쉽게 Cloud Computing 기반의 서버스를 만들수 있도록 도와주며, 어플리케이션의 보안과 어플리케이션 간의 통신을 위한 서비스 버스를 제공함으로 Application들을 제어할 수 있도록 도와준다.

    Microsoft® SharePoint® Services & Dynamics® CRM Services : 향후 개발자들이 협업과 고객 데이터들을 필요할 것인데, Share Point & CRM 서비스에서 제공하는 기능들을 이용하여 필요한 기능들을 Application에 사용할 수 있도록 해준다.

    아주 간력하게 설명하려고 했는데, 마지막은 설명하기 쉽지 않다.
    끝으로 내가 참고로 했던, 국내의 블러그 자료들은 아래에 있다.

    관련된 국내 블러그:
    http://keon.egloos.com/4696892
    http://blogs.msdn.com/bkchung/archive/2008/11/18/azure.aspx
    http://itviewpoint.com/82616

    '공부하는 것' 카테고리의 다른 글

    Free ASP.NET MVC “NerdDinner” Tutorial Now in HTML  (0) 2009.05.01
    Free ASP.NET MVC eBook Tutorial  (0) 2009.03.12
    Microsoft Azure Platform  (0) 2008.12.29
    ASP.NET MVC Design Gallery  (0) 2008.12.20
    SpringFramework 3.0 Released (3.0.0.M1)  (0) 2008.12.07
    New ASP.NET Chart Control  (1) 2008.12.04
    Posted by 행복상자
    마이크로 소프트에서 차세대 데이터 센터의 청사진을 발표하였다. 3세대도 아닌 4세대 데이터 센터라고 명명하고 발표하였는데, 이는 최근에 발표되었던 Azuer의 구상에도 영향을 줄 수 있는 중요한 인자중에 하나라고 할 수 있다. 왜냐하면 Azuer서비스는 수 많은 서버를 필요로 하기 때문이다. 그리고 이를 위한 관리는 중요한 팩터이다.

    최근에는 Internet 비지니스를 하고 있는 기업체의 Data Center와 운영되고 있는 서버의 수는 중대한 기밀로서, 외부로 공개되지 않고 있다. 이는 구글의 엄청난 수의 서버를 운영하고 있는 영향때문이기도 하지만, 대략적인 서버의 수와 규모의 확장은 인터넷 기업의 미래를 점칠수 있는 자료로 사용되기도 한다. 특히 요즘과 같이 Cloud 컴퓨팅을 들먹이는 시대에는 특히 더욱 그렇다. 
    마이크로 소프트에서 Azuer와 같은 서비스를 제대로 제공하려면, 결국은 서비스 제공을 위한 서버들이 필요하고, 이를 위한 데이터 센터의 구축이 필수적이다. 서비스가 정상적으로 런칭되고, 요청이 많아지면, 이에 비례해서, 수 많은 새로운 서버가 필요하고, 이를 위한 전원 공급이 필수적이기도 하다. 서비스의 안정화를 위해서, 하드웨어적인 비용의 증가와 유지와 안전화를 위한 고정비가 기하급수적으로 늘어날 것이다. 이를 현대의 다른 사업과 비교하자면, 반도체산업과 비견될 수도 있을 것이다. (이는 개인적인 비교임). 초기 투자비와 유지를 위한 비용들은, 웬만한 자본을 가진 기업들은 발을 들여 놓기 힘든 장벽이 될 것이 분명하다. 그러나 반도체와는 다른 점은 돈만 있으면, 누구나 할 수도 있다는 가능성이 열려있다는 점이다.

    구굴의 운영 서버의 숫자는 50만대에서 120만대까지 그 크기와 규모를 예측하는 설은 다양하다. 아직도 정확한 숫자는 파악이 되지 않고 있다. 단지 알려진 것은 쉽게 서버의 규모에 대해 외부로 노출하지 않는 다는 것과 다른 인터넷 관련 기업들은 서버의 숫자를 계속해서 늘려가고 있다는 정보 뿐이다.

    이번에 발표한 MS의 4세대 Data center는 사실 아이디어면에서는 이전에 어디선가 본 적이 있을지도 모르지만, "새술을 새부대에 담아라"라는 성경 말씀처럼 현실적으로 적용이 되기 시작한다면, 적절한 선택과 서비스가 될 수 있을 것이라 생각이 된다.

    이에 대한 관련된 내용은 아래의 동영상을 참조하면 이해가 쉬울것이고, 장점이라고 생각되는 것은 서버스와 운영에 필요한 만큼만큼만 추가하고 확장함으로써, 비용을 절감할 수 있다는 것인데, 한 편으로는 무의미한 것이란는 생각이 든다. 왜냐하면, 불 필요한 시설은 시스템이 안정화 되면서 줄어들고, 필요시 확장을 고려하는 것은 결코 변하지 않는 IT 담당자의 업무라 생각되기 때문이다.  

    <a href="http://video.msn.com/?mkt=en-US&playlist=videoByUuids:uuids:b4d189d3-19bd-42b3-85d7-6ca46d97fe40&showPlaylist=true&from=shared" target="_new" title="Microsoft Generation 4.0 Data Center Vision">Video: Microsoft Generation 4.0 Data Center Vision</a> 

    그리고, MS의 블러그와 추가적인 자룐는 아래의 링크 참조: 
       - http://blogs.msdn.com/eva/archive/2008/12/09/4-datacenter-4-0.aspx
       -  http://blogs.technet.com/msdatacenters/default.aspx
       -  http://loosebolts.wordpress.com/2008/12/02/our-vision-for-generation-4-modular-data-centers-one-way-of-getting-it-just-right/


    아래는 경재적이 잇점에 대한 그래프인데, 다분히 마케팅적인 자료로 보인다.


    Posted by 행복상자

    이번 주는 여는 때와 달리 인터넷을 통해서, 몇가지 이슈들을 일으킬 만한 것들이 소개되었다. 특히 Google에서 몇가지 눈여겨 볼만한 것들을 내 놓았는데, 여기도 우리과 같이 한해를 마무리 하기 전에 프로젝트들을 정리하나 보다. (지금 내가 진행하는 프로젝트도 1.0 버전을 다음주까지 마무리 할 계획이다. 많은 우여곡절 끝에 여기까지 왔다. 그러나 높은 점수를 줄 수 없다. 개인저으로 많은 부분이 만족 스럽지 않기 때문이다.)

    구글이 이번주에 발표한 내용중에, 특이 사항으로는 "Native Client"라는 것을 발표 하였는데,웹 브라우져를 통해서, OS가 가지고 있는 리소스를 최대한 사용할 수 있도록 도와줄 수 있고, 브라우져 상에서 애플리케이션을 빠르게 실행시키고, 이는 마치 데스크탑 Application 처럼 사용할 수 있다고 한다.

    이미 Google의 도구들을 아는 사람은 유사한 것으로 Google Gears를 생각할 것이고 Googl 크롬을 떠 올릴 것이다. 그리고, RIA 관련 기술로는 MS의 Silverlight와 Adobe의 Flash 그리고 또 아직까지는 많은 사람들의 관심을 끌지는 못하고 있는 Sun의 Java FX가 있다.

    이들의 유사점은 모두 Web 브라우져를 지원하지만, 웹 브라우져를 벋어 나려고 한다는 것이다. 내가 이전에 작성했던 글들에도 여러차레 언급 하였지만, 현재의 PC시장 보다는 Mobile 시장이 훨씬 크고, 앞으로의 성장가능성도 휠씬 높다.

    위에서 언급하였던, RIA 관련 솔루션을 제공하는 MS, Adobe, Sun과 Google의 "Native Client"는 기술적인 관점에서 유사성이 많다. 왜냐하면, MS의 IE 브라워져의 관점에서 보면 Active X 기술을 사용할 수 밖에 없기 때문이다. 좀더 쉽게 설명하면 IE와 같은 웹 브라우져에서 동작할 수 있는 Application Container를 개발자와 개발업체에 제공하고, 이들이 만든 Software를 이 Application Container에서 동작시키는 것이다. 웹 브라우져에 Software를 구동시킬 수 있는 Layer를 두는 것인데, 이는 Adobe의 Flash Player를 생각하면 쉽게 이해가 될 것이다. RIA Application을 개발하고 이를 Adobe의 Flash Player(Application Container)를 통해 동작시키는 것이다. 이는 기술적으로는 다른지 모르겠지만, Layered Design 관점에서 보면, MS의 실버라이트, Adobe의 Flash, 그리고 Sun의 Java FX가 동일하다. 이렇게 한다면, 브러우져의 종속성을 크게 줄일 수 있는데, 만약 웹 브라우져의 스펙에 이러한 부분들이 반영되어 있고 표준화 되어 있다면, 이들 회사가 이러한 Container를 제공할 필요도 없었을 것이다. 

    "Native Client"에 대해서 눈여겨 보아야 하는 이유는 어제는 Google의 크롬 브라우져가 정시으로 Release되었다. Google Gears도 그렇지만, 인터넷 또는 netwrok이 되지 않는 환경에서도 Application을 실행하고 사용자가 원하는 작업을 할 수 있도록, Google은 관련 기술들을 만들어 내고 있다. 이러한 연장 선상에서 기술의 흐름을 이해하는 것이 중요하다.

    "Native Client"는 지난 3일 전에 발표되었지만, 아직 자세히 살펴 보지는 못하였다. 이번 주말에 짬짬히 살펴볼 예정인데, 아래 몇가지 링크와 동영상이 있다. 이해 하는데 도움이 될 거라 생각한다.

     
     1. ZdNet에 소개된 기사 
      
     2. Google Native Client
     
     3. Google's Reserch Paper
       





     

    Posted by 행복상자
    일민이가 지난주에 호주에서 한국에 들어왔는데, 아직 얼굴은 보지 못하고 있다.
    매번 저녁 약속에 다른 약속들이 잡혀서, 그 모임들에 참가 하는라 바쁘다.

    아직도 11월인데, 송년회를 한다나, 여의도에서 만나기로 했는데, 다른 사람들이랑 모임이 시작되어서 힘들다고 한다. 이유도 여러 가지 이지만, 아직도 한국에서 그를 찾는 사람들이 많아서 일거다.

    암튼 이번주 토요일에 보기로 했는데, 저녁보다는 아침 일찍이 만나야 할 거 같다. 예전 처럼 아침 먹으면서,  여러 가지 이야기를 할 수 있을 거라 생각이 된다. 이제는 아이들 이야기를 할 수 있을 정도로 일민이도 자격을 갖추었으니까... 얼마전에 일민이 아들이 돌이었다고 한다.

    다음 동영상은 일민이가 IBM의 DeveloperWorks에 올린 동영상 강좌이다.
    올린지 시간이 꽤 지났는데, 최근에서야 보았다.


    Posted by 행복상자
    며칠전에 SpringSouce에서 새로이 발표한 SpringSource Application Framework에 대해서 글을 소개한 적이 있다. 지난 30일 팀 블러그를 통해 발표 되었었다.
    이는 Dynamic Module Kernel(DM-Kernel)을 기반으로 만들어진 현재는 베타버전의 SpringSource의 Application Platform이다.


    잘 만든 Architecture도 결국은 어떻게 Deploy하고 관리 할 것이냐에 대한 고민을 하게 되는데, 이는 새로 만든 모듈들과 기존에 동작하는 모듈간에 조화로움이 관건이다.(버전 관리와 Dependency의 문제)

    www.springframework.org 에 들어가 보니, Application Platform에 대한 글과 자료들이 새로 올라와 있어서 흩어 보았는데, 리눅스와 윈도우 환경에서 설치와 사용에 대한 Guide와 개발자 매뉴얼이 올라와 있어 새로운 Platform에 대한 이해에 큰 도움이 될거라 생각이 든다.
    Web Site에 올라온 자료들의 목록과 링크는 다음과 같다.




    각 번들에 필요한 기능들을 어떻게 가져오고 노출 시킬 것인가에 대해해, 요즘 고민 중인데, 분석을 하면서 아이디어를 얻어야 할 것 같다.
    현재 내가 하고 있는 프로젝트는 공통 모듈들 개발 해야 하는데, 각 공통 모듈을 이용해서 개발해야 할 솔루션의 내부에도 외부로 노출 시켜야 할 서비스 부분이 분명 존재한다. 이를 어떻게 다른 쪽에 인지 시킬 것인지, 그리고 어떻게 가져다 써야 할 것인지에 대한 고민 중이다.



    위와 같이 직접 불러다 사용하거나, 아니면 아래와 같이 공통의 라이브러리를 따로 만들고 각 번들에서 직접 호출해서 사용할 수도 있을 것이다.




    Posted by 행복상자

    이미 아는 사람들은 알겠지만, Spring Framework를 만들 "로드 존슨"의 회사명은 "Interface21"에서 "SpringSource"로 사명을 바꿨다. 그리고 더욱 왕성한 활동을 보여주고 있다.

    오늘 소개하는 SpringSource Application Platform은 SpringSource의 팀 블러그에 올라온 것으로 beta release를 공개한다는 내용이다.
    요즘 사내에서 개발하고 있는 Framwork는 OSGi를 기반으로 설계를 진행중이고 이를 위해서 스프링-DM을 사용하려고 한다. 그래서 관심을 갖을 수 밖에 없다.


    Tomcat과 Spring을 통해서 lightweight platform을 구성이 가능하지만, modularaty(모듈화)와 non-web application에 대한 지원에 대한 단점을 안고 있다.
    이를 개선하기 위한 노력으로 시작된 것이다.

    아래는 Application Platform의 구성을 설명해 주는 그림인데, 여기서 중요한 역할을 하는 것은 SpringSource DMK(Dynamic Module Kernel)이다.
    SpringSource Application Platform Architecture
    DMK가 동작하기 위해서는 최소한의 번들들이 있어야 된다고 한다. MDK는 구동을 위해서 꼭 Tomcat을 필요로 하지도 않지만, Tomcat는 기본적으로 포함되어 있고, 언제든지 설정을 통해 넣거나 뺄수 있다. 그러나 Tomcat을 제거한다는 것은 Web Module의 Deplroy를 하지 않는 다는 것을 의미하므로 이점은 반드시 유의해야 한다.

    다음은 Platform에서 지원하는 3가지 패키징 및 Deploy 방법이다.

    Building Applications

    • The Platform supports applications packaged in three forms:

      1. Java EE WAR
      2. Raw OSGi bundles
      3. Platform Archive (PAR)

    먼저,  WAR파일을 통해서 배포가 가능한데, 이는 배포 시점에 OSG번들과 Tomcat에 설치가 된다.
    둘째로, OSGi 번들은 직접 Platform에 배포가 가능하며, Import-Package and Require-Bundle를 이용해서 번들간의 deendency의 선확인이 가능하다.
    마지막으로 PAR 포맷은 Platform으로 deploy할 때 수동으로 설치가 쉽고, 로드 될때 다른 서비스와 충돌 또는 이중으로 서비스가 동작하는 것을 막아주고, Application에서 사용되는 모듈들에 대해 로직컬하게 Grouping이 가능하게 만들어 주는 잇점을 가지고 있다.
    아래는 모듈간의 RAR Application의 전형적인 예이다.
    PAR File Structure
    Dependency는 일반적으로 Import-Package & Export-Package를 이용하여 표시한다. 그러나, Third-party 라이브러리를 이용하기 위해서는 이 것말고도 더 많은 라이브러리를 요청하는 경우가 있다. 이를 개선하기 위해서, Platform에서는 Import-Bundle 과 Import-Libary을 이용하여. Import-Bundle 은 추가적으로 다른 third-party 라이브러지를 참조할 수 있게 된다.
     


     

    Posted by 행복상자

    작년에 Google gears에 대해서 잠시 분석해 본적이 있다. 그리고 몇몇 다른 플랫폼에서 그 아키텍쳐의 유사함과 기능에 대해서 자료를 조사해 보았었다.
    MS의 Silver light, Sync Framework과 Adobe의 Air가 그 것이다. 그래서, 올해도 일부러 Adobe의 Air/Flex의 발표장을 찾아 나섰다.

    동기화에 대한 개념은 크게 어렵지 않다. 그러나 왜 갑자기 이슈가 되었을 지는 생각해 볼 문제이다. 이는 향후 개발 방향을 크게 좌우 할 수 있다. 현재의 추세대로라면, 앞으로는 Moblie이 PC보다 더 큰 시장이 될 것이 틀림없다.  그리고, 이는 현재의 개발 방법론을 바꿀지도 모른다. 그러나 네트워크에 연결되는 순간 배터리의 사용량을 급격히 늘어난다. 필요할 때만 네트워크에 연결한다면 배터리의 사용시간을 늘릴수 있을 것이다. Google은 이러한 관점에서 gears의 구조를 설계 했다.

    구글 gear의 Architecture는 정말 Simple하다. 누구나 생각할 수 있는 구조이고, 쉽게 구현할 수 있고, 쉽게 이해할 수 있는 구조이다. 하지만 콜롬부스의 달걀은 도전과 두려움의 극복이 우선되어야 한다.

  • isolating the data layer
  • deciding which features to implement offline (connection strategy)
  • deciding on the app's modality
  • implementing data synchronization

    Background sync architecture

    이번에 다시 Google gears에 대해서 다시 한번 볼 기회가 있어서 Google code를 뒤져 보았더니, 모바이 디바이스를 위한 Google gears에 대한 자료가 있어서 살펴보게되었다.

    사실 Google gear의 궁국적인 목적은 모바일 디바이를 위한 것이다. 내부에 내장되어 있는 Database를 이용하여 인터넷/네트워크가 되지 않는 환경에서도 인터넷 어플리케이션은 자유롭게 이용할 수 있도록 google gears는 도와준다. 그리고 인터넷/네트워크가 연결될 때, 서버와 자료를 자동으로 동기화 한다.  

    이번에 내가 찾아 참고한 자료는 모바일에 Google gears를 데스크탑 PC에서와 같이 윈도우즈 모바일 5,6에서 Application을 사용가능하게 만들어 준다. 그러나 여기에는 몇 가지 제약 사항들이 있다.

    CSS와 Dom object Model과 ActiveX등 제약사항이 있는데, 이는 Windows Mobile 5,6의 Web browser가 데스크답 PC의 그것과 기능과 구조가 다르기 때문이다.

    관련된 제약 조건들은 아래와 같다.

    Windows Mobile 5 and 6 Limitations

    Limitations to consider when writing AJAX applications for Windows Mobile 5 and 6 devices, and some workarounds, are provided below:

    CSS

    Neither Windows Mobile 5 nor 6 support the CSS position: style attribute. This means text is not positioned in any way, it simply appears within the normal flow of an HTML document.

    Document Object Model

    Document Object Model (DOM) limitations, and example workarounds, are provided below:

    Accessing a Document Element

    Windows Mobile 5 does not support document.getElementById(), though Windows Mobile 6 does. The following code snippet provides a workaround using the document.all DOM property.

  • Posted by 행복상자

    Hello, OSGi

    공부하는 것 2008.04.13 23:02

    OSGi개발의 위한 Sample Program 예제이다. 사실 www.eclipse.org에 갔다가 관련 링크를 보고 내용을 흩어 보았는데, 쉽게 잘 설명되어 있다.
    우리가 개발할때 익히 잘아는 Hello world 예제이다. 짧지만 OSGi에 대해서 잘 배울수 있는 예제로, 이 예제는 OSGi를 이용해서 Serveice-oriented application을 만드는 방법과 ServiceFactory와 ServiceTracker Classes에 대해 설명하고 있다.

    아래 링크를 참조하여 예제를 실행하다 보면 여러가지를 배울수 있을 것이다.
     링크: Hello, OSGi, Part 1: Bundles for beginners
     
    OSGi offers the fallowing advantages:
         1. You can install, uninstall, start, and stop different modules running
             at the same time.
         2. Your application can have more than one version of a paticular module running
             at the same time.
         3. OSGi provides very good infrastructure for developing service-oriented
            applications, as well as embedded, mobile, and rich internet apps.

    이는 OSGi의 장점들이고, 이를 위해서는 OSGi 컨테이너가 존재해야 한다. EJB container나 Sevlet container과 유사하게 인터페이스에 따라 정의되고 동작되기 때문이다.

    위에 링크를 참조해서 공부한다면, 개념을 익히는데 큰 어려움은 없을것 같다.

    Posted by 행복상자