EGL (programovací jazyk) - EGL (programming language)

EGL
(Enterprise Generation Language)
Vývojář IBM
Licence Veřejná licence Eclipse
webová stránka www .eclipse .org / edt /

EGL (Enterprise Generation Language), původně vyvinutý společností IBM a nyní dostupný jako open source projekt EDT (EGL Development Tools) pod licencí Eclipse Public License (EPL), je programovací technologie navržená tak, aby splňovala výzvy moderní, multiplatformní aplikace vývoj poskytováním společného jazykového a programovacího modelu napříč jazyky, rámci a runtime platformami.

Přehled

Jazyk si vypůjčuje koncepty známé každému, kdo používá staticky napsané jazyky jako Java , COBOL , C atd. Pojem stereotypu si však vypůjčuje z UML ( Unified Modeling Language ), který se ve staticky typovaných programovacích jazycích běžně nevyskytuje. Stručně řečeno, EGL je univerzální jazyk pro vývoj aplikací na vyšší úrovni.

EGL je syntaxí podobný ostatním běžným jazykům, takže se jej mohou naučit vývojáři aplikací s podobným předchozím programovacím pozadím. Abstrakce vývoje aplikací EGL chrání programátory před technickými rozhraními systémů a middlewaru, což jim umožňuje soustředit se na budování podnikových funkcí. Aplikace a služby EGL jsou psány, testovány a laděny na zdrojové úrovni EGL a jakmile jsou uspokojivě funkčně testovány, lze je zkompilovat do kódu COBOL, Java nebo JavaScript pro podporu nasazení obchodních aplikací, které lze spustit v kterémkoli z následujících prostředí :

Příklady kódu

Program

Část programu EGL je generovatelná logická část s jedním vstupním bodem. Každá část programu obsahuje funkci main (), která představuje logiku, která běží při spuštění programu. Program může obsahovat další funkce a může přistupovat k funkcím, které jsou mimo program. Funkce main () může vyvolat tyto další funkce. Programové funkce se skládají ze sady příkazů EGL, proměnných a konstant.

Program HelloWorld

	const GREETING string = "Hello, ";
    
	function main()
		myName string = "John";
		sayHello(myName);
	end

	function sayHello(name String in)
		SysLib.writeStdOut(GREETING + name + "!");
	end

end

Záznam

Část záznamu EGL definuje sadu datových prvků. V tomto případě je záznam se jménem CustomerRecord definován se 6 poli.

Record CustomerRecord type BasicRecord
	customerNumber INT;            
	customerName STRING;
	customerAddr1 STRING;
	customerAddr2 STRING;
	customerAddr3 STRING;
	customerBalance MONEY;
end

EGL má specializovaný typ záznamu s názvem SQLRecord, který se používá k výměně dat s relační databází.

record Employee type sqlRecord { tableNames =[["Employee"]], keyItems =[EMPNO]}
    EMPNUMBER string{ column = "EMPNO", maxLen = 6};
    FIRSTNME string{ sqlVariableLen = yes, maxLen = 12};
    MIDINIT string{ isSqlNullable = yes, maxLen = 1};
    LASTNAME string{ sqlVariableLen = yes, maxLen = 15};
    DEPT string{ column = "WORKDEPT", isSqlNullable = yes, maxLen = 3};
    PHONENO string{ isSqlNullable = yes, maxLen = 4};
    HIREDATE date{ isSqlNullable = yes};
end
  • V tomto případě je záznam Zaměstnanec vázán na tabulku (nebo zobrazení) s názvem Zaměstnanec .

Servis

Část služby EGL obsahuje veřejné funkce, ke kterým je přístup z jiných aplikací nebo systémů. V tomto příkladu je definována služba se dvěma funkcemi.

package com.mycompany.services;

service EmployeeService

    function getEmployees() returns(Employee[])
        records Employee[0]; // define an empty array of records
        get records; // retrieve records from the database
        return (records); // return the records       
    end
    
    function addEmployee(emp Employee in) returns (boolean)
    	try
    		add remp;
    		return (true);
    	onException (ex AnyException)
    		return (false);
    	end
    end

end
  • V EGL je kód organizován v balíčcích (jako Java (programovací jazyk) )
  • První funkce, getEmployees , vrací řadu záznamů naplněných ze záznamů v databázi.
  • Druhá funkce, addEmployee, přidá nový záznam do databáze a vrátí hodnotu true nebo false podle toho, zda byl záznam úspěšně přidán.

RUIHandler

Hlavní součástí aplikace Rich UI je část obsluhy Rich UI. Tyto části jsou generovány do JavaScriptu.

package com.mycompany.ui;

import com.mycompany.services.Employee;
import com.mycompany.services.EmployeeService;
import dojo.widgets.DojoGrid;
import dojo.widgets.DojoGridColumn;

handler EmployeeView type RUIhandler { initialUI = [ grid ], 
                                       onConstructionFunction = start, 
                                       cssFile = "main.css" }

    grid DojoGrid { behaviors = [ ], headerBehaviors = [ ], columns = [
                    new DojoGridColumn { displayName = "First Name", name = "FIRSTNAME" },
                    new DojoGridColumn { displayName = "Last Name", name = "LASTNAME" },
                    new DojoGridColumn { displayName = "Salary", name = "SALARY" }
            ] };

    function start()
        svc EmployeeService { };
        call svc.getEmployees () returning to displayEmployees;
    end

    function displayEmployees(retResult Employee [ ] in)
        grid.data = retResult as any [ ];
    end
    
end

Web 2.0 s EGL

V prosinci 2008, IBM představila novou technologii, EGL Rich UI, zjednodušit tvorbu Web 2.0 -Style bohatých internetových aplikací . Tato technologie zjednodušuje vývoj tím, že před vývojářem skrývá složitosti Ajaxu , JavaScriptu , REST a SOAP , což jim umožňuje soustředit se na obchodní požadavky a ne na základní technologie.

Komerční produkty

Programovací nástroje EGL jsou k dispozici jako komerční produkt založený na Eclipse, Rational Business Developer a také v edici EGL produktu Rational Developer for System z .

EGL je cílovým jazykem pro modernizaci starších aplikací z důvodu spříznění jazykové sémantiky s procedurálními jazyky a staršími jazyky 4. generace :

  • sada nástrojů pro převod dostupných v produktu Rational Business Developer poskytuje automatizovaný převod ze starších a stabilizovaných jazyků IBM a Informix 4. generace
  • sada nabídek služeb IBM a doplňkových produktů (Rational Migration Extension for Natural, Rational Migration Extension for System i, Rational Migration Extension for CA-products) provide the ability to convert from Software AG Natural , IBM RPG , CA Cool: Gen and CA Ideální/Datacom do EGL

Nástroje pro vyhledávání velkých kódových základen EGL, porovnávání změn jednotlivých souborů EGL a zjišťování duplicitního kódu jsou k dispozici od společnosti Semantic Designs

Reference

Další čtení

  • Enterprise Web 2.0 s EGL, ISBN  978-1-58347-091-6 .
  • Vývoj aplikací Web 2.0 s EGL pro IBM i, ISBN  978-1-58347-089-3 .

externí odkazy