SlideShare ist ein Scribd-Unternehmen logo
1 von 41
Downloaden Sie, um offline zu lesen
Abstract Mashups
for Enterprise Java
       Ed Burns
      Hazem Saleh
AGENDA
1   What is mashability?

    How does mashability influence the success of a venture for
2   both the public and enterprise.


3   Enterprise mashups.


4   Mashups development current challenges.


5   Mashup application idea.


6   What is Mashups4JSF?


7   Building the mashup application using Mashups4JSF.


8   Conclusion
AGENDA
1   What is mashability?

    How does mashability influence the success of a venture for
2   both the public and enterprise.


3   Enterprise mashups.


4   Mashups development current challenges.


5   Mashup application idea.


6   What is Mashups4JSF?


7   Building the mashup application using Mashups4JSF.


8   Conclusion
Mashability

                       adjective
The property of a software system to be re-used in contexts
  not imagined at the time the system was first deployed



              Mashability is a matter of degree


                     Not just embedding


It's possible for software to only have superficial mashability
Mashability
Ease of performing the mashup




                                                                                                               Twitter, yammer,
                                                                                                               etc.




                                                                              Browser
                                          AS/400                              extensions
                                Flash/Applet

                                     Sy       Sc                  In                  Pr      D               Sy
                                  to    ste       re           A     str          pl    ov     ec           en ste
                                m pr m              en           O um                ug id        or          co m
                                 a s e v de            sc          P     en            in e a        at         ur d e
                                    ha e si              ra                                            io
                                                            pi              tw                            n       ag si
                                      bi nt gn                 ng             ith                                   e gn
                                        lit    ed                                                                    m ed
                                           y                                                                           as t
                                                                                                                         ha o
                                                        Kind of mashup technique                                           bi
                                                                                                                              lit
                                                                                                                                  y
Mashability
Ease of performing the mashup




                                                                                                               Twitter, yammer,
                                                                                                               etc.




                                                                              Browser
                                          AS/400                              extensions
                                Flash/Applet

                                     Sy       Sc                  In                  Pr      D               Sy
                                  to    ste       re           A     str          pl    ov     ec           en ste
                                m pr m              en           O um                ug id        or          co m
                                 a s e v de            sc          P     en            in e a        at         ur d e
                                    ha e si              ra                                            io
                                                            pi              tw                            n       ag si
                                      bi nt gn                 ng             ith                                   e gn
                                        lit    ed                                                                    m ed
                                           y                                                                           as t
                                                                                                                         ha o
                                                        Kind of mashup technique                                           bi
                                                                                                                              lit
                                                                                                                                  y
AGENDA
1   What is mashability?

    How does mashability influence the success of a venture for
2   both the public and enterprise.


3   Enterprise mashups.


4   Mashups development current challenges.


5   Mashup application idea.


6   What is Mashups4JSF?


7   Building the mashup application using Mashups4JSF.


8   Conclusion
How does mashability influence the
    success of a software venture?
          General Public            Enterprise

Ø Create    alternate         Ø Extend   the ROI on IT
       revenue streams        Ø Spreads skills more
Ø Co-optition                    broadly throughout
Ø It   fits reality:             the enterprise
       successful             Ø Encourages  re-
       ventures derive           usable software
       success from              development
       different areas over
       time
AGENDA
1   What is mashability?

    How does mashability influence the success of a venture for
2   both the public and enterprise.


3   Enterprise mashups.


4   Mashups development current challenges.


5   Mashup application idea.


6   What is Mashups4JSF?


7   Building the mashup application using Mashups4JSF.


8   Conclusion
Enterprise Mashups

●   Example: twitter
    ●   Twitter designed from day one to be mashable
    ●   Explosive growth fueled by ease of mashability
    ●   But how many of the mashups are focused on use
        within an enterprise?
Enterprise Mashups

●   Example: yammer
    ●   nano-pitch: twitter for Enterprise
    ●   Featured in recent Economist magazine technology
        quarterly
    ●   https://www.yammer.com/about/applications
AGENDA
1   What is mashability?

    How does mashability influence the success of a venture for
2   both the public and enterprise.


3   Enterprise mashups.


4   Mashups development current challenges.


5   Mashup application idea.


6   What is Mashups4JSF?


7   Building the mashup application using Mashups4JSF.


8   Conclusion
Mashups Development
       current challenges
There is no unified model agreed by all the mashup
  service providers for mashup service creation and
                    consumption.

         Different representation of mashup
                       services
            SOAP                  REST



        Different protocols of mashup services

     ATOM         RSS        JSON        Others
Mashups Development
           current challenges

Intensive JavaScript.


 Atom Feed Parsing.


 RSS Feed Parsing.


   JSON Parsing.


Other formats Parsing.
Mashups Development
 current challenges



           Study low level APIs of the
            Mashup service provider.


              Write a great deal of
               integration code.
AGENDA
1   What is mashability?

    How does mashability influence the success of a venture for
2   both the public and enterprise.


3   Enterprise mashups.


4   Mashups development current challenges.


5   Mashup application idea.


6   What is Mashups4JSF?


7   Building the mashup application using Mashups4JSF.


8   Conclusion
Mashup Application Idea
Mashup Application Idea



Building the application using The
      Mashup Service APIs
Step 1:    Go to the youTube API documentation site for getting the REST search URL
                                      and search parameters:
          http://code.google.com/apis/youtube/2.0/developers_guide_protocol_api_query_p
Step 1:    Go to the youTube API documentation site for getting the REST search URL
                       Open a URL Connection to the youTube Search URL:
