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.
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
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 [...]*
– SDK’s 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
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
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
• Doesn’t matter if it’s Connections or SmartCloud
• Contains many useful methods
– Profile class represents a person profile
• Easier than extracting XML content!
22
24. For Java Developers
Java developers can:
– Utilize Low-level API to integrate applications with remote API’s,
– 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,
Doesn’t 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
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
35. The OAuth Dance
Why is OAuth important?
– Authentication
– Username / Password
• Don’t 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
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
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
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
49. What’s 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... Don’t be shy
– IBM Social Business Toolkit community, OpenNTF, Stackoverflow, Twitter, etc.
Watch videos again.
50
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
Demos and slides will be available from our blogs
– Follow @sbasegmez and @gacres99
53