Ignite Realtime Blog

15 Posts tagged with the xmpp tag

We've just released a new project, named Tinder. Tinder is a new Java based XMPP library, providing an implementation for XMPP stanzas and components.

 

Tinders origins lie in code that's shared between Jive Software's Openfire and Whack implementations. The implementation that's provided in Tinder hasn't been written again from scratch. Instead, code has been moved from the original projects into Tinder, preserving al of the existing features and functionality. Most of the code that's now in Tinder is based on the org.xmpp package implementation that previously existed in Openfire and Whack. This is the code that defines classes such as Packet, JID, IQ, Component and their extensions. Additionally, some multi-purpose code (such as the DataForm and Result Set Management implementations have been moved to Tinder as well.

 

Why a new project?

 

Parts of the code of Openfire are useful in other contexts than that of an XMPP server implementation. Developers might, for instance, want to use the XMPP stanza implementation within other projects. Having to include Openfire as a dependency of such a project is quite a bit of overkill. In such an example, it would be useful to have a small project that you can include, that offers you a lightweight XMPP object implementation, without the rest of the features that Openfire offers. Enter Tinder. Tinder will allow developers to re-use parts of Openfire, without having to include Openfire itself.

 

There's other benefits to Tinder though:

 

Tinder will replace some most of the duplicate code that's currently shared in Openfire, Whack and ConnectionManager projects. Removing duplicate code will make it easier to maintain and develop these projects. By delegating the implementation and maintenance of the low-level XMPP implementation, Openfire, Whack and other developers will be able to focus on the development that adds value to their project.

 

On the flip-side of that medal, you can argue that the 'core' code that will make up Tinder deserves a bit of dedicated development attention (unit tests, bug-tracking, stuff like that). This would benefit any attempt to really fine-tune the code, for example for high-performance tuning. Currently, the code is a bit put in the shadows of the other projects (of which they are part of).

 

So, will this replace Smack (the library that provides the base of Spark)?

 

No, definitely not. Smack offers a full-fledged XMPP client implementation, while Tinder only defines some XMPP building blocks. Tinder provides some basic objects on which a client library such as Smack could be build. However, Smack does not share the same code base as Openfire and Whack do. It's therefor unlikely that Tinder and Smack will be merged in the foreseeable future - there's simply to much difference.

 

What's next?

 

We've wrapped up a initial roadmap, in which we capture the first steps of the development of Tinder. As always, you're invited to contribute. We're looking forward to hear your suggestions, thoughts and ideas. If you're interested, you can find more information on the new Tinder-related community space and project page that have been opened on IgniteRealtime.org.

1,118 Views 5 Comments Permalink Tags: planetjabber, xmpp, release, announcement, tinder, project

SAN JOSE, Calif. — Jan. 20, 2009 — Adobe Systems Incorporated (Nasdaq:ADBE) today announced plans to publish the Real-Time Messaging Protocol (RTMP) specification, more..

 

This is good news for the Red5 project and the Red5 plugin for Openfire with the Red5phone Flash phone. It will be interesting to see if the XMPP Standards council will give the Jingle RTMP Transport proposal another consideration.

6,484 Views 2 Comments Permalink Tags: xmpp, flash, red5, jingle, red5phone, rmtp

I am proud to announce that I have successfully completed my Google Summer of Code Project. As we hit the official pencils down date, I thought it might be good to publish results and final toughts.

 

I started the project in time and completed it 3 working days later than planned, though it could require more effort if we didn't change our goals. I cooperated with Tomas and Tobias to fix the flaws I couldn't notice during development. Changes I made to Openfire and XIFF are listed here and here. All changes have been imported into trunk and hopefully be included in next releases.

 

It was a wonderful experience to work on Openfire and SparkWeb, especially with my mentor Gaston. Even if my GSoC project is complete, I feel there'll always be something to do for me with Jabber. I am having fun with Jabber, and planning to continue working on Jabber development as a community contributor.

 

I would like to thank Google for giving me such a great opportunity. I also thank David Smith and Peter Saint-Andre for their excellent support.

 

See you around!

3,918 Views 6 Comments Permalink Tags: xmpp, openfire, sparkweb, xiff, bosh, gsoc

This weekend I jumped back into development of SparkWeb to reacquaint myself with the list of outstanding issues/bugs in order to set a course for fixes and improvements. As a result, I have updated SparkWeb's roadmap in its issue tracker, adding a handful of bugs to be smashed in the weeks ahead for the 1.0 release (and also closed a lot of outdated ones). Clearly the next release will be focused on bugfixes and stabilizations. However, let's look into the void a bit further and see what new features and enhancements are on the horizon.

 

 