Step 2:
                                      and search parameters:
          http://gdata.youtube.com/feeds/api/videos?alt=rss&v=2&max-results=5&q
          http://code.google.com/apis/youtube/2.0/developers_guide_protocol_api_query_p
                                            =#{param}


          Where

          1. alt indicates the feed format to be returned.
          2. v indicates the API version to be used.
          3. max-results indicates the maximum number of returned results.
          4. q indicates the query to search by.
Step 1:              Go to the youTube API documentation site for getting the REST search URL
                                      Open a URL Connection to the youTube Search URL:
     Step 2:
                                                     and search parameters:
                         http://gdata.youtube.com/feeds/api/videos?alt=rss&v=2&max-results=5&q
                                               The rss feed for a single video item
                         http://code.google.com/apis/youtube/2.0/developers_guide_protocol_api_query_p
     Step 3:                                               =#{param}

<?xml version='1.0' encoding='UTF-8'?>
<rss ...>
<channel>
       ...
       <item>
              <guid isPermaLink='false'>tag:youtube.com,2008:video:5EFb77oGRmo</guid>
              <pubDate>Mon, 11 Jun 2007 20:39:55 +0000</pubDate>
              <atom:updated>2010-08-22T06:05:23.000Z</atom:updated>
              <category domain='http://schemas.google.com/g/2005#kind'>
                     http://gdata.youtube.com/schemas/2007#video
              </category>
              <title>JavaOne: Open Possibilities</title>
              <link>http://www.youtube.com/watch?v=5EFb77oGRmo&amp;feature=youtube_gdata</link>
              <author>SunMicrosystemsInc</author>
              <yt:accessControl action='comment' permission='moderated'/>
              <yt:accessControl action='videoRespond' permission='moderated'/>
              <yt:accessControl action='rate' permission='allowed'/>
              <yt:accessControl action='embed' permission='allowed'/>
              <yt:accessControl action='syndicate' permission='allowed'/>
              <yt:accessControl action='commentVote' permission='allowed'/>
              <gd:comments>
                     <gd:feedLink href='http://gdata.youtube.com/feeds/api/videos/5EFb77oGRmo/comments?v=2'
                     countHint='2'/>
              </gd:comments>
              <media:group>
                     <media:title type='plain'>JavaOne: Open Possibilities</media:title>
                     <yt:duration seconds='114'/>
                     <yt:uploaded>2007-06-11T20:39:55.000Z</yt:uploaded>
                     <yt:videoid>5EFb77oGRmo</yt:videoid>
                     ...
              </media:group>
              ...
       </item>
       ...
</channel>
</rss>
Go to the Twitter API documentation site for getting the REST search URL
Step 1:                              and search parameters:
                    http://apiwiki.twitter.com/Twitter-API-Documentation
Go to the Twitter API documentation site for getting the REST search URL
Step 1:                                and search parameters:
                       Open a URL Connection to the twitter Search URL:
Step 2:              http://apiwiki.twitter.com/Twitter-API-Documentation
                   http://search.twitter.com/search.json?q=#{param}&rpp=10



          Where:

          1. q indicates the query to search by.

          2. rpp indicates the number of tweets per page.
Go to the Twitter API documentation site for getting the REST search URL
   Step 1:                                      and search parameters:
                                Open a URL Connection to the twitter Search URL:
   Step 2:                    http://apiwiki.twitter.com/Twitter-API-Documentation
                            http://search.twitter.com/search.json?q=#{param}&rpp=10
                                          The JSON feed for a single tweet
   Step 3:

{"results":
[
     {
          "profile_image_url":"http://a1.twimg.com/profile_images/598447517/
                                 twitterProfilePhoto_normal.jpg",
          "created_at":"Mon, 23 Aug 2010 22:33:30 +0000",
          "from_user":"jamesfarrar",
          "metadata":{"result_type":"recent"},
          "to_user_id":null,
          "text":"RT @oracleopenworld: Larry Ellison to Join EVP Thomas Kurian in
                  JavaOne Keynote to Discuss Future of Java http://bit.ly/ausg7I #javaone10",
          "id":21948746363,
          "from_user_id":23963,
          "geo":null,
          "iso_language_code":"en",
          "source":"&lt;a href=&quot;http://www.tweetdeck.com&quot;
                    rel=&quot;nofollow&quot;&gt;TweetDeck&lt;/a&gt;"
     }
],
     "max_id":21948746363,
     "since_id":0,
     "refresh_url":"?since_id=21948746363&q=javaone",
     "next_page":"?page=2&max_id=21948746363&rpp=1&q=javaone",
     "results_per_page":1,"page":1,
     "completed_in":0.016396,"query":"javaone"
}
Step 1:   Go to the Google Maps API documentation site for creating the map:
              http://code.google.com/apis/maps/documentation/javascript
Step 1:                  Go to the Google Maps API documentation site for creating the map:
    Step 2:                      http://code.google.com/apis/maps/documentation/javascript
                                                      Write a JS code



<script type="text/javascript">
      // Google Maps code ...
      if (GBrowserIsCompatible()) {
          var address = "NY, USA";
          var map     = new GMap2(document.getElementById("map"));
          map.setCenter(new GLatLng(24, 15), 13);
          var geocoder = new GClientGeocoder();
          geocoder.getLatLng(address,
                                           function(location) {
                                          if (!location) {
                                           alert(location + " not found");
                                          } else {
                                           map.setCenter(location, 13);
                                           marker.openInfoWindow(address);

                                             map.addOverlay(marker);

                                               }
                                       }
●                               );

            //add the map control.
                var mapControlPosition = new GControlPosition(G_ANCHOR_BOTTOM_RIGHT, new GSize(10,
                                                              10));
                map.addControl(new GLargeMapControl(), mapControlPosition);
      }
</script>
SO
Many Web Sites To Visit
                                              Much Documentation To Read



<script type="text/javascript">
// Google Maps code ...
if (GBrowserIsCompatible()) {
         {"results": = "NY, USA";
          var address
         [var map
                   {
                       = new GMap2(document.getElementById("map"));
                                                                                                                 Many Configurations to Do
          map.setCenter(new GLatLng(24, 15), 13);
          var geocoder...> "profile_image_url":"http://a1.twimg.com/profile_images/598447517/
                  <rss = new GClientGeocoder();
          geocoder.getLatLng(address,                               twitterProfilePhoto_normal.jpg",
                  <channel> "created_at":"Mon, 23 Aug 2010 22:33:30 +0000",
                   function(location) {
                          <item>
                            "from_user":"jamesfarrar",
                            if (!location) {
                           <guid isPermaLink='false'>tag:youtube.com,2008:video:5EFb77oGRmo</guid>
                            "metadata":{"result_type":"recent"},
                            alert(location + " not found");
                           <pubDate>Mon, 11 Jun 2007 20:39:55 +0000</pubDate>
                            "to_user_id":null,
                            } else {
                           <atom:updated>2010-08-22T06:05:23.000Z</atom:updated>
                            "text":"RT @oracleopenworld:
                            map.setCenter(location, 13); Larry Ellison to Join EVP Thomas Kurian in
                           <category domain='http://schemas.google.com/g/2005#kind'>
                                         JavaOne Keynote to Discuss Future of Java http://bit.ly/ausg7I
                                     http://gdata.youtube.com/schemas/2007#video
                            #javaone10",
                            marker.openInfoWindow(address);
                           </category>
                            "id":21948746363,
                           <title>JavaOne: Open Possibilities</title>
                            "from_user_id":23963,
                            map.addOverlay(marker);
                           <link>http://www.youtube.com/watch?v=5EFb77oGRmo&amp;feature=youtube_gdata</link>
                            "geo":null,
                           <author>SunMicrosystemsInc</author>
                            "iso_language_code":"en",

                                       Much Code to Write during project construction
                     }     <yt:accessControl action='comment' permission='moderated'/>
                   }        "source":"&lt;a href=&quot;http://www.tweetdeck.com&quot;
                           <yt:accessControl action='videoRespond' permission='moderated'/>
                                           rel=&quot;nofollow&quot;&gt;TweetDeck&lt;/a&gt;"
          );               <yt:accessControl action='rate' permission='allowed'/>
                   }
                           <yt:accessControl action='embed' permission='allowed'/>

                                                    and maintenance
         ],
          //add the map control.
                           <yt:accessControl action='syndicate' permission='allowed'/>
                   "max_id":21948746363,
           var mapControlPosition = new GControlPosition(G_ANCHOR_BOTTOM_RIGHT, new
                           <yt:accessControl action='commentVote' permission='allowed'/>
GSize(10, 10)); "since_id":0,
                           <gd:comments>
                   "refresh_url":"?since_id=21948746363&q=javaone",
           map.addControl(new GLargeMapControl(), mapControlPosition);
                                     <gd:feedLink href='http://gdata.youtube.com/feeds/api/videos/5EFb77oGRmo/comments?v=2'
                   "next_page":"?page=2&max_id=21948746363&rpp=1&q=javaone",
                                     countHint='2'/>
                   "results_per_page":1,"page":1,
}                          </gd:comments>
</script>          "completed_in":0.016396,"query":"javaone"
         }                 <media:group>
                                     <media:title type='plain'>JavaOne: Open Possibilities</media:title>
                                     <yt:duration seconds='114'/>
                                     <yt:uploaded>2007-06-11T20:39:55.000Z</yt:uploaded>
                                     <yt:videoid>5EFb77oGRmo</yt:videoid>
                                     ...
                           </media:group>
                           </item>
                           ...
                  </channel>
                  </rss>
AGENDA
1   What is mashability?

    How does mashability influence the success of a venture for
2   both the public and enterprise.


3   Enterprise mashups.


4   Mashups development current challenges.


5   Mashup application idea.


6   What is Mashups4JSF?


7   Building the mashup application using Mashups4JSF.


8   Conclusion
What is Mashups4JSF

  Simplify                               JSF
                        Feed Import   Components
               API        Export
              Wrapper




                      Provides feed reader set of JSF
                                 Provides a
 One of the possible setcomponents for
          Provides a     of APIs components that
ways for simplifying the low different the JSF
            that wraps reading      allows
           level information feeds and the construct
mashup development   types of ofdeveloper to
 in the JavaMashup@Feed annotation for
              World services. rich and customized
                     exporting applicationinside the
                                  mashups
                     data as mashup feeds.page.
                                       web
What is Mashups4JSF?
AGENDA
1   What is mashability?

    How does mashability influence the success of a venture for
2   both the public and enterprise.


3   Enterprise mashups.


4   Mashups development current challenges.


5   Mashup application idea.


6   What is Mashups4JSF?


7   Building the mashup application using Mashups4JSF.


8   Conclusion
Building the mashup application using
            Mashups4JSF.




<m:map />
                        <mashup:
                   twitterSearchList />
                                              <mashup:
                                          youTubeVideoList />

    <mashup:
 yahooWeather />
