1 / 35

IBM Open Source Software Competition Brendan Murray, Software Architect, IBM Dublin Software Lab

IBM Open Source Software Competition Brendan Murray, Software Architect, IBM Dublin Software Lab. Agenda. IBM and Open Source Java Tooling Web Tooling Rich Client Platform Web Services LAMP Summary Questions. Agenda. IBM and Open Source Java Tooling Web Tooling Rich Client Platform

bian
Download Presentation

IBM Open Source Software Competition Brendan Murray, Software Architect, IBM Dublin Software Lab

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. IBM Open Source Software CompetitionBrendan Murray, Software Architect, IBM Dublin Software Lab

  2. Agenda • IBM and Open Source • Java Tooling • Web Tooling • Rich Client Platform • Web Services • LAMP • Summary • Questions

  3. Agenda • IBM and Open Source • Java Tooling • Web Tooling • Rich Client Platform • Web Services • LAMP • Summary • Questions

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

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

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

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

  8. Agenda • IBM and Open Source • Java Tooling • Web Tooling • Rich Client Platform • Web Services • LAMP • Summary • Questions

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

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

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

  12. Java Perspective • Java-centric view of files in Java projects • Java elements meaningful for Java programmers Javaproject package class field method Javaeditor

  13. List of plausible methods Doc for method Java Editor Lots of useful features such as . . . . • Method completion in Java editor

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

  15. Agenda • IBM and Open Source • Java Tooling • Web Tooling • Rich Client Platform • Web Services • LAMP • Summary • Questions

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

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

  18. WTP subprojects - JST • J2EE Standard Tools • 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

  19. WTP subprojects - JSF • JavaServer Faces tools • Add JSF capabilities to existing web project • JSF JSP page editor • Application configuration editor (faces-config.xml) • Navigation Rules Diagram

  20. Agenda • IBM and Open Source • Java Tooling • Web Tooling • Rich Client Platform • Web Services • LAMP • Summary • Questions

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

  22. Eclipse RCP • Full Eclipse Platform v Eclipse RCP

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

  24. Eclipse RCP • Can you tell the difference?

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

  26. Agenda • IBM and Open Source • Java Tooling • Web Tooling • Rich Client Platform • Web Services • LAMP • Summary • Questions

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

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

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

  30. Why develop using Web Services ? 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 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.

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

  32. Agenda • IBM and Open Source • Java Tooling • Web Tooling • Rich Client Platform • Web Services • LAMP • Summary • Questions

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

  34. Agenda • IBM and Open Source • Java Tooling • Web Tooling • Rich Client Platform • Web Services • LAMP • Summary • Questions

  35. Questions

More Related