How IEM systems
made ERP outdated >

The history of the platform development

Presently there is the second-generation platform on the market (the official version number is 4.5), released in October 2013.

The first version was created in 2004, in the deepest bosom of Ultra Electronics, and was intended for the company’s own needs only.
The company began its activity in 2001, and was growing incredibly fast. However, in 2003 it already faced the essential limitations in the performance of 1C: Enterprise 7.7 (no mind-boggling super servers could save anymore): the system was more often just jammed or out, rather than functioning; in short, working with it became a torture. Obviously, the accounting package had to be replaced (and it had had to be done the day before yesterday, to put it mildly), but the question was – what to substitute it with?

The assortment, offered on the market, hasn’t changed much since then, so it is clear that the representatives of the known-to-virtually-everyone Axapta and SAP were invited.

NB: The paramount importance for our story lies in the fact that, due to a fateful coincidence, the essential (responsible for the business processes’ organization and IT-support) part of the Ultra Electronics top management then consisted of a certain group of fellows, who by that moment had already had the serious professional experience of integration and maintenance of various systems of management accounting in various spheres (in our country, the full-fledged ERP in those far-away years were an exotic and rare species, by far).
The reader must have already guessed what this group of fellows has turned into, in course of years.

The professional competence of the GF (group of fellows) was enough to (after the accurate removal of the wool [not very convincing, as a professional and insider might think, but still] masterfully pulled over their eyes) adequately estimate the quality of the solutions offered, together with  the most probable perspectives of the project integration.

The following variants remained to be considered:

  • the development of the program specifically created from scratch (plus all the associated risks, especially acutely felt by the GF due to their professional experience in this sphere),
  • or (surprise-surprise!) — the engagement of the 1C company that, exactly at that moment, finally released its proud landmark: an incredibly hyper-efficient-client-server 1С program 8.1-the so-called break-through that had been extensively advertised for a great while before its official launch. It took just a couple of months to almost officially acknowledge this launch as a mega-failure (the 1C readily put their foot in their mouth, to be exact), but nobody could predict it then.

As a result, the work began in two directions.
While all the project work, the test plans and other intellectual stuff was done using own resources, the coding on the 1C-platform was assigned to a 1C franchisee (its name is of no significance for our story whatsoever) that embraced the super-tough conditions as to the work tempo and remuneration. After a few months, being completely drained-out in a losing fight with time and the foul abortive work results presented by the ham-handed <censored> , dumb  <censored> and shitesque ape-men of homosexual orientation etc.-meant  in a not politically correct way (please, mind, that herewith we tried, albeit in a censored way, to expressively convey the essence of the moral standards  and the professional competence of the grand 1C company employees), this very franchisee had to admit its failure and make itself scarce. To quote Master Yoda: “Into exile, I must go. Failed, I have. ” ©
By  the way, if the 1С company had enough common sense to wait a bit and then release some  working (at least to a large extent) product (something akin to version 8.2, for instance), the matter could have taken another turn. Anyway, this is totally another story.

The second direction presupposed the independent development by the project team (the GF + the experienced programmers working for the Oracle market), that received a quite categorical task to (in a fast way and disregarding any financial expenses) deliver a product that wouldn’t jam (never ever, censored!) under any load possible. Notwithstanding the tough deadline, the system was designed so as to bear in mind its future extensive application in industry: (almost) without compromises regarding its cross-functioning, and (almost)  without any short-cuts.

As a result, the new system, created from scratch on. NET under the Oracle Database Enterprise Edition, was successfully launched in September 2004 — the project was completed in less than two years.

It is exactly this version of the platform (with some minimal alterations) that the majority of the Ultima clients are still using. By the way, the 2004 release, as to the complex of its functional qualities, still pretty much exceeds "Axapta 2012 (and its "2020" version, too, most probably), as well as the "completely re-imagined platform for real-time business". (WHAAT?!) of the SAP HANA. /This eleborate name, lovingly picked by the  über-qualified marketing monsters , sounds like a deliberate hint at the common thesis of Captain Obveous Vrungel about the name of the ship defining the ship's destiny/

