© 2002 IBM Corporation Create Your Own Web 2.0 Mashup or Eclipse Plug-in(s): “Choose your own...
-
Upload
melissa-harrington -
Category
Documents
-
view
213 -
download
0
Transcript of © 2002 IBM Corporation Create Your Own Web 2.0 Mashup or Eclipse Plug-in(s): “Choose your own...
© 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
© 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
© 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
© 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
© 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
© 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
© 2006 IBM Corporation
Web 2.0 MASHUPPROJECT
© 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
© 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
© 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.”
© 2006 IBM Corporation
Service Oriented Architecture Roles
Service Requester
Service Registry
Service Provider
FindDiscover service
PublishAdvertise service
Bind/InvokeRequest service
© 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
© 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
© 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
© 2006 IBM Corporation
Suggested ApproachEnvironment setup
Service discovery
Your Mashup Concept
Design / Storyboard
Component Level Design
Implementation
Test
Deployment (Go Live)
© 2006 IBM Corporation
Web service Providers
© 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
© 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)
© 2006 IBM Corporation
Gain ExperienceJ2EE
Web services
SOAP
Axis
JAX-RPC
XML
Web UI
AJAX
© 2006 IBM Corporation
RUBY ON RAILSPROJECT
© 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
© 2006 IBM Corporation
Why Ruby on Rails?
RoR allows you to quickly build webapps.
RoR gets a lot of buzz.
RoR is fun.
© 2006 IBM Corporation
Required Skills
Ruby Or another dynamic language like Python
HTML
JavaScript
CSS
DBs – MySQL is the easiest
© 2006 IBM Corporation
Ruby On Rails Projects
Choose your own adventure!
© 2006 IBM Corporation
ECLIPSE PROJECT
© 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
© 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.
© 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
© 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
© 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
© 2006 IBM Corporation
RCP Examples
Examples (http://www.eclipse.org/community/rcpos.php)
Azureus
College students love BitTorrent! RSSOwl
Maestro (NASA Mars Mission Software)
© 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
© 2006 IBM Corporation
Choose your own adventure
Any of your own ideas. We are here to help!
© 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?