DE112016002003T5 - INFRASTRUCTURE FOR POSING AND PUBLISHING SOFTWARE PACKAGES - Google Patents

INFRASTRUCTURE FOR POSING AND PUBLISHING SOFTWARE PACKAGES Download PDF

Info

Publication number
DE112016002003T5
DE112016002003T5 DE112016002003.1T DE112016002003T DE112016002003T5 DE 112016002003 T5 DE112016002003 T5 DE 112016002003T5 DE 112016002003 T DE112016002003 T DE 112016002003T DE 112016002003 T5 DE112016002003 T5 DE 112016002003T5
Authority
DE
Germany
Prior art keywords
sdk
package
information
metadata
dependencies
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
Application number
DE112016002003.1T
Other languages
German (de)
Inventor
Ryan James Harrsion
Divam JAIN
Wesley TARLE
Benoit St-Pierre
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.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of DE112016002003T5 publication Critical patent/DE112016002003T5/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Es ist ein System und Verfahren zum Hosten und Veröffentlichen von Softwarepaketen offenbart. Ein exemplarisches Verfahren beinhaltet: Empfangen und Speichern von Artefakten, die im Zusammenhang mit einem Software Development Kit stehen, und von Metadaten, die eine Version des Software Development Kit (201) beschreiben. Die empfangenen Artefakte und Metadaten können in ein Paket für das Software Development Kit (203) umgewandelt werden. Das Paket kann anschließend aufbereitet werden und die Abhängigkeiten des Pakets können geprüft werden, um sicherzustellen, dass die Abhängigkeiten des Pakets existieren und es keine Konflikte mit einem anderen aufbereiteten Paket (205) gibt. Die derzeit aufbereiteten Pakete können dann getestet werden, um festzustellen, ob es etwaige Inkompatibilitäten der aufbereiteten Pakete untereinander gibt, und Zugriffssteuerungsinformationen können verwendet werden, um die derzeit aufbereiteten Pakete für die entsprechenden Benutzer (207, 208) bereitzustellen.It discloses a system and method for hosting and publishing software packages. An exemplary method includes: receiving and storing artifacts associated with a software development kit and metadata describing a version of the software development kit (201). The received artifacts and metadata can be converted into a package for the Software Development Kit (203). The package can then be prepared and the dependencies of the package can be checked to ensure that the dependencies of the package exist and there are no conflicts with another rendered package (205). The currently parsed packets may then be tested to determine if there are any incompatibilities of the parsed packets with each other, and access control information may be used to provide the currently parsed packets to the appropriate users (207, 208).

Description

ALLGEMEINER STAND DER TECHNIKGENERAL PRIOR ART

In den letzten Jahren haben sich Softwareingenieure darauf konzentriert, Anwendungen auf einer Vielzahl von Plattformen zu bauen, wie etwa iOS, Android, Windows Phone, BlackBerry und Firefox OS. Diese Anwendungen verwenden oft Software Development Kits (SDKs), die den Benutzern Zugriff auf Daten und Funktionalität, wie Karten, E-Mails, Nachrichten und Social-Networking-Informationen, bereitstellen. Ein Software Development Kit (SDK) kann einen Satz von Softwareentwicklungstools, Bibliotheken, Dokumentation, Header-Dateien und Muster umfassen, die für die Entwicklung von Anwendungen für eine bestimmte Entwicklungsplattform mit spezieller Funktionalität, die in dem SDK angegeben ist, verwendet werden können. SDKs können Anwendungsprogrammierschnittstellen (APIs) beinhalten, sodass Softwareentwickler einen kontrollierten Zugriff auf Verfahren und Daten von anderen Anwendungen oder Diensten wie etwa Webdiensten haben können.In recent years, software engineers have focused on building applications on a variety of platforms, such as iOS, Android, Windows Phone, BlackBerry, and Firefox OS. These applications often use software development kits (SDKs) that provide users with access to data and functionality such as maps, e-mail, messages, and social networking information. A software development kit (SDK) may include a set of software development tools, libraries, documentation, header files, and templates that can be used to develop applications for a particular development platform with specific functionality specified in the SDK. SDKs can include application programming interfaces (APIs) so that software developers can have controlled access to processes and data from other applications or services, such as web services.

So kann beispielsweise ein SDK-Anbieter einen Kartendienst entwickeln und eine Karten-API bereitstellen, damit Softwareentwickler Zugriff auf die Funktionalität des Kartendienstes erhalten. Das Karten-SDK kann Mustercode, Bibliotheken und eine Dokumentation darüber, wie die Kartenfunktionalität verwendet werden sollte, beinhalten. Die Karten-API kann Informationen über den Kartendienst einschließlich Verfahren enthalten, um Folgendes zu erhalten: Wegbeschreibungen zu einem Standort, die Reiseentfernung zwischen Standorten, die Reisezeit zwischen Standorten und die Höhenangabe eines Standortes. Wenn ein Softwareentwickler eine Anwendung für ein Fast-Food-Restaurant entwickelt, kann der Softwareentwickler womöglich die Karten-API verwenden wollen, um einem Benutzer zu ermöglichen, Wegbeschreibungen zum Restaurant vom aktuellen Standort des Benutzers aus abzufragen. Der Entwickler muss keinen spezifischen Code für Karten schreiben, um die Wegbeschreibungen zu erhalten, sondern kann stattdessen die Karten-API verwenden, um auf die Funktionalität des Kartenwebdienstes zuzugreifen und Wegbeschreibungen zu erhalten.For example, an SDK provider may develop a map service and provide a map API to allow software developers to access the functionality of the map service. The Map SDK may include sample code, libraries, and documentation about how card functionality should be used. The Map API may contain information about the map service including procedures to obtain: directions to a location, travel distance between locations, travel time between locations, and elevation of a location. When a software developer develops an application for a fast food restaurant, the software developer may want to use the map API to allow a user to retrieve directions to the restaurant from the user's current location. The developer does not need to write specific code for maps to obtain the directions, but instead can use the map API to access the functionality of the map web service and obtain directions.

Üblicherweise hat jedes SDK-Entwicklerteam einen von anderen SDK-Entwicklerteams gänzlich unabhängigen End-to-End-Releaseprozess. Diese getrennten Releaseprozesse können zu verschiedenen Problemen führen. So können beispielsweise einzelne SDKs in verschiedenen Formaten bereitgestellt werden, was zu uneinheitlichen Paketstrukturen und Komponenten führt, die den Entwicklern zur Verfügung stehen. Entwickler müssen dann wissen, wie mit jedem bestimmten Format umgegangen werden soll. Ein weiteres Problem ist die wenn überhaupt minimale Kompatibilitätsprüfung von SDKs untereinander. Da jedes SDK-Entwicklerteam ein eigenes SDK herausbringt, testet jedes Team nur sein eigenes SDK, ohne andere SDKs zu berücksichtigen, die auf der gleichen Entwicklungsplattform verwendet werden können. Fehlendes Testen von SDKs untereinander kann zu binären Inkompatibilitäten zwischen entwickelten SDKs führen, da SDKs von der gleichen Abhängigkeit abhängig sein können, aber unterschiedliche Versionen der Abhängigkeit verwenden. Ein weiteres Problem ergibt sich, da es aktuell keinen Weg gibt, eine konsistente Dokumentation über ein SDK, einschließlich darüber, wie ein spezielles SDK in einem Entwicklungsprojekt zu nutzen ist, bereitzustellen. Des Weiteren gibt es keine Koordinierung von externem Messaging unter herausgebrachten SDKs für eine bestimmte Softwareplattform.Typically, each SDK development team has an end-to-end release process that is completely independent of other SDK development teams. These separate release processes can lead to various problems. For example, individual SDKs can be provided in a variety of formats, resulting in inconsistent package structures and components available to developers. Developers then need to know how to handle each particular format. Another problem is the minimal, if any, compatibility check of SDKs among themselves. Because each SDK development team releases its own SDK, each team only tests its own SDK, without considering other SDKs that can be used on the same development platform. Failure to test SDKs among themselves can lead to binary incompatibilities between developed SDKs because SDKs may be dependent on the same dependency but use different versions of the dependency. Another problem arises because there is currently no way to provide consistent documentation about an SDK, including how to use a specific SDK in a development project. Furthermore, there is no coordination of external messaging among exposed SDKs for a particular software platform.

Wie die Erfinder erkannt haben, sollte es ein automatisiertes System geben, dass einen End-to-End-Releaseprozess für SDKs bereitstellt, sodass SDKs in Verbindung mit anderen SDKs herausgebracht werden können.As the inventors have realized, there should be an automated system that provides an end-to-end release process for SDKs so that SDKs can be released in conjunction with other SDKs.

KURZDARSTELLUNGSUMMARY

Diese Spezifikation beschreibt Technologien, die das Hosten und Veröffentlichen von Softwarepaketen betreffen.This specification describes technologies that affect the hosting and publishing of software packages.

