목차 >> Core +- Glue Service ----+- dependency ----+- applicationContext.xml ----+- GlueBizController |
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는 Activity와 Activity 간의 흐름으로 구성되어 있습니다. Glue Service의 크기는 설계자&개발자의 성향에 따라 다를 수 있습니다.
Glue Service를 실행시 다음 dependency 와 applicationContext.xml이 필요합니다. Glue Core 모듈의 프로젝트 정보에서 의존물들을 확인할 수 있습니다.
<dependency> <groupId>com.poscoict</groupId> <artifactId>glue-core</artifactId> <version>${glue.version}</version> </dependency>
<?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>
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)
제공되는 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)