1.0 Overview

advertisement
1.0 Overview
SmartCode is essentially a Resource Description Framework (RDF) server. It
utilizes the power of metadata in conjunction with XML and Java “to enable
seamless cross-portal, cross-device communication through scalable, bidirectional flow of information and functionality.”i The SmartCode Framework
separates content from mode of presentation and format decreasing the amount
of effort needed to create and maintain documents published on the web. It
especially excels in dealing with the expanding areas of dynamic web
syndication, aggregation, and personalization.
1.1 Developers
Information Architects, Inc. released SmartCode as a commercial product in June
2000. Their current CTO, Leon Shklar, developed an earlier version of the
SmartCode framework, Metaphoria, while working at Pencom Web Works
between 1996 and 1999. SmartCode and Metaphoria are loosely associated
with GeoHarness and InfoHarness, two earlier systems developed by Shklar (ca.
1995) to provide web access to legacy data and heterogeneous metadata.
1.2 Motivation
SmartCode was developed to address a fundamental problem in the rapidly
evolving world of web development and publishing. Content that appears on the
pages of an organization’s Internet site is generally replicated from sources that
are already available in another format, perhaps on the company intranet or in
sales literature. As duplicated content proliferates across the various mediums
the organization uses to distribute information, it becomes more and more
difficult to maintain and control. For example, the same content may be
simultaneously available to customers via HTML, XML, Word, PDF, and
WML/WAP. Organizations that want to take advantage of the latest technologies
often encounter exponential maintenance costs.
2.0 Analysis
The SmartCode Framework is implemented as a hierarchy of Java classes that
work in conjunction with any web server that supports the Java Servlet API.
SmartCode provides a GUI for setting up metadata repositories that hold all of
the information about accessing and presenting the content used in a particular
web application. Content is aggregated and served dynamically based on any
number of variables including URL parameters, HTTP headers, state/session
information, and node path (URL) and metadata.
2.1 Architecture
The SmartCode Framework is designed around an RDF-based metadata
repository. The repository is made up of hierarchical, logically related nodes.
Each node contains two types of metadata, access-descriptive and contentdescriptive. The former stores information about the location and retrieval
methods used to access a unit of information. The latter stores information about
the content itself (author, subject, publication date, etc.). At the leaf level, these
nodes point to a single piece of data (a paragraph from a file, a web resource, a
database query, etc.). Higher-level nodes aggregate sub-nodes and act as
virtual containers.
SmartCode nodes are accessed using one or more URLs. Based on information
contained in the URL, HTTP headers, state/session information, and node
metadata, a responder dynamically builds and serves the resulting page.
Responders use HTML or XML templates when generating pages. HTML
templates use a syntax that complies with HTML comments. SmartCode tags
are begin with “#MM” followed by a user directive. XML templates use element
names that are pre-designated for SmartCode processing.
SmartCode uses a number of techniques to improve run-time performance and
automatic data integrity. Metadata repositories have an initialization phase in
which data is read in and analyzed and the node structure and metadata are
generated automatically. By doing this work at build-time, run-time web requests
are processed more efficiently. Also, sophisticated multi-level caching system is
used to speed up processing of requests. Automatic data consistency and
integrity are maintained by continual comparison of redundant metadata
attributes with the original data. When discrepancies are found, the SmartCode
system re-parses the data immediately and/or marks all related nodes for
rebuilding at the next scheduled maintenance.
2.2 API
Unknown.
2.3 System Requirements
SmartCode is currently available on all major platforms including Linux, Solaris,
and Windows NT/2000. It can be used in conjunction with any web server that
supports the Java servlet API. Some examples are Apache, Microsoft IIS,
Netscape Enterprise Server, JRun, and Sun Java Web Server.
2.4 Example Applications
The following are example applications that describe scenarios in which
SmartCode might be used to aggregate and syndicate information via the web.
“Suppose you are a provider of information in the areas of food and
entertainment, and want to make the most out of your content. You derive
revenue from reselling rights to your content and advertising, and are interested
in signing up partners and attracting users to your site. These businesses are
very competitive and you want to gain an edge on your competitors by
minimizing pains for potential affiliates. Traditional solutions would at best help
you to automate the distribution of content to your affiliates, forcing them to install
compatible software and leaving them responsible for serving and customizing
distributed content. SmartCode simplifies this process by serving customers of
your affiliates directly from your site while customizing your content on-the-fly to
the look and feel of affiliate sites.
“Suppose now you are a content aggregator, like Yahoo!, Excite, or NetCenter.
You are collecting data from hundreds of different sites to provide the best value
for your customers. Your revenue comes from advertising and most of your
expenses are from licensing, retrieving, maintaining and customizing aggregated
content. Suppose now that you want to license food and entertainment content
and you have a choice of competing providers. Providers that use SmartCode
do not require you to install software, and make it unnecessary for you to pay for
maintenance and customization their content, which gives them a definite edge in
your selection process.”ii
3.0 Summary
SmartCode decreases the costs associated with maintaining redundant copies of
information and keeping up with the latest Internet publication standards by
separating content from its format and presentation. It is the first server of its
kind to take advantage of the power of RDF by storing metadata and dynamically
constructing pages directly from the information contained in originating content.
It enables simultaneous, customized/personalized publication of information on
traditional and wireless devices without modification to or replication of the
source(s).
3.1 Strengths
SmartCode is well suited for web sites that publish content in multiple formats
and for a variety of end-user devices. It is also ideal for sites that extensively
aggregate content from numerous internal and external sources. SmartCode
automatically maintains data integrity and stores only metadata in its repository,
significantly decreasing overhead and maintenance requirements. SmartCode’s
reliance on RDF, Java, and XML standards and its platform independence are
additional strengths.
3.2 Weaknesses
Perhaps the most obvious downside to SmartCode is its price tag, $140,000 per
server. Also, given its commercial and proprietary implementation, it is
somewhat difficult to gather details about the specification. Real-world examples
are few and product reviews are almost nonexistent which creates some concern
about the future of this software package. Finally, given the absence of
independent performance tests, there is some reason to be concerned about
SmartCode’s speed due to its heavy reliance on dynamic page generation.
3.3 Future Directions
Unknown.
3.4 For More Information
SmartCode – http://www.ia.com/ia/product/index.htm
Metaphoria – http://www.cs.rutgers.edu/~shklar/isas98/
InfoHarness – http://www.dlib.org/dlib/april96/bellcore/04shklar.html
Shklar, Leon. “Information Architects SmartCodeTM Framework Technical Whitepaper”
(http://www.ia.com/whitepage_2.html). February 2000.
ii Ibid.
i
Download