building the enterprise - de 2003 - 2007 developintelligence llc building the enterprise the tools...
TRANSCRIPT
© 2003 - 2007 DevelopIntelligence
Presentation Topics
In this presentation, we will discuss:Overview of Java EEJava EE PlatformJava EE Development
© 2003 - 2007 DevelopIntelligence
Objectives
When we are done, you should be able to:Describe how Java EE and Java SE fit togetherList 3 technologies found in Java EEDescribe the basic development lifecycle for aJava EE application
© 2003 - 2007 DevelopIntelligence
What is Java EE?
A community-defined extension to the Java SEplatform
Separate controlling specificationDefined in context of extending Java SE to enterprise
An enterprise information systems platformEnables the development of Java-based middle-tierapplications requiring “ility” characteristicsExtends Write-Once-Run-Anywhere (WORA) tomiddleware
A standard architecture definingAn application programming modelAn application execution platform
© 2003 - 2007 DevelopIntelligence
History of Java EE
Java EE was not an “intent” of the original Java designIt was more of a side-effect of the Java-web mergerClient-side web-based Java lost its luster and positioning tothings like FlashThings like WORA, threading, networking, and security weredesirable characteristics on the server-sideBut, Java didn’t have a formal server-side “platform”
Java EE was more “evolutionary” than revolutionaryInitially addressed web-applicationsQuickly enhanced to address “middleware”Further enhanced to support Web services and SOA
© 2003 - 2007 DevelopIntelligence
Motivations for Java EE
Provide an easy to use framework to buildmiddle-ware applications that:
Enables developers to focus on business logic insteadof “integration” logicCreates middleware server transparencyRemoves complexities of large-scale distributedapplications
Provide a managed execution environment that:Addresses “ility” characteristicsAllows secure and protected side-by-side deploymentsOffers common “services”
© 2003 - 2007 DevelopIntelligence
Industry Support
Originally, Java EE was developed andmaintained by SunToday, Java EE is governed by the JavaCommunity Process (JCP)
Java EE its own Java Specification Request (JSR-244)Developed by an expert group represented bycompanies like: SAP, BEA, JBoss, IBM, Novell, Oracle,HP, Sun, BorlandEach technology within Java EE is governed by anindividual JSR, each with its own expert group
Current focus of Java EE community issimplification
© 2003 - 2007 DevelopIntelligence
Application Programming Model
Programming model adopts a “managed” modelDesign and implementationLifecycleTransactions and securityDeployment
Application implementation adheres to modelBuilt around abstracted interactions with Java EEexecution environmentInteractions provided through Java EE platform APIs
© 2003 - 2007 DevelopIntelligence
Application Execution Platform
Provides a “managed” execution environmentJava EE compliant applicationsExecution environment is a realizedimplementation of the Java EE APIs
Vendor implementation of the Java EE specIncludes core Java EE servicesReferred to as Java EE Application servers orcontainers
Relies on the Java SE platformJava EE is NOT an execution platform by itselfMost Java EE application servers are implemented asJava SE platform applications
© 2003 - 2007 DevelopIntelligence
Java EE Platform Diagram
Java SE PlatformSolaris Linux Windows Mac OS X
Java EE API ImplementationsJava EE APIs
App
Java EE Application Server
App App App
© 2003 - 2007 DevelopIntelligence
Java EE Platform
Java EE Platform supports three primaryapplication types
Web applicationsEJB applicationsEnterprise applications
Each application type has its own set ofcharacteristicsApplications execute in “domain” relevantcontainers
© 2003 - 2007 DevelopIntelligence
Java EE Containers
Java EE defines two primary types of containers:Web containers - managed environment for webapplicationsEJB containers - managed environment for EJBapplications
A compliant Java EE application server mustprovide an implementation for both types ofcontainers
Considered an “enterprise container”Containers function “on top of” the standard Java EEcore servicesEach container type has its own set of characteristics
© 2003 - 2007 DevelopIntelligence
Java EE Server Technologies
A major design motivation within Java EE is WORAGoal is to extend WORA into middlewareSpecifically at the Web and EJB container levels
There are two ways to create WORA:Define an application programming model and its supportingtechnologiesDefine a set of services to support the programming model
Java EE defines the supporting services as “StandardServices”
Standard Services address everything from HTTP todatabase interactionsA fully compliant Java EE server must support all StandardServices
© 2003 - 2007 DevelopIntelligence
Java EE Standard Services
CommunicationEmailXML ProcessingTransactionsMessagingManagement
DatabaseNaming and DirectorySecurityWeb ServicesLegacy systemsDeployment
© 2003 - 2007 DevelopIntelligence
Container Technologies
Remaining technologies defined in Java EEspecification address application developmentTechnologies are associated with an application-centric container
Relatively clean separation of technologies betweencontainer typesTechnology sharing is at the Standard Services level
Technologies may exist as “standard”implementations or vendor implementations
© 2003 - 2007 DevelopIntelligence
Web Container Technologies
Web containers provide “robust” web applicationenvironmentsA web container supports the followingtechnologies:
ServletsFiltersJava Server Pages (JSP)JSP Standard Tag Library (JSTL)Java Server Faces (JSF)
© 2003 - 2007 DevelopIntelligence
EJB Container Technologies
EJB containers provide state, workflow, andpersistent application environmentsAn EJB container supports the followingtechnologies:
Session Beans (SB)Stateful (SFSB)Stateless (SLSB)
Entity Beans (EB)Bean Managed Persistence (BMP)Container Managed Persistence (CMP)
Message Driven Beans (MDB)
© 2003 - 2007 DevelopIntelligence
Java EE Application Diagram
JSP
Servlet
JSF
JSTL
SB
MDB
EB
WSI
Standard Services
Java SE Platform
Web Container& Technologies
EJB Container& TechnologiesEnterpriseContainerJava EEPlatform
© 2003 - 2007 DevelopIntelligence
Java EE ApplicationsJava EE applications are built usingcomponents, modules, and deployment unitsThe Java EE application structure provides:
Functional encapsulationReusabilitySimplified configurationTransportability
Modular-oriented development encouragesGood Object oriented designSeparation of functional concernSeparation of development concern
Has been considered the “struggle” of Java EE
© 2003 - 2007 DevelopIntelligence
Components and Modules
Components enable application developmentBuilt using Java SE and Java EE technologiesComponents may be “homegrown” or third-partyComponents are grouped together as modules
Modules represent basic unit of a Java EEapplication
One or more component per moduleModules consist of same “component type”Modules are described by deployment descriptorsModules and deployment descriptors packaged togetheras deployment units
© 2003 - 2007 DevelopIntelligence
Deployment Units
Java EE applications may consist ofA Single deployment unitMultiple deployment units packaged together as a singledeployment unit
Deployment units are the standard way topackage and deploy Java EE applications
Leverage Java SE deployment conceptHave strict structure governing contents
Java EE defines three deployment units:Web Application Archive (WAR)Java Archive (JAR)Enterprise Application Archive (EAR)
© 2003 - 2007 DevelopIntelligence
Java EE Development Roles
Java EE application development processrequires broad range of competencies
Java development skillsSource control / configuration skillsSystem administration skills
To simplify “jack of all trades” skill requirement,Java EE specification defines set of PlatformRolesNot all platform roles are realized within asoftware development organization
© 2003 - 2007 DevelopIntelligence
Java EE Platform Roles
Java EE Product ProviderApplication component providerApplication assemblerDeployerSystem AdministratorTool ProviderSystem Component Provider
© 2003 - 2007 DevelopIntelligence
Summary
Java EE platform defines an applicationprogramming model and an executionenvironmentJava EE platform enables WORA in middlewareJava EE is comprised of Standard Services,Web Technologies, and EJB TechnologiesJava EE uses a deployment unit strategy forapplication packaging and deployment