Pelennor:About

From Pelennor

Jump to: navigation, search

prescription drug death ann arbor delivery flower hot naked guys rockport maine best boarding schools web page layout sacramentos home shuffleboard game serial sniffer cable jobs for portuguese speakers autotrax eda crack glory hole men eva longoria sex leftover crack super tuesday guitar tabs air pirates dan oneill

Contents

Abstract

Pelennor is an exploratory research project aimed at practical realization of ubiquitous computing technologies. It may eventually encompass a prototype collection of software frameworks and methodologies aimed at meeting this goal. As a first step, Pelennor will focus on designs for applying flexible layers of semantics to distributed data, whether structured, semi-structured, or unstructured. This is the pre-requisite foundation upon which all other ubiquitous computing technology may be built. Secondarily, Pelennor intends to research novel techniques and technologies for sustainable development of software systems, atop the envisioned data storage regime. This latter goal is very open-ended and touches such as areas of programming language research and artificial intelligence.

The underlying motivation for Pelennor is the belief that ubiquitous computing will require radically different software architecture. Existing software has mostly used control-centric designs, in which the greatest emphasis is placed on amassing program logic required to implement all desired features. Besides concerns of security and performance, data storage has typically been an afterthought. Data schemas are usually either molded to the whims of logic designers or else grow into monstrous specifications by process of design by committee. This top-down design methodology tends to yield software with high development and maintenance costs due to tight coupling between data schemas and program logic. Even when using many layers and coding to cleanly abstracted interfaces, this effect eventually overwhelms the tools available to today's developers. The resulting software scales geometrically in complexity as features are added, resulting in development productivity effects such as the "Mythical Man Month." In addition, "information islands" tend to form, which make interoperability difficult, precisely opposite of the goal of ubiquitous computing!

Data-centric software architecture is a bottom-up approach. As applied to ubiquitous computing, the first task is to create a generic, extremely flexible, inherently distributed data persistence system. Various domain and application logic may then be evolved around it. As envisioned by the Semantic Web and other efforts, this methodology brings a whole new set of design concerns. Universal interoperability is primary. Others concerns include index and query techniques for distributed data sources, smart filtering, end-to-end use of public key cryptography, and automatic maintenance of strong semantics.

Summary of initial goals

