KR20180125387A - 소프트웨어 플랫폼을 제공하는 서버 및 그 동작방법 - Google Patents

소프트웨어 플랫폼을 제공하는 서버 및 그 동작방법 Download PDF

Info

Publication number
KR20180125387A
KR20180125387A KR1020180050463A KR20180050463A KR20180125387A KR 20180125387 A KR20180125387 A KR 20180125387A KR 1020180050463 A KR1020180050463 A KR 1020180050463A KR 20180050463 A KR20180050463 A KR 20180050463A KR 20180125387 A KR20180125387 A KR 20180125387A
Authority
KR
South Korea
Prior art keywords
client device
software
software package
information
platform
Prior art date
Application number
KR1020180050463A
Other languages
English (en)
Other versions
KR102166336B1 (ko
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 US15/980,334 priority Critical patent/US10754635B2/en
Priority to CN201880092893.3A priority patent/CN112106025A/zh
Priority to PCT/KR2018/006983 priority patent/WO2019212087A1/en
Priority to EP18917328.9A priority patent/EP3776186B1/en
Publication of KR20180125387A publication Critical patent/KR20180125387A/ko
Application granted granted Critical
Publication of KR102166336B1 publication Critical patent/KR102166336B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/76Adapting program code to run in a different environment; Porting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • H04L41/082Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)

Abstract

통신부, 하나 이상의 인스트럭션들을 저장하는 메모리, 및 메모리에 저장된 하나 이상의 인스트럭션들을 실행하는 프로세서를 포함하고, 프로세서는 클라이언트 장치로부터, 소프트웨어 플랫폼을 탑재할 전자 장치에 대한 정보를 수신하여, 전자 장치에 탑재 가능한 소프트웨어 패키지들에 대한 정보를 클라이언트 장치로 전송하도록 통신부를 제어하고, 클라이언트 장치로부터, 소프트웨어 패키지들 중 선택된 제1 소프트웨어 패키지에 대한 정보 요청을 수신하여, 제1 소프트웨어 패키지와 연관된 제2 소프트웨어 패키지를 검출하고, 제1 소프트웨어 패키지에 대한 정보 및 제2 소프트웨어 패키지에 대한 정보를 클라이언트 장치로, 전송하도록 통신부를 제어하며, 클라이언트 장치에서 선택된 소프트웨어 패키지들에 기초하여, 플랫폼 이미지를 생성하는, 서버가 개시된다.

Description

