Union of software and hardware

Let’s take a look at the past for a couple of seconds – in previous articles we talked about the basic philosophy and key features of the RedPine platform. We tried to figure out “what is it?” and “why is that?”. Well, now it’s time to start looking at the details of the product and start diving into deeper levels.

And at the next level, we have an overview of the basic elements of the platform, and the features of their interaction – we will talk about the sacred union of software and hardware.

Products like RedPine should be based on the right interaction between software and hardware – not just compatibility with each other, but a strong friendship between hardware, software and humans. Otherwise, there may be more problems than benefits.

The composition of the software and hardware complex

Previously, we have already touched on some software and hardware issues, but the subject of monitoring systems is very multifaceted, and it is almost impossible to tell about everything at once. Therefore, we are gradually diving deeper into this story, gradually approaching full clarity.

And now we will analyze the RedPine monitoring system into components, and try to consider each part separately – its functions, its features, its place in the overall picture. As an example, I offer you the following illustration:

This peculiar parade of planets shows that the whole solution is divided not only into software and hardware parts (software and hardware), but these parts themselves have different levels and are responsible for different functions. This is a really important point, because the correct distribution of functions directly affects the overall performance of the system. The gears in the picture are designed to symbolize the connection between levels and elements – this is also a very important point, which I will discuss in more detail below.

With your permission, in the future I will sometimes call the software part “software” or “software”, and the hardware part – “hardware”. I think it will be easier for everyone.

Naturally, each element is important and contributes to the operation of the entire system. But are their contributions the same? No, it is not the same, and it is very problematic to evaluate it in any units. This can only be done conditionally, and if we come up with a certain percentage scale for the weight of the contribution to the system, we will see the following picture:

This illustration shows only an approximate distribution of the importance of the basic elements of the RedPine system, but improves the understanding of the main principle – the top-level software is the center and foundation of the solution, and it is not located at a remote site, but in a conditional control center.

Top-tier hardware

By upper-level hardware, we mean computer equipment of various form factors, server hardware and devices that provide communication between the upper and lower levels. This hardware can be not only a part of the RedPine solution, but can also perform some other functions in parallel (office affairs, watching youtube, solitaire), there is only one requirement – the equipment must meet the minimum requirements of the chosen type of solution.

We will not dwell on the details for now, so as not to destroy the structure of today’s material. If you are curious, you can see typical types of solutions in a special section on the official website of RedPine.

From the point of view of the implementation of monitoring, accounting and management systems, everything is somewhat simpler with hardware at the upper level than at the lower level, because there are no restrictions on manufacturers and form factors, and existing computer equipment can easily cope with many tasks. For example, in the case of working with the online interface of top-level software, you will need the simplest laptop, tablet or smartphone and access to the network – there are no other requirements.

Lower level hardware

But with lower-level iron, everything is more complicated. There is no ready-made equipment on the market that would suit our purposes without problems, which means that the development and production of such equipment is required.

Our plans did not include setting up the production of controllers on our own, so the task was to find a suitable manufacturer, and for a long time we selected someone who could not only create and produce a device according to our specifications, but also provide adequate support for their products. European, Chinese and Russian manufacturers were also considered.

We all accessed the same source data:

It is necessary to develop a controller for our needs and requirements

Software of the upper and lower level of our development

Linux based controller operating system

Set up the production of controllers according to our specifications in small-scale mode

Fast production times

Fast technical support response

Flexibility – readiness for changes in the product

Convenient form factor in terms of installation and use

I repeat, we did not need a ready-made solution, but the production of our own, but on the element base of the manufacturer.

As a result of the selection, the solution from the Wiren Board won. I note that other candidates were not only worse in fulfilling our requirements – they simply could not fulfill all of them, so the choice was obvious for us.

I will not engage in anti-advertising and name those who were eliminated, because. for other tasks, their solution may turn out to be even more suitable, and they did not suit only us. In addition, we have not deleted anyone from the list of potential partners and we may well someday cooperate with them, because everything is changing very quickly in the modern world.

Single environment software development

The project is young, only 2 years old. The reason for the emergence of such a product is that often Enterprise software is written either not “beautifully” enough or inconveniently. They think about UI / UX like this – what is there to think about, you need to shake it. Therefore, if someone is faced with a heap of inconvenient systems, you can solve it in this way. Connect inconvenient systems to the integration platform, connect TLI to it and get information from all information systems in one place with a convenient interface.

