Office Business Application (OBA)라 함은 지난 시간에 살펴본 바와 같이, 마이크로소프트의 오피스를 클라이언트 접점으로 하고 백엔드의 기업전용(LOB) 애플리케이션(ERP, CRM, SCM 등)을 연동하여 사용케함으로써 복잡하고 정형화된 LOB 애플리케이션을 익숙한 오피스 인터페이스를 통해 접근하도록 함으로써 생산성을 향상시키고 사용자 경험을 극대화할 수 있는 새로운 애플리케이션 개발 방식이다.
  이번 시간부터는 OBA의 기술적인 특징과 차별화된 점을 살펴보도록 한다.
전통적인 LOB 애플리케이션들은 구조적이고 정형화된 비지니스 프로세스를 모델링하여 처리하는 데 최적의 솔루션을 제공해왔다. 하지만, 실제 비지니스는 이러한 잘 구조화된 비지니스 프로세스보다는 비구조적인, 사람과 사람사이의 소통을 통해 이루어지는 프로세스가 훨씬 많으며 이러한 것들은 전통적인 LOB 솔루션이 제공할 수 없는 영역이었고, 바로 이러한 부분을 마이크로소프트의 오피스를 통해 엮음으로써 효과적인 비지니스가 이루어지도록 하는 것이 바로 OBA인 것이다.
  아래 그림은 이를 형상화한 것이다. LOB 솔루션이 제공하는 구조적인 프로세스 진행 와중에 우리의 비지니스는 이처럼 많은 사람과 사람사이의 소통을 필요로하며, 이러한 소통은 단순 문서의 전달만이 아닌 비정형화된 형태의 메시지 통신을 포함할 수도 있고 엑셀과 같은 툴의 도움을 받아 견적서를 작성하기도하고, 차트를 구성하기도 한다.

  이와 같은 비구조적인 비지니스 프로세스를 포함하는 위해서 우리의 애플리케이션은 어떠한 아키텍처를 가져야 할 것인가 ? 일반적으로 우리가 베스트 프랙티스로 인정하고 있는 3 tier를 살펴보자. 통상적으로 Presentation Tier, Business(혹은 Application) Tier,  Data(혹은 Integration) Tier 등으로 구분한다. 그 어느 티어에서도 사람과 사람사이의 비구조적인 통신을 효과적으로 처리할 수 있는 곳이 없다. 따라서 OBA 입장에서는 이러한 사람과 사람사이의 협업을 담당하도록 Presentation Tier와 Business Tier 사이에 Productivity Tier를 둔다.

  위 그림은 각 Tier가 담당하는 역할을 보여주며 Productivity Tier를 제외한 나머지 Tier는 전형적인 3Tier 아키텍처와 동일하다. Productivity Tier의 주요한 역할은 다른 사람과의 협업을 가능하게 해주는 문서와 정보의 공유 및 관리 기능, 협업과 통신 지원 등이다. 
  닷넷 플랫폼의 지원하에 오피스 2007은 위의 4Tier 아키텍처에 적합한 모든 기능을 제공하고 있으며 또한 개발 측면에서도 Visual Studio에 위저드로 내장되어 있는 VSTO (Visual Studio Tool for Office) 기능을 활용하여 쉽게 개발할 수 있다. 개발 플랫폼이자 LOB 애플리케이션의 얼굴로 자리잡고 있는 오피스 2007의 기능을 도식화하면 다음과 같다.

  정리하면, OBA는 위에서 살펴본 오피스 2007의 막강해진 클라이언트 및 서버 기능을 활용하여 Layered Architecture 기반으로 LOB 애플리케이션 연동하여 생산성을 극대화시키는 개발 방식인 것이다. 주의할 것은 Layering을 했다고 해서 즉, Architectural Pattern만 적용했다고 해서 엔터프라이즈 애플리케이션이 되는 것은 아니다. 맨처음 이슈로 제기했던 비구조적인 커뮤니케이션을 효과적으로 처리하기 위해서는 4 Tier 모두에서 적절한 Composition이 이루어져어 한다.

Posted by 장현춘

댓글을 달아 주세요

  1. 김현중 2008.08.13 11:20  댓글주소  수정/삭제  댓글쓰기

    안녕하세요 김현중이라고 합니다.
    VSTO 관련 웹 서핑을 하던 중..
    http://www.microsoft.com/korea/msdn/popcon/video_view.aspx?num=35
    위 강의를 봤습니다.

    위 강의 중,
    MyTab, MyGroup, MyButton 을 생성하는 것은 XML 작성을 통해 쉽게 가능한데요.

    질문은..
    코드내에서 직접 액세스 하는 방법을 알고 싶습니다.
    예를 들어 다음과 같습니다.

    MyTab.Enabled = false;
    MyGroup.Label = “나의 그룹”;
    MyButton.Enabled = false;
    MyTab.Enabled = true;

    현재 VSTO + VS2005 + Office2003,2007 환경으로 WordAddIn을 만들었는데요.
    2003은 UI를 코드로 작성하기에 문제될게 아니고,
    2007은 UI를 XML으로 작성하기때문에 문제입니다.

    혹시 방법을 알고 계신지요?
    답글 부탁드립니다.

    p.s : 홈페이지 찾느라 힘들었습니다^^

  2. Favicon of https://acroama.net BlogIcon 장현춘 2008.08.13 13:29 신고  댓글주소  수정/삭제  댓글쓰기

    안녕하세요. 반갑습니다.

    제가 개발 깊숙한 곳까지 파고 드는 역할은 아니지만, 말씀하신 사항이 코드 내에서 내가 추가한 MyTab등을 접근할 수 없다는 것인가요 ?
    제가 테스트해보니까, Globals.Ribbons.Ribbon1.MyGroup.Label = "내꺼내꺼내꺼" 이렇게 접근이 되던데.. MyTab, MyGroup 등 다 접근 가능하던데, 다른 걸 말씀하시는 것인가요 ?

    감사합니다.

  3. 김현중 2008.08.13 14:26  댓글주소  수정/삭제  댓글쓰기

    기본 샘플코드를 만들어봤는데요.
    VS2005 + VSTO + Word2007에, Ribbon support 만 추가했습니다.

    헌데 Globals.Ribbons.Ribbon1.MyGroup.Label 이런 접근이
    안되는것 같은데 어떻게 한것이죠?@_@

    혹시 VS2005 라서 그런가요?

  4. Favicon of https://acroama.net BlogIcon 장현춘 2008.08.13 14:34 신고  댓글주소  수정/삭제  댓글쓰기

    제 환경은 VS2008 SP1이며, 제가 비디오 찍을때(어감이 이상하군..^^)에도 유사한 접근 방식을 썼던 것으로 기억합니다.
    제가 김현중씨의 질문 받고 허겁지겁 만들어본 샘플은, VS2008+VSTO+Word2007 document에 visual designer 방식으로 리본을 추가했습니다. 이렇게 하니, intelli sense 기능으로 MyGroup, MyTab 다 찾아주는데요..

    감사합니다.

  5. 김현중 2008.08.13 14:39  댓글주소  수정/삭제  댓글쓰기

    Visual Designer 방식이라서 그런것 같은데요.
    더이상 여쭤보기는것은 실례가 되겠네요.^^
    답변 감사합니다.


    도움이 되는 소식을 접할수 있을것 같아서..RSS 추가해놨어요^^;
    감사합니다.

  6. Favicon of https://acroama.net BlogIcon 장현춘 2008.08.13 15:24 신고  댓글주소  수정/삭제  댓글쓰기

    감사합니다.
    다양한 공간에서 만나뵐 수 있길 기원합니다.