졸업작품중간보고서 Cloud Message Service 기술 을활용한실시간버스정보전달 App - KCB(Konkuk Cloud Bus) - 담당교수 : 한선영교수님조원 : 200811451 이형열 200811414 김연준 200811445 이성현
목차 1. 개요 1.1. 작품개요 1.2. 목적 (* : 추가된부분 ) 2. 결과물사양 2.1. 결과물의구성 * 2.2. 결과물구현예시 * 3. 개발방법 3.1. 기술적요구사항 * 3.2. 개발환경 * 4. 현재진행사항 * 5. 추가개발계획 * 6. 프로젝트진행사항및앞으로의개발계 획
1. 개요 1.1 작품개요 서울시내버스정보를전달하는 Android 용어플리케이션 KCB(Konkuk Cloud Bus) 를개발한다. [ 제공하는정보 ] - 기본적인대중교통의버스정보 ( 노선정보, 정류소정보, 현재버스위치정보 ) 를사용자에게제공한다. [Cloud Message Service] - Cloud Message Service 기술을활용하여사용자에게필요한 Message 를신속하 게전달한다. [Koren 망 ] - 일반적인인터넷망이아닌 10Gbp 의속도인 Koren 망을활용하여실시간정보 를전달한다. 1.2 목적 - 일반적인인터넷망안의 App 보다안정적이고, 신속하기에실시간정보를사 용자들에게더효율적으로제공할것이다 - 자신이탑승하려고하는버스에대한알림서비스를받을수있게하여 App 사 용자의편리한버스이용을도울것이다.
- 각자사용자에게필요한버스의변경사항을공지사항으로전파하여신속한변 경정보를제공할것이다. 2. 결과물사양 2.1. 결과물의구성 버스위치정보, 버스도착정 노선정보, 정류소정보 노선정보 - 버스노선에대한정보를사용자들에게제공한다. - 노선검색을가능하게하여, 필요한노선을찾을수있게한다. - 각버스노선에대한정보는기점, 종점, 회차점, 첫차시간, 막차시간, 노선도
를제공한다. - Client내에저장되어있으며, Data 변경사항이있을시에 Server에서새로운 Data로갱신합니다. 정류소정보 - 정류소에대한정보를사용자들에게제공한다. - 정류소에대한각지정된번호와정류소이름을검색가능하게하여사용자에게필요한정류소를찾을수있게한다. - 각정류소에대한정보는정류소위치와그정류소에도착하는버스번호를제공한다. - Client내에저장되어있으며, Data 변경사항이있을시에 Server에서새로운 Data로갱신합니다. 버스위치정보 - 버스현재의위치에대한정보를제공하며, 노선도위에버스를배치함으로써현재버스위치를제공한다. - Server에서인터넷상의공공데이터포털 Open Api(xml) 를실시간으로받아 DB파일로변경하여 Client 요청시제공한다. 버스도착정보 - 사용자가선택한정류소를지나가는버스들의도착예정시간을제공한다. - 현재버스위치를확인하여사용자가선택한정류소에가장빠르게도착하는버스의도착예정소요시간을제공한다.
- Server에서인터넷상의공공데이터포털 Open Api(xml) 를실시간으로받아 DB파일로변경하여 Client 요청시제공한다. 버스도착알림 - 사용자의선택에의해정류소에도착할버스의도착시간을예상하여실시간으로알림서비스를제공한다. 공지사항알림 - KCB App 자체에대한변화된공지사항을전체사용자에게알림으로제공한다. - 사용자가검색한노선 or 정류소의정보가변경되었을때사용했던사용자에게만변경정보를알림으로제공한다.
2.2. 결과물구현예시 노선정보 & 버스위치정보 선택한버스의노선이버스의 운행방향순으로나열되어 있습니다. 현재운행중인버스들중하나가 [ 송내초교. 법원입구 ] 정류소에서 [ 삼광교회 ] 정류소방면으로운행중임을알수있습니다.
정류소 & 버스도착정보 정류소의정보를알기위해선먼저정류소의번호를알아야합니다.( 화살표 ) 그번호를검색하면정류소를경유하는버스들과그버스들의도착예정시간을한눈에알수있고각버스들을선택하면노선정보창으로이동하여더자세한버스정보를알수있습니다.
버스도착알림알림 ( 실시간으로알림이오는예시 ) ( 실제로버스가 경성대학교입구 로 버스노선변경공지사항알림 향하고있음을알수있습니다 ) [ 버스노선변경사항 ] 오늘 2014년 9월 17일자로 11-228( 신중동역5번출구. 중흥중학교 ) 정류소가 11-228( 신중동역 4번출구 ) 로바뀌었습니다. 착오없이버스정류소를찾아가시길바랍니다.
*** 추가된변경사항 *** 출발 / 도착검색 ( 출발 / 도착검색메인화면 ) ( 출발지에대한정류소검색및검색결과 ) ( 출발지 -> 도착지까지의경로검색결과 ) 이후도착지도착시간을입력한후그에맞는버스탑승시간을조회하여 10 분전 알림메시지를 push 합니다.
3. 개발방법 3.1 기술적요구사항 KOREN 망 - 광대역통합연구개발망 (KOREN) 이란광대역, 고품질의국내외연구시험망을산 학 연에제공하여미래네트워크관련기술의시험검증과첨단응용분야연구개발을지원함으로써연구개발촉진및국제공동연구협력기반을조성하기위한비영리선도시험네트워크인프라입니다. - KOREN 을고속도로에비유하자면버스전용차선과비슷하다고할수있습니 다. - 일반인터넷이보통 100Mbps 대역폭을제공하는것에비해, KOREN 은이 보다백배빠른 10Gbps 대역폭을제공하고있습니다. - 미국 유럽 일본 중국등세계각국들도 KOREN 과유사한연구망을보유하고
있다. 뿐만아니라이들국가의연구망을서로연결함으로써네트워크를통 한국제공동연구실험을매우효과적으로수행할수있게되었습니다. KOREN 망의적용 - 인터넷이갖는근본적인문제점이드러남에따라차세대인터넷이큰이슈로 부각되고있습니다. - 제시된이론들을실제로네트워크에적용하고시험해볼수있는연구목적 의시험망을필요로하게됐습니다. - 기존의 App 은인터넷망을통하여버스의실시간정보를받아옵니다. 인터 넷망의협소한대역폭으로인해정보갱신의문제가생기고있습니다. - 우리의 App 은차세대네트워크망인 KOREN 망을통하여이문제를해결할 것입니다. Cloud Computing
- 클라우드컴퓨팅 (Cloud Computing) 이란정보처리를자신의컴퓨터가아닌 인터넷으로연결된다른컴퓨터로처리하는기술을말합니다. 우리가사용하고있는개인용컴퓨터 (PC) 에는필요에따라구매한소프트웨어가설치되어있고동영상과문서와같은데이터도저장되어있습니다. 문서를작성하려면자신의컴퓨터에저장되어있는글과같은프로그램을구동시켜야합니다. 그러나클라우드컴퓨팅은프로그램과문서를다른곳에저장해놓고내컴퓨터로그곳에인터넷을통해접속해서이용하는방식입니다. 이렇게되면필요한소프트웨어를내컴퓨터에설치할필요도없고, 또주기적으로업데이트하지않아도됩니다. 게다가회사컴퓨터에서작업을하던문서를따로저장해서집으로가져갈필요도없습니다. 또자신의컴퓨터가고장을일으켜도데이터가손상될염려도없습니다. 필요한만큼쓰고비용을지불하면되므로사용빈도가낮은소프트웨어를비싸게구입할필요도없고, 터무니없이큰저장장치를갖추지않아도됩니다. Cloud computing 적용 - 인터넷상의서버를통하여데이터저장, 네트워크, 컨텐츠사용등 IT 관련 서비스를한번에사용할수있는컴퓨팅환경을통칭하여 Cloud Computing 이라부릅니다. - 버스노선과실시간버스위치, 배차간격정보들을 Cloud 서버에저장하고갱 신하며필요한단말로보내주는저희팀아이디어의가장핵심이되는기술 입니다.
Cloud Message Service - Cloud Message Service(Push Service) 사용자가원하든원치않든정보를전 달하는기술입니다. - Cloud Message Service는사용자가수신을원하는정보의범위를미리직접지정가능하다는점이사용자의관심사정보를지정하는것이불가능하여모든정보를수신하는 TV나라디오와같은 Broadcast Service와의차이점입니다. - Cloud Message Service 와반대되는개념은 Pull Service 입니다. Cloud Message Service가사용자의정보에대한요청이없어도자동으로정보전달이되며정보제공자가정보의흐름을통제하는반면에 Pull Service는사용자가정보를원할때, 정보소유자에게필요정보요청하고정보를획득합니다. 그러므로사용자가흐름을통제합니다.
Cloud Message Service 의적용 - Cloud Message Service 기술을활용하여공지사항전파기능과선택한버스의 알림서비스를추가하였다. - 공지사항전파기능은노선변경에대한필요한사용자에게정보전달을목 적으로메시지전파에활용하게되었다. - 버스알림서비스는각자선택한정류소에대한버스의앞으로의도착시간에 대해 2 번의알림서비스를제공한다. Mongo DB MongoDB는 10gen에서 C++ 을가지고개발한오픈소스 NoSQL 데이터베이스이다. NoSQL은데이터베이스개발에새로운트랜드이고일반적으로고정스키마가없이데이터베이스를참조한다. 이러한데이터베이스들은보통트랜잭션에는취약하지만액세스가빠르며관계형데이터베이스에비해확장성이좋다. MongoDB는문서기반 (document-based) 데이터베이스에속한다. MongoDB 는여러개의 collection 들로이루어진각각의데이터베이스들의집합으 로구성된다. MongoDB 는역동적스키마 (dynamic schema) 를통해동작하기때문 에각각의 collection 들은서로다른종류의객체들을담을수있다. 모든객체 (document 라고불리는 ) 들은 JSON 구조 (key value pair) 로표현된다. value 들은 3 가지타입으로정의된다.(a primitive value, an array of documents or again a list of key-value-pairs (document).
각각의객체들에쿼리를하기위해서클라이언트는 key value 쌍의목록으로표현된컬렉션에필터를설정할수있다. 심지어중첩된필드들에쿼리를하는것도가능하다. 물론쿼리는 JSON구조이다. 따라서복잡한쿼리는관계형데이터베이스의동일한쿼리문에비해훨씬더많은공간을차지할것이다. i 외부라이브러리 - ActionBarSherlock - Sherlock Navigation Drawer - DragSort ListView
3.2 개발환경 - 시스템 : 마이크로소프트윈도우환경 - Client 개발환경 : Android SDK with Eclipse - Server 개발환경 : Node.js with Linux 4. 현재진행상황 출발도착알림서비스를제외한기본버스 App 의기능적부분은개 발완료하였으며 UI 부분에추가적으로완성하고있습니다. 5. 추가계발계획 출발지부터도착지에대한경로탐색을통한결과를도출해내는부분을개발할계획입니다. 또한사용자가등록한출발지와도착지, 도착지에도착해야하는시간을입력하여사용자가타야할버스에대한알림서비스를제공하는부분을추가적으로개발할계획입니다.
6. 프로젝트진행사항및앞으로의개발계획 작업 7 7 7 7 8 8 8 8 8 9 9 9 9 10 10 10 10 10 11 /1 /2 /3 /4 /1 /2 /3 /4 /5 /1 /2 /3 /4 /1 /2 /3 /4 /5 /1 요구사항 분석 데이터흐 름분석 설계검 증 개발환경 구축 코드설 계 알고리즘 모듈및 설계 모듈및 프로세스 구현 Testing 최종테 스트 문서작 성