Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 4.0

Title/Summary: Searching artifacts across SCA domain

...

Student: Wojtek

...

(Wojciech) Janiszewski

Student e-mail: wojtek.janiszewski

...

1. General 

2. Project description

2.1 (Project goal)

cuthere gmail cuthere com

Student Major: Computer Science

Student Degree: Master

Student Graduation: 2009

Organization: Apache Software Foundation

Assigned Mentor:

1. Abstract

Apache Tuscany, an implementation of Service-Component Architecture (SCA) allows to create distributed applications. SCA applications are packed as set of various files (composite, scripts, Java classes, wsdl, xsd, etc), called contribution. Contribution could be a directory or JAR file, which then is contributed to SCA domain. Once installed contribution can be browsed manually from filesystem, which could be uncomfortable and time-consuming. Apache Tuscany SCA domain manager web application lacks search feature with possibility to browse and filter SCA objects quickly.

Apache Lucene is powerfull search engine library written in Java. Through its minimalistic API it allows user to index data and search them. Simplicity and generality of this open source library is the key which makes it possible to search for every data and in various environments. Advanced syntaxt and good performance makes it great choice for creating relayable search subsystem.

The goal is to provide facility to search and browse artifacts in SCA domain. Such goal could be achieved by integrating Apache Lucene library with Apache Tuscany. For this solution user would be allowed to search for artifacts using improved SCA domain manager web aplication.

2. Detailed description

2.1

...

Requirements

Implementation of search feature should cover three main areas, which are indexing, searching and presentation. Such separation gives us modularity, which implies reuse of components and ability to test easily.

2.

...

1.1 Indexing

Indexing would be backed by Apache Lucene indexing mechanisms.

...

Above model shows how documents would be linked for search purposes. Example of references which could occur could be found on the diagram.

2.

...

1.2 Searching

Searching would be backed by Apache Lucene search engine.

...

Fetch by phrase - search phrases are similiar to what we do in Google. Lucene query syntax would be used and various filters could be entered (basing on fields described in 2.21.1 Indexing). User could filter by:

...

Fetch by item - getting item and its references. Item to fetch is identified by internal identifier. Such fetching method would be used in navigation based on hyperlinks, not search queries.

2.

...

1.3 Presentation

Navigation

Navigation could be performed in two ways:

...

Following image shows example navigation throught search UI. It contains 5 web pages which can be reach in various flows. Red arrows shows what page wuold be generated after clicking a link. Purple color is used for comments.

2.

...

2 Deliverables

Contribution scanner, parser and analyzer

Module which scans contributions, analyzes its artifacts and feeds Apache Lucene index. See 2.21.1 Indexing for details. Appriopriate JUnit tests should be introduced.

...

Module which exposes search features as via simple , API available by SCA component API. See 2.21.2 Searching for details. Appropriate JUnit tests should be introduced.

...

New pages, scripts, actions etc. which would handle UI described in 2.21.3 Presentation. Appropriate JUnit testst should be introduced.

...

User and developer documentation on Apache Tuscany web page.

2.3 Architectural outline

Contribution scanner, parser and analyzer will be available to use by Tuscany user by additional module, which if added to classpath would be automatically started. Such module will fetch contributions list by reading workspace.xml. This file would be constantly monitored in case of need to reindex changed contribution entries. Created index would be registred in internal structures of Apache Tuscany for further acces by search component.

Search component module will be started automatically if added to classpath. Indexed data would be obtained from Apache Tuscany internal structures. Physically it could be two separate maven modules - one for searching operations and one for exposing first as component.

SCA Domain manager web application extension will be accessing search component via its default binding. In special cases administrative operations would be invoked, ie. reindex request in case of adding or deleting contribution by user (but not necessary if contribution scanner will monitor workspace.xml often).

3. Timeline

Before May 23

...