9 Replies Latest reply on Sep 13, 2017 11:54 AM by joelkallman-Oracle

    Is APEX driven by Java?

    user12240205

      APEX Gurus, we are looking at options to move our VB application to the 21st century. APEX is one option.

       

      What we want to know is, Is APEX driven by Java??? Does APEX need a Java application server like Tomcat?

       

      If APEX does not use Java for anything (any layer), how does APEX create dynamic web-pages, or how does APEX work, WITHOUT the use of Java??

       

      PS: We are not particularly fond of Java.  For example we use Perl for most of the backed work like file and message brokers.

       

      As a side question, I would like to pose, whether it is really possible to create web-applications WITHOUT the use of Java in any layer?

        • 1. Re: Is APEX driven by Java?
          Q_STEPHENSON

          Hi user

           

          A few quick things:

          1. The ORDS component is written in Java.  Without it I don't think you can do anything APEX at all.  You do need a JVM installed to configure it and run ords.

          2. You can run ORDS in stand-a-lone mode, but for production you definitely need a web container.  It will run on most web container that are okay with java.  Apache Tomcat, jboss, weblogic etc.

          3. If you do not want to host  your own servers, you could go for one of the cloud solution providers (Oracle cloud, maxapex etc).

          4. You don't code in java at all, even for web services.  You don't need to know anything about java to create ORACLE APEX apps.  As a developer you need to know your Oracle SQL and PL/SQL, understanding HTML,css and javascript are a bonus.

          5. the application definition, i.e. the pages, plugins etc reside in the Oracle database in a separate schema.  The supplied java script and css libraries (Image library) reside in the Tomcat server,  Any other 3rd party js libraries can reside in the DB or in a similar location as the image library.

           

          Check out the architecture over at the following URL: http://www.oracle.com/technetwork/developer-tools/apex/learnmore/apex-50-overview-2526922.pdf

           

          hope this helps

          Q

          1 person found this helpful
          • 2. Re: Is APEX driven by Java?
            fac586

            user12240205 wrote:

            Please update your forum profile with a recognisable username instead of "user12240205": Video tutorial how to change nickname available

            APEX Gurus, we are looking at options to move our VB application to the 21st century. APEX is one option.

            What we want to know is, Is APEX driven by Java???

            No.

            Does APEX need a Java application server like Tomcat?

            In order to fully utilise the current APEX feature set it is necessary to use Oracle REST Data Services (ORDS) running in a Java application server as the APEX web listener.

             

            It is possible to run a limited and lower performance service directly from the database using the Embedded PL/SQL Gateway (EPG). This is not recommended for production environments.

             

            Previously it was possible to run APEX without Java using the Apache-based Oracle HTTP Server (OHS) and mod_plsql plug-in. This option does not provide full support for current APEX features. It is now deprecated and should not be considered for new projects.

            If APEX does not use Java for anything (any layer), how does APEX create dynamic web-pages, or how does APEX work, WITHOUT the use of Java??

            The APEX engine consists of PL/SQL packages running in the database that convert application metadata stored in tables into HTML code. See the Oracle Application Express 5.0 Overview white paper and other APEX resources for more information.

            As a side question, I would like to pose, whether it is really possible to create web-applications WITHOUT the use of Java in any layer?

            Of course. As stated above, this was the case with the original APEX + OHS stack. Microsoft .NET + IIS and LAMP (Linux + Apache + MySQL + PHP) are obvious examples. Other options based on various technologies and languages such Perl, Ruby, or Python are available.

            1 person found this helpful
            • 3. Re: Is APEX driven by Java?
              user12240205

              fac586 wrote:

               

              user12240205 wrote:

              Please update your forum profile with a recognisable username instead of "user12240205": Video tutorial how to change nickname available

              APEX Gurus, we are looking at options to move our VB application to the 21st century. APEX is one option.

              What we want to know is, Is APEX driven by Java???

              No.

              Does APEX need a Java application server like Tomcat?

              In order to fully utilise the current APEX feature set it is necessary to use Oracle REST Data Services (ORDS) running in a Java application server as the APEX web listener.

               

              It is possible to run a limited and lower performance service directly from the database using the Embedded PL/SQL Gateway (EPG). This is not recommended for production environments.

               

              Previously it was possible to run APEX without Java using the Apache-based Oracle HTTP Server (OHS) and mod_plsql plug-in. This option does not provide full support for current APEX features. It is now deprecated and should not be considered for new projects.

              If APEX does not use Java for anything (any layer), how does APEX create dynamic web-pages, or how does APEX work, WITHOUT the use of Java??

              The APEX engine consists of PL/SQL packages running in the database that convert application metadata stored in tables into HTML code. See the Oracle Application Express 5.0 Overview white paper and other APEX resources for more information.

              As a side question, I would like to pose, whether it is really possible to create web-applications WITHOUT the use of Java in any layer?

              Of course. As stated above, this was the case with the original APEX + OHS stack. Microsoft .NET + IIS and LAMP (Linux + Apache + MySQL + PHP) are obvious examples. Other options based on various technologies and languages such Perl, Ruby, or Python are available.

              So, it's looks like APEX REQUIRES a Java layer to run.

               

              TBH we are not fond of Java.

               

              Java is too bulky and overkill.

               

              With over 35 frameworks now available developing applications is not practical and

              also it is not maintainable.

               

              With so many frameworks and libraries you concentrate more time in Java technical stuff

              rather than the business rules and the application.

               

              We want to eliminate Java altogether (from all layers) when building applications.

               

              .NET is better than Java by miles. .NET has only ONE framework.

              • 4. Re: Is APEX driven by Java?
                fac586

                user12240205 wrote:

                 

                So, it's looks like APEX REQUIRES a Java layer to run.

                 

                TBH we are not fond of Java.

                 

                Java is too bulky and overkill.

                 

                With over 35 frameworks now available developing applications is not practical and

                also it is not maintainable.

                 

                With so many frameworks and libraries you concentrate more time in Java technical stuff

                rather than the business rules and the application.

                 

                We want to eliminate Java altogether (from all layers) when building applications.

                 

                .NET is better than Java by miles. .NET has only ONE framework.

                What does this have to do with APEX? I have been developing APEX applications for 12 years without writing a single line of Java. You will develop and run APEX apps using a Java-based application server and web listener and never encounter any Java frameworks.

                 

                There are a lot more than 35 JavaScript development frameworks out there. Does that mean that developing web apps with dynamic behaviour is "not practical and...not maintainable"?

                • 5. Re: Is APEX driven by Java?
                  Pavel_p

                  .NET is better than Java by miles.

                  Definitely. And you can also run it on any platform, windows server is free, IIS is free and development IDE is free as well.

                  .NET has only ONE framework.

                  For instance Web Formshttps://en.wikipedia.org/wiki/ASP.NET  , .NET MVC https://en.wikipedia.org/wiki/ASP.NET_MVC just to name more than ONE.

                  Anyway, if I should choose if my application will run on IIS or on Tomcat, I would always choose Tomcat. Things can go wrong in both cases but in my personal opinion it's easier to track it and fix it in the latter case.

                  • 6. Re: Is APEX driven by Java?
                    Tony Andrews

                    You seem to be confusing things.  You asked "Does APEX need a Java application server like Tomcat?" and have been told that yes, it does need such a layer.  But that layer is below the level at which any APEX developer ever has to work. 

                     

                    Now you say "With so many frameworks and libraries you concentrate more time in Java technical stuff rather than the business rules and the application".  That would be true of a Java development environment, but APEX emphatically is not that.  You spend 0% of your time working with Java when developing in APEX.  You never see any Java code.  So this objection to using APEX is completely spurious.  You may as well say you can't use your mobile phone or a bank's ATM because it runs Java at some deep level!

                    1 person found this helpful
                    • 7. Re: Is APEX driven by Java?
                      user12240205

                      fac586 wrote:

                       

                      user12240205 wrote:

                       

                      So, it's looks like APEX REQUIRES a Java layer to run.

                       

                      TBH we are not fond of Java.

                       

                      Java is too bulky and overkill.

                       

                      With over 35 frameworks now available developing applications is not practical and

                      also it is not maintainable.

                       

                      With so many frameworks and libraries you concentrate more time in Java technical stuff

                      rather than the business rules and the application.

                       

                      We want to eliminate Java altogether (from all layers) when building applications.

                       

                      .NET is better than Java by miles. .NET has only ONE framework.

                      What does this have to do with APEX? I have been developing APEX applications for 12 years without writing a single line of Java. You will develop and run APEX apps using a Java-based application server and web listener and never encounter any Java frameworks.

                       

                      There are a lot more than 35 JavaScript development frameworks out there. Does that mean that developing web apps with dynamic behaviour is "not practical and...not maintainable"?

                      But you have to do lots of configurations in the middle layer for ORDS, right?

                       

                      As a side question, I like to pose: Isn't it possible to create web-applications WITHOUT the user of any Java in any level??

                      • 8. Re: Is APEX driven by Java?
                        Scott Wesley

                        That's crazy logic. Sounds like you wouldn't used Android app X or a smart card because it uses Java technology.

                         

                        I've installed and used ORDS and I haven't written a line of Java. I also installed and used Word and haven't written a line of C++.

                         

                        What 30+ frameworks are you talking about? You're not confusing Java with JavaScript, are you?

                         

                        All the 'dynamicness' is coming from PL/SQL, driven by the data you have.

                        The application builder itself is browser based and utilises some clever JavaScript to build an impressive IDE. But it's still within the bounds of a fairly basic web page.

                        1 person found this helpful
                        • 9. Re: Is APEX driven by Java?
                          joelkallman-Oracle

                          Hi "user12240205",

                           

                          1)  APEX needs a "gateway" between the browser and the APEX engine inside the database.  When a user requests a page, the request is made to the Web server, it's recognized as an APEX request, the gateway makes a call to the APEX engine inside the database, the APEX engine produces the results (could be HTML or JSON), and the gateway then sends the results back to the browser.

                           

                          2)  The most common "gateway" for APEX is Oracle REST Data Services.  It's ultimately a Java program that acts as the gateway.  You can also use something called the embedded PL/SQL Gateway, which is part of the database server itself.  No Java involved.  Oracle REST Data Services is our strategic direction, embedded PL/SQL gateway is not.

                           

                          3)  ORDS can also be run using it's own embedded Web server.  I wrote a blog post showing how you can get ORDS up and running in a minute:  Let's Wreck This Together...with Oracle Application Express!: APEX and ORDS up and running in....2 steps!

                           

                          4)  There's also an open source gateway that you could consider using, but it's not supported by Oracle nor certified by us:  https://oss.oracle.com/projects/mod_owa/dist/documentation/modowa.htm

                           

                          My humble suggestion to you - don't get too hung up on ORDS being implemented in Java.  You don't have to know Java.  I've never had to program Java to use it or understand it.  It's a program that Oracle wrote which requires a Java container to run in.  It also provides some excellent functionality for creating RESTful Services against your database, as well as being able to interface to an ICAP server for virus scanning of file uploads.  ORDS is exclusively used by the Oracle Cloud operations teams to front-end APEX in all of the Oracle Database Cloud Services.

                           

                          I hope this helps.

                           

                          Regards,

                             Joel

                          1 person found this helpful