120 likes | 231 Views
Tying NeoSite CMS and server side services. Oleg Burlaca Institute of Mathematics and Computer Science. cms.neonet.md. Agenda. NeoSite intro Defining the problem Action & Event mechanism Server side implementation Conclusions. cms.neonet.md. CMS Definition:.
E N D
Tying NeoSite CMS and server side services Oleg Burlaca Institute of Mathematics and Computer Science cms.neonet.md
Agenda • NeoSite intro • Defining the problem • Action & Event mechanism • Server side implementation • Conclusions cms.neonet.md
CMS Definition: Software that enables one to add and/or manipulate content on a Web site. Webopedia.com CMS Purpose: Enhanced integration and automatization of processes that contribute to efficient dissemination of information on the Internet
cms.neonet.md NeoSite Toolbars defined in XML docs Search Panel Content Tree Monitoring Error logs Search Results Template Tree Opened entities and tasks HTTP Activity FTP Activity
The problem How to endow the client application with unique, project specific facilities without modifying it ? Erroneous guess Trying to incorporate “wise” and rich functionality that will cover all possible issues will give us a very sophisticated, yet powerful solution, that will collapse under it’s own weight over time.
Suggestion Separate common and unique features, and provide means for connecting them. Adjusting the Problem Statement How to build a lightweight, generic client application that acts as a framework that ensures easy integration of custom functionality ? The Solution Integrate an Event-Driven Framework into client application.
Entity types Project specific entity types Content Tree Entity type definition (XML document)
Entity events <events> <OnCreate> <e type="sql">INSERT INTO site_en_related VALUES ($id, 444, 10, 1) </e> <e type="http"> <params> <url>http://neonet.md/cgi/build.cgi</url> <prms>id=$id</prms> <urgent>0</urgent> <method>get</method> </params> </e> </OnCreate> <OnCloseAfterCreate ... > <OnOpen ... > <OnRelateNode ... > </events>
Task automation send item content to search engine edit item save item OnSave event behind the scenes activity Before: send item content to search engine edit item save item After:
Server-side logic get the folder for uploading Client Server OnGetUploadDir User want to add a file to a node apache handler http://neonet.md/ftp/get_upload_dir/?id=106 Process Template ftp/get_upload_dir '<!--#BEGIN#-->'; IF (crumb.0 == 'elections' and crumb.size >= 3); '/i/elections/' _ crumb.slice(1, 2).join('') _ '/'; ELSE; '/i/' _ crumb.join('/') _ '/'; END; '<!--#END#-->'; FTP plugin uploads the file in specified folder /i/elections/docs/node_filename
Future work The desktop application should become a thin client, by transfering the logic to the server-side. Enhance NeoSite’s integration capabilites.
Conclusions Applications can no longer exist as standalone entities, but instead must share information with other information systems. Open standards and application integration are a logical fit since open standards aid in solving the application integration problem, accounting for the differences in formats and interfaces through common mechanisms that everyone can understand. cms.neonet.md More about NeoSite: