Wahl der richtigen Entwicklungsumgebung

JoergCarstens

Grünschnabel
Hallo,

nachdem wir in den letzten Jahren unsere recht komplexe aber in die Jahre gekommene Rechnungswesen-Software (auf IBM AS/400 und in RPG geschrieben) modernisiert und mit einem für uns enormen Aufwand mit Client-Server-Technologie angereichert haben, haben wir uns nun dazu entschieden, die Anwendung komplett in Java neu zu entwickeln.

Da wir selber noch über recht wenig Erfahrungen in diesem Umfeld verfügen, haben wir ein erstes kleines Pilot-Projekt an ein Softwarehaus in Indien vergeben.

Man entwickelt dort z.Zt. unter Verwendung von J2EE, Java Servlet, JSP, Struts, Eclipse, MySql, JBoss...

Mal abgesehen von dem Problem, dass man unsere fachlichen Anforderungen weitestgehend noch nicht versteht, wird uns nun gesagt, dass viele unserer technischen Anforderungen, die in unserer heutigen Client-/Server-Architektur alle realisiert sind, in einer reinen HTML-Umgebung nicht möglich sind.

Die ersten Ergebnisse sind noch sehr wenig überzeugend.

Zu Java Applets steht man negativ, aufgrund der bei den Browserherstellern verwendeten veralteten JRE's, der Übertragungszeiten sowie weiterer Risiken
(wird Microsoft zukünftig Applets noch unterstützen...).
Andere Techniken (Verwendung von Java Script, Java Web Start) haben nach unserer Recherche auch Nachteile.
Für uns erscheint das ganze z.Zt. ziemlich undurchsichtig und verwirrend:

- Haben wir uns für die falsche Entwicklungsumgebung entschieden?
- Gibt es bessere Alternativen?

Für uns ist zwar die web-weite Verfügbarkeit sowie die Plattformunabhängigkeit interessant aber kein absolutes Muß. Unsere Kunden setzen heute nahezu ausnahmslos die Microsoft-Produkte ein und der Einsatz wird in aller Regel vermutlich nur im Intranet erfolgen. In jedem Fall dürfte es keinerlei Probleme bereiten, z.B. eine bestimmte JRE-Version als Installationsvoraussetzung anzugeben. Heute haben wir eine Installationsdauer von ca. 1/2 Stunde je Client
mit 5 unterschiedlichen Softwarekomponenten. Zu berücksichtigen ist auch, dass wir es bei unseren Kunden häufig mit Massendaten zu tun haben (teilweise mehrere Millionen Datensätze in einer Datei!).

Gibt es jemanden der uns hier eine Empfehlung bezüglich der Entwicklungsumgebung geben kann?
Über entsprechende Antworten würde ich mich riesig freuen.

Jörg
 
Hm zuersteinmal ist dein Topic irreführend.

Unter Entwicklungsumgebung versteht man üblicherweise eine IDE; also Integrated Developement Environment. Das meint jetzt die Art des aufgebohrten Editors den du mit Java benutzen würdest.

Es scheint mir aber als wolltest du nicht darauf hinaus.

Bei deinen Randbedingungen kann man dir aber leider auch keine wirkliche Antwort geben denn sie lautet: Blubb

Ich für meinen Teil würde bei deiner Anforderung vermutlich Richtung Webstart schielen. Denn zuvor ein aktuelles jre (Bis deine App fertig ist wird vermutlich 1.5 verfügbar sein) zu installieren ist kein allzu hoher Aufwand. Auch nicht höher als z.B. dot Nets Runtime Umgebung zu installieren.

Nach der Installation dieses JREs kann man direkt die Webstart Uri ansurfen und voila es läuft. (Man könnte es auch per CD starten, denn Webstart ist es egal wenn die erste Version von der CD kommt. Als Beispiel .. )

Der Hinweis "mit HTML nicht möglich" deutet auf eine featurereiche GUI. In dem Falle könntest du auch alternativ XForms zum aufbohren der HTML Forms anschielen. In dem Falle benötigst du aber erst recht ein Browser Plugin, bzw. eine standalone App die des XForms mächtig ist.