Im Allgemeinen können Aspekte des in dieser Spezifikation beschriebenen Gegenstands in computerimplementierten Verfahren und Systemen ausgeführt sein. Ein exemplarisches System beinhaltet ein oder mehrere Verarbeitungsgeräte und ein oder mehrere Speichergeräte, die Anweisungen speichern, die bei Ausführung durch den einen oder die mehreren Verarbeitungsgeräte das eine oder die mehreren Verarbeitungsgeräte veranlassen, ein exemplarisches Verfahren umzusetzen. Ein exemplarisches Verfahren beinhaltet: Empfangen und Speichern von Artefakten im Zusammenhang mit einem Software Development Kit und Metadaten, die die Version des Software Development Kits beschreiben; Umwandeln der empfangenen Artefakte und Metadaten in ein Paket für das Software Development Kit; Aufbereiten des Pakets und Prüfen aller Abhängigkeiten des Pakets, um sicherzustellen, dass die Abhängigkeiten des Pakets existieren und es keine Abhängigkeitskonflikte mit einem anderen aufbereiteten Paket gibt; Testen der derzeit aufbereiteten Pakete, um festzustellen, ob es etwaige Inkompatibilitäten der aufbereiteten Pakete untereinander gibt, und Verwenden von Zugriffssteuerungsinformationen, um die derzeit aufbereiteten Pakete in einem gebräuchlichen Format für die entsprechenden Benutzer bereitzustellen.In general, aspects of the subject matter described in this specification may be embodied in computer-implemented methods and systems. An exemplary system includes one or more processing devices and one or more storage devices that store instructions that, when executed by the one or more processing devices, cause the one or more processing devices to implement an example method. An exemplary method includes: receiving and storing artifacts associated with a software development kit and metadata describing the version of the software development kit; Converting the received artifacts and metadata into a package for the Software Development Kit; Parsing the package and checking all dependencies of the package to ensure that the dependencies of the package exist and there are no dependency conflicts with another parsed package; Test the packages currently being rendered to see if there are any incompatibilities of the rendered packages with each other, and use access control information to provide the currently processed packages in a common format for the appropriate users.

Ein weiteres exemplarisches System zum Hosten und Veröffentlichen von Softwarepaketen beinhaltet: einen SDK-Host, der Artefakte im Zusammenhang mit einem Software Development Kit und Metadaten, die die Version des Software Development Kits beschreiben, empfängt und speichert; einen Wandler, der die empfangenen Artefakte und Metadaten in ein Paket für das Software Development Kit umwandelt; einen Staginghost, der das Paket aufbereitet und alle Abhängigkeiten prüft, um sicherzustellen, dass die Abhängigkeiten des Pakets existieren und es keine Abhängigkeitskonflikte mit einem anderen aufbereiteten Paket gibt; einen Tester, der die derzeit aufbereiteten Pakete abruft und testet, um festzustellen, ob es etwaige Inkompatibilitäten der aufbereiteten Pakete untereinander gibt; einen Pakethost, der die derzeit aufbereiteten Pakete vom Tester empfängt und Zugriffssteuerungsinformationen verwendet, um die derzeit aufbereiteten Pakete in einem gebräuchlichen Format für entsprechende Benutzer bereitzustellen.Another exemplary system for hosting and publishing software packages includes: an SDK host that receives and stores artifacts associated with a software development kit and metadata that describes the version of the software development kit; a converter that converts the received artifacts and metadata into a software development kit package; a staging host that parses the package and checks all dependencies to ensure that the dependencies of the package exist and that there are no dependency conflicts with any other parsed package; a tester that retrieves and tests the packages currently being processed to determine if there are any incompatibilities between the processed packages; a package host that receives the currently processed packages from the tester and uses access control information to provide the currently processed packages in a common format for appropriate users.

Diese und andere Ausführungsformen können optional eines oder mehrere der folgenden Merkmale beinhalten. Artefakte können beinhalten: Änderungsprotokolle, Lizenzdateien, Ressourcen, Mediendateien, Musterprojekte, Quelldateien, kompilierte Binärdateien, Bibliotheken und andere Informationen im Zusammenhang mit einem speziellen SDK. Artefakte können in einem komprimierten Format empfangen werden. Metadaten können beinhalten: den Namen des SDK, Versionierungsinformationen, SDK-Abhängigkeiten, Beschreibungen der Funktion, die ein SDK erfüllt, die Verfasser eines SDK, Kontaktinformationen für Verfasser eines SDK, Lizenzinformationen, die offizielle Website für ein SDK, SDK-Plattformanforderungen, Screenshots, Befehle, die vor dem Integrieren des SDK ausgeführt werden müssen, Missbilligungsinformationen, Kompilierungs- und Projekteinstellungen oder andere Details des SDK. Metadaten können im JSON-, YAML-, XML-Format oder in einem benutzerdefinierten domainspezifischen Sprachformat empfangen werden. Metadaten können durch Tags in einem öffentlich zugänglichen Source-Steuerungsmanagementsystem und als statische Zip-Dateien, die über HTTP bereitgestellt werden, empfangen werden. Artefakte und Metadaten können nur für unterstützte Versionen eines SDK gespeichert werden. Ein Umwandlungsprozess kann unter einer Bedingung, wie etwa einem ausdrücklichen Signal vom SDK-Anbieter, einer Erhebung des Status des SDK-Hosts oder einem Empfangen eines Signals vom SDK-Host hinsichtlich einer Veränderung, ausgelöst werden. Ein Befehlszeilentool oder eine andere Möglichkeit zum Interagieren kann es SDK-Anbieten ermöglichen, zu signalisieren, dass ein spezielles SDK und Version davon für das Testen bereitsteht.These and other embodiments may optionally include one or more of the following features. Artifacts can include: change logs, license files, resources, media files, sample projects, source files, compiled binaries, libraries, and other information related to a specific SDK. Artifacts can be received in a compressed format. Metadata may include: the name of the SDK, versioning information, SDK dependencies, descriptions of the function that an SDK meets, the authors of an SDK, contact information for SDK authors, licensing information, the official website for an SDK, SDK platform requirements, screenshots, Commands that need to be executed before integrating the SDK, disapproval information, compilation and project settings, or other details of the SDK. Metadata can be received in JSON, YAML, XML format, or in a custom domain-specific language format. Metadata can be received through tags in a publicly accessible source control management system and as static zip files provided over HTTP. Artifacts and metadata can only be saved for supported versions of an SDK. A conversion process may be triggered under a condition such as an explicit signal from the SDK provider, an elevation of the status of the SDK host, or a receipt of a signal from the SDK host for a change. A command-line tool or other means of interacting may allow SDK offerers to signal that a specific SDK and version of it is ready for testing.

Die Einzelheiten von einer oder mehreren Ausführungsformen der Erfindung sind in den begleitenden Zeichnungen, die einzig zur Veranschaulichung dienen, sowie in der nachstehenden Beschreibung dargelegt. Andere Merkmale, Aspekte und Vorteile der Erfindung werden aus der Beschreibung, den Zeichnungen und den Ansprüchen ersichtlich. Gleiche Bezugsnummern und Bezeichnungen in den verschiedenen Zeichnungen verweisen auf gleiche Elemente.The details of one or more embodiments of the invention are set forth in the accompanying drawings, which are given by way of illustration only, and in the description which follows. Other features, aspects and advantages of the invention will become apparent from the description, the drawings and the claims. Like reference numbers and labels in the various drawings refer to like elements.

KURZBESCHREIBUNG DER ZEICHNUNGENBRIEF DESCRIPTION OF THE DRAWINGS

1 ist ein Blockdiagramm, das ein exemplarisches System zum Hosten und Veröffentlichen von Software Development Kits darstellt. 1 Figure 12 is a block diagram illustrating an exemplary system for hosting and publishing software development kits.

2 ist ein Flussdiagramm, das ein exemplarisches Verfahren zum Hosten und Veröffentlichen von Software Development Kits darstellt. 2 Figure 13 is a flowchart illustrating an exemplary method of hosting and publishing software development kits.

3 ist ein Blockdiagramm zur Veranschaulichung eines exemplarischen Computergeräts. 3 FIG. 10 is a block diagram illustrating an exemplary computing device. FIG.

4 ist ein Blockdiagramm, das ein exemplarisches System zur Generierung von SDKs veranschaulicht. 4 Figure 13 is a block diagram illustrating an exemplary system for generating SDKs.

5a ist ein Blockdiagramm, das ein Beispiel von SDK-Abhängigkeiten veranschaulicht. 5a Figure 12 is a block diagram illustrating an example of SDK dependencies.

5b ist ein Blockdiagramm, das ein Beispiel von SDK-Abhängigkeiten veranschaulicht. 5b Figure 12 is a block diagram illustrating an example of SDK dependencies.

AUSFÜHRLICHE BESCHREIBUNGDETAILED DESCRIPTION

Gemäß einer exemplarischen Ausführungsform kann es ein System zum Hosten und Veröffentlichen von Software Development Kits geben, das Konflikte zwischen SDKs auflöst und SDKs in einem gebräuchlichen Format auf einer einzelnen Hostseite für Entwickler zur Nutzung bereitstellt.According to an exemplary embodiment, there may be a system for hosting and publishing software development kits that resolves conflicts between SDKs and provides SDKs in a common format on a single host page for developers to use.

Ein exemplarisches automatisiertes System kann es Entwicklern ermöglichen, SDKs für eine bestimmte Softwareplattform an einem einzigen Ort und in einem gebräuchlichen Format zu erhalten. Das exemplarische System kann die SDKs auf Kompatibilität mit anderen SDKs, die auf der Plattform eingesetzt werden, testen und die SDKs in einem gebräuchlichen Format bereitstellen, das eine konsistente Paketstruktur beinhaltet und Entwicklern konsistente Komponenten zur Nutzung in ihren Anwendungen bereitstellt.An exemplary automated system may allow developers to obtain SDKs for a particular software platform in a single location and in a common format. The exemplary system may test the SDKs for compatibility with other SDKs deployed on the platform and provide the SDKs in a common format that includes a consistent package structure and provides developers with consistent components for use in their applications.

