Re: Technologiewahl (Net vs. Java?)
- From: Stefan Matthias Aust <nobody@xxxxxxxxx>
- Date: Sat, 05 Nov 2005 18:47:52 +0100
cybernd wrote:
Gegeben sei folgendes Szenario: [...]
Warum so unspezifisch? NDA? Patent-Pending? Zu peinlich? Ich finde, dein Versuch, das konkretes Problem auf eine ganze Klasse von Problemen zu abstrahieren macht es schwer, dann konkret zu antworten.
Eventuell wichtiges Gimmik: Idealerweise zwei Server im Master / Slave mode, wobei der Slave bei Bedarf den kaputtgegangenen Master ersetzen kann. Also der Wunsch Richtung Hochverfügbarkeit. (Gerade diese Aufgabenstellung ist Neuland für mich ;o)
Das kannst du rein mit Hardware lösen. Sun-Server etwa lassen sich clustern und in einem Multiprozessor-System kann man Prozesse sogar zwischen den Prozessoren der Domänen dort hin- und her migrieren. Ist aber definitiv nicht mein Spezialgebiet, ich habe nur mal für eine Firma gearbeitet, deren Spezialgebiet auch sowas war. Ich bin mir auch relativ sicher, dass IBM und co ebenfalls Cluster-Lösungen im Angebot haben.
Wenn eine Software-Lösung reicht: Tomcat 5.5 lässt sich clustern, andere Application-Server können das auch - wenn du also auf einen Standard-J2EE-Container setzt, kannst du dies zu einem PAL (Problem anderer Leute) machen.
Wie erreicht man ein redundantes System, das sich möglichst selbsständig synchron hält obwohl eigentlich nur einer der beiden Maschinen mit der Außenwelt spricht?
Oracle-Datenbanken können sowas - man muss allerdings Larry Ellison mindestens einen neuen Sportwagen kaufen, will sagen, das ist recht teuer. MySQL - seit kurzem ja auch Oracle - kann aber auch sowas, siehe http://www.mysql.com/products/database/cluster/
Die versprechen da drei-neuen nach dem Komma. Das sind 5min Downtime pro Jahr. Ich glaube, wenn man noch eine 9 haben will, muss man schon einen Techniker bezahlen, der neben dem Rechner sein Feldbett aufstellt.
Wenn du jetzt deine Software derart schreibst, dass sie immer schön auf die Datenbank achtet und nicht irgendwie versucht, davon durch irgend so ein komisches ORM-Rahmenwerk zu abstrahieren, ist das gar nicht mehr so schwer, auf in der Anwendung jeweils die gültigen Daten zu haben.
> Der andere soll ja nur auf
Reserve vorhanden sein. Ist der EJB container eines Appservers hierfür zuständig? (Geronimo?)
Das ginge auch - aber wenn du keinen gesteigerten Wert auf verteilte Transaktionen legst, sind EJBs IMHO (doch ich bin da kein Experte) fast immer oversized und overengineered
Oder sollte man hierfür besser .Net wählen? Welche Techniken hat eigentlich .Net in dem Bereich?
MS SQL (Oracle ginge auch). Will sagen: Microsoft stützt sich AFAIK direkt auf die eigene Datenbank ab. Mit ADO.NET hast du dann eine Datenbank-Zugriffsschicht und mit C# 3.0 wirst du mit DLINQ bzw. XLINQ eine bequeme Zugriffsmöglichkeit direkt aus C# und anderen .NET-Sprachen bekommen.
Mit Net hatte ich nach wie vor noch so gut wie gar keine Konfrontation.
Dann bleibe bei Java - das wäre mein Tipp. Es ist schon schwer genug in einer Sprache die man kennt. Warum jetzt noch ein Risiko eingehen und eine neue Technologie hinzunehmen?
Abschreckend finde ich hierbei z.b. die Möglichkeit in komischen Sprachen wie Visual Basic zu programmieren ;o) Der Mangel an
Das meinst du jetzt nicht ernst? Es kann dir doch egal sein, was noch alles geht, wenn du mit C# zufrieden bist. Ich finde es ist ein großer Vorteil, das man dort mehr Auswahl als bei Java hat, wo eben nur Java geht :)
hochwertigen, frei Verfügbaren Entwicklungsumgebungen würde mich privat auch abschrecken. Andererseits ist wohl etwas wie Visual Studio im komerziellen Bereich durchaus machbar.
Noch gibt es Visual Studio Express 2005 als Beta kostenlos.
Und hat nicht gerade erst eine Studie von Microsoft festgestellt, dass die Kosten von VS.NET geringer sind als die von Eclipse, wenn man nur richtig rechnet und all die komischen Tools, die bei der teuersten VS.NET-Version für knapp 10.000 EUR alle dazu kauft? Wie sie dann trotzdem auf 100.000 EUR pro Entwickler gekommen sind, will ist erst gar nicht wissen...
An Java mag ich z.b. das es sich relativ konsequent weiterzuentwickeln scheint. Selbst mit opengl komm ich jetzt prima klar ;o) (Hab da im übrigen schon eine jogl bridge in swt 3.2 entdecken koennen. Nicht mehr lange dann ist auch das benutzbar). Die Releases sind zumeist
Was ist denn daran jetzt nicht zu benutzen?
stabil und auch "relativ" gut Abwärtskompatibel. Auch wenn z.b. der Bytecode von Java 5 nicht mehr zur 4er VM passte, so war zumindestens die der Bestandsapp in der Regel mit simplen neucompilieren wieder lauffähig. Bei Net hingegen scheint es hier ja mehr Probleme mit API-Brüchen zwischen den Releases zu geben. Und die paar Dinge die
Meiner Einschätzung nach (nur durch Lesen von Blogs und überfliegen von Release Notes zustande gekommen) ist Microsoft wesentlich kompatibler bzw. sie listen Seitenweise selbst minimale Änderungen auf. Dank Microsofts Versionierungssystem ist auch der Parallelbetrieb verschiedener Versionen von Assemblies kein Problem - das klappt bei Java mit einfachen Jars überhaupt nicht.
nicht mit Java gehen lassen sich dann recht leicht mit JNI loesen.
P/Invoke bei .NET ist viel komfortabler.
Zusammenfassende Frage: Wenn Ihr für ein derartiges Projekt (Neuentwicklung) eine Technologie wählen müsstet, dann würdet Ihr aus welchem Grund zu was greifen?
Ich würde erstmal mehr über das Projekt wissen wollen und selbst basierend auf dem Problem eine Lösung wählen wollen und nicht sofort von dir die möglichen vorausgewählten Technologien vorgesetzt bekommen :) Wer weiss, vielleicht wird ja TCP/IP gar nicht gebraucht. Vielleicht ist ja UDP meiner Einschätzung nach besser...
-- Stefan Matthias Aust // Ergo bibamus, ne sitiamus, vas repleamus! .
- Follow-Ups:
- höhere Verfügbarkeit, war: Re: Technologiewahl (Net vs. Java?)
- From: Olaf Krische
- Re: Technologiewahl (Net vs. Java?)
- From: cybernd
- höhere Verfügbarkeit, war: Re: Technologiewahl (Net vs. Java?)
- Prev by Date: Re: Schnellste dynamische Datenstruktur um int zu speichern
- Next by Date: Re: Allgemeine Exception-Behandlung?
- Previous by thread: Re: Technologiewahl (Net vs. Java?)
- Next by thread: Re: Technologiewahl (Net vs. Java?)
- Index(es):
Relevant Pages
|