Die Inhalte auf dieser Seite stehen unter diesem Creative Commens License Dingsbums. Also fröhlich kopieren und weiterverteilen. Bitte abweichende Copyright-Hinweise in anderen Blogs respektiveren.

Dienstag, 22. Dezember 2009

Wissenswertes zur Patentanmeldung

Wer gerne so ne kleine sprechende Glühbirne haben möchte wie Daniel Düsentrieb oder eine Rakete aus Holz wie der Dr. Snuggles der wird Erfinder.

Hier einige Infos zum Thema: (Für Korrektheit keinerlei Gewähr; Dies ist keine Rechtsauskunft!)

1. Fakten
1.1 Übersicht
Land Amt Tool Kosten
De dpma patras
Gebühr für Anmeldung470euro
Gebühr für Prüfung 480euro
Ausarbeitung durch einen Anwalt2000-3000euro
eu ? diverse
Gebühr für Anmeldung600euro
Gebühr für Recherche1000euro
Gebühr für Prüfung 1400euro
Ausarbeitung durch einen Anwalt?euro

1.2 Einreichung
  • Einreichung in Schriftform möglich.
  • Einreichung in elektronischer Form erfordert digitalle Signatur; spezielle Hardware erfordernlich.

1.3. Roadmap
WICHTIG: Es gibt einen langen Zeitraum zwischen der ersten Veröffentlichung des Patents seitens des Patentamtes bis zur Anerkunnung des Patents. Wer während dieser Phase geschäftlich aktiv werden möchte, der sollte Vorsichtig vorgehen. Findet man nämlich während dieser Zeit Partner/Interessenten/Kunden und stellt sich dannach heraus, dass das Patent nicht akzeptiert wird, weil das Thema z.B. schon durch ein anderes Patent abgedeckt ist, so drohen Schadensersatzforderungen von Kunden. Ob man sich durch entsprechende Klauseln absichern kann weiss ich momentan nicht. (todo)

1.3.1. Roadmap Deutschland
MonatBeschreibung
-xFertigstellung der Patentmeldung
0Prüfung durch einen Anwalt fertiggestellt; 1-2 Umlaufschritte zwischen Anwalt und Patentmelder
0 Anmeldung beim dpma
8-10 Erste Reaktion vom Dpma
18Veröffentlich der Patentmeldung seitens des Patentamts
24-36Erteilung des Patents

Ist das Patent in Deutschland ausgeschrieben kann man innerhalb von 12 Monaten einen verbilligten Preis bekommen, um das Patent auf EU oder auch international auszuweiten. Ob Ausschreibung nun Veröffentlichung oder anerkennung heisst weiss ich nicht. (todo)

1.3.2. Roadmap EU
(todo)

1.3.3. Roadmap USA
(todo)

2. Grundsätzliches
2.1 Formen
Will man eine Software-technologie patentieren lassen läuft das unter einer "Patente und Gebrauchsmuster". Andere Formen sind Marken oder Geschmacksmuster, die z.B. für Firmenlogos bzw. Produktdesign gedacht sind.

2.2. Wer zuerst kommt...
Wer ein Patent einreicht, einen Tag nachdem ein anderer dasselbe Patent eingereicht hat, hats versemmelt. Zahlen tut er trotzdem fleissig und mitbekommen tut er das erst Jahre später.

3. Die Patentmeldung
3.1. Die gute Kunst.
Eine Patentmeldung ist möglichst allgemein genug formuliert, dass sie möglichst viele Bereiche abdeckt. Ist sie jedoch zu allgemein wird das Patentamt den Antrag zur Erteilung eines Patents ablehnen, mit der Begründung, dass es das Patent schon gibt. Dies geschieht oft im ersten Entwurf; die Neueinrechung einer spezifischeren Patentbeschreibung ist ein Standardverfahren.

Die Beschreibung eines Patents ähnelt einer technischen Spezifikation, lliegt jedoch nicht in diesem Detailgrad vor. Man kann sich im wesentlichen darauf beschränken, zu beschreiben, was man umsetzen möchte; konkrete Algorithmen brauchen nicht genannt werden; Es genügt, Eingaben und Ausgaben zu spezifizieren und ggf. Daten von Zwischenschritten in die Beschreibung mit einzuschliessen.

Ein Prototyp ist nicht erforderlich.

3.2. Kapitel
3.2.1. Kapitel 'Aktueller Stand der Technick'
Ein Kapitel der Patentbeschreibung sollte auf den aktuellen Stand der Technick eingehen. Um einen schnellen Einstieg in die Thematik zu ermöglichen ist es sinnvoll, hier ruhig einige Details aufzuführen.

3.2.2 Kapitel 'Unterschiede zum Aktueller Stand der Technick'
Hier sollte man Unterschiede ausarbeiten und Referenzen auf einzelne Punkte anderer Kapitel und Diagramm-Elemente geben.