Dynamic Theming and Skinning

 

After developing on and using SparkWeb for nearly a year now, I have grown tired of its current skin and icon theme. In the code we are actually hardcoding a lot of color values and of course hardcoding the skin images themselves. This is not ideal in the least. Let's work towards a skinnable SparkWeb with updated icons. What I have in mind is something less "heavy" on the eyes, something like Yahoo's Flex skin they released under the BSD license:

 

http://www.yswfblog.com/blog/wp-content/uploads/2007/12/yskin_401x235shkl.jpg

 

 

As for the icons, they should also be themable. Imagine SparkWeb with a beatifully clean flex skin matched with the IM-related icons from KDE's Oxygen icon theme. I would like to see that, myself.

 

 

TLS Support

Secure communications over XMPP. Enough said, right? I am sure a lot of you would like this feature.

 

 

Plugin Framework

Easy extendabilitiy with the option to disable/enable certain functions would be great. I am sure a lot of you saw Dele's manipulations of SparkWeb adding Audio/Video communications. That is an obvious use case of such a framework, and I image his code would serve as a good guide for determining "plug points" in the code to implement it.

 

 

Stay tuned, and don't be shy to report bugs and submit patches of course.

 

--Armando

2,961 Views 7 Comments Permalink Tags: xmpp, flex, sparkweb, xiff, jabber, roadmap

Hey all.

 

I have been selected as the new project lead for both the SparkWeb and XIFF projects here at the Ignite Realtime community. For about half a year David and I were the only developers contributing code to those projects on a full-time basis -- before SparkWeb's source was even opened up. I added initial support for shared groups, group chat invitations, kick/ban/nick-change announcements in group chat, various bug fixes, and a bunch of other little features here and there. With my previous work on SparkWeb I have seen first hand how its code has matured over the year. I think it is in a 'good' state right now, but clearly there is always room for improvements.

 

David has made a lot of necessary refactorings in the past that have improved its performance and Safa is currently ensuring SparkWeb is fully compatable with BOSH 1.6. Also, we have various other patches containing excellent improvements from other people in the community that will be included in an upcoming release. These two projects now have a decent amount of activity from outside of Jive, which is great.

 

From some recent conversations in the weekly chats it is clear to us that people feel comfortable with Openfire, the server -- and that what they are expecting to see is a client evolve to the same degree. I would like to hear more about this perspective so I can focus to make it happen in SparkWeb's use-case.

 

Interested in getting involved yourself? Well, what are you waiting for? This is an open source community after all... grab the source and join the fun. Send any of your code contributions, ideas, or feedback to me and let's make the most excellent XMPP web app/lib out there!

 

--Armando

2,439 Views 11 Comments Permalink Tags: xmpp, ignite_realtime, sparkweb, xiff, bosh

I am working on BOSH support of Openfire and SparkWeb as part of the Google Summer of Code 2008. As we got past the midterm evaluations, my mentor Gaston and I thought it would be good to inform the community about what I have done so far.

 

My proposal involved updating and improving Openfire's BOSH support by updating the implementation to BOSH 1.6, and migrating Apache MINA as its connection provider.

 

I started with creating a load test environment to see Openfire's current performance, and created a document explaining how to use it. Then I ran some load tests using that environment. Unfortunately, the test machines I used were not enough to produce desired results.

 

As the next part of the project, I updated Openfire's BOSH to support both 1.5 and 1.6. Here is a summary of the update:

 

  • Added 'hold' and 'ver' attributes to the session creation response.

  • Fixed version checking. Before it was done using a double variable, which  may show that 1.5 is newer than 1.10.

  • Script syntax support has already been added before. Finetuned it to prevent  caching of responses.

  • Implemented in-order message forwarding (JM-1412), because further work seemed to be depend on this implementation. This is the part that took most of my time, also which made me to get more familiar with the code  after long debugging sessions.

  • Implemented acknowledgements, which was intoduced in version 1.6.

  • Added support for session pauses, which was also new for 1.6.

  • Implemented overactivity checking. In 1.5, there was only 'polling  too-frequently error', and a little description about it. Version 1.6 introduced a new section for overactivity, and has a detailed description of which  circumstances should be considered overactivity.

 

