What Is Enterprise Java Beans? When JavaM was first introduced in the summer of 1995, most of the IT industry focused on its graphical user interface characteristics and the competitive advantage it offered in terms of distribution and platform independence. Those were interesting times. The Applet was king, and only a few of us were attempting to use it on the server side. I reality we spent about half our time coding and the other half trying to convince management that Java was not a Today, the focus has broadened considerably: Java has been recognized as an excellent platform for creating enterprise solutions, specifically for developing distributed server-side applications. This shift has much to do with Javas emerging role as a universal language for producing implementation-independent abstractions for common enterprise technologies. The JDBCTM API is the first and most familiar example JDBC provides a vendor-independent Java interface for accessing SQL relational databases. This abstraction has been so successful that it's difficult to find a relational database vendor that doesnt support JDBC Java abstractions for enterprise technologies have expanded considerably to include JNDI (Java Naming and Directory Interface M) for abstracting directory services, JTA (Java Transaction APD) for abstracting access to transaction managers, JMSTM (Java Messaging Service) for abstracting access to different message-oriented middleware products, and so on. Enterprise JavaBeansTM was first introduced as a draft specification in late 1997 and has since established itself as one of the most important Java enterprise technologies provided by Sun Microsystems. Enterprise JavaBeans (EJB) provides an abstraction for component transaction monitors (CTMs) Component transaction monitors represent the convergence of two technologies traditional transaction processing monitors, such as CICS, TUXEDO, and Encina, and distributed object services, such as CORBA(Common Object Request Broker Architecture), DCOM, and native Java RMI. Combining the best of both technologies, component transaction monitors provide a robust, component- based environment that simplifies distributed development while automatically managing the most complex aspects of enterprise computing, such as object brokering, transaction management, security, persistence, and concurrency Enterprise JavaBeans(EJB)defines a server-side component model that allows business objects to be developed and moved from one brand of EJB container to another. A component(an enterprise bean) presents a simple programming model that allows the developer to focus on its business purpose. An EJB server is responsible for making the component a distributed object and for managing services such as transactions, persistence, concurrency, and security. In addition to defining the beans business logic, the developer defines the beans runtime attributes in a way that is similar to choosing the display properties of visual widgets. The transactional, persis tence, and security behaviors of a component can be defined by choosing from a list of properties. The end result is Copyright(c)2001 OReilly Associates 2DRAFT, 10/21/017/6/2001 Copyright (c) 2001 O'Reilly & Associates 2 What Is Enterprise JavaBeans? When Java™ was first introduced in the summer of 1995, most of the IT industry focused on its graphical user interface characteristics and the competitive advantage it offered in terms of distribution and platform independence. Those were interesting times. The Applet was king, and only a few of us were attempting to use it on the server side. I reality we spent about half our time coding and the other half trying to convince management that Java was not a fad. Today, the focus has broadened considerably: Java has been recognized as an excellent platform for creating enterprise solutions, specifically for developing distributed server-side applications. This shift has much to do with Java’s emerging role as a universal language for producing implementation-independent abstractions for common enterprise technologies. The JDBC™ API is the first and most familiar example. JDBC provides a vendor-independent Java interface for accessing SQL relational databases. This abstraction has been so successful that it’s difficult to find a relational database vendor that doesn’t support JDBC. Java abstractions for enterprise technologies have expanded considerably to include JNDI (Java Naming and Directory Interface™) for abstracting directory services, JTA (Java Transaction API) for abstracting access to transaction managers, JMS™ (Java Messaging Service) for abstracting access to different message-oriented middleware products, and so on. Enterprise JavaBeans™ was first introduced as a draft specification in late 1997 and has since established itself as one of the most important Java enterprise technologies provided by Sun Microsystems. Enterprise JavaBeans (EJB) provides an abstraction for component transaction monitors (CTMs). Component transaction monitors represent the convergence of two technologies: traditional transaction processing monitors, such as CICS, TUXEDO, and Encina, and distributed object services, such as CORBA (Common Object Request Broker Architecture), DCOM, and native Java RMI. Combining the best of both technologies, component transaction monitors provide a robust, componentbased environment that simplifies distributed development while automatically managing the most complex aspects of enterprise computing, such as object brokering, transaction management, security, persistence, and concurrency. Enterprise JavaBeans (EJB) defines a server-side component model that allows business objects to be developed and moved from one brand of EJB container to another. A component (an enterprise bean) presents a simple programming model that allows the developer to focus on its business purpose. An EJB server is responsible for making the component a distributed object and for managing services such as transactions, persistence, concurrency, and security. In addition to defining the bean’s business logic, the developer defines the bean’s runtime attributes in a way that is similar to choosing the display properties of visual widgets. The transactional, persistence, and security behaviors of a component can be defined by choosing from a list of properties. The end result is