© 2002 IBM Corporation Create Your Own Web 2.0 Mashup or Eclipse Plug-in(s): “Choose your own...

34
© 2002 IBM Corporation Create Your Own Web 2.0 Mashup or Eclipse Plug-in(s): “Choose your own open-source adventure” ~ SE CS130 UCLA Winter 08 ~ Mark Weaver SWG – Tivoli [email protected] Grace Wang IGS [email protected] Gergana Markova SWG – Tivoli [email protected] Martin Stenkilde SWG – Rational [email protected] Other Mentors: TBD for each team

Transcript of © 2002 IBM Corporation Create Your Own Web 2.0 Mashup or Eclipse Plug-in(s): “Choose your own...

Page 1: © 2002 IBM Corporation Create Your Own Web 2.0 Mashup or Eclipse Plug-in(s): “Choose your own open-source adventure” ~ SE CS130 UCLA Winter 08 ~ Mark Weaver.

© 2002 IBM Corporation

Create Your Own Web 2.0 Mashup or Eclipse Plug-in(s):

“Choose your own open-source adventure”~ SE CS130 UCLA Winter 08 ~

Mark Weaver SWG – Tivoli [email protected] Wang IGS [email protected] Markova SWG – Tivoli [email protected] Stenkilde SWG – Rational [email protected] Mentors: TBD for each team

Page 2: © 2002 IBM Corporation Create Your Own Web 2.0 Mashup or Eclipse Plug-in(s): “Choose your own open-source adventure” ~ SE CS130 UCLA Winter 08 ~ Mark Weaver.

© 2006 IBM Corporation2

Agenda

Introduction The IBM team Create Your Own Adventure Project Defined What is it there for you

Web 2.0 Mashup Project

Eclipse Project

Conclusion Questions

Page 3: © 2002 IBM Corporation Create Your Own Web 2.0 Mashup or Eclipse Plug-in(s): “Choose your own open-source adventure” ~ SE CS130 UCLA Winter 08 ~ Mark Weaver.

© 2006 IBM Corporation3

IBM Project Team

Lead Technical Mentor: Mark Weaver Open-source enthusiast

Eclipse Technology, Java, Design Patterns, Ruby on Rails

Technical Writing

Project Lead: Gergana Markova Project organization Java, eXtremeProgramming, JUnit, Design Patterns

Each team will have dedicated Lead Technical Mentor and Lead Project Mentor: TBD

Technical Mentors The Go-To experts for any technical questions and challenges

Project Mentors Project environment, scheduling Facilitation & collaboration Team dynamics

Other Open Source Eclipse resources and forums IBM Academic Initiative Student Forum IBM Developer Works resources

Page 4: © 2002 IBM Corporation Create Your Own Web 2.0 Mashup or Eclipse Plug-in(s): “Choose your own open-source adventure” ~ SE CS130 UCLA Winter 08 ~ Mark Weaver.

© 2006 IBM Corporation4

Your Project, “Choose your own adventure”

General Project Technology / Requirements Open Source Eclipse or Web 2.0 Mashups Programming Language: Java Project Repository of your choice (e.g., CVS)

Recommend using SF.net Defect Tracking (SF.net tracker, Bugzilla, etc…) Project Discussion Forum/Log of your choice (e.g., Wiki) Unit testing of your choice (e.g., JUnit) In the end, it’s your decision what to do!

Deliverables Mandatory

Your project in a public repository, fully documented Optional

An article that will be published on IBM DeveloperWorks detailing your experience

Eclipse projects: A feed into planeteclipse.org detailing your experience

Page 5: © 2002 IBM Corporation Create Your Own Web 2.0 Mashup or Eclipse Plug-in(s): “Choose your own open-source adventure” ~ SE CS130 UCLA Winter 08 ~ Mark Weaver.

© 2006 IBM Corporation5

Projects Learning Skills

Software Engineering Skills Team Project Planning and execution

Collaboration, Networking

Rapid Decision Making

Open source community involvement (process, resources..)

Research and resources evaluation

Concepts Emphasized Open Source Process

Design Patterns

eXtreme Programming

Page 6: © 2002 IBM Corporation Create Your Own Web 2.0 Mashup or Eclipse Plug-in(s): “Choose your own open-source adventure” ~ SE CS130 UCLA Winter 08 ~ Mark Weaver.

© 2006 IBM Corporation6

Why Open-source?

Standardization of the rail network enabled industrialized America and Europe

A connecting platform fueling growth, creating new business opportunities Connecting resources with factory efficiencies Connecting goods with markets Enabling new distribution models (Sears Roebuck)

