Since object technology is a commercial paradigm, we understand the main commercial technology that can be used for software system architectures. The main two types include patented software and open system software. Patent Software Patent Software is a non-compatible standard product for individual vendors. The manufacturer controls the form and functionality of software in multiple repetitive product versions. At present, they are highly dependent on commercial software when they are established. Commercial software is the main form of software reuse, and it is actually a more efficient reuse in a single enterprise. The economic saving is a reason for commercial software to become a more powerful repetitive form due to the expansion of business scale. The large number of software is distributed to the customer, and the extent of the software is degne and quality control far exceeds the internal development capability of the largest end user company. When the end user company relies on patent software, they are all dependent on the continued support of the manufacturer, and from the structure, many end users rely on the manufacturer's claim will be added to Software. When patented software is packaged in a public specification or standard, this specification usually has a direct manifestation of a single software implementation. Typically, this patent implementation is generally not changed when the patent specification enters the public domain. When there is actually there is no need to modify the underlying technique, the impression it left is that patented software may also become a standard of open system. This phenomenon is particularly true when thousands of software licenses are distributed and run on existing software systems. When the patent technology develops forward, the manufacturer uses the unique explanation of the software concept to describe their products. This explanation may include modifications to the basic principles of the prototype of the face. "We specify the shape of the building; from that future builds, our form is specified." - The most important aspect of SIR Winston Spencer Churchill patented technology is the application interface (API). The API of the patent software defines a boundary between a patent implementation and value-added application software (possibly a system that provides an independent software vendor or end user). As patent software technology evolved in a variety of ways, the application programming interface may also change. New capabilities are still continuously added to patent software, which exacerbates the complexity of the application programming interface. In many cases, the complexity of the programming interface of patented software far exceeds the functionality required for the end user organization. The end user organizes that it is appropriate to manage this complexity in a variety of ways. As a supplement to add new capabilities to patent programming interfaces, manufacturers may sometimes discard some of the interfaces in the software. This will have a major maintenance of application software. With the evolution of patent software, this is important to maintain the mainstream support activity provided with patent manufacturers in a variety of ways. When the end user's system is behind two or more cycles, it is usually necessary to re-restore the business software, so that you can synchronize with the current version. Many end users have found that the application interface is almost abandoned in a few cycles of the product version. In summary, the evolution of patented software version and programming interface has become a monotonous job that applies developers and independent software vendors in order to maintain with the supported software synchronization. This is the conflict between application users and patented software vendors, as most of vendor's profit may be driven by software upgrade packages. Another class of open system software is an open system technology (Figure 1). Essentially open system technology and patent technology are different. In open system technology, multiple manufacturers have reached an agreement, and this norm does not depend on patent implementation. This is the case of most formal standard activities and most community standard activities, it is becoming more popular. In open system technology, various specifications have dominated the act of implementation.
Figure 1. Patent Technology (a) and Open System Technology (B)
Its key benefits are consistency of multiple vendors to implement interfaces. Other advantages have the same terms and software interface, because the open system technology requires multiple manufacturers to agree. Another advantage is that the level of technical specifications and the extension of life cycle. Since the development of products is conducted by multiple manufacturers, the corresponding market activities that cause market demand are also synchronous and coordinated. One of the key advantages of open system technology is that it provides interoperability between commercial software vendors. The difference between open systems and patented technologies is particularly obvious for object-oriented systems, and it is becoming the mainstream of application development, because object technology has become the mainstream of commercial technology. Commercial information technology has been evolving. Additional capabilities that are increasingly satisfied with application needs are being added, and can be used through business technology. However, there is still a lot of thorough transformation in terms of commercial technology, such as operating systems and programming languages.
In some commercial technology (such as office automation, word processing, and spreadsheets), many features are continuously reorganized and provided to end users, but there is no significant performance expansion. In many people's view, the speed of technology evolution relative to competitive applications is slower. The publishing of business technology is to meet a large number of users' needs. The generality of this software exceeds the needs of any individual application users. In order to change the business technology to meet the needs of the application, it is necessary to configure and install software, which customizes commercial software to suit specific applications (Figure 2).
Figure 2. Customization of commercial software
The need for custom commercial technology is often referred to as Profiling. As a supplement of custom software, we need to build an application system with a firm specific application. Because for most applications, the capacity you can use is relatively primitive, so this requirement drives a growing demand - establish more and more specific application software to improve the architecture of the application system. As the system evolves from single users to departmental levels to enterprise-level applications, their interoperability is also stronger, and the functional differences between commercial soft and individual user software can be increasing.
The architecture of the application software system is increasingly important in how users support user needs. Most systems outside the telecommunications industry are integrated with a process or other paradigm, and doing so often causes an invalid solution. In fact, for the system established by joint development organization, most software items are considered to fail when they are completed. From the viewpoint of architecture, many of these systems are similar to constructs in the StovePipe system in Figure 3 (a). There is a large number of integrated software modules in the StovePipe system, each software module has a unique software interface, which corresponds to a program's implementation.
Figure 3. StovePipe system (a) and component architecture (b)
When the system is integrated, there are many one-on-one dependence between its different parts. These dependencies are unique integrated solutions. With the size of the system, the number of dependencies increases by the number of modules with the size of the module. Such complexity increases a lot of negative effects. In particular, as the evolution, modification and extension become more difficult. The system extension is precisely the main cost drive factor in application development; it accounts for approximately half of all software costs [Horowitz 1993].
One of the optional methods for establishing a system is to include the definition of a planned software interface, which provides a higher level of consistency across the integration scheme. The component architecture is an application system that uses a consistent application programming interface that across multiple software subsystem instances (Figure 4). The component architecture reduces the dependencies between software modules, while reducing reducing reducing system can expand and support larger integration. The complexity of software integration of the appropriate component system is dependent on the number of software modules required to establish the system.