3.2.3 Kapitel 'Wirtschaftlichkeit'
Das Zustandekommen einer Kostenersparniss unter Einsatz der Erfindung sollte angeschnitten werden. Hier sind keine konkreten Zahlen gefragt, sondern eine Beschreibung der Prinzipien.

3.2.4 Kapitel 'Die Erfindung'
Einige Diagramme sollten drin sein. Elemente der Diagramme sowie definierte Begriffe sollte man durchnummerieren und oft Bezüge herstellen.

3.3 Vorlagen
Man kann sich unter der dpma-recherche einige Patente ansehen und sich in Form (aber möglichst nicht im Inhalt ;-) daran orientieren.

4. Schutzmaßnahmen
Wer niemand über den Weg traut wendet sich vor der ersten Weitergabe der Beschreibung an einen Notar. Der kann das Papier mit Datum beglaubigen.

Ich brauche glaube ich nicht zu erwähnen, dass man sich zum Thema eher bedeckt halten sollte.

Ende der Geheimniskrämerei: da bin ich mir nicht sicher, aber wahrscheinlich genügt der Tag der Einreichung zum Patentamt. (todo)

Sonntag, 20. Dezember 2009

xsl/html schnellstart

So alle 6 Monate kommt es vor, dass ich irgend ein xslt-script schreiben möchte, um irgendwelche daten in html darzustellen. Dann geht die Suche von vorne los, weil ich mich an nichts mehr erinnern kann. Deshalb gibt es *jetzt* - *hier* die ultimative schnellreferenz und linksammlung zum thema.

1. Xml-Gerüst
<?xml-stylesheet type="text/xsl" href="myfile.xsl" ?>
<?xml version="1.0" encoding="ISO-8859-1" ?>
<Wurzel>
</Wurzel>

2. Xsl-Gerüst
<xsl:stylesheet version = '1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
<xsl:template match="/">
<xsl:value-of select="//Wurzel"/>
</xsl:template>
</xsl:stylesheet>

3. Referenzen
xslt
xpath
query
html
Sonderzeichen

4. Beispiele
xpath

5. Tutorials
xsl (1)
xsl (2)
xpath
x-Query
html

Montag, 14. Dezember 2009

Das Mysterium der GUIDs (Global Unique Identifier)

Eine GUID ist, wie der Name schon sagt, eine global eindeutige ID

Über das aktuelle Microsoft .Net framework kann man eine solche GUID über die Funktion

System.Guid.NewGuid

generieren.

Es ist ziemlich sicher, dass diese Id in diesem Universum eindeutig ist und bleibt. "Ziemlich" sicher...

Das "ziemlich" hängt von einigen kriterien ab

  • 1. Davon wie lange man mit dieser funktion guids generiert, ohne den algorithmus bzw. die länge der generierten id zu ändern
  • 2. Davon, ob der rechner auf dem die guid erzeugt wurde, über eine netzwerkkennung verfügt (das wird wohl auch so bleiben, da es die sicherste möglichkeit ist, die eindeutigkeit in einem verteilten system sicherzustellen, solange man nicht auf die idee kommt, die eindeutigkeit der netzwerkadresse aufzuheben und durch verschachtelte adressierung abzusichern; ich meine aber, dass das nicht gemacht wird; müsste der werte leser ggf. selbst raussuchen)
  • 3. Davon, welche Maßnahmen man in der Zukunft ergreift, um sicherzustellen, dass guids weiter eindeutig bleiben.(ich hab für den mac-algorithmus 6000 Jahre im Kopf) Microsoft muss irgendwann mal vielleicht ein update für 256bit guids rausbringen (aktuell 128 bit)und man muss einen neuen netzwerkstandard rausbringen und einen zugehörigen generator schreiben. Für ipv6 hab ich im kopf dass du soviele adressen pro qubikzentimeter nutzbarer erdoberfläche vergeben kannst, dass du dir erst wieder gedanken machen brauchst, wenn die welt von kleinen nano-robotern übernommen worden ist.

Es gibt verschiedene Algorithmen zur berechnung einer guid, eine versionskennung des algorithmus ist in der GUID mit eingerechnet sodass die eindeutigkeit der GUID auch zwischen verschiedenen Algorithmen sichergestellt ist.

Irgendwo gibts wohl eine Organistation, die dir eine id vergibt, wenn du deinen eigenen algorithmus schreiben willst, aber das ist wohl eher ne kleine klitsche als eine organisation, wenn sie sonst nix machen, ausser versionskennungen für guid-generatoren zu vergeben.

Der (historisch erste?) Algorithmus verwendet die MAC-Adresse der Netzwerkkarte zur Berechnung. D.h. dass - sofern der Rechner auf dem die GUId berechnet wurde eine netzwerkkarte besitzt, ist die ID "eindeutig". Besitzt der Rechner keine Netztwerkkarte kann es vorkommen, dass er eíne GUID generiert, die schoneinmal geniert wurde (meiner Vermutung nach wird das dann aber wohl eine id sein, die auch von einem rechner ohne nw-karte berechnet wurde, damit bleibt das problem eingekreist)

