Enterprise Google Gadgets Luis Sala Senior Director of Solutions Engineering www.alfresco.com
Introductions <ul><li>Luis Sala, Senior Director of Solutions Engineering </li></ul><ul><li>Former Chief Solutions Archite...
Agenda <ul><li>About Google Gadgets </li></ul><ul><li>Developing Gadgets </li></ul><ul><li>Web Script Overview </li></ul><...
What are Google Gadgets? <ul><li>Embeddable UI components that offer varying functionality. </li></ul><ul><li>Lightweight....
What are the Benefits? <ul><li>Easy to build. </li></ul><ul><li>Many Sites </li></ul><ul><ul><li>Including Google Apps for...
Google for the Enterprise <ul><li>Google Search Appliance </li></ul><ul><ul><li>Includes Google OneBox </li></ul></ul><ul>...
Google Apps
Developing Gadgets <ul><li>Gadgets require a Module Descriptor </li></ul><ul><li>Certain Google JavaScript libraries </li>...
Hello World Gadget <ul><li><?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?> </li></ul><ul><li><Module> </li></ul...
IFRAME Gadget <?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?> <Module> <ModulePrefs title=&quot;hello world exa...
Storing User Preferences <?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?> <Module> <ModulePrefs title=&quot;hell...
Developer Tools Developer Gadget: Google Gadget Editor:
Open for Business
What are Web Scripts? Web Scripting <ul><li>Agile Script-Driven MVC </li></ul><ul><li>Multiple uses </li></ul><ul><ul><li>...
Components of a Web Script <ul><li>XML Descriptor </li></ul><ul><ul><li>URI Templates </li></ul></ul><ul><ul><li>Authentic...
Two types of Web Scripts… <ul><li>Data Web Script </li></ul><ul><ul><li>RESTstyle / RESTful URL </li></ul></ul><ul><ul><li...
Web Scripts as Gadgets <ul><li>Virtually  any  Web Script can be a gadget by using its URL. </li></ul><ul><li>http:// HOST...
Alfresco Gadgets <ul><li>Search </li></ul><ul><li>Space Browser </li></ul><ul><li>Tasks </li></ul>
Alfresco Gadgets
Space Browser Gadget <ul><li>User Preferences </li></ul><ul><li>Upload </li></ul><ul><li>Download </li></ul><ul><li>Space ...
Folder Gadget Definition <?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?> <Module> <ModulePrefs title=&quot;Alfr...
Hello World Gadget - Descriptor <ul><li>hello.get.desc.xml </li></ul><ul><li><webscript> <shortname>Hello World Google Gad...
Hello World Gadget - JavaScript <ul><li>hello.get.js </li></ul><ul><li>// Get &quot;name&quot; parameter as supplied by iG...
Hello World Gadget - Freemarker <ul><li>hello.get.html.ftl </li></ul><ul><li><html> </li></ul><ul><li><head> </li></ul><ul...
Hello World Gadget – Module <ul><li>hello.get.xml.ftl </li></ul><ul><li><?xml version=&quot;1.0&quot; encoding=&quot;UTF-8...
Google Search Appliance Integration <ul><li>Simple and fast integration with Google OneBox </li></ul><ul><ul><li>http://ww...
Google OneBox Integration <ul><li>Customizable Formatting. </li></ul>
Google OneBox Web Script <?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?> <OneBoxResults> <resultCode>${resultCo...
<ul><li>DEMO </li></ul>
Q&A and Resources 03.04.08 <ul><li>Any Questions? </li></ul><ul><li>Resources: </li></ul><ul><ul><li>wiki .alfresco.com/wi...
Upcoming Presentations <ul><li>Upcoming “Built in 60” Presentations: </li></ul><ul><ul><li>Building a Simple Wiki </li></u...
End
Shapes & Colors Normal Text <ul><li>Bullet </li></ul><ul><ul><li>Sub-Bullet </li></ul></ul>Normal Text Normal Text
Upcoming SlideShare
Loading in …5
×

Enterprise Google Gadgets Integrated with Alfresco - Open Source ECM

11,999 views
11,756 views

Published on

What are Google Gadgets? What are their benefits to the Enterprise?
How do you develop Google Gadgets? What are WebScripts, and how do they help you integrate Google Gadgets with your Alfresco content repository? Open Source ECM, Java based. www.alfresco.com/about/ondemand <-- View recorded webinar here.

These questions and more are answered in this webinar.

Published in: Technology, News & Politics
0 Comments
10 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
11,999
On SlideShare
0
From Embeds
0
Number of Embeds
101
Actions
Shares
0
Downloads
493
Comments
0
Likes
10
Embeds 0
No embeds

No notes for slide
  • Enterprise Google Gadgets Integrated with Alfresco - Open Source ECM

    1. 1. Enterprise Google Gadgets Luis Sala Senior Director of Solutions Engineering www.alfresco.com
    2. 2. Introductions <ul><li>Luis Sala, Senior Director of Solutions Engineering </li></ul><ul><li>Former Chief Solutions Architect at Epicentric </li></ul><ul><li>and Principal SE at Vignette </li></ul>
    3. 3. Agenda <ul><li>About Google Gadgets </li></ul><ul><li>Developing Gadgets </li></ul><ul><li>Web Script Overview </li></ul><ul><li>Alfresco Gadgets for the Enterprise </li></ul><ul><li>Bonus: Google OneBox Integration </li></ul><ul><li>Quick Demonstration </li></ul><ul><li>Q & A </li></ul>
    4. 4. What are Google Gadgets? <ul><li>Embeddable UI components that offer varying functionality. </li></ul><ul><li>Lightweight. </li></ul><ul><li>Until recently, focused on the mass market. </li></ul><ul><li>Google promoting gadgets for the enterprise. </li></ul>
    5. 5. What are the Benefits? <ul><li>Easy to build. </li></ul><ul><li>Many Sites </li></ul><ul><ul><li>Including Google Apps for the Enterprise </li></ul></ul><ul><li>Wide Reach </li></ul><ul><ul><li>Millions of users! </li></ul></ul>
    6. 6. Google for the Enterprise <ul><li>Google Search Appliance </li></ul><ul><ul><li>Includes Google OneBox </li></ul></ul><ul><li>Google Apps </li></ul><ul><ul><li>iGoogle Start Page </li></ul></ul><ul><ul><li>Mail </li></ul></ul><ul><ul><li>Sites (Wiki) </li></ul></ul><ul><ul><li>Docs, Spreadsheets and Presentations </li></ul></ul><ul><ul><li>Calendar </li></ul></ul><ul><ul><li>IM </li></ul></ul>
    7. 7. Google Apps
    8. 8. Developing Gadgets <ul><li>Gadgets require a Module Descriptor </li></ul><ul><li>Certain Google JavaScript libraries </li></ul><ul><ul><li>Retrieve preferences. </li></ul></ul><ul><ul><li>Customize the gadget UI. </li></ul></ul><ul><li>Inline HTML </li></ul><ul><li>Externally hosted web application </li></ul><ul><ul><li>Invoked via an IFRAME. </li></ul></ul><ul><ul><li>Still has access to preferences via the JavaScript libraries. </li></ul></ul>
    9. 9. Hello World Gadget <ul><li><?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?> </li></ul><ul><li><Module> </li></ul><ul><li><ModulePrefs title=&quot;hello world example&quot; /> </li></ul><ul><li><Content type=&quot;html&quot;> <![CDATA[ </li></ul><ul><ul><li>Hello, world! </li></ul></ul><ul><li>]]> </Content> </li></ul><ul><li></Module> </li></ul>Inline Gadget…
    10. 10. IFRAME Gadget <?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?> <Module> <ModulePrefs title=&quot;hello world example&quot; /> <Content type=&quot;url&quot; href=&quot;http://www.example.com/hello.php&quot;/> </Module>
    11. 11. Storing User Preferences <?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?> <Module> <ModulePrefs title=&quot;hello world example&quot; /> <UserPref name=&quot;mychoice&quot; display_name=&quot;List Params?&quot; datatype=&quot;bool&quot;/> <UserPref name=&quot;myname&quot; display_name=&quot;Name&quot; required=&quot;true&quot;/> <UserPref name=&quot;mycolor&quot; display_name=&quot;Color&quot; default_value=&quot;Blue&quot; datatype=&quot;enum”> <EnumValue value=&quot;Red&quot;/> <EnumValue value=&quot;Blue&quot;/> <EnumValue value=&quot;Green&quot;/> </UserPref> </Module>
    12. 12. Developer Tools Developer Gadget: Google Gadget Editor:
    13. 13. Open for Business
    14. 14. What are Web Scripts? Web Scripting <ul><li>Agile Script-Driven MVC </li></ul><ul><li>Multiple uses </li></ul><ul><ul><li>Roll your own API </li></ul></ul><ul><ul><li>Create new UI components </li></ul></ul><ul><ul><li>Create portlets/widgets </li></ul></ul><ul><ul><li>Expose WCM/AVM features </li></ul></ul><ul><li>Script-based implementation </li></ul><ul><ul><li>Server-side JavaScript </li></ul></ul><ul><ul><li>Freemarker </li></ul></ul><ul><li>Limited only by your imagination </li></ul><ul><ul><li>Integration: Create a mashup </li></ul></ul><ul><ul><li>Search: Exposed to other systems. </li></ul></ul><ul><ul><li>Rich Internet Applications </li></ul></ul><ul><ul><li>Cross-language </li></ul></ul><ul><ul><li>Cross-platform </li></ul></ul>JavaScript (Controller) Freemarker (View) Alfresco Repository (Model) Consumer / Client
    15. 15. Components of a Web Script <ul><li>XML Descriptor </li></ul><ul><ul><li>URI Templates </li></ul></ul><ul><ul><li>Authentication Requirements </li></ul></ul><ul><ul><li>Transactional Requirements </li></ul></ul><ul><li>One or more server-side JavaScript files (Controller) </li></ul><ul><ul><li>One for each HTTP method (GET, PUT, POST, etc.) </li></ul></ul><ul><li>One or more Freemarker templates (View) </li></ul><ul><ul><li>One for each HTTP method and desired output type (HTML, XML, JSON, etc.) </li></ul></ul>
    16. 16. Two types of Web Scripts… <ul><li>Data Web Script </li></ul><ul><ul><li>RESTstyle / RESTful URL </li></ul></ul><ul><ul><li>Returns structured data: </li></ul></ul><ul><ul><ul><li>XML </li></ul></ul></ul><ul><ul><ul><li>JSON </li></ul></ul></ul><ul><ul><ul><li>CSV </li></ul></ul></ul><ul><li>UI Web Script </li></ul><ul><ul><li>Renders self-contained UI. </li></ul></ul><ul><ul><li>Can leverage Data Web Scripts. </li></ul></ul>
    17. 17. Web Scripts as Gadgets <ul><li>Virtually any Web Script can be a gadget by using its URL. </li></ul><ul><li>http:// HOST : PORT /alfresco/wcs/ SCRIPT </li></ul><ul><li>Developers have many choices: </li></ul><ul><ul><li>HTML </li></ul></ul><ul><ul><li>AJAX </li></ul></ul><ul><ul><li>JavaScript </li></ul></ul><ul><ul><li>JSON </li></ul></ul><ul><ul><li>Any combination of the above. </li></ul></ul>JavaScript (Controller) Freemarker (View) Alfresco Repository (Model) iGoogle HTML AJAX JSON
    18. 18. Alfresco Gadgets <ul><li>Search </li></ul><ul><li>Space Browser </li></ul><ul><li>Tasks </li></ul>
    19. 19. Alfresco Gadgets
    20. 20. Space Browser Gadget <ul><li>User Preferences </li></ul><ul><li>Upload </li></ul><ul><li>Download </li></ul><ul><li>Space Creation </li></ul><ul><li>Delete </li></ul>
    21. 21. Folder Gadget Definition <?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?> <Module> <ModulePrefs title=&quot;Alfresco Browser&quot; description=&quot;Alfresco Document and Folder Browser&quot; author=&quot;Alfresco Software&quot; scrolling=&quot;true&quot; height=&quot;350&quot;> </ModulePrefs> <UserPref name=&quot;path&quot; display_name=&quot;Starting Folder&quot; required=&quot;false&quot; /> <UserPref name=&quot;sortby&quot; display_name=&quot;Sort By&quot; default_value=&quot;Name&quot; datatype=&quot;enum&quot; > <EnumValue value=&quot;Name&quot; /> <EnumValue value=&quot;Date&quot; /> <EnumValue value=&quot;Size&quot; /> </UserPref> <Content type=&quot;url” href=&quot;http:// HOST : PORT /alfresco/wcservice/aggadget/folder/?dummy=1&quot; /> </Module>
    22. 22. Hello World Gadget - Descriptor <ul><li>hello.get.desc.xml </li></ul><ul><li><webscript> <shortname>Hello World Google Gadget</shortname> </li></ul><ul><li><description>Sample demonstrating a simple Google Gadget</description> </li></ul><ul><li><url>/goog/hello/</url> <url>/goog/hello</url> </li></ul><ul><li><format default=&quot;html&quot;>argument</format> </li></ul><ul><li><authentication>guest</authentication> </li></ul><ul><li><transaction>required</transaction> </li></ul><ul><li></webscript> </li></ul>
    23. 23. Hello World Gadget - JavaScript <ul><li>hello.get.js </li></ul><ul><li>// Get &quot;name&quot; parameter as supplied by iGoogle </li></ul><ul><li>var name = args[&quot;up_name&quot;]; </li></ul><ul><li>if (name == undefined) { </li></ul><ul><li>name = &quot;Name Not Set&quot; </li></ul><ul><li>} </li></ul><ul><li>// Pass &quot;name&quot; to Freemarker template via the model </li></ul><ul><li>model.name = name; </li></ul>
    24. 24. Hello World Gadget - Freemarker <ul><li>hello.get.html.ftl </li></ul><ul><li><html> </li></ul><ul><li><head> </li></ul><ul><li><title>Alfresco Google Gadget</title> </li></ul><ul><li></head> </li></ul><ul><li><body> </li></ul><ul><li><h1> Hello ${name} </h1> </li></ul><ul><li></body> </li></ul><ul><li></html> </li></ul>
    25. 25. Hello World Gadget – Module <ul><li>hello.get.xml.ftl </li></ul><ul><li><?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?> </li></ul><ul><li><Module> </li></ul><ul><li><ModulePrefs title=&quot;hello world example&quot; /> </li></ul><ul><li><UserPref name=&quot;name&quot; display_name=&quot;Your Name&quot; default_value=&quot;Not Set&quot;/> </li></ul><ul><li><Content type=&quot;url&quot; href=&quot;http:// HOST : PORT /alfresco/wcs/goog/hello?guest=true&quot;/> </li></ul><ul><li></Module> </li></ul>
    26. 26. Google Search Appliance Integration <ul><li>Simple and fast integration with Google OneBox </li></ul><ul><ul><li>http://www.google.com/enterprise/gsa/onebox.html </li></ul></ul>
    27. 27. Google OneBox Integration <ul><li>Customizable Formatting. </li></ul>
    28. 28. Google OneBox Web Script <?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?> <OneBoxResults> <resultCode>${resultCode}</resultCode> <Diagnostics>${diagnostics}</Diagnostics> <provider>${provider}</provider> <title> <urlText>${numResults} results found in Alfresco</urlText> <urlLink>${alfBaseUrl}${url.serviceContext}/api/search/keyword.html?q=${query}&amp;ticket=${ticket}</urlLink> </title> <IMAGE_SOURCE>${alfBaseUrl}${url.context}/images/logo/AlfrescoLogo32.png</IMAGE_SOURCE> <#if results?exists> <#list results as result> <MODULE_RESULT> <U>${alfBaseUrl}${url.context}/navigate/showDocDetails/workspace/SpacesStore/${result.id}?ticket=${ticket}</U> <title><#if result.title?exists>${result.title}<#else>${result.properties.name}</#if></title> <Field name=&quot;description&quot;><#if result.description?exists> - ${result.description?substring(0, 25)}...</#if></Field> <Field name=&quot;path&quot;>${result.displayPath}</Field> <Field name=&quot;owner&quot;>${result.properties.creator}</Field> <Field name=&quot;modified&quot;>${result.properties.modified?datetime}</Field> <Field name=&quot;size&quot;>${result.size} bytes</Field> </MODULE_RESULT> </#list> </#if> </OneBoxResults>
    29. 29. <ul><li>DEMO </li></ul>
    30. 30. Q&A and Resources 03.04.08 <ul><li>Any Questions? </li></ul><ul><li>Resources: </li></ul><ul><ul><li>wiki .alfresco.com/wiki/Google_Gadgets </li></ul></ul><ul><ul><li>code.google.com/apis/gadgets/ </li></ul></ul><ul><ul><li>code.google.com/enterprise/ </li></ul></ul><ul><li>Join the Content Community </li></ul><ul><ul><li>alfresco.com </li></ul></ul><ul><li>Participate in the Developer Challenge </li></ul><ul><ul><li>alfresco.com/partners/programme/webscripts/ </li></ul></ul><ul><li>Join the Alfresco Facebook Group </li></ul><ul><ul><li>facebook .com/group.php?gid=6063383762 </li></ul></ul>
    31. 31. Upcoming Presentations <ul><li>Upcoming “Built in 60” Presentations: </li></ul><ul><ul><li>Building a Simple Wiki </li></ul></ul><ul><ul><li>Mac Dashboard Widgets </li></ul></ul><ul><ul><li>Digital Asset Management </li></ul></ul><ul><ul><li>Facebook Integration </li></ul></ul><ul><ul><li>Video Transcoders </li></ul></ul><ul><li>Other Upcoming Webinars: </li></ul><ul><ul><li>April 24: Open Source Barometer </li></ul></ul><ul><ul><li>April 29: Benchmarking with Unisys </li></ul></ul><ul><ul><li>May 7: Unisys ECM Best Practices </li></ul></ul>03.04.08
    32. 32. End
    33. 33. Shapes & Colors Normal Text <ul><li>Bullet </li></ul><ul><ul><li>Sub-Bullet </li></ul></ul>Normal Text Normal Text

    ×