login - help - about
?
header
Service
Created By anonymous - 19:40, September 22 2007
Description Easy to use local and remote service invocation api.

The BeNOW service api allows publishing and invocation of like operations. Typically, it is used to group and publish methods required for manipulation of objects or common state. It allows for remote invocation with no overhead... no mapping, no manual publishing, etc. Services can be accessed locally, remotely via http post requests or via a remote java client.

DOWNLOAD
benow-service.nightly.tar.gz - nightly CVS checkout


DOCUMENTATION
API documentation is available online or within the bundle.


FEATURES
Interface and Implementation - Services are described as interfaces with instances living on the server. The services are taken and remotely invoked according to their interface. The processing takes place on the server, with the results returned.

Invocation via standard methods - The primary implementation (more may be added) is invocation via http post command (in the web project as it relies on jetty servlet engine), which parses parameters into method invocation, invokes method and returns the result object as XML (via the benow xml api). Easy/standard invocation makes for easy testing and facilitates cross language/platform interaction.

Standard java on client - If the service interface is known on the client (ie in a jar) and javac is present, a dynamic client is created to translate the client side (java based) service invocations to http requests and back across the wire. It's dirt simple, no mapping and very easy to use.

Discoverable - The services are designed in such a way that they may be discovered by those that intend to use them. This enables external use of the api in ways not envisioned by the publisher.

Secure - Security is enforced via the benow security API with service and method level restrictions in place, if desired. The security is managed centrally and applies to anything else that uses the apis.

Extensible - The cross wire protocol is written abstractly, so that it may be modified according to needs. UDP, demuxing, etc can be implemented if you desire.

Light weight - fast and light, it gets the job done quickly

Easy to use - Services are registered within an ant build script, so that services within a jar may be published simply by putting them on the classpath. No configuration to maintain.


NOTES
The primary remotely accessible implementation of the service api is within the Web project, as it depends on the jetty servlet engine. The code within the service project is a framework for service management and publishing. It serves as a basis for constructing service publishers and remote access, the primary implementation of which is the HTTP Service Connection in the Web project. Grab that project if you're interested in using it, or this one if you want to see the workings or implement your own.

USE IT!
It's GPL, use it with other open code. I like this little sucker... it makes my life much easier. If you do or don't, I'd like to know. I am available for free limited support or for extended implementation/derivation on negotiation.