Ein exemplarisches System kann verschiedene SDKs von einem einzelnen Standort bereitstellen, der alle verfügbaren SDKs hostet. Ein exemplarisches System, wie in 1 gezeigt, kann Informationen von einem SDK-Anbieter, einschließlich Artefakten (101) und Metadaten (102), im Zusammenhang mit einem bestimmten SDK aufnehmen und die bereitgestellten Informationen in ein Format umwandeln, das für Benutzer brauchbar ist. In einigen Ausführungsformen umfassen exemplarische Artefakte Informationen im Zusammenhang mit einem bestimmten SDK wie etwa Änderungsprotokolle, Lizenzdateien, Ressourcen, Mediendateien, Musterprojekte, Quelldateien, kompilierte Binärdateien, und Bibliotheken, die in einem komprimierten Format wie einer Zip-Datei vorliegen können. Exemplarische Metadaten können den Namen des SDK, Versionierungsinformationen, SDK-Abhängigkeiten, Beschreibungen der Funktion, die ein SDK erfüllt, die Verfasser eines SDK, Kontaktinformationen für Verfasser eines SDK, Lizenzinformationen, die offizielle Website für ein SDK, SDK-Plattformanforderungen (wie etwa Betriebssystem und CPU-Architektur), Screenshots, Befehle, die vor dem Integrieren des SDK ausgeführt werden müssen, Missbilligungsinformationen, Kompilierungs- und Projekteinstellungen oder andere Details des SDK beinhalten. Diese Informationen können von SDK-Entwicklern für das exemplarische System in zahlreichen verschiedenen Formaten bereitgestellt werden, einschließlich: JSON-, YAML-, XML-Format oder ein benutzerdefiniertes domainspezifisches Sprachformat (DSL). Es kann eine Vielzahl von Verfahren für das Senden dieser Dateien an ein exemplarisches System geben, einschließlich Tags in einem öffentlich zugänglichen Source-Steuerungsmanagementsystem und statischen Zip-Dateien, die über HTTP bereitgestellt werden.An example system can provide various SDKs from a single site that hosts all available SDKs. An exemplary system, as in 1 can show information from an SDK provider, including artifacts ( 101 ) and metadata ( 102 ), in the context of a particular SDK record and the information provided in a Convert format that is useful for users. In some embodiments, exemplary artifacts include information associated with a particular SDK, such as change logs, license files, resources, media files, sample projects, source files, compiled binaries, and libraries, which may be in a compressed format such as a zip file. Exemplary metadata can include the name of the SDK, versioning information, SDK dependencies, descriptions of the function that an SDK meets, the authors of an SDK, contact information for SDK authors, licensing information, the official website for an SDK, SDK platform requirements (such as operating system and CPU architecture), screenshots, commands that need to be executed before integrating the SDK, disapproval information, compilation and project settings, or other details of the SDK. This information may be provided by SDK developers for the exemplary system in a variety of different formats, including: JSON, YAML, XML, or a custom domain-specific language format (DSL). There may be a variety of methods for sending these files to an exemplary system, including tags in a publicly accessible source control management system and static zip files provided over HTTP.

Ein exemplarisches System kann Artefakte (101) und Metadaten (102), die eine Version eines SDK beschreiben, empfangen und diese Informationen in einem allgemeinen Datenspeicher, dem SDK-Host (103) speichern. Dieser SDK-Host (103) kann jede Version jedes empfangenen und unterstützten SDK aufbewahren. Versionen können zeitlich unbegrenzt aufbewahrt werden. In einer Ausführungsform kann ein exemplarisches System das Prinzip „unterstützte Versionen” von Paketen aufweisen. Unterstützte Versionen stellen Versionen eines SDK dar, die die SDK-Entwickler aktiv unterstützen. SDKs können ihre Metadaten aktualisieren, um anzuzeigen, dass ihre Metadaten ohne Ersatz veraltet sind oder zugunsten eines anderen SDK, das benannt wird, veraltet sind. Sobald die Entwickler eine Version nicht mehr unterstützen, kann ein exemplarisches System Pakete für die nicht unterstützten SDKs entfernen. Das System kann dann die Informationen anschließend zu einem Wandler (104) senden, wo die empfangenen Informationen in ein Paket mit den für den Entwicklungsprozess erforderlichen Tools umgewandelt werden. Ein exemplarischer Wandler (104) kann die empfangenen Artefakte (101) und Metadaten (102) verwenden, um zu erkennen, wie eine Version eines bestimmten SDK in ein Paket umgewandelt wird. Eines der Artefakte kann beispielsweise eine Build-Datei sein, die alle erforderlichen Komponenten des SDK und die Reihenfolge, in der spezielle Dateien in ein Paket aufgenommen werden sollen, beschreibt.An exemplary system can detect artifacts ( 101 ) and metadata ( 102 ) that describe a version of an SDK, and receive that information in a common data store, the SDK host ( 103 ) to save. This SDK host ( 103 ) can keep any version of any received and supported SDK. Versions can be stored indefinitely. In one embodiment, an exemplary system may have the "supported version" principle of packets. Supported versions represent versions of an SDK that the SDK developers actively support. SDKs can update their metadata to indicate that their metadata is obsolete without replacement or obsolete in favor of another SDK that is named. Once the developers no longer support a version, an example system can remove packages for the unsupported SDKs. The system can then send the information to a converter ( 104 ), where the received information is converted into a package containing the tools necessary for the development process. An exemplary converter ( 104 ) can receive the received artifacts ( 101 ) and metadata ( 102 ) to see how to convert a version of a particular SDK into a package. For example, one of the artifacts may be a build file that describes all of the required components of the SDK and the order in which special files are to be included in a package.

Bei einem Beispiel können alle notwendigen Dateien und Konfigurationen in einem Skript beschrieben sein, wie in 4 gezeigt. Dieses Komponentenskript (402) kann alle Dateien, die Teil einer SDK-Version sind, aufnehmen und in eine standardmäßige Verzeichnishierarchie ablegen. Das Skript kann eine standardmäßige Konfigurationsdatei wie etwa eine JSON-Datei verwenden, um alle notwendigen Dateien und Build-Konfigurationen aufzulisten. Die folgenden Schlüsseldaten können für die Erstellung einer SDK-Version notwendig sein: Name, öffentlicher Name, Version, Zusammenfassung, Beschreibung und Homepage. Name kann der Name der Komponente sein, die der Stammverzeichnisname der Hierarchie sein wird. Öffentlicher Name kann der öffentliche Name sein, den das exemplarische System verwenden wird, um Benutzern das SDK anzuzeigen. Version kann die Version des SDK sein, das gerade erstellt wird. Zusammenfassung kann eine kurze Beschreibung des SDK sein, das gerade erstellt wird. Beschreibung kann eine längere Beschreibung des SDK sein. Homepage kann die Website-URL des SDK mit Projektinformationen und Dokumentation sein.In one example, all necessary files and configurations may be described in a script, as in FIG 4 shown. This component script ( 402 ) can capture all files that are part of an SDK version and place them in a standard directory hierarchy. The script can use a standard configuration file, such as a JSON file, to list all necessary files and build configurations. The following key data may be required to create an SDK version: name, public name, version, abstract, description, and homepage. Name can be the name of the component, which will be the root directory name of the hierarchy. Public name can be the public name that the example system will use to display the SDK to users. Version can be the version of the SDK that is being created. Summary can be a brief description of the SDK being created. Description may be a longer description of the SDK. Homepage can be the website URL of the SDK with project information and documentation.

Ein zusätzliches Skript (404) kann neue Build-Konfigurationen für neue Komponenten (403) erzeugen und einen Tag für die neue SDK-Version aktualisieren. Dieses Skript (404) kann die in den Build-Dateien gespeicherte Konfiguration/die Konfigurationen in den neuen Komponentendateien (403) verwenden, um die entsprechenden Metadaten und Build-Regeln zu erzeugen. Ein weiteres Skript (406) kann ein Versionsverzeichnis nehmen und es in eine Archivdatei kompilieren, beispielsweise eine CocoaPod-Zipdatei zur Verbreitung (407). Ein exemplarischer Wandler (104) kann durch eine Reihe von Bedingungen ausgelöst werden, einschließlich eines ausdrücklichen Signals von dem SDK-Anbieter, einer Erhebung des Status des SDK-Hosts (103) oder des Empfangens eines Signals vom SDK-Host (103) hinsichtlich einer Veränderung. Daten im SDK-Host können in einem strukturieren Format vorliegen, das ein schnelles Prüfen von SDK- und Versionskombinationen ermöglicht. In einem exemplarischen System kann dieses Format eine Verzeichnisstruktur in einer Source-Steuerung des Formats des SDK/der Version sein. Beim Abfragen kann eine Liste von SDK- und Versionspaaren erzeugt werden. Diese Liste kann mit dem Satz von Paaren, die bereits umgewandelt wurden, verglichen werden, um SDK/Versionen zu bestimmen, die umgewandelt werden sollen. Bei anderen Ausführungsformen kann das exemplarische System alles im SDK-Host basierend auf einem bestimmten Zeitplan umwandeln.An additional script ( 404 ) can create new build configurations for new components ( 403 ) and update a tag for the new SDK version. This script ( 404 ) can save the configuration (s) stored in the build files in the new component files ( 403 ) to generate the appropriate metadata and build rules. Another script ( 406 ) can take a version directory and compile it into an archive file, such as a CocoaPod zip file for distribution ( 407 ). An exemplary converter ( 104 ) can be triggered by a number of conditions, including an explicit signal from the SDK provider, a survey of the status of the SDK host ( 103 ) or receiving a signal from the SDK host ( 103 ) with regard to a change. Data in the SDK host can be in a structured format that allows for quick checking of SDK and version combinations. In an exemplary system, this format may be a directory structure in source control of the SDK / version format. When querying, a list of SDK and version pairs can be generated. This list can be compared to the set of pairs that have already been converted to determine SDK / versions to be converted. In other embodiments, the exemplary system may transform everything in the SDK host based on a particular schedule.

