Tying NeoSite CMS and server side services Oleg Burlaca Institute of Mathematics and Computer Science cms.neonet.md.

Download Report

Transcript Tying NeoSite CMS and server side services Oleg Burlaca Institute of Mathematics and Computer Science cms.neonet.md.

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
NeoSite
Toolbars defined in XML docs
cms.neonet.md
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
Content
Tree
Project specific
entity types
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
behind the scenes activity
Before:
edit item
save item
send item content
to search engine
save item
send item content
to search engine
After:
edit item
OnSave
event
Server-side logic
get the folder for uploading
Client
User want to add a
file to a node
Server
OnGetUploadDir
apache
handler
http://neonet.md/ftp/get_upload_dir/? id=106
Process Template
ftp/get_upload_dir
'<!--#BEGIN#-->';
FTP plugin
uploads the file in
specified folder
IF (crumb.0 == 'elections' and crumb.size >= 3);
/i/elections/docs/node_filename
'/i/elections/' _ crumb.slice(1, 2).join('') _ '/';
ELSE;
'/i/' _ crumb.join('/') _ '/';
END;
'<!--#END#-->';
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.
More about NeoSite:
cms.neonet.md