Code Monkey home page Code Monkey logo

oz's Introduction

Welcome to OZ!

What is OZ?

OZ is a commercial-quality, high-performance implementation of "message-oriented middleware" that is ready for use by applications in many areas, including but not limited to financial market data applications.

OZ was designed to support many of the most popular features of typical MOM's:

  • publish/subscribe messaging using topic-based addressing, supporting hierarchical topic namespaces and "wildcard" subscriptions;
  • request/reply (inbox) messaging for transactional interactions;
  • dynamic service discovery with minimal configuration;
  • broker-less architecture for reduced latency and optimum throughput;
  • self-describing messages (thanks to OpenMAMA-omnm).

Who uses it?

OZ is the middleware layer that powers the NYFIX Marketplace -- the world's largest FIX network, which processes on the order of 50 million messages per day with unmatched reliability and outstanding performance.

What's so special about OZ?

OZ is the only commercial-quality, high-performance middleware solution that is also open-source.

While there have been plenty of open-source middleware solutions (like JMS and AMQP), none of them have really been suitable for the demands of real-time, low-latency, high-throughput messaging.

There are a number of high-performance middleware solutions, but they are almost exclusively commercial products.

Why is it called OZ?

OZ brings together two world-class software projects: OpenMAMA and ZeroMQ:

  • OpenMAMA provides a "middleware-agnostic messaging API" that has been used for many years in a number of commercial products and in-house systems. OpenMAMA grew out of the original MAMA implementation by Wombat Financial, and was donated to the Linux Foundation by the New York Stock Exchange. OpenMAMA also provides utility functions including timers, queues, dispatchers, loggers, etc.

    However, the Qpid open-source transport supplied with OpenMAMA has not been a match for the features, reliability or performance of the commercial OpenMAMA transports, and is not typically suitable for production use.

  • ZeroMQ has been quite succesful as a high-performance messaging library, and is included in many Linux distributions (including Debian, Ubuntu, Fedora, CentOS, RHEL, and SUSE). It is also used internally by a number of organizations including AT&T, Cisco, EA, Los Alamos Labs, NASA, Zynga, Spotify, Samsung Electronics, Microsoft, and CERN.

    However, ZeroMQ is essentially a "toolkit" that can be used to build applications, and to some extent that is both a blessing and a curse. A blessing in that ZeroMQ doesn't impose an architecture on the applications you can build with it, but a curse in that this design approach means that there can be a rather steep learning curve, as well as a fair amount of effort, associated with building applications using ZeroMQ.

OZ aims to combine the ease of building applications written to the OpenMAMA API with the commercial-quality performance and robustness of the ZeroMQ messaging library.

What do I need to run it?

Currently, OZ runs on Linux (CentOS 7) and OSX. (We hope to provide support for Microsoft Windows soon).

OZ runs over standard TCP/IP networks.

How do I get started?

See the Getting Started documentation.

And/or check out the rest of the docs in the doc directory.

Acknowledgements

OZ is based on work originally done by Frank Quinn, who implemented an earlier version of an OpenMAMA-ZeroMQ bridge, which can be found here.

OZ has benefited greatly from the efforts of the entire ZeroMQ community, and especially Doron Somech, Luca Boccassi and Simon Giesecke.

OZ has benefited greatly from the efforts of the entire OpenMAMA community, and especially Frank Quinn.

oz's People

Contributors

bill-torpey avatar fquinner avatar gitter-badger avatar somdoron avatar tilaksinghgh avatar wallstprog avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.