Sobald die Umwandlung einer bestimmten Version eines SDK fertiggestellt wurde, kann das Paket an einen Staginghost (105) gesendet werden. Abhängigkeiten können zu diesem Zeitpunkt geprüft werden. Ein exemplarisches System überprüft, um sicherzustellen, dass alle Abhängigkeiten existieren und die richtigen Versionen der Abhängigkeiten verfügbar sind. Falls die Abhängigkeiten nicht existieren oder die richtige Version nicht verfügbar ist, verbleibt das Paket beim Staginghost (105), bis die Abhängigkeiten verfügbar und korrigiert sind. Konflikte der SDKs untereinander können zu diesem Zeitpunkt ebenfalls aufgelöst werden. Mehrfache SDKs können möglicherweise aufbereitet werden, wobei jedoch Abhängigkeiten zuerst aufbereitet werden. Eine Konfliktauflösung kann zu diesem Zeitpunkt ein manueller Prozess sein, da diese sehr wahrscheinlich durch einen logischen Fehler verursacht werden, der sich programmatisch nicht beheben lässt. Ein exemplarisches System kann die Eigentümer in Konflikt stehender SDKs mit so viel Informationen über den Fehler wie möglich benachrichtigen. Once the conversion of a particular version of an SDK has been completed, the package can be delivered to a staging host ( 105 ). Dependencies can be checked at this time. An exemplary system checks to make sure that all dependencies exist and the right versions of dependencies are available. If the dependencies do not exist or the correct version is not available, the package remains with the staging host ( 105 ) until the dependencies are available and corrected. Conflicts among the SDKs can also be resolved at this time. Multiple SDKs may be able to be rendered, but dependencies are treated first. Conflict resolution can be a manual process at this time, as it is most likely caused by a logical error that can not be fixed programmatically. An exemplary system can notify the owner of conflicting SDKs with as much information about the error as possible.

Ein Tester (106) kann zum Verbreiten der Pakete vom Staginghost (105) zum Pakethost (107) verwendet werden. Bei einem exemplarischen System kann ein Tester (106) die derzeit aufbereiteten Pakete abrufen und diese testen. Dieser Tester (106) kann durch den Wandler (104), den Staginghost (105), einen SDK-Anbieter oder über einen Abfragemechanismus ausgelöst werden. Bei einigen Ausführungsformen wird nach Beendigung der Umwandlung der Standort des neuen Pakets im Staginghost entweder durch den Wandler (104) oder den Staginghost (105) zum Tester gesendet. In anderen Ausführungsformen kann es ein Befehlszeilentool oder eine andere Interaktionsmöglichkeit geben, die es SDK-Anbietern ermöglicht, dem Tester (106) zu signalisieren, dass ein spezielles SDK und Version davon im Staginghost vorliegt und getestet werden muss. Testen kann das Erstellen einer Anwendung mit aufbereiteten Paketen und den relevanten verfügbaren Paketen umfassen, um sicherzustellen, dass es keine Build-Probleme gibt. Der Dienst kann auch die Ausführung von ausgereifteren Integrationstests unterstützen, d. h. sicherstellen, dass die Anwendungsfunktionalität, die von unterschiedlichen SDKs abhängt, funktioniert. Ein exemplarisches System kann einen aus Komponenten bestehenden Satz von Tests bereitstellen. Dies können Voreinreichungstests, Integrationstests, Vorverpackungseinsätze auf Hostinfrastrukturinstanzen, die Quellenarchive und Dateien [] bedienen, und Validierungen für Build-Regeln sein. Wenn eine SDK-Version erstellt oder aktualisiert wird, kann das Konfigurationsskript validiert werden, um sicherzustellen, dass es gültige Parameter mit den folgenden Eigenschaften enthalten kann: richtige öffentliche Namen, richtig ausgewiesene Abhängigkeiten; kürzere Zusammenfassungen als die Beschreibung; eine spezifizierte Mindestversion einer Plattform; und eine gültige Homepage. Des Weiteren können die Bibliotheken für spezifische Architekturen validiert werden. Veränderungen der Umgebungsspezifikationen für ein SDK können geprüft werden, um zu bestätigen, dass die aktualisierte Umgebungsspezifikation ausführbar und validiert ist. So kann die Validierung beispielsweise eine Voreinreichungsprüfung, um zu garantieren, dass alle spezifizierten Pakete von Dateien, die versioniert sind, gespeichert sind und auf die von dem exemplarischen System zugegriffen wird, existieren, Bestätigen, dass die Sammlung der spezifizierten Pakete von Dateien eine gültige/konsistente Sammlung enthalten, beinhalten, und es kann eine Testinstallation auf einer örtlichen Maschine durchgeführt werden, um festzustellen, ob das SDK ausgeführt werden wird. Nachdem ein SDK erfolgreich ausgeführt wurde, können fortdauernde Integrationstests eingerichtet und mit Musterprojekten und Interoperabilitätstests ausgeführt werden, um eine Kompatibilität der SDKs, die auf der gleichen Entwicklungsplattform ausgeführt werden, untereinander festzustellen. Sobald ein Paket getestet wurde, kann es zum Pakethost (107) gesendet werden. Zugriffssteuerungsinformationen können bereitgestellt werden, die steuern, wie auf das Paket zugegriffen werden können soll. Dem Pakethost (107) können diese Zugriffssteuerungsinformationen bereitgestellt werden, sodass der Pakethost (107) Pakete für die entsprechenden Benutzer bereitstellen kann. Zugriffssteuerungsinformationen können als Teil der Metadaten bereitgestellt werden oder können durch den SDK-Anbieter signalisiert werden. In einer Ausführungsform können unterschiedliche Standorte innerhalb der Hosting-Infrastruktur die Zugriffssteuerung (ACL) für ein Paket bestimmen. Dem SDK-Anbieter können Tools bereitgestellt werden, um ein Paket an den richtigen Standort für spezifische ACLs zu senden. So können beispielsweise Zugriffssteuerungsregeln implementiert werden, die IP-Adressen verwenden, um festzustellen, ob ein Benutzer oder eine Anwendung auf ein spezielles SDK zugreifen kann. Es können private, halbprivate und extern zugreifbare Pakete existieren. Wie in 1 veranschaulicht, können intern gehostete Pakete (108) privat, mit Frühzugriffsprogramm gehostete Pakete (109) halbprivat und öffentlich gehostete Pakete (110) extern zugreifbar für öffentliche Benutzer sein. Ein Paket, das an zusätzliche Benutzer/Anwendungen gesendet werden kann, kann im Staginghost gecached sein, sodass es zu einem späteren Zeitpunkt nicht erneut in ein Paket umgewandelt werden muss.A tester ( 106 ) can be used to propagate packets from the staging host ( 105 ) to the parcel post ( 107 ) be used. In an exemplary system, a tester ( 106 ) retrieve the currently processed packages and test them. This tester ( 106 ) can by the converter ( 104 ), the staging host ( 105 ), an SDK provider, or a polling mechanism. In some embodiments, after completion of the conversion, the location of the new packet in the staging host is determined either by the converter ( 104 ) or the staging host ( 105 ) sent to the tester. In other embodiments, there may be a command-line tool or other interaction facility that allows SDK providers to provide the tester ( 106 ) to signal that a special SDK and version of it is present in the staging host and needs to be tested. Testing can include building an application with rendered packages and the relevant packages available to make sure that there are no build issues. The service can also support the execution of more sophisticated integration tests, that is, ensure that the application functionality that depends on different SDKs works. An exemplary system may provide a component set of tests. These may include pre-submission tests, integration tests, pre-packaging operations on host infrastructure instances that serve source archives and files [], and build rule validations. When an SDK version is created or updated, the configuration script can be validated to ensure that it can contain valid parameters with the following properties: correct public names, correct dependencies; shorter summaries than the description; a specified minimum version of a platform; and a valid homepage. Furthermore, the libraries can be validated for specific architectures. Changes to the environmental specifications for an SDK can be checked to confirm that the updated environment specification is executable and validated. For example, the validation may include a pre-submission check to guarantee that all specified packages of files that are versioned are stored and accessed by the exemplary system, confirm that the collection of the specified packages of files is a valid one. contain a consistent collection, and a test installation on a local machine can be performed to determine if the SDK will be executed. After an SDK has been successfully completed, continuous integration testing can be set up and performed with sample projects and interoperability tests to establish compatibility between the SDKs running on the same development platform. Once a package has been tested, it can be used to package 107 ). Access control information may be provided that controls how the package is to be accessed. The package host ( 107 ), this access control information can be provided so that the package host ( 107 ) Can provide packages for the appropriate users. Access control information may be provided as part of the metadata or may be signaled by the SDK provider. In one embodiment, different locations within the hosting infrastructure may determine the access control (ACL) for a packet. Tools can be provided to the SDK provider to send a package to the correct location for specific ACLs. For example, access control rules that use IP addresses can be implemented to determine if a user or application can access a specific SDK. Private, semi-private and externally accessible packages may exist. As in 1 illustrates internally hosted packets ( 108 ) private, packages hosted with early access program ( 109 ) semi-private and publicly hosted packages ( 110 ) be externally accessible to public users. A packet that can be sent to additional users / applications can be cached in the staging host so that it does not need to be re-packetized at a later time.

