Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "© 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."— Presentation transcript:

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


Download ppt "© 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."

Similar presentations


Ads by Google