Other technology platforms: electricity grid, national highway systems, ……..the internet

“Standards contribute more to economic growth than patents and licenses.”

"Economic benefits of standardization“, Technical University Dresden (TUD) and the Fraunhofer Institute for Systems and Innovations

Page 7: © 2002 IBM Corporation Create Your Own Web 2.0 Mashup or Eclipse Plug-in(s): “Choose your own open-source adventure” ~ SE CS130 UCLA Winter 08 ~ Mark Weaver.

© 2006 IBM Corporation

Web 2.0 MASHUPPROJECT

Page 8: © 2002 IBM Corporation Create Your Own Web 2.0 Mashup or Eclipse Plug-in(s): “Choose your own open-source adventure” ~ SE CS130 UCLA Winter 08 ~ Mark Weaver.

© 2006 IBM Corporation

Mashup

A hybrid application that combines content from more than one source.

Very popular Web 2.0 idea

Mash-up (you can use a hyphen if you want)

Mashups are the next logical step in Service Oriented Architecture

The real power in Web services comes from combining

Web services are typically specialized, mashups are “situational”

Development without central authority

Page 9: © 2002 IBM Corporation Create Your Own Web 2.0 Mashup or Eclipse Plug-in(s): “Choose your own open-source adventure” ~ SE CS130 UCLA Winter 08 ~ Mark Weaver.

© 2006 IBM Corporation

Web 2.0

Web 2.0: O’Reilly Media coined the term

Web 1.0 vs. 2.0

One-to-many vs. many-to-many publishing

Application gets better as publishers make it better vs. application gets better the more people use it

No AJAX vs. AJAX

Page 10: © 2002 IBM Corporation Create Your Own Web 2.0 Mashup or Eclipse Plug-in(s): “Choose your own open-source adventure” ~ SE CS130 UCLA Winter 08 ~ Mark Weaver.

© 2006 IBM Corporation

What is a Web service?

W3C Web Services Architecture Group

“A Web service is a software system designed to support interoperable machine-to-machine interaction over a network. It has an interface described in a machine-processable format (specifically WSDL). Other systems interact with the Web service in a manner prescribed by its description using SOAP messages, typically conveyed using HTTP with an XML serialization in conjunction with other Web-related standards.”

Page 11: © 2002 IBM Corporation Create Your Own Web 2.0 Mashup or Eclipse Plug-in(s): “Choose your own open-source adventure” ~ SE CS130 UCLA Winter 08 ~ Mark Weaver.

© 2006 IBM Corporation

Service Oriented Architecture Roles

Service Requester

Service Registry

Service Provider

FindDiscover service

PublishAdvertise service

Bind/InvokeRequest service

Page 12: © 2002 IBM Corporation Create Your Own Web 2.0 Mashup or Eclipse Plug-in(s): “Choose your own open-source adventure” ~ SE CS130 UCLA Winter 08 ~ Mark Weaver.

© 2006 IBM Corporation

SOAP

A W3C Specification

An XML format, typically holds information for a Web service method call, or a response

Programming language independent

SOAP expanded: Services-Oriented Access Protocol

Used to be Simple Object Access Protocol

Page 13: © 2002 IBM Corporation Create Your Own Web 2.0 Mashup or Eclipse Plug-in(s): “Choose your own open-source adventure” ~ SE CS130 UCLA Winter 08 ~ Mark Weaver.

© 2006 IBM Corporation

WSDL

Web Services Description Language

A kind of IDL (Interface Definition Language)

An XML format to describe a Web service’s capabilities

Describes a service as a set of endpoints operating on messages

Page 14: © 2002 IBM Corporation Create Your Own Web 2.0 Mashup or Eclipse Plug-in(s): “Choose your own open-source adventure” ~ SE CS130 UCLA Winter 08 ~ Mark Weaver.

© 2006 IBM Corporation

XML/Java XML Parsers

Parsers help with validation, well-formedness checking, building a DOM, notifying the application of errors

Two API Standards: DOM and SAX

Xerces2

Data Binding APIs

Page 15: © 2002 IBM Corporation Create Your Own Web 2.0 Mashup or Eclipse Plug-in(s): “Choose your own open-source adventure” ~ SE CS130 UCLA Winter 08 ~ Mark Weaver.

© 2006 IBM Corporation

Suggested ApproachEnvironment setup

Service discovery

Your Mashup Concept

Design / Storyboard

Component Level Design

Implementation

Test

Deployment (Go Live)

