In my previous blog entry on EGL, I described how the EGL language enables the development of modern, multi-platform applications in a common language, and abstracts the technical details of the underlying frameworks and runtime platforms. I will go into more detail on the different types of applications you can write in EGL, and I will provide more information about the types of runtimes and frameworks that are supported by EGL.
There are many types of applications that you can write in EGL, which can be separated into two categories; applications that do not require a user interface, and applications that require a user interface. When writing an application that does not require a user interface, the following types of applications are available:
- Batch Programs: Applications that run without user interaction. These applications may or may not produce some type of output.
- Reports: Applications that are designed to run in a batch environment, with the specific goal of producing reports on a given data set. In Rational Business Developer (RBD), a variety of report types are available, including text reports and reports designed with the BIRT reporting framework.
- Services: Applications that are designed to make data and algorithms available to a variety of applications and users over an intranet or the internet. EGL supports the creation of industry standard SOAP services and EGL REST services using XML or JSON.
When writing an application that requires a user interface, the following types of applications are available:
- Rich UI: Client based web applications (i.e. Web 2.0) where the application is rendered dynamically in a web browser, and data is accessed through asynchronous service invocations.
- Text User Interfaces (TUI): Applications that are designed to run primarily in a host environment (i.e. "Green Screen" applications).
- Java Server Faces (JSF): Server based web applications (i.e. "Web 1.0") where the application content and state is managed on the server used to access the application.
As I mentioned in my previous blog, EGL makes it easy to access information from a variety of data sources, which means that developers can focus on writing business logic, and not data source access code. In EGL, the following types of data sources can be used:
- Databases
- DB2
- Oracle
- Derby
- Informix
- SQL Server
- IMS/DLI
- Messaging Systems
- WebSphere MQ
- File Types
- Text
- Comma Separated Values (CSV)
- VSAM (Indexed, Relative, Serial)
- Sequential Data Sets
- Temporary Storage Queues (CICS)
- Transient Data Queues (CICS)
- Services
- SOAP
- REST
While it is easy to develop entirely new applications in EGL, it is also very easy to access existing applications and code written in languages other than EGL. This means that existing, well tested components do not need to be re-written, and can instead be re-used. To enable the use of existing existing components, EGL provides:
- Remote Application Invocation
- COBOL
- RPG
- PL/I
- Assembler
- C/C++
- Java
- Source Code Integration
- Java
- JavaScript
- C/C++
Finally, once you have developed and tested your EGL application in RBD, you can deploy your application and run it in one of the following environments, depending on the type of application being developed:
- Browsers
- Internet Explorer, Firefox, Safari, Chrome
- IBM i, Windows, Linux, AIX, HP-UX, Solaris
- WebSphere Application Server, Tomcat, Native
- System z
- WebSphere Application Server, USS, Linux, Batch, CICS, IMS, zVSE
As you can see, there are many different types of applications you can write in EGL. An added benefit of developing in a language that supports so many frameworks and runtimes is that once you have developed an application in EGL, it is easy to transition to writing or maintaining other applications written in EGL.
If you are interested in learning more about EGL, or if you would like to join the EGL development community, be sure to visit the EGL Cafe. If you are interested in writing your own EGL application, you can download a trial of Rational Business Developer (RBD) from ibm.com.
About the author
Brian W Svihovec has been actively involved with the design and development of the EGL language, and its Eclipse based development environment, since 2001. His contributions include a significant involvement in the design and implementation of EGL Rich UI support in the EGL language, and being a lead developer on the EGL compiler for the Eclipse IDE. Brian has been the Chief Programmer for Rational Business Developer (RBD) since 2008.