Demo

●   This demo runs on GlassFish, Tomcat.
●   Also runs on Google App Engine:
    http://bit.ly/mashups4jsfGAE
AGENDA
1   What is mashability?

    How does mashability influence the success of a venture for
2   both the public and enterprise.


3   Enterprise mashups.


4   Mashups development current challenges.


5   Mashup application idea.


6   What is Mashups4JSF?


7   Building the mashup application using Mashups4JSF.


8   Conclusion
Conclusion
Mashups are important.

Having a mashup meta-model gives developers a lot of
  power.

Key ingredients for a mashup meta-model:

          Mashup integration happens on the server.

          There is a declarative syntax for describing the mashup:

                 This syntax includes a suitably powerful component abstraction
                    model.

          There is a powerful programming language that works
            closely with the declarative syntax.
          Hide the lower level APIs offered by the mashup service
            providers.
References

●   Project Home:
      http://code.google.com/p/mashups4jsf/
●   Project Demo:
      http://www.mashups4jsf.com
●   Mashups4JSF article on developerWorks (on
    WebSphere Application Server and Tomcat):
      http://bit.ly/9YLOhT

Weitere ähnliche Inhalte

Ähnlich wie [JavaOne 2010] Abstract Mashups for Enterprise Java

Alessandro Galetto - Mobile Web
Alessandro Galetto - Mobile WebAlessandro Galetto - Mobile Web
Alessandro Galetto - Mobile WebSocial Media Lab
 
Mob x con - keynote 20120402 - reduced
Mob x con - keynote 20120402 - reducedMob x con - keynote 20120402 - reduced
Mob x con - keynote 20120402 - reducedRod Farmer
 
Computer Devices Classification
Computer Devices ClassificationComputer Devices Classification
Computer Devices ClassificationRey Belen
 
Mobile User Experience Dealing With Big Numbers
Mobile User Experience Dealing With Big NumbersMobile User Experience Dealing With Big Numbers
Mobile User Experience Dealing With Big NumbersAlessandro Galetto
 
Alison Fleming Michael Upton Collaborating for Success
Alison Fleming Michael Upton Collaborating for SuccessAlison Fleming Michael Upton Collaborating for Success
Alison Fleming Michael Upton Collaborating for SuccessFuture Perfect 2012
 
Webinar - Q2 2010 - Leveraging MS SharePoint for Your Online Marketing Initia...
Webinar - Q2 2010 - Leveraging MS SharePoint for Your Online Marketing Initia...Webinar - Q2 2010 - Leveraging MS SharePoint for Your Online Marketing Initia...
Webinar - Q2 2010 - Leveraging MS SharePoint for Your Online Marketing Initia...daysoftware
 
Trends & Momentum in Events - 2013
Trends & Momentum in Events - 2013Trends & Momentum in Events - 2013
Trends & Momentum in Events - 2013Randle Stonier
 
Digital Media Planning: some evidence based guidelines by MillwardBrown
Digital Media Planning: some evidence based guidelines by MillwardBrownDigital Media Planning: some evidence based guidelines by MillwardBrown
Digital Media Planning: some evidence based guidelines by MillwardBrownEngel Fonseca
 

Ähnlich wie [JavaOne 2010] Abstract Mashups for Enterprise Java (9)

Alessandro Galetto - Mobile Web
Alessandro Galetto - Mobile WebAlessandro Galetto - Mobile Web
Alessandro Galetto - Mobile Web
 
Mob x con - keynote 20120402 - reduced
Mob x con - keynote 20120402 - reducedMob x con - keynote 20120402 - reduced
Mob x con - keynote 20120402 - reduced
 
Computer Devices Classification
Computer Devices ClassificationComputer Devices Classification
Computer Devices Classification
 
Mobile User Experience Dealing With Big Numbers
Mobile User Experience Dealing With Big NumbersMobile User Experience Dealing With Big Numbers
Mobile User Experience Dealing With Big Numbers
 
Super user
Super userSuper user
Super user
 
Alison Fleming Michael Upton Collaborating for Success
Alison Fleming Michael Upton Collaborating for SuccessAlison Fleming Michael Upton Collaborating for Success
Alison Fleming Michael Upton Collaborating for Success
 
Webinar - Q2 2010 - Leveraging MS SharePoint for Your Online Marketing Initia...
Webinar - Q2 2010 - Leveraging MS SharePoint for Your Online Marketing Initia...Webinar - Q2 2010 - Leveraging MS SharePoint for Your Online Marketing Initia...
Webinar - Q2 2010 - Leveraging MS SharePoint for Your Online Marketing Initia...
 
Trends & Momentum in Events - 2013
Trends & Momentum in Events - 2013Trends & Momentum in Events - 2013
Trends & Momentum in Events - 2013
 
Digital Media Planning: some evidence based guidelines by MillwardBrown
Digital Media Planning: some evidence based guidelines by MillwardBrownDigital Media Planning: some evidence based guidelines by MillwardBrown
Digital Media Planning: some evidence based guidelines by MillwardBrown
 

Mehr von Hazem Saleh

[FullStack NYC 2019] Effective Unit Tests for JavaScript
[FullStack NYC 2019] Effective Unit Tests for JavaScript[FullStack NYC 2019] Effective Unit Tests for JavaScript
[FullStack NYC 2019] Effective Unit Tests for JavaScriptHazem Saleh
 
Mockito 2.x Migration - Droidcon UK 2018
Mockito 2.x Migration - Droidcon UK 2018Mockito 2.x Migration - Droidcon UK 2018
Mockito 2.x Migration - Droidcon UK 2018Hazem Saleh
 
