bp 308 - the journey to becoming a social application developer

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

Upload: serdar-basegmez

Post on 13-Jan-2015

276 views

Category:

Software


1 download

DESCRIPTION

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.

TRANSCRIPT

Page 1: BP 308 - The Journey to Becoming a Social Application Developer

© 2014 IBM Corporation

BP308 The Journey to Becoming a Social Application Developer

Serdar Basegmez, Developi Information Systems

Graham Acres, Brytek Systems Inc.

Page 2: BP 308 - The Journey to Becoming a Social Application Developer

Serdar BasegmezDevelopi 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

Page 3: BP 308 - The Journey to Becoming a Social Application Developer

Graham AcresBrytek 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

Page 4: BP 308 - The Journey to Becoming a Social Application Developer

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

Twitter

TM

LinkedIn

TM

Pinterest

TM

Box.net

TM

Instagram

TM

Google Analytics

TM

Fitbit

TM

Garmin

TM

Basecamp

®

Page 5: BP 308 - The Journey to Becoming a Social Application Developer

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

Page 6: BP 308 - The Journey to Becoming a Social Application Developer

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

Page 7: BP 308 - The Journey to Becoming a Social Application Developer

7

Your First Step on the Journey to Becoming a

Social Application Developer

Page 8: BP 308 - 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)

•for

a

co

m

m

un

ity

rat

he

r

th

an

fo

cu

si

ng

on

in

di

vi

du

al

s

Community-centered

•ex

pl

oit

in

g

th

e

co

lla

bo

rat

iv

e

an

d

co

lle

cti

ve

ca

pa

cit

y

Collaboration/collectiveness

•ex

pli

cit

as

so

ci

ati

on

be

tw

ee

n

us

er

s

Companionship/relationship

•su

pp

ort

s

hu

m

an

ac

tivi

tie

s

an

d

ad

dr

es

se

s

so

ci

al

pr

ob

le

m

s

Human/social activities

•en

ab

le

s

so

ci

al

in

cl

us

io

n,

en

for

ci

ng

lin

ks

/tr

us

t

in

co

m

m

un

iti

es

Social inclusion

Source: Wikipedia

Page 9: BP 308 - The Journey to Becoming a Social Application Developer

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

Page 10: BP 308 - The Journey to Becoming a Social Application Developer

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

Page 11: BP 308 - The Journey to Becoming a Social Application Developer

11

Demo Time

Page 12: BP 308 - The Journey to Becoming a Social Application Developer

Demo – 1 : XPages + Basecamp + Connections

12

IBM Connections Server

IBM Domino Server

Basecamp

Web BrowserWeb Browser

Connections REST API

Java Beans / SDK CoreOAuth2Endpoint

SSOEndpoint

XPages

HT

ML/C

SS

/JS

High Level A

PI C

alls

REST Calls

widget.xm

l

iWidget

Page 13: BP 308 - The Journey to Becoming a Social Application Developer

Demo – 1 : XPages + Basecamp + Connections

13

OAuth2 for Basecamp

SSO for Connections

Page 14: BP 308 - The Journey to Becoming a Social Application Developer

Demo – 1 : XPages + Basecamp + Connections

14

Page 15: BP 308 - The Journey to Becoming a Social Application Developer

Demo – 1 : XPages + Basecamp + Connections

15

Page 16: BP 308 - The Journey to Becoming a Social Application Developer

Demo – 1 : XPages + Basecamp + Connections

16

Page 17: BP 308 - The Journey to Becoming a Social Application Developer

17

The Social Business Toolkit SDK

Page 18: BP 308 - The Journey to Becoming a Social Application Developer

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

Page 19: BP 308 - The Journey to Becoming a Social Application Developer

SDK Structure

•HTML / JavaScript controls

Widgets

•Social components/entities

•XPages plugins

•Endpoint implementations

•More ...

High-Level

•Utilities

•Helpers

•Endpoints

•Authenticators

•More ...

Low-level

19

Page 20: BP 308 - The Journey to Becoming a Social Application Developer

SDK Simplifies Development

20

No SDK

Low-Level API High-Level API

Page 21: BP 308 - The Journey to Becoming a Social Application Developer

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

Page 22: BP 308 - The Journey to Becoming a Social Application Developer

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

Page 23: BP 308 - The Journey to Becoming a Social Application Developer

The Architecture

23

Page 24: BP 308 - The Journey to Becoming a Social Application Developer

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

Page 25: BP 308 - The Journey to Becoming a Social Application Developer

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

Page 26: BP 308 - The Journey to Becoming a Social Application Developer

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

Page 27: BP 308 - The Journey to Becoming a Social Application Developer

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

Page 28: BP 308 - The Journey to Becoming a Social Application Developer

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!

Page 29: BP 308 - The Journey to Becoming a Social Application Developer

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

Page 30: BP 308 - The Journey to Becoming a Social Application Developer

30

Social Business Toolkit SDK Setup

Page 31: BP 308 - The Journey to Becoming a Social Application Developer

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

Page 32: BP 308 - The Journey to Becoming a Social Application Developer

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

Page 33: BP 308 - The Journey to Becoming a Social Application Developer

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

Page 34: BP 308 - The Journey to Becoming a Social Application Developer

34

Basic Concepts:

The OAuth Dance

Page 35: BP 308 - The Journey to Becoming a Social Application Developer

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

Page 36: BP 308 - The Journey to Becoming a Social Application Developer

