Architecture

Architecture

Core Services

  • ServicesWorkspaces – Supporting the notion of the JSR-170 workspace
  • Node Service – Node, Property and Association management including CRUD and Persistence
  • Content Service – Storage and retrieval of content (text/binary)
  • Node Handles and Store Protocols – Approach for identifying Nodes and Stores within a Repository
  • Versioning – Support a basic version and locking model, but potentially use Subversion or comply with JSR-170 Level 2 (Optional)
  • Search – Support search in a Google-style search and JSR-170 XPath search
  • CMIS – Adoption of CMIS standards for the repository. This allows access from other systems in a uniform and controlled manner.
  • Classification – Provide hierarchical classifications and the old enum support
  • Actions and Rules – Provide services to allow actions to be executed manually and automatically, using rules, within a Repository.

Core Support Frameworks

  • Core SupportSpring is an application framework that includes AOP capabilities. Spring is the most popular application development framework for enterprise Java™. Millions of developers use Spring to create high performing, easily testable, reusable code without any lock-in.
  • Hibernate is a collection of related projects enabling developers to utilize POJO-style domain models in their applications in ways extending well beyond Object/Relational Mapping.
  • Apache Lucene(TM) is a high-performance, full-featured text search engine library written entirely in Java. It is a technology suitable for nearly any application that requires full-text search, especially cross-platform.
  • JavaServer™ Faces is the well-established standard for web-development frameworks in Java. The standard is based on the MVC paradigm, but is additionally to most web-frameworks also component-based and event-oriented.

Web-Client

  • Web ClientWeb-Client Framework – Use Spring and JSF to support the development of a portal based web-client framework and portlets
  • Component Library – Library of JSF components required to build the client applications
  • Desktop Integration Options – Investigation of Desktop Integration options
  • Space User Application – Full application client for managing and using Spaces
  • API Integration Issues – Page to discuss and note issues that the web-client team is having with the service APIs

System Administration

  • User Interface Design – Start with the end user (not terribly sophisticated) before designing the API
  • Components – Create interfaces for Types, Users, ACLS, Stores, Workflows, Links, etc.
  • SysAdmin API – A JMX-based API for managing system objects in the repository