Was ist die J2EE genau und wann braucht man sie?



  • Hallo!

    Ich bin seit einigen Jahren C++ Programmierer.

    In der Zeit habe ich mich immer an Java vorbeigemogelt. Nun habe ich mich jedoch aufgrund von verfügbaren J2EE Projekten dazu entschieden, mich ein wenig einzuarbeiten.

    Was ich bisher kannte und womit ich arbeitete waren ganz normale Javaanwendungen, welche man mit der Standardedition entwickeln konnte. ZB Konsolenanwendungen.

    Mir war lange Zeit gar nicht von dieser Enterprise Edition und dessen Ausmaß bewusst.

    Als ich mich entschloss, mich in die EE einzuarbeiten, habe ich erstmal in Wikipedia gelesen worum es dabei geht. Scheint ja ein extrem komplexes und vielschichtiges Ding zu sein.

    Was ich verstanden habe (stimmt es so?):

    - J2EE hat mit der J2SE nicht sonderlich viel zu tun und ist vor allem für Unternehmen gedacht. J2EE Systeme werden meist direkt auf Unternehmen zugeschnitten.
    ===> Gibt es also überhaupt J2EE Dinge, die auf jedem Rechner laufen?

    - J2EE Komponenten benötigen diesen Application Server.

    - Dieser enthält verschiedene Container. zB Ist er nötig, um auf einem Webserver Java Applets darstellen zu können (evtl. lieg ich hier auch voll falsch)

    - Weiter enthält er einen Container für Enterprise Java Beans. Doch wo unterscheiden sich diese Enterprise JBs von normalen Java Beans? DIese kenne ich als ganz einfache Klassen, welche zB verwendet werden können, um in Applets Steuerelemente zu verwirklichen. Ich weiß hier gibts Entitiy Beans und Sessions Beans etc. Doch wozu diese Unterteilung? Von diesen habe ich nicht wirklich viel verstanden.

    Mir scheint dieses gesamte J2EE System äußerst unflexibel und ich verstehe den wirklichen Sinn dahinter nicht. DAs macht es vermutlich auch so schwer für mich, zu verstehen, wie man damit arbeiten kann.

    Vielleicht kann mir mal jemand ein wenig Licht ins Dunkel von J2EE bringen.
    Wozu braucht man es? Wie wird es gebraucht? In Wikipedia ist alles nur äußerst theoretisch beschrieben ohne jegliche Praxisbeispiele... so kommt mir alles so extrem unflexibel vor... (hach wie schön C++ doch ist)

    Viele Grüße!



  • Ich denke ich sollte mir ein Buch kaufen.. ist wohl sonst etwas aussichtslos durch J2EE durchzusteigen 😉

    Könnt ihr mir welche empfehlen? Ich bin ein sehr erfahrener C++ Programmierern.. Java nur absolute Basickenntnisse...





  • Hallo,

    ich war vor kurzem selbst in dieser Situation. Ich programmiere seit geraumer Zeit in C++. Nun habe ich den Schritt gewagt und mit Java angefangen...

    Aufgrund der Tatsache, dass du wahrscheinlich bereits alle relevanten Konzepte von C++ her kennst, und nicht mehr lernen musst was eine Variable ist :), würde ich dir eine Referenz über die Syntax und über die doch sehr umfangreiche Klassenbibliothek von Java empfehlen.

    Ich habe mich ein wenig mit
    Java GE-PACKTE Referenz von Schildt O'Neil
    eingearbeitet.

    Grüße
    Martin



  • Javanb schrieb:

    - J2EE hat mit der J2SE nicht sonderlich viel zu tun und ist vor allem für Unternehmen gedacht. J2EE Systeme werden meist direkt auf Unternehmen zugeschnitten.

    wenn du so willst kannst du das so sagen

    ===> Gibt es also überhaupt J2EE Dinge, die auf jedem Rechner laufen?

    was für "dinge"? und warum sollten bestimmte "dinge" nich bei dir laufen.

    - J2EE Komponenten benötigen diesen Application Server.

    ja, meistens

    - Dieser enthält verschiedene Container. zB Ist er nötig, um auf einem Webserver Java Applets darstellen zu können (evtl. lieg ich hier auch voll falsch)

    ja, du liegst hier voll falsch.

    Doch wo unterscheiden sich diese Enterprise JBs von normalen Java Beans?

    vielleicht reicht es dir wenn ich dir die gemeinsamkeiten ausfzähle: beide werden durch java klassen repräsentiert.

    Ich weiß hier gibts Entitiy Beans und Sessions Beans etc. Doch wozu diese Unterteilung? Von diesen habe ich nicht wirklich viel verstanden.

    dann lies was darüber.

    Mir scheint dieses gesamte J2EE System äußerst unflexibel und ich verstehe den wirklichen Sinn dahinter nicht. DAs macht es vermutlich auch so schwer für mich, zu verstehen, wie man damit arbeiten kann.

    und mir scheint du hast 0 ahnung von der ganzen materie. weiter kann ich mir nicht vorstellen, dass du angeblich schon mehrere jahre im geschäft tätig bist wenn du so wenig plan hast.

    kauf dir mal nen paar bücher, und davor, mach dir mal klar, was du überhaupt mit j2ee anstellen willst. wenn du das nicht weißt, dann gibts auch keinen grund das zu lernen.

    viel glück 👍



  • Weißt du, wenn man schon merkt dass man keine Ahnung hat, dann sollte man sich auch mit Kommentaren wie "unflexibel" zurückhalten. Du kennst die Java EE 5 (J2EE ist ein veralteter Begriff) nicht, und somit kannst du dir auch kein Urteil erlauben, auch wenn du glaubst der totale Pro zu sein aufgrund deiner C++ Kenntnisse. Sieh es aber wie es ist: Was die Enterprise Edition von Java angeht bist du ein Noob und fertig. Also halte dich etwas zurück.

    Um dir etwas zu helfen:

    Die Java Enterprise Edition ist eine Reihe von Spezifikationen die beschreiben, wie Java innerhalb eines Servers agiert. Anforderungen sind dabei Geschäftstauglichkeit, Stabilität und Sicherheit.

    Java SE -> Client
    Java EE -> Server

    Nun existieren für diese Spezifikationen Implementierungen und konkrete APIs, die du als Entwickler nutzen kannst. Einige Konzepte sind:

    * Enterprise Java Beans zur Implementierung von Geschäftskomponenten
    * Servlets, Java Server Pages und Java Server Faces zur Erstellung von Webanwendungen
    * Die Java Persistence API für das objektrelationale Mapping
    * XML Webdienste
    * (N' Haufen weiterer APIs)

    Die Java EE 5 gestattet dir im Grunde folgendes:

    1. Das Schreiben von skalierbaren Geschäftsanwendungen die problemlos auf mehreren Servern verteilt werden kann.

    2. Anbinden von Thin- (Webanwendungen) und Rich-Clients (Java SE Anwendungen) an komplexe, verteilte IT-Infrastrukturen.

    3. Das Schreiben sehr sauberer Anwendungen

    4. Das Schreiben sehr sicherer Anwendungen

    5. Bla.

    Preis für all das ist, dass man damit nicht Meister wird in dem man sich einen Wikipedia-Artikel reinpfeift.

    Zum Application-Server: Ja, viele Java EE Anwendungen laufen nur innerhalb eines Application-Servers (Glassfish, Sun Java System Application Server, JBoss,...). Da dieser aber auch zentral auf einem Server laufen wird, und du nicht jedem Anwender einen Anwendungsserver draufhauen wirst, ist das halb so schlimm. Außerdem hilft dir der Application-Server mit vielen praktischen Dingen, z.B.:

    Schützt er durch sogenannte Security-Realms und Benutzerrollen sehr effizient eigene Anwendungen ohne große Implementierungsarbeit,
    oder er erlaubt dir die Anordnung von XML Webdiensten zu einem BPEL Workflow, was dir die Implementierung von Service Oriented Architecture (SOA) erleichtert.

    Wie war das? Unflexibel? Du hast es hier mit einem sehr flexiblen System zu tun - das Lernen kann es für dich leider nicht automatisieren.



  • Danke für eure Antworten.

    Mit meinem "unflexibel" habe ich mich wohl etwas falsch ausgedrückt.
    Kein Grund gleich so "angepisst" zu reagieren 🙂

    Wenn man ganz normale Anwendungen schreibt - wieso ist dann ein Applicationserver notwendig?

    Klar habe ich 0 Ahnung von J2EE, aber genau das will ich doch ändern.

    Wie habt ihr euch in J2EE eingearbeitet? Gibt eine Vielzahl von Büchern... hat jemand Empfehlungen?



  • javanb schrieb:

    Wenn man ganz normale Anwendungen schreibt - wieso ist dann ein Applicationserver notwendig?

    Nunja, eine ganz normale Anwendung ist es ja nicht wofür JEE 5 eingeführt wurde.
    Die grundlegende Problematik ist, dass ab einem gewissen Punkt eine Anwendung einfach sehr groß wird.

    Der Punkt ist nun, man kann einerseits Anwendungen komplett von Hand organisieren, sich um jeden kleinen Furz Gedanken machen, dafür tausende von Arbeitsstunden investieren, tausende von Codezeilen organisieren, oder man greift zu JEE 5.

    Z.B. entwickelt heutzutage keiner eine Webanwendung ohne einen Server, der schon Sachen wie Verzeichnisse URLs, Standard Antworten, Request Parsing bietet.
    Wozu sich über IP - HTML Protokolle Gedanken machen, wenn ein Webserver das schon kann?

    Vergleich, wozu sich jedesmal über Rollen, Transaktionen, Persistenz, etc Gedanken machen, wenn das auch ein Server erledigen kann 😉

    Mehr will ich dazu nicht schreiben, JEE 5 ist keine Komponente die zusätzliche Funktionen bietet, nein es ist eine Art zusätzliche Abstraktionsebene die es einem erlaubt auf viele kleine Codezeilen zu verzichten und sich auf das Konzept, die Geschäftslogik zu konzentrieren. Änderungswünsche vom Chef? Neue Anforderungen? ... Kein Problem



  • http://java.sun.com/javaee/5/docs/tutorial/doc/

    Java EE ist schon ein hartes Stoff, aber es lohnt auch ;o



  • J2EE kannst du meines Wissens komplett vergessen.
    🙂



  • Wallli schrieb:

    J2EE kannst du meines Wissens komplett vergessen.
    🙂

    ach ja?
    --> http://www.stellenmarkt.de/schnellsuche.php?st=j2ee


Anmelden zum Antworten