The OAuth Dance

36

* Courtesy Julian Robichaux

http://www.slideshare.net/dominopoint/dd12-oauth-for-domino-developers

*OAuth 1.0

Page 37: BP 308 - The Journey to Becoming a Social Application Developer

37

Basic Concepts:

Endpoint Configuration

Page 38: BP 308 - The Journey to Becoming a Social Application Developer

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

Page 39: BP 308 - The Journey to Becoming a Social Application Developer

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

Page 40: BP 308 - The Journey to Becoming a Social Application Developer

Endpoint Configuration

40

Design-Time

Configuration

managed-beans.xml

Operational Configuration

sbt.properties

Page 41: BP 308 - The Journey to Becoming a Social Application Developer

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

Page 42: BP 308 - The Journey to Becoming a Social Application Developer

42

Demo Time

Page 43: BP 308 - The Journey to Becoming a Social Application Developer

Demo – 2 : Notes + DOTS + Connections

43

IBM Connections Server

IBM Domino Server

UserUser

Connections REST API

Notes AppSBT

Endpoint

Activity Stream

Staging AppDOTSTasklet

Workflow action creates document(s) on save Get/Post Data

Check updates

High Level API CallsProfileServices.getProfile(...)

ActivityStreamServices.postEntry(...)...

Notes Client

Web Browser

Page 44: BP 308 - The Journey to Becoming a Social Application Developer

Demo – 2 : Notes + DOTS + Connections

44

Page 45: BP 308 - The Journey to Becoming a Social Application Developer

Demo – 2 : Notes + DOTS + Connections

45

Page 46: BP 308 - The Journey to Becoming a Social Application Developer

Demo – 2 : Notes + DOTS + Connections

46

Page 47: BP 308 - The Journey to Becoming a Social Application Developer

Demo – 2 : Notes + DOTS + Connections

47

Page 48: BP 308 - The Journey to Becoming a Social Application Developer

48

Conclusion

Page 49: BP 308 - The Journey to Becoming a Social Application Developer

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

Page 50: BP 308 - The Journey to Becoming a Social Application Developer

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

Page 51: BP 308 - The Journey to Becoming a Social Application Developer

51

Resources

Page 52: BP 308 - The Journey to Becoming a Social Application Developer

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

Page 53: BP 308 - The Journey to Becoming a Social Application Developer

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

Page 54: BP 308 - The Journey to Becoming a Social Application Developer

54

Questions

Page 55: BP 308 - The Journey to Becoming a Social Application Developer

Access Connect Online to complete your session surveys using any:– Web or mobile browser – Connect Online kiosk onsite

55

Page 56: BP 308 - The Journey to Becoming a Social Application Developer

56

Acknowledgements and Disclaimers

© Copyright IBM Corporation 2014. All rights reserved.

U.S. Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.

IBM, the IBM logo, ibm.com, and Lotus, Notes, Domino, Sametime, WebSphere, and SmartCloud are trademarks or registered trademarks of International Business Machines Corporation in the United States, other countries, or both. If these and other IBM trademarked terms are marked on their first occurrence in this information with a trademark symbol (® or ™), these symbols indicate U.S. registered or common law trademarks owned by IBM at the time this information was published. Such trademarks may also be registered or common law trademarks in other countries. A current list of IBM trademarks is available on the Web at “Copyright and trademark information” at www.ibm.com/legal/copytrade.shtml

Availability. References in this presentation to IBM products, programs, or services do not imply that they will be available in all countries in which IBM operates.

The workshops, sessions and materials have been prepared by IBM or the session speakers and reflect their own views. They are provided for informational purposes only, and are neither intended to, nor shall have the effect of being, legal or other guidance or advice to any participant. While efforts were made to

verify the completeness and accuracy of the information contained in this presentation, it is provided AS-IS without warranty of any kind, express or implied. IBM shall not be responsible for any damages arising out of the use of, or otherwise related to, this presentation or any other materials. Nothing contained in this

presentation is intended to, nor shall have the effect of, creating any warranties or representations from IBM or its suppliers or licensors, or altering the terms and conditions of the applicable license agreement governing the use of IBM software.

All customer examples described are presented as illustrations of how those customers have used IBM products and the results they may have achieved. Actual environmental costs and performance characteristics may vary by customer. Nothing contained in these materials is intended to, nor shall have the effect of,

stating or implying that any activities undertaken by you will result in any specific sales, revenue growth or other results.

Twitter and the Twitter logo are trademarks of Twitter Inc.

Facebook is a registered trademark of Facebook, Inc.

Java and all Java-based trademarks and logos are trademarks or registered trademarks of Oracle and/or its affiliates.

Eclipse is a trademark of Eclipse Foundation, Inc.

Dropbox and the Dropbox logo are trademarks of Dropbox, Inc.

Apache Tomcat, Tomcat, and Apache Sindig are trademarks of the Apache Software Foundation

Basecamp and Basecamp logo are registered trademark of 37Signals, LLC.

JBoss is a registered trademark of RedHat, Inc.

PHP is a registered trademark of Mike Mackintosh.

LinkedIn is a registered trademark of LinkedIn Corporation

Pintrest is a registered trademark of Pintrest, Inc.

Box.net is a registered trademark of Box.net, Inc.

Instagram is a registered trademark of Instagram

Google Analytics is a registered trademark of Google Inc.

FitBit is a registered trademark of FitBit, Inc.

Garmin is a registered trademark of Garmin Ltd.