Das Dumme ist nur das sich XForms nach wie vor nicht durchsetzen. (Leider)

Aber solange du nicht detailierter deine Anforderungen spezifizierst wird dir niemand helfen können ;o) Zudem denke ich fast das du mit einer derartigen Frage in einem derartigen öffentlichen Forum an der falschen Stelle bist. Hol dir lieber einen Consultant ins Haus dem du dann im Gespräch die exakten Rahmenbedingungen vermittelst. Erst dann kann eine akkurate Entscheidung getroffen werden.

So oder so: Java ist nicht umbedingt die falsche Wahl.

Denn eine standalone Java Applikation ist ein vollwertiger Client. Dank Webstart kann der Kunde diese von einem zentralen Punkt aus updaten -> automatisch. Er muß jedoch dafür sorgetragen das eine aktuelle JRE installiert wurde (eine aktuelle die auch Webstart enthält).

Und wenn dir diese Distributionsvariante nicht zusagt kannst du einen installer für die Zielplattform Windows erstellen. Eine Exe die mit Dialogführung die App installiert (alternativ auch automatisiert per script). Diese installiert gegebenfalls gleich noch das benötigte JRE mit und sorgt dafür das alle Abhängigkeiten erfüllt werden. Mag ja sein das so etwas für ein 0815 hobbyprojekt Overkill ist, aber für ein komerzielles Projekt wie deines ist dies durchaus machbar. Es gibt genügend Firmen die Produkte / Installer für diesen Zweck anbieten.

hth
cybi
 
Vielen Dank für deine wirklich ausführliche Antwort.

Du hast sicher Recht, dass eine ausführliche Beratung hier angebracht ist. Das ist auch schon angeleiert.
Eine komplette Beschreibung aller Anforderungen hätte in jedem Fall den Rahmen des hier Möglichen gesprengt.

Mein Anliegen war es lediglich, ein Gefühl dafür zu bekommen, in welche Richtung eine Lösung gehen könnte, da offensichtlich der aktuell verfolgte Weg nicht zum Ziel führt.
Insofern ist der Hinweis auf Webstart schon wichtig für mich, da ich insbesondere über die Praktikabilität und den Einsatz in größeren Projekten noch nichts gelesen habe.
Von XForms habe ich noch nie etwas gehört, ich habe auch gedacht, dass der Weg über Applets ein gangbarer Weg wäre, aber bisher haben mir alle davon abgeraten und die Gründe kann ich noch nicht im Detail nachvollziehen.

Gruß Jörg
 
Gegeben sei:

Der User deiner Applikation startet diese "irgendwie".
Danach arbeitet er mehre Stunde mit dessen Interface.

