ibm open source competition

35
IBM Software Group ® IBM Open Source Software Competition Brendan Murray, Software Architect, IBM Dublin Software Lab

Upload: softwarecentral

Post on 18-Dec-2014

963 views

Category:

Documents


2 download

DESCRIPTION

 

TRANSCRIPT

Page 1: IBM Open Source Competition

IBM Software Group

®

IBM Open Source Software Competition

Brendan Murray, Software Architect, IBM Dublin Software Lab

Page 2: IBM Open Source Competition

IBM Software Group | WebSphere software

Agenda

IBM and Open Source

Java Tooling

Web Tooling

Rich Client Platform

Web Services

LAMP

Summary

Questions

Page 3: IBM Open Source Competition

IBM Software Group | WebSphere software

Agenda

IBM and Open Source

Java Tooling

Web Tooling

Rich Client Platform

Web Services

LAMP

Summary

Questions

Page 4: IBM Open Source Competition

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

Page 5: IBM Open Source Competition

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

Page 6: IBM Open Source Competition

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

Page 7: IBM Open Source Competition

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

Page 8: IBM Open Source Competition

IBM Software Group | WebSphere software

Agenda

IBM and Open Source

Java Tooling

Web Tooling

Rich Client Platform

Web Services

LAMP

Summary

Questions

Page 9: IBM Open Source Competition

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

Page 10: IBM Open Source Competition

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

Page 11: IBM Open Source Competition

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

Page 12: IBM Open Source Competition

IBM Software Group | WebSphere software

Java Perspective

Java-centric view of files in Java projects Java elements meaningful for Java programmers

Javaproject

package

class

field

method

Javaeditor

Page 13: IBM Open Source Competition

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

Page 14: IBM Open Source Competition

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)

Page 15: IBM Open Source Competition

IBM Software Group | WebSphere software

Agenda

IBM and Open Source

Java Tooling

Web Tooling

Rich Client Platform

Web Services

LAMP

Summary

Questions

Page 16: IBM Open Source Competition

IBM Software Group | WebSphere software

Eclipse Web Tools Platform (WTP)

Extends Eclipse with tools for developing J2EE Web applications.

Includes the following editors HTML, JSPJavascript, CSS, SQL, XML, DTD, XSDWSDL

J2EE project natures, builders, models and navigator Web service wizard and explorer Database access and query tools and models

Page 17: IBM Open Source Competition

IBM Software Group | WebSphere software

WTP subprojects - WST

Web Standard Tools 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

Page 18: IBM Open Source Competition

IBM Software Group | WebSphere software

WTP subprojects - JST

J2EE Standard ToolsSupport of J2EE1.4

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

Support for common JCP specifications

• JSF,JDOTools for J2EE Modules

• WAR, EJB-JAR, RAR, EAR

Page 19: IBM Open Source Competition

IBM Software Group | WebSphere software

WTP subprojects - JSF

JavaServer Faces toolsAdd JSF capabilities to existing web project

JSF JSP page editor

Application configuration editor (faces-config.xml)

Navigation Rules Diagram

Page 20: IBM Open Source Competition

IBM Software Group | WebSphere software

Agenda

IBM and Open Source

Java Tooling

Web Tooling

Rich Client Platform

Web Services

LAMP

Summary

Questions

Page 21: IBM Open Source Competition

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”

Page 22: IBM Open Source Competition

IBM Software Group | WebSphere software

Eclipse RCP

Full Eclipse Platform v Eclipse RCP

Page 23: IBM Open Source Competition

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

Page 24: IBM Open Source Competition

IBM Software Group | WebSphere software

Eclipse RCP Can you tell the difference?

Page 25: IBM Open Source Competition

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

Page 26: IBM Open Source Competition

IBM Software Group | WebSphere software

Agenda

IBM and Open Source

Java Tooling

Web Tooling

Rich Client Platform

Web Services

LAMP

Summary

Questions

Page 27: IBM Open Source Competition

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

Page 28: IBM Open Source Competition

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.

Page 29: IBM Open Source Competition

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

Page 30: IBM Open Source Competition

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

Page 31: IBM Open Source Competition

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 . . . . .

Page 32: IBM Open Source Competition

IBM Software Group | WebSphere software

Agenda

IBM and Open Source

Java Tooling

Web Tooling

Rich Client Platform

Web Services

LAMP

Summary

Questions

Page 33: IBM Open Source Competition

IBM Software Group | WebSphere software

LAMP

Linux, Apache, MySQL, PHP (or Perl or Python) 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)

Page 34: IBM Open Source Competition

IBM Software Group | WebSphere software

Agenda

IBM and Open Source

Java Tooling

Web Tooling

Rich Client Platform

Web Services

LAMP

Summary

Questions

Page 35: IBM Open Source Competition

IBM Software Group | WebSphere software

Questions