MVNO패키지 개발 Wiki

 

OSWorkflowIntro

Page history last edited by 씨니 3 yrs ago

OSWorkflow 는 Opensymphony opensource project 중 하나입니다.

 


Opensymphony 소개

Opensymphony는 Logo 아래 quarlity component 라고 써놓은것 처럼 믿을 만한 J2EE/Java 기반 오픈소스 컴포넌트를 제공하는 프로젝트로 알려져 있습니다.

Opensymphony의 주요 Poject로 아래와 같은 프로젝트가 있습니다.

  • Webwork: 유명한 MVC Framework으로 Struts보다 나은 framework로 평가받고 있습니다. 실제로 struts2.0의 경우 webwork와 struts가 합쳐져서 진행되고 있습니다.
  • Quartz: 가장 유명한 Opensource 스케줄러 입니다. 많은 상용 또는 오픈소스 프로젝트에서 스케줄러로 사용하고 있습니다.
  • OSCashe: Caching을 위한 component입니다. clustering 환경등 지원합니다. 여타 프로젝트에서 역시 많이 쓰이고 있습니다.
  • Sitemesh: Decoration 을 통해 화면을 구성할 수 있는 프레임웍입니다.

 

 

OSWorkflow는 이중 서열 4위로 나타나 있네요..ㅋㅋ

OSWorkflow 소개

OSWorkflow 사이트에서는 이렇게 나와있습니다.

  • 'What makes OSWorkflow different is that it is extremely flexible.'
  • 'OSWorkflow gives you this flexibility.'

OSWorkflow는 flexibility를 중요시하는 workflow engine으로 볼 수 있습니다.

 

기능이 많고 구체적일수록 flexibility는 떨어질 수 밖에 없습니다. 많은 BPM/Workflow 제품들의 경우 plug-and-play형식이나 configuration 만으로 모든 것을 할 수 있도록 많은 기능들이 제공됩니다. OSWorkflow 에서는 이에 대해 이렇게 말하고 있습니다.

  • 'we've found that such a solution never provides enough flexibility to properly fulfill all requirements in a full-blown application.'

 

OSWorkflow는 이를 위해 아래와 같은 특징들을 가지고 있습니다.

  • 표준 prodess definition language를 사용하지 않는다. : BPEL, XPDL등 표준 Process definition language들은 많은 것들을 표현할 수 있겠지만 익히고 사용하기가 너무 복잡하고 자체적으로 여러가지 제약점을 갖게 됩니다. BPEL의 경우 실제로 Vendor들 별로 확장하여 사용하는 경우가 많아 실제로 서로 호환이 안되는 경우가 많습니다. OS Workflow에서 자체적으로 단순한 형식의 프로세스 언어를 사용합니다. 이는 OSWorkflow의 장점이 될수도 있고 단점이 될수도 있습니다.
  • Workflow Engine이 다루는 몇가지 interface를 정의하고 이에 따라 필요한 기능은 이 interface를 구현해서 실행되도록 한다.

 

Workflow Engine 에서 연동하게 되는 모듈은 아래와 같습니다. 아래에 대해서 interface를 제공하고 있고 이를 구현하고 process에서 설정하게 되면 실행되게 됩니다.

  • FunctionProvider: 원하는 기능 을 실행하는 모듈 excute() 라는 하나의 method를 구현하면 됨.
  • Validator: 데이터를 validate 할때 사용.
  • Condition : process 진행중 어떤 조건에 의해 true/false 판단을 할때 사용
  • Register

Comments (0)

You don't have permission to comment on this page.