CN115315696A - 网站的自动创建和部署 - Google Patents
网站的自动创建和部署 Download PDFInfo
- Publication number
- CN115315696A CN115315696A CN202180009529.8A CN202180009529A CN115315696A CN 115315696 A CN115315696 A CN 115315696A CN 202180009529 A CN202180009529 A CN 202180009529A CN 115315696 A CN115315696 A CN 115315696A
- Authority
- CN
- China
- Prior art keywords
- cms
- website
- content
- cda
- deployment
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
- G06F16/986—Document structures and storage, e.g. HTML extensions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computer Security & Cryptography (AREA)
- Information Transfer Between Computers (AREA)
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Preparation Of Compounds By Using Micro-Organisms (AREA)
- Electrotherapy Devices (AREA)
Abstract
提供了用于部署目标网站、尤其是使用用于开发诸如WORDPRESS的网站的第三方内容管理系统(“CMS”)创建的那些网站的方法、系统和技术。示例实施例提供了CMS部署系统(“CDS”)或CMS部署应用(“CDA”),该CMS部署系统或CMS部署应用使得用户能够使用CMS的所有资源在本地创建内容,然后使用版本控制过程以及在目标服务器上以更安全的形式来管理和部署目标网站。在一个实施例中,CDS/CDA将CMS网站实例导出为平面HTML文件,使用版本控制系统管理这些文件,然后将它们部署在目标服务器上而不需要用户专业知识。示例CDS/CDA包括:安装设施、导出设施和部署设施,安装设施、导出设施和部署设施协作以部署使用标准CMS工具创建的安全网站。
Description
技术领域
本公开涉及用于为网站自动地部署内容的方法、技术和系统,并且具体地涉及用于在轻量级环境中自动地部署来自内容管理系统的内容的方法、技术和系统。
背景技术
内容管理系统(“CMS”)使得非专业用户能够创建具有复杂文本和图形内容的网站。例如,一个这样的内容管理系统环境(WORDPRESS)非常受欢迎,部分原因在于内容管理系统环境作为“开源”分布,因此当一个人(在你自己的服务器上)托管自己的网站时是免费的。此外,存在用于学习和部署网站的从插件到模板、教程等的大量可用资源。从用户的角度来看,它易于安装、设置、配置和定制。它允许外部人员写入内容以及允许网站管理员根据需要为他们分配不同的角色(编辑者、贡献者等)。
使用WORDPRESS和其他此类CMS环境来创建和部署网站的缺点和问题之一是,只要软件包括插件、模板或其他资源,该软件就会非常消耗资源。当网站每月支持几百个访问者时,资源消耗可能不是真正的问题。然而,当超过该数目时,正如在生产网站中常见的那样,资源消耗可能会成为问题,导致严重延迟、不良性能等。一种解决方案是购买更强大的设备。另一种是使用缓存系统来缓存频繁使用的页面和资源。然而,此类解决方案仍然需要强大的服务器来处理业务,这可能是昂贵的并且在一些情况下成本过高。
使用WORDPRESS和其他开源环境部署的网站的另一个缺点和问题是缺乏安全性。因为环境是开源的,并因此在数百万网站上使用,所以很容易受到攻击,如由黑客利用的WORDPRESS的漏洞的故事所证实的。这些漏洞通常由未保持更新的插件或安装引起。使用诸如WORDFENCE的附加插件可以解决此类问题。此外,保持CMS安装和插件是最新的、强制使用强密码等缓解了一些漏洞,但是仍然需要更多的资源来抵抗潜在的攻击。此外,维持一个CMS安装可能不会有太多工作,但是这些解决方案不能很好地缩放。对于成百上千个网站,保持所有WORDPRESS安装更新可能会耗费大量时间和成本。
发明内容
附图说明
本专利或申请文件包含至少一幅彩色附图。具有彩色附图的本专利或专利申请公开的副本将在请求和支付必要费用后由办公室提供。
图1是使用本文描述的技术、方法和系统的示例CMS部署应用环境的框图。
图2是用于使用示例CMS部署应用环境来创建和部署目标网站的改进的网站开发和更新过程的概况的示例流程图。
图3A-图3U是来自根据本文描述的示例CMS部署应用环境执行网站开发和部署的示例用户界面的示例屏幕显示。
图4是示例CMS部署应用实例的组件的示例框图。
图5是用于实践CMS部署系统/应用的实施例的计算系统的示例框图。
图6是由CMS部署系统/应用的安装设施提供的以使用本地CMS实例初始地设置该网站以用于创建目标网站的示例网站创建和内容管理系统安装例程的示例流程图。
图7是由CMS部署系统/应用的安装设施提供以便创建目标网站的初始版本从而在导出该网站时使用的示例设置版本控制例程的示例流程图。
图8是由CMS部署系统/应用的导出设施提供的以在目标网站的新版本中导出CMS内容的工作流的示例流程图。
图9是由CMS部署系统/应用的示例部署设施提供的以在目标服务器上部署目标网站的工作流的示例流程图。
具体实施方式
本文所描述的实施例提供了用于部署目标网站(尤其是使用用于开发网站(诸如WORDPRESS)的第三方内容管理系统(“CMS”)创建的那些网站)的增强的基于计算机和网络的方法、技术和系统。示例实施例提供了CMS部署系统(“CDS”)或CMS部署应用(“CDA”),该CMS部署系统或CMS部署应用使得用户能够使用CMS的所有资源在本地创建内容,然后使用版本控制过程以及在目标服务器上以更安全的形式来管理和部署目标网站。
在示例实施例中,CDS/CA在本地实例化CMS的每个实例并且使每个实例与可能在同一计算系统上运行的其他CMS实例隔离。用户能够以他们通常与CMS交互的相同方式在CMS实例中添加和管理内容。然后,当目标网站完成时,授权用户(例如,具有管理特权的用户)可以将网站导出为安全表单,然后可以将该安全表单部署在目标服务器上。使用CDS/CDA通过将目标网站部署为平面HTML文件而不是并入CMS环境的全部或甚至一部分和运行CMS创建的网站通常所需的资源,来减少对目标网站的攻击向量。例如,在示例CDS/CDA中,导出设施创建目标网站平面HTML文件,然后部署设施通过例如在需要时重定向引用(例如,链接)并将文件复制到远程服务器来将目标网站传输到远程服务器。CDS/CDA导出设施通常通过“抓取”CMS网站来确定显示网站的页面所需的所有html,然后以自动方式加载丢失的资源、根据需要重新命名路径等。此外,示例CDS/CDA提供简化的用户界面,然后在单个用户界面操作中部署目标网站,该简化的用户界面允许用户在单个用户界面操作中导出使用CMS工具创建的网站。一旦内容被创建/修改,这允许“自动地”利用修订内容“升级”网站,以响应于单个用户操作。
图1是使用本文描述的技术、方法和系统的示例CMS部署应用环境的框图。CMS部署系统(“CDS”)提供在计算机系统(例如,本地服务器)上本地运行的CMS部署应用(“CDA”)101的实例。CDA 101负责创建一个或更多个内容管理系统(“CMS”)环境以创建一个或更多个目标网站(未示出),这些目标网站最终可以作为由一个或更多个用户103a-103c使用通信网络110(诸如互联网)可访问的远程服务器/计算系统130a-130c上的公共网站运行。CDA 101管理一个或更多个CMS环境,包括允许用户103a-103c配置一个或更多个网站104(每个使用CMS实例)、目标服务器105和/或用户访问权限能力106。CDA 101还与数据储存库120a-120b通信以存储每个CMS创建的网站的CMS(网站)内容(包括资源和其他数据),并与远程服务器130a-130c通信以实现创建的目标网站的导出和部署。使用配置的用户访问信息106,具有潜在不同权限的不同用户可以充当管理员、编辑者或内容、设计师等。被配置为网站104的每个网站的每个CMS环境是独立的处理环境,使得一个网站的改变不会干扰另一个网站的改变或一个网站的内容不会干扰另一个网站的内容。一旦网站的内容完成,CDA 101就可以将目标网站(在本地)导出到一个或更多个平面HTML文件(潜在地存储在数据储存库120a-120b中或单独的储存库中),然后经由网络110将目标网站部署到远程服务器130a-130c中的一个。
图2是用于使用示例CMS部署应用环境来创建和部署目标网站的改进的网站开发和更新过程的概况的示例流程图。改进的网站开发过程200可以由示例CDA实例内的一个或更多个组件、模块或设施提供。总的来说,在框201中,CDA确定或配置用于托管目标网站的至少一个远程服务器。例如,这个配置的服务器可以是图1中的配置的目标服务器105中的一个。在框202中,CDA接收来自用户(通常为具有管理特权的用户)的目标网站的指示。例如,目标网站可以是图1中配置的网站104中的一个。在框203中,CDA自动安装正在使用(指定或默认)的CMS的实例,为目标网站设置版本控制,并将目标网站与目标服务器相关联。一旦目标网站的CMS实例设置完成,则在框204中,使用标准CMS接口从一个或更多个用户接收内容(例如,在WORDPRESS中,用户创建帖子、使用模板等)。示例CDA 101可以支持多于一种类型的CMS,由于每个CMS在自身的环境内操作,因此CDA是可扩展的。(例如,可能存在作为CDA 101的一部分执行的两个不同的或相同的CMS实例)。一段时间后,在框205中,在目标网站内容被视为充分完成以发布(例如,用户通常决定站点准备好公开发布)之后,用户(通常具有管理特权的用户)可以自动导出网站以创建用于网站的目标‘格式’-平面HTML文件。在示例环境中,CDA通过处理网站以生成html文件而无需进一步的用户命令,触摸单个用户界面控件(例如,按钮)来自动导出网站。然而,在一些示例CDA中,可以要求用户验证或校正特定信息。然后,在框206中,CDA将网站导出到相关联的远程服务器上的目标位置。在一些示例CDA中,用户有机会在目标网站的内容被曝光(部署在公共通信网络上)之前确认目标网站的内容。
CDA自动工作的意义在于,一旦给出导出或部署的适当指示,CDA就负责将CMS内容转换成远程服务器上可直接执行的形式(平面HTML文件)。在示例CDA中,使用抓取内容并校正内容以加载和/或引用丢失的信息或资源的工具来完成该转换。使内容可正确执行的任何这样的校正也由CDA来处理。因此,在使用内容管理系统创建、更新或修改内容之后,几乎不需要任何用户专业知识来部署目标网站。
图3A-图3R是来自根据本文描述的示例CMS部署应用环境执行网站开发和部署的示例用户界面的示例屏幕显示。这些显示屏幕是从名为“鼠标单击(OneClick)”的CDA的示例实施例捕获的。该CDA或另一示例CDA的其他屏幕显示可以具有等效特征或可以使用与本文所描述的技术不同的技术或以与本文所描述的布置不同布置来实施,以仍实现类似或等效功能。
图3A是当CDA开始时由CDA呈现的控制面板屏幕显示301的示例。控制面板屏幕显示301包括:具有用于配置(例如,查看、编辑或指定)它们的用户界面(“UI”)控件(或UI元件)302的网站列表;具有用于配置它们的UI控件303的服务器列表;以及可以经由UI控件304配置的用户列表。在选择图3A中的UI控件303时,如图3B所示的屏幕显示310呈现到目前为止配置的服务器的列表,服务器的列表包括:每个服务器的名称311、哪个网站312与每个服务器相关联的指示符(例如,IP地址)、以及操作UI控件,操作UI控件包括每个服务器的编辑或删除按钮314。用户可以使用“创建服务器”UI控件313为CDA配置新服务器。
一旦创建服务器UI控件313被选择,如图3C所示,屏幕显示320就在可以被编辑的一组用户界面控件(例如,文本编辑字段)中显示相应服务器的信息。例如,用户可以编辑服务器的名称321,用户可以指示可用于传输文件的协议322(例如,“ftp”)、目标网站的主机名称323、服务器的端口和路径324、以及服务器访问的证书325。
在选择“保存”UI控件326时,CDA显示新配置的服务器的信息,例如,如图3D所示的显示屏幕330。在显示330中,CDA呈现(反映协议、域、端口等的)主机名称访问路径以及访问用户名称和密码,如字段331中所示。示例通知332指示尚未将目标网站链接到新创建(配置)的服务器。
在图3A中,用户还可以通过选择“网站”UI控件302使用控制面板屏幕显示301来配置网站。用户还可以通过选择UI控件304来配置如图3A的控制面板屏幕显示301中所示的用户权限。
在选择网站UI控件302之后,如图3E所示,然后屏幕显示340呈现到目前为止配置的网站347的列表,网站347的列表包括:每个网站的名称341、与该网站相关联的URL 342、哪个配置的服务器343与该网站相关联的指示、网站版本状态指示符344、以及一组操作UI控件345,一组操作UI控件345包括:对该网站的CMS实例的前端(UI)的访问、对该网站的CMS实例的后端(UI)的访问、以及使用CMS实例的网站的预览。用户使用“创建网站”UI控件346配置和初始化新网站的创建。
一旦创建网站UI控件346被选择,如图3F所示,屏幕显示348就在一组用户界面控件(例如,文本编辑字段)中显示相应网站的信息,该用户界面控件可以以与能够编辑服务器信息大致相同的方式被编辑。例如,用户可以编辑用于向CDA实例识别网站的名称、(在本地服务器上)网站的实时URL(或统一资源标识符URI)以及用于在适用的情况下安装CMS的语言。
在选择图3F中的“保存”UI控件346时,如图3G中所示,CDA显示新配置的网站的信息,例如,显示屏幕347。用户还可以使用“安装”UI控件335安装相应CMS的实例,使得可以进行网站内容和CMS配置的创建和编辑。如通知334所示,此时网站没有可用的导出版本,因为它尚未被导出(到平面HTML文件),因此尚未部署到相关联的服务器。此外,通知字段336指示安装正在进行中。下面参见图6和图7描述示例安装过程。
图3H示出了在CMS安装完成之后的CDA显示屏幕350。一旦安装完成,就示出网站名称351的网站的细节352,以及所安装的CMS的当前版本的指示359和相对于目标网站进行的活动列表353。由于CMS实例安装现在已完成,使得访问CMS的UI控件(包括“前端”UI控件355和“后端”控件356)可用于将用户导航至CMS的标准用户界面。CDA还显示编辑网站细节的“编辑”UI控件354;开始导出过程以生产格式文件(平面HTML)的“导出”UI控件357;以及显示到目前为止所创建的网站的“预览”UI控件358。(在添加内容之前,选择预览UI控件358可以显示默认内容和/或模板内容。)例如,选择前端UI控件355(或此时的预览UI控件358)可以显示图3I中所示的显示屏幕360。选择后端UI控件356可以显示图3J中示出的显示屏幕361。这是用于向新配置的网站添加内容(诸如添加新的“帖子”)的标准CMS界面。
例如,在图3K中,CDA显示相应CMS实例的显示屏幕362。这里,用户选择了UI控件363来编辑或查看名称为“example.com”的网站中的“帖子”。显示屏幕362示出了用于编辑帖子的标准WORDPRESS界面。显示示出了帖子的标题“你好世界!(Hello world!)”在编辑字段364中正被编辑成提议的标题“大家好!(Hello Everyone!)”,提议的标题“大家好!(Hello Everyone!)”如图3L中的显示屏幕365中的编辑字段364中所示。
一旦编辑完成,用户就可以选择“更新”UI控件(未示出)来保存编辑,然后选择链接字段367(或在其他CMS环境中的等效物)以预览新创建的帖子,如将向公众(最终)提供的并且如在图3M中所示。通知字段368表明这是具有发布信息的标准WORDPRESS帖子。
在完成对所期望的点的修改之后,用户(典型地具有管理特权的用户)可以进行处理以导出网站并且将网站部署至目标服务器。图3N是在新内容可用于导出之后的CDA的示例显示屏幕370。这里,用户可以选择“导出”UI控件371来开始导出过程。在图3O中,CDA界面在对话控件371中提示用户描述什么已经改变并且确认期望导出。用户可以选择“开始导出”UI控件373以开始导出过程。如图3P中所示,在选择UI控件373时,CDA经由导出UI控件375中的“忙图标”指示导出过程正在发生(不需要进一步的用户干预)。选择预览UI控件358(见图3H)得到图3Q所示的屏幕显示376。该显示类似于图3I中所示的显示;然而,注意帖子中的标题改变和更新的发布信息。
如前所述,导出设施负责将CMS创建的网站转换成更适合部署的格式,在这种情况下是平面HTML文件。下面参见图8进一步描述示例导出过程。
一旦导出过程已经完成,示例CDA就为用户提供机会以使用“批准”UI控件378批准或验证版本通知380所描述的网站改变,如图3R的显示屏幕377中所示。可替代地,用户可以使用“拒绝”UI控件379拒绝改变。
图3S示出了在用户已经批准新版本改变之后的示例CDA显示屏幕381。审核状态指示符382示出了改变被批准。显示屏幕381通过向显示屏幕381添加“部署”UI控件383来向用户指示版本准备好部署。在选择了部署UI控件383之后,CDA向用户显示确认对话框,如图3T所示。在选择了确认UI控件384之后,CDA就开始部署过程以(例如,通过图1中的通信网络110)将生产文件部署到目标服务器以公开发布。
如前所述,部署设施负责使用所配置的协议将生产格式化网站传输至目标服务器,例如,如图3C中所示。下文参见图9进一步描述示例部署过程。
图3U示出了在目标网站已经部署至目标服务器并且例如通过图1中的网络110公开可用之后的目标网站。
图4是示例CMS部署应用实例的组件的示例框图。在一个示例CDA环境中,CMS部署应用(“CDA”)实例包括一个或更多个功能组件/模块,该一个或更多个功能组件/模块一起工作以完成到目前为止所描述的网站管理功能,该网站管理功能包括创建/编辑网站、将该网站导出至高效且安全的生产表单、然后将所导出的网站部署至相应目标服务器。图4示出了在计算系统(这里称为本地计算系统以将其与远程的、可公开访问的服务器区分开来)上执行时的CDA实例401。应当理解,CDA实例401可以在也用于部署可公开访问的网站的计算系统中的一个上物理地或虚拟地运行。
示例CDA实例401包括:用户界面402、安装设施403、导出设施404和部署设施405。用户界面402操作以允许一个或更多个用户使用一个或更多个CMS实例来创建/修改网站、然后导出和部署它们。例如,用户界面402可以操作以实现上文参见图3A-图3U描述的显示屏幕。安装设施403负责安装(相同或不同的)CMS环境的一个或更多个实例。执行实例401将两个CMS实例408和409示出为已经被安装,其中,它们相应的CMS(网站)数据存储在一个或更多个数据储存库440中。输出设施404负责将基于CMS的网站转换(变换、翻译、配置等)为适于生产环境的格式。生产文件作为导出的CMS数据存储在数据储存库430中。一些CDA采用版本控制系统来帮助跟踪网站版本,以便可以更容易地完成某些操作,例如回滚到先前版本。如所描述的,导出的格式当前被实现为平面HTML文件435,尽管在将来其他格式可能是合适的并被支持的。这种格式所需要的特征是运行“轻重量”的能力—即无需CMS环境或其资源。部署设施405负责最终确定目标服务器的导出格式,诸如通过改变链接和路径名称来指代服务器,并且负责将最终确定的代码复制到目标服务器(例如,远程服务器450中的一个)。一个这样的部署设施405使用ftp协议来传输文件和代码,但是也可以支持其他协议,诸如SSH(SFTP)和其他协议。
在一些示例中,CDA实例401还包括用于异步地处理功能中的一些功能以允许各种设施具有更大的响应性和协调性的队列管理407。例如,如以下参见图6-图9进一步描述的,各种设施可以使用队列管理设施407来将某些操作排队,某些操作诸如CMS实例安装、(在导出时)生产文件的生成等。
CDS/CDA的技术通常适用于任何类型的内容创建、管理、导出和部署。而且,虽然本文中描述的示例通常参考WORDPRESS,但是本文中描述的技术也可以与其他CMS环境(诸如,Drupal、Joomla、或Expression Engine)一起使用。同样,任何基于PHP或基于MySQL的CMS也可以与本文所描述的示例一起操作。此外,所描述的概念和技术可应用于其他生产格式和协议。而且,虽然在本文中主要使用某些术语,但是其他术语可以互换使用,以产生等效实施例和示例。此外,术语可能具有可能明确提及或可能未明确提及的备选拼写,并且术语的所有此类变型旨在被包括。
本文描述的示例实施例提供应用、工具、数据结构和其他支持以实现有待使用的CMS部署系统或应用以促进网站的创建和部署,以便减少部署网站所需的专业知识、创建不易被黑客入侵的更稳健的网站、以及更少资源量。所描述的技术的其他实施例可以用于其他目的。在以下描述中,阐述了许多具体细节,诸如数据格式和代码序列等,以便提供对所描述的技术的透彻理解。所描述的示例实施例还可以在没有本文描述的特定细节中的一些细节的情况下实践,或者在具有其他特定细节(诸如关于逻辑的排序、不同逻辑等的改变)的情况下实践。由此,所描述的技术和/或功能的范围不受参考任何特定例程、模块、组件等所描述的各方面的特定次序、选择或分解的限制。
图5是用于实践CMS部署系统/应用的实施例的计算系统的示例框图。注意,适当指示的一个或更多个通用虚拟或物理计算系统或专用计算系统可用于实现CDS/CDA。进一步,CDS/CDA可以以软件、硬件、固件或某种组合来实施以实现本文所描述的能力。
注意,一个或更多个通用或专用计算系统/设备可以用于实现所描述的技术。然而,仅仅因为可以在通用计算系统上实现CDS/CDA并不意味着技术本身或实现技术所需的操作是常规的或众所周知的。
计算系统500可以包括一个或更多个服务器和/或客户端计算系统并且可以跨越分布式位置。此外,所示的每个框可以视特定实施例的需要表示一个或更多个这样的框,或者可以与其他框组合。此外,CDS/CDA 510的各个框可以物理地驻留在一个或更多个机器上,一个或更多个机器使用标准(例如,TCP/IP)或专用进程间通信机制来彼此通信。
在所示的实施例中,计算机系统500包括:计算机存储器(“存储器”)501、显示器502、一个或更多个中央处理单元(“CPU”)503、输入/输出设备504(例如,键盘、鼠标、CRT或LCD显示器等)、其他计算机可读介质505、以及一个或更多个网络连接506。CDS/CDA 510被示出为驻留在存储器501中。在其他实施例中,510的内容的一些部分、510的组件中的一些或全部可被存储在其他计算机可读介质505上和/或通过其他计算机可读介质505传输。CDS/CDA 510的组件优选地在一个或更多个CPU 503上执行,并管理网站的生成、维护和部署,如本文所描述的。其他代码或程序530以及潜在的其他数据储存库(诸如数据储存库520)也驻留在存储器501中,并且优选地在一个或更多个CPU 503上执行。应注意,图5中的组件中的一个或更多个可能不存在于任何特定实现中。例如,嵌入在其他软件中的一些实施例可能不提供用于用户输入或显示的装置。
在典型实施例中,CDS/CDA 510包括:一个或更多个用户界面514、一个或更多个安装设施512、一个或更多个导出设施513、以及一个或更多个部署设施514。此外,CDS/CDA510通常包括:本地存储在数据储存库515中的CMS数据以及数据储存库516中的网站代码和数据的导出版本。在一些实施例中,还提供一个或更多个队列管理设施518。在至少一些实施例中,对CDS/CDA的访问在CDS/CDA外部被提供,并且潜在地可经由CDS应用编程接口(API)517通过一个或更多个网络550来获得对CDS/CDA的访问。可以实现其他和/或不同的模块。此外,CDS/CDA可以经由网络550与应用或客户端代码555或与一个或更多个客户端计算系统560交互,一个或更多个客户端计算系统560使用导出网站(生产)格式和/或部署格式用于其他功能,其他功能诸如提供对第三方版本控制系统的访问。CDS/CDA还可以经由网络550与一个或更多个第三方信息提供者系统565(诸如,在网站中使用并且作为CMS可访问的数据存储在CMS数据储存库515中的内容的购买者)交互。此外,注意的是,数据储存库515和516也可以在CDS/CDA外部被提供,例如在可通过一个或更多个网络550访问的知识库中被提供。
在示例实施例中,使用标准编程技术来实现CDS/CDA 510的组件/模块。例如,CDS/CDA 510可以实现为在CPU 103上运行的“本机”可执行文件以及一个或更多个静态或动态库。在其他实施例中,CDS/CDA 510可以实现为由虚拟机处理的指令。一般而言,可以采用本领域已知的一系列编程语言来实现这样的示例实施例,包括各种编程语言范例(包括但不限于面向对象的、功能性的、过程性的、脚本化的和声明性的编程语言范例)的代表性实现。
在参见图3A-图3U所描述的OneClick CDA的一个示例实现方式中,使用若干已知的技术和语言来实现CDS/CDA 510,包括PHP工具,诸如Laravel;NPM,用于Javascript以及用于集成Javascript的包管理器;用于产生优化CSS代码的SASS预处理;用于捆绑资产的Webpack;作为消息代理的Redis;作为用于跟踪改变的版本控制系统的Git(包括用于将改变推送到ftp服务器(诸如目标服务器)的git-ftp)。在其他实现方式中,其他工具和技术(包括尚未存在的那些工具和技术)可以类似地和等效地结合。
上述示例实施例还可以使用众所周知的或专有的、同步或异步的客户端-服务器计算技术。而且,可以使用较独立的编程技术(例如,作为在单个CPU计算机系统上运行的可执行程序)来实现各种组件,或者可替代地使用本领域中已知的各种结构化技术来分解各种组件,各种结构化技术包括但不限于在每个具有一个或更多个CPU的一个或更多个计算机系统上运行的多编程、多线程、客户端-服务器、或点对点等。一些实施例可以同时地和异步地执行,并且使用消息传递技术进行通信。还支持等效的同步实施例。
此外,对被存储为CDS/CDA 510的一部分(例如,在数据储存库516和517中)的数据的编程接口可以通过标准机制来获得,标准机制诸如通过C、C++、C#、和JavaAPI;用于访问文件、数据库或其他数据储存库的库;通过脚本语言(诸如XML);或通过Web服务器、FTP服务器、或提供对所存储数据的访问的其他类型的服务器。数据储存库515和516可以实现为一个或更多个数据库系统、文件系统、或用于存储此类信息的任何其他技术、或以上的任何组合,包括使用分布式计算技术的实现。
同样,示例CDS/CDA 510可以在包括多个甚至异构的计算机系统和网络的分布式环境中实现。预期程序和数据的不同配置和位置与本文描述的技术一起使用。另外,CDS/CDA可以是物理或虚拟计算系统,并且可以与托管目标网站的目标服务器存在于同一物理系统上。此外,一个或更多个模块本身可以是分布式的、池式的或诸如出于负载平衡、可靠性或安全性原因以其他方式分组的。各种分布式计算技术适合于以分布式方式实现所示实施例的组件,分布式方式包括但不限于TCP/IP套接字、RPC、RMI、HTTP、Web服务(XML-RPC、JAX-RPC、SOAP等)等。其他变型是可能的。而且,每个组件/模块可以提供其他功能,或者现有功能可以不同方式分布在组件/模块之间,但仍然实现CDS/CDA的功能。
此外,在一些实施例中,CDS/CDA 510的组件中的一些或全部可以以其他方式(诸如至少部分地在固件和/或硬件中)实现或提供,固件和/或硬件包括但不限于一个或更多个专用集成电路(ASIC)、标准集成电路、执行适当指令并且包括微控制器和/或嵌入式控制器的控制器、现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD)等。系统组件和/或数据结构中的一些或全部还可以作为内容(例如,作为可执行或其他机器可读软件指令或结构化数据)存储在计算机可读介质(例如,硬盘;存储器;网络;其他计算机可读介质;或要通过适当的驱动器或经由适当的连接(诸如DVD或闪存设备)读取的其他便携式介质物品)上,以使得计算机可读介质能够执行或以其他方式使用或提供内容,从而执行所描述的技术中的至少一些。组件和/或数据结构中的一些或全部可以存储在有形的非暂时性存储介质上。系统组件和数据结构中的一些或全部还可以(例如,通过被编码为载波的一部分或者被包括为模拟或数字传播信号的一部分)作为数据信号被存储在各种计算机可读传输介质上,然后数据信号被传输(包括跨基于无线和基于有线/电缆的介质),并且数据信号可以采取各种形式(例如,作为单个或多个模拟信号的一部分,或者作为多个离散的数字分组或帧)。在其他实施例中,这样的计算机程序产品还可以采取其他形式。因而,本公开的实施例可以用其他计算机系统配置来实践。
如图1-图4中所描述的,CDS/CDA的功能中的一个是部署和管理使用标准内容管理系统(诸如WORDPRESS)创建/修改的网站。
图6是由CMS部署系统/应用的安装设施提供的以使用本地CMS实例初始地设置该网站以用于创建目标网站的示例网站创建和内容管理系统安装例程的示例流程图。该例程可以例如由作为图1中的CDA实例101的一部分的图4的安装设施403来执行。如参见图3F所描述的,在一个示例CDS/CDA中,CDS/CDA首先创建网站配置,然后响应于用户创建网站以及选择安装UI控件在本地自动安装CMS的实例。总的来说,对于所创建的每个新网站,CDS/CDA在数据储存库中创建与新网站相对应的一个或更多个相应记录,在本地安装相应CMS实例,以及为新网站设置版本控制。网站创建和CMS安装逻辑600创建CMS和版本控制软件所需的所有文件夹。然后,本地网站准备好编辑。
具体地,在框601中,网站创建和CMS安装逻辑600首先在数据储存库(如图4中的数据储存库440)中创建网站的实例。在一个示例CDS/CDA中,每个CMS实例具有其自己的数据储存库,从而使得CMS实例之间的数据被隔离。存储所有新的网站细节,诸如网站名称、位置(URI/URL)、网站将部署的服务器、语言等。在框602中,逻辑600然后将新网站的指示符添加到“安装”队列(例如,由图4中的队列管理设施407管理的队列),以使得后台工作器(例如,后台任务/进程/线程)能够执行潜在耗时的安装进程。在一些示例CDS/CDA中,存在安全机制,该安全机制被实现为避免用户在已经排队的情况下重启安装。虽然在相同的流程图中示出,但是应理解,当适当时,用于安装队列的适当安装队列处理程序(用于安装的后台工作器)将异步地从队列中检索和处理安装事件。在框603中,(如果需要的话)队列处理程序下载指定CMS软件的最新版本,并且在框604中,创建与新网站CMS实例相对应的新CMS配置。在框605中,队列处理程序逻辑安装CMS(例如,WORDPRESS)核并且将CMS核配置成例如包括具有管理特权的用户。在框606中,队列处理程序逻辑创建/安装CMS模板以及由CDS/CDA指定的任何默认值。在一些示例CDS/CDA中,默认模板是可配置的。在框607中,队列处理程序逻辑根据新网站配置设置和/或默认值来创建任何附加用户。该逻辑分配适合每个用户的访问权限。在框608中,在更新任何其他CMS配置(未示出)(诸如禁用某些特征(例如,评论))之后,队列处理程序发送(转发、报告、传达等)新网站的标识符的通知,例如从而使得用户界面逻辑知道该新网站已经被创建以及知道稍后访问的标识符。在框609中,队列处理程序逻辑随后为新网站设置版本控制,如参见图7进一步描述的。一旦版本控制设置完成,队列处理程序逻辑就随后发送网站安装过程完成的通知。该通知例如允许用户界面在图3H中示出安装完成,并且允许用户界面能够使用CMS用户界面来创建/修改新网站的内容。
图7是由CMS部署系统/应用的安装设施提供以便创建目标网站的初始版本以便在导出该网站时使用的示例设置版本控制例程的示例流程图。此例程可以例如由参见图6描述的网站创建和CMS安装逻辑600执行。如图所示,版本控制逻辑700首先在框701中创建特定于该CMS实例的版本控制储存库(例如,目录可以位于诸如“…/.gitdirs/[WEBSITE_ID].git”的目录中)。在示例CDS/CDA中,使用了GIT版本控制,并且创建了两个单独的分支:主分支以及导出分支,主分支用于网站的“准备部署”版本(最终发布到目标服务器并且在部署过程期间被使用);导出分支用于创建的所有导出。导出分支还用于针对图3H和图3N的示例用户界面描述的“预览”模式。在框702中,版本控制逻辑700使用可以被忽略的占位符文件在主分支上执行至少一次“提交”,使得该逻辑可以创建第二(导出)分支。其他版本控制系统可能不需要该提交。在框703中,版本控制逻辑700创建导出分支,然后结束。
图8是由CMS部署系统/应用的导出设施提供的以在目标网站的新版本中导出CMS内容的工作流的示例流程图。该例程可以例如由作为图1中的CDA实例101的一部分的图4的导出设施404执行。如参见图3N所描述的,在一个示例CDS/CDA中,在使用标准CMS安装用户界面编辑网站之后,用户可以选择导出UI控件以使CDS/CDA导出设施将CMS网站内容转换成更适于部署的生产格式。在所描述的示例CDS/CDA中,此格式包括平面HTML文件,但其他格式可以类似地和等效地结合。在示例CDS/CDA中,总而言之,使用诸如“wget”的抓取工具“抓取”CMS内容,包括诸如图像、脚本和样式表等相关资产的文件被复制到导出分支,以及根据需要校正文件路径和其他引用。其他抓取工具(包括例如“aria2”、“aget”、“curl”、“grab-site”、以及“wpul”)可以类似地并且等效地结合。在调用抓取工具初始地生成对应于每个页面的平面HTML并将它们复制到新的导出分支之后,CDS/CDA将每个平面html页面加载到“无头”浏览器(无UI),然后监视浏览器事件以检测资源的加载并跟踪任何丢失的(状态404)资源。然后,CDS/CDA会自动对所抓取的输出进行后处理,并将这些丢失文件和资产中的每一个从CMS位置复制到导出分支。
更具体地,图8示出了示例CDS/CDA的导出设施工作流/逻辑800。在框801中,逻辑800准备版本控制储存库以包括新的导出分支。这可能涉及重置储存库配置的某些方面和/或排空目录以清理导出分支,使得不必要的文件被移除,并使得CDS/CDA可以检测版本之间的改变。
在框802中,导出逻辑800生成生产格式文件-这里为平面HTML文件。如所提及的,在示例CDS/CDA中,使用诸如wget的抓取工具来执行此过程,这使得CDS/CDA能够将所有CMS网页作为平面HTML文件下载并存储为CMS实例导出分支的一部分。
在框803中,导出逻辑800对平面HTML文件(存储在导出分支中的实例)进行后处理,以通过在无头浏览器中运行HTML来确定任何丢失的文件和资源。例如,一些文件和资源可能无法被不执行Javascript的抓取工具检测到,该抓取工具动态地加载文件和资源。例如,资源(诸如延迟加载的图像、使用Javascript管理的一些分页结果等)可能因为抓取工具没有检测到它们而丢失。即使wget抓取工具处理递归下载(主页和链接到主页的所有其他页面),它也不会找到这些文件,因为文件在将来的时间被动态地加载。导出逻辑800可以监听无头浏览器的事件以检测此类丢失的文件和资源,然后可以对丢失的文件和资源进行定位并将它们复制到所存储的导出实例。例如,将搜索某些文件,包括“robots.txt”文件、如果找到站点地图索引则可定位的站点地图XML文件(可以搜索索引以确定和导出链接的站点地图文件)、以及已知包含导入本地CMS实例中的文件的任何CMS特定文件夹(例如,对于WORDPRESS,文件夹“wp-content/upload”包含所有上传的介质文件)。可以通过将导出的实例加载到无头浏览器(诸如“phantomJS”或无头Chrome)中、以及提取在执行所有脚本之后已经加载的文件的列表,来确定动态文件。将该列表与已在导出实例中的文件列表进行比较。如果文件丢失,则将其复制到导出实例。
在框804中,导出逻辑800对资源名称、链接、文件名称等进行后处理,以便在适当时将路径名称调整为与导出实例相关,而与不是CMS储存库相关。(例如,参见图4,导出数据储存库430中的页面需要被固定到引用储存库430而不是储存库440。)此外,作为示例,平面HTML可以包括使用查询字符串请求的一些文件,如果不重命名,查询字符串将导致最终错误。这对于向所有资产添加查询字符串的WORDPRESS是常见的。例如,目标网站可能包含字符串:“style.css?v=123”。抓取工具会将该文件保存为“style.css?v=123.css”,但是真实和需要的文件名称是“style.css”。为了校正这点并避免错误,在没有查询字符串的情况下对每个这样提取的文件名称进行重命名。框804的后处理旨在没有用户干预的情况下解决这个和类似的潜在错误。
在框805中,导出逻辑800对新版本执行版本控制“提交”操作,然后结束。该提交检测并注册从目标网站的当前版本(所部署的版本)到新导出版本的任何改变。更新的网站(目标)准备好部署。
如参见图3Q-图3R中所示的示例CDS/CDA用户界面所描述的,在部署过程启动之前,给予用户(使用预览UI控件和批准UI控件)批准和/或验证导出版本的机会。如果改变被拒绝,则CDS/CDA可以使用标准版本控制软件技术将它们回滚到导出前状态。图3S示出了在改变被批准之后的示例CDS/CDA的状态,在此之后,用户可以使用例如部署UI控件来请求新版本的部署。
图9是由CMS部署系统/应用的示例部署设施所提供的以在目标服务器上部署目标网站的工作流的示例流程图。该例程可以例如由图4的部署设施405、作为图1中的CDA实例101的一部分执行。
具体地,在框901中,部署工作流逻辑900首先确定该CMS实例正在进行的部署处理队列上是否已经存在部署任务,如果是,则使用部署处理队列上的现有部署任务(框903)来处理下一次导出;否则,向部署队列添加新任务(框902)。执行该同步以维护目标网站的完整性,以便一次反映单个导出版本。队列处理程序作为后台工作器异步地处理部署队列,类似于响应于参见图6-图7所描述的安装队列的处理的部署队列。在框904中,在被触发以处理来自部署处理队列的部署任务时,部署队列处理程序展示部署在相关联的目标服务器上的版本(包括批准的(导出的)改变),然后清理版本控制储存库。在框905中,部署队列处理程序将展示版本(包括改变的文件和资产)与目标网站的主分支合并。在框906中,队列处理程序自动对主分支文件进行后处理,以解析与资源和资产名称、链接和文件名称的不一致性,以引用用于传输的端点(即,目标服务器URL)而不是导出URL或CDS/CDA本地实例URL。在框907中,队列处理程序确定用户是否已经确认了部署导出网站的期望。例如,图3T示出了请求用户确认期望部署当前(导出)网站的对话框。如果是,则逻辑继续至框909,否则继续至框908。在框908中,队列处理程序使用标准版本系统技术使版本回滚到先前版本,然后结束。如果已经批准,则在框909中,队列处理程序自动(无需进一步的用户干预)向目标服务器传输所导出的网站的文件。在一个示例CDS/CDA中,使用GIT-FTP完成传输,GIT-FTP优化为仅传输改变的文件。可以类似地和等效地结合其他机制。在框910中,队列处理程序发送目标网站已成功部署的通知。然后,目标网站在目标服务器上可公开获得,如图3U所示。
从前述内容将理解的是,虽然本文出于说明的目的描述了具体实施例,但是可以在不背离本发明的精神和范围的情况下进行各种修改。例如,本文讨论的用于开发和部署网站的方法和系统可应用于其他架构。此外,本文讨论的方法和系统可应用于不同的协议、通信介质(光学、无线、电缆等)和设备(诸如无线手机、电子管理器、个人数字助理、便携式电子邮件机、游戏机、寻呼机、诸如GPS接收器的导航设备等)。
Claims (15)
1.一种用于促进为公众访问配置的网站的自动创建和部署的计算机实现方法,包括:
自动配置用于托管目标网站的远程服务器;
将所述目标网站与所配置的远程服务器的服务器名称和网络资源标识符相关联;
响应于单个用户界面控件选择的指示,通过以下方式代表用户自动配置所述目标网站:
安装内容管理软件(“CMS”)系统的本地实例,CMS系统被配置为提供资源、前端用户界面以及后端用户界面,所述前端用户界面用于查看存储在所述CMS系统中的内容,所述后端用户界面用于创建、修改和/或管理存储在所述CMS系统中的内容;以及
将所安装的CMS系统实例与所述目标网站相关联;
响应于接收对所述后端用户界面或所述前端用户界面的选择的指示,调用所安装的CMS系统实例来为所安装的CMS系统实例创建、修改和/或管理内容;
导出所安装的CMS系统实例以产生CMS系统实例的导出版本,所述导出版本被配置为平面html内容以使存储在所述CMS系统实例中的内容能够从所述CMS系统实例远程呈现;以及
响应于单个用户界面控件选择的指示,将所述导出版本自动部署为所述远程服务器上的所述目标网站,所部署的目标网站独立于所述CMS系统呈现所述平面html内容。
2.根据权利要求1所述的方法,其中,导出所安装的CMS系统实例以产生所述CMS系统实例的所述导出版本还包括:
无需用户干预,
使用软件内容检索工具,自动抓取所述CMS系统实例以提供初始html内容;
自动审核所述初始html内容以检测丢失的资源、文件和/或页面;以及
自动致使下载任何检测到的丢失内容,以补充所述初始html内容以产生所述导出版本。
3.根据权利要求2或3中至少一项所述的方法,其中,所述软件内容检索工具是以下中的至少一项:wget、aria2、aget、curl、grab-site和/或wpull。
4.根据权利要求2或3中至少一项所述的方法,其中,所述软件内容检索工具是命令行工具,所述命令行工具被配置为检索、爬行和/或下载内容以供离线查看。
5.根据权利要求2或3中至少一项所述的方法,其中,所丢失的内容包括:由所述CMS系统实例通过脚本、样式表或动态执行的代码动态下载的资产、数据和/或文件中的一个或更多个。
6.根据上述权利要求中至少一项所述的方法,其中,导出所安装的CMS系统实例以产生所述CMS系统实例的所述导出版本还包括:
解析链接以指向远程服务器位置。
7.根据上述权利要求中至少一项所述的方法,其中,所述CMS系统实例是WORDPRESS软件实例和/或是内容管理软件系统,所述内容管理软件系统基于PHP、MYSQLDRUPAL、JOOMLA!和/或EXPRESSIONENGINE软件。
8.根据上述权利要求中至少一项所述的方法,其中,自动配置所述远程服务器是响应于协议指定、端口标识符、用户凭证以及相关联的服务器名称的输入而执行的。
9.根据权利要求1所述的方法,其中,所述远程服务器被配置为ftp服务器。
10.根据上述权利要求中至少一项所述的方法,还包括:
将所述CMS系统实例的导出版本存储在版本控制系统中;以及
使用所述版本控制系统,将所述导出版本的批准版本自动部署为所述远程服务器上的目标网站、和/或将所述目标网站自动回滚到所述CMS系统实例的先前导出版本、和/或保持由多个用户在相同或不同时间提供的内容的连贯性和/或一致性。
11.一种存储有指令的计算机可读存储介质,所述指令用于控制计算机处理器,当指令被执行时,通过执行根据权利要求1-10中至少一项所述的方法中的一项来促进为公众访问配置的网站的自动创建和部署。
12.一种计算机系统,包括:
计算机处理器;
存储器;以及
网站部署组件,所述网站部署组件包括:内容管理系统访问工具、导出设施和部署设施,所述内容管理系统访问工具、导出设施和部署设施被存储在所述存储器中,所述网站部署组件在由所述计算机处理器执行时被配置为执行根据权利要求1-10所述的方法中的至少一项。
13.根据权利要求12所述的计算机系统,其中,所述网站部署组件还包括:
软件内容检索工具,所述软件内容检索工具被配置为在无需用户干预的情况下:
自动抓取CM系统实例以检索初始html内容;
自动审核所述初始html内容以检测丢失的资源、文件和/或页面;以及
自动致使检索任何检测到的丢失内容,以补充所述初始html内容以产生所述导出版本。
14.根据权利要求12或13中至少一项所述的计算机系统,其中,所述网站部署组件还包括:
组件,所述组件被构造为使用协议指定、端口标识符、用户凭证以及相关联的服务器名称来配置所述远程服务器。
15.根据权利要求12至14中至少一项所述的计算机系统,其中,所述网站部署组件被构造为容纳多个用户修改和/或导出所述CM系统实例。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202062962174P | 2020-01-16 | 2020-01-16 | |
US62/962,174 | 2020-01-16 | ||
PCT/US2021/013752 WO2021146640A1 (en) | 2020-01-16 | 2021-01-15 | Automated creation and deployment of websites |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115315696A true CN115315696A (zh) | 2022-11-08 |
Family
ID=76864350
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180009529.8A Pending CN115315696A (zh) | 2020-01-16 | 2021-01-15 | 网站的自动创建和部署 |
Country Status (6)
Country | Link |
---|---|
US (1) | US12135759B2 (zh) |
EP (1) | EP4091076A4 (zh) |
CN (1) | CN115315696A (zh) |
AU (1) | AU2021208634A1 (zh) |
BR (1) | BR112022013922A2 (zh) |
WO (1) | WO2021146640A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12135759B2 (en) | 2020-01-16 | 2024-11-05 | Southend Technologies, Inc. | Automated creation and deployment of websites |
CN113821757B (zh) * | 2021-11-25 | 2022-02-22 | 山东捷瑞数字科技股份有限公司 | 一种基于cms的快速建站方法及建站系统 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001013287A1 (en) * | 1999-06-11 | 2001-02-22 | Cci Europe A/S | A content management computer system for managing publishing content objects |
US20070162845A1 (en) * | 2006-01-09 | 2007-07-12 | Apple Computer, Inc. | User interface for webpage creation/editing |
WO2007085336A1 (en) * | 2006-01-27 | 2007-08-02 | International Business Machines Corporation | Method, system and computer program product for automatically cloning it resource structures |
KR20070118753A (ko) * | 2006-06-13 | 2007-12-18 | 주식회사 제로원시스템 | 하이퍼텍스트 언어 자동생성기술을 사용한 사용자 맞춤형사이트 작성 및 서비스 제공 방법 |
US20100251143A1 (en) | 2009-03-27 | 2010-09-30 | The Ransom Group, Inc. | Method, system and computer program for creating and editing a website |
US9244709B2 (en) * | 2011-06-13 | 2016-01-26 | Microsoft Technology Licensing, Llc | Automatic recognition of web application |
CA2817554A1 (en) * | 2012-06-01 | 2013-12-01 | Atiq Hashmi | Mobile content management system |
US9430579B2 (en) * | 2013-12-12 | 2016-08-30 | Axure Software Solutions, Inc. | Hybrid web publishing system |
US12135759B2 (en) | 2020-01-16 | 2024-11-05 | Southend Technologies, Inc. | Automated creation and deployment of websites |
-
2021
- 2021-01-15 US US17/792,481 patent/US12135759B2/en active Active
- 2021-01-15 AU AU2021208634A patent/AU2021208634A1/en active Pending
- 2021-01-15 BR BR112022013922A patent/BR112022013922A2/pt unknown
- 2021-01-15 WO PCT/US2021/013752 patent/WO2021146640A1/en unknown
- 2021-01-15 EP EP21741655.1A patent/EP4091076A4/en active Pending
- 2021-01-15 CN CN202180009529.8A patent/CN115315696A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2021146640A1 (en) | 2021-07-22 |
BR112022013922A2 (pt) | 2022-09-20 |
EP4091076A4 (en) | 2024-02-14 |
AU2021208634A1 (en) | 2022-08-04 |
US12135759B2 (en) | 2024-11-05 |
EP4091076A1 (en) | 2022-11-23 |
US20230039744A1 (en) | 2023-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220244933A1 (en) | System and Methods for Integration of an Application Runtime Environment Into a User Computing Environment | |
US7818740B2 (en) | Techniques to perform gradual upgrades | |
JP5956432B2 (ja) | ウェブベースの電子署名文書 | |
CN112947992B (zh) | 代码版本管理的方法和装置 | |
US20070169079A1 (en) | Software update management | |
CA2800723A1 (en) | Methods for utilizing a javascript emulator in a web content proxy server and devices thereof | |
US9081619B2 (en) | Provisioning a web hosting resource using a cloud service | |
US10474444B2 (en) | Method and system for securely updating a website | |
US8706778B2 (en) | Methods and systems for an action-based interface for files and other assets | |
CN115315696A (zh) | 网站的自动创建和部署 | |
US20100318967A1 (en) | Supplementary deployment actions | |
US10114617B2 (en) | Rapid visualization rendering package for statistical programming language | |
US11675748B2 (en) | External data repository file integration using a virtual file system | |
US20100287292A1 (en) | Method, apparatus and computer program product for generating a content website in a data communications network | |
Estrada | Apache Kafka 1.0 Cookbook: Over 100 practical recipes on using distributed enterprise messaging to handle real-time data | |
US20090300061A1 (en) | System and method for universe generation | |
Yadav | Advanced Splunk | |
Ifrah | . NET SDK and AI Studio | |
KR100727083B1 (ko) | 웹 기반 프로그램 관리 방법 및 시스템 | |
Aryal | MERN stack with modern web practices | |
KR20210133487A (ko) | 웹 기반 디자인 프로그램 관리 방법 및 시스템 | |
Selvaraj | Building RESTful APIs with Laravel (PHP) | |
Berrick et al. | Web services workflow for online data visualization and analysis in Giovanni | |
Meloni et al. | PHP 6 fast & easy web development | |
Andersson | Microsoft Exchange Server 2013 PowerShell Cookbook |
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 |