Page 16: © 2002 IBM Corporation Create Your Own Web 2.0 Mashup or Eclipse Plug-in(s): “Choose your own open-source adventure” ~ SE CS130 UCLA Winter 08 ~ Mark Weaver.

© 2006 IBM Corporation

Web service Providers

Page 17: © 2002 IBM Corporation Create Your Own Web 2.0 Mashup or Eclipse Plug-in(s): “Choose your own open-source adventure” ~ SE CS130 UCLA Winter 08 ~ Mark Weaver.

© 2006 IBM Corporation

Real Mashup Exampleshttp://www.allapis.com/

Yahoo_Flickr_Weather_Maps.aspx

Allows users to search US cities/locations - provides users with information on the city requested

Weather Forecasts

Wikipedia geo Articles

Flickr photos

APIs used Flickr

GeoNames

Yahoo Geocoding

Yahoo Maps

Page 18: © 2002 IBM Corporation Create Your Own Web 2.0 Mashup or Eclipse Plug-in(s): “Choose your own open-source adventure” ~ SE CS130 UCLA Winter 08 ~ Mark Weaver.

© 2006 IBM Corporation

Skills RequiredJava Programming, nothing fancy

Basic web service concepts: SOAP, WSDL

Basic web-application concepts: URLs, HTTP, JavaScript, server-side scripting (JSP, PHP, other)

Basic XML (syntax, parsing)

AJAX (would be nice)

CSS (optional)

Page 19: © 2002 IBM Corporation Create Your Own Web 2.0 Mashup or Eclipse Plug-in(s): “Choose your own open-source adventure” ~ SE CS130 UCLA Winter 08 ~ Mark Weaver.

© 2006 IBM Corporation

Gain ExperienceJ2EE

Web services

SOAP

Axis

JAX-RPC

XML

Web UI

AJAX

Page 20: © 2002 IBM Corporation Create Your Own Web 2.0 Mashup or Eclipse Plug-in(s): “Choose your own open-source adventure” ~ SE CS130 UCLA Winter 08 ~ Mark Weaver.

© 2006 IBM Corporation

RUBY ON RAILSPROJECT

Page 21: © 2002 IBM Corporation Create Your Own Web 2.0 Mashup or Eclipse Plug-in(s): “Choose your own open-source adventure” ~ SE CS130 UCLA Winter 08 ~ Mark Weaver.

© 2006 IBM Corporation

What is Ruby On Rails

Ruby on Rails is an open-source web framework that's optimized for

programmer happiness and sustainable productivity. It lets you write beautiful

code by favoring convention over configuration.

- http://www.rubyonrails.org

Page 22: © 2002 IBM Corporation Create Your Own Web 2.0 Mashup or Eclipse Plug-in(s): “Choose your own open-source adventure” ~ SE CS130 UCLA Winter 08 ~ Mark Weaver.

© 2006 IBM Corporation

Why Ruby on Rails?

RoR allows you to quickly build webapps.

RoR gets a lot of buzz.

RoR is fun.

Page 23: © 2002 IBM Corporation Create Your Own Web 2.0 Mashup or Eclipse Plug-in(s): “Choose your own open-source adventure” ~ SE CS130 UCLA Winter 08 ~ Mark Weaver.

© 2006 IBM Corporation

Required Skills

Ruby Or another dynamic language like Python

HTML

JavaScript

CSS

DBs – MySQL is the easiest

Page 24: © 2002 IBM Corporation Create Your Own Web 2.0 Mashup or Eclipse Plug-in(s): “Choose your own open-source adventure” ~ SE CS130 UCLA Winter 08 ~ Mark Weaver.

© 2006 IBM Corporation

Ruby On Rails Projects

Choose your own adventure!

Page 25: © 2002 IBM Corporation Create Your Own Web 2.0 Mashup or Eclipse Plug-in(s): “Choose your own open-source adventure” ~ SE CS130 UCLA Winter 08 ~ Mark Weaver.

© 2006 IBM Corporation

ECLIPSE PROJECT

Page 26: © 2002 IBM Corporation Create Your Own Web 2.0 Mashup or Eclipse Plug-in(s): “Choose your own open-source adventure” ~ SE CS130 UCLA Winter 08 ~ Mark Weaver.

© 2006 IBM Corporation35

What Is Eclipse?

“Eclipse is an open source community focused on developing a universal platform of frameworks and exemplary tools that make it easy and cost-effective to build and deploy software in today’s connected and unconnected world.

Eclipse is a consortium of major software vendors, solution providers, corporations, educational and research institutions and individuals working together to create an eco-system that enhances, promotes and cultivates the Eclipse open platform with complementary products, services and capabilities.

