[e2e] Uniform Context Transfer Protocol?

Seth Johnson seth.johnson at RealMeasures.dyndns.org
Sat Apr 24 12:50:24 PDT 2004


See if this makes sense.  I've mulled this over a good while, don't know how
well it qualifies for e2e-tivity.  It's spoken of in terms borrowed from
application level protocols (the two appendices here allude to this context
in which I began thinking about this), but I have always felt it would be
good if it were just an extension to TCP, and not an XML-kinda thing, or XML
replacement.  It would make XML irrelevant, anyway -- actually, since it's
designed so all applications are inherently interoperable, and new
applications are just freely devised conventions that people share,
understanding of the "applications layer" would change a good bit.  It's a
"data transport layer" that sits above TCP/IP.  If it's out of sorts here, I
apologize; a recent post or two prompted me to present it for
consideration.  -- Seth Johnson


Uniform Context Transfer Protocol?

The uniform context transfer protocol (UCTP) is an end-to-end data
transport  protocol that supports manipulable distributed hypermedia and
data  processing on the basis of the concept of universal state transfer.
It  employs a set of abstract terms that designate the elements of a 
uniform structure for representing and transferring state, called the 
uniform context framework (UCF). 

In place of documents and files, UCTP implements contexts, manipulable 
collections of resource elements which are referred to according to the  UCF
abstractions. All of the elements of a context are assigned key  values
which function as links to the servers at which the elements  originate.
Because all elements are links, multiple contexts may freely  reuse the same
elements. 

The elements of the UCF reflect a universal information architecture  which
supports all the fundamental operations one needs for managing  information,
including modeling, updating and maintenance,  manipulation, querying,
categorizing, hierarchizing, distribution and dependency  tracking. In this
way, UCTP implements the notion of an atomic  application. Fundamental
information processing functions for any  application can be implemented
simply by declaring a UCTP context, or by  declaring multiple contexts to be
combined in a complex application.  Any UCTP front end interface that
surfaces the full complement of UCTP  functionality can be used to browse
and work with any information for  any other application served by a UCTP
server. 

UCTP is designed for scalability, providing a simple uniform interface 
through the use of a small set of verbs (GET, PUT, REMOVE and HOST) and  the
finite set of generic elements which make up the UCF. UCTP servers  attain
the status of universal application servers in the sense that  all
fundamental information management functions are provided by means  of this
interface and the rest of the functions and architecture  incorporated
within the protocol. 

