CycCoder / OpenUniverse

OpenUniverse, A Disruptive Windows Desktop Software Development Technology for Multi-Dimensional Software Ecosystem

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Web Runtime for Application: The Terminator of Web Browser

Web Runtime for Application is an open source and subversive desktop software development framework. Its design goal is to provide a full-featured Web application ecosystem, for desktop applications, so that software architects can fully integrate the existing mature desktop software development architecture and create a rich Internet application ecology. web runtime for application creates a new application scenario of "browser everywhere" and a fully new world of the Web.

The Battlefield of Browser has always been the Stage of Oligarchy

Whether you like to admit it or not, we have always been spectators in the field of browser. In fact, a few oligarchs are making rules and participating in the competition. Although we have built many browsers, most of them are flash in the pan in essence. Because we have no possibility of making rules, we can only follow them, and it is difficult to surpass them. So most domestic browsers can't survive for a long time. Microsoft completely abandoned its browser architecture to adopt chromium, which gives people the tragic feeling that a strong man has broken his wrist, from the perspective of go, the chessboard becomes smaller, and the competition seems to be quiet. When we watch the two giants fight in this field, we may applaud Microsoft for using Google technology to compete with Google. It seems that we should give some applause to the latter. As an audience, it seems that there is something missing Microsoft completely abandoned its browser architecture to adopt chromium, which gives people the tragic feeling that a strong man has broken his wrist. Web Runtime is a new, subversive and Internet Oriented Development Technology for Windows Desktop Software. There are three key features of Web runtime for application

  1. Built-in Modern Web Browser;
  2. .Net / Java integration
  3. Establishment Multi-Dimensional Software Ecosystem for Application

The Basic Problems of Desktop Software architecture in the Internet Era

In the Internet era, because the web software model has broken through the limitations of local computers, this makes the software system based on Internet services popular and makes desktop software appear to be dwarfed. With the development of Internet technology, software content service is a key topic that many software infrastructures must face, this topic further highlights the dilemma of the current desktop software structure: on the one hand, a large number of software component assets have been formed, on the other hand, Internet services clearly represent the trend of software development. Therefore, how to properly adapt the desktop software to the development of the contemporary Internet is a very urgent problem and a basic problem that today's desktop software must face. We know that the presentation of web software needs a modern web browser, an indisputable fact is that a desktop web browser is also a desktop software, but because its content relies on Web pages, it is almost recognized as being out of the ranks of desktop software. In the age of the Internet, the difference between the Desktop Software System supported by binary components and the Browser Application Architecture supported by the content of Web pages has become more and more prominent, and it can be said that the two are gradually moving away. How Desktop Software finds its most suitable position has always been an interesting topic, but there has been no proper solution. Although CEF and Electron are very popular, they cannot fundamentally solve the key problem of desktop software connecting to the Internet. Web Runtime tries to consider this issue from a new perspective, due to the needs of Internet content security and rendering, internet giants have formed a unique Sandbox-Based Multi-Process Architecture for the basic framework of the Web Browser, which makes the browser structure completely different from other desktop software systems in most cases. The Sandbox-Based Multi-Process Architecture indeed solves many problems caused by the Internet, and it also makes the Browser series and traditional desktop software form an increasingly clear difference. We believe that handling this difference is the key to solving the problem of Desktop Software adapting to the Internet. Desktop software needs a new starting point to adapt to the changes brought about by the Internet. If we take Web Browser as the smallest desktop software, for example, let's imagine that we use the basic structure of the Web Browser as the initial structure of other desktop software, what will happen? the problem will become clearer and clearer. We know that in modern browser architecture, the tasks of rendering and displaying web content are completed by the Renderer Process an GPU Process. The responsibility of the browser process seems to be to provide a content "viewport" for Web Content and "auxiliary facilities" around the web content such as tab strip, toolbar, etc. The key to the difference between desktop software and Internet browsers seems to be here: since Chromium, Mozilla and other such types of projects only focus on the browser architecture itself, the restrictions that must be formed around the browser system also appear in Chromium, for example, because Chromium is a browser project, the implementation of the Browser Process is strictly limited to the C++ language level due to the project itself. From this we can see that the technical constraints on the browser process are the key to the huge difference between desktop software and browser software. If this constraint can be broken and developers are allowed to reconstruct the browsing process while retaining the responsibility of the browsing process, the situation will be completely different. According to this thinking principle, the problem will be how to use the existing desktop software development technology to reconstruct the Browser Process of Web Browser Multi-Process Architecture, this consideration seems to be a blind spot in the software industry today, since the vast majority of software teams believe that only the Browser Architecture requires the process separation of Browser, Renderer and others, this has led to a clear difference between the software structure of the browser team and the desktop software team. In order to fundamentally solve the basic problem of desktop software adapting to the Modern Internet, we should unify the core structure of the Browser Infrastructure and the Desktop Software Infrastructure. Recognizing this, the problem will become concise. We just need to consider, what conditions do developers need to build their own browser process? Thanks to Google’s open-source project Chromium, we can compile the Browser Process Infrastructure of modern browsers into a set of dynamic link libraries, based on this, today’s developers are provided with a concise use of their familiar technical framework (such as .Net, Java) to construct their own Browser Process according to their own wishes, therefore a new desktop software construction mode appears.

