docs/main/Features.rst | 33 +++++++++--------- docs/main/MessageBrokers.rst | 2 + docs/main/Middleware.rst | 28 +++++++++++++++ docs/main/MokshaPlatform.rst | 31 ----------------- docs/main/Technology.rst | 5 ++ docs/main/Vision.rst | 1 moksha/lib/app_globals.py | 39 +++++++--------------- moksha/public/images/Powered-by-moksha_button.png |binary 8 files changed, 64 insertions(+), 75 deletions(-)
New commits: commit c4f78029c76505fface19946d971d807cd858712 Author: Luke Macken lmacken@redhat.com Date: Mon Apr 20 23:33:03 2009 -0400
Document the role that Twisted plays in the stack
diff --git a/docs/main/Technology.rst b/docs/main/Technology.rst index 4c6ac63..f17cda6 100644 --- a/docs/main/Technology.rst +++ b/docs/main/Technology.rst @@ -75,3 +75,8 @@ receives, stores, and routes messages using the AMQP protocol. `RHM http://rhm.et.redhat.com/`_ is a persistence extension to the Qpid AMQP broker that allows message storage using either a libaio-based asynchronous journal or synchronously with Berkely DB. - + +`Twisted http://twistedmatrix.com`_ +------------------------------------- + +Twisted is an event-driven networking engine written in Python. It is the core engine for the :doc:`MokshaHub`, which reacts to incoming messages, as well as runs our :doc:`DataStreams`.
commit 627afd7be71c30faf0fbf9208a27c6f9ed39f75e Author: Luke Macken lmacken@redhat.com Date: Mon Apr 20 23:27:27 2009 -0400
Fix some inter-doc sphinx linkage
diff --git a/docs/main/Features.rst b/docs/main/Features.rst index 8088b94..fab5ea5 100644 --- a/docs/main/Features.rst +++ b/docs/main/Features.rst @@ -40,9 +40,7 @@ reusable "Widgets", which are essentially just bundles of HTML, JavaScript, CSS, and render-time logic. The ToscaWidgets WSGI Middleware is also integrated into Moksha, which handles intelligently injecting Widget resources.
-Moksha also provides a variety of other Widgets, including a LiveWidget_ API -for creating real-time message-driven widgets that can efficiently acquire data -from a variety of sources. +Moksha also provides a variety of other Widgets, including a :doc:`LiveWidget` API for creating real-time message-driven widgets that can publish and subscribe to message :doc:`Topics`.
Resource Connectors ------------------- @@ -59,19 +57,20 @@ infrastructure environments. Expert System --------------
-The MokshaHub_ gives you Expert System-like functionality by providing APIs for -interacting with a variety of knowledge bases (SQLAlchemy models, Resource -Connectors, Caches, Message Queues, etc), and can easily monitor and process -incoming data. One could then easily build state-machines, inference engines, -or even forward/backward-chaning rule-driven expert systems. - -Moksha also provides a simple yet powerful API for creating DataStreamers_ that -can do basically anything at anytime. It allows for the easy scripting of -periodic tasks such as fetching data, polling resources, warming caches, -sending notifications, analyzing databases, etc. For example, Moksha provides -a FeedStream_, that automatically handles fetching, parsing, caching, and -sending notifications for all known feeds at a regular interval. - -These are loaded by the MokshaHub_, and are executed outside of the WSGI +:doc:`MokshaHub` gives you Expert System-like functionality by providing +APIs for interacting with a variety of knowledge bases (SQLAlchemy models, +Resource Connectors, Caches, Message Queues, etc), and can easily monitor and +process incoming data. One could then easily build state-machines, inference +engines, or even forward/backward-chaning rule-driven expert systems. + +Moksha also provides a simple yet powerful API for creating +:doc:`DataStreamers` that can do basically anything at anytime. It allows for +the easy scripting of periodic tasks such as fetching data, polling resources, +warming caches, sending notifications, analyzing databases, etc. For example, +Moksha provides a :doc:`FeedStream`, that automatically handles fetching, +parsing, caching, and sending notifications for all known feeds at a regular +interval. + +These are loaded by :doc:`MokshaHub`, and are executed outside of the WSGI application stack, but they are still able to access the Database, Cache, MessageHub, etc. diff --git a/docs/main/MessageBrokers.rst b/docs/main/MessageBrokers.rst index 92ad2ed..c61452c 100644 --- a/docs/main/MessageBrokers.rst +++ b/docs/main/MessageBrokers.rst @@ -33,3 +33,5 @@ The :class:`MokshaHub` will then automatically connect up to your AMQP broker an
AMQP support in Moksha has been tested with `Qpid http://qpid.apache.org`_. + +`RabbitMQ http://rabbitmq.com`_ support is under development. See the :doc:`RabbitMQ` documentation for details on testing it.
commit 1ecf12a22c32adfa8308900090cb3222d5b238fb Author: Luke Macken lmacken@redhat.com Date: Mon Apr 20 23:23:11 2009 -0400
Move some of our WSGI middleware docs around
diff --git a/docs/main/Middleware.rst b/docs/main/Middleware.rst index 41ecaa5..bed47a5 100644 --- a/docs/main/Middleware.rst +++ b/docs/main/Middleware.rst @@ -45,3 +45,31 @@ how it looks in TurboGears2. If you're using Moksha as a stand-alone platform, TurboGears2 allows us to easily insert middleware directly on top of the raw application, so we then have the ability to use the paste.registry, sessions, and caching. + +Moksha's Full Platform WSGI Stack +--------------------------------- + +Not only can Moksha be inserted into any existing `WSGI http://wsgi.org`_-compliant application, +but on it's own offers a comprehensive top-to-bottom middleware stack that +provides a vast plethora of additional functionality. + +=============================== =============== +Middleware Function Module +=============================== =============== +Profiling repoze.profile +Resource compression repoze.squeeze + **TG2 Middleware** +--------------------------------------------------- +Application routing/dispatching Routes +Session management Beaker +Caching layer Beaker +Widget resource injection ToscaWidgets +Authentication repoze.who +Authorization repoze.what +Transaction management repoze.tm2 +Error handling & Debugging WebError +Registry manager Paste + **Moksha Middleware** +--------------------------------------------------- +Your application +=============================== =============== diff --git a/docs/main/MokshaPlatform.rst b/docs/main/MokshaPlatform.rst deleted file mode 100644 index ab5cb56..0000000 --- a/docs/main/MokshaPlatform.rst +++ /dev/null @@ -1,31 +0,0 @@ -=============== -Moksha Platform -=============== - -Not only can Moksha be inserted into any existing WSGI-compliant application, -but on it's own offers a comprehensive top-to-bottom middleware stack that -provides a vast plethora of additional functionality. - -`WSGI http://wsgi.org`_ Middleware Stack ------------------------------------------- - -=============================== =============== -Middleware Function Module -=============================== =============== -Profiling repoze.profile -Resource compression repoze.squeeze - **TG2 Middleware** ---------------------------------------------------- -Application routing/dispatching Routes -Session management Beaker -Caching layer Beaker -Widget resource injection ToscaWidgets -Authentication repoze.who -Authorization repoze.what -Transaction management repoze.tm2 -Error handling & Debugging WebError -Registry manager Paste - **Moksha Middleware** ---------------------------------------------------- -Your application -=============================== =============== diff --git a/docs/main/Vision.rst b/docs/main/Vision.rst index b3b031c..28738f1 100644 --- a/docs/main/Vision.rst +++ b/docs/main/Vision.rst @@ -5,7 +5,6 @@ The Vision :maxdepth: 2
Introduction - MokshaPlatform DataAggregation DataInterpretation DataPersistence
commit 8eea13943408671927db2eba6e32952e75b96506 Author: Luke Macken lmacken@redhat.com Date: Mon Apr 20 23:10:31 2009 -0400
Add a powered by moksha icon, thanks to Mizmo :)
diff --git a/moksha/public/images/Powered-by-moksha_button.png b/moksha/public/images/Powered-by-moksha_button.png new file mode 100644 index 0000000..7818754 Binary files /dev/null and b/moksha/public/images/Powered-by-moksha_button.png differ
commit dfb22cc24630628fa7898f08bb3c911bd5d3ed29 Author: Luke Macken lmacken@redhat.com Date: Mon Apr 20 22:47:49 2009 -0400
Dumb down our globals object.
Comment out some experimental functionality that are not currently using.
diff --git a/moksha/lib/app_globals.py b/moksha/lib/app_globals.py index e665e71..ccd1da8 100644 --- a/moksha/lib/app_globals.py +++ b/moksha/lib/app_globals.py @@ -1,16 +1,15 @@ """The application's Globals object"""
-import logging -import inspect +#import logging +#import inspect
-from tg import config -from shove import Shove +#from tg import config +#from shove import Shove
-from moksha.exc import CacheBackendException -from moksha.lib.cache import Cache +#from moksha.exc import CacheBackendException +#from moksha.lib.cache import Cache
- -log = logging.getLogger(__name__) +#log = logging.getLogger('moksha')
class Globals(object): """Globals acts as a container for objects available throughout the @@ -22,21 +21,9 @@ class Globals(object): initialization and is available during requests via the 'g' variable """ - timeout = int(config.get('beaker.cache.timeout', '0')) - try: - self.cache = Cache(config['beaker.cache.url'], timeout) - except (CacheBackendException, KeyError), e: - log.warning(str(e)) - self.cache = None - - #def __getattribute__(self, *args, **kw): - # # @@ TODO: Namespace moksha app's Global objects - # # load them in the middlware... - # # ensure that this object is always in pylons.g, even if we are - # # running a full moksha stack, or as middleware - # # proxy to them on incoming request - # print "Globals.__getattr__(%s)" % locals() - # frame = inspect.currentframe() - # caller = frame.f_back.f_back.f_globals['__name__'] - # print "caller = ", caller - # return object.__getattribute__(self, *args, **kw) + #timeout = int(config.get('beaker.cache.timeout', '0')) + #try: + # self.cache = Cache(config['beaker.cache.url'], timeout) + #except (CacheBackendException, KeyError), e: + # log.warning(str(e)) + # self.cache = None