KR20080022934A - Application framework system for distribution and migration of application - Google Patents
Application framework system for distribution and migration of application Download PDFInfo
- Publication number
- KR20080022934A KR20080022934A KR1020060086794A KR20060086794A KR20080022934A KR 20080022934 A KR20080022934 A KR 20080022934A KR 1020060086794 A KR1020060086794 A KR 1020060086794A KR 20060086794 A KR20060086794 A KR 20060086794A KR 20080022934 A KR20080022934 A KR 20080022934A
- Authority
- KR
- South Korea
- Prior art keywords
- application
- manager
- view
- mvc
- controller
- Prior art date
Links
- 238000013508 migration Methods 0.000 title claims abstract description 34
- 230000005012 migration Effects 0.000 title claims abstract description 34
- 238000012546 transfer Methods 0.000 claims abstract description 13
- 238000007726 management method Methods 0.000 claims description 30
- 238000000034 method Methods 0.000 claims description 13
- 239000011230 binding agent Substances 0.000 claims description 5
- 230000005540 biological transmission Effects 0.000 claims description 3
- 238000013500 data storage Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 8
- PFFIDZXUXFLSSR-UHFFFAOYSA-N 1-methyl-N-[2-(4-methylpentan-2-yl)-3-thienyl]-3-(trifluoromethyl)pyrazole-4-carboxamide Chemical compound S1C=CC(NC(=O)C=2C(=NN(C)C=2)C(F)(F)F)=C1C(C)CC(C)C PFFIDZXUXFLSSR-UHFFFAOYSA-N 0.000 description 3
- KRQUFUKTQHISJB-YYADALCUSA-N 2-[(E)-N-[2-(4-chlorophenoxy)propoxy]-C-propylcarbonimidoyl]-3-hydroxy-5-(thian-3-yl)cyclohex-2-en-1-one Chemical compound CCC\C(=N/OCC(C)OC1=CC=C(Cl)C=C1)C1=C(O)CC(CC1=O)C1CCCSC1 KRQUFUKTQHISJB-YYADALCUSA-N 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/10—Services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Tourism & Hospitality (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Primary Health Care (AREA)
- Marketing (AREA)
- Human Resources & Organizations (AREA)
- Economics (AREA)
- Health & Medical Sciences (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Stored Programmes (AREA)
Abstract
Description
도 1은 본 발명에 따른 유비쿼터스 환경에서 애플리케이션의 분산 및 이동성을 위한 애플리케이션 프레임워크 시스템의 구성을 나타내는 블록도. 1 is a block diagram showing the configuration of an application framework system for the distribution and mobility of applications in the ubiquitous environment according to the present invention.
도 2는 유비쿼터스 환경에서 애플리케이션의 분산 및 이동성을 위한 애플리케이션 프레임워크의 구성을 나타내는 블록도. Figure 2 is a block diagram showing the configuration of an application framework for the distribution and mobility of applications in a ubiquitous environment.
도 3은 애플리케이션의 뷰와 콘트롤러간의 데이터 전달에 관한 시퀀스 다이어그램. 3 is a sequence diagram for passing data between a view of an application and a controller.
도 4는 뷰가 마이그레이션되는 시퀀스 다이어그램. 4 is a sequence diagram in which views are migrated.
본 발명은 유비쿼터스 기술에 관한 것으로서, 보다 상세하게는 유비쿼터스 환경에서 애플리케이션의 분산 및 이동성을 위한 애플리케이션 프레임워크 시스템에 관한 것이다. The present invention relates to ubiquitous technology, and more particularly, to an application framework system for the distribution and mobility of applications in a ubiquitous environment.
전통적인 컴퓨팅 환경은 사용자가 특정한 컴퓨팅 장치가 있는 공간 앞에서 그 장치를 직접 사용하는 정적인 환경이다. 유비쿼터스 환경은 사용자가 컴퓨팅 장치를 인지하지 않아도 인접한 공간에 존재하는 모든 컴퓨팅 장치들이 사용자의 편의와 업무를 돕기 위해 서로 협동하는 동적이고 지능적인 환경이다. Traditional computing environments are static environments in which a user directly uses a device in front of a particular computing device. The ubiquitous environment is a dynamic and intelligent environment in which all computing devices in adjacent spaces cooperate with each other to help the user's convenience and work even if the user does not recognize the computing device.
물리적인 공간과 전자적인 공간의 결합으로 생성되는 유비쿼터스 공간은 다양한 기종의 장치들과 다양한 플랫폼 상의 애플리케이션과 서비스들이 실시간으로 협업하게 된다. 이러한 환경 하에 존재하는 서비스들은 다양하게 혼재할 뿐만 아니라 서비스를 받는 대상에 따라 정보 제공방법 등이 실행시간에 결정되고 변경되어야 한다. The ubiquitous space, which is created by combining physical and electronic space, enables real-time collaboration of various devices and applications and services on various platforms. The services existing under such environment are not only mixed in various ways, but the information provision method must be determined and changed at runtime according to the target of the service.
이러한 유비쿼터스 환경은 애플리케이션이 실행될 수 있는 환경의 다양화를 초래하며, 이는 기존의 특정 환경에 종속되어 정적으로 개발되던 애플리케이션 개발방법의 변화를 요구한다. 그러나, 애플리케이션 개발자들에게는 애플리케이션을 개발하는 시점에서 자신이 작성하는 애플리케이션이 어느 환경에서 실행될 것인지를 예측하기 힘들며, 이것을 예측한다고 하더라도 각 환경마다 다른 버전의 애플리케이션을 개발해야 하므로 개발 어려움을 겪게 된다. This ubiquitous environment leads to the diversification of the environment in which an application can be executed, which requires a change in the method of developing an application that is statically developed depending on a specific existing environment. However, it is difficult for application developers to predict in which environment the application they write will run at the time of developing the application, and even if it is predicted, it is difficult to develop a different version of the application for each environment.
유비쿼터스 공간 내에서는 사용자를 위한 서비스의 선택과 상황인지 등의 추론도 중요한 요소지만 사용자와의 접점, 즉, 직접적으로 보고 듣고 느낄 수 있는 사용자와의 상호작용 또한 중요한 부분이다. 시스템의 복잡성과 환경의 다양성으로 애플리케이션 개발의 어려움으로 인해 서비스 제공을 하지 못한다면 유비쿼터스 환경을 구축하는데 큰 장애요소가 될 것이다. 따라서 최근에는 유비쿼터스 컴퓨팅 환경을 위한 애플리케이션 프레임워크에 대한 연구가 활발히 진행되고 있으며, 대표 적으로는 PIMA, Gaia, Aura 등이 있다. Inferencing such as service selection and situation for the user is also an important factor in the ubiquitous space, but the point of contact with the user, that is, the interaction with the user who can directly see, hear and feel is also important. If the service cannot be provided due to the difficulty of application development due to the complexity of the system and the diversity of the environment, it will be a big obstacle in establishing a ubiquitous environment. Recently, researches on application frameworks for ubiquitous computing environments have been actively conducted, and PIMA, Gaia, and Aura are representative.
PIMA(Platform-Independent Model for Application) 프로젝트는 IBM사의 T.J. Watson Research Center에서 진행된 연구로서, 현재의 모바일 컴퓨팅 장치, 애플리케이션 및 물린 환경에 대해 근본적인 변화가 필요하며, 새로운 비전으로 디바이스는 포탈, 애플리케이션은 태스크, 물리 환경은 컴퓨팅 환경으로 고려해야 한다고 제시하였다. 그러나, PIMA에서는 다양한 환경에서 구동되는 애플리케이션의 통합과 프레임워크로서의 기능 정의는 부족한 편이다. The Platform-Independent Model for Application (PIMA) project is based on IBM's T.J. Research from the Watson Research Center suggests that fundamental changes to current mobile computing devices, applications, and bite environments are needed, with new vision that devices should be considered portals, applications as tasks, and physical environments as computing environments. However, PIMA lacks the integration of applications running in various environments and the definition of functionality as a framework.
Gaia는 Illinois 대학교에서 유비쿼터스 애플리케이션을 위한 인프라구조를 개발하는 프로젝트로서, 컴포넌트 기반의 미들웨어 운영체제, 유비쿼터스를 구축하기 위한 애플리케이션 모델, 및 컴포넌트 기반 애플리케이션을 조합하기 위한 스크립트 언어의 3개의 주요 요소에 기초하고 있다. Gaia에서 정의한 애플리케이션 모델은 MVC 모델을 액티브 스페이스 환경에 맞도록 적용하였으나, 액티브 공간들간의 협업과 이 공간을 벗어나 공간을 통합하는 측면에서는 문제점을 가진다. Gaia is a project at Illinois University to develop an infrastructure for ubiquitous applications, based on three main elements: a component-based middleware operating system, an application model for building ubiquitous, and a scripting language for combining component-based applications. . The application model defined by Gaia applies the MVC model to the active space environment, but has problems in terms of collaboration between active spaces and integration of spaces outside of this space.
Aura는 Carnegie Mellon 대학교에서 진행하는 프로젝트로서 유비쿼터스 환경에서 사용자 이동성을 위한 프레임워크로서, 이동 사용자의 프록시(proxy)처럼 동작한다. 그러나, Aura는 유비쿼터스 환경에서 애플리케이션의 효율적인 개발방법에 관한 지원은 부족하다. Aura is a project at Carnegie Mellon University, a framework for user mobility in a ubiquitous environment that acts as a proxy for mobile users. However, Aura lacks support for how to develop applications efficiently in a ubiquitous environment.
본 발명이 이루고자 하는 기술적 과제는 유비쿼터스 환경에서 사용자에게 플랫폼 독립적인 애플리케이션을 지원하고 분산 MVC 모델을 이용하여 컴퓨팅 자원을 공유하고 사용자에게 이동성을 보장하는 유비쿼터스 환경에서 애플리케이션의 분산 및 이동성을 위한 애플리케이션 프레임워크 시스템 을 제공하는데 있다. The technical task of the present invention is to provide a platform-independent application to the user in the ubiquitous environment, to share the computing resources using a distributed MVC model and to ensure the mobility to the user application framework for the distribution and mobility of the application in the ubiquitous environment To provide a system.
상기 기술적 과제를 달성하기 위한 본 발명에 따른 유비쿼터스 환경에서 애플리케이션의 분산 및 이동성을 위한 애플리케이션 프레임워크는, 유비쿼터스 환경에서 모델, 뷰 및 콘트롤러(MVC; Model, View and Controller)로 이루어진 애플리케이션의 분산 및 이동성을 위한 애플리케이션 프레임워크에 있어서, 상기 모델, 뷰 및 콘트롤러를 각각 관리하고, 상기 모델, 뷰 및 콘트롤러를 정의하는 UAML(Ubiquitous Application Mark-up Language: 유비쿼터스 애플리케이션 마크업 언어)을 파싱하고 관리하는 MVC 및 UAML 관리부; 상기 모델, 뷰 및 콘트롤러의 자동 갱신 서비스 및 마이그레이션 서비스를 구동하고 관리하는 서비스 관리부; 상기 애플리케이션의 로딩 실행 및 종료와 관련한 라이프 사이클을 관리하고, 상기 모델, 뷰 및 콘트롤러의 정보들을 유지, 관리하는 런타임 관리부; 상기 모델, 뷰 및 콘트롤러들간의 메시지 및 데이터를 전달하는 이벤트 관리부; 및 상기 애플리케이션에서 발생하는 메시지를 다른 프레임워크 또는 디바이스로 전달하는 네트워크 관리부를 포함한다. Application framework for the distribution and mobility of the application in the ubiquitous environment according to the present invention for achieving the above technical problem, the distribution and mobility of the application consisting of a model, view and controller (MVC) in the ubiquitous environment An application framework for managing the model, views and controllers, and MVC for parsing and managing the Ubiquitous Application Mark-up Language (UAML) defining the models, views and controllers, and UAML management unit; A service manager for driving and managing an automatic update service and a migration service of the model, view and controller; A runtime manager that manages a life cycle related to loading execution and termination of the application and maintains and manages information of the model, view, and controller; An event manager for transmitting messages and data between the models, views, and controllers; And a network manager for delivering a message generated in the application to another framework or device.
상기 MVC 및 UAML 관리부는, 상기 모델을 관리하고, 상기 모델과 관련한 이벤트를 전달하는 모델관리부; 상기 뷰를 관리하고, 상기 뷰와 관련한 이벤트를 전달하는 뷰 관리부; 상기 콘트롤러를 관리하고, 상기 콘트롤러와 관련한 이벤트를 전달하는 콘트롤러 관리부; 및 상기 UAML을 파싱하고 관리하는 UAML 관리부를 포함 한다. The MVC and UAML management unit, the model management unit for managing the model, and delivers events related to the model; A view manager for managing the view and delivering an event related to the view; A controller manager for managing the controller and delivering an event related to the controller; And a UAML management unit for parsing and managing the UAML.
상기 UAML은, 상기 애플리케이션의 목적 및 메타정보 정의, 상기 MVC 구성요소의 정의, 상기 MVC 구성요소의 실행환경 요구사항, MVC 구성요소들간의 데이터 교환을 위한 이벤트의 형식 정의, 상기 애플리케이션의 데이터 저장장소 정의 및 마이그레이션 정책 정의 중 적어도 어느 하나를 포함한다. The UAML defines the purpose and meta information of the application, the definition of the MVC component, execution environment requirements of the MVC component, the format definition of an event for data exchange between MVC components, and a data storage location of the application. It includes at least one of the definition and the migration policy definition.
상기 서비스 관리부는, 상기 애플리케이션의 마이그레이션을 실행하는 마이그레이션 서비스 실행부; 상기 애플리케이션 프레임워크의 자동 갱신을 실행하는 자동 갱신 서비스 실행부; 및 상기 애플리케이션의 실행시 웹서비스와 바인딩하는 런타임 서비스 바인더를 포함한다. The service manager may include a migration service execution unit that executes migration of the application; An automatic update service execution unit executing automatic update of the application framework; And a runtime service binder that binds to the web service when the application is executed.
상기 런타임 관리부는, 현재 실행중인 애플리케이션에 관련한 정보를 유지, 관리하는 런타임 애플리케이션 정보; 및 실행중인 애플리케이션의 MVC 구성요소가 존재하는 위치정보를 유지하는 런타임 라우팅 정보를 포함한다. The runtime management unit may include runtime application information for maintaining and managing information related to an application currently running; And runtime routing information that maintains location information where the MVC component of the running application is present.
상기 이벤트 관리부는, 상기 MVC 구성요소들간의 메시지 전달을 위한 이벤트를 XML 기반의 메시지로 생성하는 메시지 생성부; 및 상기 메시지 생성부에서 생성된 메시지를 상기 MVC 구성요소들에게 전달하는 메시지 전달부를 포함한다. The event manager may include a message generator configured to generate an XML-based message for an event for message transmission between the MVC components; And a message transfer unit configured to transfer the message generated by the message generator to the MVC components.
상기 뷰는, 매크로미디어 플래시(Macromedia Flash)를 사용하는 것이 바람직하다. Preferably, the view uses Macromedia Flash.
상기 기술적 과제를 달성하기 위한 본 발명에 따른 유비쿼터스 환경에서 애플리케이션의 분산 및 이동성을 위한 애플리케이션 프레임워크 시스템은, 유비쿼터스 환경에서 모델, 뷰 및 콘트롤러(MVC; Model, View and Controller)로 이루어진 애플리케이션의 분산 및 이동성을 위한 애플리케이션 프레임워크 시스템에 있어서, 애플리케이션 및 애플리케이션 프레임워크를 포함하는 복수의 디바이스들; 상기 디바이스에게 배포될 애플리케이션을 저장하는 애플리케이션 서버; 및 상기 복수의 디바이스들과 애플리케이션 서버간, 및 상기 복수의 디바이스들간에 메시지 및 데이터를 전달하는 메시지 브로커를 포함하며, 상기 애플리케이션 프레임워크는, 상기 모델, 뷰 및 콘트롤러를 각각 관리하고, 상기 모델, 뷰 및 콘트롤러를 정의하는 UAML(Ubiquitous Application Mark-up Language: 유비쿼터스 애플리케이션 마크업 언어)을 파싱하고 관리하는 MVC 및 UAML 관리부; 상기 모델, 뷰 및 콘트롤러의 자동 갱신 서비스 및 마이그레이션 서비스를 구동하고 관리하는 서비스 관리부; 상기 애플리케이션의 로딩 실행 및 종료와 관련한 라이프 사이클을 관리하고, 상기 모델, 뷰 및 콘트롤러의 정보들을 유지, 관리하는 런타임 관리부; 상기 모델, 뷰 및 콘트롤러들간의 메시지 및 데이터를 전달하는 이벤트 관리부; 및 상기 애플리케이션에서 발생하는 메시지를 다른 프레임워크 또는 디바이스로 전달하는 네트워크 관리부를 포함한다. Application framework system for the distribution and mobility of the application in the ubiquitous environment according to the present invention for achieving the above technical problem, the distribution of the application consisting of the model, view and controller (MVC; Model and View and Controller) in the ubiquitous environment An application framework system for mobility, comprising: a plurality of devices including an application and an application framework; An application server for storing an application to be distributed to the device; And a message broker for transferring messages and data between the plurality of devices and the application server and between the plurality of devices, wherein the application framework manages the model, view and controller, respectively, An MVC and UAML manager that parses and manages a Ubiquitous Application Mark-up Language (UAML) defining views and controllers; A service manager for driving and managing an automatic update service and a migration service of the model, view and controller; A runtime manager that manages a life cycle related to loading execution and termination of the application and maintains and manages information of the model, view, and controller; An event manager for transmitting messages and data between the models, views, and controllers; And a network manager for delivering a message generated in the application to another framework or device.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 첨부 도면에 기재된 내용을 참조하여야만 한다. In order to fully understand the present invention, the operational advantages of the present invention, and the objects achieved by the practice of the present invention, reference should be made to the accompanying drawings which illustrate preferred embodiments of the present invention and the contents described in the accompanying drawings.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로서, 본 발명을 상세히 설명한다. 각 도면에 대하여, 동일한 참조부호는 동일한 부재임을 나타낸다. Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. For each figure, like reference numerals denote like elements.
도 1은 본 발명에 따른 유비쿼터스 환경에서 애플리케이션의 분산 및 이동성을 위한 애플리케이션 프레임워크 시스템의 구성을 블록도로 도시한 것으로서, 애플리케이션 프레임워크 시스템은 복수의 디바이스들(100-1, 100-2, ..., 100-n), 애플리케이션 서버(150) 및 메시지 브로커(180)를 포함한다. 1 is a block diagram illustrating a configuration of an application framework system for distribution and mobility of an application in a ubiquitous environment according to the present invention. The application framework system includes a plurality of devices 100-1, 100-2, .. , 100-n),
디바이스-1(100-1)은 애플리케이션(110) 및 애플리케이션 프레임워크(120)를 포함하며, 애플리케이션(110)은 데이터 객체인 모델(Model)(112),화면에 모델 데이터를 보여주는 뷰(View)(114) 및 연산을 처리하거나 데이터를 변경하는 콘트롤러(Controller)(116)를 포함한다. The device-1 100-1 includes an
본 발명의 실시예에서는, 플랫폼(flatform) 독립적인 뷰를 지원하기 위해 현재 웹뿐만 아니라 다양한 환경에서 사용되고 있는 매크로미디어 플래시(Macromedia Flash)를 채택하였다. 여기서, 플랫폼이란 애플리케이션을 실행할 수 있는 환경을 의미하는 것으로서, OS(Operating System: 운영 체계), 미들웨어, 디바이스 등을 총괄하는 개념이다. In an embodiment of the present invention, to support a platform independent view, Macromedia Flash, which is currently used in various environments as well as the web, is adopted. Here, the platform refers to an environment in which an application can be executed, and is a concept that manages an operating system (OS), middleware, and devices.
플래시를 이용할 경우, 디바이스의 디스플레이 크기를 고려할 필요가 없으며, 개발자는 콘트롤러와 모델의 코딩에 집중할 수 있으며 UI(User Interface) 디자이너는 사용자 인터페이스에만 집중할 수 있어, 명확한 업무 구분이 가능한 장점을 가지고 있다. With Flash, there is no need to consider the display size of the device. Developers can focus on coding controllers and models, and UI (User Interface) designers can focus on the user interface, allowing for clear separation of tasks.
애플리케이션 프레임워크(120)는 애플리케이션을 한번 개발하여 특정 플랫폼에서만 동작하는 것이 아니라 다양한 플랫폼에서 구동가능하게 해주며, 실행중인 애플리케이션이 공간 내에 존재하는 디바이스들간에 이용하여도 실행을 가능하게 해주며, 애플리케이션의 각 구성요소들을 분산시켜 실행할 수 있도록 지원하는 미들웨어 시스템을 말한다. The
애플리케이션 프레임워크(120)는 모바일 장치를 포함한 각종 디바이스의 운영체계 상에 존재한다. 애플리케이션 프레임워크 환경에서 개발된 애플리케이션은 애플리케이션 프레임워크가 존재하는 어떠한 디바이스에서도 구동될 수 있다. The
본 발명에 따른 애플케이션 프레임워크(120)의 분산(distributed) MVC(Model, View and Controller) 모델은 모델(112), 뷰(114) 및 콘트롤러(116)간의 독립성을 보장하여 각각의 구성요소가 독립적으로 개발될 수 있는 환경을 제공한다. 따라서 전문적인 UI 디자이너는 뷰를 개발하고 프로그래머는 콘트롤러 및 모델을 개발하여 애플리케이션의 전문화를 높이면 개발 시간을 단축시킬 수 있는 장점을 가진다. The distributed MVC (Model, View and Controller) model of the
분산 MVC 모델은 유비쿼터스 환경에 배치되어 있는 다양한 디바이스의 컴퓨팅 환경을 고려하여 분리되어 배치될 수 있다. 예를 들어, 애플리케이션이 실행되는 디바이스의 컴퓨팅 자원이 부족한 경우, 주위에서 컴퓨팅 자원이 풍부한 디바이스로 복잡한 연산을 수행하는 콘트롤러를 이동시켜 수행될 수 있다. 또한 애플리케이션은 사용자가 한 공간에서 다른 공간으로 이동하게 되면 가장 적합한 디바이스에 존재하는 애플리케이션 프레임워크로 마이그레이션이 가능하도록 프레임워크간 협동이 이루어진다. The distributed MVC model may be separately disposed in consideration of computing environments of various devices disposed in the ubiquitous environment. For example, when the computing resource of the device on which the application is executed is insufficient, it may be performed by moving a controller that performs a complex operation to a computing resource-rich device around. In addition, applications can collaborate across frameworks so that when a user moves from one space to another, they can migrate to the application frameworks that exist on the most appropriate device.
예를 들어, 사용자가 디바이스-1(100-1)을 사용하다가 다른 디바이스-2(100-2)를 사용하는 경우, 애플리케이션 프레임워크(120)는 애플리케이션(100)의 상태를 다른 디바이스-2(100-2)의 애플리케이션 프레임워크(미도시)로 마이그레이션 서비스를 이용하여 전송한다. 이렇게 함으로써, 사용자가 이동하더라도 애플리케이션은 연속적으로 태스크를 수행할 수 있다. For example, if a user uses device-1 100-1 and then another device-2 100-2, the
애플리케이션 서버(150)는 디바이스(100-1, 100-2, ..., 100-n)의 사용자의 요청에 따라 프로그램에 대한 정보를 제공하고 UAML 및 프로그램 파일을 전송하는 프로그램 관리부(160) 및 애플리케이션을 저장하는 애플리케이션 저장부(170)를 포함한다. The
애플리케이션 프레임워크(120)를 내장한 디바이스(100-1)는 메시지 브로커(180)를 통해 애플리케이션 서버(150)로부터 애플리케이션을 용이하게 다운로딩할 수 있으며, 새로운 버전의 애플리케이션이 개발되어 애플리케이션 서버(150)에 배포되면, 애플리케이션 프레임워크(120)는 애플리케이션을 실행할 때 버전을 체크하여 최신의 애플리케이션을 자동으로 다운로딩하게 되어 갱신 절차가 대폭 간소화된다. The device 100-1 with the
애플리케이션 프레임워크(120)는 사용자에게 필요한 애플리케이션의 검색 및 로드, 애플리케이션의 구성요소들의 분산될 실행, 각 구성요소들의 마이그레이션 정책, 자동 갱신 등을 지원하기 위해 메타 레벨의 애플리케이션을 기술하는 UAML(Ubiquitous Application Mark-up Language: 유비쿼터스 애플리케이션 마크업 언어)을 사용한다.
UAML은 애플리케이션의 목적 및 메타 정보 정의, MVC 구성요소의 정의, MVC 구성요소의 실행환경 요구사항(예를 들어, 장치 성능), MVC 구성요소들간의 데이터 교환을 위한 이벤트의 형식 정의, 애플리케이션의 데이터 저장부 정의, 마이그레이션 정책 정의 등을 기술한다. The UAML defines the purpose and meta-information of the application, the definition of the MVC component, the execution environment requirements of the MVC component (eg device performance), the format definition of events for the exchange of data between the MVC components, and the data of the application. Describe the storage definition and migration policy definition.
도 2는 애플리케이션의 분산 및 이동성을 위한 애플리케이션 프레임워크의 구성을 블록도로 도시한 것으로서, 애플리케이션 프레임워크(120)는 MVC 및 UAML 관리부(210), 서비스 관리부(220), 런타임 관리부(230), 이벤트 관리부(240), 네트워크 관리부(250)를 포함한다. 2 is a block diagram illustrating the configuration of an application framework for application distribution and mobility. The
MVC 및 UAML 관리부(210)는 모델, 뷰 및 콘트롤러를 각각 관리하고, 모델, 뷰 및 콘트롤러를 정의하는 UAML을 파싱하고 관리한다. The MVC and
MVC 및 UAML 관리부(210)는 모델을 관리하고 모델과 관련한 이벤트를 전달하는 모델 관리부(212), 뷰를 관리하고 뷰와 관련한 이벤트를 전달하는 뷰 관리부(214), 콘트롤러를 관리하고 콘트롤러와 관련한 이벤트를 전달하는 콘트롤러 관리부(216) 및 UAML을 파싱하고 관리하는 UAML 관리부(218)을 포함한다. The MVC and
UAML 관리부(218)는 애플리케이션의 관리를 위한 메타 정보인UAML 정보들을 파싱하는 UAML 파서(219)를 포함한다. UAML 관리부(218)는 파싱한 UAML 정보들에 대해 유효성 검사를 하고 오류가 없는 경우 애플리케이션 프레임워크에 필요한 정보로 변환하여 제공한다. The
서비스 관리부(220)는 애플리케이션 프레임워크 시스템이나 애플리키션에게 필요한 다양한 서비스들을 구동, 관리한다. 서비스 관리부(220)는 애플케이션 프레임워크 시스템에서 직접 사용하는 시스템 서비스로서, 모델, 뷰 및 콘트롤러의 자동 갱신 서비스 및 마이그레이션 서비스를 구동하고 관리한다. The
이를 위해, 서비스 관리부(220)는 애플리케이션의 마이그레이션을 실행하는 마이그레이션 서비스 실행부(222), 및 애플리케이션 프레임워크의 자동 갱신을 실행하는 자동 갱신 서비스 실행부(224)를 포함한다. To this end, the
유비쿼터스 환경에서는 애플리케이션이 실행되는 장소마다 서비스의 종류가 상이할 수 있으므로 정적인 서비스 바인딩 기법은 적합하지 않으므로, 본 발명에 따른 애플리케이션 프레임워크에서는 서비스의 규격을 정의하고 플러거블한(pluggable) 서비스 삽입 구조를 통하여 유비쿼터스 환경에 적합한 서비스 제공을 지원한다. 이를 위해, 서비스 관리부(220)는, 예를 들어, 웹서비스를 지원하기 위해 애플리케이션 프레임워크에서 제공하는 서비스 규격에 맞추어 웹서비스와 바인딩할 수 있는 런타임 서비스 바인더(226)를 포함한다. In the ubiquitous environment, the static service binding scheme is not suitable because the types of services may be different for each location where the application is executed. In the application framework according to the present invention, a service specification is defined and a pluggable service insertion structure. It supports the provision of services suitable for the ubiquitous environment. To this end, the
런타임 관리부(230)는 애플리케이션의 로딩 실행 및 종료와 관련한 라이프 사이클을 관리하고, 모델, 뷰 및 콘트롤러의 정보들을 유지, 관리한다. 애플리케이션의 라이프 사이클 관리는 애플리케이션의 설치 및 배포 과정을 포함하며, 추가적으로 애플리케이션의 실행 과정 및 종료 과정을 관리하여 애플리케이션의 배포, 설치, 실행, 종료 및 삭제와 관련된 라이프 사이클의 관리를 지원한다. The
런타임 관리부(230)는 현재 실행중인 애플리케이션에 관련한 정보를 유지, 관리하는 런타임 애플리케이션 정보(232), 및 실행중인 애플리케이션의 MVC 구성요소가 존재하는 위치정보를 유지하는 런타임 라우팅 정보(234)를 포함한다. 위치정보는 애플리케이션 프레임워크에서 정의한 네이밍 룰에 따라 논리적인 위치정보로 표현된다. 논리적인 위치정보는 물리적인 IP 주소 또는 미들웨어의 채널 이름 등으 로 대응되며 라우팅을 위한 맵핑 테이블이 유지된다. The
이벤트 관리부(240)는 모델, 뷰 및 콘트롤러들간의 메시지 및 데이터를 전달한다. 이벤트 관리부(240)는 애플리케이션 및 애플리케이션 프레임워크에서 발행하는 다양한 이벤트를 생성, 전달한다. 애플리케이션 프레임워크는 메시지 구동 시스템이며, 애플리케이션 프레임워크에서 발생하는 모든 이벤트는 XML 기반의 메시지로 생성되어 전달된다. 이벤트 관리부(240)는 각각의 이벤트들의 헤더를 분석하여 메시지가 전달되어야 하는 목적지의 애플리케이션 모듈 또는 프레임워크의 시스템 이벤트 큐(242)로 메시지를 전달한다. The
또한, 이벤트 관리부(240)는 MVC 구성요소들간의 메시지 전달을 위한 이벤트를 XML 기반의 메시지로 생성하는 메시지 생성부(244) 및 메시지 생성부(244)에서 생성된 메시지를 MVC 구성요소들에게 전달하는 메시지 전달부(246)를 포함한다. In addition, the
네트워크 관리부(250)는 애플리케이션에서 발생하는 메시지를 다른 프레임워크 또는 디바이스로 전달한다. 네트워크 관리부(250)는 애플리케이션 프레임워크(120)의 하부에 존재하는 각종 미들웨어들과 연동하여 애플리케이션에서 발생하는 각종 이벤트 메시지나 다른 센서들과의 연동을 가능하도록 지원한다. The
유비쿼터스 환경에서는 다양한 네트워크 인프라가 존재하며 런타임시에 애플리케이션이 실행되는 환경에서 어느 종류의 네트워크를 사용할지 알 수 없다. 따라서 유비쿼터스 환경에 적응적으로 대처하기 위해서는, 다양한 네트워크 프로토콜을 지원할 수 있어야 하며, 런타임시에 어느 네트워크 프로토콜을 이용하여 데이터를 전송할 것인지를 선택하고 바인딩할 수 있어야 한다. In a ubiquitous environment, various network infrastructures exist, and it is impossible to know what kind of network is used in an environment in which an application is executed at runtime. Therefore, in order to adapt adaptively to the ubiquitous environment, it must be able to support various network protocols and be able to select and bind which network protocol to transmit data at runtime.
이를 위해, 네트워크 관리부(250)는 런타임시에 필요한 네트워크 어댑터를 바인딩할 수 있는 런타임 메시지 브로커 바인터(252)를 포함한다. 또한 네트워크 관리부는 다양한 네트워크에 접속할 수 있는 소켓 어댑터(254), 인포버스(infobus) 어댑터(256) 및 다른 메시지 브로커 어댑터(258)를 포함한다. To this end, the
도 3은 분산 MVC 모델에서 뷰와 콘트롤러간의 데이터 전달에 관한 시퀀스 다이어그램을 도시한 것이다. 3 shows a sequence diagram for data transfer between a view and a controller in a distributed MVC model.
뷰(114)로 발생된 이벤트가 입력되면(S300), 뷰 관리부(214)를 거쳐(S302), 이벤트 관리부(240)로 전달된다(S304). 이벤트 관리부(240)에서 이벤트 메시지로 생성되어(S306), 네트워크 관리부(250)로 전달된다(S308). 네트워크 관리부(250)는 현재 커뮤티케이션 가능한 메시지 브로커를 선택하여(S310), 메시지 브로커(180)를 통해(S312) 전달하고자 하는 대상 디바이스로 메시지를 전달한다(S314). When the event generated in the
대상 디바이스가 메시지 브로커(180)를 통해(S316) 메시지를 수신하면(S318), 네트워크 관리부(250)가 받은 메시지를 이벤트 관리부(240)로 전달하면(S320), 이벤트 관리부(240)는 이벤트를 콘트롤러 관리부(216)로 전달하고(S322), 콘트롤러 관리부(216)는 적당한 콘트롤러를 찾아(S324), 콘트롤러(116)를 호출한다(S326). When the target device receives the message through the message broker 180 (S316) (S318), when the
콘트롤러(116)는 연산하여 연산한 값을 콘트롤러 관리부(216)에게 전달하고(S328), 콘트롤러 관리부(216)는 이벤트 관리부(240)에게 전달한다(S330). 메시지는 네트워크 관리부(250) 및 메시지 브로커(180)를 거쳐 전달되고(S332 내지 S338), 뷰 관리부(214)에게 전달된다(S240). 뷰(114)가 뷰 관리부(214)로부터 이벤 트를 수신하면(S342), 뷰를 갱신하여 연산한 값을 보여준다(S344). The
도 4는 뷰가 마이그레이션되는 시퀀스 다이어그램을 도시한 것이다. 4 shows a sequence diagram in which views are migrated.
사용자의 이동으로 인해 이벤트가 발생하면(S400), 런타임 관리부(230)는 서비스 관리부(220)에게 서비스를 요청하고(S402), 서비스 관리부(220)는 적당한 서비스를 찾아낸다(S404). When an event occurs due to the movement of the user (S400), the
서비스 관리부(220)가 마이그레이션 서비스 실행부(222)에게 서비스를 요청하면(S406), 마이그레이션 서비스 실행부(222)는 마이그레이션 서비스를 실행한다(S408). 마이그레이션 서비스 실행부(222)가 뷰의 상태를 얻기 위해 메시지를 뷰 관리부(214)에게 전달하고(S410), 뷰 관리부(214)는 뷰를 찾아(S412), 뷰(114)에 메시지를 전달한다(S414). 뷰(114)는 뷰 상태를 저장하고(S416), 뷰 상태를 나타내는 메시지를 뷰 관리부(214)를 거쳐(S418), 마이그레이션 서비스 실행부(222)로 전달한다(S420). When the
마이그레이션 서비스 실행부(222)는 뷰 관리부(214)를 통해(S422), 뷰(114)를 닫는 메시지를 전달한다(S424). The migration
마이그레이션 서비스 실행부(222)는 이벤트 관리부(240)에게 새로운 뷰를 생성하라는 메시지를 전달하면(S426), 이벤트 관리부(240)는 네트워크 관리부 및 메시지 브로커를 거쳐 다른 디바이스의 이벤트 관리부(440)에게 그 메시지를 전달한다(S428). When the migration
이벤트 관리부(440)는 뷰 관리부(414)를 거쳐(S430), 뷰(314)를 생성하게 한다(S432). 또한, 마이그레이션 서비스 실행부(222)는 이벤트 관리부(240)에게 뷰의 현재 상태를 설정하라는 메시지를 전달하면(S434), 이벤트 관리부(240)는 네트워크 관리부 및 메시지 브로커를 거쳐 다른 디바이스의 이벤트 관리부(440)에게 그 메시지를 전달한다(S436). The
이벤트 관리부(440)는 뷰 관리부(414)를 거쳐(S438), 뷰(314)에게 현재 상태를 설정하게 한다(S440). 뷰(314)가 뷰 상태를 복구하면(S442), 뷰 관리부(414), 이벤트 관리부(440) 및 이벤트 관리부(240)를 거쳐 마이그레이션 서비스 실행부(222)에게 뷰 상태가 복구되었음을 나타내는 메시지를 전달하면, 마이그레이션 서비스 실행부(222)는 런타임 관리부(230)에게 마이그레이션 서비스가 완료되었음을 나타내는 메시지를 전달한다(S452).The
이상 본 발명의 바람직한 실시예에 대해 상세히 기술하였지만, 본 발명이 속하는 기술분야에 있어서 통상의 지식을 가진 사람이라면, 첨부된 청구범위에 정의된 본 발명의 정신 및 범위에 벗어나지 않으면서 본 발명을 여러 가지로 변형 또는 변경하여 실시할 수 있음을 알 수 있을 것이다. 따라서, 본 발명의 앞으로의 실시예들의 변경은 본 발명의 기술을 벗어날 수 없을 것이다.Although a preferred embodiment of the present invention has been described in detail above, those skilled in the art to which the present invention pertains can make various changes without departing from the spirit and scope of the invention as defined in the appended claims. It will be appreciated that modifications or variations may be made. Accordingly, modifications to future embodiments of the present invention will not depart from the technology of the present invention.
본 발명에 따르면, 분산 MVC 모델을 통하여 애플리케이션의 이동성을 지원하고, 분산된 컴퓨팅 자원의 활용과 같은 효율적인 기능을 지원하는 애플리케이션을 개발할 수 있다. 또한, 플래시, XML 형식의 메시지 사용 등으로 인해 플랫폼 독립적인 애플리케이션을 쉽게 개발할 수 있다. 또한, 애플리케이션의 배포 및 갱신이 용이하게 되며, 유비쿼터스 환경의 애플리케이션 개발시 마이그레이션을 위한 코드 및 분산 실행을 위한 코드를 작성할 필요가 없으므로 코딩작업을 절감시킬 수 있다. According to the present invention, it is possible to develop an application that supports mobility of an application through a distributed MVC model and supports efficient functions such as utilization of distributed computing resources. In addition, the use of messages in Flash and XML formats makes it easy to develop platform-independent applications. In addition, it is easy to distribute and update the application, and it is possible to reduce coding work because there is no need to write code for migration and distributed execution when developing an application in a ubiquitous environment.
Claims (14)
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060086794A KR100827925B1 (en) | 2006-09-08 | 2006-09-08 | Application framework system for distribution and migration of application |
PCT/KR2007/000064 WO2008029974A1 (en) | 2006-09-08 | 2007-01-04 | Application framework system for distribution and migration of application |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060086794A KR100827925B1 (en) | 2006-09-08 | 2006-09-08 | Application framework system for distribution and migration of application |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20080022934A true KR20080022934A (en) | 2008-03-12 |
KR100827925B1 KR100827925B1 (en) | 2008-05-07 |
Family
ID=39157382
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020060086794A KR100827925B1 (en) | 2006-09-08 | 2006-09-08 | Application framework system for distribution and migration of application |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR100827925B1 (en) |
WO (1) | WO2008029974A1 (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011118985A2 (en) * | 2010-03-23 | 2011-09-29 | 서울시립대학교 산학협력단 | Middleware device for three-tier ubiquitous city system |
WO2012020972A2 (en) * | 2010-08-09 | 2012-02-16 | 서울시립대학교 산학협력단 | U-city portal structure and method for providing service for same in three-tier u-city system based on u-city middleware system |
KR101243015B1 (en) * | 2011-03-16 | 2013-03-12 | 엔에이치엔비즈니스플랫폼 주식회사 | Service providing system and service providing method for providing combined separate services |
KR101394420B1 (en) * | 2012-06-14 | 2014-05-13 | (주)아이비즈소프트웨어 | Method For Supporting Multi-Framework, Apparatus And Computer-Readable Recording Medium with Program Therefor |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7890644B2 (en) * | 2009-01-07 | 2011-02-15 | Sony Corporation | Parallel tasking application framework |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1170673A1 (en) * | 2000-07-05 | 2002-01-09 | Sony International (Europe) GmbH | Portal application |
KR100561683B1 (en) * | 2003-10-10 | 2006-03-15 | 에스케이 텔레콤주식회사 | Mobile Communication Terminal with Mobile Platform Supporting Object Oriented Application Framework |
KR100542758B1 (en) * | 2003-12-10 | 2006-01-20 | 한국전자통신연구원 | Sobot based on ubiquitous network, system using the sobot, operation method of the system, and transition and transferring method of the sobot |
KR100567327B1 (en) * | 2003-12-26 | 2006-04-04 | 한국전자통신연구원 | Gateway system, network device, and packet routing method for ubiquitous computing |
KR100691286B1 (en) * | 2004-11-30 | 2007-03-12 | 한국전자통신연구원 | Apparatus supporting Seamless Mobility in the Ubiquitous Environment and its method |
KR100611580B1 (en) * | 2004-12-11 | 2006-08-10 | 한국전자통신연구원 | A multi-mode communication terminal and a multi-mode method of the same |
KR100717166B1 (en) * | 2005-02-16 | 2007-05-11 | 삼성전자주식회사 | Service framework for A Home network |
-
2006
- 2006-09-08 KR KR1020060086794A patent/KR100827925B1/en active IP Right Grant
-
2007
- 2007-01-04 WO PCT/KR2007/000064 patent/WO2008029974A1/en active Application Filing
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011118985A2 (en) * | 2010-03-23 | 2011-09-29 | 서울시립대학교 산학협력단 | Middleware device for three-tier ubiquitous city system |
WO2011118985A3 (en) * | 2010-03-23 | 2012-03-08 | 서울시립대학교 산학협력단 | Middleware device for three-tier ubiquitous city system |
WO2012020972A2 (en) * | 2010-08-09 | 2012-02-16 | 서울시립대학교 산학협력단 | U-city portal structure and method for providing service for same in three-tier u-city system based on u-city middleware system |
WO2012020972A3 (en) * | 2010-08-09 | 2012-05-24 | 서울시립대학교 산학협력단 | U-city portal structure and method for providing service for same in three-tier u-city system based on u-city middleware system |
KR101243015B1 (en) * | 2011-03-16 | 2013-03-12 | 엔에이치엔비즈니스플랫폼 주식회사 | Service providing system and service providing method for providing combined separate services |
KR101394420B1 (en) * | 2012-06-14 | 2014-05-13 | (주)아이비즈소프트웨어 | Method For Supporting Multi-Framework, Apparatus And Computer-Readable Recording Medium with Program Therefor |
Also Published As
Publication number | Publication date |
---|---|
KR100827925B1 (en) | 2008-05-07 |
WO2008029974A1 (en) | 2008-03-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7756905B2 (en) | System and method for building mixed mode execution environment for component applications | |
US8091097B2 (en) | Distributed virtual machine architecture | |
CA2604108C (en) | System and method of representing data entities of standard device applications as built-in components | |
KR100807651B1 (en) | System and method of creating and communicating with component based wireless applications | |
RU2466450C2 (en) | Method and system to develop it-oriented server network applications | |
EP2003854B1 (en) | Server for communicating with multi-mode devices using multi-mode applications | |
Rellermeyer et al. | The software fabric for the internet of things | |
US20080256225A1 (en) | Osgi-Based Dynamic Service Management Method for Context-Aware Systems | |
Kon et al. | 2k: A reflective component-based operating system for rapidly changing environments | |
CN111352653B (en) | System development method based on PaaS cloud platform server and server | |
US20080311886A1 (en) | Server for communicating with multi-mode devices using multi-mode applications | |
US20080313594A1 (en) | System and method for creating multi-mode applications | |
CA2511916A1 (en) | System and method of building wireless component applications | |
KR100827925B1 (en) | Application framework system for distribution and migration of application | |
Belsare et al. | Micro-ros | |
Malek et al. | Reconceptualizing a family of heterogeneous embedded systems via explicit architectural support | |
JP2005196772A (en) | Apparatus and method for sharing service on network | |
CA2635172C (en) | Device for communicating in multiple modes using multi-mode applications | |
US9425988B2 (en) | Device for communicating in multiple modes using multi-mode applications | |
CA2635173C (en) | System and method for creating multi-mode applications | |
CA2583840A1 (en) | Extending access to local software of a wireless device | |
EP1851625A1 (en) | Simulating an application for subsequent deployment to a device | |
Tajmajer et al. | Node/Proxy portability: Designing for the two lives of your next WSAN middleware | |
JP2008225625A (en) | Distributed processing system cooperation system, distributed processing system cooperation method and distributed processing system cooperation program | |
Sommer | Lehrstuhl für Echtzeitsysteme und Robotik |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment | ||
FPAY | Annual fee payment | ||
FPAY | Annual fee payment |
Payment date: 20160325 Year of fee payment: 9 |
|
FPAY | Annual fee payment |
Payment date: 20170327 Year of fee payment: 10 |
|
FPAY | Annual fee payment |
Payment date: 20180411 Year of fee payment: 11 |
|
FPAY | Annual fee payment |
Payment date: 20190326 Year of fee payment: 12 |