The integration platform, by the way, can be used not only for this task, but in general, in order to combine disparate corporate applications into one complex “super-system”. The system will provide online synchronization of data between applications, complex processes will be performed that affect several systems at once, and most importantly, there will be no mess and confusion with data and directories.

Single environment

Sometimes work may not begin at all with documenting processes or solving a specific problem, but with building the entire infrastructure from scratch.

For DIT , we carried out infrastructure projects (design, creation and support of infrastructure) as part of the organization of the Unified Medical System EMIAS and the development of specialized infrastructures (electronic signature environment, for example). All this since 2011. There are a lot of things, in particular, one of the largest installations of ALT Linux in the world (22 thousand users who have full access to a single infrastructure). Together with the ALT developers, we found and fixed unusual bugs caused by scale.

framework

Of course, the development of corporate software requires a well-thought-out infrastructure on our part. For many processes there are no (and cannot be) finished products. The same system of office work in courts and arbitrations or in election commissions is a good example of this.

Therefore, we periodically develop information systems from scratch. It can be either a stand-alone solution or a piece of the customer’s IT infrastructure that closes some processes and is integrated with other systems.

For the most part, enterprise information systems are fairly similar in terms of architecture. There are general abstractions of data flows (input-change-report). There are GUI clients where the user works with data. It can be both “thick” and web clients. Here, the trends repeat the general trends of the industry: once upon a time there were web clients on asp, then thick clients on .NET, then again the web. Now mobile clients are added to the latter.

Despite the fact that the solution is required to be completely custom, sometimes it can be implemented on some box, such as a portal or crm. But the more custom, the less sense it makes.

Since we have been dealing with custom systems for a long time, the process has been set. Nobody writes from scratch. There are frameworks. They were for ASP, and for .NET, Java and the Web. The main idea is that your framework allows you to go through the full cycle: from “drawing” the entity-relationship model to the GUI.

In a matter of days, you can roll out a typical butt – data is entered here, validated, processed, added here, output here. You can sit down with the customer and show the working application. As a rule, at this moment the customer will also finalize the requirements (which solves the problem of “oh, I have one more feature” before the release) and we better understand what exactly the customer wants. Rarely does anyone come with a complete TOR, more often with a need or criteria for solving a problem.

As the saying goes, “fast does not mean good”. The resulting application will have a generic interface that is model-centric, not process-centric. Of course, there is a great temptation to leave it like that (it works). By the way, if this is some kind of administrative interface that is used by two people (and both are not bosses), then you can leave it that way. And for a serious system, of course, customization begins. But we are not modifying “something inside” (as in the approach with boxed systems), but simply programming (.net/java/javascript) using the api of the libraries included in the Framework. Those. the initial sample application is just the default behavior in the absence of customization. Therefore, the final result is directly proportional to the efforts of the project development team.

A developer’s working tool for creating a data structure model

An example of a test application based on a framework for managing polls and voting:

Total

My colleagues regularly do such things as managing video conferencing, monitoring training before elections, fixing court hearings, consolidating data about bank customers from different subsystems, the logic of the call center, office work, and even optimizing the layout of money in ATMs – in general, the tasks have everything , anything. And, despite all the economic and political conditions, services and own developments – this is what, if there is expertise, will be in demand further.

Unlike conventional solutions, starting from the size of a medium-sized business, almost no installation is complete without collecting information for at least a month about what the task is, how it should be solved, who is involved in the processes, and so on. We ask questions, draw huge diagrams, test them, wear prototypes, communicate, participate in negotiations (when each department tries to get some functionality or control over the process), communicate with many managers and eventually roll out a solution that solves the problem and suits everyone (if possible). And then we train people to use it, if necessary, and support it.

Should I enter the robotics software development market?

  What developments for robotics are needed now?

Robotics is a technology that does not work in isolation from the physical properties of real hardware. That is, you need to program the real hardware, adjusted for all its limitations, often identified already during use.

In Russia, the market for educational and service robotics annually doubles its turnover. The growth of industrial robotics is also likely to continue, driven by companies that will automate their production. And by this time, those developers who will have both integrator competencies and their own mathematical “chips” packed into a product have a chance to succeed, but for some it is contraindicated to meddle in the market.

Thesis 2. If you don’t have your own algorithms, then it’s pointless to meddle

