HyperVos uses Vobjects to construct web pages (or other any XML documents -- but it has various special features for HTML) to serve via HTTP.
See HyperVosIdeas for brainstorming/todo See HyperVosDoc for documentation See VosWebDesign for design of new system for s5
HyperVos uses VOS to provide a structural framework for documents, so it is higher level than just writing HTML/XML documents. But it provides access to all aspects of the HTML document model (i.e. you can work with objects representing HTML elements directly), so it's lower level in a sense than most CMS products. But it also includes optional higher level objects that simplify or abstract common patterns and HTML that can be annoying to work with directly (generating HTML or RSS from a a more abstract list of news or blog items; templates; performing various layout tasks using HTML and CSS; animation and interactive effects using Javascript; connecting parts of pages back to the server using AJAX, etc.)
Websites and other HTTP- and XML-based services can be managed using VOS by way of the "HyperVOS" project. This lets you use VOS as a powerful and flexible content management system for a website, link a VOS-based application with web services or other systems which use XML and HTTP to communicate, or add a web based user interface to a program that uses VOS.
Hypervos is a different kind of web site management system than many others. Instead of storing page data in HTML files, or as entries in a relational database, HTML/XML DOM elements and content data are represented as live Vobjects. While data may be stored to a filesystem or database as a backup, and output documents may be cached for performance, the fundamental building block of Hypervos are Vobjects representing page elements or content that can be reused, modified on the fly, easily reorganized, distributed on one or many servers (even diskless servers), and dynamically managed and reorganized by server plugins or remote scripts/agents.
Hypervos Vobjects can represent any XML or XML-like elements including standard HTML web pages, RSS feeds, data exported by a web service, XML data to be retrieved by an AJAX web page, or more.
The core concept of VOS as a network of interlinked objects is particularly useful for managing hypertext, web sites and web services.
- Manage HTML and other XML documents by manipulating hierarchical DOM objects
- Partition document content into hierarchical chunks of any size
- Easily share content and/or structure between documents
- Authentication, access control and revision control for collaborative editing
- Distribute objects across a local network or the Internet
- Easily move objects or link them into new contexts
- Write custom Vobject extensions (Components/MetaObjects) to do special processing or obtain data, or use a chain of Vobjects to do processing and filtering and to seperate HTML presentation from data storage, design, and implementation.
Various VOS tools and utilities also come in handy:
- Use SQL database or the filesystem to store all objects
- Integrate with other VOS application, and use standard VOS tools
- Templates based on Vobject relations are easy to make and change with standard VOS tools and procedures.
- Get Vobject descriptions as RDF XML documents
- Use Rendezvous (MDNS-SD/Zeroconf) service publishing for easy intranet deployment and access
And hypervos provides several useful small features:
- You can rename a page or any document or part of a document without breaking any links or existing documents, since any object can have more than one name.
- Many more!...
Plus, VOS is a portable and open platform.
The interreality.org site was built and is managed using HyperVOS. To work on the site each editor first authenticates with an "identity". These identities are members of an identity group which is associated with an appropriate access control policy for each object allowing them to edit all or some of the site. The object structure and content are backed with a version control system and a persistent store as files on the server computer's filesystem. The Apache web server serves all HTTP requests; most of these are redirected to HyperVOS, while static resources kept in files like the software downloads are returned directly by Apache.
A HyperVOS site is achieved using two software modules:
The "HTTPServer" extension to VOS, if enabled on a site, lets you connect to the site and retrieve information using HTTP. The requested object and its children are examined recursively:
- If a "property" object is encountered, then its contents are added to the response
If an "xml"-type object is encountered (e.g. "xml:body"), then a corresponding XML tag is opened, its children are processed, and the tag is closed ("<body>...children...</body>")
- If an "xml"-type object has a child named "xml:attributes", however, that object's children (properties) are used as the attributes of the XML tag
- If the requested object has a "hypervos:template" child, then that child is used as a page template, in which children with certain names are replaced by certain children of the requested object.
- If an object cannot be turned into XML in this way, then the Vobject is described using HTML or RDF.
The second half of HyperVOS is the "hypervos" plugin for the OmniVOS server. This plugin creates a site with the HTTPServer extension, and can create objects from a persistant store such as the filesystem or SQL database, and can advertise the WWW and/or VOS services using Rendezvous.
Now the VOS objects are accessible both through a web site, and through VOS as standard VOS distributed objects. HyperVOS Status
Supports page templates, text sharing between pages, output of special VOS types as HTML. In production use to implement the interreality.org web site.
Future plans include supporting embedded scripting (such as Python) to automatically maintain the site or build pages on the fly; a CGI interface; tools to generate RSS feeds automatically and other automatic proceses useful for blogs and news; automatic insertion of links into the text that perform editing operations (like a Wiki or other fully web-based content management system); on changes output files to disk or upload via WEBDAV or FTP or SCP; support for offline editing in a GUI VOS application; various text analysis and metadata tools (tags, summarizing, searching); various image processing tools; maybe even behind-the-scenes AJAX and live page update support. RDF support is incomplete. Rendezvous service is not well tested or widely used yet.
