This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
I am doing some reading on JCA and trying to understand the concept of it.
As per my understanding JCA is used when one has to connect java application with EIS like peopleSoft, Ebusiness Suit, etc.
So is it right that java application can only connect and fetch database of EIS but to display that data java application should have it's own User Interface?
In other words is the JCA like a JDBC driver ? If yes then why cannot Java application directly connect to EIS database and fetch the data?
Indeed, JCA uses similar abstraction mechanism as JDBC. And of course Java application can connect directly to EIS and fetch its data. The same story with SQL - the application can connect directly to the database and fetch its data through TCP/IP socket, without JDBC abstraction.
JCA is a middleman between your application and some third-party resource. JCA makes this resource compliant with "JEE system contract" (see the picture).
Thanks Yegor Bugayenko for the reply.
Now the question come to my mind is -
If Java application can access any EIS data through JCA then is it read only or writeable because EIS may not want any third party application to change its data.
JCA allows both read and write. However the capabilities are limited by that of EIS. Further the implementer of the JCA adapter (similar to jdbc driver) can choose to implement only a subset of features supported by the EIS.
For eg: The data layer can be a standard RDBMS. The JCA adapter my choose to implement just the select query and ignore the rest.