Emerging Technologies to Support Virtual Software Corporations
Richard Foley, Zsolt Haag, Quentin Mair, Julian Newman
Department of Computer Studies
Glasgow Caledonian University
Glasgow
Rod Blackwood
BAeSema Ltd.
Atlantic Quay
Glasgow
Abstract
The Virtual Software Corporation (VSC) provides significant opportunities for teleworking and reduced software development overheads. However few tools exist to address the needs of a VSC to support multi-partner distributed software development. Such tools should support distributed Software Configuration Management (SCM), process modelling and metrics. Certainly there is no unified approach for all these activities. The Esprit VISCOUNT project proposes the implementation of such an integrated prototype VSC. In this paper we describe the background to VSCs, the VISCOUNT project and discuss some technologies which may simplify the implementation of such a collaborative environment. The results of this project should make a significant contribution towards the implementation of successful VSC environments.
1. Introduction
A new emerging concept in software production is that of the Virtual Software Corporation (VSC). A VSC is characterised by an often loose and flexible alliance of geographically distributed teams and organisations, with particular specialisms, who come together for a particular, often one-off, software development (Belady 1991). The VSC is one of a new breed of Internet based virtual collaborative environments which facilitate remote working. As such it provides a new potential market for individual, and groups of, teleworkers.
The emergence of the global Internet has made it possible to remotely access information across organisational and national boundaries. Thus, the concept of a VSC has emerged. VSCs are alliances (often temporary) of organisations with different specialisms which co-operate. A number of software development companies benefit from the competitive edge offered by the VSC. It provides not only a modern approach to economies of scale but also brings together scarce competencies and resources to meet development requirements (Boldyreff et al 1996). The VSC concept has been made possible through the recent advances in communications technology which allow the basic infrastructure for communication and co-operation between geographically remote teams of developers. Such environments require software support both in tool provision and in infrastructure support to simplify the implementation of such tools.
With the recent very significant expansion in the use of communication applications, a number of new infrastructure technologies are emerging and evolving. This paper briefly outlines the work of the Esprit funded VISCOUNT project whose core technical objective is to develop a suite of tools to support multi-partner projects geographically distributed across the Internet. The paper then presents a short review of a set of currently emerging communication and infrastructure technologies, which will be considered in terms of their suitability as enabling technologies. It considers these within the context of their potential utilisation in the implementation of distributed VSC environments.
2. The VISCOUNT Project and its underlying Technology Requirements
This work is funded as part of the VISCOUNT project (BAeSEMA, 1998), which is funded by the European Union’s Esprit Programme. The support suite will be centred on a Software Configuration Management (SCM) tool for use in a distributed VSC, but the project will also address process modelling and metrics in the context of a VSC. The development work is based on further developing BAeSEMA’s existing SCM product, Lifespan. In very general terms the work in VISCOUNT falls into four distinct stages (VISCOUNT, 1997): an initial investigation of the general requirements and technology needed to implement a VSC (including at this point the development of a Web-based interface to Lifespan); the geographical distribution of multiple SCM (Lifespan) databases and their connection to other SCM tools; the implementation of process modelling in a VSC; and the implementation of metrics collection in a VSC. Each stage includes an analysis of relevant user requirements and technology; prototype development and finally user trials.
2.1 Software Configuration Management
Of particular importance in large software development projects is Software Configuration Management (SCM) (Babich 1986): the storage, recording and management of all software process deliverable versions and changes. SCM has always been a critical area in ensuring a successful software engineering process and the production of high quality software products. As such it is an integral part of software quality (ISO 9000) and software process improvement standards (Paulk et. al., 1993; Rout, 1995). As far as using SCM tools within a VSC environment is concerned there are a number of specific requirements which must be catered for. Examples of the nature of such problems are (Foley & Haag, 1998): the use of multiple host platforms; the compatibility of tools used at each site; ensuring consistency of replication of module code versions between multiple SCM databases located at different sites; and the need for secure access across networks. It is, therefore, of fundamental importance that the SCM tools used by organisations engaging in VSC collaborations have the ability to address these problems. This means that the tools used will require to use underlying technologies which can provide solutions to these problems.
2.2 Process Modelling
The VISCOUNT project also considers the technology associated with modelling processes in VSCs in the context of SCM (VISCOUNT, 1997), in particular the more flexible requirements for SCM process modelling (Haag et. al, 1998). The process management system in the VSC needs to interface to external process management tools in the same way that module code versions in one SCM database need to be replicated to other SCM databases. It is envisaged that the external process management tools themselves and/or the interfaces between SCM process management and external process management tools will be based on agent technology, which is itself a separate area of investigation in VISCOUNT (Mair, 1998). Integration with the tools provided for distributed SCM allows the individual partners in a VSC to collect data and monitor the progress of the software process. This technology will be tightly integrated into the technology supporting the rest of the project.
SCM systems track both changes and their impact on a whole development project. Therefore, the most commonly used software engineering metrics such as the number of defects per module, system or subsystem, can be collected very efficiently by a mechanism with links to a SCM system (Boldyreff et al 1996). However, no SCM systems actually offer metrics collection as a standard feature, although some of those based on commercial relational databases can be adapted to do so. There are no SCM systems which maintain a selectively replicated database with true distributed change control and defect tracking and with integrated facilities for metrics collection and analysis. The VISCOUNT project prototypes intend to offer a solution by tightly integrating metrics collection into the SCM processes.
3. Potential Enabling Technologies for VSCs
It is vital that a project like VISCOUNT which is proposing to build complex state-of-the-art distributed applications in the fields of distributed SCM, process modelling and metrics, should assess currently available state-of-the-art distribution technologies. VISCOUNT has decided, as a central assumption, that Java applets will be used as an enabling technology for its VSC client user interfaces. It follows that the adopted distribution technology will require integration with the Java language (or its extensions) with sufficient industry uptake in order to offer a successful communication mechanism. It has been identified that VISCOUNT also requires a mechanism whereby heterogeneous SCM databases and other tools can communicate. We also need to consider how well each technology can be made to work with legacy tools, both the tools developers wish to keep and BAeSEMA’s Lifespan.
We have initially assessed several distribution technologies for the implementation of a VSC:
3.1 TCP/IP sockets
TCP/IP (Halsall, 1995) is a de facto standard connection-oriented transport protocol on which the Internet is built. Sockets provide the programming interface to TCP/IP, albeit a low level interface which does not provide distribution transparency (Coulouris et al, 1994). This lack of transparency means that it is difficult to develop complex distributed applications. Higher level tools e.g. Java RMI are now available which are themselves based on TCP (or its connectionless peer - UDP) and offer large productivity gains by avoiding low-level coding detail. However such higher level tools do not yet have universal acceptance and coding with sockets is still commonplace. It may also be more productive to use sockets to interface to existing legacy applications if only a binary with TCP/IP connectivity is available (Mowbray & Zahavi, 1994). Its association with the Internet makes TCP/IP easily identifiable as the single most important communication mechanism for a VSC, but this does not preclude using it to support higher-level protocols.
3.2 HTTP/CGI
HTTP (W3C, 1997) is the core protocol for the World Wide Web. It was originally designed for static hypertext document transferring, but has been used increasingly for dynamic Internet applications in which transferred HTML documents are dynamically generated by CGI scripts at WWW servers. CGI is now the established way of extending WWW servers to provide dynamic content, typically for connection to background database servers. However HTTP/CGI has been criticised (Orfali & Harkey, 1997) as being unable to maintain state between client-server invocations, has a poor parameter passing mechanism and is very slow. It is therefore unlikely to be a candidate technology for the next generation of distributed applications. As an alternative to CGI based scripts, Java Servlets (Sun Microsystems, 1997) are a more recent technology providing a more scaleable and easier way to create dynamic and interactive WWW applications.
3.3 CORBA.
OMG’s CORBA (OMG, 1997a) is a paper open standard for the implementation of object-oriented distributed systems written in many languages and running on many architectures and operating systems. OMG are finalising a Java binding standard which allows applets to use services provided by remote CORBA objects (OMG, 1997b). The CORBA standard specifies an interoperable communication framework (usually through its IIOP protocol) and language bindings. The combination of distribution transparency and the application of object-orientation to distributed systems makes CORBA an attractive candidate for the next generation of complex distributed applications i.e. much of the detailed coding of networked applications can be avoided. The application of an object-oriented paradigm brings with it attractive features such as encapsulation and reuse. Higher level services e.g. asynchronous message passing, lifecycle and security although standardised may not be available as implementations in the marketplace. Others may still be in the process of standardisation. CORBA’s uptake has so far been uneven: the lack of higher level services, cost of development tools, lack of clear advantage in its adoption and Microsoft’s marketplace dominance are seen as contributing factors.
3.4 ActiveX/DCOM.
Microsoft’s ActiveX (Chappell & Lithicum, 1997) and DCOM (Brown & Kindel, 1996) technologies form a set of de facto standards. DCOM provides a binary standard for the communication of networked components; the networking technology is based on OSF’s DCE RPC (Remote Procedure Call) (Rosenberry et al, 1992). Microsoft’s philosophy has been to extend its single host COM technology with an existing RPC implementation thus leveraging the large software base that already exists in OLE objects and controls. DCOM is not object-oriented in the traditional sense; it is generally considered more difficult to write applications in DCOM than in CORBA. DCOM implementations are only now arriving on non-Microsoft operating systems. Visual J++ provides a mechanism for writing Java applets that act as clients to DCOM servers. Although Microsoft are intending to introduce better security for DCOM in NT 5.0 they do not as yet consider higher level services such as object migration or multicasting.
3.5 Java RMI
JavaSoft’s Java JDK 1.1 language extensions (Horstmann & Cornell, 1998) currently include a RMI (Remote Method Invocation) package. This provides additional functionality allowing Java applets to call methods provided by remote Java objects. This facilitates direct communication between any machines supporting a JVM (Java Virtual Machine). Java provides object serialization across a RMI call to implement object migration. JavaSoft is continuing to develop RMI and is intending to offer advanced services such as security and message passing. A CORBA client-side binding is included in JDK1.2 (currently in beta) to allow communication with non-Java servers.
4. Conclusions
VSCs will provide the support environments for the next generation of software engineering projects based on dynamic, geographically distributed, multi-partner virtual collaborative environments. Only now with the development of the Internet and sufficiently mature development technologies is it possible to apply distributed systems to the support of such projects. It is likely to change the human environment within which software development takes places, with a move towards significant use of remote teleworking.
We have undertaken an initial review of technologies supporting distributed applications development, and evaluated how these technologies can be applied to meet the likely requirements of a VSC. Each of these solutions has also to be judged on its merits for specific legacy tools. In VISCOUNT the decision to extend Lifespan, which is currently TCP/IP based, has been to remain with TCP/IP Sockets at least for the first stage of the project. Although this will be periodically reviewed it allows the Lifespan SCM database server to remain unchanged, whilst the existing Windows client user-interface is replaced by a Java interface. The proprietary protocol between the client and server is thus unchanged and can simulated with Java at the client side.
5. References
Babich, W.A., Software Configuration Management, Addison-Wesley, 1986.
BAeSEMA, http://www.baesema.co.uk/stg/viscount/, 1998
Belady L.A., From Software Engineering to Knowledge Engineering: The Shape of The Software Industry in The 1990s, International Journal of Software Engineering and Knowledge Engineering, 1(1), pp1-8, 1991.
Boldyreff, C., Newman, J., Taramaa, J., Managing Process Improvement in Virtual Software Corporations, IEEE 5th International Workshop on Enabling Technologies: Infrastructures for Collaborative Enterprises (WETICE ’96), Stanford University, California, USA, June 19-211996.
Brown, N., Kindel, C., Distributed Component Object Model Protocol -DCOM/1.0 Draft Specification, 1996
Chappell, D., Linthicum, S., ActiveX Demystified; Byte, September 1997
Coulouris, G., Dollimore, J., Kindberg, T., Distributed Systems - Concepts and Design (2nd. Ed.); Addison-Wesley, 1994
Foley, R., Haag, Z., Conclusions of an Assessment of Configuration Management Tools for VISCOUNT, Computer Studies Technical Report COS/CSCW/02/1998 – Glasgow Caledonian University
Haag, Z., Foley, R., Newman, J., A Deontic Formalism for Co-ordinating Software Developments in Virtual Software Corporations, IEEE 7th International Workshop on Enabling Technologies: Infrastructures for Collaborative Enterprises (WETICE ’98), Stanford University, California, USA, June 17-19 1998.
Halsall, F., Data Communications, Computer Networks and Open Systems 4th ed., Addison Wesley, 1995
Horstmann, C. S., Cornell, G., Core Java Volume 2 - Advanced Features, The SunSoft Press, 1998
Mair, Q., Agent Technology in a VSC, Computer Studies Technical Report COS/CSCW/03/1998 – Glasgow Caledonian University
Mowbray, T., Zahavi, R., The Essential CORBA; OMG/Wiley, 1994
OMG, CORBA/IIOP 2.1 Specification; OMG document 97-09-01, 1997a
OMG, IDL to Java Mpping; OMG document 97-08-06, 1997b
Orfali, R., Harkey, D., Client/Server Programming with Java and CORBA, Wiley, 1997
Paulk M.C, Curtis B., Chrissis M.B. & Weber C.V., Capability Maturity Model, Version 1.1, IEEE Software, 10(4), pp18-27, 1993
Rout T.P., SPICE A Framework for Software Process Assessment, Software Process Improvement and Practice (pilot issue), pp57-66, 1995
Rosenberry, W., Kenney, D., Fisher, G., Understanding DCE, O’Reilly, 1992
Sun Microsystems, http://java.sun.com/features/1997/aug/jws1.html, 1997
VISCOUNT, Viscount Project Programme, VISCOUNT Internal Document, 1997
W3C, http://www.w3.org/Protocols/Overview.html, 1997