Information:
Ambient sourceforge
location: HERE
Ambient calendar example: HERE
Basic Ambient info: HERE,
HERE, HERE
Questions? E-mail Me: HERE
Page Version 11112004
One Important Thought!
Ambient
Is Not A Content Management System! (AINaCMS)
A personal note:
As of now
ambient is an experimental idea; help, input, and ideas would be
greatly appreciated. I have job postings on the sourceforge project
that are available to fill, apply if you wish to donate your time.
A One Line Sentence Of What Ambient
IS:
“Ambient is system of building
web-based systems, by doing little or NO programming!”
A Short Paragraph Of
What Ambient IS:
I will
stress this time and time again Ambient Is Not A Content Management
System! You may think this is odd, being it seems to do the same
tasks as a content management system, but in fact that is not what
ambient was designed to do. Most CMS web applications work on a
system, and the system has rules on how to run a particular web
application, the system knows the web application exists, or the web
application is part of an entire system of integrated web
applications, or part of the content.. Thus it is a content
management system. Ambient system is not part of any structured web
application system per-say, Ambient Project views a web application
as not part of a system, but more of a independent extension of an
abstract framework. With Ambient the web application does not
actually exist in a singular form, a full web application is actually
a rendering of groups and groups of smaller often unrelated web
applications brought together securely by Ambient Engine. This is how
ambient engine is able to achieve such an abstract thing as visually
building a content management system through little or no
programming!
Such a crazy idea has uses!
Some content management systems take years to develop, and secure. Ambient hopes to speed this process up, by allowing one to create an entire CMS in days if not hours!
Data schema's are no longer a problem with ambient since ambient (through use of modes) can literally transform any data schema into another! Thus the possibility of making all web applications fully compatible with any existing schema (provided proper data)!
Content management systems and web applications built using ambient can import/export any data format through little or no programming!
Security is implemented on multiple levels in a single web application, since web applications are implemented as groups of smaller applications ambient checks each smaller application for permissions to run before the entire web application is able to execute.
The Ambient Engine it's self can run on any data format! This means that things like user names/permissions will run on any database, any data format, and pretty much any data source!
Ambient speed is comparable content management systems, when executing a built web application. I cannot compare the speed of ambient to a product that is similar. Because there is one yet to exist!
Quick Visual Example Of A Web
Application Being Built! (Which could be part of an entire CMS)
Ok,
I have 2 parts to this web application that I wish to make! This will
be displayed using ambients preview mode, which is the same mode that
Ambient Visual Tools will be using!
Part 1: A Calendar (Click below to view calendar)
http://206.146.72.38/Chef/?Plug0=com.chefclub.calendar.PublicCalendar&Plug1=plugin.output
Part 2: A Login System (Click Below)
http://206.146.72.38/Chef/?Plug0=com.chefclub.login.LoginSmall&Plug1=plugin.output
Part 3: Lets say we want to combine these 2 smaller applications!
Http://206.146.72.38/Chef/?Plug0=com.chefclub.login.LoginSmall&Plug1=com.chefclub.calendar.PublicCalendar&Plug2=plugin.output
This example of putting the 2
separate web applications together seamlessly was done without
programming a single thing!
If you wanted to you could make the
login bar appear on the bottom of the screen simply by switching the
value of Plug0 and Plug1!
As if that is not enough you can
also group both of these applications into a single group.. and
execute the group instead of the web applications! You can also put
groups inside of groups.
This is an example of preview mode,
where ambient gets data from the address bar. Ambient is just as
comfortable retrieving that same information in a database or some
other data source and retrieving via page ID.
So you may say, we can already do this using PHP or other scripted languages. What are you offering that is new?
You are able to design ambient applications/CMS visually, in real time!
Creating a application in ambient does not (always) require any underlying knowledge of programming.
Web applications developed on ambient are secure on multiple levels, automatically!
Ambient web applications as of now are fully compiled in java bytecode.
Using the upcoming ambient generic data mode you will be able to convert any data schema into any other related data schema.
Ambient configuration is simple and allows a user to implement any related data source(s) on any web application with little or no programming!
Ambient provides the tools, you just have to put the CMS together, and design it visually!
More On Ambient:
Ambient comes in 3 parts.
Ambient Engine: The engine is what makes everything work, it is a very abstract system with no defined data boundaries. Ambient Engine (as of now) runs on servlet containers. Ambient engine alone DOES NOT DO MUCH! It requires a framework that can be plugged into it.
Ambient Framework: The framework is basically a combination of software data "plug ins" that plug directly into the ambient engine, these plug ins are generally of a certain type (input, output, or mode plug ins).
Ambient Software Tools: The ambient software tools aim to facilitate what ambient was originally designed to do, which is basically allow one to build a complete web application by doing little or no coding. Ambient Software Tools aim at making designing a web application so easy, that one would be able to design any web application through common drag and drop technologies (and configuration).
Interesting Things About Ambient Engine, and
Projects:
Preamble: Ambient engine originally
started out as a little software project 1/2 a year ago, and has
since grown into what it is now. The engine it's self has been
completely rebuilt 4 times. Each time attempting to make the engine
more and more abstract, until you see what we have today. This engine
has gone through various stages of what I call "engine bulk"
or my predefined idea of what an engine should/should not be. In the
end I took way of what mozilla firefox has done and removed ALL data
processing specific capability from the engine. You will learn why
later... read on.
Interesting Fact 1: Ambient Engine, it's self NEVER KNOWS what type of data it is working with! Aside from initial ambient start up (data files are needed on initial start up to configure the engine, and prepare it to execute plug ins), ambient NEVER EVER knows what type of data format that it works with. After Ambient Engine Rebuild 3, I had made the decision that the engine it's self should never know what data that it is working with, I would leave this to the framework. This would allow me to push ambient abstractness to new boundaries.
Interesting Fact 2: Ambient Engine can work with any form of data input! Since ambient engine never knows the type of data it is working with ambient engine is able to work with any specified data input (most often by user).
Interesting Fact 3: You will like this one! Any output plug in, made in ambient can also work with any data input, without doing ANY special coding! Data output plug ins are the worker bees of the ambient engine, their job is basically to be the web application that you wish to create! In-Other-Words, lets say you have a database of names, and you create a ambient output plug in (IE Basically a web application) now this web application knows how to get names from the database using ambient non-data-specific Framework API's (through use of modes). This plug in will automatically be able to now retrieve data from literally ANY data source. There is no recoding to make a XML specific web application, the plug in you made for the database application will work just as well in the XML application.
Interesting Fact 4: Any output plug in you make can output literally any data format (without recoding). When a output plug in is done with it's processing, it is asked to serialize it's results in an internal XML output language known as, AIOL (Ambient Internal Output Language). Output from a plug in is then fed into a XML parser, and transformed to the proper format, look, and feel based on schema's.
Interesting Fact 5: Security; Ambient Engine is very secure, the abstract security mechanism built into the engine is able to check permissions to execute any output plug ins, for Basic/and Specialized Users (people with user names). This allows for multi-level checking of all web application components, that has never been seen. Since the Ambient way of building a web application is by grouping smaller, and smaller web applications together to make one big application, each small web application is checked for permission to execute. The Administrator has total control over how/if a web applications internals should be executed. Ambient can get security information once again, from any specified form of data input. That means you can store a users list on an xml document, a database, even a graphic image, and (provided a plug in) ambient will be able to read data from those formats.
Conclusion of facts: These are just a few highlights that I wanted to point out before I continued... Ambient can do much more than I listed... but these were just a few things that I wanted to point out.
Sub-Projects Being Researched Currently
Engine:
Individualized Modes: Right now ambient runs on a single system mode for all plug ins, I find this restrictive, thus I am attempting to implement individualized modes, which plug ins can use.
Optimization of processing algorithm
Abstract Skeletal Classes For All Interfaces
Modifying (slightly) the interface for the output plug in. Such that it is able to interface more smoothly with upcoming visual tools.
Framework:
The system framework is quiet minimal right now, I have a few modes, and a few plug ins that do little things (proof of concept, ect), but nothing significant. Right now I am actively researching framework structure, how things should be structured in a framework environment, and components I will need to build a viable framework.
As of now, I am actively studying abstract mapping of data, such that I will be able to come up with a generic data driver, where I will be able to map any data source field with a schema. I plan on modeling a database/data source VIA xml and then map the appropriate data through the model.
I plan on building abstract inputs/outputs for a large platform of formats, I also plan on building system modes, and basic data utilities. I then plan on building a platform of utilities, that will be able to ambiguously work with any data input, and will be able to output any data format, WITHOUT SPECIAL CODING! These plug ins will also be compatible with visual tools being built.
Visual Tools:
Visual tools are in their infancy right now (non-existent). Though I am actively researching interfacing methods with ambient engine and the visual tool the are as follows.
The visual tool will depend that ambient engine is running on a server which it may directly access, due to the fact the visual tool will be based off of the results from the engine.
The visual tool will use the same plug ins that the engine uses to build a web application.
The visual tool will be able to directly manipulate config files for ambient engine.
The visual tool will also work with data mapping.
Well that is all for now... Thanks for reading... ~matt