Gil Müller - Services for Software Architecture
The big impact of information systems on our daily professional and personal life is well known. Apart from the PC the rapid growth of the Internet demonstrates the importance of information technology. It is successful not only as a tool to organize distributed information, but also as a service framework. It started with simple server scripts (CGI) to realize guest books and is now far from being finished with web services for b2b-services or mobile location services. From the technological standpoint the Internet has standardized and also simplified the development of distributed services.
Nevertheless the construction of a distributed system is still a challenge. Today's business requires data coherence within an enterprise landscape that is shaped by different platforms, operating systems and software systems. Also the distributed system has to be adaptive in harmony with the changing business. Last but not least it has to rise the overall productivity. On the operational side security, safety, realibility and low maintenance cost are major concerns.
From the perspective of software production - which is of course not the silver bullet to all these issues - it is of utmost importance to concentrate the knowledge about the distributed system in the design. This is the basis for a software production with good quality and rapidness.
The advent of component-oriented design reflects the needs we have in handling issues of large and complex software systems. In its essence component-oriented design focuses on the interconnections between the big building blocks of the software - especially in contrast to object-oriented design.
For many purposes there already exist mature systems. In a maintenance project it is often only necessary to introduce some changes to the system cross cutting in terms of aspect-oriented programming a number of components. Such a change has to be regarded as an independent and separate entity to avoid malfunctioning of the working system. (In terms of software configuration management we are already there, if we speak of a patch and provide the collection of changes as a file).
New technologies like web services promise to bring software reusability to a new level. In theory we could build up a system where each building block is located elsewhere in the internet - outside your network. In practice we need a good understanding on interconnection issues - beyond two parties. Especially, non-functional properties like security and reliability have to be well-understood.
If we are destined to make software by composing and configuring third-party components, why not also buy the glue. This is the matter of frameworks, middleware and protocols. It is far outside the scope of this text to discuss their differences and the state of the art, but it can be concluded from their growing share in software systems that communication and interaction in computing is more important than ever. I am looking forward for this new situation.
© 2002 by Gil Müller