A method to deploy JavaEE application with a self-deployable package
Publication Date: 2014-Jun-06
The IP.com Prior Art Database
There is much gap between application development and deployment. Additional effort, such as determining the application deployment context and handling service dependencies, is required when deploying the application package delivered by development phase. The problem is more critical in the era of cloud, which requires less deployment effort to support "release small and release often". In this article, a new method is proposed to minimize the application deployment effort with the self-deployable application package.
Page 01 of 7
A method to deploy JavaEE application with a self
A method to deploy JavaEE application with a self-
There is always gap between application development and deployment. Application development generates a package which includes application itself, such as *.war, *.ear, *.eba for JavaEE applications. However, the application package does not contain enough info for deployment. Some additional info is required:
- Application deployment context: Each application has its own deployment requirement, such as memory size, JVM options and others of the target environment.
- Service dependency: Most applications depend on services, such as database service, cache service and so on. Both developers and operators need to communicate with each other for deployment details .
This introduces additional effort to application deployment , and is especially critical for cloud applications:
- "Release small and release often" is the requirement of cloud era . It means the deployment happens more frequently. The communication effort is becoming more huge and unacceptable.
- Services provided by each cloud platform are so different that the difficulty of solving service dependencies is increased . For example, if the vendor of database provided of the cloud is different with the one used in development , application source code change and re-compilation have to occur to load new JDBC (Java Data Base Connectivity) drivers to fit the deployment.
In summary, proposing a new method to minimize the application deployment effort is significant , especially in the cloud era.
2. Summary of Invention
In this article, a new method is claimed to resolve above issues by using the "self- deployable application package". A self-deployable application package is converted from traditional "*.war" package, but contains more info about deployment. It leverages this info to adapt to different cloud automatically during deployment phase. Also, it uses JNDI (Java Naming and Directory Interface) mechanism for service
Page 02 of 7
binding, and switches the mapping between global JNDI tree and application -level JNDI tree at deployment time seamlessly, so that resolves
service dependencies during deployment without any code change. In short, it's self-explanatory for application operator. Application deployment model is changed from Operator.deploy(application) to Application.deploy().
Deployment effort is significantly reduced with this new model, especially for cloud platforms. It's a common invention applicable for JavaEE application deployment.
3. Invention Details
To enable "self-deployment", support from both development phase and deployment phase are needed .
For development phase, the IDE (Integrated Development Environment) tool is responsible for generating self-deployment application page.
Illustrated as Figure 1 , the IDE supports user to define local services and other necessary deployment configurations...