Jakarta EE: verschil tussen versies
Verwijderde inhoud Toegevoegde inhoud
poets |
"componentgebaseerde" is geen Ned. - Pas op voor te veel personificatie: "De ontwikkelaar van EJB's kan veel ervan vaak zelfs gebruiken zonder erbij na te hoeven denken", "de ambitie van J2EE" e.d. |
||
Regel 1:
{{Portaal|Javaplatform}}
'''Java 2 Enterprise Edition''' ''(J2EE)'' is een ontwikkelplatform van het [[software]]bedrijf [[Sun Microsystems]].
Bij het gebruik van [[programmeertaal Java|Java]]programma's op (web)[[server]]s, wordt vaak J2EE gebruikt. J2EE is een uitbreiding van de [[J2SDK]], Java 2
Het J2EE-platform is een [[platformonafhankelijk]]e, volledig geïntegreerde oplossing die een open markt creëert waarin elke leverancier kan leveren aan elke klant. Zo'n soort markt moedigt leveranciers aan om te innoveren en voorkomt dat klanten afhankelijk worden gemaakt van een eigen technologie. Op deze manier profiteren klanten meer door verbeterde producten en betere ondersteuning.
==Conceptuele basis==
De Java 2 Enterprise Edition is een uitbreiding
* Ondersteuning voor de infrastructuur van een gedistribueerde, zakelijke applicatie
* Ingebouwde ondersteuning voor authenticatie
* Ingebouwde ondersteuning voor gelijktijdig gebruik door
* Geautomatiseerde data-opslag
* Ingebouwde methoden om data-integriteit te garanderen
* Ingebouwde ondersteuning voor Enterprise Application Integration, om oudere applicaties mee te ontsluiten
* Ingebouwde ondersteuning voor ''naming services''
==Architecturele basis==
J2EE is opgetrokken rond het idee van een ''three-tier
Op basis van deze architectuur ondersteunt J2EE de ontwikkeling van twee klassen van applicaties: lichtere applicaties of webapplicaties en de zeer zware, zakelijke applicaties.
===Kleinere, lichtere applicaties en webapplicaties===
Kleinere, lichtere applicaties in J2EE worden over het algemeen opgetrokken uit een ''view-tier'' aan de voorkant bestaande uit webpagina's (een combinatie van [[HyperText Markup Language|HTML]] en [[JSP|Java Server Pages]]) en een ''model-tier'' of ''database-tier'' aan de achterkant, al dan niet in combinatie met een ''controller-tier'' opgebouwd uit [[servlet]]s er tussenin.
In deze situatie bestaat de interface richting de gebruiker uit een combinatie van statische webpagina's en webpagina's die (gedeeltelijk) dynamisch opgesteld worden bij het laden vanaf de webserver -- dit laatste wordt gedaan door de [[JSP]]'s (webpagina's met stukken code erin verweven) of door servlets (uitbreidingen op een webserver die in staat zijn desnoods hele webpagina's aan een stuk te genereren). De dynamische webpagina's zijn in principe in staat om direct met de achterliggende database te communiceren, in welk geval ze ook de zakelijke logica bevatten en dus feitelijk de ''middle-tier'' "absorberen".
Een uitgebreidere variant van dit principe is die waarin servlets ingezet worden als een ''middle-tier
De laatste opzet biedt een aantal voordelen boven de eerste. Deze voordelen bestaan voornamelijk uit toegenomen flexibiliteit van de applicatie (in de vorm van de mogelijkheid om
===Zwaardere, zakelijke applicaties===
Het bijzondere nadeel van de bovenstaande benadering is dat de ontwikkelaar van een dergelijke applicatie er zelf zorg voor moet dragen dat zijn applicatie zichzelf niet gaat "bijten" bij gelijktijdig gebruik door
Anders is dit als er gebruik wordt gemaakt van [[Enterprise JavaBeans]] (min of meer het kroonstuk van de J2EE).
Om dit te bereiken maakt een EJB stevig gebruik van een zogeheten ''decorerende proxy'', in J2EE-termen een ''container'' geheten. In dit systeem schrijft de ontwikkelaar min of meer alleen maar de interessante stukken van de EJB en laat hij zijn code verder door de
==Ondersteunende API's==
Hoewel J2EE als platform ongetwijfeld het meest bekend is om zijn component-technologieën ([[Enterprise JavaBeans|EJB]] en [[servlet]]s plus [[JSP]]'s) die het de ontwikkelaar mogelijk maken om een gedistribueerde, zakelijke applicatie op te bouwen uit conceptueel nette, gescheiden en herbruikbare componenten, schuilt de werkelijke kracht van J2EE als ontwikkelplatform niet direct in de aanwezigheid van deze component-technologieën.
Veel belangrijker dan de aanwezigheid van de componenten zelf is ongetwijfeld dat J2EE de component-technologie combineert met [[Application Programming Interface|API's]] om een aantal zaken te regelen, en niet alleen dat, maar ook deze API's op een
Tot de ondersteunende technologieën van het J2EE
Al deze API's staan de J2EE-ontwikkelaar ter beschikking. De ontwikkelaar van
==Leverancierneutraal==
De J2EE-specificatie geeft een uitgebreide opsomming van de faciliteiten die een J2EE-omgeving moet bieden, inclusief
Dit biedt voordelen met betrekking tot toekomstige ondersteuning en toepasbaarheid van ouder wordende applicaties.
De specificatie geeft echter niet aan hoe een en ander geïmplementeerd dient te worden - dat laat de specificatie over aan de maker/verkoper van de omgeving. Het gevolg hiervan in de praktijk is dat de verschillende J2EE implementaties van de diverse leveranciers niet 100% compatibel met elkaar zijn; wat op het ene platform ontwikkeld is, draait niet noodzakelijkerwijs zonder aanpassingen op de applicatieserver van een andere leverancier. Daarmee wordt ingeleverd op de ambitie van J2EE om een platform te zijn waarin de omgeving voor softwareontwikkeling en die voor het gebruik van de software volledig los van elkaar staan en ligt een ''[[vendor lock-in]]'' ("koppelverkoop") toch weer op de loer.
==Nadelen van J2EE==
Het belangrijkste nadeel van J2EE is ongetwijfeld de complexiteit van het opzetten en beheren van het ondersteunende systeem. Servermachines, applicatieservers, databaseserver, instellingen van al deze onderdelen, het zijn allemaal zaken die tot in de puntjes verzorgd moeten zijn om een goed
== Verwijzingen naar J2EE-applicatieservers ==
Om een J2EE-applicatie te kunnen gebruiken is een J2EE-applicatieserver nodig. De applicatieserver implementeert de door de J2EE-specificatie beschreven
Er zijn allerlei applicatieservers beschikbaar:
*[[Oracle Corporation|Oracle]]
*[[BEA]]
Regel 70:
*[[Macromedia]]
*[[Novell]]
*[[JBoss]], [[Opensourcesoftware|
*[[Apache (webserver)|Apache]],
*Orion Application Server,
[[Categorie:Java (programmeertaal)]]
|