® Developing Plugins for SameTime Connect 7.5 Jian Min JIANG Lotus ISV Technical Enablement China Software Development Lab.

Slides:



Advertisements
Similar presentations
Games, chat, and finance Toward a truly interactive web with Comet, BAM, and HMTP Emil Ong Chief Evangelist.
Advertisements

Annotated User Input Screens from EM Oracle Custom Install Install.
Intelligence for Environment and Security – IES Solutions JIXEL The first web 2.0 Joint Control room Massimo Cristaldi, CTO.
Instant Queue IBM Techline Instant Queue Manager Deployed for IBM Techline Richard Brader IBM Techline January 2012.
® Developing Plugins for SameTime Connect 7.5 Jian Min JIANG Lotus ISV Technical Enablement China Software Development Lab.
A CHAT CLIENT-SERVER MODULE IN JAVA BY MAHTAB M HUSSAIN MAYANK MOHAN ISE 582 FALL 2003 PROJECT.
Electrical Engineering Department Software Systems Lab TECHNION - ISRAEL INSTITUTE OF TECHNOLOGY Persistent chat room Authors: Hazanovitch Evgeny Hazanovitch.
CLUSTER WEBLOGIC SERVER. 1.Creating clusters and understanding its concept GETTING STARTED.
2440: 141 Web Site Administration Services Instructor: Enoch E. Damson.
Internet Relay Chat Chandrea Dungy Derek Garrett #29.
CONTENTS:-  What is Event Log Service ?  Types of event logs and their purpose.  How and when the Event Log is useful?  What is Event Viewer?  Briefing.
Sheet 1XML Technology in E-Commerce 2001Lecture 4 XML Technology in E-Commerce Lecture 4 Case Study: XmlMessenger.
CEG3185 Tutorial 4 Prepared by Zhenxia Zhang Revised by Jiying Zhao (2015w)
Web Proxy Server. Proxy Server Introduction Returns status and error messages. Handles http CGI requests. –For more information about CGI please refer.
Instant Queue Manager Version 4 Enterprise Click to Chat For Lotus Sametime.
J2ME Messaging Khanh Le. Objective  The objective of wireless messaging is to extend the networking and I/O capabilities of J2ME applications to send.
AJAX Chat Analysis and Design Rui Zhao CS SPG UCCS.
Web Security Programming I Building Security in from the Start Except where otherwise noted all portions of this work are Copyright (c) 2007 Google and.
Assignment 3 A Client/Server Application: Chatroom.
1 Guide to Novell NetWare 6.0 Network Administration Chapter 11.
NET0183 Networks and Communications Lecture 31 The Socket API 8/25/20091 NET0183 Networks and Communications by Dr Andy Brooks Lecture powerpoints from.
WaveMaker Visual AJAX Studio 4.0 Training Authentication.
Chapter 8 Implementing Disaster Recovery and High Availability Hands-On Virtual Computing.
LOGO E-Radio code presentation Prepared By Abdullah Mustafa Abu Nada Hussian Abd-Jaleel Shaalan Nael Wael Skaik Software group.
Robert Fourer, Jun Ma, Kipp Martin Copyright 2006 An Enterprise Computational System Built on the Optimization Services (OS) Framework and Standards Jun.
School of Engineering and Computer Science Victoria University of Wellington Copyright: Peter Andreae, VUW Networking COMP # 21.
James Holladay, Mario Sweeney, Vu Tran. Web Services Presentation Web Services Theory James Holladay Tools – Visual Studio Vu Tran Tools – Net Beans Mario.
Cli/Serv.: Chat/121 Client/Server Distributed Systems v Objectives –discuss a client/server based chat system –mention two other ways of chatting.
School of Engineering and Computer Science Victoria University of Wellington Copyright: Peter Andreae david streader, VUW Echo Networking COMP
LAB 1CSIS04021 Briefing on Assignment One & RMI Programming February 13, 2007.
1 Software Construction and Evolution - CSSE 375 Exception Handling - Principles Steve Chenoweth, RHIT Above – Exception handling on the ENIAC. From
Grouper Training Developers and Architects Advanced Topics Chris Hyzer Internet2 University of Pennsylvania This work licensed under a Creative Commons.
1 Cisco Unified Application Environment Developers Conference 2008© 2008 Cisco Systems, Inc. All rights reserved.Cisco Public Introduction to Etch Scott.
IBM Lotus Sametime © 2007 IBM Corporation IBM Lotus Sametime Overview April, 2007.
DATA NOTIFICATIONS AUTH SERVER LOGIC LOGGING DIAGNOSTICS PLATFORMS: SCHEDULER SCALE.
Software Engineering Design Patterns. Singleton Single instance of class Constructor is private static final Class instance constructed when application.
Application Specific Module Tutorial Akos Balasko 02/07/
School of Engineering and Computer Science Victoria University of Wellington Copyright: Peter Andreae, VUW Networking COMP # 22.
School of Engineering and Computer Science Victoria University of Wellington Copyright: Peter Andreae david streader, VUW Networking and Concurrency COMP.
CS390- Unix Programming Environment CS 390 Unix Programming Environment Java Socket Programming.
Course Presentation EEL5881, Fall, 2003 Project: Network Reliability Tests Project: Network Reliability Tests Team Client: Dr. Joseph Berrios Team Client:
Amir Bishara and Dorin Danial Supervisors: Roiy Zysman Dr. Ilana David.
Tom Allen Clayton Chang Jeffrey Hebrank Justin McCarron Vincent Pai Luo Pan Allen Weiss.
FTP Server API Implementing the FTP Server Registering FTP Command Callbacks Data and Control Port Close Callbacks Other Server Calls.
© 2006 Intland Software1 Aron Gombas Architect, Intland Software Extending & customizing CodeBeamer.
Vinay Paul. CONTENTS:- What is Event Log Service ? Types of event logs and their purpose. How and when the Event Log is useful? What is Event Viewer?
Chapter 29 World Wide Web & Browsing World Wide Web (WWW) is a distributed hypermedia (hypertext & graphics) on-line repository of information that users.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
Vakgroep Informatietechnologie – Onderzoeksgroep (naam) Web Centric Design of Distributed Software.
Sprint Nextel offers a comprehensive range of wireless and wire line communications services bringing the freedom of mobility to consumers, businesses.
Systems Analysis and Design in a Changing World, 6th Edition 1 Chapter 7 - Designing the User and System Interfaces.
Prepared by Dr. Jiying Zhao University of Ottawa Canada.
Security Considerations
Instant Queue Manager Version 4 Enterprise Click to Chat for IBM Lotus Sametime and Microsoft OCS.
Distributed Systems CS Project 1: File Storage and Access Kit (FileStack) Recitation 1, Aug 29, 2013 Dania Abed Rabbou and Mohammad Hammoud.
Jedrzej Gorski Wroclaw University of Technology, Department of Electronics, 5th year Sametime RTC Gateway & Sametime Connect integration with SIP Communicator.
Spring/2002 Distributed Software Engineering C:\unocourses\4350\slides\DefiningThreads 1 Java API for distributed computing.
Li Tak Sing COMPS311F. Case study: a multithreaded chat server The source contains 3 files: ChatServer //the chat server ChatThread //the thread on the.
Final Presentation Smart-Home Smart-Switch using Arduino
Interstage BPM v11.2 1Copyright © 2010 FUJITSU LIMITED INTERSTAGE BPM ARCHITECTURE BPMS.
JLink Linking Mathematica with Java and the other way round…
School of Engineering and Computer Science Victoria University of Wellington Copyright: Peter Andreae david streader, VUW Echo Networking COMP
Cisco Call Manager Attendant Console
Project Management: Messages
Echo Networking COMP
JFS VS. RTC.
Digium | Switchvox Product Announcement
CONTENT MANAGEMENT SYSTEM CSIR-NISCAIR, New Delhi
PRESENTED To: Sir Abid………. PRESENTED BY: Insharah khan………. SUBJECT:
System Models Bina Ramamurthy 9/7/2019 B.Ramamurthy.
Presentation transcript:

