Section: Overall Objectives
Keywords : Component Models, Separation of Concerns (SoC), Aspect-Oriented Programming (AOP), Component Weaving, Software Architecture, Model-Driven Software Engineering (MDSE), Component-Based Adaptive Middleware (CBAM), Run-time Containers, Integrated Tools for Production and Exploitation of Software Components (exploitation of software components, integrated tools for production).
J.M. Jacquard and Weaving Machines
One of the first historical steps towards programming appeared in 1725 on a weaving machine. The French "Lyonnais" Basile Bouchon first gives instructions to a weaving machine using a perforated paper. His assistant Mr Falcon replaces the fragile paper by more robust perforated cards. After that, Mr Vancanson replaces the cards by a metallic cylinder and a complex hydraulic system, which gives the machine a cyclic flow of instructions, a program!
But History keeps in mind Joseph-Marie Jacquard who creates and commercialises the first automatic weaving machine during the beginning of 19th century. The precision of the machine allows Joseph-Marie Jacquard to design a program that weaves his own face on a fabric. Joseph-Marie Jacquard's innovations have greatly contributed to the first steps of computer science with the perforated cards to support programs. The idea of independent programs for a programmatic machine was born!
Context and Goals
The Jacquard project focuses on the problem of designing complex distributed applications, i.e. those composed of numerous cooperative and distributed software components, which are constrained by various requirements, such as persistency, security and fault tolerance. We want to investigate the ability of software engineers to produce new component-oriented platforms and new methodological and technical approaches to design and exploit these applications. In particular, we explore the use of component models, separation of concerns and weaving in the different phases of an application's life cycle (i.e. modelling, design, assembling, deployment, and execution). Our goal is to produce fully functional platforms and tools. Finally, we are members of a number of standardization organizations (OMG) and the open source software world (ObjectWeb).