· Identify the complexity of the development technology used. Complexity may be derived by how much RAM the development technology requires to run and how network intensive it is. Complexity levels can include both low and high complexity. Low complexity development technology that has low RAM requirements, low network dependency or few network transactions, and ascii-text based development. High complexity development technology that have high RAM requirements, high network dependency or constant network transactions, and object based development.
Once you have completed your analysis, consideration should be given to appropriate distributed code access technology approach. The application characteristics from the distributed analysis should drive the decision. Distributed Code Access Technology Approach
Identify the technology approach in which code may be retrieved from the remote sites for development. The approach selected becomes the requirements for a technology that will support that approach. There are two primary categories of distributed technology. They include:
· Distributed site: This is when the code physically resides in two or more locations. This is applicable for all complexity (e.g., low to high) development technologies and recommended for medium to high complexity. This can be implemented in two ways (and not limited to):
1. Remote client snapshot: This is when the application code is populated (checked out or retrieved) directly from the local server to the client at the remote site. The initial population of the code baseline to the remote client may take time and varies according to the network performance across sites. However, once a snapshot of the full baseline is on the client, single or multiple checkouts/check-ins of code may be relatively quick (pending any network performance issues). This method requires low setup effort, has low network dependency (unless interacting with the server at the local site for version control or retrieval operations), and has the client working on their own without continuous reliance on the WAN or LAN. This may be recommended for projects where a small to medium number of people from remote sites are working with the local site
2. Remote server repository: This is when the application code is populated (replicated or retrieved) from the local server to a central server at the remote site and the remote clients at the remote site retrieve code from this central remote server. The initial population (or retrieval) of the code baseline to the remote server may take time and varies according to the network performance between sites. Once the full baseline is on the remote server, periodic changes (from each site) are replicated/retrieved relatively quickly pending network performance. The clients at the remote site use the server at the remote site to version control or retrieve the code baseline with no WAN dependency. This method requires medium setup effort, has low to medium network dependency unless the code repositories are being updated by each other, and has the client working on their own without continuous reliance on the WAN. This may be recommended for projects where a medium to high number of people from remote sites are working with a local site.
· Single site with distributed site access: This is when the code resides only at one site and all remote sites use the resources of the local server and/or clients where the code resides. It is applicable for low to medium complexity development technologies and recommended for low complexity development technologies depending on network performance. This can be implemented in two ways (but not limited too):
1. Terminal emulation: This is when