J2EE FREQUENTLY ASKED QUESTIONS

Q: What is the JavaTM 2 Platform, Enterprise Edition (J2EE)?

Java 2 Platform, Enterprise Edition (J2EE) is a platform that enables solutions for developing, deploying and managing multi-tier server-centric applications. J2EE utilizes Java 2 Platform, Standard Edition to extend a complete, stable, secure, fast Java platform to the enterprise level. It delivers value to the enterprise by enabling a platform which significantly reduces the cost and complexity of developing multi-tier solutions, resulting in services that can be rapidly deployed and easily enhanced.

Q: What are the main benefits of J2EE?

J2EE provides the following:

  1. A unified platform for building, deploying and managing enterprise-class software without locking users into a vendor specific-architecture and saves IT time.
  2. A platform that will allow enterprise-class application the ability to run anywhere.
  3. A platform with a complete range of readily available enterprise-class services.
  4. A single easy-to-learn blueprint programming model for J2EE.
  5. A platform that is built upon and leverages existing IT investments and guarantees that enterprise-class software will work on multiple platforms.

Q: What technologies are included in J2EE?

The primary technologies in J2EE are: Enterprise JavaBeansTM, JavaServer PagesTM, servlets, the Java Naming and Directory InterfaceTM (JNDI), the Java Transaction API (JTA), CORBA, and the JDBCTM data access API.

Q: How does J2EE relate to Enterprise JavaBeans technology?

Enterprise JavaBeans (EJB) technology is the basis of J2EE. EJB technology provides the scaleable architecture for executing business logic in a distributed computing environment. J2EE makes the life of an enterprise developer easier by combining the EJB component architecture with other enterprise technologies to solutions on the Java platform for seamless development and deployment of server side applications.

Q: Who needs J2EE?

ISVs need J2EE because it gives them a blueprint for providing a complete enterprise computing solution on the Java platform. Enterprise developers need J2EE because writing distributed business applications is hard, and they need a high-productivity solution that allows them to focus only on writing their business logic and having a full range of enterprise-class services to rely on, like transactional distributed objects, message oriented middleware, and naming and directory services.

Q: What is the purpose of the Reference Implementation?

The purpose of the reference implementation is to validate the specifications. In short, it is to prove that the specifications can be implemented.