With this update, I have seen that some BOSH issues I was not aware of (JM-1245, JM-1246) have also been resolved. The update has been merged into Openfire trunk, so you can grab and test it.

 

After the update, I started to investigate how to migrate to Apache MINA, and found out that it would be harder than we expected, because the version used by Openfire, 1.x, did not have any http support. We had also other alternatives, like Grizzly, so we deferred the decision about connection providers until we do some tests on them.

 

I am currently working on SparkWeb to make it fully compatible with BOSH 1.6. In the meantime, I am cooperating with Tomas Karasek, who is developing BOSH for Gajim, to resolve any BOSH related issues in Openfire.

 

I am open to any ideas/suggestions.

5,547 Views 9 Comments Permalink Tags: xmpp, openfire, sparkweb, gsoc, open-source

SparkWeb Open Source

Posted by David Smith Apr 22, 2008

Earlier today I exported our svn repository for SparkWeb and committed the intial import to the new open source repository! Instructions for getting and building the source are available. Getting and Building SparkWeb. A chat room for discussion of SparkWeb development can be found at sparkweb@conference.igniterealtime.org. I'm looking forward to seeing what the community can do!

8,328 Views 20 Comments Permalink Tags: planetjabber, xmpp, sparkweb, open_source, release

XIFF 3 Beta

Posted by David Smith Apr 2, 2008

I'm happy to announce that we've just released an initial beta of XIFF 3.0, our open source ActionScript library for building XMPP clients. Continuing along the path set by Sean and the previous developers of XIFF, we've moved to embrace ActionScript 3 and Flex, while adding significant functionality improvements at the same time. Highlights include BOSH support, VCard support, and redesigned APIs. Feedback is strongly requested; It has been quite a while since a XIFF release, and a lot of things have changed, so I will be interested to see how the community feels about the direction we've taken things.

 

Some parts of this new release are still in a transitional stage. For example, SASL support is only available for BOSH connections at the moment. As more code is generalized between the BOSH and Socket connections, this limitation will go away.

4,493 Views 9 Comments Permalink Tags: planetjabber, xmpp, flex, sparkweb, actionscript, xiff, webapps, release, beta

David recently blogged about how XMPP is Taking Over the World  starting with the recent AOL tests and his hopes that Microsoft, Yahoo, and QQ would follow AOL's lead.

 

Well, this must have got Matt thinking about how XMPP really could take over the world.  His vision of XMPP is moving way past IM with a grand vision for how XMPP could be the future of cloud services.

 

I'll let you read his entire post over on Jive Talks, but here is a little snippet:

There's a new firestorm brewing in web services architectures. Cloud services are being talked up as a fundamental shift in web architecture that promises to move us from interconnected silos to a collaborative network of services whose sum is greater than its parts. The problem is that the protocols powering current cloud services; SOAP and a few other assorted HTTP-based protocols are all one way information exchanges. Therefore cloud services aren't real-time, won't scale, and often can't clear the firewall. So, it's time we blow up those barriers and come to Jesus about the protocol that will fuel the SaaS models of tomorrow--that solution is XMPP (also called Jabber).

 

Matt's post is also on Digg.

2,757 Views 1 Comments Permalink Tags: planetjabber, xmpp, cloud, cloud_services, web_services

Yesterday I ran across an extremely exciting fact: AOL is now running an XMPP server at xmpp.oscar.aol.com that accepts logins from AIM/ICQ accounts and can talk with AIM/ICQ contacts. This means that there's suddenly 53,000,000 more people (according to 2006 numbers from Neilsen/Netratings) that are accessible from XMPP. I've made a brief timeline of important events in XMPP's growth.

 

1999: Creation of XMPP

2003: Jive Software releases the first version of Jive Messenger

2003: XMPP passes ICQ in number of users

2004: IETF approves XMPP as an official standard

2004: Google Talk released, dramatically increasing XMPP's market reach

2005: Apple announces XMPP support in iChat and Mac OS X server

2006: LiveJournal adds XMPP support, creating 14 million XMPP accounts in the process

2008: AOL creates an XMPP-OSCAR bridging server, adding another 50 million or so users accessible via XMPP

 

As you can see, over the last four years XMPP has gone from a relatively tiny force to a huge player in the IM world. Now all we need is for Microsoft, Yahoo, and QQ to follow suit and most IM users will be able to talk to each other without the hassle of creating accounts on each service and using lots of different programs (or multi-protocol programs) to connect to them.

 