1. Built-in Modern Web Browser

In order to get rid of the current relatively embarrassing situation, desktop software must see its structural defects from the modern browser architecture in order to develop its strengths and avoid its weaknesses. Once we have a systematic comparison with today's browser architecture in structure, we will find that compared with the browser process of modern browser, the main process of desktop software lacks the actual entrance to interact with the Internet. We know that the advantage of desktop software lies in the local end, lacking the web part equivalent to the browser architecture, from this aspect, desktop software lacks an important role related to the Internet, that is, the renderer process of modern browsers. From the perspective of application content, web pages are the basis of supporting today's Internet content, which means that due to the lack of renderer process, desktop software objectively lacks the basis to adapt to the Internet content driven mode, which is the fatal weakness of desktop software. Modern browser architecture shows that "Webpage + JavaScript" is almost the objective basis of web content, which is not available in today's desktop software. If today's trend is that desktop software needs to find the right place in the Internet stage, then the key is above. From the perspective of development, desktop software should be a multi-process architecture. We must make use of the advantages of browser architecture to make up for the weaknesses of desktop software. From the perspective of evolution, this development model should be natural. The basic idea of Web runtime is that today's client desktop software must reasonably absorb the advantages of modern browser architecture, so that the traditional desktop software architecture can be further developed. Only in this way can we provide the necessary foundation for desktop software to find a reasonable position in the Internet environment. It should be a smart idea to use the browser architecture as a starting point for initialization. Once we do this, the Internet Oriented foundation required by desktop software will be fully available. This idea directly forms the design of "built-in browser". The core idea of “Built-in Modern Web Browser” is that, relying on the open-source project of Chromium, developers are allowed to use their familiar software development technology to realize the Main Process of their application system as the Browser Process of Modern Web Browser. Because the Main Process is realized by the developers themselves, the application system developed in this way is completely different from modern web browser. This kind of application will integrate the infrastructure of modern web browser as a part of the system model, the application system contains not only the browser window inherent in the browser, but also other desktop elements oriented to the application, such as WinForms, Java and other mature software elements. When we take a complete browser architecture as the starting point of a new application, we should make it clear that we are not building a browser, but building a new initialization starting point for a new desktop application, which is very important, because the starting point of browser-oriented development is to build a more suitable browser, rather than a new desktop app. Browser infrastructure is embodied as a participant in the development process, in addition to the components of this architecture, there are software components from other technical architectures waiting to be involved in new development, such as .Net, Java, C + +, COM and so on. How to combine the browser infrastructure with these mature technologies is a key step to break through the browser architecture. When the browser architecture is reflected as a starting point, we must consider the following issues:

  1. The first question we face is, what do we think of the application's "window objects"? In modern browser architecture, the main body of content is web, so the type of window object is limited. In general desktop software development framework, the type of window object is very rich, which is a fact that desktop development must face.
  2. The second problem we are facing is whether the browser window is completely consistent with the standard browser window in carrying content. If it is completely consistent, the expressive power of the browser window in specific desktop applications will be greatly reduced. In other words, if you can only carry standard web pages, the meaning of built-in browser will be very boring.
  3. The third question we are facing is, since the core architecture of browser is a part of desktop application architecture, what impact will this part have on other mature technologies? This is the most critical of the three problems.

1.1 Generalized Browser Window

Since the browser architecture is at the starting point, then this architecture will profoundly affect every subsequent loaded object, which is the advantage of the new application architecture, that is to say, we need to give the browser architecture a broader scope of action, so that its core part not only acts on the web part, but also on other parts outside the web, furthermore, in a sense, we define a larger web, everything starts from Browser Window Objects.

Since the main process of the application system is essentially a Browser Process, the application system can naturally create new browser window instances, the difference with standard browser is that we allow the browser window can be a child window of other windows, specific examples as shown below: Here, we see a brand-new scene: a multi-tab browser sub-window, we think this structure is more suitable for organizing specific applications. Of course, the application system fully supports the creation of an independent browser window as a part of the complete application system, and the browser window serves as a natural extension of the ecological chain to ensure the richness and diversity of the application system content. Once the browser's infrastructure and the existing mature desktop technology framework can interact naturally, the UI mechanism of other frameworks can be integrated with the browser's internal description mechanism, in this way, each application window and sub window can be regarded as a new type of "browser window" in a sense and can be bound to a specific URL in a certain way. Once this kind of assumption is established, the window structures in Architectures like .Net, MFC and Eclipse and so on can have web loading behavior under the new mode, that is to say, their internal structures should be able to be completely customized and extended depending on the web. In other words, many UI structures that had to be implemented with local code before can be completely presented in a description driven way based on Web implementation It can be said that it is a new feature brought by the new internet mode. In a broader sense, we expand the behavior of browsing URL to more general window objects or UI objects, not limited to the browser windows of standard browsers, this practice leads to the weblization of desktop UI elements to a large extent, which is essentially different from the early desktop software technology, and more in line with the needs of Internet content services.

1.1.2 DOM Plus

Because a large number of mature binary components that conform to industry standards have formed a wealth of software asset accumulation, web runtime allows developers to regard these existing accumulation as new DOM elements and then become a part of web pages, this starting point eventually forms "DOM Plus". DOM plus is a natural extension of standard DOM for desktop applications, similar to the extension from "real number system" to "complex number system" in mathematical theory. Undoubtedly, for the development of mathematics, from "real number system" to "complex number system" is a huge leap, which can be said to be a decisive change in the development of modern mathematics. We hope that the evolution from "DOM" to "DOM plus" will have a similar effect, which is bound to be a huge change from desktop software to Internet desktop software. Different from earlier IE, based on the sandbox mechanism of Modern Web Browser, we let these binary elements run in the Browser Process, completely isolated from the Application's Renderer Process. This makes full use of the security mechanisms of modern browsers and also takes into account the accumulation of mature software component technologies. Based on such considerations, existing development technologies such as .NET, COM, Java, etc. can be fully applied to Internet software development.

1.3 JavaScript for Application

Similar to Microsoft VBA, web runtime provides a script-based programming environment for related application systems. We know that the mission of JavaScript under the standard browser architecture is to endow web pages with powerful programmability. This programmability has created today's Internet, and also formed a sharp difference between web applications and desktop applications. In fact, the limitation of DOM elements determines the inherent limitations of today's standard web application system, which makes it impossible for desktop software to be completely replaced by web applications. The two camps of web and desktop that we see today seem to be the two extremes of application software. DOM plus enlarges the inherent boundary of DOM, which determines that we need to adjust JavaScript reasonably, otherwise DOM plus will lose its meaning. Different from JavaScript in the sense of standard browser, because the browser infrastructure has changed the description mode of desktop software, JavaScript must adapt to the new framework, while retaining the most important features of the original JS. Sandbox can be said to be the most important concept of modern Internet. Because of this concept, Internet Content Security is promoted to a new level We hope that web runtime can perfectly inherit the benefits of sandbox, which is very important.

2. .Net / Java integration

For a common Windows desktop application, the integration of .Net or Java has only local meaning in most cases. Web runtime promotes this kind of integration to the global level. When this kind of integration is perfectly combined with DOM extension, the meaning of integration will become very realistic. As we all know, VBA provides a complete set of form system for office applications, which brings great effect to office in specific application scenarios. In fact, VBA integration is a COM technology with complexity, which plays a decisive role in forming an ecological chain for Microsoft in high-end fields. In this world, at least 300 large software enterprises have signed VBA integration license with Microsoft. The famous AutoCAD is a typical example. Web runtime replaces VBA with JavaScript, which makes every application system based on Web runtime have the web integrated development technology similar to VBA and provides a realistic guarantee for the language itself to form personalized services. Similarly, we allow Java-based applications to use SWT Form within the scope of DOM Plus, which is similar to using .NET WinForms.

3. Multi-Dimensional Software Ecosystem for Application

The software ecology of application system is usually a very big topic. Generally speaking, building an application system with ecological support is a challenge for a software team, which requires a lot of technical reserves. When we re-examine the desktop software architecture from the perspective of the Internet, web runtime brings us a series of new changes and possibilities. Application ecology is an extremely natural starting point.

About

OpenUniverse, A Disruptive Windows Desktop Software Development Technology for Multi-Dimensional Software Ecosystem


Languages

Language:C++ 80.7%Language:C 16.4%Language:HTML 2.4%Language:C# 0.5%Language:JavaScript 0.0%