====== 시스템/서비스 연계 - MMS 서비스연계 Nuri v1.0 ======
===== 개요 =====
MMS 서비스연계는 행정기관이 이동통신서비스를 이용하여 기관의 필요에 따라 각종 행정업무에 활용할 수 있도록 \\
행정안전부 정부통합전산센터 M-Gov(http://www.mgov.go.kr)에서 구축/제공하는 이동통신 기반의 MMS 서비스를 인터페이싱한 컴포넌트이다.\\
\\
실제 메시지는 정부통합전산센터 M-Gov(http://www.mgov.go.kr)에서 제공하는 API가 전송 처리, 결과값 반환처리를 하고,\\
본 컴포넌트는 사용자 입력값을 넘겨주고, 반환받은 결과값을 처리하는 역할을 한다.\\
장문 메시지, 이미지, 동영상, 벨소리 등을 전송할 수 있도록 기반환경을 지원한다.\\
\\
본 컴포넌트는 사용자가 MMS를 전송하며, 관리자가 MMS 첨부파일 및 전송결과를 관리하는 기능을 제공한다.\\
현재 Nuri v1.0이 최신버전이며 데몬방식으로 변경되었다.
\\
※ 행정안전부 정부통합전산센터에서는 현재 Nuri v1.0을 가장 최신버전으로 제공하고 있다.\\
※ 기존 v2.0 버전은 발송시 소켓을 통한 전송을 하였으나 Nuri v1.0은 웹서버에 의존하지 않는 독립적 데몬방식으로 변경되어 비교적 손쉽게 구현할 수 있다.
===== 전제조건 =====
[[egovframework:mcom:mms서비스연계v2.0|mms서비스연계 v2.0]] 가이드를 참조한다.
===== Nuri 메시지서비스 데몬 =====
==== Nuri 요구사항 ====
Nuri 데몬은 WEB/WAS 서버가 필요없이 Java기반에서 단독으로 구동가능한 서비스 데몬이다.
=== System ===
필요한 HDD는 100만 건당 약 300 MB 를 차지하므로 월 50만 건씩 1년을 보관한다고 하면 총 600만 건이므로 1.8 GB정도를 생각하면 된다. CPU는 Pentium 200 이상, 전용선은 56 KB 이상이면 된다. Nuri를 구동하기 위해 모바일메시지서비스에 System OS Version과 DB Version을 알려주어, 해당 Binary File을 받는다.
=== Database ===
^ 지원RDBMS ^ 지원버전 ^ 비고 ^
| MYSQL | 3.23.xx 이상 | MYSQL 4.xx.xx이상 최신버전 권장 |
| MSSQL | 6.5, 7.0, 2000, 2005, 2008 | SP3 설치권장 |
| ORACLE | 7i 이상 (8i , 9i, 10g) | 반드시 서버버전과 클라이언트 버전이 동일해야 함 |
| INFORMIX | 9.x 이상 | 최신버전 권장 |
| DB2 | 9.xx 이상 | 최신버전 권장 |
| SYBASE | 15 이상 | 최신버전 권장 |
| CUBRID | 7.3, 2008 R1.0, 2008 R2.0 | 최신버전 권장 |
| TIBERO | 4 SP1 이상 | 최신버전 권장 |
| ALTIBASE | 5.3.3 이상 | 최신버전 권장 |
==== Nuri 데몬의 프로세스 블럭다이어그램 ====
Nuri는 실행시 3개의 쓰레드로 동작한다. 개발자는 특정 메시지 테이블에 I nsert만 하면 데몬이 테이블을 주기적으로 스캔해서 MMS서버에 전달하므로 구현이 비교적 간단하다.
=== NURIMain ===
실행하는 프로세스가 Daemon으로 되면서 남는 프로세스이며 나머지 프로세스를 실행한다.
=== NURISender ===
주기적으로 DB를 감시하며, DB에서 보낼 메시지를 Select해서 SMSG로 보낸다.
=== NURIReceiver ===
Main SMSG로부터 오는 전송결과를 수신하여 DB를 갱신한다. \\
{{:egovframework:mcom:nuri_process_diagram.png|}}
===== 설명 =====
모바일MMS서비스는 크게 MMS 첨부파일의 관리기능인 **MMS첨부파일 목록조회, 상세조회, 등록, 수정, 삭제**와 MMS 전송결과 관리기능인 **MMS전송결과 목록조회**로 구성되어 있으며, \\
**MMS 전송** 기능으로 구성되어 있다.(관련기능 부분참조)
== 클래스 다이어그램 ==
{{:egovframework:mcom:mms_class1.jpg?1000|}}
== 관련소스 ==
^유형^대상소스명^비고^
|Controller|egovframework.mbl.com.mms.web.EgovMmsController.java|MMS Controller Class|
|Service|egovframework.mbl.com.mms.service.EgovMmsService.java|MMS Service Class|
|ServiceImpl|egovframework.mbl.com.mms.service.impl.EgovMmsServiceImpl.java|MMS ServiceImpl Class|
|Model|egovframework.mbl.com.mms.service.MmsTransInfo.java|MMS 전송정보 Model Class|
|Model|egovframework.mbl.com.mms.service.AttachFile.java|첨부파일 Model Class|
|VO|egovframework.mbl.com.mms.service.MmsTransInfoVO.java|MMS 전송정보 VO Class|
|VO|egovframework.mbl.com.mms.service.AttachFileVO.java|첨부파일 VO Class|
|DAO|egovframework.mbl.com.mms.service.impl.MmsDAO.java|MMS Dao Class|
|JSP|/WEB-INF/jsp/egovframework/mbl/com/mms/EgovMmsAttachFileList.jsp|첨부파일 목록조회 페이지|
|JSP|/WEB-INF/jsp/egovframework/mbl/com/mms/EgovMmsAttachFileRegist.jsp|첨부파일 등록 페이지|
|JSP|/WEB-INF/jsp/egovframework/mbl/com/mms/EgovMmsAttachFileUpdt.jsp|첨부파일 수정 페이지|
|JSP|/WEB-INF/jsp/egovframework/mbl/com/mms/EgovMmsAttachFileDetail.jsp|첨부파일 상세조회 페이지|
|JSP|/WEB-INF/jsp/egovframework/mbl/com/mms/EgovMmsTransResultList.jsp|MMS전송결과 목록조회 페이지|
|JSP|/WEB-INF/jsp/egovframework/mbl/com/mms/EgovMobileMmsRegist.jsp|모바일 MMS 전송 페이지|
|JSP|/WEB-INF/jsp/egovframework/mbl/com/mms/EgovMobileAttachFileList.jsp|모바일 첨부파일 조회 페이지|
|QUERY XML|resources/egovframework/sqlmap/mbl/com/mms/EgovMms_SQL_XXX.xml|MMS QUERY XML|
|Validator Rule XML|resources/egovframework/validator/validator-rules.xml|Validator Rule을 정의한 XML|
|Validator XML|resources/egovframework/validator/mbl/com/mms/EgovMms.xml|MMS Validator XML|
|Message properties|resources/egovframework/message/message-common_ko_KR.properties|MMS Message properties|
|Idgen XML|resources/egovframework/spring/com/context-idgen.xml|MMS 전송결과 Id, 첨부파일 Id생성 Idgen XML|
== ID Generation ==
[[egovframework:mcom:mms서비스연계v1.0|mms서비스연계 v1.0]] 가이드를 참조한다.
== 관련테이블 ==
[[egovframework:mcom:mms서비스연계v1.0|mms서비스연계 v1.0]] 가이드를 참조한다.
== 로그인/회원관리/권한관리 ==
[[egovframework:mcom:mms서비스연계v1.0|mms서비스연계 v1.0]] 가이드를 참조한다.
==== 설정 및 주의사항 ====
* 현재 배포된 모바일 공통컴포넌트는 HTML5, CSS3를 적용하고 있다.\\
* 그에 따라, 현재 모바일OK, W3C의 모바일 웹 사이트 유효성 검사의 표준에 맞지 않으며, 정확한 유효성 검사에 대한 문의는 해당 전문기관에 문의가 필요하다.\\
* 현재 배포된 모바일 공통컴포넌트 V 2.0은 소스코드에 대한 보안성 검증이 완료 되었다.\\
===== 환경설정 =====
MMS 서비스연계 기능을 활용하기 위하여 필요한 항목 및 그 환경 설정은 다음과 같다.
==== 접속가능여부 확인 ====
* telenet(텔넷)을 이용한 SMS/MMS GateWay 와 통신상태 확인
* SMS/MMS Gateway IP는 운영(042-250-5537)에 문의
* 10000 : 실 메세지 전송 포트
* 20000 : 테스트 서버 Test Bed(Dummy Server)
- 신규개발 및 추가개발시 테스트용
- 실제 휴대폰 발송은 되지않음
* 실서비스와 Test Bed는 99% 동일 ,1%는 가상 이통사(Dummy)로 처리 실발송이 안됨
* Windows 사용시 : cmd(Command Mode) 실행
C:\Documents and Settings\Administrator>telnet 000.000.000.000 10000
C:\Documents and Settings\Administrator>telnet 000.000.000.000 20000
예) 정상(연동가능) :‘C:\Documents and Settings\Administrator>‘ 또는 ’blank‘ 상태로 확인
예) 비정상(연동불가): 호스트에 연결 할 수 없습니다.
연결 대상 000.000.000.000...호스트에 연결할 수 없습니다.
* UNIX & Linux 사용시 : Consol 실행
[root:/]#telnet 000.000.000.000 10000
[root:/]#telnet 000.000.000.000 20000
예) 정상(연동가능) : Connected to 000.000.000.000.
Escape character is '^]'.
Connection closed by foreign host.
예) 비정상(연동불가):telnet: Unable to connect to remote host: Connection timed out
==== Nuri for Java 간단한 실행 ====
D:\NURI에 압축을 해제한다.\\
{{:egovframework:mcom:nuri_install_01.png?750}}\\
nuri.conf파일의 DB설정을 환경에 맞게 수정한다.\\
####################################################################
# 데이터베이스 유형(db_name)
# ORACLE, MSSQL, MYSQL, SYBASE, DB2, INFOMIX, CUBRID, TIBERO, ALTIBASE
#
# Database Driver
#
db_name=MYSQL
db_driver=com.mysql.jdbc.Driver
db_url=jdbc:mysql://localhost:3306/nuri?autoReconnect=true&useUnicode=true&characterEncoding=euc-kr
####################################################################
# 데이터베이스 CharSet(db_charset)
# ORACLE, MSSQL, MYSQL, SYBASE, DB2, INFOMIX, CUBRID, TIBERO, ALTIBASE 공통사용
# DBMS에 설정된 CharSet으로 설정한다.
# DBMS마다 euckr, euc_kr, eucksc 으로 명칭이 틀릴경우 EUC-KR로 사용.
# EUC-KR UTF-8 , UTF8 ,euckr
# 기관 로컬 DB 의 언어설정 값
db_charset=EUC-KR
####################################################################
# 데이터베이스의 계정설정(테이블생성권한필요함)
# ORACLE, MSSQL, MYSQL, SYBASE, DB2, INFOMIX, CUBRID, TIBERO, ALTIBASE 공통사용
#
db_userid=nuri
db_password=nuri
java -jar nuri.jar nuri.conf 를 실행하고 로그를 확인한다. \\
{{:egovframework:mcom:nuri_install_02.png?600}}\\
Exception이 나오지 않으면 정상적으로 DB에 접속하여 데몬이 실행된 것이다.\\
{{:egovframework:mcom:nuri_install_03.png?600}}\\
Nuri v1.0은 데몬방식으로 변경이 되어서 WAS에 라이브러리를 적재할 필요가 없다.\\
데몬 구동 패키지는 정부통합전산센터(http://www.mgov.go.kr)에서 다운로드 받을 수 있다.\\
정부통합전산센터홈 > 개발가이드 에서 바로 nuri_for_java_20150204.zip파일을 다운로드 받을수 있다.
===== 관련기능 =====
[[egovframework:mcom:mms서비스연계v1.0|mms서비스연계 v1.0]] 가이드를 참조한다.
===== 참고자료 =====
* 실행환경 참조 : [[egovframework:rte:fdl:id_generation#Table Id Generation Service|ID Generation Service]]
* 공통컴포넌트 참조 : [[egovframework:파일관리|File Manage 서비스]]
* 배포 및 테스트 관련 : [[egovframework:mcom:모바일 공통컴포넌트란?|모바일 공통컴포넌트란]] 및 [[모바일_배포_패키지_구성안|배포 패키지 구성안]]
* 관련 데이터베이스 구조 및 스키마 : [[모바일_관련_데이터베이스_구조_및_스키마|관련 데이터베이스 구조 및 스키마]]