JavaScript Unit Testing with an Angular 5.x Use Case 101
JavaScript Unit Testing with an Angular 5.x Use Case 101JavaScript Unit Testing with an Angular 5.x Use Case 101
JavaScript Unit Testing with an Angular 5.x Use Case 101Hazem Saleh
 
[AnDevCon 2016] Mutation Testing for Android
[AnDevCon 2016] Mutation Testing for Android[AnDevCon 2016] Mutation Testing for Android
[AnDevCon 2016] Mutation Testing for AndroidHazem Saleh
 
[ApacheCon 2016] Advanced Apache Cordova
[ApacheCon 2016] Advanced Apache Cordova[ApacheCon 2016] Advanced Apache Cordova
[ApacheCon 2016] Advanced Apache CordovaHazem Saleh
 
[Devoxx Morocco 2015] Apache Cordova In Action
[Devoxx Morocco 2015] Apache Cordova In Action[Devoxx Morocco 2015] Apache Cordova In Action
[Devoxx Morocco 2015] Apache Cordova In ActionHazem Saleh
 
Apache Cordova In Action
Apache Cordova In ActionApache Cordova In Action
Apache Cordova In ActionHazem Saleh
 
[JMaghreb 2014] Developing JavaScript Mobile Apps Using Apache Cordova
[JMaghreb 2014] Developing JavaScript Mobile Apps Using Apache Cordova[JMaghreb 2014] Developing JavaScript Mobile Apps Using Apache Cordova
[JMaghreb 2014] Developing JavaScript Mobile Apps Using Apache CordovaHazem Saleh
 
Developing Native Mobile Apps Using JavaScript, ApacheCon NA 2014
Developing Native Mobile Apps Using JavaScript, ApacheCon NA 2014Developing Native Mobile Apps Using JavaScript, ApacheCon NA 2014
Developing Native Mobile Apps Using JavaScript, ApacheCon NA 2014Hazem Saleh
 
Dojo >= 1.7 Kickstart
Dojo >= 1.7  KickstartDojo >= 1.7  Kickstart
Dojo >= 1.7 KickstartHazem Saleh
 
Efficient JavaScript Unit Testing, JavaOne China 2013
Efficient JavaScript Unit Testing, JavaOne China 2013Efficient JavaScript Unit Testing, JavaOne China 2013
Efficient JavaScript Unit Testing, JavaOne China 2013Hazem Saleh
 
JSF Mashups in Action
JSF Mashups in ActionJSF Mashups in Action
JSF Mashups in ActionHazem Saleh
 
Efficient JavaScript Unit Testing, March 2013
Efficient JavaScript Unit Testing, March 2013Efficient JavaScript Unit Testing, March 2013
Efficient JavaScript Unit Testing, March 2013Hazem Saleh
 
JavaScript tools
JavaScript toolsJavaScript tools
JavaScript toolsHazem Saleh
 
Efficient JavaScript Unit Testing, May 2012
Efficient JavaScript Unit Testing, May 2012Efficient JavaScript Unit Testing, May 2012
Efficient JavaScript Unit Testing, May 2012Hazem Saleh
 

Mehr von Hazem Saleh (15)

[FullStack NYC 2019] Effective Unit Tests for JavaScript
[FullStack NYC 2019] Effective Unit Tests for JavaScript[FullStack NYC 2019] Effective Unit Tests for JavaScript
[FullStack NYC 2019] Effective Unit Tests for JavaScript
 
Mockito 2.x Migration - Droidcon UK 2018
Mockito 2.x Migration - Droidcon UK 2018Mockito 2.x Migration - Droidcon UK 2018
Mockito 2.x Migration - Droidcon UK 2018
 
JavaScript Unit Testing with an Angular 5.x Use Case 101
JavaScript Unit Testing with an Angular 5.x Use Case 101JavaScript Unit Testing with an Angular 5.x Use Case 101
JavaScript Unit Testing with an Angular 5.x Use Case 101
 
[AnDevCon 2016] Mutation Testing for Android
[AnDevCon 2016] Mutation Testing for Android[AnDevCon 2016] Mutation Testing for Android
[AnDevCon 2016] Mutation Testing for Android
 
[ApacheCon 2016] Advanced Apache Cordova
[ApacheCon 2016] Advanced Apache Cordova[ApacheCon 2016] Advanced Apache Cordova
[ApacheCon 2016] Advanced Apache Cordova
 
[Devoxx Morocco 2015] Apache Cordova In Action
[Devoxx Morocco 2015] Apache Cordova In Action[Devoxx Morocco 2015] Apache Cordova In Action
[Devoxx Morocco 2015] Apache Cordova In Action
 
Apache Cordova In Action
Apache Cordova In ActionApache Cordova In Action
Apache Cordova In Action
 
[JMaghreb 2014] Developing JavaScript Mobile Apps Using Apache Cordova
[JMaghreb 2014] Developing JavaScript Mobile Apps Using Apache Cordova[JMaghreb 2014] Developing JavaScript Mobile Apps Using Apache Cordova
[JMaghreb 2014] Developing JavaScript Mobile Apps Using Apache Cordova
 
Developing Native Mobile Apps Using JavaScript, ApacheCon NA 2014
Developing Native Mobile Apps Using JavaScript, ApacheCon NA 2014Developing Native Mobile Apps Using JavaScript, ApacheCon NA 2014
Developing Native Mobile Apps Using JavaScript, ApacheCon NA 2014
 