소프트웨어 플랫폼을 제공하는 서버 및 그 동작방법{Server for providing software platform and operating method for the same}
다양한 실시예들은 소프트웨어 플랫폼을 제공하는 서버 및 그 동작방법에 관한 것으로서, 더욱 상세하게는 소프트웨어 플랫폼을 구성하는 소프트웨어 패키지들 중 사용자에게 필요한 소프트웨어 패키지들을 직관적으로 제공할 수 있는 서버 및 그 동작방법에 관한 것이다.
소프트웨어 플랫폼을 사업자의 디바이스에 탑재하고 운영하기 위해서는 플랫폼을 잘 이해하는 다수의 전문 개발자와 별도의 개발 인프라스트럭쳐(Infrastucture)가 필요하다. 제품의 초기 개발 단계에서는 소프트웨어 플랫폼을 구성하는 요소들을 추가 또는 삭제하여, 소프트웨어 플랫폼을 생성 및 테스트하는 과정을 여러 번 반복하게 된다. 이때, 사업자는 소프트웨어 플랫폼의 모든 패키지들을 빌드(build)하여 생성되는 플랫폼 이미지를 타겟 디바이스에 탑재하여 사용한다. 또한, 사업자는 필요 시, 직접 패키지들을 수동으로 재구성하여, 제작하고자 하는 제품에 맞게 직접 최적화하는 과정을 거친다.
모든 패키지들을 포함시켜 플랫폼 이미지를 생성하는 경우, 사업자는 특정 패키지들이 필수로 구성되어야 하는 패키지인지 결정할 수 있어야 하며, 필요 없는 패키지를 파악해서 일일이 제외시켜야 한다. 이때, 사업자는 소프트웨어 플랫폼에 대한 기술 지식을 가지고 있어야, 소프트웨어 플랫폼을 구성하기 위해 필요한 패키지인지 필요 없는 패키지인지를 분리하여, 최적화된 패키지들로 구성된 소프트웨어 플랫폼을 제작할 수 있다.
다양한 실시예들은, 소프트웨어 플랫폼을 탑재할 전자 장치 정보에 기초하여, 사용자가 필요로 하는 소프트웨어 패키지들만으로 플랫폼 이미지를 생성할 수 있는 서버 및 서버의 동작방법을 제공할 수 있다.
복수의 소프트웨어 패키지들 중 선택된 소프트웨어 패키지와 연관된 소프트웨어 패키지에 대한 정보를 제공할 수 있는 서버 및 그 동작방법을 제공할 수 있다.
일 실시예에 따른 소프트웨어 플랫폼을 제공하는 서버는, 통신부, 하나 이상의 인스트럭션들을 저장하는 메모리, 및 상기 메모리에 저장된 상기 하나 이상의 인스트럭션들을 실행하는 프로세서를 포함하고, 상기 프로세서는 클라이언트 장치로부터, 상기 소프트웨어 플랫폼을 탑재할 전자 장치에 대한 정보를 수신하여, 상기 전자 장치에 탑재 가능한 소프트웨어 패키지들에 대한 정보를 상기 클라이언트 장치로 전송하도록 상기 통신부를 제어하고, 상기 클라이언트 장치로부터, 상기 소프트웨어 패키지들 중 선택된 제1 소프트웨어 패키지에 대한 정보 요청을 수신하여, 상기 제1 소프트웨어 패키지와 연관된 제2 소프트웨어 패키지를 검출하고, 상기 제1 소프트웨어 패키지에 대한 정보 및 제2 소프트웨어 패키지에 대한 정보를 상기 클라이언트 장치로, 전송하도록 상기 통신부를 제어하며, 상기 클라이언트 장치에서 선택된 소프트웨어 패키지들에 기초하여, 플랫폼 이미지를 생성한다.
일 실시예에 따른 소프트웨어 플랫폼을 제공하는 서버의 동작 방법은, 클라이언트 장치로부터, 상기 소프트웨어 플랫폼을 탑재할 전자 장치에 대한 정보를 수신하는 단계, 상기 전자 장치에 탑재 가능한 소프트웨어 패키지들에 대한 정보를 상기 클라이언트 장치로 전송하는 단계, 상기 클라이언트 장치로부터, 상기 소프트웨어 패키지들 중 선택된 제1 소프트웨어 패키지에 대한 정보 요청을 수신하는 단계, 상기 제1 소프트웨어 패키지와 연관된 제2 소프트웨어 패키지를 검출하는 단계, 상기 제1 소프트웨어 패키지에 대한 정보 및 제2 소프트웨어 패키지에 대한 정보를 상기 클라이언트 장치로, 전송하는 단계, 및 상기 클라이언트 장치에서 선택된 소프트웨어 패키지들에 기초하여, 플랫폼 이미지를 생성하는 단계를 포함한다.
일 실시예에 따른 사용자는 소프트웨어 패키지들에 대한 별도의 지식이 없이도 사용자가 필요로 하는 소프트웨어 패키지들만으로 플랫폼 이미지를 생성할 수 있다.
일 실시예에 따른 서버는, 선택된 소프트웨어 패키지를 실행하기 위하여 필수로 구성되어야 하는 소프트웨어 패키지를 자동으로 검출하여 제공할 수 있다.
이에 따라, 사용자는 용이하게 소프트웨어 플랫폼을 생성할 수 있다.
도 1은 일 실시예에 따른, 소프트웨어 플랫폼을 제공하는 시스템을 나타내는 도면이다.
도 2는 일 실시예에 따른 서버의 구성을 나타내는 블록도이다.
도 3은 일 실시예에 따른 클라이언트 장치의 구성을 나타내는 블록도이다.
도 4는 일 실시예에 따른 클라이언트 장치 및 서버를 포함하는, 소프트웨어 플랫폼을 제공하는 시스템의 동작방법을 나타내는 흐름도이다.
도 5는 일 실시예에 따른 서버의 동작방법을 나타내는 흐름도이다.
도 6 내지 도 10은, 일 실시예에 따른 서버에서 제공하는, 소프트웨어 플랫폼을 구성하기 위한 사용자 인터페이스를 설명하기 위해 참조되는 도면들로, 서버에서 제공하는 웹 페이지들이 클라이언트 장치에 표시되는 예들을 나타내는 도면들이다.
본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 본 발명에 대해 구체적으로 설명하기로 한다.
본 발명에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 한다.
명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 "...부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
아래에서는 첨부한 도면을 참고하여 실시예들에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
도 1은 일 실시예에 따른, 소프트웨어 플랫폼을 제공하는 시스템을 나타내는 도면이다.
일 실시예에 따른 소프트웨어 플랫폼을 제공하는 시스템은, 서버(100), 클라이언트 장치(200) 및 전자 장치(300)를 포함할 수 있다.
일 실시예에 따른 서버(100)는 소프트웨어 플랫폼을 구성하는 복수의 소프트웨어 패키지들을 제공할 수 있다. 일 실시예에 따른 서버(100)는 웹(Web) 서버 또는 웹 어플리케이션 서버(WAS)를 포함할 수 있으며, 소프트웨어 플랫폼 또는 복수의 소프트웨어 패키지들에 대한 정보를 웹을 통해 클라이언트 장치(200)로 제공할 수 있다. 다만, 이에 한정되는 것은 아니다.
일 실시예에 따른 서버(100)는 네트워크를 통하여, 클라이언트 장치(200)와 통신을 수행할 수 있다. 근거리 통신망(Local Area Network; LAN), 광역 통신망(Wide Area Network; WAN), 부가가치 통신망(Value Added Network; VAN), 이동 통신망(mobile radio communication network), 위성 통신망 및 이들의 상호 조합을 통하여 통신을 하게 하는 하나 이상의 구성요소를 포함할 수 있다. 다만, 이에 한정되지 않는다.
서버(100)는 클라이언트 장치(200)로부터 소프트웨어 플랫폼을 탑재할 전자 장치(300)에 대한 정보를 수신하고, 전자 장치(300)에 탑재 가능한, 소프트웨어 패키지들에 대한 정보를 클라이언트 장치(200)로 전송할 수 있다.
또한, 서버(100)는 클라이언트 장치(200)에서 선택된 소프트웨어 패키지와 연관된 소프트웨어 패키지를 검출하고, 검출된 소프트웨어 패키지가 자동으로 선택되도록 제어할 수 있다.
또한, 서버(100)는 클라이언트 장치(200)로부터 플랫폼 이미지 생성 요청을 수신하면, 클라이언트 장치(200)에서 선택된 소프트웨어 패키지들에 기초하여, 플랫폼 이미지를 생성할 수 있다.
일 실시예에 따른 클라이언트 장치(200)는, 다양한 형태로 구현될 수 있다. 예를 들어, 클라이언트 장치(200)는 휴대폰, 스마트 폰(smart phone), 노트북 컴퓨터(laptop computer), 데스크 탑, 태블릿 PC, 전자책 단말기, 디지털 방송용 단말기, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 네비게이션, MP3 플레이어, 캠코더, IPTV(Internet Protocol Television), DTV(Digital Television), 착용형 기기(wearable device) 등과 같은 다양한 전자 장치로 구현될 수 있다. 다만, 이에 한정되는 것은 아니다.
일 실시예에 따른 클라이언트 장치(200)는 서버(100)로부터 전자 장치(300)에 탑재 가능한 소프트웨어 패키지들에 대한 정보를 수신하여, 클라이언트 장치 사용자(예를 들어, 소프트웨어 개발자)에게 제공할 수 있다. 예를 들어, 클라이언트 장치(200)는 소프트웨어 패키지들을 선택할 수 있는 리스트를 표시할 수 있다. 이에 따라, 클라이언트 장치 사용자(예를 들어, 소프트웨어 개발자)는 복수의 소프트웨어 패키지들 중 개발하고자 하는 소프트웨어의 기능 또는 특징에 대응되는 소프트웨어 패키지를 선택할 수 있다. 클라이언트 장치(200)는 사용자의 선택 입력을 수신하여, 선택된 소프트웨어 패키지에 대한 정보를 서버(100)로 요청할 수 있다.
클라이언트 장치(200)는 서버(100)로부터 선택된 소프트웨어 패키지에 대한 정보 및 선택된 소프트웨어 패키지와 연관된 소프트웨어 패키지에 대한 정보를 수신하여, 표시할 수 있다. 사용자는 표시된 정보에 기초하여, 다른 소프트웨어 패키지를 추가로 선택하거나, 소프트웨어 패키지의 선택을 해제할 수 있다. 다만, 이에 한정되는 것은 아니다.
또한, 클라이언트 장치(200)는 서버(100)로 플랫폼 이미지 생성을 요청할 수 있으며, 클라이언트 장치(200)는 서버(100)에서 생성된 플랫폼 이미지를 다운로드할 수 있다.
클라이언트 장치(200)는 다운로드한 플랫폼 이미지를 전자 장치(300)에 탑재할 수 있으며, 플랫폼 이미지가 탑재된 전자 장치(300)는 플랫폼 이미지에 기초하여, 해당 소프트웨어를 실행시킬 수 있다. 일 실시예에 따른 전자 장치(300)는 IoT 디바이스, 휴대폰, 태블릿 PC, 디지털 카메라, 캠코더, 노트북 컴퓨터(laptop computer), 태블릿 PC, 데스크탑, 전자책 단말기, 디지털 방송용 단말기, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 네비게이션, MP3 플레이어, 착용형 기기(wearable device), CE(Consumer Elctronics) 기기(예컨대, 디스플레이 패널을 갖는 냉장고, 에어컨 등) 등과 같은 다양한 전자 장치로 구현될 수 있으나, 이에 한정되지 않는다.
본 명세서의 실시예에서 “사용자”라는 용어는 서버(100), 클라이언트 장치(200) 또는 전자 장치(300)의 기능 또는 동작을 제어하는 사람을 의미하며, 개발자, 관리자 또는 설치 기사를 포함할 수 있다.
도 2는 일 실시예에 따른 서버의 구성을 나타내는 블록도이다.
도 2를 참조하면, 일 실시예에 따른 서버(100)는 통신부(110), 프로세서(120) 및 메모리(130)를 포함할 수 있다.
일 실시예에 따른 프로세서(120)는 서버(100)를 전반적으로 제어할 수 있다. 일 실시예에 따른 프로세서(120)는 메모리(130)에 저장되는 하나 이상의 프로그램들을 실행할 수 있다.
일 실시예에 따른 메모리(130)는 서버(100)를 구동하고 제어하기 위한 다양한 데이터, 프로그램 또는 어플리케이션을 저장할 수 있다. 메모리(130)에 저장되는 프로그램은 하나 이상의 인스트럭션들을 포함할 수 있다. 메모리(130)에 저장된 프로그램(하나 이상의 인스트럭션들) 또는 어플리케이션은 프로세서(120)에 의해 실행될 수 있다.
통신부(110)는 프로세서(120)의 제어에 의해 외부 장치 또는 외부 서버와 데이터 또는 신호를 송수신할 수 있다. 예를 들어, 프로세서(120)는 네트워크를 통하여 클라이언트 장치(200)와 데이터 또는 신호를 송수신하도록 통신부(110)를 제어할 수 있다.
통신부(110)는 근거리 통신망(Local Area Network; LAN), 광역 통신망(Wide Area Network; WAN), 부가가치 통신망(Value Added Network; VAN), 이동 통신망(mobile radio communication network), 위성 통신망 및 이들의 상호 조합을 통하여 통신을 하게 하는 하나 이상의 구성요소를 포함할 수 있다. 또한, 통신부(110)는 외부 장치 또는 외부 서버와 직접 무선랜(예를 들어, 와이-파이(Wi-Fi)) 등을 이용하여 무선으로 데이터 또는 신호를 송수신할 수 있다.
통신부(110)는 프로세서(120)의 제어에 의해 클라이언트 장치(200)로부터 소프트웨어 플랫폼을 탑재할 전자 장치에 대한 정보를 수신할 수 있으며, 전자 장치에 탑재 가능한 소프트웨어 패키지들에 대한 정보를 클라이언트 장치(200)로 전송할 수 있다. 이때, 소프트웨어 패키지들에 대한 정보는, 복수의 소프트웨어 패키지들을, 소프트웨어 패키지가 탑재될 디바이스, 제공되는 소프트웨어의 기능 또는 특징, API(Application Programming Interface) 설정 등에 따라 분류하여, 그룹화한 정보일 수 있다. 예를 들어, 소프트웨어 패키지들에 대한 정보는, 소프트웨어 패키지가 탑재될 디바이스 종류에 따라 구성 가능한 소프트웨어 패키지들 또는 필수로 구성되어야 하는 소프트웨어 패키지들에 대한 정보를 포함할 수 있다. 또한, 소프트웨어 패키지들에 대한 정보는, 제공되는 소프트웨어의 기능 또는 특징에 따라, 구성 가능한 소프트웨어 패키지들 또는 필수로 구성되어야 하는 소프트웨어 패키지들에 대한 정보를 포함할 수 있다. 또한, 소프트웨어 패키지들에 대한 정보는, 사용되는 API에 따라, 구성 가능한 소프트웨어 패키지들 또는 필수로 구성되어야 하는 소프트웨어 패키지들에 대한 정보를 포함할 수 있다. 다만, 이에 한정되는 것은 아니며, 다양한 기준으로 복수의 패키지들이 분류될 수 있다.
또한, 통신부(110)는 프로세서(120)의 제어에 의해 클라이언트 장치(200)로 소프트웨어 패키지들의 연관성 정보를 전송할 수 있다. 예를 들어, 클라이언트 장치(200)에서 제1 소프트웨어 패키지가 선택되는 경우, 프로세서(120)는 선택된 제1 소프트웨어 패키지와 연관된 제2 소프트웨어 패키지를 검출할 수 있다. 이때, 제2 소프트웨어 패키지는, 제1 소프트웨어 패키지를 실행하기 위하여 필수로 구성되어야 하는 소프트웨어 패키지 또는, 소프트웨어 플랫폼의 실행을 최적화하기 위하여, 제1 소프트웨어 패키지와 같이 구성되어야 하는 소프트웨어 패키지일 수 있다. 통신부(110)는 프로세서(120)의 제어에 의해, 제1 소프트웨어 패키지 정보 및 제2 소프트웨어 패키지 정보를 클라이언트 장치(200)로 전송할 수 있다.
또한, 통신부(110)는 프로세서(120)의 제어에 의해 클라이언트 장치(200)로부터 플랫폼 이미지 생성 요청을 수신할 수 있다. 프로세서(120)는 클라이언트 장치(200)에서 선택된 소프트웨어 패키지들에 기초하여 플랫폼 이미지를 생성할 수 있다. 예를 들어, 프로세서(120)는 클라이언트 장치(200)에서 선택된 소프트웨어 패키지들로 구성된 구성 파일을 생성하고, 생성된 구성 파일을 이용하여, 플랫폼 이미지를 생성할 수 있다.
또한, 서버(100)는 생성된 구성 파일이나 플랫폼 이미지를 서버(100)의 메모리(130)나 외부의 저장 장치에 저장할 수 있다. 예를 들어, 클라이언트 장치(200)의 요청으로 생성된 구성 파일이나 플랫폼 이미지를 해당 클라이언트 장치에 대응시켜 저장할 수 있다. 클라이언트 장치 사용자 별로 별도의 데이터베이스를 생성하여, 구성 파일이나 플랫폼 이미지를 저장할 수 있다.
또한, 서버(100)는 생성된 구성 파일이나 플랫폼 이미지를 클라이언트 장치(200)로 전송할 수 있다.
한편, 도 2에 도시된 서버(100)의 블록도는 일 실시예를 위한 블록도이다. 블록도의 각 구성요소는 실제 구현되는 서버(100)의 사양에 따라 통합, 추가, 또는 생략될 수 있다. 즉, 필요에 따라 2 이상의 구성요소가 하나의 구성요소로 합쳐지거나, 혹은 하나의 구성요소가 2 이상의 구성요소로 세분되어 구성될 수 있다. 또한, 각 블록에서 수행하는 기능은 실시예들을 설명하기 위한 것이며, 그 구체적인 동작이나 장치는 본 발명의 권리범위를 제한하지 아니한다.
도 4는 일 실시예에 따른 클라이언트 장치 및 서버를 포함하는, 소프트웨어 플랫폼을 제공하는 시스템의 동작방법을 나타내는 흐름도이다.
도 4를 참조하면, 일 실시예에 따른 클라이언트 장치(200)는 서버(100)가 제공하는 웹 사이트에 접속한 후, 클라이언트 장치 사용자의 로그인 정보를 이용하여, 웹 사이트에 로그인할 수 있다(S410). 클라이언트 장치(200)는 서버(100)로부터 웹 페이지 정보를 수신하고(S420), 웹 페이지를 표시할 수 있다.
이때, 웹 페이지는, 소프트웨어 플랫폼을 구성하기 위한 사용자 인터페이스를 포함할 수 있다. 예를 들어, 웹 페이지는, 서버(100)에서 제공되는 소프트웨어 플랫폼을 탑재할 수 있는 복수의 전자 장치들을 포함하는 전자 장치 리스트를 포함할 수 있다. 웹 페이지는 전자 장치 리스트에 포함된 복수의 전자 장치들을 선택할 수 있도록 구성될 수 있으나, 이에 한정되지 않는다.
클라이언트 장치(200)는 전자 장치 리스트에서, 소프트웨어 플랫폼을 탑재할 전자 장치를 선택하는 입력을 수신하여(S430), 서버(100)로 전자 장치에 대한 정보를 전송할 수 있다(S435).
서버(100)는 전자 장치에 탑재 가능한 소프트웨어 패키지들을 검출하고(S440), 검출된 소프트웨어 패키지들에 대한 정보를 클라이언트 장치(200)로 전송할 수 있다(S445).
이때, 소프트웨어 패키지들에 대한 정보는, 복수의 소프트웨어 패키지들을 소프트웨어 패키지가 탑재될 디바이스, 제공되는 소프트웨어의 기능 또는 특징, API(Application Programming Interface) 설정 등에 따라 분류하여, 그룹화한 정보일 수 있다. 예를 들어, 소프트웨어 패키지들에 대한 정보는, 소프트웨어 패키지가 탑재될 디바이스 종류에 따라 구성 가능한 소프트웨어 패키지들 또는 필수로 구성되어야 하는 소프트웨어 패키지들에 대한 정보를 포함할 수 있다. 또한, 소프트웨어 패키지들에 대한 정보는, 제공되는 소프트웨어의 기능 또는 특징에 따라, 구성 가능한 소프트웨어 패키지들 또는 필수로 구성되어야 하는 소프트웨어 패키지들에 대한 정보를 포함할 수 있다. 또한, 소프트웨어 패키지들에 대한 정보는, 사용되는 API에 따라, 구성 가능한 소프트웨어 패키지들 또는 필수로 구성되어야 하는 소프트웨어 패키지들에 대한 정보를 포함할 수 있다. 다만, 이에 한정되는 것은 아니며, 다양한 기준으로 복수의 패키지들이 분류될 수 있다.
클라이언트 장치(200)는 서버(100)로부터 수신한 소프트웨어 패키지들에 대한 정보에 기초하여, 소프트웨어 패키지들 중 제1 소프트웨어 패키지를 선택하는 입력을 수신하고(S450), 서버(100)로 제1 소프트웨어 패키지 정보를 요청할 수 있다(S455).
서버(100)는 제1 소프트웨어 패키지와 연관된 제2 소프트웨어 패키지를 검출할 수 있다(S460). 예를 들어, 제2 소프트웨어 패키지는, 제1 소프트웨어 패키지를 실행하기 위하여 필수로 구성되어야 하는 소프트웨어 패키지일 수 있다. 또는, 소프트웨어 플랫폼의 실행을 최적화하기 위하여, 제1 소프트웨어 패키지와 같이 구성되어야 하는 소프트웨어 패키지일 수 있다. 다만, 이에 한정되지 않는다.
서버(100)는 제1 소프트웨어 패키지 정보 및 제2 소프트웨어 패키지 정보를 클라이언트 장치(200)로 전송할 수 있다(S465).
클라이언트 장치(200)는 수신한 제1 소프트웨어 패키지 정보 및 제2 소프트웨어 패키지 정보를 표시할 수 있다(S470). 예를 들어, 제1 소프트웨어 패키지 및 제2 소프트웨어 패키지의 이름, 크기, 설치되는 크기(installed size), 버전 정보, 간단한 설명 등을 표시할 수 있다.
또한, 서버(100)는 클라이언트 장치(200)에서, 제1 소프트웨어 패키지가 선택되면, 제2 소프트웨어 패키지가 자동으로 선택되도록 제어할 수 있다. 또는, 서버(100)는 클라이언트 장치(200)에서, 제1 소프트웨어 패키지의 선택이 해제되면, 제2 소프트웨어 패키지의 선택도 자동으로 해제되도록 제어할 수 있다.
소프트웨어 패키지 정보에 기초하여, 소프트웨어 패키지 선택이 완료되면, 클라이언트 장치(200)는 플랫폼 이미지 생성을 서버(100)로 요청하고, 선택된 소프트웨어 패키지 정보를 서버(100)로 전송할 수 있다(S480).
서버(100)는 클라이언트 장치(200)에서 선택된 소프트웨어 패키지들에 기초하여, 플랫폼 이미지를 생성할 수 있다(S485). 예를 들어, 클라이언트 장치(200)에서 선택된 소프트웨어 패키지들로 구성된 구성 파일을 생성하고, 생성된 구성 파일을 이용하여, 플랫폼 이미지를 생성할 수 있다.
또한, 서버(100)는 생성된 구성 파일이나 플랫폼 이미지를 서버(100)의 메모리(130)나 외부의 저장 장치에 저장할 수 있다. 예를 들어, 클라이언트 장치(200)의 요청으로 생성된 구성 파일이나 플랫폼 이미지를 해당 클라이언트 장치에 대응시켜 저장할 수 있다. 서버(100)는 클라이언트 장치 사용자 별로 별도의 데이터베이스를 생성하여, 구성 파일이나 플랫폼 이미지를 저장할 수 있다.
또한, 서버(100)는 생성된 구성 파일이나 플랫폼 이미지를 클라이언트 장치(200)로 전송할 수 있다.
도 5는 일 실시예에 따른 서버의 동작방법을 나타내는 흐름도이다.
도 5를 참조하면, 일 실시예에 따른 서버(100)는 클라이언트 장치(200)로부터 소프트웨어 플랫폼을 탑재할 전자 장치에 대한 정보를 수신할 수 있다(S510).
예를 들어, 서버(100)는 클라이언트 장치(200)로 전자 장치를 선택할 수 있는 전자 장치 리스트를 전송하고, 클라이언트 장치(200)에서 선택된 전자 장치에 대한 정보를 수신할 수 있다.
서버(100)는 수신한 전자 장치 정보에 기초하여, 전자 장치에 탑재 가능한 소프트웨어 패키지를 검출하여, 검출된 소프트웨어 패키지들에 대한 정보를 클라이언트 장치로 전송할 수 있다(S520). 이때, 소프트웨어 패키지들에 대한 정보는, 복수의 소프트웨어 패키지들을 소프트웨어 패키지가 탑재될 디바이스, 제공되는 소프트웨어의 기능 또는 특징, API(Application Programming Interface) 설정 등에 따라 분류하여, 그룹화한 정보일 수 있다. 예를 들어, 소프트웨어 패키지들에 대한 정보는, 소프트웨어 패키지가 탑재될 디바이스 종류에 따라 구성 가능한 소프트웨어 패키지들 또는 필수로 구성되어야 하는 소프트웨어 패키지들에 대한 정보를 포함할 수 있다. 또한, 소프트웨어 패키지들에 대한 정보는, 제공되는 소프트웨어의 기능 또는 특징에 따라, 구성 가능한 소프트웨어 패키지들 또는 필수로 구성되어야 하는 소프트웨어 패키지들에 대한 정보를 포함할 수 있다. 또한, 소프트웨어 패키지들에 대한 정보는, 사용되는 API에 따라, 구성 가능한 소프트웨어 패키지들 또는 필수로 구성되어야 하는 소프트웨어 패키지들에 대한 정보를 포함할 수 있다. 다만, 이에 한정되는 것은 아니며, 다양한 기준으로 복수의 패키지들이 분류될 수 있다.
서버(100)는 클라이언트 장치(200)로부터 제1 소프트웨어 패키지 정보 요청을 수신한 경우(S530), 제1 소프트웨어 패키지와 연관된 제2 소프트웨어 패키지를 검출할 수 있다(S540). 예를 들어, 클라이언트 장치(200)에서 제1 소프트웨어 패키지를 선택하는 신호를 수신한 경우, 제1 소프트웨어 패키지에 대한 정보를 요청한 것으로 볼 수 있다.
제2 소프트웨어 패키지는, 제1 소프트웨어 패키지를 실행하기 위하여 필수로 구성되어야 하는 소프트웨어 패키지일 수 있다. 또는, 소프트웨어 플랫폼의 실행을 최적화하기 위하여, 제1 소프트웨어 패키지와 같이 구성되어야 하는 소프트웨어 패키지일 수 있다. 다만, 이에 한정되지 않는다.
서버(100)는 제1 소프트웨어 패키지 정보 및 제2 소프트웨어 패키지 정보를 클라이언트 장치로 전송할 수 있다(S550).
제1 소프트웨어 패키지 및 제2 소프트웨어 패키지 정보는, 제1 소프트웨어 패키지 및 제2 소프트웨어 패키지의 이름, 크기, 설치되는 크기(installed size), 버전 정보, 간단한 설명 등을 포함할 수 있으나, 이에 한정되지 않는다.
또한, 서버(100)는 클라이언트 장치(200)에서, 제1 소프트웨어 패키지가 선택되면, 제2 소프트웨어 패키지가 자동으로 선택되도록 제어할 수 있다. 또는, 서버(100)는 클라이언트 장치(200)에서, 제1 소프트웨어 패키지의 선택이 해제되면, 제2 소프트웨어 패키지의 선택도 자동으로 해제되도록 제어할 수 있다.
서버(100)는 클라이언트 장치(200)로부터 플랫폼 이미지 생성 요청을 수신하면(S560), 클라이언트 장치에서 선택된 소프트웨어 패키지들에 기초하여, 플랫폼 이미지를 생성할 수 있다(S570). 예를 들어, 클라이언트 장치(200)에서 선택된 소프트웨어 패키지들로 구성된 구성 파일을 생성하고, 생성된 구성 파일을 이용하여, 플랫폼 이미지를 생성할 수 있다.
또한, 서버(100)는 생성된 구성 파일이나 플랫폼 이미지를 서버(100)나 외부의 저장 장치에 저장할 수 있다. 예를 들어, 클라이언트 장치(200)의 요청으로 생성된 구성 파일이나 플랫폼 이미지를 해당 클라이언트 장치에 대응시켜 저장할 수 있다. 서버(100)는 클라이언트 장치 사용자 별로 별도의 데이터베이스를 생성하여, 구성 파일이나 플랫폼 이미지를 저장할 수 있다.
또한, 서버(100)는 생성된 구성 파일이나 플랫폼 이미지를 클라이언트 장치(200)로 전송할 수 있다.
도 6 내지 도 10은, 일 실시예에 따른 서버에서 제공하는, 소프트웨어 플랫폼을 구성하기 위한 사용자 인터페이스를 설명하기 위해 참조되는 도면들로, 서버에서 제공하는 웹 페이지들이 클라이언트 장치에 표시되는 예들을 나타내는 도면들이다.
도 6을 참조하면, 일 실시예에 따른 웹 페이지(610)는 전자 장치 리스트(620)를 포함할 수 있다. 전자 장치 리스트는 소프트웨어 플랫폼이 탑재될 전자 장치를 선택할 수 있는 리스트로, 복수의 전자장치들 각각을 나타내는 아이템들을 포함할 수 있다. 아이템들은 복수의 전자 장치들 각각의 제품명으로 표시될 수 있으나 이에 한정되지 않으며, 전자 장치들 각각을 나타내는 간단한 설명 등으로 표시될 수도 있다.
클라이언트 장치(200)는 복수의 아이템들 중 제1 아이템(631)을 선택하는 사용자 입력을 수신할 수 있다. 제1 아이템(631)이 선택되는 경우, 제1 아이템(631)에 대응하는 소프트웨어 패키지들이 자동으로 선택될 수 있다. 예를 들어, 자동으로 선택되는 소프트웨어 패키지들은 제1 아이템에 대응하는 전자 장치에서 소프트웨어 플랫폼을 동작시키기 위해 필수로 구성해야 하는 패키지들일 수 있다. 또한, 클라이언트 장치(200)는 선택된 소프트웨어 패키지들에 대한 정보(640)를 서버(100)로부터 수신하여, 표시할 수 있다.
도 7a를 참조하면, 일 실시예에 따른 웹 페이지(710)는 서버(100)에서 제공 가능한 복수의 소프트웨어 패키지들을, 지원하는 API 또는 제공되는 소프트웨어의 기능 또는 특징에 따라 분류하여, 그룹화한 리스트(720)를 포함할 수 있다.
예를 들어, 클라이언트 장치(200)는 리스트(720)에서, API 설정 아이템(731)을 선택하는 사용자 입력을 수신할 수 있다. API 설정 아이템(731)이 선택되면, 클라이언트 장치(200)는 서버에서 제공 가능한 복수의 소프트웨어 패키지들 중 지원하는 API에 따라 분류되는 소프트웨어 패키지들에 대한 정보를 서버(100)로부터 수신할 수 있다. 클라이언트 장치(200)는 서버(100)로부터 수신한 정보에 기초하여, 도 7b에 도시된 바와 같이, 분류된 소프트웨어 패키지들을 API 설정 아이템(731)의 하위 아이템들로 표시할 수 있다.
도 7b를 참조하면, 웹 페이지(710)에 표시된 하위 아이템들 중 제2 아이템(740, 예를 들어, Location API Group)이 선택되면, 제2 아이템(740)의 하위 아이템들(751, 752) 전체가 자동으로 선택될 수 있다. 또는, 사용자 입력에 기초하여, 제2 아이템의 하위 아이템들(751, 752) 중 어느 하나만 선택될 수 있다.
한편, 클라이언트 장치(200)는 도 7a의 리스트(720)에서, 기능 설정 아이템(732)을 선택하는 사용자 입력을 수신할 수 있다. 기능 설정 아이템(732)이 선택되면, 클라이언트 장치(200)는 서버에서 제공 가능한 복수의 소프트웨어 패키지들 중 제공되는 소프트웨어의 기능 또는 특징에 따라 분류되는 소프트웨어 패키지들에 대한 정보를 서버(100)로부터 수신할 수 있다. 클라이언트 장치(200)는 서버(100)로부터 수신한 정보에 기초하여, 도 8a에 도시된 바와 같이, 분류된 소프트웨어 패키지들을 기능 설정 아이템(732)의 하위 아이템들로 표시할 수 있다.
클라이언트 장치(200)는 하위 아이템들 중 적어도 하나의 아이템을 선택하는 사용자 입력을 수신할 수 있다. 예를 들어, 클라이언트 장치(200)는 웹 페이지에 표시된 하위 아이템들 중 제3 아이템(811, 예를 들어, Device Setup Feature)이 선택하는 사용자 입력을 수신할 수 있다. 이때, 서버(100)는 선택된 제3 아이템(811)에 대응하는 제1 소프트웨어 패키지(예를 들어, Device Setup Feature 패키지)와 연관된 제2 소프트웨어 패키지(예를 들어, DotNET feature 패키지)가 자동으로 선택되도록 제어할 수 있다. 예를 들어, 제2 소프트웨어 패키지는, 제1 소프트웨어 패키지를 실행하기 위하여 필수로 구성되어야 하는 소프트웨어 패키지일 수 있다. 또는, 소프트웨어 플랫폼의 실행을 최적화하기 위하여, 제1 소프트웨어 패키지와 같이 구성되어야 하는 소프트웨어 패키지일 수 있다. 다만, 이에 한정되지 않는다.
예를 들어, 클라이언트 장치(200)는 선택된 제1 소프트웨어 패키지에 대한 정보 요청을 서버(100)로 전송할 수 있다. 서버(100)는 제1 소프트웨어 패키지와 연관된 제2 소프트웨어 패키지를 검출하고, 제1 소프트웨어 패키지에 대한 정보와 제2 소프트웨어 패키지에 대한 정보를 클라이언트 장치(200)로 전송할 수 있다. 클라이언트 장치(200)는 서버(100)로부터 제2 소프트웨어 패키지가 제1 소프트웨어 패키지에 연관되어 있다는 정보를 수신하여, 제2 소프트웨어 패키지가 자동으로 선택되도록 제어할 수 있다. 이에 따라, 연관된 제2 소프트웨어 패키지에 대응하는 아이템(812)은 클라이언트 장치(200)에서 자동으로 선택될 수 있다.
또한, 클라이언트 장치(200)는 서버(100)로부터 수신한 제1 소프트웨어 패키지에 대한 정보와 제2 소프트웨어 패키지에 대한 정보(830)를 표시할 수 있으며, 제1 소프트웨어 패키지와 제2 소프트웨어 패키지가 연관되어 있음을 나타내는 정보(830)를 함께 표시할 수 있다.
한편, 도 8b를 참조하면, 클라이언트 장치(200)는 선택된 소프트웨어 패키지 선택을 해제하는 사용자 입력을 수신할 수 있다. 이때, 선택 해제하려는 하는 소프트웨어 패키지가 선택되어 있는 다른 소프트웨어 패키지와 연관되어 있는 경우, 클라이언트 장치(200)는 서버(100)로부터 수신한 알림 메시지(850)를 표시할 수 있다.
예를 들어, 제1 소프트웨어 패키지(예를 들어, Device Setup Feature 패키지) 및 제2 소프트웨어 패키지(예를 들어, DotNET feature 패키지)가 선택된 상태에서, 제1 소프트웨어 패키지와 연관된 제2 소프트웨어 패키지의 선택을 해제하는 사용자 입력이 수신된 경우, 클라이언트 장치(200)는 제2 소프트웨어 패키지가 제1 소프트웨어 패키지에 연관되어 있음을 나타내는 알림 메시지(850)를 표시할 수 있다. 이에 따라, 사용자는 소프트웨어 패키지에 대한 기술적인 지식이 없이도, 소프트웨어 플랫폼을 구성하기 위하여 필요한 소프트웨어 패키지와 필요 없는 소프트웨어 패키지를 용이하게 구별할 수 있다.
한편, 사용자는 필요한 소프트웨어 패키지들의 선택이 완료되면, “이미지 생성” 아이콘을 클릭할 수 있다. 클라이언트 장치(200)는 이미지 생성 요청 입력(예를 들어, “이미지 생성”아이콘을 클릭하는 사용자 입력 등)을 수신하면, 서버(100)로 이미지 생성을 요청할 수 있다. 서버(100)는 클라이언트 장치(200)에서 선택된 소프트웨어 패키지들에 기초하여, 플랫폼 이미지를 생성할 수 있다. 예를 들어, 클라이언트 장치(200)에서 선택된 소프트웨어 패키지들로 구성된 구성 파일을 생성하고, 생성된 구성 파일을 이용하여, 플랫폼 이미지를 생성할 수 있다.
또한, 서버(100)는 플랫폼 이미지 생성 결과를 클라이언트 장치(200)로 전송하고, 클라이언트 장치(200)는 도 9에 도시된 바와 같이, 플랫폼 이미지 생성 결과를 표시할 수 있다. 예를 들어, 클라이언트 장치(200)는 생성된 플랫폼 이미지에 구성된 소프트웨어 패키지들에 대한 정보(910), 이미지 이름, 이미지 버전 정보, 생성된 이미지의 크기, 이미지가 설치되는 크기 등을 표시할 수 있다. 이때, 이미지 이름이나 이미지 버전 정보는 사용자로부터 입력 받을 수도 있다. 또한, 클라이언트 장치(200)는 생성된 구성 파일이나 플랫폼 이미지를 다운로드할 수 있다.
일 실시예에 따른 서버(100)는 생성된 구성 파일이나, 플랫폼 이미지를 서버(100)나 외부의 저장 장치에 저장할 수 있다. 이때, 서버(100)는 구성 파일 또는 플랫폼 이미지를 사용자의 로그인 정보에 대응시켜 저장할 수 있다. 이에 따라, 서버(100)는, 도 10에 도시된 바와 같이, 서버(100)에 접속한 사용자의 로그인 정보에 기초하여, 이전에 생성되어 저장되어 있는 구성 파일이나 플랫폼 이미지(920)를 제공할 수 있다.
또한, 클라이언트 장치(200)는 서버(100)에서 저장되어 있는 구성 파일이나 플랫폼 이미지를 다운로드할 수 있다. 또는, 클라이언트 장치(200)는 사용자 입력에 기초하여, 생성된 구성 파일을 수정할 수 있다. 또한, 서버(100)는 수정된 구성 파일을 가지고 다시 플랫폼 이미지를 생성할 수 있다.
또한, 클라이언트 장치(200)는 서버(100)에서 제공하는 소프트웨어 패키지들과 다른 소프트웨어 패키지를 서버(100)로 전송할 수 있다. 서버(100)는 수신한 소프트웨어 패키지를 저장하고, 소프트웨어 패키지 리스트에 추가하여, 새로운 패키지 리스트를 구성할 수 있다. 또한, 서버(100)는 새로운 패키지 리스트를 클라이언트 장치(200)로 제공할 수 있다.
일 실시예에 따른 전자 장치의 동작방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
또한, 개시된 실시예들에 따른 서버 또는 서버의 동작방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다.
컴퓨터 프로그램 제품은 S/W 프로그램, S/W 프로그램이 저장된 컴퓨터로 읽을 수 있는 저장 매체를 포함할 수 있다. 예를 들어, 컴퓨터 프로그램 제품은 전자 장치의 제조사 또는 전자 마켓(예, 구글 플레이 스토어, 앱 스토어)을 통해 전자적으로 배포되는 S/W 프로그램 형태의 상품(예, 다운로더블 앱)을 포함할 수 있다. 전자적 배포를 위하여, S/W 프로그램의 적어도 일부는 저장 매체에 저장되거나, 임시적으로 생성될 수 있다. 이 경우, 저장 매체는 제조사의 서버, 전자 마켓의 서버, 또는 SW 프로그램을 임시적으로 저장하는 중계 서버의 저장매체가 될 수 있다.
컴퓨터 프로그램 제품은, 서버 및 클라이언트 장치로 구성되는 시스템에서, 서버의 저장매체 또는 클라이언트 장치의 저장매체를 포함할 수 있다. 또는, 서버 또는 클라이언트 장치와 통신 연결되는 제3 장치(예, 스마트폰)가 존재하는 경우, 컴퓨터 프로그램 제품은 제3 장치의 저장매체를 포함할 수 있다. 또는, 컴퓨터 프로그램 제품은 서버로부터 클라이언트 장치 또는 제3 장치로 전송되거나, 제3 장치로부터 클라이언트 장치로 전송되는 S/W 프로그램 자체를 포함할 수 있다.
이 경우, 서버, 클라이언트 장치 및 제3 장치 중 하나가 컴퓨터 프로그램 제품을 실행하여 개시된 실시예들에 따른 방법을 수행할 수 있다. 또는, 서버, 클라이언트 장치 및 제3 장치 중 둘 이상이 컴퓨터 프로그램 제품을 실행하여 개시된 실시예들에 따른 방법을 분산하여 실시할 수 있다.
예를 들면, 서버(예로, 클라우드 서버 또는 인공 지능 서버 등)가 서버에 저장된 컴퓨터 프로그램 제품을 실행하여, 서버와 통신 연결된 클라이언트 장치가 개시된 실시예들에 따른 방법을 수행하도록 제어할 수 있다.
이상에서 실시예들에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속한다.

