Skip navigation
This discussion is archived
3104 Views 7 Replies Latest reply: Nov 19, 2003 8:57 AM by Iain Shigeoka RSS
Calculating status... 1 posts since
May 1, 2003
Currently Being Moderated

May 1, 2003 7:18 AM

Smack/Jabber architecture level question

Hi,

 

From my reading, it is my understanding that server "components" can be "plugged in" to a jabber server three different ways: as a shared object library (loaded), as a separate process communicating locally over STDIO, and as a separate process communicating locally or remotely over TCP.  IIRC, a process component that communicates with the jabber server over TCP is more correctly referred to as a "service."  Finally, a "service," from the perspective of the jabber server, is simply a client, and as such, a service enjoys the full "presence" services of the Jabber Session Manager (JSM), whereas the "loaded" and STDIO jabber components are not handled by the JSM.

 

My first question is, is my above understanding accurate?  Second, which modes of connecting to the jabber server as a component does the Smack API support today?  If Smack does not support all of the above described modes today, which modes does Smack plan to support in the future?  Thanks.

 

Bill

  • Matt Tucker Jiver 3,194 posts since
    Jun 28, 2001
    Currently Being Moderated
    May 1, 2003 9:26 AM (in response to Bill Catlan)
    Re: Smack/Jabber architecture level question

    Bill,

     

    I assume you''re referring to either jabberd or the server from Jabber Inc.? I''m not very familiar with those servers since we''re more focused on our own XMPP server, Jive Messenger. However, my guess is that the only option for Smack and jabberd would be as a process componnent over TCP.  You could use this for doing things like building chatbots.

     

    In a future release, our own server will have a plugin architecture that is exposed to end users. This will allow the "shared library" type approach.

     

    Regards,

    Matt

    • Calculating status... 1 posts since
      Apr 11, 2003
      Currently Being Moderated
      May 8, 2003 2:10 AM (in response to Matt Tucker)
      Re: Smack/Jabber architecture level question

      Is there any problem with using Smack as a server component over tcp/ip?  I know jabberbeans is suitable for such use, and I can''t see why jabberbeans would be suitable and smack wouldn''t be.  I''m currently using Marbles as a server component but I''m thinking of switching.

      • Matt Tucker Jiver 3,194 posts since
        Jun 28, 2001
        Currently Being Moderated
        May 8, 2003 6:42 AM (in response to Robert Wills)
        Re: Smack/Jabber architecture level question

        No, I can''t think of any reason that it wouldn''t work as a server component. However, if you describe what you''re looking to do, I can probably give a more specific answer.

         

        Regards,

        Matt

        • Calculating status... 2 posts since
          Nov 18, 2003
          Currently Being Moderated
          Nov 18, 2003 8:32 AM (in response to Matt Tucker)
          Re: Smack/Jabber architecture level question

          I had a similar question.  I want to use smack as the api to provide authentication via a server-side component.  The question I had was since the connection for a component was slightly different then a regular client, I wasn''t sure if smack could support it. 

           

          Does smack support writing server-side components? And if so, does the login technique change at all?  (I know the xml is different, requiring the jabber:component:accept namespace.)  Any info you can probide on this?

  • Calculating status... 18 posts since
    Oct 28, 2003
    Currently Being Moderated
    Nov 18, 2003 9:18 AM (in response to Bill Catlan)
    Re: Smack/Jabber architecture level question

    Wolpert,

     

    Assuming that the authentication component you would like to write is an xdb handler for jabberd, I think that you are out of luck -- I was

     

    The XMPPConnection class doesn''t have a method to support authenticating with jabberd as one of their accept components.  login() does a lot of work that is great for actually logging in a user session, but the component API expects things to go differently.

     

    One could certainly add a method for component authentication.  I ended up using the CPAN Perl module Net::Jabber for that particular piece of my pie.

     

    Regards,

    Keith

    • Calculating status... 2 posts since
      Nov 18, 2003
      Currently Being Moderated
      Nov 18, 2003 9:36 AM (in response to Keith Counsell)
      Re: Smack/Jabber architecture level question

      Yeah, that''s what it looks like to me too.  However, it seems like it wouldn''t be too hard to extend XMPPConnection to add a login for the component login... I just have to get the SHA hashing done correctly.  (Of course, if I did go down this path, I''d release the changes back to jive folks)

       

      I wanted to keep the component in Java... and was going to check out JSO.  If I''m going to leave Java, I might as well do it in C and try to keep it inprocess of the jabberd server at this rate.

      • Bronze 257 posts since
        Jan 10, 2003
        Currently Being Moderated
        Nov 19, 2003 8:57 AM (in response to Ned Wolpert)
        Re: Smack/Jabber architecture level question

        Ya, it''s a tough call. We created Smack as a client library solution so there is no component oriented functionality included. You''d have to roll your own. Although, as you also mention, it is really just sign-on which should be relatively easy to add.

         

        If you do add it we''d love to take a look and perhaps add it as a Smack extension in the standard distribution.

         

        -iain

More Like This

  • Retrieving data ...

Bookmarked By (0)