Wie vorstehend besprochen, können Pakete in einem gebräuchlichen Format wie etwa CocoaPods und als unterstützte Zip-Dateien bereitgestellt werden, wie beispielsweise in 4 für Beispiel (407) gezeigt. CocoaPods sind Mechanismen zur Bibliotheksverteilung und Abhängigkeitsauflösung, die jüngst unter iOS-Entwicklern beliebt geworden sind. Diese Mechanismen ermöglichen einen vereinfachten automatisierten Arbeitsablauf zum Abrufen von Bibliotheken und ihren Abhängigkeiten. Zudem erzwingen sie eine semantische Versionierung von Bibliotheken. Ein Entwickler, der CocoaPods verwendet, erfasst die zur direkten Nutzung vorgesehenen Bibliotheken und verwandte Versionierungsinformationen in einem Podfile. Diese Datei kann von den CocoaPod-Tools verwendet werden, um die Bibliotheken und ihre Abhängigkeiten abzurufen.As discussed above, packets may be provided in a common format such as CocoaPods and as supported zip files, such as in 4 for example ( 407 ). CocoaPods are library distribution and dependency resolution mechanisms that have recently become popular among iOS developers. These mechanisms allow one Simplified automated workflow for retrieving libraries and their dependencies. In addition, they force a semantic versioning of libraries. A developer using CocoaPods captures the direct-use libraries and related versioning information in a podfile. This file can be used by the CocoaPod tools to retrieve the libraries and their dependencies.

Bei einigen Ausführungsformen gibt es womöglich keinen Staginghost. Die Abhängigkeitsauflösung kann im SDK-Host erfolgen. Außerdem können SDKs als Version gestapelt werden. Wenn SDKs gestapelt werden, muss die Abhängigkeitsprüfung nicht notwendigerweise im Wandler oder im Tester erfolgen. Anbieter können verantwortlich dafür sein, nur Sätze von neuen SDKs abzusenden, die richtige Abhängigkeiten aufweisen. Durch Stapeln kann ein exemplarisches System vermeiden, dass Pakete im Staginghost liegen und auf ihre Abhängigkeiten warten. Stattdessen müssen Pakete entweder über bereits eingebettete Abhängigkeiten verfügen oder mit ihren Abhängigkeiten gestapelt werden. Diese Voraussetzung kann einen Teil der Logik in einem exemplarischen System vereinfachen.In some embodiments, there may not be a staging host. The dependency resolution can be done in the SDK host. In addition, SDKs can be stacked as a version. When SDKs are stacked, the dependency check does not necessarily have to be done in the converter or in the tester. Providers may be responsible for sending only sets of new SDKs that have proper dependencies. Stacking can help an exemplary system avoid packages from being in the staging host and waiting for dependencies. Instead, packages must either have dependencies already embedded or be stacked with their dependencies. This requirement may simplify some of the logic in an exemplary system.

Ein exemplarisches Verfahren zum Hosten und Veröffentlichen von Softwarepaketen beginnt mit dem Empfangen von Artefakten und Metadaten, die eine Version von einem SDK (201) beschreiben. Die empfangenen Artefakte und Metadaten können dann in ein Paket (203) umgewandelt werden. Die Abhängigkeiten des Pakets können geprüft werden, um zu testen, ob alle Abhängigkeiten verfügbar sind oder ob Konflikte mit anderen SDKs vorliegen. (205). Anschließend kann das Paket getestet werden, um sicherzustellen, dass es keine Konflikte, d. h. Build-Konflikte, der SDKs untereinander gibt. (207). Das Paket kann dann in einem gebräuchlichen Format für die entsprechenden Benutzer bereitgestellt werden. (208) Die entsprechenden Benutzer können bestimmt werden, indem mit dem SDK verbundene Zugriffssteuerungsregeln geprüft werden.An exemplary method for hosting and publishing software packages begins by receiving artifacts and metadata that is a version of an SDK ( 201 ). The received artifacts and metadata can then be put into a package ( 203 ) being transformed. The dependencies of the package can be checked to see if all dependencies are available or if there are conflicts with other SDKs. ( 205 ). Then the package can be tested to make sure that there are no conflicts, ie build conflicts, between the SDKs. ( 207 ). The package can then be provided in a common format for the appropriate users. ( 208 ) The appropriate users can be determined by checking access control rules associated with the SDK.

Ein exemplarisches System kann vielen nützlichen Zwecken dienen. Wie beispielsweise in 5a gezeigt, kann es eine Anwendung geben, mit es Benutzern ermöglicht, einen Eintrag darüber zu erstellen, wo sie Interaktionen mit Leuten hatten, wie etwa auf einem Konzert. Die Anwendung kann ConcertTracker (501a) genannt werden und Zugriff auf ein Karten-SDK (502a) und ein Sozial-SDK (503a) zum Erhalten von Standortinformationen und Informationen über Freunde eines Benutzers erfordern. ConcertTracker (501a) kann es einem Benutzer auch ermöglichen, unter Verwendung des Sozial-SDK (503a) Informationen mit den Freunden des Benutzers zu teilen. Diese SDKs (502a, 503a) können beide von einem dritten SDK (504a1, 504a2) abhängen, mit dem Analytikinformationen berichtet werden können. Falls das Karten-SDK (502a) aktuell die Version 6.x (504a1) des Analytik-SDK verwendet, und das Sozial-SDK (503a) die Version 7.x (504a2) des Analytik-SDK verwendet, dann kann es womöglich keine gemeinsame Version des SDK geben, die die für beide benötigten APIs liefert. Des Weiteren können beide SDKs (502a, 503a) die gleiche Open-Source-Bibliothek (505a1, 505a2) zur Aufzeichnung von Informationen für den Entwickler, z. B. darüber, wann eine Anwendung abstürzt, verwenden. Wenn die Bibliothek in jedes SDK kompiliert wird, ohne die Symbole erneut zu benennen, dann kann das Erstellen einer Anwendung, die von dem Karten-SDK (502a) und dem Sozial-SDK (503a) abhängt, aufgrund der doppelten Symbole scheitern. Um dieses Problem zu lösen, kann ein exemplarisches System, wie in 5b gezeigt, ein Paket erstellen, das die Bibliothek (505b) enthält, und dafür sorgen, dass sowohl das Karten-SDK (502b) als auch das Sozial-SDK (503b) von dem erstellten Paket abhängig sind, sodass der Abhängigkeitsmanager nur eine Kopie der Open-Source-Bibliothek (505b) einholt.An exemplary system can serve many useful purposes. Such as in 5a There may be an application that allows users to create an entry about where they had interactions with people, such as at a concert. The application can use ConcertTracker ( 501 ) and access to a map SDK ( 502a ) and a social SDK ( 503a ) to obtain location information and information about a user's friends. ConcertTracker ( 501 ) can also enable a user to use the social SDK ( 503a ) Sharing information with the user's friends. These SDKs ( 502a . 503a ) can both be from a third SDK ( 504a1 . 504a2 ) with which analytics information can be reported. If the map SDK ( 502a ) currently version 6.x ( 504a1 ) of the Analytics SDK, and the Social SDK ( 503a ) version 7.x ( 504a2 ) of the Analytics SDK, then there may not be a common version of the SDK that provides the APIs needed for both. Furthermore, both SDKs ( 502a . 503a ) the same open-source library ( 505a1 . 505a2 ) for recording information for the developer, e.g. For example, when an application crashes. If the library is compiled into each SDK without renaming the icons, then creating an application that can be used by the map SDK ( 502a ) and the social SDK ( 503a ), due to the double symbols fail. To solve this problem, an exemplary system, as in 5b shown, create a package that the library ( 505b ) and ensure that both the map SDK ( 502b ) as well as the social SDK ( 503b ) depend on the created package, so the dependency manager will only have one copy of the open source library ( 505b ).

3 ist ein High-Level-Blockdiagramm eines exemplarischen Computers (300), der zum Hosten und Veröffentlichen von Softwarepaketen eingerichtet ist. In einer sehr grundlegenden Konfiguration (301) beinhaltet das Computergerät (300) typischerweise einen oder mehrere Prozessoren (310) und einen Systemspeicher (320). Ein Speicherbus (330) kann für die Kommunikation zwischen dem Prozessor (310) und dem Systemspeicher (320) verwendet werden. 3 is a high-level block diagram of an exemplary computer ( 300 ), which is set up to host and publish software packages. In a very basic configuration ( 301 ) contains the computer device ( 300 ) typically one or more processors ( 310 ) and a system memory ( 320 ). A memory bus ( 330 ) can be used for communication between the processor ( 310 ) and the system memory ( 320 ) be used.

Je nach der gewünschten Konfiguration kann es sich bei dem Prozessor (310) um einen beliebigen Typ handeln, einschließlich, aber nicht beschränkt auf einen Mikroprozessor (μP), einen Mikrocontroller (μC), einen digitalen Signalprozessor (DSP) oder eine beliebige Kombination davon. Der Prozessor (310) kann eine oder mehrere Caching-Ebenen, zum Beispiel einen Level-1-Cache (311) und einen Level-2-Cache (312), einen Prozessorkern (313) und Register (314) beinhalten. Der Prozessorkern (313) kann eine Arithmetik-Logik-Einheit (ALU), eine Gleitkommaeinheit (FPU), einen Digitalsignalverarbeitungskern (DSP-Kern) oder eine beliebige Kombination davon beinhalten. Eine Speichersteuerung (316) kann ebenfalls mit dem Prozessor (310) verwendet werden, oder in einigen Implementierungen kann die Speichersteuerung (315) ein interner Teil des Prozessors (310) sein.Depending on the desired configuration, the processor ( 310 ) may be of any type, including, but not limited to, a microprocessor (μP), a microcontroller (μC), a digital signal processor (DSP), or any combination thereof. The processor ( 310 ) one or more caching levels, for example a level 1 cache ( 311 ) and a level 2 cache ( 312 ), a processor core ( 313 ) and registers ( 314 ). The processor core ( 313 ) may include an arithmetic logic unit (ALU), a floating point unit (FPU), a digital signal processing core (DSP core), or any combination thereof. A memory controller ( 316 ) can also be used with the processor ( 310 ), or in some implementations, the memory controller ( 315 ) an internal part of the processor ( 310 ) be.

