Hosted by

MidWay - A Service Request Broker

Main Page





Download (ftp)



July 15, 2004Release of version 0.1.0 of the Python interface module
February 22, 2004Release of version 0.13.2
December 9, 2003Release of version 0.13.1
October 9, 2003Release of version 0.13.0
March 18, 2003Release of version 0.12.0
October 5, 2001Release of version 0.11.0
November 30, 2000Bugfix release of MidWay
Initial Public Release of the native Perl module
October 19, 2000Initial Public Release
April 24, 2000Initial Release

What is MidWay?

MidWay is a SRB (Service Request Broker). A SRB is very similar to a ORB, but has a couple of very important differences. MidWay have no objects, so It is completely stateless. It works by function passing, not method passing. Another major difference is the complete lack of any IDL or other form of parameter description, you pass and return an octet buffer, (string) no more, no less.

The design goal of an ORB is to provide the framework to enable distributed objects to communicate. A SRB is just as distributed but the design goal is speed, scalability, and simplicity.

The name MidWay is a pun on middleware, and are used to make n tier programs. Two tier is the fat client model. In three tier models you usually have a thin client (first tier) that perform GUI and user interaction that talks to a server (second tier) that again talk to your database (third tier).
While SQL is the usual language between the second and third tiers, MidWay is intended for the interaction between the first and second tier.

I intend to quickly add language bindings for Perl, TCL, PHP, Python and Java. (As you see from the release rate, quickly is a relative term). Allowing programs in many languages, primarily our beloved scripting languages mentioned communicate. I envision clients in Java, PHP, and TCL/tk while Perl will often be used in the second tier.


The current release is ALPHA 0.14.0. There is an API change in this release. New to this release is a Python interface, distributed separately. The perl interface is released in a new version now as well.

The languages fully supported currently is C, Perl, and Python. I also have a client only module for Perl, currently included in the MidWay dist. It will soon be a seperate package.

The apache modules is currently unworkable, I'll make a release for Apache 2.0 soon. The Apache API has changed drastically since the 1.x series.


Currently MidWay is only tested on Linux. You must have pthreads. It should compile quite easy on other Un*x platforms. I've kept in mind to be as POSIX clean as possible

Contact & Mailing list

Feel free to contact me, if you have questions, suggestions or bug reports (please have a look at the bug-list before you report a bug).

I'd also like to hear from you if you want to contribute to MidWay. Help is always welcome.


MidWay is published under the terms of the GNU General Public License (LGPL) and the GNU Lesser General Public License (LGPL).

The reason both licenses are used is that a part of MidWay are libraries you need to compile into you application, and other parts are runtime daemons. The foremost are licensed with LGPL, while everything else is GPL.

Last updated March, 18th, 2003, by Terje Eggestad