Download presentation
Presentation is loading. Please wait.
Published byMelissa Harrington Modified over 9 years ago
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 SWG – Tivoli weaverma@us.ibm.com weaverma@us.ibm.com Grace Wang IGS grace.wang@us.ibm.com Gergana Markova SWG – Tivoli gmarkova@us.ibm.com gmarkova@us.ibm.com Martin Stenkilde SWG – Rational mstenkil@us.ibm.commstenkil@us.ibm.com Other Mentors: TBD for each team
2
© 2006 IBM Corporation 2 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
3
© 2006 IBM Corporation 3 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
4
© 2006 IBM Corporation 4 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
5
© 2006 IBM Corporation 5 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
6
© 2006 IBM Corporation 6 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
7
© 2006 IBM Corporation Web 2.0 MASHUP PROJECT
8
© 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
9
© 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
10
© 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.”
11
© 2006 IBM Corporation Service Oriented Architecture Roles Service Requester Service Registry Service Provider Find Discover service Publish Advertise service Bind/Invoke Request service
12
© 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
13
© 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
14
© 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
15
© 2006 IBM Corporation Axis Apache Extensible Interaction System A SOAP Engine A JAX-RPC run-time system Provides emitter tooling that generates Java classes from WSDL Used to be IBM SOAP4J
16
© 2006 IBM Corporation JAX-RPC A Sun specification, was JSR 101 Specifies Java APIs for XML-based Remote Procedure Call Remote Procedure Call A mechanism for clients to call procedures from a service over a network Typically used in distributed client/server model Other example of RPC mechanism: RMI
17
© 2006 IBM Corporation A Very Simple Example The Library Web service Exposes one method: findTitleByAuthor Uses Axis “instant deployment” with a JWS file Generates a Web service client from the Library service WSDL
18
© 2006 IBM Corporation Service Implementation - Library.jws import java.util.*; public class Library { private LibraryDatastore dataStore; public Library() { DatastoreFactory.getDS(); dataStore = DatastoreFactory.getLibraryDataStore(); } public Collection findTitleByAuthor(String author) {... }
19
© 2006 IBM Corporation http://127.0.0.1:8080/axis/Library.jws?wsdl Axis Instant Deployment $tomcat_home/webapps/axis
20
© 2006 IBM Corporation WSDL2Java Generates
21
© 2006 IBM Corporation Service Client – LibraryClient.java import java.util.*; import org.library.*; public class LibraryClient { public static void main(String[] args) { try { LibraryService libraryLocator = new LibraryServiceLocator(); Library library = libraryLocator.getLibrary(); Object[] titles = library.findTitleByAuthor(args[0]); for (Object title : titles) { System.out.println(title); } } catch (Exception e) { e.printStackTrace(); }
22
© 2006 IBM Corporation Suggested Approach Environment setup Service discovery Your Mashup Concept Design / Storyboard Component Level Design Implementation Test Deployment (Go Live)
23
© 2006 IBM Corporation Web service Providers
24
© 2006 IBM Corporation Real Mashup Examples http://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
25
© 2006 IBM Corporation Real Mashup Examples www.corozalmapia. com www.corozalmapia. com The site is not complete, however the concept is interesting This specific site is a map of Corozal Town Belize (Central America). Each attraction on the map is clickable Once clicked the user can see pictures and video of each attraction APIs used Google AdSense Google Maps YouTube
26
© 2006 IBM Corporation s
27
Skills Required Java 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)
28
© 2006 IBM Corporation Gain Experience J2EE Web services SOAP Axis JAX-RPC XML Web UI AJAX
29
© 2006 IBM Corporation RUBY ON RAILS PROJECT
30
© 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
31
© 2006 IBM Corporation Why Ruby on Rails? RoR allows you to quickly build webapps. RoR gets a lot of buzz. RoR is fun.
32
© 2006 IBM Corporation Required Skills Ruby Or another dynamic language like Python HTML JavaScript CSS DBs – MySQL is the easiest
33
© 2006 IBM Corporation Ruby On Rails Projects Choose your own adventure!
34
© 2006 IBM Corporation ECLIPSE PROJECT
35
© 2006 IBM Corporation 35 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
36
© 2006 IBM Corporation 36 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.
37
© 2006 IBM Corporation Eclipse Project Goals Provide open platform for application development tools Run on a wide range of operating systems Support both GUI and non-GUI applications Remain language neutral Permit unrestricted content types HTML, Java, C, JSP, EJB, XML, GIF, … Facilitate seamless tool integration At UI and deeper Add new tools to existing installed products HTML XML EJBJSP C
38
© 2006 IBM Corporation 38 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 http://www.eclipse.org/community/index.html Newsgroups news.eclipse.org Mailing Lists Wiki http://wiki.eclipse.org http://wiki.eclipse.org Planet http://planeteclipse.org
39
© 2006 IBM Corporation 39 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 extension extension point runtime
40
© 2006 IBM Corporation RCP Examples Examples (http://www.eclipse.org/community/rcpos.php) Azureus College students love BitTorrent! RSSOwl Maestro (NASA Mars Mission Software)
41
© 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 APIhttp://www.eclipse.org/ecf Mylar support for C/C++ editing with CDT Many, many more
42
© 2006 IBM Corporation Choose your own adventure Any of your own ideas. We are here to help!
43
© 2006 IBM Corporation 43 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?
44
© 2006 IBM Corporation USEFUL REFERENCES
45
© 2006 IBM Corporation Runtime (OSGi) SWT JFace UI (Generic Workbench) Resources (optional) IDE Help (optional) Update (optional) Text (optional) IDE Text CompareDebugSearch Team/ CVS Java development tools (JDT) What Is Eclipse? A world class Java IDE
46
© 2006 IBM Corporation 46 ECLIPSE :Everything is a Plug-in Extensible platform extensible IDE IDE plug-ins run-time plug-ins
47
© 2006 IBM Corporation ECLIPSE: Rich Client Platform (RCP) Advanced desktop applications have the same needs as an IDE open architecture efficient, configurable, portable UI supports product branding, install/update support integrated help, user configuration/preferences Enable Eclipse to be used for non-IDE applications Theme your own application Examples Azureus College students love BitTorrent RSSOwl
48
© 2006 IBM Corporation MASHUP: Links and References (1) Documentation / Specifications developerWorks – SOA and Web services http://www-128.ibm.com/developerworks/webservices/ SOAP http://www.w3.org/TR/soap/ WSDL http://www.w3.org/TR/wsdl JAX-RPC http://java.sun.com/webservices/jaxrpc/ SOAP Engine Axis http://ws.apache.org/axis/ Eclipse http://www.eclipse.org/
49
© 2006 IBM Corporation MASHUP: Links and References (2) Web service Providers (WSDL) Google Code http://code.google.com/ Yahoo Developer Network http://developer.yahoo.com/ Amazon ECS http://www.amazon.com/exec/obidos/tg/browse/-/12738641 Flickr Web services http://www.flickr.com/services/api/ YouTube API http://www.youtube.com/dev Microsoft Web services http://www.momentumsi.com/MSWSDLHunt.html
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.