Je nach gewünschter Konfiguration kann es sich bei dem Systemspeicher (320) um einen beliebigen Typ handeln, einschließlich, aber nicht beschränkt auf flüchtigen Speicher (wie z. B. RAM), nichtflüchtigen Speicher (wie z. B. ROM, Flash-Speicher usw.) oder eine Kombination davon. Ein Systemspeicher (320) beinhaltet typischerweise ein Betriebssystem (321), eine oder mehrere Anwendungen (322) und Programmdaten (324). Die Anwendung (322) kann ein Verfahren zum Hosten und Veröffentlichen von Softwarepaketen umfassen. Programmdaten (324) beinhalten das Speichern von Anweisungen, die, wenn sie von dem einen oder den mehreren Verarbeitungsgeräten ausgeführt werden, ein Verfahren zum Hosten und Veröffentlichen von Softwarepaketen implementieren. (323). Bei einigen Ausführungsformen kann die Anwendung (322) dafür ausgelegt sein, mit Programmdaten (324) auf einem Betriebssystem (321) zu arbeiten.Depending on the desired configuration, the system memory ( 320 ) may be of any type, including but not limited to volatile memory (such as RAM), nonvolatile memory (such as ROM, flash memory, etc.), or a combination thereof. One System memory ( 320 ) typically includes an operating system ( 321 ), one or more applications ( 322 ) and program data ( 324 ). The application ( 322 ) may include a method for hosting and publishing software packages. Program data ( 324 ) include storing instructions that, when executed by the one or more processing devices, implement a method for hosting and publishing software packages. ( 323 ). In some embodiments, the application may ( 322 ) be designed with program data ( 324 ) on an operating system ( 321 ) to work.

Das Computergerät (300) kann zusätzliche Merkmale oder Funktionalitäten und zusätzliche Schnittstellen aufweisen, um die Kommunikation zwischen der Grundkonfiguration (301) und allen erforderlichen Geräten und Schnittstellen zu erleichtern.The computer device ( 300 ) may have additional features or functionalities and additional interfaces to facilitate communication between the basic configuration ( 301 ) and all necessary equipment and interfaces.

Der Systemspeicher (320) ist ein Beispiel für Computerspeichermedien. Computerspeichermedien beinhalten, ohne jedoch darauf beschränkt zu sein: RAM, ROM, EEPROM, Flash-Speicher oder eine andere Speichertechnologie, CD-ROM, Digital Versatile Disc (DVD) oder einen anderen optischen Speicher, Magnetkassette, Magnetband, Magnetplattenspeicher oder andere Magnetspeichergeräte oder ein beliebiges anderes Medium, das zur Speicherung der gewünschten Informationen verwendet werden kann auf das durch das Computergerät 300 zugegriffen werden kann. Jedes derartige Computerspeichermedium kann Teil des Geräts (300) sein.The system memory ( 320 ) is an example of computer storage media. Computer storage media include, but are not limited to, RAM, ROM, EEPROM, flash memory or other storage technology, CD-ROM, Digital Versatile Disc (DVD) or other optical storage, magnetic cartridge, magnetic tape, magnetic disk storage, or other magnetic storage devices any other medium that can be used to store the desired information on the computer device 300 can be accessed. Any such computer storage medium may be part of the device ( 300 ) be.

Das Computergerät (300) kann als ein Teil eines tragbaren (oder mobilen) elektronischen Geräts mit kleinem Formfaktor, wie beispielsweise ein Mobiltelefon, ein Smartphone, ein Personal Digital Assistant (PDA), ein persönlicher Mediaplayer, ein Tablet-Computer (Tablet), ein drahtloses Web-Watch-Gerät, ein persönliches Headset-Gerät, ein anwendungsspezifisches Geräts oder ein Hybrid-Gerät, implementieren werden, das beliebige der vorstehenden Funktionen beinhaltet. Das Computergerät (300) kann auch als ein Personal Computer, einschließlich Laptop- und Nicht-Laptop-Computerkonfigurationen, implementiert sein.The computer device ( 300 ) may be used as a part of a portable (or mobile) small form factor electronic device such as a mobile phone, a smartphone, a personal digital assistant (PDA), a personal media player, a tablet computer, a wireless web watch Device, a personal headset device, an application-specific device or a hybrid device, which includes any of the above functions. The computer device ( 300 ) may also be implemented as a personal computer, including laptop and non-laptop computer configurations.

Die vorstehende detaillierte Beschreibung hat verschiedene Ausführungsformen der Geräte und/oder Prozesse mittels der Verwendung von Blockdiagrammen, Flussdiagrammen und/oder Beispiele dargelegt. Sofern diese Blockdiagramme, Flussdiagramme und/oder Beispiele eine oder mehrere Funktionen und/oder Operationen enthalten, ist es für Fachleute auf dem Gebiet ersichtlich, dass jede Funktion und/oder Operation innerhalb derselben Blockdiagramme, Flussdiagramme oder Beispiele einzeln und/oder zusammen, durch eine breite Palette an Hardware, Software, Firmware oder praktisch jeder möglichen Kombination davon, implementiert werden kann. In einer Ausführungsform können verschiedene Teile des hier beschriebenen Gegenstands über anwendungsspezifische, integrierte Schaltungen (ASICs), feldprogrammierbare Gate-Arrays (FPGAs), digitale Signalprozessoren (DSPs), sonstige integrierte Formate oder als ein Webdienst implementiert werden. Dennoch werden Fachleute auf dem Gebiet feststellen, dass einige Aspekte der hierin offenbarten Ausführungsformen, vollständig oder teilweise, ebenso in integrierten Schaltungen, als ein oder mehrere Computerprogramme, die auf einem oder mehreren Computer ausgeführt werden, als ein oder mehrere Programme, die auf einem oder mehreren Prozessoren ausgeführt werden, als Firmware oder als praktisch jede Kombination davon implementiert werden können, und dass ein Entwerfen der Schaltungen und/oder ein Schreiben des Codes für die Software und/oder Firmware in Anbetracht dieser Offenbarung durchaus im Rahmen der Fähigkeiten von Fachleuten befindet. Darüber hinaus werden Fachleute verstehen, dass die Mechanismen des hierin beschriebenen Gegenstands als ein Programmprodukt in einer Vielzahl von Formen verteilt werden können, und dass eine veranschaulichende Ausführungsform des hierin beschriebenen Gegenstands unabhängig vom jeweiligen Typ des nichtflüchtigen Signalträgermediums, das zur tatsächlichen Durchführung der Verteilung verwendet wird, gilt. Zu Beispielen für ein nichtflüchtiges Signalträgermedium zählen unter anderem Folgende: beschreibbare Medien wie eine Diskette, ein Festplattenlaufwerk, eine Compact Disc (CD), eine Digital Video Disk (DVD), ein digitales Band, ein Computerspeicher usw.; und ein Übertragungsmedium, wie beispielsweise ein digitales und/oder analoges Kommunikationsmedium. (z. B. ein Glasfaserkabel, ein Wellenleiter, eine drahtgebundene Kommunikationsverbindung, eine drahtlose Kommunikationsverbindung usw.)The foregoing detailed description has set forth various embodiments of the devices and / or processes using block diagrams, flowcharts, and / or examples. To the extent that these block diagrams, flowcharts and / or examples contain one or more functions and / or operations, it will be apparent to those skilled in the art that any function and / or operation within the same block diagrams, flowcharts or examples may be considered individually and / or collectively wide range of hardware, software, firmware, or virtually any combination of them, can be implemented. In one embodiment, various portions of the subject matter described herein may be implemented via application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), digital signal processors (DSPs), other integrated formats, or as a web service. Nevertheless, those skilled in the art will recognize that some aspects of the embodiments disclosed herein, in whole or in part, also in integrated circuits, as one or more computer programs executing on one or more computers as one or more programs running on one or more computers In accordance with this disclosure, designing the circuits and / or writing the code to the software and / or firmware is well within the skill of those skilled in the art, and may be implemented as firmware or virtually any combination thereof. Moreover, those skilled in the art will appreciate that the mechanisms of the subject matter described herein may be distributed as a program product in a variety of forms, and that an illustrative embodiment of the subject matter described herein is independent of the particular type of nonvolatile signal carrying medium used to actually perform the distribution , applies. Examples of a nonvolatile signal carrying medium include, among others, recordable media such as a floppy disk, a hard disk drive, a compact disc (CD), a digital video disk (DVD), a digital tape, a computer memory, etc .; and a transmission medium, such as a digital and / or analog communication medium. (eg a fiber optic cable, a waveguide, a wired communication link, a wireless communication link, etc.)