Eclipse Strategic Goals

To define an open development platform

To foster a vibrant open source community well regarded for innovation and quality

To enable an ecosystem

To be ubiquitous

Page 27: © 2002 IBM Corporation Create Your Own Web 2.0 Mashup or Eclipse Plug-in(s): “Choose your own open-source adventure” ~ SE CS130 UCLA Winter 08 ~ Mark Weaver.

© 2006 IBM Corporation36

Why IBM? Why Eclipse?

We like Eclipse, we founded it and then donated it to the open-source community.

IBM and even competitor’s products are being built on Eclipse technology.

There is a large future invested in Eclipse.

Page 28: © 2002 IBM Corporation Create Your Own Web 2.0 Mashup or Eclipse Plug-in(s): “Choose your own open-source adventure” ~ SE CS130 UCLA Winter 08 ~ Mark Weaver.

© 2006 IBM Corporation

Eclipse Project GoalsProvide open platform for application development toolsRun on a wide range of operating systems

Support both GUI and non-GUI applications

Remain language neutralPermit unrestricted content types

HTML, Java, C, JSP, EJB, XML, GIF, …

Facilitate seamless tool integrationAt UI and deeper

Add new tools to existing installed products

HTML XMLEJBJSPC

Page 29: © 2002 IBM Corporation Create Your Own Web 2.0 Mashup or Eclipse Plug-in(s): “Choose your own open-source adventure” ~ SE CS130 UCLA Winter 08 ~ Mark Weaver.

© 2006 IBM Corporation38

Eclipse Community

Celebrities! Erich Gamma (GoF, IBM Distinguished Engineer, JDT Lead)

Ward Cunningham (Wiki founder, Eclipse Foundation)

Strong Community http://www.eclipse.org/community/index.html

Newsgroups

news.eclipse.org Mailing Lists

Wiki

http://wiki.eclipse.org Planet

http://planeteclipse.org

Page 30: © 2002 IBM Corporation Create Your Own Web 2.0 Mashup or Eclipse Plug-in(s): “Choose your own open-source adventure” ~ SE CS130 UCLA Winter 08 ~ Mark Weaver.

© 2006 IBM Corporation39

Plug-in Architecture Plug-in

smallest unit of eclipse functionality

details specified in it's plug-in manifest (plugin.xml)

plugins can add code, define extension points, and contribute to extension points

Extension point named entity for collecting contributions

Defines API contract

example: extension point to add menu actions Extension

an instance of an exention point contribution

example: a specific menu action Controlled extensibility

plug-in

plug-in

plug-in

extensionextension point

runtime

Page 31: © 2002 IBM Corporation Create Your Own Web 2.0 Mashup or Eclipse Plug-in(s): “Choose your own open-source adventure” ~ SE CS130 UCLA Winter 08 ~ Mark Weaver.

© 2006 IBM Corporation

RCP Examples

Examples (http://www.eclipse.org/community/rcpos.php)

Azureus

College students love BitTorrent! RSSOwl

Maestro (NASA Mars Mission Software)

Page 32: © 2002 IBM Corporation Create Your Own Web 2.0 Mashup or Eclipse Plug-in(s): “Choose your own open-source adventure” ~ SE CS130 UCLA Winter 08 ~ Mark Weaver.

© 2006 IBM Corporation

SampleEclipse Plug-In Ideas

Eclipse SWT embedded Firefox browser widget (highly requested by the community)

Eclipse Mono Development Environment Visualization of Eclipse's Plug-ins so it's easier to see

dependencies and other things Distributed Debugging Shared Editing VOIP in Eclipse using ECF (http://www.eclipse.org/ecf ) and

Google's Jingle API Mylar support for C/C++ editing with CDTMany, many more

Page 33: © 2002 IBM Corporation Create Your Own Web 2.0 Mashup or Eclipse Plug-in(s): “Choose your own open-source adventure” ~ SE CS130 UCLA Winter 08 ~ Mark Weaver.

© 2006 IBM Corporation

Choose your own adventure

Any of your own ideas. We are here to help!

Page 34: © 2002 IBM Corporation Create Your Own Web 2.0 Mashup or Eclipse Plug-in(s): “Choose your own open-source adventure” ~ SE CS130 UCLA Winter 08 ~ Mark Weaver.

© 2006 IBM Corporation43

Conclusion

Thank you for your time!

We’re here for you! E.g. Eclipse has an awful learning curve, we’re here to help

Questions?

Project Ideas?