Claims (19)

  1. 소프트웨어 플랫폼을 제공하는 서버에 있어서,
    통신부;
    하나 이상의 인스트럭션들을 저장하는 메모리; 및
    상기 메모리에 저장된 상기 하나 이상의 인스트럭션들을 실행하는 프로세서를 포함하고,
    상기 프로세서는
    클라이언트 장치로부터, 상기 소프트웨어 플랫폼을 탑재할 전자 장치에 대한 정보를 수신하여, 상기 전자 장치에 탑재 가능한 소프트웨어 패키지들에 대한 정보를 상기 클라이언트 장치로 전송하도록 상기 통신부를 제어하고,
    상기 클라이언트 장치로부터, 상기 소프트웨어 패키지들 중 선택된 제1 소프트웨어 패키지에 대한 정보 요청을 수신하여, 상기 제1 소프트웨어 패키지와 연관된 제2 소프트웨어 패키지를 검출하고, 상기 제1 소프트웨어 패키지에 대한 정보 및 제2 소프트웨어 패키지에 대한 정보를 상기 클라이언트 장치로, 전송하도록 상기 통신부를 제어하며,
    상기 클라이언트 장치에서 선택된 소프트웨어 패키지들에 기초하여, 플랫폼 이미지를 생성하는, 서버.
  2. 제1항에 있어서,
    상기 프로세서는,
    상기 전자 장치에 탑재 가능한 소프트웨어 패키지들을 기 설정된 기준에 따라 분류한 패키지 리스트를, 상기 클라이언트 장치로 전송하도록 상기 통신부를 제어하는, 서버.
  3. 제1항에 있어서,
    상기 제2 소프트웨어 패키지는, 상기 제1 소프트웨어 패키지를 실행하기 위하여 필수적으로 구성해야 하는 패키지인, 서버.
  4. 제1항에 있어서,
    상기 프로세서는,
    상기 클라이언트 장치에서, 상기 제1 소프트웨어 패키지가 선택되는 경우, 상기 제2 소프트웨어 패키지를 자동으로 선택하고, 상기 제1 소프트웨어 패키지의 선택이 해제되는 경우, 상기 제2 소프트웨어 패키지의 선택도 자동으로 해제하도록 제어하는, 서버.
  5. 제1항에 있어서,
    상기 프로세서는,
    상기 클라이언트 장치로부터, 상기 소프트웨어 패키지들 중 선택된 소프트웨어 패키지들에 대한 정보 및 플랫폼 이미지 생성 요청을 수신하여, 상기 플랫폼 이미지를 생성하는, 서버.
  6. 제1항에 있어서,
    상기 프로세서는,
    상기 클라이언트 장치로부터 플랫폼 이미지 다운로드 요청에 응답하여, 상기 생성된 플랫폼 이미지를 상기 클라이언트 장치로 전송하도록 제어하는, 서버.
  7. 제1항에 있어서,
    상기 프로세서는,
    상기 클라이언트 장치에 대응하는 로그인 정보에 기초하여, 상기 플랫폼 이미지를 상기 클라이언트 장치에 대응시켜 저장하도록 제어하는, 서버.
  8. 제1항에 있어서,
    상기 통신부는, 상기 클라이언트 장치에 대응하는 로그인 정보를 수신하고,
    상기 프로세서는, 상기 로그인 정보에 기초하여, 상기 클라이언트 장치에 대응시켜 저장된 플랫폼 이미지에 대한 정보를 상기 클라이언트 장치로 전송하도록 제어하는, 서버.
  9. 제1항에 있어서,
    상기 프로세서는,
    상기 클라이언트 장치로부터 상기 플랫폼 이미지에 대응하는 구성 파일의 수정 요청을 수신하여, 상기 플랫폼 구성 파일을 수정하고, 수정된 구성 파일에 기초하여, 플랫폼 이미지를 다시 생성하는, 서버.
  10. 소프트웨어 플랫폼을 제공하는 서버의 동작방법에 있어서,
    클라이언트 장치로부터, 상기 소프트웨어 플랫폼을 탑재할 전자 장치에 대한 정보를 수신하는 단계;
    상기 전자 장치에 탑재 가능한 소프트웨어 패키지들에 대한 정보를 상기 클라이언트 장치로 전송하는 단계;
    상기 클라이언트 장치로부터, 상기 소프트웨어 패키지들 중 선택된 제1 소프트웨어 패키지에 대한 정보 요청을 수신하는 단계;
    상기 제1 소프트웨어 패키지와 연관된 제2 소프트웨어 패키지를 검출하는 단계;
    상기 제1 소프트웨어 패키지에 대한 정보 및 제2 소프트웨어 패키지에 대한 정보를 상기 클라이언트 장치로, 전송하는 단계; 및
    상기 클라이언트 장치에서 선택된 소프트웨어 패키지들에 기초하여, 플랫폼 이미지를 생성하는 단계를 포함하는, 동작방법.
  11. 제10항에 있어서,
    상기 전자 장치에 탑재 가능한 소프트웨어 패키지들에 대한 정보를 상기 클라이언트 장치로 전송하는 단계는,
    상기 전자 장치에 탑재 가능한 소프트웨어 패키지들을 기 설정된 기준에 따라 분류한 패키지 리스트를, 상기 클라이언트 장치로 전송하는 단계를 포함하는, 동작방법.
  12. 제10항에 있어서,
    상기 제2 소프트웨어 패키지는, 상기 제1 소프트웨어 패키지를 실행하기 위하여 필수적으로 구성해야 하는 패키지인, 동작방법.
  13. 제10항에 있어서,
    상기 동작방법은,
    상기 클라이언트 장치에서, 상기 제1 소프트웨어 패키지가 선택되는 경우, 상기 제2 소프트웨어 패키지를 자동으로 선택하고, 상기 제1 소프트웨어 패키지의 선택이 해제되는 경우, 상기 제2 소프트웨어 패키지의 선택도 자동으로 해제하도록 제어하는 단계를 더 포함하는, 동작방법.
  14. 제10항에 있어서,
    상기 동작방법은,
    상기 클라이언트 장치로부터, 상기 소프트웨어 패키지들 중 선택된 소프트웨어 패키지들에 대한 정보 및 플랫폼 이미지 생성 요청을 수신하는 단계를 더 포함하는, 동작방법.
  15. 제10항에 있어서,
    상기 동작방법은,
    상기 클라이언트 장치로부터 플랫폼 이미지 다운로드 요청을 수신하는 단계; 및
    상기 요청에 응답하여, 상기 생성된 플랫폼 이미지를 상기 클라이언트 장치로 전송하는 단계를 더 포함하는, 동작방법.
  16. 제10항에 있어서,
    상기 동작방법은,
    상기 클라이언트 장치에 대응하는 로그인 정보에 기초하여, 상기 플랫폼 이미지를 상기 클라이언트 장치에 대응시켜 저장하는 단계를 더 포함하는, 동작방법.
  17. 제10항에 있어서,
    상기 동작방법은,
    상기 클라이언트 장치에 대응하는 로그인 정보를 수신하는 단계; 및
    상기 로그인 정보에 기초하여, 상기 클라이언트 장치에 대응시켜 저장된 플랫폼 이미지에 대한 정보를 상기 클라이언트 장치로 전송하는 단계를 더 포함하는, 동작방법.
  18. 제10항에 있어서,
    상기 동작방법은,
    상기 클라이언트 장치로부터 상기 플랫폼 이미지에 대응하는 구성 파일의 수정 요청을 수신하는 단계; 및
    상기 플랫폼 구성 파일을 수정하고, 수정된 구성 파일에 기초하여, 플랫폼 이미지를 다시 생성하는 단계를 더 포함하는, 동작방법.
  19. 제10항 내지 제18항 중 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR1020180050463A 2017-05-15 2018-05-02 소프트웨어 플랫폼을 제공하는 서버 및 그 동작방법 KR102166336B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US15/980,334 US10754635B2 (en) 2017-05-15 2018-05-15 Server for providing software platform and method of operating server
