-
HINTERGRUND DER ERFINDUNG
-
Ein System für On-Demand-Dienste kann veranlassen, dass ein Dienst durch einen Dienstleister einem Nutzer zur Verfügung gestellt wird. In einigen Beispielen können der Nutzer und der Dienstleister individuell eine Computervorrichtung betreiben, welche mit dem System für On-Demand-Dienste kommuniziert. Zum Beispiel betreiben der Nutzer und der Dienstleister jeweils eine bestimmte Anwendung, welche mit dem Dienstesystem auf der Vorrichtung des Nutzers bzw. der Vorrichtung des Dienstleisters kommuniziert.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
1 veranschaulicht ein beispielhaftes System zum Einstellen eines oder mehrerer Attribute für einen Echtzeitinformation nutzenden Netzwerkdienst.
-
2 veranschaulicht ein beispielhaftes Verfahren zum Einstellen eines oder mehrerer Attribute für einen Echtzeitinformation nutzenden Netzwerkdienst.
-
3 ist ein Blockdiagramm, welches ein Computersystem veranschaulicht, auf dem hier beschriebene Beispiele implementiert werden können.
-
4 ist ein Blockdiagramm, welches eine mobile Computervorrichtung veranschaulicht, auf der hier beschriebene Beispiele implementiert werden können.
-
DETAILLIERTE BESCHREIBUNG
-
Hier beschriebene Beispiele stellen ein System zur Verfügung, welches einen Nutzer (z. B. einen administrativen Nutzer) des Systems dazu befähigt, ein einem oder mehreren Attributen eines Netzwerkdienstes zugeordnetes Merkmal hinzuzufügen, zu löschen, zu editieren und/oder ab- oder anzuschalten. Das System kann ein einem Attribut zugeordnetes Merkmal auch provisorisch an- oder abschalten, wie z. B. das An- oder Abschalten eines Merkmals für eine Gruppe (oder einen Prozentsatz) von Nutzern und/oder Computervorrichtungen. Gemäß einem Beispiel kann ein System für On-Demand-Dienste (welches den Netzwerkdienst zumindest teilweise implementiert) mit einem Merkmalsanbietersystem kommunizieren, um eine Änderung zu bestimmen, welche bezüglich eines Attributs des Netzwerkdiensts implementiert werden soll. Das System für On-Demand-Dienste kann von Kundenvorrichtungen, Dienstleistervorrichtungen (z. B. Treibervorrichtungen) erhaltene Information und/oder aktuelle dem System für On-Demand-Dienste zugeordnete Konfigurationsinformation nutzen, um die Änderung des Attributs des Netzwerkdienstes zu implementieren.
-
Wie hier beschrieben, kann ein Attribut einer Eigenschaft des Netzwerkdienstes entsprechen, wie beispielsweise eine dem Netzwerkdienst zugeordnete bestimmte Kundenanwendung (z. B. auf einer Kundenvorrichtung betrieben, um mit dem System für On-Demand-Dienste zu kommunizieren), eine dem Netzwerkdienst zugeordnete bestimmte Dienstleister-Anwendung (z. B. auf einer Dienstleistervorrichtung betrieben, um mit dem System für On-Demand-Dienste zu kommunizieren), ein von dem System für On-Demand-Dienste genutzter Vergabeprozess, ein von dem System für On-Demand-Dienste genutzter Preisfestlegungsprozess, andere von dem System für On-Demand-Dienste genutzte Prozesse, welche mit der Bereitstellung von On-Demand-Diensten in Verbindung stehen. Ein Merkmal kann ein Aspekt eines Attributs sein, welches hinzugefügt, entfernt, angepasst etc. werden kann, wie eine Nutzerschnittstelle einer bestimmten Anwendung, Text oder Grafiken der bestimmten Anwendung, auswählbare Merkmale der bestimmten Anwendung, zur Implementierung des Vergabeprozesses oder Preisfestlegungsprozesses benutzte Komponenten, Regeln oder Richtlinien für andere von dem System für On-Demand-Dienste genutzte Prozesse etc. zur Implementierung des Netzwerkdienstes.
-
Das System für On-Demand-Dienste und das Merkmalsanbietersystem können je auf einem oder mehreren Computersystemen oder -vorrichtungen implementiert sein. Gemäß Beispielen können das System für On-Demand-Dienste und das Merkmalsanbietersystem auf verschiedenen Computersystemen oder auf demselben Computersystem implementiert sein. Bei einem Beispiel kann das System für On-Demand-Dienste mit einem Merkmalsanbietersystem periodisch und/oder als Antwort auf eine erhaltene Nutzereingabe (oder mit Hilfe eines Push- oder Pull-Protokolls über eine dauerhafte Verbindung) kommunizieren. Das System für On-Demand-Dienste kann überprüfen, ob Aktualisierungen (engl.: Updates) oder Änderungen, welche an dem einen oder mehreren Attributen vorgenommen werden sollen, vorliegen. Je nach Beispiel kann das System für On-Demand-Dienste auf eine Konfigurationsdatenbank zugreifen, um zu ermitteln, ob eine Änderung an einem Attribut vorgenommen werden soll (z. B. das An- oder Abschalten eines Nutzerschnittstellenmerkmals der bestimmten Anwendung für bestimmte Vorrichtungen), oder über ein Push- oder Pull-Protokoll Anweisungen bezüglich einer an einem Attribut vorzunehmenden Änderung erhalten. Falls das System für On-Demand-Dienste feststellt, dass eine Änderung vorgenommen werden soll, kann das System für On-Demand-Dienste die Änderungen an einer oder mehreren der Kundenvorrichtungen und/oder Dienstleistervorrichtungen, basierend auf von den Vorrichtungen erhaltenen Informationen und basierend auf Konfigurationsdaten von Konfigurationsdateien implementieren, wenn Kundenvorrichtungen und/oder Dienstleistervorrichtungen mit dem System für On-Demand-Dienste das nächste Mal kommunizieren.
-
In einigen Beispielen kann das System für On-Demand-Dienste eine Änderung eines internen Prozesses implementieren, welcher durch das System für On-Demand-Dienste genutzt und/oder durchgeführt wird, um On-Demand-Dienste zu organisieren. Wie hier beschrieben, kann das Vermitteln eines Dienstes darin bestehen, einen Dienstleister auszuwählen, um den Dienst für einen anfragenden Nutzer auszuführen. Bei einem Beispiel kann eine Konfigurationsdatei, welche einem bestimmten Merkmal oder einem Attribut entspricht, das System für On-Demand-Dienste anweisen, einen Vergabe-(oder Fahrerauswahl-)Mechanismus oder -Prozess in einer bestimmten geografischen Region einzustellen (z. B. erhöhen oder erniedrigen eines Vergaberadius zur Auswahl von Fahrern im Vergleich zu einem vorherigen Vergaberadius). Als ein anderes Beispiel kann eine Konfigurationsdatei genutzt werden, um den Testbetrieb für das System für On-Demand-Dienste durchzuführen (z. B. A/B-Tests). Die Konfigurationsdatei kann das System für On-Demand-Dienste anweisen, Fahrer anhand einer Distanz für Fahrer auszuwählen, welche sich in einer geografischen Region befinden, und Fahrer anhand einer geschätzten Ankunftszeit für Fahrer auszuwählen, welche sich in einer anderen geografischen Region befinden.
-
Kundenvorrichtung, Dienstleistervorrichtung, Fahrervorrichtung und/oder Computervorrichtung sollen hier Vorrichtungen bezeichnen, welche Desktop-Computern, Mobilfunkvorrichtungen oder Smartphones, Personal Digital Assistants (PDAs), Laptop-Computern, Tablet-Vorrichtungen, Fernsehern (IP-Fernsehern) etc. entsprechen, welche Netzwerk-Verbindungen und Verarbeitungsressourcen zur Kommunikation mit dem System über ein Netzwerk bereitstellen können. Eine Fahrervorrichtung kann auch anderen Vorrichtungen eines Verkehrsmittels entsprechen, beispielsweise speziell hergestellte Hardware oder Computer in einem Fahrzeug etc. Das Kundenvorrichtung und/oder das Fahrervorrichtung können jeweils auch eine Anwendung ausführen, welche dazu ausgelegt ist, mit dem System zu kommunizieren (z. B. eine bestimmte Anwendung).
-
Obwohl Beispiele des hier beschriebenen Netzwerkdienstes sich auf einen On-Demand-Transportdienst beziehen, kann das System für On-Demand-Dienste auch andere ortsbasierte On-Demand-Dienste ermöglichen, welche zwischen Personen vereinbart werden, die die hier beschriebenen Computervorrichtungen nutzen. Zum Beispiel kann das System für On-Demand-Dienste einen Lieferservice (z. B. Nahrungsmittellieferung, Botendienst oder Produktlieferung), einen Nahrungsmitteldienst (z. B. Nahrungsmitteltransporter), oder einen Unterhaltungsdienst (z. B. Mariachi-Band, Streichquartett) bereitstellen, und ein Dienstleister, beispielsweise ein Fahrer, Nahrungsmittellieferant, Band etc., kann von dem System für On-Demand-Dienste ausgewählt werden, um den Dienst einem Nutzer bereitzustellen.
-
Eine oder mehrere hier beschriebene Ausführungsformen sehen vor, dass durch eine Computervorrichtung durchgeführte Verfahren, Techniken und Handlungen programmatisch oder als computerimplementiertes Verfahren durchgeführt werden. Programmtechnisch, wie hier verwendet, bedeutet: durch Benutzung von Code oder computerausführbaren Instruktionen. Diese Instruktionen können in einem oder mehreren Speicher-Ressourcen der Computervorrichtung gespeichert sein. Ein programmatisch ausgeführter Schritt kann automatisch sein oder nicht.
-
Eine oder mehrere hier beschriebenen Ausführungsformen können mit Hilfe von programmatischen Modulen, Maschinen (engl.: engines) oder Komponenten implementiert sein. Ein(e) programmatische(s) Modul, Maschine oder Komponente kann eines der folgenden umfassen: ein Programm, eine Subroutine, einen Teil eines Programms, oder eine Software-Komponente oder eine Hardware-Komponente, welche, eine oder mehrere festgelegte Aufgaben oder Funktionen durchzuführen kann. Wie hier verwendet, kann ein Modul oder eine Komponente auf einer Hardware-Komponente unabhängig von anderen Modulen oder Komponenten existieren. Alternativ kann ein Modul oder eine Komponente ein gemeinsam genutzter Bestandteil oder Prozess anderer Module, Programme oder Maschinen sein.
-
Einige hier beschriebene Ausführungsformen können im Allgemeinen die Nutzung von Computervorrichtungen benötigen, welche Verarbeitungs- und Speicherressourcen umfassen. Zum Beispiel können eine oder mehrere hier beschriebene Ausführungsform ganz oder teilweise beispielsweise auf Computervorrichtungen implementiert sein, wie zum Beispiel: Server, Desktop-Computer, Mobil- oder Smartphones, persönliche digitale Assistenten (z. B. PDAs), Laptop-Computer, Drucker, digitale Bilderrahmen, Netzwerkausrüstung (z. B. Router) und Tablet-Vorrichtungen. Speicher-, Verarbeitungs- und Netzwerk-Ressourcen können alle in Verbindung mit dem Bereitstellen, Nutzen oder Ausführen jeglicher hier beschriebener Ausführungsformen genutzt werden (welches das Durchführen jegliches Verfahrens oder die Implementierung jeglichen Systems umfasst).
-
Ferner können eine oder mehrere hier beschriebene Ausführungsformen durch das Nutzen von Instruktionen implementiert werden, welche von einem oder mehreren Prozessoren ausführbar sind. Diese Instruktionen können auf einem computerlesbarem Medium gespeichert sein. Maschinen, welche im Zusammenhang mit Zeichnungen unten gezeigt oder beschrieben sind, stellen Beispiele von Verarbeitungsressourcen und computerlesbaren Medien dar, auf welchen Instruktionen für die Erfindung implementierende Ausführungsformen gespeichert und/oder ausgeführt werden können. Insbesondere umfassen die im Zusammenhang mit Ausführungsformen der Erfindung gezeigten zahlreichen Maschinen einen oder mehrere Prozessoren und verschiedene Formen von Speichern, um Daten und Instruktionen zu speichern. Beispiele von computerlesbaren Medien umfassen permanente Speichervorrichtungen sowie zum Beispiel Festplatten von Personal-Computern oder Servern. Andere Beispiele von Computerspeicher-Medien umfassen tragbare Speichereinheiten, wie zum Beispiel CD- oder DVD-Einheiten, Flash-Speicher (wie in Smartphones, Multifunktions-Vorrichtungen oder Tabletcomputern) und magnetische Speicher. Computer, Endvorrichtungen, netzwerkfähige Vorrichtungen (z. B. Mobilvorrichtungen, wie Mobiltelefone) sind Beispiele von Maschinen und Vorrichtungen, welche Prozessoren, Speicher und auf computerlesbaren Medien gespeicherte Instruktionen nutzen. Zusätzlich können Ausführungsformen in Form von Computerprogrammen oder in Form eines von einem Computer nutzbares Speichermedium implementiert sein, das ein solches Programm speichern kann.
-
SYSTEMBESCHREIBUNG
-
1 veranschaulicht ein beispielhaftes System, um dynamisch ein Attribut(e) für ein Netzwerksystem mit Hilfe von Echtzeit-Information einzustellen. Ein System für On-Demand-Dienste kann mit einem Merkmalsanbietersystem kommunizieren, welches dem System für On-Demand-Dienste mitteilt oder vorschreibt, welche Merkmale von Attributen an- oder ausgeschaltet werden sollen (oder vorübergehend an- oder ausgeschaltet werden sollen). Zum Beispiel kann das Merkmalsanbietersystem eine Nutzerschnittstelle bereitstellen, um einem Nutzer (z. B. einen administrativen Nutzer des Merkmalsanbietersystems und/oder des Systems für On-Demand-Dienste) zu ermöglichen, das System zu veranlassen, Merkmale für bestimmte Vorrichtungen oder für bestimmte durch das System für On-Demand-Dienste durchgeführte Prozesse basierend auf Echtzeit-Bedingungen an- oder abzuschalten, wie Tageszeit, Vorrichtungs- oder Anwendungsinformation, Ort der Vorrichtung, Information über den derzeitigen Vergabestatus etc. Auf diese Weise können das System für On-Demand-Dienste und das Merkmalsanbietersystem zusammenarbeiten, um Änderungen von Attributen des Systems für On-Demand-Dienste mit spezifischer Granularität dynamisch zu implementieren.
-
Gemäß einem Beispiel umfasst ein System 100 ein System für On-Demand-Dienste 110 (auch bezeichnet als das On-Demand-System 110) und ein Merkmalsanbietersystem 140. Das On-Demand-System 110 umfasst eine Merkmalsteuerungskomponente 120, eine Merkmalschnittstelle 130, eine Kunden-Schnittstelle 133, eine Fahrer-Schnittstelle 135, eine Nutzerschnittstellendatenbank 127 und eine Geschäftslogik 190, und das Merkmalsanbietersystem 140 umfasst eine Merkmalverwaltungskomponente 150 (welche eine Merkmalschnittstelle 160 bereitstellt), eine Dienstschnittstelle 155 und eine Konfigurationsdatenbank 165. Eine Mehrzahl von Kundenvorrichtungen 170 und eine Mehrzahl von Fahrervorrichtungen 180 können auch mit dem System 100 über ein oder mehrere Netzwerke kommunizieren. Die Komponenten des Systems 100 können gemeinsam ein Attribut für das On-Demand-System 110 basierend auf Echtzeitinformation (oder nahezu Echtzeitinformation) dynamisch einstellen, welche von den Kundenvorrichtungen 170 und/oder den Fahrervorrichtungen 180 und/oder als dem On-Demand-System 110 zugeordnete aktuelle Konfigurationsinformation erhalten wurde. Logik kann mit verschiedenen Anwendungen (z. B. Software) und/oder mit Hardware eines Computersystems implementiert werden, welches das System 100 implementiert.
-
Je nach Implementierung können eine oder mehrere Komponenten des Systems 100 auf netzwerkseitigen Ressourcen implementiert sein, wie einem oder mehreren Servern. Das System 100 kann auch durch andere Computersysteme in alternativen Architekturen implementiert sein (z. B. Peer-to-Peer-Netzwerke etc.). Zusätzlich oder alternativ können einige oder alle Komponenten des Systems 100 auf Kundenvorrichtungen implementiert sein, wie durch Anwendungen, welche auf den Kundenvorrichtungen 170 und/oder den Fahrervorrichtungen 180 betrieben werden. Zum Beispiel kann eine Kundenanwendung, wie eine bestimmte Dienstanwendung, ausgeführt werden, um eine oder mehrere der beschriebenen Prozesse durch die verschiedenen Komponenten des Systems 100 durchzuführen. Das System 100 kann via einer Netzwerk-Schnittstelle (z. B. drahtlos oder mittels einer Kabelverbindung) über ein Netzwerk kommunizieren, um mit der einen oder mehreren Kundenvorrichtungen 170 oder der einen oder mehreren Fahrervorrichtungen 180 zu kommunizieren.
-
Das System 100 kann über ein oder mehrere Netzwerke mit Kundenvorrichtungen 170 und Fahrervorrichtungen 180 mittels einer Kunden-Schnittstelle 133 bzw. einer Fahrerschnittstelle 135 kommunizieren. Die Vorrichtungsschnittstellen 133, 135 können Kommunikation zwischen dem System 100 und entfernten Computervorrichtungen verwalten. Die Kundenvorrichtungen 170 und Fahrervorrichtungen 180 können jeweils einzeln eine bestimmte Dienstanwendung betreiben, welche mit den Vorrichtungsschnittstellen 133, 135 in Verbindung treten kann, um mit dem System 100 zu kommunizieren. Gemäß einigen Beispielen können die Anwendungen eine Schnittstelle zur Anwendungsprogrammierung (engl.: application programming interface) (API), wie eine nach außen gerichtete API, umfassen oder nutzen, um Daten mit den Vorrichtungsschnittstellen 133, 135 auszutauschen. Die nach außen gerichtete API kann einen Zugang zu dem System 100 mittels sicherer Zugriffskanäle über das Netzwerk mittels einer Vielzahl von Verfahren bereitstellen, wie web-basierte Formulare, programmatischer Zugriff mittels REST-APIs (Anmerkung des Übersetzers: REST = Representational State Transfer), einem Simple Object Access Protocol (SOAP), ein Protokoll für verteilte Anwendungen (engl.: remote procedure call) (RPC), Skriptzugriff etc.
-
In einigen Beispielen kann die Merkmalsteuerungskomponente 120 des On-Demand-Systems 110 mittels der Merkmalschnittstelle 130 und der Dienstschnittstelle 155 mit dem Merkmalsanbietersystem 140 kommunizieren. Die Merkmalschnittstelle 130 und die Dienstschnittstelle 155 können das On-Demand-System 110 und das Merkmalsanbietersystem 140 dazu befähigen, miteinander zu kommunizieren und Daten auszutauschen. Zum Beispiel können die Merkmalschnittstelle 130 und die Dienstschnittstelle 150 ein Protokoll implementieren, wie ein Push-Protokoll oder Pull-Protokoll, welches der Merkmalsteuerungskomponente 120 ermöglicht, auf Updates dahingehend zu prüfen, welche Änderungen seit der letzten Kommunikation gemacht werden sollen. Zum Beispiel kann ein Push-Protokoll des Merkmal-Anbieter-Systems 140 ermöglichen, Informationen über Updates für das On-Demand-System 110 über eine dauerhafte Verbindung (z. B. Web-Sockets, SPDY, Übertragungssteuerungsprotokoll (engl.: transmission control protocol), etc.) per ”Push” zu senden. Die Merkmalsteuerungskomponente 120 kann die Schnittstellen 130, 155 nutzen, um mit dem Merkmalsanbietersystem 140 periodisch (z. B. alle 5 Sekunden, 7 Sekunden etc.) und/oder in Antwort auf das Erhalten einer Nutzereingabe zu kommunizieren, welche die Merkmalsteuerungskomponente 120 anweist, das Merkmalsanbietersystem 140 auf Daten abzufragen. Mittels Kommunikation mit dem Merkmalsanbietersystem 140 kann die Merkmalsteuerungskomponente 120 feststellen, ob es eine Änderung gibt, welche hinsichtlich eines Attributs des On-Demand-Systems 110 implementiert werden soll.
-
Gemäß einem Beispiel kann die Konfigurationsdatenbank 165 eine Mehrzahl von Konfigurationsdateien für eine Mehrzahl von Merkmalen, welche jeweils einem Attribut des On-Demand-Systems 110 entsprechen, speichern. Wie hier beschrieben, betrifft eine Konfigurationsdatei Konfigurationsdaten, welche in einer Datei, Speicher oder einer anderen Datenstruktur oder -speicher gespeichert sind. Die Konfigurationsdatenbank 165 kann durch die Merkmalverwaltungskomponente 150 basierend auf Nutzereingaben aktualisiert und gepflegt werden. In einigen Beispielen kann ein Nutzer (z. B. ein Administrator) des Systems 100 auf eine von der Merkmalschnittstelle 160 der Merkmalverwaltungskomponente 150 bereitgestellten Nutzerschnittstelle 161 zugreifen und mit dieser interagieren, um Merkmale von verschiedenen Attributen des On-Demand-Systems 110 zu erstellen, löschen, bearbeiten und/oder an- oder abzuschalten (durch Bereitstellen von Nutzereingaben 163). Zum Beispiel kann die Nutzerschnittstelle 161 eine Mehrzahl von Optionen bereitstellen, um es dem Nutzer zu ermöglichen, Merkmale zu erstellen, zu löschen, zu bearbeiten und/oder abzuschalten. Die Optionen können erweiterbar sein, so dass Optionen hinzugefügt oder entfernt werden können, um eine Konfigurationsdatei zu erstellen.
-
Für ein bestimmtes Merkmal eines Attributs kann der Nutzer z. B. eine Konfigurationsdatei erstellen durch Bereitstellen von Konfigurationsdaten 167 via Nutzereingaben 163, umfassend (i) Bereitstellen eines Namens oder Identifikation, (ii) Spezifizieren eines Merkmalstyps, (iii) Bereitstellen eines Werts für das Merkmal, wie zum Beispiel einen Preis, Wert oder Schwellwert bezüglich des Merkmals (z. B. eine Distanz für einen Versendungs-Radius, eine Gesamtanzahl von Vorrichtungen, um ein bestimmtes Nutzerschnittstellenmerkmal zu erhalten etc.), (iv) Spezifizieren einer geografischen Region für das Merkmal (z. B. durch Zugreifen oder Verweisen auf eine Geofence-Datenbank, welche eine Mehrzahl von geographischen Begrenzungen (engl.: Geofences speichert), welche jeweils eine geografische Region definieren), (v) Angeben einer Zeit oder Zeitdauer (z. B. wenn das Merkmal an- oder abgeschaltet werden soll oder wie lange das Merkmal an- oder abgeschaltet werden soll, im Fall eines Zeitplans), (vi) Angeben einer Vorrichtung oder Vorrichtungstyps (z. B. nach Hersteller oder Betriebssystems der Vorrichtung), (vii) Angeben einer Anwendungsversion, (viii) Angeben eines Nutzers oder einer Gruppe von Nutzern, (ix) Angeben einer Prozentzahl von einem Merkmal exponierter Nutzer (z. B. 20% der Nutzer sehen das Merkmal A, wohingegen 80% der Nutzer Merkmale B auf der Nutzerschnittstelle der bestimmten Kundenanwendung sehen) und/oder (x) Bereitstellen anderer Informationen für die Konfigurationsdatei.
-
Die Merkmalschnittstelle 160 kann die Nutzereingaben 163 erhalten, und die Merkmalverwaltungskomponente 150 kann basierend auf den Nutzereingaben 163 die Konfigurationsdatei mit entsprechenden Konfigurationsdaten 167 erstellen und speichern. Die in einer Konfigurationsdatei gespeicherten Konfigurationsdaten 167 können die Merkmalsteuerungskomponente 120 dazu anweisen, ein entsprechendes Merkmal nur an jene Vorrichtungen 170, 180 und/oder an jenen Komponenten des On-Demand-Systems 110 zu implementieren, welche die von der Konfigurationsdatei spezifizierten Bedingungen erfüllen, wenn die Konfigurationsdatei angeschaltet ist. Bei einem Beispiel kann eine Konfigurationsdatei für eine Gruppe von Kundenvorrichtungen oder Fahrervorrichtungen zu einer bestimmten Tageszeit (z. B. um acht Uhr vormittags) oder manuell durch den administrativen Nutzer an- oder abgeschaltet werden.
-
Zusätzlich kann die Merkmalverwaltungskomponente 150 dem administrativen Nutzer ermöglichen, über die Nutzereingaben die Merkmale 163 an- oder abzuschalten. Zum Beispiel kann jede der Konfigurationsdateien in der Konfigurationsdatenbank 165 einen Wert (z. B. einen aktiven Wert) umfassen, welcher angibt, ob das entsprechende Merkmal an- oder abgeschaltet ist (z. B., ist das Merkmal aktiv?). Ein ”wahr”- oder ”ja”-Wert gibt an, dass das Merkmal aktiv ist oder an ist, wohingegen ein ”falsch”- oder ”nein”-Wert angibt, dass das Merkmal inaktiv oder aus ist. Der administrative Nutzer kann zeitlich terminieren, warm ein bestimmtes Merkmal automatisch an- oder abgeschaltet werden soll, oder manuell den aktiven Wert einstellen, um ein bestimmtes Merkmal an- oder abzuschalten.
-
Gemäß einigen Beispielen kann die Merkmalsteuerungskomponente 120 periodisch mit dem Merkmalsanbietersystem 140 kommunizieren, um festzustellen, welche Merkmale an- oder abgeschaltet sind. Je nach Implementierung kann die Merkmalverwaltungskomponente 150 für eine Aktualisierung an der Merkmalsteuerungskomponente 120 sorgen, welche angibt, ob und welche Änderungen seit der letzten Kommunikation gemacht wurden, wenn bei einem Beispiel die Merkmalsteuerungskomponente 120 den Merkmalanbieterdienst 140 anspricht. Die Merkmalverwaltungskomponente 150 kann einen Zeitstempel der letzten Kommunikation zwischen der Merkmalsteuerungskomponente 120 und der Merkmalverwaltungskomponenten 140 protokollieren und protokollieren, welche Merkmale damals an- oder abgeschaltet wurden, und einen Vergleich bei der darauffolgenden Kommunikation durchführen, um festzustellen, welche Merkmale Zustände geändert haben. Zum Beispiel kann im Vergleich zur letzten Kommunikation des On-Demand-Systems 110 mit dem Merkmalsanbietersystem 140 ein neues Merkmal 123 als Konfigurationsdatei hinzugefügt oder ein bestehendes Merkmal 121 an- oder abgeschaltet (oder gelöscht) worden sein. Die Merkmalsteuerungskomponente 120 kann von der Merkmalverwaltung 150 die Identifikation der Konfigurationsdateien erhalten, welche seit dem letzten Mal Zustände geändert haben, und auf die Konfigurationsdatenbank 165 zugreifen, um die Konfigurationsdaten 167 für diese Konfigurationsdateien zu ermitteln.
-
Zusätzlich oder alternativ kann die Merkmalsteuerungskomponente 120 auf die Konfigurationsdatenbank 165 zugreifen, um festzustellen, welche Merkmale an- oder abgeschaltet wurden. Zum Beispiel kann die Merkmalsteuerungskomponente 120 eine eigene Konfigurationsdatenbank 125 unterhalten, welche den derzeitigen Zustand der Attribute des On-Demand-Systems 110 angibt (z. B. welche Merkmale an oder aus sind). Die Konfigurationsdatenbank 125 kann angeben, welche Konfigurationsdateien derzeit aktiv sind (z. B. Merkmale haben, welche angeschaltet sind) und/oder welche Konfigurationsdateien derzeit inaktiv sind. Wenn die Merkmalsteuerungskomponente 120 mit dem Merkmalsanbietersystem 140 kommuniziert, kann die Merkmalsteuerungskomponente 120 die aktiven Werte der Konfigurationsdateien von der Konfigurationsdatenbank 165 lesen, um festzustellen, welche Merkmale derzeit angeschaltet oder abgeschaltet sind. Die Merkmalsteuerungskomponente 120 kann einen Vergleich mit Konfigurationsinformation von der Konfigurationsdatenbank 125 und der Konfigurationsinformation durchführen, welche von der Konfigurationsdatenbank 165 ausgelesen wurde, um festzustellen, ob und welche Änderungen seit dem letzten Zugriff der Merkmalsteuerungskomponente 120 auf die Konfigurationsdatenbank 165 vorgenommen worden sind.
-
Zum Beispiel stellt die Merkmalsteuerungskomponente 120 fest, dass eine Änderung implementiert werden soll, falls zum Zeitpunkt der Kommunikation der Merkmalsteuerungskomponente 120 mit dem Merkmalsanbietersystem 140 ein zuvor abgeschaltetes Merkmal (oder nicht existierendes Merkmal) nun angeschaltet (oder erstellt und angeschaltet) ist. In ähnlicher Weise, falls zum Zeitpunkt der Kommunikation der Merkmalsteuerungskomponente 120 mit dem Merkmalsanbietersystem 140 ein zuvor angeschaltetes Merkmal nun ausgeschaltet ist (oder gelöscht), stellt die Merkmalsteuerungskomponente 120 auch fest, dass eine Änderung implementiert werden soll. Die Merkmalsteuerungskomponente 120 kann aus dem Vergleich die Identität der Konfigurationsdateien feststellen, deren Zustand sich geändert hat, und auf die Konfigurationsdatenbank 165 zugreifen, um die Konfigurationsdaten 167 für diese Konfigurationsdateien zu ermitteln. Je nach Implementierung kann die Merkmalsteuerungskomponente 120 durch Feststellen, dass eine Änderung an einem Attribut des On-Demand-Systems 100 implementiert werden soll, die Konfigurationsdatei identifizieren und die entsprechenden Konfigurationsdaten 167 und Echtzeit-Information nutzen, um den Implementierungsprozess durchzuführen.
-
Das On-Demand-System 110 kann den Kundenvorrichtungen 170 zugeordnete Echtzeit-Kundeninformationen 171 und den Fahrervorrichtungen 180 zugeordnete Echtzeit-Fahrerinformationen 181 erhalten. Wenn eine bestimmte Kundenanwendung und/oder eine bestimmte Fahreranwendung auf einer Kundenvorrichtung 170 bzw. einer Fahrervorrichtung 180 ausgeführt wird, kann die Merkmalsteuerungskomponente 120 Kundeninformation 171 und/oder Fahrerinformation 181 von der jeweiligen bestimmten Anwendung periodisch und/oder in Antwort auf das Erhalten von Nutzereingaben auf diesen Vorrichtungen 170, 180 erhalten. Gemäß Beispielen umfasst die von den Vorrichtungen 170, 180 erhaltene Information 171, 181 wenigstens eines von (i) ein derzeitiger Ort der jeweiligen Computervorrichtung, (ii) ein Vorrichtungstyp der jeweiligen Computervorrichtung, (iii) eine der jeweiligen Computervorrichtung zugeordnete Nutzeridentifikation, oder (iv) eine Versionsinformation für die bestimmte Anwendung, welche auf der jeweiligen Computervorrichtung betrieben wird, oder andere mit der bestimmten Anwendung oder der jeweiligen Computervorrichtung zugeordnete Information.
-
Wenn die Merkmalsteuerungskomponente 120 feststellt, dass eine Änderung an einem Merkmal vorgenommen werden soll, kann die Merkmalsteuerungskomponente 120 (i) die entsprechenden Konfigurationsdaten 167, (ii) die Kundeninformation 171 und/oder Fahrerinformation 181 und (iii) andere bekannte Information (wie aktuelle Zeit oder Datum) nutzen, um die Änderung der bestimmten Anwendung auf den entsprechenden Vorrichtungen automatisch zu implementieren. Zum Beispiel können die bestimmten Anwendungen mit dem On-Demand-System 110 mittels eines Protokolls kommunizieren, in welchem Kundeninformation 171 und/oder Vorrichtungsinformation 181 an das On-Demand-System 110 übertragen wird (z. B. ein ping) und das On-Demand-System 110 eine Antwort bereitstellt. Bei einigen beschriebenen Beispielen kann das On-Demand-System 110 eine Antwort bereitstellen, welche einem Kundenanwendung-Steuerungssignal 173 oder einem Fahreranwendung-Steuerungssignal 183 entspricht, welches die jeweiligen bestimmten Dienstanwendungen veranlasst, eine entsprechende Änderung zu implementieren.
-
In einigen Beispielen kann die Merkmalsteuerungskomponente 120 auch auf eine Nutzerschnittstellendatenbank 127 zugreifen, welche verschiedene Nutzerschnittstellenmerkmale, auswählbare Merkmale, Texte, Grafiken etc. für die bestimmte Kundenanwendung und die bestimmte Fahreranwendung speichert. Eine Konfigurationsdatei kann einem Nutzerschnittstellenmerkmal entsprechen, welches an- oder abgeschaltet werden soll (z. B. einer Nutzerschnittstelle einer bestimmten Anwendung auf dem Kundenvorrichtung 170 oder dem Fahrervorrichtung 180 hinzugefügt oder von dort entfernt). Bei einem solchen Beispiel kann die Merkmalsteuerungskomponente 120 die Konfigurationsdaten 167 dieser Konfigurationsdatei nutzen, um Zugriff auf die Nutzerschnittstellendatenbank 127 und Identifikation der geeigneten Nutzerschnittstellendaten 129 zu ermitteln, welches Nutzerschnittstellenmerkmal hinzugefügt oder entfernt wird. Obwohl die Nutzerschnittstellendatenbank 127 als Teil des Systems für On-Demand-Dienste 110 dargestellt ist, kann die Nutzerschnittstellendatenbank 127 je nach Implementierung Teil des Merkmalsanbietersystems 140 oder des Vergabesystems (nicht in 1 gezeigt) sein und kann durch von einem Nutzer des Systems 100 bereitgestellten Eingaben aktualisiert werden.
-
Gemäß einem anderen Beispiel kann die Merkmalsteuerungskomponente 120 ermitteln, ob eine Änderung an einem durch das System für On-Demand-Dienste benutzt oder durchgeführten Prozess implementiert werden soll (im Gegensatz zu einem Merkmal auf den bestimmten Dienstanwendungen). Zum Beispiel kann eine Konfigurationsdatei, welche angeschaltet wurde, einem Merkmal entsprechen, in welchem das Vergabesystem des On-Demand-Systems 110 für eine bestimmte Stadt oder Ballungsgebiet für eine Fahrerauswahl einen zusätzlichen Faktor nutzt, im Vergleich zu einem vorherigen (oder standardmäßigen) Fahrerauswahl-Mechanismus, in welchem weniger Faktoren genutzt werden. Bei einem solchen Beispiel kann die Merkmalsteuerungskomponente 120 die dieser Konfiguration entsprechenden Konfigurationsdaten 167 bestimmen, derzeitige Vergabesystems-Konfigurationsinformation bestimmen (z. B. von dem Vergabesystem erhalten) und die Änderung an dem Vergabesystem automatisch unter Verwendung der Konfigurationsdaten 167 und der derzeitigen Vergabesystems-Konfigurationsinformation implementieren. Die Merkmalsteuerungskomponente 120 kann ein Steuersignal bereitstellen, welches der Änderung an dem Vergabesystem entspricht.
-
Obwohl das Vergabesystem in 1 nicht dargestellt ist, kann das On-Demand-System 110 das Vergabesystem umfassen und/oder in Kommunikation mit dem Vergabesystem sein. Das Vergabesystem kann Anfragen für Transportdienste von Nutzern erhalten, Fahrer für die Nutzer auswählen, um die Transportdienste durchzuführen, Preise für die Transportdienste bereitstellen und Zahlungstransaktionen für die Transportdienste durchführen.
-
Als ein Beispiel kann eine Konfigurationsdatei die Merkmalsteuerungskomponente 120 anweisen, eine Maximalzeitdauer, während der ein Fahrer eine Transportanfrage zu akzeptieren hat, nur für die Fahrer, die sich derzeit in einer bestimmten geografischen Region (z. B. in San Francisco, Kalifornien) aufhalten, von einer Standard-Zeitdauer (z. B. 10 Sek.) auf eine neue Zeitdauer (z. B. 20 Sek.) zu erhöhen. Anfangs kann die Konfigurationsdatei z. B. ausgeschaltet sein. Wenn der Nutzer (über die Merkmalschnittstelle 160) die Konfigurationsdatei anschaltet, kann die Merkmalsteuerungskomponente 120, wenn die Merkmalsteuerungskomponente 120 das nächste Mal an den Merkmalanbieterdienst 140 ein ging sendet (und/oder auf die Konfigurationsdatenbank 165 zugreift) feststellen, dass das Merkmal angeschaltet wurde und dass eine Änderung an diesem Merkmal implementiert werden soll.
-
Die Merkmalsteuerungskomponente 120 kann Fahrerinformation 181 von den Fahrervorrichtungen 180 erhalten und jene Fahrer identifizieren, welche sich in der durch die Konfigurationsdatei bestimmten geografischen Region befinden. Die Merkmalsteuerungskomponente 120 kann dann die Änderung an dem Merkmal an jenen Fahrervorrichtungen 180 implementieren, welche in der spezifizierten geografischen Region sind, indem ein Fahreranwendung-Steuerungssignals 183, welches der Änderung an den bestimmten Fahreranwendungen auf den Fahrervorrichtungen 180 entspricht, übertragen wird. Zusätzlich kann die Merkmalsteuerungskomponente 120 auch die Änderung an dem Merkmal des Vergabesystems implementieren, so dass das Vergabesystem über die erhöhte Akzeptanz-Zeit informiert ist. Auf diese Weise kann das Merkmal der erhöhten Akzeptanz-Zeit für Fahrer in San Francisco, Kalifornien (z. B. spezifiziert durch den San Francisco Geofence) auf deren jeweiligen Fahrervorrichtungen 180 implementiert werden, wohingegen das Merkmal der erhöhten Akzeptanz-Zeit für Fahrer, welche sich woanders befinden, nicht auf deren jeweiligen Fahrervorrichtungen 180 implementiert wird.
-
Zusätzlich oder alternativ kann das On-Demand-System 110 bei einigen Beispielen auf einem Server oder Computervorrichtung implementiert sein (oder einer Gruppe von Servern), wohingegen das Merkmalsanbietersystem 140 auf einem anderen Server oder Computervorrichtung (einer anderen Gruppe von Servern) implementiert sein kann. Obwohl zwei separate Systeme 110, 140 in 1 gezeigt sind, kann bei anderen Beispielen das Merkmalsanbietersystem 140 in dem On-Demand-System 110 als Einzelsystem und/oder in einem einzelnen Server oder Computervorrichtung enthalten sein. Ferner können bei einem anderen Beispiel mehrere On-Demand-Systeme 110 und/oder mehrere Merkmalsanbietersysteme 140 genutzt werden, um System 100 zu implementieren.
-
Zum Beispiel können mehrere Systeme mit dem Merkmalsanbietersystem 140 über die Dienstschnittstelle 155 und der Merkmalschnittstelle 130 des jeweiligen Systems kommunizieren, um Änderungen an Attributen des Netzwerkdienstes festzustellen und/oder zu implementieren. Bei einem anderen Beispiel kann die Geschäftslogik 190 des On-Demand-Systems 110 die Merkmalsteuerungskomponente 120 anweisen, ein oder mehrere andere Systeme des Netzwerkdienstes zu steuern. Die Geschäftslogik 190 kann mittels einer oder mehrerer Regeln oder Parameter konfiguriert sein, um die Merkmalsteuerungskomponente 120 anzuweisen, die geeignete Änderung an einem Merkmal eines anderen Systems des Netzwerkdienstes zu implementieren.
-
Gemäß einiger Beispiele kann das On-Demand-Systems 110 eine Mehrzahl von Systemen und Plattformen darstellen. Zum Beispiel kann das On-Demand-Systems auf jeglichem Betriebssystem ausgeführt werden (z. B. Windows, Linux etc.) und jeglicher Sprachplattform (z. B. Java, Node, Python etc.). Bei einer Implementierung kann die Merkmalsteuerungskomponente 120 grammatikalische Sprache nutzen, um die Konfiguration der Konfigurationsdatenbank zu beschreiben, damit die Merkmalsteuerungskomponente 120 über eine Mehrzahl von Systemen und Plattformen konsistent arbeitet.
-
METHODIK
-
2 veranschaulicht ein beispielhaftes Verfahren zum Einstellen eines oder mehrerer Attribute für einen Netzwerkdienst mit Hilfe von Echtzeit-Information. Ein Verfahren, wie anhand eines Beispiels von 2 beschrieben, kann z. B. mit Hilfe von Komponenten implementiert werden, welche in Zusammenhang mit einer Ausführungsform von 1 beschrieben wurden. Dementsprechend dienen Verweise auf Elemente von 1 zur Veranschaulichung eines geeigneten Elements oder Komponente zur Durchführung eines beschriebenen Schrittes oder Unterschrittes.
-
Bezugnehmend auf 2 kann ein On-Demand-System 110 mit einem Merkmalsanbietersystem 140 kommunizieren (210). Je nach Implementierung kann das On-Demand-System 100 mit dem Merkmalsanbietersystem 140 periodisch, in Antwort auf Nutzereingaben (erhalten durch das On-Demand-System 110 oder das Merkmalsanbietersystem 140) und/oder als Teil eines zeitlich terminierten Push- oder Pull-Protokolls über eine dauerhafte Verbindung kommunizieren. Das Merkmalsanbietersystem 140 kann eine Konfigurationsdatenbank 165 umfassen, welche eine Mehrzahl von Konfigurationsdateien für eine Mehrzahl von mit dem Netzwerkdienst verknüpften Merkmalen speichert. Die Konfigurationsdateien können basierend auf einer Nutzereingabe oder basierend auf einer bestimmten Planung an- oder abgeschaltet werden, so dass die entsprechenden Merkmale von Attributen als zu ändernd angegeben werden können.
-
Das On-Demand-System 110 kann mit dem Merkmalsanbietersystem 140 kommunizieren, um festzustellen, ob eine Änderung existiert, welche an einem Attribut des Netzwerkdienstes implementiert werden soll (220). Zum Beispiel kann die Merkmalsteuerungskomponente 120 zum Zeitpunkt t = t1 feststellen, welche Merkmale im Vergleich zu einem früheren Zeitpunkt t = t0 an- oder abgeschaltet wurden (z. B. dem vorherigen Zeitpunkt einer Kommunikation des On-Demand-Systems 110 mit dem Merkmalsanbietersystem 140). Falls keine Änderung an einem Attribut vorgenommen werden soll, implementiert die Merkmalsteuerungskomponente 120 keine Änderung. Die Merkmalsteuerungskomponente 120 kann mit dem Merkmalsanbietersystem 140 zum nächstfolgenden Zeitpunkt kommunizieren. Andererseits kann, falls die Merkmalsteuerungskomponente 120 feststellt, dass eine oder mehrere Änderungen an einem Attribut implementiert werden sollen, die Merkmalsteuerungskomponente 120 die eine oder mehreren Konfigurationsdateien identifizieren, welche an- oder abgeschaltet (oder erstellt oder gelöscht) wurden und welche die eine oder mehreren an dem Attribut vorzunehmenden Änderungen vorgehen.
-
Zum Beispiel kann eine Konfigurationsdatei die Merkmalsteuerungskomponente 120 anweisen, für die bestimmten Kundenanwendungen auf Kundenvorrichtungen 170 in einer bestimmten geografischen Region (z. B. Los Angeles, Kalifornien) eine Fahrzeugauswahl-Schnittstelle zu nutzen, welche vier Fahrzeugtypen-Optionen hat (im Gegensatz zu drei Optionen). Zuvor, zum Zeitpunkt t = t0, kann die Konfigurationsdatei ausgeschaltet gewesen sein. Nachdem die Konfigurationsdatei zum Zeitpunkt t = t1 angeschaltet wurde, kann die Merkmalsteuerungskomponente 120, wenn die Merkmalsteuerungskomponente 120 mit dem Merkmalsanbietersystem 140 kommuniziert, feststellen, dass eine Änderung an einer bestimmten Kundenanwendung implementiert werden soll. Die Merkmalsteuerungskomponente 120 kann die Konfigurationsdatei aus der Konfigurationsdatenbank 165 identifizieren und die entsprechenden Konfigurationsdaten 167 ermitteln.
-
Das On-Demand-System 110 kann Informationen von den Kundenvorrichtungen 170 und/oder den Fahrervorrichtungen 180 erhalten (230). Zum Beispiel können die Kundenvorrichtungen 170 und/oder die Fahrervorrichtungen 180 einzeln eine bestimmte Dienstanwendung ausführen, welche mit dem On-Demand-System 110 kommuniziert. Je nach Implementierung kann das On-Demand-System 110 anfangs Informationen erhalten, wenn ein jeweiliger Nutzer oder Fahrer die jeweilige bestimmte Dienstanwendung startet oder öffnet und/oder periodisch danach. Die Vorrichtungen 170, 180 können Information senden, einschließlich (i) eines derzeitigen Orts einer entsprechenden Computervorrichtung (232), (ii) eines Vorrichtungstyps der entsprechenden Computervorrichtung (234), (iii) einer der entsprechenden Computervorrichtung zugeordnete Nutzeridentifikation, wie eine Nutzeridentifikation des Kunden oder Käufers oder die Nutzeridentifikation des Fahrers (236) und/oder (iv) eine Versionsinformation für die bestimmte Anwendung, welche auf der entsprechenden Computervorrichtung ausgeführt wird (238).
-
Die Merkmalsteuerungskomponente 120 kann die Änderung an einem oder mehreren der Kundenvorrichtungen 170 und/oder der Fahrervorrichtungen 180 und/oder an verschiedenen anderen Aspekten des Systems für On-Demand-Dienste basierend auf der erhaltenen Information und der Konfigurationsdaten 167, welche der Änderung an dem Attribut entspricht, implementieren (240). Bezugnehmend zurück auf die Beispiele können die Konfigurationsdaten 167 der Konfigurationsdatei die Merkmalsteuerungskomponente 120 anweisen, eine Fahrzeugauswahl-Schnittstelle zu nutzen, welche vier Auswahlmöglichkeiten (im Gegensatz zu drei Auswahlmöglichkeiten) für die bestimmten Kundenanwendungen auf Kundenvorrichtungen 170 hat, welche sich in einer bestimmten geografischen Region aufhalten. Die Merkmalsteuerungskomponente 120 kann die erhaltene Anwendung und/oder Anwendungs-Versionsinformation nutzen, um festzustellen, welche Vorrichtungen die Kundenanwendung ausführen und auch feststellen, welche Vorrichtungen sich derzeit in der geografischen Region befinden. Die Merkmalsteuerungskomponente 120 kann dann die Änderung an nur jenen Vorrichtungen implementieren, welche die in der Konfigurationsdatei festgelegten Bedingungen erfüllen. Bei einem Beispiel kann die Merkmalsteuerungskomponente 120 auf eine Nutzerschnittstellendatenbank 127 zugreifen, um die Nutzerschnittstellendaten 129 jener Fahrzeugauswahl-Schnittstellte festzustellen, welche vier Auswahlmöglichkeiten (im Gegensatz zu drei Auswahlmöglichkeiten) hat, so dass die Nutzerschnittstellendaten 129 zu den identifizierten Vorrichtungen als Teil der oder parallel zur Kundenanwendung-Steuerung 173 übermittelt werden können. Die Kundenanwendung-Steuerung 173 kann die bestimmten Kundenanwendungen veranlassen, die entsprechende Änderung zu implementieren.
-
Je nach Implementierung können eine Vielzahl von verschiedenen Änderungen an Attributen des On-Demand-Systems 110 implementiert werden. Bei einem Beispiel kann ein bestimmtes Anwendungs-Nutzerschnittstellenmerkmal auf der Kundenanwendung und/oder Fahreranwendung an- oder abgeschaltet (z. B. hinzugefügt, entfernt, ausgetauscht) werden (242). Dies kann umfassen das Ändern von auswählbaren Merkmalen, Bereitstellen von unterschiedlichem Text, Ändern von Grafiken (z. B. anstatt eines Bildes von einem sich auf einer Karte bewegenden Automobils wie auf einer Standard-Ansicht eines Fahrzeugtyps, ein Bild einer Katze oder eines Fußballs anzuzeigen), Ändern von Farben oder Konfigurationen der Anwendung etc. In einigen Beispielen können bestimmte Anwendungen auch dadurch geändert werden, dass eine Anwendungsaktualisierung für Anwendungen bestimmter Versionen per Push gesendet wird (244), z. B. falls eine Gruppe von Fahrern die Anwendungsversion 2.5 nutzt, aber die Version 2.3 (z. B. die ältere Version) besser mit weniger Problemen arbeitet, kann das Umschalten eines Merkmals zur Nutzung der älteren Version (während Version 2.5 geändert oder repariert wird), die Merkmalsteuerungskomponente 120 dazu veranlassen, festzustellen, welche Fahrer die Anwendung mit Version 2.5 betreiben. Die Merkmalsteuerungskomponente 120 kann dann automatisch die Änderung bei dieser Gruppe von Fahrern implementieren, um die Aktualisierung auf die Version 2.3 voranzutreiben.
-
Bei einem anderen Beispiel kann die Merkmalsteuerungskomponente 120 eine Änderung an einer Systemkomponente oder einem Prozess implementieren (246). Ein Merkmal kann einer Regel oder Vorschrift entsprechen, welche zur Vergabe von Fahrern, Festlegung von Preisen, Durchführung von Zahlungen etc. genutzt wird, und welche durch das Vergabesystem und/oder das On-Demand-System 110 durchgeführt wird. Solche Regeln oder Vorschriften können durch die Merkmalsteuerungskomponente 120 dynamisch eingestellt werden. Ferner umfassen andere Beispiele das An- oder Abschalten eines Dienstes, wodurch eine Änderung an Nutzerschnittstellenmerkmalen der bestimmten Dienst-Anwendungen, sowie an Komponenten oder Merkmalen des Vergabesystems und/oder des On-Demand-Systems 110 veranlasst wird (248). Zum Beispiel kann ein Dienst dem Aufteilen eines Fahrpreises zwischen mehreren Nutzern für einen Transportdienst entsprechen. Der Dienst zum Aufteilen eines Fahrpreises kann lediglich für jene Nutzer aktiviert werden, welche Administratoren des Systems sind (im Gegensatz zu anderen Kunden, welche nicht Administratoren sind) (z. B. zu Testzwecken vor Veröffentlichung). Ein entsprechendes Nutzerschnittstellenmerkmal (z. B. eine Menü-Option), um den Dienst zum Aufteilen eines Fahrpreises zu nutzen, kann für Kundenanwendungen angeschaltet werden, welche auf Vorrichtungen gespeichert sind, die lediglich Administratoren gehören. Zusätzlich kann die Merkmalsteuerungskomponente 120 die Ausführung des Dienstes zum Teilen eines Fahrpreises durch das On-Demand-System 110 lediglich für diese Administratoren ermöglichen.
-
Bei einem anderen Beispiel können als weiteres Nutzungsszenario Transportdienste je nach Land oder geografischer Region verschiedenen Regeln oder Vorschriften unterworfen sein. Die Konfigurationsdateien können veranlassen, dass verschiedene Regeln oder Vorschriften für verschiedene Nutzer implementiert werden, je nachdem, ob der Nutzer ein Kunde oder ein Fahrer ist und je nach derzeitigem Ort der Nutzer. Zum Beispiel können Kunden in einem bestimmten Staat oder Region ein Nutzerschnittstellenmerkmal haben, welches für ihre Kundenanwendungen angeschaltet ist, welche es einem Kunden ermöglichen, das On-Demand-System 110 zu benachrichtigen, falls der Fahrer anscheinend unter Einfluss [sic] von Alkohol/Drogen steht. Andere Kunden in anderen Regionen können dasselbe Nutzerschnittstellenmerkmal nicht angeschaltet haben.
-
ANWENDUNGSBEISPIELE
-
Zur Veranschaulichung werden im Folgenden Anwendungsbeispiele beschrieben. Bei einem Beispiel kann eine Einheit, welche den Netzwerkdienst bereitstellt, ein Sonderangebot oder einen Spezialdienst für Nutzer in einer geografischen Region anbieten. Dieses Sonderangebot oder Spezialdienst können für eine Zeitdauer oder permanent bis zur Abschaltung durch einen administrativen Nutzer der Einheit verfügbar sein. Zum Beispiel kann ein Transportdienstsystem typischerweise eine Gruppe von Fahrzeugtypen anbieten, welche ein Nutzer wählen kann, wenn er eine Transportanfrage für einen Transportdienst stellt. Ein administrativer Nutzer kann einen Spezialdienst erstellen, welcher von Nutzern in einer vorgegebenen geografischen Region während einer bestimmten Zeitdauer (z. B. während eines Monats, einer Woche oder bis zu einem bestimmten Datum und/oder Zeit etc.) angefragt werden kann. Der Spezialdienst kann einem bestimmten Fahrzeugtyp entsprechen, welcher in dieser geografischen Region zuvor nicht verfügbar war oder einem Lieferdienst für Nahrung (oder Katzen z. B. in Verbindung mit einer Partnerschaft mit einem Tierheim) an einen bestimmten Ort.
-
Wenn die Konfigurationsdatei für den Spezialdienst angeschaltet ist, z. B. bei dem Merkmalsanbietersystem 140, kann das On-Demand-System 110 feststellen, dass eine Änderung an einem Attribut (z. B. die Kundenanwendung und/oder das Vergabesystem) des Netzwerkdienstes implementiert werden soll. Das On-Demand-System 110 kann feststellen, welche Kundenanwendungen auf welchem Kundenvorrichtung 170 geändert werden sollen, so dass das dem Spezialdienst entsprechende Nutzerschnittstellenmerkmal durch diese Kundenanwendungen z. B. mit einbezogen und/oder angezeigt werden sollen. Das On-Demand-System 100 kann Kundeninformation 171 von den Kundenvorrichtungen 170 erhalten, ermitteln (basierend auf dem Geofence, welcher in der Konfigurationsdatei der geografischen Region zugeordnet ist), welche dieser Kundenvorrichtungen 170 sich in dem Geofence dieser geografischen Region befinden, und die Kundenanwendungen auf diesen Kundenvorrichtungen 170 veranlassen, die Änderung an der Nutzerschnittstelle zu implementieren. Bei einem Beispiel kann die Änderung dem Anzeigen einer Option zur Auswahl des Spezialdienstes (z. B. ein neues auswählbares Merkmal) entsprechen, welche zuvor nicht auf der Nutzerschnittstelle der Kundenanwendung verfügbar war. Zusätzlich oder alternativ kann die Änderung dem Anzeigen von grafischen Bildern entsprechen, welche zu dem Spezialdienst gehören (z. B. Bilder von Katzen oder Speiseeiswaffeln etc.) anstatt von Standard-Bildern von Automobilen, welche Standard-Transportdiensten zugeordnet sind. Bei einem solchen Beispiel würden diese Bilder die Bilder von Automobilen ersetzen, welche anderenfalls auf einer Karte der Nutzerschnittstelle angezeigt werden würden, um die nahezu Echtzeit-Orte dieser Automobile zu zeigen. Auf diese Weise können die Kundenvorrichtungen 170 in der geografischen Region andere Transportdienstangebote anzeigen, im Vergleich zu Kundenvorrichtungen 170, welche sich nicht in dieser geografischen Region befinden, wodurch das Attribut für den Netzwerkdienst für bestimmte Nutzergruppen geändert wird.
-
Falls die Konfigurationsdatei eine Zeitdauer angibt (z. B. drei Tage), während der der Spezialdienst Kundenvorrichtungen in der geografischen Region zur Verfügung gestellt wird, kann die Merkmalsteuerungskomponente 120 am Ende der Zeitdauer wieder eine Änderung an dem Attribut implementieren, um das Attribut zurück auf den vorherigen Zustand zu schalten. Bei diesem Beispiel kann die Merkmalsteuerungskomponente 120 nach Ablauf des Spezialdienstes veranlassen, dass das neue auswählbare Merkmal für den Spezialdienst von der Nutzerschnittstelle der Kundenanwendung entfernt wird und das oder die Standard-Merkmal(e) präsent sind und/oder veranlassen, dass die grafischen Bilder, welche dem Spezialdienst entsprechen, von der Karte der Nutzerschnittstelle der Kundenanwendung entfernt werden sollen.
-
Bei einem anderen Beispiel kann eine Konfigurationsdatei, falls angeschaltet, die einer bestimmten Gruppe von Nutzern zugeordneten Kundenanwendungen veranlassen, Nutzerschnittstellenmerkmale anzuzeigen, die sich von Kundenanwendungen unterscheiden, welche einer anderen Gruppe von Nutzern zugeordnet sind. Die Gruppe von Nutzern kann durch Nutzeridentifikation, Anwendungsidentifikation, E-Mail-Domainnamen, Mobilvorrichtung-Identifikationsnummern etc. identifiziert werden. Die Gruppe von Nutzern kann auch dadurch identifiziert werden, dass die Konten der Nutzer als einer bestimmten Organisation zugehörig oder als Angestellter der den Netzwerkdienst anbietenden Einheit gekennzeichnet sind.
-
Bei einem anderen Anwendungsbeispiel kann das On-Demand-System 110 ferner ermitteln, dass eine Änderung an einem Fahrerauswahlprozess implementiert werden soll, welcher durch das On-Demand-System 110 (und/oder das Vergabesystem) durchgeführt wird. Das On-Demand-System 100 kann feststellen, welche Gruppe von Regeln (die die Weise der Durchführung eines Fahrerauswahlprozesses spezifizieren) in einer bestimmten geografischen Region und/oder hinsichtlich Fahrern und Nutzern in dieser Region angewendet werden soll. Zum Beispiel kann eine Konfigurationsdatei angeben, dass, wenn das Vergabesystem eine Anfrage für einen Transportdienst von einem Nutzer mit einer Kundenvorrichtung 170 in dieser Region erhält (oder eine Anfrage mit Abholort in dieser Region), das Vergabesystem verfügbarer Fahrer identifizieren soll, welche innerhalb einer vorbestimmten Distanz (z. B. drei Meilen) vom Ort der Kundenvorrichtung 170 (oder des angegebenen Abholorts) sind. Das Vergabesystem würde die Änderung nicht in anderen Regionen implementieren, so dass, wenn das Vergabesystem eine Anfrage für einen Transportdienst von einem Nutzer mit einer Kundenvorrichtung 170 in einer anderen geografischen Region erhält (oder eine Anfrage mit Abholort in einer anderen geografischen Region), das Vergabesystem weiterhin verfügbare Fahrer innerhalb der zuvor angegebenen Distanz (z. B. fünf Meilen vom Ort der Kundenvorrichtung 170, der des bestimmten Abholorts) identifizieren kann.
-
Bei einem anderen Beispiel kann eine Konfigurationsdatei angeben, dass das Vergabesystem einen Fahrer aus einer Gruppe von für den Transportdienst verfügbaren Fahrern für einen Nutzer auswählt, indem der Fahrer bestimmt wird, welcher dem Abholort des Nutzers am nächsten ist (z. B. mit der kürzesten Distanz im Vergleich zu anderen verfügbaren Fahrern). Alternativ kann eine Konfigurationsdatei angeben, dass das Vergabesystem einen Fahrer aus einer Gruppe von für den Transportdienst verfügbaren Fahrern für einen Nutzer auswählt, indem der Fahrer bestimmt wird, welcher die kürzeste geschätzte Fahrzeit zu dem Abholort des Nutzers hat, wenn der Fahrerauswahlprozess für den Nutzer durchgeführt wird.
-
HARDWARE-DIAGRAMME
-
3 ist ein Blockdiagramm, welches ein Computersystem veranschaulicht, auf dem hier beschriebene Beispiele implementiert werden können. Im Kontext der 1 kann das System 100 zum Beispiel mit einem oder mehreren Computersystemen, wie in 3 beschrieben, implementiert werden. Das System 100 kann auch einer Kombination von mehreren Computersystemen, wie in 3 beschrieben, implementiert werden.
-
Bei einer Implementierung umfasst ein Computersystem 300 Verarbeitungsressourcen 310, einen Hauptspeicher 320, einen Lese-Speicher (ROM) 330, eine Speichervorrichtung 340 und eine Kommunikationsschnittstelle 350. Das Computersystem 300 umfasst wenigsten einen Prozessor 310 zur Verarbeitung von Informationen und den Hauptspeicher 320, wie ein Random Access Memory (RAM) oder eine andere dynamische Speichervorrichtung, zum Speichern von Information und durch den Prozessor 310 auszuführenden Instruktionen. Der Hautspeicher 320 kann auch genutzt werden, um temporäre Variablen oder andere Zwischeninformation während der Verarbeitung von Instruktionen durch den Prozessor 310 zu speichern. Das Computersystem 300 kann auch den ROM 330 oder eine andere statische Speichervorrichtung zur Speicherung statischer Informationen und Instruktionen für den Prozessor 310 umfassen. Das Speichervorrichtung 340, z. B. eine Solid-State-Vorrichtung, eine magnetische Disk oder eine optische Disk, dient der Speicherung von Information und Instruktionen. Zum Beispiel kann die Speichervorrichtung 340 einem computerlesbaren Medium entsprechen, welches Merkmalverwaltungs- und Merkmalsteuerungsinstruktionen zur Durchführung von bezüglich 1 bis 2 diskutierten Vorgängen speichert. Bei einem anderen Beispiel kann die Speichervorrichtung 340 Konfigurationsdaten und Nutzerschnittstellendaten speichern, wie bezüglich 1 bis 2 diskutiert.
-
Die Kommunikationsschnittstelle 350 kann dem Computersystem 300 ermöglichen, mit einem oder mehreren Netzwerken 380 (z. B. ein mobiles Telefonnetzwerk) mittels der Netzwerkverbindung (drahtlos und/oder kabelgebunden) zu kommunizieren. Mittels der Netzwerkverbindung kann das Computersystem 300 mit einer Mehrzahl von Vorrichtungen kommunizieren, wie beispielsweise den mobilen Computervorrichtungen der Kunden und Dienstanbietern. Gemäß einigen Beispielen kann das Computersystem 300 eine Änderung ermitteln, welche an einem Attribut des Systems für On-Demand-Dienste implementiert werden soll. Das Computersystem 300 kann mittels der Netzwerkverbindung auch Kunden- und/oder Fahrerinformation 352 von den Kunden- und Fahrervorrichtungen erhalten. Der Prozessor 310 kann die von den Vorrichtungen erhaltene Kunden- und/oder Fahrerinformation 352 (sowie andere Information) nutzen, um ermitteln, an welchen Vorrichtungen die Änderung implementiert werden soll. Der Prozessor 310 kann mittels der Kommunikationsschnittstelle 350 über das Netzwerk 380 Anwendungs-Steuerungen 354 an die jeweiligen Vorrichtungen übermitteln, welche als die Änderung benötigend identifiziert wurden. Die Anwendungs-Steuerungen 354 können z. B. Änderungen veranlassen, welche an einer bestimmten Dienstanwendung auf einem Kundenvorrichtung und/oder einem Fahrervorrichtung implementiert werden.
-
Das Computersystem 300 kann auch ein Anzeigevorrichtung 360, wie einen Röhrenmonitor (CRT), einen LCD-Monitor oder eine Fernsehvorrichtung, zum Anzeigen von Grafiken und Information für einen Nutzer umfassen. Ein Eingabemechanismus 370, wie eine Tastatur mit alphanumerischen Tasten und anderen Tasten, kann an das Computersystem 300 angeschlossen werden, um Information und die Auswahl von Instruktionen an den Prozessor 310 zu übermitteln. Andere, nicht einschränkende, veranschaulichende Beispiele von Eingabemechanismen 370 umfassen eine Maus, einen Trackball, einen berührungsempfindlichen Monitor oder Pfeiltasten zum Kommunizieren von Richtungsinformation und Befehlsauswahlen an den Prozessor 310 und zum Steuern der Bewegung eines Cursors auf dem Display 360.
-
Hier beschriebene Beispiele betreffen die Nutzung des Computersystems 300 zum Implementieren von hier beschriebenen Techniken. Gemäß einem Beispiel werden diese Techniken durch das Computersystem 300 in Antwort darauf durchgeführt, dass der Prozessor eine oder mehrere Sequenzen einer oder mehrerer Instruktionen ausführt, welche in dem Hauptspeicher 320 einhalten sind, wie Merkmalverwaltungs- und Merkmalsteuerungsinstruktionen. Solche Instruktionen können von einem anderen maschinenlesbaren Medium, wie beispielsweise der Speichervorrichtung 340, in den Hauptspeicher 320 gelesen werden. Ausführen der Sequenzen von Instruktionen aus dem Hauptspeicher 320 veranlasst den Prozessor 310 die hier beschriebenen Verfahrensschritte durchzuführen. Bei alternativen Implementierungen können anstatt oder in Kombination mit Software-Instruktionen fest verdrahtete Schaltungen genutzt werden, um die hier beschriebenen Beispiel zu implementieren. Somit sind die beschriebenen Beispiele nicht auf eine bestimmte Kombination von Hardwareschaltungen und Software beschränkt.
-
4 ist ein Blockdiagram, welches eine mobile Computervorrichtung veranschaulicht, auf dem hier beschriebene Beispiele implementiert werden können. Bei einem Beispiel kann eine mobile Computervorrichtung 400 einer mobilen Computervorrichtung, wie einer Mobilfunkvorrichtung mit Telefonie-, Nachrichten- und Datendienst-Fähigkeiten, entsprechen. Die mobile Computervorrichtung kann eine Kundenvorrichtung oder einer Fahrervorrichtung entsprechen. Beispiele solcher Vorrichtungen umfassen Smartphones, Handvorrichtungen oder Tablet-Vorrichtungen für Mobilfunknetze. Die mobile Computervorrichtung 400 umfasst einen Prozessor 410, Speicherressourcen 420, eine Anzeigevorrichtung 430 (z. B. als berührungsempfindliche Anzeigevorrichtung), ein oder mehrere Kommunikations-Untersysteme 440 (umfassend drahtlose Kommunikations-Untersysteme), Eingabemechanismen 450 (z. B. kann ein Eingabemechanismus die berührungsempfindliche Display-Vorrichtung umfassen oder eine Teil davon sein) und einen oder mehrere Ortsbestimmungsmechanismen (z. B. GPS-Komponente) 460. Bei einem Beispiel sendet und empfängt wenigstens eines der Kommunikations-Untersysteme 440 mobile Daten über Daten- und Sprachkanäle.
-
Der Prozessor 410 ist mithilfe von Software und/oder anderer Logik dazu ausgelegt, einen oder mehrere Verfahren, Schritte und andere Funktionen auszuführen, welche bei den in 1 bis 2 beschriebenen Implementierungen und andernorts in der Anmeldung beschrieben sind. Der Prozessor 410 ist mittels in den Speicherressourcen 420 gespeicherten Instruktionen und Daten dazu ausgelegt, eine bestimmte Dienstanwendung auszuführen, wie in 1–2 beschrieben. Zum Beispiel können Instruktionen zum Betrieb der bestimmten Dienstanwendung zum Anzeigen von Nutzerschnittstellen 415 in den Speicherressourcen 420 der mobilen Computervorrichtung 400 gespeichert sein.
-
Ein Kunde oder Dienstanbieter kann zum Beispiel eine jeweilige mobile Computervorrichtung (wie die mobile Computervorrichtung 400) betreiben, um die bestimmte Kunden- bzw. Anbieteranwendung auszuführen. Die GPS-Komponente 460 kann Ortsinformation ermitteln, wie die derzeitige Ortsinformation der Computervorrichtung 400. Die Ortsinformation 465 kann drahtlos an das System für On-Demand-Dienste über die Kommunikations-Untersysteme 440 periodisch und/oder als Teil einer Statusnachricht übertragen werden. Zum Beispiel kann Information über die mobile Computervorrichtung 400, welche Ortsinformation 465, einen Vorrichtungstyp, eine mit der Vorrichtung verknüpfte Nutzeridentifikation und oder eine Versionsinformation für die bestimmte Dienstanwendung umfassen kann, periodisch an das System für On-Demand-Dienste übertragen werden. Zusätzlich kann ein Dienstanbieter Statusnachrichten (nicht in 4 gezeigt) für das System für On-Demand-Dienste bereitstellen, um beispielsweise anzuzeigen, dass er oder sie für das Anbieten von Diensten verfügbar ist (zum Beispiel Dienst hat) oder dass er oder sie eine Dienstleistung abgeschlossen hat und untätig ist.
-
Das System für On-Demand-Dienste kann die Information von der mobilen Computervorrichtung 400 erhalten, und, wenn das System feststellt, dass eine Änderung an einem Attribut des Systems für On-Demand-Dienste, wie an der auf der mobilen Computervorrichtung 400 gespeicherten bestimmten Dienstanwendung, implementiert werden soll, kann das System die Anwendungssteuerung 445 über die Kommunikations-Untersysteme 440 an die mobile Computervorrichtung 400 übertragen. Der Prozessor 410 kann die Anwendungssteuerung 445 verarbeiten, welche eine an der bestimmten Dienstanwendung zu implementierende Änderung (zum Beispiel das An- oder Abschalten eines Nutzerschnittstellenmerkmals der Dienstanwendung, Bereitstellen für einen Nutzer einer anderen Option welche vor der Änderung nicht verfügbar war etc.) veranlassen kann.
-
Zum Beispiel kann der Prozessor 410 eine Vielzahl von Inhalten für das Display 430 bereitstellen indem Instruktionen und/oder Anwendungen ausgeführt werden, welche in den Speicherressourcen 420 gespeichert sind. Eine oder mehrere Nutzerschnittstellen 415 können durch den Prozessor 410 bereitgestellt werden, wie beispielsweise eine Nutzerschnittstelle für die Dienstanwendungen. Die Änderung kann an einer Nutzerboberfläche 415 implementiert werden, Obwohl 4 für eine mobiles Computervorrichtung dargestellt ist, können ein oder mehrere Beispiele auf anderen Typen von Vorrichtungen implementiert sein, darunter vollfunktionale Computer, wie Laptops oder Desktop Computer (zum Beispiel PC).
-
Es ist vorgesehen, dass hier beschriebene Beispiele sich auf hier beschriebene einzelne Elemente und Konzepte erstrecken, unabhängig von anderen Konzepten, Ideen oder Systemen, sowie auf Beispiele, die Kombinationen von hier beschriebenen Elementen umfassen. Obwohl Bespiele im Detail hier mit Bezug auf die Figuren beschrieben sind, ist vorgesehen, dass die Konzepte nicht auf diese genauen Beispiele beschränkt sind. Dementsprechend ist vorgesehen, dass der Umfang der Konzepte durch die folgenden Ansprüche und deren Äquivalente definiert ist. Ferner ist vorgesehen, dass ein bestimmtes Beispiel, welches entweder einzeln oder als Teil eines Beispiels beschrieben ist, mit anderen einzeln beschriebenen Merkmalen oder als Teil von anderen Beispielen kombiniert werden kann, selbst wenn die anderen Merkmalen und Beispiel dieses bestimmte Merkmal nicht erwähnen. Somit soll das Fehlen einer Beschreibung von Kombinationen nicht das Recht auf solche Kombination ausschließen.