Question

I've been reading up on Java EE architecture, and have seen (in the Oracle docs at least) several references to a so-called EIS (enterprise information systems) tier which comprises the 3rd (data) tier of the Java EE architecture.

I understand that in a 3-tier system the database usually is the 3rd tier. Some times legacy systems are also placed on this tier because they also interact directly with the same database as the business middleware (2nd tier) and for one reason or another, they don't belong anywhere else.

My question is: what code (if any) belongs on the 3rd "EIS" tier? ORM code such as Hibernate classes and DAOs?

On the 2nd tier you have both systems and compiled Java running. For instance you might have a Tomcat server running a bunch of WARs that you wrote. I'm not "getting" the anology in the 3rd tier, where you have an RDBMS and (I guess?!?!) some code to interact with that RDBMS.

In sum, I guess I'm wondering what the standard/best practices are behind deploying code in the EIS tier, and what those deployments look like. Thanks in advance!

Was it helpful?

Solution

The tier model suggested by Java EE is a conceptual model. I think you are mixing this with packaging structure of your application (based on your comment to anders.norgaard post). The packaging model depends upon once own application but below two articles provide the best practices

  1. J2EE packaging and Deployment
  2. J2EE Packaging and Common Code

OTHER TIPS

When developing a Java EE application I think of the three layers as

  1. Frontend (JSF/Richfaces)
  2. Business logic (EJB)
  3. Data layer (Hibernat/JPA)

That is nice and self-contained and avoids eg. triggers and PL-SQL etc.

Best, Anders

EIS tier corresponds to connecting with other information systems, such as, ERP application (example JD Edwards), or a Transactional system (IBM's IMS) or CRM etc.,

Well known EIS solutions provide Java connectors. From J2EE application, we could implement the connectors and communicate directly with these applications.

This is good reference material on this topic.

The EIS tier is a conceptional tier that is included as a jar file inside an application.

It mainly consists of resource adapters that are often provided by the corresponding EIS manufacturers.

Your java beans can use these adapters to access data and services of an EIS.

That's why you typically don't deploy something into the EIS tier.

The tier is "just there" whenever you use an EIS resource adapter.

Same concept as with the data access layer (-> orm framworks):
You don't write it.
You don't put anything in it.
You simply use it.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top