In Bezug auf die Verwendung im Wesentlichen aller Begriffe hierin im Plural und/oder Singular können die Fachleute, je nach Kontext und/oder Anwendung, vom Plural auf den Singular und/oder vom Singular auf den Plural schließen. Die verschiedenen Singular-/Plural-Permutationen können der Verdeutlichung halber ausdrücklich hierin dargelegt sein.With respect to the use of substantially all terms herein in the plural and / or singular, those skilled in the art may, depending on the context and / or application, infer from the plural to the singular and / or from the singular to the plural. The various singular / plural permutations may be expressly set forth herein for purposes of illustration.

Folglich wurden bestimmte Ausführungsformen des Gegenstandes beschrieben. Weitere Ausführungsformen liegen innerhalb des Schutzumfangs der folgenden Ansprüche. In einigen Fällen können die in den Ansprüchen angeführten Aktionen in einer anderen Reihenfolge durchgeführt werden und dennoch erwünschte Ergebnisse erzielen. Außerdem erfordern die in den beigefügten Figuren dargestellten Prozesse nicht unbedingt die gezeigte spezielle Reihenfolge oder sequenzielle Reihenfolge, um erwünschte Ergebnisse zu erzielen. Bei bestimmten Implementierungen können Multitasking und eine Parallelverarbeitung vorteilhaft sein.Thus, certain embodiments of the subject matter have been described. Other embodiments are within the scope of the following claims. In some cases, the actions recited in the claims may be performed in a different order and still achieve desirable results. In addition, the processes illustrated in the attached figures do not necessarily require the particular order or sequential order shown to achieve desirable results. In certain implementations, multitasking and parallel processing may be beneficial.

Claims (16)

System zum Hosten und Veröffentlichen von Softwarepaketen, wobei das System Folgendes umfasst: einen SDK-Host (103), der Artefakte im Zusammenhang mit einem Software Development Kit und Metadaten, die eine Version des Software Development Kits beschreiben, empfangt und speichert; einen Wandler (104), der die empfangenen Artefakte und Metadaten in ein Paket für das Software Development Kit umwandelt; einen Staginghost (105), der das Paket aufbereitet und alle Abhängigkeiten des Pakets prüft, um sicherzustellen, dass die Abhängigkeiten des Pakets existieren und es keine Abhängigkeitskonflikte mit einem anderen aufbereiteten Paket gibt, das mindestens eine Abhängigkeit verwendet, die gleich der des Pakets ist; einen Tester (106), der die derzeit aufbereiteten Pakete abruft und testet, um festzustellen, ob es etwaige Inkompatibilitäten der aufbereiteten Pakete untereinander gibt; und einen Pakethost (107), der die derzeit aufbereiteten Pakete vom Tester empfängt und Zugriffssteuerungsinformationen verwendet, um die derzeit aufbereiteten Pakete in einem gebräuchlichen Format für die angemessenen Benutzer bereitzustellen.A system for hosting and publishing software packages, the system comprising: an SDK host ( 103 ) that receives and stores artifacts associated with a software development kit and metadata that describes a version of the software development kit; a converter ( 104 ), which converts the received artifacts and metadata into a package for the Software Development Kit; a staging host ( 105 ), which parses the package and checks all dependencies of the package to ensure that the dependencies of the package exist and there are no dependency conflicts with another parsed package that uses at least one dependency equal to that of the package; a tester ( 106 ), which retrieves and tests the packages currently being processed to determine if there are any incompatibilities between the processed packages; and a package ( 107 ), which receives the currently processed packets from the tester and uses access control information to provide the currently processed packets in a common format for the appropriate users. System nach Anspruch 1, wobei Artefakte Folgendes beinhalten: Änderungsprotokolle, Lizenzdateien, Ressourcen, Mediendateien, Musterprojekte, Quelldateien, kompilierte Binärdateien, Bibliotheken und andere Informationen im Zusammenhang mit einem speziellen SDK.The system of claim 1, wherein artifacts include: change logs, license files, resources, media files, sample projects, source files, compiled binaries, libraries, and other information associated with a particular SDK. System nach Anspruch 1, das ferner ein Empfangen von Artefakten in einem komprimierten Format umfasst.The system of claim 1, further comprising receiving artifacts in a compressed format. System nach Anspruch 1, wobei die Metadaten Folgendes beinhalten: den Namen des SDK, Versionierungsinformationen, SDK-Abhängigkeiten, Beschreibungen der Funktion, die ein SDK erfüllt, die Verfasser eines SDK, Kontaktinformationen für Verfasser eines SDK, Lizenzinformationen, die offizielle Website für ein SDK, SDK-Plattformanforderungen, Screenshots, Befehle, die vor dem Integrieren des SDK ausgeführt werden müssen, Missbilligungsinformationen, Kompilierungs- und Projekteinstellungen oder andere Details des SDK.The system of claim 1, wherein the metadata includes: the name of the SDK, versioning information, SDK dependencies, descriptions of the function that satisfies an SDK, the authors of an SDK, contact information for SDK authors, license information, the official website for an SDK , SDK platform requirements, screenshots, commands that need to be executed before integrating the SDK, disapproval information, compilation and project settings, or other details of the SDK. System nach Anspruch 1, das ferner ein Empfangen von Metadaten im JSON-, YAML-, XML-Format, in einem benutzerdefinierten domainspezifischen Sprachformat oder durch Tags in einem öffentlich zugänglichen Source-Steuerungsmanagementsystem und als statische Zip-Dateien, die über HTTP bereitgestellt werden, umfasst.The system of claim 1, further comprising receiving metadata in JSON, YAML, XML format, in a custom domain-specific language format or by tags in a publicly accessible source control management system and as static zip files provided via HTTP, includes. System nach Anspruch 1, das ferner umfasst, dass der SDK-Host nur Artefakte und Metadaten für unterstützte Versionen eines SDK speichert.The system of claim 1, further comprising the SDK host storing only artifacts and metadata for supported versions of an SDK. System nach Anspruch 1, das ferner umfasst, dass der Wandler unter einer Bedingung ausgelöst wird.The system of claim 1, further comprising triggering the transducer under a condition. System nach Anspruch 7, wobei eine Bedingung ein ausdrückliches Signal vom SDK-Anbieter, eine Erhebung des Status des SDK-Hosts oder ein Empfangen eines Signals vom SDK-Host hinsichtlich einer Veränderung ist.The system of claim 7, wherein a condition is an explicit signal from the SDK provider, an elevation of the status of the SDK host, or receiving a signal from the SDK host for a change. System nach Anspruch 1, das ferner ein Befehlszeilentool oder eine andere Interaktionsmöglichkeit umfasst, die es SDK-Anbietern ermöglicht, dem Tester zu signalisieren, dass ein spezielles SDK und Version davon im Staginghost vorliegt und für das Testen bereitsteht.The system of claim 1, further comprising a command-line tool or other interaction capability that allows SDK providers to signal the tester that a particular SDK and version thereof is present in the staging host and ready for testing. Computerimplementiertes Verfahren zum Hosten und Veröffentlichen von Softwarepaketen, wobei das Verfahren Folgendes umfasst: Empfangen und Speichern von Artefakten im Zusammenhang mit einem Software Development Kit und von Metadaten, die eine Version des Software Development Kits (201) beschreiben; Umwandeln der empfangenen Artefakte und Metadaten in ein Paket für das Software Development Kit (203); Aufbereiten des Pakets und Prüfen aller Abhängigkeiten des Pakets, um sicherzustellen, dass die Abhängigkeiten des Pakets existieren und es keine Abhängigkeitskonflikte mit einem anderen aufbereiteten Paket gibt, das eine Abhängigkeit verwendet, die gleich der des Pakets (205) ist; Testen der derzeit aufbereiteten Pakete, um festzustellen, ob es etwaige Inkompatibilitäten der aufbereiteten Pakete (207) untereinander gibt; und Verwenden von Zugriffssteuerungsinformationen, um die derzeit aufbereiteten Pakete in einem gebräuchlichen Format für die entsprechenden Benutzer (208) bereitzustellen.A computer-implemented method for hosting and publishing software packages, the method comprising: receiving and storing artifacts associated with a software development kit and metadata containing a version of the software development kit ( 201 ) describe; Convert the received artifacts and metadata into a software development kit package ( 203 ); Parsing the package and checking all dependencies of the package to ensure that the dependencies of the package exist and there are no dependency conflicts with another parsed package that uses a dependency equal to that of the package ( 205 ); Test the currently processed packages to see if there are any incompatibilities of the prepared packages ( 207 ) with each other; and using access control information to make the currently processed packets in a common format for the corresponding users ( 208 ). Verfahren nach Anspruch 10, wobei die Artefakte Folgendes beinhalten: Änderungsprotokolle, Lizenzdateien, Ressourcen, Mediendateien, Musterprojekte, Quelldateien, kompilierte Binärdateien, Bibliotheken und andere Informationen im Zusammenhang mit einem speziellen SDK.The method of claim 10, wherein the artifacts include: change logs, license files, resources, media files, sample projects, source files, compiled binaries, libraries, and other information associated with a particular SDK. Verfahren nach Anspruch 10, wobei die Metadaten Folgendes beinhalten: den Namen des SDK, Versionierungsinformationen, SDK-Abhängigkeiten, Beschreibungen der Funktion, die ein SDK erfüllt, die Verfasser eines SDK, Kontaktinformationen für Verfasser eines SDK, Lizenzinformationen, die offizielle Website für ein SDK, SDK-Plattformanforderungen, Screenshots, Befehle, die vor dem Integrieren des SDK ausgeführt werden müssen, Missbilligungsinformationen, Kompilierungs- und Projekteinstellungen, oder andere Details des SDK.The method of claim 10, wherein the metadata includes: the name of the SDK, versioning information, SDK dependencies, descriptions of the function that satisfies an SDK that SDK creator, contact information for SDK authors, licensing information, the official website for an SDK, SDK platform requirements, screenshots, commands that need to be executed before integrating the SDK, disapproval information, compilation and project settings, or other details of the SDK. Verfahren nach Anspruch 10, das ferner ein Empfangen von Metadaten im JSON-, YAML-, XML-Format, in einem benutzerdefinierten domainspezifischen Sprachformat oder durch Tags in einem öffentlich zugänglichen Source-Steuerungsmanagementsystem und als statische Zip-Dateien, die über HTTP bereitgestellt werden, umfasst.The method of claim 10, further comprising receiving metadata in JSON, YAML, XML format, in a custom domain-specific language format or by tags in a publicly accessible source control management system and as static zip files provided via HTTP, includes. Verfahren nach Anspruch 10, das ferner ein Auslösen des Umwandlungsprozesses unter einer Bedingung umfasst.The method of claim 10, further comprising initiating the conversion process under one condition. Verfahren nach Anspruch 14, wobei eine Bedingung ein ausdrückliches Signal vom SDK-Anbieter ist.The method of claim 14, wherein a condition is an explicit signal from the SDK provider. Verfahren nach Anspruch 10, das ferner ein Befehlszeilentool oder eine andere Möglichkeit zum Interagieren umfasst, die es SDK-Anbietern ermöglicht, zu signalisieren, dass ein spezielles SDK und Version davon für das Testen bereitsteht.The method of claim 10, further comprising a command-line tool or other means of interacting that allows SDK providers to signal that a particular SDK and version thereof are ready for testing.
DE112016002003.1T 2015-04-28 2016-04-21 INFRASTRUCTURE FOR POSING AND PUBLISHING SOFTWARE PACKAGES Pending DE112016002003T5 (en)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201562153745P 2015-04-28 2015-04-28
US62/153,745 2015-04-28
US14/849,375 2015-09-09
US14/849,375 US9632770B2 (en) 2015-04-28 2015-09-09 Infrastructure for hosting and publishing software packages
PCT/US2016/028632 WO2017011048A1 (en) 2015-04-28 2016-04-21 Infrastructure for hosting and publishing software packages