Pelennor design philosophies are the foundation for building a completely new software platform from the ground up. However, practical considerations will focus research and development efforts to manageable sub-projects with immediately useful results. Since the platform is fundamentally data-centric, it makes sense to attempt design of a novel data persistence system first. This is the heart of the conceptual Pelennor platform. In this role, it is not concerned with either low-level details or achieving a perfect impedance match with contemporary software. The following are high-level concepts:

  1. An environment of distributed data sources which have the ability to notify or push content to peers as new data arrives.
  2. Each peer may use its local repository to determine relevance or interest in content received from other peers. (machine learning)
  3. A trust model may be used to authorize content from certain peers or clusters of peers.
  4. Flexible privacy and access controls
  5. All data is validated against a flexible and easily extensible ontology system, to ensure semantic richness.
  6. Perfect forward and backward compatibility of data in each domain ontology (we can add or deprecate classes or attributes, but never change their meaning, once defined)
  7. Support for both structured and unstructured metadata (either orthogonal or integral to the data's schema or domain ontology)
  8. Registry of handler services for explicit data types (one possible bridge to Service-oriented architecture)
  9. High-level transactional awareness and concurrency management services, optional as dictated by architecture
  10. Encourage a “never delete” policy for data storage, favor versioning when feasible
  11. A universal namespace, whether hierarchical, UUID-based, or a combination
  12. Centralization is optional and dynamic, not a rigid part of the architecture. (contrast to LDAP, SQL databases, DNS, Windows domains, etc.)

The implementation of these concepts may take a very non-traditional form, as more recent research has revealed. For example, we may view metadata as merely one of many semantic layers, along with others that describe a schema or ontology or complex relationships. Forward and backward compatibility can be accomplished, in part, by multiple schemas for the same data. A "never delete" policy can be aided by P2P distributed storage. Ontologies may be "ad-hoc" rather than designed by a formal process. As such, traditional concepts exist, but their implementation may be quite novel.

Components

  • Universal semantics namespace
  • Universal logic namespace
  • Extensible, distributed persistence system supporting arbitrary data and metadata formats
  • Query and dynamic filtering interfaces for both local and external data sources.
  • Trust model for internal and external sources. (using PKI)
  • Business requirements (transactions, QoS/QoD, security, management, etc.)
  • High and low-level Web Services layers
  • Object-oriented mapping layer
  • Data streaming services (multimedia, continuous queries, messaging, etc.)

Positioning

The Pelennor design philosophy will affect users and developers in particular ways. It may help to view a list of Memes surrounding Pelennor. These are elemental principles that will drive this software paradigm, from both a developer and end-user perspective.

End users

Conceptually, Pelennor envisions a shift from viewing computers as "the box on our desk" to computers as part of a seamless, pervasive information environment that blends into the background of our lives. To end users, this represents:

  • The capability to store any business or personal data desired, such that it can be accessed from any device or location.
  • The end of individual, single-purpose software applications which must be separately acquired, learned, and managed.
  • A collaboration platform which makes it trivially easy for many people to review, modify, and extend the same data resources, but without requiring centralized administration.
  • Re-privatization of personal data. (no need to use a 3rd party to exchange data with friends / business partners)
  • A publishing system by which users may choose what data in their repository gets pushed to the global environment, specified communities, or other individual users.
  • A data aggregation system which automatically harvests data based on relevance to interests or explicit trust in external sources.

For concrete examples, see the Use Cases article.

Developers

Ubiquitous computing will radically change how high-level software is written, to the point that most methodologies in the current software engineering discipline will become obsolete. Fundamentally, there must be a leap in abstraction beyond object oriented design, which is quickly becoming unsustainable as a programming model as complexity increases. We are likely to see a move towards a new model focused entirely upon annotation, markup, scripting, component wiring, and the creation of inter-operable modules. Other concepts include:

  • All software is a module. There are no more standalone applications.
  • Information is persisted without the need for a rigid data model.
  • Strong context and semantic information is always available.
  • Only one interface is needed for all persistent data storage.
  • Fine-grained data security, customizable to any design requirement.

Review notes and expand upon this section.

Design

These pages describe the technical motivation and details of the Pelennor platform itself. This is a major work in progress at this time.

  • Use Cases - creative ideas for how the platform will be used, motivation for architectural decisions
  • Architecture - a high-level overview of the Pelennor architecture, both data and expected interfaces
  • Engineering challenges - a discussion of solved and yet-to-be solved architectural concerns
  • Specifications - precise details on how the software shall operate, eventually formal API's

Ramifications

Pelennor is one of many projects which represent a major paradigm shift in software design. This shift will have ramifications for all technology and society's interaction with it. On these pages, we brainstorm on what those ramifications may look like..


Related topics and research

W3C Semantic Web

The W3C Semantic Web is currently the most successful and widely-support effort to implement infrastructure critical to the goals of Pelennor. The technologies under its umbrella have yet to achieve widespread usage, but Semantic Web has been the front-runner in data-oriented architecture for many years. Apparent limitations at this time are complexity and rigidity. However, there are potential solutions. It is likely that use of software agents and high-level language tools can mitigate the inherent complexity. Likewise, more robust authentication services may enable more flexible and distributed data sharing. Without software agents, too much manual annotation is involved to produce semantics, and too much centralized authority is required to produce useful ontologies. In any case, Semantic Web research has produced interesting results, which are worth studying.

The Web of Data

Before semantic web technologies can evolve to their full potential, there must be a wealth of machine-consumable content. "Web of data" is a loose term signifying a transition from current web documents (XHTML pages) to web data sources (SOAP, RDF, etc.) as the dominant means of information exchange on the Internet. Migration to a web of data will require new user interface designs and application architectures.

Service-oriented architecture and Web Services

SOA and WS technologies are maturing rapidly and gaining widespread industry support. They will likely play a crucial complimentary role as future data architectures emerge, though at a high level of abstraction. Oddly enough, both SOA and the semantic data stores discussed by Pelennor are orthogonal to strict object-oriented design -- but in opposite directions. Services are a higher level of abstraction than objects, such that we need not distribute our objects (and break the first "rule" of distributed computing!) Semantic data repositories are a layer beneath objects, such that we do not bind our data's schema too tightly to a particular object model or final persistence mechanism. For some simplistic cases, a developer may even forgo the use of objects altogether and wire services directly to a semantic repository using procedural code. (at the risk of public stoning with hardcover GoF books!)

MIT's Internet Zero

Internet Zero, often abbreviated I0, aims to create the "internet of things." Its focus is on small devices, which are not traditionally networked, but which may afford great utility in aggregation if they were. Such devices may include everything from household appliances to clothing to light bulbs. I0 fits well into the Pelennor vision of ubiquitous computing.

Personal tools