The information architecture underlying UCTP affords a maximum degree of 
flexibility in data processing. Entity relationships for all  applications
are stored in a flat fact table form, allowing information  to`be
accessed`and worked with rapidly, flexibly and`with implicit 
interoperability among all`applications.`In addition,`by using the UCF
`abstractions as generic primitives, UCTP makes possible a highly  granular
procedural approach to`data processing that`is unimpeded by `the intricacies
of entity-relationship models or the strictures of  table-`or record-level
disôrébution anä/or òepliãation. Higher-levåì  tecèîiques for maîaginç
ãïípìexiôy, sõcè as såt-oriånted and object- oréentåd äátá ðrocesséng and
programmiîç, íáù bå émpìemeîted on top of  the UÃTP láyer® 
Š
Énstead of working with information through the representation of  diverse
entities in separate physical tables, the UCTP physical data  model is a
generalized and denoòmalized structure that directly  represents relations
as such. Relations implemented unäer UCTÐ are  calìed contexts. UCTP uses
the fïllowing generic abstractions to  represent the elements of any
context: 

Space 
Location 
Standpoint 
Use Type 
Use 
Link Type 
Link 
Use Attribute 
Link Attribute 
Use Attribute Value 
Link Attribute Value 
Use Category 
Link Category 
Use Category Value 
Link Category Value 

These elements make up the uniform context framework (UCF), a standard 
structure for representing and transferring state. UCTP assigns unique  key
values to each element, made up of a URL (designating the location  of a
UCTP server), a forward slash, and a key value unique to that  server. For
example: UCTPhome.org/18273645. 

A general context in UCTP is comprised of a use type related to a link 
type. A particular context instance is designated by a particular use  of
the use type, which can have any number of links, particular  instances of
the link type, related to it. This combination of use  types, link types,
uses, and links describes a traditional one-to-many  relationship, wherein
the various uses of a use type serve as “records”  of the parent entity type
(on the “one” side), and the multiple links  of a link type serve as
“records” of the child entity type (on  the “many” side). 

In UCTP, state is an aspect of contexts representing their generality,  and
is designated in terms of the concepts of space, location, and  standpoint.
Declaring a state for a UCTP context means that the context  serves as a
convention among all clients and servers that participate  in that state.
Space represents the notion of an abstract realm within  which numerous UCTP
servers participate and interoperate as they support  shared contexts.
Location represents an individual UCTP server.  Standpoint is an abstraction
used to represent states of narrow scope  hosted at particular locations,
for the purpose of independent or  provisional development work. 

Generality of a state is designated by either providing key values for 
space, location and/or standpoint, or leaving their key values empty. A 
state representing generality across an entire space is represented by 
providing a unique key value for the space, while leaving the location  and
standpoint keys empty. 

A state for representing universal conventions would be designated by 
leaving all three key values empty. However, since this designates no 
authoritative server for the state, contexts defined within such a  state
cannot be managed by UCTP, and would require ratification as  standards by
external standards bodies, followed by general adoption in  code and
practice. With UCTP, this process of fostering general adoption  by means of
standards bodies becomes significantly less necessary.  Instead of
presupposing that state and physical data models are so  arbitrarily complex
and diverse as to necessitate such a process in  order to assure
interoperability, UCTP provides for universal  interoperability at the data
transport level. 

Traditional entity-relationship modeling entails record- and table- level
replication in distributed environments because it binds sets of  attributes
to individual physical tables representing discrete  entities. Under UCTP,
distribution of attributes and their values is not  accomplished in the same
manner. UCTP uses the UCF to distribute  metadata describing the relational
organization of information across  servers, while it leaves particular
attribute values at particular  locations, where UCTP servers act as their
authoritative hosts. User  agents and interoperating UCTP servers may
maintain the currency of  their local caches of attribute values according
to any algorithm  appropriate to their own purposes. 

Instead of binding sets of attributes to particular tables representing 
particular entities, UCTP uses the abstractions that make up the UCF to 
describe scopes of relevance for link and use attributes. Attributes  can be
declared to be relevant for all links of a particular link type,  or for all
links used by a particular use type, or for all instances of  a particular
use or link regardless of general context (use type and/or  link type), or
for any other of the finite number of scopes that can be  described by the
possible permutations of the UCF elements. UCTP servers  provide and
maintain appropriate attributes and values for various  contexts according
to these scopes of relevance. 

UCTP contexts do not presuppose or require locking mechanisms, since 
whenever user agents request an occasion to modify a context, UCTP  servers
notify them whether the context has been modified in whole or  in part since
the time of the user agent's local copy. UCTP servers may  implement shared
contexts as freely interruptible or as "reservable"  according to diverse
governing principles. Separate protocols may  implement locking or other
"reservation" schemes on top of the UCTP  layer, for contexts for which that
is desired. 

Message structure 

- requests, responses, occasions, events 

State distribution system 

- metadata, attributes, values, hosts 

Data structure 

- denormalized 

Errors / Responses 


Appendix A: CTP and RDF 

The correlates for RDF's subjects, predicates, and objects under CTP  are
uses, link types, and links. 

CTP/Use - [RdfSubject] 
CTP/Link Type - [RdfPredicate] 
CTP/Link - [RdfObject] 

CTP moves beyond RDF's knowledge-modeling assertions by splitting  subjects
into use types and uses, and then using the combination of use  types with
link types to define atomic applications, contexts which  automatically
provide all fundamental information functions needed to  manage information
for any application. Because CTP is designed in this  manner, it is
perfectly suited for RDF applications. It simply goes  beyond the
knowledge-modeling purposes of RDF and the semantic web, to  providing
universal fundamental functions and implicit interoperability  among all
applications. 


Appendix B: CTP and REST 

Roy Fielding has articulated a comprehensive set of engineering  principles
which constitute an architectural style  called "representational state
transfer" (REST) intended to govern  optimal Web architecture and Web
application design. By describing how  CTP's implementation of universal
state transfer compares with the  architectural principles of REST, we can
address its design  implications in an orderly and reasonably complete
manner. The chief  differences stem from the fact that past architectural
principles have  presupposed the arbitrary complexity of state and data
models, and  therefore have taken certain design decisions geared toward
managing complexity, which are unnecessary within CTP.



More information about the end2end-interest mailing list