Петров А.А.1, Калайда В.Т.2
1Аспирант; 2доктор технических наук, профессор, Национальный исследовательский Томский государственный университет
ЕДИНАЯ ВЫЧИСЛИТЕЛЬНАЯ СРЕДА В ЛОКАЛЬНОЙ СЕТИ И МЕТОДЫ ЕЁ ОРГАНИЗАЦИИ
Аннотация
В статье предлагается программная платформа, которая обеспечивает создание распределенных приложений и осуществляет автоматическое управление вычислительным процессом.
Ключевые слова: распределенная система, система управления, программный комплекс, сервис-ориентированная архитектура.
Petrov A.A.1, Kalayda V.T.2
1Postgraduate student; 2doctor of science in technics, National research Tomsk State University
UNIFIED COMPUTING ENVIRONMENT FOR LOCAL NETWORK AND TECHNIQUES OF DEVELOPING
Abstract
The article offers software platform for distributed calculations. The unified software platform unites all network nodes to unified computing environment and provides computing resources of the environment to users’ applications. The platform is used in local enterprise or campus networks. The platform solves the main problems of creation and use of distributed software. The unified computing environment provides efficient management of distributed calculations.
Keywords: distributed system, calculating system, software complex, service-oriented architecture.
Introduction
Integration of calculating resources in unified environment and providing efficient access to the resources are main IT problems for now. This is due to fast progress of network technologies and significant increase of network communications’ speed and reliability. GRID and Cloud technologies’ development is related to the problem [1]. However, computers of local and global networks are mainly used as sources of data for now.
Question of calculating resources integration in separate local enterprise or campus network takes a special place in the problem. Local networks have some features as compared to global networks such as:
- High speed of data transfer
- High reliability of data transfer
- Low delays of data transfer
A lot of methods and technologies provide distribution of computations across the network nodes. We have both simple (Berkeley sockets [2], RPC [3]) and complex (Java Enterprise Edition [4], Windows Communication Foundation [5]) distribution technologies. Software developers can use it to solve different computation tasks on several computers.
However, even if developer use this technologies, he still has to manage computing process (choose task priorities, choose network node to compute, track errors, etc.). Complexity of software development increases, and, as a result, duration and cost of development increase too.
Model of Unified Computing Environment
Solution of the problem is unified software platform, which unites all network nodes to unified computing environment and provides computing resources of the environment to users’ applications. There is a set of requirements to the platform, based on tasks in corporate and industrial networks:
- No need for additional expensive commutation hardware.
- Simple setting and using; no need for highly qualified expert for service.
- Transparent for the end user.
- “Self-adjusting”; be in active state in any situation.
- Wide range of tasks support
- Protection against outside attacks
- Cross-platform; able to work in network of nodes with different operating systems
Of course, these requirements are conflicting, but maximum compliance with them provides maximum efficiency of using computers’ resources for industrial, technology and office tasks.
Model of the platform is presented on Figure 1.
Fig. 1 – Model of the platform
The platform creates unified computing environment by uniting calculating resources of all network nodes and puts calculating modules into the environment. These modules implement different algorithms, such as matrix inverse, bitmap gradient computation and etc. User’s applications send request of calculation with specified module and get a result.
The computing environment schedules computing process automatically. Plan of computation should fit the chosen optimality criterion. Examples of optimality criterion are computing time minimum, nodes’ load level equality and etc. Optimality criterion is defined by platform user. Computing environment’s control mechanism looks after computing process: gathers statistic data about tasks computation time, makes a decision about changing plan in difficult situations, when execution of the plan is impractical or impossible in different circumstances. Examples of the circumstances are network failure, node’s load level jump and etc.
This software platform takes away problems of calculation process planning and management from software developer. Application creator just moves “heavy” calculating functions of application to separate calculating modules, replaces calls of these functions by calls to the unified interface of the platform and puts these modules into the platform during application installation.
In this way software developer is able to create distributed in local network software without duration and cost of development increase. And an end user getsincrease of hardware use efficiency and decrease of tasks calculation time by using the platform and distributed software.
The model implementation
Platform named “DistributedSystem” was developed according to the model.
The overall structure of the system is presented on Figure 2.
Fig. 2 – The overall structure
There are set of modules on every network node. A set of modules may vary on each network node.
The distributed calculation control system includes managers on every network node. Manager schedules computing process, gathers the information about node’s state and characteristic, gathers statistical data, and exchanges messages with the other managers.
So the set of managers represents the computing environment which is described earlier. Each manager has connected modules and provides interface for calculation requests to user’s applications (Figure 3).
Fig. 3 – Computing environment implementation
The basic technology of the platform is Windows Communication Foundation. Windows Communication Foundation (or WCF), previously known as “Indigo”, is a runtime and a set of APIs (application programming interface) in the .NET Framework for building connected, service-oriented applications [5]. WCF provides an opportunity to create the platform based on service-oriented architecture (SOA). SOA doesn’t need additional hardware and highly increase reliability of the platform. Moreover, SOA allows network’s nodes to enter and quit the computing environment during runtime without impact on environment’s performance in general [6].
One of the main features of WCF is launch of service in simple application without special server or service container. This feature allows creating easy-to-install and easy-to-use applications, because it takes away need of dedicated server’s setting up. This feature greatly influenced the decision to use WCF for the platform.
Manager exchange massages using SOAP protocol. SOAP is a protocol specification for exchanging structured XML messages in the implementation of Web Services in computer networks [7]. SOAP allows the platform to be cross-platform and to work in network of nodes with different operating systems. The main types of messages between managers are:
- Used for calculation request.
- Used for appearance of new manager in computing environment. The manager gets options of another manager (set of modules, computer configuration, etc.) and sends his own options as a reply.
- Used for request of another manager about computer state (CPU load level and etc.).
Calculation request of user’s application uses SOAP too. Special API comes with the platform for convenience of forming of this SOAP request, which can be used by software developers.
Calculation module is .NET class library. The main requirement to the module is one class having DoJob method. This function is called by manager during module use for calculation. User’s application informs the node’s manager about installable modules during the installation. The manager automatically puts these modules to the computing environment by sending it to other manages and distributing it across the nodes.
Example of platform’s functioning is presented on Figure 4.
Fig. 4 – Platform’s functioning
Numbers on the figure represents main operations of calculation:
- User’s application sends request to API about calculation with specified calculation module.
- API forms SOAP-request about calculation and sends it to manager, which is located on the same node with user’s application.
- The manager determines node to calculate based on chosen optimality criterion and sends a message to this node’s manager.
- Remote node’s manager unpacks data from SOAP-message and calls module for the calculation.
- Module returns calculation result to manager after the calculation.
- Remote node’s manager forms SOAP-reply and sends it to first manager.
- First manager gets the reply and sends it to API
- API unpacks the reply and gives it to user’s application.
Conclusion
Platform’s tests showed a significant decrease (up to 30%) of calculation time of tasks with big amount of data. Also the efficiency of hardware use increased. Distribution of application decreased load level of each calculation node.
So the described platform solves the main problems of creation and use of distributed software. The unified computing environment provides efficient management of distributed calculations and allows avoiding problems with conflicts of several unrelated distributed applications. Use of the platform greatly simplifies creation of distributed applications and doesn’t require knowledge of distribution techniques from developer.
The platform’s functioning almost invisible to end user. Network nodes’ search, nodes’ use and calculation planning are performed by the platform automatically.
References
- Jefferey K. The future of cloud computing / K. Jefferey, B. Neidecker-Lutz // Cloud Computing Expert Group Report 2009 [Электронный ресурс]. – Режим доступа: http://cordis.europa.eu/fp7/ict/ssai/docs/ cloud-report-final.pdf, свободный (дата обращения: 15.07.2012).
- Таненбаум Э. Компьютерные сети / Э. Таненбаум. – СПб.: Питер, 2003. – 4-е издание. – 992 с.
- Олифер, Н.А. Сетевые операционные системы / Н.А. Олифер, В.Г. Олифер. – СПб.: Питер, 2009. – 2-е издание. – 672 с.
- Браун К. Создание корпоративных Java-приложений для IBM WebSphere / К. Браун, Г. Крейг, Г. Хестер. – М.: Кудиц-образ, 2005. – 860с.
- Резник С. Основы Windows Communication Foundation для .NET Framework 3.5 / С. Резник, Р. Крейн, К. Боуэн. – М.: ДМК пресс, 2008. – 480 с.
- Reference Model for Service Oriented Architecture 1.0 / C. Matthew MacKenzie [и др.]. – OASIS Open. – 2006.
- Ньюкомер Э. Веб-сервисы. XML, WSDL, SOAP и UDDI. / Э. Ньюкомер. – СПб.:Питер, 2003. – 256 с.