ibm open source competition
DESCRIPTION
TRANSCRIPT
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
Javaproject
package
class
field
method
Javaeditor
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, 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
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
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
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
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
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)
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