Buiding application for social networks

53
BUIDING APPLICATION for SOCIAL NETWORKS Đỗ Duy Trung Hai Phong Aptech

description

Hiện nay, mạng xã hội đang là xu thế mạnh nhằm gắn kết mọi người và các tổ chức lại với nhau. Sử dụng mạng xã hội cho phép người dùng nhanh chóng có được thông tin hữu ích cần thiết. Người dùng đã đến lúc không cần kiếm tìm thông tin mà thông tin tự đến với người dùng một cách chính xác hơn. Mặt khác, thực tế cho thấy đa số người dùng học hỏi kiến thức mới ngoài việc do nỗ lực bản thân mà chủ yếu cũng từ chính bạn bè và các kênh thông tin trực tuyến hằng ngày họ theo dõi hơn là việc học tập một cách gò bó và gượng ép.Ứng dụng chạy trên các mạng xã hội cũng đang tăng nhanh để đáp ứng cho đa số người dùng đã có mặt ở nhiều lĩnh vực khác nhau. Các mạng xã hội hiện nay cũng đang tích cực phát triển các ứng dụng kiểu này nhằm phục vụ tối đa người dùng trong các quan hệ xã hội. Việc phát triển ứng dụng cho mạng xã hội là một hình thức ứng dụng mới dựa trên kiến trúc gồm ba thành phần chủ yếu (app client - front end, container (social network) và app server - back end) cho phép tích hợp các ứng dụng vào trong mạng xã hội một cách dễ dàng.Việc phát triển một ứng dụng hiệu quả tích hợp cả mạng xã hội, điện toán đám mây đã trở nên đơn giản hơn. Bài báo cáo này trình bày sơ bộ những phân tích lợi ích, phân loại và kiến trúc hoạt động và cách xây dựng các ứng dụng cho mạng xã hội.

Transcript of Buiding application for social networks

Page 1: Buiding application for social networks

BUIDING APPLICATIONfor

SOCIAL NETWORKS

Đỗ Duy TrungHai Phong Aptech

Page 2: Buiding application for social networks

Agenda

• Overview• How to create application for Social Network?• Social Network Architecture• Fundamentals & requirements for building

application• Demo• Q&A

Page 3: Buiding application for social networks

What is Social Network?

• A social structure made up of actors: – Individuals– Organizations

• The dyadic ties between these actors:– Relationships– Connections– Interactions

Or in plain English:Social networks are essentially about who know who, and who know what.

Page 4: Buiding application for social networks

Advantages of Social Networking?

• Work connections• Keeping in touch• Get feedback• Share multiple points of view• Talking to other persons• Stay in touch anywhere

Page 5: Buiding application for social networks

How do you typically train your team to use an authoring tools?

Page 6: Buiding application for social networks

What is Social computing?

• Social behavior:– blogs, email, instant messaging, social network

services, wikis, social bookmarking• Computation:

– collaborative filtering, online auctions, prediction markets, reputation systems, computational social choice, tagging, and verification games

Page 7: Buiding application for social networks

How can we share?

• A social networking service (SNS) is an online service that focuses on building and reflecting of social relations among people, e.g., who share interests and/or activities

• Basic services– Profile– Friend list– Wall, status, photo, blog….

Page 8: Buiding application for social networks

Example of Social Networks1. Social Networking : Facebook, Zing.Me, Go.vn, G+, Bang.vn, Banbe.net …2. Social News : Linkhay, Newsvine, Digg, 3. Social Measuring : Technorati, BlogPulse 4. Microblogging : Twitter5. Blogs : Opera, Yahoo+, Blogspot, WP6. Social Bookmarking : Diggo, Delicious7. Social Q&A : Google, Yahoo answer, Vatgia8. Video Sharing : Youtube, Viadeo,Clip.vn9. Photo Sharing : Picasa, Flickr, tamtay.vn10. Social Search : Google vertical search11. Professional Networks : Calavat, Hoclamgiau12. Community Groups (Forum):Tinhte.vn, webtretho.com, phuot.vn…13. Blogging Communities 14. Document shares : Slideshare.net, tailieu.vn

15. Social knowledge : Wiki16. Social job : Linkedin, calavat, TVN17. Social shop : Vatgia, chodientu.vn18. Social reviews: Aha, Vatgia , agoda 19. Social lens : Squidoo20. Social study : Violet.vn, Tienganh123…21. Coupons network : Grouponvietnam.com 22. Social map : Wikimap, GGmap, diadiem, bando, thodia.vn23. Social chat : Yahoo chatgroup, Bebo, Paltalk, Yola.vn , Zingchat24. Social Game : Zing, VTC, Ongame…25. Social music : Yeucahat.com…26. Social bid : Chodientu.vn, daugianguoc27. Social health: Bacsi.com, khamchuabenh28. Social application/widget : Apple storeGitHub - Social Coding (for developers)

Page 9: Buiding application for social networks
Page 10: Buiding application for social networks

Users after launch

Members – March 2012

