What's is better: do a plugin or another app in another container/server?

Hey guys!

I’m doing an application for my company that will be our enterprise communicator and i need to do some services to perform selects and inserts in our database. The interaction with our database (this database isn’t related to Openfire) will be massive as well as instant messaging.

I’m trying to figure out what’s is better: do a plugin inside Openfire that will be deployed as a servlet or do a new application web services based running in another server/container.

In solution 1 (plugin for Openfire) our client will connect on Openfire, use features like IM and our own plugin.

In solution 2 (new app) our client will connect on Openfire for IM and on another server to consume our web services.

This new application has no relation with instant messaging, it’s an app to retrieve information about projects, team, etc.I’m afraid to develop a plugin and my plugin crashes Openfire because will do massive interaction with database.

What’s is better for my situation?

Thanks in advance.

David

If it has nothing to do with OF, then it doesn’t belong as a plugin. Put it on its own server.

1 Like

Now i’m not sure about what i said “has no relation with instant messaging”.

It’s an application that users will consumes information for our database and send instant messaging to another users. The client will send IM for another users and will locate projects and tasks from our database. There is no sense to make services to access our database if the users can’t send IM.

And the user need be logged on OF to access the services (integration with our database)…but i’m afraid to create an overload inside the OF.

I don’t know if instant messaging consumes too many resources from OF and server. Do you know if OF can handle instant messaging and a plugin that will do massive access to MongoDB?

So far, it still seems like you want a service that does it’s own thing, but also does IM. This alone can still be accomplished in a standalone app as this app can just be another XMPP client. The only thing here that makes me wonder if it should be a plugin is the requirement that the user is logged on to OF, although without more details I couldn’t say if a plugin is necessary to accomplish this.

You say the plugin would do massive access to it’s own db, but that on it’s own doesn’t use any OF resources, (possibly threading but that can be worked around) other than you have tied the memory usage to OF, thus these two seemingly separate applications are now sharing some common system resources.

Typically a plugin would be used to add custom capabilities to the XMPP protocol itself (i.e. you would make your service API an XMPP extension) or you are making some sort of alternative service that is used to add capabilities to OF via its internal api’s. This service could then use an alternative communications means like HTTP.

Nice answer, buddy!

The user need to be logged because this service will be accessed via internet and intranet. I don’t want some guys trying to consume my services without being authorized for it but this isn’t a problem for OF because the same guys that try to consume my service, they can try to use some plugin (e.g a servlet) from my OF.

After your answer, i see that is a security problem and i still have doubts if my service add custom capability or not because i’ll need to use my service to see what employers are working in same thing so i can talk with them. The clients can do some HTTP requests to consume my services.

I think the app running standalone is better because is indepent from OF. If i have a problem on my service, the people can still sending IM and manutaince is better too.

Thanks, rcollier. Yours answers helped me a lot.

David