1 / 34

2006 IBM Corporation 2002 IBM Corporation

IBM Developer Works resources. 4. Your Project,

Olivia
Télécharger la présentation

2006 IBM Corporation 2002 IBM Corporation

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


    Slide 1:Introduction Background and responsibilities Part of Rational, from AIMIntroduction Background and responsibilities Part of Rational, from AIM

    Slide 7:Web 2.0 MASHUPPROJECT

    Slide 8: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

    Slide 9:Web 2.0 Web 2.0: OReilly 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

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

    Slide 11:Service Oriented Architecture Roles

    Slide 12: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

    Slide 13:WSDL Web Services Description Language A kind of IDL (Interface Definition Language)? An XML format to describe a Web services capabilities Describes a service as a set of endpoints operating on messages

    Slide 14: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

    Slide 15: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

    Slide 16: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

    Slide 17: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

    Slide 18: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) { ... } }

    Slide 19:

    Slide 20:WSDL2Java Generates

    Slide 21: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(); } } } The stub, in this case the implementation of the Library interface works with the JAX-RPC run-time on the client to generate the SOAP request, and handle serialization/de-serialization from Java to XML and XML to Java. This allows the client code to be independent of messaging and transport protocol. The stub also hides the endpoint URL, the parameter types and the client calls through it as it would with a local object. The stub, in this case the implementation of the Library interface works with the JAX-RPC run-time on the client to generate the SOAP request, and handle serialization/de-serialization from Java to XML and XML to Java. This allows the client code to be independent of messaging and transport protocol. The stub also hides the endpoint URL, the parameter types and the client calls through it as it would with a local object.

    Slide 22:Suggested Approach Environment setup Service discovery Your Mashup Concept Design / Storyboard Component Level Design Implementation Test Deployment (Go Live)?

    Slide 23:Web service Providers

    Slide 24: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

    Slide 25:Real Mashup Examples 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

    Slide 26:s

    Slide 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)?

    Slide 28:Gain Experience J2EE Web services SOAP Axis JAX-RPC XML Web UI AJAX

    Slide 29:RUBY ON RAILSPROJECT

    Slide 30: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

    Slide 31:Why Ruby on Rails? RoR allows you to quickly build webapps. RoR gets a lot of buzz. RoR is fun.

    Slide 32:Required Skills Ruby Or another dynamic language like Python HTML JavaScript CSS DBs MySQL is the easiest

    Slide 33:Ruby On Rails Projects Choose your own adventure!

    Slide 34:ECLIPSE PROJECT

    Slide 37:The project goals were to support a wide variety of platforms, provide an language neutral base, and architect for integration not just on the glass, but deeper, with the resources that comprise the applications being developed. The project goals were to support a wide variety of platforms, provide an language neutral base, and architect for integration not just on the glass, but deeper, with the resources that comprise the applications being developed.

    Slide 38:For general information about the eclipse community, including what eclipse based offerings are available, activities, courses, venues for more information, use this page.For general information about the eclipse community, including what eclipse based offerings are available, activities, courses, venues for more information, use this page.

    Slide 39:With this extensibility architecture, one extends Eclipse by building plug-ins that are extensions to existing extension points. That plug-in provider can also add his/her own extension points for others to extend. This is what we do with our IBM commercial offerings, so that our tools better interoperate and our partners products can better interoperate with our commercial offerings.With this extensibility architecture, one extends Eclipse by building plug-ins that are extensions to existing extension points. That plug-in provider can also add his/her own extension points for others to extend. This is what we do with our IBM commercial offerings, so that our tools better interoperate and our partners products can better interoperate with our commercial offerings.

    Slide 40:IDEs are simply specialized computer applications. Many of the things IDES need in a technology platform, general purpose computer applications need as well. In 3.0, the Eclipse team refactored Eclipse to separate Eclipse as a general purpose client platform for rich applications (i.e. not browser based) from IDE specific function. IDEs are simply specialized computer applications. Many of the things IDES need in a technology platform, general purpose computer applications need as well. In 3.0, the Eclipse team refactored Eclipse to separate Eclipse as a general purpose client platform for rich applications (i.e. not browser based) from IDE specific function.

    Slide 41: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 CDT Many, many more

    Slide 42:Choose your own adventure Any of your own ideas. We are here to help!

    Slide 44:USEFUL REFERENCES

    Slide 46:In eclipse, everything is a plug-in. One of the reasons, early on, the Eclipse team decided to include in Eclipse plug-ins for Java and plug-in development was to test and drive development of the platform. They needed these tools, these plug-ins, so they could use Eclipse to build Eclipse. In Canada, they say, Eat your own dogfood. The end result is a better quality offering. A plug-in is the smallest unit of Eclipse Platform function that can be developed and delivered separately. Usually a small tool is written as a single plug-in, whereas a complex tool has its functionality split across several plug-ins. Except for a small kernel known as the Platform Runtime, all of the Eclipse Platform's functionality is located in plug-ins. Plug-ins are coded in Java. A typical plug-in consists of Java code in a JAR library, some read-only files, and other resources such as images, web templates, message catalogs, native code libraries, etc. Some plug-ins do not contain code at all. One such example is a plug-in that contributes online help in the form of HTML pages. A single plug-in's code libraries and read-only content are located together in a directory in the file system, or at a base URL on a server. There is also a mechanism that permits a plug-in to be synthesized from several separate fragments, each in their own directory or URL. This is the mechanism used to deliver separate language packs for an internationalized plug-in. Each plug-in has a manifest file declaring its interconnections to other plug-ins. The interconnection model is simple: a plug-in declares any number of named extension points, and any number of extensions to one or more extension points in other plug-ins. A plug-ins extension points can be extended by other plug-ins. For example, the workbench plug-in declares an extension point for user preferences. Any plug-in can contribute its own user preferences by defining extensions to this extension point. An extension point may have a corresponding API interface. Other plug-ins contribute implementations of this interface via extensions to this extension point. Any plug-in is free to define new extension points and to provide new API for other plug-ins to In eclipse, everything is a plug-in. One of the reasons, early on, the Eclipse team decided to include in Eclipse plug-ins for Java and plug-in development was to test and drive development of the platform. They needed these tools, these plug-ins, so they could use Eclipse to build Eclipse. In Canada, they say, Eat your own dogfood. The end result is a better quality offering. A plug-in is the smallest unit of Eclipse Platform function that can be developed and delivered separately. Usually a small tool is written as a single plug-in, whereas a complex tool has its functionality split across several plug-ins. Except for a small kernel known as the Platform Runtime, all of the Eclipse Platform's functionality is located in plug-ins. Plug-ins are coded in Java. A typical plug-in consists of Java code in a JAR library, some read-only files, and other resources such as images, web templates, message catalogs, native code libraries, etc. Some plug-ins do not contain code at all. One such example is a plug-in that contributes online help in the form of HTML pages. A single plug-in's code libraries and read-only content are located together in a directory in the file system, or at a base URL on a server. There is also a mechanism that permits a plug-in to be synthesized from several separate fragments, each in their own directory or URL. This is the mechanism used to deliver separate language packs for an internationalized plug-in. Each plug-in has a manifest file declaring its interconnections to other plug-ins. The interconnection model is simple: a plug-in declares any number of named extension points, and any number of extensions to one or more extension points in other plug-ins. A plug-ins extension points can be extended by other plug-ins. For example, the workbench plug-in declares an extension point for user preferences. Any plug-in can contribute its own user preferences by defining extensions to this extension point. An extension point may have a corresponding API interface. Other plug-ins contribute implementations of this interface via extensions to this extension point. Any plug-in is free to define new extension points and to provide new API for other plug-ins to

    Slide 47:IDEs are simply specialized computer applications. Many of the things IDES need in a technology platform, general purpose computer applications need as well. In 3.0, the Eclipse team refactored Eclipse to separate Eclipse as a general purpose client platform for rich applications (i.e. not browser based) from IDE specific function. IDEs are simply specialized computer applications. Many of the things IDES need in a technology platform, general purpose computer applications need as well. In 3.0, the Eclipse team refactored Eclipse to separate Eclipse as a general purpose client platform for rich applications (i.e. not browser based) from IDE specific function.

    Slide 48: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/

    Slide 49: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

More Related