Q: Why don`t you allow the binary reference implementation to be deployed or redistributed?

We do not allow the binary reference implementation to be deployed or redistributed at the request of our partners. The J2EE reference implementation is essentially a full-featured application server. To make it available on the market would provide a product that competes with the companies that we want to adopt the technology. In this light, we set up the licensing terms to honor this request.

Q: Is XML supported in J2EE?

XML is an essential component in the J2EE platform. J2EE will provide a framework for business-to-business data interchange using XML. Currently, JavaServer Pages framework can be used to generate and consume XML between servers or between server and client. In addition, Enterprise JavaBeans component architecture uses XML to describe its deployment properties, giving Enterprise JavaBeans data portability in addition to its code portability.

EJB FAQ

What is Enterprise JavaBeansTM (EJB)?

EJB, the widely-adopted server-side component architecture for JavaTM 2 Platform, Enterprise Edition (J2EE), enables rapid development of mission-critical application that are versatile, reusable and portable across middleware while protecting IT investment and preventing vendor lock-in.

What is EJB technology's role in J2EE?

EJB technology is the core of J2EE. It enables developers to write reusable portable server-side business logic for the J2EE platform.

Is EJB a product?

No, EJB is a specification, which defines the EJB component architecture and the interfaces between the Enterprise JavaBeans technology-enabled server and the component. Commercial vendors like IBM, BEA, Sun and Oracle are providing products that implement the EJB specification.

What are the key features of the EJB technology?

  • EJB components are server-side components written entirely in the Java programming language
  • EJB components contain business logic only - no System-level programming
  • System-level services (i.e. "plumbing") such as transactions, security, Life-cycle, threading, persistence, etc. are automatically managed for the EJB component by the EJB server
  • EJB architecture is inherently transactional, distributed, portable, multi-tier, scalable and secure
  • Components are declaratively customized at deployment time (Can customize: transactional behavior, security features, life-cycle, state management, persistence, etc.)
  • EJB components are fully portable across any EJB server and any OS
  • EJB architecture is wire-protocol neutral - Any protocol can be utilized: IIOP, JRMP, HTTP, DCOM, etc.

What are the key benefits of the EJB technology?

  • Rapid application development: The productivity benefits of writing components in the Java programming language - Java technology productivity and component reuse and outsourcing; Developer focuses on business logic only; Declarative customization (not programmatic)
  • Broad industry adoption: Industry-wide collaboration on the spec yielded a superior architecture and ensured adoption; Choice and flexibility in server selection - no vendor lock-in; 3rd party components are widely usable across servers - ISVs don't need to choose vendor-specific development platform
  • Application portability: Business logic that runs everywhere - Platform-independence and middleware independence
  • Choice, not vendor lock-in: Architecture decisions are made at deployment, not at development; Inter-server portability - code can be deployed on any EJB server; Inter-server scalability - Servers can be transparently replaced to accommodate changing needs for service level, performance or security; Any wire protocol can be selected at deployment

Protection of IT investment: Wrap and embrace existing infrastructure, application and data stores; Existing middleware solutions are being adapted by the well-established vendors to support the EJB technology via a thin portability layer; Portable across multiple servers and databases; Serve multi-lingual clients - Browsers, Java technology, ActiveX, or CORBA clients; EJB technology simplifies and enhances CORBA and DCOM.

What platforms does EJB technology run on?

Applications that are based on EJB components are not only platform independent but also middleware independent! They can run on any OS and any middleware that support EJB.

Who is EJB technology for?

EJB technology benefits a number of audiences:

  • Enterprise customers that build and/or deploy EJB-based applications - gain development productivity, can choose from a wide selection of EJB servers, create business logic that runs everywhere and is architecture independent, all this while protecting their existing IT investment!
  • ISVs and SIs that develop EJB components or applications based on EJB components - Invest in business logic that is widely deployable, across any OS and middleware, don't need to choose one vendor-specific server platform. Like enterprise customers they also benefit from productivity gains and architecture independence
  • The EJB specification itself is mostly targeted at the EJB server vendors - It is the blueprint that instructs these vendors on how to build an EJB server that EJB components can execute on successfully

Who is using EJB technology?

The adoption and momentum around EJB technology since its first public release in 3/98 has been phenomenal. Vendors across the board, from the smallest start-up to the largest corporation, are adopting this technology and building EJB servers, EJB tools and EJB components and applications. We are also seeing strong interest and early adoption among many enterprise customers such as: Visa, GTE, Instinet (Reuters), Qwest, Charles Schwab, NationsBank Montegomery and many others.

Is EJB technology really going to fulfill the promise of true portability across middleware solutions?

Yes. EJB technology hides the details of the underlying middleware "plumbing", allowing developers to focus on writing "pure" business logic which does not contain server-specific code. The code can execute on top of any server implementing the EJB specification. Sun is providing a J2EE compliance program to guarantee portability across servers.

What are the key features included in EJB 1.1?

  • Mandatory support for entity beans which will improve the way EJB-based applications connect to back-end data sources such as relational databases and greatly simplify the process of application development by providing developers with a higher level of abstraction.
  • Enhancements to the Deployment Descriptor, including support for XML text format and improved content organization, both of which will ease development and deployment of EJB-based applications
  • Significant tightening of the specification which will greatly improve EJB-based application portability

What are the key features expected to be included in EJB 2.0?

EJB 2.0 is currently in the Expert Group phase of the JCP specification development process. Based on the JSR (Java Specification Request) which has been approved, enhancements are expected in the following areas:

  • JMS (Java Message Service) integration
  • Improved persistence management
  • Support for RMI/IIOP protocol for network interoperability
  • Management of beans relationships
  • Standardized container extensibility

Doesn't EJB technology compete with CORBA?

No. In fact, EJB technology complements CORBA quite nicely. CORBA provides a great Standards-based infrastructure on which to build EJB servers. EJB technology makes it easier to build application on top of a CORBA infrastructure. Additionally, the recently released CORBA components specification refers to EJB as the architecture when building CORBA components in Java.

What about RMI/IIOP? Is that part of EJB specification?

The EJB specification mandates that you must use the RMI interfaces to communicate with an EJB component. The EJB 1.1 specification does not mandate which wire protocol to use. However, EJB 2.0 is expected to required EJB implementations to Support RMI/IIOP.

How does EJB compare with MTS (Microsoft Transaction Server)?

EJB is a widely endorsed and supported architecture. MTS is a proprietary product. EJB allows for choice. MTS allows only one choice, Microsoft's.

Why should people want to use products based on EJB technology when they can get MTS for free with Windows NT?

Because EJB technology eliminates platform lock, allows a user to move their application to any EJB server, eliminates dependencies on hardware, OS and middleware.

What are the design goals of the Enterprise JavaBeansTM architecture?

The Enterprise JavaBeans specification defines a standard architecture for implementing the business logic of multi-tier applications as reusable components. In addition to Enterprise JavaBeans components, the architecture defines three other entities: servers, containers, and clients. This architecture incorporates several design goals:

  • Enterprise JavaBeans servers are designed to wrap around legacy systems to provide fundamental services for containers and the components they contain.
  • Enterprise JavaBeans containers are designed to handle details of component life-cycle, transaction, and security management. By interceding between clients and components at the method call level, containers can manage transactions that propagate across calls and components, and even across containers running on different servers and different machines. This mechanism simplifies development of both component and clients.
  • Component developers are free to focus on business logic, since containers provide services automatically by interceding in component method calls. A simple set of callback interfaces are all that a developer needs to implement to participate in container provided services.
  • A client's view of an Enterprise JavaBean remains the same regardless of the container it is deployed in. Any container in which an Enterprise JavaBean is deployed presents the same interfaces to the client. This extends to containers from different vendors, running against different servers and different databases, on diverse systems on a network. This client transparency ensures wide scalability for multi-tier applications.
  • Along with container managed transactions, the Enterprise JavaBeans architecture enables component- and client-managed transactions. Containers can participate in component or client initiated transactions to enforce transaction rules across method call and component boundaries. Components can also specify transaction types by method, enabling them to mix transaction types within a single object.
  • A variety of Enterprise JavaBean attributes, including the default component transaction type, can be specified at either development or deployment time, and enforced through mechanisms built into the container architecture.

The Enterprise JavaBeans architecture is based on the Java programming language, so enterprise Beans take full advantage of the "write once, run anywhereTM" standard.

No comments: