First, distributed application system development background
In the past decade, communication technology and computer technology have been greatly developed, mainly in: the transmission rate of fiber optic communication technology has reached an incredible height; wireless communication technology has developed from simulated to digital, from narrowband to broadband; computer technology Breakthrough development in calculating the processing rate, parallel processing structure, and object-oriented software technology and distribution object computing technology. Computer CPU processing speed continues to increase, has reached 1000MHz; the processing speed of the giant computer has risen from 100 billion times per second, even trillion commands; high-performance computer architecture and parallel computing structure, Make computer processing speeds beyond a single CPU processing speed limit; object-oriented software technology makes computer software breakthrough in software reuse; distribution object technology enables heterogeneous software systems to easily implement interoperability in network environments And system integration.
The development of communication technology and computer technology has promoted the development of network applications. The current network application has developed from the transfer of single body data, the multimedia network application that transmits voice data and video data, and integrates multiple types of data transmission; from traditional points to point, develop to single point to multi-point interaction (eg Video Broadcasting and Distance Education Applications) and Multi-point Distance Interactions (such as computer video conferencing application systems); develop from traditional centralized control structures to distributed control structure, further development to federal (with different administrative domain) Control structure; from traditional efforts, there is no service model for service quality requirements, develop to high-speed transportation service model and high-performance network services with service quality assurance.
The development of network architecture reflects the characteristics of network technology development. The main feature of network technology in the 1980s is open, interconnected, and the network architecture in that period is mainly based on ISO-based open system interconnect (OSI) reference model. The computer network has now developed to a high-performance network phase, and now the network technology is characterized by open, integration, high performance and intelligence. The characteristics of these network technologies are also reflected in the development of the network architecture. We believe that the maximum impact on new network architecture is mainly integrated and high performance.
Distributed network applications and their extensive, including online transaction processing systems, network management systems, global personal communication systems, electronic medical image systems, CORBA object requesting agents, high-performance web servers, and multiprocessor communication subsystems.
Second, the benefits of distributed application systems and face challenges
Network-based distributed applications can bring the following potential benefits:
Ø Enhanced connectivity and collaboration: Information is quick and accessible to all customers, avoiding manual data and control information transmission
Ø Significantly improve system performance, scalability, and fault tolerance: rationally allocate computing resources based on current and future system requirements; new hardware is added to the system or related hardware is updated (such as replacement faulty systems) will not involve Other application units in distributed systems
Ø Reduce System Cost: Multiple users or applications share those expensive peripherals such as file servers or high-capacity color printers to reduce the cost of the system; the separated service unit facilitates the subsequent development cost of the binary level.
A typical structure of distributed network applications is a plurality of PCs or servers connected via a local area network. In this environment, many scattered application units provide various computing tasks for end users. such as:
Ø A interactive GUI can be managed by the XWindows server or other thin clients to manage web browsers that support Java.
Ø Provide service processing power by one or more hosts
Ø Access permanent resources through one or more file servers, such as SQL database, web caches and licensing management
Mutual compatible network protocols make interoperant between individual phases (feature) units (terms components), even network protocols, operating systems, hardware, software, and programming languages in the network environment in which they are located It is heterogeneous (different categories).
A network-based distributed application is more complicated from design to implement, debugging, optimization, and monitoring than traditional stand-alone applications. Despite the past more than 10 years, object-oriented development technology and framework ideas have been greatly developed, while a large number of principles, methods, patterns and tools are used to alleviate the complexity of development and configuration distributed network applications. The degree, but you want to meet the ideal realm of distributed applications, people are also facing a lot of topics that must be resolved. Service division and cross-process / host load balancing; service customization issues within the full network, resource control issues within the entire network, and user management issues within the full network. Difficulties faced by distributed network applications:
Some is due to the difficulties of naturally occurring in a distributed network environment, including
Ø Detect short-transient network or host failure, and restore normal
Ø Minimize the impact of communication delay on end-to-end application performance
Ø How to reasonably divide a variety of services in distributed applications
Ø Where to distribute these services in the network environment, while providing load balancing for these services
These difficulties are in a distributed network environment, which will not disappear in a short time. Developers will also work a lot of work to solve these problems.
The following is due to the difficulties brought about by development tools and development technology, including:
Ø Lack of secure, portable and scalable local system methods call interface; lack of reusable functions and libraries
Ø Lack of valid debugging tools calls for remote methods of cross-process and hosts
Constantly emerging network programming concepts and continuous improvement of network processing capabilities, making software life cycles decrease, greatly increased software development costs