It’s a little late to enter the robotics market if you don’t have your own unique feedback control algorithms. The robotics market consists of several segments that are now booming – firstly, it is educational robotics, which is just starting to move away from designers. Secondly, this is service robotics, where robots are created in order to help a person. In service robotics, the market follows the path of creating narrowly functional things. For example, a telepresence robot, a floor polisher robot, a vacuum cleaner robot, all with their own limited functionality. In this segment, there is a clear problem of how to make robots more functional. Walking robots are still walking badly, barely getting up from their knees, although the champions of the industry are already gently resisting shocks. But the meaning in their presence is only exploratory. In industrial robotic arms, sensitivity is also a stumbling block, although this is one of the most developing segments. In factories, it is required to completely remove a person from contact operations.

The market needs new algorithms that take into account feedback. A number of enterprises have to “hack” the official traffic planners of industrial robots. We rushed there so that we didn’t have to “hack”. One of the branches is also medical robotics. There is a boom in the market for restorative functionality for the musculoskeletal system. But – without successful modeling based on feedback control algorithms, there is nothing to do there.

Thesis 3. It is practically possible to create a robot without investment, having only a brilliant idea, but it takes a long time

It is possible to create a robot from scratch, and it is not necessarily expensive – a talented mathematician or engineer can make a bionic arm, but getting to market will require a large number of enthusiastic fans who will help and / or buy it. Now the number of lone enthusiasts who do something is comparable to the number of consumers of such exclusive solutions. So it is clearly necessary to unite around the idea in project teams and develop a community of adherents, and this takes years.

At the same time, it may be too late to meddle in the production of more bulky hardware. Of the countries of the Old and New Worlds, only individual European and Canadian manufacturers can resist the Far East in terms of the production of industrial robots.

However, it is not too late to start developing to order, for example, an industrial robotic arm, a surgical robot or an exoskeleton.

By the way, major players in the world who are not very advanced in terms of their own software are seriously looking at small projects. Not so much with the aim of absorbing as to establish interaction. Therefore, small companies producing motion planners, in fact, programs for refining motion, mechatronic systems, feel great in such a collaboration, having received a major customer for years to come. We at Robotikum, for example, see the prospects for such a business model as excellent. And by the way, even large manufacturers are aimed at the gradual opening of their code in order to reduce the cost of supporting platform solutions and increase the functionality of their software.

Thesis 4. The robot does not have to be humanoid

The robot, which is supposed to replace a person, is today used either by the military, in emergency situations or in hazardous industries. But by and large, everything is prototyped with money from near-military funds. IN RUSSIA Fund FPI. In the USA it is DARPA, Canada also has its own fund. The robot does not have to be humanoid – there is no real application for humanoid robots on the market.

Thesis 5. Why are we talking about robotics at ISDEF?

Our conference is a platform for intensive mutual development of IT businessmen. We talk about the problems of our IT businesses. Deciding to create your own packaged product, being a service company, is often very difficult, and rarely succeeds, but most of our Association succeeded. The uniqueness of ISDEF is that people who are successful in different ways gather here, but all of them will not hide where they stumbled and where they found money, and share it.

Ethics of the software development industry

The software development industry is still very young. Every time a new society or industry arises, Colonel Colt’s invention, or its equivalent, is used to solve all the problems that have not yet found solutions in ethics or legislation. Then, the members of the new community develop a shared ethics, a set of rules about what is good and what is bad. And then the most stable rules of ethics find their way into laws, that is, what the community not only approves or condemns, but also what it forces its members to do.

For example, at the beginning of slavery, a slave was simply a prisoner of war. So the murder of a slave did not evoke the slightest emotion from anyone. Well, yes, a prudent owner would have sold, stupidly, but why not. Well, let’s say how to throw an old phone book into the trash, and not into recycling / waste paper. In fact, throwing an old telephone book into the trash instead of waste paper somewhere in Germany will now cause much more public condemnation (and even a fine) than the killing of a slave prisoner of war in the same places, say, during the early Roman Empire. But by the late Roman Empire, norms had already developed that condemned the killing of slaves, with the exception of a small list known to everyone. For some forms of killing a slave, the owner could even be held accountable by law.

Will AI-based software development services leave programmers out of work?

Most likely, artificial intelligence will take over the amount of work associated with sections of code that are usually assigned to novice programmers and software testers, but setting tasks will remain with people, Sergey Levashov, head of the RAMAX Group business intelligence center, explained to RSpectr.

