토요일, 10월 10, 2009

이번달 작업해야 할 내용3

"이번달 작업해야할 내용2" 이어서, 그럼 어떻게 어제의 대략적인 개념들을 구현으로 옮길것인지요.
전체 모양을 대강 정의 했다면 그 다음에 해야 할 작업은 무엇일까요?

만드려는 Agent를 좌우할 환경 파일을 정하는 것이라 생각 됩니다.


json으로 환경 파일을 정했습니다.
데이터를 주기적으로 검사할 것을 SEND_TYPE에 설정해 놓았습니다.
TYPE, MAKE_OUT_CLASS는 클래스를 지정하도록 하였습니다. 물런 정의된 클래스는 인터페이스를 구현해야합니다. 그러면 내부에서 정의된 클래스를 인스턴스화 시켜서 동작시키는 구조 입니다.

"TYPE" : "com.study.Agent.agent.capture.file.FileMonitoring"
는 파일을 모니터링하는데, "c:/temp/log0.txt,c:/temp/log2.txt",를 모니터링 하고, 모니터링하는 결과가 나온다면, 출력은 : "com.study.Agent.agent.capture.makedata.AgentFileGlobalMake" 애가 처리해 줄려고 합니다. 10초간격으로 이런것을 처리 한다는 것이죠.

영업이나 기술지원팀의 요구에 따라서 이런 아이들이 들어나도 메인이 되는 SENDER는 수정하지 않고 특화된 타입을 추가 하려고 합니다. 물런 받아주는 아이가 포함할수 있어야 하지만 말입니다.

받아주는 아이도 이런식의 개념을 사용하려고 합니다. RECEIVE_SERVER:TYPE에 따라서 보내는 것들을 유연함을 주려고 했습니다.

Agent_LOG에 LOG4J의 로그환경을 넣을 생각입니다.

환경은 이렇게 생각해 보았습니다.
이것의 장점은 유연함에 있겠습니다. 여차하면 더 추가하고 SENDER나,RECEIVER를 수정할수있습니다.
단점은 무엇을까요? 환경파일의 정의 자체가 단점일수 있겠습니다. 정의된 JSON을 벗어 날수가 없게 되겠습니다. 중간에 환경설정을 할수 있도록 구멍을 뚤어줄까 싶기도 합니다만, 그러다 보면 산으로 갈듯도 싶습니다. 위에서 적어서 고민하는 것이 이것의 단점입니다. 어디까지 정의할 것인지에따라 복잡도가 증가 합니다. 증가하면 설명하고 관리해야할 팩터가 많아지고, 산으로 갈 가능성도 있기 때문입니다.

PS) 환경설정 이름이나 클래스명이 좀 이상한데, 회사명이나 업무명을 가리기위해 일괄로 수정했습니다.
JSON은 http://json-lib.sourceforge.net/를 사용했습니다. 제가 원하는데로 JSON을 JAVA Object로 잘 변환 해주었습니다.

댓글 없음:

댓글 쓰기