KR101414797B1 - 웹 앱 조합 메타모델이 적용된 인스턴트 웹 앱 조합 시스템 - Google Patents

웹 앱 조합 메타모델이 적용된 인스턴트 웹 앱 조합 시스템 Download PDF

Info

Publication number
KR101414797B1
KR101414797B1 KR1020130155534A KR20130155534A KR101414797B1 KR 101414797 B1 KR101414797 B1 KR 101414797B1 KR 1020130155534 A KR1020130155534 A KR 1020130155534A KR 20130155534 A KR20130155534 A KR 20130155534A KR 101414797 B1 KR101414797 B1 KR 101414797B1
Authority
KR
South Korea
Prior art keywords
app
seed
combination
metamodel
web app
Prior art date
Application number
KR1020130155534A
Other languages
English (en)
Inventor
김욱래
장창환
Original Assignee
(주)인스웨이브시스템즈
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by (주)인스웨이브시스템즈 filed Critical (주)인스웨이브시스템즈
Priority to KR1020130155534A priority Critical patent/KR101414797B1/ko
Application granted granted Critical
Publication of KR101414797B1 publication Critical patent/KR101414797B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/35Creation or generation of source code model driven
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)

Abstract

웹 앱 조합 메타모델이 적용된 인스턴트 웹 앱 조합 시스템이 개시된다. 하나 이상의 시드앱(SeedApp)을 조합하여 신규의 인스턴트 웹 앱(Instant Web App)을 조합하는 시스템은, 시드앱 메타모델 및 조합규칙 메타모델을 저장하는 메타모델 저장소; 상기 메타모델 저장소에서 조합 대상으로 선택된 시드앱에 상응하는 상기 시드앱 메타모델과 상기 조합 대상으로 선택된 시드앱 간의 조합을 위한 조합규칙 메타모델을 독출하여 신규 기능을 가지는 인스턴트 웹 앱으로 조합하는 컴포저(composer)를 포함하되, 상기 인스턴트 웹 앱은 웹 앱 조합 메타모델이 적용된 것을 특징으로 할 수 있다.

Description

