Proxy portlet vs. Custom portlet
The most common case is to use the proxy portlet when integrating existing web applications and to develop custom portlets when building new applications. It is however possible to do the opposite. The pros and cons of these options are described below.
Integrating an existing web application
The Sitevision Proxy portlet is a powerful tool for integrating existing web applications. But is it always the optimal solution? A viable alternative is available due to the fact that SiteVision is a portlet container. You always have the choice of developing and deploying a custom portlet that does the integration to the existing web application.
Proxy portlet instead of a Custom portlet
Pros (+)
- Quick to get an initial result - You don't have to write Java code, compile and deploy a custom portlet.
- Quick to change the code if the web application changes - Just double-click the Proxy portlet and alter the code.
- Requires no Java knowledge. The Proxy portlet uses XSLT, not Java.
Cons (-)
- Web applications with illegal/bad html simply can't be integrated using the Proxy portlet.
- There is always some performance overhead since the Proxy portlet is generic (can be used for many purposes).
- Requires knowledge of XSLT.
Custom portlet instead of the Proxy portlet
Pros (+)
- More power at your fingertips as a developer. Java is a much more powerful language than XSLT.
- Ability to do a specific implementation (i.e. maximize performance).
- Easier to track problems and bugs within the code since an IDE can be used.
Cons (-)
- Requires Java and JSR-168 knowledge.
- Not as quick as the Proxy portlet to get an initial result since compilation and deployment is necessary.
- Not as quick as the Proxy portlet to do code updates if the web application changes.
- Probably have to implement much of the logic that the Proxy portlet already provides (e.g. request/response/headers/parameters handling and html parsing/transformation).
Implementing a new application
When you implement new business logic, you basically have two choices:
- Implement your application in Java as a JSR-168 portlet and deploy it in SiteVision.
- Implement your application and run it on another server and then integrate the application using the Proxy portlet (or a Custom portlet).
Deploy your application as a portlet in SiteVision
Pros (+)
- Maximize performance - The SiteVision server doesn't have to communicate with another server and there is no need to do XHTML parsing or XSLT transformations.
- Maximum flexibility - Access to APIs such as JSE, JEE, JSR-168, JSR-283 and JAAS.
Cons (-)
- Requires Java and JSR-168 knowledge.
Create your application elsewhere and integrate it in Sitevision
Pros (+)
- Doesn't necessary require Java and JSR-168 knowledge.
Cons (-)
- Less performance due to communication with another server, XHTML parsing and XSLT transformations etc.
- You need an extra server to run your application.
- You end up with a more complex application environment since SiteVision and the other server is dependent of each other.
- If your business logic should be altered, you probably have to do alterations on both servers.