About jMaki
jMaki is a lightweight client/server framework for creating JavaScript centric Web 2.0 applications using CSS layouts, widgets widget model, client services such as publish/subscribe events to tie widgets together, JavaScript action handlers, and a generic proxy to interact with external RESTful web services. While jMaki abstracts much of the JavaScript and CSS by providing defaults for widgets, the JavaScript widgets and CSS are made easily accessible so they may be customized by a designer or page developer. jMaki focuses on the aspects of delivering JavaScript to the client allowing the JavaScript to communicate to various server-technologies including PHP, Java (JSP/JSF), and Phobos in a server-technology neutral way.
Following are the client and the server modules that make up jMaki.
Client Side Components
- jMaki Layouts: - jMaki Layouts provide a standards based starting point for creating your web applications using HTML and CSS. The CSS is in plain view so it can be easily customized for your needs.
- jMaki Client Runtime: - The jMaki Client Runtime is the JavaScript responsible for bootstrapping all
widgets and passing parameters provided by a server-side runtime to the widgets. Parameters are unique to each widget, and the JavaScript runtime makes sure that each widget instance gets the correct parameters that were passed from the server-side runtime. In cases where parameters are not provided the runtime uses default parameters that may then be customized for each widget.
- jMaki Client Services:Services such convenient APIs for
performing XMLHttpRequest and publish subscribe on the client are provided
to all widgets as a means of communication.
jMaki glue is built on top of publish/subscribe events. jMaki Glue is built on top of the publish/subscribe mechanism. It allows you to define application behavior and time widgets together widgets using JavaScript actions when a specific event is published to a topic. jMaki Timers allow JavaScript action handlers to be called or events to be published at a set interval. The jMaki Injector is a client service that allows you to bring in an external page into any given div element. The Injector transfers scripts and CSS to the global page content and allows widgets to be loaded much like an iframe without the usability issues.
- jMaki Widget Model - The jMaki widget model provides a component model for reusable JavaScript components. The structure is based on a HTML, JavaScript and CSS. You can use this structure to create your own widgets or wrap widgets from
any given toolkit. jMaki provides default wrappers and a server tie-in for many commonly-used Dojo, Yahoo UI, Prototype, and some native widgets. jMaki also defines a widget.json format which is a common way of describing which so that they are accessible by tools.
Server Components: