[Reserved] Architecture & Patterns

xiaoxiao2021-03-06  49

Http://market.9cbs.net/msdn5.html

As an international software industry, Microsoft has entered China's 12 years, but there is no such thing as a magazine, March, "Programmer" and Microsoft China (company), which "MSDN developers", and Microsoft China (company). Select, what is your expectation for this magazine? Please participate in our large-scale prize investigation: Do you have a Microsoft Technology Magazine?

Hot discussion · It should be selected for technical articles that have been paid attention to by domestic developers on the MSDN website ... · In the beginning and middle of the selected article, "Key Technology Point" is refined ......

Related news · "Programmer" and Microsoft (China) company jointly launched "MSDN Development Selection", filling the gap in China's Microsoft Technology. · Vice President of Microsoft, Chen Yongzheng, the chief executive of Microsoft, China and other Microsoft, highly evaluated "MSDN Development Selection", and congratulated on the inscription of the publication. · "MSDN Development Selection" was held on March 7. · MSDN Chinese website releases the countdown. · Microsoft 2004 Developer Day

National Dealer Directory · North China District · Northeast District, East China, Huazhong District, South China, Southwest

Related Links · Microsoft China · MSDN Chinese Website · Microsoft China Community

Architecture & Patterns - Architecture and Mode Real Outline in Microsoft .NET in Enterprise Solutions

[Abstract] The target readers of this topic are those who wish to understand the methods of Microsoft provided by Microsoft in the structure of enterprises, applications, and technical architecture and their programming staff. The full topic expounds the various elements that need to be considered in the architecture design, discussing the structure and mode implementation of Microsoft .NET in the enterprise solution, the full-text positioning is relatively high, and the readers who are not more understanding for architectures and patterns can refer to this topic. See the book, some mode implementation of the topic is based on .NET Framework, readers who have related language skills can understand the sample code, and readers who are not very familiar with ASP.net can also refer to MSDN online help. What is a architecture software architecture is often referred to as architecture, which refers to a prefabricated and reconfigurable software frame structure. The architecture is still in the development period. For its definition, the academic community has not yet formed a unified comment, while different angles of perspective will also cause different understanding of the software architecture. The following is some mainstream standard perspectives. ANSI / IEEE 610.12-1990 Software Engineering Standard Vocabulary For architectural definitions: "The architecture is the basic organizational structure of a system that is related to the relationship between components, components, the relationship between components and environments, and knows the above Principle of Design and Evolution. Mary Shaw and David Garlan believe that the software architecture is a level of algorithm design and data structural design in the software design process. Architecture problems include organizational and global control structures, communication protocols, synchronization, data storage, and design elements, design elements, and selection between design elements. The basic idea of ​​the Garlan & Shaw model is: Software Architecture = {Component, Connector, Constrain}. The component can be a set of code, such as a program module; can also be a separate program, such as a database server. The connector can be a process call, a pipe, a remote procedure call (RPC), and the like, which are used to represent the interaction between the members. The constraint is generally the rule of the object, or specifies the form and conditions of the component connection, for example, the upper layer member can request the service of the lower member, it is not possible; the two objects may not send a message; the code copy migration is constrained; Such a connection is invalid under conditions. There are still many other perspectives regarding the definition of the architecture, such as BASS definition, Booch & Rumbaugh & Jacobson definition, Perry & Wolf model [7], BOEHM model, etc. However, its core content is the structure of the software system, which represents the Garlan & Shaw model, emphasizes the basic elements of the architecture to be components, connectors, and their constraints (or connection semantics), which are constructed from constructive The angle and even the software architecture, and the IEEE definition not only emphasizes the basic composition of the system, but also emphasizes the environment of the architecture and the interaction of the outside world.

What is the concept of pattern mode (PATTERN), which was first proposed by the Architect Christopher Alexander in the 1970s. It is used in the construction field. The mid-1980s is introduced by Ward Cunningham and Kent Beck to the software field. In 1994, the International PLOP (Pattern Language Of Programming) meeting was jointly launched by Hillside Group (Pattern) conference, and today's mode (Pattern) has become a hot topic in the field of software engineering, in the field of computer. The impact exceeds the influence of the building. Christopher Alexander divides the pattern into three parts: first is Zhou Kiang (Context, or a context), what is the status of what is the status of the model; its second is the motivation, means a problem or expected Target; its third is a solution, refers to a constructor or configuration of each motive or resolving the problem elaborated. He proposed that the pattern is a rule that represents three relationships of acute, motivation, solutions, and each model describes a problem that has occurred in a certain hiemer, and the core of the problem solution, mode is It is a thing that is another process (Process), not only describing the matter itself, but also presents what the process is generated. This definition has been widely accepted by the software. The application of software model has a major role in software development, mainly in:? Software mode is a long-term design software, management organization software development and other practices in practice and abstraction, is a multiplexed software design method, process Management of empirical tools. Mode is similar to a combination of boxing in boxing, which provides a series of idea routines in software development. For example, through the mode of use, it is advantageous to create a concise, exquisite design in a complex system. Software mode provides us with a set of simple and universal design, management, organization vocabulary, while models also provide us with a standard standard for describing abstract things, which can greatly promote communication between people and people during software development. And the exchange in software development is critical. "The reason for the failure of software projects can eventually be traced back to the information that should be transmitted and accurately transmitted to the person you should receive." Architecture and mode The relationship is often mentioned in the current software development, but many people are easily confused, and there is no very unified definition of the academic community. . Architecture and mode should be a process that is covered by mutual coverage, but in general, Architecture is more concerned about the so-called high-level design, and the focus of the model is in the design of the "guidelines or guidance scheme" in the design, Therefore, in different levels, the problem is formed on different problem domains. Compared to system analysis, the architecture is a solution to solving problems, and system analysis is to solve these problems. Both of these will be used, but the angle of focus is slightly different, and the architecture tends to architecture mode, and the system Analysis is more use of design patterns and specific languages. The architecture emphasizes the relationship between the structure of the software system and its various elements, and the model is the relationship of abstract levels. For example, the design mode is some "guidelines" after experience abstract, and uses these Mode, helps the relationship between the system element (Elements) and the organizational system elements in architectural design.

The mode is an experienced "guideline" and is verified in a single practice. There are different modes in different levels, small to language implementation (such as Singleton). On different levels, the mode provides guidance from different levels, such as architectural design, three-story applications, distributed applications, etc. These technical architectural models provide the theoretical reference for architecture design, and in the field of programming, design models The relationship is provided to describe the relationship between the various elements (in the object-oriented domain, more refer to the class), and the "design pattern of the object-oriented software" is the classic masterpiece at this level. In the implementation of the language, the same implementation mode, such as the Delegate (observer) mode implementation in .NET. Compared to system analysis or design patterns, the architecture considers problems from a higher level, so concerned is reflected in the "unchanged" factor, such as system deployment, more concern, more concerned with layered grading design, The deployment scheme proposed on this basis is the focus of the architecture consideration. Architecture cares for application models, more embodies in the influence of technology to solve these business differences, care about whether it is a distributed application, and how to design, it is also designed, and it is also concerned about performance and security. Therefore, in such cases Next, a series of techniques such as cluster, load balancing, fault migration, etc. will be considered. It is hoped that the architecture and mode is unlikely to distinguish between the way, because it is interactive intersection and providing services, such as the famous MVC (Model-View-Controll) is an example, in design mode is a very classic The mode is equally applicable in the architecture. For system architects that are familiar with architectural design, it seems to be able to explain the relationship between architectures and patterns: the architecture is Hight-Level Design, focusing on different business-friendly solutions, and the pattern is General PrinciPle (General Principle ). Mode is used to guide the architecture design, and the architecture design selection mode About Microsoft .NET Framework.NET Framework is a new computing platform that simplifies application development in a highly distributed Internet environment. The .NET Framework is intended to achieve the following goals: ● Provide a consistent object-oriented programming environment, regardless of the object code, is stored and executed locally, or distributed on the Internet, or is executed remotely. ● Provide a code execution environment that minimizes software deployment and version control conflicts. ● Provide a code execution environment that guarantees code (including code created by unknown or incomplete trusted third parties). ● Provide a code execution environment that eliminates a script environment or interpretation of performance issues. ● Make developers' experience in the face of a large number of applications (such as Windows-based applications and Web-based applications). ● All communication is generated according to the industrial standard to ensure that the code based on the .NET Framework can be integrated with any other code. .NET Framework has two main components: public language runtime and .NET Framework class libraries. The public language runtime is the foundation of .NET Framework. You can view the runtime as a proxy that manages the code when executing, provides a core service (such as memory management, thread management, remote processing), but also enforces strict types of security and other security and reliability. Form code accuracy. In fact, the concept of code management is the basic principles of the runtime. The code based on the run library is called the hosted code, and the code that does not run the library as a non-hosting code.

Another major component of .NET Framework is a class library, which is a comprehensive object-oriented reusable type collection that develops a variety of applications, including traditional command lines or graphical user interfaces (GUI Applications, as well as the latest innovative applications (such as web forms and XML Web Services) based on ASP.NET. The .NET Framework can be carried by a non-hosting component that loads the public language runtime to their processes and starts execution of managed code, creating a software environment that can simultaneously utilize managed and unmanaged functions. .NET Framework not only provides several running library hosts, but also supports the development of third-party running library hosts. For example, the ASP.NET bearer running to provide a scalable server-side environment for managed code. ASP.NET uses a run library to enable ASP.NET applications and XML Web Services. The following illustration shows the relationship between the public language runtime and class library and the application and the entire system. This illustration also shows how managed code runs within a larger structure. .NET Framework environment

Microsoft Enterprise Architecture (Architecture) Overview Enterprise Architecture (EA) is a conceptual tool that helps organizations understand their own structure and their principles. It provides a structural diagram of the company, which is a planning tool for business and technology. In general, the enterprise architecture is characterized by a set of interrelated models that describe the structure and functionality of the company. The enterprise architecture is mainly used for systematic IT planning and architecture, as well as improved decision-making processes. Each model in EA is aligned in logical way, allowing the company's details, including: ● purpose and objectives; ● Process and organization; ● System and data; ● Use technology; information in corporate architecture It can be checked from different angles and can meet various needs. Users of architecture include business managers and analysts, system architect designers, workflows and program analysts, logistics experts, organizational analysts, etc. These personnel require advanced summary information, detailed data and intermediate data of various levels. These needs to be satisfied by creating conceptual views, logic analysis, and physical implementation. In Microsoft, we discovered four important and commonly used basic review perspectives. They are business, applications, information, and technical perspectives. Business angle "Business Angle" describes the operation mode of the business. It includes a wide range of business strategies, as well as plans to make organizations from the current state to the future state of the idea. It is generally included: 1. Enterprise advanced goals; 2. Business processes implemented by an important part of the entire enterprise or enterprise; Executive business function; 4. The main organizational structure; 5. The interrelationship between each element; the application perspective "application angle" defines the asset application of the company, and is based on the application. It is generally included in the following: 1. Description of automatic service supporting business processes; 2. Description of interaction and interdependence (interface) related to application systems in organizations; 3. Develop new applications and transformation of new applications and transformation according to corporate goals Program, as well as development technology platforms; application perspectives can represent cross-organization services, information, and functions, connect users with different skills and technology to achieve common business goals. The information angle "Information Angle" describes the information you need to know during business processing and operation. Including the following: 1. Standard data model; 2. Data management policy; 3. Mode description of information generation and use in the organization; information perspective also describes the configuration of data and workflows, including structured data existing across the organization Store (such as database) and non-structured data storage (such as documentation, spreadsheets, presentations, etc.). Technical perspective "technical perspective" provides hardware and software support for organizations. It includes, but is not limited to: 1. Desktop and server hardware; 2. Operating system; 3. Network connection component; 4. Printer; 5. Modem; technical perspective for infrastructure and system components required to support applications and information perspectives It provides a logical, independent description of suppliers. It defines a set of technical standards and services to complete the business. Although there are many angles, it is just a corporate architecture from these perspectives. The value of the corporate architecture is not in any individual angle, but the interrelation, interaction, and interdependence between each angle. Although all angles are key elements of the enterprise architecture, this topic will focus on application and technical perspective. "Application Architecture" is an automatic service architecture for supporting and implementing such business needs, including interface between the service and other applications. It describes the structure of the application, and how this structure implements the functional requirements of the organization. Although Ideally, an organization should have only one application architecture, but in fact, an organization often has many different application architectures. The "operation" requirements of the software system define the reliability, manageability, performance, security, and interoperability of the software.

Common examples are only available to authorized users, this service requires its functionality to implement it in 99.999%. "Technical Architecture" is a system structure that supports organizations and hardware and software infrastructure that implements operational (non-functional) requirements (especially organizational applications and information architectures). It describes the structure and internal relationships of the technology used, as well as how these technologies support the operational needs of the organization. A good technical architecture can provide security, availability and reliability, and also support various other operational needs. However, if the application is not using the advantages of the technical architecture, its execution effect will be poor, or it will be difficult to deploy and operate. Similarly, even a excellent application architecture is built by using the latest technology, using the reusable software components to meet the needs of the business process, it may not reflect the actual technical configuration, for example : The server has not been configured to support application components, and network hardware settings cannot support information flow. This shows the interrelationship between the application architecture and the technical architecture: a good technical architecture supports key applications in the organization, and a good application architecture can make full use of technical architecture, throughout the operation Consistent performance in demand. Figure: The relationship between architectures All architectural views have a variety of architectural views, usually divided into concepts, logic, and physical views. "Concept View" is the most abstract view, which is generally described in terms familiar to system users (non-IT professional users). Concept view Used to define the functional requirements and business user views of the application to generate a business model. "Logical View" shows the main functional components and their relationships in the system, without related implementation details. The "Application Model" created by the architecture designer is the logical view of the business model, because they determine how to meet business goals and needs. The application model represents a logical view of the application architecture. "Physical View" is the least abstract, which represents a specific implementation component and the relationship between them. Each element in the physical view is generally implemented by the design and development process, such as software and hardware systems.

Figure: Architecture View Each architecture level may be (in fact, there will be) multiple views, for example, each application usually has a logical application architecture. These views are driven by a set of demands, which in turn generates design, development, configuration, and operational processes and systems for the system.

Figure: Architecture view and mode The Microsoft product line represented by .NET show us "architecture-based, mode-by-way" corporate solution design concept, adhering to Microsoft products, and we will See the advantage of using .NET on the use .NET builds the enterprise application platform. Not exaggerated, .NET is not the first software application platform that reflects architecture and patterns, which is indeed the last platform that implements architecture and patterns. In the subsequent article introduction, you will find that architecture design and Mode applications will be so simple.

>>> Comments

Bailianmeida Company Copyright Beijing ICP Certificate 020026 Copyright? 9cbs.Net, Inc. All Rights Reserved

转载请注明原文地址:https://www.9cbs.com/read-54227.html

New Post(0)