Projects
Agile Project Management
Description
Worked on Agile Requirements Engineering & Management for a graduate course at
Drexel University. Click
here for details.
Fault-tolerant content/file management system based on SOA
Description
Worked on Fault-tolerant content/file management system for a graduate course
Software Design at
Drexel University.
Object Cache
Problem
Developers are using HashMaps to store objects, a crude way for Object Caching, which does not take into consideration the future possibility of moving towards clustering with multiple nodes. Need to provide some better caching mechanism. The system should be externalized from the code. There should be a way to monitor the activity. The administrator should be able to view, purge and reload the contents.
Possible Solutions
The Solution
After looking at open source implemetors and IBM's Dynamic Cache, I decided to implement my own version of object caching, inspired by this good and simple
design by Srini Penchikala in the article
"J2EE object-caching frameworks"
Business Rules to HTML Converter
Problem
There is an external rules engine. The system needs to communicate with the rules engine, interpret the rules and generate business objects.
Solution
I wrote an 'Adapter' class that understands the external rules engine, and also has knowledge of how to generate the business objects.
Framework for accessing legacy services through EJBs, using JAXB for marshalling/unmarshalling between XML and Java Objects
Problem
There are legacy services written in COBOL that accept, process and return XML Documents. Then there are EJBs that provide calls to these services. At the moement the Java developers convert their POJOs into XML, make a call to the EJB, and then convert the resultant XML document into POJOs again. There should be an easy way for the developers to call these services.
Solution
I came up with a framework that provides the java developers an easy way of just communicating with the legacy services by just using their POJOs. The Framework consists of using JAXB (Java XML Binding) to Marshall the POJOs to their XML representation. Then the framework is capable of making calls to the proper legacy service by using the proper Stateless Session Bean. On the way back, the XML document sent by the legacy service is Unmarshalled using JAXB into a POJO, which is passed back to the caller i.e. the java developer.
Debugging tool to convert big java objects into their XML representation.
Problem
Its not very convenient to use WSAD 4.0's debugging tool to look into the contents of big java objects (tool crashed). Provide some way to look at the 'state' of the objects at a given instance of time.
Solution
I wrote a small utility that can be called on any java object, that queries the object's state and also its parent's state (in a recursive way.) The result is a comprehensive XML document defining the state of that object in the given instance of time.