企业生成语言 (EGL) 是一种编程语言,可用来将重点放在业务问题上而不是放在软件技术上。在 Rational® 开发环境中,可使用 EGL 向导和其他工具编写复杂应用程序而无需花费过多精力。

使用 EGL 代码生成在各种平台上运行的 Java™ 或 COBOL 程序,而不直接运行 EGL 应用程序。

可通过若干方式使用 EGL 创建具备全交互式 Web 页面和数据库支持的应用程序。

EGL 支持面向服务的体系结构 (SOA),所以可在广泛分布的域中创建或使用可重复使用的程序。 还可通过使用 EGL 并将功能分散到用户工作站(客户机)、服务器和外部服务上来形成多层体系结构。可将工作分散到动态 Web 页面(如 Java Server Pages 或简称 JSP)及以任意数目的语言编写的底层程序中。

生成的代码

可使用 EGL 来创建下列类型的生成代码:
  • Java 程序可针对若干受支持平台中的任何一平台生成代码。可将该程序部署在 J2EE 外部或下列任何 J2EE 容器的上下文中:
    • J2EE 应用程序客户机
    • J2EE Web 应用程序
    • EJB 容器;在此情况下,还可生成 EJB 会话 bean
    • 如果 EGL 生成的 Java 程序是非交互式程序,那么可在 EGL Web service 中调用该程序。在此情况下,该程序可部署在 J2EE 内部或外部。而且,您还可通过 EGL 服务或 EGL Web service 调用以 CICS® 批处理方式运行的程序。

    • 可以生产非交互式 COBOL 程序,使之能在 CICS for z/OS® 上运行、在 CICS 外部以 z/OS 批处理方式运行或在 iSeries® 上运行。而且,COBOL 程序可生成为在 IMS™ 上作为消息处理程序 (MPP) 或批处理消息程序 (BMP) 运行。
    • 此外,还可使用 EGL 来定义具有下列特征的 Web 应用程序:

      • 将图形页面传送至 Web 浏览器
      • 能够存储和检索有关潜在大量用户的数据
      • 嵌入在基于 Java 的框架(称为 JavaServer Faces)中
      • 有关针对 Web 应用程序的这一专业支持的详细信息,请参阅 EGL 语言参考 中的“JSF 处理程序部件”主题。

        尽管最佳实践是使用“处理程序”部件来开发 Web 应用程序,但您也可更新 VGWebTransaction 程序。EGL 包括此程序类型以支持迁移 VisualAge® Generator 程序类型,该类型允许开发者按代码在非 Web 环境中运行的方式构造 Web 应用程序。VGWebTransaction 程序会检索数据、显示数据、接受用户输入及对数据进行后处理,而使用 PageHandler 部件构建的大多数应用程序会将控制权从一个 Web 页面转发至下一个 Web 页面。

        VGWebTransaction 程序是主程序(而不是被调用程序)。如果该程序针对 环境(如 Windows 2000/NT/XP)生成,那么该程序会在 J2EE 外部运行。

        还可使用 EGL 来生成 包装器。有关使用 Java 包装器的详细信息,请参阅本主题结尾的相关主题列表中的“Java 包装器”和“Java 包装器类”主题。

        面向服务的开发

        面向服务的体系结构 (SOA) 的理念与应用程序接口 (API) 及公共函数的定制库的概念相似:可使用这三项来重复使用功能。服务可位于广泛分布的域中。SOA 提供在本地或通过因特网查找和使用对这些函数的调用的标准。

        EGL 支持通过服务程序部件和接口来使用服务。

        多层应用程序

        EGL 还支持将工作量分散到应用程序内的各种软件中。应用程序通常采用多层体系结构,将功能分散到用户工作站(客户机)、服务器和外部服务中。它们通过将功能分散到动态 Web 页面(如 Java Server Pages,简称 JSP)及使用任意数目的语言编写的底层程序。

        可将分层结构视为模型 - 视图 - 控制器 (MVC) 途径。与其他体系结构方案一样,分层结构帮助您将应用程序的各个方面视作概念单元。它的最简单形式为 MVC,MVC 会管理来自诸如 Web 页面之类的用户界面 (UI) 的输入。它会将输入(如客户号)传递至对业务问题(如存储和检索客户信息)的解决方案建模的程序。该模型会将信息(如客户记录)返回至视图组件(返回 Web 页面)。

        Hello World 程序

        要立即开始使用 EGL,请运行 EGL“Hello World”教程。“Hello World”程序具有若干用途: