Directory
- Enterprise Architecture
- Application and Technical Architecture
- Concept, logic, and physical view
- Application Architecture
- Application Mode
- Technical Architecture
- Technical Model
The target readers of this article are business, software, and infrastructure architects who want to understand the methods Microsoft provides in terms of enterprise, application, and technical architecture. It includes architecture terms, patterns, concepts and definitions, and a series of views of the architecture. Enterprise ArchitectureThe architecture defined in ANSI/IEEE Std 1471-2000 is: "the basic organization of a system, it is represented by the system components, the relationship between components, the relationship between components and the environment, and the principle of design and evolution." Enterprise Architecture (EA) is a conceptual tool that helps organizations understand their own structures and their principles. It provides an enterprise structure diagram and is a planning tool for business and technological changes. Generally, an enterprise architecture is represented by a set of interrelated models that describe the structure and functions of an enterprise. Enterprise Architecture is mainly used for systematic IT planning and architecture, as well as the decision-making process for improvement. Each model in EA is arranged in a logical manner, so that the detailed information of the enterprise is continuously increasing, including:
- Goals and objectives.
- Process and organization.
- System and data.
- The technology used.
Microsoft Architecture AnalysisThe information in the enterprise architecture can be viewed from different perspectives and meet various needs. The users of the Architecture include business managers and analysts, system architecture designers, workflow and program analysts, logistics experts, and organization analysts. These personnel require advanced summary information, detailed data, and various levels of intermediate data. These requirements must be met by creating a conceptual view, logical analysis, and physical implementation. At Microsoft, we have discovered four important and commonly used basic perspectives. They are business, application, information and technology. Business perspectiveThe "business perspective" describes how the business operates. It includes a wide range of business strategies and plans to move the Organization from the current state to the future state of vision. It generally includes the following:
- Enterprise's high-level goal.
- The business process of the entire enterprise or an important part of the enterprise.
- The business functions that are executed.
- Main organizational structure.
- The relationship between each element.
Application PerspectiveThe "application perspective" defines the enterprise's asset applications, focusing on applications. It generally includes the following content:
- Description of automatic services that support business processes.
- Description of the interaction and dependency between application systems in an organization.
- Develop new applications, transform old applications, and develop technical platforms based on enterprise goals.
Applications can represent cross-organizational services, information, and functions, and connect users with different skills and technologies to achieve common business goals. Information AngleThe information angle describes the information that an organization needs to know during business processing and operation. Includes the following content:
- Standard Data Model.
- Data management policy.
- Description of the mode in which information is generated and used in an organization.
It also describes how data is associated with workflows, including structured data storage (such as databases) and unstructured data storage (such as documents, workbooks, and presentations) in the entire organization ). Technical perspectiveThe technical perspective provides hardware and software support to the organization. It includes but is not limited:
- Desktop and server hardware.
- Operating System.
- Network connection component.
- Printer.
- Modem.
The technical perspective provides a logical and vendor-independent description of the infrastructure and system components required to support applications and information. It defines a set of technical standards and services required to complete the business. Although there are many perspectives, what we can see from these perspectives is only an enterprise architecture. The value of enterprise architecture lies in the relationship, interaction, and dependency between different perspectives, rather than from any individual perspective. Although all perspectives are key elements of the enterprise architecture, this article will focus on application and technical perspectives. Application and Technical ArchitectureThe "function" requirement of the software system describes the commercial value provided by the software. For the weather forecast service, functional requirements can be described as "using well-organized information a as input, the service returns the correct information B for the time span and geographical location represented by information ". An application architecture is an automatic service architecture used to support and implement such business requirements, including interfaces between the business and other applications. It describes the structure of an application and how it meets the functional requirements of an organization. Although ideally, an organization should have only one application architecture, in fact, an organization often has many different application architectures. The "operation" requirement of a software system defines software reliability, manageability, performance, security, and interoperability. A common example is a service that is only available to authorized users. Such a service must be able to correctly implement its functions within 99.999% of the time. The technical architecture is the architecture of hardware and software infrastructure supporting organizations and implementing operational (non-functional) needs (especially the application and information architecture of the Organization. It describes the structure and internal relationships of the technologies used and how these technologies support the operational needs of the Organization. A good technical architecture can provide security, availability, and reliability, and support various other operational needs. However, if the application is not designed to take advantage of the technical architecture, its implementation will be poor, or it will be difficult to deploy and operate. Similarly, even if an excellent application architecture is built using the latest technology and reusable software components, it can well meet the needs of business processes, it may not reflect the actual technical configuration. For example, the server is not correctly configured to support application components, and network hardware settings cannot support information flow. This shows the relationship between the application architecture and the technical architecture: a good technical architecture can support key applications in the Organization, A good application architecture can make full use of the technical architecture to provide consistent performance throughout the operational needs.
Figure 1: Relationship between architectures Concept, logic, and physical viewAll architectures have multiple architecture views, which are generally divided into concept, 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. The concept view is used to define the functional requirements and business user views of an application to generate a business model. The "logical view" shows the relationship between the main functional components and their systems, without the implementation details of the functions. 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 the logical view of the application architecture. "Physical views" are the least abstract, and they represent the relationship between specific implementation components and them. Each element in the physical view is generally implemented by the design and development processes, such as software and hardware systems. The "implementation View" is usually managed by the development or operation department of the organization, so it is not covered in this article.
Figure 2: Architecture View Each architecture level can have multiple views (usually in fact). For example, each application usually has a logical application architecture. These views are driven by a set of requirements, which in turn generate the design, development, configuration, and operation processes and system inputs.
Figure 3: Architecture view and Mode The rest of this guide will focus on the application and technical architecture, as well as the concept and key pattern of using Web Service technology to build service-based applications. Although the implementation part (including design, development, configuration, deployment and management) is very important for the generation of the overall system, it is not covered in this article. Application ArchitectureAs mentioned above, the application architecture provides three views: Concept, logic, and physical. Architects can use these views to generate models that support and meet their business needs in an organization. Ideally, each view has only one model, but in fact each view may have multiple models due to the continuous growth and change of organization and technology. However, the key to flexible and efficient organization is to determine whether a reasonable minimum set of these models can be obtained. Concept ViewThe concept view is used to define the business needs and business user views of an application to generate a "business model ". Conceptual modeling technology (such as case analysis, activity diagrams, process design, and industry-specific modeling) helps to describe key business processes and data they use, and can emphasize business objectives and needs, it does not contain implementation technologies. Logic ViewThe "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 the logical view of the application architecture. The architecture designer is concerned with the overall structure of the application. They determine the correspondence between data management and processing steps, design the interaction between model components based on logical information and sequence, and determine the type and status of data retained by the model. Physical ViewEach element of the application model must be mapped to a true technical element. In this way, the application model is implemented in the "Implementation Model" mode. When programmers write detailed business logic into code, the conventional development process undertakes part of the implementation task, but most of the implementation activities should be classified as completed by the framework. Framework completion is a development technology. Most distributed applications and data management infrastructure are processed by complex frameworks, these frameworks are extended by custom application logic and published control structures. The completion of the framework allows developers to avoid tedious work (such as complicated asynchronous message processing), so that ordinary developers can make greater contributions to the project. It is time-consuming and labor-consuming to plan and build models of different levels for the Organization. Moreover, it is vital for organizations to correctly define these models. Architectural model design errors always lead to serious design problems or operational problems (such as scalability and reliability issues), and even lead to project failure and business impact. Architecture designers are looking for frameworks and guidelines to help them create and implement these models and minimize the risks arising from the use of error models. Architects can use two architecture guides and help to speed up modeling and reduce risks. The first is a set of architecture concepts that provide:
- General understanding and communication.
- A guide on how and when to use a concept and information about its attributes.
- Instructions on how to implement and use these concepts based on these guidelines or practical technologies.
The second is a set of models, which are composed of these basic concepts based on the practical experience of a large number of successful distributed applications. These models encapsulate important distributed application design instances by providing excellent, tested architecture models, and minimize the risk of project failure.
Figure 4: application architecture View These two sets of guidelines (Concepts and patterns) are at the conceptual level (they are enterprise model concepts and patterns), at the logical level (they are application concepts and patterns) there are corresponding guides at the technical level. The provision of these concepts and models is critical to the successful, fast, and efficient implementation of the system and adoption of technology in the Organization. Application Architecture: Concept ViewIn the past, application construction was achieved by integrating local system services (such as file systems and device drivers. This model provides great flexibility in accessing rich development resources and precisely controlling the behavior of applications, but it is also prone to errors and costly and time-consuming. Now, you can integrate existing applications and services on the entire network, and then use such business entities, data entities, and other aspects to provide unique additional value on them, to construct complex distributed applications. This allows developers to focus on providing unique business value, reducing time to market, improving development efficiency, and ultimately developing high-quality software. Over the years, this has been a powerful architecture model, but it has produced "application traffic" or "information islands", which may cause major problems in architecture reuse. Now, we enter the next computing stage. In this phase, the concept of Internet and Web Services is used to create powerful applications that can be used anytime, anywhere. It increases the application scope and can continuously deliver software. In this case, software is a service-a service that is ordered and used through a communication network. . Net promotes this concept by combining the efficient tight coupling characteristics of N-layer computing and the information-oriented loose coupling concept of web. This calculation method is called "XML Web Service ". It represents the next generation of application development technology and is the basis of the conceptual application architecture. Web services are effective units of application logic. They provide message-based interfaces suitable for network access. Generally, a service provides both business logic and status management related to the problem to be solved. When designing a service, your goal is to effectively encapsulate the logic and data related to the process in the real world, make a wise choice between content to be included and content to be implemented as an independent service. State processing is managed by business rules. Business Rules are relatively stable algorithms (such as the method for picking tickets from the commodity list), which are generally implemented as application logic. Services are managed by policies. Compared with business rules, policies are less stable and may be regional or target to specific customers. The policy is generally driven by viewing tables at run time. Therefore, the more complete definition of a service should be: "A service is a software unit that can run on the network. It implements logic, management status, and communication through messages, and managed by policies." The application concept view is displayed inApplication Architecture: conceptual viewIt is described in detail in English. Application ModeMode is the solution to the problem in the environment. The Mode organizes the specific knowledge collected from a certain field into a document. An application pattern is an architectural pattern that defines the optimal instance of an architecture design in a specific application environment. There are many types of patterns that can be defined and interpreted as specific patterns, but they are not covered in this article. Many existing architecture models can be applied to the Web service-based architecture, but there are still a lot of new models in the new structure of Web Services. Technical ArchitectureSimilar to the application architecture, the technical architecture also provides three views: Concept, logic, and physical. Architects can use these views to generate models that support and meet their operational needs in the Organization. Just like an application, there should be only one technical architecture, but in fact there are almost always multiple technical architectures due to the growing and changing organization and technology. A key requirement of an organization is to integrate these completely different technical architectures into a complete architecture to reuse existing applications, and make these technical architecture a reasonable minimum set. Such a public architecture is crucial for creating efficient and flexible organizations. Concept ViewThe conceptual view of the technical architecture is used to define the technical fields as structures and frameworks. It is used to define, name, and locate fields that can be understood by IT suppliers and organizations that use technology, ensure that all technical areas required to meet the operational or non-functional needs of the Organization are defined and available to the Organization. Logic ViewThe logical view of the technical architecture is the main functional element. They provide support for enterprise-level operation requirements and provide internal relationships between each other. Enterprise Technical elements (such as databases, email systems, transaction support, and reliable message transmission) are provided in the logical view. The technologies provided at this level are generally provided by enterprise software vendors and servers. Physical ViewEach element of the technical architecture needs to be mapped to the actual technical elements of hardware and software. In this way, the technical architecture can be a complete system of networks, servers, operating systems, etc. The actual physical location, server product name, and connection are displayed at this level. Architects are looking for frameworks and guidelines from IT providers to help them build systems that meet the operational needs of the organization and ensure that the technology of the Organization is consistent with that of IT providers. Technical Architecture: Concept ViewTechnical Concept architecture is the technical basis for establishing enterprise-level web services in an organization. The advanced chart of the technical concept architecture shows a general set of levels, providing enterprise-based services for Web Service generation. These levels contain the public elements required by web service applications or systems.
Figure 5: Concept view of Technical Architecture The bottom of the chart is the "service platform", which provides trust and management services for the operating system, hardware, storage, networking, and the entire system. The service framework provides the process, logic, functions, and status management required by web-based applications. It is also a complete enterprise application server dedicated to supporting Web Services. "Service Delivery" includes portal and client services, which are mainly used to provide problems and technologies, including support for various devices. Service integration provides integration and interoperability between services and existing operating systems: Old applications, commercial applications, databases, and other Web Services. This is usually called Enterprise Application Integration (EAI ). Finally, "service creation and deployment" provides the tools, processes, methods, and modes required for designing, developing, assembling, managing, deploying, and testing Web Services. The concept view of the technical architecture lies inTechnology architecture: conceptual viewIt is described in detail in English. Technical ModelThe technical model is an architecture-level model that defines the optimal instance of architecture design in a specific application environment. The Enterprise Architecture designer is looking for guidance and best practices for the following key areas of the organization:
- Security, identity recognition, and trust.
- Integration and interoperability between future systems and existing (old) systems.
- Deployment, monitoring, and management.
- Scalability and performance of the distributed technology architecture.
- Reliability and availability of technical architecture
|