Dojo >= 1.7 Kickstart
Dojo >= 1.7  KickstartDojo >= 1.7  Kickstart
Dojo >= 1.7 Kickstart
 
Efficient JavaScript Unit Testing, JavaOne China 2013
Efficient JavaScript Unit Testing, JavaOne China 2013Efficient JavaScript Unit Testing, JavaOne China 2013
Efficient JavaScript Unit Testing, JavaOne China 2013
 
JSF Mashups in Action
JSF Mashups in ActionJSF Mashups in Action
JSF Mashups in Action
 
Efficient JavaScript Unit Testing, March 2013
Efficient JavaScript Unit Testing, March 2013Efficient JavaScript Unit Testing, March 2013
Efficient JavaScript Unit Testing, March 2013
 
JavaScript tools
JavaScript toolsJavaScript tools
JavaScript tools
 
Efficient JavaScript Unit Testing, May 2012
Efficient JavaScript Unit Testing, May 2012Efficient JavaScript Unit Testing, May 2012
Efficient JavaScript Unit Testing, May 2012
 

Kürzlich hochgeladen

My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 

Kürzlich hochgeladen (20)

My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 

[JavaOne 2010] Abstract Mashups for Enterprise Java

  • 1. Abstract Mashups for Enterprise Java Ed Burns Hazem Saleh
  • 2. AGENDA 1 What is mashability? How does mashability influence the success of a venture for 2 both the public and enterprise. 3 Enterprise mashups. 4 Mashups development current challenges. 5 Mashup application idea. 6 What is Mashups4JSF? 7 Building the mashup application using Mashups4JSF. 8 Conclusion
  • 3. AGENDA 1 What is mashability? How does mashability influence the success of a venture for 2 both the public and enterprise. 3 Enterprise mashups. 4 Mashups development current challenges. 5 Mashup application idea. 6 What is Mashups4JSF? 7 Building the mashup application using Mashups4JSF. 8 Conclusion
  • 4. Mashability adjective The property of a software system to be re-used in contexts not imagined at the time the system was first deployed Mashability is a matter of degree Not just embedding It's possible for software to only have superficial mashability
  • 5. Mashability Ease of performing the mashup Twitter, yammer, etc. Browser AS/400 extensions Flash/Applet Sy Sc In Pr D Sy to ste re A str pl ov ec en ste m pr m en O um ug id or co m a s e v de sc P en in e a at ur d e ha e si ra io pi tw n ag si bi nt gn ng ith e gn lit ed m ed y as t ha o Kind of mashup technique bi lit y
  • 6. Mashability Ease of performing the mashup Twitter, yammer, etc. Browser AS/400 extensions Flash/Applet Sy Sc In Pr D Sy to ste re A str pl ov ec en ste m pr m en O um ug id or co m a s e v de sc P en in e a at ur d e ha e si ra io pi tw n ag si bi nt gn ng ith e gn lit ed m ed y as t ha o Kind of mashup technique bi lit y
  • 7. AGENDA 1 What is mashability? How does mashability influence the success of a venture for 2 both the public and enterprise. 3 Enterprise mashups. 4 Mashups development current challenges. 5 Mashup application idea. 6 What is Mashups4JSF? 7 Building the mashup application using Mashups4JSF. 8 Conclusion
  • 8. How does mashability influence the success of a software venture? General Public Enterprise Ø Create alternate Ø Extend the ROI on IT revenue streams Ø Spreads skills more Ø Co-optition broadly throughout Ø It fits reality: the enterprise successful Ø Encourages re- ventures derive usable software success from development different areas over time
  • 9. AGENDA 1 What is mashability? How does mashability influence the success of a venture for 2 both the public and enterprise. 3 Enterprise mashups. 4 Mashups development current challenges. 5 Mashup application idea. 6 What is Mashups4JSF? 7 Building the mashup application using Mashups4JSF. 8 Conclusion
  • 10. Enterprise Mashups ● Example: twitter ● Twitter designed from day one to be mashable ● Explosive growth fueled by ease of mashability ● But how many of the mashups are focused on use within an enterprise?
  • 11. Enterprise Mashups ● Example: yammer ● nano-pitch: twitter for Enterprise ● Featured in recent Economist magazine technology quarterly ● https://www.yammer.com/about/applications
  • 12. AGENDA 1 What is mashability? How does mashability influence the success of a venture for 2 both the public and enterprise. 3 Enterprise mashups. 4 Mashups development current challenges. 5 Mashup application idea. 6 What is Mashups4JSF? 7 Building the mashup application using Mashups4JSF. 8 Conclusion
  • 13. Mashups Development current challenges There is no unified model agreed by all the mashup service providers for mashup service creation and consumption. Different representation of mashup services SOAP REST Different protocols of mashup services ATOM RSS JSON Others
  • 14. Mashups Development current challenges Intensive JavaScript. Atom Feed Parsing. RSS Feed Parsing. JSON Parsing. Other formats Parsing.
  • 15. Mashups Development current challenges Study low level APIs of the Mashup service provider. Write a great deal of integration code.
  • 16. AGENDA 1 What is mashability? How does mashability influence the success of a venture for 2 both the public and enterprise. 3 Enterprise mashups. 4 Mashups development current challenges. 5 Mashup application idea. 6 What is Mashups4JSF? 7 Building the mashup application using Mashups4JSF. 8 Conclusion
  • 18. Mashup Application Idea Building the application using The Mashup Service APIs
  • 19.
  • 20. Step 1: Go to the youTube API documentation site for getting the REST search URL and search parameters: http://code.google.com/apis/youtube/2.0/developers_guide_protocol_api_query_p
  • 21. Step 1: Go to the youTube API documentation site for getting the REST search URL Open a URL Connection to the youTube Search URL: Step 2: and search parameters: http://gdata.youtube.com/feeds/api/videos?alt=rss&v=2&max-results=5&q http://code.google.com/apis/youtube/2.0/developers_guide_protocol_api_query_p =#{param} Where 1. alt indicates the feed format to be returned. 2. v indicates the API version to be used. 3. max-results indicates the maximum number of returned results. 4. q indicates the query to search by.
  • 22. Step 1: Go to the youTube API documentation site for getting the REST search URL Open a URL Connection to the youTube Search URL: Step 2: and search parameters: http://gdata.youtube.com/feeds/api/videos?alt=rss&v=2&max-results=5&q The rss feed for a single video item http://code.google.com/apis/youtube/2.0/developers_guide_protocol_api_query_p Step 3: =#{param} <?xml version='1.0' encoding='UTF-8'?> <rss ...> <channel> ... <item> <guid isPermaLink='false'>tag:youtube.com,2008:video:5EFb77oGRmo</guid> <pubDate>Mon, 11 Jun 2007 20:39:55 +0000</pubDate> <atom:updated>2010-08-22T06:05:23.000Z</atom:updated> <category domain='http://schemas.google.com/g/2005#kind'> http://gdata.youtube.com/schemas/2007#video </category> <title>JavaOne: Open Possibilities</title> <link>http://www.youtube.com/watch?v=5EFb77oGRmo&amp;feature=youtube_gdata</link> <author>SunMicrosystemsInc</author> <yt:accessControl action='comment' permission='moderated'/> <yt:accessControl action='videoRespond' permission='moderated'/> <yt:accessControl action='rate' permission='allowed'/> <yt:accessControl action='embed' permission='allowed'/> <yt:accessControl action='syndicate' permission='allowed'/> <yt:accessControl action='commentVote' permission='allowed'/> <gd:comments> <gd:feedLink href='http://gdata.youtube.com/feeds/api/videos/5EFb77oGRmo/comments?v=2' countHint='2'/> </gd:comments> <media:group> <media:title type='plain'>JavaOne: Open Possibilities</media:title> <yt:duration seconds='114'/> <yt:uploaded>2007-06-11T20:39:55.000Z</yt:uploaded> <yt:videoid>5EFb77oGRmo</yt:videoid> ... </media:group> ... </item> ... </channel> </rss>
  • 23.
  • 24. Go to the Twitter API documentation site for getting the REST search URL Step 1: and search parameters: http://apiwiki.twitter.com/Twitter-API-Documentation
  • 25. Go to the Twitter API documentation site for getting the REST search URL Step 1: and search parameters: Open a URL Connection to the twitter Search URL: Step 2: http://apiwiki.twitter.com/Twitter-API-Documentation http://search.twitter.com/search.json?q=#{param}&rpp=10 Where: 1. q indicates the query to search by. 2. rpp indicates the number of tweets per page.
  • 26. Go to the Twitter API documentation site for getting the REST search URL Step 1: and search parameters: Open a URL Connection to the twitter Search URL: Step 2: http://apiwiki.twitter.com/Twitter-API-Documentation http://search.twitter.com/search.json?q=#{param}&rpp=10 The JSON feed for a single tweet Step 3: {"results": [ { "profile_image_url":"http://a1.twimg.com/profile_images/598447517/ twitterProfilePhoto_normal.jpg", "created_at":"Mon, 23 Aug 2010 22:33:30 +0000", "from_user":"jamesfarrar", "metadata":{"result_type":"recent"}, "to_user_id":null, "text":"RT @oracleopenworld: Larry Ellison to Join EVP Thomas Kurian in JavaOne Keynote to Discuss Future of Java http://bit.ly/ausg7I #javaone10", "id":21948746363, "from_user_id":23963, "geo":null, "iso_language_code":"en", "source":"&lt;a href=&quot;http://www.tweetdeck.com&quot; rel=&quot;nofollow&quot;&gt;TweetDeck&lt;/a&gt;" } ], "max_id":21948746363, "since_id":0, "refresh_url":"?since_id=21948746363&q=javaone", "next_page":"?page=2&max_id=21948746363&rpp=1&q=javaone", "results_per_page":1,"page":1, "completed_in":0.016396,"query":"javaone" }
  • 27.
  • 28. Step 1: Go to the Google Maps API documentation site for creating the map: http://code.google.com/apis/maps/documentation/javascript
  • 29. Step 1: Go to the Google Maps API documentation site for creating the map: Step 2: http://code.google.com/apis/maps/documentation/javascript Write a JS code <script type="text/javascript"> // Google Maps code ... if (GBrowserIsCompatible()) { var address = "NY, USA"; var map = new GMap2(document.getElementById("map")); map.setCenter(new GLatLng(24, 15), 13); var geocoder = new GClientGeocoder(); geocoder.getLatLng(address, function(location) { if (!location) { alert(location + " not found"); } else { map.setCenter(location, 13); marker.openInfoWindow(address); map.addOverlay(marker); } } ● ); //add the map control. var mapControlPosition = new GControlPosition(G_ANCHOR_BOTTOM_RIGHT, new GSize(10, 10)); map.addControl(new GLargeMapControl(), mapControlPosition); } </script>
  • 30. SO
  • 31. Many Web Sites To Visit Much Documentation To Read <script type="text/javascript"> // Google Maps code ... if (GBrowserIsCompatible()) { {"results": = "NY, USA"; var address [var map { = new GMap2(document.getElementById("map")); Many Configurations to Do map.setCenter(new GLatLng(24, 15), 13); var geocoder...> "profile_image_url":"http://a1.twimg.com/profile_images/598447517/ <rss = new GClientGeocoder(); geocoder.getLatLng(address, twitterProfilePhoto_normal.jpg", <channel> "created_at":"Mon, 23 Aug 2010 22:33:30 +0000", function(location) { <item> "from_user":"jamesfarrar", if (!location) { <guid isPermaLink='false'>tag:youtube.com,2008:video:5EFb77oGRmo</guid> "metadata":{"result_type":"recent"}, alert(location + " not found"); <pubDate>Mon, 11 Jun 2007 20:39:55 +0000</pubDate> "to_user_id":null, } else { <atom:updated>2010-08-22T06:05:23.000Z</atom:updated> "text":"RT @oracleopenworld: map.setCenter(location, 13); Larry Ellison to Join EVP Thomas Kurian in <category domain='http://schemas.google.com/g/2005#kind'> JavaOne Keynote to Discuss Future of Java http://bit.ly/ausg7I http://gdata.youtube.com/schemas/2007#video #javaone10", marker.openInfoWindow(address); </category> "id":21948746363, <title>JavaOne: Open Possibilities</title> "from_user_id":23963, map.addOverlay(marker); <link>http://www.youtube.com/watch?v=5EFb77oGRmo&amp;feature=youtube_gdata</link> "geo":null, <author>SunMicrosystemsInc</author> "iso_language_code":"en", Much Code to Write during project construction } <yt:accessControl action='comment' permission='moderated'/> } "source":"&lt;a href=&quot;http://www.tweetdeck.com&quot; <yt:accessControl action='videoRespond' permission='moderated'/> rel=&quot;nofollow&quot;&gt;TweetDeck&lt;/a&gt;" ); <yt:accessControl action='rate' permission='allowed'/> } <yt:accessControl action='embed' permission='allowed'/> and maintenance ], //add the map control. <yt:accessControl action='syndicate' permission='allowed'/> "max_id":21948746363, var mapControlPosition = new GControlPosition(G_ANCHOR_BOTTOM_RIGHT, new <yt:accessControl action='commentVote' permission='allowed'/> GSize(10, 10)); "since_id":0, <gd:comments> "refresh_url":"?since_id=21948746363&q=javaone", map.addControl(new GLargeMapControl(), mapControlPosition); <gd:feedLink href='http://gdata.youtube.com/feeds/api/videos/5EFb77oGRmo/comments?v=2' "next_page":"?page=2&max_id=21948746363&rpp=1&q=javaone", countHint='2'/> "results_per_page":1,"page":1, } </gd:comments> </script> "completed_in":0.016396,"query":"javaone" } <media:group> <media:title type='plain'>JavaOne: Open Possibilities</media:title> <yt:duration seconds='114'/> <yt:uploaded>2007-06-11T20:39:55.000Z</yt:uploaded> <yt:videoid>5EFb77oGRmo</yt:videoid> ... </media:group> </item> ... </channel> </rss>
  • 32.
  • 33. AGENDA 1 What is mashability? How does mashability influence the success of a venture for 2 both the public and enterprise. 3 Enterprise mashups. 4 Mashups development current challenges. 5 Mashup application idea. 6 What is Mashups4JSF? 7 Building the mashup application using Mashups4JSF. 8 Conclusion
  • 34. What is Mashups4JSF Simplify JSF Feed Import Components API Export Wrapper Provides feed reader set of JSF Provides a One of the possible setcomponents for Provides a of APIs components that ways for simplifying the low different the JSF that wraps reading allows level information feeds and the construct mashup development types of ofdeveloper to in the JavaMashup@Feed annotation for World services. rich and customized exporting applicationinside the mashups data as mashup feeds.page. web
  • 36. AGENDA 1 What is mashability? How does mashability influence the success of a venture for 2 both the public and enterprise. 3 Enterprise mashups. 4 Mashups development current challenges. 5 Mashup application idea. 6 What is Mashups4JSF? 7 Building the mashup application using Mashups4JSF. 8 Conclusion
  • 37. Building the mashup application using Mashups4JSF. <m:map /> <mashup: twitterSearchList /> <mashup: youTubeVideoList /> <mashup: yahooWeather />
  • 38. Demo ● This demo runs on GlassFish, Tomcat. ● Also runs on Google App Engine: http://bit.ly/mashups4jsfGAE
  • 39. AGENDA 1 What is mashability? How does mashability influence the success of a venture for 2 both the public and enterprise. 3 Enterprise mashups. 4 Mashups development current challenges. 5 Mashup application idea. 6 What is Mashups4JSF? 7 Building the mashup application using Mashups4JSF. 8 Conclusion
  • 40. Conclusion Mashups are important. Having a mashup meta-model gives developers a lot of power. Key ingredients for a mashup meta-model: Mashup integration happens on the server. There is a declarative syntax for describing the mashup: This syntax includes a suitably powerful component abstraction model. There is a powerful programming language that works closely with the declarative syntax. Hide the lower level APIs offered by the mashup service providers.
  • 41. References ● Project Home: http://code.google.com/p/mashups4jsf/ ● Project Demo: http://www.mashups4jsf.com ● Mashups4JSF article on developerWorks (on WebSphere Application Server and Tomcat): http://bit.ly/9YLOhT