Referral Traffic January 2012

Page 11: Buiding application for social networks

How to build a social network(references)

• Programming Social Applications - Jonathan Le Blanc• OpenSocial Network Programming - Lynne Grewe• ASP.NET 4 Social Networking - Atul Gupta,

Sudhanshu Hate, Andrew Siemer• PHP 5 Social Networking - Michael Peacock• Drupal 7 Social Networking - Michael Peacock• Web Mining and Social Networking - Guandong Xu,

Yanchun Zhang, Lin Li• …

Page 12: Buiding application for social networks
Page 13: Buiding application for social networks

How to create application for Social Network?

Page 14: Buiding application for social networks

What can applications do?

• Encourage communication & collaboration between members• Allow members to be more expressive in how they present their professional identities• Provide novel functionality that leverages a member's social network in a moment of need

Page 15: Buiding application for social networks

Vocabulary

• They are not widgets?• Or gidgets…• They are gadgets!

Page 16: Buiding application for social networks

Gadget

• Gadget is really just a mask for something greater....

• Gadget is just one face of an application

Page 17: Buiding application for social networks

Meet the actors

• Viewer– Always the member currently viewing the gadget.

• Owner– The member who owns the profile being looked

at. Sometimes also the owner of a canvas page.

Page 18: Buiding application for social networks

Meet the container

• A container is a social network that provides an environment for Javascript and REST calls, "view" for gadgets to surface on, and underlying Social Data.

Page 19: Buiding application for social networks

Meet the view• Home Page:

– Primary point of entry for members– Owner & Viewer are always the same– Content should be focused on the Member's interaction with the application

• Profile Page– Owner is the person who owns the profile– Information displayed is seen by all who visit the profile– Content should be focused on what the member does with the application

• Canvas– Serves many purposes & contexts for an application– Owner & Viewer might not be the same. Owner is determined by how it was

navigated to– Content can be anything related to the application

Page 20: Buiding application for social networks

SocialSite Architecture

Page 21: Buiding application for social networks

Home Server/ Back-end Client/Front-endContainer

Apps GadgetsSocial Network

OpenSocial Architecture

Page 22: Buiding application for social networks

Container

• Display (Core Gadget Container): – Widgets in a portal: news, weather forecast,

music, video...• Social Graph connection (Social Gadget

Container): – Gadgets with social data: friends list, groups,

activities...

Page 23: Buiding application for social networks

Anatomy of an Open Application

Page 24: Buiding application for social networks

Fundamental of SNS

• Web API• Protocol: HTTP, SOAP, REST• Data Format: JSON, ATOM, XML• Security: OpenID, OAuth

Page 25: Buiding application for social networks

Web API

Google (96): Google Buzz API, Google Plus APIFacebook (8): Facebook API, Graph API, Social Plugin, RealtimeTwitter (3): Twitter API, Twitter Streamming API….

Page 26: Buiding application for social networks

Web Services• are the key point of Integration for different applications

belonging to different – Platforms– Languages– Systems

• Protocols– SOAP (Simple Object Access Protocol). SOAP revolutionized RPC and

loose coupling beyond the restrictions posed by earlier protocols– HTTP based APIs refer to APIs that are exposed as one or more HTTP

URIs and typical responses are in XML / JSON. Response schemas are custom per object

– REST on the other hand adds an element of using standrdized URIs, and also giving importance to the HTTP verb used (ie GET / POST / PUT etc)

Page 27: Buiding application for social networks
Page 28: Buiding application for social networks

SOAP vs REST

• The main advantages of REST web services are:– Lightweight – not a lot of extra xml markup– Human Readable Results– Easy to build – no toolkits required

• SOAP also has some advantages:– Easy to consume – sometimes– Rigid – type checking, adheres to a contract– Development tools

Page 29: Buiding application for social networks

RESTful web service (RESTful web API)

A simple web service implemented using HTTP and the principles of REST. It is a collection of resources, with four defined aspects:• URI http://example.com/resources/ • Media type of the data supported is often JSON,

XML , YAML or a valid Internet media type.• HTTP methods (e.g., GET, PUT, POST, or DELETE).• The API must be hypertext driven

Page 30: Buiding application for social networks

REST

HTTP SQL CRUDPOST INSERT CreateGET SELECT ReadPUT UPDATE UpdateDELETE DELETE Delete

Page 31: Buiding application for social networks

REST API or Graph API

• Rest API• Graph API

Page 32: Buiding application for social networks

Graph API

• https://graph.facebook.com/ID• https://graph.facebook.com/ID/

CONNECTION_TYPE• https://graph.facebook.com/220439?

access_token=...

Page 33: Buiding application for social networks

Social Graph API

Page 34: Buiding application for social networks

OpenID vs OAuth

• OpenID is about authentication to many sites with one username.

• Using login credentials from an OpenID provider (Google) to login to another application (Stack Overflow)

• OAuth is about authorization – application or site A has permission to call site B's ap