I'm extremely excited about the possibilities of this, although a little worried about the lack of public acknowledgement from AOL. Hopefully they will continue to move forward with this, and make an announcement in the near future.

4,073 Views 3 Comments Permalink Tags: xmpp, awesome

Openfire Unleashed

Posted by Gaston Dombiak Oct 31, 2007

Openfire is the award-winning instant messaging server known for its simplicity, elegance, performance and extensibility. With each new major release, scalability has been improved; however, being able to scale a lot without redundancy or high availability poses a risk to every connected user if the single server goes down.

 

After many months of work that risk is now part of the history. Openfire Enterprise 3.4.0 provides support for clustering. Clustering will let you run Openfire on several machines serving the same XMPP domain. Clustering can be enabled with just one click from the admin console. Machines running Openfire Enterprise will automatically meet between them to form a cluster. With clustering you not only get high availability but also improved scalability. In our internal load tests, we got more than half a million concurrent connections sending lots of packets in a cluster of just 2 nodes.

 

Another nice addition to Openfire Enterprise is SparkWeb. Users can now connect to the server and chat from your website. Read the SparkWeb: Next Generation blog post for more information.

 

On the open source side we also have excellent news. More than 30 new features and more than 30 bugs were fixed. Personal Eventing via Pubsub was added so you can now publish your geo-location, music you are listening to and let subscribers be alerted.  From the admin console you can manage users roster. Moreover, it is now possible to retrieve photos from LDAP and use them as users avatars. The complete set of changes can be found here.

 

You can download Openfire from here. Openfire Enterprise can be downloaded from here.

 

Enjoy,

 

Openfire Team

3,922 Views 2 Comments 0 References Permalink Tags: planetjabber, openfire-server, xmpp, openfire, clustering, clustering

SparkWeb: Next Generation

Posted by David Smith Oct 31, 2007

One of the new things other than clustering in Openfire Enterprise 3.4 is a new release of SparkWeb. This marks a number of major transitions for it:

 

Simplified Installation

 

First, it's now built into Openfire Enterprise. No more downloading a separate plugin, and no configuration required. You'll find it in a new sidebar item in the "enterprise" tab of the admin console.

 

Moving to Flash



!http://dscoder.com/sparkwebflex.png|style=float:right; margin-top:10px; margin-left:5px;|src=http://dscoder.com/sparkwebflex.png!

 

Second is that it's entirely new code. As we worked on the original SparkWeb, we ran into many limitations of the "ajax" (html + CSS + javascript + xmlhttprequest) platform, including browser compatibility issues, difficulty with localization, and the inability to support any sort of richer collaboration experience like voice or video. As a result, Derek DeMoro wrote a prototype of a web based XMPP client in Flash, using XIFF and Adobe's new Flex API. The new SparkWeb is descended from that, rather than from the previous version.

 

 

 

Work In Progress

 

There's good and (temporary) bad with this transition. The new code supports vcards and avatars, and is significantly smaller, resulting in quicker page loading. There's also a revamped UI, including contact list filtering much like Spark has. On the other hand, group chat support and secure connections are not quite ready in the new code, and are planned for the next minor Openfire Enterprise release.

 

If you have any questions or problems, feel free to post them in the Openfire Enterprise Support forum

9,057 Views 5 Comments 0 References Permalink Tags: xmpp, openfire, flash, sparkweb, webapps

Monday, after a long period of heavy development, I finally put out version 1.1.0 of the IM Gateway plugin! A total of 85 issues from JIRA were closed along the way and I'm quite pleased with the results. Along the way there were a number of stumbling blocks where I would just about be ready to release and something major would come up, and I certainly did not want to release anything with serious issues going on. As development continued, more and more features became interesting to me and were implemented. Since 1.0's release, I've had a number of helpful folk step up and offer patches, testing, code, translations, and help with libraries I depend on. I want to take a moment to thank everyone who contributed in any way! You are all invaluable to me!  There are a number of big plans coming for the next major release, but I wanted to highlight some of the things from 1.1.0's release and even comment on some of it!

 

First off, there's XMPP/Google Talk support. One might ask, why do you want XMPP support when there's s2s? That's a question that's been fought many times in the past and typically results in nothing being decided. Well I decided to implement it and then another helpful person (thanks Mehmet!) took my piddly start with it and turned it into a full on transport for the plugin. After implementing it I found myself using it with some accounts I had seen no reason to add to my Adium X config but decided hey, if I can handle it server side, then I'll just carry it around with me. Has been working out really well!

 

