in

Emerald Hand

Emerald Hand, Inc. community home page.

This Blog

  • Home
  • Contact
  • About
  • Directory of Computers/Tech Blogs

Syndication

News

I'm back to blogging

Worm in liquid maze

Design and development of information management tools.

Sider inside

I wrote about Sider before, what it is and why I'm working on it. I also maintain a wiki with Sider documentation. You can find more details about the platform there. Today I want to discuss how it works.

Sider describes and stores all information using XML. Each Sider document is an XML document. This use of XML technologies not only saves time and simplifies development, but also makes it easier to extend Sider. A lot of people are familiar with XML and there is a lot of documentation describing every aspect of the technology.

Types

Sider types use XML Schema (XSD) to describe information structure and validate documents. XSD does have some limitations, but for now it will suffice. Type inheritance works through schema inheritance. Each new type must provide a new schema, but it's possible to extend, restrict, substitute or combine schemas from other types.

In addition to the schema, each type provides two more features: constructors and script objects. Constructor is an XSL transformation that creates a valid document of the current type. When user creates a new document through File->New type XSL constructor is used to create that document.

Type script object is a JavaScript object to provide view with document operations. When view is loaded all types (related to the current document) are loaded as well. The view doesn't have a direct access to the document, but instead relies on the type objects to manage it. This is similar to MVC pattern and promotes separation of concerns.

Views

Sider views show the document and allow the user to interact with it. Each view is displayed using hosted web browser control (IE currently, but in the future we will add support for Mozilla) and interacts with the user, with the document (through type objects) and with Sider itself (through window.external).

When a document is loaded it is transformed using XSLT provided by the view. Currently, all views generate HTML files, but it is possible to generate SVG, for example, to show graphics in the browser.

This use of web technologies has certain limitations (web browser can be slow if a page is complex, it can leak memory and so on), but at the same time it promises the widest support of different ways to show data (especially right now, when interest in the web technologies is on the rise and we see a lot of different libraries appear, such as DojoToolkit). Another big advantage is that we will be able to add support for document editing online.

In addition to HTML views can use other web technologies, like Flash, SVG, Java, ActiveX. It will even be possible to use not browse-based technologies, such as .NET window forms or C++.

View components

View components are used by the views and exist to promote code reuse. They are horizontal view plug-ins (any view can use any view component). Example of view component would be a JavaScript library (such as Dojo), spell-checking support, and so on.

Conclusion

Sider platform binds everything together. It finds and loads a document, finds the types that describe and validate it, and views to show it. Sider generates HTML document using view transformation and displays it to the user. When the user wants to save the document the platform extracts updated document from the view, validates and saves it.

This is why Sider is unique. It binds all these standard technologies (XML, HTML, JavaScript, etc.) to provide a simple, uniform information management experience for both users and developers.

Share this post: Email it! | bookmark it! | digg it! | reddit!
Readability Stats: Word Count: 593; Sentence Count: 39; Grade Level: 9.3, more info...
Published Jul 31 2006, 10:25 AM by Ornus
Filed under:

Comments

No Comments

Leave a Comment

(required)  
(optional)
(required)  
Add

About Ornus

Lead Sider and Xelog developer. I'm interested in information and how we can better manage it using computers. I'm also into design and understanding how to creating cool, useful, simple things.
Copyright © 2006-2007 EmeraldHand, Inc. All rights reserved.
Powered by Community Server (Non-Commercial Edition), by Telligent Systems