® Developing Plugins for SameTime Connect 7.5 Jian Min JIANG Lotus ISV Technical Enablement China Software Development Lab

2 Where can see ST Services?

3 Sametime Community Server Toolkit  Server Application Service  logging in and logging outlogging in and logging out  sending administrator messages  Channel Service  communication with other Sametime entities via a proprietary protocol  Community Events Service  receiveing a variety of events from the community server  General Awareness Service  change the online attributes of the server  Places Admin Service  administering the Places server application  Places Activity Service  writing activity providers to a Sametime place  Server Application Storage Service  storing user-related information as attributes directly on the Sametime server  Light Login Service  MUX application to multiplex a connection to the server  Server Application Token Service  generating a token that can be used to log in as a user to Sametime  Online Directory Service  locate users and groups in the community

4 OfflineMessages Sample (Sametime Server App)  The application allows clients to send messages to a user who is currently offline  The message is saved and then transferred to its intended recipient when that user goes online  Details:  When a message to a user who is offline is received, the message is saved together with details about both the sender and the intended receiver. The server application then waits for the receiver to log in.  When the receiver logs in to Sametime, the server application logs in on behalf of the sender, sends the message, and immediately logs out.

5 Components are used in the sample  ServerAppService  Used for logging in to the Sametime community as a server application  ChannelService  Used for receiving channels from clients  CommunityEventsService  Used for getting notifications on users that log in to the Sametime community  LightLoginService  Used for logging in on behalf of the message sender  SATokenService  Used for getting the sender login token  InstantMessagingService  Used for sending an instant message (IM)