Having removed the most important infrastructural obstacle, Ultra Electronics continued its rapid growth, and by 2007 it has finally turned into an undisputed market leader on the Russian Federation computer retail market; the company’s annual turnover constituted about one billion dollars.
However, since the end of 2006 the company happened to become the victim of large-scale raider attacks which lasted almost non-stop for the two subsequent years and eventually led to the virtual bankruptcy of the company and its withdrawal from the market. Those events were worthy of being filmed as a Hollywood thriller: the armed blocking of the warehouses, the PR war in the dozens of various media (from blogs to national TV channels), the Federal Security Service special operations organized to confirm the record-breaking bribery, the series of DDOS-attacks believed to be the most impressive in the history of the Russian Internet  Internet at the time – lots of records pertaining to all that are still available online. The completeness and the quality of the information  suffers greatly — in part, due to the “active position” of the generously remunerated infantrymen of the above-mentioned PR war, and in part due to the low-quality work inherent to the national press corps in general.

To cut the long story short: because of all the vicissitudes by the summer of 2008 the proverbial Group of Fellows was left with the mighty ERP-system in their hands, the emptiness in their stomachs, and with the complete freedom of action.
This is, in fact, how the Ultima company was born.
The market launch of the product bearing the same name was planned way back, still during the Ultra Electronics’ active existence, hence the coincidence of the first letters of the name. Actually, the same applies to the Ulmart-ulmart. ru

Then things went on in a rather ordinary or trivial way. With such a powerful background as the Ultra success story, the Ultima ERP sales were not a problem. The introduction and the customer service were done independently, using one's own resources.

In late 2009, a certain Putin's plan was outlined; its implementation had to bring about the classical two-level sales scheme: vendor-software manufacturer-selling/implementing partners.

The main and most costly part of the plan was to prepare the system for the commercial replication in that two-level scheme (despite the initial focus on the widespread use, the first release had certain proprietary incompleteness, due to some obvious natural causes): the actual software itself (the complete physical separation of the platform and configurations – the meaning of the terms being approximately as those of the 1C company) plus the appropriate preparation of the documentation packages for the developers and users.
After three years spent on the developmental process, as well as a few million dollars and thousands of working hours of the best available developers, the second generation platform named Ultima Businessware 4.5 was released in October 2013; the e-Trade configuration was released in February 2014, and the e-Service configuration is in the process of development as of this publication.

The code of the platform was rewritten from scratch, but it retained the ideology and implemented both the most modern technologies available and the best-practice (based on the ten years of experience gained while operating the first release).
The functionality of the configurations and components underwent a similar revision, a complete rethinking, an optimization (and cleaning from all the obsolete and no more necessary things accumulated over the years), and was rewritten from scratch also.
The cases on the solutions’ sites (here and here) got written based on the experience of the first-release system’s operation, and the new configurations are gradually being filled with the same functionality.

NB for the partners:
In case a potential client needs the functionality that is NOT yet implemented in the new platform but stated in the cases, we will port it to a new platform out of turn. Thus, the Ultima partners, during their pre-sale communication with the client, can guarantee
the availability of any functionality from the solutions’ websites by the time of the launch.
The full-featured demo databases (deployed on the previous release platform) are available for the pre-sales presentations to the potential clients.

Here is something extra for the developers and particularly curious readers:

Platform generations are NOT compatible at the code level. What they have in common is the ideology and thedesign principles.
Moreover, we intend (as far as weak man can actually intend) to continue following this approach and rewrite the platform entirely (third generation and so forth) every ten years or so, having collected the latest achievements in technology and experience and not letting the configurations’ code compatibility stop us in this endeavor.
Accordingly, the INTRAgenerational releases will either be 100% compatible with each other, or the need for the external code modifications will be minimal; besides, our partners will get notifications at least three months prior to the corresponding release.

