This book is intended for developers, students, and software engineers who are looking for a complete source of information that is not only a technical book for developers, but also gives an overview of architectural foundations, as well as a survey of prominent component technologies.
This second edition of the book includes a new preface, but also maintains the original one from the first edition, giving the reader a sense of the evolution of component software technologies and the way the market has adapted to the new requirements.
Five parts make up the book, which is divided into 28 chapters, each one with a short introduction. Part 1 discusses the birth of component software technologies, placing an emphasis on the lessons learned in the past and how the market has assimilated those experiences. A very interesting study, “Market Versus Technology,” is presented, based on statistical information, which demonstrates how this relationship has defined some standards within all the technologies in the market.
Part 2 is particularly targeted towards software developers and students. The author takes a very good approach to the theory and foundations of component software. In addition to those who are interested in component software, this approach is suitable for those who require a refresher course on concepts related to objects, classes, patterns, frameworks, architectures, and how these all interact to compose systems. The author concerns himself with the need to have the concept of the component well defined.
Part 3 offers a very complete overview of the component technologies that are currently in use. Three technologies are described: OMG CORBA, Sun Java/JavaBeans, and Microsoft COM/ActiveX/CLR. The author gives an unbiased presentation, in spite of his close association with one of these technologies. In particular, software engineers will be able to take away some strong conclusions about the state of development for each of these technologies, and will then be able to decide which one is more suitable for their needs.
Part 4 discusses components architectures and components development itself, and gives an explanation of components frameworks and middleware. Software developers will find this part useful because of its approach to component-oriented programming and the most suitable programming languages. The last part shows the component markets that will be more developed in the future, and defines the types of professionals involved in this process.
The presentation of the book allows the beginner reader to advance throughout the book systematically. The practical examples are well formulated and coded, making use of very intuitive language programming notations, such as Java or component Pascal. The advanced reader will find this book a great help without necessarily reading the entire text sequentially. Overall, the book is a must-read.