Ciro D'Urso, professional engineer and IEEE senior member, has broad experience in software engineering, strategic planning and project management through his position as manager in government, IT industry and banks. D'Urso was also adjunct professor of Computer Science at University of L'Aquila and at Tuscia University Viterbo. He was involved in various research projects as ICT expert, and he has published peer reviewed papers in journals and magazines. Now he is head of the Information Systems Development Office at Senate of the Italian Republic and he is adjunct professor of informatics at LUMSA University Rome. He has two Master degrees, one in engineering (five years, 110/110) and the other in statistics, operations research & decision sciences (two years, 70/70 cum laude) from La Sapienza, Rome, and he attended a specialized course in "Manager and Top Management Consultant" at Bocconi, Milan. Ciro has posted 1 posts at DZone. You can read more from them at their website. View Full User Profile

JEDI SENATUS: an italian open source project aims towards the systematic software reuse in organizations

  • submit to reddit

Ciro D'Urso, Alberto, Persello, David Visicchio

Software reuse's purpose is to improve software quality and productivity. My colleagues and I in the ICT Department of Italian Senate constantly pursue the strategy of identifying potential domains of development of reusable assets. This has lead to an improved software quality, to a lower development costs (despite considering the additional cost of making a software module reusable), and to force programming teams to adopt a standardized approach when dealing with recurrent services such as creation and provision of documents (reports in various formats, text and xml streams) within a software application despite the business line it belongs to.

JEDI is a J2EE application that provides a centralized service aiming at significantly simplifying the generation of data driven documents in an enterprise environment (See Figure 1, "General description").

The documents (hereafter called JEDI documents) can have different format types: pdf, excel, rtf, plain text data streams and xml streams. JEDI documents are instances of the so called managed documents (see below), configured by a developer into the JEDI configuration database (JEDI_DB). The provision of a JEDI document is based on a synchronous processing performed by the JEDI core engine triggered by an end-user request (through HTTP request or RMI invocation, see Figure 2, "Handling a request").

The content of a JEDI document must be an XML stream regardless of the source. Such data is afterwards processed through one or more XSL transformations in order to provide the user with the document in the required format. The definition of XML stream source and XSL transformation are main parts of the managed documents. This approach guarantees an high decoupling level between the JEDI service itself and the documents to be generated, since each managed document can be added (or modified) at runtime without restarting the JEDI service. Some types of documents (pdf, rtf and excel) are generated by using open source libraries such as Apache FOP and POI.
These architectural pattern is very general and represents a standard way of interaction requiring a minimum effort to be adopted by whatever software application.

Further details about the project are available at: 

General_description.jpg100.45 KB
Handling_request.jpg62.49 KB
Published at DZone with permission of its author, Ciro D'urso.

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)