XML, Soap, and. NET

Source: Internet
Author: User
Tags error handling execution extend implement object model valid web services what interface
XML XML, Web services, and the. NET Framework

Application development technology is taking a qualitative leap, radically increasing the productivity of developers, and it opens the door to an application that leads to new concepts.

In the past, developers have been building applications by integrating local system services. In this mode, developers have access to rich development resources and can strictly control the behavior of the application.

Today, developers have largely freed themselves from this pattern and are committed to building N-tier systems with complex structures that integrate numerous applications throughout the network and greatly enhance the value of the application. This allows developers to focus on discovering the unique business value of the software without having to worry about how to build the infrastructure day and night. The joyful situation will come into being: the time that the software puts on the market is shortened greatly, the programmer's programming efficiency is obviously improved, the most fundamental is to develop the quality software.

We are entering a new computing age, the core technology of an internet age is "Extensible Markup Language", XML. XML creates powerful applications that anyone can access and use from anywhere. It greatly expands the function of the application and realizes the uninterrupted transmission of the software. In this large environment, software is not exactly the program that was installed from the CD, but it has evolved into a service that is similar to the caller's ID verification or pay-per-view television, where people can book such services through the communication media.

All this is achieved by combining tightly coupled, highly efficient n-tier computing with a message-oriented, loosely coupled web concept. We refer to this computational style as a Web service, which marks the beginning of a new era in the application development technology of mankind. A Web service is an application that uses standard Internet protocols, such as Hypertext Transfer Protocol (HTTP) and XML, to be functionally programmatic in the Internet and intranet. The Web service can be treated as a component programming on the Web.

In theory, developers can integrate Web services into an application by invoking the Web application Programming Interface (API), just as they would invoke a local service, unlike web API calls that can be sent over the Internet to a service located on a remote system. For example, Microsoft Passport Services enable developers to authenticate an application. Through the Passport Services program, developers can take advantage of the basic structure of the passport to maintain a user database by running Passport to ensure its normal operation, regular backups, and so on.

Loosely coupled

Distributing application logic across a network is not an entirely new concept, and distributing and integrating application logic across the Web is a new concept.

In the past, distributed application logic required the use of distributed object models such as: Microsoft's Distributed Component Object Model (DCOM), the object Management group's Common Object Request Agent architecture (CORBA), or the Sun's Remote method call (RMI). By using this basic structure, developers can still have the rich resources and accuracy to use the local model, and can place services on remote systems.

One common drawback of these systems is that they cannot be extended to the Internet: they require a tight coupling between the service client and the service itself, which requires a homogeneous infrastructure. Such systems are often fragile: if one end of the execution mechanism changes, the other end collapses. For example, if the interface of the server application changes, the client crashes.

The requirement to provide a tightly coupled basic structure is understandable, and many applications are built on this system. However, it is difficult to achieve a single, unified infrastructure when companies need to collaborate with each other, or when it providers expand their scope of business. You simply cannot guarantee that the other end of the pipeline you want to communicate with is all the basic structure you need: You may not know anything about the operating system, object model, or programming language it uses.

Web services, on the other hand, are loosely coupled to each other. Either side of the connection can change the execution mechanism without affecting the normal operation of the application. From a technical standpoint, people have shifted to using a message based asynchronous technology to achieve highly reliable system performance by using a unified connection through the use of XML, such as HTTP, Simple Mail Transfer Protocol (SMTP), and critical.

The messaging system packs the basic unit of communication into a self-describing packet (also known as a message) and puts it in a network cable. The essential difference between a messaging system and a distributed object system is that the sender is required to identify the basic structure of the receiver differently. In a distributed system, the sender needs to make a variety of guesses about the receiver's situation: how the application activates or splits, what interface is invoked, and so on.

On the other hand, the messaging system creates contracts at the cable format level. The sender does not need to consider the situation after the message is received, and do not need to consider the communication between the two parties, the only thing to consider is whether the receiver can identify the message content sent.

The advantages of creating contracts at the cable format level are self-evident. For example, the receiver can make changes at any time without interfering with the sender's message sending, as long as it can still identify the contents of the original message. In addition, the sender can communicate with the receiver without any special software: As long as it emits a message in the correct format, the receiver responds.

Cable-grade Xml:soap.

The key to implementing the heterogeneous infrastructure of Web services and implementing Web services throughout the Web is to implement technologies that support simple data description formats. This format is XML. Web services must use XML to accomplish three things: basic cabling format, service description, and "Service discovery."

SOAP: At the lowest level of communication, the system needs to use the same language. In particular, applications as both sides of the communication need to adhere to the same set of communication rules: how to represent different data types (for example, integers or arrays), and how to represent commands (that is, what you need to do with the data). In addition, the application needs to extend the language appropriately when necessary. Simple Object Access Protocol (SOAP) is an implementation tool for XML, which provides a set of common rules that describe how to represent and extend data and commands.

Web Service Description Language (WSDL). After the two applications have obtained the rules on how to represent data types and commands, they need to be given a valid description of the specific data and commands they receive. It is not enough to just say that an integer has been received; for example, after receiving two integers, the application must explicitly state that it can perform multiplication operations on both integers. Web Services Description Language (WSDL) is an XML syntax that developers and development tools can use to represent the specific functionality of a Web service.

SOAP discovery: At the highest level, there is a set of rules on how to locate service descriptions: By default, where can a user or tool find a function description of a service? Depending on the set of rules provided in the SOAP discovery specification, the user or development tool can automatically find the SCL description for the service.
Once the three functional tiers are implemented, the developer can easily find the Web service, take it as an object and then integrate it into the application, then build a rich functional infrastructure. In this way, the resulting application can communicate with the Web service in reverse.