Betrachtung Applet:
Wieso HTML drumherum?`Wieso im Browser verankert, wenn der user doch nur am Applet selbst interessiert ist?

Wieso also nicht Webstart anstelle vom Applet?
Hierbei wird per Uri (kannst auch außerhalb des Browsers starten) die Webstartapplikation gestartet. Danach kann der Browser drumherum geschlossen werden wodurch du auch keinen html Ballast zusätzlich zur Applikation hast.

Wann Applet?
Wenn du 80% als HTML Interface hättest, aber die restlichen 20% so aufwendig sind das du sie mit html nicht umsetzen kannst. Dessen GUI Elemente könnten nun mit einem Applet im HTML integriert werden.

====

XForms:

Gegeben sei eine Liste. Du möchtest einen Eintrag hinzufügen, einen ändern und einen weiteren löschen ...

pure HTML sieht nun so aus:

Hinzufügeknopf
=> Server => Seite neu aufbauen
Ins Formular eintippen
=> Server....
Änderungsknopf bei bestehendem Element drücken
=> Server ...
Formulardaten reinklopfen
=> Server ...
etc.

Nicht gerade Prikelnd oder?

Bei XForms hingegen:
Site dargestellt
Hinzufügeknopf drücken.
Formular ausfüllen.
Änderungsknopf drücken
Formular drücken.
entfernen knopf drücken
Bestätigungsknopf drücken
=> Server => Alle Änderungen bestätigt.

Der Server / Client Pingpong entfällt zugunsten einer featurreicheren Gui. Du kannst auch im Formular Event getrieben arbeiten etc.

Aber wie schon gesagt, dieses Protokoll ist nicht weit verbreitet. Du bräuchtest also ein BrowserPlugin um XForms zu verwenden. Resultat: Du könntest gleich bei Webstart bleiben und hättest damit vielleicht sogar etwas mehr Potential ;o) (Da erst am Ende des Formulars gedrückt wird hast du keine Transaktionssicherheit in allen Vorgängen zwischen dem Server-Client Pingpong. Bei Webstart kannst du hier intelligente Maßnahmen eigener Wahl integrieren, brauchst aber dennoch die Gui nicht ständig komplett refreshen)

Zu Webstart selbst: Probier es doch einfach mal aus.

Hinter folgenden Sites befinden sich Webstart Beispiele: (Die jnlp Links)

Die beiden Links in der Mitte
http://xml.apache.org/batik/batikDemo.html

Mitte unten "Webstart"
http://www.jgoodies.com/freeware/jdiskreport/

Rechts oben der große blaue Webstart Knopf:
http://www.jgraph.com/tryit.html

Versuch vor allem auch die Apps danach zu schließen und diese danach erneut anzusurfen. Dabei bermerkst du das er den Bytecode am Client cached.

Für mich als Anwender eine feine sache, denn ich weiß das ich immer mit der aktuellen Version arbeite. Mal ehrlich, bei einem OnlineSpiel ist es doch auch gang und gebe das jedesmal beim Start die App bei Bedarf aktualisiert wird. Ebenso willst du den Admins die Möglichkeit geben das die App automatisch am laufenden gehalten wird.

Bei Zertifikatsabfragen folgendes berücksichtigen: Da es ein Intranet ist, können die Admins die nötigen Zertefikate angemessen verteilen. Sind sie hinterlegt verschwinden die "Warnungen". Handelt sich ja beid en Beispielen um Internet und somit um potentiell gefährliche Programme.

Ansonsten bleibt dir noch immer die Möglichkeit einer standalone Applikation. Diese wird mit einem normalen Installer installiert und steht auf die Art zur Verfügung. Bei der Kommunikation zwischen Client und Server kannst du nun direkt serialisiertes Java verwenden oder z.b. auch auf einen Webservice setzen um so vielleicht mal später bei Bedarf eine andere Form von Client dranzuhängen. So oder so: Du kannst priniziell alles realisieren. Die Frage ist nur Welche Kosten sind mit welchem Zusatznutzen verbunden.

hth
cybi
 
Was mich ja interessiert ist, wie ihr mit einem indischen Softwarehaus Geld sparen möchtet, wenn die Kommunikation mit den Entwicklern nicht funktioniert?
"Mal abgesehen von dem Problem, dass man unsere fachlichen Anforderungen weitestgehend noch nicht versteht,.... "

Wenn in eurem Kundenumfeld nur Microsoft verwendet wird, wäre es nicht verkehrt sich auch mit .NET zu befassen.
 
Das mit den Indern habe ich mich auch schon irgendwie gefragt. Ich meine das was ich im Moment runtertexte könnten Ihm ja genauso diese Programmierer sagen. Grob gesagt: Task: Erklärt mir die aus eurer Sicht möglichen Alternativen.

Java ja/nein:

Ich entnahm dem "nahezu" das er doch irgendwie den versteckten Wunsch zu haben scheint, auch die wenigen Kunden bedienen zu können die nicht mit Windows arbeiten. Ist ja leider auch zudem eine strategische Entscheidung, denn man kommt ja eigentlich dem Kunden entgegen, wenn man Ihn nicht auf seinem Windows festnagelt.

Die Frage ist also:
Wieviel kostet die .Net realisierung.
Wie teuer ist die Java Lösung.

Sind sie gleich => Go Java
Ist Java Teurer => Wieviel teurer ist mir die Plattformunabhängigkeit Wert.

So oder so: Eigentlich alles Dinge die nur er selbst wissen kann, denn er weiß ja die Anforderungen. Aber eventuell ja Anregungen, in welche Richtung er evaluieren müsste.

cybi
 
Original geschrieben von Cybernd
Gegeben sei:
...
Wieso also nicht Webstart anstelle vom Applet?

Die von dir genannten Links werde ich auf jeden Fall ausprobieren. Nochmals vielen Dank. Was mich halt bisher an WebStart gestört hat ist, dass ich wieder Last auf den Client lege. Das machte ja gerade den Reiz an der Browser-basierten Lösung aus. Wobei ich eben nicht einschätzen kann, wie stark der Client bei einer doch recht komplexen Lösung belastet sein wird.

Gruß Jörg
 
Original geschrieben von AKST
Was mich ja interessiert ist, wie ihr mit einem indischen Softwarehaus Geld sparen möchtet, wenn die Kommunikation mit den Entwicklern nicht funktioniert?
Nun zunächst mal besteht da ja schon ein gewisser finanzieller Anreiz, (wir sind halt nicht die cis ag, die für ihr semiramis angeblich 20 mio eur investiert hat). Außerdem sagte ich schon, dass es sich zunächst um ein kleines abgegrenztes Pilotprojekt handelt, mit dem wir testen wollten, ob diese Vorgehensweise ein gangbarer Weg ist und schließlich stehen wir mit unseren Java-Kenntnissen erst ganz am Anfang (wir haben gerade die erste Schulung hinter uns).

Abgeschrieben haben wir das Ganze aber auch noch nicht, wir hoffen noch, dass es sich lediglich um Startschwierigkeiten handelt. Allerdings ist schon jetzt absehbar, dass der konzeptionelle Aufwand bei uns viel höher sein wird als eingeschätzt und als er vermutlich bei einer Programmierung in Deutschland wäre.

Wenn in eurem Kundenumfeld nur Microsoft verwendet wird, wäre es nicht verkehrt sich auch mit .NET zu befassen.

Da hast du grundsätzlich recht. Da wir langjähriger Partner der IBM sind orientieren wir uns allerdings schon an deren Produktstrategie und IBM gibt eindeutig Java (und Websphere, Linux...) vor.

Gruß Jörg
 
Computer Inder

moin, moin,

mich würde nur mal interresieren ob die "Computer"-Inder wirklich so toll sind wie alle sagen - zumindest demotivieren meine Profs. mich damit.

Anderseits weiss ich von Freunden die in internationalen Projekten arbeiten dass ein durschnitlicher einheimischer Informatiker 2 bis 6 durschnitliche amerikansiche Informatiker ersezt (kommt immer auf die Erzählung drauf an).

Also wie schauts mit den Computer-Indern aus?
Oder läuft das in der Wirtschaft so wie aufn Bau - bilig aber Pfusch, ist aber trotzdem in Ordnung.

mfg

Luxor
 
Re: Computer Inder

naja, das ist sicher nicht so einfach zu beschreiben.
Außerdem beschränkt sich unsere Erfahrung bisher ja nur auf eine Firma.
Über die Qualifikation von indischen Programmierern kann ich relativ wenig sagen, ich habe aber ähnliches gehört wie du von deinen Profs. .

Aber die arbeiten völlig anders als wir es in Deutschland gewohnt sind. Einer ist Projektleiter, dann gibt es mehrere Programmdesigner und jede Menge Codierer. Die Codierer machen das was sie gesagt bekommen und denken wohl wenig oder gar nicht darüber nach was sie machen. Arbeitsleistung kostet wenig in Indien und es gibt wohl viel mehr qualifizierte Programmierer als Jobs.

Es gibt dort wohl Leute, die arbeiten für etwa 60€ im Monat, und stehen den ganzen Tag an einem Drucker um jedes einzelne Blatt nach dem Ausdruck umzudrehen und wieder einzulegen. Das ist wohl billiger als einen Duplex-fähigen Drucker anzuschaffen!

Bisher ist aber unser Hauptproblem, dass man unsere Anforderungen überhaupt nicht versteht. Denken wir zu kompliziert, sind es Sprachprobleme?

Ich weiß nicht, ob dir meine Antwort helfen konnte, aber mehr fällt mir dazu im Moment nicht ein.

Gruß Jörg
 
Zurück