CN201880092893.3A CN112106025A (zh) 2017-05-15 2018-06-20 用于提供软件平台的服务器和运行服务器的方法
PCT/KR2018/006983 WO2019212087A1 (en) 2017-05-15 2018-06-20 Server for providing software platform and method of operating server
EP18917328.9A EP3776186B1 (en) 2017-05-15 2018-06-20 Server for providing software platform and method of operating server

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201762506165P 2017-05-15 2017-05-15
US62/506,165 2017-05-15
US201762506758P 2017-05-16 2017-05-16
US62/506,758 2017-05-16

Publications (2)

Publication Number Publication Date
KR20180125387A true KR20180125387A (ko) 2018-11-23
KR102166336B1 KR102166336B1 (ko) 2020-10-15

Family

ID=64565563

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180050463A KR102166336B1 (ko) 2017-05-15 2018-05-02 소프트웨어 플랫폼을 제공하는 서버 및 그 동작방법

Country Status (5)

Country Link
US (1) US10754635B2 (ko)
EP (1) EP3776186B1 (ko)
KR (1) KR102166336B1 (ko)
CN (1) CN112106025A (ko)
WO (1) WO2019212087A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102643830B1 (ko) * 2023-11-07 2024-03-08 올거나이즈코리아 주식회사 기업 업무 자동화를 위한 대형 언어 모델 기반 애플리케이션 제공 방법 및 시스템

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11755317B2 (en) * 2021-10-15 2023-09-12 Salesforce, Inc. Extensible platform as a service platform for use by multiple enterprises

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080163197A1 (en) * 2006-12-30 2008-07-03 Sap Ag Multi-product installation tool database architecture
US20090064086A1 (en) * 2007-08-31 2009-03-05 Norman Lee Faus Systems and methods for packaging an application
US20090300641A1 (en) * 2008-05-30 2009-12-03 Novell, Inc. System and method for supporting a virtual appliance
US20110029881A1 (en) * 2010-10-11 2011-02-03 Nevolution Digital, Llc Devices and methods for providing software programs compatible with a computer system for download by a user
US20140007057A1 (en) * 2012-07-02 2014-01-02 Amazon Technologies, Inc. Evaluating application compatibility

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030200532A1 (en) 2002-04-17 2003-10-23 Thomas Gensel System and method for sharing reusable code base
US20080163199A1 (en) 2006-12-30 2008-07-03 Rao Siddhartha Ashok Multi-product package creation and editing
US20090063502A1 (en) 2007-09-04 2009-03-05 International Business Machines Corporation Web-based content abstraction based on platform agnostic containers able to be exported to platform specific, user customizable portal pages
US8607226B2 (en) * 2008-01-22 2013-12-10 International Business Machines Corporation Solution for locally staged electronic software distribution using secure removable media
US8291380B2 (en) 2008-03-05 2012-10-16 International Business Machines Corporation Methods for configuring software package
US9009696B2 (en) 2010-04-27 2015-04-14 Red Hat, Inc. Generating encoded identifications of selected subsets of installed software packages on a client machine
WO2011135629A1 (ja) * 2010-04-28 2011-11-03 株式会社日立製作所 計算機システムにおけるソフトウェアの配布管理方法、及び、ソフトウェアの配布管理のための計算機システム
US9176773B2 (en) * 2011-06-29 2015-11-03 Microsoft Technology Licensing, Llc Virtual machine migration tool
AU2012203903B2 (en) * 2011-07-12 2015-03-12 Apple Inc. System and method for linking pre-installed software to a user account on an online store
US8880651B2 (en) 2011-07-25 2014-11-04 Sony Computer Entertainment America, LLC Method and system for efficient download of data package
US10142181B2 (en) * 2014-04-18 2018-11-27 Hitachi, Ltd. Method and apparatus for template based platform and infrastructure provisioning
US20150317145A1 (en) 2014-04-30 2015-11-05 Adobe Systems Incorporated Method and apparatus for notifying an enterprise administrator of new products and updates
US9235385B1 (en) * 2015-01-20 2016-01-12 Apollo Education Group, Inc. Dynamic software assembly
US10318318B2 (en) * 2016-02-26 2019-06-11 Red Hat, Inc. Extending user interface of a web console
CN107179907A (zh) * 2017-05-15 2017-09-19 北京奇艺世纪科技有限公司 一种配置系统及方法
CN107741859A (zh) * 2017-11-03 2018-02-27 山东浪潮云服务信息科技有限公司 基于国产cpu和os的软件包管理方法、装置及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080163197A1 (en) * 2006-12-30 2008-07-03 Sap Ag Multi-product installation tool database architecture
US20090064086A1 (en) * 2007-08-31 2009-03-05 Norman Lee Faus Systems and methods for packaging an application
US20090300641A1 (en) * 2008-05-30 2009-12-03 Novell, Inc. System and method for supporting a virtual appliance
US20110029881A1 (en) * 2010-10-11 2011-02-03 Nevolution Digital, Llc Devices and methods for providing software programs compatible with a computer system for download by a user
US20140007057A1 (en) * 2012-07-02 2014-01-02 Amazon Technologies, Inc. Evaluating application compatibility

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102643830B1 (ko) * 2023-11-07 2024-03-08 올거나이즈코리아 주식회사 기업 업무 자동화를 위한 대형 언어 모델 기반 애플리케이션 제공 방법 및 시스템