Why  do that?

  • by doing that, we will
    a) avoid the naturally-entropic degradation of the platform that occurs as a result of the futile (and taking decades) attempts to guarantee the backward compatibility — this is exactly what SAP has been obsessed with, and this is what, albeit to a much lesser degree, MS Axapta suffers from.
    b) each latest release of Ultima Businessware will be [continue being the unquestionable] the industry leader as to the functionality, performance and development opportunities;
  • even those relatively  outdated generations of the platform significantly surpass its competitors in  most cases.
    As already mentioned  above, even today the previous release of Ultima Businessware will teach all  its known competitors a thing or two, and, judging by the evolution dynamics of  the latter, that release won’t fall behind for a minimum of ten years.
This table contains the (presenting certain interest) differences between the 2004 and  2013 releases of the Ultima Businessware® platform:
Before After Comments
Architecture Proprietary The client's and the MEF server's architecture MEF allows reducing the connectivity of the application, dramatically incresing its resistance to changes. Besides, MEF is included into .NET FrameWork and is supported by MS.
Communication channels Standard .NET Remoting Infrastructure of Zyan Framework communication OpenSource project of the normal .NET Remoting realization. Supports one-way calls, events with filters, available for mono on Android, uses permanent connection with encryption and authorization.
Metadata submission Metadata described in XML-file Metadata is stored in the databases in the structured form It could be used in SQL queries
Managing metadata Metadata gets edited in a text file Metadata gets edited in a graphic editor
Configuration versions One version only Integrated system of the configuration versions' control Each developer is developing in its own version. This allows, in many cases, to completely eliminate the influence of the changes to the Production database, to simplify and organize the testing of any changes, and to coordinate the work carried out by several developers.
Development languages C# 2.0 and Visual Basic .NET Development language C# 5.0 A lot of changes
Data access technique Several methods for obtaining the metadata objects LINQ for the metadata objects Now a developer can compose complex queries to retrieve the typed metadata objects without resorting to SQL queries. This simplifies the development, reduces the number of errors and increases the application stability with regard to changes.
Code editor Regexp based Intellisense for Visual Basic Intellisense in code editors supporting C# 5.0 based on Roslyn Project Works much better, you can obtain clues even for complex expressions
Mobile development Was supported only by Win CE Mobile development platform for iOS, Android Based on Xamarin Studio and uses C# for the development
Integration interfaces IIS was required The platform for web services development, without using IIS
Integration interfaces Only SOAP got supported Supporting JSON, SOAP protocols and PCL libraries for a mobile development of any third-party applications The platform hides the protocols' features, a developer writes a code only once. The queries can be made on different protocols.
Printing infrastructure Synchronous printing without any delivery guarantees and priorization Flexible printing system that supports the delivery guarantees and the prioritization of the jobs' performance Facilitates the processing and reduces the time of the transactions' data blocking; the scalability gets increased, as a result.
Scalability Supports only one StandBy server New optimization features — the abandonment of the balance sheets, support of the multiple StandBy servers, etc.
Localization Was absent The platform supports the multilingualism of the user interface All metadata objects store their names in many languages; the forms can have different visualization for different languages. The directories' text values for different languages.
Rapid prototyping Only for a directory without a customization possibility RAP  — rapid application prototyping using generation of the forms based on metadata
Data access restriction Only on the appserver side Support of the predicate and object access on the part of the database Increases the performance and reliability of the rights' verification
Data access restriction Flat system of authorization Incorporated sets of authorization rules, flexible system of the users' authorization rights settings adjustment Easier adjustment of the authorization
Setting Most of the settings were in the text configuration files Simplified servers' management procedures Easier to deploy and configure servers
Logging of the changes Only user login is retained Full user data is retained-the login to the system, computer name, user name in Windows