{"global":{"lastError":{},"locale":"en","locales":{"data":[{"id":"de","name":"Deutsch"},{"id":"en","name":"English"}],"loading":false,"error":false},"currency":{"id":49,"name":"EUR"},"currencies":{"data":[{"id":49,"name":"EUR"},{"id":124,"name":"RUB"},{"id":153,"name":"UAH"},{"id":155,"name":"USD"}],"loading":false,"error":false},"translations":{"company":{"role-vendor":{"ru":"Производитель","_type":"localeString","en":"Vendor"},"role-supplier":{"ru":"Поставщик","_type":"localeString","en":"Supplier"},"products-popover":{"de":"die produkte","ru":"Продукты","_type":"localeString","en":"Products"},"introduction-popover":{"ru":"внедрения","_type":"localeString","en":"introduction"},"partners-popover":{"_type":"localeString","en":"partners","ru":"партнеры"},"update-profile-button":{"ru":"Обновить профиль","_type":"localeString","en":"Update profile"},"read-more-button":{"en":"Show more","ru":"Показать ещё","_type":"localeString"},"hide-button":{"ru":"Скрыть","_type":"localeString","en":"Hide"},"user-implementations":{"en":"Deployments","ru":"Внедрения","_type":"localeString"},"categories":{"_type":"localeString","en":"Categories","ru":"Компетенции"},"description":{"_type":"localeString","en":"Description","ru":"Описание"},"role-user":{"ru":"Пользователь","_type":"localeString","en":"User"},"partnership-vendors":{"ru":"Партнерство с производителями","_type":"localeString","en":"Partnership with vendors"},"partnership-suppliers":{"_type":"localeString","en":"Partnership with suppliers","ru":"Партнерство с поставщиками"},"reference-bonus":{"ru":"Бонус за референс","_type":"localeString","en":"Bonus 4 reference"},"partner-status":{"ru":"Статус партнёра","_type":"localeString","en":"Partner status"},"country":{"ru":"Страна","_type":"localeString","en":"Country"},"partner-types":{"_type":"localeString","en":"Partner types","ru":"Типы партнеров"},"branch-popover":{"_type":"localeString","en":"branch","ru":"область деятельности"},"employees-popover":{"ru":"количество сотрудников","_type":"localeString","en":"number of employees"},"partnership-programme":{"_type":"localeString","en":"Partnership program","ru":"Партнерская программа"},"partner-discounts":{"_type":"localeString","en":"Partner discounts","ru":"Партнерские скидки"},"registered-discounts":{"_type":"localeString","en":"Additional benefits for registering a deal","ru":"Дополнительные преимущества за регистрацию сделки"},"additional-advantages":{"ru":"Дополнительные преимущества","_type":"localeString","en":"Additional Benefits"},"additional-requirements":{"en":"Partner level requirements","ru":"Требования к уровню партнера","_type":"localeString"},"certifications":{"ru":"Сертификация технических специалистов","_type":"localeString","en":"Certification of technical specialists"},"sales-plan":{"ru":"Годовой план продаж","_type":"localeString","en":"Annual Sales Plan"},"partners-vendors":{"_type":"localeString","en":"Partners-vendors","ru":"Партнеры-производители"},"partners-suppliers":{"ru":"Партнеры-поставщики","_type":"localeString","en":"Partners-suppliers"},"all-countries":{"ru":"Все страны","_type":"localeString","en":"All countries"},"supplied-products":{"_type":"localeString","en":"Supplied products","ru":"Поставляемые продукты"},"vendored-products":{"ru":"Производимые продукты","_type":"localeString","en":"Produced products"},"vendor-implementations":{"_type":"localeString","en":"Produced deployments","ru":"Производимые внедрения"},"supplier-implementations":{"en":"Supplied deployments","ru":"Поставляемые внедрения","_type":"localeString"},"show-all":{"_type":"localeString","en":"Show all","ru":"Показать все"},"not-yet-converted":{"ru":"Данные модерируются и вскоре будут опубликованы. Попробуйте повторить переход через некоторое время.","_type":"localeString","en":"Data is moderated and will be published soon. Please, try again later."},"schedule-event":{"en":"Events schedule","ru":"Pасписание событий","_type":"localeString"},"implementations":{"_type":"localeString","en":"Deployments","ru":"Внедрения"},"register":{"ru":"Регистрация ","_type":"localeString","en":"Register"},"login":{"_type":"localeString","en":"Login","ru":"Вход"},"auth-message":{"en":"To view company events please log in or register on the sit.","ru":"Для просмотра ивентов компании авторизируйтесь или зарегистрируйтесь на сайт.","_type":"localeString"},"company-presentation":{"en":"Company presentation","ru":"Презентация компании","_type":"localeString"}},"header":{"help":{"de":"Hilfe","ru":"Помощь","_type":"localeString","en":"Help"},"how":{"de":"Wie funktioniert es","ru":"Как это работает","_type":"localeString","en":"How does it works"},"login":{"en":"Log in","de":"Einloggen","ru":"Вход","_type":"localeString"},"logout":{"ru":"Выйти","_type":"localeString","en":"Sign out"},"faq":{"_type":"localeString","en":"FAQ","de":"FAQ","ru":"FAQ"},"references":{"_type":"localeString","en":"Requests","de":"References","ru":"Мои запросы"},"solutions":{"_type":"localeString","en":"Solutions","ru":"Возможности"},"find-it-product":{"_type":"localeString","en":"Selection and comparison of IT product","ru":"Подбор и сравнение ИТ продукта"},"autoconfigurator":{"ru":"Калькулятор цены","_type":"localeString","en":" Price calculator"},"comparison-matrix":{"ru":"Матрица сравнения","_type":"localeString","en":"Comparison Matrix"},"roi-calculators":{"ru":"ROI калькуляторы","_type":"localeString","en":"ROI calculators"},"b4r":{"ru":"Бонус за референс","_type":"localeString","en":"Bonus for reference"},"business-booster":{"en":"Business boosting","ru":"Развитие бизнеса","_type":"localeString"},"catalogs":{"en":"Catalogs","ru":"Каталоги","_type":"localeString"},"products":{"ru":"Продукты","_type":"localeString","en":"Products"},"implementations":{"en":"Deployments","ru":"Внедрения","_type":"localeString"},"companies":{"en":"Companies","ru":"Компании","_type":"localeString"},"categories":{"ru":"Категории","_type":"localeString","en":"Categories"},"for-suppliers":{"en":"For suppliers","ru":"Поставщикам","_type":"localeString"},"blog":{"ru":"Блог","_type":"localeString","en":"Blog"},"agreements":{"ru":"Сделки","_type":"localeString","en":"Deals"},"my-account":{"ru":"Мой кабинет","_type":"localeString","en":"My account"},"register":{"en":"Register","ru":"Зарегистрироваться","_type":"localeString"},"comparison-deletion":{"ru":"Удаление","_type":"localeString","en":"Deletion"},"comparison-confirm":{"ru":"Подтвердите удаление","_type":"localeString","en":"Are you sure you want to delete"},"search-placeholder":{"ru":"Введите поисковый запрос","_type":"localeString","en":"Enter your search term"},"my-profile":{"en":"My profile","ru":"Мои данные","_type":"localeString"},"about":{"_type":"localeString","en":"About Us"},"it_catalogs":{"en":"IT catalogs","_type":"localeString"},"roi4presenter":{"en":"Roi4Presenter","_type":"localeString"},"roi4webinar":{"_type":"localeString","en":"Pitch Avatar"},"sub_it_catalogs":{"_type":"localeString","en":"Find IT product"},"sub_b4reference":{"en":"Get reference from user","_type":"localeString"},"sub_roi4presenter":{"_type":"localeString","en":"Make online presentations"},"sub_roi4webinar":{"_type":"localeString","en":"Create an avatar for the event"},"catalogs_new":{"_type":"localeString","en":"Products"},"b4reference":{"_type":"localeString","en":"Bonus4Reference"},"it_our_it_catalogs":{"_type":"localeString","en":"Our IT Catalogs"},"it_products":{"_type":"localeString","en":"Find and compare IT products"},"it_implementations":{"_type":"localeString","en":"Learn implementation reviews"},"it_companies":{"en":"Find vendor and company-supplier","_type":"localeString"},"it_categories":{"_type":"localeString","en":"Explore IT products by category"},"it_our_products":{"_type":"localeString","en":"Our Products"},"it_it_catalogs":{"_type":"localeString","en":"IT catalogs"}},"footer":{"copyright":{"_type":"localeString","en":"All rights reserved","de":"Alle rechte vorbehalten","ru":"Все права защищены"},"company":{"_type":"localeString","en":"My Company","de":"Über die Firma","ru":"О компании"},"about":{"de":"Über uns","ru":"О нас","_type":"localeString","en":"About us"},"infocenter":{"_type":"localeString","en":"Infocenter","de":"Infocenter","ru":"Инфоцентр"},"tariffs":{"de":"Tarife","ru":"Тарифы","_type":"localeString","en":"Subscriptions"},"contact":{"de":"Kontaktiere uns","ru":"Связаться с нами","_type":"localeString","en":"Contact us"},"marketplace":{"en":"Marketplace","de":"Marketplace","ru":"Marketplace","_type":"localeString"},"products":{"en":"Products","de":"Produkte","ru":"Продукты","_type":"localeString"},"compare":{"de":"Wähle und vergleiche","ru":"Подобрать и сравнить","_type":"localeString","en":"Pick and compare"},"calculate":{"en":"Calculate the cost","de":"Kosten berechnen","ru":"Расчитать стоимость","_type":"localeString"},"get_bonus":{"en":"Bonus for reference","de":"Holen Sie sich einen Rabatt","ru":"Бонус за референс","_type":"localeString"},"salestools":{"de":"Salestools","ru":"Salestools","_type":"localeString","en":"Salestools"},"automatization":{"ru":"Автоматизация расчетов","_type":"localeString","en":"Settlement Automation","de":"Abwicklungsautomatisierung"},"roi_calcs":{"ru":"ROI калькуляторы","_type":"localeString","en":"ROI calculators","de":"ROI-Rechner"},"matrix":{"_type":"localeString","en":"Comparison matrix","de":"Vergleichsmatrix","ru":"Матрица сравнения"},"b4r":{"en":"Rebate 4 Reference","de":"Rebate 4 Reference","ru":"Rebate 4 Reference","_type":"localeString"},"our_social":{"en":"Our social networks","de":"Unsere sozialen Netzwerke","ru":"Наши социальные сети","_type":"localeString"},"subscribe":{"ru":"Подпишитесь на рассылку","_type":"localeString","en":"Subscribe to newsletter","de":"Melden Sie sich für den Newsletter an"},"subscribe_info":{"ru":"и узнавайте первыми об акциях, новых возможностях и свежих обзорах софта","_type":"localeString","en":"and be the first to know about promotions, new features and recent software reviews"},"policy":{"ru":"Политика конфиденциальности","_type":"localeString","en":"Privacy Policy"},"user_agreement":{"ru":"Пользовательское соглашение ","_type":"localeString","en":"Agreement"},"solutions":{"ru":"Возможности","_type":"localeString","en":"Solutions"},"find":{"ru":"Подбор и сравнение ИТ продукта","_type":"localeString","en":"Selection and comparison of IT product"},"quote":{"ru":"Калькулятор цены","_type":"localeString","en":"Price calculator"},"boosting":{"ru":"Развитие бизнеса","_type":"localeString","en":"Business boosting"},"4vendors":{"ru":"поставщикам","_type":"localeString","en":"4 vendors"},"blog":{"ru":"блог","_type":"localeString","en":"blog"},"pay4content":{"en":"we pay for content","ru":"платим за контент","_type":"localeString"},"categories":{"en":"categories","ru":"категории","_type":"localeString"},"showForm":{"en":"Show form","ru":"Показать форму","_type":"localeString"},"subscribe__title":{"ru":"Раз в месяц мы отправляем дайджест актуальных новостей ИТ мира!","_type":"localeString","en":"We send a digest of actual news from the IT world once in a month!"},"subscribe__email-label":{"_type":"localeString","en":"Email","ru":"Email"},"subscribe__name-label":{"ru":"Имя","_type":"localeString","en":"Name"},"subscribe__required-message":{"ru":"Это поле обязательное","_type":"localeString","en":"This field is required"},"subscribe__notify-label":{"en":"Yes, please, notify me about news, events and propositions","ru":"Да, пожалуйста уведомляйте меня о новостях, событиях и предложениях","_type":"localeString"},"subscribe__agree-label":{"ru":"Подписываясь на рассылку, вы соглашаетесь с %TERMS% и %POLICY% и даете согласие на использование файлов cookie и передачу своих персональных данных*","_type":"localeString","en":"By subscribing to the newsletter, you agree to the %TERMS% and %POLICY% and agree to the use of cookies and the transfer of your personal data"},"subscribe__submit-label":{"_type":"localeString","en":"Subscribe","ru":"Подписаться"},"subscribe__email-message":{"_type":"localeString","en":"Please, enter the valid email","ru":"Пожалуйста, введите корректный адрес электронной почты"},"subscribe__email-placeholder":{"ru":"username@gmail.com","_type":"localeString","en":"username@gmail.com"},"subscribe__name-placeholder":{"ru":"Имя Фамилия","_type":"localeString","en":"Last, first name"},"subscribe__success":{"_type":"localeString","en":"You are successfully subscribed! Check you mailbox.","ru":"Вы успешно подписаны на рассылку. Проверьте свой почтовый ящик."},"subscribe__error":{"ru":"Не удалось оформить подписку. Пожалуйста, попробуйте позднее.","_type":"localeString","en":"Subscription is unsuccessful. Please, try again later."},"roi4presenter":{"de":"roi4presenter","ru":"roi4presenter","_type":"localeString","en":"Roi4Presenter"},"it_catalogs":{"_type":"localeString","en":"IT catalogs"},"roi4webinar":{"_type":"localeString","en":"Pitch Avatar"},"b4reference":{"en":"Bonus4Reference","_type":"localeString"}},"breadcrumbs":{"home":{"_type":"localeString","en":"Home","ru":"Главная"},"companies":{"ru":"Компании","_type":"localeString","en":"Companies"},"products":{"ru":"Продукты","_type":"localeString","en":"Products"},"implementations":{"_type":"localeString","en":"Deployments","ru":"Внедрения"},"login":{"ru":"Вход","_type":"localeString","en":"Login"},"registration":{"ru":"Регистрация","_type":"localeString","en":"Registration"},"b2b-platform":{"ru":"Портал для покупателей, поставщиков и производителей ИТ","_type":"localeString","en":"B2B platform for IT buyers, vendors and suppliers"}},"comment-form":{"title":{"ru":"Оставить комментарий","_type":"localeString","en":"Leave comment"},"firstname":{"_type":"localeString","en":"First name","ru":"Имя"},"lastname":{"ru":"Фамилия","_type":"localeString","en":"Last name"},"company":{"_type":"localeString","en":"Company name","ru":"Компания"},"position":{"ru":"Должность","_type":"localeString","en":"Position"},"actual-cost":{"en":"Actual cost","ru":"Фактическая стоимость","_type":"localeString"},"received-roi":{"ru":"Полученный ROI","_type":"localeString","en":"Received ROI"},"saving-type":{"_type":"localeString","en":"Saving type","ru":"Тип экономии"},"comment":{"_type":"localeString","en":"Comment","ru":"Комментарий"},"your-rate":{"en":"Your rate","ru":"Ваша оценка","_type":"localeString"},"i-agree":{"en":"I agree","ru":"Я согласен","_type":"localeString"},"terms-of-use":{"en":"With user agreement and privacy policy","ru":"С пользовательским соглашением и политикой конфиденциальности","_type":"localeString"},"send":{"en":"Send","ru":"Отправить","_type":"localeString"},"required-message":{"ru":"{NAME} - это обязательное поле","_type":"localeString","en":"{NAME} is required filed"}},"maintenance":{"title":{"ru":"На сайте проводятся технические работы","_type":"localeString","en":"Site under maintenance"},"message":{"ru":"Спасибо за ваше понимание","_type":"localeString","en":"Thank you for your understanding"}}},"translationsStatus":{"company":"success"},"sections":{},"sectionsStatus":{},"pageMetaData":{"company":{"meta":[{"content":"https://roi4cio.com/fileadmin/templates/roi4cio/image/roi4cio-logobig.jpg","name":"og:image"},{"name":"og:type","content":"website"}],"translatable_meta":[{"translations":{"ru":"Компания","_type":"localeString","en":"Company"},"name":"title"},{"name":"description","translations":{"ru":"Описание компании","_type":"localeString","en":"Company description"}},{"name":"keywords","translations":{"ru":"Ключевые слова для компании","_type":"localeString","en":"Company keywords"}}],"title":{"en":"ROI4CIO: Company","ru":"ROI4CIO: Компания","_type":"localeString"}}},"pageMetaDataStatus":{"company":"success"},"subscribeInProgress":false,"subscribeError":false},"auth":{"inProgress":false,"error":false,"checked":true,"initialized":false,"user":{},"role":null,"expires":null},"products":{"productsByAlias":{},"aliases":{},"links":{},"meta":{},"loading":false,"error":null,"useProductLoading":false,"sellProductLoading":false,"templatesById":{},"comparisonByTemplateId":{}},"filters":{"filterCriterias":{"loading":false,"error":null,"data":{"price":{"min":0,"max":6000},"users":{"loading":false,"error":null,"ids":[],"values":{}},"suppliers":{"loading":false,"error":null,"ids":[],"values":{}},"vendors":{"loading":false,"error":null,"ids":[],"values":{}},"roles":{"id":200,"title":"Roles","values":{"1":{"id":1,"title":"User","translationKey":"user"},"2":{"id":2,"title":"Supplier","translationKey":"supplier"},"3":{"id":3,"title":"Vendor","translationKey":"vendor"}}},"categories":{"flat":[],"tree":[]},"countries":{"loading":false,"error":null,"ids":[],"values":{}}}},"showAIFilter":false},"companies":{"companiesByAlias":{"roobykon-software":{"id":5028,"title":"Roobykon Software","logoURL":"https://old.roi4cio.com/uploads/roi/company/roobykon_software_1.png","alias":"roobykon-software","address":"","roles":[{"id":3,"type":"vendor"}],"description":"We build online marketplaces! Marketplaces similar with Airbnb, Booking, Ebay, Amazon, Etsy, Upwork, Uber, Getaround, Taskrabbit, Kickstarter, Fundable. We are experienced with Sharetribe, OpenCart, Shopify, Cocorico, CS-cart and some other platforms.\r\n\r\nOur expertise: \r\nMarketplaces development, support and promotion is our area of expertise.\r\nProducts marketplaces, services marketplaces, projects marketplaces, we build any online marketplaces you need! Marketplaces similar with Airbnb, Booking, eBay, Amazon, Etsy, Upwork, Uber and etc.\r\n\r\nThe way we work:\r\n Our main focus is saving your time and efforts by providing full-cycle product development from design to development and further evolution.\r\n\r\nSolutions: \r\nTo get your project affordable and in short period of time we use platforms like Sharetribe, Cocorico and CS-cart etc. Also we use SaaS services like Shopify.\r\n\r\nTeam: \r\nWe have a team of talented devs with some coding ninjas having 10+ years of web dev experience.\r\n\r\nBusiness domains:\r\n- Marketplace development\r\n- Gambling web development & Promotion\r\n- Ruby for startups\r\n- Web scraping services\r\n\r\n Technologies we use:\r\n - Backend: Ruby, Ruby on Rails ( since 1.0 up to 5.0), Node.js, PHP with CodeIgniter, Yii,\r\n - Frontend: JavaScript, CoffeeScript, React, AngularJS, HTML5, CSS, SASS/SCSS, HAML, SLIM, JQuery, Bootstrap.\r\n\r\nMobile:\r\nDevelopment using Hybrid approach (Apache Cordova based stack)\r\n\r\nDatabases: \r\nMySQL, PostgreSQL, MS SQL, Oracle, MongoDB, CouchDB.\r\n\r\n - 3rd party software: SalesForce, HasOffers, Xero, CampaignMonitor, Stripe, Braintree, Recurly, Grunt (the list contains literally hundreds of integrations using REST, SOAP, native lib/gem wrappers, and more).\r\n\r\n","companyTypes":["vendor"],"products":{},"vendoredProductsCount":0,"suppliedProductsCount":0,"supplierImplementations":[],"vendorImplementations":[],"userImplementations":[],"userImplementationsCount":0,"supplierImplementationsCount":0,"vendorImplementationsCount":0,"vendorPartnersCount":0,"supplierPartnersCount":0,"b4r":1,"categories":{"27":{"id":27,"title":"ODMS - Operational Database Management System","description":"Operational database management systems (also referred to as OLTP On-Line Transaction Processing databases) are used to update data in real-time. These types of databases allow users to do more than simply view archived data. Operational databases allow you to modify that data (add, change or delete data), doing it in real-time. OLTP databases provide transactions as the main abstraction to guarantee data consistency that guarantees the so-called ACID properties. Basically, the consistency of the data is guaranteed in the case of failures and/or concurrent access to the data.\r\nSince the early 90s, the operational database software market has been largely taken over by SQL engines. Today, the operational DBMS market (formerly OLTP) is evolving dramatically, with new, innovative entrants and incumbents supporting the growing use of unstructured data and NoSQL DBMS engines, as well as XML databases and NewSQL databases. NoSQL databases typically have focused on scalability and have renounced to data consistency by not providing transactions as OLTP systems do. Operational databases are increasingly supporting distributed database architecture that can leverage distribution to provide high availability and fault tolerance through replication and scale-out ability.\r\nThe growing role of operational databases in the IT industry is moving fast from legacy databases to real-time operational databases capable to handle distributed web and mobile demand and to address Big data challenges. Recognizing this, Gartner started to publish the Magic Quadrant for Operational Database Management Systems in October 2013.\r\nOperational databases are used to store, manage and track real-time business information. For example, a company might have an operational database used to track warehouse/stock quantities. As customers order products from an online web store, an operational database can be used to keep track of how many items have been sold and when the company will need to reorder stock. An operational database stores information about the activities of an organization, for example, customer relationship management transactions or financial operations, in a computer database.\r\nOperational databases allow a business to enter, gather, and retrieve large quantities of specific information, such as company legal data, financial data, call data records, personal employee information, sales data, customer data, data on assets and much other information. An important feature of storing information in an operational database is the ability to share information across the company and over the Internet. Operational databases can be used to manage mission-critical business data, to monitor activities, to audit suspicious transactions, or to review the history of dealings with a particular customer. They can also be part of the actual process of making and fulfilling a purchase, for example in e-commerce.","materialsDescription":" <span style=\"font-weight: bold;\">What is DBMS used for?</span>\r\nDBMS, commonly known as Database Management System, is an application system whose main purpose revolves around the data. This is a system that allows its users to store the data, define it, retrieve it and update the information about the data inside the database.\r\n<span style=\"font-weight: bold;\">What is meant by a Database?</span>\r\nIn simple terms, Database is a collection of data in some organized way to facilitate its user’s to easily access, manage and upload the data.\r\n<span style=\"font-weight: bold;\">Why is the use of DBMS recommended? Explain by listing some of its major advantages.</span>\r\nSome of the major advantages of DBMS are as follows:\r\n<ul><li><span style=\"font-style: italic;\"><span style=\"font-weight: bold;\">Controlled Redundancy:</span></span> DBMS supports a mechanism to control the redundancy of data inside the database by integrating all the data into a single database and as data is stored at only one place, the duplicity of data does not happen.</li><li><span style=\"font-style: italic;\"><span style=\"font-weight: bold;\">Data Sharing:</span></span> Sharing of data among multiple users simultaneously can also be done in DBMS as the same database will be shared among all the users and by different application programs.</li><li> Backup and Recovery Facility: DBMS minimizes the pain of creating the backup of data again and again by providing a feature of ‘backup and recovery’ which automatically creates the data backup and restores the data whenever required.</li><li><span style=\"font-style: italic;\"><span style=\"font-weight: bold;\">Enforcement of Integrity Constraints:</span></span> Integrity Constraints are very important to be enforced on the data so that the refined data after putting some constraints are stored in the database and this is followed by DBMS.</li><li><span style=\"font-style: italic;\"><span style=\"font-weight: bold;\">Independence of Data:</span></span> It simply means that you can change the structure of the data without affecting the structure of any of the application programs.</li></ul>\r\n<span style=\"font-weight: bold;\">What is the purpose of normalization in DBMS?</span>\r\nNormalization is the process of analyzing the relational schemas which are based on their respective functional dependencies and the primary keys in order to fulfill certain properties.\r\n<span style=\"font-style: italic;\"><span style=\"font-weight: bold;\">The properties include:</span></span>\r\n<ul><li>To minimize the redundancy of the Data.</li><li>To minimize the Insert, Delete and Update Anomalies.</li></ul>","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_ODMS.png","alias":"odms-operational-database-management-system"},"51":{"id":51,"title":"PaaS - Platform as a service","description":"<span style=\"font-weight: bold; \">Platform as a Service (PaaS)</span> or <span style=\"font-weight: bold; \">Application Platform as a Service (aPaaS)</span> or <span style=\"font-weight: bold; \">platform-based service</span> is a category of cloud computing services that provides a platform allowing customers to develop, run, and manage applications without the complexity of building and maintaining the infrastructure typically associated with developing and launching an app.\r\n<span style=\"font-weight: bold; \">PaaS can be delivered in three ways:</span>\r\n<span style=\"font-weight: bold;\">As a public cloud service</span> from a provider, where the consumer controls software deployment with minimal configuration options, and the provider provides the networks, servers, storage, operating system (OS), middleware (e.g. Java runtime, .NET runtime, integration, etc.), database and other services to host the consumer's application.\r\n<span style=\"font-weight: bold;\">As a private service</span> (software or appliance) behind a firewall.\r\n<span style=\"font-weight: bold;\">As software</span> deployed on a public infrastructure as a service.\r\n<span style=\"color: rgb(97, 97, 97); \">The original intent of PaaS technology was to simplify the code-writing process for developers, with the infrastructure and operations handled by the PaaS provider. Originally, all PaaSes were in the public cloud. Because many companies did not want to have everything in the public cloud, private and hybrid PaaS options (managed by internal IT departments) were created.</span>\r\n<span style=\"color: rgb(97, 97, 97); \">PaaS provides an environment for developers and companies to create, host and deploy applications, saving developers from the complexities of the infrastructure side (setting up, configuring and managing elements such as servers and databases).</span>\r\n<span style=\"color: rgb(97, 97, 97); \">PaaS products can improve the speed of developing an app, and allow the consumer to focus on the application itself. With PaaS, the consumer manages applications and data, while the provider (in public PaaS) or IT department (in private PaaS) manages runtime, middleware, operating system, virtualization, servers, storage and networking.</span>\r\n<span style=\"color: rgb(97, 97, 97); \">PaaS offerings may also include facilities for application design, application development, testing and deployment, as well as services such as team collaboration, web service integration, and marshalling, database integration, security, scalability, storage, persistence, state management, application versioning, application instrumentation, and developer community facilitation. Besides the service engineering aspects, PaaS solutions include mechanisms for service management, such as monitoring, workflow management, discovery and reservation.</span>\r\nThere are various types of PaaS providers. All offer application hosting and a deployment environment, along with various integrated services. Services offer varying levels of scalability and maintenance. Developers can write an application and upload it to a PaaS platform that supports their software language of choice, and the application runs on that PaaS.","materialsDescription":"<h1 class=\"align-center\">How PaaS works</h1>\r\n<p class=\"align-left\">PaaS does not replace a company's entire IT infrastructure for software development. It is provided through a cloud service provider's hosted infrastructure with users most frequently accessing the offerings through a web browser. PaaS can be delivered through public, private and hybrid clouds to deliver services such as application hosting and Java development.</p>\r\n<p class=\"align-left\"><span style=\"font-weight: bold; \">Other PaaS services include:</span></p>\r\n<ul><li>Development team collaboration</li><li>Application design and development</li><li>Application testing and deployment</li><li>Web service integration</li><li>Information security</li><li>Database integration</li></ul>\r\n<p class=\"align-left\">Users pay for PaaS on a per-use basis. However, different platform as a service providers charge a flat monthly fee for access to the platform and its applications.</p>\r\n<h1 class=\"align-center\">What are the types of PaaS?</h1>\r\n<ul><li><span style=\"font-weight: bold; \">Public PaaS</span></li></ul>\r\nA public PaaS allows the user to control software deployment while the cloud provider manages the delivery of all other major IT components necessary to the hosting of applications, including operating systems, databases, servers and storage system networks. \r\nPublic PaaS vendors offer middleware that enables developers to set up, configure and control servers and databases without the necessity of setting up the infrastructure side of things. As a result, public PaaS and IaaS (infrastructure as a service) run together, with PaaS operating on top of a vendor's IaaS infrastructure while leveraging the public cloud. \r\n<ul><li><span style=\"font-weight: bold; \">Private PaaS</span></li></ul>\r\nA private PaaS is usually delivered as an appliance or software within the user's firewall which is frequently maintained in the company's on-premises data center. A private PaaS software can be developed on any type of infrastructure and can work within the company's specific private cloud. Private PaaS allows an organization to better serve developers, improve the use of internal resources and reduce the costly cloud sprawl that many companies face.\r\n<ul><li><span style=\"font-weight: bold; \">Hybrid PaaS </span></li></ul>\r\nCombines public PaaS and private PaaS to provide companies with the flexibility of infinite capacity provided by a public PaaS model and the cost efficiencies of owning an internal infrastructure in private PaaS. Hybrid PaaS utilizes a hybrid cloud.\r\n<ul><li><span style=\"font-weight: bold; \">Communication PaaS </span></li></ul>\r\nCPaaS is a cloud-based platform that allows developers to add real-time communications to their apps without the need for back-end infrastructure and interfaces. Normally, real-time communications occur in apps that are built specifically for these functions. Examples include Skype, FaceTime, WhatsApp and the traditional phone. CPaaS provides a complete development framework for the creation of real-time communications features without the necessity of a developer building their own framework.\r\n<ul><li><span style=\"font-weight: bold; \">Mobile PaaS</span> </li></ul>\r\nMPaaS is the use of a paid integrated development environment for the configuration of mobile apps. In an mPaaS, coding skills are not required. MPaaS is delivered through a web browser and typically supports public cloud, private cloud and on-premises storage. The service is usually leased with pricing per month, varying according to the number of included devices and supported features.\r\n<ul><li><span style=\"font-weight: bold; \">Open PaaS</span></li></ul>\r\nIt is a free, open source, business-oriented collaboration platform that is attractive on all devices and provides useful web apps, including calendar, contacts and mail applications. OpenPaaS was designed to allow users to quickly deploy new applications with the goal of developing a PaaS technology that is committed to enterprise collaborative applications, specifically those deployed on hybrid clouds.","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/PaaS_-_Platform_as_a_service.png","alias":"paas-platform-as-a-service"},"54":{"id":54,"title":"MDM - master data management","description":"<span style=\"font-weight: bold; \">Master data management (MDM)</span> is the core process used to manage, centralize, organize, categorize, localize, synchronize and enrich master data according to the business rules of the sales, marketing and operational strategies of your company. \r\nIt is a technology-enabled discipline in which business and IT work together to ensure the uniformity, accuracy, stewardship, semantic consistency and accountability of the enterprise’s official shared master data assets. Master data is the consistent and uniform set of identifiers and extended attributes that describes the core entities of the enterprise including customers, prospects, citizens, suppliers, sites, hierarchies and chart of accounts.\r\n<p class=\"align-center\"><span style=\"font-weight: bold; \">Essential Master Data Management Capabilities</span></p>\r\n<span style=\"font-weight: bold; \">Flexible and multi-domain.</span>An extensible master data repository with flexible data modeling features provides a centralized view of all relationships between data types, clarifying complex cross-domain relationships, providing a flexible and multi-domain master data software.\r\n<span style=\"font-weight: bold; \">Multi-style MDM.</span> Master Data Management platform should support all four main styles of MDM:\r\n<span style=\"font-style: italic;\">Centrally authored:</span> In this style data is authored in the MDM, other systems subscribe to the MDM for master data (or the MDM pushes the data into downstream applications).\r\n<span style=\"font-style: italic;\">Consolidation:</span> Source systems feed data into the MDM for consolidation into golden records\r\n<span style=\"font-style: italic;\">Coexistence:</span> A mashup of centrally authored and consolidation that allows for creation of data in multiple systems.\r\n<span style=\"font-style: italic;\">Registry:</span> Rather than consolidating records, joining/aligning unique identifiers from across all the systems into join tables.\r\n<span style=\"font-weight: bold; \">Real-time, secure data.</span> The top MDM software today allow you to publish and subscribe to data on demand, providing accurate master data to systems when and how you need it without compromising security. With real-time data, users can better react to the data and make faster decisions based on the insights discovered.\r\n<span style=\"font-weight: bold; \">Data and Workflow visualization.</span> Master Data Management software provides a data visualization component that allows you to identify and easily fix quality issues. The capability can also helps users collaborate to constantly make improvements, monitor processes, and create dashboards for actionable data analysis.\r\n<span style=\"font-weight: bold; \">A customizable, business-friendly user interface.</span> A zero coding visual design time environment allows you to develop custom UIs using simple drag and drop actions. You can design cleaner, simpler, and more flexible role-based user interfaces for your Master Database Management system.\r\n\r\n","materialsDescription":"<h1 class=\"align-center\">Things to Look for in MDM Management Software</h1>\r\n<p class=\"align-left\">Because MDM is such a major task, you need the right software solution to assist you. The good news is that you have plenty of selections to choose from. The hard part is deciding on one. Here are a handful of features to look for:</p>\r\n<span style=\"font-weight: bold;\">Flexibility.</span> MDM isn’t a static issue. MDM software vendors continually updating products, so solutions will change rather dramatically over the course of a few months or years. With that being said, it’s smart to look at flexibility when it comes to master data management tools list. You may have a very specific need now, but will your solution allow you to address a future need that looks considerably different? \r\n<span style=\"font-weight: bold;\">Modeling.</span> Can you leverage the data model(s) of the member applications and eliminate the need to model? It could save you time, money, and help your master data be readily consumed without requiring additional transformation from an abstract data model to the data model in the member application(s). \r\n<span style=\"font-weight: bold;\">Cost.</span> While it shouldn’t be the only factor, money is obviously something that must be considered in the context of budgeting. This may be one of the first factors you use to narrow your choices. If you know you can only spend X dollars, then there’s no point in evaluating selections that cost more.\r\n <span style=\"font-weight: bold;\">Scalability.</span> How well does the solution scale? Your business is a fluid entity that will grow, contract, stagnate, grow again, etc. There’s no point in investing in thebest master data management tools that can only be used at your current size. Find one that easily grows and contracts in a cost-effective manner.\r\n <span style=\"font-weight: bold;\">Integration.</span> The final thing to think about is integration. Since the point of MDM software is to create a centralized destination for data, you need to carefully ensure that it will work with your current setup.","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/MDM_-_master_data_management1.png","alias":"mdm-master-data-management"},"66":{"id":66,"title":"BPM - Business Process Management","description":"<span style=\"font-weight: bold; \">Business process management (BPM)</span> is a discipline in operations management in which people use various methods to discover, model, analyze, measure, improve, optimize, and automate business processes. BPM focuses on improving corporate performance by managing business processes. Any combination of methods used to manage a company's business processes is BPM. Processes can be structured and repeatable or unstructured and variable.\r\nAs an approach, BPM sees processes as important assets of an organization that must be understood, managed, and developed to announce and deliver value-added products and services to clients or customers. This approach closely resembles other total quality management or continuous improvement process methodologies. ISO 9000 promotes the process approach to managing an organization.<span style=\"font-weight: bold; \"></span>\r\n<span style=\"font-weight: bold; \">Successfully employing BPM usually involves the following:</span>\r\nOrganizing around outcomes not tasks to ensure the proper focus is maintained\r\nCorrecting and improving processes before (potentially) automating them; otherwise all you’ve done is make the mess run faster\r\nEstablishing processes and assigning ownership lest the work and improvements simply drift away – and they will, as human nature takes over and the momentum peters out\r\nStandardizing processes across the enterprise so they can be more readily understood and managed, errors reduced, and risks mitigated\r\nEnabling continuous change so the improvements can be extended and propagated over time\r\nImproving existing processes, rather than building radically new or “perfect” ones, because that can take so long as to erode or negate any gains achieved\r\n<span style=\"font-weight: bold; \">Business Process Management Software (BPMS)</span> is a process automation tool. It helps you map out your everyday processes to identify and eliminate bottlenecks, control your company’s costs, make your day-to-day processes as efficient as possible, and ensure the effectiveness of the people involved in your processes. A business process management solution to a company’s needs begins with the alignment of business goals with an eye toward creating value through process change initiatives. This alignment leads to a thorough understanding and design of representative processes typically following an industry standard framework \r\nA BPM based foundation provides for complete lifecycle management of business processes, integration across technologies, and imbeds efficiency among people, processes, and technologies.\r\nCommercial business process management tools tend to center on the automation of business processes, essentially moving them from manual pen-and-paper endeavors to effortless automated transactions. BPM software products track how business information is used and then maps the relevant business process and ensure that transactions are done accordingly. This effectively shows where data and process bottlenecks occur and highlights various deficiencies in business processes, including areas where resources are wasted, allowing managers streamline and optimize those processes.\r\n<p class=\"align-center\"><span style=\"font-weight: bold; \">There are three key types of BPMS:</span></p>\r\n<span style=\"font-weight: bold; \">Efficiency Monitors:</span>Monitors every system of the enterprise for inefficiency in the processes by following it from start to finish. BPM program accurately pinpoints weakness and bottlenecks where customers might get frustrated and discontinue transactions and processes.\r\n<span style=\"font-weight: bold; \">Workflow Software:</span> Uses detailed maps of an existing processes and tries to streamline them by optimizing certain steps. BPM workflow software cannot suggest improvements to the process, only optimize it, so this software is only as good as the process itself.\r\n<span style=\"font-weight: bold; \">Enterprise Application Integration Tools:</span> A mixture of efficiency monitors, process and workflow management, EAI software is used to integrate legacy systems into new systems. This software can be used to map points for integrating old and new systems, optimizing their information-gathering characteristics and increasing the efficiency of system communications.<br /><br /><br />","materialsDescription":"<h1 class=\"align-center\">What Are the Types of Business Process Management Software?</h1>\r\n<p class=\"align-center\">There are <span style=\"font-weight: bold; \">three basic kinds</span> of BPM frameworks:</p>\r\n<span style=\"font-weight: bold; \">Horizontal frameworks.</span>They deal with design and development of business processes. They are generally focused on technology and reuse.\r\n<span style=\"font-weight: bold; \">Vertical BPM frameworks.</span> This focuses on specific sets of coordinated tasks, using pre-built templates which can be easily deployed and configured.\r\n<span style=\"font-weight: bold; \">Full-service BPM suites.</span> They have five basic components: Process discovery and project scoping; Process modeling and design; Business rules engine; Workflow engine; Simulation and testing.\r\n<p class=\"align-center\">There are <span style=\"font-weight: bold; \">two types of BPM software</span> as it pertains to deployment:<span style=\"font-weight: bold; \"></span></p>\r\n<p class=\"align-left\"><span style=\"font-weight: bold; \">On-premise</span> business process management (BPM). This has been the norm for most enterprises.</p>\r\n<span style=\"font-weight: bold; \">Software as a Service (SaaS).</span> Advances in cloud computing have led to an increased interest in various “software-on-demand” offerings.\r\n<h1 class=\"align-center\">What are BPM Tools?</h1>\r\n<span style=\"font-weight: bold; \">Business Process Management (BPM) tools</span> are used for automating, measuring and optimizing business processes. BPM automation tools use workflow and collaboration to provide meaningful metrics to business leaders.\r\n<span style=\"font-weight: bold; \">Misconceptions about BPM Tools.</span> There’s a common misconception that BPM tools do not easily demonstrate their benefit to the organization. While the benefit from using BPM tools can be hard to quantify, it can be expressed more effectively in terms of business value.\r\n<span style=\"font-weight: bold; \">Process Management Tools.</span> Tools that allow process managers (those that are responsible for organizing the process or activity) to secure the resources needed to execute it, and measure the results of the activity, providing rewards or corrective feedback when necessary. Process manager tools also allows process managers to change and improve the process whenever possible.\r\n<span style=\"font-weight: bold;\">Process Modeling Tools.</span> Software tools that let managers or analysts create business process diagrams. Simple tools only support diagramming. Professional Process Modeling Tools store each model element in a database so that they can be reused on other diagrams or updated. Many business process improvement software supports simulation or code generation.<br /><br /><br />","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/BPM_-_Business_Process_Management.png","alias":"bpm-business-process-management"},"74":{"id":74,"title":"BRMS - Business Rule Management System","description":"A<span style=\"font-weight: bold; \"> BRMS (Business Rule Management System)</span> is an operating principle, practice or policy of an organisation. It has to be adhered to in order to satisfy either a required common approach to a particular event or regulatory requirements for the industry that the organisation is part of. It is a statement of truth about an organisation and is an attempt to describe the operations of an organisation, not an attempt to prescribe how an organisation should operate.\r\nBusiness Rules Management Software is a software component that is used to define, register, verify consistency, deploy, execute, monitor and manage the variety and complexity of decision logic that is used by operational systems within an organisation or enterprise. This logic, also referred to as business rules, includes policies, requirements, and conditional statements that are used to determine the tactical actions that take place in applications and systems. The BRMS software also provides the ability to define the relationships between different rules, and relate some of these rules to IT applications that are affected or need to enforce one or more of the rules.\r\nA Business Rules Management System Software acts as a central repository for business rules. Decision owners and IT employees can collaborate to develop, version, and edit rules in a single-sourced environment. A BRMS helps businesses automate tasks, improve consistency, and shorten turnaround on policy changes. BRMS vendors provide tools for developing, tracking, and editing business rules. Often, these tools support both programmers and non-programmers. Vendors also provide an engine to simulate and validate business rules before they are implemented. \r\n<p class=\"align-center\">Business Rule Management System includes, at minimum:</p>\r\n<ul><li>A repository, allowing the defined rules to be managed in terms of versions and variants and be available for reuse;</li><li>A development environment, which provides tools for both technical developers and business experts to define and manage the business rules;</li><li>A runtime environment, allowing applications to invoke business rules management and execute it using a business rules engine;</li><li>A management environment that provides the ability to not only monitor the development and runtime environments, but also manage them both.</li></ul>","materialsDescription":"<h1 class=\"align-center\">What are the business rules?</h1>\r\n<div>Business rules are statements that will guide the proper functioning of your business. BRMS rules may be simple, or more complex, even involving rules of logic. But they have the function of basically defining what, where, when, why, and how something must be done within an organization.\r\nBusiness rule management system <span style=\"font-weight: bold;\">example:</span> if your company provides 10% discounts on purchases made through your website on a customer’s birthday, that’s a business rule.\r\nThis benefit (what) should be applied on the customer’s birthday (when), needs to happen in purchases through the site (where), with a value of 10% (how) to please the customer on their day – and, who knows, maybe persuade them (why).\r\nBut you must understand that the rules are as varied as possible and must always be in accordance with the policies, objectives, and specificities of each company.\r\nThey may create advantages associated with:</div>\r\n<ul><li>Reducing costs</li><li>Making company strategies stronger;</li><li>Assisting in decision-making processes;</li><li>Providing greater process control;</li><li>Providing benefits to customers in a controlled and well-planned manner;</li><li>Increasing process agility;</li><li>Reducing problems with customer defaults.</li></ul>\r\n<h1 class=\"align-center\"><span style=\"font-weight: bold; \">Why use a Business Rules Management System?</span></h1>\r\nA BRMS empowers companies to define and maintain the rules guiding a system’s decision workflow to determine what actions are enabled in any given circumstance. With logic outside the programming code, these systems deliver a profound boost to business agility, productivity and logic accuracy—and in so doing, deliver reliable cost savings and faster rules changes when necessary.","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/BRMS_-_Business_Rule_Management_System__1_.png","alias":"brms-business-rule-management-system"},"217":{"id":217,"title":"Business-to-Business Middleware","description":" Middleware is a very broad term that can be defined as a translation layer between different applications and encompasses a number of different technologies, such as message-oriented middleware and database middleware. B2B middleware though has a narrower definition and is concerned first and foremost with routing data from a firm’s business applications to the applications of business partners such as customer, suppliers or banks.\r\nData must be extracted from the source system, which might be an ERP system or securities trading platform or an HR system whether it is an installed system or, as is increasingly the case, a cloud-based system. Data can be extracted using an API or specialized middleware supplied by the enterprise application.\r\nOnce the data has been extracted, it must be correctly formatted so that it can be shared by a completely different system. Typical standard formats are EDI or XML. However, each of these formats has specific variants specific to particular vertical industries. When the data has been formatted, it must then be transmitted to the business partner and, once again, there are a number of different network protocols such as HTTP-baaed AS1 and AS2, or FTP to support B2B integration.","materialsDescription":" <span style=\"font-weight: bold; \">What is Middleware?</span>\r\nMiddleware is the software that connects network-based requests generated by a client to the back-end data the client is requesting. It is a general term for software that serves to "glue together" separate, often complex and already existing programs.\r\nMiddleware programs come in on-premises software and cloud services, and they can be used independently or together, depending upon the use case. While cloud providers bundle middleware into cloud services suites, such as middleware as a service (MWaaS) or integration PaaS (iPaaS), industry researchers note that many businesses still choose independent middleware products that fit their specific needs.\r\n<span style=\"font-weight: bold; \">How middleware works</span>\r\nAll network-based requests are essentially attempts to interact with back-end data. That data might be something as simple as an image to display or a video to play, or it could be as complex as a history of banking transactions.\r\nThe requested data can take on many different forms and may be stored in a variety of ways, such as coming from a file server, fetched from a message queue or persisted in a database. The role of middleware is to enable and ease access to those back-end resources.\r\n<span style=\"font-weight: bold;\">Middleware categories</span>\r\nIn general, IT industry analysts -- such as Gartner Inc. and Forrester Research -- put middleware into two categories: enterprise integration middleware and platform middleware.\r\n<ul><li>Enterprise application integration middleware enables programmers to create business applications without having to custom-craft integrations for each new application. Here, middleware helps software and services components work together, providing a layer of functionality for data consistency and multi-enterprise or B2B integration. Typically, integration middleware provides messaging services, so different applications can communicate using messaging frameworks like Simple Object Access Protocol (SOAP), web services, Representational State Transfer (REST) or JavaScript Object Notation (JSON). Other middleware technologies used in this category include Object Request Brokers (ORBs), data representation technologies like XML and JavaScript Object Notation (JSON), and more.</li></ul>\r\nBusinesses can purchase individual middleware products or on-premises or cloud-based application integration suites.\r\n<ul><li>Platform middleware supports software development and delivery by providing a runtime hosting environment, such as a container, for application program logic. Its primary components are in-memory and enterprise application servers, as well as web servers and content management. Middleware includes web servers, application servers, content management systems and similar tools that support application development and delivery. Generally, embedded or external communications middleware allows different communications tools to work together. These communications tools enable application and service interaction. Resource management services, such as Microsoft Azure Resource Manager, host application program logic at runtime, another key function in platform middleware. Other components include Trusted Platform Modules (TPMs) and in-memory data grids (IMDGs).</li></ul>\r\nPlatform middleware products are also available as specific on-premises or cloud service tools, as well as multitool suites. On a cloud suite site, middleware as a service offers an integrated set of platform tools and the runtime environment.","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/Business-to-Business_Middleware.png","alias":"business-to-business-middleware"},"219":{"id":219,"title":"Event-Driven Middleware","description":" Event management software is the generic term for a wide range of software products that are used in the management of professional and academic conferences, trade exhibitions, conventions and smaller events such as Continuing Professional Development (CPD) meetings.\r\nThe most common event management applications are:\r\n<ul><li>Event schedule planning</li><li>Customized event website creation</li><li>Online event registration, ticketing and delegate management including online payment</li><li>Event budgeting</li><li>Lead retrieval</li><li>Venue selection</li><li>Event Marketing</li><li>Event Networking for attendee engagement</li><li>Procurement, sourcing and RFPs</li><li>Content management including abstract and/or paper management, reviewing, programme development and publishing</li><li>Exhibition management including floor planning, booking and billing</li><li>On-site operations including registration, badges and networking</li><li>Audience response solutions, live slide sharing and second screen tools as live polls, Q+A, etc.</li></ul>","materialsDescription":" <span style=\"font-weight: bold;\">What is the event-driven architecture?</span>\r\nThe event-driven architecture is a software architecture and model for application design. With an event-driven system, the capture, communication, processing, and persistence of events are the core structure of the solution. This differs from a traditional request-driven model.\r\nAn event is any significant occurrence or change in state for system hardware or software. An event is not the same as an event notification, which is a message or notification sent by the system to notify another part of the system that an event has taken place. \r\nThe source of an event can be from internal or external inputs. Events can generate from a user, like a mouse click or keystroke, an external source, such as a sensor output, or come from the system, like loading a program.\r\nMany modern application designs are event-driven. Event-driven apps can be created in any programming language because event-driven is a programming approach, not a language. The event-driven architecture enables minimal coupling, which makes it a good option for modern, distributed application architectures.\r\nAn event-driven architecture is loosely coupled because event producers don’t know which event consumers are listening for an event, and the event doesn’t know what the consequences are of its occurrence.\r\n<span style=\"font-weight: bold;\">How does event-driven architecture work?</span>\r\nThe event-driven architecture is made up of event producers and event consumers. An event producer detects or senses an event and represents the event as a message. It does not know the consumer of the event or the outcome of an event.\r\nAfter an event has been detected, it is transmitted from the event producer to the event consumers through event channels, where an event processing platform processes the event asynchronously. Event consumers need to be informed when an event has occurred. They might process the event or may only be impacted by it.\r\nThe event processing platform will execute the correct response to an event and send the activity downstream to the right consumers. This downstream activity is where the outcome of an event is seen.\r\n<span style=\"font-weight: bold;\">What are the benefits of event-driven architecture?</span>\r\nAn event-driven architecture can help organizations achieve a flexible system that can adapt to changes and make decisions in real-time. Real-time situational awareness means that business decisions, whether manual or automated, can be made using all of the available data that reflects the current state of your systems.\r\nEvents are captured as they occur from event sources such as Internet of Things (IoT) devices, applications, and networks, allowing event producers and event consumers to share status and response information in real-time.\r\nOrganizations can add event-driven architecture to their systems and applications to improve the scalability and responsiveness of applications and access to the data and context needed for better business decisions.","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/Event-Driven_Middleware.png","alias":"event-driven-middleware"},"221":{"id":221,"title":"Process Automation Middleware","description":" At the current level of development, process automation is one of the approaches to process management based on the use of information technology. This approach allows the management of operations, data, information and resources through the use of computers and software that reduce the degree of human participation in the process, or completely eliminate it.\r\nThe main goal of automation is to improve the quality of the process. An automated process has more stable characteristics than a manual process. In many cases, process automation can increase productivity, reduce process execution time, reduce cost, increase accuracy and stability of operations.\r\nTo date, process automation has covered many industries and areas of activity: from manufacturing processes to shopping in stores. Regardless of the size and scope of the organization, almost every company has automated processes. The process approach provides for all processes the same principles of automation.\r\nDespite the fact that process automation can be performed at various levels, the principles of automation for all levels and all types of processes will remain the same. These are general principles that set the conditions for the efficient execution of processes in automatic mode and establish rules for automatic process control.\r\nThe basic principles of process automation are: the principle of consistency, the principle of integration, the principle of independence of execution. These general principles are detailed depending on the level of automation under consideration and specific processes. For example, automation of production processes includes principles such as the principle of specialization, the principle of proportionality, the principle of continuity, etc.","materialsDescription":" <span style=\"font-weight: bold; \">What are the levels of process automation?</span>\r\nProcess automation is needed to support management at all levels of the company hierarchy. In this regard, the levels of automation are determined depending on the level of control at which the automation of processes is performed.\r\nManagement levels are usually divided into operational, tactical and strategic.\r\nIn accordance with these levels, automation levels are also distinguished:\r\n<ul><li><span style=\"font-style: italic; \"><span style=\"font-weight: bold; \">Lower level of automation or level of performers.</span></span> At this level, automation of regularly running processes is carried out. Automation of processes is aimed at performing operational tasks (for example, executing a production process), maintaining established parameters (for example, autopilot operation), and maintaining certain operating modes (for example, temperature conditions in a gas boiler).</li><li><span style=\"font-style: italic; \"><span style=\"font-weight: bold; \">Production management level or tactical level.</span></span> Automation of processes of this level ensures the distribution of tasks between various processes of the lower level. Examples of such processes are production management processes (production planning, service planning), processes of managing resources, documents, etc.</li><li><span style=\"font-style: italic; \"><span style=\"font-weight: bold; \">Enterprise management level or strategic level.</span></span> Automation of the processes of the enterprise management level provides the solution of analytical and forecast tasks. This level of automation is necessary to support the work of top management of the organization. It is aimed at financial, economic and strategic management.</li></ul>\r\nAutomation of processes at each of these levels is provided through the use of various automation systems (CRM systems, ERP systems, OLAP systems, etc.). All automation systems can be divided into three basic types.\r\nTypes of automation systems include:\r\n<ul><li><span style=\"font-style: italic; \"><span style=\"font-weight: bold; \">immutable systems.</span></span> These are systems in which the sequence of actions is determined by the configuration of the equipment or process conditions and cannot be changed during the process.</li><li><span style=\"font-style: italic; \"><span style=\"font-weight: bold; \">programmable systems.</span></span> These are systems in which the sequence of actions may vary depending on a given program and process configuration. The selection of the necessary sequence of actions is carried out through a set of instructions that can be read and interpreted by the system.</li><li><span style=\"font-style: italic; \"><span style=\"font-weight: bold; \">flexible (self-adjusting) systems.</span></span> These are systems that are able to carry out the selection of necessary actions in the process of work. Changing the configuration of the process (sequence and conditions of operations) is based on information about the process.</li></ul>\r\nThese types of systems can be applied at all levels of process automation individually or as part of a combined system.\r\n<span style=\"font-weight: bold; \">What are the types of automated processes?</span>\r\nIn each sector of the economy, there are enterprises and organizations that produce products or provide services. All these enterprises can be divided into three groups, depending on their “remoteness” in the natural resource processing chain.\r\nThe first group of enterprises is enterprises that extract or produce natural resources. Such enterprises include, for example, agricultural producers, oil and gas companies.\r\nThe second group of enterprises is enterprises that process natural raw materials. They make products from raw materials mined or produced by enterprises of the first group. Such enterprises include, for example, automobile industry enterprises, steel enterprises, electronic industry enterprises, power plants, etc.\r\nThe third group is service enterprises. Such organizations include, for example, banks, educational institutions, medical institutions, restaurants, etc.\r\nFor all enterprises, we can distinguish common groups of processes associated with the production of products or the provision of services.\r\nThese processes include:\r\n<ul><li>business processes;</li><li>design and development processes;</li><li>production processes;</li><li>control and analysis processes.</li></ul>\r\n<span style=\"font-weight: bold;\">What are the benefits of process automation?</span>\r\nProcess automation can significantly improve the quality of management and product quality. With the implementation of the QMS, automation gives a significant effect and enables the organization to significantly improve its work. However, before deciding on process automation, it is necessary to evaluate the benefits of running processes in an automatic mode.\r\nTypically, process automation provides the following benefits:\r\n<ul><li><span style=\"font-style: italic;\"><span style=\"font-weight: bold;\">the speed of completing repetitive tasks increases.</span></span> Due to the automatic mode, the same tasks can be completed faster because automated systems are more accurate in operations and are not prone to a decrease in performance from the time of work.</li><li><span style=\"font-style: italic;\"><span style=\"font-weight: bold;\">quality of work increases.</span></span> The exclusion of the human factor significantly reduces variations in the execution of the process, which leads to a decrease in the number of errors and, accordingly, increases the stability and quality of the process.</li><li><span style=\"font-style: italic;\"><span style=\"font-weight: bold;\">increases control accuracy.</span></span> Due to the use of information technology in automated systems, it becomes possible to save and take into account a greater amount of process data than with manual control.</li><li><span style=\"font-style: italic;\"><span style=\"font-weight: bold;\">parallel tasks.</span></span> Automated systems allow you to perform several actions at the same time without loss of quality and accuracy. This speeds up the process and improves the quality of the results.</li><li><span style=\"font-style: italic;\"><span style=\"font-weight: bold;\">quick decision making in typical situations.</span></span> In automated systems, decisions related to typical situations are made much faster than with manual control. This improves the performance of the process and avoids inconsistencies in subsequent stages.</li></ul>","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/Process_Automation_Middleware.png","alias":"process-automation-middleware"},"225":{"id":225,"title":"End-User Query, Reporting, and Analysis","description":" Class systems of Query & Reporting are designed to form queries to information systems in user terms, as well as their execution, integration of data from different sources, viewing data with the possibilities of detailing and summarizing and building full-fledged reports, both on-screen and printed. Visualization of query results can be presented to the user in various forms - flat or multidimensional tables, graphs, charts, various specialized interfaces.\r\nEnd-user tools for querying and building reports are delivered in two ways:\r\n<ul><li>as part of OLAP-systems</li><li>in the form of specialized Query & Reporting</li></ul>\r\nVirtually every OLAP class system is equipped with Query & Reporting. These funds can be either embedded in the main product or separated into a separate product.\r\nThere are also specialized systems for generating and distributing reports. At the same time, these systems incorporate their own OLAP-means. Therefore, to draw a clear line between OLAP-systems and systems of class Query & Reporting is almost impossible.","materialsDescription":" <span style=\"font-weight: bold; \">What are the reporting tools?</span>\r\nReporting tools are widely used to support decision making and to measure organizational and team performance. Companies use them for financial consolidation, for evaluation of strategies and policies and often just for plain reporting. Today most of these tools are integrated with Business Intelligence tools.\r\n<span style=\"font-weight: bold; \">What are the advantages of these tools for your organization?</span>\r\nReporting tools allow companies to create attractive reports easily. In tabular or graphical format. With data from Excel, a data warehouse or the organization’s ERP system. With the reports containing the right information, people are able to manage and improve the business processes more easily.\r\n<span style=\"font-weight: bold; \">Which reporting tools are available in the market?</span>\r\nThere are many Business Intelligence Reporting tools in the market available. This list of reporting tools shows you a complete overview of all the major tools currently available and thoroughly studied by our industry analysts. To name a few: Cognos Query and reporting, Oracle Enterprise Reporting, Crystal Reports, Microsoft Reporting Services (SSRS), etc.\r\n<span style=\"font-weight: bold; \">Is there a difference between reporting tools and BI tools?</span>\r\nAlmost every company, large or small, needs a reporting tool or they have already one in place. But, what is the difference between reporting software and Business Intelligence tools? They are not the same. In general reporting tools tell us where we have been but are not very good at analyzing data (at real time) and telling us where we are going (predictive).\r\n<span style=\"font-weight: bold;\">What is the difference between a query and a report?</span>\r\nA query is a way to create a list of accounts or journal entries that match your criteria. Requests serve as an advanced search engine that finds and groups accounts or journal entries and can only create a list.\r\nA report is a detailed report of a group of accounts or journal entries. Reports analyze data and are designed to calculate and present data in a more formal form.\r\nTypically, a query finds information in the database for you, and a report is a more powerful way to display and analyze information about the accounts or log entries you want to view.","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/End-User_Query__Reporting__and_Analysis.png","alias":"end-user-query-reporting-and-analysis"},"227":{"id":227,"title":"Advanced Analytics Software","description":" <span style=\"font-weight: bold;\">Advanced analytics</span> is a part of data science that uses high-level methods and tools to focus on projecting future trends, events, and behaviors. This gives organizations the ability to perform advanced statistical models such as ‘what-if’ calculations, as well as future-proof various aspects of their operations.\r\nThe term is an umbrella for several sub-fields of analytics that work together in their predictive capabilities.\r\nThe major areas that make up advanced analytics are predictive data analytics, big data, and data mining. The process of advanced analytics includes all three areas at various times.\r\n<span style=\"font-weight: bold;\">Data mining</span> is a key aspect of advanced analytics, providing the raw data that will be used by both big data and predictive analytics. <span style=\"font-weight: bold;\">Big data analytics</span> are useful in finding existing insights and creating connections between data points and sets, as well as cleaning data.\r\nFinally, <span style=\"font-weight: bold;\">predictive analytics</span> can use these clean sets and existing insights to extrapolate and make predictions and projections about future activity, trends, and consumer behaviors.\r\nAdvanced analytics also include newer technologies such as machine learning and artificial intelligence, semantic analysis, visualizations, and even neural networks. Taken together, they help advanced analytics software create an accurate enough canvas to make reliable predictions and generate actionable BI insights on a deeper level.","materialsDescription":"<h1 class=\"align-center\">A list of tips on how to manage the process of building an advanced analytics program</h1>\r\n<ul><li>Start with a proof-of-concept project to demonstrate the potential business value of analytics applications.</li><li>Take training seriously. New data management and analytics skills likely will be needed, especially if big data platforms and tools like SAS advanced analytics tools are involved.</li><li>Develop processes to ensure that business units are ready to act on analytical findings so the work of data scientists and other analysts doesn't go to waste.</li><li>Monitor and assess advanced and predictive analytics software on a regular basis to make sure the data being analyzed is still relevant and the analytical models being run against it are still valid.</li></ul>\r\n<h1 class=\"align-center\">Advanced analytics tools</h1>\r\nThere are a variety of advanced analytics tools to choose from that offer different advantages based on the use case. They generally break down into two categories: open source and proprietary.\r\nOpen source tools have become a go-to option for many data scientists doing machine learning and prescriptive analytics. They include programming languages, as well as computing environments, including Hadoop and Spark. Users typically say they like open source advanced analytics tools because they are generally inexpensive to operate, offer strong functionality and are backed by a user community that continually innovates the tools.\r\nOn the proprietary side, vendors including Microsoft, IBM and the SAS Institute all offer advanced analytics tools. Most require a deep technical background and understanding of mathematical techniques.\r\nIn recent years, however, a crop of self-service analytics tools has matured to make functionality more accessible to business users. Tableau, in particular, has become a common tool. While its functionality is more limited than deeper technical tools, it does enable users to conduct cluster analyses and other advanced analyses.","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/Advanced_Analytics_Software.png","alias":"advanced-analytics-software"},"229":{"id":229,"title":"Spatial Information Management Software","description":" A spatial database is a database that is optimized for storing and querying data that represents objects defined in a geometric space. Most spatial databases allow the representation of simple geometric objects such as points, lines and polygons. Some spatial databases handle more complex structures such as 3D objects, topological coverages, linear networks, and TINs. While typical databases have developed to manage various numeric and character types of data, such databases require additional functionality to process spatial data types efficiently, and developers have often added geometry or feature data types. The Open Geospatial Consortium (OGC) developed the Simple Features specification (first released in 1997) and sets standards for adding spatial functionality to database systems. The SQL/MM Spatial ISO/IEC standard is a part the SQL/MM multimedia standard and extends the Simple Features standard with data types that support circular interpolations.\r\nA geodatabase (also geographical database and geospatial database) is a database of geographic data, such as countries, administrative divisions, cities, and related information. Such databases can be useful for websites that wish to identify the locations of their visitors for customization purposes.\r\nDatabase systems use indexes to quickly look up values; however, this way of indexing data is not optimal for spatial queries. Instead, spatial databases use a spatial index to speed up database operations.\r\nIn addition to typical SQL queries such as SELECT statements, spatial databases can perform a wide variety of spatial operations. The following operations and many more are specified by the Open Geospatial Consortium standard:\r\n<ul><li>Spatial Measurements: Computes line length, polygon area, the distance between geometries, etc.</li><li>Spatial Functions: Modify existing features to create new ones, for example by providing a buffer around them, intersecting features, etc.</li><li>Spatial Predicates: Allows true/false queries about spatial relationships between geometries. Examples include "do two polygons overlap" or 'is there a residence located within a mile of the area we are planning to build the landfill?'</li><li>Geometry Constructors: Creates new geometries, usually by specifying the vertices (points or nodes) which define the shape.</li><li>Observer Functions: Queries which return specific information about a feature such as the location of the center of a circle.</li></ul>\r\nSome databases support only simplified or modified sets of these operations, especially in cases of NoSQL systems like MongoDB and CouchDB.","materialsDescription":"<span style=\"font-weight: bold;\">What is the spatial index?</span>\r\nSpatial indices are used by spatial databases (databases which store information related to objects in space) to optimize spatial queries. Conventional index types do not efficiently handle spatial queries such as how far two points differ, or whether points fall within a spatial area of interest. Common spatial index methods include:\r\n<ul><li>Geohash</li><li>HHCode</li><li>Grid (spatial index)</li><li>Z-order (curve)</li><li>Quadtree</li><li>Octree</li><li>UB-tree</li><li>R-tree: Typically the preferred method for indexing spatial data.[citation needed] Objects (shapes, lines and points) are grouped using the minimum bounding rectangle (MBR). Objects are added to an MBR within the index that will lead to the smallest increase in its size.</li><li>R+ tree</li><li>R* tree</li><li>Hilbert R-tree</li><li>X-tree</li><li>kd-tree</li><li>m-tree – an m-tree index can be used for the efficient resolution of similarity queries on complex objects as compared using an arbitrary metric.</li><li>Binary space partitioning (BSP-Tree): Subdividing space by hyperplanes.</li></ul>","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/Spatial_Information_Management_Software.png","alias":"spatial-information-management-software"},"231":{"id":231,"title":"Deployment-Centric Application Platforms","description":" Deployment-centric application platforms are driving benefits for organizations embarking on their digital transformation journey.\r\nAs demand for applications increases, businesses need to make sure they have an effective application development platform in place to help them continue to capitalize on the benefits they can provide and meet customer demand. This platform has an integrated development environment that provides tools that allow the developer to program, test and implement applications.","materialsDescription":" <span style=\"font-weight: bold;\">What is software deployment?</span>\r\nSoftware deployment is all of the activities that make a software system available for use.\r\nThe general deployment process consists of several interrelated activities with possible transitions between them. These activities can occur at the producer side or on the consumer side or both. Because every software system is unique, the precise processes or procedures within each activity can hardly be defined. Therefore, "deployment" should be interpreted as a general process that has to be customized according to specific requirements or characteristics.","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/Deployment-Centric_Application_Platforms.png","alias":"deployment-centric-application-platforms"},"233":{"id":233,"title":"Transaction Processing Monitors","description":" <span style=\"font-weight: bold; \">A transaction processing monitor (TPM)</span> is a program that monitors transactions from one stage to the next, ensuring that each one completes successfully; if not, or if an error occurs, the TM Monitor takes the appropriate action. A transaction processing monitor’s main purpose/objective is to allow resource sharing and assure optimal use of the resources by applications. This term is sometimes shortened to TP monitor.\r\nA transaction processing monitor is critical in multi-tier architectures. With processes running on different platforms, a given transaction may be forwarded to any one of several servers. Generally, the TP monitor handles all load balancing. After completing each transaction, the TPM can process another transaction without being influenced by the prior transaction. In other words the TPM model essentially is stateless.\r\n<p class=\"align-center\"><span style=\"font-weight: bold; \">Transaction Processing Monitor architecture</span></p>\r\n<p class=\"align-left\">In the TP Monitor Architecture, ACID transactions are initiated by a Begin-Transaction call and terminated by either a Commit-Transaction or an Abort-Transaction call. When initiated, each transaction is assigned a unique identiier and entered into a transaction table managed by the Transaction Manager. Each entry in the transaction table contains the transaction identiier (TRID), the transaction status, and other information. When a transaction calls a transaction control operation, such as Commit-Transaction, the Transaction Manager is responsible for carrying out the execution of the command and recording information in the transaction table. </p>\r\n<ul><li><span style=\"font-weight: bold; \">Process per client model</span> - instead of individual login session per terminal, server process communicates with the terminal, handles authentication, and executes actions.</li><li><span style=\"font-weight: bold; \">Single process model</span> - all remote terminals connect to a single server process. Used in client-server environments.</li><li><span style=\"font-weight: bold; \">Many-server single-router model</span> - multiple application server processes access a common database; clients communicate with the application through a single communication process that routes requests.</li><li><span style=\"font-weight: bold; \">Many server many-router model</span> - multiple processes communicate with clients.</li></ul>\r\n<p class=\"align-left\"><span style=\"font-weight: bold;\">In general, a TPM provides the following functionality:</span></p>\r\n<ul><li>Coordinating resources</li><li>Balancing loads</li><li>Creating new processes as/when needed</li><li>Providing secure access to services</li><li>Routing services</li><li>Wrapping data messages into messages</li><li>Unwrapping messages into data packets/structures</li><li>Monitoring operations/transactions</li><li>Managing queues</li><li>Handling errors through such actions as process restarting</li><li>Hiding interprocess communications details from programmers</li></ul>\r\n<br /><br /><br />\r\n\r\n\r\n","materialsDescription":"<h1 class=\"align-center\">Advantages of TP Monitors </h1>\r\nComplex applications are often built on top of several resource managers (such as DBMSs, operating systems, user interfaces, and messaging software). A TPM is a middleware component that provides access to the services of a number of resource managers and provides a uniform interface for programmers who are developing transactional software. \r\n<ul><li>Transaction routing the TP Monitor can increase scalability by directing transactions to specific DBMSs. </li><li> Managing distributed transactions the TP Monitor can manage transactions that require access to data held in multiple, possibly heterogeneous, DBMSs. For example, a transaction my require to update data items held in an Oracle DBMS at site 1, an Informix DBMS at site 2,and an IMS DBMS at site 3. TP Monitors normally control transactions using the X/Open Distributed Transactions Processing (DTP) standard. A DBMS that supports this standard can function as a resource manager under the control of a TP Monitor acting as a transaction manager.</li><li> Load balancing the TP Monitor can balance client requests across multiple DBMSs on one or more computers by directing client service calls to the least loaded server. In addition, it can dynamically bring in additional DBMSs as required to provide the necessary performance.</li><li>Funnelling in environments with a large number of users, it may sometimes be difficult for all users to be logged on simultaneously to the DBMS. In many cases, we would find that users generally do not need continuous access to the DBMS. Instead of each user connecting to the DBMS, the TP Monitor can establish connections with the DBMSs as and when required, and can funnel user requests through these connections. This allows a larger number of users to access the available DBMSs with a potentially much smaller number of connections, which in turn would mean less resource usage. </li><li> Increased reliability the TP Monitor acts as a transaction manager, performing the necessary actions to maintain the consistency of the database, with the DBMS acting as a resource manager. If the DBMS fails, the TP Monitor may be able to resubmit the transaction to another DBMS or can hold the transaction until the DBMS becomes available again.</li></ul>\r\nTP Monitors are typically used in environments with a very high volume of transactions, where the TP Monitor can be used to offload processes from the DBMS server. Prominent examples of TP Monitors include CICS and Encina from IBM (which are primarily used on IBM AIX or Windows NT and bundled now in the IBM TXSeries) and Tuxedo from BEA Systems.\r\n\r\n","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/Transaction_Processing_Monitors.png","alias":"transaction-processing-monitors"},"239":{"id":239,"title":"Relational Database Management Systems","description":" Relational Database Management System (RDBMS) is a DBMS designed specifically for relational databases. Therefore, RDBMSes are a subset of DBMSes.\r\nA relational database refers to a database that stores data in a structured format, using rows and columns. This makes it easy to locate and access specific values within the database. It is "relational" because the values within each table are related to each other. Tables may also be related to other tables. The relational structure makes it possible to run queries across multiple tables at once.\r\nWhile a relational database describes the type of database an RDMBS manages, the RDBMS refers to the database program itself. It is the software that executes queries on the data, including adding, updating, and searching for values.\r\nAn RDBMS may also provide a visual representation of the data. For example, it may display data in a tables like a spreadsheet, allowing you to view and even edit individual values in the table. Some relational database softwareallow you to create forms that can streamline entering, editing, and deleting data.\r\nMost well known DBMS applications fall into the RDBMS category. Examples include Oracle Database, MySQL, Microsoft SQL Server, and IBM DB2. Some of these programs support non-relational databases, but they are primarily used for relational database management.\r\nExamples of non-relational databases include Apache HBase, IBM Domino, and Oracle NoSQL Database. These type of databases are managed by other DMBS programs that support NoSQL, which do not fall into the RDBMS category.\r\nElements of the relational DBMS that overarch the basic relational database are so intrinsic to operations that it is hard to dissociate the two in practice.\r\nThe most basic features of RDBMS are related to create, read, update and delete operations, collectively known as CRUD. They form the foundation of a well-organized system that promotes consistent treatment of data.\r\nThe RDBMS typically provides data dictionaries and metadata collections useful in data handling. These programmatically support well-defined data structures and relationships. Data storage management is a common capability of the RDBMS, and this has come to be defined by data objects that range from binary large object (blob) strings to stored procedures. Data objects like this extend the scope of basic relational database operations and can be handled in a variety of ways in different RDBMSes.\r\nThe most common means of data access for the RDBMS is via SQL. Its main language components comprise data manipulation language (DML) and data definition language (DDL) statements. Extensions are available for development efforts that pair SQL use with common programming languages, such as COBOL (Common Business-Oriented Language), Java and .NET.\r\nRDBMSes use complex algorithms that support multiple concurrent user access to the database, while maintaining data integrity. Security management, which enforces policy-based access, is yet another overlay service that the RDBMS provides for the basic database as it is used in enterprise settings.\r\nRDBMSes support the work of database administrators (DBAs) who must manage and monitor database activity. Utilities help automate data loading and database backup. RDBMS systems manage log files that track system performance based on selected operational parameters. This enables measurement of database usage, capacity and performance, particularly query performance. RDBMSes provide graphical interfaces that help DBAs visualize database activity.\r\nRelational database management systems are central to key applications, such as banking ledgers, travel reservation systems and online retailing. As RDBMSes have matured, they have achieved increasingly higher levels of query optimization, and they have become key parts of reporting, analytics and data warehousing applications for businesses as well. \r\nRDBMSes are intrinsic to operations of a variety of enterprise applications and are at the center of most master data management (MDM) systems.<br /><br />","materialsDescription":"<h1 class=\"align-center\"> <span style=\"font-weight: normal;\">What are the advantages of a Relational Database Management System?</span></h1>\r\nA Relational Database Management System (RDBMS) is a software system that provides access to a relational database. The software system is a collection of software applications that can be used to create, maintain, manage and use the database. A "relational database" is a database structured on the "relational" model. Data are stored and presented in a tabular format, organized in rows and columns with one record per row.\r\n\r\n<ul><li><span style=\"font-weight: bold;\">Data Structure.</span> The table format is simple and easy for database users to understand and use. Relational database management software provide data access using a natural structure and organization of the data. Database queries can search any column for matching entries.</li></ul>\r\n<dl></dl>\r\n<ul><li><span style=\"font-weight: bold;\">Multi-User Access.</span> RDBMS database program allow multiple database users to access a database simultaneously. Built-in locking and transactions management functionality allow users to access data as it is being changed, prevents collisions between two users updating the data, and keeps users from accessing partially updated records.</li></ul>\r\n\r\n<ul><li><span style=\"font-weight: bold;\">Privileges. </span>Authorization and privilege control features in an RDBMS allow the database administrator to restrict access to authorized users, and grant privileges to individual users based on the types of database tasks they need to perform. Authorization can be defined based on the remote client IP address in combination with user authorization, restricting access to specific external computer systems.</li></ul>\r\n\r\n<ul><li><span style=\"font-weight: bold;\">Network Access.</span> RDBMSs provide access to the database through a server daemon, a specialized software program that listens for requests on a network, and allows database clients to connect to and use the database. Users do not need to be able to log in to the physical computer system to use the database, providing convenience for the users and a layer of security for the database. Network access allows developers to build desktop tools and Web applications to interact with databases.</li></ul>\r\n\r\n<ul><li><span style=\"font-weight: bold;\">Speed.</span> The relational database model is not the fastest data structure. RDBMS software advantages, such as simplicity, make the slower speed a fair trade-off. Optimizations built into an RDBMS, and the design of the databases, enhance performance, allowing RDBMSs to perform more than fast enough for most applications and data sets. Improvements in technology, increasing processor speeds and decreasing memory and storage costs allow systems administrators to build incredibly fast systems that can overcome any database performance shortcomings.</li></ul>\r\n\r\n<ul><li><span style=\"font-weight: bold;\">Maintenance. </span>RDBMSs feature maintenance utilities that provide database administrators with tools to easily maintain, test, repair and back up the databases housed in the system. Many of the functions can be automated using built-in automation in the RDBMS, or automation tools available on the operating system.</li></ul>\r\n\r\n<ul><li><span style=\"font-weight: bold;\">Language.</span> RDBMSs support a generic language called "Structured Query Language" (SQL). The SQL syntax is simple, and the language uses standard English language keywords and phrasing, making it fairly intuitive and easy to learn. Many RDBMSs add non-SQL, database-specific keywords, functions and features to the SQL language.</li></ul>\r\n\r\n","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/Relational_Database_Management_Systems.png","alias":"relational-database-management-systems"},"240":{"id":240,"title":"Non-relational Database Management Systems","description":" A non-relational database is a database that does not incorporate the table/key model that relational database management systems (RDBMS) promote. These kinds of databases require data manipulation techniques and processes designed to provide solutions to big data problems that big companies face. The most popular emerging non-relational database is called NoSQL (Not Only SQL).\r\nMost non-relational databases are incorporated into websites such as Google, Yahoo!, Amazon and Facebook. These websites introduce a slew of new applications every single day with millions and millions of users, so they would not be able to handle large traffic spikes with existing RDBMS solutions. Since RDBMS cannot handle the problem, they’ve switched to a new kind of DBMS that is capable of handling Web-scale data in a non-relational way.<br /><br />An interesting aspect of a non-relational database such as NoSQL is scalability. NoSQL uses the BASE system (basically available, soft-state, eventually consistent). Non-relational databases forgo the table form of rows and columns relational databases use in favor of specialized frameworks to store data, which can be accessed by special query APIs. Persistence is an important element in these databases. To enable fast throughput of vast amounts of data the best option for performance is "in memory," rather than reading and writing from disks.<br /><br />Relational databases use the ACID system, which ensures consistency of data in all situations of data management but obviously takes longer to process because of all those relations and its branching nature. However, the BASE system loosened up the requirements on consistency to achieve better availability and partitioning for better scalability.","materialsDescription":" <span style=\"font-weight: bold; \">What are NoSQL databases?</span>\r\nNoSQL databases are purpose built for specific data models and have flexible schemas for building modern applications. NoSQL databases are widely recognized for their ease of development, functionality, and performance at scale. They use a variety of data models, including document, graph, key-value, in-memory, and search. This page includes resources to help you better understand NoSQL databases and to get started.\r\n<span style=\"font-weight: bold; \">How Does a NoSQL (nonrelational) Database Work?</span>\r\nNoSQL databases use a variety of data models for accessing and managing data, such as document, graph, key-value, in-memory, and search. These types of databases are optimized specifically for applications that require large data volume, low latency, and flexible data models, which are achieved by relaxing some of the data consistency restrictions of other databases.\r\nConsider the example of modeling the schema for a simple book database:\r\n<ul><li>In a relational database, a book record is often dissembled (or “normalized”) and stored in separate tables, and relationships are defined by primary and foreign key constraints. In this example, the Books table has columns for ISBN, Book Title, and Edition Number, the Authors table has columns for AuthorID and Author Name, and finally the Author-ISBN table has columns for AuthorID and ISBN. The relational model is designed to enable the database to enforce referential integrity between tables in the database, normalized to reduce the redundancy, and generally optimized for storage.</li><li>In a NoSQL database, a book record is usually stored as a JSON document. For each book, the item, ISBN, Book Title, Edition Number, Author Name, and AuthorID are stored as attributes in a single document. In this model, data is optimized for intuitive development and horizontal scalability.</li></ul>\r\n<span style=\"font-weight: bold; \">Why should you use a NoSQL database?</span>\r\nNoSQL databases are a great fit for many modern applications such as mobile, web, and gaming that require flexible, scalable, high-performance, and highly functional databases to provide great user experiences.\r\n<ul><li><span style=\"font-weight: bold; \">Flexibility:</span> NoSQL databases generally provide flexible schemas that enable faster and more iterative development. The flexible data model makes NoSQL databases ideal for semi-structured and unstructured data.</li><li><span style=\"font-weight: bold; \">Scalability:</span> NoSQL databases are generally designed to scale out by using distributed clusters of hardware instead of scaling up by adding expensive and robust servers. Some cloud providers handle these operations behind-the-scenes as a fully managed service.</li><li><span style=\"font-weight: bold; \">High-performance:</span> NoSQL database are optimized for specific data models (such as document, key-value, and graph) and access patterns that enable higher performance than trying to accomplish similar functionality with relational databases.</li><li><span style=\"font-weight: bold; \">Highly functional:</span> NoSQL databases provide highly functional APIs and data types that are purpose built for each of their respective data models.</li></ul>\r\n<span style=\"font-weight: bold;\">What are the types of NoSQL Databases?</span>\r\n<ul><li><span style=\"font-weight: bold;\">Key-value:</span> Key-value databases are highly partitionable and allow horizontal scaling at scales that other types of databases cannot achieve. Use cases such as gaming, ad tech, and IoT lend themselves particularly well to the key-value data model.</li><li><span style=\"font-weight: bold;\">Document:</span> In application code, data is represented often as an object or JSON-like document because it is an efficient and intuitive data model for developers. Document databases make it easier for developers to store and query data in a database by using the same document model format that they use in their application code. The flexible, semistructured, and hierarchical nature of documents and document databases allows them to evolve with applications’ needs. The document model works well with catalogs, user profiles, and content management systems where each document is unique and evolves over time.</li><li><span style=\"font-weight: bold;\">Graph:</span> A graph database’s purpose is to make it easy to build and run applications that work with highly connected datasets. Typical use cases for a graph database include social networking, recommendation engines, fraud detection, and knowledge graphs.</li><li><span style=\"font-weight: bold;\">In-memory:</span> Gaming and ad-tech applications have use cases such as leaderboards, session stores, and real-time analytics that require microsecond response times and can have large spikes in traffic coming at any time. Amazon ElastiCache offers Memcached and Redis, to serve low-latency, high-throughput workloads, such as McDonald’s, that cannot be served with disk-based data stores.</li><li><span style=\"font-weight: bold;\">Search:</span> Many applications output logs to help developers troubleshoot issues.</li></ul>","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/Nonrelational_Database_Management_Systems1.png","alias":"non-relational-database-management-systems"},"243":{"id":243,"title":"Database Development and Management Tools","description":" Many companies create various multi-functional applications to facilitate the management, development and administration of databases.\r\nMost relational databases consist of two separate components: a “back-end” where data is stored and a “front-end” —a user interface for interacting with data. This type of design is smart enough, as it parallels a two-level programming model that separates the data layer from the user interface and allows you to concentrate the software market directly on improving its products. This model opens doors for third parties who create their own applications for interacting with various databases.\r\nDatabase development tools can be used to create varieties of the following programs:\r\n<ul><li>client programs;</li><li>database servers and their individual components;</li><li>custom applications.</li></ul>\r\nThe programs of the first and second types are rather small since they are intended mainly for system programmers. The third type packages are much larger, but smaller than full-featured DBMS.\r\nThe development tools for custom applications include programming systems, various program libraries for various programming languages, and development automation packages (including client-server systems).<br />Database management system, abbr. DBMS (Eng. Database Management System, abbr. DBMS) - a set of software and linguistic tools for general or special purposes, providing management of the creation and use of databases.\r\nDBMS - a set of programs that allow you to create a database (DB) and manipulate data (insert, update, delete and select). The system ensures the safety, reliability of storage and data integrity, as well as provides the means to administer the database.","materialsDescription":" <span style=\"font-weight: bold;\">The main functions of the DBMS:</span>\r\n<ul><li>data management in external memory (on disk);</li><li>data management in RAM using disk cache;</li><li>change logging, backup and recovery of databases after failures;</li><li>support for database languages (data definition language, data manipulation language).</li></ul>\r\n<span style=\"font-weight: bold;\">The composition of the DBMS:</span>\r\nUsually, a modern DBMS contains the following components:\r\n<ul><li>the core, which is responsible for managing data in external and RAM and logging;</li><li>database language processor, which provides the optimization of requests for the extraction and modification of data and the creation, as a rule, of a machine-independent executable internal code;</li><li>a run-time support subsystem that interprets data manipulation programs that create a user interface with a DBMS;<br />service programs (external utilities) that provide a number of additional capabilities for maintaining an information system.</li></ul>","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/Database_Development_and_Management_Tools.png","alias":"database-development-and-management-tools"},"245":{"id":245,"title":"Data Integration and Access Software","description":" Data integration involves combining data residing in different sources and providing users with a unified view of them. This process becomes significant in a variety of situations, which include both commercial (such as when two similar companies need to merge their databases) and scientific (combining research results from different bioinformatics repositories, for example) domains. Data integration appears with increasing frequency as the volume (that is, big data) and the need to share existing data explodes. It has become the focus of extensive theoretical work, and numerous open problems remain unsolved. Data integration encourages collaboration between internal as well as external users.\r\nData integration is the process of combining data from different sources into a single, unified view. Integration begins with the ingestion process, and includes steps such as cleansing, ETL mapping, and transformation. Data integration ultimately enables analytics tools to produce effective, actionable business intelligence.\r\nThere is no universal approach to data integration. However, data integration solutions typically involve a few common elements, including a network of data sources, a master server, and clients accessing data from the master server.\r\nIn a typical data integration process, the client sends a request to the master server for data. The master server then intakes the needed data from internal and external sources. The data is extracted from the sources, then consolidated into a single, cohesive data set. This is served back to the client for use.","materialsDescription":" <span style=\"font-weight: bold;\">Integration helps businesses succeed</span>\r\nEven if a company is receiving all the data it needs, that data often resides in a number of separate data sources. For example, for a typical customer 360 view use case, the data that must be combined may include data from their CRM systems, web traffic, marketing operations software, customer — facing applications, sales and customer success systems, and even partner data, just to name a few. Information from all of those different sources often needs to be pulled together for analytical needs or operational actions, and that can be no small task for data engineers or developers to bring them all together.\r\nLet’s take a look at a typical analytical use case. Without unified data, a single report typically involves logging into multiple accounts, on multiple sites, accessing data within native apps, copying over the data, reformatting, and cleansing, all before analysis can happen.\r\nConducting all these operations as efficiently as possible highlights the importance of data integration. It also showcases the major benefits of a well thought-out approach to data integration:\r\n<span style=\"font-style: italic;\"><span style=\"font-weight: bold;\">Improves collaboration and unification of systems</span></span>\r\nEmployees in every department — and sometimes in disparate physical locations — increasingly need access to the company's data for shared and individual projects. IT needs a secure solution for delivering data via self-service access across all lines of business.\r\nAdditionally, employees in almost every department are generating and improving data that the rest of the business needs. Data integration needs to be collaborative and unified in order to improve collaboration and unification across the organization.\r\n<span style=\"font-style: italic;\"><span style=\"font-weight: bold;\">Saves time and boosts efficiency</span></span>\r\nWhen a company takes measures to integrate its data properly, it cuts down significantly on the time it takes to prepare and analyze that data. The automation of unified views cuts out the need for manually gathering data, and employees no longer need to build connections from scratch whenever they need to run a report or build an application.\r\nAdditionally, using the right tools, rather than hand-coding the integration, returns even more time (and resources overall) to the dev team.\r\nAll the time saved on these tasks can be put to other, better uses, with more hours earmarked for analysis and execution to make an organization more productive and competitive.\r\n<span style=\"font-style: italic;\"><span style=\"font-weight: bold;\">Reduces errors (and rework)</span></span>\r\nThere’s a lot to keep up with when it comes to a company’s data resources. To manually gather data, employees must know every location and account that they might need to explore — and have all necessary software installed before they begin — to ensure their data sets will be complete and accurate. If a data repository is added, and that employee is unaware, they will have an incomplete data set.\r\nAdditionally, without a data integration solution that synchronizes data, reporting must be periodically redone to account for any changes. With automated updates, however, reports can be run easily in real time, whenever they’re needed.\r\n<span style=\"font-style: italic;\"><span style=\"font-weight: bold;\">Delivers more valuable data</span></span>\r\nData integration efforts actually improve the value of a business’ data over time. As data is integrated into a centralized system, quality issues are identified and necessary improvements are implemented, which ultimately results in more accurate data — the foundation for quality analysis.","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/Data_Integration_and_Access_Software.png","alias":"data-integration-and-access-software"},"249":{"id":249,"title":"Development Languages, Environments, and Tools","description":" Free software development environments have different purposes: educational, developmental, educational, and the like. Their students can be schoolchildren, students, novice programmers.\r\nScientists propose the following classification of free software development environments:\r\n<ul><li>Environments that support one programming language;</li><li>Environments with support for multiple programming languages;</li><li>Development environments for web systems and applications;</li><li>Environments aimed at a children's audience.</li></ul>\r\nOf the free environments focused on a single programming language, the following tools should be highlighted: Lazarus, PyScripter, DrPython, Wing IDE.\r\nAmong the free software development tools designed for several programming languages, the following should be noted: CodeLite, Dev-C, Anjuta, Eric, Eclipse, HiAsm, Kylix, MonoDevelop, NetBeans, SharpDevelop, Xcode, etc.\r\nFrom the list of free environments for creating web applications, you can select the following: AJAX.OOP, MooTools Code :: Blocks, Codelobster PHP Edition, Geany, Ultimate, Symfony, Grails. With their help, experts also produce the creation of websites and Internet interfaces.\r\nAmong the development tools intended for children's audiences, the following environments can be singled out: Algo, Alice, EToys, Scratch, Squeak, etc. The main purpose of their use is to encourage children to learn to program.\r\nAn integrated development environment (IDE) is a software application that provides comprehensive facilities to computer programmers for software development. An IDE normally consists of at least a source code editor, build automation tools, and a debugger. Some IDEs, such as NetBeans and Eclipse, contain the necessary compiler, interpreter, or both; others, such as SharpDevelop and Lazarus, do not.\r\nThe boundary between an IDE and other parts of the broader software development environment is not well-defined; sometimes a version control system or various tools to simplify the construction of a graphical user interface (GUI) are integrated. Many modern IDEs also have a class browser, an object browser, and a class hierarchy diagram for use in object-oriented software development.\r\nIntegrated development environments are designed to maximize programmer productivity by providing tight-knit components with similar user interfaces. IDEs present a single program in which all development is done. This program typically provides many features for authoring, modifying, compiling, deploying and debugging software. This contrasts with software development using unrelated tools, such as vi, GCC or make.\r\nOne aim of the IDE is to reduce the configuration necessary to piece together multiple development utilities, instead it provides the same set of capabilities as one cohesive unit. Reducing setup time can increase developer productivity, especially in cases where learning to use the IDE is faster than manually integrating and learning all of the individual tools. Tighter integration of all development tasks has the potential to improve overall productivity beyond just helping with setup tasks. For example, code can be continuously parsed while it is being edited, providing instant feedback when syntax errors are introduced. Allowing developers to debug code much faster and easier with an IDE.\r\nSome IDEs are dedicated to a specific programming language, allowing a feature set that most closely matches the programming paradigms of the language. However, there are many multiple-language IDEs.\r\nWhile most modern IDEs are graphical, text-based IDEs such as Turbo Pascal were in popular use before the widespread availability of windowing systems like Microsoft Windows and the X Window System (X11). They commonly use function keys or hotkeys to execute frequently used commands or macros.","materialsDescription":" <span style=\"font-weight: bold;\">What is "software development tools"?</span>\r\nSoftware development tools - a set of techniques, methods, techniques, as well as a set of tool programs (compilers, application/system libraries, etc.) used by the developer to create program code for the program that meets the specified requirements.\r\n<span style=\"font-weight: bold;\">What does "program development" mean?</span>\r\nProgram development is a complex process, the main purpose of which is to create and maintain a program code that provides the necessary level of reliability and quality. To achieve the main goal of software development, software development tools are used.","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/Development_Languages_Environments_and_Tools.png","alias":"development-languages-environments-and-tools"},"251":{"id":251,"title":"Software Construction Components","description":" The software construction components market, which is ruled by client experience and representation software components, is relied upon to keep on growing. Software construction components allude to the inexactly coupled individual components which are merged into a bigger software framework. As far as engineering disciplines, software construction with the divided components is known as component-based software engineering (CBSE). These components might be as a software bundle, a web administration, asset or a module that contains related information or capacities.\r\nComponents from a pre-built software are autonomously removed and sold independently by the software designers themselves or through outsiders to help in building another software framework. The primary reason for component-based software construction is re ease of use in other software frameworks for construction and redesigning of existing software frameworks.\r\nSoftware Construction Components Market is rendered by expanding interest for new applications with enlarged highlights and customization capacities. The requirement for decreasing many-sided quality and expanding efficiency is fortifying the development of the software construction components market. The coming of the internet of things (IoT) has made software advancement a bigger and complex process.\r\nThe consequence of data analytics to the operation and functioning of a business has risen to a large extent in the last few years. With the rising spread of the internet, huge volumes of data are being generated on a regular basis, which creates the need for advanced tools for data management. With the increasing popularity of smart technology these days, global Software Construction Components Market has thus become prominent creators of digital information. These systems let users collate, collect, and analyze the generated data, which subsequently has triggered the rapid development of the global market in the last few years.","materialsDescription":" \r\n<span style=\"font-weight: bold;\">What is software construction?</span>\r\nSoftware construction is a software engineering discipline. It is the detailed creation of working meaningful software through a combination of coding, verification, unit testing, integration testing, and debugging. It is linked to all the other software engineering disciplines, most strongly to software design and software testing.\r\n<span style=\"font-weight: bold;\">Software construction fundamentals</span>\r\n<span style=\"font-style: italic;\"><span style=\"font-weight: bold;\">Minimizing complexity</span></span>\r\nThe need to reduce complexity is mainly driven by limited ability of most people to hold complex structures and information in their working memories. Reduced complexity is achieved through emphasizing the creation of code that is simple and readable rather than clever. Minimizing complexity is accomplished through making use of standards, and through numerous specific techniques in coding. It is also supported by the construction-focused quality techniques.\r\n<span style=\"font-style: italic;\"><span style=\"font-weight: bold;\">Anticipating change</span></span>\r\nAnticipating change helps software engineers build extensible software, which means they can enhance a software product without disrupting the underlying structure. Research over 25 years showed that the cost of rework can be 10 to 100 times (5 to 10 times for smaller projects) more expensive than getting the requirements right the first time. Given that 25% of the requirements change during development on average project, the need to reduce the cost of rework elucidates the need for anticipating change.\r\n<span style=\"font-style: italic;\"><span style=\"font-weight: bold;\">Constructing for verification</span></span>\r\nConstructing for verification means building software in such a way that faults can be ferreted out readily by the software engineers writing the software, as well as during independent testing and operational activities. Specific techniques that support constructing for verification include following coding standards to support code reviews, unit testing, organizing code to support automated testing, and restricted use of complex or hard-to-understand language structures, among others.\r\n<span style=\"font-style: italic;\"><span style=\"font-weight: bold;\">Reuse</span></span>\r\nSystematic reuse can enable significant software productivity, quality, and cost improvements. Reuse has two closely related facets:\r\n<ul><li>Construction for reuse: Create reusable software assets.</li><li>Construction with reuse: Reuse software assets in the construction of a new solution.</li></ul>\r\n<span style=\"font-style: italic;\"><span style=\"font-weight: bold;\">Standards in construction</span></span>\r\nStandards, whether external (created by international organizations) or internal (created at the corporate level), that directly affect construction issues include:\r\n<ul><li>Communication methods: Such as standards for document formats and contents.</li><li>Programming languages</li><li>Coding standards</li><li>Platforms</li><li>Tools: Such as diagrammatic standards for notations like UML.</li></ul>","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/Software_Construction_Components.png","alias":"software-construction-components"},"255":{"id":255,"title":"Modeling and Architecture Tools","description":" Enterprise Architecture (EA) is a discipline that has gained and will continue to gain huge importance to master enterprise organization and its IT support.\r\nEnterprise Architecture is a complete expression of the enterprise, a master plan which “acts as a collaboration force” between aspects of business planning (such as goals, visions, strategies and governance principles), aspects of business operations (such as business terms, organization structures, processes, and data), aspects of automation (such as information systems and databases) and the enabling technological infrastructure of the business (such as computers, operating systems, and networks).\r\nEnterprise architects use various business methods, analytical techniques and conceptual tools to understand and document the structure and dynamics of an enterprise. In doing so, they produce lists, drawings, documents, and models, together called "artifacts". These artifacts describe the logical organization of business functions, business capabilities, business processes, people, information resources, business systems, software applications, computing capabilities, information exchange and communications infrastructure within the enterprise.","materialsDescription":" <span style=\"font-weight: bold; \">What is enterprise architecture?</span>\r\nEnterprise architecture (EA) is "a well-defined practice for conducting enterprise analysis, design, planning, and implementation, using a comprehensive approach at all times, for the successful development and execution of strategy. Enterprise architecture applies architecture principles and practices to guide organizations through the business, information, process, and technology changes necessary to execute their strategies. These practices utilize the various aspects of an enterprise to identify, motivate, and achieve these changes."\r\nPractitioners of enterprise architecture, enterprise architects, are responsible for performing the analysis of business structure and processes and are often called upon to draw conclusions from the information collected to address the goals of enterprise architecture: effectiveness, efficiency, agility, and continuity of complex business operations.\r\n<span style=\"font-weight: bold; \">What are the terms "enterprise" and "architecture"?</span>\r\nThe term enterprise can be defined as describing an organizational unit, organization, or collection of organizations that share a set of common goals and collaborate to provide specific products or services to customers.\r\nIn that sense, the term enterprise covers various types of organizations, regardless of their size, ownership model, operational model, or geographical distribution. It includes those organizations' complete socio-technical systems, including people, information, processes, and technologies.\r\nThe term architecture refers to fundamental concepts or properties of a system in its environment, embodied in its elements, relationships, and in the principles of its design and evolution.\r\nUnderstood as a socio-technical system, the term enterprise defines the scope of enterprise architecture.\r\n<span style=\"font-weight: bold;\">What are the benefits?</span>\r\nThe benefits of enterprise architecture are achieved through its direct and indirect contributions to organizational goals. It has been found that the most notable benefits of enterprise architecture can be observed in the following areas:\r\n<ul><li><span style=\"font-style: italic;\">Organizational design</span> - Enterprise architecture provides support in the areas related to design and re-design of the organizational structures during mergers, acquisitions or during general organizational change.</li><li><span style=\"font-style: italic;\">Organizational processes and process standards</span> - Enterprise architecture helps enforce discipline and standardization of business processes, and enable process consolidation, reuse, and integration.</li><li><span style=\"font-style: italic;\">Project portfolio management</span> - Enterprise architecture supports investment decision-making and work prioritization.</li><li><span style=\"font-style: italic;\">Project management</span> - Enterprise architecture enhances the collaboration and communication between project stakeholders. Enterprise architecture contributes to efficient project scoping and defining more complete and consistent project deliverables.</li><li><span style=\"font-style: italic;\">Requirements Engineering</span> - Enterprise architecture increases the speed of requirement elicitation and the accuracy of requirement definitions, through the publishing of the enterprise architecture documentation.</li><li><span style=\"font-style: italic;\">System development</span> - Enterprise architecture contributes to optimal system designs and efficient resource allocation during system development and testing.</li><li><span style=\"font-style: italic;\">IT management and decision making</span> - Enterprise architecture is found to help enforce discipline and standardization of IT planning activities and to contribute to a reduction in time for technology-related decision making.</li><li><span style=\"font-style: italic;\">IT value</span> - Enterprise architecture helps reduce the system's implementation and operational costs and minimize the replication of IT infrastructure services across business units.</li><li><span style=\"font-style: italic;\">IT complexity</span> - Enterprise architecture contributes to a reduction in IT complexity, consolidation of data and applications, and to better interoperability of the systems.</li><li><span style=\"font-style: italic;\">IT openness</span> - Enterprise architecture contributes to more open and responsive IT as reflected through increased accessibility of data for regulatory compliance, and increased transparency of infrastructure changes.</li><li><span style=\"font-style: italic;\">IT risk management</span> - Enterprise architecture contributes to the reduction of business risks from system failures and security breaches. Enterprise architecture helps reduce risks of project delivery.</li></ul>","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/Modeling_and_Architecture_Tools.png","alias":"modeling-and-architecture-tools"},"257":{"id":257,"title":"Web Design and Development Tools","description":" If your business is not active on the internet, then you can miss the great opportunity to get the various benefits. A website of a business is a must for gaining popularity and profits. Through a business website, you can easily sell your products and services. In the present, every single person is active on the internet and searches the services through the internet or Google search engine. If you would like to build a website, then you have to hire the best web design and development services. Web design is collecting ideas and implementing them, guided by certain principles for specific purposes. Web design contains various parameters such as layout, color, graphics, fonts, and contents.\r\nWeb development is different than web design, but the main task of web development is maintaining and building the website. It gives actual life to design files. If you want to get the best web design and development services to create the perfect and unique website of your business, then you have to hire a professional company. If you don’t want to hire a professional, then you can get the help of tools. On the internet, several web design and development tools are available which helps to build your effective business website at a reasonable cost. With the help of the designing tool, you can easily save your money and time.\r\nWeb designers use a variety of different tools depending on what part of the production process they are involved in. These tools are updated over time by newer standards and software but the principles behind them remain the same. Web designers use both vector and raster graphics editors to create web-formatted imagery or design prototypes. Technologies used to create websites include W3C standards like HTML and CSS, which can be hand-coded or generated by WYSIWYG editing software. Other tools web designers might use include mark up validators and other testing tools for usability and accessibility to ensure their websites meet web accessibility guidelines.","materialsDescription":"<span style=\"font-weight: bold;\"> What is included in a creation of website design?</span>\r\nWeb design has very big differences from ordinary printing design. Creating a website design is usually a certain process, which takes into account various requirements of not only artistic but also technical nature. Such a process may include several stages:\r\n<ul><li>development of an attractive, easily perceived design of the start page, as well as other sections and subsequent levels (including various forms of registrations, baskets, etc.);</li><li>development and coordination of a well-designed structure of the entire site;</li><li>designing a convenient, fairly simple site navigation;</li><li>correctly positioned text on the pages;</li><li>availability of opportunities for simple support and expansion of the site.</li></ul>\r\n<span style=\"font-weight: bold;\">What design to choose when creating a site?</span>\r\nWhen creating a website design, you must take into account its theme.\r\nSo, a commercial website should attract visitors with its memorable look and corporate identity that is specific to your company. And, at the same time, be convenient and contain all the information necessary for the user about you and your goods, services. Not to mention the fact that various forms of receiving on-line consultations, placing orders, etc. are welcome on such a site. The presence of such functions and their intuitiveness and accessibility for the site user significantly increases what is commonly called the "site conversion". Those. how much your site will be "selling", and whether it can not only be an analogue of your company's business card on the Internet, but also attract new, by no means virtual clients for your business. Therefore, the creation of a website design of this kind should be carried out very carefully in order to fully reflect the individuality of the image of the company.\r\nSometimes it is recommended to adhere to a concise style, which is able to emphasize your uniqueness and stability as a company. In other cases (for example, if we are talking about the sites of wedding agencies), a certain tone is considered to be a certain romance and tenderness of the color scheme, combined with joyful, bright elements. And sites that appeal to potential customers with unusual requests are simply obliged to have a unique, sometimes very extravagant design (while maintaining, however, the basic principles of good usability - the simplicity and convenience of using your Internet resource).\r\nIf you plan, for example, to launch an information site, then its design should be designed in a strict style, without flashy colors, since in this case it is the content that is more important than the design.\r\nHowever, the last statement is true for any site. Indeed, sometimes it doesn’t matter how beautiful the wrapper is, if instead of candy inside the user finds a dummy. The content of the site, its content and how convenient it is for the user to receive the information he needs on your site is the most important thing! Alas, in the Russian Internet zone, so far, 9 out of 10 sites (even with an excellent initial design) are simply “killed” by inappropriate or uninteresting user content. And then, simply, its absence.\r\n<span style=\"font-weight: bold;\">Web design when creating sites: beauty or functionality?</span>\r\nWhen creating the design of the future site, it is important to remember, first of all, the functionality and the tasks that the future site will have to solve. And, therefore, remember about those for whom you are creating it - about future users. An overly elaborate design or an inconvenient menu, the difficulty of finding the necessary information on the site - this can lead to the fact that your visitor will go to other sites. Those. to your competitors.\r\nThe user of the Internet network often does not care about designer delights or the “coolness” of a programmer who has implemented non-standard site navigation, which you can’t even figure out without additional instructions. A site visitor came to you for information. And it is important, first of all, how quickly he found her, how much she met his needs, how much she helped in solving him, the user of the problem.\r\nThen the site will be remembered, and the visitor will not only return to you himself, but also, perhaps, will bring friends.\r\nA good web designer is not only, and not so much an artist, as a very thoughtful and experienced Internet resource designer who will attract attention, while remaining convenient and in demand within the framework of your marketing policy.","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/Web_Design_and_Development_Tools.png","alias":"web-design-and-development-tools"},"261":{"id":261,"title":"Automated Software Quality Tools","description":" Some software testing tasks, such as extensive low-level interface regression testing, can be laborious and time-consuming to do manually. In addition, a manual approach might not always be effective in finding certain classes of defects. Test automation offers a possibility to perform these types of testing effectively. Once automated tests have been developed, they can be run quickly and repeatedly. Many times, this can be a cost-effective method for regression testing of software products that have a long maintenance life. Even minor patches over the lifetime of the application can cause existing features to break which were working at an earlier point in time.\r\nThere are many approaches to test automation, however below are the general approaches used widely:\r\n<ul><li>Graphical user interface testing. A testing framework that generates user interface events such as keystrokes and mouse clicks, and observes the changes that result in the user interface, to validate that the observable behavior of the program is correct.</li><li>API driven testing. A testing framework that uses a programming interface to the application to validate the behaviour under test. Typically API driven testing bypasses application user interface altogether. It can also be testing public (usually) interfaces to classes, modules or libraries are tested with a variety of input arguments to validate that the results that are returned are correct.</li></ul>\r\nTest automation tools can be expensive, and are usually employed in combination with manual testing. Test automation can be made cost-effective in the long term, especially when used repeatedly in regression testing. A good candidate for test automation is a test case for common flow of an application, as it is required to be executed (regression testing) every time an enhancement is made in the application. Test automation reduces the effort associated with manual testing. Manual effort is needed to develop and maintain automated checks, as well as reviewing test results.\r\nIn automated testing the test engineer or software quality assurance person must have software coding ability, since the test cases are written in the form of source code which, when run, produce output according to the assertions that are a part of it. Some test automation tools allow for test authoring to be done by keywords instead of coding, which do not require programming.\r\nOne way to generate test cases automatically is model-based testing through use of a model of the system for test case generation, but research continues into a variety of alternative methodologies for doing so. In some cases, the model-based approach enables non-technical users to create automated business test cases in plain English so that no programming of any kind is needed in order to configure them for multiple operating systems, browsers, and smart devices.\r\nWhat to automate, when to automate, or even whether one really needs automation are crucial decisions which the testing (or development) team must make. A multi-vocal literature review of 52 practitioner and 26 academic sources found that five main factors to consider in test automation decision are: 1) System Under Test (SUT), 2) the types and numbers of tests, 3) test-tool, 4) human and organizational topics, and 5) cross-cutting factors. The most frequent individual factors identified in the study were: need for regression testing, economic factors, and maturity of SUT.","materialsDescription":" <span style=\"font-weight: bold;\">Unit testing</span>\r\nA growing trend in software development is the use of unit testing frameworks such as the xUnit frameworks (for example, JUnit and NUnit) that allow the execution of unit tests to determine whether various sections of the code are acting as expected under various circumstances. Test cases describe tests that need to be run on the program to verify that the program runs as expected.\r\nTest automation mostly using unit testing is a key feature of extreme programming and agile software development, where it is known as test-driven development (TDD) or test-first development. Unit tests can be written to define the functionality before the code is written. However, these unit tests evolve and are extended as coding progresses, issues are discovered and the code is subjected to refactoring. Only when all the tests for all the demanded features pass is the code considered complete. Proponents argue that it produces software that is both more reliable and less costly than code that is tested by manual exploration. It is considered more reliable because the code coverage is better, and because it is run constantly during development rather than once at the end of a waterfall development cycle. The developer discovers defects immediately upon making a change, when it is least expensive to fix. Finally, code refactoring is safer when unit testing is used; transforming the code into a simpler form with less code duplication, but equivalent behavior, is much less likely to introduce new defects when the refactored code is covered by unit tests.\r\n<span style=\"font-weight: bold;\">Graphical User Interface (GUI) testing</span>\r\nMany test automation tools provide record and playback features that allow users to interactively record user actions and replay them back any number of times, comparing actual results to those expected. The advantage of this approach is that it requires little or no software development. This approach can be applied to any application that has a graphical user interface. However, reliance on these features poses major reliability and maintainability problems. Relabelling a button or moving it to another part of the window may require the test to be re-recorded. Record and playback also often adds irrelevant activities or incorrectly records some activities.\r\nA variation on this type of tool is for testing of web sites. Here, the "interface" is the web page. However, such a framework utilizes entirely different techniques because it is rendering HTML and listening to DOM Events instead of operating system events. Headless browsers or solutions based on Selenium Web Driver are normally used for this purpose.\r\nAnother variation of this type of test automation tool is for testing mobile applications. This is very useful given the number of different sizes, resolutions, and operating systems used on mobile phones. For this variation, a framework is used in order to instantiate actions on the mobile device and to gather results of the actions.\r\nAnother variation is script-less test automation that does not use record and playback, but instead builds a model of the application and then enables the tester to create test cases by simply inserting test parameters and conditions, which requires no scripting skills.\r\n<span style=\"font-weight: bold; \">API driven testing</span>\r\nAPI testing is also being widely used by software testers due to the difficulty of creating and maintaining GUI-based automation testing. It involves directly testing APIs as part of integration testing, to determine if they meet expectations for functionality, reliability, performance, and security. Since APIs lack a GUI, API testing is performed at the message layer. API testing is considered critical when an API serves as the primary interface to application logic since GUI tests can be difficult to maintain with the short release cycles and frequent changes commonly used with agile software development and DevOps.\r\n<span style=\"font-weight: bold;\">Continuous testing</span>\r\nContinuous testing is the process of executing automated tests as part of the software delivery pipeline to obtain immediate feedback on the business risks associated with a software release candidate. For Continuous Testing, the scope of testing extends from validating bottom-up requirements or user stories to assessing the system requirements associated with overarching business goals.","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/Automated_Software_Quality_Tools1.png","alias":"automated-software-quality-tools"},"263":{"id":263,"title":"Software Configuration Management Tools","description":"<span style=\"font-weight: bold; \">Software configuration management</span> (SCM) is a set of processes, policies, and tools that organizes the development process. It simultaneously maintains the current state of the software (called the “baseline”), while enabling developers to work on new versions for features or fixes.\r\nIn software engineering, <span style=\"font-weight: bold; \">software configuration management process</span> is the task of tracking and controlling changes in the software, part of the larger cross-disciplinary field of configuration management. SCM practices include revision control and the establishment of baselines. If something goes wrong, SCM can determine what was changed and who changed it. If a configuration is working well, SCM can determine how to replicate it across many hosts. \r\nThe acronym "SCM" is also expanded as <span style=\"font-weight: bold; \">source configuration management process</span> and <span style=\"font-weight: bold; \">software change and configuration management.</span> However, "configuration" is generally understood to cover changes typically made by a system administrator. \r\nSoftware configuration control usually includes the updates and the versions that have been applied to software packages, as well as locations and network addresses of hardware devices. When a system needs a software or hardware upgrade, the user can access the configuration management program and database to see what is currently installed and then make a more informed decision about the upgradation needed. Configuration management tools list have been divided into three categories: <span style=\"font-weight: bold;\">tracking</span>, <span style=\"font-weight: bold;\">version management</span>, and r<span style=\"font-weight: bold;\">elease tools.</span>\r\nThe SCM configuration management traces changes and verifies that the software has all of the planned changes that are supposed to be included in a new release. It includes four procedures that should be defined for each software project to ensure that a reliable software configuration management process is utilized. The four procedures typically found in a reliable system configuration management tools are:\r\n<span style=\"font-weight: bold; \">Configuration identification. </span>It is the procedure by which attributes are identified that defines all the properties of a configuration item. A configuration item referred to as an object is a product (hardware and/or software) that supports use by an end user. These attributes are recorded in configuration documents or database tables and baselined. A baseline is an approved configuration object, such as a project plan, that has been authorized for implementation.\r\n<span style=\"font-weight: bold; \">Configuration control.</span> It is a set of processes and approval stages required to change a configuration object’s attributes and to rebaseline them.<span style=\"font-weight: bold; \"><br /></span>\r\n<span style=\"font-weight: bold; \">Configuration status documentation. </span>Configuration status accounting is the ability to record and report on the configuration baselines associated with each configuration object at any point in time.\r\n<span style=\"font-weight: bold; \">Configuration audits. </span>Configuration audits are divided into functional and physical configuration audits. An audit occurs at the time of delivery of a project or at the time a change is made. A functional configuration audit is intended to make sure that functional and performance attributes of a configuration object are achieved. A physical configuration audit attempts to ensure that a configuration object is installed based on the requirements of its design specifications.\r\n<span style=\"font-weight: bold; \">The advantages of software configuration management system are:</span>\r\n<ul><li>It reduces redundant work</li><li>It effectively manages simultaneous updates</li><li>It avoids configuration related problems</li><li>It simplifies coordination between team members</li><li>It is helpful in tracking defects</li></ul>\r\n\r\n\r\n\r\n","materialsDescription":"<h1 class=\"align-center\"> What are the outcomes of well-implemented configuration management?</h1>\r\n<ul><li><span style=\"font-weight: bold; \">Disaster Recovery<br /></span></li></ul>\r\nIf the worst does happen, automated configuration management tools ensures that our assets are easily recoverable. The same applies to rollbacks. Configuration management makes it so that when we’ve put out bad code, we can go back to the state of our software before the change.\r\n<ul><li><span style=\"font-weight: bold; \">Uptime and Site Reliability</span></li></ul>\r\nThe term “site reliability” refers to how often your service is up. A frequent cause of downtime is bad deployments, which can be caused by differences in running production servers to test servers. With our configuration managed properly, our test environments can mimic production, so there’s less chance of a nasty surprise.\r\n<ul><li><span style=\"font-weight: bold; \">Easier Scaling</span></li></ul>\r\nProvisioning is the act of adding more resources (usually servers) to our running application. Сonfiguration automation tools ensure that we know what a good state of our service is. That way, when we want to increase the number of servers that we run, it’s simply a case of clicking a button or running a script. The goal is really to make provisioning a non-event.","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/Software_Configuration_Management_Tools.png","alias":"software-configuration-management-tools"},"385":{"id":385,"title":"Model-Driven Application Platforms","description":"A model-driven application is a software application that the functions or behaviors are based on, or in control of, some evolutionary applied models of the target things to the application. The applied models are served as a part of the application system in which it can be changed at runtime. The target things are what the application deals with, such as the objects and affairs in business for a business application. Follows the definition of application in TOGAF, a model-driven business application could be described as an IT system that supports business functions and services running on the models of the (things in) business.\r\nThe ideal of the architecture for a model-driven application was first put forward by Tong-Ying Yu on the Enterprise Engineering Forum in 1999, which have been studied and spread through some internet media for a long time. It had influence on the field of enterprise application development in China; there were successful cases of commercial development of enterprise/business applications in the architectural style of a model-driven application. Gartner Group carried out some studies into the subject in 2008; they defined the model-driven packaged applications as "enterprise applications that have explicit metadata-driven models of the supported processes, data and relationships, and that generate runtime components through metadata models, either dynamically interpreted or compiled, rather than hardcoded." The model-driven application architecture is one of few technology trends to driven the next generation of application modernization, that claimed by some industrial researchers in 2012.","materialsDescription":" <span style=\"font-weight: bold; \">What is Model-driven development?</span>\r\nModel-driven development (MDD) is a format to write and implement software quickly, effectively and at minimum cost. The methodology is also known as model-driven software development (MDSD), model-driven engineering (MDE) and model-driven architecture (MDA).\r\nThe MDD approach focuses on the construction of a software model. The model is a diagram that specifies how the software system should work before the code is generated. Once the software is created, it can be tested using model-based testing (MBT) and then deployed.\r\n<span style=\"font-weight: bold; \">What are the benefits of model-driven development?</span>\r\nThe MDD approach provides advantages in productivity over other development methods because the model simplifies the engineering process. It represents the intended behaviors or actions of a software product before coding begins.\r\nThe individuals and teams that work on the software construct models collaboratively. Communication between developers and a product manager, for example, provides clear definitions of what the software is and how it works. Tests, rebuilds and redeployments can be faster when developing multiple applications with MDD than with traditional development.\r\n<span style=\"font-weight: bold; \">What are the core concepts of model-driven development?</span>\r\nModel-driven development is more in-depth than just having a model of the software in development, which makes it different from model-based development. Abstraction and automation are key concepts of MDD. Abstraction means to organize complex software systems. In MDD, complex software gets abstracted, which then extracts the easy-to-define code.\r\nOnce developers transform the abstraction, a working version of the software model gets automated. This automation stage uses a domain-specific language (DSL), such as HTML, and scripting languages, like ColdFusion, which can integrate other programming languages and services -- .NET, C++, FTP and more -- for use in websites. DSL is a language specialized to an application domain. A model is written in a DSL language and is utilized for transformation in coding language from the model to working software.\r\nAgile software development methods are often paired with MDD. The Agile development approach enables short sprints where the project scope can change. Agile model-driven development (AMDD) establishes short development iterations, while changes can be redesigned and shown on the model. In AMDD, design efforts are split between modeling in both sprints and coding.","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_Model_Driven_Application_Platforms.png","alias":"model-driven-application-platforms"},"387":{"id":387,"title":"Managed File Transfer Software, MFT","description":"<span style=\"font-weight: bold; \">Managed file transfer (MFT)</span> is a technology platform that allows organizations to reliably exchange electronic data between systems and people in a secure way to meet compliance needs. These data movements can be both internal and external to an enterprise and include various types, including sensitive, compliance-protected or high-volume data. It can be offered as software or as a service and may include a single pane for visibility and governance.\r\nManaged file transfer software is a more reliable and efficient means for secure data and file transfer, outpacing and outperforming applications such as file transfer protocol (FTP), hypertext transfer protocol (HTTP), secure file transfer protocol (SFTP) and other methods.\r\nOrganizations increasingly rely on managed file transfer tools to support their business needs and goals in a way that FTP cannot. FTP presents many challenges(PDF, 571 KB) such as data security gaps, lack of visibility when a problem occurs, timely manual recovery from failures and costly SLA fees due to poor performance.\r\n<p class=\"align-left\"><span style=\"font-weight: bold;\">Key capabilities of effective managed file transfer</span></p>\r\n<ul><li><span style=\"font-weight: bold;\">Security.</span> Encrypt internal and external transfers, in motion and at rest. Secure file transfers with advanced capabilities like session breaks and protocol inspection maximize the protection of sensitive data at multiple layers.</li><li><span style=\"font-weight: bold;\">Simplified file transfer.</span> Offers timely and flexible data transfer across a range of file transfer activities and support for multiple file types, including multimedia, PDFs, email, XML, EDI and more.</li><li><span style=\"font-weight: bold;\">Full visibility.</span> Provides a 360-degree view in near-real time. Companies can see who is transferring files, what is being shared and the volume passing through the system. Potential issues like delays and failed transfers are visible before they impact downstream business processes or become missed SLAs.</li><li> <span style=\"font-weight: bold;\">Compliance standards.</span> Strong encryption helps companies avoid compliance failures which can lead to hefty fines. Thorough audit trails confirm regulatory compliance.</li></ul>\r\n<p class=\"align-left\"> </p>","materialsDescription":"<h1 class=\"align-center\">What are the benefits of managed file transfer?</h1>\r\n<span style=\"font-weight: bold; \">Data security.</span> High-profile data breaches and failed transfers can drastically impact a company’s bottom line and reputation. MFT offers a preemptive security strategy with real-time monitoring, and validation security policies and controls to protect data in transit or at rest.\r\n<span style=\"font-weight: bold; \">Data growth.</span> Data is everywhere, and companies face larger and more varied files than in the past. The number of users sharing files has grown as have the number of end-points and devices. And as files get larger, the time to move them over global distances becomes longer. MFT brings reliable, automated governance to the movement of files inside and outside the business and can accelerate big data movements around the globe.\r\n<span style=\"font-weight: bold; \">Regulatory compliance.</span> Legislative and industry requirements such as the Payment Card Industry Data Security Standards (PCI DSS), the Health Insurance Portability and Accountability Act (HIPPA), Basel II, Sarbanes-Oxley Act (SOX) and others — typically have stringent data security standards. Using a properly-configured MFT system to encrypt, transmit, monitor and store sensitive data empowers organizations to meet security mandates.\r\n<span style=\"font-weight: bold; \">Technology megatrends.</span> Moving files has become more complex with the adoption of transformational technologies. The growth of big data, cloud applications, artificial intelligence, data analytics and the Internet of Things (IoT) place a premium on the speed and bulk of file transfers. MFT offers advanced capabilities and support for multiple platforms, mobile devices, applications and other existing IT infrastructure.\r\n<span style=\"font-weight: bold; \">Visibility.</span> Companies need to anticipate risk factors to mitigate damages. Operational visibility over file movements leads to proactive issue resolution, like failed transfers and improved compliance with SLA commitments.\r\n<h1 class=\"align-center\">Secure File Transfer vs Managed File Transfer software comparison</h1>\r\nMFT is a platform. This may make it seem more advanced than other protocols, and arguably it is. It offers administration capabilities coupled with automation and popular security protocols like HTTPS, SFTP, and FTPS. Often, the interface of MFT is designed for transparency and visibility. Generally, it’s a more secure transfer protocol than most others.\r\nMFT beats secure file transfers in complexity and nuance and crushes the competition when it comes to security. If we had to find some drawbacks to implementing a MFT strategy, it’s complexity may mean a learning curve is required for some users. Also, managed file transfer implies management is required. The introduction of visibility and transparency of the process offers no benefit if the processes aren’t being monitored.\r\nFTP (File Transfer Protocol) and SFT (Secure File Transfer) are both network protocols for “put” and “get” functions. With regards to billing data, data recovery files and other sensitive information that enterprise businesses need to hold and share, SFT offers encryption, whereas FTP does not. SFT was designed for the purposes of securely transmitting data.\r\nTo that point, SFT uses Secure Shell or SSH network protocol to transfer data across a channel. Data is protected as long as it’s in moving across the channel. Once it hits a secured server, it’s no longer protected. For additional encryption, senders would need to ensure encryption occurs in advance of sending.\r\nThe main benefit of Secure File Transfer is it is enhanced with encryption during the sending process, whereas regular FTP does not have such protection. It’s still second to an MFT platform, but SFT could be a less expensive alternative, depending on how much impact data transfer has on your business.\r\n\r\n","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_Managed_File_Transfer_Software.png","alias":"managed-file-transfer-software-mft"},"391":{"id":391,"title":"Cloud Testing/ASQ PaaS","description":" With the growing technological advancements, there is a requirement of continuous testing of an application. The conventional mode of application testing is very time consuming, and cost associated with such kind of testing solution is also high. That is why demand for a solution to test application on the cloud and for the cloud is rising significantly as high quality, well-performing software across platforms drive business innovation and competitive positioning. Software vendors across the globe are investing a huge amount of money in research and development of software that can provide more software-centric IT infrastructure to their customer. These software vendors are looking for automated software testing (ASQ), software as a Service (SaaS) and adaptive infrastructure support in the cloud.\r\nCloud testing and ASQ software facilitates quick access to both superiority solution and support infrastructure to sustain complex software sourcing and dynamic development. Cloud testing solutions require fewer resources and less infrastructure investment than on-premise ASQ solutions.\r\nThe continuous development in cloud computing space is driving the growth of the global cloud testing and ASQ software market. Cloud computing is creating a new shift in IT model. Cloud computing facilitates organizations to adopt software as a Service at a very low cost. Software as a Service providers business organization a more agile framework and increase their efficiency, at the same time, software as a service is a complex phenomenon and requires continuous monitoring. As an organization is deploying more enterprise mobility solution and mobile application, cloud testing and ASQ software vendors are seeing a huge opportunity in the market.\r\nHowever, business organizations’ software needs are changing very frequently, and to cope with these rapidly changing software advancements is very difficult for cloud testing ASQ software vendors, and this is the biggest challenge cloud testing and ASQ software market is facing.","materialsDescription":" <span style=\"font-weight: bold; \">What is Cloud testing?</span>\r\nCloud testing is a form of software testing in which web applications use cloud computing environments (a "cloud") to simulate real-world user traffic.\r\nCloud testing uses cloud infrastructure for software testing. Organizations pursuing testing in general and load, performance testing and production service monitoring, in particular, are challenged by several problems like limited test budget, meeting deadlines, high costs per test, a large number of test cases, and little or no reuse of tests and geographical distribution of users add to the challenges. Moreover, ensuring high-quality service delivery and avoiding outages requires testing in one's datacenter, outside the data-center, or both. Cloud Testing is the solution to all these problems. Effective unlimited storage, quick availability of the infrastructure with scalability, flexibility and availability of a distributed testing environment reduce the execution time of testing of large applications and lead to cost-effective solutions.\r\nTraditional approaches to test a software incurs a high cost to simulate user activity from different geographic locations. Testing firewalls and load balancers involve expenditure on hardware, software and its maintenance. In the case of applications where the rate of increase in a number of users is unpredictable or there is variation in deployment environment depending on client requirements, cloud testing is more effective.\r\n<span style=\"font-weight: bold; \">What are the types of testing?</span>\r\n<span style=\"font-style: italic; \"><span style=\"font-weight: bold; \">Stress</span></span>\r\nStress Test is used to determine the ability of the application to maintain a certain level of effectiveness beyond the breaking point. It is essential for any application to work even under excessive stress and maintain stability. Stress testing assures this by creating peak loads using simulators. But the cost of creating such scenarios is enormous. Instead of investing capital in building on-premises testing environments, cloud testing offers an affordable and scalable alternative.\r\n<span style=\"font-style: italic; \"><span style=\"font-weight: bold; \">Load</span></span>\r\nLoad testing of an application involves the creation of heavy user traffic and measuring its response. There is also a need to tune the performance of any application to meet certain standards. However, a number of tools are available for that purpose.\r\n<span style=\"font-style: italic; \"><span style=\"font-weight: bold; \">Performance</span></span>\r\nFinding out thresholds, bottlenecks & limitations is a part of performance testing. For this, testing performance under a particular workload is necessary. By using cloud testing, it is easy to create such an environment and vary the nature of traffic on-demand. This effectively reduces cost and time by simulating thousands of geographically targeted users.\r\n<span style=\"font-style: italic; \"><span style=\"font-weight: bold; \">Functional</span></span>\r\nFunctional testing of both internet and non-internet applications can be performed using cloud testing. The process of verification against specifications or system requirements is carried out in the cloud instead of on-site software testing.\r\n<span style=\"font-style: italic; \"><span style=\"font-weight: bold; \">Compatibility</span></span>\r\nUsing a cloud environment, instances of different Operating Systems can be created on demand, making compatibility testing effortless.\r\n<span style=\"font-style: italic; \"><span style=\"font-weight: bold; \">Browser performance</span></span>\r\nTo verify the application's support for various browser types and performance in each type can be accomplished with ease. Various tools enable automated website testing from the cloud.\r\n<span style=\"font-style: italic; \"><span style=\"font-weight: bold; \">Latency</span></span>\r\nCloud testing is utilized to measure the latency between the action and the corresponding response for any application after deploying it on the cloud.\r\n<span style=\"font-weight: bold; \">What are the keys to successful testing?</span>\r\n<ol><li>Understanding a platform provider's elasticity model/dynamic configuration method</li><li>Staying abreast of the provider's evolving monitoring services and Service Level Agreements (SLAs)</li><li>Potentially engaging the service provider as an ongoing operations partner if producing commercial off-the-shelf (COTS) software</li><li>Being willing to be used as a case study by the cloud service provider. The latter may lead to cost reductions.</li></ol>\r\nCloud testing is often seen as only performance or load tests, however, as discussed earlier it covers many other types of testing. Cloud computing itself is often referred to as the marriage of software as a service (SaaS) and utility computing. In regard to test execution, the software offered as a service may be a transaction generator and the cloud provider's infrastructure software, or may just be the latter. Distributed Systems and Parallel Systems mainly use this approach for testing, because of their inherent complex nature. D-Cloud is an example of such a software testing environment.\r\nFor testing non-internet applications, virtual instances of testing environment can be quickly set up to do automated testing of the application. The cloud testing service providers provide an essential testing environment as per the requirement of the application under test. The actual testing of applications is performed by the testing team of the organization which owns the application or third-party testing vendors.\r\n<span style=\"font-weight: bold;\">What are the benefits?</span>\r\nThe ability and cost to simulate web traffic for software testing purposes have been an inhibitor to overall web reliability. The low cost and accessibility of the cloud's extremely large computing resources provide the ability to replicate real-world usage of these systems by geographically distributed users, executing wide varieties of user scenarios, at scales previously unattainable in traditional testing environments. Minimal start-up time along with quality assurance can be achieved by cloud testing.\r\nFollowing are some of the key benefits:\r\n<ul><li>Reduction in capital expenditure</li><li>Highly scalable</li></ul>\r\n<span style=\"font-weight: bold;\">What are the issues?</span>\r\nThe initial setup cost for migrating testing to a cloud is very high as it involves modifying some of the test cases to suit the cloud environment. This makes the decision of migration crucial. Therefore, cloud testing is not necessarily the best solution to all testing problems.\r\nLegacy systems & services need to be modified in order to be tested on the cloud. Usage of robust interfaces with these legacy systems may solve this problem. Also like any other cloud services, cloud testing is vulnerable to security issues.\r\nThe test results may not be accurate due to the varying performance of the service providers’ network and the internet. In many cases, service virtualization can be applied to simulate the specific performance and behaviors required for accurate and thorough testing.","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_Cloud_Testing.png","alias":"cloud-testingasq-paas"},"393":{"id":393,"title":"Embedded Database Management Systems","description":" An embedded database is a database technology in which database management solutions are built into an application rather than provided as standalone tools. In many cases, this effectively "hides" the database management tools from the end user.\r\nAn embedded database system can be set up in many ways. It can include traditional relational database designs or other kinds of storage formats. It can utilize different solutions as well; for example, a popular type of embedded architecture uses MS Access for storage and relies on VBA forms to handle data requests. Many of these systems also use various APIs and SQL tools to perform data-related tasks.\r\nEmbedded database designs are used for various purposes. Embedded database tools, for example, can be used for email archive searches, for presentation of gaming statistics or other stored game data, and for industry-specific tools like tax-preparation software packages.\r\nIT professionals also sometimes use the term embedded database to refer to database solutions that run on mobile devices.","materialsDescription":" <span style=\"font-weight: bold; \">What do "Embedded Database Management Systems" mean?</span>\r\nAn embedded database system is a database management system (DBMS) which is tightly integrated with an application software that requires access to stored data, such that the database system is "hidden" from the application’s end-user and requires little or no ongoing maintenance.\r\n<span style=\"font-weight: bold;\">What does it include?</span>\r\nIt is actually a broad technology category that includes\r\n<ul><li>database systems with differing application programming interfaces (SQL as well as proprietary, native APIs),</li><li>database architectures (client-server and in-process),</li><li>storage modes (on-disk, in-memory, and combined),</li><li>database models (relational, object-oriented, entity–attribute–value model, network/CODASYL),</li><li>target markets.</li></ul>","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_Embedded_Database_Management_Systems.png","alias":"embedded-database-management-systems"},"395":{"id":395,"title":"Agile Application Life-Cycle Management Software","description":" Agile software development is an approach to software development under which requirements and solutions evolve through the collaborative effort of self-organizing and cross-functional teams and their customer(s)/end user(s). It advocates adaptive planning, evolutionary development, empirical knowledge, and continual improvement, and it encourages rapid and flexible response to change.\r\nThe term agile (sometimes written Agile) was popularized, in this context, by the Manifesto for Agile Software Development. The values and principles espoused in this manifesto were derived from and underpin a broad range of software development frameworks, including Scrum and Kanban.\r\nThere is significant anecdotal evidence that adopting agile practices and values improves the agility of software professionals, teams and organizations; however, some empirical studies have found no scientific evidence.\r\nAgile application lifecycle management (Agile ALM) is all the tools and processes that are used to manage software development projects based on flexible methodology. The traditional cascade design model uses a phase approach to the development life cycle. This approach means that no project phase starts earlier than the previous one ends. For example, the design does not begin before the collection of requirements ends. Development does not begin until the design is completed. Testing does not begin until development is fully completed. There are many tools to manage what is in the input and output of each phase.","materialsDescription":" Agile ALM brings together two seemingly contradictory development strategies. Agile promotes flexibility, rapid release cycles and quick response to change. Application lifecycle management (ALM) emphasizes tracking and documenting changes in an application -- from inception to retirement. Its processes are more controlled and less adaptive than the Agile methodology. That said, when put together, Agile and ALM act as complements, rending ALM more flexible and Agile more disciplined.\r\n<span style=\"font-weight: bold;\">What is Agile ALM?</span>\r\nDevelopment expert Yvette Francino described Agile ALM as ALM tools and processes that are used to manage Agile software development projects. For example, rather than using Waterfall's phased approach, Agile ALM offers an approach to software development in which design, code and requirements are all handled by the same team.\r\n<span style=\"font-weight: bold;\">How do you integrate Agile into an ALM framework?</span>\r\nAccording to Gerie Owen's article on Agile and ALM, adopting Agile means both a change to the ALM approach and a change to an organization's mind-set. An Agile ALM strategy will focus on the customer and will have the ability to adapt to shifting requirements -- from project planning to release management. For example, instead of just implementing controls to force early feedback from testers and business analysts, an organization would also foster a culture of collaboration.\r\n<span style=\"font-weight: bold;\">Are there tools that can help me achieve this?</span>\r\nALM tools are widely available but must be chosen with care, according to Yvette Francino, SearchSoftwareQuality contributor. Organizations should look for tools that facilitate the process without impeding acceptance of changing requirements. They would also need to integrate throughout the application lifecycle and be easy to maintain. In other words, the tool should manage the development process in an Agile way. In an article for SearchSoftwareQuality.com, Amy Reichert provides a list of Agile ALM tools and identifies their strengths and weaknesses. Rally Software, for example, offers a product that works well with Agile but, according to Reichert, does not provide an intuitive workflow. VersionOne, on the other hand, offers a tool that is more user-friendly but less compatible with Agile. Which one is best will depend on the company's needs.\r\n<span style=\"font-weight: bold;\">Are there challenges to Agile ALM that I should be aware of?</span>\r\nThe primary challenge to Agile ALM is in finding a balance between the two methodologies. A common pitfall is to over-ALM the development process. In other words, when developers and testers start to find workarounds to the software rules -- as they often do -- some react by creating more rules in order to more strictly enforce them. Meanwhile, processes lose their agility.\r\n<span style=\"font-weight: bold;\">How can I overcome these challenges?</span>\r\nTesting expert Amy Reichert cautions development teams to keep track of how many rules they add and how those rules are communicated. She also suggests having a discussion with the team, asking them why they are circumventing the process. Once everyone's role has been clarified, project managers can then decide which rules, if any, to add.\r\n<span style=\"font-weight: bold;\">Is Agile ALM a good approach for mobile development?</span>\r\nMobile development is faster and more competitive than traditional software development. It has newer technologies and higher-speed application cycles. These qualities could make mobile an excellent candidate for Agile ALM, but only if the methodology is amended to accommodate the challenges inherent in a more restrictive development process. In an article on mobile ALM, site editor James Denman suggested an ALM approach that focuses on smaller pieces of software and authenticates results as each part is finished. That way, teams can quickly discern whether the app will effectively serve its purpose or if it needs to be taken in a different direction.","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_Agile_Application_Life_Cycle_Management_Software.png","alias":"agile-application-life-cycle-management-software"},"397":{"id":397,"title":"Mobile Testing","description":" Mobile application testing is the process through which applications are tested for required quality, functionality, compatibility, usability, performance and other characteristics.\r\nIt includes a broad range of application testing and evaluation techniques that encompasses both standard software testing and mobile-platform-specific testing procedures.\r\nMobile application testing is typically performed by mobile application developers after a mobile application is developed or before it is released to consumers. Typically, the key objectives of mobile application testing are:\r\n<span style=\"font-style: italic;\">Hardware compatibility and functionality</span> - The mobile application’s response to a mobile device's physical input and interaction with components. This includes a touch screen, keyboard, display, sensors, network and more.\r\n<span style=\"font-style: italic;\">OS compatibility</span> - Evaluates and ensures that the application is completely compatible with different OS platforms.\r\n<span style=\"font-style: italic;\">Source code evaluation</span> - Identifies and resolves any code errors and bugs within the application.\r\n<span style=\"font-style: italic;\">Usability and Functionality</span> - The application is easy to use and provides all desired functionalities.","materialsDescription":" <span style=\"font-weight: bold;\">How is mobile application testing different from mobile testing?</span>\r\nWhen you are asked to do mobile testing, you must test the mobile phone itself. It may include protocol testing, battery testing, network connectivity testing, software compatibility testing and more.\r\nOn the other hand, mobile application testing is to test applications and software built for mobile phones. In this case, the application needs to be tested to verify whether it meets the specified functional and non-functional requirements.\r\n<span style=\"font-weight: bold;\">What are the different types of mobile application testing?</span>\r\n<ol><li>Functional Testing</li><li>User Interface Testing</li><li>Usability Testing</li><li>Performance Testing</li><li>Stress Testing</li><li>Compatibility Testing</li><li>Interruption Testing</li></ol>\r\n<span style=\"font-weight: bold;\">What is the most important type of mobile application testing?</span>\r\nWhile you cannot neglect any of the above testing types; some of them definitely deserve more attention than the others. For example, user interface testing must be done extensively to make sure that the application’s color schemes, consistency, menu styles, navigation, etc. are perfect.\r\nApart from the listed ones, it is also important to carry out monkey testing of the application to examine the stability of application when continuous invalid user inputs are provided.\r\nAnother important aspect of mobile application testing is to examine how the application reacts when there is no or little network coverage.\r\n<span style=\"font-weight: bold;\">What are the best ways to carry out mobile application testing?</span>\r\nMobile application testing is not just about writing test cases and executing them. Below are some pointers that can help a tester test mobile applications in the most effective manner.\r\n<ul><li>Explore and learn about mobile phones and their attributes. Domain knowledge will really help you see beyond the obvious.</li><li>Understand when, how and where the application will be used and then create test cases.</li><li>Study the mobile phones on which the applications will run and write appropriate test cases.</li><li>Use simulators as often as possible to execute the test cases.</li><li>Use remote device services (RDA) as well.</li></ul>\r\n<span style=\"font-weight: bold;\">Can mobile application testing be automated?</span>\r\nYes, it can. The fact that mobile application testing is gradually grasping the attention of the IT industry may be the reason why mobile test automation tools are being released into the market. It is best to keep your options open and explore all forms of mobile application testing and choose the ones that best suit your needs.","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_Mobile_Testing.png","alias":"mobile-testing"},"399":{"id":399,"title":"Requirements Visualization, Definition, and Management","description":" Requirements management is the process of documenting, analyzing, tracing, prioritizing and agreeing on requirements and then controlling change and communicating to relevant stakeholders. It is a continuous process throughout a project. A requirement is a capability to which a project outcome (product or service) should conform.\r\nThe purpose of requirements management is to ensure that an organization documents, verifies, and meets the needs and expectations of its customers and internal or external stakeholders. Requirements management begins with the analysis and elicitation of the objectives and constraints of the organization. Requirements management further includes supporting planning for requirements, integrating requirements and the organization for working with them (attributes for requirements), as well as relationships with other information delivering against requirements, and changes for these.\r\nThe traceability thus established is used in managing requirements to report back fulfilment of company and stakeholder interests in terms of compliance, completeness, coverage, and consistency. Traceabilities also support change management as part of requirements management in understanding the impacts of changes through requirements or other related elements (e.g., functional impacts through relations to functional architecture), and facilitating introducing these changes.\r\nRequirements management involves communication between the project team members and stakeholders, and adjustment to requirements changes throughout the course of the project. To prevent one class of requirements from overriding another, constant communication among members of the development team is critical. For example, in software development for internal applications, the business has such strong needs that it may ignore user requirements, or believe that in creating use cases, the user requirements are being taken care of.\r\nRequirements traceability is concerned with documenting the life of a requirement. It should be possible to trace back to the origin of each requirement and every change made to the requirement should therefore be documented in order to achieve traceability. Even the use of the requirement after the implemented features have been deployed and used should be traceable.\r\nRequirements come from different sources, like the business person ordering the product, the marketing manager and the actual user. These people all have different requirements for the product. Using requirements traceability, an implemented feature can be traced back to the person or group that wanted it during the requirements elicitation. This can, for example, be used during the development process to prioritize the requirement, determining how valuable the requirement is to a specific user. It can also be used after the deployment when user studies show that a feature is not used, to see why it was required in the first place.","materialsDescription":"<span style=\"font-weight: bold; \">Requirements activities</span>\r\nAt each stage in a development process, there are key requirements management activities and methods. To illustrate, consider a standard five-phase development process with Investigation, Feasibility, Design, Construction, and Test, and Release stages.\r\n<span style=\"font-style: italic; \"><span style=\"font-weight: bold; \">Investigation</span></span>\r\nIn Investigation, the first three classes of requirements are gathered from the users, from the business, and from the development team. In each area, similar questions are asked; what are the goals, what are the constraints, what are the current tools or processes in place, and so on. Only when these requirements are well understood can functional requirements be developed.\r\nIn the common case, requirements cannot be fully defined at the beginning of the project. Some requirements will change, either because they simply weren’t extracted, or because internal or external forces at work affect the project in mid-cycle.\r\nThe deliverable from the Investigation stage is a requirements document that has been approved by all members of the team. Later, in the thick of development, this document will be critical in preventing scope creep or unnecessary changes. As the system develops, each new feature opens a world of new possibilities, so the requirements specification anchors the team to the original vision and permits a controlled discussion of scope change.\r\nWhile many organizations still use only documents to manage requirements, others manage their requirements baselines using software tools. These tools allow requirements to be managed in a database, and usually have functions to automate traceability (e.g., by allowing electronic links to be created between parent and child requirements, or between test cases and requirements), electronic baseline creation, version control, and change management. Usually, such tools contain an export function that allows a specification document to be created by exporting the requirements data into a standard document application.\r\n<span style=\"font-style: italic; \"><span style=\"font-weight: bold; \">Feasibility</span></span>\r\nIn the Feasibility stage, the costs of the requirements are determined. For user requirements, the current cost of work is compared to the future projected costs once the new system is in place. Questions such as these are asked: “What are data entry errors costing us now?” Or “What is the cost of scrap due to operator error with the current interface?” Actually, the need for the new tool is often recognized as these questions come to the attention of financial people in the organization.\r\nBusiness costs would include, “What department has the budget for this?” “What is the expected rate of return on the new product in the marketplace?” “What’s the internal rate of return in reducing the costs of training and support if we make a new, easier-to-use system?”\r\nTechnical costs are related to software development costs and hardware costs. “Do we have the right people to create the tool?” “Do we need new equipment to support expanded software roles?” This last question is an important type. The team must inquire into whether the newest automated tools will add sufficient processing power to shift some of the burdens from the user to the system in order to save people time.\r\nThe question also points out a fundamental point about requirements management. A human and a tool form a system, and this realization is especially important if the tool is a computer or a new application on a computer. The human mind excels in parallel processing and interpretation of trends with insufficient data. The CPU excels in serial processing and accurate mathematical computation. The overarching goal of the requirements management effort for a software project would thus be to make sure the work being automated gets assigned to the proper processor. For instance, “Don’t make the human remember where she is in the interface. Make the interface report the human’s location in the system at all times.” Or “Don’t make the human enter the same data in two screens. Make the system store the data and fill in the second screen as needed.”\r\nThe deliverable from the Feasibility stage is the budget and schedule for the project.\r\n<span style=\"font-style: italic;\"><span style=\"font-weight: bold;\">Design</span></span>\r\nAssuming that costs are accurately determined and benefits to be gained are sufficiently large, the project can proceed to the Design stage. In Design, the main requirements management activity is comparing the results of the design against the requirements document to make sure that work is staying in scope.\r\nAgain, flexibility is paramount to success. Here’s a classic story of scope change in mid-stream that actually worked well. Ford auto designers in the early ‘80s were expecting gasoline prices to hit $3.18 per gallon by the end of the decade. Midway through the design of the Ford Taurus, prices had centered to around $1.50 a gallon. The design team decided they could build a larger, more comfortable, and more powerful car if the gas prices stayed low, so they redesigned the car. The Taurus launch set nationwide sales records when the new car came out, primarily because it was so roomy and comfortable to drive.\r\nIn most cases, however, departing from the original requirements to that degree does not work. So the requirements document becomes a critical tool that helps the team make decisions about design changes.\r\n<span style=\"font-style: italic;\"><span style=\"font-weight: bold;\">Construction and test</span></span>\r\nIn the construction and testing stage, the main activity of requirements management is to make sure that work and cost stay within schedule and budget, and that the emerging tool does, in fact, meet requirements. A main tool used in this stage is prototype construction and iterative testing. For a software application, the user interface can be created on paper and tested with potential users while the framework of the software is being built. The results of these tests are recorded in a user interface design guide and handed off to the design team when they are ready to develop the interface. This saves time and makes their jobs much easier.\r\nVerification: This effort verifies that the requirement has been implemented correctly. There are 4 methods of verification: analysis, inspection, testing, and demonstration. Numerical software execution results or through-put on a network test, for example, provides analytical evidence that the requirement has been met. Inspection of vendor documentation or spec sheets also verifies requirements. Actually testing or demonstrating the software in a lab environment also verifies the requirements: a test type of verification will occur when test equipment not normally part of the lab (or system under test) is used. Comprehensive test procedures which outline the steps and their expected results clearly identify what is to be seen as a result of performing the step. After the step or set of steps is completed the last step's expected result will call out what has been seen and then identify what requirements or requirements have been verified (identified by number). The requirement number, title, and verbiage are tied together in another location in the test document.\r\n<span style=\"font-style: italic;\"><span style=\"font-weight: bold;\">Requirements change management</span></span>\r\nHardly would any software development project be completed without some changes being asked of the project. The changes can stem from changes in the environment in which the finished product is envisaged to be used, business changes, regulation changes, errors in the original definition of requirements, limitations in technology, changes in the security environment and so on. The activities of requirements change management include receiving the change requests from the stakeholders, recording the received change requests, analyzing and determining the desirability and process of implementation, implementation of the change request, quality assurance for the implementation and closing the change request. Then the data of change requests be compiled, analyzed and appropriate metrics are derived and dovetailed into the organizational knowledge repository.\r\n<span style=\"font-style: italic;\"><span style=\"font-weight: bold;\">Release</span></span>\r\nRequirements management does not end with product release. From that point on, the data coming in about the application’s acceptability is gathered and fed into the Investigation phase of the next generation or release. Thus the process begins again.","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_Requirements_Visualization.png","alias":"requirements-visualization-definition-and-management"},"401":{"id":401,"title":"Service-Oriented Architecture and Web Services","description":" Service-oriented architecture (SOA) is a style of software design where services are provided to the other components by application components, through a communication protocol over a network. An SOA service is a discrete unit of functionality that can be accessed remotely and acted upon and updated independently, such as retrieving a credit card statement online. SOA is also intended to be independent of vendors, products and technologies.\r\nA service has four properties according to one of many definitions of SOA:\r\n<ul><li>It logically represents a business activity with a specified outcome.</li><li>It is self-contained.</li><li>It is a black box for its consumers, meaning the consumer does not have to be aware of the service's inner workings.</li><li>It may consist of other underlying services.</li></ul>\r\nDifferent services can be used in conjunction to provide the functionality of a large software application,[4] a principle SOA shares with modular programming. Service-oriented architecture integrates distributed, separately maintained and deployed software components. It is enabled by technologies and standards that facilitate components' communication and cooperation over a network, especially over an IP network.\r\nSOA is related to the idea of an application programming interface (API), an interface or communication protocol between different parts of a computer program intended to simplify the implementation and maintenance of software. An API can be thought of as the service, and the SOA the architecture that allows the service to operate.","materialsDescription":" <span style=\"font-weight: bold;\">What is Service-Oriented Architecture?</span>\r\nService-oriented architecture (SOA) is a software architecture style that supports and distributes application components that incorporates discovery, data mapping, security and more. Service-oriented architecture has two main functions:\r\n<ol><li>Create an architectural model that defines goals of applications and methods that will help achieve those goals.</li><li>Define implementations specifications linked through WSDL (Web Services Description Language) and SOAP (Simple Object Access Protocol) specifications.</li></ol>\r\nService-oriented architecture principles are made up of nine main elements:\r\n<ol><li>Standardized Service Contract where services are defined making it easier for client applications to understand the purpose of the service.</li><li>Loose Coupling is a way to interconnecting components within the system or network so that the components can depend on one another to the least extent acceptable. When a service functionality or setting changes there is no downtime or breakage of the application running.</li><li>Service Abstraction hides the logic behind what the application is doing. It only relays to the client application what it is doing, not how it executes the action.</li><li>Service Reusability divides the services with the intent of reusing as much as possible to avoid spending resources on building the same code and configurations.</li><li>Service Autonomy ensures the logic of a task or a request is completed within the code.</li><li>Service Statelessness whereby services do not withhold information from one state to another in the client application.</li><li>Service Discoverability allows services to be discovered via a service registry.</li><li>Service Composability breaks down larger problems into smaller elements, segmenting the service into modules, making it more manageable.</li><li>Service Interoperability governs the use of standards (e.g. XML) to ensure larger usability and compatibility.</li></ol>\r\n<span style=\"font-weight: bold;\">How Does Service-Oriented Architecture Work?</span>\r\nA service-oriented architecture (SOA) works as a components provider of application services to other components over a network. Service-oriented architecture makes it easier for software components to work with each other over multiple networks.\r\nA service-oriented architecture is implemented with web services (based on WSDL and SOAP), to be more accessible over standard internet protocols that are on independent platforms and programming languages.\r\nService-oriented architecture has 3 major objectives all of which focus on parts of the application cycle:\r\n<ol><li>Structure process and software components as services – making it easier for software developers to create applications in a consistent way.</li><li>Provide a way to publish available services (functionality and input/output requirements) – allowing developers to easily incorporate them into applications.</li><li>Control the usage of these services for security purposes – mainly around the components within the architecture, and securing the connections between those components.</li></ol>\r\nMicroservices architecture software is largely an updated implementation of service-oriented architecture (SOA). The software components are created as services to be used via APIs ensuring security and best practices, just as in traditional service-oriented architectures.\r\n<span style=\"font-weight: bold;\">What are the benefits of Service-Oriented Architecture?</span>\r\nThe main benefits of service-oriented architecture solutions are:\r\n<ul><li>Extensibility – easily able to expand or add to it.</li><li>Reusability – opportunity to reuse multi-purpose logic.</li><li>Maintainability – the ability to keep it up to date without having to remake and build the architecture again with the same configurations.</li></ul>","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_Service_Oriented_Architecture_and_Web_Services.png","alias":"service-oriented-architecture-and-web-services"},"403":{"id":403,"title":"Software Quality Analysis and Measurement","description":" Software quality measures whether the software satisfies its requirements. Software requirements are classified as either functional or non-functional.\r\nFunctional requirements specify what the software should do. Functional requirements could be calculations, technical details, data manipulation, and processing, or any other specific function that defines what an application is meant to accomplish.\r\nNon-functional requirements specify how the system should work. Also known as “quality attributes” non-functional requirements include things like disaster recovery, portability, privacy, security, supportability, and usability.\r\nNote that most factors indicating software quality fit into the non-functional requirements category. And, while it’s obviously important that software does what it’s built to do, this is the bare minimum you would expect from any application.\r\nBelow are some examples of test metrics and methods for measuring the important aspects of software quality. Efficient measuring and testing of your software for quality is the only way to maximize the chances of releasing high-quality software in today’s fast-paced development environments.\r\nYou can measure reliability by counting the number of high priority bugs found in production. You can also use load testing, which assesses how well the software functions under ordinary conditions of use. It’s important to note that “ordinary conditions of use” can vary between low loads and high loads—the point is that such environments are expected.\r\nLoad testing is also useful for measuring performance efficiency. Stress testing is an important variation on load testing used to determine the maximum operating capacity of an application.\r\nStress testing is conducted by inundating software with requests far exceeding its normal and expected patterns of use to determine how far a system can be pushed before it breaks. With stress testing, you get insight into the recoverability of the software when it breaks—ideally, a system that fails should have a smooth recovery.\r\nYou can measure security by assessing how long it takes to patch or fix software vulnerabilities. You can also check actual security incidents from previous software versions, including whether the system was breached and if any breaches caused downtime for users. All previous security issues should, of course, be addressed in future releases.\r\nCounting the number of lines of code is a simple measure of maintainability—software with more lines of code is harder to maintain, meaning changes are more likely to lead to errors.\r\nThere are several detailed test metrics used to check the complexity of code, such as cyclomatic complexity, which counts the amount of linearly independent paths through a program’s source code.\r\nYou can check the rate of delivery by counting the number of software releases. Another measure is the number of “stories” or user requirements shipped to the user.\r\nYou can test the GUI to make sure it’s simple and not frustrating for end-users. The problem is that GUI testing is complex and time-consuming – there are many possible GUI operations and sequences that require testing in most software. And that means it takes a long time to design test cases.\r\nThe complexity of GUI testing competes with the objective of releasing software quickly, which has necessitated the implementation of automated testing. Several test suites that completely simulate user behavior are available.","materialsDescription":" <span style=\"font-weight: bold;\">What is Software Quality Metrics?</span>\r\nThe word 'metrics' refers to standards for measurements. Software Quality Metrics means a measurement of attributes, pertaining to software quality along with its process of development.\r\nThe term "software quality metrics" illustrate the picture of measuring the software qualities by recording the number of defects or security loopholes present in the software. However, quality measurement is not restricted to the counting defects or vulnerabilities but also covers other aspects of qualities such as maintainability, reliability, integrity, usability, customer satisfaction, etc.\r\n<span style=\"font-weight: bold;\">Why Software Quality Metrics?</span>\r\n<ol><li>To define and categorize elements in order to have a better understanding of each and every process and attribute.</li><li>To evaluate and assess each of these processes and attribute against the given requirements and specifications.</li><li>Predicting and planning the next move w.r.t software and business requirements.</li><li>Improving the Overall quality of the process and product, and subsequently of project.</li></ol>\r\n<span style=\"font-weight: bold;\">Software Quality Metrics: a sub-category of Software Metrics</span>\r\nIt is basically, a subclass of software metrics that mainly emphasizes on quality assets of the software product, process and project. A software metric is a broader concept that incorporates software quality metrics in it, and mainly consists of three types of metrics:\r\n<ul><li><span style=\"font-weight: bold;\">Product Metrics:</span> it includes size, design, complexity, performance and other parameters that are associated with the product's quality.</li><li><span style=\"font-weight: bold;\">Process Metrics:</span> it involves parameters like time-duration in locating and removing defects, response time for resolving issues, etc.</li><li><span style=\"font-weight: bold;\">Project Metrics:</span> it may include a number of teams, developers involved, cost and duration for the project, etc.</li></ul>\r\n<span style=\"font-weight: bold;\">Features of good Software Quality Metrics:</span>\r\n<ul><li>Should be specific to measure the particular attribute or an attribute of greater importance.</li><li>Comprehensive for a wide variety of scenarios.</li><li>Should not consider attributes that have already been measured by some other metric.</li><li>Reliable to work similarly in all conditions.</li><li>Should be easy and simple to understand and operate.</li></ul>","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_Software_Quality_Analysis_and_Measurement.png","alias":"software-quality-analysis-and-measurement"},"405":{"id":405,"title":"Mobile Enterprise Application Platforms","description":"<span style=\"font-weight: bold; \">A mobile enterprise application platform (MEAP)</span> is a development environment that provides tools and middleware to develop, test, deploy and manage corporate software running on mobile devices.\r\nEnterprise mobile application development addresses the difficulties of developing mobile software by managing the diversity of devices, networks and user groups at the time of deployment and throughout the mobile computing technology lifecycle. Unlike standalone apps, an enterprise mobile app development services a comprehensive, long-term approach to deploying mobility. Cross-platform considerations are one big driver behind using MEAPs. For example, a company can use an enterprise mobile app development to develop the mobile application once and deploy it to a variety of mobile devices (including smart phones, tablets, notebooks and ruggedized handhelds) with no changes to the underlying business logic.\r\nPlatform applications are best for companies that wish to deploy multiple applications on a single infrastructure, scaled to the size of their current mobile field force and available in an online and offline mode. Enterprise mobile app platform provides higher level languages and easy development templates to simplify and speed the mobile application development timeframe, requiring less programming knowledge for mobile business application deployment.\r\nThere are many advantages associated with enterprise mobile application development platform. First of all, it can be run on the cloud. Without maintaining separate sets of code, mobile enterprise application platforms can support multiple types of operating systems and mobile devices. This means a company can deploy a mobile application to different mobile devices with the help of mobile enterprise application platforms without having to worry about compatibility. As most enterprise mobile development platforms have a tool set for modifications, creation of custom app extensions is quite easy and convenient. Enterprise mobile application platforms can centrally manage mobile applications and can also help in integration with multiple server data sources.","materialsDescription":"<h1 class=\"align-center\">What are the benefits of enterprise mobile app platform? </h1>\r\n<ul><li>Create apps and complex forms for any type of mobile device and OS without having to maintain separate sets of code.</li><li>Create tailor-made apps for specific user groups, giving them exactly what they need; usually, a mash-up of reading/writing access to your backend systems, publicly available web services and device features such as camera, GPS, sign-on screen, etc.</li><li>Requires basic and limited coding skills e.g. HTML and CSS.</li><li>Allows a high degree of re-use of the code and interactions developed.</li><li>Provide the offline capability for mobile users in areas without WiFi or cellular coverage.</li><li>Once the platform is integrated into the important back-end systems, creating new apps and forms can be done in hours rather than weeks or months.</li><li>Enterprise mobile application development services can be run on the cloud and purchased on a subscription basis.</li></ul>\r\n<h1 class=\"align-center\">Pros and cons of MEAP</h1>\r\nAlong with the benefits described above, a mobile enterprise application platform extends beyond fourth-generation language (4GL) tools for app development to use a graphical environment and dedicated script language. The tool makes business apps accessible to users from any location at any time. For ease of IT management, some MEAP products can run as a cloud service.\r\nA MEAP, like any technology, comes with challenges. The initial investment is high - it's expensive to begin with, though the total cost of ownership (TCO) goes down with use over time - and it requires IT to perform additional tasks such as updating content, securing data, maintaining applications with updates and managing user authentication.\r\n<h1 class=\"align-center\">Important features</h1>\r\nIn general, a MEAP has two important features:\r\n<ul><li>A mobile application development environment and back-end web services to manage those mobile applications and link them to enterprise applications and databases.</li><li>A centralized management component that enables an administrator to control which users can access an application and what enterprise databases that application can pull data from.</li></ul>\r\nSometimes, organizations will use a mobile enterprise application platform in conjunction with enterprise mobility management (EMM) or mobile device management (MDM). MDM manages mobile devices, while MEAP products manage the enterprise applications running on those devices - although there is sometimes overlap between the functionalities of these two technologies.\r\n<br /><br /> ","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_Mobile_Enterprise_Application_Platforms.png","alias":"mobile-enterprise-application-platforms"},"492":{"id":492,"title":"Enterprise Service Bus Middleware","description":" An enterprise service bus (ESB) implements a communication system between mutually interacting software applications in a service-oriented architecture (SOA). It represents a software architecture for distributed computing, and is a special variant of the more general client-server model, wherein any application may behave as server or client. ESB promotes agility and flexibility with regard to high-level protocol communication between applications. Its primary use is in enterprise application integration (EAI) of heterogeneous and complex service landscapes.\r\nThe concept of the enterprise service bus is analogous to the bus concept found in computer hardware architecture combined with the modular and concurrent design of high-performance computer operating systems. The motivation for the development of the architecture was to find a standard, structured, and general purpose concept for describing implementation of loosely coupled software components (called services) that are expected to be independently deployed, running, heterogeneous, and disparate within a network. ESB is also a common implementation pattern for service-oriented architecture, including the intrinsically adopted network design of the World Wide Web.\r\nNo global standards exist for enterprise service bus concepts or implementations. Most providers of message-oriented middleware have adopted the enterprise service bus concept as de facto standard for a service-oriented architecture. The implementations of ESB use event-driven and standards-based message-oriented middleware in combination with message queues as technology frameworks. However, some software manufacturers relabel existing middleware and communication solutions as ESB without adopting the crucial aspect of a bus concept.\r\nThe ESB is implemented in software that operates between the business applications, and enables communication among them. Ideally, the ESB should be able to replace all direct contact with the applications on the bus, so that all communication takes place via the ESB. To achieve this objective, the ESB must encapsulate the functionality offered by its component applications in a meaningful way. This typically occurs through the use of an enterprise message model. The message model defines a standard set of messages that the ESB transmits and receives. When the ESB receives a message, it routes the message to the appropriate application. Often, because that application evolved without the same message model, the ESB has to transform the message into a format that the application can interpret. A software adapter fulfills the task of effecting these transformations, analogously to a physical adapter.\r\nESBs rely on accurately constructing the enterprise message model and properly designing the functionality offered by applications. If the message model does not completely encapsulate the application functionality, then other applications that desire that functionality may have to bypass the bus, and invoke the mismatched applications directly. Doing so violates the principles of the ESB model, and negates many of the advantages of using this architecture.\r\nThe beauty of the ESB lies in its platform-agnostic nature and the ability to integrate with anything at any condition. It is important that Application Lifecycle Management vendors truly apply all the ESB capabilities in their integration products while adopting SOA. Therefore, the challenges and opportunities for EAI vendors are to provide an integration solution that is low-cost, easily configurable, intuitive, user-friendly, and open to any tools customers choose.","materialsDescription":" <span style=\"font-weight: bold;\">What is an Enterprise Service Bus (ESB)?</span>\r\nAn Enterprise Service Bus (ESB) is a type of software platform known as middleware, which works behind the scenes to aid application-to-application communication. Think of an ESB as a “bus” that picks up information from one system and delivers it to another.\r\nThe term ESB first appeared in 2002, but the technology continues to evolve, driven by the need for ever-emerging internet applications to communicate and interact with one another.\r\n<span style=\"font-weight: bold;\">Why would I want an ESB?</span>\r\nImagine that there are two systems in an organization that needs to exchange data. The technical teams that represent each system plan and implement a solution that allows these systems to communicate. A year or two later, the organization deploys several more systems that need to interact with each other as well as the existing two systems. How can all teams develop and reach an agreement on the best solution?\r\nIt becomes very complicated to manage and maintain one solution as an organization’s IT systems expand. With just 10 systems, there could be 100 different interfaces and scores of disparate technical requirements.\r\nAn ESB provides a secure, scalable and cost-effective infrastructure that enables real-time data exchange among many systems. Data from one system, known as a service provider, can be put on the enterprise service bus as a message, which is sent immediately to a service consumer of the data. If a new system wants to consume this same data, all it has to do is plug into the bus in the same manner.","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_Enterprise_Service_Bus_Middleware.png","alias":"enterprise-service-bus-middleware"},"806":{"id":806,"title":"Functional testing tools","description":"Functional testing is the stage of product development when software is tested for compliance. Functional testing can be manual or automatic. Functional testing software usually provides some input so that you can evaluate the output to see how the software works.\r\nFunctional testing is one of the types of testing aimed at checking the compliance of the functional requirements of the software with its actual characteristics. The main objective of functional testing is to confirm that the developed software product has all the functionality required by the customer.\r\nDepending on the purpose, functional testing may be conducted:\r\nBased on the functional requirements specified in the requirements specification. At the same time, test cases are created for testing (test cases), the compilation of which takes into account the priority of software functions that must be covered by tests. Thus, we can make sure that all the functions of the developed product work correctly with different types of input data, their combinations, quantities, etc.\r\nBased on the business processes that the application must provide. In this case, we are not interested in the performance of individual software functions, as we are the correctness of the operations performed, in terms of system usage scenarios. Thus, testing in this case will be based on options for using the system (use cases).\r\nThe aspects described above are implemented using the following types and levels of testing:\r\n<ul><li>Modular (component).</li><li>Integration.</li><li>Systemic.</li><li>Regression.</li><li>Acceptance.</li></ul>\r\nAss well, there are many other types that provide complete and comprehensive testing of functional requirements for software.\r\nChoosing the right functional testing tool for projects is key. Highly qualified testing professionals constantly update the set of tools used, as well as develop their own.","materialsDescription":"<span style=\"font-weight: bold;\">What is functional testing?</span>\r\nFunctional testing is a segment of security testing. The security mechanisms of the system are tested, under operational conditions, for correct operation.\r\nFunctional testing verifies that the end user gets what they want from the application. It involves testing to ensure that the tasks or the steps required for complete functionality work well. Functional testing involves testing of functional requirements as per the specification.\r\n<span style=\"font-weight: bold;\">What are the differences between system and functional testing?</span>\r\nSystem testing has classifications like functional and non-functional testing. Hence the functional testing is a part of system testing.\r\nSystem testing allows the testers to test the typical end product. Every single module, interface and every minute detail are needed to be tested in system testing.\r\nFunctional testing is aimed at testing the functionalities of the product being tested. These functionalities include volume, stress, load, security, scalability, performance, etc. Hardware and software are not concerned with functional testing.\r\nFunctional testing involves testing of functional requirements as per the specification. On the other hand, system testing involves testing the system as a whole. This may involve testing of proper installation and uninstalling of the application. System testing tests for all internal and external components that make the system.","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_functional_testing_tools.png","alias":"functional-testing-tools"},"808":{"id":808,"title":"Bug tracking systems","description":" A bug tracking system or defect tracking system is a software application that keeps track of reported software bugs in software development projects. It may be regarded as a type of issue tracking system.\r\nMany bug tracking systems, such as those used by most open-source software projects, allow end-users to enter bug reports directly. Other systems are used only internally in a company or organization doing software development. Typically bug tracking systems are integrated with other project management software.\r\nA bug tracking system is usually a necessary component of a good software development infrastructure, and consistent use of a bug or issue tracking system is considered one of the "hallmarks of a good software team".\r\nA major component of a bug tracking system is a database that records facts about known bugs. Facts may include the time a bug was reported, its severity, the erroneous program behavior, and details on how to reproduce the bug; as well as the identity of the person who reported it and any programmers who may be working on fixing it.\r\nTypical bug tracking systems support the concept of the life cycle for a bug which is tracked through the status assigned to the bug. A bug tracking system should allow administrators to configure permissions based on status, move the bug to another status, or delete the bug. The system should also allow administrators to configure the bug statuses and to what extent a bug in a particular status can be moved. Some systems will e-mail interested parties, such as the submitter and assigned programmers, when new records are added or the status changes.\r\nThe main benefit of a bug-tracking system is to provide a clear centralized overview of development requests (including both bugs and improvements, the boundary is often fuzzy), and their state. The prioritized list of pending items (often called backlog) provides valuable input when defining the product road map, or maybe just "the next release".\r\nIn a corporate environment, a bug-tracking system may be used to generate reports on the productivity of programmers at fixing bugs. However, this may sometimes yield inaccurate results because different bugs may have different levels of severity and complexity. The severity of a bug may not be directly related to the complexity of fixing the bug. There may be different opinions among the managers and architects.\r\nA local bug tracker (LBT) is usually a computer program used by a team of application support professionals (often a help desk) to keep track of issues communicated to software developers. Using an LBT allows support professionals to track bugs in their "own language" and not the "language of the developers." In addition, an LBT allows a team of support professionals to track specific information about users who have called to complain — this information may not always be needed in the actual development queue. Thus, there are two tracking systems when an LBT is in place.","materialsDescription":" <span style=\"font-weight: bold;\">What does Bug Tracking mean?</span>\r\nBug tracking is a process used by quality assurance personnel and programmers to keep track of software problems and resolutions. A bug tracking system is normally put in place to store information about reported bugs. This type of issue-tracking system provides a clear, centralized overview of development requests and their corresponding states.\r\nBug tracking enables users to enter bug reports directly into a system that logs and tracks them. Diligent use of a bug tracking system provides a record of a software team's effectiveness. Local bug trackers are often used by teams of application support professionals to keep track of issues communicated to software developers.\r\nBug tracking systems include a database, which keeps track of facts pertaining to each bug. These facts might include the time a bug was reported, its severity, incorrect program behavior, details on how to recreate the bug,who reported the bug and what the programmers did to fix it. Bug tracking systems are associated with a bug's life cycle, which is tracked through the status assigned to each bug. This allows administrators to set permissions based on a bug's status, move bugs to other statuses or delete them.<br /><br />","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon-bug-tracking-systems.png","alias":"bug-tracking-systems"}},"companyUrl":"https://roobykon.com","countryCodes":["USA"],"certifications":[],"isSeller":true,"isSupplier":false,"isVendor":true,"presenterCodeLng":"","seo":{"title":"Roobykon Software","keywords":"","description":"We build online marketplaces! Marketplaces similar with Airbnb, Booking, Ebay, Amazon, Etsy, Upwork, Uber, Getaround, Taskrabbit, Kickstarter, Fundable. We are experienced with Sharetribe, OpenCart, Shopify, Cocorico, CS-cart and some other platforms.\r\n\r\nOur e","og:title":"Roobykon Software","og:description":"We build online marketplaces! Marketplaces similar with Airbnb, Booking, Ebay, Amazon, Etsy, Upwork, Uber, Getaround, Taskrabbit, Kickstarter, Fundable. We are experienced with Sharetribe, OpenCart, Shopify, Cocorico, CS-cart and some other platforms.\r\n\r\nOur e","og:image":"https://old.roi4cio.com/uploads/roi/company/roobykon_software_1.png"},"eventUrl":"","vendorPartners":[],"supplierPartners":[],"vendoredProducts":[],"suppliedProducts":[],"partnershipProgramme":null}},"aliases":{},"links":{},"meta":{},"loading":false,"error":null},"implementations":{"implementationsByAlias":{},"aliases":{},"links":{},"meta":{},"loading":false,"error":null},"agreements":{"agreementById":{},"ids":{},"links":{},"meta":{},"loading":false,"error":null},"comparison":{"loading":false,"error":false,"templatesById":{},"comparisonByTemplateId":{},"products":[],"selectedTemplateId":null},"presentation":{"type":null,"company":{},"products":[],"partners":[],"formData":{},"dataLoading":false,"dataError":false,"loading":false,"error":false},"catalogsGlobal":{"subMenuItemTitle":""}}