At the same time, many programmers may be left without routine work, but this will happen no earlier than in five to ten years, Roman Ivanov, a Java developer at Sber, believes: “Artificial intelligence will not be able to independently create new algorithms for a long time to come. Now he can be taught to program the most elementary services that are often required in business. For example, create a service for checking the digital signature of documents.

It is difficult to imagine the displacement of programmers by neural networks in the near future, Andrey Tarasov, a specialist at the Jet Infosystems machine learning center, supports his colleagues. “A neural network-based hint system will be useful if it is introduced into the development environment and serves as an assistant to the programmer, but it cannot replace a person,” he told RSpectr.

Artificial intelligence really looks very promising for creating programs of the future, but it is important how its algorithm is trained, notes Artem Gogin, Senior Big Data Engineer at GridDynamics. Training a neural network depends entirely on the person – it is he who determines and controls the result of the work, he explained to RSpectr.

Artem Gogin, GridDynamics:

As a developer, I am looking forward to the development of artificial intelligence that can do some of my work. It is readily believed that the neural network will be capable of this. Then the person will no longer need to write code, but check it and monitor the training of the model.

For experienced professionals, this state of affairs will only benefit, since, except for a person, no one is able to prepare, develop and control the neural network. “It can become harder for novice specialists, because artificial intelligence will replace them at work. Beginners will have to compete with the neural network and learn even faster than before,” emphasizes A. Gogin.

Get crazy

In the coming years, one should not expect complex software products completely created by artificial intelligence, Alexey Tsessarsky, CEO of IVA Cognitive (Hi-Tech Group of Companies), told RSpectr.

Alexey Tsessarsky, IVA Cognitive (Hi-Tech Group of Companies):

There will be a redistribution of responsibilities – machines will be more involved in the implementation of graphical interfaces, they will take on even more issues related to digitizing data and processing it. In general, they will replace a person in those areas where the problem statement is well formalized.

At the same time, the work of AI without human intervention within the framework of the tasks for which it was prepared is quite possible. “It’s just that these frameworks still remain very narrow and specific, for each specific task there is its own artificial intelligence,” the expert emphasizes.

Neural networks can cause a certain paradigm shift in software development and roles in this process.

More and more people will be required to accurately and correctly formulate the problem so that the machine can generate as much code as possible on its own. “In fact, it will be the same programming, just at a higher level of abstraction, perhaps in natural, human languages,” A. Tsessarsky believes.

According to V. Eronin, the risks in developing software by a neural network are generally the same as in creating programs by people: low-quality, non-optimal, unsafe code.

In June, Microsoft, together with GitHub, released the Copilot neural network programmer assistant, based on the OpenAI Codex, the expert recalled. However, this solution was later criticized because of the non-optimality of the developed code – it generated dozens of lines of code instead of a few simple lines.

Now artificial intelligence is doing well with specific narrow tasks that have high resistance to errors. For example, it predicts what the user will be interested in in an online store, based on the history of interaction. If among a dozen recommendations to the buyer there is a product that he is not interested in, no one will notice this. “But if out of a thousand intersections an autonomous car will only pass unsafely, this is already critical. Therefore, now the neural network is actively used only in tasks of the first class,” says V. Eronin. He emphasizes that we are still far from AI replacing humans when writing code with arbitrary functionality based on a free-form textual formulation of the problem.

No matter how the program code is generated, the decision to use it is made by a person, Mikhail Sadofyev, head of advanced analytics at Accenture in Russia, draws the attention of RSpectr. “The role of developers will indeed gradually decrease – we see experiments by Amazon and other market players aimed at automating the routine tasks of programmers. The use of AI is another step towards this,” he believes.

If you follow the trend, then a person first dug potatoes with his hands, then made tools, then mechanized, then automated with robotics, Mikhail Paremsky, lead programmer of Getmobit, figuratively compares. “At every stage, technology has taken work from people, but it has spawned activities of its own optimization. If AI will automate robotics software, then a person will occupy the neural network improvement cell until the next jump occurs, ”he told RSpectr.

In order for the neural network to understand the nuance of each step, it is necessary to prepare a huge amount of documentation, emphasizes ONLY CEO Kirill Vladimirov.

Kirill Vladimirov, ONLY:

Unfortunately, many people confuse a neural network with some kind of real artificial intelligence. They think that they can say: “Write me a website, like public services, so that people go there and can process all their documents through it.” And then you just need to sit down and wait for the AI to make this decision. It doesn’t work like that.