Re: Technologiewahl (Net vs. Java?)



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!
.



Relevant Pages

  • Re: porting from C++Builder
    ... the java was growing and, obviously, microsoft initially tried to ... that crowds of developers would rather stay and develop windows applications. ...
    (microsoft.public.dotnet.languages.vc)
  • Re: porting from C++Builder
    ... that's correct and there is a very strong reason for taking this ... the java was growing and, obviously, microsoft initially tried to ... that crowds of developers would rather stay and develop windows applications. ...
    (microsoft.public.dotnet.languages.vc)
  • Re: Microsoft Java almost gone in Vista
    ... Internet Explorer 7 and the Sun JVM also installed, ... one can un-select Sun Java and the Microsoft VM works a bit. ...
    (comp.lang.java.programmer)
  • Re: [Cocoa] Core Data: eine eindeutige ID generieren
    ... die in der Datenbank als 24 Byte Wert abgelegt werden kann. ... was EOF mit den Integers de fakto ... Zum Speichern von Daten innerhalb von Desktop-Applikationen. ... EOF in der heutigen Version ist Java. ...
    (de.comp.sys.mac.programmieren)
  • RE: Find your solutions with real Free eBOOKS!
    ... Early Achiever Microsoft Certified Solution Developer for Microsoft.net ... > Core Java 2, Volume II: ... > The C++ Programming Language ... A Practical Guide using UML ...
    (microsoft.public.dotnet.general)