What is QAFE?
QAFE is an Enterprise Application Development Platform. A framework that allows any developer (Java or other) to develop JEE Applications (from front-end to back-end and vice versa), needing only a knowledge of XML and their own technology.
Instead of choosing a specific technology, for example for the presentation of your application, QAFE abstracts the presentation to a model which can be applied to your current implementation and any future implementations. The back-end part is fully XML and supports many interesting features.
Please browse our QAFE FAQ-section to find out more about:
QAFE in general (framework basics), getting started with QAFE (performance, validation), technical questions (languages used, applications & infrastructure), running QAFE (scalability, continuity), and QAFE for Oracle Forms
Did you not find your question? Please us http://www.qafe.com/contact-qafe/ We will answer your question asap!
QAFE is a platform that represents a totally new approach to Enterprise Application Development. This framework allows any developer (Java or other programming language) to develop JEE Applications (from front-end to back-end and vice versa), only knowledge of XML is needed together with their own technology skillset. Instead of choosing a specific technology, for example for the presentation of your application, QAFE abstracts the presentation to a model which can be applied to your current implementation and any future implementations. The back-end part is fully built on the basics of an SOA. Integration with several backend technologies is a bliss.
QAFE is the result of years of consultancy experience in the field of Large Scale System Development and Enterprise Application Development. The recurring pattern of having to reimplement the front-end in a new technology (because the market demands it) was a big problem for many companies. Companies had to invest in new technology although it was not their core business. Until now! QAFE is future-proof!! Any upcoming or current technology can be used on the front-end. The back-end has a well-defined architecture, clear and concise.
The focus on the back-end is based on the business logic and the technology that is common for that company or department. Even Oracle Developers (using Oracle Forms) can create their Enterprise Applications within minutes with all the complex queries they want!
The best way to get started with QAFE is to watch these videos.
Actually you can use your favorite development tool. It is advisable to have an editor that performs an auto-complete on the QAML code when developing (for example Eclipse). Oracle developers can still use TOAD, PL/SQL Developer or any other tool that they are familiar with to program the logic. Java developers can use their favorite IDE.
And there is more: The QAML Builder: this is the complete IDE to develop your applications. The QAML Builder is in fact an Eclipse environment.
Underneath the frame of the QAML (QAFE XML), you need to know the QAFE Markup Language and your current skill set (such as Java or SQL programming).
QAFE introduces another development platform. What possibilities does QAFE offer for handling the installed base of tailor-made applications?
On the front-end part (your current web applications) you can reuse and incorporate that application within the QAFE desktop environment (since it is also web technology). The back-end technologies can stay as is, and with the QAML Builder (the QAFE Development Environment based on Eclipse) you can enable any Java class or Database to be used by the QAFE Platform.
A QAFE developer needs to be familiar with some basic concepts of the GUI, the architecture and the QAML. From that point on, the QAFE developer can use the skills he or she already has.
The 20 Java developers can still do their job, but will be able to focus more on the business layers. That’s where the interesting work happens for you and the customer. QAFE helps you get rid of the nitty-gritty work when developing web applications. The modern Single Page Applications architecture is there, ready to be used.
Finally, you can deliver in time and the business requirements will be more interesting.
Please contact email@example.com for more information.
Please contact firstname.lastname@example.org for more information on this. Interestingly enough QAFE has an Exalogic, Amazon WS and Google App Engine Edition: This allows you to use the power of the cloud while developing application which in the end will be used on the ‘private network’.
Visit http://www.qafe.com/developers/installation/ to get the latest releases of QAFE. After registration you will receive valid trail licenses for running QAFE products. The products available for trial are the QAFE Engine (GWT) and the QAFE QAML Builder (Development environment, Eclipse based). There are even prebuilt IDE’s available as downloads.
QAFE is built with Java technology. The Java version that is required is JDK1.6 or higher. In addition, any J2EE/JEE Appserver or just a Tomcat or Jetty Servlet Container is sufficient. Please check the documentation of the Application Server or Servlet Container implementations for availability.
Register with us and you will receive an email with links to the page to download QAFE, and where to find the installation instructions.
Since QAFE Engine and QAML Builder are commercial products, a quote for the license can be requested on this page. Note that a Trial Version of the QAFE Engine and QAML Builder are available for a 30 day free trial.
Yes, it definitely is! We saw this coming in 2007 and anticipated on this program model where we can the browser capabilities play an important role. QAFE uses the latest in Web technology to assure responsive and robust applications.
The QAFE application is built on existing technologies. On the front-end Google and Adobe technology make sure that the performance is good. On the back-end the design patterns and best practices are applied that are needed in every Enterprise application. This makes sure that the applications written in QAFE will be scalable. Note: for the Google technology used, a modern browser is highly recommended (at the latest of the major browsers available nowadays).
A lot happens before the QAFE application is run. The QAML code needs to be translated into a presentation technology and is also the input for the business layer processing. The Business Layer translation is already executed in memory, so the processing is fast.
The presentation technologies have something special; since QAML is an application definition, the presentation technology engines or renders need to interpret this QAML code.
In the case of Adobe Flex, the output is tuned and optimized according to the Adobe Flex development standards. A lot of processing occurs on the server-side, of course. With Adobe Flex as output rendering, the MXML code is generated and Flex is responsible for optimizing that code at runtime.
As mentioned in this article, Oracle is not giving up on PL/SQL.“PL/SQL is absolutely not going to go away. It’s critical technology in so many parts of the Oracle technology stack. And even if it weren’t, there are literally millions of lines of PL/SQL code out there that have been running in mission-critical applications for decades. So, I think that everybody should be quite confident that PL/SQL is not only going to stick around, but it will be enhanced. The PL/SQL team is still working hard at making it the best possible database programming language.”
Most developers love having all the logic in *one* programming language. Java or .NET (or other languages, but let’s focus on the mainstream for Enterprises. As a result many applications perform poorly, because it doesn’t make sense to get the information from the datasource first and then start filtering in memory. The memory usage on the server side becomes huge, especially if millions of users are to use your application.
In QAFE we like to think best of breed: use the best technology for the correct purpose. As the Oracle database is here to stay, we have to use the power of that technology to the fullest. That is why QAFE works seamlessly with PL/SQL, allowing PL/SQL developers to be more productive and reuse his/her skills. While offering an easy transition to Java and SOA, in order to write Web2.0 applications and integrate with other databases and Java logic in a transparent way.
P.S. Good to see that Oracle is also implementing new features like Function Result Cache, a much needed feature in Enterprise Applications (QAFE already implemented this for all databases of course).
We have a heterogeneous ICT landscape, using multiple GUIs, databases and operating systems. How will QAFE fit in?
As long as the GUI is using web technologies, it’s quite easy to incorporate them into the QAFE Platform. The logic in the database can definitely be reused. The operating system really doesn’t matter as long as JDK1.6 or higher is supported.
We’re running several applications on a mixture of mobile devices and PC browsers. What possibilities does QAFE offer here?
Just like any other web application written for JEE/J2EE platforms. See http://www.qafe.com/developers/open-architecture/
Memory: at least 512Mb on a Tomcat 6.0
Java Runtime: JDK 1.6 or higher. Note that Java5/JDK1.5 is not supported
Just go to http://registration.qafe.com and request for a trial license. In this request for license links to the QAML Builder and QAFE Runtime are specified. Even prebuilt Eclipse with all necessary plugins is available for download. After downloading and installing the QAML Builder in Eclipse, follow these videos to get a quick start on the development environment.
I’m not sure if QAFE offers me what I’m looking for. What can you do to convince me that QAFE is the answer?
Please have a talk with one of the technical members of the QAFE team. You can reach them by sending an email to email@example.com.
We offer the site: http://demo.qafe.com. Here you can play around, see some samples and best of all, you can create your GUI on the fly. For security purposes event handling is not allowed, but feel free to create any of your GUIs. Tip: check the showcase app for some code samples. Copy and paste it in the QAFE-Labs (menu) -> Try me. Click and press ‘Render to GWT’ and your application will be rendered in just a split second. If you want to develop apps, please see http://registration.qafe.com
Qualogy is a consultancy company that has been around for more than 14 years. The high quality of Qualogy’s employees ensures that customers have an unforgettable experience. At the same time, the QAML specification is proposed as an open standard, so that third parties can create their own render engines.
How fast will Qualogy produce new engines if new environments become available, for front-end or back-end?
The QAFE engines are updated each time a new version of the GUI technologies are provided by parties like Google and Adobe. If other technologies become hot (we are following the trends in the market), then we will definitely include that in our render engines.
We have customers and partners on three continents currently, please contact firstname.lastname@example.org for more information.
Currently JSF is seen as a standard in JEE development. This has a very steep learning curve. Learning GWT and Adobe is also time-consuming (and requires knowledge of Java). If you do not have the time to learn Java and submerge yourself in the details of GWT/Flex, then QAFE will be your solution. RAD is also possible.
With the QAML Builder we have a real productivity booster.
Since QAFE is declarative, it’s easy to find the position where you want to make the change. Reload the application on the fly and you’ll have your changes in place. This instant reload is integrated in the QAML Builder. An embedded appserver makes sure you have your application running in your browser, within seconds.
Sure, look at http://demo.qafe.com. Also check the videos on http://www.qafe.com/videos/
QAFE is a platform for every developer in the world. For support and consultancy services we work with local partners. If you want us to be of assistence in your project, we offer:
Expert Services Consultancy
An assessment program for Oracle Forms Conversion.
The assessment helps us to make a better estimation of the time involved for migrating the Oracle Forms. We use tools to make sure that we gather enough information to have a better understanding of the complexity and the amount of work. Resulting in a final report with findings regarding easier maintainance, new development or needed modernization / migration (both in present and the near future). You can find more information on these services in the Forms Migration Services section of our website.
The software architecture that is used in QAFE is the result of years of experience in the field, best practices, and software engineering theory. The architecture is divided into four clear layers, each with its own function:
Presentation tier (the GUI)
Business tier (for combining several services and functioning as the bridge between the presentation-tier and the service)
Service tier (where you specify the API on the lower level resource that you want to use)
Resource tier (where you define the lower level resource on which you want to work!)
The best way to get started with QAFE is to watch these videos.
Will the target application be a JEE application? In that case what are the choices we’ll have in terms of OS, database, and application/web server platforms?
QAFE is actually a platform running on JEE Servers. We’ve tested on JBoss, Oracle WebLogic, Websphere, Tomcat and Jetty. The OS is independent, since the only requirement is that there must be a Java6 version on that OS available. The database can be any database as long there is a JDBC driver for it. We have tested with Oracle 9i/10g/11g , MySQL and Teradata.
If it is JEE application, how much the application will rely on QAFE framework? Will there be a possibility to convert the application to fully JEE compliant one later on by refactoring layer-by-layer, ,event driven web forms, Spring IOC, any O-R or SQLMap solutions for data persistence?
QAFE is an engine which interprets the QAML files and creates Web2.0 applications. Note the word â€œEngineâ€, since it’s all happening in memory/on the fly. We created what is currently known as Single Page WebApplications. JSF is a page oriented design for Web, current and modern apps use a more data-oriented approach (see Google WebToolkit and other Google online products). Actually it’s not strange in the JEE world to be dependent on another library, for example Spring, JSF, Database drivers, etc.
Since we have layered approach, it’s easy to use (and move to) another class/implementation/database, since the layer is loosely coupled. So to use use Open Source/Non OpenSource libraries/classes is not a problem at all: For example, at a big telecom provider, QAFE was implemented on JBOSS using an Informix database AND an Oracle database at the same time. QAFE was used as a front end technology on JBOSS workflow was used to guide the process in the backend. For another project, we have used QAFE combined with Cassandra (also used by Facebook) and a cloud server.
Since QAFE is a JEE based platform, all the mentioned technologies are free to use (and easy to use with QAFE).
Please see the architecture description on this page http://www.qafe.com/developers/open-architecture/
There is a clear distinction between the Business Logic Layer (we call those the Business-actions) and the Service layer (in case of a database layer, we have an intelligent DOA mechanism, because this pattern was repeated too often in Enterprise WebApps). Component Based Development and Reusability were one of our first requirements: This has all to do with the Service Oriented Architecture, which is embedded in QAFE.
The source code of QAFE is not publicly available.
Will the user interaction events like an validation of certain items, general a post to the web or is it Ajaxified ?
The core of QAFE is that we want to use Modern Web Technologies (like Google Webtoolkit (GWT), Adobe Flex, etc, unlike JSF, which is from 2002!). These modern technologies don’t work with full page refreshes. GWT has an advanced AJAX mechanism, which is really powerful and designed for performance (writing AJAX manually is easy, but to tune is less trivial). Luckily QAFE builds on top of GWT and with QAFE writing GWT applications is easy.
Since the programming model in QAFE is technology-independent, the programming is mostly done in XML. XML is already structured and compliant to the corresponding XSD. XML requires a unique id for each component or other element. Camel case (the first letter lower case and each subsequent word with initial capital, for example “myQafeApplication” is advised for readability. Of course all of this can be graphically managed in the QAML Builder.
It’s true that a large application defined in QAFE will result in a large XML file. We tackle this problem by allowing the developer to decide when to split up the files. For example, you can make a file for each tier or for each window. Several QAML files can merged together to become one application. It’s also possible to read a directory containing multiple QAML files. All the files in this directory are merged to one application. See Application Context [http://www.qafe.com/static/documentation/api/application-context.html] for configuring applications.
QAML code is validated against the XSD definition that was developed by the QAML team. The QAML Builder, our IDE based on Eclipse, validates the QAML code while developing. See also the documentation. Of course any XML Editor with XSD validation can be used too.
The output of a business action is always a variable that is stored in the data store/pipeline. With a “name” you can retrieve the data. The data store can contain the following data:
• A map containing key-value pairs to represent objects/single rows.
• A list of maps containing a collection of maps with key-value pairs that represent a single row. In SQL this is the output of an SQL statement, and in Java it’s a collection.
Can I specify another directory on my file system instead of putting every file in the WEB-INF directory?
Yes you can! In the application tag in the application-context, just use the root attribute and provide any directory you want.
QAFE is written in Java, so it will run on any JEE Appserver or even the lightweight Tomcat/Jetty. The logic that is written in .NET can be accessed through WebServices. The .NET developer needs to provide the WSDL.
We’re developing in Java using, for example, Struts, Hibernate, and Spring. What added value does QAFE provide?
Well, Struts is a typical Web 1.0 technology, i.e. it assumes a Page-Oriented Approach. Hibernate and Spring are tied together and most probably used on the back-end. QAFE can easily use the logic on the back-end. The front-end can be replaced by a QAFE Presentation tier which will result in much more interactive and intuitive experience for the end user.
We have tooling available that will help you reduce the time that you need to write the code. The QAML Builder really allows you to graphically ‘write’ your code. You don’t even need to see the QAML code. Its all managed for you.
‘A lot of code could introduce a maintenance issue. How does QAFE avoid ending up in an uncontrollable situation with application maintenance?
QAML is plain XML. Of course XML files can become large. We have a feature that allows you to split up a big file into smaller chunks. These are glued together as a single file at runtime. Since QAML is plain XML, tools like Subversion and CVS can be used for the history and maintenance.
QAML Generator and QAML GUI are tools that generate the front end and SOA-enable your database or java class/services. The Forms conversion process does all the work for you to get to a Web 2.0 application.
clipse/JDeveloper/Netbeans, etc. have an editor to create Swing Applications. You can use this to create swing applications in a drag-and-drop fashion. With QAFE GUI Conversion it is possible to extract the presentation tier of the QAFE from the Swing application. You instantly go from a desktop technology to a modern web technology.
The QAFE application can use the following languages:
• QAML (QAFE XML)
• Java services (optional)
• Database services (optional)
• For logical expressions, the powerful Python scripting language is used. Python allows you to create and evaluate complex expressions.
The security model is role-based. Some methods need to be defined in order to make it work. You can decide for yourself where to store the user information (authentication and authorization). Note: connection to a LDAP is possible.
These are additional features that are optional (since some parties already have something in place).
Since QAFE has declarative debugging, this is not actually needed.
In the QAML Builder the logic in the specific technology can be debugged.
It is advised to use Eclipse for Java EE Developers [Eclipse 3.7 ((Indigo)] for installing QAML Builder plugin. Otherwise. Just download the prebuilt QAFE Development Environment.
What should I do when I am getting missing plugin dependency error messages when I try to Install maven plugin?
If you are trying to install QAML Builder on to your existing eclipse please make sure that plugins for eclipse EMF and GMF is already installed. If Eclipse Java EE Developers is used this won’t be needed. You also need to install maven plugin and then finally the QAML Builder plugin.
Yes: If you are an Oracle Forms customers (using Oracle Forms Developer) then the process is iterative. We provide tools with which you can set up rules and with these rules you can filter out the unnecessary parts from the Oracle Form to make sure that the QAML output is clean.
The better the rulesset, the better the output. The Forms Conversion GUI is in fact a wizard which helps you decide what to modernize.
No. QAML Builder is an IDE. To convert Oracle forms QAFE has another tool called QAFE Forms Conversion GUI. The output of the Forms Conversion process can be opened in the QAML Builder which immediately allows you to edit and run the QAFE application.
Most of it. Please take into account that some of the logic will not automatically apply to the new situation. We divide the logic into two main parts:
- Control logic (related to screen components/items)
- True business logic
The logic can in general be found in many places (triggers, program units, PLLs, etc.). Bear in mind that not all of the logic in your current FMB is relevant. For the relevant code we provide comments on the basis of which the developer can decide whether or not to use it. Our advice is to perform a functional migration at the same time as the technical migration.
How do transactions from Forms work inside QAFE? Forms is a stateful application: your application has a new UI but do you still support stateful applications?
Since the migration is from 2-Tier (Client-Server) to N-Tier architecture, you cannot have a dedicated database connection. So in that sense, the concept of transactions (as known in FMB) is not applicable in modern web applications. Of course, the JEE standard defines how transactions should be used and we do support that feature. For this, you make your application stateful (you can store variables within the context of a user session).
The FMBs are supported from Oracle Forms 6i and higher.
ince Oracle Designer produces Oracle Forms (FMBs) we use the output. We know from our customers that there are post-generation steps that are not in Oracle Designer. So directly accessing Oracle Designer would not have all the contents. From 2012 we decided that the only source of information is the FMB (with post generation steps and manual modifications included).
QAFE has had multilingual support from the beginning. It’s quite easy to set this up.
With the Oracle Translation Hub you have to create new instances of the Forms in each language: for example one Form for English and one Form for Spanish. In QAFE this is not the case. We support multiple languages in one Form. We need the keys and their translation in the specific language. So the license model does not change because of the Translation Hub.
Yes, they are. We advise you to use a more modern approach, however: Auto-complete text field search while typing. Much faster and much more user-friendly! In QAFE Forms Conversion GUI we translated LOVs to autocomplete fields. This is what we call modernization besides conversion of the Form to another technology.
Style libraries are required in the conversion process, since even though the Item is defined as a Text Item (for example) in the FMB, the way it is rendered is mostly described in the Style libraries (OLB), so we require this as an input.
Yes, parameters are supported from Form to Form (or from an external source). Note: In the QAFE Runtime/Platform this is much easier and really fast!
Once the QAFE Forms Conversion has output QAML code, it’s really easy to extend, modify, etc. in the QAML Builder. From this point on, development of this kind of application becomes really easy.
No, If you are a database developer, then Java is not required at all. The knowledge that a database developer has is very valuable and in QAFE you can use your QAML + PL/SQL knowledge to create state-of-the-art applications.
No, you don’t have to migrate useful PL/SQL code to the database. QAFE has an intermediate layer for database access. In fact this is the API to your database. These pieces of PL/SQL code can be moved to this layer (we call this the statements file). The only requirement is that the PL/SQL must be free of any Forms-specific logic.
In Forms Migration starting from FMBs we can migrate almost 90 to 95%(!). After that, some of the logic may not be not needed anymore. There will always be a situation where a developer has to decide what to do with the PL/SQL. Most of the time there is a new and more modern way to solve this.
Can I customize the same form for each customer even though the language is the same? (Some customers use different labels on their buttons, although the button has the same functionality and for the customer they are both in English)
Yes, define a new set of message bundles for each customer (this is how we do multilingual support).
If I start a Forms conversion process with QAFE, do I have to implement it like a Big Bang scenario?
No, definitely not. Web Oracle Forms (Applets) will run within the QAFE Environment.
No, it’s not needed anymore. An open source web container implementation or application server (that supports servlet specification 2.4 and JSP specification 2.0) is sufficient. For example Tomcat 6.0.* is already working with QAFE.
Yes, there is. The QAFE Forms Conversion GUI is a web interface and will help you to migrate your Forms. In this process filtering is applied so that you don’t get what you don’t want.
Yes. The GUI Forms Conversion supports filtering. For example if a Window starts with “CG$” then this might tell you that this is generated or built-in. This window is not needed after migration. Furthermore, a lot of applications have a separate Oracle Forms Window for the Calendar. In the case of QAFE, this is so much easier.
Yes, through the GUI Forms Conversion you can select what you want (including windows, toolbars,etc).
Yes, this is possible. The Converted Oracle Form can connect to multiple databases or other sources of information. There is no need to use database links to get data from another database. The limitation to only connect to the source database is no longer there.
Can the Oracle Forms still use the same database in runtime? Do I have to change anything in the database?
Yes, you can use the same database as you used for the Oracle Form. You don’t have to change anything. The impact on your existing database is zero if your forms are simple, and low if the forms are more complex.
Now Oracle Forms are connected to one database only. I use database links to overcome this problem. Can this be done in an easier way?
Just connect directly to the other database. There’s no need to use Database Links.
Yes, QAFE doesn’t restrict you to using only the Oracle database. You could get information from a MySQL, SQLServer database in one go and see the data as an aggregated view.
QAFE is a framework to create Web 2.0 applications with a Service Oriented Architecture. ADF is an extension on the Java Server Faces and is mainly concerned with the presentation and navigation. With JQuery ADF tries to mimic the native Web2.0 technologies (like GWT/Flex). APEX is a solution from Oracle where the code you write is a combination of HTML and PL/SQL (and is client-server architecture). The http server runs on the database. It is very fast of course, but with integration of systems in mind, this is just not good enough for modern web applications.
We are interested in reducing costs by replacing Oracle with a PostgreSQL database. Our major concern is how to handle Oracle Forms applications. Do you have any experience in handling this type of conversion?
We do! The biggest problem is not necessarily the datamigration to the Postgres Database, but the logic that is programmed in PL/SQL (for example in Stored procedures) to get them in target database. From a QAFE point of view, as long there is a driver for the database, it’s not a problem to connect to it (and there is a driver, see http://jdbc.postgresql.org/).
I noticed that Servoy claims that: it is as easy to learn and as productive as Oracle Forms. And it allows building applications 5x faster than with JDeveloper. Do you achieve the similar productivity levels after conversion?
QAFE is a lot easier to learn and a lot more productive compared to Oracle Forms (and Servoy). In order to answer the question exactly how many times faster than JDeveloper, you’ll have to see QAFE in action. Please send us an email or call us, so that we can setup a webconference session with you!
QAFE is the first framework to combine Web2.0 and SOA in one solution and in a fully declarative way. It is able to do so much more with the data from an Oracle Forms environment. Object libraries are omitted in Oracle Apex Forms Conversion, while there is quite some relevant information in there. The same for Oracle JHeadstart. That is a shame. Furthermore, we know that some Oracle Developers don’t like Java and the whole object-oriented way of thinking, because it is not that productive as what they know from Oracle Forms. QAFE solved that.
Bottom line: being truly technology independent, QAFE is guaranteed to be around for a long long time to come. For more information please see: http://www.qafe.com/oracle-forms-conversion/oracle-forms-modernization/.