Welcome to the Sambuca Embedded HTTP Framework!


Back to RogueLogic Home

Quick Summary

Sambuca is an Open Source, Java HTTP Server framework that allows developers to embed a HTTP server directly in their applications with custom HTTP Request Handlers, so that their application can directly process incoming HTTP Requests and easily send back HTTP formatted responses to the requesting client. Applications can host standalone HTTP Services such as Web Service without having to deploy and integrate with a full application server such as Tomcat, JBoss, or WebLogic.

The Sambuca Framework solves the problem that most companies that create large multi-tier applications face: "How to integrate processes across multiple hosts?" Most times we end up creating Rube Goldberg Machines. The Sambuca Framework should greatly simplify the "machines" we have to build... It does this by allowing developers to quickly and easily make their applications and process HTTP enabled and aware. All processes running on any number of hosts can now easily communicate via HTTP using Sambuca as the "Server" and language internals such as Java's HttpUrlConnection. This also allows for client applications and processes that are not Java based such as applications written in C++, C#, perl, etc to communicate with Java programs.

What is the Sambuca Embedded HTTP Framework?

Sambuca is a HTTP Server and Request Handling framework that allows Java developers to embed a HTTP Server directly within their applications. It allows developers to create custom HTTP Request Handlers which can be plugged directly into the HTTP Server itself, this allows applications which may not be designed to be hosted within an application server such as Tomcat, JBoss, or WebLogic to become HTTP aware. For example, an application can deploy their own built-in Web Services so that other applications can make XML-RPC requests directly into the application across the network. Clients of these XML-RPC enabled application need not be Java-base so long as they can make HTTP requests. Most modern languages such as Java, C#, Perl, and others have libraries included with the language distribution which allows programmers to open HTTP URLs and read and write on those connections without having to deal with the low level socket calls. Although these languages solve the needs for HTTP Client, they are poor in allowing developers to easily start and received requests the opposite direction. Meaning these languages do not include libraries which allow developers to "listen" for incoming HTTP requests they only allow applications to send HTTP requests. The Sambuca framework solves this problem for Java based applications, by allowing developers to easily start an HTTP Server which is fully contained and self managed and allows them to easily plug in to the Request handling flow, so that their applications can listen for and receive incoming HTTP Requests. Traditionally applications require separate deployments to Web Application Servers such as Tomcat and others to host objects such as Servlets and JSP pages which may through some very complex process such as writing to a database or communicating directly via sockets or RMI to some process running externally from the Web Application Server. This creates "Rube Goldberg Machines" or overly complex application with so many round about processing modules to accomplish what on paper should be a very straight forward solution. This problem is extremely command in large Enterprise such as Wall Street Investment Banks, where a lot of custom software is written. People tend to refrain from writing socket based applications directly due to the complexity and difficult in maintaining these applications across large organizations. Plus custom application level protocols makes it difficult for inter-process communications since everyone needing to interface with the application either needs to understand the protocol or obtain a client library from the team maintaining the server. This places limits on the languages and systems which may communicate with the process. Since HTTP is an extremely common protocol and again built-in language support for becoming an HTTP client, HTTP is the natural choice for inter-process communications across a network.

What is the Web Service Auto Mounting?

Web Service Auto Mounting, is the ability of the Sambuca Simple Web Service Framework, to automatically scan a Java class (normally a Facade), and expose all of the class's public methods as APIs via a Web Service interface running on a Sambuca HTTP implementation. Unlike other web service implementations, the Sambuca WS Auto Mounter does NOT require any configurations or special interface implementations. Instead the Auto Mounter uses refection to introspectively build an Inventory of available methods. All you need to do is class the fully qualified class name to the WebServiceAutoMounter Sambuca HTTP Server implementation, and it will do the rest. (See for more information.) The Sambuca Simple Web Services Framework also includes a Client Stub Code Generator that will automatic create the required client class(es) needed to make Remote Method calls via the web services interface. The Client Stub Code Generator, simple requires that you pass it the URL of the Sambuca HTTP Server hosting your Java Facade Class.