Publications (1)

Publication Number Publication Date
DE112016002003T5 true DE112016002003T5 (en) 2018-03-01

Family

ID=57205722

Family Applications (2)

Application Number Title Priority Date Filing Date
DE112016002003.1T Pending DE112016002003T5 (en) 2015-04-28 2016-04-21 INFRASTRUCTURE FOR POSING AND PUBLISHING SOFTWARE PACKAGES
DE202016008042.4U Active DE202016008042U1 (en) 2015-04-28 2016-04-21 Infrastructure for hosting and publishing software packages

Family Applications After (1)

Application Number Title Priority Date Filing Date
DE202016008042.4U Active DE202016008042U1 (en) 2015-04-28 2016-04-21 Infrastructure for hosting and publishing software packages

Country Status (5)

Country Link
US (1) US9632770B2 (en)
CN (1) CN107615239B (en)
DE (2) DE112016002003T5 (en)
GB (1) GB2555023A (en)
WO (1) WO2017011048A1 (en)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9843483B2 (en) 2014-09-18 2017-12-12 Bank Of America Corporation Distributed computing system
US20170147323A1 (en) * 2015-11-25 2017-05-25 Le Holding (Beijing) Co., Ltd. Method and electronic device for upgrading software development kit of an application
US10409622B2 (en) 2016-08-10 2019-09-10 Bank Of America Corporation Orchestration pipeline for providing and operating segmented computing resources
US10469315B2 (en) 2016-08-10 2019-11-05 Bank Of America Corporation Using computing platform definitions to provide segmented computing platforms in a computing system
US9977670B2 (en) 2016-08-10 2018-05-22 Bank Of America Corporation Application programming interface for providing access to computing platform definitions
CN108287758A (en) * 2017-01-09 2018-07-17 阿里巴巴集团控股有限公司 A kind of application resource management method, application method and device
CN107423036A (en) * 2017-02-27 2017-12-01 努比亚技术有限公司 A kind of application centring system management method of application apparatus and application apparatus
WO2019117982A1 (en) * 2017-12-15 2019-06-20 Google Llc Open source software testing
CN108647010B (en) * 2018-04-27 2021-11-26 武汉斗鱼网络科技有限公司 Project engineering initialization method, terminal equipment and storage medium
CN108595337A (en) * 2018-05-07 2018-09-28 杭州有赞科技有限公司 A kind of operation method and system of Jar packets
CN109408392A (en) * 2018-11-06 2019-03-01 北京京航计算通讯研究所 Software System Integrated Testing method based on continuous integrating technology
US11132191B2 (en) * 2019-09-11 2021-09-28 Hewlett Packard Enterprise Development Lp Software and firmware updates of computing systems
CN111090425B (en) * 2019-12-12 2023-05-05 支付宝(中国)网络技术有限公司 Program packaging method and device and electronic equipment
CN111176660A (en) * 2019-12-31 2020-05-19 中信百信银行股份有限公司 Distributed architecture-oriented micro-service contract management method and device, computer equipment and readable storage medium
CN111338651B (en) * 2020-02-19 2023-04-21 北京字节跳动网络技术有限公司 Method and device for providing download resource, and method and device for downloading resource
JP7359055B2 (en) * 2020-03-26 2023-10-11 株式会社オートネットワーク技術研究所 In-vehicle information processing device, information processing method, and client program
CN111562928B (en) * 2020-04-28 2023-05-05 北京字节跳动网络技术有限公司 Resource providing method and device, and resource downloading method and device
CN111506339A (en) * 2020-05-29 2020-08-07 北京奇艺世纪科技有限公司 Method and device for processing change information of Software Development Kit (SDK)
US11698822B2 (en) * 2020-06-10 2023-07-11 Snap Inc. Software development kit for image processing
CN111880834B (en) * 2020-07-07 2024-02-09 成都榕慧科技有限公司 Code issuing method, device, electronic equipment and computer medium
CN112882700B (en) * 2021-02-09 2024-04-23 京东方科技集团股份有限公司 IOS application program construction method and device, electronic equipment and storage medium
CN114385514A (en) * 2022-03-23 2022-04-22 杭州天谷信息科技有限公司 Method, equipment and storage medium for detecting webpage elements
CN114610653B (en) * 2022-05-10 2022-08-05 沐曦集成电路(上海)有限公司 Address request method based on GPU memory
CN114840195B (en) * 2022-06-29 2022-10-04 广州易方信息科技股份有限公司 Privatization method for iOS SDK static library

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101814026A (en) * 2010-01-11 2010-08-25 北京世纪高通科技有限公司 Software development system and method
US10346770B2 (en) * 2013-07-19 2019-07-09 Motio, Inc. Supplemental system for business intelligence systems
CN104133767A (en) * 2014-07-23 2014-11-05 天脉聚源(北京)科技有限公司 Software development process supervising method and software development process supervising device

Also Published As

Publication number Publication date
GB2555023A (en) 2018-04-18
WO2017011048A4 (en) 2017-03-30
GB201717420D0 (en) 2017-12-06
DE202016008042U1 (en) 2017-02-21
US9632770B2 (en) 2017-04-25
CN107615239B (en) 2021-05-25
US20160321067A1 (en) 2016-11-03
WO2017011048A1 (en) 2017-01-19
CN107615239A (en) 2018-01-19

Similar Documents

Publication Publication Date Title
DE112016002003T5 (en) INFRASTRUCTURE FOR POSING AND PUBLISHING SOFTWARE PACKAGES
US8166347B2 (en) Automatic testing for dynamic applications
US9734043B2 (en) Test selection
US20190332982A1 (en) Supplemental system for business intelligence systems
Graziotin et al. A Web-based modeling tool for the SEMAT Essence theory of software engineering
EP3438813B1 (en) Component management platform
Zaidman et al. Understanding Ajax applications by connecting client and server-side execution traces
US10977159B2 (en) Instrumentation of user actions in software applications
DE102016007400A1 (en) Techniques for evaluating applications through the use of a helper application
Zaccarelli et al. Stream2segment: An open‐source tool for downloading, processing, and visualizing massive event‐based seismic waveform datasets
Mardan et al. Full Stack JavaScript
US10275236B2 (en) Generating related templated files
DE102021129845A1 (en) METHOD AND APPARATUS FOR CONSTRUCTING PROGRAM DERIVED SEMANTIC GRAPHS
US9009666B1 (en) Systems and methods for testing software and for storing and tracking test assets with the software
US8719766B1 (en) System and method for identifying and adding files to a project manifest
Herbold et al. Combining usage-based and model-based testing for service-oriented architectures in the industrial practice
JP5815856B2 (en) System and method for inlining script dependencies
US9916315B2 (en) Computer implemented system and method for comparing at least two visual programming language files
Murugesan Microservices Deployment Cookbook
Jones Modernizing Legacy Applications in PHP
Nilsson Implementation of a Continuous Integration and Continuous Delivery System for Cross-Platform Mobile Application Development
Friesel PhantomJS Cookbook
Ramgir et al. Java 9 High Performance: Practical techniques and best practices for optimizing Java applications through concurrency, reactive programming, and more
US20240012740A1 (en) Systems and methods for integrated design, assessment and remediation of web pages
Shaffiei et al. Change and Bug Tracking System: Anjung Penchala Sdn. Bhd.

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

Representative=s name: BETTEN & RESCH PATENT- UND RECHTSANWAELTE PART, DE

R082 Change of representative

Representative=s name: BETTEN & RESCH PATENT- UND RECHTSANWAELTE PART, DE