Also Published As

Publication number Publication date
KR102166336B1 (ko) 2020-10-15
EP3776186A1 (en) 2021-02-17
US10754635B2 (en) 2020-08-25
US20180373520A1 (en) 2018-12-27
WO2019212087A1 (en) 2019-11-07
CN112106025A (zh) 2020-12-18
EP3776186A4 (en) 2021-05-05
EP3776186B1 (en) 2023-08-02

Similar Documents

Publication Publication Date Title
US11049173B2 (en) Intelligent delivery and acquisition of digital assets
US11750683B2 (en) Computer application promotion
US9097528B2 (en) Managing a datacenter using mobile devices
US20200267221A1 (en) Method, system, and device for controlling an internet of things device
JP5819953B2 (ja) 多数の体験モジュールを含むアプリケーション
KR101161091B1 (ko) 무선 통신 환경에서 위제트 상호통신을 위한 장치 및 방법들
US10177992B2 (en) Application store interface for remote management of client devices
US9021427B2 (en) Conversion methods of applications of mobile devices and mobile devices and systems using the same
US9524089B1 (en) Common web component
US10979374B2 (en) Method, system, and non-transitory computer readable record medium for sharing information in chatroom using application added to platform in messenger
US20140298249A1 (en) Method and device for displaying service page for executing application
KR102299427B1 (ko) 사용자의 할일 목록에 대한 알림을 제공하는 방법 및 시스템
US20220027969A1 (en) Virtualized Services Discovery and Recommendation Engine
KR101995260B1 (ko) 앱 서비스 제공 방법 및 시스템
US9037757B2 (en) Device action service
US20170269916A1 (en) Selective Application Installation Or Application Running Without Installation
KR102166336B1 (ko) 소프트웨어 플랫폼을 제공하는 서버 및 그 동작방법
EP3005101B1 (en) Coordination of system readiness tasks
US20180365023A1 (en) Teaser of an application available for installation
KR20220134107A (ko) 단말기 원격조작에 기반한 테스트 자동화 방법 및 시스템

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right