. NET Framework: Web Service engine

Clearly, many basic structures need to be transparent to developers and users of these processes. NET Framework provides this basic structure. From the. NET Framework perspective, all components can be Web services, and Web services are only one component. As a matter of fact. NET Framework extracts the essence of the Microsoft Component Object Model (COM), combining them organically with the essence of loosely coupled computing, generating powerful and efficient Web Component systems: Simplifying the programmer's "plumbing" operations, deeply integrating security, and introducing an internet-based operating system, Greatly improve the reliability and scalability of your applications.

. NET Framework contains three main parts: Common language runtime, unified class library collection with multiple hierarchies, and advanced version of "Active Server Page" (also known as asp+)

Common Language runtime

This name does not accurately reflect all of its functionality. In fact, the common language runtime plays a very important role in the process of component development and the running of software. During the operation of a component, the runtime is responsible for managing memory allocations, starting or canceling threads and processes, enforcing security policies, and meeting the requirements of the current component for other components. During the development phase, the runtime's role has changed: the runtime is significantly more automated than today's COM (for example, it automates memory management), so the developer's work becomes very easy. In particular, the mapping feature will cause a sharp drop in code writing, which is what developers need to do to program the business logic into reusable components.

The concept of runtime is not novel to a programming language: Virtually every programming language has its own runtime. The visual basic® development system has the most obvious runtime (named VBRun), and visual c++®, like Visual foxpro®, jscript®, SmallTalk, Perl, Python, and Java, There is a run-time msvcrt. NET Framework is that it provides a unified programming environment across programming languages, which is the root cause of its unique role.

Unified Programming Class

. NET Framework provides developers with a unified, object-oriented, hierarchical, and extensible Class Library set (API). Today, C + + developers use the Microsoft Foundation Class Library, where Java developers use the windows® base Class library, and the Visual Basic API set used by Visual Basic users. Nutshell. NET Framework unifies Microsoft's current various frameworks. In this way, developers no longer need to learn multiple frameworks to be able to program smoothly. Much more than that, by creating a common set of APIs across programming languages. NET Framework enables cross language inheritance, error handling, and debugging. In fact, all programming languages from JScript to C + + are mutually equal, and developers are free to choose the ideal programming language.

Advanced version of the Active Server page (asp+)

Asp+ is used. NET Framework, which provides a Web application model that consists of a set of controls and a basic structure. With it, the construction of Web applications becomes very easy. Developers can directly use the asp+ control set, which encapsulates a common set of widgets for the Hypertext Identification Language (HTML) user interface (such as text boxes, Drop-down menus, and so on). In fact, these controls run on the Web server, which converts the user interface into HTML format before sending it to the browser. On the server, the control is responsible for presenting the Object-oriented programming model to Web developers, which provides the rich functionality of object-oriented programming technology. Asp+ also provides basic infrastructure services, such as session state management and process loops, that further reduce the amount of code that developers want to write and increase the reliability of their applications significantly. The asp+ also allows developers to transfer software as a service. By using the Asp+ Web Services feature, asp+ developers need only simple business logic programming, and the asp+ infrastructure is responsible for delivering services through SOAP.

Although asp+ has not yet been officially released, it has created an incredible miracle of improving application functionality: The performance of existing ASP based application performance has been optimized by three times times, and more exciting is the rise in productivity.

. The core elements of the NET Framework

. NET Framework has several elements worth mentioning. The first is its security system and configuration system. The two systems work together to effectively deter the possibility of running unsafe code and drastically reduce the challenges that the so-called DLL Hell faces when configuring applications.


The security system is a highly granular, factual system that gives developers and administrators a variety of code processing rights (not just "on" or "off"). In the future, you will also decide how to implement these permissions based on the core elements of the code itself.

For example, when a. NET Framework application is downloaded to a system, it requests a set of permissions, such as write access to the temporary directory. The runtime collects factual information about the application, such as where it was downloaded, whether it was used with a valid signature, or even how accurate it is to access the system, and determines whether the application is allowed to run by administrative policy. The runtime can even tell the application that it cannot authorize all permissions requested and allow the application to decide whether to continue running.

With this security system, many application configuration problems can be solved. One of the biggest challenges for developers and administrators (and ultimately users) is versioning issues. If everything is in a paralyzed state after you have installed an application, and the system has been running very well before, the biggest possibility is that the newly installed application rewrites some shared libraries and most likely fixes the program errors that are being used by existing applications. This happens so frequently that people call it a "DLL Hell."

. NET Framework has several advanced features that can completely eliminate the "DLL Hell" phenomenon. First, it has a very powerful internal naming system that can effectively prevent two of libraries from being wrongly named for each other. In addition, it provides a new feature called "Parallel" configuration. If the newly installed application in the precedent does rewrite the shared library, the existing application can fix the library. When an existing application starts again, it checks all shared files. If a file is found to be changed and the changes are incompatible, it can request the runtime to extract a version that it can use. Thanks to a powerful security system, the runtime can safely perform this operation, so the application completes its own repair work.

Conclusion

People always like to get tired of publishing clichés such as "the Internet has changed everything." Similarly, when talking about the impact of the Internet on human beings, it is always tempting to use advertising hyperbole to express the admiration of the Internet. However, the Internet does radically change the way applications are developed and configured. The transfer of software into a service has yet to be a common effort, XML is an important means to achieve this dream. NET Framework is a core component of the Microsoft Developer strategy, designed to help developers easily build, configure, and run Web services.


Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.