목차 >> Core 
+- Glue Service  
----+- dependency  
----+- applicationContext.xml  
----+- GlueBizController

5장 Core

Glue Service

Glue Service는 독립적인 Business의 한 기능을 수행하는 실행 단위입니다.
그림과 같이 Glue Service는 Glue Activity Diagram과 일치하며, XML 파일은 Glue Activity Diagram 을 통해 생성할 수 있습니다( ex> hello.glue_uml_ad -> hello-service.xml ). Glue Service의 수정이 필요할 때는, XML 스키마(GlueService.xsd)를 준수하기 위해 Glue Activity Diagram을 수정해서 XML파일을 재생성 하도록 합니다.

그림 : Glue Service (xml & diagram)
Glue Service

Glue Service는 Activity와 Activity 간의 흐름으로 구성되어 있습니다. Glue Service의 크기는 설계자&개발자의 성향에 따라 다를 수 있습니다.

dependency

Glue Service를 실행시 다음 dependency 와 applicationContext.xml이 필요합니다. Glue Core 모듈의 프로젝트 정보에서 의존물들을 확인할 수 있습니다.

<dependency>
    <groupId>com.poscoict</groupId>
    <artifactId>glue-core</artifactId>
    <version>${glue.version}</version>
</dependency>

applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
    <bean id="serviceManager" class="com.poscoict.glueframework.biz.control.GlueServiceManagerImpl">
        <property name="cacheManager" ref="cacheManager" />
        <property name="serviceLoader" ref="serviceLoader" />
    </bean>
    <bean id="cacheManager" class=. . ./>
    <bean id="serviceLoader" class="com.poscoict.glueframework.biz.control.GlueServiceLoader"/>
</beans>

GlueBizController

Glue Service를 실행하기 위해서는 com.poscoict.glueframework.biz.control.GlueBizController를 사용합니다. (Quick Start의 Test.java 참고)

GlueContext ctx = . . .
ctx.put( GlueBizControlConstants.SERVICE_NAME, "hello-service" );
. . .
GlueBizController controller = GlueBizProvider.getController();
controller.doAction( ctx );

GlueBizController 는 다음과 같이 2가지 Method를 제공합니다. (GlueAPI)

  • GlueContext doAction(GlueContext ctx)
  • GlueContext doSubController(GlueContext ctx, boolean newTx)

제공되는 Method를 를 통해 Glue Service를 실행시킬 수 있으며, Glue Service 실행시 필요한 Data는 GlueContext 를 통해 전달합니다. Glue Service가 실행되기 위해서는 GlueContext에는 항상 ServiceName이 포함되어 있어야 합니다. 그렇지 않으면 다음과 같은 형태의 에러메세지를 확인할 수 있습니다.

Exception in thread "main" com.poscoict.glueframework.GlueException: ServiceName doesn't exist
    at com.poscoict.glueframework.biz.control.GlueBizControllerImpl.doAction(GlueBizControllerImpl.java:227)
    at test.Test.main(Test.java:18)