This content has been marked as final. Show 5 replies
Only the GlassFish Community Server is Open Source and hence free of cost.
For you Extranet you can create a separate installation of ApexListener, on a separate J2EE Container on the Extranet box. That would be cleanest from the security perspective. It will have different IP address mapping for the DB/JDBC, which will point to your database instance. Only its URL/Domain/IP address seen on the Extranet will be different from the one used on Intranet.
Hope that helps.
1. First of all, is Oracle GlassFish Server free? Does it require license cost per CPU like Oracle Weblogic does?As Prabodh already mentioned, there exist two different editions of GlassFish by now: The officially supported Oracle GlassFish Server (with license costs) and GlassFish Server Open Source Edition (free). While you can run APEX Listener on both of these JEE Containers, you will not get any support through MOS when using the latter one.
2. We currently have an extranet box that runs Oracle HTTP (actually Oracle HTTP inside Oracle AS 9i). If we need to use APEX Listener, should we install the J2EE Container (Oracle GlassFish) with APEX Listener inside our "Intranet" and only the Oracle HTTP Server in our extranet server? I'm confused about the appropriate method for "extranet" environment.I'm not sure if this has become clear yet: You don't actually need OHS for APEX if you start using APEX Listener. You can deploy APEX Listener to a GlassFish on your extranet server. It'll connect to the database listener of your APEX instance using JDBC like OHS/mod_plsql did before.
Of course, you could think about adding a security layer to your database by hiding it's listening endpoint from your extranet. To do that, you could deploy APEX Listener in your internal network and let OHS (or a "plain" Apache HTTPD) on your extranet box act as a proxy. That way, you'll have only HTTP or AJP traffic through your firewall (or whatever is in between your internal network and your extranet), but you could close your database port. In that case, it also could be a good idea to let the proxy serve the static contents for APEX ("images") on your extranet box for less traffic on the link between internal network and extranet and especially for better response times towards extranet clients. Of course, if you have internal users for that instance as well, you'll want to deploy the images to the GlassFish as well...
Basically, for now, I prefer to install Oracle HTTP Server 11g (Apache without iAS) as the Web Server for our Extranet APEX applications because it is very simple to maintain and is very stable. However, I would like to use APEX Listener (with Oracle GlassFish Server) for future RESTful Web Services based on PL/SQL packages in Oracle database.
Similar to the "Advanced Configuration" diagram in APEX Listener homepage, can I run Oracle HTTP Server 11g (for APEX applications) in "Extranet" and GlassFish/APEX listener (for RESTful Web Services) in "Intranet"? Is it also possible that, "from" APEX applications (extranet/Oracle HTTP), it can make calls to the RESTful Web Services running in APEX Listener (intranet/APEX Listener). What are the detailed steps to make this configuration?
it is possible to use both APEX Listener and OHS next to each other, if you don't have anything with absolute URLs.
As long as your network rules allow that, it sould also be possible to use APEX Listener Web Services from OHS-accesed applications. It's not much different from accessing another APEX instance - it's just a HTTP call somewhere below. You may get issues with XSS when you use both next to each other visible to the client, i.e. the web service should be consumed within the APEX backend presenting justthe result (tunneled) to the client, so the client itself always sees just one base URL.
Another option would be the previously mentioned (reverse) proxy approach that hands APEX Listeners endpoint to OHS.