Addressing the complexities of web, mobile, and enterprise

watermelonroachdaleInternet and Web Development

Jul 30, 2012 (4 years and 4 months ago)

358 views

June 5

9
Orlando, Florida

Addressing the
complexities of web,
mobile, and enterprise
application development
with
EGL


Will Smythe, IBM

smythew@us.ibm.com


The Premier Event for Software and Systems Innovation

2

© 2011 IBM Corporation

Application development complexity is growing …

Traditional

Distributed

Batch, Programs

Text UI

GUIs

Web 2.0, Mobile

Web 1.0

Web Services

Client

HTML

HTML

CSS

JavaScript

AJAX

XML

SOAP

JSON

DOM

Dojo

jQuery

Objective
-
C

Power Builder

VB

SWT

ExtJS

.NET

.NET

IMS

BMS

Ideal

CICS

JCL

Datacom

Natural

SQL

COBOL

RPG

PL/I

C

Natural

z/OS

IMS

System z

CICS

IBM i

z/VSE

z/VSE

Technologies

Platforms/

OSes

Apps

AIX

Windows

x86

Linux

Power

Unix

Unix

IE

Firefox

Windows

Chrome

iOS

Android

Blackberry

WebOS

Mac OS

Chrome OS

JSP

Java

Servlet

JSF

JDBC

PHP

EJB

SQLJ

JCA

JMS

SOAP

JSE

WSDL

DOM

Spring

Hibernate

ASP

JEE

XML

The Premier Event for Software and Systems Innovation

3

© 2011 IBM Corporation

EGL Overview


EGL is a programming technology designed to
address the challenges of modern, multi
-
platform
application development


Created by IBM (based on 30+ years of experience in this
space); now an
open source project on Eclipse


Provides a common language and programming model across
application tiers


Deploys to a wide range of popular runtime platforms


Ideal for developing batch programs, web services, web
applications, and more


Simplifies integration with existing programs and services


Integrates with existing investments in Java, COBOL, RPG,
and JavaScript


Ideal for all types of developers


Extensible compiler


Excellent migration target for legacy apps

Windows and Internet Explorer are registered trademarks of Microsoft Corporation in the United States and other countries.

Firefox is a registered trademark of the Mozilla Foundation.

Google Chrome is a trademark of Google.

The Premier Event for Software and Systems Innovation

4

© 2011 IBM Corporation

Platform Flexibility

Compile

Run

Deploy

Enterprise
Systems

CICS, IMS, Power

Application Servers

Apache Tomcat,
WebSphere, JEE

Web Browsers

Desktop and
Mobile

Java

COBOL

JavaScript/HTML

Server

Client

EGL

The Premier Event for Software and Systems Innovation

5

© 2011 IBM Corporation

Simple EGL Web Example

The user interface
is written
completely in EGL
(not HTML). This
code is compiled
into JavaScript
and HTML

on
-
the
-
fly during
development.

EGL uses a
declarative
programming

style
to make creating
new objects (in this
case, UI widgets)
easy. In this
example, a simple
button and Dojo grid
are defined.

Notice how functions
are bound to event
types on UI widgets. In
this example, when this
button is clicked, the
displayButton_onClic
k

function is called.

Notice how columns are
declared on the Dojo
grid. The “name” field
tells EGL which field in
the record (in this case,
“EmployeeRecord”) to
display in the column.

Notice how an instance of the
previously
-
created service is
declared directly in our UI code.
Also, notice the
call

statement
that asynchronously invokes
the
getRecords

method. This
statement will be compiled into
a
JavaScript Ajax

statement.

The array of employee record is passed directly to the
Dojo grid widget (although this record is defined in our
service code, it will be compiled into JavaScript since it is
referenced by the UI code). The grid widget will
automatically populate the grid based on the columns
defined earlier and the data in the records.

The Premier Event for Software and Systems Innovation

6

© 2011 IBM Corporation





WebSphere


USS/Linux


Batch, CICS, IMS

System z



Aix, Linux, IBM i


WebSphere


Apache Tomcat

Power





WebSphere


Tomcat


Native


Windows/Linux





Internet Explorer


Firefox


Safari


Chrome

Browser

Portals

Batch Processes

Text UI

Web 1.0 / JSF

Web 2.0 / Rich UI

Reports

SOA

Versatile

EGL Business Logic

External Integration


COBOL


RPG


PL/I


Java


JavaScript


C/C++


Data Sources


DB2


Oracle


Derby


MQ


Informix


IMS, VSAM


SQL Server


Handlers


Services


Programs


Libraries

The Premier Event for Software and Systems Innovation

7

© 2011 IBM Corporation

7

Strategic

We prefer open languages
because they are less risky to
our business

We believe innovation is
accelerated by giving others
the ability to participate

We want to see an active
community promoting
awareness and growing skills

What we have heard from our customers …



Represents 30 years of innovation
and continued investment by IBM


Introduced in 2004 as the follow on
to CSP and VisualAge Generator


Designed for extensibility


Thousands of customers using
EGL and predecessor technologies


Migration paths have preserved
customers’ investments

EGL to date …

CSP

(1981)

VA Gen

(1994)

EGL

(2004)

EGL CE

(2009)

The Premier Event for Software and Systems Innovation

8

© 2011 IBM Corporation

8


EDT is the open source project on Eclipse for the EGL language, compiler, tools, and
generators for Java and JavaScript


Designed for extensibility


Open APIs for building third
-
party tools


Open generator framework to support extension of existing and creation of new generators


Announced in August 2010; code seeding started in late 2010 and continues through 2011

The Premier Event for Software and Systems Innovation

9

© 2011 IBM Corporation

Eclipse EGL Development Tools (EDT) Project


Project plans and scheduled


Including detailed 0.7.0 plans


Downloadable builds and source


Committers and status


New and noteworthy


Documentation


Presentations


Access to bugs and requirements


http://www.eclipse.org/edt/

EDT 0.7.0 M1
now available!

The Premier Event for Software and Systems Innovation

10

© 2011 IBM Corporation

Benefits of an
open

EGL


Reduces risk


Jointly developed in the open at Eclipse.org


Source available under Eclipse Public License (EPL)


Accelerates innovation


Gives others (not just IBM) the ability to …


Build tools that compliment the tools provided by IBM


Extend deployment to new runtime platforms


Add language extensions to support new concepts


Broadens awareness and community


Grows EGL developer base


Gives others the opportunity to be involved in the planning
and development process

www.eclipse.org/proposals/egl

Read the project proposal:

The Premier Event for Software and Systems Innovation

11

© 2011 IBM Corporation

EGL Mobile Web


Mobile web applications are a viable alternative to native
apps


Not every mobile app needs access to low
-
level native functions


Capabilities available to mobile web apps is growing


Geo location, local storage, etc


EGL simplifies the development of native
-
like mobile web
applications


Single code base


Reduces development complexity and time to market


Reduces training time and need for specialized skills


Apps written in EGL
-

no knowledge HTML/JavaScript, Android
Java, Objective
-
C, etc required


Apps can run on other devices as well (Blackberry, etc)


Simplified deployment and maintenance


Apps deploy like a regular web app


Uses Dojo mobile under the covers

iPhone:

Android:

The Premier Event for Software and Systems Innovation

12

© 2011 IBM Corporation

Sample EGL mobile web application …

Try it on your mobile device:
http://www.myegl.org/MobileMortgageCalc/

The Premier Event for Software and Systems Innovation

13

© 2011 IBM Corporation

Mobile Visual Editing Tools (Rational Business Developer)


Visual editor supports WYSIWYG
editing of web and mobile web
applications


Mobile widgets available to be
dropped onto design canvas



Preview provides a real, running
version of the app



App can be launched in an external
browser to simulate native look and
feel or launched in a phone
emulator

Visual editor included with the Eclipse
-
based Rational Business
Developer 8.0.1 workbench

The Premier Event for Software and Systems Innovation

14

© 2011 IBM Corporation

EGL Café


Online community for EGL
developers, partners, and clients


Discussion forums


Gallery of sample applications and
widgets


Presentations, videos, and articles


Blogs by IBMers and partners


Success stories


Become part of the community today!


Resources:


Download, Learn, Presentations, Video/viewlet, Sample Code



Community:


Clients, Partners, Influencers, Press, News and Events



Collaboration:


Blogs, Forums, Tips and Techniques Comments, Ratings


Testimonials:


Case Studies, Celebrations!

http://ibm.com/rational/eglcafe

The Premier Event for Software and Systems Innovation

15

© 2011 IBM Corporation

EGL Distance Learning
2011


Need help getting started?


Learn EGL by taking IBM’s no charge (
free
)
education course!


Explore the emerging cross
-
platform rapid
development technology from IBM that
enables you to build Web, Web 2.0, and
SOA solutions using EGL.


Discover how quickly you can learn EGL and
build state
-
of
-
the
-
art applications, all without
getting bogged down in the technical
complexities of middleware and runtime
platforms


Topics


Foundations of EGL


Web 2.0 development with EGL Rich UI

2011 Dates


January 24


March 21


May 16


July 25


September 12


November 14


Up to 3 hours of instruction per day

3 to 5 hours of independent hands
-
on per day

Register today!
https://www.ibm.com/developerworks/mydeveloperworks/wi
kis/home?lang=en#/wiki/EGL%20Learning%20Center/page/
EGL%20Distance%20Learning


The Premier Event for Software and Systems Innovation

16

© 2011 IBM Corporation

www.ibm.com/software/rational

The Premier Event for Software and Systems Innovation

17

© 2011 IBM Corporation

© Copyright IBM Corporation 2011. All rights reserved.
The information contained in these materials is provided for informational purposes only, and is provided AS IS without warra
nty

of
any kind, express or implied. IBM shall not be responsible for any damages arising out of the use of, or otherwise related t
o,
these materials. Nothing contained in these materials is intended to,
nor shall have the effect of, creating any warranties or representations from IBM or its suppliers or licensors, or altering
the

terms and conditions of the applicable license agreement governing
the use of IBM software. References in these materials to IBM products, programs, or services do not imply that they will be
ava
ilable in all countries in which IBM operates. Product release
dates and/or capabilities referenced in these materials may change at any time at IBM’s sole discretion based on market oppor
tun
ities or other factors, and are not intended to be a commitment
to future product or feature availability in any way. IBM, the IBM logo, Rational, the Rational logo, Telelogic, the Telelog
ic
logo, and other IBM products and services are trademarks of the
International Business Machines Corporation, in the United States, other countries or both. Other company, product, or servic
e n
ames may be trademarks or service marks of others.

www.ibm.com/software/rational

The Premier Event for Software and Systems Innovation

18

© 2011 IBM Corporation

Rational Business Developer


Built on Eclipse


Provides a common, integrated
workbench for Web, Web 2.0, Text UI,
and SOA development


Features


Code completion, content assist, and
templates


Visual editors for Text UI and Rich UI


Service generation for database tables


SQL visualization and editing


References and declarations


Code refactoring


Cheat sheets and dynamic help


Integrated debug and test facility


Integrates with Rational Team Concert / Jazz


EGL development teams can take advantages of
the capabilities provided by Jazz/Rational Team
Concert to manage EGL development projects


The Premier Event for Software and Systems Innovation

19

© 2011 IBM Corporation

RBD 8


Released in December 2010


Built on latest version of Eclipse (3.6) and IBM components


Significant Rich UI tooling and runtime enhancements


Improved visual editor (new grid layout mechanism, better visual
feedback, better performance)


Rich widget set, based on Dojo


New data grid widget with support for paging and more


Improved application look and feel


Drag and drop support for building UI forms and grids


Debugger enhancements based on customer requirements


Conditional breakpoints


Watch expressions


Other customer enhancements


VSAM file access via TCP/IP

The Premier Event for Software and Systems Innovation

20

© 2011 IBM Corporation

Evolution of Programming

Runtime Platform

Runtime
Platform

Runtime
Platform

Assembler

C, COBOL

Java

?

Hardware

Hardware

Hardware

Hardware

Hardware

Hardware

Hardware

OS

OS

OS

OS

OS

Code was
written in
assembler for
specific
hardware

Languages evolved
to support coding to
an OS, thus allowing
the same code to run
on multiple different
hardware

Languages like
Java evolved to
accommodate
running the same
code on many
different OSes

20

The Premier Event for Software and Systems Innovation

21

© 2011 IBM Corporation

How we did it

EGL

EGL

EGL

EGL

Cobol

Cobol generation
from EGL sources

Executable

Send Cobol to
mainframe
-

Compile

Cobol

executable programs ready
into all the environments
(Test, Pre
-
production,
Production)

Deployment Instructions for
delivering the EGL programs in
Pre
-
Production or Production
through internal Tool(DMS)

DMS

Mainframe

Cobol generation
from EGL sources

Subversion Server

The Premier Event for Software and Systems Innovation

22

© 2011 IBM Corporation

Integrated Debug/Test Facility


Enables developers to fully debug text UI,
web, services, batch, and more from within
the IDE (all prior to deployment)


Set breakpoints, launch application, and step
through both “client” side and “server” side code


Common Eclipse debugger (also used for
COBOL, RPG, and Java)

Setting breakpoint
via EGL source
editor

Developers step
through and
debug EGL code
(not compiled
code)

Variables view

The Premier Event for Software and Systems Innovation

23

© 2011 IBM Corporation

Summary

Versatile

A complete solution for
delivering traditional, web,
SOA, and mobile apps to
a wide range of platforms

Strategic

Delivers a modern
language that evolves as
technology and your
business evolves

Productive

Hides runtime platform
complexities, enabling
developers to be productive
and fully utilized