Reading Notes:Enterprise JavaBeans, 3.0 Chapter 1. Introduction
Reading Notes:Enterprise JavaBeans, 3.0 Chapter 1. Introduction
1.1. Server-Side Components
In business systems, object-oriented languages are used to improve development of GUIs, to simplify access to data, and to encapsulate the business logic.
A server-side component model may define an architecture for developing distributed business objects
Server-side components can also be used to model other aspects of a business system, such as presentation and routing. A Java servlet, for example, is a server-side component that generates HTML and XML data for the presentation layer of a web application (Struts and JSF components are also examples of this type of server-side component). EJB message-driven beans, discussed later in this book, are server-side components that can be used to consume and process asynchronous messages.
1.2. Persistence and Entity Beans
Persistence is a higher-level abstraction above JDBC. The persistence layer maps objects to database storage so that they can be queried, loaded, updated, or removed without having to go through a verbose API such as JDBC.
The Java Persistence API defines a way to map regular, plain old Java objects (sometimes referred to as POJOs) to a database . These plain Java objects are called entity beans . Entity beans are like any other Java class, except that they have been mapped, using Java Persistence metadata, to a database. Therefore, they may be inserted and loaded from a database without the developer writing any JDBC connection code or reading from result sets. The Java Persistence API also defines a query language that has features that parallel those in SQL, but is tailored to work with Java objects rather than a raw relational schema.
Section 1.3. Asynchronous Messaging
1.3. Asynchronous Messaging |
In addition to supporting RMI-based distributed business objects, Enterprise JavaBeans supports asynchronous messaging. An asynchronous messaging system allows two or more applications to exchange information in the form of messages. A message, in this case, is a self-contained package of business data and network routing headers.
EJB 3.0 supports asynchronous messaging through the Java Message Service (JMS) and a new component called the message-driven bean . In addition to JMS, message-driven beans can support other synchronous and asynchronous messaging systems.
1.3.1. Java Message Service
1.3.2. Message-Driven Beans and JCA 1.5
The expansion of message-driven beans in EJB 2.1 to other protocols was made possible by the new Java EE Connector Architecture (JCA 1.5) , which defines a portable programming model for interfacing with enterprise information systems.
1.4. Web Services
Web services is often defined in fairly abstract terms, like "a substrate for building distributed applications using software running on different operating systems and devices"[*] or "self-contained, self-describing, modular applications that can be published, located, and invoked across the Web."[ ]
SOAP 1.1
Simple Object Access Protocol (SOAP) is an XML grammar, developed by Microsoft, IBM, and others, that is currently under the auspices of the W3C. It's an application protocol used in both RPC and asynchronous messaging. SOAP is very flexible and extensible and, unlike its predecessors (DCE RPC, CORBA IIOP, Java RMI-JRMP, and DCOM), it's been endorsed and adopted by just about every major vendor. (If you're not familiar with XML, see Java and XML or XML in a Nutshell , both from O'Reilly.)
WSDL 1.1
The Web Service Description Language (WSDL) is another XML grammar, developed by Microsoft and IBM under the auspices of the W3C. It is an XML-based Interface Definition Language (IDL) that can be used to describe web services, including the kind of message format expected, the Internet protocol used, and the Internet address of the web service.
Web services are truly platform-independent. Although Java RMI and CORBA IIOP also claim to be platform-independent, in fact these older technologies require their own platforms.
Web services, on the other hand, are not tied to a specific platform like the JVM or to a technology infrastructure like CORBA because they focus on the protocols used to exchange messages SOAP and WSDL and not on the implementation that supports those protocols. In other words, you can build web services on any platform using any programming language any way you please.
EJB 3.0 allows enterprise beans to be exposed as web services so that their methods can be invoked by other J2EE applications as well as applications written in other programming languages on a variety of platforms. Web services in EJB 3.0 support both RPC-style and document-style messaging.