Then there's Gadu-Gadu support. This is a protocol I did not expect to ever implement. Why? Everything about it is Polish. I couldn't find my way around the web site enough to even download a copy of the client.  However, I said early on that if someone would translate or help me download or generally help me get it set up and there was a good API out there, I'd do it. So thanks to Marcin for stepping up and helping me get this started! The API itself was amazingly enough the easiest API to work with yet!

 

And what about SIMPLE support? Thanks to Ravin and Patrick for writing this support as I wouldn't have even known where to begin! I still don't understnad SIP/SIMPLE. Who knows if I ever will. But the transport sure works with my OpenSER server! I'm hoping some folk will take a look at it so I can get a feel for what it does and does not work with and maybe I can work with them to tweak it to work correctly with various implementations.

 

Another interesting thing that was added is an XMLRPC interface so site administrators can write their own web front ends for users to register with the various transports. That way folk could use some various standard web look and feel for the registration, and/or their own authentication mechanism, or even just something they consider "nicer" for their users, and dodge around typical requirements of registering through a client or requiring the admin to do it for them.

 

A lot of the inner workings of the plugin were redone, making things a lot more efficient in terms of network traffic and overall coding structure. I don't know that anyone but me will appreciate the reworkings of the code, but hey. =)

 

One of the interesting things that came about is that I ended up as the lead developer for Martyr, a very cool IRC library. IRClib just wasn't getting it done for me so I tried out Martyr, adored it's structure, and offered to help improve it. It's already led to a far better IRC transport than what I had before.

 

Beyond that I want to thank the folk from nimbuzz for creating the wonderful project OpenYMSG (a fork of YMSG) that fixes a number of problems I kept running into in the past! Through their improvements Yahoo support in the IM Gateway plugin was promoted to being considered stable!  On top of that they've helped me out some with JML, the library that handles MSN support. Great work folk!

 

Well that's enough of me, I'm excited about things to come though and I hope you all will join me in that excitement and continue to help me with testing, ideas, and whatever! =)

1,843 Views 2 Comments Permalink Tags: general, planetjabber, openfire-server, xmpp, gateway-plugin

Want to come to Portland for XMPP Devcon or OSCON without spending money on travel? Have a cheap boss who won't foot the bill?

 

If you want Jive Software to pay for your travel, you just need to win the OSCON Trip Give-A-Way Contest by creating the best blog entry about how Clearspace, Jive Forums, Openfire and/or Spark have helped your organization. Your blog should be entertaining and creative while describing how you've used Jive software to make your organization better in some way.

 

All of the details and fine print can be found on the Jive Talks blog.

 

1,388 Views 11 Comments 93 References Permalink Tags: planetjabber, planetjabber, openfire-server, xmpp

Have you made your reservations to attend XMPP DevCon and the O'Reilly Open Source Convention (OSCON) this July in Portland, OR? It may seem a bit early to be thinking about conferences in late July, but hotels will fill up quickly in Portland with so many events converging around OSCON (July 23-27). Not only are we planning DevCon for July 23-24, but Ubuntu Live will also be in town July 22-24.

 

Roughly twice a year, the XMPP community holds a DevCon event to discuss protocol changes, do interop testing, and to socialize in real life. The last event was in Belgium along with Fosdem in February. The February meeting included discussions about certification programs, file transfer issues, Jingle, protocol developments, end to end encryption support (extensions), personal event pubsub, message archiving, and more.

 

Discussion topics for DevCon in July will likely include continued discussion on many of the topics above plus spim prevention, simultaneous XML editing (for whiteboarding etc.), clarifications to rfc3920bis, and more. Any developers working on XMPP servers, clients, code libraries, or related applications are welcome to attend. Since many of you in the Ignite Realtime community fit into this group, it would be great to see you attend DevCon.

 

Jive Software will, of course, be out in full force for XMPP DevCon and OSCON, since they are right in our hometown of Portland, OR. At OSCON, I will be on a panel discussing the Art of Community and Matt Tucker will be leading a session called Jingle: Cutting Edge Open Source VoIP.  Matt is also planning some cool stuff for DevCon. Last year during OSCON, we held a great party, BeerForge, and we plan to do something similar again this year!

 

 

We hope to see many Ignite Realtime community members at these events! It is a great way to meet some of the people face to face that we collaborate with over email, IM, and other online environments.

1,073 Views 0 Comments Permalink Tags: planetjabber, xmpp