Jboss Admin Tutorial: Overview of Java Enterprise Edition

ProTech's JBoss Administration Tutorial

Laurent Tonon


1. Overview of Java Enterprise Edition

1.1. What is Java EE?

  • Java EE is an open and standard-based platform for developing, deploying, and managing multi-tier, web-enabled, server-centric, and component-based enterprise applications
  • As a super-set of Java SE, Java EE adds additional specifications, libraries, documentation, and tools.
[Note]Note

Java EE stands for Java Enterprise Edition Java SE stands for Java Standard Edition In addition to Java SE and Java EE Sun released an edition of Java for mobile and resource-constrained devices like cellular phones and PDAs called Java ME (Java Mobile Edition). Before Java 5, these versions were called J2EE, J2SE and J2ME.

1.2. Open and Standard-based

  • Single specification, multiple competing implementations
  • Implementations available as both OSS/free and high-end commercial
  • Vast community resources: books, tutorials, guides, examples, etc.
  • Large developer pool
  • Application portability

Some of Java EE Application Servers available on the market today:

  • Apache Tomcat (Servlet/JSP container only)
  • ATG Dynamo
  • BEA WebLogic
  • Borland Enterprise Server
  • Caucho Resin (Servlet/JSP container only)
  • Fujitsu Software Interstage
  • Hitachi Cosminexus
  • IBM Websphere
  • JBoss AS
  • Mort Bay Consulting Jetty (Servlet/JSP container only)
  • Macromedia JRun Server
  • Novell exteNd
  • ObjectWeb JOnAS
  • Oracle Application Server 10g
  • Pramati Server
  • SAP AG Web Application Server
  • Sun Java System Application Server
  • Sybase EAServer
  • TmaxSoft JEUS
  • Together Teamlösungen EDV-Dienstleistungen GmbH. in cooperation with ObjectWeb Enhydra Server
  • Trifork Enterprise Application Server

1.3. Multi-tier

  • OO framework for integrating together:

    • Clients (e.g. web browsers)
    • Access and presentation components
    • Business components (e.g. ecommerce business logic)
    • Data-stores (e.g. RDBMS)
    • Legacy systems (e.g. order fulfillment)
  • System-level separation of concerns

Figure 1. Multi-tier Architecture

../common/images/javaee_architecture.png

  • Client Tier usually consists of thin clients like web browsers and it makes the request into the Web Tier over HTTP.
  • Client Tier (B2B) is a set of external applications that makes requests into the Business Tier through Web Services over SOAP or directly through Java’s RMI.
  • Web Tier is usually implemented with Servlets, JSPs, and simple JavaBeans, based on the Model-View-Controller design pattern.
  • Business Tier is composed of EJBs and/or plain old Java objects (POJOs).
  • Data Access Tier is either managed by the applications (e.g. BMP, DAO), O/R mapping tools (e.g. Hibernate), or through Container Managed Persistence (CMP).
  • Connector/Messaging Tier allows asynchronous access to legacy systems or other external systems.
  • Legacy/External Tier consists of enterprise information systems.
  • Data Tier is usually composed of RDBMS and/or LDAP Directory Servers.

1.4. Web-Enabled

  • Thanks to Servlet/JSP technology, Java EE applications are automatically web-enabled:

    • Efficient, Java/OO, Easy, I18N, MVC
  • Complete support for web-services

    • Clients
    • End-points

1.5. Server Centric

  • Java EE apps run within a Java EE application server that provides all middle-tier services.
  • Thin (web-based) clients
  • Support for rich clients through RMI, Web Services, etc.

    • The design of such clients is beyond the scope of Java EE

1.6. Component-Based Distributed Architecture

../common/images/javaee_distributed_architecture.png

Java EE applications and services are built out of components that can run in a single or multiple (distributed) Java EE Application Server instances.

1.7. Enterprise Applications

  • Java EE applications are made up of:

    • Presentation logic
    • Business logic
    • Data access logic and model
  • Java EE facilitates separation of concerns

The goal of Java EE is to significantly reduce the cost, time, and complexity of developing and managing multi-tier enterprise applications.

1.8. Java EE Contents

  • Java SE: JVM, Tools, Libraries, Docs
  • Expanded API, Specifications, Tools, Docs
  • Reference development and deployment platform (production-quality) from Sun
  • Compatibility Test Suite
  • Java EE Blueprints
  • Sample code
  • Java EE Brand

1.8.1. Java EE 5 APIs and Technologies :

  • Java SE 5
  • Web Services 1.1, JSR-109
  • Java API for XML-Based RPC (JAX-RPC) 1.1, JSR-101
  • Java API for XML Messaging (JAXM), JSR-67
  • Java API for XML Registries (JAXR) 1.0, JSR-93
  • SOAP with Attachments API for Java (SAAJ) 1.2, JSR-67
  • Management API, JSR-77
  • Deployment API, JSR-88
  • Authorization SPI, JSR-115
  • Java Network Launch Protocol (JNLP), JSR-56
  • J2EE Connector Architecture (JCA) 1.5, JSR-112
  • JavaServer Pages (JSP) 2.1, JSR-245
  • JavaServer Faces (JSF) 1.0, JSR-127
  • JavaServer Pages Standard Tag Library (JSTL) 1.1, JSR-52
  • Java Servlet 2.5, JSR-154
  • Enterprise Java Beans (EJB) 3.0, JSR-220
  • Java Messaging Service (JMS) 1.1, JSR-914
  • Java Management Extensions (JMX) 1.1, JSR-3
  • Java Transaction API (JTA) 1.0.1, JSR-907
  • Java Mail 1.3. JSR-919
  • JavaBeans Activation Framework (JAF) 1.1, JSR-925
  • Java Authentication and Authorization Service (JAAS) 1.0
  • Java Naming and Directory Interface (JNDI) 1.2.1
  • Java Authorization Contract for Containers (JACC) 1.0, JSR-115

1.9. Java EE Services

  • Java EE Application Server handles:

    • Concurrency, Scalability, Availability
    • Security
    • Persistence, Transactions
    • Life-Cycle Management
  • Application Components focus on:

    • Presentation
    • Business Logic