6 Initialization  public OfflineMessagesSA()  {  String hostName="isvserver.lotus.com";  // Create and load the session of components.  try  {  m_session = new STSession("OfflineMessages2");  String [] compNames = { ServerAppService.COMP_NAME,  CommunityEventsComp.COMP_NAME, SATokenComp.COMP_NAME };  m_session.loadComponents( compNames );  m_session.start();  }  catch(DuplicateObjectException e)  {  e.printStackTrace();  exit();  }  m_hostName = hostName;  // Get a reference to the needed components.  m_commEvents =  (CommunityEventsService)m_session.getCompApi(CommunityEventsService.COMP_NAME);  m_commEvents.addUserLoginListener(this);  ChannelService channelService =  (ChannelService)m_session.getCompApi(ChannelService.COMP_NAME);  channelService.addChannelServiceListener(this);  login(hostName);  } UserLoginListener ChannelServiceListener

7 Login as a server application  void login(String hostName)  {  ServerAppService saService =  (ServerAppService)m_session.getCompApi(ServerAppService.COMP_NAME);  short loginType = STUserInstance.LT_SERVER_APP;  int[] supportedServices = { SERVICE_TYPE };  // Server applications login directly to the server, and not through  // the mux. So we can't use the default port.  Connection[] connections = {  new SocketConnection(1516, 17000),  };  saService.setConnectivity(connections);  saService.addLoginListener(this);  saService.loginAsServerApp(hostName, loginType, "OfflineMessages2",  supportedServices);  }

8 Implementing the Channel Listener  public void channelReceived(ChannelEvent event)  {  // Get the incoming data.  Channel cnl = event.getChannel();  try  {  NdrInputStream inStream = new NdrInputStream(cnl.getCreateData());  STId receiverId = new STId(inStream);  String receiverName = inStream.readUTF();  String message = inStream.readUTF();  STUserInstance sender = cnl.getRemoteInfo();  STUser receiver = new STUser(receiverId, receiverName, "");  UsersHandler handler = new UsersHandler(m_session, m_hostName,  cnl.getRemoteInfo(), receiver,  message);  m_watchedUsers.put(receiverId.getId(), handler);  }

9 Implementing the Community Events Service  public void userLoggedIn (UserLoginEvent event)  {  // Check if we are interested in this user.  STUser user = event.getUserInstance();  System.out.println("userLoggedIn:"+user.getDisplayName());  Object o = m_watchedUsers.remove(user.getId().getId());  if (o != null)  {  ((UsersHandler)o).receiverOnline();  }

10 UserHandler Object – Message Handling  Uses the SATokenService to get the sender’s login token  Uses the LightLoginService to perform a virtual login on behalf of the sender  Uses the InstantMessagingService to send an IM to the receiver with the message  Uses the LightLoginService to log out

11 Plugin for sending offline messages  UI  Menu item  Dialog to input message

12 Plugin.xml <extension point="org.eclipse.ui.popupMenus"> <objectContribution adaptable="false" id="com.devworks.example.offlinemessage.prersonselection" objectClass="com.ibm.collaboration.realtime.livenames.PersonSelection"> <action class="com.devworks.example.offlinemessage.OfflineMessageDelegate" enablesFor="1" id="com.devworks.example.offlinemessage.OfflineMessageDelegate" label="OfflineMessage" style="push" menubarPath="im_chat"/>

13 Initializing services private void initializechannelService() { try { CommunityServiceInternal csi = (CommunityServiceInternal) ServiceHub.getService(CommunityServiceInternal.SERVICE_TYPE); Community dc = csi.getDefaultCommunity(); rtcs = dc.getRtcSession(); Field fsession = rtcs.getClass().getDeclaredField("_session"); fsession.setAccessible(true); m_session = (STSession) fsession.get(rtcs); m_channelService = (ChannelService) m_session.getCompApi(ChannelService.COMP_NAME); } catch (SecurityException e1) { e.printStackTrace(); } (how to access Java Toolkit APIs in plugin)

14 Sending offline messages by channel service public void send() { m_channelService = Activator.getDefault().getchannelService(); sendOfflineMessage(); } private void sendOfflineMessage() { STId stid = new STId(person.getContactId(), ""); STUser user = new STUser(stid, person.getDisplayName(), ""); NdrOutputStream outStream = new NdrOutputStream(); try { user.getId().dump(outStream); outStream.writeUTF(user.getName()); outStream.writeUTF(msg); } catch (IOException e) { e.printStackTrace(); } try { Channel channel = m_channelService.createChannel(SERVICE_TYPE, 0, 0, EncLevel.ENC_LEVEL_ALL, outStream.toByteArray(), user.getId()); channel.open(); } catch (Exception e) { e.printStackTrace(); }