Eclipse: The universal tools platform

watermelonroachdaleInternet and Web Development

Jul 30, 2012 (5 years and 16 days ago)

461 views

IBM Software Group

®


IBM Open Source Software Competition


Brendan Murray, Software Architect, IBM Dublin Software Lab

IBM Software Group | WebSphere software

Agenda


IBM and Open Source


Java Tooling


Web Tooling


Rich Client Platform


Web Services


LAMP


Summary


Questions

IBM Software Group | WebSphere software

Agenda


IBM and Open Source


Java Tooling


Web Tooling


Rich Client Platform


Web Services


LAMP


Summary


Questions

IBM Software Group | WebSphere software

What is Open Source


Open Source Initiative (OSI) maintains a formal definition of OSS recognized
by the OSS community. OSI has a web site that:
(http://www.opensource.org).


OSD's current criteria (paraphrased):


Free Redistribution


Source Code


Derivative Works


Integrity of The Author's Source Code


No Discrimination


No Discrimination Against Fields of Endeavor


Distribution of License


License Must Not Be Specific to a Product


License Must Not Restrict Other Software


License Must Be Technology Neutral


IBM Software Group | WebSphere software

Open Source Development Methodology


Virtual community of programmers, leveraging the Internet for
communication, who create / debug / maintain / evolve a source code base



OSS projects often self
-
organizing:


Someone determines a need and communicates that need to others on the
Internet


If the project generates interest, one or more programmers begin writing code


Someone takes a leadership role and begins to map out a project road map


Interested programmers join the project to contribute new code or fine
-
tune
existing code


A network of participants, linked via the Internet, forms



Tiered participation levels emerge

IBM Software Group | WebSphere software

IBM and Open Source


IBM has contributed many projects to the open source community


Eclipse Project:
http://www.eclipse.org


Project dedicated to providing a robust, full
-
featured, commercial
-
quality, industry platform for the development of highly integrated
tools


Apache Derby:
http://db.apache.org/derby


Database management system developed by the Apache Software
Foundation


Linux Technology Center (LTC):
http://www.ibm.com/linux


Work towards Enterprise enablement of the Linux OS through the
development and contribution of technology, utilities, tools and
code


Other contributions


IBM Pledges 500 U.S. Patents To Open Source In Support Of
Innovation And Open Standards

IBM Software Group | WebSphere software

IBM and Open Source


IBM uses open source in its products


Building products on top of open source projects e.g. Rational
Application Developer


Apache webserver to support and bundle with its WebSphere suite


IBM promotes open source development


Externally


AlphaWorks:
http://alphaworks.ibm.com


DeveloperWorks:
http://www
-
130.ibm.com/developerworks/opensource


Internally


Using open source intranet site to promote software
componentization and reuse


IBM Software Group | WebSphere software

Agenda


IBM and Open Source


Java Tooling


Web Tooling


Rich Client Platform


Web Services


LAMP


Summary


Questions

IBM Software Group | WebSphere software

Java Tooling


From
www.eclipse.org

. . .


“Eclipse is an open source community whose
projects are focused on providing an extensible
development platform and application frameworks for
building software.”



Put more simply . . .


Eclipse is an Open Source Java IDE



And so much more . . . .


Muliple languages (Java, C++, COBOL)


Debugger


Unit Testing


Modelling with UML


Visual Editing of Java UI


Java Web Tools (JSP, EJB, XML . . . .)



All through an extensible plugin
-
based IDE

IBM Software Group | WebSphere software

Eclipse Project Aims


Provide open platform for application development tools


Run on a wide range of operating systems


Windows, Linux, AIX, MacOS X, etc.


GUI and non
-
GUI components


Language
-
neutral


Able to handle different content types


Java, HTML, C/C++, JSP, EJB, XML, GIF, etc.


Facilitate seamless tool integration


At UI and lower level


Add new tools easily


Attract community of tool developers


Including independent software vendors (ISVs)


Capitalize on popularity of Java for writing tools

IBM Software Group | WebSphere software

SWT and GEF


Consensus: hard to produce professional looking shrink
-
wrapped
products using Swing and AWT



SWT provides


Tight integration with native window system


Authentic native look and feel


Good performance


Good portability


Good base for robust GUIs



GEF provides


Multi
-
platform graphics using Draw2D


MVC infrastructure for graphically editing models

IBM Software Group | WebSphere software

Java Perspective


Java
-
centric view of files in Java projects


Java elements meaningful for Java programmers

Java

project

package

class

field

method

Java

editor

IBM Software Group | WebSphere software

Java Editor

Lots of useful features such as . . . .


Method completion in Java editor

List of plausible methods

Doc for method

IBM Software Group | WebSphere software

Why develop plugins that extend Eclipse ?


Infrastructure


You get a workbench created for free


just add what you need


No need to create an environment from scratch


Build on EMF for model support


Build on GEF for graphics support


Interoperability


Use any of the existing tools in your ‘end
-
product’


Java Editor, outliner . . .


Explorer, Text editor, search . . . etc.



Examples


Java (or any language) code analysis/transformation plugins


Any UML related tooling (using EMF)


Any Java graphical projects (using GEF)

IBM Software Group | WebSphere software

Agenda


IBM and Open Source


Java Tooling


Web Tooling


Rich Client Platform


Web Services


LAMP


Summary


Questions

IBM Software Group | WebSphere software

Eclipse Web Tools Platform (WTP)


Extends Eclipse with tools for developing J2EE Web
applications.


Includes the following editors


HTML, JSP


Javascript,


CSS,


SQL,


XML, DTD, XSD


WSDL


J2EE project natures, builders, models and navigator


Web service wizard and explorer


Database access and query tools and models

IBM Software Group | WebSphere software

WTP subprojects
-

WST


W
eb
S
tandard
T
ools subproject


Server tools, Internet preferences, TCP/IP monitor


HTML (fragments), XML, CSS, JavaScript source editors


XML/DTD/XSD utilities


WSDL/XSD graphical editors, Web service UDDI/WSDL
Explorer


SQL Query graphical editor


Associated natures, builders, validators and EMF models

IBM Software Group | WebSphere software

WTP subprojects
-

JST


J
2EE
S
tandard
T
ools


Support of J2EE1.4


JSP, Servlets, EJBs, JCA, JMS, JNDI, JDBC, Java Web
Services, JAX*


Support for common JCP specifications


JSF,JDO


Tools for J2EE Modules


WAR, EJB
-
JAR, RAR, EAR

IBM Software Group | WebSphere software

WTP subprojects
-

JSF


J
ava
S
erver
F
aces tools


Add JSF capabilities to existing web project


JSF JSP page editor


Application configuration editor (faces
-
config.xml)


Navigation Rules Diagram

IBM Software Group | WebSphere software

Agenda


IBM and Open Source


Java Tooling


Web Tooling


Rich Client Platform


Web Services


LAMP


Summary


Questions

IBM Software Group | WebSphere software

Eclipse RCP


What is RCP?


Really Cool Platform ?


Well, yes, but…


Rich Client Platform


First became available with Eclipse 3.0


A new way to build Java applications that can
compete with native applications on any platform.


A subset of the Eclipse platform


i.e. the minimal set of plug
-
ins needed to build a
rich client application (as opposed to thin client)


Eclipse without its “IDE
-
ness”


IBM Software Group | WebSphere software

Eclipse RCP


Full Eclipse Platform v Eclipse RCP


IBM Software Group | WebSphere software

Eclipse RCP


RCP applications use the windowing and GUI features of the operation
system they run on:


Native widgets, menu and tool bars


Drag & Drop


Integrates with platform component model



This means…


Richer, more responsive user experience


Better integration with existing Desktop tools


Lower server loads


Offline execution


Local data access

IBM Software Group | WebSphere software

Eclipse RCP


Can you tell the difference?


IBM Software Group | WebSphere software

Eclipse RCP


How to get started


Eclipse
\

Help
\

Help Content
\

Platform Plug
-
in Dev Guide


Building a Rich Client Platform application



http://www.eclipse.org/rcp


Articles, tutorials, presentations on RCP



http://www.eclipsezone.com/eclipse/forums/f18121.html


Eclipse RCP Discussion Forum



http://www.eclipse.org/community/rcp.html


Sample real world RCP applications


IBM Software Group | WebSphere software

Agenda


IBM and Open Source


Java Tooling


Web Tooling


Rich Client Platform


Web Services


LAMP


Summary


Questions

IBM Software Group | WebSphere software

What are Web Services


A
Web service

is a self
-
contained software component with a well
-
defined interface that describes a set of operations that are
accessible over the Internet.


Key technologies


SOAP : Lightweight XML based messaging format


WSDL : Defines the web service interface

IBM Software Group | WebSphere software

What is the Web Services Architecture


The
Web Services Architecture

is based on the interactions among
three roles:
service provider
,
service registry
, and
service requestor
.


The interactions involve the
publish
,
find
, and
bind

operations.

IBM Software Group | WebSphere software

What are the characteristics of Web services?



Self
-
contained


Self
-
describing


Can be published, located, and invoked across the Internet


Programming language
-
, and platform
-
independent and
interoperable


Inherently open and standards
-
based


Dynamic


Composable


Built on proven, mature technology


Loosely coupled


Provide programmatic access


Provide the ability to wrap existing applications


IBM Software Group | WebSphere software

Why develop using Web Services ?

Traditional integration requires
technology
-
aware bridges
between components. It is
complex and expensive to
implement and to maintain.

Program bridges are typically
based on APIs and File Formats,
but these change, leading to
instability in the integrated system.

In a Services Oriented Architecture,
each component uses the same way of
talking to other components, based on
platform
-
neutral standards.

Anything that understands Web services
can talk to other Web services,
regardless of underlying implementation.

This approach greatly simplifies and
strengthens integration efforts

IBM Software Group | WebSphere software

How to develop a Web Service


Many Tools exist that make developing a Web Service almost as
easy as creating a Java Class



IBM : Web Services general information


http://www
-
128.ibm.com/developerworks/webservices/


IBM : Web Services Navigator (plugin for eclipse)


http://www.alphaworks.ibm.com/tech/wsnavigator


Eclipse : Eclipse Web Tools project


under development


http://www.eclipse.org/webtools/index.html


Axis : From apache.org


provides a SOAP interface layer


http://ws.apache.org/axis/


Sun : Java Web Services Development Pack


http://java.sun.com/webservices/jwsdp/index.jsp


Many Eclipse plugins for helping with Web Services . . . . .

IBM Software Group | WebSphere software

Agenda


IBM and Open Source


Java Tooling


Web Tooling


Rich Client Platform


Web Services


LAMP


Summary


Questions

IBM Software Group | WebSphere software

LAMP


L
inux,
A
pache,
M
ySQL,
P
HP (or
P
erl or
P
ython)


Open Source, non
-
proprietary way to create a
server
-
based application


Each program can be replaced with an alternative
that best suits the needs of the application


Each program can be upgraded independently


Each program in LAMP is free (
both

as in free
speech
and

as in free beer)

IBM Software Group | WebSphere software

Agenda


IBM and Open Source


Java Tooling


Web Tooling


Rich Client Platform


Web Services


LAMP


Summary


Questions

IBM Software Group | WebSphere software

Questions