SlideShare a Scribd company logo
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

More Related Content

Similar to [JavaOne 2010] Abstract Mashups for Enterprise Java

Alessandro Galetto - Mobile Web
Alessandro Galetto - Mobile WebAlessandro Galetto - Mobile Web
Alessandro Galetto - Mobile Web
Social 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 Classification
Rey 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 Numbers
Alessandro Galetto
 
Super user
Super userSuper user
Super user
Steve Kiarie
 
Mix mode GIS for Transmission Company
Mix mode GIS for Transmission CompanyMix mode GIS for Transmission Company
Mix mode GIS for Transmission CompanySougata Mitra
 
Social Media Club and Barcamp Orlando Presentation - 140 CHARACTERS OR LESS: ...
Social Media Club and Barcamp Orlando Presentation - 140 CHARACTERS OR LESS: ...Social Media Club and Barcamp Orlando Presentation - 140 CHARACTERS OR LESS: ...
Social Media Club and Barcamp Orlando Presentation - 140 CHARACTERS OR LESS: ...
Murray Izenwasser
 
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
Future 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 - 2013
Randle 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 MillwardBrown
Engel Fonseca
 

Similar to [JavaOne 2010] Abstract Mashups for Enterprise Java (11)

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
 
Mix mode GIS for Transmission Company
Mix mode GIS for Transmission CompanyMix mode GIS for Transmission Company
Mix mode GIS for Transmission Company
 
Social Media Club and Barcamp Orlando Presentation - 140 CHARACTERS OR LESS: ...
Social Media Club and Barcamp Orlando Presentation - 140 CHARACTERS OR LESS: ...Social Media Club and Barcamp Orlando Presentation - 140 CHARACTERS OR LESS: ...
Social Media Club and Barcamp Orlando Presentation - 140 CHARACTERS OR LESS: ...
 
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
 

More from 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 JavaScript
Hazem 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 2018
Hazem 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 101
Hazem Saleh
 
[AnDevCon 2016] Mutation Testing for Android
[AnDevCon 2016] Mutation Testing for Android[AnDevCon 2016] Mutation Testing for Android
[AnDevCon 2016] Mutation Testing for Android
Hazem Saleh
 
[ApacheCon 2016] Advanced Apache Cordova
[ApacheCon 2016] Advanced Apache Cordova[ApacheCon 2016] Advanced Apache Cordova
[ApacheCon 2016] Advanced Apache Cordova
Hazem 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 Action
Hazem Saleh
 
Apache Cordova In Action
Apache Cordova In ActionApache Cordova In Action
Apache Cordova In Action
Hazem 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 Cordova
Hazem 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 2014
Hazem Saleh
 
Dojo >= 1.7 Kickstart
Dojo >= 1.7  KickstartDojo >= 1.7  Kickstart
Dojo >= 1.7 Kickstart
Hazem 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 2013
Hazem Saleh
 
JSF Mashups in Action
JSF Mashups in ActionJSF Mashups in Action
JSF Mashups in Action
Hazem Saleh
 
Efficient JavaScript Unit Testing, March 2013
Efficient JavaScript Unit Testing, March 2013Efficient JavaScript Unit Testing, March 2013
Efficient JavaScript Unit Testing, March 2013
Hazem Saleh
 
JavaScript tools
JavaScript toolsJavaScript tools
JavaScript tools
Hazem Saleh
 
Efficient JavaScript Unit Testing, May 2012
Efficient JavaScript Unit Testing, May 2012Efficient JavaScript Unit Testing, May 2012
Efficient JavaScript Unit Testing, May 2012
Hazem Saleh
 

More from 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
 

Recently uploaded

Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
nkrafacyberclub
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 

Recently uploaded (20)

Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 

[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