BP 308 - The Journey to Becoming a Social Application Developer

Download BP 308 - The Journey to Becoming a Social Application Developer

Post on 13-Jan-2015




1 download

Embed Size (px)


IBM Connect 2014 session, Serdar Basegmez and Graham Acres. Absract: You probably have heard about the Social Business Toolkit SDK but do you know what it is and what it's really about? Yes, it's XPages, it's JavaScript, and it's Java, and it works with Domino, Connections and SmartCloud, but what about the other apps that your users are asking for? What about Dropbox, Twitter and other platforms? This session will give developers a strong foundation to build on. You will learn the tools to use and invest in, the place to start and the roadblocks to avoid when building your skills. You will leave with practical examples and code samples to show you how easy it is to extend your apps and bring the power of Social Business to your organization.


  • 1. 2014 IBM Corporation BP308 The Journey to Becoming a Social Application Developer Serdar Basegmez, Developi Information Systems Graham Acres, Brytek Systems Inc.

2. Serdar Basegmez Developi Information Systems IBM Collaboration Solutions Champion (2011-2014) Owner of Developi Information Systems (Istanbul, Turkey) Founder and Co-leader of LUGTR Turkish Lotus User Group Bilingual Blogger at LotusNotus.com (Turkish/English) OpenNTF Guy in Turkey Contributor in XSnippets and CollaborationToday.info Member Director at OpenNTF Board IBM Notes/Domino and Social Business Toolkit Design Partner Featured on The View, NotesIn9; Speaker at IBM Connect and LUGs Away from work Blogger and Podcaster on Scientific Scepticism 2 follow me @sbasegmez 3. Graham Acres Brytek Systems Inc. IBM Lotus Notes Developer/Designer since 1992 (v2.1) Brytek is an IBM Business Partner based in Vancouver, Canada Experienced as both an IBM customer and Business Partner Currently focus on application development (Social Business, XPages, Mobile) Featured on NotesIn9; Speaker at Connect/Lotusphere, LUGs Blog: www.bleedyellow.com/blogs/brytekblog LinkedIn: www.linkedin.com/in/grahamacres Away from work Coach minor hockey Cyclist, Ride to Conquer Cancer 3 follow me @gacres99 4. Products Discussed in this Presentation IBM Connections IBM SmartCloud Domino Lotus Notes Sametime WebSphere JavaTM EclipseTM FacebookTM DropBoxTM Apache TomcatTM Apache ShindigTM JBossTM PHPTM 4 TwitterTM LinkedInTM PinterestTM Box.netTM InstagramTM Google AnalyticsTM FitbitTM GarminTM Basecamp 5. Disclaimer This presentation will not include a conversation of how many people in your country use Facebook Further, it will not talk about the transformation from Web 2.0 to Web 3.0 Widgets and Gadgets are a key part of the SBT, but not this presentation OpenSocial is a big factor in this subject too, but we only have so much time today This presentation was built before the most recent release of the SBT SDK, Saturday. Social is still a Buzzword that we cannot escape from 5 6. Agenda Your First Step on the Journey to Becoming a Social Application Developer The Social Business Toolkit SDK Social Business Toolkit SDK Setup Basic Concepts Demo Time Homework Resources Questions 6 7. 7 Your First Step on the Journey to Becoming a Social Application Developer 8. Social Application (Social Software) Social Application is the new Collaborative Application (with a couple of changes) 8 for a community rather than focusing on individualsCommunity-centered exploiting the collaborative and collective capacityCollaboration/collectiveness explicit association between usersCompanionship/relationship supports human activities and addresses social problemsHuman/social activities enables social inclusion, enforcing links/trust in communitiesSocial inclusion Source: Wikipedia 9. Social Adaption and Integration Would you write your own ERP application? Integrate to collaborative environments ... instead of developing your own. The Keyword is API (We now live in the world of the API) An application programming interface (API) specifies how some software components should interact with each other* ProgrammableWeb** lists over 10,000 public APIs available on the Internet APIs are indispensable for Business apps too! Another Concept: SDK A software development kit (SDK or "devkit") is typically a set of software development tools that allows for the creation of applications [...]* SDKs provide higher-level integration with tooling, components, samples, etc. 9 * Source: Wikipedia ** Source: http://www.programmableweb.com 10. Becoming a Social Application Developer Our Mission: Embedding the Social context into your Business Applications Social Applications are everywhere: Helping collaboration Connecting people Enabling communication Crowdsourcing content Business Application are adapting to Social contexts 10 Business Apps Social Apps Names / Groups Profiles / Communities Attachments Files with their own context (comments, rating, revisions, etc.) Textual Content Tagged content Search in silos Universal search Notifications Activity Streams, Embedded Experiences 11. 11 Demo Time 12. Demo 1 : XPages + Basecamp + Connections 12 IBM Connections Server IBM Domino Server Basecamp Web BrowserWeb Browser Connections REST API Java Beans / SDK Core OAuth2 Endpoint SSO Endpoint XPages HTML/CSS/JS HighLevelAPICalls REST Calls widget.xml iWidget 13. Demo 1 : XPages + Basecamp + Connections 13 OAuth2 for Basecamp SSO for Connections 14. Demo 1 : XPages + Basecamp + Connections 14 15. Demo 1 : XPages + Basecamp + Connections 15 16. Demo 1 : XPages + Basecamp + Connections 16 17. 17 The Social Business Toolkit SDK 18. The Social Business Toolkit SDK Basically, it is intended to make your life easy as a developer! SDK for the IBM Social Platform: Developing applications for Social Integrate social components Customize the IBM Social Platform On premises and in the cloud: IBM Connections, IBM Notes / Domino, IBM Sametime IBM SmartCloud for Social Business, etc. Non-IBM Service APIs (Twitter, Dropbox and many more...) SBT is a Software Development Kit (and more) IBM products have their own APIs SDK encapsulates different APIs but does not span the entire functionality of each yet 18 19. SDK Structure HTML / JavaScript controls Widgets Social components/entities XPages plugins Endpoint implementations More ... High-Level Utilities Helpers Endpoints Authenticators More ... Low-level 19 20. SDK Simplifies Development 20 No SDK Low-Level API High-Level API 21. High-Level API vs. Low-Level API Low-Level API Base-level modules Everything we need to consume REST services directly For instance: Endpoint to handle connections How to connect How to authenticate How to maintain authentication Parsers to extract response JSON, XML Servlets to process workflows Proxy redirections, OAuth dance... 21 22. High-Level API vs. Low-Level API High-Level API Product-specific development experience (e.g. Profiles) No need to know about REST patterns Advanced capabilities (e.g. caching) For instance: ProfileService encapsulate the profile provider Doesnt matter if its Connections or SmartCloud Contains many useful methods Profile class represents a person profile Easier than extracting XML content! 22 23. The Architecture 23 24. For Java Developers Java developers can: Utilize Low-level API to integrate applications with remote APIs, Use High-level API to utilize IBM Social Platform components SBT can work on: Java Application Servers (WebSphere, Tomcat, JBoss, etc.) IBM Domino Server (XPages, DOTS) As Standalone applications As OSGi Plugins 24 25. For JavaScript Developers For client-side development, the SDK provides a comprehensive JavaScript API Embed social components over the client-level user interface Language-agnostic for back-end Ready to use UI widgets for faster development Two important points: JavaScript components need a Java Application Server on the back end (e.g. Tomcat) JavaScript API provides only client-side integration. More options for back-end coming soon 25 26. 26 For XPages Developers The SBT replaced Social Enabler delivered by Extension Library (OpenNTF version) It might conflict with the old version of ExtLib Installable via NSF based update sites Provides a set of plugins for IBM Domino server and IBM Domino Designer Sample database and Playground Java classes and SSJS functions (Endpoints, Service classes, Parsers etc.) Data Sources (Activity Streams, Twitter, etc.) UI Components OpenSocial support 27. What About Others? The Social Business Toolkit can be used to connect many APIs over the Internet! Twitter, Facebook, LinkedIn, DropBox, Pinterest, Box.net Instagram, Google Analytics, Fitbit, Garmin, Basecamp Practical if there is... REST API OAUTH or OAUTH2 authentication JSON, XML, Atom But... 27 28. Validate Yourself! Does your solution really add business value? Will it create more complexity? Will it be easy to maintain? Are you sure you can do it? DIY vs. Buy 28 Just Because You Can, Doesnt Mean You Should! 29. Ask Yourself These Questions Am I integrating with IBM Connections or IBM SmartCloud? If yes, SBT is the way to go Is there an SDK supported/suggested by the provider? If yes, consider using it instead (Google Analytics is a good example) Does it use REST API, OAuth, Username/Password authentication? What identity will I use to interact/authenticate? Will every user have their own account? Will one application-level account be used (If so, consider OAuth capabilities) Are there any security restrictions (e.g. Twitter uses HMAC) Are there any limiting factors that might block you (e.g. usage, rate limit) Triggering vs. Polling Remote service supports triggers; rate limit might prevent frequent polling 29 30. 30 Social Business Toolkit SDK Setup 31. Social Business Toolkit SDK Download Two versions of the Social Business Toolkit SDK Daily builds: http://github.com/OpenNTF/SocialSDK Releases: http://ibmsbt.openntf.org Included in download: Source code Tomcat server Playground (for Domino and J2EE) Sample applications Notes/Domino plugins, sample NSFs 31 32. Social Business Toolkit SDK Install Options Gotchas Must have Java installed and JRE in the path Ports! A playground server may have Connections (IHS), Domino and Tomcat installed who gets HTTP port 80? (8080, 8081) sbt.properties SSL is important for OAUTH Check wikis to enable SSL for Tomcat Use the documentation! Link included in resources section of this presentation Look for differences between Connections 4.0 and 4.5 in the wiki pages 32 33. Social Business Toolkit SDK Install Options Domino Designer SDK is an Eclipse plugin Instructions in wiki on same page as Domino Server install Uses the same Update Site database Eclipse Instructions in wiki in Configuring section DOTS support via OpenSocial Component on Domino Other Systems Configure your own endpoints using managed-beans.xml 33 34. 34 Basic Concepts: The OAuth Dance 35. The OAuth Dance Why is OAuth important? Authentication Username / Password Dont have to provide your username / password to all apps You can change your password without losing your token OAuth2 has been developed to simplify OAuth 1.0a process. OAuth2 provides short-lived tokens but allows renewal without user interaction No need to encrypt every request (but trafic should be secured with SSL) Flow is simplified for non-HTTP applications Allows application-level access (i.e. user name-password) and assertion (e.g. SAML) 35 36. The OAuth Dance 36 * Courtesy Julian Robichaux http://www.slideshare.net/dominopoint/dd12-oauth-for-domino-developers *OAuth 1.0 37. 37 Basic Concepts: Endpoint Configuration 38. Endpoint Provider of social information that is consumed by SDK Specifies: Security (e.g. authentication method) How to connect (URLs, etc.) How to service Defined at the app-level Declared at design-time Might be modified at runtime Authentication handled by SDK Intitiation (e.g. OAuth dance) Workflow (e.g. Signing requests) 38 Design-Time Configuration managed-beans.xml Operational Configuration sbt.properties 39. Design-Time Configuration managed-beans.xml Endpoint Configuration 39 Endpoint Name and alias Java class (type) Other details Operational Configuration sbt.properties Definitions OAuth keys URLs Username/passwords Runtime Configuration Credential Store Definitions OAuth Tokens Username/passwords 40. Endpoint Configuration 40 Design-Time Configuration managed-beans.xml Operational Configuration sbt.properties 41. Endpoint Configuration - Gotchas No need to memorize anything SDK provides copies of all configuration files. sbt.properties file location Better to place this file into the server So different target systems can be used for development and production For XPages, There is no sbt.properties file Sensitive information written into Faces-config directly No testing environment There is no NSF-based credential store support (yet) Memory store loses tokens/credentials after a while (or restart) Coming soon 41 42. 42 Demo Time 43. Demo 2 : Notes + DOTS + Connections 43 IBM Connections Server IBM Domino Server UserUser Connections REST API Notes App SBT Endpoint Activity Stream Staging App DOTS Tasklet Workflow action creates document(s) on save Get/Post Data Check updates High Level API Calls ProfileServices.getProfile(...) ActivityStreamServices.postEntry(...) ... Notes Client Web Browser 44. Demo 2 : Notes + DOTS + Connections 44 45. Demo 2 : Notes + DOTS + Connections 45 46. Demo 2 : Notes + DOTS + Connections 46 47. Demo 2 : Notes + DOTS + Connections 47 48. 48 Conclusion 49. Whats New with Social Business Toolkit SDK 20140125 Mobile API for iOS OpenSocial Explorer support in the Playground Alpha Support For Rendering Gadgets In Your Own App Reusable Files View control Alpha version of PHP support for Moodle and WordPress 49 50. Homework... Start Today! Introduce yourself to the IBM SBT Team (Meet the Developers Lab) Discuss your business case and the details of the platforms you use Ask questions, provide feedback... Start with baby steps... Watch videos on the IBM SBT Channel... Setup your Eclipse IDE and/or IBM Domino environment Register IBM SmartCloud and/or IBM Greenhouse Setup, run, learn and use SBT Playground... Learn SBT Playground again Stay connected to the community... Dont be shy IBM Social Business Toolkit community, OpenNTF, Stackoverflow, Twitter, etc. Watch videos again. 50 51. 51 Resources 52. Resources: Other Sessions JMP103 : Extending Your Application Arsenal With OpenSocial SHOW501 : Mastering Social Development Using the IBM Collaboration Quickstart AD301 : What's New on the IBM Social Business Toolkit Version 2.0 ID101 : Extending IBM SmartCloud Applications in 30 Minutes INV111 : The Evolution from Simple Sharing to Purposeful Collaboration AD207 : Widgets, Live Text and Now OpenSocial: Linking Your Data to the World! SB311 : Unlock Social Integration Secrets with the Latest Open Technologies BP302 : Running a Successful Pilot Program with Social Software Next! 11:15 AM Dolphin N. Hem E AD206 : Build Apps Rapidly by Leveraging Services from IBM Collaboration Solutions Today 5:30 PM Dolphin S. Hem III 52 53. Resources Stackoverflow: Ask your questions with #ibmsbt Links to sites and samples http://ibmsbt.openntf.org https://www.ibmdw.net/social/ http://www.youtube.com/user/IBMSBT http://ibm.co/1hySsi4 (SBT SDK Documentation) http://ibm.co/1dPpd5l (Ecosystem Development Community on Greenhouse) https://greenhouse.lotus.com/sbt/SBTPlayground.nsf...