• Allowing an application (TwitPic) to act on your behalf to and access information from an application that you use (Twitter)

Page 35: Buiding application for social networks

Authentication

login

OK

permission

Allow

API

User

App

/authorize?client_id&redirect_u

ri

/redirect_uri?code=

/access_token?code&client_id&client_secret

access_token

1

2

Page 36: Buiding application for social networks
Page 37: Buiding application for social networks

JSON: The Fat-Free Alternative to XML

• JSON object

{

"name": "Jack (\"Bee\") Nimble", "format": {

"type": "rect", "width": 1920, "height": 1080, "interlace": false, "frame rate": 24

} }

• JSON arrays

["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]

[ [0, -1, 0], [1, 0, 0], [0, 0, 1] ]

Page 38: Buiding application for social networks

RSS 2.0 vs Atom 1.0<?xml version="1.0" encoding="utf-8"?><rss version="2.0"> <channel>

<title>Example Feed</title> <description>Insert witty or insightful remark here</description> <link>http://example.org/</link> <lastBuildDate>Sat, 13 Dec 2003 18:30:02 GMT</lastBuildDate> <managingEditor>[email protected] (John Doe)</managingEditor>

<item> <title>Atom-Powered Robots Run Amok</title> <link>http://example.org/2003/12/13/atom03</link> <guid isPermaLink="false">urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a</guid> <pubDate>Sat, 13 Dec 2003 18:30:02 GMT</pubDate> <description>Some text.</description> </item>

</channel></rss>

<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom">

<title>Example Feed</title> <subtitle>Insert witty or insightful remark here</subtitle> <link href="http://example.org/"/> <updated>2003-12-13T18:30:02Z</updated> <author> <name>John Doe</name> <email>[email protected]</email> </author> <id>urn:uuid:60a76c80-d399-11d9-b93C-0003939e0af6</id>

<entry> <title>Atom-Powered Robots Run Amok</title> <link href="http://example.org/2003/12/13/atom03"/> <id>urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a</id> <updated>2003-12-13T18:30:02Z</updated> <summary>Some text.</summary> </entry>

</feed>

Page 39: Buiding application for social networks

Requirements

Provider• Social Network Platform

– Web API

• Authentication– OAuth– OpenID

• SDKs• Canvas• Plugin

Developer• Programming Languages

– Javascript, PHP, Java, C#,…

• Application– APP_ID– APP_SECRET

• Tools• Coding & pulishing• Integrating & embeding

Page 40: Buiding application for social networks

I'm a developer - how do I get involved?

Use the API

• REST protocol• RPC protocol• Javascript API• Graph API

Method Summary

• String getDisplayName()• String getField(key, opt_params)• String getId()• Boolean isOwner()• Boolean isViewer()• ….

Authenticate with OAuth

Get Information! 

Including: 

ABOUT_ME, ADDRESSES, CARS, FASHION 

and many more

Page 41: Buiding application for social networks

I'm a serverBe a Container

• - Adding and removing friends • - Adding and removing apps • - Storing activities • - Retrieving activity streams for self and friends • - Storing and retrieving per-app and per-app-per-user

data SO • Put your socialness out there for others to use• Shingdig (apache)

Page 42: Buiding application for social networks

Facebook

• REST, JSON Open Graph protocol• OAuth 2.0 • Social Plugins• SDK: iOS, Android, PHP, JavaScript, ...

Page 43: Buiding application for social networks

OpenSocial?

• Open, standard, application model that enables Social Web Applications• Writing applications specifically for a single API• “Write once, run everywhere”

Page 44: Buiding application for social networks
Page 45: Buiding application for social networks
Page 46: Buiding application for social networks

OpenSocial?

• Standard Internet technologies (HTML, CSS, JS)

• Simple, XML definition• Ajax• Standard based authorization model• Add social context to requests

Page 47: Buiding application for social networks

Facebook vs OpenSocial

Facebook• FBML • FQL • FBJS• Partial support for ajax

OpenSocial• XHTML / XML• JavaScript

• Full support for ajax

Page 48: Buiding application for social networks
Page 49: Buiding application for social networks

The web is better when it's social

OpenSocial enables apps,containers, and other clients to collaborate and move the social web forward.

Page 50: Buiding application for social networks

A typical gadget based portal

Page 52: Buiding application for social networks

Thank you!

Your feedback is a gift!

HPA Forum: @TrungDDFacebook: @doduytrungTwitter: @doduytrungLinkedin: @doduytrungPinterest: @doduytrungGoogle+: @doduytrung

Page 53: Buiding application for social networks

References

• Developer's Guide to Social Programming - Mark D. Hawker• Programming Social Applications - Johnathan LeBlanc• wikipedia.org• http://vincos.it/world-map-of-social-networks/• http://vinalink.vn/• http://developer.yahoo.com• https://developers.facebook.com/• http://opensocial.org• http://www.slideshare.net/rsandhu1/open-social-frameworks• http://www.mediabistro.com/alltwitter/pinterest-social-comp

arison_b19477