DE112016002003T5 - INFRASTRUCTURE FOR POSING AND PUBLISHING SOFTWARE PACKAGES - Google Patents
INFRASTRUCTURE FOR POSING AND PUBLISHING SOFTWARE PACKAGES Download PDFInfo
- 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
Links
Images
Classifications
-
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software 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
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
Ein exemplarisches System kann Artefakte (
Bei einem Beispiel können alle notwendigen Dateien und Konfigurationen in einem Skript beschrieben sein, wie in
Ein zusätzliches Skript (
Sobald die Umwandlung einer bestimmten Version eines SDK fertiggestellt wurde, kann das Paket an einen Staginghost (
Ein Tester (
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
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 (
Ein exemplarisches System kann vielen nützlichen Zwecken dienen. Wie beispielsweise in
Je nach der gewünschten Konfiguration kann es sich bei dem Prozessor (
Je nach gewünschter Konfiguration kann es sich bei dem Systemspeicher (
Das Computergerät (
Der Systemspeicher (
Das Computergerät (
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)
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)
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)
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 |
-
2015
- 2015-09-09 US US14/849,375 patent/US9632770B2/en active Active
-
2016
- 2016-04-21 CN CN201680022578.4A patent/CN107615239B/en active Active
- 2016-04-21 DE DE112016002003.1T patent/DE112016002003T5/en active Pending
- 2016-04-21 GB GB1717420.2A patent/GB2555023A/en not_active Withdrawn
- 2016-04-21 WO PCT/US2016/028632 patent/WO2017011048A1/en active Application Filing
- 2016-04-21 DE DE202016008042.4U patent/DE202016008042U1/en active Active
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 |