韓國 IT 서비스學會誌第 12 卷第 2 號 2013 年 6 月, pp.349-359 http://dx.doi.org/10.9716/kits.2013.12.2.349 자바환경에서효과적인안드로이드서비스의외부협업을위한원격서비스호출프레임워크 최재현 * 박제원 ** A Framework for Remote Service Invocation of Android Services to Communicate with External Services in Java Environment Jaehyun Choi* Jeawon Park** Abstract Recently, smart phones have been widely used in the world. Android phones especially provide existing mobile phone features as well as capability of running enterprise applications and web applications by using services. However, such a linkage has limitations to use Android phones as client devices, there is difficulties in providing services by utilizing characteristics of Android. To solve this problem, we need to invoke services by each other. Currently, the Android platform currently supports inter-process communication IPC. However, there is a limitation that Android services just can invoke remote calls. In this paper, we propose a framework to invoke Android services in java environments. For doing this, we propose methods to make services public and to invoke services in using remote calls and communication methods between java environments and Android. Keyword:Android, Java, Framework, Service, Remote Service Invocation 논문투고일 :2013 년 04 월 25 일논문수정완료일 :2013 년 05 월 30 일논문게재확정일 :2013 년 06 월 05 일 * 숭실대학교 SW 특성화대학원교수 ** 숭실대학교 SW 특성화대학원교수, 교신저자
350 최재현 박제원 1. 서론 최근휴대전화이용자들은음성전화와 SMS 기능이핵심인일반휴대전화보다멀티미디어 ( 음악, 영화, 게임 ), 인터넷, 디지털카메라등의다양한기능과콘텐츠를이용할수있는작은휴대형컴퓨터인스마트폰을선호하고있다. 이러한스마트폰은이용자의편의성과선호하는콘텐츠에따라여러모바일플랫폼이사용되고있는데. 특히모바일플랫폼중하나인안드로이드플랫폼은오픈플랫폼으로여러단말기제조업체에서다양한제품을출시하고있어시장점유율이급격히증가하고있다 [1, 2]. 이에안드로이드플랫폼을중심으로다양한사용자데이터를활용하는많은어플리케이션이제작되고있으며, 안드로이드플랫폼에대한다양한기술개발및연구들이진행되고있다. 본연구는이러한연구의일환으로안드로이드플랫폼과웹애플리케이션서버로대표되는외부자바환경과의협업을위한효율적인메커니즘을제시하고자한다. 안드로이드플랫폼은내부적으로는인텐트 (intent), 그리고컨텐트프로바이더 (content provider), 클립보드와같은메커니즘을제공하여다른서비스들과협업할수있도록지원하고있는반면다양한외부서비스들과의효율적인연동을위한메커니즘을제공하지않고있다 [3-5]. 이것은안드로이드플랫폼을중심으로사용자데이터를활용하여보다다양한서비스를개발하는데있어다소한계점으로지적된다 [6]. 기존자바환경에서원격데이터전송및연계를위한기술로는 RMI(Remote Method Invocation)[7] CORBA[8], 웹서비스 [9] 가있지만, 안드로이드환경에서는이들기술을직접적으로적용하는것은불가능하다 [10]. RMI 경우자바라이브러리를준수하고있는안드로이드환경에서잠재적으로는활용가능하지만, 역시라이브러리가지원하지않아사용하기불가능하다고할수있다. 따라서본논문에서는자바환경에서안드로이드플랫폼의서비스를효율적으로외부서비스와협 력가능하도록하는안드로이드원격서비스호출 (RSIA:Remote Service Invocation for Android) 프레임워크를제시한다. 이것은자바라이브러리를기반으로하고있는안드로이드플랫폼상의서비스를속성설정을통해외부에공개하고, 외부에서는이러한객체에대한원격레퍼런스를통해서비스를호출가능하도록지원한다. 따라서제안된프레임워크를활용할경우, 안드로이드플랫폼을중심으로한보다다양한서비스의개발및활용이가능할것으로판단된다. 2. 관련연구 자바라이브러리를기반으로하는안드로이드플랫폼은프로세스간의통신을위한안드로이드 IPC(Inter Process Communication) 를지원한다. 안드로이드 IPC는 AIDL(Android Interface Definition Language)[11, 12] 을정의하고이를 AIDL 도구를통해생성된스텁클래스를이용하여프로세스간의서비스를원격호출한다. 이와같은방법은안드로이드의 DVM(Dalvick Virtual Machine) [13] 상에서구동중인프로세스간의통신만지원하며, 자바플랫폼의 JVM(Java Virtual Machine) 간의서비스원격호출은지원하지않는다. RMI(Remote Method Invocation)[7] 는자바플랫폼의 JVM 간의서비스원격호출로객체를네트워크를통해전달하기위해직렬화 (Serialization) 를이용한방식이다. RMI는스텁 / 스켈레톤레이어, 리모트레퍼런스레이어, 트랜스포트레이어로구성되며각레이어의경계는특별한인터페이스와프로토콜에의해정의된다. 또한각레이어는독립적이기때문에다른레이어에영향을주지않고한레이어의성질을바꿀수있다. 이와같이 RMI 방식은 JDK(Java Development Kit) 만있다면별도의미들웨어없이분산객체기능을구현할수있는장점이있지만, 서버와클라이언트모두 JVM 환경에서구동된다는한계가있다. 그러나안
자바환경에서효과적인안드로이드서비스의외부협업을위한원격서비스호출프레임워크 351 드로이드런타임에포함된코어라이브러리는자바라이브러리의대부분기능을제공하지만 RMI 를지원하지않아안드로이드에서는 RMI를활용하지못한다. CORBA[8] 는미국 OMG(Object Management Group) 에서정의한것으로응용프로그램객체간의메서드호출을표준화하기위한기술이다. COR BA는 IDL(Interface Definition Language) 를사용하여 C++/Java, Ada, Python, Ruby 등다양한프로그램언어로제작된응용프로그램의메서드를외부에노출하고, 사용할수있도록하지만, 현재안드로이드플랫폼을지원하지는않는다. 웹서비스 [9] 는서로다른컴퓨팅환경에서애플리케이션들이메시지를주고받을수있도록하는기술로서, SOAP(Simple Object Access Protocol), WSDL(Web Service Description Language), UDDI (Universal Description, Discovery, and Integration) 을기반으로구성된다. 웹서비스를활용하여안드로이드서비스를외부에노출하고자하는경우별도의웹서비스실현을위한엔진을안드로이드플랫폼상에서구동하여야하며, 내부적으로 XML 언어로표현되는 SOAP 메시지를사용하기때문에메시지의파싱및처리로인한부하증가로안드로이드환경에서적절한응답성및처리시간을보장하기에는다소어려운점이있다. 따라서본논문에서는안드로이드플랫폼상의서비스를효과적으로외부에공개하고, 사용자데이터수집을통해실제적인비즈니스로직을구현하는외부의자비환경에서효과적으로이를호출및사용할수있도록하는프레임워크를제시한다. 3. 안드로이드원격서비스호출프레임워크 3.1 안드로이드원격서비스호출프레임워크아키텍처 본장에서는안드로이드서비스를자바환경에공 개하고, 이를자바환경에서원격호출하여, 안드로이드서비스와자바환경서비스간효율적인연동을지원하는안드로이드원격서비스호출프레임워크아키텍처를기술한다. [ 그림 1] 안드로이드원격서비스호출프레임워크서버아키텍처 [ 그림 1] 은안드로이드원격서비스호출프레임워크서버아키텍처를표현하고있다. 서버는안드로이드플랫폼의 DVM을기반으로크게 3가지의 Manager 로구성된다. 먼저, RemoteServiceAcitivtyManager 는안드로이드서비스에대한공개및서비스정보를관리하고, RemoteServiceManager는안드로이드서비스를원격호출가능한서비스로변환하는동시에관리하며, NetworkManager는자바환경과통신을위한네트워크를관리하는역할을한다. RemoteServiceActivityManager는안드로이드서비스를자바환경에공개하고, 공개된서비스에대한정보를관리하는역할을담당하는 Remote Service Adapter, 이러한 RemoteServiceAdapter 를통해공개된안드로이드서비스를안드로이드디바이스를통해모니터할수있도록지원해주는액티비티인 RemoteServiceActivity로구성된다. RemoteServiceManager는자바환경의서비스원격호출에대한요청을수신하여요청한서비스정보를 RemoteServiceFactory에게전송하는역할
352 최재현 박제원 을담당하는 RemoteCallReceiver, 요청된서비스를원격서비스로변환하는역할을담당하는 Remo teservice Factory, 변환된원격서비스를관리하고, 요청에대한원격서비스를반환하는역할을담당하는 Remote ServiceInfo로구성된다 NetworkManager는안드로이드플랫폼과자바환경간의네트워크통신을위한네트워크정보를관리하고, 이를 NetworkChannel로반환하는역할을담당하는 NetworkInfoProxy, 자바환경의안드로이드서비스원격호출에대한요청과서버의응답에대한실질적인통신 (TCP/IP) 을수행하는역할을하는 NetworkChannel, 안드로이드단말기의네트워크연결상태를체크하여예외상황을관리하는역할을담당하는 NetworkMonitor로구성된다. 안드로이드원격서비스호출프레임워크클라이언트아키텍처는자바플랫폼의 JVM을기반으로공개된안드로이드서비스를원격호출할수있는 RemoteServiceCallManager와실제사용자어플리케이션또는서비스로구성된다. [ 그림 2] 는이러한클라이언트아키텍처를나타내고있다. 및관리를담당하는 RemoteServiceStubFactory, 스텁객체를통해안드로이드서비스를호출하고결과값을전달받는역할을담당하는 RemoteServi ceinvocation, 공개된안드로이드서비스를원격호출하기위해안드로이드플랫폼과통신하는 TCP/ IP를관리하는 NetworkChannel로구성된다. 서버와클라이언트는 TCP/IP를기반으로하는소켓통신을하는데, 서비스관점에서서버는안드로이드환경인반면, 소켓통신의관점에서서버는자바환경즉현재아키텍처의클라이언트환경이된다. 이것은안드로이드단말에서네트워크의상황이변화함에따라발생할수있는네트워크단절상태를지속적으로자바환경에서모니터링할수없기때문이다. 따라서안드로이드환경에서지속적으로자바환경과의 TCP/IP 연결을시도하고유지하도록하여네트워크변화에따른유동적인상황에서도안드로이드서비스의원격호출을가능하도록한다. 3.2 안드로이드원격서비스호출프레임워크의동작메커니즘 [ 그림 3] 은안드로이드서비스의원격호출프레임워크를통해안드로이드서비스를자바환경에서원격호출하는동작메커니즘을나타내고있다. [ 그림 2] 안드로이드원격서비스호출프레임워크클라이언트아키텍처 RemoteServiceCallManager는자바환경의서비스와안드로이드서비스간의통신을위한스텁객체인 RemoteServiceStub, 스텁객체에대한생성 [ 그림 3] 안드로이드원격서비스호출프레임워크의동작메커니즘 서버는 DVM 기반으로구동이되는안드로이드
자바환경에서효과적인안드로이드서비스의외부협업을위한원격서비스호출프레임워크 353 환경이며, 클라이언트는 JVM 기반으로구동되는자바환경이다. 자바환경에서안드로이드서비스원격호출요청이발생하면, RemoteServiceCallMa nager의 NetworkChannel을통해서버의 Network Manager 로요청한서비스에대한정보를전송한다. 서버의 NetworkManager는전송받은요청서비스정보를다시 RemoteServiceManager로전송한다. 이때, 서버의 NetworkManager는지속적으로안드로이드디바이스의네트워크상태를체크하여예외가발생하면서버와클라이언트에게예외상황에대한메시지를전송한다. RemoteServiceMana ger는공개된안드로이드서비스정보를관리하는 RemoteService ActivityManager 를통해전송받은서비스정보와동일한서비스를검색하여호출한다. 호출결과는다시 RemoteServiceManager에서 NetworkManager로전달되고, NetworkManager 는이를클라이언트의 RemoteServiceCallManager 로전송함으로써, 안드로이드서비스의원격호출은종료된다. 호출과정에서객체및관련정보의마샬링은자바의객체직렬화 (Serialization) 를기반으로이루어진다. 다. 만약서비스명이중복된다면서비스명을변경하거나다시생성하는절차를반복수행하고, 서비스명이중복되지않는다면생성된서비스의인터페이스를기반으로 RemoteServicceAdapter에저장하고, 이를 RemoteServiceActivity를통해등록함으로써안드로이드서비스가공개되며, 공개된서비스목록은자바환경에서 RemoteServiceStub Factory 를통해가져올수있다. 또한, 안드로이드단말기를통해서도확인할수있다. 3.3 안드로이드원격서비스호출프레임워크의구동절차안드로이드원격서비스호출프레임워크의구동절차에서는공개하고자하는안드로이드서비스를등록하고, 등록된서비스를관리하는액티비티를활성화하여서버를구동하고, 클라이언트는공개된안드로이드서비스의 RemoteServiceStub을생성및호출하는절차를기술한다. 3.3.1 안드로이드서비스공개절차 [ 그림 4] 는안드로이드서비스공개절차를액티비티다이어그램으로나타내고있다. 서비스공개절차는공개하고자하는안드로이드서비스를생성하고, 생성된서비스를기존에공개된안드로이드서비스와서비스명이중복이되는지검사를한 [ 그림 4] 안드로이드서비스공개절차 3.3.2 안드로이드원격서비스호출프레임워크서버구동절차 [ 그림 5] 는안드로이드원격서비스호출프레임워크의구동절차를액티비티다이어그램으로나타내고있다. 구동절차는우선공개된안드로이드서비스에대한정보를관리하는 RemoteServiceAda pter를생성하고, 이를통해공개된안드로이드서비스목록을안드로이드단말기에서모니터링하기위해 RemoteServiceActivity를생성한다. 그리고클라이언트의서비스원격호출요청을수신하기위한 NetworkChannel을생성하고, 마지막으로 MainActivity를활성화함으로써프레임워크가구동된다.
354 최재현 박제원 비스목록을가져온다. 그리고호출하고자하는서비스의이름을이용하여검색하고, 검색된서비스의 RemoteServiceStub 인스턴스를생성한다. 그리고마지막으로생성된인스턴스를통해 Remote Method 를생성하고, RemoteMethod의 invoke() 를호출함으로써안드로이드서비스를원격호출하게된다. 4. 안드로이드원격서비스호출프레임워크사례연구 [ 그림 5] 안드로이드원격서비스호출프레임워크서버구동절차 3.3.3 안드로이드원격서비스호출프레임워크클라이언트구동절차 [ 그림 6] 은공개된안드로이드서비스를클라이언트에서원격호출하는절차를나타내고있다. 호출절차는우선서버와의연결및호출을담당하는 RemoteServiceStubFactory를생성하고, getpublic Services 메소드를호출하여공개된안드로이드서 안드로이드원격서비스호출프레임워크에대한사례연구로써공개된안드로이드서비스를통해사용자의위치정보를얻고이를웹페이지에서지도로표시하여사용자위치를추적할수있는시스템을구현하였다. 이것은현재아동및노인미아방지등을위해가장많이구현되고있는시스템의예로, 현재는안드로이드클라이언트에서주기적으로응용서비스서버에정보를전달함으로써위치를추적하도록구현되고있어사용자가요청한시간과실제사용자의위치에오차가발생하게된다. 그러나본논문에서제시하고있는안드로이드원격서비스호출프레임워크를사용할경우, 사용자가원하는시간에대상의위치를정확하게추적할수있으므로, 위치추적의정확성을향상시킬수있다. 4.1 구현환경 [ 그림 6] 클라이언트의서비스원격호출절차 안드로이드원격서비스호출프레임워크를검증하기위한구현환경은크게두가지로구성된다. 서비스를제공하기위한서버환경과서비스를사용하기위한클라이언트환경이다. 서비스제공환경인서버의디바이스는 Samsung SHV-E160K, O/S는안드로이드 2.3을사용하였다. 또한, 서비스환경은안드로이드디바이스에탑재되어있는 GPS, 네트워크환경은 WiFi 통신을사용하였다.
자바환경에서효과적인안드로이드서비스의외부협업을위한원격서비스호출프레임워크 355 구분 < 표 1> 서버실험환경 사양 Device Samsung SHV-E160K O/S Android 2.3 네트워크환경 WiFi 통신 서비스개발환경 Android SDK(ADT Bundle) 서비스환경 GPS 를이용한실험으로실외환경을대상으로함 서비스사용환경인클라이언트는 PC(Intel Core i5-760 2.80GHz/4GB), O/S는 Windows 7 Enterprise K(32bit) 를사용하였다. 또한자바환경은 JDK 6을사용하였으며, Apache Tomcat 7.0.39를기반으로응용서비스를구현하였다. 구분 < 표 2> 클라이언트실험환경 사양 PC Intel Core i5-760 2.80GHz/7GB) O/S Windows 7 Enterprise K(32bit) JDK JDK(Java Development Kit) 6.0 응용서비스환경 Apache Tomcat 7.0.39 크를이용한위치추적서비스의클래스다이어그램을나타내고있다. 클라이언트인자바어플리케이션의 LocationMonitor 클래스에서서버의 Loca tionmanager 인터페이스와 AndroidRemoteService 인터페이스를통해실제구현클래스를원격호출하게된다. 4.3 위치추적서비스의공개및설정 [ 그림 8] 은위치추적서비스의공개및설정코드를나타낸것이다. 안드로이드서비스 LocationMa nager와 AndroidRemoteService를생성하고, 기존에공개된서비스와중복여부를검사하여중복되지않은서비스를 RemoteServiceAdapter에등록함으로써서비스가공개된다. 그리고 RemoteService ListActivity 에 RemoteServiceAdapter를등록하여공개된서비스목록을안드로이드디바이스를통해모니터링할수있도록설정하였다. 4.2 응용서비스설계 [ 그림 7] 은안드로이드원격서비스호출프레임워 [ 그림 8] 위치추적서비스의공개및설정코드 4.4 위치추적서비스의원격호출 [ 그림 7] 위치추적응용서비스의클래스다이어그램 [ 그림 9] 는클라이언트자바환경에서안드로이드서비스 LocationManager를찾아원격호출을초기화하는코드를나타낸것이다. 우선안드로이드와통신을위해디바이스 ID를 RemoteServiceFactory 에전달하여초기화하고, 생성된 RemoteService Factory 의 getpublicservices() 메서드를호출하여공개된위치추적서비스를가져온다. 이때사용되는디바이스 ID는 MAC 주소를사용하였다.
356 최재현 박제원 < 그림 9> 클라이언트자바환경에서의위치추적서비스초기화 [ 그림 10] 은실제위치추적서비스를통해서비스를호출하는과정을보여준다. 먼저, 위치추적서비스의 RemoteServiceStub을통해 RemoteMethod 객체를생성한다. 이때 getmethod() 메소드의인자로원격서비스의메소드명이들어간다. 마지막으로생성된 RemoteMethod 객체의 invoke() 메서드를호출함으로써공개된안드로이드서비스를원격호출하게된다. invoke() 메서드는자바리플렉션 (Java Reflection) 기술을활용하여객체메서드호출을대신처리하며, 매개변수같은경우, 자바의객체직렬화기술을이용하여전달및복원한다. [ 그림 11] 안드로이드디바이스의서비스목록화면 [ 그림 12] 는위치추적서비스의클라이언트의사용자서비스화면을나타낸것이다. [ 그림 12] 위치추적응용서비스실행화면 [ 그림 10] 위치추적서비스의원격호출 [ 그림 11] 은안드로이드디바이스의 Remote Ser viceactivity의실행을통해공개된안드로이드서비스목록을보여주는화면이다. 화면에나타나있는정보에따라안드로이드서비스정보를조회하기위한 AndroidRemoteService 와위치추적서비스를위한 LocationManager 서비스가등록되어있다. 이것은자바를기반으로하는 JSP(Java Servlet Page) 에서공개된안드로이드서비스의 Location Manager 를원격호출하고, 호출된서비스로부터얻은 GPS 정보 ( 위도, 경도 ) 를지도에표시함으로써디바이스의위치정보를나타내고있다. 즉, 자바환경에서안드로이드디바이스의기능을호출하여사용자정보를얻어내고그정보를활용하여적절한서비스를제공할수있음을확인할수있다.
자바환경에서효과적인안드로이드서비스의외부협업을위한원격서비스호출프레임워크 357 4.5 안드로이드원격서비스호출프레임워크에대한평가 기존의서비스원격호출기법들은각각의환경에서안드로이드서비스를호출할수있는방법을지원하지않는다. 안드로이드 IPC는안드로이드내에서두개의프로세스가통신을하기위한기법이며, RMI는자바플랫폼간의서비스원격호출만을지원하는기법이다. 그리고 CORBA의경우안드로이드플랫폼을지원하지않으며, 웹서비스또한구현을위한복잡성때문에안드로이드환경에적용하는것은사실상불가능하다. 이에본논문에서는안드로이드원격서비스호출프레임워크를제시하여, 외부자바환경에서자유롭게안드로이드서비스를호출및연동할수있게하였다. < 표 3> 은제안된프레임워크와타기술에비교평가결과이다. 사용편의성의경우, IPC, RMI와제안된프레임워크의경우, 안드로이드또는자바환경만을고려하고있기때문에, 높은반면 CORBA와 Web Service 는다양한언어를표준적인방법으로기술하고통합하고있기때문에낮다고할수있다. < 표 3> 제안된프레임워크와타기술비교 구분 IPC RMI CORBA Web Service RSIA 외부연계 불가 가능 가능 가능 가능 사용편의성 높음 높음 낮음 낮음 높음 메시지형태 - 바이트 바이트 XML 바이트 Android 지원가능 불가 불가 불가 가능 Java 지원 - 가능 가능 가능 가능 타언어지원 - 불가 가능 가능 불가 이것은외부자바서비스들과안드로이드서비스들과의실질적인연계를가능하게하여다양한응용서비스들을개발할수있도록할수있으며, 기존의안드로이드디바이스와서버간의정보지연현상도극복할수있다. 예를들어, 사례연구에서제시한위치추적서비스의경우, 사용자위치추적 을위해서안드로이드단말에서주기적으로서버로사용자의위치정보를전송하는경우, 특정시간에서의사용자위치는최대주기시간만큼의시간적오차가발생한다. 그러나안드로이드원격서비스호출프레임워크를사용할경우, 사용자의위치를추적이이루어진시점의사용자위치를최대한정확하게파악할수있다. < 표 4> 는 5분간격의주기적인데이터수집방법으로사용자위치를추적한경우와, 제안한프레임워크를사용하여위치를추적한경우의데이터값을보여주고있다. 추적시간 13:30 13:33 13:41 13:45 13:50 13:53 < 표 4> 제안된프레임워크와타기술비교 실제위치 주기적데이터수집 RSIA 기반데이터수집 위도경도위도경도위도경도 494622 494624 494720 37 494865 495005 494986 956152 955894 955755 955647 955599 955701 494622 494622 494700 37 494865 495005 495005 956152 956152 955855 955647 955599 955599 494622 494624 494720 37 494865 495005 494986 956152 955894 955755 955647 955599 955701 즉, 논문에서제안한프레임워크는안드로이드디바이스상의정보또는서비스를필요한시간에사용할수있도록하여응용서비스개발에획기적인도구로활용될수있다. 제안한프레임워크에서원격호출을위해서비스정보가교환되는데이것은단순히서비스의시그니처를교환하는것에불가하고, 이러한시그니처는인터페이스명세로이루어지기때문에실제크기는 1k 바이트미만이다. 이크기의정보를교환하는데소요되는시간은 1Mbps 네트워크속도기준으로약 0.007초에불가하므로충분히수용가능한범위내에서서비스정보가교환된다고할수있다.
358 최재현 박제원 5. 결론 본논문에서는안드로이드서비스와자바환경서비스간의효율적인연동을지원하기위해안드로이드원격서비스호출프레임워크를제안하였다. 제안한프레임워크는자바환경에서제공되는다양한서비스와안드로이드서비스를보다효과적으로연동하기위한프레임워크로, 기존의자바환경에서안드로이드서비스를호출하여연동할수없는문제점들을개선한것이다. 즉, 안드로이드서비스를자바환경에공개하고, 이를자바환경에서원격호출하여, 안드로이드플랫폼의특성을활용한서비스와효과적인응용서비스개발이가능하도록하였다. 따라서제안된프레임워크를실무에서활용할경우, 자바환경서비스와안드로이드서비스간의유기적인협업및연동이가능하기때문에자바환경서비스에서제공하는데한계가있었던 LBS(Location Based Services), 증강현실서비스등을안드로이드디바이스의 GPS, 지자기, 자이로, 가속도, 근접센서, 카메라등을활용하여다양한형태의응용서비스를제공할수있다. 뿐만아니라이러한응용서비스는사용자컨텍스트중심의유비쿼터스서비스환경을구성하는데크게기여할수있을것으로판단된다. 그러나안드로이드환경과협업및연동가능한환경이자바환경으로제한되어있고, 협업과정에서의보안정책이나메커니즘을완벽하게다루지못한점이한계점으로지적된다. 이에향후연구를통하여안드로이드서비스의보다간편한호출방법과자바환경뿐만아니라 ios와안드로이드간의서비스연동에방법및통신채널의보안문제에대한연구를진행할것이다. 참고문헌 [1] 정보통신산업진흥원, 소프트웨어산업연간보고서, 정보통신산업진흥원, 2011. [2] 이양환, 모바일애플리케이션비즈니스현황과전망, KOCCA 포커스, 2011-20호, 한국문화콘텐츠진흥원, 2011. [3] Rogers, R. et al., Android application development:programming with the Google SDK, O Reilly Media, Inc., 2009. [4] Meier, Reto. Professional Android 4 application development, Wrox, 2012. [5] Chin, E. et al., Analyzing inter-application communication in Android, Proceedings of the 9th international conference on Mobile systems, applications, and services, ACM, 2011. [6] Konig-Ries, B. and F. Jena, Challenges in Mobile Application Development, it-information Technology, Vol.52, No.2(2009), pp. 69-71. [7] Sun Microsystem Javasoft Java RMI Team, Java Remote Method Invocation, Specification, 1997. [8] Vinoski, S., CORBA:Integrating diverse applications within distributed heterogeneous environments, Communications Magazine, IEEE, Vol.35, No.2(1997), pp.46-55. [9] McGovern, J. et al., Java web services architecture, Morgan Kaufmann, 2003. [10] Gray, N. A. B., Comparison of Web Services, Java-RMI, and CORBA service implementations, The Fifth Australasian Workshop on Software and System Architectures (AWSA), 2004. [11] Brahler, S., Analysis of the Android Architecture, Karlsruhe institute for technology 2010. [12] Developer, A., Android Interface Definition Language (AIDL), 2012. [13] Ehringer, D., The dalvik virtual machine architecture, Techn. report, 2010.
자바환경에서효과적인안드로이드서비스의외부협업을위한원격서비스호출프레임워크 359 저자소개 최재현 (jaehyun@ssu.ac.kr) 숭실대학교컴퓨터학부를졸업하고, 숭실대학교일반대학원컴퓨터학과에서공학석사및공학박사를취득하였다. 현재숭실대학교소프트웨어특성화대학원교수로재직하고있으며, ( 사 ) 한국 IT 정책경영학회학술위원으로활동하고있다. 관심분야는 SW 공학, SW 프레임워크, 웹공학, 서비스엔지니어링, 클라우드, 데이터마이닝등이다. 박제원 (jwpark@ssu.ac.kr) 숭실대학교대학원컴퓨터학과에서공학석사 (MS) 를취득하였으며, 동대학원컴퓨터학과에서공학박사 (Ph.D.) 를취득하였다. 숭실대학교 IT 정책경영학과에서겸임교수로근무하였으며, 현재는숭실대학교소프트웨어특성화대학원에서교수로근무하고있다. 연구관심분야는소프트웨어테스팅, 소프트웨어프로세스, 웹서비스, SOA/ESB, 프로젝트관리, 모바일 SW 시스템공학등이다.