Student30.05: Java, C++, C# -> Startupgründung, welche Basissoftware...

Hi Leute,

in einigen Monaten gründe ich mit paar frischabsolventen ein Startup, welches von unserer uni gefördert wird und für welches wir mit einem stipendium ausgestattet wurden.

unser startup vermietet lizenzen für unsere software an private haushalte und an großunternehmen. der code soll auf einem firmeninternen server liegen und durch ein plugin angesprochen werden, welches unsere kunden bekommen.

die meisten privaten haushalte, benötigen neben dem plugin eine c++ dll und eine c# dll um unsere software nutzen zu können.

großunternehmen hingegen benutzen großteils tools die in java geschrieben wurden und es kann sein, dass diese unternehmen unsere software oder teile davon komplett in ihr tool einbauen möchten ohne dass diese auf unsere firmeninternen server zugreifen muss.

unsere ziele bei der wahl der richtigen basis programmiersprache sind:

  1. wenn ein großunternehmen eine software möchte die mit keinem externen server komuniziert, soll dieses unternehmen so eine software von uns bekommen, allerdings möchten wir sicherstellen dass unser code nicht "geklaut" werden kann

  2. eventuell nicht allzuviele unterschiedliche programmiersprachen verwenden....

unsere webseite ist derzeit in php etc. geschrieben, wir überlegen diese seite in c#/c++ umzuschreiben und da wir visual studios ultimat für 3 jahre gratis bekommen können (bizpark programm), überlegen wir auch unseren java code in c++ umzuschreiben...

gedacht ist derzeit (für die meisten privathaushalte):

