CN112106025B - 用于提供软件平台的服务器和运行服务器的方法 - Google Patents

用于提供软件平台的服务器和运行服务器的方法 Download PDF

Info

Publication number
CN112106025B
CN112106025B CN201880092893.3A CN201880092893A CN112106025B CN 112106025 B CN112106025 B CN 112106025B CN 201880092893 A CN201880092893 A CN 201880092893A CN 112106025 B CN112106025 B CN 112106025B
Authority
CN
China
Prior art keywords
software package
electronic device
software
server
information
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
CN201880092893.3A
Other languages
English (en)
Other versions
CN112106025A (zh
Inventor
林根植
咸命宙
洪竞杓
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN112106025A publication Critical patent/CN112106025A/zh
Application granted granted Critical
Publication of CN112106025B publication Critical patent/CN112106025B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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

一种运行用于提供软件平台的服务器的方法,包括以下步骤:从客户端设备接收关于要在其上安装所述软件平台的电子设备的信息;向所述客户端设备发送关于可安装在所述电子设备上的软件包的信息;从所述客户端设备接收对关于从所述软件包中选择的第一软件包的信息的请求;检测与所述第一软件包相关联的第二软件包;向所述客户端设备发送关于所述第一软件包的信息和关于所述第二软件包的信息;以及基于由所述客户端设备选择的软件包创建平台映像。

Description

用于提供软件平台的服务器和运行服务器的方法
技术领域
本公开涉及一种用于提供软件平台的服务器和一种运行该服务器的方法,尤其涉及一种能够从构成软件平台的软件包中直观地提供电子设备的用户所需的软件包的服务器和运行该服务器的方法。
背景技术
为了在电子设备上安装软件平台并运行软件平台,需要很好地理解软件平台的专业开发人员以及特殊的开发基础设施。在产品的初始开发阶段,通过添加或删除构成软件平台的元素来创建和测试软件平台的过程重复了多次。此时,制造商将通过构建软件平台的所有软件包而创建的平台映像安装在目标设备上,并使用该平台映像。另外,制造商根据需要直接并手动地重建软件包,从而根据要制造的产品来优化软件包。
然而,当通过包括所有软件包来创建平台映像时,制造商需要确定特定软件包对于每个要制造的产品是否都是必需的组件,并且需要单独地确定和排除不必要的软件包。在这种情况下,供应商需要具有有关软件平台的技术知识,从而将必要的软件包与不必要的软件包分开以构成软件平台,进而制造包括优化的软件包的软件平台。
发明内容
附图说明
根据以下结合附图进行的描述,本公开的特定实施例的上述和其它方面、特征和优点将更加明显,其中:
图1是示出了根据实施例的提供软件平台的系统的示意图;
图2是根据实施例的服务器的框图;
图3是根据实施例的客户端设备的框图;
图4是根据实施例的运行包括客户端设备和服务器的系统并提供软件平台的方法的流程图;
图5是根据实施例的运行服务器的方法的流程图;以及
图6、图7A、图7B、图8A、图8B、图9和图10是用于解释根据实施例的由服务器提供以构成软件平台的用户界面(UI)的视图,并且示出了其中在客户端设备上显示由服务器所提供的网页的示例。
实现本发明的最佳模式
提供了一种服务器以及运行该服务器的方法,该服务器能够基于与要在其上安装软件平台的电子设备相关的信息来创建仅具有用户所需软件包的平台映像。
提供了一种服务器以及运行该服务器的方法,该服务器能够提供关于与从多个软件包中选择的软件包相关联的软件包的信息。
其它方面将部分地在随后的描述中进行阐述,并且部分地从随后的描述中显而易见,或者可以通过实践所示的实施例而获知。
根据本公开的一方面,一种用于提供软件平台的服务器包括:通信接口;存储器,所述存储器存储至少一个指令;以及处理器,所述存储器被配置为执行在所述存储器中存储的所述至少一个指令以:控制所述通信接口以从客户端设备接收与要在其上安装所述软件平台的电子设备有关的信息,并向所述客户端设备发送与可安装在所述电子设备上的软件包有关的信息,控制所述通信接口以从所述客户端设备接收对关于从所述软件包中选择的第一软件包的信息的请求,检测与所述第一软件包相关联的第二软件包,并向所述客户端设备发送关于所述第一软件包的信息和关于所述第二软件包的信息,以及基于由所述客户端设备选择的软件包创建平台映像。
根据本公开的另一方面,一种运行用于提供软件平台的服务器的方法包括以下步骤:从客户端设备接收关于要在其上安装所述软件平台的电子设备的信息;向所述客户端设备发送关于可安装在所述电子设备上的软件包的信息;从所述客户端设备接收对关于从所述软件包中选择的第一软件包的信息的请求;检测与所述第一软件包相关联的第二软件包;向所述客户端设备发送关于所述第一软件包的信息和关于所述第二软件包的信息;以及基于由所述客户端设备选择的软件包创建平台映像。
根据本公开的另一方面,一种运行用于提供软件平台的服务器的方法包括以下步骤:从客户端设备接收关于要在其上安装所述软件平台的电子设备的信息;向所述客户端设备发送可安装在电子设备上的软件包的列表;从所述客户端设备接收对所述软件包的列表中的第一软件包的选择;检测与所述第一软件包相关联的第二软件包;向所述客户端设备发送关于所述第一软件包和所述第二软件包的信息;从所述客户端设备接收基于根据关于所述第一软件包和所述第二软件包的信息选择的软件包来创建平台映像的请求,所述平台映像至少包括所述第一软件包和所述第二软件包;以及基于对创建所述平台映像的请求来创建所述平台映像。
具体实施方式
在下文中,将简要描述在说明书中使用的术语,然后将详细描述本公开。
尽管考虑到本文中使用的通用术语的功能选择了这些通用术语来描述本公开,但是这些通用术语可以根据本领域普通技术人员的意图、案例先例、新技术的出现等而变化。由公开内容的申请人任意选择的术语也可以在特定情况下使用。在这种情况下,需要在详细说明中给出其含义。因此,必须基于术语的含义和整个说明书的内容来定义术语,而不是简单地说明术语。
当在本说明书中使用时,术语“包括”和/或“包含”或“可以包括”和/或“可以包含”指定存在所述元素,但不排除一个或更多个其他元素的存在或增加。在本说明书中使用的术语“单元”、“-器(-件)”和“模块”是指其中执行至少一个功能或操作的单元,并且可以被实现为硬件、软件、或硬件和软件的组合。
这里参考附图详细描述实施例,使得本公开所属领域的普通技术人员可以容易地执行本公开。然而,本公开可以以许多不同的形式实施,并且不应该被视为限于本文所陈述的实施例。在附图中,为了简单说明,省略了与描述无关的部分,并且相同的标号始终表示相同的元素。
图1是示出了根据实施例的提供软件平台的系统的示意图。
提供软件平台的系统可以包括服务器100、客户端设备200和电子设备300。
服务器100可以提供构成软件平台的多个软件包。服务器100可以包括网络服务器或网络应用服务器(WAS),并且可以经由网络向客户端设备200提供关于软件平台或多个软件包的信息。然而,实施例不限于此。
然而,实施例不限于此。服务器100可以经由网络与客户端设备200通信。服务器100可以包括至少一个组件,该至少一个组件使得能够通过局域网(LAN)、广域网(WAN)、增值网络(VAN)、移动无线通信网络、卫星通信网络或其组合进行通信。然而,实施例不限于此。
服务器100可以从客户端设备200接收关于将在其上安装软件平台的电子设备300的信息,并且可以向客户端设备200发送关于与可安装在电子设备300上的软件包有关的信息。
服务器100可以控制与客户端设备200选择的软件包相关联的软件包被检测,并且控制所检测的软件包被自动选择。
当服务器100从客户端设备200接收到平台映像创建请求时,服务器100可以基于客户端设备200选择的软件包来创建平台映像。
客户端设备200可以以各种类型实现。例如,客户端设备200可以是任何类型的电子设备,诸如移动电话机、智能电话机、膝上型计算机、台式计算机、平板电脑、电子书终端、数字广播终端、个人数字助理(PDA)、便携式多媒体播放器(PMP)、导航设备、MP3播放器、摄录像机、互联网协议电视(IPTV)、数字电视(DTV)或可穿戴设备。然而,实施例不限于此。
然而,实施例不限于此。客户端设备200可以从服务器100接收关于可安装在电子设备300上的软件包的信息,并且可以向客户端设备用户(例如,软件开发者)提供该信息。例如,客户端设备200可以显示可以从中选择软件包的列表。因此,客户端设备用户(例如,软件开发人员)可以从多个软件包中选择与期望开发的软件的功能或特征相对应的软件包。客户端设备200可以接收用户的选择输入,并且可以向服务器100发送对关于所选择的软件包的信息的请求。
客户端设备200可以从服务器100接收关于所选择的软件包的信息和关于与所述选择的软件包相关联的软件包的信息,并且可以显示接收到的信息。用户可以基于显示的信息另外地选择另一软件包或取消对软件包的选择。然而,实施例不限于此。
客户端设备200可以向服务器100发送用于创建平台映像的请求,并且可以下载由服务器100创建的平台映像。
客户端设备200可以将下载的平台映像安装在电子设备300上,并且其上安装了平台映像的电子设备300可以基于平台映像执行相应的软件。电子设备300可以是任何类型的电子设备,例如IoT设备、移动电话机、平板PC、数字照相机、摄录像机、膝上型计算机、台式计算机、电子书终端、数字广播终端、PDA、PMP、导航设备、MP3播放器、可穿戴设备或消费类电子(CE)设备(例如,具有显示面板的冰箱和空调),但实施例不限于此。
这里使用的术语“用户”表示控制服务器100、客户端设备200或电子设备300的功能或操作的人。用户的示例可以包括开发人员、管理人员或安装工程师。
图2是根据实施例的服务器100的框图。
参考图2,服务器100可以包括通信接口110、处理器120和存储器130。
处理器120可以控制服务器100。处理器120可执行存储器130中存储的至少一个指令。
存储器130可以存储用于驱动和控制服务器100的各种数据、程序或应用。存储器130中存储的程序可以包括至少一个指令。存储器120中存储的程序(至少一个指令)或应用可以由处理器120执行。
通信接口110可以在处理器120的控制下向外部设备或外部服务器发送数据或信号,或从外部设备或外部服务器接收数据或信号。例如,处理器120可以控制通信接口110经由网络向客户端设备200发送数据,或从客户端设备200接收数据或信号。
通信接口110可以包括使得能够经由LAN、WAN、VAN、移动无线通信网络、卫星通信网络或其组合进行通信的至少一个组件。通信接口110可以通过直接使用无线LAN(例如,Wi-Fi)无线地向外部设备或外部服务器发送数据或信号,或从外部设备或外部服务器接收数据或信号。
通信接口110可以在处理器120的控制下从客户端设备200接收关于要在其上安装软件平台的电子设备的信息,并且向客户端设备200发送关于可安装在电子设备上的软件包的信息。关于软件包的信息可以是关于根据要在其上安装软件包的设备、所提供的软件的功能或特征、或者应用编程接口(API)的设置来分类和分组的多个软件包的信息。例如,根据要安装软件平台的设备的类型,关于软件包的信息可以包括关于可以包含在软件平台中或需要包含在软件平台中的软件包的信息。根据被提供的软件的功能或特征,关于软件包的信息可以包括关于可以被包含或需要被包含的软件包的信息。根据所使用的API,关于软件包的信息可以包括关于可以被包含或需要被包含的软件包的信息。然而,实施例不限于此,并且可以根据各种标准对多个包进行分类。
通信接口110可以在处理器120的控制下向客户端设备200发送软件包的相关性信息。例如,当客户端设备200选择第一软件包时,处理器120可以检测与所选择的第一软件包相关联的第二软件包。第二软件包可以是为了执行第一软件包而需要被包含的软件包,或者可以是为了优化软件平台的执行而需要与第一软件包一起被包含的软件包。通信接口110可以在处理器120的控制下向客户端设备200发送第一软件包信息和第二软件包信息。
通信接口110可以在处理器120的控制下,从客户端设备200接收平台映像创建请求。处理器120可以基于由客户端设备200选择的软件包来创建平台映像。例如,处理器120可以创建包括由客户端设备200选择的软件包的配置文件,并且可以通过利用所创建的配置文件来创建平台映像。
服务器100可以将创建的配置文件或平台映像存储在服务器100的存储器130或外部存储设备中。例如,在客户端设备200的请求下,服务器100可以对应于客户端设备200存储创建的配置文件或平台映像。服务器100可以为每个客户端设备用户创建数据库(DB),并且可以在所创建的DB中存储配置文件或平台映像。
服务器100可以向客户端设备200发送所创建的配置文件或平台映像。
图2中示出的服务器100的框图仅是一个实施例,当被实际实施时,根据服务器100的规格,图2中示出的组件可以被组合或省略,或者图2的框图中可以包括附加组件。即,可以将两个或更多个组件组合为单个组件,或者可以将单个组件划分为两个或更多个组件。在每个块中执行的功能仅是用于解释实施例的示例,并且每个块的详细操作或装置不限制实施例的范围。
图3是根据实施例的客户端设备200的框图。
参考图3,客户端设备200可以包括通信接口210、处理器220、存储器230、显示器240和用户输入接口250。
通信接口210可以向外部设备或外部服务器发送数据或信号,或从外部设备或外部服务器接收数据或信号。通信接口210可以包括使得能够经由LAN、WAN、VAN、移动无线通信网络、卫星通信网络或其组合进行通信的至少一个组件。通信接口210可以通过直接使用无线LAN(例如,Wi-Fi)无线地向外部设备或外部服务器发送数据或信号,或从外部设备或外部服务器接收数据或信号。
例如,通信接口210可以发送客户端设备200的用户的登录信息。通信接口210可以针对关于可以由服务器100提供的软件包的信息,向服务器100发送请求,并且可以从服务器100接收信息。通信接口210可以针对关于软件包(与由客户端设备200从多个软件包中选择的软件包相关联)的信息,在处理器220的控制下,向服务器100发送请求,并且可以从服务器100接收关于与所选择的软件包相关联的软件包的信息。
通信接口210可以在处理器220的控制下从服务器100下载平台映像,并且可以将下载的平台映像安装在电子设备300上。可替代地,通信接口210可以向服务器100发送新的软件包。
处理器220可以控制客户端设备200。处理器220可执行存储器230中存储的至少一个指令。
存储器230可以存储用于驱动和控制客户端设备200的各种数据、程序或应用。存储器230中存储的程序可以包括至少一个指令。存储器230中存储的程序(至少一个指令)或应用可以由处理器220执行。
显示器240可以通过转换由处理器220处理的图像信号、数据信号、屏上显示(OSD)信号和控制信号来产生驱动信号。显示器240可以是等离子体显示面板(PDP)、液晶显示器(LCD)、有机发光器件(OLED)、柔性显示器或三维(3D)显示器。显示器240可以被配置为触摸屏,并且因此可以用作输入设备以及输出设备。
显示器240可以显示从服务器100接收的网页。显示器240上显示的网页可以包括用于构成软件平台的用户界面(UI)。例如,网页可以包括:电子设备列表,从该列表可以选择在其上安装软件平台的电子设备;以及包列表,从该列表可以选择软件包。
用户输入接口250表示用户通过其输入用于控制客户端设备200的数据的单元。例如,用户输入接口250可以是但不限于键盘、圆顶开关、触摸板(例如,电容覆盖类型、电阻覆盖类型、红外波束类型、整体应变仪类型、表面声波类型、压电类型等)、滚轮或滚轮开关。
用户输入接口250可以接收输入,该输入是从在显示器240上显示的电子设备列表中选择在其上安装软件平台的电子设备的输入,或者是从包列表中选择至少一个软件包的输入。
图3中示出的客户端设备200的框图仅是一个实施例,当被实际实施时,根据客户端设备200的规格,图3中示出的组件可以被组合或被省略,或者图3的框图中可以包括附加组件。即,可以将两个或更多个组件组合为单个组件,或者可以将单个组件划分为两个或更多个组件。在每个块中执行的功能仅是用于解释实施例的示例,并且每个块的详细操作或装置不限制实施例的范围。
图4是根据实施例的运行包括客户端设备和服务器的系统并提供软件平台的方法的流程图。
参考图4,在操作S410,在客户端设备200连接到服务器100提供的网站之后,客户端设备200可以通过利用客户端设备200的用户的登录信息来登录到该网站。在操作S420,客户端设备200可以从服务器100接收网页信息。客户端设备200可以根据接收到的网页信息来显示网页。
该网页可以包括用于构成软件平台的UI。例如,网页可以包括电子设备列表,该电子设备列表包括能够安装由服务器100提供的软件平台的多个电子设备。网页可以被配置为能够选择电子设备列表中包括的多个电子设备,但是实施例不限于此。
客户端设备200可以在操作S430中接收从电子设备列表中选择要在其上安装软件平台的电子设备的输入,并且可以在操作S435中向服务器100发送关于电子设备的信息。
服务器100可以在操作S440中检测可以安装在电子设备上的软件包,并且可以在操作S445中向客户端设备200发送关于检测到的软件包的信息。
关于软件包的信息可以是关于根据要在其上安装软件包的设备、所提供的软件的功能或特征、或者API的设置来分类和分组的多个软件包的信息。例如,根据要安装软件平台的设备的类型,关于软件包的信息可以包括关于可以包含在软件平台中或需要包含在软件平台中的软件包的信息。根据被提供的软件的功能或特征,关于软件包的信息可以包括关于可以被包含或需要被包含的软件包的信息。根据所使用的API,关于软件包的信息可以包括关于可以被包含或需要被包含的软件包的信息。然而,实施例不限于此,并且可以根据各种标准对多个包进行分类。
客户端设备200可以在操作S450中接收基于关于从服务器100接收的软件包的信息从软件包中选择第一软件包的输入,并且可以在操作S455中针对关于第一软件包的信息向服务器100发送请求。
在操作S460,服务器100可以检测与第一软件包相关联的第二软件包。例如,第二软件包可以是需要被包括以执行第一软件包的软件包。可替代地,第二软件包可以是需要与第一软件包一起被包括以便优化软件平台的执行的软件包。然而,实施例不限于此。
服务器100可以在操作S465中向客户端设备200发送关于第一软件包的信息和关于第二软件包的信息。
客户端设备200可以在操作S470中显示接收到的关于第一软件包的信息和接收到的关于第二软件包的信息。例如,客户端设备200可以显示第一软件包和第二软件包的名称、大小、安装后的大小、版本信息以及简要描述。
当客户端设备200选择了第一软件包时,服务器100可以控制第二软件包被自动选择。当客户端设备200取消第一软件包的选择时,服务器100可以控制第二软件包的选择被自动取消。
当基于软件包信息完成对软件包的选择时,在操作S480中,客户端设备200可以向服务器100发送创建平台映像的请求,并且可以向服务器100发送关于所选软件包的信息。
在操作S485,服务器100可以基于由客户端设备200选择的软件包来创建平台映像。例如,服务器100可以创建包括由客户端设备200选择的软件包的配置文件,并且可以通过利用所创建的配置文件来创建平台映像。
服务器100可以将创建的配置文件或平台映像存储在服务器100的存储器130或外部存储设备中。例如,在客户端设备200的请求下,服务器100可以存储与客户端设备200相对应的创建的配置文件或平台映像。服务器100可以为每个客户端设备用户创建DB,并且可以在所创建的DB中存储配置文件或平台映像。
服务器100可以向客户端设备200发送所创建的配置文件或平台映像。
图5是根据实施例的运行服务器100的方法的流程图。
参考图5,在操作S510,服务器100可以从客户端设备200接收关于要在其上安装软件平台的电子设备的信息。
例如,服务器100可以向客户端设备200发送可以从中选择电子设备的电子设备列表,并且可以接收关于由客户端设备200选择的电子设备的信息。
在操作S520,服务器100可以基于接收到的关于所选电子设备的信息来检测可以安装在所选电子设备上的软件包,并且可以向客户端设备200发送关于检测到的软件包的信息。关于软件包的信息可以是关于根据要在其上安装软件包的设备、所提供的软件的功能或特征、或者API的设置来分类和分组的多个软件包的信息。例如,根据要安装软件平台的设备的类型,关于软件包的信息可以包括关于可以包含在软件平台中或需要包含在软件平台中的软件包的信息。根据被提供的软件的功能或特征,关于软件包的信息可以包括关于可以被包含或需要被包含的软件包的信息。根据所使用的API,关于软件包的信息可以包括关于可以被包含或需要被包含的软件包的信息。然而,实施例不限于此,并且可以根据各种标准对多个包进行分类。
当服务器100在操作S530中从客户端设备200接收到对第一软件包信息的请求时,服务器100可以在操作S540中检测与第一软件包相关联的第二软件包。例如,当服务器100从客户端设备200接收到对选择第一软件包的请求时,可以认为已经向服务器100请求了关于第一软件包的信息。
第二软件包可以是需要被包括以执行第一软件包的软件包。可替代地,第二软件包可以是需要与第一软件包一起被包括以便优化软件平台的执行的软件包。然而,实施例不限于此。
在操作S550,服务器100可以向客户端设备200发送关于第一软件包的信息和关于第二软件包的信息。
关于第一软件包信息的信息和关于第二软件包的信息可以包括但不限于第一软件包和第二软件包的名称、大小、安装后的大小、版本信息以及简要描述。
当客户端设备200选择了第一软件包时,服务器100可以控制第二软件包被自动选择。当客户端设备200取消第一软件包的选择时,服务器100可以控制第二软件包的选择被自动取消。
当服务器100在操作S560中从客户端设备200接收到平台映像创建请求时,服务器100可以在操作S570中基于客户端设备200选择的软件包来创建平台映像。例如,服务器100可以创建包括由客户端设备200选择的软件包的配置文件,并且可以通过利用所创建的配置文件来创建平台映像。
服务器100可以将创建的配置文件或平台映像存储在服务器100或外部存储设备中。例如,在客户端设备200的请求下,服务器100可以对应于客户端设备200存储创建的配置文件或平台映像。服务器100可以为每个客户端设备用户创建DB,并且可以在所创建的DB中存储配置文件或平台映像。
服务器100可以向客户端设备200发送所创建的配置文件或平台映像。
图6至图10是根据实施例的用于解释由服务器提供的UI以构成软件平台的视图。这些视图示出了在客户端设备上显示由服务器提供的网页的示例。
参考图6,网页610可以包括电子设备列表620。电子设备列表是可以从中选择要在其上安装软件平台的电子设备的列表,并且可以包括分别表示多个电子设备的项目。这些项目可以表示为多个电子设备的相应产品名称,但是实施例不限于此。这些项目可以表示为分别代表电子设备的简要描述等。
客户端设备200可以接收从多个项目中选择第一项目631的用户输入。当选择第一项目631时,可以自动选择与第一项目631相对应的软件包。例如,自动选择的软件包可以是需要被包括的软件包,以使得与第一项目631相对应的电子设备操作软件平台。客户端设备200可以从服务器100接收关于所选软件包的信息640,并显示接收到的信息640。
参考图7A,网页710可以包括列表720,在该列表中,可以由服务器100提供的多个软件包根据支持的API或所提供的软件的功能或特征被分类和分组。
例如,客户端设备200可以接收从列表720中选择API设置项目731的用户输入。当选择API设置项目731时,客户端设备200可以从服务器100接收关于可以由服务器100提供的多个软件包中的,通过支持的API分类的软件包的信息。如图7B所示,客户端设备200可以基于从服务器100接收的信息,将分类的软件包显示为API设置项目731的子项目。
参考图7B,当从显示在网页710上的子项目中选择第二项目740(例如,位置API组)时,第二项目740的子项目751和子项目752可以全部被自动选择。可替代地,可以基于用户输入来选择第二项目740的子项目751和子项目752中的仅一个。
另一方面,客户端设备200可以接收从图7A的列表720选择功能设置项目732的用户输入。当选择功能设置项目732时,客户端设备200可以从服务器100接收关于可以由服务器100提供的多个软件包中的通过提供的软件的功能分类的软件包的信息。如图8A所示,客户端设备200可以基于从服务器100接收的信息,将分类的软件包显示为功能设置项目732的子项目。
客户端设备200可以接收从子项目中选择至少一个项目的用户输入。例如,客户端设备200可以接收从显示在网页上的子项目中选择第三项目811(例如,设备设置特征)的用户输入。此时,服务器100可以控制与被选择的第三项目811相对应的第一软件包(例如,设备设置特征包)相关联的第二软件包(例如,DotNET特征包)被自动选择。例如,第二软件包可以是需要被包括以执行第一软件包的软件包。可替代地,第二软件包可以是需要与第一软件包一起被包括以便优化软件平台的执行的软件包。然而,实施例不限于此。
例如,客户端设备200可以向服务器100发送对关于所选择的第一软件包的信息的请求。服务器100可以检测与第一软件包相关联的第二软件包,并且可以向客户端设备200发送关于第一软件包的信息和关于第二软件包的信息。客户端设备200可以从服务器100接收指示第二软件包与第一软件包相关联的信息,并且可以控制第二软件包被自动选择。因此,客户端设备200可以自动选择与关联的第二软件包相对应的项目812。
客户端设备200可以显示从服务器100接收的关于第一软件包的信息和关于第二软件包的信息,并且还可以显示指示第一软件包和第二软件包彼此关联的信息830。
参考图8B,客户端设备200可以接收用于取消选择所选择的软件包的用户输入。此时,当尝试取消选择的软件包与另一个选择的软件包相关联时,客户端设备200可以显示从服务器100接收到的通知消息850。
例如,当第一软件包(例如,设备设置特征包)和第二软件包(例如,DotNET特征包)已经被选择并且用于取消选择与第一软件包相关联的第软件包的用户输入被接收时,客户端设备200可以显示表示第二软件包与第一软件包相关联的通知消息850。因此,用户无需关于软件包的技术知识,就可以容易地将构成软件平台所需的软件包与构成软件平台非必需的软件包区分开。
完成必要软件包的选择后,用户可以单击“映像创建”图标。响应于映像创建请求输入(例如,点击“映像创建”图标的用户输入),客户端设备200可以向服务器100发送创建平台映像的请求。服务器100可以基于由客户端设备200选择的软件包来创建平台映像。例如,服务器100可以创建包括由客户端设备200选择的软件包的配置文件,并且可以通过利用所创建的配置文件来创建平台映像。
服务器100可以向客户端设备200发送创建平台映像的结果,并且,如图9所示,客户端设备200可以显示创建平台映像的结果。例如,客户端设备200可以显示关于在所创建的平台映像中包括的软件包、映像名称、映像版本、映像大小和映像安装后的大小的信息910。可以从用户接收映像名称或映像版本。客户端设备200可以下载所创建的配置文件或平台映像。
服务器100可以将创建的配置文件或平台映像存储在服务器100或外部存储设备中。服务器100可以与用户的登录信息相对应地存储配置文件或平台映像。因此,如图10所示,服务器100可以基于连接到服务器100的用户的登录信息来提供先前创建并存储的配置文件或平台映像920。
客户端设备200可以下载在服务器100中存储的配置文件或平台映像。可替代地,客户端设备200可以基于用户输入来更正所创建的配置文件。服务器100可以使用更正后的配置文件重新创建平台映像。
客户端设备200可以向服务器100发送与由服务器100提供的软件包不同的软件包。服务器100可以存储接收到的软件包,并将接收到的软件包添加到软件包列表,从而配置新的软件包列表。服务器100可以向客户端设备200提供新的包列表。
根据实施例,用户可以仅利用用户所需的软件包来创建平台映像,而无需关于软件包的任何特殊知识。
根据实施例的服务器可以自动检测并提供需要被包含以执行所选软件包的软件包。
因此,用户可以容易地创建软件平台。
根据实施例的操作电子设备的方法可以实现为可由各种计算机装置执行的程序命令,并且可以被记录在计算机可读记录介质上。计算机可读的记录介质可以包括单独或组合形式的程序命令、数据文件、数据结构等。记录在计算机可读记录介质上的程序命令可以针对实施例进行特殊设计和配置,或者可以是计算机软件领域的普通技术人员公知并可以使用的。计算机可读记录机制的示例包括磁介质(诸如,硬盘、软盘和磁带)、光学介质(诸如,光盘只读存储器(CD-ROM)或数字视频盘(DVD))、磁光介质(诸如,软光盘)以及专门被配置为存储并执行程序指令的硬件设备(诸如,R0M、随机存取存储器(RAM)或闪存)。程序命令的示例是可以通过计算机使用解释器等执行的高级语言代码、以及由编译器生成的机器语言代码。
而且,可以以计算机程序产品的形式提供根据所公开的实施例的服务器或运行该服务器的方法。该计算机程序产品可以作为商品在买卖双方之间进行交易。
该计算机程序产品可以包括软件程序和其上存储有该软件程序的计算机可读存储介质。例如,计算机程序产品可以包括软件程序形式的产品(例如,可下载的app),该产品通过电子设备的制造商或电子市场以电子方式分发。对于电子分发,软件程序的至少一部分可以存储在存储介质上或可以临时创建。在这种情况下,存储介质可以是制造商的服务器、电子市场的服务器或用于临时存储软件程序的中继服务器的存储介质。
在包括服务器和客户端设备的系统中,计算机程序产品可以包括服务器的存储介质或客户端设备的存储介质。可替代地,当存在与服务器或客户端设备通信的第三设备(例如,智能电话机)时,计算机程序产品可以包括第三设备的存储介质。可替代地,计算机程序产品可以包括从服务器向客户端设备或第三设备发送的软件程序本身,或者从第三设备向客户端设备发送的软件程序本身。
在这种情况下,服务器、客户端设备和第三设备之一可以执行计算机程序产品以执行根据所公开的实施例的方法。可替代地,服务器、客户端设备和第三设备中的至少两个可以执行计算机程序产品以分发和执行根据所公开的实施例的方法。
例如,服务器(例如,云服务器或人工智能服务器)可以执行存储在服务器上的计算机程序产品,以控制与服务器通信的客户端设备执行根据所公开的实施例的方法。
上述实施例应仅在描述性意义上考虑,而不是出于限制的目的。每个实施方式中的特征或方面的描述通常都应被认为可用于其它实施方式中的其它相似特征或方面。
尽管已经具体示出和描述了实施例,但是本领域普通技术人员可以理解的是在不背离下述权利要求所界定的本公开的精神和范围的情况下,对其做出各种形式和细节上的改变。

Claims (15)

1.一种用于提供软件平台的服务器,所述服务器包括:
通信接口;
存储器,所述存储器存储有至少一个指令;以及
处理器,所述存储器被配置为执行在所述存储器中存储的所述至少一个指令以:
控制所述通信接口向第一电子设备发送电子设备的列表,
控制所述通信接口从所述第一电子设备接收从所述电子设备的列表中对要在其上安装所述软件平台的第二电子设备的选择,所述第二电子设备不同于所述第一电子设备,
控制所述通信接口向所述第一电子设备发送与可安装在所述第二电子设备上的软件包有关的信息,
控制所述通信接口从所述第一电子设备接收对关于从所述软件包中选择的第一软件包的信息的请求,
检测与所述第一软件包相关联的第二软件包,
控制所述通信接口向所述第一电子设备发送关于所述第一软件包的信息和关于所述第二软件包的信息,
控制所述通信接口从所述第一电子设备接收平台映像创建请求,所述平台映像创建请求用于基于根据关于所述第一软件包的信息和关于所述第二软件包的信息选择的软件包创建平台映像,
基于所述平台映像创建请求创建配置文件,以及
基于所创建的配置文件创建所述平台映像。
2.根据权利要求1所述的服务器,其中,所述处理器被进一步配置为执行所述至少一个指令,以控制所述通信接口向所述第一电子设备发送包列表,在所述包列表中,可安装在所述第二电子设备上的所述软件包根据预设标准被分类。
3.根据权利要求1所述的服务器,其中,所述第二软件包是执行所述第一软件包所必需的。
4. 根据权利要求1所述的服务器,其中,所述处理器被进一步配置为执行所述至少一个指令以:
基于所述第一电子设备对所述第一软件包的选择,控制所述第二软件包被自动选择,并且
基于所述第一电子设备对所述第一软件包的取消选择,控制所述第二软件包被自动取消选择。
5.根据权利要求1所述的服务器,其中,所述处理器被进一步配置为执行所述至少一个指令,以从所述第一电子设备接收与从可安装在所述第二电子设备上的所述软件包中选择的软件包有关的信息。
6.根据权利要求1所述的服务器,其中,所述处理器被进一步配置为执行所述至少一个指令,以基于从所述第一电子设备接收到的平台映像下载请求,控制所述通信接口向所述第一电子设备发送所创建的平台映像。
7. 根据权利要求1所述的服务器,其中,所述处理器还被配置为执行所述至少一个指令,以基于与所述第一电子设备相对应的登录信息,控制所创建的平台映像被与所述第一电子设备相对应地存储。
8.根据权利要求7所述的服务器,其中,所述通信接口被配置为接收与所述第一电子设备相对应的所述登录信息,并且
所述处理器被进一步配置为执行所述至少一个指令以控制所述通信接口基于所述登录信息,向所述第一电子设备发送关于与所述第一电子设备相对应地存储的、待向所述第一电子设备发送的所创建的平台映像的信息。
9.根据权利要求1所述的服务器,其中,所述处理器被进一步配置为执行所述至少一个指令以:
控制所述通信接口从所述第一电子设备接收对与所述平台映像相对应的配置文件进行更正的请求,
更正与所述平台映像相对应的所述配置文件,以及
根据更正后的配置文件重新创建所述平台映像。
10.一种运行用于提供软件平台的服务器的方法,所述方法包括:
向第一电子设备发送电子设备的列表;
从所述第一电子设备接收从所述电子设备的列表中对要在其上安装所述软件平台的第二电子设备的选择,所述第二电子设备不同于所述第一电子设备;
向所述第一电子设备发送关于可安装在所述第二电子设备上的软件包的信息;
从所述第一电子设备接收对关于从所述软件包中选择的第一软件包的信息的请求;
检测与所述第一软件包相关联的第二软件包;
向所述第一电子设备发送关于所述第一软件包的信息和关于所述第二软件包的信息;
从所述第一电子设备接收平台映像创建请求,所述平台映像创建请求用于基于根据关于所述第一软件包的信息和关于所述第二软件包的信息选择的软件包创建平台映像;
基于所述平台映像创建请求创建配置文件;以及
基于所创建的配置文件创建所述平台映像。
11.根据权利要求10所述的方法,其中,向所述第一电子设备发送关于可安装在所述第二电子设备上的所述软件包的信息包括:向所述第一电子设备发送包列表,在所述包列表中,可安装在所述第二电子设备上的所述软件包被根据预设标准分类。
12.根据权利要求10所述的方法,其中,所述第二软件包是执行所述第一软件包所需的软件包。
13. 根据权利要求10所述的方法,所述方法进一步包括:
基于所述第一电子设备对所述第一软件包的选择,控制所述第二软件包被自动选择,以及
基于所述第一电子设备对所述第一软件包的取消选择,控制所述第二软件包被自动取消选择。
14.根据权利要求10所述的方法,所述方法进一步包括:从所述第一电子设备接收与从可安装在所述电子设备上的所述软件包中选择的软件包有关的信息。
15. 根据权利要求10所述的方法,所述方法进一步包括:
从所述第一电子设备接收平台映像下载请求;以及
基于所述平台映像下载请求,向所述第一电子设备发送所创建的平台映像。
CN201880092893.3A 2017-05-15 2018-06-20 用于提供软件平台的服务器和运行服务器的方法 Active CN112106025B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201762506165P 2017-05-15 2017-05-15
US201762506758P 2017-05-16 2017-05-16
KR10-2018-0050463 2018-05-02
KR1020180050463A KR102166336B1 (ko) 2017-05-15 2018-05-02 소프트웨어 플랫폼을 제공하는 서버 및 그 동작방법
PCT/KR2018/006983 WO2019212087A1 (en) 2017-05-15 2018-06-20 Server for providing software platform and method of operating server

Publications (2)

Publication Number Publication Date
CN112106025A CN112106025A (zh) 2020-12-18
CN112106025B true CN112106025B (zh) 2024-08-06

Family

ID=64565563

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880092893.3A Active CN112106025B (zh) 2017-05-15 2018-06-20 用于提供软件平台的服务器和运行服务器的方法

Country Status (5)

Country Link
US (1) US10754635B2 (zh)
EP (1) EP3776186B1 (zh)
KR (1) KR102166336B1 (zh)
CN (1) CN112106025B (zh)
WO (1) WO2019212087A1 (zh)

Families Citing this family (2)

* 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
KR102643830B1 (ko) * 2023-11-07 2024-03-08 올거나이즈코리아 주식회사 기업 업무 자동화를 위한 대형 언어 모델 기반 애플리케이션 제공 방법 및 시스템

Family Cites Families (21)

* 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
US20080163197A1 (en) * 2006-12-30 2008-07-03 Sap Ag Multi-product installation tool database architecture
US9323519B2 (en) * 2007-08-31 2016-04-26 Red Hat, Inc. Packaging an application
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
US8543998B2 (en) * 2008-05-30 2013-09-24 Oracle International Corporation System and method for building virtual appliances using a repository metadata server and a dependency resolution service
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
US20110271275A1 (en) * 2010-04-28 2011-11-03 Hitachi, Ltd. Software distribution management method of computer system and computer system for software distribution management
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
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
US9189220B2 (en) * 2012-07-02 2015-11-17 Amazon Technologies, Inc. Evaluating application compatibility
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的软件包管理方法、装置及系统

Also Published As

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

Similar Documents

Publication Publication Date Title
US20200045097A1 (en) Virtual machine pixel remoting
US8549430B2 (en) Using expanded tiles to access personal content
US20110131532A1 (en) Identifying Content via Items of a Navigation System
KR20160141838A (ko) 확장가능한 애플리케이션 표시
US8856685B2 (en) Method and system for providing web content on a mobile device
US10712910B2 (en) Electronics apparatus, method for executing application, and computer-readable recording medium
US20140096047A1 (en) Electronic apparatus, method of executing application, and computer readable recording medium
KR20100017023A (ko) 화상형성장치 및 그의 어플리케이션 제어방법
US20160048319A1 (en) Gesture-based Access to a Mix View
US20170269916A1 (en) Selective Application Installation Or Application Running Without Installation
US9032391B2 (en) System and method for dynamically creating executable files
EP2979174B1 (en) Visual configuration and activation
US20060294358A1 (en) Methods and computers for presenting a graphical user interface during a boot process
US20150324188A1 (en) Aggregation of Update Sets
CN112106025B (zh) 用于提供软件平台的服务器和运行服务器的方法
US8539473B2 (en) Techniques for providing information regarding software components for a user-defined context
JP2017194957A (ja) クラウドストレージデバイスの検出のためのシステムおよび方法
US20150212866A1 (en) Management system for service of multiple operating environments, and methods thereof
WO2018039010A1 (en) Platform support for user education elements
US20180365023A1 (en) Teaser of an application available for installation
US9418071B2 (en) Method and system for automatically initiating a file aggregation process between communicatively coupled devices
JP2019046360A (ja) プログラム、情報処理装置、及び制御方法
JP7289940B2 (ja) プログラムのセット、記憶媒体、及び情報処理方法
CN111538508A (zh) 应用程序的安装方法及电子设备
US20170324842A1 (en) Method for remotely controlling server and associated computer program product

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant