====== 시스템/서비스 연계 - 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:모바일 공통컴포넌트란?|모바일 공통컴포넌트란]] 및 [[모바일_배포_패키지_구성안|배포 패키지 구성안]] * 관련 데이터베이스 구조 및 스키마 : [[모바일_관련_데이터베이스_구조_및_스키마|관련 데이터베이스 구조 및 스키마]]