Is Oracle Application Express (APEX) only suitable for small projects?
I sometimes hear the myth that Oracle Application Express (APEX) is only suitable for small projects and department systems. This could not be further from the truth; Oracle Application Express is exceptional, mature and a very scalable development platform.
I have been an Oracle Development Consultant, Project Manager and now a Development Director. I have been associated with this product for nearly 10 years, working on many client solutions, varying from small systems, systems deployed nationally throughout the UK and also dashboard-style systems with multi language capability. APEX has consistently proved that it has the flexibility to adapt to the challenges thrown at it. However as with all development tools, if you confine your opinion based upon just using very high level features and wizards or by just viewing simple demonstrations then you are supporting the myth.
Oracle Application Express is an Oracle Database feature and Oracle’s primary tool for web applications, using SQL and PL/SQL. Individuals and teams can build very secure and scalable applications in timescales just not possible a few years ago. The architecture is simple but the product is feature rich. The deployment, import and export of applications are very straight forward and APEX can scale in-line with your Oracle Database. The learning curve with APEX is not steep and if you have an Oracle Database development background, using PL/SQL then you will progress very quickly.
So how scalable is APEX?, the simple answer is very scalable; a good example is Oracle’s Database Cloud Service which includes APEX as the development environment. One reason that APEX can scale as well as it does is that it does not need a dedicated database session per user, only a database session to use to process a request from a user. Oracle also provides an instance that you connect to for evaluation purposes apex.oracle.com. Joel Kallman Oracle Software Director provided me with some recent statistics which highlight the volume of activity this single APEX instance is handling.
|In the past 7 days on apex.oracle.com:|
|Total Page Views:||4,875,173|
|Distinct Applications Used:||5,842|
|Total Number of Workspaces:||20,974|
|Total Number of Applications:||77,478|
|New Workspaces Approved:||904|
|(Statistics 6th May 2014)|
Joel also provided me with information which is very interesting regarding Oracle’s internal instance of Oracle Application Express. This instance is hosted inside of Oracle for anyone in the company to build applications, requiring nothing but a browser. It’s used by virtually every line of business in the company (e.g., EMEA HR, Database QA, Fusion Applications development, Marketing, North American Sales, India Development Centre Facilities, and Manufacturing & Distribution). In comparison to the evaluation instance available over the web this instance is for real applications that the business depends upon:-
|Total Page Views:||2,389,593|
|Distinct Applications Used:||2,023|
|Total Number of Workspaces:||2,759|
|Total Number of Applications:||4,592|
|(Statistics 6th May 2014)|
Oracle also have an internal APEX application called “Aria People” which is basically an employee directory, this application is used by virtually every employee within Oracle and averages 1.4M – 1.5M page views per day. On one specific day (18-MAR-2014) there were 3,132,573 page views from 45,767 distinct IP addresses. The median page rendering time was 0.03 seconds. In this same application, on 11-MAR-2014 there were 171,156 page views in a single hour, from 6,254 distinct IP addresses. That averages out to 47.543 page views per second.
Besides APEX being the development environment within Oracle Database Cloud Service, products such as Audit Vault and Database Firewall and 12c Multi tenant Self Service provisioning all use APEX.
The overhead associated with the APEX engine is fairly static (measured in hundredths of a second) however if you write a SQL query that takes 60 seconds to execute and you place your query in a report in an APEX application you can expect the execution of the page to take 60 seconds also. The key to writing great performing APEX applications is to write efficient SQL.
From a security perspective APEX applications can suffer from the same class of application security issues as other web applications based on technologies such as PHP, ASP.NET and Java. Cross Site Scripting tends to be the most common vulnerability along with SQL injection; these issues are not specific to APEX and are resolved through good coding practice. Other potential vulnerabilities like Access Control and Item Protection within APEX itself can be swiftly rectified through defining and enforcing APEX build standards within your organisation. I have found APEX applications to be no less secure than Java or .NET application but usually easier to secure because the architecture is so much less complicated.
From my experience of working with a number of different customers, APEX is flexible enough to adapt to the customers’ existing way of working rather than the tool itself dictating how the customer should work. Admittedly, this is not always obvious to those new to Application Express and relies on experienced and skilled APEX developers to get buy-in from the business to adopt APEX as a strategic and tactical development tool. With APEX I have always found a way to accommodate the clients preferred design/build methodology, security, audit and authentication requirements and also incorporate existing corporate branding standards. Make no mistake, APEX is powerful and should be seriously considered and evaluated by those who recognise the value in low cost development and rapid deployment.
APEX can also be used successfully with a number of different project methodologies and approaches – not just a traditional software development lifecycle. Because APEX is so tightly integrated with the Database, the complexity of the application framework including session management and security are handled automatically, allowing the developer to focus on delivering application functionality relevant to their business requirements. This means that applications can be delivered in a number of days rather than weeks. Because of this, APEX is perfect for methodologies that emphasise rapid and iterative prototyping such as Rapid Application Development (RAD) as well as those that place high value in the quick delivery of useable software such as Agile. One particular client application needed to maintain the full development lifecycle approach but also needed to switch to a more RAD approach to utilise techniques such as prototyping to further enhance the application to meet business demands. Using APEX gave us the ability to adapt the methodology as the application matured, to align with client budgets and timescales. The application in question has been live for over 7 years, and has been through 3 major releases to introduce additional benefit to the business, proving how scalable it can be. In another situation, where APEX had to prove it was the right choice for a large UK wide deployed project, confidence had to be gained at board level first. We were able to quickly prototype key features to demonstrate suitability for the business requirements, which instilled confidence in the board to progress. These prototypes were then used as the foundations for the on-going project meaning no effort was wasted.
The latest version of APEX introduces more productivity gains with a wealth of new features, and going forward more connectivity options through Oracle REST Data services, tablet interface, a responsive theme and enhancements to the mobile UI. Oracle has consistently released new versions of Application Express since its inception in 2004 and this commitment has been great for client confidence in the product. Application Express is here to stay and adoption is only going to increase due to an ever growing profile and successful use cases. Application Express is part of the Database and Oracle will always protect the Database.
The APEX community is growing at a rapid rate and thanks to a number of dedicated individuals who put the time and effort into writing blogs, answering forum questions and event speaking, the product popularity is going from strength to strength. The Oracle development team responsible for Application Express are the most visible and receptive product group I have experienced throughout my own journey with Oracle technology. The formula is right, the product just keeps getting better and it enables me to confidently delivery projects of varying degrees of complexity time and time again without failure.
It always surprises me when key Database features never actually ever get used or at least evaluated especially when a more efficient and easier method could be introduced for Database and Application development projects. So, why not extend your Database development skills utilising what you already own (APEX) with code (PL/SQL) you have already written? It would be a shame if Oracle Application Express went under your radar.
Simon Greenwood is the Development Services Director at Explorer. Simon has a long history with Oracle Development tools such as Forms and PL/SQL, and since 2005 he has taken a leading role in promoting Application Express to Oracle customers. Simon is the Co-Chairman of the UK OUG APEX SIG and a member of the APEX advisory board. Explorer is an Oracle Platinum Partner focussed on developing bespoke applications, consultancy and training using Oracle Application Express. Simon’s team of well-respected and highly regarded APEX developers are highly skilled in converting business problems into functional and low cost bespoke systems.