Friday, October 29, 2004

Dependency Injective Service Gateway

I introduce a new pattern to extend Service Gateway pattern.
This pattern help aggregating Web Services, and is implemented in my BoldSoap framework.
It optionally supports Aspect weaving.

As you might see in the figure below, this pattern consists of 4 main actors, Configuration, ServiceFactory, SkeletonInterface and GeneratedClass,

  1. ServiceFactory; it's the BeanFactory class in BoldSoap framework 0.1. The implementation is based on Javassist.
  2. GeneratedClass; this is runtime auto-generated anonymous class based on mapping information in the Configuration.
  3. SkeletonInterface; it's a reference interface that will be wrapped by GeneratedClass
  4. Configuration; the XML configuration that maps several WSDLs into the single access point (defined by SkeletonInterface)

Dependency Injective Service Gateway Pattern

Tuesday, October 05, 2004

BoldSoap framework

I'm now working on BoldSoap framework, a soaplet engine that utilizes XPath.
BoldSoap is inspired by Soaplet library of Dan Diephouse .
But I've found that his code doesn't work for me.
I need a soaplet to work with the complex type. Thus, I start coding BoldSoap.

I've hacked the Axis's client and cut some codes to make its Call class working with XPath.
BoldSoap is now using Dom4J as its XPath engine. (redundancy I know :))

BoldSoap 0.1 Features

  • Generate Call from WSDL (using DynamicInvoker code from Axis client)
  • Detect Soap Endpoint from WSDL
  • Set parameter with XPath expression
  • Get result with XPath expression
You can see BoldSoap framework on SourceForge.

As I mentioned about Peepthong framework last blog, it will be built on the top of BoldSoap soaplet.

Peepthong Framework

I'd like to introduce a Web Services integration framework using the interface-based aspect weaving technique with the dependency injection pattern.
My initial implementation is being done with Java, and it's called Peepthong framework.

This framework will be hosted on SUT as I'm a lecturer at its School of Computer Engineering.

The interface-based aspect weaving is my research work that this framework bases on.
It a subset of aspect-oriented programming (AOP) weaving. My technique consider the skeletons of an interface as joinpoints, and an aspect will be woven into the auto generated class that implements the interface.

In Peepthong Framework, a generated class is described by an XML mapping file that contain some integration informatiom of one or more Web Services together. Using this framework will allow you to access services that have different interfaces (or WSDL) from a single access point.

Idea and code behind this framework are from:

  • Spring framework
  • Javassist
  • Apache Axis
  • Apache WSIF
  • Codehaus Soaplet
  • Codehaus Xfire
  • XPath