plugin<->dll (c# und c++) <-> php server <-> java programm

für großkunden: ein teil des java codes (eventuell können wir diesen nicht sicher verschlüsseln und laufen gefahr dass uns dieser code geklaut wird)

unsere überlegung mit c++: plugin <-> dll(c# und c++) <-> c#/c++ webseite <-> c++ programm

für großkunden: programmkomponente die in c++ geschrieben wurde so angepasst, dass diese in der java software des kunden läuft... ich habe gehört dass sich c++ sachen sehr gut schützen lassen?

könnt ihr mir dabei helfen eine entscheidung zwischen java und c++ zu treffen? es kann gut sein dass unsere großkunden unser programm mit sensiblen daten befüttern und daher den ganzen code auf ihren rechnern haben möchten

  1. Hallo Student30.05,

    wie Dir mehrere Leute, unter anderem auch ich, in Deinem anderen Thread schon geschrieben haben, ist es auch hier: Ohne konkrete Informationen wird Dir niemand weiterhelfen können. Ich bin auch noch immer nicht überzeugt, ob ihr überhaupt wisst, was ihr da machen wollt bzw. wie man an solch eine Sache überhaupt rangehen sollte.

    Ich schreib Dir einfach mal ein paar Kommentare zu Deinem Posting, vielleicht hilft es Dir ja, auch wenn ich es kaum glaube. Und wenn Du mit Deinem Startup mal online gehst: Lass es uns bitte wissen, ich bin echt mal gespannt, was dabei rauskommt...

    Zu Deinem Betreff "Startupgründung, welche Basissoftware...": Hat dieser Teil des Betreffs irgendetwas mit Deinem Posting zu tun? Wenn ja, was? Was meinst Du mit Basissoftware? Eine Programmiersprache? Wenn ja, was hat das mit Startupgründung zu tun? Fragen über Fragen...

    in einigen Monaten gründe ich mit paar frischabsolventen ein Startup, welches von unserer uni gefördert wird und für welches wir mit einem stipendium ausgestattet wurden.

    Nicht böse gemeint, aber wie bei vielen anderen Dingen hoffe ich auch hier, dass die Stipendien wenigstens aus Drittmitteln stammen und das Geld nicht nachher an wichtigen und evtl. sinnvolleren Ecken fehlt.

    unser startup vermietet lizenzen für unsere software an private haushalte und an großunternehmen. der code soll auf einem firmeninternen server liegen und durch ein plugin angesprochen werden, welches unsere kunden bekommen.

    Dürfen beispielsweise kleine und mittlere Unternehmen nicht in den Genuss einer Lizenz für Eure Software kommen!? Studenten und Forschungseinrichtungen auch nicht!? Warum nicht?

    die meisten privaten haushalte, benötigen neben dem plugin eine c++ dll und eine c# dll um unsere software nutzen zu können.

    Wieso benötigen das die meisten, aber nicht alle privaten Haushalte und warum andere Anwender gar nicht? Kann es sein, dass die Frage "DLL ja oder nein" vielleicht gar nichts mit dem Benutzerkreis sondern eher mit den Umgebungsbedingungen zusammenhängen?

    großunternehmen hingegen benutzen großteils tools die in java geschrieben wurden

    So pauschal wie Du das schreibst würde ich das äußerst bezweifeln. Außerdem: Was benutzen dann private Haushalte? Woher stammen die Annahmen für diese Unterscheidung? Also Großunternehmen benutzt Java, andere Anwender benutzen auf anderen Sprachen basierende Programme?

    und es kann sein, dass diese unternehmen unsere software oder teile davon komplett in ihr tool einbauen möchten

    Auch wenn Du uns das wahrscheinlich nicht verrätst: Was für ein Tool? Was soll da wie eingebaut werden?

    ohne dass diese auf unsere firmeninternen server zugreifen muss.

    Das hat irgendwas damit zu tun, dass Unternehmen Tools verwenden, die auf Java basieren?!?

    unsere ziele bei der wahl der richtigen basis programmiersprache sind:

    Definiere "Basis-Programmiersprache". Ich kenne den Begriff nicht, mit viel Wohlwollen würde ich darunter Maschinencode, vielleicht noch Assembler verstehen und ich glaube kaum, dass Du das meinst.

    1. wenn ein großunternehmen eine software möchte die mit keinem externen server komuniziert, soll dieses unternehmen so eine software von uns bekommen,

    Nett von Euch ;-)

    allerdings möchten wir sicherstellen dass unser code nicht "geklaut" werden kann

    Gut, dass Du "geklaut" in Anführungszeichen geschrieben hast. Wollte gerade anmerken, dass ihr den Code ja freiwillig aushändigt, sodass das mit dem "Klauen" wohl schwierig wäre ;-)

    1. eventuell nicht allzuviele unterschiedliche programmiersprachen verwenden....

    Wenn's keine gewichtigen Gründe gibt sollte grundsätzlich eine einzige Programmiersprache ausreichen.

    unsere webseite ist derzeit in php etc. geschrieben,

    Bisschen korinthenkacken, aber bei dem begrifflichen Durcheinander in Deinen Beiträgen kann's ja eventuell nicht schaden: Ich denke eher Eure Webseite ist grundsätzlich in HTML, evtl. unter Zuhilfenahme von CSS und JavaScript geschrieben und ihr erzeugt diesen HTML-/CSS-/JavaScript-Code mit Hilfe von PHP.

    wir überlegen diese seite in c#/c++ umzuschreiben

    Warum? Wenn's jetzt so in Ordnung ist und es keinen Grund außer "wir überlegen" gibt, könnt ihr's doch auch einfach so lassen.

    und da wir visual studios ultimat für 3 jahre gratis bekommen können (bizpark programm), überlegen wir auch unseren java code in c++ umzuschreiben...

    Ernsthaft? Ich hoffe, Du hast da Pünktchen ans Ende gesetzt, weil Du selbst weißt, was das für eine Aussage ist... (extra auch Pünktchen hingeschrieben)

    Ich finde an dieser Aussage sieht man sehr schön, dass ihr tatsächlich nicht wisst, was ihr eigentlich machen wollt bzw. wie ihr es anstellen könntet. Ihr könnt doch nicht die Wahl der Programmiersprache bzw. irgendwas anderem davon abhängig machen, dass ihr was kostenlos bekommt! Ich hab bei Deinen letzten Beiträgen schon manchmal mit dem Kopf geschüttelt, jetzt gerade mache ich das aber ganz heftig. Das ist auch wirklich nicht böse gemeint, jeder fängt mal an und auch Begrifflichkeiten sind nicht immer einfach. Aber hier musst Du doch eigentlich selbst stutzig werden. Was macht ihr denn dann in drei Jahren, wenn das nicht mehr gratis ist? In JavaScript umschreiben, weil der Firefox dann immer noch kostenlos ist und der ja JavaScript rendern kann? Oder: Ich sag Euch jetzt, dass Notepad++ und ähnliche Editoren komplett kostenlos sind und die können sogar mit praktisch allen Programmiersprachen umgehen. Schreibt ihr dann Eure Software in Brainfuck?

    gedacht ist derzeit (für die meisten privathaushalte):

    Ich verstehe immer noch nicht die Unterscheidung mit den Privathaushalten, zumindest nicht aus technischer Sicht.

    plugin<->dll (c# und c++) <-> php server <-> java programm

    Das dürfte im Großteil der Fälle völlig unnötig sein, weil die DLL auch direkt mit Java kommunizieren können sollte und Du somit PHP nicht brauchst. Wie gesagt, möglich ist das, da müssen bzw. sollten aber Gründe für sprechen und nicht nur, dass sowohl Notepad++ als auch Eclipse als auch XY kostenlos sind...

    für großkunden: ein teil des java codes

    Was soll uns dieser Satz sagen?

    (eventuell können wir diesen nicht sicher verschlüsseln und laufen gefahr dass uns dieser code geklaut wird)

    So wie sich Deine Beiträge zum Teil lesen bin ich mir sogar absolut sicher, dass ihr das nicht sicher verschlüsseln könnt. Unabhängig davon: Mir ist keine Möglichkeit bekannt, Quellcode überhaupt wirklich zu verschlüsseln, wenn er zugleich auch ausgeführt werden soll.

    unsere überlegung mit c++: plugin <-> dll(c# und c++) <-> c#/c++ webseite <-> c++ programm

    Gleiches Problem wie oben: Woher kommt die Unterscheidung? Warum jetzt auch noch unterschiedliche Webseiten mit unterschiedlichen Technologien die irgendwie auf auf andere Programme zugreifen?

    für großkunden: programmkomponente die in c++ geschrieben wurde so angepasst, dass diese in der java software des kunden läuft...

    Ich kann mir nicht vorstellen, dass es eine Möglichkeit gibt, eine C++-Anwendung in einer Java-Umgebung lauffähig zu machen. Wenn kommunizieren die über Schnittstellen. Wie wollt ihr das also hinbekommen?

    ich habe gehört dass sich c++ sachen sehr gut schützen lassen?

    Je nachdem, was Du unter "schützen" verstehst: Wahrscheinlich nicht besser oder schlechter als die Quellcodes vieler anderer Programmiersprachen auch. Grundsätzlich gibt es aber einen Unterschied zwischen kompilierten (Maschinencode), "vor-kompilierten" (Bytecode) und bei zur Laufzeit übersetzen Verfahren. Das hat aber nichts mit "Schutz" im eigentlichen Sinne zu tun.

    könnt ihr mir dabei helfen eine entscheidung zwischen java und c++ zu treffen?

    Mit den Informationen, die zur Verfügung stellst: nein.

    es kann gut sein dass unsere großkunden unser programm mit sensiblen daten befüttern und daher den ganzen code auf ihren rechnern haben möchten

    Danke für die Info ;-) Sagt und jetzt genau was bzgl. der Auswahl einer Programmiersprache?

    So, genug geschrieben. Zum Abschluss nochmal: Alles nicht böse gemeint, hier wird Dir auch gerne geholfen. Aber mit den Informationen geht das nicht. Und unabhängig davon wiederhole ich es hier zur Vollständigkeit nochmal: Schreibt ein Lastenheft, das völlig unabhängig von irgendwelchen Technologien ist. Das ist auch keine Sache, die man in ein, zwei Stunden macht. Anschließend könnt ihr dann drüber diskutieren, ob ihr an alles gedacht habt (habt ihr nicht) und weiter dran arbeiten, auch wenn ihr dann immer noch nicht an alles gedacht habt. Dann setzt ihr Euch mit jemandem zusammen, der Ahnung davon hat und schon mal Projekte in der Größenordnung und in dem Bereich gemacht hat und diskutiert mit ihm das Lastenheft. Jetzt ist immer noch nicht die Technologieauswahl dran, sondern erstmal weitere Arbeit am Lastenheft. Und dann wiederholt ihr das Ganze. Mehrmals. Und irgendwann dürft ihr dann auch mal nach den Technologien fragen ;-)

    Ich schreib Dir das auch nicht mehrfach, um Dich zu nerven. Ich finde es gut, wenn Leute ein Startup gründen und sich auch wie Du hier bemühen, Sachen zu lernen. Das gehört dazu und man verzeiht auch gerne die "etwas wirren" Beschreibungen. Aber meiner Meinung nach scheitern viele Gründungen gerade daran, dass man am Anfang nicht genau genug plant und einem dann nach kurzer Zeit alles um die Ohren fliegt.

    Ich wünsche Euch weiterhin viel Erfolg.

    Dennis

    1. Zu Deinem Betreff "Startupgründung, welche Basissoftware...": Hat dieser Teil des Betreffs irgendetwas mit Deinem Posting zu tun? Wenn ja, was? Was meinst Du mit Basissoftware? Eine Programmiersprache? Wenn ja, was hat das mit Startupgründung zu tun? Fragen über Fragen...

      mit basissoftware meine ich die software mit welcher unser hauptcode geschrieben wurde.

      in einigen Monaten gründe ich mit paar frischabsolventen ein Startup, welches von unserer uni gefördert wird und für welches wir mit einem stipendium ausgestattet wurden.

      Nicht böse gemeint, aber wie bei vielen anderen Dingen hoffe ich auch hier, dass die Stipendien wenigstens aus Drittmitteln stammen und das Geld nicht nachher an wichtigen und evtl. sinnvolleren Ecken fehlt.

      ja es sind drittmittel aus einem europäischen förderprogramm

      unser startup vermietet lizenzen für unsere software an private haushalte und an großunternehmen. der code soll auf einem firmeninternen server liegen und durch ein plugin angesprochen werden, welches unsere kunden bekommen.

      Dürfen beispielsweise kleine und mittlere Unternehmen nicht in den Genuss einer Lizenz für Eure Software kommen!? Studenten und Forschungseinrichtungen auch nicht!? Warum nicht?

      sry, mit großunternehmen meine ich allgemein alle firmen die unsere software nutzen wollen und mit privaten haushalten einfach menschen die die software für sich selber einsetzen.

      die meisten privaten haushalte, benötigen neben dem plugin eine c++ dll und eine c# dll um unsere software nutzen zu können.

      Wieso benötigen das die meisten, aber nicht alle privaten Haushalte und warum andere Anwender gar nicht? Kann es sein, dass die Frage "DLL ja oder nein" vielleicht gar nichts mit dem Benutzerkreis sondern eher mit den Umgebungsbedingungen zusammenhängen?

      eine privatperson die bei uns kunde sein möchte ist auch kunde bei einem unternehmen A, dieses unternehmen A stellt eine software und unsere software stellt für diese software ein plugin. in der regel muss dieses plugin auf eine c++ dll zugreifen um auf den webservice auf unserer seite zugreifen zu können. die dll stellt die verbindung zwischen webservice und plugin her.

      großunternehmen hingegen benutzen großteils tools die in java geschrieben wurden

      So pauschal wie Du das schreibst würde ich das äußerst bezweifeln. Außerdem: Was benutzen dann private Haushalte? Woher stammen die Annahmen für diese Unterscheidung? Also Großunternehmen benutzt Java, andere Anwender benutzen auf anderen Sprachen basierende Programme?

      ja, großunternehmen nutzen in diesem bereich vorallen javatools und privatpersonen tools die in c++ geschrieben wurden, diese tools sind standartisiert daher kann ich, dass mit sicherheit sagen.

      und es kann sein, dass diese unternehmen unsere software oder teile davon komplett in ihr tool einbauen möchten

      Auch wenn Du uns das wahrscheinlich nicht verrätst: Was für ein Tool? Was soll da wie eingebaut werden?

      die firma soll nicht mit meinen postings in verbindung gebracht werden, daher verrate ich sowas nur per pn

      ohne dass diese auf unsere firmeninternen server zugreifen muss.

      Das hat irgendwas damit zu tun, dass Unternehmen Tools verwenden, die auf Java basieren?!?

      nein, aber verschiedene firmen werden einen zugriff auf externe server (aufgrund sensibler daten) nicht genehmigt bekommen und daher einen einbau in ihr eigenes system wollen.

      unsere ziele bei der wahl der richtigen basis programmiersprache sind:

      Definiere "Basis-Programmiersprache". Ich kenne den Begriff nicht, mit viel Wohlwollen würde ich darunter Maschinencode, vielleicht noch Assembler verstehen und ich glaube kaum, dass Du das meinst.

      basisprogrammiersprache sei im folgenden die sprache mit der der größteteil des (produkt-)codes geschrieben wurde

      Wenn's keine gewichtigen Gründe gibt sollte grundsätzlich eine einzige Programmiersprache ausreichen.

      das oben bennante plugin frisst in den meisten fällen nur c++ dll's, der code soll auf der webseite liegen und firmen die unsere software nutzen werden vorallem javatools haben

      und da wir visual studios ultimat für 3 jahre gratis bekommen können (bizpark programm), überlegen wir auch unseren java code in c++ umzuschreiben...

      Ernsthaft? Ich hoffe, Du hast da Pünktchen ans Ende gesetzt, weil Du selbst weißt, was das für eine Aussage ist... (extra auch Pünktchen hingeschrieben)

      das habe ich wohl unglücklich formuliert, unten habe ich das besser formuliert

      gedacht ist derzeit (für die meisten privathaushalte):

      Ich verstehe immer noch nicht die Unterscheidung mit den Privathaushalten, zumindest nicht aus technischer Sicht.

      privathaushalte bekommen ein standartisiertes plugin und firmen einen sauberen einbau in ihre tools

      plugin<->dll (c# und c++) <-> php server <-> java programm

      Das dürfte im Großteil der Fälle völlig unnötig sein, weil die DLL auch direkt mit Java kommunizieren können sollte und Du somit PHP nicht brauchst. Wie gesagt, möglich ist das, da müssen bzw. sollten aber Gründe für sprechen und nicht nur, dass sowohl Notepad++ als auch Eclipse als auch XY kostenlos sind...

      momentan notwendig weil wir erst in zwei-drei monaten passende webpakete erwerben die auch c++ oder java fressen

      (eventuell können wir diesen nicht sicher verschlüsseln und laufen gefahr dass uns dieser code geklaut wird)

      So wie sich Deine Beiträge zum Teil lesen bin ich mir sogar absolut sicher, dass ihr das nicht sicher verschlüsseln könnt. Unabhängig davon: Mir ist keine Möglichkeit bekannt, Quellcode überhaupt wirklich zu verschlüsseln, wenn er zugleich auch ausgeführt werden soll.

      was muss ich zum thema verschlüsseln wissen? wie entscheide ich ob ich das selber mache bzw. mein team oder einen externen beauftragen muss?

      Ich kann mir nicht vorstellen, dass es eine Möglichkeit gibt, eine C++-Anwendung in einer Java-Umgebung lauffähig zu machen. Wenn kommunizieren die über Schnittstellen. Wie wollt ihr das also hinbekommen?

      weiß ich nicht, ich hoffe das ganze über schnittstellen gebacken zu kriegen die java benutzen kann.

      1. Aloha ;)

        Auch wenn Du uns das wahrscheinlich nicht verrätst: Was für ein Tool? Was soll da wie eingebaut werden?

        die firma soll nicht mit meinen postings in verbindung gebracht werden, daher verrate ich sowas nur per pn

        Siehst du, da ist das Grundproblem. Wir haben keinerlei Einblick in die Zielsetzung und deine Beschreibungen des Problems sind auch nicht hinreichend konkret (und bevor du uns jetzt nochmal was allgemeines über plugins und dlls erzählst: das macht es nicht besser), um ein klares Bild zu vermitteln. Wir können dir gar keinen sinnvollen Ratschlag geben, weil sich keiner hier in die Nesseln setzen wird, dir zum einen oder zum anderen zu raten, wenn wir aufgrund mangelnder Einsichten keinerlei Einschätzung über Seiteneffekte und Folgen treffen können.

        Was dir zu denken geben sollte (aber auch das ist nur sehr vage zu sagen, weil es unter Umständen, die wir nicht kennen, du aber schon, gerechtfertigt sein kann) ist der Umstand, dass dir nun schon von mehreren Seiten nahegelegt wurde, a) die Entscheidungskriterien und b) die Vielfalt der verwendeten Technologien noch einmal auf Herz und Nieren zu prüfen. Aber wie gesagt, auch das können wir hier nur vage in den Raum stellen.

        Wenn's keine gewichtigen Gründe gibt sollte grundsätzlich eine einzige Programmiersprache ausreichen.

        das oben bennante plugin frisst in den meisten fällen nur c++ dll's, der code soll auf der webseite liegen und firmen die unsere software nutzen werden vorallem javatools haben

        Das ist beispielsweise eine der Aussagen, die wir lediglich schlucken, aber nicht auf ihren Wahrheitsgehalt und ihre Unumgänglichkeit prüfen können. Letzteres wäre aber unbedingt nötig, um dir reinen Gewissens eine qualifizierte Einschätzung der Gesamtsituation geben zu können.

        gedacht ist derzeit (für die meisten privathaushalte):

        Ich verstehe immer noch nicht die Unterscheidung mit den Privathaushalten, zumindest nicht aus technischer Sicht.

        privathaushalte bekommen ein standartisiertes plugin und firmen einen sauberen einbau in ihre tools

        Auch hier lese ich "Plugin" und "Tools" und verstehe nur, dass das von dir gestellte Problem für uns als Problemlöser sehr viele störende "black boxes" enthält.

        momentan notwendig weil wir erst in zwei-drei monaten passende webpakete erwerben die auch c++ oder java fressen

        Nur aus Interesse: Was sind denn "passende Webpakete, die auch C++ oder Java fressen"? Prinzipiell spricht nichts dagegen, auf PHP zu setzen um auf dem Server die Java-Maschine anzuwerfen. Infrage gestellt von meinem Vorposter wurde ja auch gar nicht so sehr die Serverseite, als mehr die Clientseite (Plugin in Java / DLL in C#/++).

        (eventuell können wir diesen nicht sicher verschlüsseln und laufen gefahr dass uns dieser code geklaut wird)

        So wie sich Deine Beiträge zum Teil lesen bin ich mir sogar absolut sicher, dass ihr das nicht sicher verschlüsseln könnt. Unabhängig davon: Mir ist keine Möglichkeit bekannt, Quellcode überhaupt wirklich zu verschlüsseln, wenn er zugleich auch ausgeführt werden soll.

        was muss ich zum thema verschlüsseln wissen? wie entscheide ich ob ich das selber mache bzw. mein team oder einen externen beauftragen muss?

        Du kannst da gar keinen externen dafür beauftragen. Wie genau soll deiner Meinung nach eine Verschlüsselung von ausführbarem Programmcode aussehen? Ausführbarer Programmcode hat doch gerade das in sich, dass er ausführbar, also maschineninterpretierbar, also eben nicht verschlüsselt ist?!?

        Haben dir die Argumente, die es aus unternehmerischer Sicht für niemanden sinnvoll machen, compilierten Code zu klauen, nicht ausgereicht?

        Ich kann mir nicht vorstellen, dass es eine Möglichkeit gibt, eine C++-Anwendung in einer Java-Umgebung lauffähig zu machen. Wenn kommunizieren die über Schnittstellen. Wie wollt ihr das also hinbekommen?

        weiß ich nicht, ich hoffe das ganze über schnittstellen gebacken zu kriegen die java benutzen kann.

        Über Schnittstellen kann das funktionieren. Aber ob das performant und sinnvoll ist, ist die andere Frage. Wie mein Vorredner auch schon angedeutet hat: Es ist wahrscheinlich einfacher, performanter und weniger fehleranfällig, die Funktion der DLL direkt in Java zu implementieren (zumal das im Zweifelsfall ja die trivialere Aufgabe ist, wie du sagtest :P) - da muss es schon extrem gute Gründe für geben, seine Daten durch derart viele Flaschenhälse und potenzielle Angriffsflächen zu schleusen, damit dass, was du vorhast, in der Form sinnvoll ist.

        Grüße,

        RIDER

        -- Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller
        Erreichbar manchmal im Self-TS (ts.selfhtml.org) oder sonst - wenn online - auf dem eigenen TeamSpeak-Server (fritz.campingrider.de) oder unter:

        # Facebook # Twitter # Steam # YouTube # Self-Wiki #

        ch:? rl:| br:> n4:? ie:% mo:| va:) js:) de:> zu:) fl:( ss:| ls:[
        1. Du kannst da gar keinen externen dafür beauftragen. Wie genau soll deiner Meinung nach eine Verschlüsselung von ausführbarem Programmcode aussehen? Ausführbarer Programmcode hat doch gerade das in sich, dass er ausführbar, also maschineninterpretierbar, also eben nicht verschlüsselt ist?!?

          Von früher kenne ich 2 Anwendungen, die tatsächlich verschlüsselt waren. Die Anwendung wird in den Speicher geladen und dann wird als erstes eine Funktion aufgerufen(die natürlich in einem Speicherbereich liegt welcher als einziger nicht verschlüsselt ist), die diesen Speicherbereich entschlüsselt und dann zu diesem entschlüsselten Speicherbereich springt.
          Die Anwendung liegt also verschlüsselt auf der Platte und nur im Speicher entschlüsselt.
          Aber ob man den Aufwand treiben muss ...
          Außerdem bin ich mir nicht sicher, ob dieses Treiben heutzutage nicht als auffällig von Virencheckern gewertet werden würde.

          1. Aloha ;)

            Du kannst da gar keinen externen dafür beauftragen. Wie genau soll deiner Meinung nach eine Verschlüsselung von ausführbarem Programmcode aussehen? Ausführbarer Programmcode hat doch gerade das in sich, dass er ausführbar, also maschineninterpretierbar, also eben nicht verschlüsselt ist?!?

            Von früher kenne ich 2 Anwendungen, die tatsächlich verschlüsselt waren. Die Anwendung wird in den Speicher geladen und dann wird als erstes eine Funktion aufgerufen(die natürlich in einem Speicherbereich liegt welcher als einziger nicht verschlüsselt ist), die diesen Speicherbereich entschlüsselt und dann zu diesem entschlüsselten Speicherbereich springt.
            Die Anwendung liegt also verschlüsselt auf der Platte und nur im Speicher entschlüsselt.

            Hmm interessant. Ich könnte mir allerdings vorstellen, dass das nicht nur sehr aufwändig, sondern mit den hier vorliegenden Programmiersprachen schier unmöglich sein sollte (zumindest mit Java sollte das definitiv unmöglich sein). Dieses Vorgehen fordert, so wie es sich für mich anhört, eine sehr hardwarenahe, fast schon Assembler-artige Kontrolle darüber, welche Speicherbereiche tatsächlich Datenbereiche darstellen und welche Speicherbereiche asuführbaren Maschinencode enthalten (denn die verschlüsselten Segmente wechseln vom einen zum anderen Zustand).

            Ich könnte mir vorstellen, dass ein solches Vorgehen Beschränkungen bedingt. Z.B. Betriebssystemabhängigkeit. Oder auch massive Performanceeinbußen (vor allem, wenn es wie hier um eine schnittstellenlastige Software geht, die potenziell oft neu aufgerufen und geladen wird.

            Außerdem ist auch das Vorgehen nicht endgültig sicher (nach dem Entschlüsseln steht das Programm ja unverschlüsselt im Hauptspeicher) und der Aufwand, um den entschlüsselten Programmcode aus dem Hauptspeicher zu lesen dürfte nur unwesentlich größer sein als der Aufwand, der zur Verschlüsselung betrieben werden muss.

            Ich wollte deine Aussage nur nochmal stützen:

            Aber ob man den Aufwand treiben muss ...

            Grüße,

            RIDER

            -- Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller
            Erreichbar manchmal im Self-TS (ts.selfhtml.org) oder sonst - wenn online - auf dem eigenen TeamSpeak-Server (fritz.campingrider.de) oder unter:

            # Facebook # Twitter # Steam # YouTube # Self-Wiki #

            ch:? rl:| br:> n4:? ie:% mo:| va:) js:) de:> zu:) fl:( ss:| ls:[
            1. Moin!

              Hmm interessant. Ich könnte mir allerdings vorstellen, dass das nicht nur sehr aufwändig, sondern mit den hier vorliegenden Programmiersprachen schier unmöglich sein sollte

              BASIC auf einem KC 85 konnte das ... (ab 5.2 Manipulation von Speicherstellen)

              Hab ich auch genutzt, um Funktionen von der Tastatur via INPUT einzulesen und auszuführen.

              Allerdings habe ich Zweifel, ob moderne Betriebssysteme das Ausführen von Code, den zuvor eine Anwendung als Daten geschrieben hat, erlauben. Wobei es ja auch selbstverschlüsselnde Viren geben soll.

              Jörg Reinholz

            2. Hmm interessant. Ich könnte mir allerdings vorstellen, dass das nicht nur sehr aufwändig, sondern mit den hier vorliegenden Programmiersprachen schier unmöglich sein sollte (zumindest mit Java sollte das definitiv unmöglich sein). Dieses Vorgehen fordert, so wie es sich für mich anhört, eine sehr hardwarenahe, fast schon Assembler-artige Kontrolle darüber, welche Speicherbereiche tatsächlich Datenbereiche darstellen und welche Speicherbereiche asuführbaren Maschinencode enthalten (denn die verschlüsselten Segmente wechseln vom einen zum anderen Zustand).

              Unter C++ kannst du für den Linker angeben, was in welches Segment gelinkt wird. Sehr aufwendig war es eigentlich nicht, ich hatte das mal getestet, weil es mich interessiert hatte. (Beim debuggen musste man aufpassen, da der Debugger einen INT 3 an die Stelle im Speicher schreibt, wo der Breakpunkt hin soll. Damit kann man, wenn der Breakpunkt aus einer vorhergehenden Sitzung noch an einer verschlüsselten Speicherstelle saß, die Entschlüsselung verhunzen.)
              Von C# hab ich keine Ahnung.

  2. Hi,

    unsere webseite ist derzeit in php etc. geschrieben, wir überlegen diese seite in c#/c++ umzuschreiben und da wir visual studios ultimat für 3 jahre gratis bekommen können

    Mit der Begründung müßt Ihr sie auch nach Java portieren, denn Eclipse und NetBeans gibt's auch kostenlos. Und für viele andere Programmiersprachen gibt's auch kostenlose Entwicklertools.

    cu,
    Andreas a/k/a MudGuard

  3. Hallo,

    könnt ihr mir dabei helfen eine entscheidung zwischen java und c++ zu treffen? es kann gut sein dass unsere großkunden unser programm mit sensiblen daten befüttern und daher den ganzen code auf ihren rechnern haben möchten

    Ein Entscheidungskriterium könnte sein, in welcher Infrastruktur (Web, Desktop,...) Eure Software um Einsatz kommen soll. In vielen großen Unternehmen ist auf den Desktops ja durchaus Windows im Einsatz (wo es also egal wäre, ob C++/C#/... oder Java benutzt wird bzw. sich C++ ggf. sogar etwas besser einfügen dürfte) - im Web-Umfeld hingegen ist ja Unix/Linux sehr weit vorne, was also eher für Java sprechen dürfte, weil die .NET & Co-Unterstützung auf UNIX/Linux zwar beachtlich, aber vermutlich für die meisten Firmen noch nicht "vertrauens-erweckend" genug sein dürfte.

    Anders herum gefragt: Was spricht denn gegen Java und für C++?

    Was das "Klauen des Codes" angeht, so wäre ich auch nicht zu über-paranoid. Ich verstehe zwar, dass Ihr nicht wollt, dass jemand Euer Know How einfach kostenlos abschöpft, und ich weiss natürlich nicht, was Eure Software alles kann, und wieviel Know-How da drin steckt. Aber so wie Du es beschreibst, so vermute ich mal, ist ein großer Teil Eurer Leistung für Eure zukünftigen Kunden auch schlichtweg Service & Customizing Eurer Software für die Ansprüche des Kunden. Die Frage ist daher, warum es sich für einen Kunden überhaupt lohnen sollte, Euren Code zu klauen: Nicht nur, dass er sich damit beachtliche rechtlich Probleme einhandelt, er braucht dann auch erstmal jemanden, der sich in Euren Code reinfuchst, den so weit versteht, dass er ihn erweitern kann usw. - so viele gute Entwickler gibts ja zur Zeit auch nicht, und günstig sind die auch nicht.

    => Wenn Ich Euer Kunde wäre, Ihr nicht völlige Mondpreise verlangt sondern eine halbwegs verträgliche Preisstruktur habt und ich der Meinung wäre, dass Eure Software mir echten Mehrwert bietet, würde ich lieber ein paar Euro mehr ausgeben, um von Euch eine auf meine Bedürfnisse zugeschnittene Software zu bekommen, für die Ihr dann komplett zuständig seid und um die ich mich nicht kümmern muss, anstatt einen meiner Entwickler (sofern ich einen habe, sonst muss ich den sogar noch anstellen) dafür zu verbraten, illegaler weise an einer Software, die er nicht kennt, herum zu frickeln. Dann hätte ich Euch auch nicht auf meiner Payroll, d.h, wenn ich mit Eurem Produkt nicht mehr zufrieden bin, kündige ich einfach den Vertrag/die Lizenz/das Abo (oder wie auch immer ihr das anbietet), andernfalls hätte ich einen Entwickler, den ich dann mit durchfüttern müsste.

    -> Also selbst vom moralisch-/juristischen Standpunkt mal ganz abgesehen, würde sich der Code-Klau ökonomisch vermutlich für Eure Kunden nicht lohnen. Es sei denn, Ihr habt eine so geniale Lösung für irgend ein Problem gefunden, dass die JEDER haben will. Dann wird es aber früher oder später ohnehin eine Frickelbude geben, die versucht, das nach zu bauen, und entsprechend man power reinsteckt - egal wie gut ihr das dann schützt. Da hülfe dann ohnehin nur noch der Gang zum Anwalt.

    These were my 5 cents.

    Viele Grüße, Jörg

  4. Hi Leute,

    danke für die Antworten!

    Vorweg möchte ich mein Problem schildern: Wir sind ein Team aus einem halben Dutzend Frischabsolventen. Wir haben eine FUnktionierende Software in Java geschrieben dessen mehrwert vorallem aus den entwickelten Algorithmen und nicht aus der Software umsetzung besteht. Zum Gründen eines Startups stellen sich u.a. folgende Aufgaben:

    1. Patentierung von Software, Idee, etc. -> Hier fallen viele Termine an, besuche bei Juristen, besuche bei Institutionen die darüber informieren, sogar bei einem passendem Lehrstuhl -> das kostet zeit die man eigentlich nicht hat

    2. Teammeeting, Meetings mit Betreuern aus der Uni, Werbeveranstalltungen -> was das an zeit kostet....

    3. organisation der aufgaben und koordinierung -> manchmal (oft) arbeitet einer an einer nicht-software sache, das wir von einem anderen überarbeitet und am ende hat man einen grißen haufen sch** (man muss als startup noch lernen wer welche aufgaben übernehmen kann, vorallem die nicht technischen sind für nicht bwl schwierig)

    4. rechtliche aspekte, genehmigungen von behörden damit man seine idee in jedem angestrebten land umsetzen darf

    5. texte für die webseite, webseite an sich, übersetzungen....

    6. vorbestellngen ... geschäftspartner.... mal versucht nen logo von nem partner für die webseite zu bekommen der strikt und genau wissen will welches "auflösung" das ding haben soll? (vier ecken wär ganz gut...-> bei manchen firmen könnt ihr da einen deutsch+englisch sprachigen 20 seitigen antrag für stellen...)

    7. usw.

    -> am die zeit reicht vorne und hinten nicht und das geht anscheint jedem startup so, da ist die frage die ich hier gestellt habe momentan leider nicht ganz so wichtig. und das obwohl sie so wichtig ist, dass ein fehler den man hier macht zum niedergang der ganzen idee führen könnte - aber von wo soll ich die zeit nehmen? das einstellen eines experten in diesem bereich raubt wieder zeit, nerven und ressourcen die evetuell woanders gebraucht werden (über die uns hat mein team schon jetzt so viele experten in verschieben dingen dass mir ganz schwindelig wird). zudem muss man sich mit einem experten unterhalten können, dh man muss ein gewisses grundbild von der sachlage haben, mit meinen fragen will ich mir dieses grundbild verschaffen um gegebenenfalls aufgaben in meinem team weiter geben zu können.

    1) wir haben eine software die auf unserem webserver liegen soll (teilweise liegen da auch schon erste codestücke) und diese webservices sollen von einem pluguin angesprochen werden die unsere privatkunden (=menschen die die software für private zecke nutzen wollen) bekommen. diese privatkunden brauchen vorallem bisschen c++ code als dll. auf meine genaue firmengründungsidee möchte ich hier noch nicht eingehen, da ich dadurch eventuell ungewollt negatives marketing betreibe (meine hans wurst fragen müssen nicht unbedingt mit der geplanten firma in verbindung gebracht werden). ich kann euch das ganze aber per email zuschicken wenn ihr wollt (ich glaube bei selfhtml gibt es keine pn? -> ich habe hier übrigens auch einen account aber ich vergesse leider immer wieder mein login)

    2) an firmen die unsere software nutzen wollen, wollen wir auch lösungen verteilen. die wollen unsere software in ihre eigenen software tools ingetrieren, deren tools sind zb in java, teilweise in anderen sprache. aber java ist hier wohl dominant.

    3) unsere webseite haben wir mit html, php, css usw. zusammen gedönert und die komunikation zwischen c++ und einem php webservice funktioniert.

    folgende möglichkeit bietet sich mir: alle mircosoftprodukte für 3 jahre gratis, also auch visual studios ultimat. gemessen am preis muss dieses ultimat irgendwas tolles können, daher frage ich mich ob dieses ultimat eine chance darstellt die ich ergreifen sollte??? wie kann ich diese entscheidung treffen? was brauche ich dafür für wissen?

    unsere hauptsoftwarelösung ist in java geschrieben, da der code aber auf unserem webserverliegen soll ... würde sich da nicht anbieten diesen code in c++ zu schreiben und die webseite komplett in c# zu schreiben? usw. aber was wäre dann mit firmen die unsere software in ihre java tools einbauen wollen? kriegt man das gut gebacken? wie treffe ich diese entscheidung? welches infos brauche ich dafür?

    ich werde jetzt die fragen von dennis beantworten die ich noch nicht drin hab, eventuell könnt ihr mir im anschluss paar tipps geben wie ich die entscheidung zu denj obene aufgeführten fragen treffen kann. sagt bescheid wenn noch paar infos fehlen :)

    1. Hallo Student01.06,

      ich glaube bei selfhtml gibt es keine pn?

      Selbstverständlich gibt es die.

      Bis demnächst
      Matthias

      -- Signaturen sind bloed (Steel) und Markdown ist mächtig.
      1. Hallo Student01.06,

        ich glaube bei selfhtml gibt es keine pn?

        Selbstverständlich gibt es die.

        Bis demnächst
        Matthias

        danke, hab dennis die firmenidee per pn geschickt, falls die nochjemand möchte sagt einfach bescheid. (ich hab oben beschrieben warum ich die idee nicht im öffentlichen forum posten möchte)

        -- Signaturen sind bloed (Steel) und Markdown ist mächtig.
        1. Hallo hmm,

          danke, hab dennis die firmenidee per pn geschickt, falls die nochjemand möchte sagt einfach bescheid. (ich hab oben beschrieben warum ich die idee nicht im öffentlichen forum posten möchte)

          Das kann ich nachvollziehen, ich würd aber auch gern die Idee kennenlernen.

          Und: bitte vermeide Vollzitate, egal, ob du un- oder angemeldet postest. Danke.

          Bis demnächst
          Matthias

          -- Signaturen sind bloed (Steel) und Markdown ist mächtig.
        2. Hallo zusammen,

          danke, hab dennis die firmenidee per pn geschickt

          der Vollständigkeit halber möchte ich hier erwähnen, dass hmm (Student01.06) mir eine PN hat zukommen lassen.

          Die darin aufgeworfenen Fragen habe ich ihm auch gerne (nochmal) auf diesem Wege beantwortet, da sie sich nicht von dem bisher Geschriebenen unterscheiden.

          Grundsätzlich geht es wie gedacht tatsächlich um Folgendes, was nicht selten vorkommt und vom konkreten Anwendungsfall abstrahiert auch öffentlich hier diskutiert werden kann, auch wenn das einem konkreten Anwendungsfall natürlich nicht gerecht werden kann, aber da müssen sich die Jungs und Mädels dann eben selbst drum kümmern:

          • Vorliegend eine proprietäre Software, welche es in mehreren Ausführungen gibt (u.a. auf verschiedenen Programmiersprachen basierend)
          • Die Software besitzt eine API
          • Aufbauend auf der API wurde ein Plugin geschrieben (meine Interpretation)
          • Dieses Plugin soll nun mit einem Server kommunizieren
          • Es sollen Daten an den Server geschickt, dort berechnet und wieder an die Software zurückgesendet werden

          Also kann hmm (Student01.06) meiner Meinung nach so auch hier seine Fragen stellen, da es sich um einen klassischen Fall von Schnittstellenmanagement handelt, wie Camping_RIDER zwischenzeitlich bereits treffend beschrieben/erraten hatte.

          Da es kaum mehr Informationen gibt, habe ich ihm ergänzend zu den ganzen anderen Postings geraten, sich von irgendwelchen Programmiersprachen zu lösen und zuerst einmal die Schnittstellen und Algorithmen abstrahiert zu definieren - erst ganz grob, dann detaillierter. Anschließend sollten sie sich Gedanken über den Austausch der Daten zwischen den Schnittstellen machen. Da die Daten bspw. über das Internet übertragen werden sollen, könnte die weitergehende Recherche hier HTTPS beinhalten. Für die anderen Schnittstellen könnte eine eigene API definiert werden.

          So, darum geht's also. Ich denke, auf diesem Level kann man hmm (Student01.06) auch hier im öffentlichen Forum weiterhelfen. Für alles andere brauchen sie jemanden, der sich damit auskennt und alle nötigen Informationen erhält. Aufgrund des universitären Umfelds habe ich in den Raum geworfen, sich als erstes vielleicht mal an einen netten Assistenten vom Informatik-Lehrstuhl zu wenden, der ihnen bei den ersten Schritten hilft.

          Gruß, Dennis

          Ps: Hilfe per PN gibt's bei mir auch nicht. In diesem einmaligen Fall aber eine Ausnahme, da es a) nicht über das hier im Forum geschriebene hinausgeht und ich b) die (ungewollte) PN wohl scheinbar etwas herausgefordert habe.

    2. Aloha ;)

      2) an firmen die unsere software nutzen wollen, wollen wir auch lösungen verteilen. die wollen unsere software in ihre eigenen software tools ingetrieren, deren tools sind zb in java, teilweise in anderen sprache. aber java ist hier wohl dominant.

      unsere hauptsoftwarelösung ist in java geschrieben, da der code aber auf unserem webserverliegen soll ... würde sich da nicht anbieten diesen code in c++ zu schreiben und die webseite komplett in c# zu schreiben? usw. aber was wäre dann mit firmen die unsere software in ihre java tools einbauen wollen? kriegt man das gut gebacken? wie treffe ich diese entscheidung? welches infos brauche ich dafür?

      Was du brauchst? Ein verdammt gutes Schnittstellenmanagement. Du musst gewährleisten, dass die Schnittstelle deiner Produktivsoftware sowohl auf Daten aus PHP, als auch auf Daten aus Java-Programmen oder anderen Realisierungen anspringen. Solche möglichst allgemeinen Schnittstellen sollten allgemeinen Regeln folgen, z.B. XML (evtl zu "überdimensioniert") oder JSON (vielleicht ganz sinnvoll). Bedenke dabei, dass du dich nicht darauf versteifen solltest, dass deine Firmenkunden Java-Tools einsetzen. Das ist eine gewagte Annahme (imho) und bei allem was ich über Startups weiß / gelesen habe, sollte man mit Annahmen vorsichtig sein. Wenn die Schnittstelle genügend allgemein gehalten ist, sollte es irrelevant sein, ob jetzt euer PHP-Server oder die JAVA-Anwendung eines Firmenkunden oder dessen C-Anwendung auf euer Programm zugreift.

      Ansonsten muss ich dir leider sagen, dass ich mit 1UnitedPower konform gehe: Im Rahmen dieses Forums stehe ich nicht für Privatnachhilfe zur Verfügung. Es ist der Sinn dieses Forums, Probleme (und zwar mit möglichst vollständiger Schilderung) auf öffentlicher Basis zu lösen, so dass auch Andere davon profitieren können.

      Für alles andere braucht ihr kein Forum, sondern einen professionellen Berater vom Fach (was sowieso zu empfehlen wäre).

      Das bedeutet insbesondere, dass ich hier keine Antworten liefern werde, die sich auf Inhalte von PNs beziehen, die nicht öffentlich werden dürfen (und ich hoffe im Sinne des Forums, dass das auch kein anderer tut) - natürlich kann dir wem auch immer du eine PN schreibst, eine PN zurückschicken, das soll mir dann auch recht sein.

      Grüße,

      RIDER

      -- Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller
      Erreichbar manchmal im Self-TS (ts.selfhtml.org) oder sonst - wenn online - auf dem eigenen TeamSpeak-Server (fritz.campingrider.de) oder unter:

      # Facebook # Twitter # Steam # YouTube # Self-Wiki #

      ch:? rl:| br:> n4:? ie:% mo:| va:) js:) de:> zu:) fl:( ss:| ls:[

      Folgende Nachrichten verweisen auf diesen Beitrag:

    3. alle mircosoftprodukte für 3 jahre gratis, also auch visual studios ultimat. gemessen am preis muss dieses ultimat irgendwas tolles können, daher frage ich mich ob dieses ultimat eine chance darstellt die ich ergreifen sollte??? wie kann ich diese entscheidung treffen? was brauche ich dafür für wissen?

      Die Ultimate-Variante vom DevStudio braucht kein Mensch. Da sind nur Sachen dabei die du nie nutzen wirst. Sowas wie MS-SQL-Server/MS-Office, eigentlich fast jeden ... ähhh fast alles von MS. Mit der Professional Variante bist du mehr als ausreichend versorgt wenn es dir um das Entwickeln von C++ Anwendungen geht. Auf die könntest du nach den 3 Jahren auch problemlos von Ultimate umsteigen.

    4. ok leute, ihr habt mich überzeugt, ich schreibe so ein lastenheft und gehe damit zu einem passenden lehrstuhl an meiner uni. ich hab zwar keine zeit für so ein lastenheft, aber irgendwie werd ich das schon packen...

      könnt ihr mir zu den oben aufgeführen punkten noch paar infos mitgeben, damit mich der lehrstuhl nicht fürn uninformierten horst hält?