I'm reading a book about Java EE. In that book Java EE is referred to开发者_StackOverflow中文版 as the 'Java EE Platform'. Why is the term 'Platform' being used here?
I think it should be Java EE Technology without Platform being appended to it.
Platform normally means OS and architecture. So, it doesn't make sense to write 'Java EE Platform', does it?
Please correct me if I am wrong.
If you really look at it, Java EE is a specification. Platform and technology is just used interchangeably to refer to a combination of different technologies (EJB, servlets, JSP and MANY MORE) to achieve a solution. These technologies in turn are guided by specifications; like servlet specification 2.3, EJB spec 3 etc.
Java EE provides standards on how (or what capabilities) the technologies (mentioned above) should have.
You can write your own Java EE compliant container (read software); that confirms to the standards mentioned by Java EE, once you do that you can say you have a Java EE version X compliant platform.
To take a simple analogy. Java EE is to Java what POSIX is to Unix. Java EE defines a standard for using a technology called Java and POSIX defines it for a platform which is Unix. Sometimes we use these terms interchangeably, causing confusion. It is the context in which these terms are used that really matters.
I think this is a common language v. engineering terminology issue.
Here is an example that might help. We often use 'infrastructure' to refer to the network and the servers, or to the roads and the electrical grid.
But in a more engineering-ish proper-sort-of terms infrastructure and superstructure is a relationship between two things, the platform and its features (infrastructure) on which an application is build (superstructure)
Similarly technology is a collection of techniques and skills at using those techniques. Although in common language we often refer to devices and products as technology, in engineering-ish terms they are the result someone applying technology (hence the term application)
In the case of your question the 'technology' is our civilizations knowledge and skill at designing enterprise computing solutions in an application server paradigm.
Java EE specification and associated specifications (and products, etc) are results of applying that tenchnology.
When talking about the Java platform we usually mean virtual machine. And of course Java EE Technology is a misleading term also, because Java EE actually provides a stack of technologies. So, neither of these terms are 100% correct.
java is a programming language provide us the ability to create Applications.
java enterprise edition is web based architecture provide us all the necessary interfaces and classes to create web applications. therefor java ee is a technology
platform stands for the container of the java ee, in order to use the CDI context dependency injection.
精彩评论