웹 앱 조합 메타모델이 적용된 인스턴트 웹 앱 조합 시스템{Instant Web App composition system applied web app composition meta model}
본 발명은 웹 앱 조합 메타모델이 적용된 인스턴트 웹 앱 조합 시스템에 관한 것이다.
최근 스마트폰의 등장과 시장 성장은 휴대 단말기 시장이 더 이상 하드웨어 중심이 아닌 소프트웨어 중심으로 변화하고 있는 것을 말해주고 있다. 휴대 단말기를 포함하는 모바일 인터넷에서 콘텐츠와 서비스에 대한 고객 수요가 증가하면서 하드웨어 중심의 휴대 단말기가 더 이상 소비자들에게 어필하지 못하고 있는 실정이다.
또한, 소프트웨어 중심으로의 변화는 사업자들에게 콘텐츠, 서비스 및 OS 라이선싱, 광고 등 수익모델의 다양화와 함께 콘텐츠와 서비스를 유통할 수 있는 어플리케이션 생태계의 확장을 일으키고 있다.
하지만, 현재의 어플리케이션 생태계는 소프트웨어 개발자 위주로 흐르고 있어서 훨씬 더 큰 콘텐츠란 입장에서의 시장을 놓치고 있는데, 이는 현재의 앱 생태계의 문제점은 유통자의 참여와 다루기 쉬운 저작 도구를 갖추지 못하고 있다는 것이다.
콘텐츠를 유통하기 위한 생태계는 다음과 같은 조건을 갖출 필요가 있다.
우선 규모 측면에서 콘텐츠 생산자가 뛰어들기 위해서는 일정 이상의 소비자가 있어야 하고, 콘텐츠 생산자의 지분과 권력 측면에서 콘텐츠 유통업자는 독점계약을 통해 많은 수익을 가져가지 않아야 하며, 커뮤니티 측면에서 콘텐츠를 소비하고 생산하는 사람들 간의 커뮤니티 형성이 필요하고, 유통자의 참여 측면에서 유통 그룹의 참여뿐만 아니라 개인의 참여가 가능한 자유로운 유통 시장의 형성이 필요하며, 저작도구 측면에서 다루기 쉬운 저작도구를 제작함으로써 유통 속도를 증가시키고 콘텐츠의 양을 키울 수 있도록 할 필요가 있다.
하지만, 현재 앱 생태계 중에서 개발자가 아닌 사람들을 위한 다루기 쉬운 저작도구를 제공하는 생태계는 미비한 실정이다.
앱 저작 도구와 관련된 기술로 한국공개특허공보 제10-2013-0091989호에는 모바일 어플리케이션 저작을 위한 방법 및 모바일 단말기가 개시되어 있는데, 이에 의하면 화면 크기가 제약된 모바일 단말기 상에서 사용자가 모바일 어플리케이션을 용이하고 효율적으로 저작할 수 있도록 하고 있다.
전술한 배경기술은 발명자가 본 발명의 도출을 위해 보유하고 있었거나, 본 발명의 도출 과정에서 습득한 기술 정보로서, 반드시 본 발명의 출원 전에 일반 공중에게 공개된 공지기술이라 할 수는 없다.
한국공개특허공보 제10-2013-0091989호
본 발명은 인터페이스가 동적으로 변경될 수 있는 메타모델을 적용하여 이미 개발되어 있는 웹 앱들을 조합하여 신규 기능의 웹 앱을 만들 수 있도록 지원해주는 웹 앱 조합 메타모델이 적용된 인스턴트 웹 앱 조합 시스템을 제공하기 위한 것이다.
본 발명은 프로그래밍 지식이 부족해도 아이디어만 있으면 누구나 쉽게 개발되어 있는 시드앱(seed app)들을 조합해서 원하는 웹 앱을 만들 수 있도록 지원해주는 웹 앱 조합 메타모델이 적용된 인스턴트 웹 앱 조합 시스템을 제공하기 위한 것이다.
본 발명의 이외의 목적들은 하기의 설명을 통해 쉽게 이해될 수 있을 것이다.
본 발명의 일 측면에 따르면, 하나 이상의 시드앱(SeedApp)을 조합하여 신규의 인스턴트 웹 앱(Instant Web App)을 조합하는 시스템으로서, 시드앱 메타모델 및 조합규칙 메타모델을 저장하는 메타모델 저장소; 상기 메타모델 저장소에서 조합 대상으로 선택된 시드앱에 상응하는 상기 시드앱 메타모델과 상기 조합 대상으로 선택된 시드앱 간의 조합을 위한 조합규칙 메타모델을 독출하여 신규 기능을 가지는 인스턴트 웹 앱으로 조합하는 컴포저(composer)를 포함하되, 상기 인스턴트 웹 앱은 웹 앱 조합 메타모델이 적용된 것을 특징으로 하는 인스턴트 웹 앱 조합 시스템이 제공된다.
상기 웹 앱 조합 메타모델은 XPDL(Xml Process Definition Language) 기반으로, 모델 내에서 비즈니스의 로직을 가지고 있는 액티비티 타입(type)의 선언 영역인 어플리케이션(Application) 영역, 어플리케이션에서 선언된 액티비티 타입에 대해 인스턴스 데이터(instance data)를 표현하기 위한 영역인 액티비티(Activity) 영역, 액티비티 간의 플로우(flow)를 표현하기 위한 영역인 변환(Transition) 영역으로 구분될 수 있다.
상기 시드앱 메타모델은 상기 어플리케이션 영역 및 상기 액티비티 영역을 통해 표현되고, 상기 조합규칙 메타모델은 상기 변환 영역을 통해 표현될 수 있다.
상기 컴포저는 상기 메타모델 저장소에서 상기 시드앱 메타모델을 독출하여 상기 어플리케이션 영역 및 상기 액티비티 영역을 조합하고, 상기 조합규칙 메타모델을 독출하여 상기 변환 영역을 조합함으로써, 상기 인스턴트 웹 앱의 메타모델을 구성할 수 있다.
신규로 구성된 상기 인스턴트 웹 앱의 메타모델은 상기 메타모델 저장소에 시드앱 메타모델로서 저장될 수 있다.
웹 앱 조합 메타모델은 상기 인스턴트 웹 앱을 구성하는 상기 시드앱들 간의 인터페이스가 동적으로 변경 가능하다.
상기 컴포저는 상기 조합규칙 메타모델에 따라 상기 시드앱 메타모델 간에 입출력 파라미터에 상응하는 워크플로우(workflow)가 구성되고 데이터 변환이 이루어지도록 하는 명세 연결을 수행할 수 있다.
상기 컴포저는 조합 대상으로 선택된 시드앱 메타모델에 포함된 단위 기능 모듈의 액티비티가 가지고 있는 입출력 파라미터에 맞는 조합규칙 메타모델을 찾아 자동적으로 매칭할 수 있다.
전술한 것 외의 다른 측면, 특징, 이점이 이하의 도면, 특허청구범위 및 발명의 상세한 설명으로부터 명확해질 것이다.
본 발명의 실시예에 따르면, 인터페이스가 동적으로 변경될 수 있는 메타모델을 적용하여 이미 개발되어 있는 웹 앱들을 조합하여 신규 기능의 웹 앱을 만들 수 있도록 지원해주는 효과가 있다.
또한, 프로그래밍 지식이 부족해도 아이디어만 있으면 누구나 쉽게 개발되어 있는 시드앱들을 조합해서 원하는 웹 앱을 만들 수 있도록 지원해주는 효과가 있다.
도 1은 본 발명의 일 실시예에 따른 인스턴트 웹 앱 조합 장치의 구성 블록도,
도 2 및 도 3은 메타모델 미적용시와 적용시의 프로그램 코드 예시,
도 4는 메타모델 적용시의 프로그램 코드의 다른 예시,
도 5는 인스턴트 웹 앱의 조합의 기본적인 개념도,
도 6은 시드앱들이 조합된 인스턴트 웹 앱의 구성을 나타낸 도면,
도 7는 인스턴트 웹 앱의 조합 과정을 나타낸 순서도,
도 8은 시드앱 구성요소 다이어그램,
도 9는 인스턴트 웹 앱 조합 절차를 나타낸 도면,
도 10은 XPDL 타입의 메타모델 상관관계를 나타낸 도면,
도 11은 본 발명의 일 실시예에 따른 인스턴트 웹 앱 조합 시스템의 구성도,
도 12는 본 발명의 일 실시예에 따른 인스턴트 웹 앱의 메타모델에 적용되는 XPDL 파일 구조,
도 13은 인스턴트 웹 앱 메타모델에서 어플리케이션 영역과 액티비티 영역의 프로그램 코드 예시,
도 14는 변환영역의 프로그램 코드 예시,
도 15은 웹 앱의 단순 조합 사례를 나타낸 도면,
도 16는 웹 앱의 분기 조합 사례를 나타낸 도면,
도 17은 내부HTML을 이용한 웹 앱 조합을 나타낸 도면,
도 18은 포워딩 방식에 따른 웹 앱 조합을 나타낸 도면,
도 19는 Open API를 이용한 웹 앱 조합을 나타낸 도면,
도 20은 스크립트를 이용한 웹 앱 조합을 나타낸 도면,
도 21는 인스턴트 웹 앱의 기본 레이아웃 템플릿을 나타낸 도면,
도 22a~22l은 인스턴트 웹 앱을 생성하는 과정을 설명하기 위한 도면.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 명세서에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
또한, 명세서에 기재된 "…부", "…모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
또한, 각 도면을 참조하여 설명하는 실시예의 구성 요소가 해당 실시예에만 제한적으로 적용되는 것은 아니며, 본 발명의 기술적 사상이 유지되는 범위 내에서 다른 실시예에 포함되도록 구현될 수 있으며, 또한 별도의 설명이 생략될지라도 복수의 실시예가 통합된 하나의 실시예로 다시 구현될 수도 있음은 당연하다.
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일하거나 관련된 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
이하에서는 우선 본 명세서에서 사용되는 용어에 대하여 설명하기로 한다.
인스턴트 웹 앱(Instant Web APP)은 IWA라고도 칭해지며, 두 개 이상의 웹 앱이 추가 개발 없이 즉시 조합되어 그 기능이 확장된 앱을 말한다.
앱(APP)은 원하는 기능을 수행하는 어플리케이션 단위를 말한다. 앱의 기능은 API(Application Program Interface)로 표현되며, API를 통해 앱의 기능을 수행할 수 있다. 앱과 앱이 결합하여 생성된 결과 역시 새로운 앱이 된다.
인터페이스(Interface)는 앱과 앱을 연결하는 논리적 단위를 말한다. 한 앱(호출자 앱, fromAPP)이 기능 수행의 중간 혹은 마지막에서 다른 앱(피호출자 앱, toAPP)의 기능을 인터페이스(Interface)를 통해 호출하는 것을 앱의 연결이라고 정의한다.
액티비티(Activity)는 인스턴트 웹 앱을 구성하기 위한 최소단위의 기능이며, 인터페이스(Interface)를 Web Resource를 이용하여 구현한 구현체이다.
시드앱(Seed App)은 하나 이상의 액티비티(Activity)로 구성된 조합가능한 앱이다.
시드앱의 액티비티들을 결합하여 새로운 인스턴트 웹 앱을 만들 수 있다. 예를 들면, RSS, YouTube, 사진, 트위터, 지도, 메모, 연락처, 팟캐스트, 방명록, 일정, 푸시 등의 기능을 수행하는 액티비티(Activity)가 시드앱의 구성원이 될 수 있다.
조합규칙(Rule)은 두 인터페이스의 연결 정보이다. 호출자 인터페이스, 피호출자 인터페이스 그리고 데이터 변환 로직으로 구성된다. 데이터 변환 로직은 호출자 인터페이스에서 전달된 데이터를 피호출자 인터페이스의 입력 데이터 형식으로 변환한다.
예를 들면 "파일정보 인터페이스"를 만들었다고 가정하자.
"파일정보 인터페이스는" INPUT 파라미터가 "디렉토리 위치"이고, OUTPUT 파라미터가 "파일명"이다.
그리고 "파일 재생 인터페이스"를 만들었다고 가정하자.
"파일재생 인터페이스"는 INPUT 파라미터가 "파일명"이고, OUTPUT 파라미터가 "재생상태"이다.
"파일 정보 인터페이스"를 구현한 "사진 파일 정보", "음악 파일 정보", "영화 파일 정보" 등 여러개의 액티비티가 생성될 수 있다.
"파일재생 인터페이스"를 구현한 "음악 플레이어", "동영상 플레이어", "사진 미리보기"등 여러개의 액티비티가 생성될 수 있다.
조합 규칙은 "파일정보 인터페이스"와 "파일재생 인터페이스", 데이터 변환 로직 정보를 가짐으로써 하나의 조합규칙으로 조합될 수 있는 다수의 액티비티를 검색 및 결합 할 수 있다.
도 1은 본 발명의 일 실시예에 따른 인스턴트 웹 앱 조합 장치의 구성 블록도이고, 도 2 및 도 3은 메타모델 미적용시와 적용시의 프로그램 코드 예시이며, 도 4는 메타모델 적용시의 프로그램 코드의 다른 예시이고, 도 5는 인스턴트 웹 앱의 조합의 기본적인 개념도이며, 도 6은 시드앱들이 조합된 인스턴트 웹 앱의 구성을 나타낸 도면이고, 도 7은 인스턴트 웹 앱의 조합 과정을 나타낸 순서도이며, 도 8은 시드앱 구성요소 다이어그램이고, 도 9는 인스턴트 웹 앱 조합 절차를 나타낸 도면이며, 도 10은 XPDL 타입의 메타모델 상관관계를 나타낸 도면이고, 도 11은 본 발명의 일 실시예에 따른 인스턴트 웹 앱 조합 시스템의 구성도이다.
본 발명의 일 실시예에 따른 인스턴트 웹 앱 조합 장치는 인터페이스가 동적으로 변경될 수 있는 메타모델을 적용하여 미리 제작된 시드 앱들을 조합함으로써 원하는 기능을 가지는 인스턴트 웹 앱을 생성할 수 있으며, 결과 화면 중심으로 작업하여 완성된 앱이 어떻게 동작할 지 쉽게 예상할 수 있도록 한다.
인스턴트 웹 앱 조합 장치(100)는 시드앱 검색부(110), 화면 구성부(120), 워크플로우 구성부(130), 데이터 맵핑부(140), 웹 앱 빌드부(150)를 포함한다.
시드앱 검색부(110)는 조합 가능한 시드앱을 검색한다. 시드앱은 저장소(Repository)에 메타모델 형태로 저장되어 있을 수 있다.
저장소에는 시드앱 메타모델 이외에 조합규칙 메타모델이 저장되어 있을 수 있다. 저장소는 별도의 데이터베이스로 구현되어 있거나 앱 마켓 혹은 스토어일 수 있다.
화면 구성부(120)는 결과 화면 중심으로 레이아웃을 구성하고, 화면전환 사용자 인터페이스(UI)를 선택하게 한다.
화면 구성부(120)에는 사용자(조합자)로부터 시드앱의 신규/추가/삭제 여부, 신규/추가/삭제 대상 선택, 테마 선택 등을 입력받기 위한 사용자 입력부(미도시)가 포함되어 있을 수 있다.
워크플로우 구성부(130)는 선택된 시드앱의 IN/OUT 명세에 맞추어 유력한 워크플로우(Workflow)를 추천하고 구성해준다.
데이터 맵핑부(140)는 조합규칙에 의해 자동으로 시드앱 간의 명세가 연결된다. 데이터 맵핑부(140)는 시드앱의 개발자가 정의한 조합규칙을 이용하여 자동으로 데이터를 맵핑 처리하는 사용자 인터페이스 엔진(UI Engine)일 수 있다.
웹 앱 빌드부(150)는 새로운 기능을 가지는 인스턴트 웹 앱을 생성한다. 이 때 인스턴트 웹 앱 생성 시에 클라우드 빌드를 지원한다.
본 실시예에서 인스턴트 웹 앱을 생성함에 있어서 시드앱들을 조합하는 것은 어느 하나의 시드앱의 인터페이스와 다른 하나의 시드앱의 인터페이스를 연결하는 것이다.
일반 웹 앱에서는 사용자의 액션을 반응할 수 있는 버튼 혹은 링크가 인터페이스라고 볼 수 있다.
본 실시예에서 메타모델은 시드앱들이 조합되는 과정에서 인터페이스가 동적으로 바뀔 수 있도록 한다.
도 2 및 도 3을 참조하면, 메타모델이 미 적용된 경우((a) 참조)와 메타모델이 적용된 경우((b) 참조)의 프로그램 코드가 예시되어 있다.
메타모델이 미 적용된 경우(도 2의 (a), 도 3의 (a) 참조), 링크 URL로 버튼의 기능이 연결되어 있어, 버튼의 기능이 바뀌려면 "http://.../Sports_News.html"과 같은 프로그램 코드를 직접 수정해야 한다. 즉, 링크 변경 시에 개발자에 의한 프로그램 수정이 필요하게 된다.
하지만, 본 실시예에서와 같이 메타모델을 적용하는 경우(도 2의 (b), 도 3의 (b) 참조) "@sports"와 같은 메타모델에서의 액티비티 ID의 수정만으로도 버튼의 기능을 용이하게 바꿀 수 있게 된다.
이 때 메타모델을 웹 앱 인터페이스에 적용하는 과정에서 메타모델을 해석하여 처리하기 위한 런타임 엔진(Runtime Engine)(152)이 웹 앱 빌드부(150)에 포함될 수 있다.
도 4를 참조하면, 메타모델을 적용한 경우가 보다 상세하게 예시되어 있다.
런타임 엔진(152)을 통해 메타모델을 해석함으로써, "@politics"는 Politics_News.HTML에 매칭되고, "@economics"는 Economics_News.HTML에 매칭되며, "@sports"는 Sports_News.HTML에 매칭되도록 할 수 있게 된다.
다음으로 인스턴트 웹 앱 조합의 기본적인 개념이 도 5에 도시되어 있다.
도 5를 참조하면, 시드앱과 시드앱을 조합하기 위해서는 앱의 입출력 파라미터와, 파라미터를 연결하고 데이터를 맵핑할 조합규칙이 요구된다.
상세하게는 앱 조합의 기본 단위인 시드앱에는 다른 앱과의 연계를 위한 입출력 파라미터가 존재한다. 그리고 호출자 앱(Caller, SeedApp1)의 출력 파라미터와 피호출자 앱(Callee, SeedApp2)의 입력 파라미터를 연결할 조합규칙이 존재한다. 시드앱과 조합규칙을 이용하여 앱을 조합할 수 있게 된다.
시드앱들이 조합된 인스턴트 웹 앱이 도 6에 도시되어 있다.
도 6을 참조하면, 시드앱(210, 220, 230)은 단위 기능을 구현한 액티비티와 입출력 파라미터를 포함하는 단위 기능 모듈(211, 212, 221, 222, 231)이 하나 이상 포함되어 있을 수 있다.
액티비티는 시드앱(210, 220, 230)의 기능을 구현한 최소 단위로서, 입출력 파라미터를 포함하고 있다. 액티비티의 기능은 명세(Specification)에 정의되어 있으며, 명세가 정의되면 입출력 데이터, 입출력 파라미터의 구조도 결정된다.
시드앱들(210, 220, 230) 간에는 조합규칙에 의해 서로 연결되며, 액티비티의 단위 기능들이 조합규칙에 의해 서로 연결되면서 새로운 기능이 구현되고, 이것이 인스턴트 웹 앱(200)의 신규 기능이 된다.
여기서, 조합규칙은 단위 기능 모듈(211, 212, 221, 222, 231)의 출력 파라미터와 입력 파라미터 간의 변환 규칙과 화면 전환 규칙에 관한 것으로, 명세가 결정되면 조합규칙이 결정될 수 있다.
본 실시예에 따른 인스턴트 웹 앱의 조합 과정은 다음과 같다. 일반 사용자도 쉽게 인스턴트 웹 앱을 조합할 수 있도록 위저드(Wizard) 방식으로 동작하는 것을 가정한다.
도 7를 참조하면, 화면 구성부(120)에 의해 구성된 조합 위저드(composing wizard)가 실행되면(단계 S310), 시드앱의 신규/추가/삭제 여부를 확인한다(단계 S315).
신규/추가의 경우에는 시드앱 검색부(110)는 저장소에서 사용자가 입력한 데이터에 상응하는 시드앱을 검색하거나 추천한다(단계 S320). 저장소에는 시드앱이 메타모델 형태로 저장되어 있을 수 있다.
사용자는 검색/추천된 시드앱에서 신규/추가하고자 하는 시드앱을 선택하고(단계 S325), 필요에 따라 선택된 시드앱의 테마를 선택할 수도 있다(단계 S330).
그리고 시드앱의 단위 기능을 테스트한 후(단계 S335) 시드앱 조합 단계(단계 S345)로 진행한다.
단계 S315에서 시드앱 삭제의 경우에는 삭제 대상이 되는 시드앱이 선택되면(단계 S340), 시드앱 조합 단계(S345)로 진행한다.
시드앱 조합 단계(S345)에서는 웹 앱 빌드부(150)가 선택된 신규/추가/삭제 대상 시드앱에 대하여 메타모델을 통해 사전에 정의된 액티비티, 명세, 조합규칙에 의해서 상응하는 처리를 수행하여 개별적인 시드앱들이 하나의 인스턴트 웹 앱 내에서 소정의 연관관계를 가지면서 조합되도록 한다.
웹 앱 빌드부(150)는 시드앱의 추가/삭제 등의 추가 작업이 필요한지 판단하고(단계 S350), 추가 작업이 필요한 경우에는 단계 S315로 되돌아가고, 추가 작업이 필요하지 않은 경우에는 다음 단계로 넘어간다.
웹 앱 빌드부(150)는 새롭게 조합된 인스턴트 웹 앱을 검증하고(단계 S355), 앱 시뮬레이션을 수행한다(단계 S360). 그리고는 신규 조합된 인스턴트 웹 앱의 메타 정보를 메타모델 형태로 저장소에 등록하고(단계 S365), 마켓을 통한 배포 여부를 결정한다(단계 S370).
마켓을 통해 배포하지 않는 경우에는 인앱 업데이트만을 수행하고(단계 S375), 마켓을 통해 배포하는 경우에는 앱 빌드를 요청한 후(단계 S380), 조합 위저드를 종료한다(단계 S385).
시드앱 조합 단계(S345)에 대하여 보다 상세히 설명하면 다음과 같다.
IWA(200)는 하나 이상의 시드앱(210)이 조합되어 구성되며, 시드앱(210)은 하나 이상의 액티비티(211)를 포함한다. 액티비티(211)에는 조합규칙(250), 출력 파라미터(260), 입력 파라미터(270), 명세(280)가 포함되며, 이들 각각의 관계는 도 8에 도시된 다이어그램과 같다.
도 9을 참조하면, 인앱 확장을 위해 시드앱을 선택하게 되면, 웹 앱 빌드부(150)는 시드앱을 구성하는 액티비티와 액티비티의 명세 정보를 조회할 수 있다. 웹 앱 빌드부(150)는 조합 대상 시드앱의 액티비티 목록을 추출한다(단계 S410).
그리고 액티비티 목록 중에서 액티비티의 명세 정보를 추출한다(단계 S420). 명세가 결정되면 입출력 파라미터와 조합규칙이 결정되며(단계 S430), 앱을 확장하는데 필요한 정보가 모두 준비되게 된다.
저장소에서 컴포터 서버, 즉 웹 앱 빌드부(150)로 SeedApp과 조합규칙을 다운로드하고(단계 S440), SeedApp과 조합규칙을 결합하여(단계 S450) 앱을 확장하게 된다.
본 실시예에서 인스턴트 웹 앱은 조합에 사용한 SeedApp, 액티비티, 입출력 파라미터, 명세, 조합규칙과 실행 플로우에 대한 메타 데이터를 가져야 하는데, 이러한 인스턴트 웹 앱의 메타모델은 XPDL(Xml Process Definition Language) 기반으로 WfMC 참조 모델을 이용할 수 있다.
WfMC는 Workflow Management Coalition의 약자이며, 워크플로우 업체들을 중심으로 결성된 단체로 워크플로우에 관련된 표준들을 제정하고 있다. 워크플로우 코어/외부 어플리케이션과의 연동을 위한 표준을 제공하고 있으며, 정의된 프로세서의 상호 교환을 위한 인터페이스인 XPDL을 본 실시예에서 앱 조합을 위한 메타 표준으로 활용할 수 있다.
XPDL의 기본 프레임워크(Basic Framework)는 모델 내에서 사용될 데이터 타입을 선언하는 영역인 데이터 선언(Data Declaration) 영역, 모델 내에서 비즈니스의 로직을 가지고 있는 액티비티 타입 선언 영역인 어플리케이션(Application) 영역, 어플리케이션에서 선언된 액티비티의 타입에 대해 인스턴스 데이터(instance data)를 표현하기 위한 영역인 액티비티(Activity) 영역, 액티비티 간의 플로우를 표현하기 위한 영역인 변환(Transition) 영역으로 구분된다.
즉, 어플리케이션 영역, 액티비티 영역 및 변환 영역은 각각 액티비티의 타입(type), 인스턴스(instance), 플로우(flow)에 관한 영역으로 볼 수 있다.
여기서, 시드앱(SeedApp) 메타모델은 XPDL의 어플리케이션과 액티비티 영역을 통해 표현될 수 있으며, 조합규칙 메타모델은 변환 영역을 통해 표현될 수 있다(도 10 참조).
XPDL 기반의 인스턴트 웹 앱 메타모델을 이용한 인스턴트 웹 앱 조합 시스템에서의 조합 아키텍처는 도 11에 도시된 바와 같다.
인스턴트 웹 앱 조합 시점을 중심으로 살펴보면, 우선 컴포저(Composer), 즉 인스턴트 웹 앱 조합 장치(100)는 메타모델 저장소(10)에서 시드앱 메타모델(11)을 독출하여 어플리케이션 영역, 액티비티 영역을 조합하고 조합규칙 메타모델(12)을 독출하여 변환 영역을 조합한다(① 참조).
이 때 독출된 어플리케이션 영역, 액티비티 영역, 변환 영역이 조합되어 신규 인스턴트 웹 앱의 메타모델(13)을 구성하게 된다(② 참조).
이렇게 생성된 신규 인스턴트 웹 앱의 메타모델은 메타모델 저장소(10)에 저장된다(③ 참조).
그리고 인스턴트 웹 앱 실행 시점을 중심으로 살펴보면, 사용자 단말(20)에서는 사용자 인터페이스 엔진(UI Engine)(21)을 통해 메타모델 저장소(10)에 저장된 신규 인스턴트 웹 앱의 메타모델을 독출하여, 어플리케이션 영역, 액티비티 영역, 변환 영역을 참조하여 신규 인스턴트 웹 앱을 실행하게 된다(④ 참조).
도 12는 본 발명의 일 실시예에 따른 인스턴트 웹 앱의 메타모델에 적용되는 XPDL 파일 구조이고, 도 13은 인스턴트 웹 앱 메타모델에서 어플리케이션 영역과 액티비티 영역의 프로그램 코드 예시이며, 도 14는 변환영역의 프로그램 코드 예시이다.
본 실시예에서 인스턴트 웹 앱의 메타모델에 적용되는 XPDL 파일 구조는 도 12에 도시된 것과 같다.
XPDL의 XML 파일 구조에서는 다음과 같이 인스턴트 웹 앱 정보를 표혐한다. WorkflowProcess는 인스턴트 웹 앱(IWA)를 나타내고, SeedApplication은 시드앱(SeedApp)을 나타내며, Application은 조건 처리시 생성될 수 있는 정보, 즉 시드앱 인터페이스를 나타내고, Activity는 시드앱 인터페이스의 인스턴스(Instance)를 나타내며, Transition은 조합규칙(Compostion Rule)을 나타낸다. ExtendedAttribute는 각각의 메타정보를 표현한다.
XPDL 기반의 인스턴트 웹 앱 메타모델에 대하여 이하 예시 코드를 통해 영화에 관련된 내용을 알려주는 인스턴트 웹 앱을 작성함에 있어서, 영화정보에 관한 시드앱과 영화티켓 예매에 관한 시드앱을 조합하는 경우를 가정하여 설명하기로 한다.
XPDL 기반의 인스턴트 웹 앱 메타모델의 각 영역 중에서 어플리케이션 영역과 액티비티 영역을 통해 다음의 정보를 확인할 수 있다(도 13 참조)."MovieTicketApp"이라는 시드앱을 사용하고 있고, 시드앱에는 "MovieTicketApp", "checkData", "checkVendor" 인터페이스가 정의되어 있으며, 조합에 사용한 액티비티는 "1" 및 "2"이며, 각각 "MovieTicketApp", "checkData" 인터페이스를 구현하고 있음을 확인할 수 있다.
다음으로 변환영역을 통해 워크플로우 정보를 확인할 수 있다(도 14 참조).
"p001"의 조합규칙이 사용되고 있으며, "p001"은 id가 "2"인 액티비티로부터 "3"인 액티비티를 실행하는 것에 관한 것이다.
또한, 실제 조합규칙을 통해서 액티비티가 실행될 때 사용될 파라미터 정보는 "FormalParameter"와 "ActualParameter"로 표현될 수 있다. 여기서, "FormalParameter"를 통해 입출력 명세를 표현하며, "ActualParameter"를 통해 실제 데이터를 표현하게 된다.
시드앱 메타모델의 메타정보는 app_id(시드앱 ID), name(시드앱 명칭), category(범주), developer(개발자 정보), version(버전), release_date(배포일), size(앱 크기(Byte)), rating(나이에 따른 사용제한정보), requires(실행에 필요한 기초정보), language(지원언어 목록), price(가격), currency(가격 산정 기준 통화), activities(액티비티 정보) 중 적어도 하나의 필수항목과, whats_new(버전별 설명), description(설명), user_data(사용자 정의 데이터) 중 적어도 하나의 부가항목으로 구성된다.
인스턴트 웹 앱의 메타정보는 app_id(시드앱 ID), name(시드앱 명칭), app_title(설치시 사용되는 이름), category(범주), developer(개발자 정보), version(버전), release_date(배포일). size(앱 크기(Byte)), rating(나이에 따른 사용제한정보), requires(실행에 필요한 기초정보), language(지원언어 목록), price(가격), currency(가격 산정 기준 통화), composition_rule(조합규칙), seed_app_id(조합에 사용된 시드앱 정보), activities(액티비티 정보) 중 적어도 하나의 필수 항목과, whats_new(버전별 설명), description(설명), user_data(사용자 정의 데이터) 중 적어도 하나의 부가항목으로 구성된다.
여기서, composition_rule은 IWA 메타모델의 transition 영역에 대응되고, activities는 IWA 메타모델의 activity 영역에 대응된다.
개발자 메타정보는 developer_id(개발자 ID), name(개발자 이름), role(권한), type(계정의 종류(기업, 개인 등)), email(이메일주소) 중 적어도 하나의 필수 항목과, url(홈페이지주소), phone(전화번호), contactName(기업계정의 담당자이름) 중 적어도 하나의 부가항목으로 구성된다.조합규칙 메타정보는 rule_id(조합규칙 ID), prev_specification_id(이전 명세 ID), next_specification_id(다음 명세 ID), conversion rule(변환규칙) 중 적어도 하나의 필수 항목으로 구성된다.
본 실시예에서, 시드앱의 조합 방식으로는 단순 조합, 조건(XOR) 조합, 분기(AND) 조합 등이 있을 수 있다.
단순 조합은 시드앱1과 시드앱2을 단순하게 연결하는 것이며, 조건 조합은 조건에 의해 연결관계가 변경되는 것이며, 분기 조합은 복수의 시드앱에 순차적으로 연결하는 것을 나타낸다.
웹 앱의 조합 사례에 대하여 관련 도면을 참조하여 설명하기로 한다.
도 15은 웹 앱의 단순 조합 사례를 나타낸 도면이고, 도 16는 웹 앱의 분기 조합 사례를 나타낸 도면이며, 도 17은 내부HTML을 이용한 웹 앱 조합을 나타낸 도면이고, 도 18은 포워딩 방식에 따른 웹 앱 조합을 나타낸 도면이며, 도 19는 Open API를 이용한 웹 앱 조합을 나타낸 도면이고, 도 20은 스크립트를 이용한 웹 앱 조합을 나타낸 도면이며, 도 21는 인스턴트 웹 앱의 기본 레이아웃 템플릿을 나타낸 도면이고, 도 22a~22l은 인스턴트 웹 앱을 생성하는 과정을 설명하기 위한 도면이다.
우선 도 15에 도시된 것과 같이 영화정보 앱과 영화예매 앱의 연결과 같이 단순 조합이 이루어질 수 있다.
영화정보 앱에 구현되어 있는 예매 버튼에 대해서 영화애매 앱을 조회하여 지정함으로써 조합이 가능하며, 개발자가 정의한 조합규칙을 이용하여 데이터 맵핑부(140)에서 자동으로 맵핑할 수 있다.
지정 방법은 사용자 화면에서 시드앱의 예매 버튼에 대해서 연결하고자 하는 시드앱(예를 들어, 도면에서는 CGV 영화예매 앱)을 드래그함으로써 예매 버튼에 할당되어 있는 영화예매 인터페이스가 CGV 영화예매 앱과 연동하여 동작할 수 있게 된다.
다음으로 도 16에 도시된 것과 같이 영화정보 앱과 영화예매 앱이 서버인증 결과에 의해 처리되도록 하는 조건에 의해 조합될 수 있다.
영화정보 앱과 영화예매 앱을 연결함에 있어서, 서버인증(Check_SSO)을 포함시키고, Check_SSO의 TransitionRestriction은 Transition p002-1과 p002-2를 비동기로 수행하도록 할 수 있다. p002-1은 ID 및 PW과 정상적으로 넘어온 경우이며, p002-2는 ID 혹은 PW 중 적어도 하나가 정상적으로 넘어오지 못한 경우를 나타낸다.
조합되는 앱은 도 17에 도시된 것과 같이 내부HTML(innerHTML) 형태로 합져질 수 있다.
도면에서는 영화정보 앱 내에 콘텐츠 영역이 고정영역으로 정의된 경우, 해당 고정영역에 영화예매에 관한 시드앱(CGV 앱 혹은 롯데시네마 앱)이 콘텐츠 형태로 조합되어 사용자에게 보다 직관적인 사용자 인터페이스를 제공할 수 있다.
콘텐츠 삽입의 경우에는 HTML의 IFRAME 태그에 메타모델을 적용하여 처리될 수 있다.
또한, 조합되는 시드앱이 내부HTML 형태로 합쳐짐에 있어서 콘텐츠 영역이 동적으로 처리될 수도 있다. 조합되기 전에는 영화정보 앱에서 콘텐츠 영역이 보여지지 않아, 영화정보 앱에 영화예매 앱을 조합하지 않아도 자연스러운 사용자 인터페이스를 구성할 수 있다.
이 경우에도 HTML의 IFRAME 태그에 메타모델을 적용하여 처리될 수 있으며, 콘텐츠 영역이 동적으로 조절하기 위해 width와 height 속성을 사용할 수 있습니다. IFRAME은 width="0", height="0"인 경우에 화면에 디스플레이하지 않고, width와 height 속성이 가변적인 속성이므로 메타모델로 정의되도록 할 수 있다.
다음으로 포워딩(forwarding)에 의한 웹 앱 조합도 가능할 수 있다.
도 18을 참조하면, 영화예매 버튼을 통해 포워딩 사용자 인터페이스가 호출되고, 포워딩 사용자 인터페이스에서 선택된 링크로 처리될 수 있다.
영화관련 정보 항목에 영화예매, 영화SNS, 영화관위치정보 항목이 포함되어 있으며, 각 항목마다 상응하는 시드앱이 연결되어 있을 수 있다.
이 경우 URL을 동적으로 리디렉션(redirection)할 수 있는 환경에서 메타모델을 해석하여 포워딩 처리가 이루어지도록 한다. 예를 들면, 서블릿(Servlet)을 통해 서비스되는 경우 서블릿이 메타모델을 해석하여 처리되도록 할 수 있다.
도 19을 참조하면, 오픈 API(Open API)를 제공하는 외부 웹 앱을 조합하는 경우는 다음과 같다.
일반적으로 외부 웹 앱은 HTTP Get 방식의 파라미터 또는 POST 방식의 XML, JSON으로 명세를 정의하고 있다. 이러한 외부 웹 앱의 파라미터 부분을 메타모델의 인터페이스로 추출할 수 있으며, URL을 메타모델로 정의해야 한다. 예를 들면, Get 방식을 사용하는 외부 웹 앱인 경우 HTML의 FORM 태그에 메타모델을 적용하여 처리할 수 있다.
즉, 개발자가 외부 웹 앱을 시드앱으로 래핑(Wrapping)하여 생성하게 함으로써, 인스턴트 웹 앱 조합 장치에서 일반 시드앱과 동일한 방법으로 조합할 수 있게 된다.
도 20을 참조하면, 스크립트(Script)가 포함된 웹 앱을 조합하는 경우는 다음과 같다.
비밀번호와 같이 보안처리가 필요할 경우에 스크립트가 중간에 개입하여 처리될 수 있다. 메타모델에 ExtendAttribute의 스크립트 영역을 추가하여 사용자 인터페이스 엔진이 처리할 수 있다.
본 실시예에 따른 인스턴트 웹 앱 조합 장치에서 시드앱들을 조합하는 경우 반복되는 작업이 많거나 전문성이 필요한 부분을 자동화시켜 엔드 유저(End-User)도 아이디어만 있으면 시드앱들을 조합하여 인스턴트 웹 앱을 만들도록 할 수 있다.
도 1에 도시된 인스턴트 웹 앱 조합 장치(100)의 구성요소 중에서 화면 구성부(120), 워크플로우 구성부(130), 데이터 맵핑부(140) 중 적어도 하나에 대해서 자동화 적용이 가능하다.
화면 구성부(120)에서는 화면전환 사용자 인터페이스를 자동 생성함으로써 시드앱 간에 일일이 화면전환 사용자 인터페이스를 구성하는 수고를 덜어줄 수 있다.
워크플로우 구성부(130) 및 데이터 맵핑부(140)에서는 각각 워크플로우 구성 자동화 및 입출력 데이터 맵핑 자동화를 통해 전문성이 없어도 시드앱을 조합할 수 있도록 한다.
데이터 맵핑부(140)에서의 입출력 데이터 맵핑 자동화의 경우, 데이터 맵핑을 조합규칙이 자동적으로 해줄 수 있다. 즉, 사용자가 매 조합 때마다 출력 명세와 입력 명세에 대하여 하나하나 어떤 변수가 어떤 변수로 이어지는지를 설명해주는 과정을 생략하고, 조합규칙의 도입을 통해 조합이 가능한 두 시드앱 사이를 자동으로 연결해 주어 사용자가 정확한 명세를 알지 못하는 경우에도 조합이 가능하도록 할 수 있다.
이는 시드앱에 있는 단위 기능 모듈의 액티비티가 입출력 명세를 가지고 있고, 이 정보를 기반으로 선택된 시드앱들 내의 액티비티들의 입출력 명세에 맞는 조합규칙을 찾아서 자동적으로 매칭함으로써 가능할 수 있다.
조합규칙의 경우 이전 명세와 다음 명세를 정의하고 있어, 조합규칙을 찾아 내면 자동적으로 시드앱이 조합될 수 있다.
워크플로우 구성부(130)에서의 워크플로우 구성 자동화의 경우, 사용자에 의해 선택된 시드앱들로 이루어진 가능한 워크플로우들 중에서 사용자가 선택할만한 적절한 워크플로우를 골라서 추천해 줄 수 있다. 사용자는 워크플로우 관련 지식이 부족한 경우에도 추천된 조합 상태들을 직접 실행해 보면서 어느 것을 고를지 선택할 수 있다.
시드앱들의 명세로부터 조합 가능한 워크플로우를 구하고, 그 중에서 사용자들의 앱 제작 경향에 기초하여 우선순위를 정하여 사용자에게 추천해 줄 수 있다.
여기서, 워크플로우의 추천 시스템으로는 협업 필터링(Collaborative filtering), 콘텐츠 기반 필터링(Content-based filtering)과 같은 개인화(Personalization) 추천 시스템, 지식 기반 필터링(Knowledge filtering)과 같은 지식 기반 추천 시스템, 기계 학습(Machine Learning)을 통한 추천 시스템 등이 있을 수 있다.
협업 필터링의 경우 비슷한 유형의 사람들이 동일하게 좋아하는 콘텐츠를 추천하며, 예를 들어 영화, 음악 등의 단순 선택 콘텐츠 추천에 적합하다. 콘텐츠 기반 필터링의 경우 개인의 과거 호불호를 통해 내용이 비슷한 콘텐츠를 추천하며, 예를 들어 영화, 음악 등의 단순 선택 콘텐츠 추천에 적합하다. 지식 기반 필터링의 경우 논리적 제약사항이나 상대적 케이스 비교를 통해 적합한 추천 대상을 찾는 것으로, 비교 가능한 수치가 명확히 알려져 있는 대상을 추천하는데 적합하다. 기계 학습의 경우 과거의 경험을 토대로 평가 함수를 학습해 추천하게 되며, 올바른 추천을 위해서는 많은 학습데이터가 필요하게 된다.
협업 필터링, 콘텐츠 기반 필터링은 사용자에게 추가할 시드앱을 추천할 때 알맞은 방식이며, 기계 학습 방식은 워크플로우 자동 생성에 알맞은 방식일 수 있다.
화면 구성부(120)에서의 화면전환 이벤트 사용자 인터페이스 구성 역시 자동적으로 만들어질 수 있다. 시드앱을 조합하는 과정에서 화면전환 이벤트 사용자 인터페이스를 자동적으로 생성해주어, 조합을 변경할 때 연관된 페이지들이 어떤 방식으로 화면전환 하는지 지정하는 수고를 덜어줄 수 있다.
또한, 워크플로우에서 수행 가능한 이벤트 사용자 인터페이스에 대해 활성/비활성 또는 보임/숨김과 같은 제어를 수행할 수 있다.
레이아웃 템플릿(LayOut Template)은 인스턴트 웹 앱의 기본 사용자 인터페이스 레이아웃으로, 화면 구성부(120)에서는 레이아웃 템플릿 기반으로 인스턴트 웹 앱이 동작될 수 있도록 레이아웃 템플릿을 제공할 수 있다.
레이아웃 템플릿의 경우 N스크린(N-Screen)을 지원할 수 있고, 시드앱 간의 화면전환 이벤트를 처리할 레이어를 포함할 수 있다. 또한, 인스턴트 웹 앱의 설정 및 라이선스 정보를 보여줄 수 있는 메뉴를 포함하고, 다양한 레이아웃 템플릿을 적용하여 인스턴트 웹 앱이 구동될 수 있도록 한다.
도 21에 도시된 것과 같이 기본 레이아웃 템블릿(400)은 상단의 타이틀 영역(410), 하단의 앱 전환 아이콘 영역(430) 및 메뉴(440), 중간의 시드앱 임베디드 영역(420)을 포함하도록 정의될 수 있다. 여기서, 상하 방향 혹은 좌우 방향으로 N스크린이 적용될 수 있다.
인스턴트 웹 앱의 경우 테마(Theme)가 정의될 수 있다.
테마는 인스턴트 웹 앱이 여러 종류의 시드앱들의 조합을 통해 생성되었기 때문에 하나의 앱으로 개발된 것과 같이 이질감 없는 사용자 인터페이스 디자인 적용을 필요로 하기에 정의된 것으로, 인스턴트 웹 앱은 테마 아키텍처를 정의하고 구동되도록 할 수 있다.
IWA 테마는 인스턴트 웹 앱의 컴포넌트 설정을 교체할 수 있고, 레이아웃과 컴포넌트의 CSS와 이미지를 교체할 수 있다. 사용자 인터페이스 엔진의 설정 변경을 통해 실시간으로 테마를 적용할 수 있다.
여기서, 테마 아키텍처는 다음과 같다. 개발자는 시드앱 개발 시에 기본 테마를 사용하거나 개발자가 정의한 테마로 개발할 수 있다. 조합자는 테마 관리자를 통해 시드앱 별로 변경 가능한 테마를 실시간으로 적용하여 확인할 수 있다. 사용자 인터페이스 엔진은 테마 관리자를 통해 정의된 설정파일을 해석하여 테마를 실시간으로 적용한다.
웹 앱의 조합에 있어서 다음과 같은 제약사항이 있다.
조합은 웹 앱의 조합만이 가능하며, 조합 단위는 시드앱으로 한정된다. URL 링크 혹은 Open API 조합은 시드앱 형태로 래핑되어 있어야 한다.
인 앱 확장은 인스턴트 웹 앱에 시드앱을 추가 또는 삭제하는 기능으로 제한된다.
모바일 웹 앱을 재사용하기 위해서는 모바일 웹 앱을 시드앱으로 래핑하는 작업이 필요하다. 이 경우 개발자는 기존 모바일 웹 앱을 호출할 수 있고 시드앱 규칙을 준수하는 웹 앱 래퍼(WebApp Wrapper)를 개발할 필요가 있다. 그리고 개발자가 시드앱 명세 및 조합규칙을 정의해야 하며, 테마를 적용할 수는 없으며, 크로스 도메인(Cross Domain)에 따른 접근 제약이 발생할 수 있다.
인스턴트 웹 앱 조합 장치(100)에서 시드앱을 조합하여 인스턴트 웹 앱을 생성하는 과정을 예시 화면을 중심으로 설명하기로 한다.
도 22a에는 인스턴트 웹 앱의 메인 화면이 도시되어 있다.
A는 IWA 메인 화면이고, B는 각종 설정과 관련된 기능 버튼으로 클릭 시 C 영역과 같이 감춰져 있던 기능 버튼 리스트가 출력될 수 있다.
Config 아이콘은 IWA 설정을 위한 아이콘이며, Composer 아이콘은 컴포저 메인 화면으로 이동하고, AddApp 아이콘은 컴포저 메인 화면에서 제공되지만 도면에서와 같이 SeedApp 추가 화면이동을 줄이기 위하여 IWA 메뉴로 등록할 수도 있다.
도 22b에는 컴포저 메인 화면이 도시되어 있다.
컴포저 메인 화면(A)을 통해 기본정보 및 SeedApp을 등록하며, App 조합 환경을 구성한다. 각 아이콘의 기능은 다음과 같다.
Basic 아이콘은 IWA 타이틀, 아이콘, 배경이미지 등의 기본정보를 등록하며, SeedApp 아이콘은 SeedApp을 추가한다. Notice 아이콘은 컴포징 공지사항에 관한 것이며, Theme 아이콘은 테마를 설정하고, Help 아이콘은 도움말에 관한 것이다.
도 22c에는 컴포저 메인 화면의 Basic 아이콘을 선택한 경우 표시되는 기본정보 화면에 도시되어 있다.
기본정보 화면에는 IWA 타이틀, 카테고리, 아이콘, 시작이미지를 정의할 수 있으며, MAKE APP 버튼을 이용하여 최종 IWA로 빌드 요청을 할 수 있다.
도 22d에는 SeedApp 아이콘을 선택한 경우 표시되는 SeedApp 메인 화면이 도시되어 있다.
SeedApp 메인 화면은 SeedApp 등록을 위한 검색 화면으로, "B" 영역을 선택하면 SeedApp 검색 상세 항목이 슬라이드로 제공될 수 있다.
검색어를 입력하면 조합 가능한 SeedApp의 액티비티 리스트가 조회되며(C 참조), 액티비티 리스트의 Add 버튼(D 참조)을 선택하면 SeedApp이 추가되며 액티비티 타이틀을 선택하게 되면 SeedApp의 상세 조회 화면으로 이동할 수 있다.
도 22e에는 검색 상세 슬라이드 메뉴가 도시되어 있다.
검색 시작 포인트와 카테고리 지정 화면은 슬라이드 되어 화면을 덮거나 밀어서 나올 수 있으며(A 참조), 시드앱 선택 및 카테고리 지정이 가능하다.
도 22f에는 액티비티 리스트의 타이틀을 선택한 경우 이동되는 SeedApp 상세 정보 화면이 도시되어 있다. 시드앱 관련 정보(Description, Information, Developer Information, Version Update History 등)를 확인할 수 있다.
예를 들어, '도둑들'이라는 SeedApp을 선택하게 되면, 도 22g에 도시된 것과 같이 IWA 메인 화면으로 앱을 확인할 수 있다. 그리고 도둑들 시드앱으로 화면을 전환할 수 있는 아이콘이 화면전환 사용자 인터페이스에 자동 생성된다.
E 영역의 아이콘을 선택하면 화면전환 사용자 인터페이스 메뉴가 하단에서 슬라이드되며, D 영역의 아이콘을 선택하면 IWA 메뉴가 하단에서 슬라이드된다.
다음으로 SeedApp 추가 화면을 통해 영화 예매를 검색한 결과 화면이 도시되어 있다(도 22h 참조).
검색 기준 SeedApp을 기본으로 엔진에서 선정하지만 사용자가 현재 추가된 SeedApp들 중에 선택할 수 있다.
기준 SeedApp과 조합될 수 있는 SeedApp만이 검색결과로 디스플레이되도록 할 수도 있다.
영화예매 SeedApp을 추가한 결과 화면이 도시되어 있다(도 22i 참조).
화면전환 메뉴 영역에 영화예매 아이콘이 자동으로 추가된 것을 확인할 수 있다.
처음에 추가한 도둑들 앱은 앱 화면 내에 아이콘을 추가할 수 있는 영역과 위젯으로 추가할 수 있는 영역을 제공하고 있는 SeedApp이다.
화면전환 메뉴에 추가된 영화예매 아이콘을 드래그하여 도둑들 SeedApp에 아이콘을 위치시킬 수 있다(도 22j 참조). 또는 도둑들 SeedApp의 위젯 영역에 영화예매 아이콘을 드레그하여 위젯으로 콘텐츠를 삽입한 화면이다(도 22k 참조).
컴포저 메인 화면의 Theme 아이콘을 선택하여 IWA의 테마를 정의할 수도 있다.
조합 완료 후 또는 조합하면서 현재까지 조합된 결과를 시뮬레이션할 수도 있다.
UI 전환 메뉴의 도둑들 아이콘을 이용하여 도둑들 화면으로 이동할 수 있다.
도둑들의 SeedApp의 IconPostion 영역에 영화예매 아이콘이 추가되어 있고, 콘텐츠를 위젯으로 추가하여 인스턴트 웹 앱 생성을 완료한 결과 화면이 도 22l에 도시되어 있다.
본 실시예에 따른 인스턴트 웹 앱 조합 시스템은 인터페이스가 동적으로 변경될 수 있는 메타모델을 적용하여 이미 개발되어 있는 웹 앱들을 조합하여 신규 기능의 웹 앱을 만들 수 있도록 지원해 주어, 프로그래밍 지식이 부족해도 아이디어만 있다면 시드앱들을 조합해 원하는 앱을 만들 수 있도록 한다. 그리고 결과 화면 중심으로 작업하여 완성된 앱이 어떻게 동작할지 쉽게 예상할 수 있도록 한다.
또한, 자동화된 시드앱 검증 절차 및 테스트를 통해 시드앱을 믿고 조합할 수 있다. 간편한 모니터링 시스템과, 문제 발생시 여러 해결방법을 제시해 사용자가 해결방법을 선택할 수 있도록 한다. IWA 조합 버전 관리를 지원해 조합이 잘못되어도 언제든지 롤백할 수 있다.
기기종류, 운영체제, 브라우저, 디스플레이 크기 등에 상관없이 웹이 구동될 수 있는 환경이라면 어디서나 동작하도록 빌드될 수 있다.
본 발명의 일 실시예에 따른 인스턴트 웹 앱 조합 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 즉, 기록 매체는 컴퓨터에 상술한 각 단계를 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체가 될 수 있다.
상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합한 형태로 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(Magnetic Media), CD-ROM, DVD와 같은 광기록 매체(Optical Media), 플롭티컬 디스크(Floptical Disk)와 같은 자기-광 매체(Magneto-Optical Media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다.
상기에서는 본 발명의 실시예를 참조하여 설명하였지만, 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
100: 인스턴트 웹 앱 조합 장치 110: 시드앱 검색부
120: 화면 구성부 130: 워크플로우 구성부
140: 데이터 맵핑부 150: 웹 앱 빌드부
200: IWA 210, 220, 230: 시드앱
211, 212, 221, 222, 231: 단위 기능 모듈
10: 메타모델 저장소 11: 시드앱 메타모델
12: 조합규칙 메타모델 20: 사용자 단말
21: 사용자 인터페이스 엔진 152: 런타임 엔진

Claims (8)

  1. 하나 이상의 시드앱(SeedApp)을 조합하여 인스턴트 웹 앱(Instant Web App)을 조합하는 시스템으로서,
    시드앱 메타모델 및 조합규칙 메타모델을 저장하는 메타모델 저장소;
    상기 메타모델 저장소에서 조합 대상으로 선택된 시드앱에 상응하는 상기 시드앱 메타모델과 상기 조합 대상으로 선택된 시드앱 간의 조합을 위한 조합규칙 메타모델을 독출하여 인스턴트 웹 앱으로 조합하는 컴포저(composer)를 포함하되,
    상기 인스턴트 웹 앱은 웹 앱 조합 메타모델이 적용된 것을 특징으로 하는 인스턴트 웹 앱 조합 시스템.
  2. 제1항에 있어서,
    상기 웹 앱 조합 메타모델은 XPDL(Xml Process Definition Language) 기반으로,
    모델 내에서 비즈니스의 로직을 가지고 있는 액티비티 타입(type)의 선언 영역인 어플리케이션(Application) 영역, 어플리케이션에서 선언된 액티비티 타입에 대해 인스턴스 데이터(instance data)를 표현하기 위한 영역인 액티비티(Activity) 영역, 액티비티 간의 플로우(flow)를 표현하기 위한 영역인 변환(Transition) 영역으로 구분되는 것을 특징으로 하는 인스턴트 웹 앱 조합 시스템.
  3. 제2항에 있어서,
    상기 시드앱 메타모델은 상기 어플리케이션 영역 및 상기 액티비티 영역을 통해 표현되고, 상기 조합규칙 메타모델은 상기 변환 영역을 통해 표현되는 것을 특징으로 하는 인스턴트 웹 앱 조합 시스템.
  4. 제3항에 있어서,
    상기 컴포저는 상기 메타모델 저장소에서 상기 시드앱 메타모델을 독출하여 상기 어플리케이션 영역 및 상기 액티비티 영역을 조합하고, 상기 조합규칙 메타모델을 독출하여 상기 변환 영역을 조합함으로써, 상기 인스턴트 웹 앱의 메타모델을 구성하는 것을 특징으로 하는 인스턴트 웹 앱 조합 시스템.
  5. 제4항에 있어서,
    신규로 구성된 상기 인스턴트 웹 앱의 메타모델은 상기 메타모델 저장소에 시드앱 메타모델로서 저장되는 것을 특징으로 하는 인스턴트 웹 앱 조합 시스템.
  6. 제1항에 있어서,
    웹 앱 조합 메타모델은 상기 인스턴트 웹 앱을 구성하는 상기 시드앱들 간의 인터페이스가 동적으로 변경 가능한 것을 특징으로 하는 인스턴트 웹 앱 조합 시스템.
  7. 제1항에 있어서,
    상기 컴포저는 상기 조합규칙 메타모델에 따라 상기 시드앱 메타모델 간에 입출력 파라미터에 상응하는 워크플로우(workflow)가 구성되고 데이터 변환이 이루어지도록 하는 명세 연결을 수행하는 것을 특징으로 하는 인스턴트 웹 앱 조합 시스템.
  8. 제1항에 있어서,
    상기 컴포저는 조합 대상으로 선택된 시드앱 메타모델에 포함된 단위 기능 모듈의 액티비티가 가지고 있는 입출력 파라미터에 맞는 조합규칙 메타모델을 찾아 자동적으로 매칭하는 것을 특징으로 하는 인스턴트 웹 앱 조합 시스템.
KR1020130155534A 2013-12-13 2013-12-13 웹 앱 조합 메타모델이 적용된 인스턴트 웹 앱 조합 시스템 KR101414797B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130155534A KR101414797B1 (ko) 2013-12-13 2013-12-13 웹 앱 조합 메타모델이 적용된 인스턴트 웹 앱 조합 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130155534A KR101414797B1 (ko) 2013-12-13 2013-12-13 웹 앱 조합 메타모델이 적용된 인스턴트 웹 앱 조합 시스템

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020140047875A Division KR20150069987A (ko) 2014-04-22 2014-04-22 웹 앱 조합 메타모델이 적용된 인스턴트 웹 앱 조합 시스템

Publications (1)

Publication Number Publication Date
KR101414797B1 true KR101414797B1 (ko) 2014-07-03

Family

ID=51741041

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130155534A KR101414797B1 (ko) 2013-12-13 2013-12-13 웹 앱 조합 메타모델이 적용된 인스턴트 웹 앱 조합 시스템

Country Status (1)

Country Link
KR (1) KR101414797B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000330771A (ja) 1999-05-24 2000-11-30 Mitsubishi Electric Corp ソフトウェア要素選択方式及びソフトウェア要素選択方法及びソフトウェア要素選択方法を計算機に実現させるためのプログラムを記録した計算機読取可能な記録媒体
JP2004021671A (ja) 2002-06-18 2004-01-22 Nec System Technologies Ltd ワークフローアプリケーション雛型生成システム及びワークフローアプリケーション雛型生成プログラム
JP2005339029A (ja) 2004-05-25 2005-12-08 Canon Inc プログラム連携システム
KR20060114517A (ko) * 2005-05-02 2006-11-07 (주)이포넷 웹 애플리케이션 구축용 프레임워크 및 그 웹 서버

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000330771A (ja) 1999-05-24 2000-11-30 Mitsubishi Electric Corp ソフトウェア要素選択方式及びソフトウェア要素選択方法及びソフトウェア要素選択方法を計算機に実現させるためのプログラムを記録した計算機読取可能な記録媒体
JP2004021671A (ja) 2002-06-18 2004-01-22 Nec System Technologies Ltd ワークフローアプリケーション雛型生成システム及びワークフローアプリケーション雛型生成プログラム
JP2005339029A (ja) 2004-05-25 2005-12-08 Canon Inc プログラム連携システム
KR20060114517A (ko) * 2005-05-02 2006-11-07 (주)이포넷 웹 애플리케이션 구축용 프레임워크 및 그 웹 서버

Similar Documents

Publication Publication Date Title
US11921798B2 (en) Generating a contextual search stream
CN107820701B (zh) 开发者交换系统
US20190196672A1 (en) Visual effects system for "big data" analysis workflow editors, distribution platforms, execution engines, and management systems comprising same
CN102272752B (zh) 管理和自动链接数据对象
US20160313874A1 (en) Visual effects system for "big data" analysis workflow editors, distribution platforms, execution engines, and management systems comprising same
US20100131869A1 (en) Technology for generating service program
CN102054021A (zh) 使用简档的web门户应用定制方法和系统
KR20130110610A (ko) 데이터베이스 구축 방법, 이를 실행하는 데이터베이스 구축 서버 및 이를 저장한 기록 매체
CN100437478C (zh) 交互式无线应用程序系统和方法
US20050076330A1 (en) Browser-based editor for dynamically generated data
JP5588695B2 (ja) コンテンツ共有システム
KR20150058237A (ko) 간략화된 지식공학 방법 및 시스템
US11829575B1 (en) Workflow assembly tool and workflow model
CN113900636A (zh) 一种自助化渠道业务流程开发系统及其开发方法
US20140095978A1 (en) Mash-up authoring device using templates and method thereof
US20050257190A1 (en) Developing and executing applications with configurable patterns
KR101414795B1 (ko) 인스턴트 웹 앱 생성 장치 및 방법
CN113095056B (zh) 生成方法、处理方法、装置、电子设备以及介质
KR20150069987A (ko) 웹 앱 조합 메타모델이 적용된 인스턴트 웹 앱 조합 시스템
KR101414797B1 (ko) 웹 앱 조합 메타모델이 적용된 인스턴트 웹 앱 조합 시스템
Alor-Hernández Frameworks, Methodologies, and Tools for Developing Rich Internet Applications
Picozzi End user develompent of mashups: models, composition paradigms and tools
US20200293156A1 (en) Studio builder for interactive media
Albertos Marco et al. A model-based approach for describing offline navigation of web applications
JP2020181516A (ja) テンプレート検索システムおよびテンプレート検索方法

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
A107 Divisional application of patent
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20170512

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190604

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20200310

Year of fee payment: 7