Enterprise Generation Language
Encyclopedia
EGL is a high level, modern business oriented programming language, designed by IBM to be platform independent. EGL is similar in syntax to other common languages so it can be learned by application developers with similar previous programming background. EGL application development abstractions shield programmers from the technical interfaces of systems and middleware allowing them to focus on building business functionality.
EGL applications and services are written, tested and debugged at the EGL source level, and once they are satisfactorily functionally tested they can be compiled into COBOL
, Java, or JavaScript code to support deployment of business applications that can run in any of the following environments:
An EGL Program part is a generatable logic part with one entry point. Each Program part contains a main function, which represents the logic that runs at program start up. A program can include other functions and can access functions that are outside of the program. The function main can invoke those other functions. Programs functions are composed of a set of EGL statements, variables, and constants.
Record
An EGL Record part defines a set of data elements. In this example, a record with the name CustomerRecord is defined with 6 fields.
EGL has a specialized type of record called SQLRecord that is used to exchange data with a relational database.
Service
An EGL Service part contains public functions meant to be accessed from other applications or systems. In this example, a service with two functions is defined.
RUIHandler
The main component of a Rich UI application is a Rich UI handler part. These parts are generated into JavaScript.
-style Rich Internet Applications. This technology simplifies development by hiding the complexities of Ajax
, JavaScript
, Rest
, and SOAP
from the developer, which enables them to focus on the business requirement and not on the underlying technologies.
and also in the EGL edition of Rational Developer for System z.
EGL is a target language for modernization of legacy applications because of the language semantics affinity with procedural languages and legacy 4th generation languages:
Tools for searching large EGL code bases, comparing individual EGL files for changes, and detecting duplicated code are available from Semantic Designs
The Katana-EGL Rich UI Framework from ClearBlade delivers a jump start and rapid prototyping for EGL Web 2.0 and Mobile applications.
EGL applications and services are written, tested and debugged at the EGL source level, and once they are satisfactorily functionally tested they can be compiled into COBOL
COBOL
COBOL is one of the oldest programming languages. Its name is an acronym for COmmon Business-Oriented Language, defining its primary domain in business, finance, and administrative systems for companies and governments....
, Java, or JavaScript code to support deployment of business applications that can run in any of the following environments:
- Microsoft WindowsMicrosoft WindowsMicrosoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...
, LinuxLinuxLinux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...
, UNIXUnixUnix is a multitasking, multi-user computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs, including Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, and Joe Ossanna...
running JVM, for example in the context of a Java EE servlet container (IBM WebSphere Application Server, Apache TomcatApache TomcatApache Tomcat is an open source web server and servlet container developed by the Apache Software Foundation...
, GlassFishGlassFishGlassFish is an open source application server project started by Sun Microsystems for the Java EE platform and now sponsored by Oracle Corporation. The supported version is called Oracle GlassFish Server...
) - IBM System z: CICS Transaction Server, IMS, z/OSZ/OSz/OS is a 64-bit operating system for mainframe computers, produced by IBM. It derives from and is the successor to OS/390, which in turn followed a string of MVS versions.Starting with earliest:*OS/VS2 Release 2 through Release 3.8...
Batch, UNIX System ServicesUNIX System ServicesUNIX System Services is a required, included component of z/OS. USS is a certified UNIX implementation optimized for mainframe architecture. It is the first UNIX 95 to not be derived from the AT&T source code...
, WebSphere Application Server, z/VSE, Linux - IBM System iIBM System iThe IBM System i is IBM's previous generation of midrange computer systems for IBM i users, and was subsequently replaced by the IBM Power Systems in April 2008....
: IBM i5/OS, IBM WebSphere Application Server, Apache TomcatApache TomcatApache Tomcat is an open source web server and servlet container developed by the Apache Software Foundation... - Internet ExplorerInternet ExplorerWindows Internet Explorer is a series of graphical web browsers developed by Microsoft and included as part of the Microsoft Windows line of operating systems, starting in 1995. It was first released as part of the add-on package Plus! for Windows 95 that year...
, Firefox, SafariSafari (web browser)Safari is a web browser developed by Apple Inc. and included with the Mac OS X and iOS operating systems. First released as a public beta on January 7, 2003 on the company's Mac OS X operating system, it became Apple's default browser beginning with Mac OS X v10.3 "Panther". Safari is also the...
browsers for Ajax rich web applications
Code examples
ProgramAn EGL Program part is a generatable logic part with one entry point. Each Program part contains a main function, which represents the logic that runs at program start up. A program can include other functions and can access functions that are outside of the program. The function main can invoke those other functions. Programs functions are composed of a set of EGL statements, variables, and constants.
Record
An EGL Record part defines a set of data elements. In this example, a record with the name CustomerRecord is defined with 6 fields.
EGL has a specialized type of record called SQLRecord that is used to exchange data with a relational database.
- In this example, the record Employee is bound to a table (or view) named Employee.
Service
An EGL Service part contains public functions meant to be accessed from other applications or systems. In this example, a service with two functions is defined.
- In EGL, code is organized in packages (like Java (programming language)Java (programming language)Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...
) - The first function, getEmployees, returns an array of records populated from the records in a database.
- The second function, addEmployee adds a new record to the database and returns a true or false depending on whether the record was added successfully.
RUIHandler
The main component of a Rich UI application is a Rich UI handler part. These parts are generated into JavaScript.
Web 2.0 with EGL
In December 2008, IBM introduced new technology, EGL Rich UI, to simplify the creation of Web 2.0Web 2.0
The term Web 2.0 is associated with web applications that facilitate participatory information sharing, interoperability, user-centered design, and collaboration on the World Wide Web...
-style Rich Internet Applications. This technology simplifies development by hiding the complexities of Ajax
Ajax (programming)
Ajax is a group of interrelated web development methods used on the client-side to create asynchronous web applications...
, JavaScript
JavaScript
JavaScript is a prototype-based scripting language that is dynamic, weakly typed and has first-class functions. It is a multi-paradigm language, supporting object-oriented, imperative, and functional programming styles....
, Rest
Rest
Rest may refer to:* Leisure* Human relaxation* SleepRest may also refer to:* Rest , a pause in a piece of music* Rest , the relation between two observers* Rest , a 2008 album by Gregor Samsa...
, and SOAP
SOAP
SOAP, originally defined as Simple Object Access Protocol, is a protocol specification for exchanging structured information in the implementation of Web Services in computer networks...
from the developer, which enables them to focus on the business requirement and not on the underlying technologies.
Commercial Products
EGL programming tools are available as an Eclipse-based commercial product, the Rational Business DeveloperIBM Rational Business Developer Extension
IBM Rational Business Developer provides a powerful workbench for Enterprise Generation Language development, an innovative end-to-end rapid development approach.-Overview:...
and also in the EGL edition of Rational Developer for System z.
EGL is a target language for modernization of legacy applications because of the language semantics affinity with procedural languages and legacy 4th generation languages:
- a set of conversion tools available within the Rational Business DeveloperIBM Rational Business Developer ExtensionIBM Rational Business Developer provides a powerful workbench for Enterprise Generation Language development, an innovative end-to-end rapid development approach.-Overview:...
product provide automated the conversion from older and stabilized IBM and InformixInformixIBM Informix is a family of relational database management system developed by IBM. It is positioned as IBM's flagship data server for online transaction processing as well as integrated solutions...
4th generation languages - a set of IBM service offerings and complementary products (Rational Migration Extension for Natural, Rational Migration Extension for System i) provide the ability to convert from Software AG NaturalNATURALNATURAL is a fourth-generation programming language from Software AG. It is largely used for building databases output in plain text form, for example. * Hello World in NATURAL WRITE 'Hello World!' END...
and from IBM RPG to EGL
Tools for searching large EGL code bases, comparing individual EGL files for changes, and detecting duplicated code are available from Semantic Designs
The Katana-EGL Rich UI Framework from ClearBlade delivers a jump start and rapid prototyping for EGL Web 2.0 and Mobile applications.
External links
- EGL Cafe Community Site
- IBM Rational Business Developer product page
- IBM Rational Business Developer Information Centers
- Eclipse EGL Development Tools (EDT) Project - an open implementation at EclipseEclipse (software)Eclipse is a multi-language software development environment comprising an integrated development environment and an extensible plug-in system...
Books on EGL
- Enterprise Web 2.0 with EGL, ISBN 978-1-58347-091-6.
- Developing Web 2.0 Applications with EGL for IBM i, ISBN 978-1-58347-089-3.