Differences between revisions 6 and 7
Revision 6 as of 2008-07-03 21:08:15
Size: 2020
Editor: KeiichiroOno
Comment:
Revision 7 as of 2008-07-03 21:37:14
Size: 2225
Editor: KeiichiroOno
Comment:
Deletions are marked like this. Additions are marked like this.
Line 11: Line 11:
The core feature/concept of Spring Framework is Inversion of Control (IoC) or Dependency Injection (DI). The main idea is that The core feature/concept of Spring Framework is Inversion of Control (IoC) or Dependency Injection (DI). The point is, keep objects independent from specific framework (those objects are called POJO, Plain Old Java Objects), and use metadata to configure system. There are many usecases of Spring DM for Cytoscape:
Line 13: Line 14:
In OSGi environment, objects shared by multiple bundles are usually managed by [http://www.knopflerfish.org/osgi_service_tutorial.html OSGi Service Registory]. In Cytoscape, there are lots of objects which should be managed by a central registory, such as layout algorithms, In an OSGi environment, objects shared by multiple bundles are usually managed by [http://www.knopflerfish.org/osgi_service_tutorial.html OSGi Service Registory]. There are lots of Cytoscape objects which should be managed by a central registory, such as layout algorithms, commands, etc.

Spring Dynamic Modules for Cytoscape

(Under construction) TableOfContents

Introduction

From Cytoscape 3.0, the entire system is based on OSGi, and this modularizes Cytoscape into a collection of bundles. OSGi bundles are just regular jar files plus a simple metadata file (MANIFEST.MF) and they can be used in other non-OSGi systems. However, once we use raw OSGi API, the bundle is coupled with OSGi environment, and it is not easy to port the bundle to non-OSGi environments. [http://www.springframework.org/osgi Spring Dynamic Modules (Spring DM)] is one of the solutions to achive maximum modulality.

Spring DM is a part of [http://www.springframework.org/ Spring Framework], which is a defacto standard framework for enterprise-level systems. Because of its populality, lots of documents and tools are available.

Usecases

The core feature/concept of Spring Framework is Inversion of Control (IoC) or Dependency Injection (DI). The point is, keep objects independent from specific framework (those objects are called POJO, Plain Old Java Objects), and use metadata to configure system. There are many usecases of Spring DM for Cytoscape:

Service Management

In an OSGi environment, objects shared by multiple bundles are usually managed by [http://www.knopflerfish.org/osgi_service_tutorial.html OSGi Service Registory]. There are lots of Cytoscape objects which should be managed by a central registory, such as layout algorithms, commands, etc.

Testing

Good starting point to use Spring for Cytoscape. We can use DI to make mock objects to do integration test.

Integration Test

Mock Object

Interface-Based Programming

Aspect Oriented Programming

Aspect Oriented Programming (AOP) is a technique to manage cross-cutting concerns shared by multiple objects (and AOP and object oriented programming are not mutually exclusive.)

Logging

Benchmarking

Example: Command Parameter Intercepter

Managing Instances by Setter Injection

Open Issues / Problems

  • Inter-bundle aspect management.

References

Spring Framework

OSGi

Outdated_Cytoscape_3.0/Spring (last edited 2011-02-24 15:38:13 by PietMolenaar)

Funding for Cytoscape is provided by a federal grant from the U.S. National Institute of General Medical Sciences (NIGMS) of the Na tional Institutes of Health (NIH) under award number GM070743-01. Corporate funding is provided through a contract from Unilever PLC.

MoinMoin Appliance - Powered by TurnKey Linux