South African scada leader, Adroit Technologies, uses Microsoft’s Visual Studio.NET to great advantage.
In 2003, following a lot of research into the future of visualisation, Adroit made the decision to create a generic, 'configurable' information portal, VIZNET, that would address a broader need - that of being able to collaborate between different data. This meant having to deal with both realtime and transactional data, as well as giving access to Web services for enhanced collaboration.
The VIZNET client is a smart client that securely delivers data to users over the Internet in a rich new level of user experience. In addition, the product offers the ability to remotely deploy the smart client application, thus minimising maintenance of distributed systems.
Adroit Technologies began developing process control software solutions for the manufacturing industry in 1982 and now has over 10 000 installations worldwide. Adroit's flagship supervisory control and data acquisition (scada) product is a robust 32-bit client/server application written with the Microsoft Visual C++ 2003 development system, first released for the Microsoft Windows NT operating system in 1993. This scada product has been very successful because of its high performance, scalability, and ease of use.
In 2003, after 10 years of success with its scada product, Adroit decided to re-architect it to better accommodate the great technology changes that have occurred. Adroit's goals were to create:
* A streamlined interface solution. (Adroit faced the recurring need to customise its user interface for a wide range of industrial and manufacturing installations. As each installation is different, Adroit needed the ability to accommodate and re-use custom graphic controls, including its scalable vector graphics (SVG) engine.)
* An application that could be sold off-the-shelf and user-configurable by using mostly wizard-type environments and drag-and-drop techniques to custom build visualisation screens.
* An Internet-ready solution. Adroit wanted to Internet-enable its software in order to be prepared for new opportunities, such as geographically dispersed operations. Achieving this goal would require meeting twin challenges: devices with limited computational power, and connections with limited bandwidth.
* A multipurpose portal. Adroit envisioned a new framework for customising process controls that could be extended beyond scada to connect to a wider range of applications, thereby creating a truly unified enterprise information portal.
The Adroit vision was a secure, Internet-ready, extensible data visualisation application that would allow the user to access, display, and manipulate data from any number of dissimilar data sources.
Adroit decided to build its new product squarely on the Microsoft .NET Framework - an integral component of the Microsoft Windows operating system that provides a programming model and runtime for Web services, Web applications, and smart client applications - and using the Microsoft Visual Studio .NET 2003 development system.
"When we decided to completely rewrite our legacy user interface, we looked seriously at Java," says Dave Wibberley, managing director at Adroit. "But I must say, the Microsoft tools and technologies were, in our opinion, ages ahead in terms of look and feel, usability, and performance. In retrospect, our development team estimates that Visual Studio .NET reduced the development cycle by a third and, hence, a big saving in time-to-market for us."
A core team of six developers embarked on a two-and-a-half-year project to define the architecture and design the software. By using the Microsoft Visual Studio .NET 2003 development system and the Microsoft Visual C# development tool, the team created a secure, Internet-enabled, extensible visualisation portal. Some of the technologies critical to this project included:
* The Windows Integrated Security model, including Active directory service, to access information regarding users and groups, and to easily modify access routines.
* Windows Forms runtime and designer, used to rapidly implement a rich and easily customisable user interface.
* Globalisation, both for internal strings and run-time translation of graphic forms.
* CryptoServiceProviders for securing data, both over the local area network (LAN) and over the Internet without having to rely on a secure sockets layer protocol (SSL).
* The Visual C# programming language and the Visual Basic .NET 2003 development system compilers, which allow the creation of dynamic classes for advanced functionality, necessary for the VIZNET scripting engine.
* Web Services technology allowing any third party to interact with the unified data model and interact with any of the data sources available over the Internet.
* Microsoft .NET 'remoting' that enables improved communication performance over a LAN environment.
The first version of the new VIZNET Information Portal was released in 2005. Its three main components are the server, the designer used by the integrator or a developer re-using the framework, and the smart client used by the operator (or end user).
VIZNET Server
As shown in Figure 1, the server aggregates data from a number of disparate sources and makes the information available, in realtime, to authorised users of smart clients connected by a LAN or the Internet. Data sources can include live Web Services and transactional Microsoft SQL Server 2000 databases, as well as realtime systems, such as OLE for Process Control (OPC) and Adroit's own scada server application.
One of the key design features of the data source plug-in architecture is the unified data model (UDM). This facilitates the collaboration of non-heterogeneous data types by transforming data from the outside world into a generic VIZNET format called a data element.
Security
Offering the capability to deliver data over the Internet, as well as to expose what could be sensitive data from data sources, meant that no expense was to be spared on building the security model on VIZNET.
Using .NET CryptoServiceProviders, as well as code signing or strong name validation at the assembly level, provides point-of-origin authentication for the VIZNET distribution assemblies. This measure ensures that no invasive assemblies can be bound to the VIZNET architecture. The licensing implementation uses the Microsoft signature enveloping system, which uses the private and public key RSA technology.
The VIZNET security model works at three stages: the first being applied at the data element level in the server, the second in providing secure communications between the smart clients and the server, and the third at the profile-based client visualisation layer.
The server contains data sources to hold user information and configured graphic forms. Before transfer, all data is compressed and encrypted. From wherever users log on, they will encounter their own profile settings, including language preferences and security levels. Windows Integrated Security is implemented on the server, along with best practices for .NET security, such as running each thread under a user profile. Threads that run to service a user's request can access only those resources that the user can access, as granted by the system administrator.
VIZNET Designer
The designer component, built on Windows Forms, is the key to creating custom interface configurations for end users. System integrators use this specialised client to create graphic forms for the operator interface, as well as to configure the server's data sources, user profiles, and security settings.
As shown in Figure 2, those familiar with the Visual Studio environment will notice an immediate familiarity with the VIZNET Designer; although in this environment, most tasks can be accomplished by non-programmers using drag-and-drop techniques. VIZNET makes use of the Component Designer extensibility (IDesignerHost) to implement interfaces and achieve design feel intentionally similar to Visual Studio with respect to controls and design grids.
The screen shots (Figure 2) illustrate the VIZNET Designer environment. The enterprise explorer tree (on the left) enables authorised integrators to configure the server for data sources, user profiles, and security settings. The graphic form at the top shows how the designer can build forms with components and vectors, and change the look and feel of the interface by using properties. At the bottom is the spider configuration engine, which creates dynamic interactions between data elements and graphic components.
The underlying data binding engine of the user interface takes advantage of Microsoft .NET Reflection to drive properties of controls at runtime, and is referred to as the 'Spider Engine.' The VIZNET Spider Engine uses a dynamic, visual, scalable mapping system that allows users to collaborate and manipulate data between the server and control properties at runtime. The Designer employs true .NET design-time functionality similar to that employed in the Microsoft Visual Studio forms designer.
Spiders shipped in the box include mathematical, logical, database manipulation, .NET scripting, and multicolour visual building blocks. Each spider has inputs and outputs and performs some function on the data in between. The execution of the spider can be triggered from an event or from data change. Outputs from one spider can become the input to another, and it is relatively easy to build complex collaboration before displaying on the VIZNET form.
Simple binding can be achieved by simply dragging a data element from the enterprise manager and dropping it onto, and selecting the property of a control, on a form.
Designer also allows the user to run - from within the design environment - the form being built. With this ability, a user can test and see what the end result will be once deployed.
Adroit's traditional expertise lies in offering exceptional graphic capabilities, and the vector graphics component gives the developer an unlimited range of capability to build graphically rich user interfaces, including complex shading to give 3D effects. Adroit (with a view to selling it as an add-in to Visual Studio early in 2006) has 'componentised' the graphics engine and is currently testing in Microsoft Visual Studio 2005.
The Microsoft .NET native support for internationalisation has been brought into the product by using Reflection, a technology that allows users to have any form represented in any language, at runtime, based on the translation tables as configured within the VIZNET Designer. The language is configured as part of a VIZNET profile.
With built-in layers and levels capability on the graphic forms, designers can expose different layers of data housed on the form to different users. At runtime, therefore, users can easily de-clutter forms.
"The designer allows non-programmers and programmers to work equally comfortably to build complex database solutions. The VIZNET design environment is intuitive and, once you understand the environment, has no limitations. It is awesome," says Bokkie Fourie of Specialised Data Access Solutions (SDAS), one of the pioneer VIZNET customers.
VIZNET Operator
The end user monitors, diagnoses, and controls industrial or business processes through the graphic user interface of this smart client software component, known as the operator (shown in Figure 3). The same operator software supports both fast LAN and lower bandwidth connections. Fast connections take advantage of the Microsoft .NET remoting infrastructure to push data to the operator and yield the highest performance. With slower Internet connections, the client, instead, polls for data by using Web services where the server waits to be asked for the data.
Benefits
Adroit experienced significant developer productivity gains by using Visual C# and the Microsoft .NET Framework to innovate a rich and extensive information portal.
Developer productivity boosted significantly
Adroit's developers found the transition from Visual C++ to Visual C# enabled them to implement features much more rapidly.
"Our total development time, I would estimate as having been about eight years," says Nicky Beets, senior developer at Adroit. "Accomplishing the same thing, by using Visual C++, would easily have taken triple the time; Microsoft Visual C# and the .NET Framework have definitely made the task easier and more pleasurable to code."
One of the big advantages was that so much of the 'plumbing' for the product was already provided by the .NET Framework.
"Our development focused on providing architecture based on this Framework," according to Fritz Kok, senior developer at Adroit, "and for most of this development, we did not require any additional library purchases from third parties."
Some of the other time-saving elements of the project identified by the Adroit developers included:
* Taking advantage of the existing Windows Forms designer for their own extensibility. "It took us a bit of time to learn the Windows Forms designer architecture, but once we did this, we cruised to having a production-quality designer in a fraction of the time had we written it from scratch," says Beets.
* The MSDN developer program for invaluable and very detailed assistance on all the Microsoft .NET-connected technologies.
* Microsoft Design Patterns (such as the EngineCollection class) for building reusable enterprise components.
* Valuable Visual C# compiler features, such as Attributes and XML document files.
* Easy versioning of Dynamic Link Libraries (DLLs) during development with built-in capabilities of the .NET Framework.
Rich user experience powered by Windows forms
Users no longer need high-powered workstations or fast network connections to operate complex process controls using a high-quality graphical interface. VIZNET uses Windows Forms to offer the end user rich control functionality in a visually sophisticated format.
The standard Windows Forms controls complement Adroit's vector controls to create effective data visualisation screens. Because Adroit used the standard .NET user control architecture, it is easy for end users to write their own controls and add them to the toolbox.
Adroit's smart client solution offers the optimal user experience under various bandwidth connections by utilising three different modes of client/server communications:
* Subscribe: The server 'pushes' changes to the client as they happen.
* Poll: The client requests only the most recent data from the server as needed.
* Subscribe-Poll: The client requests all data from the server since the last request (that is, a periodic poll without losing data in between).
"Our first challenge was implementing fine-grained control over our transport mechanisms," says Kok. "RemotingServices and ChannelServices made this much easier. These new services provided us with more control over ports used and the ability to marshal certain objects across AppDomains with minimum effort."
Each user's customised interface includes a language preference that will always be displayed for that user, even within graphics forms. Adroit accomplished this rich personalisation by using globalisation features for internal strings and run-time translation of graphic forms. "The CultureInfo and the CurrentUICulture classes in the .NET Framework make it easy for us to serve clients the graphic forms in the language as set up by their profiles, regardless of the regional settings of the Windows [operating system] on which the VIZNET server runs," says Kok.
Rapid time-to-market for company and partners
Adroit set out to create a new scada user interface application, but ended up with an extensible, re-usable portal framework.
By creating special plug-ins, data from other applications can be integrated into the VIZNET Server framework. In this way, even legacy applications can take advantage of VIZNET's underlying .NET-connected technologies. For example, a NASDAQ-listed, Pennsylvania company named CIMNET has created a plug-in for its own manufacturing execution system (MES) software package, Factelligence. CIMNET takes advantage of the VIZNET framework to provide the .NET infrastructure its application needs for secure Internet-based operation.
Chief technical officer of CIMNET, Tony Crouch, applauds the Adroit framework: "Choosing to use VIZNET as our front-end application offered us a number of advantages. We inherit a design environment that deals with all the connectivity, security and, more importantly, got us into the 'front of the pack' in that we were first-to-market in the .NET race in the manufacturing space. All we had to do was build a custom DataSource and to convert our legacy Microsoft ActiveX controls to Microsoft .NET controls, and the VIZNET framework handles everything else. The [Visual] C# and Visual Basic .NET scripting engines were a bonus to us and our customers."
"From a commercial point of view," adds John Richardson, chief executive officer of CIMNET, "and faced with a build or buy decision, we felt time-to-market was the most important metric for our decision to partner with Adroit. With their deep understanding of producing user-friendly design environments Adroit has produced a superior .NET application framework that is at least two years ahead of its time." We also had the benefit of partnering at the beginning stages of Adroit's development cycle, which allowed us to influence the design for use in the MES and business intelligence markets. When we signed the partnership agreement, we were in the process of converting all of our code base to .NET, and this partnership shaved 40 percent off our workload and go-to-market time frame."
Outstanding developer support from Microsoft resources
Adroit was early to adopt Microsoft .NET-connected technologies for its innovative VIZNET product, and its developers benefited from a wide range of Microsoft support resources to help guide them in blazing new trails.
"In terms of the whole .NET 'ecosystem', we visit the newsgroups and the .NET Web sites regularly," says Beets. "There is really quite a nice support structure and community that provides us with almost all the solutions we need. And when there have been occasions where we got stuck and did need to communicate directly with Microsoft, the response has been superb."
Microsoft .NET framework
The Microsoft .NET framework is an integral Windows component for building and running the next generation of applications and XML-based Web services.
(To be found at http://msdn.microsoft.com/netframework)
Microsoft Visual Studio .NET
Microsoft Visual Studio .NET is the rapid application development (RAD) tool for building next-generation Web applications and XML-based Web services. Visual Studio .NET empowers developers to rapidly design broad-reach Web applications for any device and any platform. In addition, Visual Studio .NET is fully integrated with the Microsoft .NET Framework, providing support for multiple programming languages and automatically handling many common programming tasks, freeing developers to rapidly create Web applications using their language of choice.
Microsoft Visual Studio 2005
Microsoft Visual Studio 2005 is believed to be the world's most popular development environment for designing, developing, and testing next-generation Windows-based solutions and Web applications and services. By improving the development experience for Windows, the Web, mobile devices, and Microsoft Office, Visual Studio 2005 helps organisations deliver a variety of solutions more productively than before. Visual Studio Team System expands the product line with new software tools that enable greater communication and collaboration throughout the development life cycle. With Visual Studio 2005, businesses can deliver modern service-oriented solutions more efficiently.
"Accomplishing the same thing, by using Visual C++, would easily have taken triple the time. Microsoft Visual C# and the .NET Framework have definitely made the task easier and more pleasurable to code." Nicky Beets, senior developer, Adroit Technologies
Find Microsoft's .NET framework at http://msdn.microsoft.com/netframework
Tel: | +27 11 658 8100 |
Email: | [email protected] |
www: | www.adroit.co.za |
Articles: | More information and articles about Adroit Technologies |
© Technews Publishing (Pty) Ltd | All Rights Reserved