Wie die anderen Algorithmen funktionieren weiss ich nicht; aber ich vermute, sie werden andere netzwerkkennungen (=>ipv6) verwenden oder als ausweichalgorithmus dienen und die guid zeit und standortabhängig berechnen was natürlich durch falschkonfiguration der systemzeit/ländereinstellungen entsprechend unsicher ist.

Es herrscht ziemlich viel allgemeine Verwirrung darüber, ob und wie lange eine guid eindeutig ist. (vor allem weil sich keiner hinsetzt und mal alles durchrechnet)

Da ist aber noch lange hin.

Aber was passiert wenn, doch mal eine doppelte rauspurzelt?

Eine doppelt generierte Guid kann zu verwechslungen, zu überschreiben von daten oder im blödesten fall zum datenverlust führen. Es gibt aber auch eine Möglichkeit diesen Fehler zu erkennen und zu behandeln:

Begegnen kann man dem damit, dass die datenschicht die eindeutigkeit von ids innerhalb des dokuments sicherstellt [1] und dass der client der datenschicht neu-anlagen explizit als solche ausweist.

guids werden nur bei neuanlage von objekte generiert. falls die guid schon existiert kommt es zu einem fehler 'der datensatz kann nicht hinzugefügt werden, weil ein objekt mit dieser id existiert bereits'. falls das programm nicht darauf reagiert (und das wird es kaum) gehen dem benutzer seine eben erfassten daten verloren, aber das gesamt system bleibt - sofern die transaktionen korrekt gesetzt sind - davon unbeeinträchtigt.

[1] in einer datenbank anwendung ist das der fall, da du im normalfall eindeutige rowids verwendest. wie ms-project ggf. bei neuanlage eines profils auf ein schon vorhandenes profil reagiert wissen nur die entwickler von project.

Fazit:

  • 1. Extrem geringes Risiko, dass eine doppelt generierte guid sich auswirkt.
  • 2. In grossen db anwendungen kommen eh nur clients mit netzwerk-karte an datenbanken ran, sodass die wahrscheinlichkeit einer doppelten guid ein weiteres riesen stück sinkt.
  • 3. In Datenbankanwendungen sicherstellen, dass
  • 3.1 die datenschicht eindeutigkeit von row ids sicherstellt
  • 3.2 dass ein Insert ein Insert bleibt und ein Update ein Update. Wenn du natürlich eine SQL-StoredProcedure auf dem datenbankserver programmierst, die sagt If Exists Then Update Else Insert dann kann verlierst du diesen schutz und es kann passieren, dass der karlheinz auberle, der 3 schrauben bestellt hat, eine rechnung über 2.5 mio euro bekommt und sich beim daimler jemand saumäßig über sein budget freut. (das seines bleiben wird) Aber dass dir das passiert - da wirste eher in einer woche 20 mal vom blitz erschlagen, überlebst und hast den tag drauf nen 6er im lotto. (den gewinn bekommt aber jemand anders, weil in der lotto zentrale auch eine doppelte guid erzeugt wurde)

Weiteres:

  • Durch die Verwendung von GUIDs auf Datenbankservern kommt es zu unperformanten Indizierungsverhaltung des Datenbankservers. Der aktuelle Microsoft-SQL-Server stellt daher eine eigenen Funktion zur generierung GUIDs, die innerhalb einer Tabelle sicherstellt, dass generierten GUIDS aufsteigend sind, was die Effizienz der Indizierung wieder herstellt.
  • So wie ich das mitbekommen habe (werd ich noch überprüfen/durch featureunterstützung untermauern) verwendet man in aktuellen datenbank-servern guids als rowid. Das erleichtert die implementierung auf dem client ungemein, da ein client, wenn er einen datensatz anlegt, ansonsten den vom server vergebenen autowert vom db-server zurückbekommen muss, um mit dem objekt weiterarbeiten zu können. die an dieser stelle verwendeten sql-statements sind wahrscheinlich kritisch bzgl. portierbarkeit. Ich bin neulich darauf gestossen, dass das Microsoft Entity Framework (Ein ORM-Tool) anscheinend Auto-Werte gar nicht unterstützt.
  • Die Generierung von GUIDS wird von vielen anderen Betriebssystem unterstützt. Bei Portierung von GUIDS muss man auf identische spezifikationen des algorithmus achten. Außerdem muss die byte-order verglichen werden, in der die guid aus-/ bzw. eingegeben wird. Diese ist nämlich nicht immer gleich. Durch verwechslung der Byte-Order kann es ebenfalls zu vermeintlich doppelt generierten guids kommen.