{"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":{"_type":"localeString","en":"Vendor","ru":"Производитель"},"role-supplier":{"_type":"localeString","en":"Supplier","ru":"Поставщик"},"products-popover":{"de":"die produkte","ru":"Продукты","_type":"localeString","en":"Products"},"introduction-popover":{"_type":"localeString","en":"introduction","ru":"внедрения"},"partners-popover":{"_type":"localeString","en":"partners","ru":"партнеры"},"update-profile-button":{"en":"Update profile","ru":"Обновить профиль","_type":"localeString"},"read-more-button":{"ru":"Показать ещё","_type":"localeString","en":"Show more"},"hide-button":{"ru":"Скрыть","_type":"localeString","en":"Hide"},"user-implementations":{"ru":"Внедрения","_type":"localeString","en":"Deployments"},"categories":{"ru":"Компетенции","_type":"localeString","en":"Categories"},"description":{"ru":"Описание","_type":"localeString","en":"Description"},"role-user":{"ru":"Пользователь","_type":"localeString","en":"User"},"partnership-vendors":{"ru":"Партнерство с производителями","_type":"localeString","en":"Partnership with vendors"},"partnership-suppliers":{"ru":"Партнерство с поставщиками","_type":"localeString","en":"Partnership with suppliers"},"reference-bonus":{"ru":"Бонус за референс","_type":"localeString","en":"Bonus 4 reference"},"partner-status":{"ru":"Статус партнёра","_type":"localeString","en":"Partner status"},"country":{"_type":"localeString","en":"Country","ru":"Страна"},"partner-types":{"ru":"Типы партнеров","_type":"localeString","en":"Partner types"},"branch-popover":{"ru":"область деятельности","_type":"localeString","en":"branch"},"employees-popover":{"ru":"количество сотрудников","_type":"localeString","en":"number of employees"},"partnership-programme":{"en":"Partnership program","ru":"Партнерская программа","_type":"localeString"},"partner-discounts":{"ru":"Партнерские скидки","_type":"localeString","en":"Partner discounts"},"registered-discounts":{"_type":"localeString","en":"Additional benefits for registering a deal","ru":"Дополнительные преимущества за регистрацию сделки"},"additional-advantages":{"ru":"Дополнительные преимущества","_type":"localeString","en":"Additional Benefits"},"additional-requirements":{"ru":"Требования к уровню партнера","_type":"localeString","en":"Partner level requirements"},"certifications":{"en":"Certification of technical specialists","ru":"Сертификация технических специалистов","_type":"localeString"},"sales-plan":{"ru":"Годовой план продаж","_type":"localeString","en":"Annual Sales Plan"},"partners-vendors":{"ru":"Партнеры-производители","_type":"localeString","en":"Partners-vendors"},"partners-suppliers":{"ru":"Партнеры-поставщики","_type":"localeString","en":"Partners-suppliers"},"all-countries":{"_type":"localeString","en":"All countries","ru":"Все страны"},"supplied-products":{"en":"Supplied products","ru":"Поставляемые продукты","_type":"localeString"},"vendored-products":{"_type":"localeString","en":"Produced products","ru":"Производимые продукты"},"vendor-implementations":{"en":"Produced deployments","ru":"Производимые внедрения","_type":"localeString"},"supplier-implementations":{"ru":"Поставляемые внедрения","_type":"localeString","en":"Supplied deployments"},"show-all":{"_type":"localeString","en":"Show all","ru":"Показать все"},"not-yet-converted":{"_type":"localeString","en":"Data is moderated and will be published soon. Please, try again later.","ru":"Данные модерируются и вскоре будут опубликованы. Попробуйте повторить переход через некоторое время."},"schedule-event":{"ru":"Pасписание событий","_type":"localeString","en":"Events schedule"},"implementations":{"ru":"Внедрения","_type":"localeString","en":"Deployments"},"register":{"ru":"Регистрация ","_type":"localeString","en":"Register"},"login":{"ru":"Вход","_type":"localeString","en":"Login"},"auth-message":{"en":"To view company events please log in or register on the sit.","ru":"Для просмотра ивентов компании авторизируйтесь или зарегистрируйтесь на сайт.","_type":"localeString"},"company-presentation":{"_type":"localeString","en":"Company presentation","ru":"Презентация компании"}},"header":{"help":{"_type":"localeString","en":"Help","de":"Hilfe","ru":"Помощь"},"how":{"ru":"Как это работает","_type":"localeString","en":"How does it works","de":"Wie funktioniert es"},"login":{"de":"Einloggen","ru":"Вход","_type":"localeString","en":"Log in"},"logout":{"ru":"Выйти","_type":"localeString","en":"Sign out"},"faq":{"en":"FAQ","de":"FAQ","ru":"FAQ","_type":"localeString"},"references":{"de":"References","ru":"Мои запросы","_type":"localeString","en":"Requests"},"solutions":{"ru":"Возможности","_type":"localeString","en":"Solutions"},"find-it-product":{"en":"Selection and comparison of IT product","ru":"Подбор и сравнение ИТ продукта","_type":"localeString"},"autoconfigurator":{"ru":"Калькулятор цены","_type":"localeString","en":" Price calculator"},"comparison-matrix":{"_type":"localeString","en":"Comparison Matrix","ru":"Матрица сравнения"},"roi-calculators":{"ru":"ROI калькуляторы","_type":"localeString","en":"ROI calculators"},"b4r":{"en":"Bonus for reference","ru":"Бонус за референс","_type":"localeString"},"business-booster":{"_type":"localeString","en":"Business boosting","ru":"Развитие бизнеса"},"catalogs":{"_type":"localeString","en":"Catalogs","ru":"Каталоги"},"products":{"ru":"Продукты","_type":"localeString","en":"Products"},"implementations":{"_type":"localeString","en":"Deployments","ru":"Внедрения"},"companies":{"en":"Companies","ru":"Компании","_type":"localeString"},"categories":{"en":"Categories","ru":"Категории","_type":"localeString"},"for-suppliers":{"ru":"Поставщикам","_type":"localeString","en":"For suppliers"},"blog":{"ru":"Блог","_type":"localeString","en":"Blog"},"agreements":{"en":"Deals","ru":"Сделки","_type":"localeString"},"my-account":{"ru":"Мой кабинет","_type":"localeString","en":"My account"},"register":{"_type":"localeString","en":"Register","ru":"Зарегистрироваться"},"comparison-deletion":{"ru":"Удаление","_type":"localeString","en":"Deletion"},"comparison-confirm":{"_type":"localeString","en":"Are you sure you want to delete","ru":"Подтвердите удаление"},"search-placeholder":{"en":"Enter your search term","ru":"Введите поисковый запрос","_type":"localeString"},"my-profile":{"_type":"localeString","en":"My profile","ru":"Мои данные"},"about":{"_type":"localeString","en":"About Us"},"it_catalogs":{"_type":"localeString","en":"IT catalogs"},"roi4presenter":{"en":"Roi4Presenter","_type":"localeString"},"roi4webinar":{"en":"Pitch Avatar","_type":"localeString"},"sub_it_catalogs":{"_type":"localeString","en":"Find IT product"},"sub_b4reference":{"_type":"localeString","en":"Get reference from user"},"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":{"en":"Bonus4Reference","_type":"localeString"},"it_our_it_catalogs":{"en":"Our IT Catalogs","_type":"localeString"},"it_products":{"_type":"localeString","en":"Find and compare IT products"},"it_implementations":{"_type":"localeString","en":"Learn implementation reviews"},"it_companies":{"_type":"localeString","en":"Find vendor and company-supplier"},"it_categories":{"_type":"localeString","en":"Explore IT products by category"},"it_our_products":{"_type":"localeString","en":"Our Products"},"it_it_catalogs":{"en":"IT catalogs","_type":"localeString"}},"footer":{"copyright":{"ru":"Все права защищены","_type":"localeString","en":"All rights reserved","de":"Alle rechte vorbehalten"},"company":{"en":"My Company","de":"Über die Firma","ru":"О компании","_type":"localeString"},"about":{"_type":"localeString","en":"About us","de":"Über uns","ru":"О нас"},"infocenter":{"en":"Infocenter","de":"Infocenter","ru":"Инфоцентр","_type":"localeString"},"tariffs":{"en":"Subscriptions","de":"Tarife","ru":"Тарифы","_type":"localeString"},"contact":{"ru":"Связаться с нами","_type":"localeString","en":"Contact us","de":"Kontaktiere uns"},"marketplace":{"de":"Marketplace","ru":"Marketplace","_type":"localeString","en":"Marketplace"},"products":{"en":"Products","de":"Produkte","ru":"Продукты","_type":"localeString"},"compare":{"en":"Pick and compare","de":"Wähle und vergleiche","ru":"Подобрать и сравнить","_type":"localeString"},"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":{"en":"Salestools","de":"Salestools","ru":"Salestools","_type":"localeString"},"automatization":{"ru":"Автоматизация расчетов","_type":"localeString","en":"Settlement Automation","de":"Abwicklungsautomatisierung"},"roi_calcs":{"_type":"localeString","en":"ROI calculators","de":"ROI-Rechner","ru":"ROI калькуляторы"},"matrix":{"_type":"localeString","en":"Comparison matrix","de":"Vergleichsmatrix","ru":"Матрица сравнения"},"b4r":{"de":"Rebate 4 Reference","ru":"Rebate 4 Reference","_type":"localeString","en":"Rebate 4 Reference"},"our_social":{"en":"Our social networks","de":"Unsere sozialen Netzwerke","ru":"Наши социальные сети","_type":"localeString"},"subscribe":{"de":"Melden Sie sich für den Newsletter an","ru":"Подпишитесь на рассылку","_type":"localeString","en":"Subscribe to newsletter"},"subscribe_info":{"en":"and be the first to know about promotions, new features and recent software reviews","ru":"и узнавайте первыми об акциях, новых возможностях и свежих обзорах софта","_type":"localeString"},"policy":{"en":"Privacy Policy","ru":"Политика конфиденциальности","_type":"localeString"},"user_agreement":{"ru":"Пользовательское соглашение ","_type":"localeString","en":"Agreement"},"solutions":{"ru":"Возможности","_type":"localeString","en":"Solutions"},"find":{"_type":"localeString","en":"Selection and comparison of IT product","ru":"Подбор и сравнение ИТ продукта"},"quote":{"ru":"Калькулятор цены","_type":"localeString","en":"Price calculator"},"boosting":{"en":"Business boosting","ru":"Развитие бизнеса","_type":"localeString"},"4vendors":{"ru":"поставщикам","_type":"localeString","en":"4 vendors"},"blog":{"_type":"localeString","en":"blog","ru":"блог"},"pay4content":{"en":"we pay for content","ru":"платим за контент","_type":"localeString"},"categories":{"en":"categories","ru":"категории","_type":"localeString"},"showForm":{"ru":"Показать форму","_type":"localeString","en":"Show form"},"subscribe__title":{"en":"We send a digest of actual news from the IT world once in a month!","ru":"Раз в месяц мы отправляем дайджест актуальных новостей ИТ мира!","_type":"localeString"},"subscribe__email-label":{"ru":"Email","_type":"localeString","en":"Email"},"subscribe__name-label":{"en":"Name","ru":"Имя","_type":"localeString"},"subscribe__required-message":{"_type":"localeString","en":"This field is required","ru":"Это поле обязательное"},"subscribe__notify-label":{"_type":"localeString","en":"Yes, please, notify me about news, events and propositions","ru":"Да, пожалуйста уведомляйте меня о новостях, событиях и предложениях"},"subscribe__agree-label":{"_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","ru":"Подписываясь на рассылку, вы соглашаетесь с %TERMS% и %POLICY% и даете согласие на использование файлов cookie и передачу своих персональных данных*"},"subscribe__submit-label":{"ru":"Подписаться","_type":"localeString","en":"Subscribe"},"subscribe__email-message":{"en":"Please, enter the valid email","ru":"Пожалуйста, введите корректный адрес электронной почты","_type":"localeString"},"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":{"ru":"Вы успешно подписаны на рассылку. Проверьте свой почтовый ящик.","_type":"localeString","en":"You are successfully subscribed! Check you mailbox."},"subscribe__error":{"en":"Subscription is unsuccessful. Please, try again later.","ru":"Не удалось оформить подписку. Пожалуйста, попробуйте позднее.","_type":"localeString"},"roi4presenter":{"de":"roi4presenter","ru":"roi4presenter","_type":"localeString","en":"Roi4Presenter"},"it_catalogs":{"_type":"localeString","en":"IT catalogs"},"roi4webinar":{"_type":"localeString","en":"Pitch Avatar"},"b4reference":{"_type":"localeString","en":"Bonus4Reference"}},"breadcrumbs":{"home":{"ru":"Главная","_type":"localeString","en":"Home"},"companies":{"_type":"localeString","en":"Companies","ru":"Компании"},"products":{"ru":"Продукты","_type":"localeString","en":"Products"},"implementations":{"ru":"Внедрения","_type":"localeString","en":"Deployments"},"login":{"_type":"localeString","en":"Login","ru":"Вход"},"registration":{"_type":"localeString","en":"Registration","ru":"Регистрация"},"b2b-platform":{"ru":"Портал для покупателей, поставщиков и производителей ИТ","_type":"localeString","en":"B2B platform for IT buyers, vendors and suppliers"}},"comment-form":{"title":{"_type":"localeString","en":"Leave comment","ru":"Оставить комментарий"},"firstname":{"ru":"Имя","_type":"localeString","en":"First name"},"lastname":{"_type":"localeString","en":"Last name","ru":"Фамилия"},"company":{"en":"Company name","ru":"Компания","_type":"localeString"},"position":{"ru":"Должность","_type":"localeString","en":"Position"},"actual-cost":{"_type":"localeString","en":"Actual cost","ru":"Фактическая стоимость"},"received-roi":{"ru":"Полученный ROI","_type":"localeString","en":"Received ROI"},"saving-type":{"en":"Saving type","ru":"Тип экономии","_type":"localeString"},"comment":{"ru":"Комментарий","_type":"localeString","en":"Comment"},"your-rate":{"en":"Your rate","ru":"Ваша оценка","_type":"localeString"},"i-agree":{"ru":"Я согласен","_type":"localeString","en":"I agree"},"terms-of-use":{"ru":"С пользовательским соглашением и политикой конфиденциальности","_type":"localeString","en":"With user agreement and privacy policy"},"send":{"ru":"Отправить","_type":"localeString","en":"Send"},"required-message":{"ru":"{NAME} - это обязательное поле","_type":"localeString","en":"{NAME} is required filed"}},"maintenance":{"title":{"_type":"localeString","en":"Site under maintenance","ru":"На сайте проводятся технические работы"},"message":{"en":"Thank you for your understanding","ru":"Спасибо за ваше понимание","_type":"localeString"}}},"translationsStatus":{"company":"success"},"sections":{},"sectionsStatus":{},"pageMetaData":{"company":{"translatable_meta":[{"name":"title","translations":{"ru":"Компания","_type":"localeString","en":"Company"}},{"name":"description","translations":{"ru":"Описание компании","_type":"localeString","en":"Company description"}},{"translations":{"ru":"Ключевые слова для компании","_type":"localeString","en":"Company keywords"},"name":"keywords"}],"title":{"_type":"localeString","en":"ROI4CIO: Company","ru":"ROI4CIO: Компания"},"meta":[{"name":"og:image","content":"https://roi4cio.com/fileadmin/templates/roi4cio/image/roi4cio-logobig.jpg"},{"name":"og:type","content":"website"}]}},"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":{"m-solutions-digital":{"id":9414,"title":"M Solutions Digital","logoURL":"https://old.roi4cio.com/uploads/roi/company/MsolutionsDigital_1.jpg","alias":"m-solutions-digital","address":"","roles":[{"id":2,"type":"supplier"}],"description":"M Solutions Digital is a global digital company headquartered in London and development offices in Eastern Europe.\r\nThe company specializes in providing digital services and innovate solutions for a wide range of industries. \r\nIn this connection, pays special attention to maintaining a high level of industry competencies.\r\n \r\nThe core company’s expertise:\r\n\r\nWeb Development & UX/UI Strategy\r\nSoftware Development\r\nIT Infrastructure & Cloud Services\r\nCyber Security\r\n \r\n\r\nFor more information about M SOLUTIONS DIGITAL visit us at: https://msolutionsdigital.com\r\n \r\nLet’s Work Together to Build the Solutions of Tomorrow.\r\n \r\nReady to join the conversation ?\r\n \r\nPlease, contact us office@msolutionsdigital.com","companyTypes":["supplier"],"products":{},"vendoredProductsCount":0,"suppliedProductsCount":0,"supplierImplementations":[],"vendorImplementations":[],"userImplementations":[],"userImplementationsCount":0,"supplierImplementationsCount":0,"vendorImplementationsCount":0,"vendorPartnersCount":0,"supplierPartnersCount":0,"b4r":1,"categories":{"1":{"id":1,"title":"Desktop virtualization","description":" Desktop virtualization is a virtualization technology that separates an individual's PC applications from his or her desktop. Virtualized desktops are generally hosted on a remote central server, rather than the hard drive of the personal computer. Because the client-server computing model is used in virtualizing desktops, desktop virtualization is also known as client virtualization.\r\nDesktop virtualization provides a way for users to maintain their individual desktops on a single, central server. The users may be connected to the central server through a LAN, WAN or over the Internet.\r\nDesktop virtualization has many benefits, including a lower total cost of ownership (TCO), increased security, reduced energy costs, reduced downtime and centralized management.\r\nLimitations of desktop virtualization include difficulty in maintenance and set up of printer drivers; increased downtime in case of network failures; complexity and costs involved in VDI deployment and security risks in the event of improper network management.<br /><br />","materialsDescription":" <span style=\"font-weight: bold; \">What are types of desktop virtualization technologies?</span>\r\nHost-based forms of desktop virtualization require that users view and interact with their virtual desktops over a network by using a remote display protocol. Because processing takes place in a data center, client devices can be traditional PCs, but also thin clients, zero clients, smartphones and tablets. Examples of host-based desktop virtualization technology include:\r\n<span style=\"font-weight: bold; \">Host-based virtual machines:</span> Each user connects to an individual VM that is hosted in a data center. The user may connect to the same VM every time, allowing for personalization (known as a persistent desktop), or be given a fresh VM at each login (a nonpersistent desktop).\r\n<span style=\"font-weight: bold; \">Shared hosted:</span> Users connect to a shared desktop that runs on a server. Microsoft Remote Desktop Services, formerly Terminal Services, takes this client-server approach. Users may also connect to individual applications running on a server; this technology is an example of application virtualization.\r\n<span style=\"font-weight: bold; \">Host-based physical machines:</span> The operating system runs directly on another device's physical hardware.\r\nClient virtualization requires processing to occur on local hardware; the use of thin clients, zero clients and mobile devices is not possible. These types of desktop virtualization include:\r\n<span style=\"font-weight: bold; \">OS image streaming:</span> The operating system runs on local hardware, but it boots to a remote disk image across the network. This is useful for groups of desktops that use the same disk image. OS image streaming, also known as remote desktop virtualization, requires a constant network connection in order to function.\r\n<span style=\"font-weight: bold; \">Client-based virtual machines:</span> A VM runs on a fully functional PC, with a hypervisor in place. Client-based virtual machines can be managed by regularly syncing the disk image with a server, but a constant network connection is not necessary in order for them to function.\r\n<span style=\"font-weight: bold;\">Desktop virtualization vs. virtual desktop infrastructure</span>\r\nThe terms <span style=\"font-style: italic;\">desktop virtualization</span> and virtual desktop infrastructure (VDI) are often used interchangeably, but they are not the same. While VDI is a type of desktop virtualization, not all desktop virtualization uses VDI.\r\nVDI refers to the use of host-based VMs to deliver virtual desktops, which emerged in 2006 as an alternative to Terminal Services and Citrix's client-server approach to desktop virtualization technology. Other types of desktop virtualization -- including the shared hosted model, host-based physical machines and all methods of client virtualization -- are not examples of VDI.","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_Desktop_virtualization.png","alias":"desktop-virtualization"},"2":{"id":2,"title":"Virtual machine and cloud system software","description":" A virtual machine (VM) is a software-based computer that exists within another computer’s operating system, often used for the purposes of testing, backing up data, or running SaaS applications. To fully grasp how VMs work, it’s important to first understand how computer software and hardware are typically integrated by an operating system.\r\n"The cloud" refers to servers that are accessed over the Internet, and the software and databases that run on those servers. Cloud servers are located in data centers all over the world. By using cloud computing, users and companies don't have to manage physical servers themselves or run software applications on their own machines.\r\nThe cloud enables users to access the same files and applications from almost any device, because the computing and storage take place on servers in a data center, instead of locally on the user device. This is why a user can log into their Instagram account on a new phone after their old phone breaks and still find their old account in place, with all their photos, videos, and conversation history. It works the same way with cloud email providers like Gmail or Microsoft Office 365, and with cloud storage providers like Dropbox or Google Drive.\r\nFor businesses, switching to cloud computing removes some IT costs and overhead: for instance, they no longer need to update and maintain their own servers, as the cloud vendor they are using will do that. This especially makes an impact on small businesses that may not have been able to afford their own internal infrastructure but can outsource their infrastructure needs affordably via the cloud. The cloud can also make it easier for companies to operate internationally because employees and customers can access the same files and applications from any location.\r\nSeveral cloud providers offer virtual machines to their customers. These virtual machines typically live on powerful servers that can act as a host to multiple VMs and can be used for a variety of reasons that wouldn’t be practical with a locally-hosted VM. These include:\r\n<ul><li>Running SaaS applications - Software-as-a-Service, or SaaS for short, is a cloud-based method of providing software to users. SaaS users subscribe to an application rather than purchasing it once and installing it. These applications are generally served to the user over the Internet. Often, it is virtual machines in the cloud that are doing the computation for SaaS applications as well as delivering them to users. If the cloud provider has a geographically distributed network edge, then the application will run closer to the user, resulting in faster performance.</li><li>Backing up data - Cloud-based VM services are very popular for backing up data because the data can be accessed from anywhere. Plus, cloud VMs provide better redundancy, require less maintenance, and generally scale better than physical data centers. (For example, it’s generally fairly easy to buy an extra gigabyte of storage space from a cloud VM provider, but much more difficult to build a new local data server for that extra gigabyte of data.)</li><li>Hosting services like email and access management - Hosting these services on cloud VMs is generally faster and more cost-effective, and helps minimize maintenance and offload security concerns as well.</li></ul>","materialsDescription":"What is an operating system?\r\nTraditional computers are built out of physical hardware, including hard disk drives, processor chips, RAM, etc. In order to utilize this hardware, computers rely on a type of software known as an operating system (OS). Some common examples of OSes are Mac OSX, Microsoft Windows, Linux, and Android.\r\nThe OS is what manages the computer’s hardware in ways that are useful to the user. For example, if the user wants to access the Internet, the OS directs the network interface card to make the connection. If the user wants to download a file, the OS will partition space on the hard drive for that file. The OS also runs and manages other pieces of software. For example, it can run a web browser and provide the browser with enough random access memory (RAM) to operate smoothly. Typically, operating systems exist within a physical computer at a one-to-one ratio; for each machine, there is a single OS managing its physical resources.\r\n<span style=\"font-weight: bold;\">Can you have two or more operating systems on one computer?</span>\r\nSome users want to be able to run multiple operating systems simultaneously on one computer, either for testing or one of the other reasons listed in the section below. This can be achieved through a process called virtualization. In virtualization, a piece of software behaves as if it were an independent computer. This piece of software is called a virtual machine, also known as a ‘guest’ computer. (The computer on which the VM is running is called the ‘host’.) The guest has an OS as well as its own virtual hardware.\r\n‘Virtual hardware’ may sound like a bit of an oxymoron, but it works by mapping to real hardware on the host computer. For example, the VM’s ‘hard drive’ is really just a file on the host computer’s hard drive. When the VM wants to save a new file, it actually has to communicate with the host OS, which will write this file to the host hard drive. Because virtual hardware must perform this added step of negotiating with the host to access hardware resources, virtual machines can’t run quite as fast as their host computers.\r\nWith virtualization, one computer can run two or more operating systems. The number of VMs that can run on one host is limited only by the host’s available resources. The user can run the OS of a VM in a window like any other program, or they can run it in fullscreen so that it looks and feels like a genuine host OS.\r\n <span style=\"font-weight: bold; \">What are virtual machines used for?</span>\r\nSome of the most popular reasons people run virtual machines include:\r\n<span style=\"font-weight: bold; \">Testing</span> - Oftentimes software developers want to be able to test their applications in different environments. They can use virtual machines to run their applications in various OSes on one computer. This is simpler and more cost-effective than having to test on several different physical machines.\r\n<span style=\"font-weight: bold; \">Running software designed for other OSes</span> - Although certain software applications are only available for a single platform, a VM can run software designed for a different OS. For example, a Mac user who wants to run software designed for Windows can run a Windows VM on their Mac host.\r\n<span style=\"font-weight: bold; \">Running outdated software</span> - Some pieces of older software can’t be run in modern OSes. Users who want to run these applications can run an old OS on a virtual machine.","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_Virtual_machine_and_cloud_system_software.png","alias":"virtual-machine-and-cloud-system-software"},"32":{"id":32,"title":"IT outsourcing","description":"<span style=\"font-weight: bold; \">IT outsourcing</span> is the use of external service providers to effectively deliver IT-enabled business process, application service and infrastructure solutions for business outcomes.\r\nOutsourcing, which also includes utility services, software as a service and cloud-enabled outsourcing, helps clients to develop the right sourcing strategies and vision, select the right IT service providers, structure the best possible contracts, and govern deals for sustainable win-win relationships with external providers.\r\nOutsourcing can enable enterprises to reduce costs, accelerate time to market, and take advantage of external expertise, assets and/or intellectual property. IT outsourcing can be implemented both ways: outsides or within the country. \r\nIT outsourcing vendors can provide either a fully managed service, meaning they take full responsibility of all IT maintenance and support, or they can provide additional support for an internal IT team when needed, which is known as co-sourced IT support. A company using IT outsourcing can choose to use one provider for all their IT functions or split the work among multiple providers. \r\n<span style=\"font-weight: bold;\">Specific IT services typically outsourced include:</span>\r\n<ul><li>Application development</li><li>Web hosting</li><li>Application support</li><li>Database development</li><li>Telecommunications</li><li>Networking</li><li>Disaster recovery</li><li>Security</li></ul>\r\n<p class=\"align-center\"><span style=\"font-weight: bold; \">Reasons for Outsourcing</span></p>\r\n<span style=\"font-weight: bold; \">To Reduce Cost.</span> More often than not, outsourcing means saving money. This is often due to lower labor costs, cheaper infrastructure, or an advantageous tax system in the outsourcing location.<br /><span style=\"font-weight: bold; \">To Access Skills That Are Unavailable Locally.</span> Resources that are scarce at home can sometimes be found in abundance elsewhere, meaning you can easily reach them through outsourcing.<br /><span style=\"font-weight: bold; \">To Better Use Internal Resources</span>. By delegating some of your business processes to a third party, you’ll give your in-house employees the opportunity to focus on more meaningful tasks.<br /><span style=\"font-weight: bold; \">To Accelerate Business Processes.</span> When you stop wasting time on mundane, time-consuming processes, you’ll be able to move forward with your core offering a lot faster.<br /><span style=\"font-weight: bold; \">To Share Risks.</span> When you delegate a part of non-focus functionality by outsourcing it to a third-party vendor, you give away the responsibility and related risks.","materialsDescription":"<h3 class=\"align-center\">What are the Types of IT Outsourcing?</h3>\r\n<p class=\"align-left\"><span style=\"font-weight: bold; \">Project-Based Model.</span> The client hires a team to implement the part of work that is already planned and defined. The project manager from the outsourced team carries full responsibility for the quality and performance of the project.</p>\r\n<p class=\"align-left\"><span style=\"font-weight: bold; \">Dedicated Team Model.</span> The client hires a team that will create a project for them, and they will work only on that project. Unlike the project-based model, a dedicated team is more engaged in your project. In this model, an outsourced team becomes your technical and product advisor. So it can offer ideas and suggest alternative solutions.</p>\r\n<p class=\"align-left\"><span style=\"font-weight: bold; \">Outstaff Model.</span> It's a type of outsourcing in IT when you don't need a full-fledged development team and hire separate specialists. Sometimes the project requires finding a couple of additional professionals, and you're free to hire outstaff workers to cover that scope of work.</p>\r\n<h3 class=\"align-center\"><span style=\"font-weight: bold; \">What are IT Outsourcing examples?</span></h3>\r\nThe individual or company that becomes your outsourcing partner can be located anywhere in the world — one block away from your office or on another continent.\r\nA Bay Area-based startup partnering with an app development team in Utah and a call center in the Philippines, or a UK-based digital marketing agency hiring a Magento developer from Ukraine are both examples of outsourcing.\r\n<h3 class=\"align-center\">Why You Should Use IT Outsourcing</h3>\r\nNow that you know what IT outsourcing is, its models, and types, it's time to clarify why you need to outsource and whether you really need it. Let's go over a few situations that suggest when to opt for IT outsourcing.\r\n<ul><li><span style=\"font-weight: bold;\">You are a domain expert with idea</span></li></ul>\r\nIf you're an industry expert with the idea that solves a real problem, IT outsourcing is your choice. In this case, your main goal is to enter the market and test the solution fast. An outsourced team will help you validate the idea, build an MVP to check the hypothesis, and implement changes in your product according to market needs. It saves you money, time and lets you reach the goal.\r\n<ul><li><span style=\"font-weight: bold;\">You have an early-stage startup</span></li></ul>\r\nIt's a common case that young startups spend money faster than they get a solid team and a ready-to-market product. The Failory found that financial problems are the 3rd reason why startup fails. So it makes more sense to reduce costs by hiring an outsourced team of professionals while your business lives on investor's money. You may employ a full-cycle product development studio covering all the blind spots and bringing your product to life.\r\n<ul><li><span style=\"font-weight: bold;\">You need a technical support</span></li></ul>\r\nEven if you already have a ready solution, but it demands some technical improvements – frameworks for backend components, new language, integrations with enterprise software, UX&UI design – it makes more sense to find an experienced partner. There are many functions that IT outsourcing can cover, and again it saves you the time you'd otherwise spend on looking for qualified staff.<br /><br /><br />","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_IT_outsourcing.png","alias":"it-outsourcing"},"49":{"id":49,"title":"VPN - Virtual Private Network","description":"A <span style=\"font-weight: bold; \">virtual private network (VPN)</span> extends a private network across a public network, and enables users to send and receive data across shared or public networks as if their computing devices were directly connected to the private network. Applications running on a computing device, e.g. a laptop, desktop, smartphone, across a VPN may therefore benefit from the functionality, security, and management of the private network. Encryption is a common though not an inherent part of a VPN connection.\r\nAt its most basic level, VPN tunneling creates a point-to-point connection that cannot be accessed by unauthorized users. To actually create the VPN tunnel, the endpoint device needs to be running a VPN client (software application) locally or in the cloud. The VPN client runs in the background and is not noticeable to the end user unless there are performance issues.\r\nThe performance of a VPN can be affected by a variety of factors, among them the speed of users' internet connections, the types of protocols an internet service provider may use and the type of encryption the VPN uses. In the enterprise, performance can also be affected by poor quality of service (QoS) outside the control of an organization's information technology (IT) department.\r\nConsumers use a virtual private network software to protect their online activity and identity. By using an anonymous VPN service, a user's Internet traffic and data remain encrypted, which prevents eavesdroppers from sniffing Internet activity. Personal VPN services are especially useful when accessing public Wi-Fi hotspots because the public wireless services might not be secure. In addition to public Wi-Fi security, it also provides consumers with uncensored Internet access and can help prevent data theft and unblock websites.\r\nCompanies and organizations will typically use a VPN security to communicate confidentially over a public network and to send voice, video or data. It is also an excellent option for remote workers and organizations with global offices and partners to share data in a private manner.\r\n<p class=\"align-center\"><span style=\"font-weight: bold;\">Types of VPNs</span></p>\r\n<ul><li><span style=\"font-weight: bold;\">Remote access VPN</span>. Remote access VPN clients connect to a VPN gateway server on the organization's network. The gateway requires the device to authenticate its identity before granting access to internal network resources such as file servers, printers and intranets. This type of VPN usually relies on either IP Security (IPsec) or Secure Sockets Layer (SSL) to secure the connection.</li></ul>\r\n\r\n<ul><li><span style=\"font-weight: bold;\">Site-to-site VPN.</span> In contrast, a site-to-site VPN uses a gateway device to connect an entire network in one location to a network in another location. End-node devices in the remote location do not need VPN clients because the gateway handles the connection. Most site-to-site VPNs connecting over the internet use IPsec. It is also common for them to use carrier MPLS clouds rather than the public internet as the transport for site-to-site VPNs. </li></ul>\r\n\r\n<ul><li><span style=\"font-weight: bold;\">Mobile VPN.</span> In a mobile VPN, a VPN server still sits at the edge of the company network, enabling secure tunneled access by authenticated, authorized VPN clients. Mobile VPN tunnels are not tied to physical IP addresses, however. Instead, each tunnel is bound to a logical IP address. That logical IP address sticks to the mobile device no matter where it may roam.</li></ul>\r\n\r\n<ul><li><span style=\"font-weight: bold;\">VPN Hardware</span>. It offer a number of advantages over the software-based VPN. In addition to enhanced security, hardware VPNs can provide load balancing to handle large client loads. Administration is managed through a Web browser interface. A hardware VPN is more expensive than a software VPN. Because of the cost, hardware VPNs are a more realistic option for large businesses than for small businesses or branch offices. </li></ul>\r\n\r\n<ul><li><span style=\"font-weight: bold;\">VPN appliance.</span> A VPN appliance, also known as a VPN gateway appliance, is a network device equipped with enhanced security features. Also known as an SSL (Secure Sockets Layer) VPN appliance, it is in effect a router that provides protection, authorization, authentication and encryption for VPNs.</li></ul>\r\n\r\n<ul><li><span style=\"font-weight: bold;\">Dynamic multipoint virtual private network (DMVPN</span>). A dynamic multipoint virtual private network (DMVPN) is a secure network that exchanges data between sites without needing to pass traffic through an organization's headquarter virtual private network (VPN) server or router. </li></ul>\r\n\r\n<ul><li><span style=\"font-weight: bold;\">VPN Reconnect.</span> VPN Reconnect is a feature of Windows 7 and Windows Server 2008 R2 that allows a virtual private network connection to remain open during a brief interruption of Internet service. Usually, when a computing device using a VPN connection drops its Internet connection, the end user has to manually reconnect to the VPN. VPN Reconnect keeps the VPN tunnel open for a configurable amount of time so when Internet service is restored, the VPN connection is automatically restored as well. </li></ul>\r\n<p class=\"align-left\"> </p>","materialsDescription":"<h1 class=\"align-center\"><span style=\"font-weight: normal;\">What is VPN software?</span></h1>\r\n<span style=\"font-weight: normal;\"></span>VPN software is a tool that allows users to create a secure, encrypted connection over a computer network such as the Internet. The platform was developed to allow for secure access to business applications and other resources.\r\n<header><h1 class=\"align-center\"><span style=\"font-weight: normal;\">How does VPN software work?</span></h1></header>\r\n<p class=\"align-left\">So what does VPN do? Basically, a VPN is a group of computers or networks, which are connected over the Internet. For businesses, VPN services serve as avenues for getting access to networks when they are not physically on the same network. Such a service can also be used to encrypt communications over public networks.</p>\r\n<p class=\"align-left\">VPNs are usually deployed through local installation or by logging on to a service’s website. To give you an idea as to how VPN works, the software allows your computer to basically exchange keys with a remote server, through which all data traffic is encrypted and kept secure, safe from prying eyes. It lets you browse the Internet without the worry of being tracked, monitored and identified without permission. A VPN also helps in accessing blocked sites and in circumventing censorship.</p>\r\n<h1 class=\"align-center\"><span style=\"font-weight: normal;\">What are the features of VPN software?</span></h1>\r\n<p class=\"align-left\">There are a variety of ways by which you can determine what VPN suits you. Here are some features of software VPN solutions and buying factors that you should consider:<br /><br /></p>\r\n<ul><li><span style=\"font-weight: bold;\">Privacy</span>: You should know what kind of privacy you really need. Is it for surfing, downloading or simply accessing blocked sites? Best of VPN programs offer one or more of these capabilities.</li><li><span style=\"font-weight: bold;\">Software/features</span>: Platforms should not be limited to ease of use, they should include features such as kill switches and DNS leak prevention tools which provide a further layer of protection.</li><li><span style=\"font-weight: bold;\">Security</span>: One should consider the level of security that a service offers. This can prevent hackers and agencies from accessing your data.</li><li><span style=\"font-weight: bold;\">Cross-platform support</span>: A VPN solution should be able to run on any device. To do this, setup guides for different platforms should be provided by the vendor.</li><li><span style=\"font-weight: bold;\">The number of servers/countries</span>: For these services, the more servers VPN there are, the better the service. This allows users to connect from virtually all over the world. It will also enable them to change their locations at will.</li><li><span style=\"font-weight: bold;\">Speed</span>: It’s common knowledge that using VPN comes with reduction in Internet speed. This is due to the fact that signals need to travel long distances and the demands of the encryption and decryption processes. Choose a service that has minimal impact on Internet speed.</li><li><span style=\"font-weight: bold;\">Simultaneous connections</span>: Many services allow users to use only one device at a time. However, many VPN service providers allow customers to connect multiple devices all at the same time.</li></ul>\r\n<p class=\"align-left\"> </p>","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/VPN_-_Virtual_Private_Network.png","alias":"vpn-virtual-private-network"},"50":{"id":50,"title":"IPC - Information Protection and Control","description":"Information Protection and Control (IPC) is a technology for protecting confidential information from internal threats. IPC solutions are designed to protect information from internal threats, prevent various types of information leaks, corporate espionage, and business intelligence. The term IPC combines two main technologies: encryption of storage media at all points of the network and control of technical channels of information leakage using Data Loss Prevention (DLP) technologies. Network, application and data access control is a possible third technology in IPC class systems. IPC includes solutions of the Data Loss Prevention (DLP) class, a system for encrypting corporate information and controlling access to it. The term IPC was one of the first to use IDC analyst Brian Burke in his report, Information Protection and Control Survey: Data Loss Prevention and Encryption Trends.\r\nIPC technology is a logical continuation of DLP technology and allows you to protect data not only from leaks through technical channels, that is, insiders, but also from unauthorized user access to the network, information, applications, and in cases where the direct storage medium falls into the hands of third parties. This allows you to prevent leaks in those cases when an insider or a person who does not have legal access to data gain access to the direct carrier of information. For example, removing a hard drive from a personal computer, an insider will not be able to read the information on it. This allows you to prevent the compromise of confidential data even in the event of loss, theft or seizure (for example, when organizing operational events by special services specialists, unscrupulous competitors or raiders).\r\nThe main objective of IPC systems is to prevent the transfer of confidential information outside the corporate information system. Such a transfer (leak) may be intentional or unintentional. Practice shows that most of the leaks (more than 75%) do not occur due to malicious intent, but because of errors, carelessness, carelessness, and negligence of employees - it is much easier to detect such cases. The rest is connected with the malicious intent of operators and users of enterprise information systems, in particular, industrial espionage and competitive intelligence. Obviously, malicious insiders, as a rule, try to trick IPC analyzers and other control systems.","materialsDescription":"<span style=\"font-weight: bold; \">What is Information Protection and Control (IPC)?</span>\r\nIPC (English Information Protection and Control) is a generic name for technology to protect confidential information from internal threats.\r\nIPC solutions are designed to prevent various types of information leaks, corporate espionage, and business intelligence. IPC combines two main technologies: media encryption and control of technical channels of information leakage (Data Loss Prevention - DLP). Also, the functionality of IPC systems may include systems of protection against unauthorized access (unauthorized access).\r\n<span style=\"font-weight: bold; \">What are the objectives of IPC class systems?</span>\r\n<ul><li>preventing the transfer of confidential information beyond the corporate information system;</li><li>prevention of outside transmission of not only confidential but also other undesirable information (offensive expressions, spam, eroticism, excessive amounts of data, etc.);</li><li>preventing the transmission of unwanted information not only from inside to outside but also from outside to inside the organization’s information system;</li><li>preventing employees from using the Internet and network resources for personal purposes;</li><li>spam protection;</li><li>virus protection;</li><li>optimization of channel loading, reduction of inappropriate traffic;</li><li>accounting of working hours and presence at the workplace;</li><li>tracking the reliability of employees, their political views, beliefs, collecting dirt;</li><li>archiving information in case of accidental deletion or damage to the original;</li><li>protection against accidental or intentional violation of internal standards;</li><li>ensuring compliance with standards in the field of information security and current legislation.</li></ul>\r\n<span style=\"font-weight: bold; \">Why is DLP technology used in IPC?</span>\r\nIPC DLP technology supports monitoring of the following technical channels for confidential information leakage:\r\n<ul><li>corporate email;</li><li>webmail;</li><li>social networks and blogs;</li><li>file-sharing networks;</li><li>forums and other Internet resources, including those made using AJAX technology;</li><li>instant messaging tools (ICQ, Mail.Ru Agent, Skype, AOL AIM, Google Talk, Yahoo Messenger, MSN Messenger, etc.);</li><li>P2P clients;</li><li>peripheral devices (USB, LPT, COM, WiFi, Bluetooth, etc.);</li><li>local and network printers.</li></ul>\r\nDLP technologies in IPC support control, including the following communication protocols:\r\n<ul><li>FTP;</li><li>FTP over HTTP;</li><li>FTPS;</li><li>HTTP;</li><li>HTTPS (SSL);</li><li>NNTP;</li><li>POP3;</li><li>SMTP.</li></ul>\r\n<span style=\"font-weight: bold; \">What information protection facilities does IPC technology include?</span>\r\nIPC technology includes the ability to encrypt information at all key points in the network. The objects of information security are:\r\n<ul><li>Server hard drives;</li><li>SAN;</li><li>NAS;</li><li>Magnetic tapes;</li><li>CD/DVD/Blue-ray discs;</li><li>Personal computers (including laptops);</li><li>External devices.</li></ul>\r\nIPC technologies use various plug-in cryptographic modules, including the most efficient algorithms DES, Triple DES, RC5, RC6, AES, XTS-AES. The most used algorithms in IPC solutions are RC5 and AES, the effectiveness of which can be tested on the project [distributed.net]. They are most effective for solving the problems of encrypting data of large amounts of data on server storages and backups.","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/IPC_-_Information_Protection_and_Control.png","alias":"ipc-information-protection-and-control"},"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"},"52":{"id":52,"title":"SaaS - software as a service","description":"<span style=\"font-weight: bold;\">Software as a service (SaaS)</span> is a software licensing and delivery model in which software is licensed on a subscription basis and is centrally hosted. It is sometimes referred to as "on-demand software", and was formerly referred to as "software plus services" by Microsoft.\r\n SaaS services is typically accessed by users using a thin client, e.g. via a web browser. SaaS software solutions has become a common delivery model for many business applications, including office software, messaging software, payroll processing software, DBMS software, management software, CAD software, development software, gamification, virtualization, accounting, collaboration, customer relationship management (CRM), Management Information Systems (MIS), enterprise resource planning (ERP), invoicing, human resource management (HRM), talent acquisition, learning management systems, content management (CM), Geographic Information Systems (GIS), and service desk management. SaaS has been incorporated into the strategy of nearly all leading enterprise software companies.\r\nSaaS applications are also known as <span style=\"font-weight: bold;\">Web-based software</span>, <span style=\"font-weight: bold;\">on-demand software</span> and<span style=\"font-weight: bold;\"> hosted software</span>.\r\nThe term "Software as a Service" (SaaS) is considered to be part of the nomenclature of cloud computing, along with Infrastructure as a Service (IaaS), Platform as a Service (PaaS), Desktop as a Service (DaaS),managed software as a service (MSaaS), mobile backend as a service (MBaaS), and information technology management as a service (ITMaaS).\r\nBecause SaaS is based on cloud computing it saves organizations from installing and running applications on their own systems. That eliminates or at least reduces the associated costs of hardware purchases and maintenance and of software and support. The initial setup cost for a SaaS application is also generally lower than it for equivalent enterprise software purchased via a site license.\r\nSometimes, the use of SaaS cloud software can also reduce the long-term costs of software licensing, though that depends on the pricing model for the individual SaaS offering and the enterprise’s usage patterns. In fact, it’s possible for SaaS to cost more than traditional software licenses. This is an area IT organizations should explore carefully.<br />SaaS also provides enterprises the flexibility inherent with cloud services: they can subscribe to a SaaS offering as needed rather than having to buy software licenses and install the software on a variety of computers. The savings can be substantial in the case of applications that require new hardware purchases to support the software.<br /><br /><br /><br />","materialsDescription":"<h1 class=\"align-center\"><span style=\"font-weight: normal;\">Who uses SaaS?</span></h1>\r\nIndustry analyst Forrester Research notes that SaaS adoption has so far been concentrated mostly in human resource management (HRM), customer relationship management (CRM), collaboration software (e.g., email), and procurement solutions, but is poised to widen. Today it’s possible to have a data warehouse in the cloud that you can access with business intelligence software running as a service and connect to your cloud-based ERP like NetSuite or Microsoft Dynamics.The dollar savings can run into the millions. And SaaS installations are often installed and working in a fraction of the time of on-premises deployments—some can be ready in hours. \r\nSales and marketing people are likely familiar with Salesforce.com, the leading SaaS CRM software, with millions of users across more than 100,000 customers. Sales is going SaaS too, with apps available to support sales in order management, compensation, quote production and configure, price, quoting, electronic signatures, contract management and more.\r\n<h1 class=\"align-center\"><span style=\"font-weight: normal;\">Why SaaS? Benefits of software as a service</span></h1>\r\n<ul><li><span style=\"font-weight: bold;\">Lower cost of entry</span>. With SaaS solution, you pay for what you need, without having to buy hardware to host your new applications. Instead of provisioning internal resources to install the software, the vendor provides APIs and performs much of the work to get their software working for you. The time to a working solution can drop from months in the traditional model to weeks, days or hours with the SaaS model. In some businesses, IT wants nothing to do with installing and running a sales app. In the case of funding software and its implementation, this can be a make-or-break issue for the sales and marketing budget, so the lower cost really makes the difference.</li></ul>\r\n\r\n<ul><li><span style=\"font-weight: bold;\">Reduced time to benefit/rapid prototyping</span>. In the SaaS model, the software application is already installed and configured. Users can provision the server for the cloud and quickly have the application ready for use. This cuts the time to benefit and allows for rapid demonstrations and prototyping. With many SaaS companies offering free trials, this means a painless proof of concept and discovery phase to prove the benefit to the organization. </li></ul>\r\n\r\n<ul><li><span style=\"font-weight: bold;\">Pay as you go</span>. SaaS business software gives you the benefit of predictable costs both for the subscription and to some extent, the administration. Even as you scale, you can have a clear idea of what your costs will be. This allows for much more accurate budgeting, especially as compared to the costs of internal IT to manage upgrades and address issues for an owned instance.</li></ul>\r\n\r\n<ul><li><span style=\"font-weight: bold;\">The SaaS vendor is responsible for upgrades, uptime and security</span>. Under the SaaS model, since the software is hosted by the vendor, they take on the responsibility for maintaining the software and upgrading it, ensuring that it is reliable and meeting agreed-upon service level agreements, and keeping the application and its data secure. While some IT people worry about Software as a Service security outside of the enterprise walls, the likely truth is that the vendor has a much higher level of security than the enterprise itself would provide. Many will have redundant instances in very secure data centers in multiple geographies. Also, the data is being automatically backed up by the vendor, providing additional security and peace of mind. Because of the data center hosting, you’re getting the added benefit of at least some disaster recovery. Lastly, the vendor manages these issues as part of their core competencies—let them.</li></ul>\r\n\r\n<ul><li><span style=\"font-weight: bold;\">Integration and scalability.</span> Most SaaS apps are designed to support some amount of customization for the way you do business. SaaS vendors create APIs to allow connections not only to internal applications like ERPs or CRMs but also to other SaaS providers. One of the terrific aspects of integration is that orders written in the field can be automatically sent to the ERP. Now a salesperson in the field can check inventory through the catalog, write the order in front of the customer for approval, send it and receive confirmation, all in minutes. And as you scale with a SaaS vendor, there’s no need to invest in server capacity and software licenses. </li></ul>\r\n\r\n<ul><li><span style=\"font-weight: bold;\">Work anywhere</span>. Since the software is hosted in the cloud and accessible over the internet, users can access it via mobile devices wherever they are connected. This includes checking customer order histories prior to a sales call, as well as having access to real time data and real time order taking with the customer.</li></ul>\r\n<p class=\"align-left\"> </p>","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/SaaS__1_.png","alias":"saas-software-as-a-service"},"53":{"id":53,"title":"DaaS - Desktop as a Service","description":"<span style=\"font-weight: bold; \">DaaS (Desktop as a service)</span> is a cloud computing offering in which a third party hosts the back end of a virtual desktop infrastructure (VDI) deployment.\r\nWith DaaS services, desktop operating systems run inside virtual machines on servers in a cloud provider's data center. All the necessary support infrastructure, including storage and network resources, also lives in the cloud. As with on-premises VDI, a DaaS providers stream virtual desktops over a network to a customer's endpoint devices, where end users may access them through client software or a web browser.\r\nThough it sounds a lot like VDI, there is a vital difference between DaaS and VDI. VDI refers to when virtual desktops are served through on-premise servers maintained by in-house IT teams. It’s the traditional way to deploy and manage virtual desktops. But since it’s on-premise, VDI technology technology must be maintained, managed, and upgraded in-house whenever necessary.\r\nDaaS service on the other hand, is a cloud-based virtual desktop solution that separates virtual desktops from on-premise servers, enabling brands to leverage a third-party hosting provider. It’s like VDI, but in the cloud instead of in the back of the office. \r\nHowever, it’s not necessary to choose one or the other. These two approaches can complement each other. Some users prefer to have a DaaS desktop overlay of their VDI deployment. For example, the Desktop as a Service providers allow the user to modernize legacy applications with zero code refactoring. Not all legacy Windows apps perform well in a DaaS environment, due to latency or hardware requirements. \r\nThe modern workplace requires agility, leading to many companies embracing mobile working and Bring Your Own Device (BYOD) policies against a backdrop of increased concern about security risk, compliance requirements and the ever-present need to reduce overheads. This is why, over a decade after analysts predicted the rise of remote desktop as a service, it is now finally being taken up in volume.\r\nBy adopting Desktop as a Service, companies can address the issues associated with end-user computing while giving their staff more freedom and increasing productivity. The pain associated with managing a multitude of devices, including those not supplied by the company, is eliminated. While remaining compliant, companies can greatly reduce risks. ","materialsDescription":"<h1 class=\"align-center\"><span style=\"font-weight: bold; \">How does desktop as a service work?</span></h1>\r\nDaaS architecture is multi-tenant, and organizations purchase the service through a subscription model -- typically based on the number of virtual desktop instances used per month.\r\nIn the desktop-as-a-service delivery model, the cloud computing provider manages the back-end responsibilities of data storage, backup, security and upgrades. While the provider handles all the back-end infrastructure costs and maintenance, customers usually manage their own virtual desktop images, applications and security, unless those desktop management services are part of the subscription.\r\nTypically, an end user's personal data is copied to and from their virtual desktop during logon and logoff, and access to the desktop is device-, location- and network-independent.\r\n<h1 class=\"align-center\">The benefits of Desktop as a Service</h1>\r\nMany organisations are undergoing digital transformation, and modernising the workplace is often a stream within the wider strategy. In order to manage remote and multi-device workforces using DaaS, you should think about the following seven benefits and how this will change, and hopefully improve, your currently way of working.\r\n<span style=\"font-weight: bold;\">The modern workplace.</span> Digital transformation is redefining what we think about the workplace. At the heart of this evolution is technology and the introduction of digital-first natives into the workplace. Allowing staff to work remotely, through DaaS in cloud and via their own devices is a surefire way to attract and retain the best talent.\r\n<span style=\"font-weight: bold;\">Cost.</span> As with many cloud initiatives, DaaS pricing moves from CAPEX to OPEX, leaving you more cash in the bank to spend on growing your business. Per desktop pricing enables you to know exactly what workforce expansion will cost the IT department, removing unforeseen infrastructure or hardware purchases as this is handled by the provider, who bundle everything in with the price of each desktop.Virtual machines use the compute power of the data centre rather than their local machines, placing less demand on the endpoint. <span style=\"font-weight: bold;\"></span>\r\n<span style=\"font-weight: bold;\">Scalability</span>. Due to the ‘...as a service’ delivery model, DaaS platform enables you to add user workstations fast and easily. This is particularly handy when your organisation utilises contract resource or temporary project teams, as there’s no hardware to procure, meaning you have the flexibility to create a desktop almost instantly and delete it when no longer required. This also puts you in control.\r\n<span style=\"font-weight: bold;\">Control.</span> DaaS helps you manage the risks that naturally come with giving your staff the freedom to work anywhere and on any device. It enables you to control the essentials such as data access and compliance without being overly restrictive. You no longer have to worry about what data is held on a user’s device as the data remains in the data centre at all times. This gives you control over all company assets because access can be revoked with the touch of a button.\r\n<span style=\"font-weight: bold;\">Management.</span> With an increasingly dispersed workforce, rolling out new applications or patching existing software has become more of a logistical problem than a technical one. Trying to coordinate people bringing in physical devices to be patched is a real issue for many companies, something which is eliminated completely with DaaS. You operate on one central image (or a small number of images based on persona), a change is made once, and everyone is on the latest version. It removes the need to standardise builds of end-user compute hardware as DaaS applications will run on almost any device no matter its configuration.\r\n<span style=\"font-weight: bold;\">Security.</span> DaaS moves the security risk from hundreds of end-user devices and put it all into the controlled and managed environment of a data centre. Lost or stolen laptops no longer provide a security risk. No data is on the local machine. As DaaS removes the need to create VPNs to access applications and data held by the company it also removes the problem of users trying to bypass the security in the belief that it will make their life easier. ","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/DaaS_-_Desktop_as_a_Service.png","alias":"daas-desktop-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"},"77":{"id":77,"title":"SOC - Situation Centre","description":"One of the most pressing tasks facing government bodies and commercial structures is to increase the efficiency of management activities. A modern tool for solving this problem is situational centers, which are complex hardware and software systems for collecting, analyzing and displaying information in a form convenient for making critical decisions.\r\nSituational centers are created for the heads of federal, regional and municipal government bodies, ministries and departments, and large companies. Their main task is to provide information and analytical support for procedures and processes that allow managers to make effective decisions on the current management of headed structures, formulating their development strategies, as well as preventing or eliminating crisis and emergency situations. The structure and composition of the situational site are determined by the specifics of the tasks being solved. As a rule, this is a complex technical complex that includes many subsystems.\r\nThere are many types of command centers. They include: data center management, business application management, civil management, emergency (crisis) management.","materialsDescription":" <span style=\"font-weight: bold;\">What is a Security Operations Center (SOC)?</span>\r\nA SOC is an outsourced office that is completely dedicated to analyzing traffic flow and monitoring for threats and attacks. In today’s world of cyberattacks and data breaches, companies of all sizes need to place an emphasis on securing their technology assets. But due to budget constraints and competing priorities, many organizations can’t afford to employ a full-time in-house IT security team. The smart solution to this problem is to look at partnering with a SOC or security operations center.\r\n<span style=\"font-weight: bold;\">How does a security operations center work?</span>\r\nUntil the recent rise of cloud computing, standard security practice was for a company to choose a traditional software as a product (SaaP) malware scanning solution either via download or, in ancient days, a CD-Rom that arrived via mail. They’d add to that a firewall installed at the edge of the network, and trust that those measures would keep their data and systems safe. Today’s reality is a far different environment, with threats being cast all across the net as hackers invent new ways to launch profitable and sophisticated attacks like ransomware.\r\nA SOC is an example of the software as a service (SaaS) software model in that it operates in the cloud as a subscription service. In this context, it provides a layer of rented expertise to a company’s cybersecurity strategy that operates 24/7 so that networks and endpoints are constantly being monitored. If a vulnerability is found or an incident is discovered, the SOC will engage with the on-site IT team to respond to the issue and investigate the root cause.\r\nIndividual SOC cybersecurity providers offer different suites of products and services. However, there is a core set of operational functions that a SOC must perform in order to add value to an organization.\r\n<ol><li><span style=\"font-weight: bold;\">Asset Survey:</span> In order for a SOC to help a company stay secure, they must have a complete understanding of what resources they need to protect. Otherwise, they may not be able to protect the full scope of the network. An asset survey should identify every server, router, firewall under enterprise control, as well as any other cybersecurity tools actively in use.</li><li><span style=\"font-weight: bold;\">Log Collection:</span> Data is the most important thing for a SOC to function properly and logs serve as the key source of information regarding network activity. The SOC should set up direct feeds from enterprise systems so that data is collected in real-time. Obviously, humans cannot digest such large amounts of information, which is why log scanning tools powered by artificial intelligence algorithms are so valuable for SOCs, though they do pose some interesting side effects that humanity is still trying to iron out.</li><li><span style=\"font-weight: bold;\">Preventative Maintenance:</span> In the best-case scenario, the SOC is able to prevent cyberattacks from occurring by being proactive with their processes. This includes installing security patches and adjusting firewall policies on a regular basis. Since some cyberattacks actually begin as insider threats, a SOC must also look within the organization for risks also.</li><li><span style=\"font-weight: bold;\">Continuous Monitoring:</span> In order to be ready to respond to a cybersecurity incident, the SOC must be vigilant in its monitoring practices. A few minutes can be the difference between blocking an attack and letting it take down an entire system or website. SOC tools run scans across the company’s network to identify potential threats and other suspicious activity.</li><li><span style=\"font-weight: bold;\">Alert Management:</span> Automated systems are great at finding patterns and following scripts. But the human element of a SOC proves it's worth it when it comes to analyzing automated alerts and ranking them based on their severity and priority. SOC staff must know what responses to take and how to verify that an alert is legitimate.</li><li><span style=\"font-weight: bold;\">Root Cause Analysis:</span> After an incident occurs and is resolved, the job of the SOC is just beginning. Cybersecurity experts will analyze the root cause of the problem and diagnose why it occurred in the first place. This feeds into a process of continuous improvement, with security tools and rules being modified to prevent future occurrences of the same incident.</li><li><span style=\"font-weight: bold;\">Compliance Audits:</span> Companies want to know that their data and systems are safe but also that they are being managed in a lawful manner. SOC providers must perform regular audits to confirm their compliance in the regions where they operate. What is a SOC report and what is a SOC audit? Anything that pulls data or records from cybersecurity functions of an organization. What is SOC 2? It’s a special auditing procedure related to information security and privacy.</li></ol>","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/SOC_-_Situation_Centre.png","alias":"soc-situation-centre"},"197":{"id":197,"title":"WAN optimization","description":" WAN optimization is a collection of techniques for increasing data transfer efficiencies across wide-area networks (WANs). In 2008, the WAN optimization market was estimated to be $1 billion, and was to grow to $4.4 billion by 2014 according to Gartner, a technology research firm. In 2015 Gartner estimated the WAN optimization market to be a $1.1 billion market.\r\nThe most common measures of TCP data-transfer efficiencies (i.e., optimization) are throughput, bandwidth requirements, latency, protocol optimization, and congestion, as manifested in dropped packets. In addition, the WAN itself can be classified with regards to the distance between endpoints and the amounts of data transferred. Two common business WAN topologies are Branch to Headquarters and Data Center to Data Center (DC2DC). In general, "Branch" WAN links are closer, use less bandwidth, support more simultaneous connections, support smaller connections and more short-lived connections, and handle a greater variety of protocols. They are used for business applications such as email, content management systems, database application, and Web delivery. In comparison, "DC2DC" WAN links tend to require more bandwidth, are more distant, and involve fewer connections, but those connections are bigger (100 Mbit/s to 1 Gbit/s flows) and of longer duration. Traffic on a "DC2DC" WAN may include replication, back up, data migration, virtualization, and other Business Continuity/Disaster Recovery (BC/DR) flows.\r\nWAN optimization has been the subject of extensive academic research almost since the advent of the WAN. In the early 2000s, research in both the private and public sectors turned to improving the end-to-end throughput of TCP, and the target of the first proprietary WAN optimization solutions was the Branch WAN. In recent years, however, the rapid growth of digital data, and the concomitant needs to store and protect it, has presented a need for DC2DC WAN optimization. For example, such optimizations can be performed to increase overall network capacity utilization, meet inter-datacenter transfer deadlines, or minimize average completion times of data transfers. As another example, private inter-datacenter WANs can benefit optimizations for fast and efficient geo-replication of data and content, such as newly computed machine learning models or multimedia content.\r\nComponent techniques of Branch WAN Optimization include deduplication, wide area file services (WAFS), SMB proxy, HTTPS Proxy, media multicasting, web caching, and bandwidth management. Requirements for DC2DC WAN Optimization also center around deduplication and TCP acceleration, however these must occur in the context of multi-gigabit data transfer rates.","materialsDescription":" <span style=\"font-weight: bold;\">What Is WAN Optimization?</span>\r\nWAN optimization involves prioritizing specific parts of the network to receive more bandwidth. For example, you might want to allocate more throughput and bandwidth to the parts of the network involved in a critical data-processing task, to make sure it’s completed quickly. Many WAN improvements can be accomplished with either physical or logical changes to your network.\r\n<span style=\"font-weight: bold;\">Why Is WAN Optimization Important?</span>\r\nBusinesses are increasingly facing pressures on their WAN setups due to increased use of cloud computing, applications, and other network-wide technologies such as web portals. The associated increase in traffic across the WAN makes WAN optimization even more important, as network slowdowns can become a major issue if you don’t proactively manage this complexity and volume.\r\nNumerous different business processes are affected by a slow network. Even simple actions, like employees accessing files, can become unacceptably slow. If the network is dragging, it might take their business-wide file manager a while to load, and then even longer to open the file. Even though it seems like a small, two-minute task, these problems quickly add up.\r\nMeanwhile, admins may have trouble effectively managing and monitoring their network — and ensuring network security — if they’re fighting against inefficient, high-latency network infrastructure. WAN optimization can potentially allow admins — and their software tools — to more effectively protect all devices and end-users.\r\nWAN optimization also supports remote and mobile workers. When someone works remotely, they’re expanding the WAN and requiring business data to travel further. Without WAN optimization, their connection could be slow. Even simple business processes such as email can become inconvenient to use. If the network is optimized correctly, all employees will be able to access network portals and business information, even if they’re connecting remotely.\r\nFurthermore, even applications not directly affected by optimization processes can benefit when bandwidth is freed up in relation to other parts of the network. All these benefits increase business efficiency and promote cost savings as a result.","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/WAN_optimization1.png","alias":"wan-optimization"},"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"},"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"},"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"},"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"},"295":{"id":295,"title":"Operating System and Subsystem","description":" Operating systems (OS) are programs that act as an interface between a computer’s hardware and its user. Subsystems are a part of larger systems such as operating systems; multiple subsystems can be loaded in the operating system. It bridges the gap between the users and the computer hardware. There are different types of operating systems based on their usage such as real-time, multi-user, distributed, embedded, single-user single-task and single-user multi-task. Operating systems are required in all electronic interactive systems such as mobile phones, washing machines, and computers. Various types of OS include Microsoft Windows, Linux, UNIX, Symbian, Android, and Apple Mac OS among others.\r\nTechnological advancements and rising awareness among consumers has to lead to increased demand for computer systems, consequently increasing the demand for operating systems and driving the market. However, the growth has been hampered by the rapid usage of pirated versions of operating systems. Moreover, the development of different applications in mobile phones mainly due to android OS among the youth will open the opportunities of operating system market in the upcoming years.\r\nCurrently, there are a large number of different types of operating systems that differ in application areas, hardware platforms, implementation methods, etc.\r\nA subsystem is a unit or device that is part of a larger system. For example, a disk subsystem is a part of a computer system. A bus is a part of the computer. A subsystem usually refers to hardware, but it may be used to describe software. However, "module," "subroutine" and "component" are more typically used to describe parts of the software.","materialsDescription":" <span style=\"font-weight: bold;\">What is an operating system (OS)?</span>\r\nAn operating system (OS) is software, consisting of programs and data, that runs on computers and manages the computer hardware and provides common services for efficient execution of various application software. For hardware functions such as input and output and memory allocation, the operating system acts as an intermediary between application programs and the computer hardware, although the application code is usually executed directly by the hardware, but will frequently call the OS or be interrupted by it. Operating systems are found on almost any device that contains a computer - from cellular phones and video game consoles to supercomputers and web servers.\r\n<span style=\"font-weight: bold;\">What are the tasks of the Operating system?</span>\r\n<span style=\"font-style: italic;\"><span style=\"font-weight: bold;\">Processor Management:</span></span> The main tasks in processor management are ensuring that each process and application receives enough of the processor's time to function properly, using maximum processor cycles for real work as is possible and switch between processes in a multi-tasking environment.\r\n<span style=\"font-style: italic;\"><span style=\"font-weight: bold;\">Memory and Storage Management:</span></span> The tasks include allotting enough memory required for each process to execute and efficiently use the different types of memory in the system.\r\n<span style=\"font-style: italic;\"><span style=\"font-weight: bold;\">Device Management:</span></span> The operating system manages all hardware not on the processor through driver programs. Drivers provide a way for applications to make use of hardware subsystems without having to know every detail of the hardware's operation. The driver's function is to be the translator between the electrical signals of the hardware subsystems and the high-level programming languages of the operating system and application programs. One reason that drivers are separate from the operating system is for the upgradability of devices.\r\n<span style=\"font-style: italic;\"><span style=\"font-weight: bold;\">Providing Common Application Interface:</span></span> Application program interfaces (APIs) let application programmers use functions of the computer and operating system without having to directly keep track of all the details in the processor's operation. Once the programmer uses the APIs, the operating system, connected to drivers for the various hardware subsystems, deals with the changing details of the hardware.\r\n<span style=\"font-style: italic;\"><span style=\"font-weight: bold;\">Providing Common User Interface:</span></span> A user interface (UI) brings a formal structure to the interaction between a user and the computer.","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/Operating_System_and_Subsystem__1_.png","alias":"operating-system-and-subsystem"},"297":{"id":297,"title":"Availability and Clustering Software","description":" Application clustering (sometimes called software clustering) is a method of turning multiple computer servers into a cluster (a group of servers that acts like a single system). Clustering software is installed in each of the servers in the group. Each of the servers maintains the same information and collectively they perform administrative tasks such as load balancing, determining node failures, and assigning failover duty. The other clustering method, hardware clustering, requires that specialized hardware be installed in a single server that controls the cluster.\r\nШn application or software clustering, some of the protocols and administrative duties that would have been handled on each individual machine are handled by the joint software program. In other words, the software application is the control unit for the cluster. This is contrasted with a system called hardware clustering, where one individual machine runs the cluster through its operating system.\r\nOne of the advantages of application clustering is the scalability of these kinds of systems. With available specialized software, companies can easily set up multiple pieces of hardware that obey the same instructions, and refer to the same sets of information. IT pros refer to a cluster-aware application as an application that can assess systems to assign failover duties or handle delegation for transaction processing. These are kinds of principles supported by application clustering.","materialsDescription":"<span style=\"font-weight: bold;\">What does Cluster (Servers) mean?</span>\r\nA cluster, in the context of servers, is a group of computers that are connected with each other and operate closely to act as a single computer. Speedy local area networks enhance a cluster of computers' abilities to operate at an exceptionally rapid pace.\r\n<span style=\"font-weight: bold; \">What does Clustering mean?</span>\r\nClustering, in the context of databases, refers to the ability of several servers or instances to connect to a single database. An instance is the collection of memory and processes that interacts with a database, which is the set of physical files that actually store data.\r\nClustering offers two major advantages, especially in high-volume database environments:\r\n<ul><li>Fault tolerance: Because there is more than one server or instance for users to connect to, clustering offers an alternative, in the event of individual server failure.</li><li>Load balancing: The clustering feature is usually set up to allow users to be automatically allocated to the server with the least load.</li></ul>","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/Availability_and_Clustering_Software__1_.png","alias":"availability-and-clustering-software"},"299":{"id":299,"title":"Application and User Session Virtualization","description":"Application virtualization is a technology that allows you to separate the software from the operating system on which it operates. Fully virtualized software is not installed in the traditional sense, although the end-user at first glance can not see it, because the virtualized software works just as normal. The software in the execution process works just as if it interacted with the operating system directly and with all its resources, but can be isolated or executed in a sandbox with different levels of restriction.\r\nModern operating systems, such as Microsoft Windows and Linux, can include limited software virtualization. For example, Windows 7 has Windows XP mode that allows you to run Windows XP software on Windows 7 without any changes.\r\nUser session virtualization is a newer version of desktop virtualization that works at the operating system level. While normal virtualization of the desktop allows an operating system to be run by virtualizing the hardware of the desktop, RDS and App-V allow for the virtualization of the applications. User session virtualization lies between the two.\r\nA desktop has an operating system loaded on the base hardware. This can be either physical or virtual. The user session virtualization keeps track of all changes to the operating system that a user might make by encapsulating the configuration changes and associating them to the user account. This allows the specific changes to be applied to the underlying operating system without actually changing it. This allows several users to have completely different operating system configurations applied to base operating system installation.\r\nIf you are in a distributed desktop environment and there are local file servers available at each location, you can deploy virtualized user sessions in the form of redirected folders and roaming profiles.","materialsDescription":" <span style=\"font-weight: bold;\">Understanding application virtualization</span>\r\nApplication virtualization technology isolates applications from the underlying operating system and from other applications to increase compatibility and manageability. This application virtualization technology enables applications to be streamed from a centralized location into an isolation environment on the target device where they will execute. The application files, configuration, and settings are copied to the target device and the application execution at run time is controlled by the application virtualization layer. When executed, the application run time believes that it is interfacing directly with the operating system when, in fact, it is interfacing with a virtualization environment that proxies all requests to the operating system.\r\n<span style=\"font-weight: bold;\">Understanding session virtualization</span>\r\nSession virtualization uses application streaming to deliver applications to hosting servers in the datacenter. The Application then connects the user to the server. The application then executes entirely on the server. The user interacts with the application remotely by sending mouse-clicks and keystrokes to the server. The server then responds by sending screen updates back to the user’s device. Whereas application virtualization is limited to Windows-based operating systems, session virtualization allows any user on any operating system to access any application delivered by IT. As a result, the application enables Windows, Mac, Linux, iOS and Android devices to run any applications using session virtualization. Furthermore, session virtualization leverages server-side processing power which liberates IT from the endless cycle of PC hardware refreshes which are typically needed to support application upgrades when using traditional application deployment methods.","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/Application_and_User_Session_Virtualization__1_.png","alias":"application-and-user-session-virtualization"},"311":{"id":311,"title":"Storage Management Software","description":" <span style=\"font-weight: bold; \">Storage management software</span> is a type of program that is especially designed for managing storage solutions like storage networks. It provides important services like mirroring, replication, compression, traffic analysis, virtualization, security and disaster recovery. These types of software are usually sold as value-adding options that are meant to run on servers and manage resources like network attached storage (NAS) devices.\r\nStorage management solutions are used in everything from desktop computers to mainframes and includes products that work on limited or a single set of devices, as well as those that work universally and support a heterogeneous device set. Storage management software also makes use of hierarchical storage management (HSM) systems, which back up data from the main storage into slower, less expensive storage devices. The market to which this software belongs is divided into seven segments. Storage management program is the sum of all these segments, and represents all the tools that are needed to manage the performance, capacity and availability of the data stored on disks or any storage device attached to the system. \r\n<span style=\"font-weight: bold; \">Data storage management</span> refers to how organizations manage, store, and access their proprietary data. Effective data storage management requires an understanding of storage hardware and software, the current capacity of these assets, current and future usage trends, and the availability of various types of data. \r\nCompanies that make data storage management software are constantly adding new features that tend to focus on usability, integration with other products, and performance reporting. The next waves in the best storage management software may be automation and open-source products.\r\nStorage capacity optimization technologies such as <span style=\"font-weight: bold; \">deduplication </span>and compression have traditionally been aimed at reducing the amount of backups a company has, and they’ve been successful. But now the market is shifting; data reduction technologies are now being geared toward primary storage. But even though it’s a growing market, there are many things you need to watch out for when planning to dedupe your primary storage.\r\nOne of the most effective document management storage is to<span style=\"font-weight: bold; \"> reduce your data,</span> not delete it. Data deduplication, compression, snapshots and thin provisioning are four popular data reduction techniques.\r\n<span style=\"font-weight: bold; \">Dynamic storage tiering</span> (DST) is a good data storage management solutions to implement in your environment, but there are many different products to choose from, and these products differ in functions and capabilities. DST products have one central goal: to lower storage costs. But some products have added capabilities such as overcoming performance problems and options for incorporating cloud storage in your environment. Learn about the different DST products available and find out which one suits your storage environment.\r\nIn a virtual server environment, storage efficiency and capacity planning aren’t any easier than in a nonvirtualized environment. There are multiple hosts and applications storage managers must deal with, making things complicated. Follow these four steps for better storage efficiency techniques and capacity planning in a virtual server environment.\r\n\r\n","materialsDescription":"<h1 class=\"align-center\">What is Storage Management?</h1>\r\nStorage Management refers to the processes that help make data storage easier through software or techniques. It tries to improve and maximize the efficiency of data storage resources. Storage management processes can deal with local or external storage such as NAS, SAN, USBs, SDDs, HDD, the Cloud, etc.\r\nStorage management techniques or software can be divided into the following four subsets:\r\n<ul><li>Performance,</li><li>Availability,</li><li>Recoverability</li><li>Capacity.</li></ul>\r\nThere are a variety of technologies or systems that fall into one or multiple of these subsets, these can be:\r\n<ul><li>Volume Migration</li><li>Storage Virtualization</li><li>Snapshot and Mirroring</li><li>Auto-Provisioning</li><li>Process Automation</li><li>Disaster and Recovery</li><li>And more…</li></ul>\r\n<h1 class=\"align-center\">Implementing Storage Management</h1>\r\nStorage management is a broad concept, that includes techniques, software, processes that aim at improving the performance, availability, recoverability, and capacity of the storage resources. The first step to implement storage management would be to train IT personnel and storage administrators on best storage management practices. There are a couple of storage management standards and organizations to start getting information. An example is the Storage Management Initiative Specification, (SMI-S), which is a data storage standard developed by the Storage Networking Industry Association (SNIA). Aside from methodologies and processes, storage management can be implemented as program, as a cloud storage management software or included in the hardware. A couple of examples about the SRM software areSymantec, DellEMC SRM, Northern Parklife, or DataCore Software. A NAS can be an excellent example of storage management in hardware.","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_Storage_Management_Software.png","alias":"storage-management-software"},"313":{"id":313,"title":"Storage Infrastructure Software","description":" Storage infrastructure in IT refers to the overall set of hardware and software components needed to facilitate storage for a system. This is often applied to cloud computing, where cloud storage infrastructure is composed of hardware elements like servers, as well as software elements like operating systems and proprietary delivery applications.\r\nCloud storage infrastructure and other types of storage infrastructure can vary quite a bit, partly because of new and emerging storage technologies. For example, with storage virtualization, the infrastructure is changed to become more software-driven than hardware-driven. In a typical storage virtualization environment, a set of physical hard drives are replaced by a set of "logical drives" or "virtual drives" that are partitioned and operated by software. Engineers use different types of strategies like a redundant array of independent disks (RAID) design to create more versatile storage systems that use hardware in more sophisticated ways.\r\nLooking at cloud storage infrastructure also helps to explain the value and philosophy of cloud computing. The infrastructure is typically composed of end-network hardware, where tenant data is eventually stored, as well as virtual systems that help push data and files from a client to a vendor network, and vice versa, during data retrieval. In general, cloud computing allows vendors to deliver product services over the global Internet, making the storage infrastructure a kind of hybrid design between the hardware located on-site in vendor offices and the proprietary software that handles all the different kinds of data transfer.","materialsDescription":" <span style=\"font-weight: bold;\">What is a storage infrastructure?</span>\r\nThe infrastructure of data storage systems is a set of hardware and software that allows you to combine the organization’s data into a single system and carry out centralized information management throughout the life cycle. Its main components are storage networks, disk storage systems (SHD), tape libraries and specialized software. It is also a well-functioning backup and data recovery system.\r\n<span style=\"font-weight: bold;\">What are the capabilities of storage infrastructure?</span>\r\n<ul><li>Reduce total IT costs.</li><li>Centralization of IT infrastructure to improve management efficiency.</li><li>Manage growing amounts of data.</li><li> Optimization of resource use.</li><li>Fault tolerance and scalability.</li><li>Ensuring the required application performance.</li><li>Backup and archiving.</li><li>Ensuring business continuity (ONIVD).</li></ul>\r\n<span style=\"font-weight: bold;\">Who can benefit from a solution?</span>\r\nThe infrastructure of data storage systems is primarily necessary for companies whose activities are associated with the processing and storage of large volumes of information or directly depends on the ability to provide quick access to data. First of all, these are companies in the financial sector, telecommunications, government organizations and large industrial holdings.\r\n<span style=\"font-weight: bold;\">What are the benefits of storage infrastructure?</span>\r\nScalability, which leads to lower storage costs in general.\r\nHigh performance:\r\n<ul><li>the use of high-speed communication protocols such as Fiber Channel for SAN (Gigabit Ethernet for NAS) or Infiniband allows for high data rates;</li><li>SAN networks reduce the load on the local network and accelerate the processes of backup and data migration;</li><li>decrease backup window.</li></ul>\r\nAvailability and reliability. Thanks to the modular architecture, hot standby of storage components and elimination of single points of failure becomes possible.\r\nAbility to create distributed data centers.\r\nVirtualization of disk reallocation resources and storage consolidation.\r\nProviding secure access to data from heterogeneous environments.\r\nData backup.\r\nData consolidation.","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_Storage_Infrastructure_Software.png","alias":"storage-infrastructure-software"},"315":{"id":315,"title":"Storage Device Management Software","description":"Storage management refers to activities undertaken by IT managers and administrators to achieve storage infrastructures' accessibility, reliability, recoverability, and optimal performance.\r\nDespite the significant advantages resulting from the consolidation of data storage in modern computing systems, there are at least two fundamental problems of data storage management - high cost and inefficient use. Even if the cost of disk memory is reduced by an average of 30% per year, the demand for it increases by 100% during the same time, so the total amount of data storage costs will grow by 40%. The fact that memory is used inefficiently has a sensitive effect on meager IT budgets. So is it possible to control disk assets in order to get the most return on investment?\r\nPositive answers to these questions are provided by the storage resource management system. For example, what should an administrator do if he is responsible for accessing data at the bank if customer service is suspended at the very height of the trading day due to slow application performance? One of the probable reasons is that the disk space required by the application is almost exhausted. How quickly does the network administrator identify the true cause of the collapse? Could he have foreseen and prevented her? If it was possible to set a threshold for the acceptable size of free disk space in the relevant rules, he would have received a notification in advance that the file system was about to begin to run out of disk space, and would be able to take appropriate measures in time.\r\nStorage networks today require constant high availability - a good reason to use monitoring systems and analysis tools not only when a problem has already arisen. In addition, a comprehensive overview of the storage network is usually required.\r\nIn large data centers, managing drives is significantly more expensive than acquiring them. When using, in particular, SAN, thanks to centralized administration and management through switches and directors, it was already possible to significantly save on management. With scalable storage capacity in SANs, high availability and performance make it easy to provide and manage bulk storage in large data centers. However, increasing capacity, increasing data transfer rates, heterogeneous equipment from different manufacturers and virtualization technologies make monitoring the structure of storage networks and analyzing internal processes more and more difficult. Obviously, for the network administrator, they create new difficulties, which in professional jargon are called "network blindness." By this we mean the inability to diagnose, analyze and prevent failures, and, in addition, complex protocols and structures reduce network performance.\r\nOvercoming “blindness” is of great practical importance. Many companies risk significant damage already in the first four hours after the failure, and the loss of enterprises specializing, for example, in electronic commerce and financial institutions, reaches hundreds of thousands or even several million dollars per hour. These figures once again convince us that there is a need to respond very quickly to failures and performance problems.","materialsDescription":"<span style=\"font-weight: bold;\">Storage device management utilities</span>\r\n<ul><li>Backup software makes copies of all information stored on a disk and restores either the entire disk (aka Disk cloning) in an event of disk failure or selected files that are accidentally deleted or corrupted. Undeletion utilities are sometimes more convenient.</li><li>Disk checkers scan an operating hard drive and check for logical (filesystem) or physical errors.</li><li>Disk compression utilities transparently compress/uncompress the contents of a disk, increasing the capacity of the disk.</li><li>Disk defragmenters detect computer files whose contents are scattered across several locations on the hard disk and collect the fragments into one contiguous area.</li><li>Disk formatters prepare a data storage device such as a hard disk, solid-state drive, floppy disk or USB flash drive for initial use. These are often used to permanently erase an entire device.</li><li>Disk partition editors divide an individual drive into multiple logical drives, each with its own file system which can be mounted by the operating system and treated as an individual drive.</li><li>Disk space analyzers provide a visualization of disk space usage by getting the size for each folder (including sub folders) and files in folder or drive. showing the distribution of the used space.</li><li>Tape initializers write a label to a magnetic tape or other magnetic medium. Initializers for DECtape formatted the tape into blocks.</li></ul>","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_Storage_Device_Management_Software.png","alias":"storage-device-management-software"},"319":{"id":319,"title":"Event Management Tools","description":" <span style=\"font-weight: bold; \">Event management software</span> 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\nIn brief, event management software programs are solutions that assists event organizers in driving success through all aspects of their events—from event registration and event check-in, to event promotion and reporting.\r\nSome providers claim to offer event organizer software when in actuality they are really offering a software that solves one particular pain point, like event check in software. These platforms have their uses, but are limited in breadth of functionality. Best event management system is <span style=\"font-weight: bold; \">all-in-one event management software</span>, which serves as a one-stop shop for all of an event organizer’s needs. This type of software is sometimes called “event success software” or an “events cloud.”\r\n<p class=\"align-left\"><span style=\"color: rgb(97, 97, 97); \">Events are becoming more prevalent than ever and event management software is what is allowing them to do so. <span style=\"font-weight: bold; \">Today’s event management platform:</span></span></p>\r\n<ul><li><span style=\"color: rgb(97, 97, 97); \">Fulfills a wide range of functions such as event registration, event marketing and reporting.</span></li><li><span style=\"color: rgb(97, 97, 97); \">Drives event success for a variety of B2B and B2C events.</span></li><li><span style=\"color: rgb(97, 97, 97); \">Helps event organizers save time, save money, increase security and reduce event headaches thanks to a structure that is seamlessly integrated from end-to-end.</span></li><li><span style=\"color: rgb(97, 97, 97); \">Should be reliable easy-to-use, come with a dedicated customer success team and should measurably impact your event goals.</span></li><li><span style=\"color: rgb(97, 97, 97); \">And should be sold as a complete product, not a series of add-ons.</span></li></ul>\r\nThe most common event management applications are event schedule planning; customized event website creation; online event registration platforms; ticketing and delegate management including online payment; event budgeting; lead retrieval; event venue booking software; procurement, sourcing, and RFPs event marketing; event networking for attendee engagement; content management including abstract and/or paper management, reviewing, program development and publishing; exhibition management including floor planning, booking and billing; on-site operations including registration, badges, and networking; audience response solutions, live slide sharing and second-screen tools as live polls, Q+A, etc. \r\n\r\n","materialsDescription":"<h1 class=\"align-center\"><span style=\"font-weight: bold; \">Why Use Event Management Software?</span></h1>\r\n<p class=\"align-left\">What are the benefits of an event management software? These solutions can streamline or automate the back office processes in running an event. From pre-event, event and to post-event, these solutions provide efficiency, accuracy and cost savings. Here are the main benefits:</p>\r\n<ul><li><span style=\"font-weight: bold; \">Consolidate different teams</span></li></ul>\r\nEvents software systems provide a single platform that coordinates the tasks and activities, not just of the event team, but of your various teams, including sales & marketing, logistics, accounting and travel management. It makes it easy to associate the different but connected items across your organization. A change in one item, for example, can trigger alerts on related items ensuring everyone has the latest information. A shift in venue, increase in attendance, change in menu, etc. are cases that require quick coordination among teams.\r\n<ul><li><span style=\"font-weight: bold; \">Lower overheads</span></li></ul>\r\nWith across and top-down visibility on your event operations, it is easy to control expenses and keep to budget caps leading to savings and higher returns. Likewise, event management services are good at automating certain event management processes, thereby, you cut down on time spent in completing tasks. This can translate to reduced staff time. Moreover, a small team can perform multiple tasks with the aid of a good event solution. Tools like coding-free event web builder, self-service online registration, autoresponders and data management perform some of the most time-consuming back office processes in organizing events, freeing you from soliciting additional contractors.\r\n<ul><li><span style=\"font-weight: bold; \">Smooth workflows in the entire event lifecycle</span></li></ul>\r\nSome event software programs solutions help you from planning to promotion to on-site operation and to post-event evaluation. They feature tools for event management, event marketing and post-analytics reporting and survey mechanism. Many of these tools ease out off your shoulder the traditional burden of building your database. Online registration, for example, allows participants enter their details instead of you. The database can be sorted differently, too, for targeted email marketing.\r\n<ul><li><span style=\"font-weight: bold; \">More focused event marketing</span></li></ul>\r\nCritical to the success of your event is a long-term promotion. Months (or even years) before the event, the solution, depending on its sophistication, can help you aggregate social media mentions, online communities, mailing lists, media and blog placements, etc. so you can start engaging potential participants. Some event management packages provide communication channels to get prospects’ feedback or questions or build a mailing list for staggered and targeted email marketing stages leading to the event date.\r\n<ul><li><span style=\"font-weight: bold; \">Efficient data management</span></li></ul>\r\nWith a single database event management software solutions can collate online registration details, sort them for various email marketing campaigns and run real-time and post-event analytics for insights. A centralized database also means various users are accessing the same latest data, eliminating misinformation. Different parties are quickly notified of changes in the database like number of participant, venue, programme, etc. Documents and reports are likewise updated and consistent throughout the organization. ","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_Event_Management_Tools.png","alias":"event-management-tools"},"323":{"id":323,"title":"Output Management Tools","description":" Output Management is a technology that provides the ability to capture, organize, format and distribute data and documents that are created by a line of business applications and ERP systems. Output management systems reduce or eliminate printing costs by using digital output channels. Using a point-and-click designer interface, standard output is automatically converted into more attractive, functional, and efficient electronic documents, which can then be intelligently distributed over a variety of delivery channels including print, fax, email, web or document management archive.\r\nOutput management solutions enable your organization to efficiently and cost-effectively manage high-volume business document distribution. You can deliver business-critical information from virtually any source to any destination across your distributed enterprise.\r\nIndustry studies have found that companies spend between 2 – 6 percent of their revenues producing paper-based information. Even in organizations with better control of printing costs, far too many resources are spent in creating, copying, shipping, bursting, delivering, and storing paper output. Most companies have multiple-output systems and numerous redundant printers, making it impossible to ensure that critical documents reach their intended destination in a timely manner.","materialsDescription":" <span style=\"font-weight: bold;\">What is output management?</span>\r\nOutput management systems helps companies manage the entire process of creating, designing, and delivering all of the information to be sent from ERPs or other IT systems, generally with much greater efficiency than alternate methods. An output management system enables companies to send the right information, in the right format and design, to the right recipient and any given time.\r\nMany companies choose just to use their default ERP output solution. However, these default tools are often very inflexible and can be difficult to maintain in a competitive and international market. Some ERPs offer fragmented solutions for each type of output format which is often costly and time-consuming to support.\r\n<span style=\"font-weight: bold;\">What are the benefits of using an output management system?</span>\r\nBy using an advanced output management system like InterForm, a company can centralize its output from a diverse collection of devices and platforms, eliminate duplicated workflows, and accommodate both customer demands and industry regulations.\r\nWith OMS you Can:\r\n<ul><li>Create customer-facing documents with unique designs;</li><li>Generate informative, structured, and branded documents and reports;</li><li>Form customer-specific messaging and product information;</li><li>Eliminate printing and shipping costs by delivering and distributing data electronically;</li><li>Raise the level of service and support with a wide range of smart document features.</li></ul>\r\nOutput management combines distribution features with a wide variety of output channels allowing you to manage everything from label and laser printing to sending faxes and emails. It’s fully customizable, so you set the standards, choose the rules, and set the conditions for your specific workflow.","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_Output_Management_Tools.png","alias":"output-management-tools"},"325":{"id":325,"title":"Performance Management Software","description":" <span style=\"font-weight: bold; \">Performance management software </span>— also referred to as a <span style=\"font-weight: bold; \">performance management system</span>— helps a company track, analyze, and evaluate its employees’ performance. is designed to improve business performance by spurring employee productivity. It works to ensure individual employees and teams are engaged and in alignment with organizational goals. Employee review software replaces an annual performance review process with real-time performance tracking, goal setting and feedback.\r\nPerformance management software systems are overseen by the HR department. They fit under the umbrella of <span style=\"font-style: italic; \">talent management systems.</span>\r\nAs next-generation HR software, performance management tools help companies address the modern goals of continually monitoring performance while giving employees feedback and support. Performance review software can track individual contributions to a team, as well as that team's ability to meet business objectives, thus tying performance into the company's bottom line.\r\nImproving employee engagement is another goal of performance management software. An employee can see current individual performance goals and their progress toward meeting them. This includes tracking efforts on specific projects. Managers measure individual performance against goals, and employees get a better idea of where they stand.\r\nThese systems use dashboards for quick and collaborative reviews. They can report individual performance, as well as project and team performance. The systems may also include employee ranking.\r\nAn effective performance management program must interact with other tools - in particular, workforce analytics. Data can be analyzed, for instance, against reporting from financial management systems and sales performance management systems.","materialsDescription":"<h1 class=\"align-center\">Why Implement Performance Management Software?</h1>\r\n<ul><li><span style=\"font-weight: bold; \">Easily-Navigable Dashboard </span></li></ul>\r\nThe top advantage to performance management tools are their ability to bring all key data and performance into one, organized location. Award-winning business performance management software do that. They make it easy to navigate the data and information and help leaders make better decisions for their workforce. \r\n<ul><li><span style=\"font-weight: bold; \">Performance Review Cycles </span></li></ul>\r\nTraditional annual review cycle or not, performance management system software can help coordinate, organize, schedule and store review information. The software will send reminders to leaders, manage permissions as leadership changes and provide structure to the overall process, including scripts based on company values and the employee’s role.\r\n<ul><li><span style=\"font-weight: bold; \">360 Degree and Peer Reviews </span></li></ul>\r\nPerformance and talent management tool can help ensure the process goes smoothly by providing structured and anonymous assessments. In some cases, there might be more than a few people involved in the performance review of one employee, so the software can track the progress of feedback to ensure each manager or leader has provided necessary input in a timely manner.\r\n<ul><li><span style=\"font-weight: bold; \">Customizable Review and Assessment Scripts </span></li></ul>\r\nIt is best practice to base performance on the unique values and goals of your organization, which means the annual review script should be different for a manager than it is for an executive, and nothing like the script of another organization. \r\n<ul><li><span style=\"font-weight: bold; \">Goal and Performance Tracking </span></li></ul>\r\nContinuous performance and goal tracking allows leadership to see the progress of projects clearly while keeping in mind which employees are hitting the mark and which need guidance. And because automated performance management system available to the employee as well, everyone will be on the same page and aligned to the work being done, even between departments in real-time.\r\n<ul><li><span style=\"font-weight: bold; \">Development & Succession Planning </span></li></ul>\r\nEmployees need continuous support in order to become effective contributors to the organization, especially in the long run. With performance management tools, you can track development progress, assign long term goals and ensure you understand the direction of talent and the business as a whole.\r\n\r\n","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_Performance_Management_Software.png","alias":"performance-management-software"},"327":{"id":327,"title":"Change and Configuration Management Software","description":" Software teams today face significant challenges. Companies require the production of high-quality software at unprecedented speeds. Software application requirements continue to grow more complex often with shorter and more frequent release cycles. Distributed development teams present challenges related to effective teaming, parallel development and diverse platforms - these factors and more intensify the pressures of developing quality software. Developing quality software in a repeatable and predictable fashion requires managing and tracking development artifacts and the activities of the development team. Successful development teams utilize software configuration management and software change management tools to help manage the software development lifecycle.\r\nSoftware configuration management provides version control and parallels development support to manage and control software assets. Software change management provides defect tracking and automation of software processes across the development lifecycle.\r\nSolutions that combine software configuration management and software change management in a single, tightly integrated solution are referred to as software change and configuration management (SCCM) solutions. SCCM solutions utilize activities to easily manage changes made to development artifacts. Unlike standalone SCM tools, SCCM solutions usually include substantial workflow capabilities which automate and effectively govern the software development processes for repeatable and predictable software development.\r\nEssentially, SCCM answers the ‘who’, ‘what’, ‘when’, and ‘why’ of software development. Who made the changes? What changes were made to the software? When were the changes made? Why were the changes made? Development teams and project leaders should be able to obtain answers to these questions to manage a project's activities, determine project status and track the actual product evolution.\r\nA fully comprehensive software change and configuration management (SCCM) solution empowers companies by accelerating software and systems delivery, making global teams more efficient, and governing the end-to-end software development processes. Solutions should be secure, flexible, and robust as well as provide the ability to support any size team, regardless of platform or location. Selecting ‘best in class’ solution, implementing proven best practices and partnering with a company that is a leader in technology reduces the risks associated with quality software development.","materialsDescription":" \r\n<span style=\"font-weight: bold;\">What is software configuration management (SCM)?</span>\r\nSoftware configuration management (SCM) is designed to control change by identifying and tracking changed software artifacts and managing different versions of these artifacts.\r\n<span style=\"font-weight: bold;\">What is software change and configuration management (SCCM)?</span>\r\nSoftware change and configuration management (SCCM) provide the comprehensive integration with best practice guidance of software configuration management and software change management capabilities.","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_Change_and_Configuration_Management_Software.png","alias":"change-and-configuration-management-software"},"329":{"id":329,"title":"Problem Management Software","description":" Problem management is the process responsible for managing the lifecycle of all problems that happen or could happen in an IT service. The primary objectives of problem management are to prevent problems and resulting incidents from happening, to eliminate recurring incidents, and to minimize the impact of incidents that cannot be prevented. The Information Technology Infrastructure Library defines a problem as the cause of one or more incidents.\r\nProblem Management includes the activities required to diagnose the root cause of incidents identified through the Incident Management process, and to determine the resolution to those problems. It is also responsible for ensuring that the resolution is implemented through the appropriate control procedures, especially Change Management and Release Management.\r\nProblem Management will also maintain information about problems and the appropriate workarounds and resolutions so that the organization is able to reduce the number and impact of incidents over time. In this respect, Problem Management has a strong interface with Knowledge Management, and tools such as the Known Error Database will be used for both. Although Incident Management and Problem Management are separate processes, they are closely related and will typically use the same tools, and may use similar categorization, impact, and priority coding systems. This will ensure effective communication when dealing with related incidents and problems.\r\nProblem Management works together with Incident Management and Change Management to ensure that IT service availability and quality are increased. When incidents are resolved, information about the resolution is recorded. Over time, this information is used to speed up the resolution time and identify permanent solutions, reducing the number and resolution time of incidents. This results in less downtime and less disruption to business-critical systems.","materialsDescription":" <span style=\"font-weight: bold;\">What is Problem Management?</span>\r\nProblem management is the set of processes and activities responsible for managing the lifecycle of all problems that could happen in an IT service. Its main goal is to prevent problems and their resulting incidents from happening. For those incidents that have already occurred, problem management seeks to prevent them from happening again or if they are unavoidable, minimize the impact on the business. To understand problem management, it is first helpful to define what a problem is. ITIL defines a problem as the cause of one or more incidents. Another way to look at it is – a problem is an underlying condition that could have negative impacts on the service and therefore needs to be addressed. Problems have a lifecycle that starts when the problem is created (often by a change in the environment), includes identification and the stages of diagnosis and remediation, and ends when the problem is resolved either through some action being taken or the underlying situation going away.\r\nProblem management is both a transactional process of managing the lifecycle of an individual problem as well as a portfolio management process of making decisions about what problems should be addressed, the resources applied to them and the risks that problems present to the organization. Problem management includes activities required to diagnose the root cause of incidents and determine the appropriate resolution steps that should be taken. It is also responsible for ensuring that any resolutions are implemented safely and effectively in accordance with change management and release management policies and procedures.\r\nThe portfolio part of problem management is responsible for maintaining information about problems that exist in the environment, any workarounds that have been developed and the resolution options that have been identified. This information enables leaders to make decisions that will reduce the number and impact of incidents.\r\n<span style=\"font-weight: bold;\">What are the goals of Problem Management?</span>\r\n<ul><li>Identify and remove the underlying causes of Incidents.</li><li>Incident and Problem prevention.</li><li>Improve organizational efficiency by ensuring that Problems are prioritized correctly according to impact, urgency, and severity.</li></ul>\r\n<span style=\"font-weight: bold;\">What are the benefits of Problem Management?</span>\r\n<ul><li>Greater service availability by eliminating recurring Incidents.</li><li>Incidents are contained before they impact other systems.</li><li>Elimination of incidents before they impact services through proactive problem management.</li><li>Prevention of known errors recurring or occurring elsewhere across the system.</li><li>Improved First Call Resolution rate.</li></ul>\r\n<span style=\"font-weight: bold;\">How does Problem Management differ from Incident Management?</span>\r\n<ul><li>The purpose of Incident Management is to restore normal service as quickly as possible and minimize adverse impacts on business operations. Incident Management is used to manage any event that disrupts or has the potential to disrupt any IT service and associated processes.</li><li>The purpose of Problem Management is to eliminate the root cause of Incidents, prevent them from recurring or happening in the first place, and to minimize the impact of Incidents that cannot be prevented. Problem Management includes activities to diagnose and discover the resolution to the underlying cause of Incidents, ensure that the resolution is implemented (often through Change Management), and eliminate errors before they result in Incidents.</li><li>One of the outcomes of the problem management process is a known error record.</li></ul>","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_Problem_Management_Software__1_.png","alias":"problem-management-software"},"331":{"id":331,"title":"Network Management Software","description":" <span style=\"font-weight: bold; \">Network management software</span> is software that is used to provision, discover, monitor and maintain computer networks. \r\nWith the expansion of the world wide web and the Internet, computer networks have become very large and complex, making them impossible to manage manually. In response, a suite of network management software was developed to help reduce the burden of managing the growing complexity of computer networks. \r\nNetwork management software usually collects information about network devices (which are called Nodes) using protocols like SNMP, ICMP, CDP etc. This information is then presented to network administrators in an easy to understand and accessible manner to help them quickly identify and remediate problems. \r\nSome advanced network control software may rectify network problems automatically. Network management program may also help with tasks involved in provisioning new networks, such as installing and configuring new network nodes etc. Network management tools may also help with maintenance of existing networks like upgrading software on existing network devices, creating new virtual networks etc. \r\n<p class=\"align-center\"><span style=\"font-weight: bold; \">Functions</span></p>\r\n<p class=\"align-left\"><span style=\"font-weight: bold; \">Provisioning:</span> Enables network managers to provision new network devices in an environment. Automating this step reduces cost and eliminates chances of human error.</p>\r\n<p class=\"align-left\"><span style=\"font-weight: bold; \">Mapping or Discovery:</span> Enables the software to discover the features of a target network. Some features that are usually discovered are: the nodes in a network, the connectivity between these nodes, the vendor types, the performance characteristics etc.</p>\r\n<p class=\"align-left\"><span style=\"font-weight: bold; \">Monitoring:</span> Enables the network management system to monitor the network for problems and to suggest improvements. The software may poll the devices periodically or register itself to receive alerts from network devices. One mechanism for network devices to volunteer information about itself is by sending an SNMP Trap. Monitoring can reveal faults in the network such as failed or misconfigured nodes, performance bottlenecks, intrusions etc.</p>\r\n<p class=\"align-left\"><span style=\"font-weight: bold; \">Configuration management:</span> Enables the software to ensure that the network configuration is as desired and there is no configuration drift.</p>\r\n<p class=\"align-left\"><span style=\"font-weight: bold; \">Regulatory compliance:</span> Enables the network management system software to ensure that the network meets the regulatory standards and complies with applicable laws.</p>\r\n<p class=\"align-left\"><span style=\"font-weight: bold;\">Change control:</span> Enables the software to ensure that the network changes are enacted in a controlled and coordinated manner. Change control can enable audit trails which has applications during a forensic investigation after a network intrusion.</p>\r\n<p class=\"align-left\"><span style=\"font-weight: bold;\">Software Asset Management:</span>Provides software deployment and patch management.</p>\r\n<p class=\"align-left\"><span style=\"font-weight: bold;\">Cybersecurity: </span>Enabled the software to use all the data gathered from the nodes to identify security risks in an IT environment.</p>","materialsDescription":"<h1 class=\"align-center\">What does Network Inventory Management system mean?</h1>\r\nNetwork inventory management is the process of keeping records of all the IT or network assets that make up the network.\r\nIt enables network administrators/businesses to have a physical record of all IT and network equipment within the organization.\r\nNetwork inventory management is generally performed to through IT asset tracking software that scans, compiles and records data about each device/node over a network.\r\n<p class=\"align-left\"><span style=\"font-weight: bold; \">Network inventory management software may include:</span></p>\r\n<ul><li>Number of routers, their make, type and place of installation, serial number</li><li>IP addresses of all devices/nodes, IP addressing scheme used</li><li>Number and type of software along with license keys and expiry dates</li></ul>\r\n<p class=\"align-left\"><span style=\"font-weight: bold; \">This data helps businesses with:</span></p>\r\n<ul><li>Network size estimation</li><li>Network capacity planning</li><li>Network cost/ROI estimation</li><li>Physical network administration (to deal with device/equipment loss and theft)</li></ul>\r\n<h1 class=\"align-center\">What is SNMP Management Software?</h1>\r\n<span style=\"font-weight: bold; \">SNMP (Simple Network Management Protocol) management software</span> is an application or program used to manage and monitor many network devices – such as servers, printers, hubs, switches, and routers – that are SNMP-aware and which an SNMP agent software can poll and receive alert traps when needed.\r\nSNMP network management software is currently considered the best choice by professionals for IP (Internet Protocol) network management, and as a result, SNMP is widely supported and featured in many hardware devices and network management software packages. \r\nSNMP software is designed to be able to be deployed on a large number of network devices, to have minimal impact and transport requirements on the managed nodes and to continue working when most other network applications fail.\r\n\r\n","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_Network_Management_Software.png","alias":"network-management-software"},"379":{"id":379,"title":"SAM - Software Asset Management","description":"<span style=\"font-weight: bold; \">Software asset management (SAM)</span> tools automate many of the tasks required to maintain compliance with software licenses, thereby controlling software spending. They facilitate the in-depth analysis of software assets by decoding software license entitlements, automating the collection of software consumption data, establishing independent software vendor (ISV) effective license position (ELP), and optimizing software value delivery and information sharing. SAM software manage entitlements from enterprise license agreements, purchases and other records to automatically determine and optimize license position against discovered software. Infrastructure and operations (I&O) leaders use SAM tools for managing software entitlement, in lieu of using spreadsheets, due to the rising complexity of software-licensing schemes.\r\nFor many organizations, the goal of implementing an asset software program is very tactical in nature, focused specifically on balancing the number of software licenses purchased with the number of actual licenses consumed or used. In addition to software license management, an effective SAM program must also ensure that the usage of all installed software is in keeping with the terms and conditions of the specific vendor license agreement. In doing so, organizations can minimize liabilities associated with software piracy in the event of an audit by a software vendor or a third party such as the Business Software Alliance (BSA). \r\nThe key business benefits of SAM software be summarized as follows::\r\n<span style=\"font-weight: bold; \">Licenses.</span> Licenses are assets that need to be managed. Each license contains specific conditions for how the software product can be installed and used. As a user, your job is to make sure your company is compliant with the terms and conditions of the license agreement.\r\n<span style=\"font-weight: bold; \">Compliance </span>is the bedrock of asset management tools. Software vendors don’t want you to use more software than you licensed. Even though SAM is much bigger than compliance, compliance is where license management becomes an essential part of your business strategy. And it’s the first goal for most companies when starting SAM.\r\n<span style=\"font-weight: bold; \">Audits. </span>To check whether you are compliant, vendors will perform software asset management audit to see how their product is being used, how it’s configured, and whether your licenses cover all of it. There are two possible outcomes of an audit: either you’re compliant, or you’re not. Non-compliance can result in unexpected fees, which, if you’re not careful, can cost you big. An audit also disrupts your business and can take months to complete without license management technology to support the process.\r\n<span style=\"font-weight: bold; \">Optimization.</span> Often businesses are over-compliant simply because they have more licenses than they need. They prefer to over-pay upfront to outsmart the audit risk. So, while they aren’t losing a ton of money at once for failing an audit, they are losing it slowly. It may not hurt at first, but over time being over-licensed costs more than failing an audit. When you fail an audit, you buy just enough licenses to close the gap, and often vendors demand you pay back-maintenance for the licenses too. It’s expensive, but the problem is a one-time cost — that can also be reduced or completely eliminated with software license management solutions.","materialsDescription":"<h1 class=\"align-center\">5 Reasons to do Software Asset Management</h1>\r\n<span style=\"font-weight: bold; \">Cost savings.</span> With a full overview of your environment and your software needs, you know exactly what you’re using and exactly what you need. So you purchase the right licenses from the start, saving you money on maintenance fees, and helping to ensure compliance. In fact, you can reduce your licensing costs up to 30%.\r\nTime savings. Organizing your licenses and setting up software asset management process will save you time:\r\n<ul><li>Have a central database of your licensing terms and conditions, making it easier and quicker to get the information you need to make better software purchasing and IT budgeting decisions</li><li>Be able to respond to audit letters within days instead of weeks</li><li>Transparency means you can respond quicker to problems, sometimes even before they arise</li></ul>\r\n<span style=\"font-weight: bold; \">Automation.</span>Nothing says effortless like automation. Automating your processes frees you up to concentrate on other things. With alerts and regular reports, you don’t need to spend time watching out for problems and looking for areas to save. Just to name a few examples an asset management program tool can automate:\r\n<ul><li> Alerting you to over usage and non-compliance</li><li> Informing you about high-risk configurations</li><li> Suggesting optimization options</li><li> Filling software requests with existing licenses</li><li> Simulating your data center architecture and the resulting licensing costs</li></ul>\r\n<span style=\"color: rgb(97, 97, 97); \"><span style=\"font-weight: bold; \">Software License Optimization.</span> When you know what you have and use, you can go beyond compliance. You can compare your licenses. See what license schemes are possible and make the most sense in your environment—while easily keeping an eye on cost.</span>\r\n<span style=\"font-weight: bold; \">Strategy.</span> Enterprise asset management system gives you transparency into your current and past software needs. This in turn gives you valuable insights into your software future. It can help you plan in advance on multiple levels from data center architectures to budgets and service-charging. There are strategic benefits for every department in the company.\r\n<h1 class=\"align-center\">Choosing the Best Software Asset Management Software</h1>\r\n<span style=\"font-weight: bold; \">Software Discovery. </span>Enterprise asset management software enables IT organizations to keep track of their hardware and software inventory and monitor license compliance. In the past, this was largely a manual process where IT operators would maintain spreadsheets with information about IT assets. Each time a configuration item changed, a manual update would have to be performed which made it difficult to determine if your SAM database was truly accurate.\r\n<span style=\"font-weight: bold; \">Software and Hardware Inventory and Cataloging.</span> Software and hardware inventory cataloging is one of the main drivers of software asset management. Without sufficient oversight of inventory within the IT organization, waste is inevitable as IT managers order excess licenses, servers, and workstations without any knowledge of viable alternatives that may already be at their disposal. \r\nSoftware inventory is another key feature for SAM tools. IT organizations should look for a tool that tracks instances of software installations on the network and that can be used to determine exactly how many used or unused licenses the organization has for each application.\r\n<span style=\"font-weight: bold; \">License Compliance Monitoring.</span>Today's the leading software on asset management market include features that can help you proactively monitor your inventory of software licenses and detect non-compliance issues before they can ever be discovered in a software vendor audit. IT organizations can receive automated updates and notifications when a change in the system affects license compliance and take steps to correct the non-compliance.\r\n<span style=\"font-weight: bold; \">Asset Depreciation. </span>Software purchased for use is considered a fixed asset by general accounting principles, meaning that corporate organizations can depreciate purchased software on their taxes to obtain an income reduction and reduce their tax liability. Your software asset management system should track the total cost of any software your organization purchases and depreciate the software over time according to your accounting rules. \r\n<span style=\"font-weight: bold; \">Geo-location.</span> Software asset management tools provide IT organizations with unprecedented oversight into their hardware and software inventory and configuration items. The ability to detect hardware and software on the network, collect attribution data for those configuration items and organize that information into a searchable database that drives better asset management is already revolutionary for most IT organizations.\r\n<span style=\"font-weight: bold; \">Audit Scheduling.</span> If your IT organization purchases software licenses from a major software vendor, you should anticipate that you will receive at least one software audit request every three years. As your number of vendor partners grow, you may even receive audit requests annually. If you purchased the right software asset management application, you should be conducting your own software compliance audits on a monthly basis to truly verify your compliance with software license agreements.\r\n<span style=\"font-weight: bold;\">User-Friendly, Automated Reporting.</span> SAM tools with automated reporting features make it easy for IT managers and executive decision-makers to quickly access the high-impact information needed to make important decisions. Most software vendors have developed SAM tools that can collect software usage data or manage license compliance, but IT managers should also look at SAM tools with automated reporting features that promote ease-of-use and seamlessly deliver the information that users need from the system in a digestible and actionable format. \r\n\r\n\r\n","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_Software_Asset_Management.png","alias":"sam-software-asset-management"},"381":{"id":381,"title":"Software Distribution","description":" Software distribution can refer to 2 distinct concepts. When used as a verb, software distribution is the process of delivering software to the end user, while a software distribution, as a noun, (distro) is a collection of software.\r\nA software distribution (noun), or distro, is a collection of software components built, assembled and configured so that it can essentially be used "as is". It is often the closest thing to turnkey form of free software. A distro may take the form of a binary distribution, with an executable installer which can be downloaded from the Internet. Examples range from whole operating system distributions to server and interpreter distributions (for example WAMP installers). Software distributions (noun) can also refer to careware and donateware.\r\nIn recent years, the term has come to refer to nearly any "finished" software (i.e. something that is more or less ready for its intended use, whether as a complete system or a component of a larger system) that is assembled primarily from open source components.\r\nTechnical support is a key issue for end-users of distributions, since the distribution itself is typically free and may not be "owned" in a commercial sense by a vendor. Depending on the distribution, support may be provided by a commercial support vendor, the developers who created the distribution or by the user community itself.\r\nIn simple terms, software distribution is the process of making a software available to the end user from the developer. It gives the organization a safe and consistent method for packaging, deploying and tracking software changes in the enterprise. The software rollout projects can be done quickly and effectively in a hassle free way through software distribution.","materialsDescription":" <span style=\"font-weight: bold; \">What are the Benefits of Software Distribution?</span>\r\n<span style=\"font-style: italic; \"><span style=\"font-weight: bold; \">Improved Software Security</span></span>\r\nA proper software distribution service monitors software performance on various workstations. It checks the software health and can automatically track necessary updates. Various maintenance job like uninstall, configuration, etc can also be performed securely through effective software distribution.\r\n<span style=\"font-style: italic;\"><span style=\"font-weight: bold; \">Track of User Actions</span></span>\r\nStatistics and analytics can be drawn from comprehensive or customized reports gathered from software distribution systems. It can be used to monitor user activities around the particular software on workstations. This can assist in establishing a controlled work environment where the actions of users can be monitored by the enterprise.\r\n<span style=\"font-style: italic;\"><span style=\"font-weight: bold; \">Saves Time</span></span>\r\nSoftware distribution gives comprehensive deployment options and ways to customize installation. Packages can be distributed to users in less time within hours and not in days. Software installations can be done remotely saving both time and effort. The process can be done unattended so IT team can concentrate on other jobs.\r\n<span style=\"font-style: italic;\"><span style=\"font-weight: bold;\">Automated Updates</span></span>\r\nSoftware distribution can track important updates and issue them to specific workstations in the organization. IT team does not need to attend to each computer and perform maintenance job. The software distribution system finds and schedules all important upgrades required by the application.","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_Software_Distribution.png","alias":"software-distribution"},"383":{"id":383,"title":"Software-defined storage platforms, SDS","description":" <span style=\"font-weight: bold;\">Software-defined storage (SDS)</span> is a marketing term for computer data storage software for policy-based provisioning and management of data storage independent of the underlying hardware. \r\n<span style=\"font-weight: bold;\">SDS software</span> typically includes a form of storage virtualization to separate the storage hardware from the software that manages it. The software enabling a software-defined storage environment may also provide policy management for features such as data deduplication, replication, thin provisioning, snapshots and backup.<br /><br /><span style=\"font-weight: bold;\">SDS system</span> hardware may or may not also have abstraction, pooling, or automation software of its own. When implemented as software only in conjunction with commodity servers with internal disks, it may suggest software such as a virtual or global file system. If it is software layered over sophisticated large storage arrays, it suggests software such as storage virtualization or storage resource management, categories of products that address separate and different problems. If the policy and management functions also include a form of artificial intelligence to automate protection and recovery, it can be considered as intelligent abstraction.\r\n<span style=\"font-weight: bold;\">Software-defined storage solutions</span> may be implemented via appliances over a traditional storage area network (SAN), or implemented as network-attached storage (NAS), or using object-based storage. ","materialsDescription":"<h1 class=\"align-center\"> <span style=\"font-weight: normal;\">What does SDS mean?</span></h1>\r\n<span style=\"font-weight: bold; \">SDS </span>stays for <span style=\"font-weight: bold; \">software-defined storage </span>solution - it is a computer program that manages data storage resources and functionality and has no dependencies on the underlying physical storage hardware.\r\nAll storage systems have always been software-defined. What's changed is that the <span style=\"font-weight: bold; \">software has become portable</span>.\r\nBut nothing in the storage world elicits more divergent opinions than the term "software-defined storage products". With no universally accepted definition, SDS is vendor-specific. Software defined storage leaders shape the SDS definition to match their storage offerings. The result is that every storage vendor appears to offer SDS.\r\nStorage system software historically was tied to the hardware it managed. When the hardware ran out of capacity or performance, it had to be replaced and the software licensing was repurchased along with the hardware.<br />What made matters significantly worse was that storage system architectures created isolated silos. Unique infrastructures made everything from storage provisioning, data protection, disaster recovery, tech refresh, data migration, power and cooling more and more untenable. Compound that with the ongoing trend of rapid data growth and the need to store ever-increasing amounts of data, and the available architectures made storage systems management too complicated, difficult, expensive and ultimately unmaintainable.\r\n<h1 class=\"align-center\"><span style=\"font-weight: normal;\">What are SDS categories pros and cons?</span></h1>\r\n With no working standard SDS definition, a variety of technologies have emerged in the software-defined storage market. For our purposes, the four categories of SDS include: \r\n<ul><li class=\"align-left\"><span style=\"font-weight: bold; \">Hypervisor-based SDS</span></li><li class=\"align-left\"><span style=\"font-weight: bold; \">Hyper-converged infrastructure (HCI) SDS</span></li><li class=\"align-left\"><span style=\"font-weight: bold; \">Storage virtualization SDS</span></li><li class=\"align-left\"><span style=\"font-weight: bold; \">Scale-out object and/or file SDS</span></li></ul>\r\n<p class=\"align-center\"><span style=\"font-weight: bold;\"> Hypervisor-based SDS pros:</span><br /> </p>\r\n<span style=\"font-weight: bold; \">Flexibility</span>. VSAN works with both hard disk drives (HDDs) and solid-state drives (SSDs), including DIMM-based flash drives, PCIe, SAS, SATA and even NVMe. VMware vSAN supports both HDDs and SSDs in a hybrid mode or all SSDs in all-flash mode.<span style=\"font-weight: bold; \"></span>\r\n<span style=\"font-weight: bold; \">Scalability and performance</span>. VSAN is highly scalable while delivering high levels of performance. It scales out through vSphere clustering and can support up to 64 vSphere hosts per cluster. Each vSphere host supports approximately 140 TB raw storage capacity and well north of 8 PB of raw storage capacity per cluster. On the performance side, each vSAN host can supply 100,000 or more IOPS, yielding millions of IOPS per cluster.\r\n<p class=\"align-center\"><span style=\"font-weight: bold;\">Hypervisor-based SDS cons:</span></p>\r\n<span style=\"font-weight: bold; \">Scalability and performance issues.</span> If a VM requires more IOPS than one physical vSphere host can provide, it can get them from other nodes in the cluster, but with a considerable latency penalty. Inter-cluster storage performance is another issue. Most vSAN clusters use 10 Gbps to 40 Gbps Ethernet and TCP/IP to interconnect the hosts. This architecture essentially replaces a deterministic system bus with a non-deterministic TCP/IP network so latencies between hosts become highly variable. Unless the cluster uses more sophisticated and faster interconnections, its storage performance from one clustered host to another will be highly variable and inconsistent.<span style=\"font-weight: bold; \"></span>\r\n<span style=\"font-weight: bold; \">Some things are not so simple. </span>Converting from a siloed storage environment to a pure vSAN requires converting non-VM images to VMs first. It's a time-consuming process for non-vSphere environments.\r\n<p class=\"align-center\"><span style=\"font-weight: bold;\">Hyper-converged infrastructure (HCI) SDS pros:</span></p>\r\n<span style=\"font-weight: bold; \">Scalability and performance.</span> Scaling HCI is as simple as adding a node to the cluster. Scaling storage capacity just requires adding drives (HDDs or SSDs) up to a node's maximum or adding additional nodes. Each HCI product has its own scalability and performance limitations; however, most scale well into the PBs and add performance linearly with each server node added to the cluster.<span style=\"font-weight: bold; \"></span>\r\n<span style=\"font-weight: bold; \">Simplicity. </span>Plug it in, turn it on, configure and you're done. Few systems are simpler. No DIY, and there's just one throat to choke for support.\r\n<p class=\"align-center\"><span style=\"font-weight: bold;\">Hyper-converged infrastructure (HCI) SDS cons:</span></p>\r\n<span style=\"font-weight: bold; \">Scalability and performance issues.</span> HCI cluster capacity is limited by the number of nodes supported in the cluster and the amount of capacity supported per node. If a VM requires more IOPS than a given host can provide, it can get IOPS from other nodes, but with a considerable latency penalty. Inter-cluster storage performance is another issue. Most HCI clusters use 10 Gbps to 40 Gbps Ethernet and TCP/IP to interconnect the hosts so latencies between hosts can be highly variable.<span style=\"font-weight: bold; \"></span>\r\n<span style=\"font-weight: bold; \">Some things are not so simple.</span> Converting from a siloed storage environment to an HCI cluster requires first converting both non-VM images and VMs to the HCI VMs or Docker containers, a time-consuming process.\r\n<p class=\"align-center\"><span style=\"font-weight: bold;\">Storage virtualization SDS pros:</span></p>\r\n<span style=\"font-weight: bold; \"></span><span style=\"font-weight: bold;\">Flexibility.</span> It works with most x86 physical hosts or VMs as long as the hardware or hypervisor is certified and supported by the vendor. It converts all storage that sits behind it into the virtual storage pool, enabling repurposing of older storage. The scale-out versions permit physical or VM access to any node. Multi-copy mirroring isn't necessary to protect against a single controller failure, although it's available. Storage virtualization SDS can be provided as software or bundled with server hardware similar to HCI.<span style=\"font-weight: bold; \"></span>\r\n<span style=\"font-weight: bold; \">Total cost of ownership (TCO)</span>. The biggest cost savings in storage virtualization SDS comes from commodity hardware and server-based drives. Another cost saving comes from inline data reduction technologies. Compared to equivalent storage systems, most storage virtualization SDS will yield a much more favorable TCO.<span style=\"font-weight: bold; \"><br /></span>\r\n<p class=\"align-center\"><span style=\"font-weight: bold;\">Storage virtualization SDS cons:</span></p>\r\n<span style=\"font-weight: bold;\">Flexibility issues. </span>Most storage virtualization SDS can only run on the specific commodity hardware certified and supported by the vendor. Products that can run as VSAs require hypervisors certified and supported by the vendor.<span style=\"font-weight: bold; \"></span>\r\n<span style=\"font-weight: bold; \">Scalability and performance issues.</span> On paper, these systems support tremendous capacity scalability, but the pragmatic approach is a bit different. Storage virtualization SDS capacity is constrained by x86 server limitations. Each server can handle only so much capacity before performance declines below acceptable levels. Storage virtualization SDS scale-out is constrained by clustering because the number of storage controller nodes supported is limited. Performance may also be constrained by the same limitations. \r\n<p class=\"align-center\"><span style=\"font-weight: bold; \">Scale-out object and/or file SDS pros:<br /></span></p>\r\n<span style=\"font-weight: bold; \">Scalability and performance. </span>Scaling is multi-dimensional: each node can be scaled individually and generally the cluster itself can add nodes for capacity or performance. Performance for both will never approach that of high-performance block storage.<span style=\"font-weight: bold; \"></span><span style=\"font-weight: bold; \"></span>\r\n<span style=\"font-weight: bold; \">Simplicity. </span>When bundled with hardware, scale-out object or file storage is very simple to set up, configure, and manage. Implementing it as software requires DIY systems integration. Both types leverage commodity hardware, have exceptional scalability and -- in the case of scale-out object storage -- unmatched data resilience and longevity via erasure coding.\r\n<p class=\"align-center\"><span style=\"font-weight: bold;\">Scale-out object and/or file SDS cons:</span></p>\r\n<span style=\"font-weight: bold;\">Flexibility issues. </span>Whether delivered as software or bundled with hardware, the hardware must be certified and supported by the vendors.\r\n<span style=\"font-weight: bold; \">Scalability and performance issues.</span> Scale-out file SDS generally doesn't scale as high as scale-out object storage, but object will have somewhat higher latencies. Object storage has significant additional latencies from the metadata and data resiliency functions. Both types are best suited for secondary applications where high performance is not a requirement.<span style=\"font-weight: bold; \"></span>\r\n<span style=\"font-weight: bold; \">Some things are not so simple. </span>When scale-out file or object storage SDS is purchased as software, it's a DIY project, so special skills, professional services or a systems integrator may be required.\r\n\r\n","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_Software_defined_storage_platforms.png","alias":"software-defined-storage-platforms-sds"},"389":{"id":389,"title":"Centralized Virtual Desktop","description":" Virtual Desktop Infrastructure (VDI) can bring significant benefits to organizations that want to be more flexible, as well as reduce the cost and complexity of managing various client desktops, laptops and mobile devices.\r\nOrganizations that use VDI can take advantage of a centralized desktop that has clear advantages: fast deployment, lower support costs, increased security. However, VDI can also cause a number of problems for organizations that do not plan or implement the technology correctly. Many VDI pilot projects fail due to incorrect design considerations that lead to performance problems. This, in turn, leads to unsatisfied end users.\r\nOne of the most important recommendations for implementing VDI is to properly design the network and storage. Incorrectly designed network and storage can have disastrous consequences for VDI performance and end-user satisfaction.\r\nBecause the VDI architecture includes centralized virtual machines running in the data center, the VDI desktop display for the end user depends on protocols such as PCoIP, ICA, RDP, or Blast Extreme (VMware) that can successfully process data between the end user and the center data processing. This imposes more load on the underlying network.\r\nOrganizations must fully understand all aspects of VDI performance when connecting to both high-speed local area network connections and slower channels such as a WAN.\r\nIt is impossible to emphasize how important a properly designed storage is to successfully deploy VDI. When you think of traditional workstations, they work in a distributed way. All calculations, memory and storage performance are contained in individual workstations. However, in a virtual desktop environment, you accept all the calculations, memory, and storage (disk IOPs), which in the traditional workstation environment should be distributed across all workstations, centralizing these requirements to the external virtual desktop environment.","materialsDescription":" <span style=\"font-weight: bold; \">What is Virtual Desktop Infrastructure (VDI)?</span>\r\nVirtual desktop infrastructure (VDI) is virtualization technology that hosts a desktop operating system on a centralized server in a data center. VDI is a variation on the client-server computing model, sometimes referred to as server-based computing. The term was coined by VMware.\r\nIn 2006, VDI began to emerge as an alternative to the server-based computing model used by Citrix and Microsoft Terminal Services. Today, VMware, Citrix and Microsoft all offer their own VDI platforms.\r\nThere are two main approaches to VDI: persistent and nonpersistent. Persistent VDI provides each user with his or her own desktop image, which can be customized and saved for future use, much like a traditional physical desktop. Nonpersistent VDI provides a pool of uniform desktops that users can access when needed. Nonpersistent desktops revert to their original state each time the user logs out.\r\n<span style=\"font-weight: bold; \">How to implement VDI?</span>\r\nWhen you think about deploying a VDI, there are several best practices that must be considered to ensure successful implementation:\r\n<ol><li>Understanding End User Requirements</li><li>Proper network and storage proecting</li><li>Select the type of virtual desktop</li><li>High availability</li></ol>","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_Centralized_Virtual_Desktop.png","alias":"centralized-virtual-desktop"},"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"},"499":{"id":499,"title":"SDN Software-Defined Network","description":" <span style=\"font-weight: bold; \">Software-defined networking (SDN)</span> technology is an approach to network management that enables dynamic, programmatically efficient network configuration in order to improve network performance and monitoring, making it more like cloud computing than traditional network management.\r\nSDN encompasses several types of technologies, including functional separation, network virtualization and automation through programmability. SDN solution is meant to address the fact that the static architecture of traditional networks is decentralized and complex while current networks require more flexibility and easy troubleshooting. \r\nSDN technology attempts to centralize network intelligence in one network component by disassociating the forwarding process of network packets (<span style=\"font-weight: bold; \">data plane</span>) from the routing process (<span style=\"font-weight: bold; \">control plane</span>). The control plane consists of one or more controllers which are considered as the brain of SDN network where the whole intelligence is incorporated. Originally, software defined technology focused solely on separation of the network control plane from the data plane. While the control plane makes decisions about how packets should flow through the network, the data plane actually moves packets from place to place. \r\nIn a classic SDN scenario, a packet arrives at a network switch, and rules built into the switch's proprietary firmware tell the switch where to forward the packet. These packet-handling rules are sent to the switch from the centralized controller. The switch - also known as a <span style=\"font-weight: bold; \">data plane device</span> - queries the controller for guidance as needed, and it provides the controller with information about traffic it handles. The switch sends every packet going to the same destination along the same path and treats all the packets the exact same way.\r\nSoftware defined networking solutions use an operation mode that is sometimes called adaptive or dynamic, in which a switch issues a route request to a controller for a packet that does not have a specific route. This process is separate from adaptive routing, which issues route requests through routers and algorithms based on the network topology, not through a controller.\r\nThe <span style=\"font-weight: bold;\">virtualization</span> aspect of SDN comes into play through a virtual overlay, which is a logically separate network on top of the physical network. Users can implement end-to-end overlays to abstract the underlying network and segment network traffic. This microsegmentation is especially useful for service providers and operators with multi-tenant cloud environments and cloud services, as they can provision a separate virtual network with specific policies for each tenant.","materialsDescription":"<h1 class=\"align-center\">Benefits of Software Defined Networking</h1>\r\nWith SDN software, an <span style=\"font-weight: bold; \">administrator can change any network switch's rules when necessary</span> - prioritizing, deprioritizing or even blocking specific types of packets with a granular level of control and security. This is especially helpful in a cloud computing multi-tenant architecture, because it enables the administrator to manage traffic loads in a flexible and more efficient manner. Essentially, this enables the administrator to use less expensive commodity switches and have more control over network traffic flow than ever before.\r\nOther benefits of SDN are <span style=\"font-weight: bold; \">network management</span> and <span style=\"font-weight: bold; \">end-to-end visibility.</span>A network administrator need only deal with one centralized controller to distribute policies to the connected switches, instead of configuring multiple individual devices. This capability is also a security advantage because the controller can monitor traffic and deploy security policies. If the controller deems traffic suspicious, for example, it can reroute or drop the packets.\r\nSoftware defined networking software also <span style=\"font-weight: bold; \">virtualizes hardware</span> and <span style=\"font-weight: bold; \">services </span>that were previously carried out by dedicated hardware, resulting in the touted benefits of a reduced hardware footprint and lower operational costs.\r\nAdditionally, SDN contributed to the emergence of <span style=\"font-weight: bold; \">software-defined wide area network (SD-WAN)</span> technology. SD-WAN employs the virtual overlay aspect of SDN technology, abstracting an organization's connectivity links throughout its WAN and creating a virtual network that can use whichever connection the controller deems fit to send traffic.\r\n<h1 class=\"align-center\">Are there any SDN security benefits?</h1>\r\nAs security issues become more complex at the edge of the network, it’s no wonder that network and security professionals are looking for new ways to approach network protection. Nowadays, it seems like SDN is going to be the answer. \r\n<ul><li><span style=\"font-weight: bold; \">Centralized Network Control </span></li></ul>\r\nIn a traditional network, devices (router/switches) make their own decisions locally about where and how best to send traffic. In terms of network security, SDN can be used to route data packets through a single firewall and make IDS and IPS data capture more efficient.\r\n<ul><li><span style=\"font-weight: bold; \">Simplify Configuration</span></li></ul>\r\nThe SDN makes it easier to automate configuration and improves the traceability of those configurations. The introduction of SDN network management allows dynamic programming and restructuring of network settings, which reduces the risk of DDoS attacks. It is also worth adding that SDN has automatic quarantine capabilities. \r\n<ul><li><span style=\"font-weight: bold; \">Creation of High-level Network Policies</span></li></ul>\r\n<span style=\"color: rgb(97, 97, 97); \">Rather than physically configuring security solutions, SDN facilitates the central management of security policies to make network operator roles more efficient and flexible. Moreover, SDN helps to move away from current management approaches such as SNMP/CLI and build more effective policy management. </span>\r\n<ul><li><span style=\"font-weight: bold; \"><span style=\"color: rgb(97, 97, 97); \">Easy to use Application Programming Interfaces (APIs)</span></span></li></ul>\r\n<span style=\"color: rgb(97, 97, 97); \">Cloud APIs are interfaces presented by software and play a vital role in SDN controllers and applications. Easy to use APIs help to manage network resources, improve the efficiency of IT resources, and aid integration with IT tools. Additionally, a number of good cloud security practices have been introduced recently. </span>","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_SDN_Software_Defined_Network.png","alias":"sdn-software-defined-network"},"567":{"id":567,"title":"Graphics Design","description":" Graphic design is the process of visual communication and problem-solving through the use of typography, photography, and illustration. The field is considered a subset of visual communication and communication design, but sometimes the term "graphic design" is used synonymously. Graphic designers create and combine symbols, images and text to form visual representations of ideas and messages. They use typography, visual arts, and page layout techniques to create visual compositions. Common uses of graphic design include corporate design (logos and branding), editorial design (magazines, newspapers and books), wayfinding or environmental design, advertising, web design, communication design, product packaging, and signage.\r\nGraphic design is applied to everything visual, from road signs to technical schematics, from interoffice memorandums to reference manuals.\r\nDesign can aid in selling a product or idea. It is applied to products and elements of company identity such as logos, colors, packaging and text as part of branding (see also advertising). Branding has become increasingly more important in the range of services offered by graphic designers. Graphic designers often form part of a branding team.\r\nGraphic design is applied in the entertainment industry in decoration, scenery and visual story telling. Other examples of design for entertainment purposes include novels, vinyl album covers, comic books, DVD covers, opening credits and closing credits in filmmaking, and programs and props on stage. This could also include artwork used for T-shirts and other items screenprinted for sale.\r\nFrom scientific journals to news reporting, the presentation of opinion and facts is often improved with graphics and thoughtful compositions of visual information - known as information design. Newspapers, magazines, blogs, television and film documentaries may use graphic design. With the advent of the web, information designers with experience in interactive tools are increasingly used to illustrate the background to news stories. Information design can include data visualization, which involves using programs to interpret and form data into a visually compelling presentation, and can be tied in with information graphics.","materialsDescription":"<span style=\"font-weight: bold;\">What is graphic design and what does it include?</span>\r\nGraphic design is a design process that combines text and graphics in a way that is intended to communicate a specific message.\r\n<span style=\"font-weight: bold;\">Where is graphic design used?</span>\r\nYou will find graphic design in company logos, printed materials like brochures, posters, signs, greeting cards, postcards, business cards, billboards and ads. Advances in technology have brought us the digital environment complete with websites, online ads, virtual brochures and presentations, and so very much more.\r\n<span style=\"font-weight: bold;\">What do graphic designers use to create these designs?</span>\r\nGraphic designers can use hand-illustrated designs as well as computer-aided designs thanks to a wide range of software with nearly endless digital design tools. The availability of software like Adobe Illustrator and Photoshop have become staples of the graphic designer.\r\n<span style=\"font-weight: bold;\">What can a graphic designer do that I can’t do?</span>\r\nA graphic designer does more than just put their creative skills to work. Though most graphic designers are intuitively creative already, they have generally spent time studying numerous design principles. It’s vital to understand how to use design elements to transmit the required messages and values as well as evoke a certain feeling in the viewer. As a visual communicator, they leverage these design elements and use concepts such as color, typography, space, balance, form and lines to create their visual message.\r\nSome graphic designers are also able to understand the more technical aspects of the design required to create digital assets for a company. For example, a web designer is often able to create wireframes, workflows, and sitemaps and understand how to develop easy navigation for the user experience.\r\n<span style=\"font-weight: bold;\">What else does a graphic designer accomplish as part of the work they produce for a client?</span>\r\nBesides turning their client’s vision, brand image and value proposition into a graphic display, a designer will undertake many specialty tasks as part of a graphic design project. The specialty tasks include collaborating on the concept (usually with a team), attending meetings about the project, paying attention to what customers are clicking on, doing presentations that explain the various potential designs, revising designs, and preparing asset files for others on the team and for client use.","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_Graphics_Design.png","alias":"graphics-design"},"569":{"id":569,"title":"Website Design","description":" Web design is the process of creating websites. It encompasses several different aspects, including webpage layout, content production, and graphic design. While the terms web design and web development are often used interchangeably, web design is technically a subset of the broader category of web development.\r\nWebsites are created using a markup language called HTML. Web designers build webpages using HTML tags that define the content and metadata of each page. The layout and appearance of the elements within a webpage are typically defined using CSS, or cascading style sheets. Therefore, most websites include a combination of HTML and CSS that defines how each page will appear in a browser.\r\nSome web designers prefer to hand code pages (typing HTML and CSS from scratch), while others use a "WYSIWYG" editor like Adobe Dreamweaver. This type of editor provides a visual interface for designing the webpage layout and the software automatically generates the corresponding HTML and CSS code. Another popular way to design websites is with a content management system like WordPress or Joomla. These services provide different website templates that can be used as a starting point for a new website. Webmasters can then add content and customize the layout using a web-based interface.\r\nWhile HTML and CSS are used to design the look and feel of a website, images must be created separately. Therefore, graphic design may overlap with web design, since graphic designers often create images for use on the Web. Some graphics programs like Adobe Photoshop even include a "Save for Web…" option that provides an easy way to export images in a format optimized for web publishing.","materialsDescription":" <span style=\"font-weight: bold;\">Why is Web Design Important?</span>\r\nIt can be difficult to understand why most businesses are willing to pay top dollar for web design work. After all, having a functional website matters more than how it looks, right? Unfortunately, this isn’t the case. Today, the most important aspect of an online business presence in web design.\r\nThis means that businesses should always try to find the best web styles that work for their businesses. Although there are several people who can create websites, it takes a skilled person to design a website that looks polished and functional. Here are some more reasons why web design is important to good business.\r\n<span style=\"font-weight: bold;\">A Good Site Increases Customer Conversion</span>\r\nWhen a business has a well-designed website, it becomes easier to get more customer conversions. This is because a well-designed website uses its elements to lead customers directly to what they need without distractions.\r\n<span style=\"font-weight: bold;\">A Responsive Website Helps Business Reach More Clients</span>\r\nAccording to recent research by Pew Research Center, it was discovered that more and more users are using their mobile phones to do business. This means that businesses need to take advantage of this new set of customers by creating websites that can get clients who are away from their computers.\r\n<span style=\"font-weight: bold;\">Websites Help in Business Branding</span>\r\nA poor looking website will damage the brand of any company while a scummy-looking website drives customers away. However, an elegant website will help people to connect with a business’s branding. A website with a user-friendly page tends to attract clients more to businesses.","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_Website_Design.png","alias":"website-design"},"579":{"id":579,"title":"Website Mockup Design","description":" Mock-ups are the key aspects of web visual design. They are typically the mid-to-high fidelity representation of products’ visual appearance; mock-ups dictate the product’s typography, color schemes, iconography and also hint at the basics of product functionality. Mock-ups are usually confused with wireframes and prototypes. Wireframes are low-fidelity blueprints with placeholders & gray boxes for detailed content while prototypes demonstrate how the design works. The functioning of a prototype is more complex; they explore a combination of interactions and help refine usability.\r\nMock-ups are quite relevant in any web design since they give users a hint on how the final product will appear. They also help in the implementation of some interactive elements like icons & buttons and usually have an advantage over wireframes & prototypes; mock-ups offer a friendly user interface and you need not rely much on imagination. Generally, Mockups are more complex than wireframes but less functional than prototypes, they fit perfectly as a transitional step between the two.\r\nMockups play a vital role during the process of web designing for business. This is because it will allow website owners to preview the design of their website before it reaches the final stage. If you want to use mockups while designing your business website, hiring mockup design services is the best and the most affordable option.","materialsDescription":" <span style=\"font-weight: bold;\">What is a website mockup?</span>\r\nIn the world of web design, a website mockup is a high-fidelity simulation of how a website will look. Website mockups combine the structure and logic of a wireframe but with the images, graphics and UI elements that the final product will have.\r\nHowever, while website mockups don’t include the transitions and usable functions you’ll see in a prototype and in the final product, they generally include basic navigation and interactions. Simply put, mockups help us define:\r\n<ul><li>Information architecture: how you organize your website’s information logically and hierarchically</li><li>User flow: how the user will interact with your website and the navigation UX</li><li>Visual hierarchy and layout: how all the elements appear on your webpages, their size and position relative to one another and the spacing between</li><li>Color: nearly always contain the color scheme you’ll use in the final product</li><li>Typography: contain the exact fonts types, sizes and boldness that your final product will have</li><li>Images: Use SVGs and high-quality images that mirror exactly the ones you’ll include in your final product</li></ul>\r\nIn short, website mockups help you to define all the important factors of your product to ensure the best UX possible before expensive coding begins. Because at that stage, any changes you make will be paid for in arms and legs!","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_Website_Mockup_Design.png","alias":"website-mockup-design"},"585":{"id":585,"title":"Corporate Identity Design","description":" The Branding of a company is very important and it gives the first impression of your company to its customers. The design of the brand gives judgment about your business and thus it should be very memorable and attractive. A professional branding or logo leaves a good image of your concern and also results in a great impression about the business. With today’s modern trend, you can design various creative and elegant designs for your brand name which leaves the potential customer to identify your company immediately.\r\nThe Brand is much more than the name of the company or its logo. It is the combination of all the experiences and impressions of a concern which includes the public relations, vendors, employees, customers or the communities. There are efficient people who represent the image of a company behind every good brand. When the expectations of the customers are met by the company, the loyalty of the brand is automatically developed. Thus, it is very important to focus on the design of the Brand name which should be descriptive about its services or products, memorable, short and attractive.\r\nBefore designing the brand, decide if it is going to be used on business cards, website, CD’s, clothing’s or printing materials, stickers, pens, on the products sold, or on any social network. Thus, plan accordingly and choose the appropriate designs or colors for your brand. Create a powerful logo with graphic design for your brand name which should speak about your business. It should be bold and distinctive and should be able to advertise about your company. A Tag line is also important for a Brand which could express the benefits of your concern and could leave an impression in the minds of the customers.\r\nThe important elements in a Brand design are the logo, names, tag lines, trademarks and packaging. The brand of the company mostly attempts the customers to purchase the products or services. Therefore, the name of the brand also plays a major role in the success of a business. There should be a life in your Brand designing with a good combination of the color, visual appearance or style, name, topography, intensity and size. Appropriate usage of these elements will provide uniqueness to your brand. You can also use a hired professional to create your brand design to make it more memorable.","materialsDescription":" <span style=\"font-weight: bold;\">How to develop a strong brand identity?</span>\r\nKnow who you are!\r\nBefore you know what tangible elements you want to make up your brand identity, you need to know who you are as a brand.\r\nWho you are as a brand is made up of a few key elements:\r\n<ul><li>Your mission (what’s your “why?”)</li><li>Your values (what beliefs drive your company?)</li><li>Your brand personality (if your brand was a person, what kind of personality would they have?)</li><li>Your unique positioning (how do you differentiate yourself from the competition?)</li><li>Your brand voice (if your brand was a person, how would it communicate?)</li></ul>\r\nThese elements are what define your brand, and before you start building your brand identity, it’s important you have a clear understanding of each.\r\nIf you’re having trouble figuring out who exactly you are, don’t sweat it. Sometimes, all you need is a simple brainstorm to help you get clarity on who you are as a brand.\r\nAsk yourself:\r\n<ul><li>Why did we start this business?</li><li>What are the beliefs and values that are important to us as a company?</li><li>What do we do better than anyone else?</li><li>What makes us special?</li><li>If we could describe our brand in three words, what would they be?</li><li>What are the three words we would want our customers to use to describe us?</li></ul>\r\nYou can also check out this awesome branding workbook from consulting firm PricewaterhouseCoopers. While this workbook is geared towards personal branding, the strategies will work for any type of business model.\r\nOnce you’ve locked in who you are as a brand, it’s time to build the identity that will bring your brand to life and show who you are to the people who matter most: your customers.","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_Corporate_Identity_Design.png","alias":"corporate-identity-design"},"589":{"id":589,"title":"Design Animation","description":" Visual marketing is firmly in the lead when it comes to promoting a business. And the most effective tool for him can surely be called an animated movie. It's no secret that the visualization of information facilitates its perception.\r\nAnimated video is one of the most original ways of presenting advertisements for your company. Animated advertising will attract the views of new customers and you will certainly want to buy products or services. Today, an animated video is a fairly well-known and sought-after form of advertising.\r\nAnimation video today is a must-have for any company that has a website. It is desirable that this video was creative, even if it tells about a large company or reveals serious questions. A distinctive feature of the drawn clips is the ability to present information from the face of any character, even the directly promoted product “animated” with the help of animation.\r\nBefore you order an animated video, it is important to decide which type of video is needed. A video can:\r\n<ul><li>Promote the brand. Such videos reveal the main characteristics of the product and tell about its strengths. In order for such a video to be effective, it is important to get an emotional response from the audience. To do this, you need to create a thoughtful character with an obvious pattern of behavior so that the viewer associates himself with him.</li><li>Talk about the company. The target audience of such clips is existing and potential employees and partners. Such videos are ordered to emphasize the positive features of the company. Due to this, there is a desire to cooperate with such an organization and/or work in it.</li><li>Be informative. These are intelligent videos that do not contain a call to action. The task of the informational video is to increase the involvement of the target audience and increase the level of brand loyalty. It is the most capacious and easy to hear important information.</li></ul>\r\nHaving made the decision to order an animation video, you need to understand what tasks it should perform. It is necessary to clarify the interests and preferences of the target audience and focus on them, choose an understandable and pleasant (if appropriate, with a humorous tint) style of narration and talk about the real merits of the product or service.","materialsDescription":" <span style=\"font-weight: bold;\">What is 2D animation?</span>\r\n2D animation - fully two-dimensional rollers. Characters, titles, buildings and any other objects in such videos are flat, as in the pictures. Today it is this kind of graphics that is most in demand. Often, these videos look simple and neat, but at the same time informative.\r\n2D animation can be executed in a classic drawing format or created using computer graphics, for example, Shape animation.\r\n<span style=\"font-weight: bold;\">What is 3D animation?</span>\r\n3D animation is its main difference from 2D in that the characters and any other objects in such a video are three-dimensional. Such videos allow you to fully demonstrate to customers a product from virtually all sides before it is created. It can be video smartphones, cars, houses. In the production of 3D animation is more complicated and more expensive than 2D, but at the same time much more spectacular, it means that it is better remembered.\r\n<span style=\"font-weight: bold;\">What is a cartoon video?</span>\r\nHand-drawn video is a modern marketing tool that will be useful for any kind of business. It is easier and clearer for a client to watch a short video than to wade through the wilds of numerous pages on the site.","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_Design_Animation.png","alias":"design-animation"},"595":{"id":595,"title":"iOS Software Development","description":"iOS is Apple’s mobile OS that runs on an iPhone, iPad, iPod Touch hardware. Apple provides tools and resources for creating iOS apps and accessories for these devices. As an iOS developer, you can program in native languages such as Swift or Objective-C or build cross-platform native applications using React Native (JavaScript) or Xamarin (C# & F#).<span style=\"font-weight: bold; \"></span>\r\n<span style=\"font-weight: bold; \">Developer Requirements.</span> To develop iOS apps, you need a Mac computer running the latest version of Xcode. Xcode is Apple’s IDE (Integrated Development Environment) for both Mac and iOS apps. Xcode is the graphical interface you'll use to write iOS apps. Xcode includes the iOS SDK, tools, compilers, and frameworks you need specifically to design, develop, write code, and debug an app for iOS. For native mobile app development on iOS, Apple suggests using the modern Swift programming language. It is important to note that Xcode only runs on Mac OS X and the only supported way to develop iOS apps. Like desktop software, iOS development software are designed using a range of programming languages and frameworks.<span style=\"font-weight: bold; \"></span>\r\n<span style=\"font-weight: bold; \">iOS software development kit. </span>Mobile iOS app creation software requires access to software development kits (SDKs) that provide an environment through which programmers can design and test code in a simulated mobile environment. Some iOS SDK essentials are the Cocoa Touch frameworks that include the UIKit, GameKit, PushKit, Foundation Kit, and MapKit. These frameworks and others allow you manipulate the iPhone or iPad camera, add voice interaction using SiriKit, explore music with MusicKit, expand viewing and listening via AirPlay 2, and even add iMessage Business Chat to your application. iOS 11 added the power of machine learning with Core ML and augmented reality (AR) experiences with ARKit.\r\n<p id=\"Beta_Testing\" style=\" color:#232f3e; \"><span style=\"font-weight: bold; \">Beta Testing.</span> <span style=\"font-weight: normal; \">Once you have built and tested (using XCTest framework or iOS Unit test) your app, you can invite users to your apps and collect feedback using TestFlight prior to deploying to the App Store. This is a good time for testing Push Notifications, data storage using Core Data, and making network calls to 3rd party APIs. To get going, you simply upload a beta build of your app, and use iTunes Connect to add the name and email of testers. <br /></span></p>\r\n<p id=\"Beta_Testing\" style=\" color:#232f3e; \"><span style=\"font-weight: bold; \">Cloud Testing.</span><span style=\"font-weight: normal; \">Testing your iOS app on real devices is critically important since the performance of the real device, different operating system versions, modifications made by manufacturer and carriers firmware may lead to unexpected issues with your app. Testing on real device gives you a more accurate understanding of how your users interact with your app. On the other hand, obtaining physical devices for testing is a logistical challenge. This is where cloud testing comes into play. With cloud testing, you can test your application on real devices that are accessible on the cloud. <br /></span></p>\r\n<p id=\"Beta_Testing\" style=\" color:#232f3e; \"><span style=\"font-weight: bold; \">Deployment.</span> <span style=\"font-weight: normal; \">Once you have built, tested, and beta tested your iOS app, you can deploy to the App Store. At this point, you must join the Apple Developer Program. As a member, you’ll get access to beta iOS app development software, advanced app capabilities, extensive beta testing tools, and app analytics.</span></p>\r\n\r\n","materialsDescription":"<h1 class=\"align-center\"><span style=\"font-weight: bold; \">What are the advantages of iOS App Development?</span></h1>\r\n<ul><li><span style=\"font-weight: bold;\">iOS is easy to use interface.</span> Apple’s iPhone becomes the dream of many smartphone users, providing high customer service and become a market leader for offering unmatched devices. You can attract your Apple users easily if an application will be created on a synchronized environment Apple’s platform. These special flexible User Interface of the features of the iOS app can make your business application more desirable and boost up their sales and earn maximum benefits.</li><li><span style=\"font-weight: bold;\">iOS has more security.</span> iOS platform offers its users stay safe from external threats which is the best part and advantage of this platform. While developing an app for the business, providing a powerful shield against malware, virus and other internet threats for app development of a business. iOS applications are secured applications, allows effortless transaction facilities app without spending more time on testing different devices.</li><li>For <span style=\"font-weight: bold;\">business</span>, there are multiple options available in the highly popular iOS app making software market, this is because important to attract new customers to increase sales and chance to empower your business in the global market. The web is not a safe place for so thanks to a well-developed iPhone app Development Company can increase their availability and protect your customer’s information. With an iOS mobile app, always been an attractive device to the public with constant acknowledgment from App Store and business can flourish on a regular basis.</li><li>iOS users are usually <span style=\"font-weight: bold;\">happy users,</span> an efficiently developed iOS app helps to promote your brand or your organization to enhance productivity with profitability services to reach your targeted audience. iOS application builds a strong relationship with customers and clients, and the great audience to deliver your product and solutions to achieve their goals. Better the application is, strong would be the relationship with the superior brand in consumer electronics.</li><li>iOS applications are <span style=\"font-weight: bold;\">innovation </span>and the latest technology used globally and this can help your business to expand the most secure way. With best iOS app development software is accepted globally, you may transforming traditional business processes in a modern way and find customers from every part of the world.</li></ul>\r\n<h1 class=\"align-center\">What is IDE?</h1>\r\nIDE is the acronym for Integrated Development Environment. This contains a set of tools, resources and programming essentials within itself. It helps software/web/ mobile app developers to create new programs. This is a comprehensive solution for creating software or mobile app independently. These resources make development, deployment and debugging processes very simple. Choosing an IDE for iPhone app development is dependent on the budget, kind of programming language you prefer, etc. There are so many functionalities in an IDE that gives you a lot of benefits for app development.\r\nThe IDE makes strategies and streamlines the development phase for your entire team. It has many tools for automation, programming, debugging, compiling and for interpretation. There are three general types of IDE available. They are cloud-based, software as a service (SaaS) type and installing on the server type. IDE for iOS application development software is preferred bycompanies to reduce development time and costs. It helps in accurate testing and easy coding. Integration is also possible with these IDEs. It is as simple as a word processing program used by developers to create robust mobile applications.<br /> ","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_iOS_Software_Development.png","alias":"ios-software-development"},"597":{"id":597,"title":"Android Software Application","description":" Android software development is the process by which new applications are created for devices running the Android operating system. Google states that "Android apps can be written using Kotlin, Java, and C++ languages" using the Android software development kit (SDK), while using other languages is also possible. All non-JVM languages, such as Go, JavaScript, C, C++ or assembly, need the help of JVM language code, that may be supplied by tools, likely with restricted API support. Some languages/programming tools allow cross-platform app support, i.e. for both Android and iOS. Third party tools, development environments and language support have also continued to evolve and expand since the initial SDK was released in 2008. In addition, with major business entities like Walmart, Amazon, Bank of America etc. eyeing to engage and sell through mobiles, mobile application development is witnessing a transformation.\r\nAndroid was created by the Open Handset Alliance, which is led by Google. The early feedback on developing applications for the Android platform was mixed. Issues cited include bugs, lack of documentation, inadequate QA infrastructure, and no public issue-tracking system. In December 2007, MergeLab mobile startup founder Adam MacBeth stated, "Functionality is not there, is poorly documented or just doesn't work... It's clearly not ready for prime time." Despite this, Android-targeted applications began to appear the week after the platform was announced. The first publicly available application was the Snake game.\r\nA preview release of the Android SDK was released on November 12, 2007. On July 15, 2008, the Android Developer Challenge Team accidentally sent an email to all entrants in the Android Developer Challenge announcing that a new release of the SDK was available in a "private" download area. The email was intended for winners of the first round of the Android Developer Challenge. The revelation that Google was supplying new SDK releases to some developers and not others (and keeping this arrangement private) led to widely reported frustration within the Android developer community at the time.\r\nOn August 18, 2008, the Android 0.9 SDK beta was released. This release provided an updated and extended API, improved development tools and an updated design for the home screen. Detailed instructions for upgrading are available to those already working with an earlier release. On September 23, 2008, the Android 1.0 SDK (Release 1) was released. According to the release notes, it included "mainly bug fixes, although some smaller features were added." It also included several API changes from the 0.9 version. Multiple versions have been released since it was developed.\r\nOn December 5, 2008, Google announced the first Android Dev Phone, a SIM-unlocked and hardware-unlocked device that is designed for advanced developers. It was a modified version of HTC's Dream phone. While developers can use regular consumer devices to test and use their applications, some developers may choose a dedicated unlocked or no-contract device.\r\nAs of July 2013, more than one million applications have been developed for Android, with over 25 billion downloads. A June 2011 research indicated that over 67% of mobile developers used the platform, at the time of publication. Android smartphone shipments are forecast to exceed 1.2 billion units in 2018 with an 85% market share.","materialsDescription":" <span style=\"font-weight: bold;\">Where does Android come from?</span>\r\nIt comes from Google, who actually acquired Android in 2005 (no, Google didn't invent it). The search giant performs regular updates along with an annual major update.\r\nThe operating system is based on the Linux kernel – if you have friends who work in IT, you may have heard of it. This is the GNU / Linux operating system based structure, which is a unix type system (portable operating system, multitasking and multi-user). The Linux kernel is one of the most prominent examples of free software.\r\n<span style=\"font-weight: bold;\">Why does Android look different on each phone?</span>\r\nAndroid doesn't look different on every device, but it does have a number of different versions. Android is open-source, which means that manufacturers are free to customize the software and make it their own.\r\nThe 'purest' version of Android is often referred to as 'stock Android' and it's often preferred by the Android community: it's the original software as Google intended.\r\nOther user interfaces (UI) include Samsung's TouchWiz, Sony's Xperia, and Huawei's Emotion. See what they all look like in our Android UI comparison.\r\n<span style=\"font-weight: bold;\">What are the advantages of Android?</span>\r\nChoice. For example, if you want iOS, you have a choice of iPhone, iPhone or iPhone. If you go for Android there are stacks of great devices to choose from, from cheap and cheerful handsets to really impressive flagships. Those flagships are often cheaper than the equivalent Apple devices, too.\r\nAndroid’s choice isn’t just about hardware. It’s about everything else too. Android is incredibly easy to customize, both in terms of how it looks and how it works, and the various app stores aren’t as tightly controlled as its rivals’ stores, like Apple.\r\n<span style=\"font-weight: bold;\">What’s with the candy names?</span>\r\nEach new version of Android gets a code name based on consecutive letters of the alphabet. The most recent version is known as Marshmallow because it is the Android M release. Previous versions have included Lollipop, KitKat, Jelly Bean and Gingerbread.\r\n<span style=\"font-weight: bold;\">What’s the best thing about Android?</span>\r\nOptions, many options. With Android, you have hundreds of gadgets at your disposal, the cheapest, the most expensive and innovative market. Android is also incredibly customizable, both in their roles, as in his appearance. You can really make a unique mobile experience for yourself with this OS.\r\n<span style=\"font-weight: bold;\">What’s the worst thing about Android?</span>\r\nGetting updates. In many cases, manufacturers don’t seem to care about providing software updates for devices they’ve already sold you. Even when they do provide updates they take their sweet time about it. That’s why some consider rooting: you can download the updates yourself and apply them instead of waiting for the manufacturer to get around to it.","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_Android_Software_Application.png","alias":"android-software-application"},"598":{"id":598,"title":"Mobile Website Development","description":" Today, virtually no company can effectively conduct its business without having its own website. A site is not just the face of the company, which should be nice to look at, not an attribute of doing business, but an urgent need. If the company has its own website, then it:\r\n<ul><li>facilitates potential customers and partners access to information about themselves;</li><li>attracts the target audience from the Internet;</li><li>significantly increases market coverage;</li><li>increases brand awareness;</li><li>facilitates communication both with partners and with the target audience;</li><li>improves customer feedback;</li><li>increases customer loyalty.</li></ul>\r\nHowever, the main advantage of owning a website, of course, is that it helps to significantly increase sales, and, consequently, profit. In general, now having a website is almost a prerequisite for successful business development.\r\nComputers, smartphones, tablets, other mobile devices, and the Internet have penetrated all spheres of our lives. A variety of mobile devices are especially popular, and that is why it is no longer possible to limit oneself to a PC version of a site. The website version for the PC is bad for mobile devices, and this, as you might guess, negatively affects sales and profits. If the site is uncomfortable to use, then the potential client will not rack their brains, but simply use the services of competitors. The vast majority will not even try to find something on the site if it is not adapted for mobile devices.\r\nA separate mobile version of the site is a site specifically designed for mobile users. As a rule, a mobile version of a site is hosted on a dedicated subdomain.\r\nThe mobile version of the site, in most cases, is simply a greatly reduced version of the site for the PC. Only those functions that, according to the developers, maybe needed by those users who access the site with a smartphone or tablets, are left on the mobile site.\r\nThe mobile version of the site is good in that it does not depend on the main one, can be easily changed and edited, loads quickly is quite convenient for users, and also has the option of switching to the main version of the site.","materialsDescription":" <span style=\"font-weight: bold;\">What’s a mobile website?</span>\r\nMobile devices have transformed the way we live, putting the digital world at our fingertips 24 hours a day, wherever we are.\r\nThis means establishing your mobile presence is more important now than ever as you have the opportunity to put your business in the pockets of your consumers and create more meaningful interactions with your users. Almost 80% of people use smartphones to search the internet, so if your business is lacking a mobile website or app, you are missing out on a huge market opportunity.\r\nThere are two types of mobile development – responsive mobile sites and mobile applications. We build easy to use, intuitive and responsive mobile apps and websites, designed for optimization across all devices to keep you ahead of your competitors.\r\nA mobile website is a website with a responsive, fluid design, that is user-friendly on multiple devices and web browsers. A study conducted by Google and Galaxy in June 2015 found that 74% of Australians rely on their phones at least as much as they rely on desktops when searching for information, ideas or advice. This is when responsive design plays a huge role.\r\n<span style=\"font-weight: bold;\">Why do I need a mobile website?</span>\r\n<span style=\"font-style: italic;\"><span style=\"font-weight: bold;\">Mobile traffic has taken over</span></span>\r\nAs mobile traffic has taken over desktop traffic in 2015, more and more people only browse the internet on mobile phones. This means that businesses now need to adopt a mobile-first approach to their online strategies.\r\n<span style=\"font-style: italic;\"><span style=\"font-weight: bold;\">Search engines are pushing for better UX</span></span>\r\nMobile users tend to have poor experiences on desktop websites. This is something that search engines such as Google have understood, and are putting initiatives in place to improve mobile web experiences. For example, Google released its mobile-friendly update in 2015 and is switching its search index to mobile-first.\r\n<span style=\"font-style: italic;\"><span style=\"font-weight: bold;\">Competitive advantage</span></span>\r\nWebsite owners now need to provide compelling experiences to their mobile users. This is something that is now vital in order to reach business goals and lead users to conversion. As a result, the fast adoption of a mobile strategy is a competitive advantage.","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_Mobile_Website_development.png","alias":"mobile-website-development"},"603":{"id":603,"title":"MacOS Development","description":" The key to great app development lies in having a solid foundation, ideally laid in having a good operating system, to begin with on which your app will stand on and initiate all its operations. For a long time, Windows was the dominating operating system of the nineties.\r\nWhy Should You Use Mac OS X in App Development? A reason for this system’s stagnation in progress is the brand’s fear in offending its corporate clients; therefore every tech change has to be introduced painfully slowly so as to be assimilated by its clients.\r\nApple, on the other hand, has slowly crept up and overtaken Windows and other operating systems primarily because they are not afraid of taking giant leaps. Their “it’s our way or the high way” approach to their operating system has enabled them to make significant improvements in their software, which other operating systems are almost incapable of attaining.\r\nMAC OS X software is essentially a two-layered system. Its impressive GUI sits on top of a UNIX core, and UNIX is notorious for its impressive security features. UNIX makes it’s nearly impossible to install a Trojan or a virus to the system unless the user gives it root access to the system by essentially typing in the admin password into the system.\r\nThe beauty of MAC OS X built-in firewall is that it operates out the box, while at the same time being highly flexible. While MAC users should ideally remain vigilant about foreign files and consequentially never allow them into the system by giving them an admin pass, they then do not need special software to block out these viruses.\r\nMAC OS interface is simple, you can pin as many apps as possible to dock at the bottom of your screen, plus they are always available to you. Besides this, you can run multiple desktops, make use of your iCloud chain to decipher your credit card information, share various files wirelessly through Airdrop, and still monitor the operating system via a set of in-built high-grade utility tools.\r\nThe system also has a rapid start-up resume time. All this is essentially made possible by MAC OS powerful stability. Even though systemic degradation is expected over time, as is the case with just about every operating system, the rate is significantly reduced on MAC products and freezing and crashing are not a common everyday occurrence as is the case with a few operating systems.\r\nMAC’s impressive reliability can be primarily attributed to the fact that the operating system was built from the ground up. Apple essentially controls the production of its software and hardware products from start to finish, and so every part of the system is designed and tested out to work cohesively together.\r\nThose who complain that Apple forces its consumers to use its proprietary software couldn’t be more misguided. MAC OS automatically recognizes and works well with other Apple products including iPads, iPhones, etc.","materialsDescription":"<span style=\"font-weight: bold;\">What is Mac OS X?</span>\r\nMac OS X is an operating system created by Apple for Mac computers (the first version was introduced in 2001), which replaced the then outdated Mac OS 9.\r\nThis is a POSIX-compatible system, that is, all Unix operations can be performed in it. Built on the basis of the XNU core with the Aqua graphical interface.\r\nStarting with version 10.8 it is called OS X.\r\n<span style=\"font-weight: bold; \">What are the advantages of macOS?</span>\r\n<span style=\"font-style: italic; \">Fewer virus attacks:</span>\r\nAs macOS is the second most used operating system and has fewer active users so it has fewer virus attacks also. The other reason for virus safety is its UNIX relationship which is more secure than Windows OS.\r\n<span style=\"font-style: italic; \">Good customer support:</span>\r\nMac users get a good response from their support team as compared to other operating systems. Apple has skilled engineers which help the user in fixing the issues in their hardware and software.\r\n<span style=\"font-style: italic; \">Similar GUI for all the products:</span>\r\nmacOS has the same graphical user interface (GUI) as found in other Apple products like iPhone and tablets. Users feel comfortable in using macOS if they shifted from other Apple products.\r\n<span style=\"font-style: italic; \">Performance and long life:</span>\r\nAs Apple makes both hardware and software so it’s hardware communication is very efficient and it improves performance. The operating system and hardware work great. Apple computer has a longer life than other computers. The battery timing of mac laptops is also longer.\r\n<span style=\"font-style: italic; \">Default apps:</span>\r\nIf you install Windows then it comes with pre-installed apps that slow down your computer e.g. Onedrive slows your computer. But this is not the case with macOS, it comes with powerful apps which don’t affect the performance of your system. Some of the pre-installed apps of macOS are iPhoto and iMovie.\r\n<span style=\"font-style: italic; \">Support NTFS and FAT:</span>\r\nmacOS support Windows file system formats including both NTFS and FAT.\r\n<span style=\"font-style: italic; \">Can run Windows:</span>\r\nYou can run the Windows operating system if you have macOS installed by using Bootcamp or parallels software.\r\n<span style=\"font-weight: bold; \">What are the disadvantages of macOS?</span>\r\n<span style=\"font-style: italic; \">Expensive:</span>\r\nThe minimum cost of a Mac PC is higher than $1000. You can get a good Windows PC at $1000 with more hardware specifications.\r\n<span style=\"font-style: italic; \">Fewer games and software:</span>\r\nMost game developers prefer to make games for the Windows OS because they have more percentages of users. Mac users have fewer games available. Also, mac computers have low graphics capability to run high graphics games. There is some software that is available for Windows and not available for mac users e.g. adobe premiere pro etc.\r\n<span style=\"font-style: italic; \">No hardware customization:</span>\r\nIf you buy any Mac computer/laptop then you cannot change its hardware parts like processor, graphics card, etc. For some mac computers, you can change hardware and RAM but it is not for all mac computers. It is also not possible to change other hardware accessories like internal computer parts, the only choice you have is to buy a new mac computer. On every major release of your operating system you have to change your computer else 50% of your operating system features not work.\r\n<span style=\"font-style: italic; \">Windows cannot read the macOS file system:</span>\r\nmacOS can read NTFS and FAT Windows format but Windows cannot read the macOS file system. You need to install 3rd party software in Windows to do so. Some other software like footnotes has compatibility issues while moving files from macOS to Windows.\r\n<span style=\"font-style: italic; \">Less hardware used:</span>\r\nThe new version of macOS computer supports fewer USB ports and they also not shipped with CD/DVD writer.","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_MacOS_Development.png","alias":"macos-development"},"605":{"id":605,"title":"Java Development","description":" Java is a general-purpose programming language that is class-based, object-oriented, and designed to have as few implementation dependencies as possible. It is intended to let application developers write once, run anywhere (WORA), meaning that compiled Java code can run on all platforms that support Java without the need for recompilation. Java applications are typically compiled to bytecode that can run on any Java virtual machine (JVM) regardless of the underlying computer architecture. The syntax of Java is similar to C and C++, but it has fewer low-level facilities than either of them. As of 2019, Java was one of the most popular programming languages in use according to GitHub, particularly for client-server web applications, with a reported 9 million developers.\r\nJava was originally developed by James Gosling at Sun Microsystems (which has since been acquired by Oracle) and released in 1995 as a core component of Sun Microsystems' Java platform. The original and reference implementation Java compilers, virtual machines, and class libraries were originally released by Sun under proprietary licenses. As of May 2007, in compliance with the specifications of the Java Community Process, Sun had relicensed most of its Java technologies under the GNU General Public License. Meanwhile, others have developed alternative implementations of these Sun technologies, such as the GNU Compiler for Java (bytecode compiler), GNU Classpath (standard libraries), and IcedTea-Web (browser plugin for applets).\r\nThe latest versions are Java 13, released in September 2019, and Java 11, a currently supported long-term support (LTS) version, released on September 25, 2018; Oracle released for the legacy Java 8 LTS the last free public update in January 2019 for commercial use, while it will otherwise still support Java 8 with public updates for personal use up to at least December 2020. Oracle (and others) highly recommend uninstalling older versions of Java because of serious risks due to unresolved security issues. Since Java 9 (and 10 and 12) is no longer supported, Oracle advises its users to immediately transition to the latest version (currently Java 13) or an LTS release.","materialsDescription":"<span style=\"font-weight: bold; \">What is Java technology and what is its application?</span>\r\nJava is a programming language and computing platform that was first launched by Sun Microsystems in 1995. There are many applications and websites that do not work when Java is not installed, and the number of such websites and applications is increasing every day. Java is fast, highly secure, and reliable. From laptops to data centers, from game consoles to supercomputers used for scientific research, from cell phones to the Internet - Java is everywhere!\r\n<span style=\"font-weight: bold;\">What is the performance of Java?</span>\r\nPrograms written in Java have a reputation for being slower and taking up more RAM than those written in C. Nevertheless, the speed of execution of programs written in Java has been significantly improved with the release of the so-called JIT compiler in 1997-1998. in version 1.1, in addition to other language features to support better code analysis (such as inner classes, StringBuffer class, simplified logic calculations, and so on). In addition, the Java virtual machine was optimized - since 2000, the HotSpot virtual machine has been used for this. As of February 2012, Java 7 code is approximately 1.8 times slower than C code.\r\nSome platforms offer hardware runtime support for Java. For example, microcontrollers that run Java code on hardware instead of software JVMs, as well as ARM-based processors that support Java bytecode through the Jazelle option.\r\n<span style=\"font-weight: bold;\">What are the main features of Java?</span>\r\n<ul><li>Automatic memory management.</li><li>Advanced exception handling capabilities.</li><li>A rich set of I/O filtering tools.</li><li>A set of standard collections: array, list, stack, etc.</li><li>The presence of simple tools for creating network applications (including using the RMI protocol).</li><li>The presence of classes that allow you to perform HTTP requests and process responses.</li><li>Built-in language tools for creating multi-threaded applications, which were then ported to many languages (for example, Python).</li><li>Unified access to databases: at the level of individual SQL queries - based on JDBC, SQLJ; at the level of the concept of objects with the ability to store in the database - based on Java Data Objects (English) and Java Persistence API.</li><li>Generalization support (since version 1.5).</li><li>Support for lambdas, closures, built-in functional programming features.</li></ul>","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_Java_Development.png","alias":"java-development"},"607":{"id":607,"title":"C/C++ Development","description":" C++ is a general-purpose object-oriented programming (OOP) language, developed by Bjarne Stroustrup, and is an extension of the C language. It is therefore possible to code C++ in a "C style" or "object-oriented style." In certain scenarios, it can be coded in either way and is thus an effective example of a hybrid language.\r\nC++ is considered to be an intermediate-level language, as it encapsulates both high- and low-level language features. Initially, the language was called "C with classes" as it had all the properties of the C language with an additional concept of "classes." However, it was renamed C++ in 1983.\r\nC++ is one of the most popular languages primarily utilized with system/application software, drivers, client-server applications and embedded firmware.\r\nThe main highlight of C++ is a collection of predefined classes, which are data types that can be instantiated multiple times. The language also facilitates declaration of user-defined classes. Classes can further accommodate member functions to implement specific functionality. Multiple objects of a particular class can be defined to implement the functions within the class. Objects can be defined as instances created at run time. These classes can also be inherited by other new classes which take in the public and protected functionalities by default.\r\nC++ includes several operators such as comparison, arithmetic, bit manipulation and logical operators. One of the most attractive features of C++ is that it enables the overloading of certain operators such as addition.\r\nA few of the essential concepts within the C++ programming language include polymorphism, virtual and friend functions, templates, namespaces and pointers.","materialsDescription":"<span style=\"font-weight: bold; \"> Bjarne Stroustrup's FAQ</span>\r\n<span style=\"font-weight: bold; \">C is better than C++ for small projects, right?</span>\r\nNot in my opinion. I never saw a project for which C was better than C++ for any reason but the lack of a good C++ compiler.\r\n<span style=\"font-weight: bold; \">Is C a subset of C++?</span>\r\nIn the strict mathematical sense, C isn't a subset of C++. There are programs that are valid C but not valid C++ and even a few ways of writing code that has a different meaning in C and C++. However, C++ supports every programming technique supported by C. Every C program can be written in essentially the same way in C++ with the same run-time and space efficiency. It is not uncommon to be able to convert tens of thousands of lines of ANSI C to C-style C++ in a few hours. Thus, C++ is as much a superset of ANSI C as ANSI C is a superset of K&R C and much as ISO C++ is a superset of C++ as it existed in 1985.\r\n<span style=\"font-weight: bold; \">What is the difference between C and C++?</span>\r\nC++ is a direct descendant of C that retains almost all of C as a subset. C++ provides stronger type checking than C and directly supports a wider range of programming styles than C. C++ is "a better C" in the sense that it supports the styles of programming done using C with better type checking and more notational support (without loss of efficiency). In the same sense, ANSI C is a better C than K&R C. In addition, C++ supports data abstraction, object-oriented programming, and generic programming (see my books).\r\nI have never seen a program that could be expressed better in C than in C++ (and I don't think such a program could exist - every construct in C has an obvious C++ equivalent). However, there still exist a few environments where the support for C++ is so weak that there is an advantage to using C instead.\r\n<span style=\"font-weight: bold; \">Do you really think that C and C++ could be merged into a single language?</span>\r\nI think that it would be a very good thing for the C/C++ community if they were. That is, if the C/C++ incompatibilities were systematically and completely eliminated and that future evolution was organized so as to prevent new incompatibilities from emerging. Whether that's possible is another matter.\r\nMy basic point is that the current C/C++ incompatibilities are "accidents of history" that have no fundamental reasons behind them (though they all "looked like a good idea at the time" to some competent and well-meaning people). The C/C++ incompatibilities provide no benefits to the community at large, cause serious problems to a large section of the C/C++ community, and could - with great difficulty - be eliminated.\r\nFor a far more detailed presentation of my views on C/C++ compatibility, see the series of papers I wrote about this:\r\n<ul><li>B. Stroustrup: C and C++: Case Studies in Compatibility. The C/C++ Users Journal. September 2002.</li><li>B. Stroustrup: C and C++: A Case for Compatibility. The C/C++ Users Journal. August 2002.</li><li>B. Stroustrup: C and C++: Siblings. The C/C++ Users Journal. July 2002.</li><li>B. Stroustrup: Sibling rivalry: C and C++. AT&T Labs - Research Technical Report. TD-54MQZY. January 2002. </li></ul>\r\nI imagine that if incompatibilities were eliminated (by making changes to both C and C++), there would still be entities called C and C++, but then C really would be defined as a subset of C++.\r\n<span style=\"font-weight: bold; \">Why did you make C++ (almost) compatible with C?</span>\r\nI wanted C++ to be compatible with a complete language with sufficient performance and flexibility for even the most demanding systems programming.\r\nAt the time, I considered C the best systems programming language available. That was not as obvious then (1979) as it later became, but I had experts such as Dennis Ritchie, Steve Johnson, Sandy Fraser, Greg Chesson, Doug McIlroy, and Brian Kernighan down the corridor from whom I could learn and get feedback. Without their help and advice, and without C, C++ would have been stillborn.\r\nContrary to repeated rumors, I was never told that I had to use C; nor was I ever told not to use C. In fact, the first C++ manual grew from troff source of the C manual that Dennis gave me. Many new languages were designed at Bell labs; in "Research" at least, there were no rules enforcing language bigotry.\r\n<span style=\"font-weight: bold; \">What do you think of C/C++?</span>\r\nNo that's not really a question I often get. In that sense, it is the only "fake FAQ" in this FAQ. However, it ought to be a FAQ because people use "C/C++" as if it meant something specific and as if they knew what it meant, leading to much confusion and misery. People should ask "What is C/C++?" and then on reflection stop using the term. It does harm.\r\nThere is no language called "C/C++". The phrase is usually used by people who don't have a clue about programming (e.g. HR personnel and poor managers). Alternatively, it's used by people who simple do not know C++ (and often not C either). When used by programmers, it typically indicates a "C++ is C with a few useful and a lot of useless complicated features added" attitude. Often, that is the point of view of people who like to write their own strings and hash tables with little knowledge of the standard library beyond printf and memcpy. There are people who stick to a restricted subset of C++ for perfectly good reasons, but they (as far as I have noticed) are not the people who say "C/C++".\r\nI use C/C++ only in phrases such as "C/C++ compatibility" and "C/C++ community".\r\n<span style=\"font-weight: bold;\">When was C++ invented?</span>\r\nI started work on what became C++ in 1979. The initial version was called "C with Classes". The first version of C++ was used internally in AT&T in August 1983. The name "C++" was used late that year. The first commercial implementation was released October 1985 at the same time as the publication of the 1st edition of The C++ Programming Language. Templates and exception handling were included later in the 1980's and documented in The Annotated C++ Reference Manual and The C++ Programming Language (2rd Edition). The first ISO C++ standard was C++98 as described in The C++ Programming Language (3rd Edition).\r\nThe current definition of C++ The 2011 ISO C++ Standard described in The C++ Programming Language (4th Edition).\r\nYou can find a more complete timeline and more detailed explanations in The Design and Evolution of C++ and A History of C++: 1979-1991 and Evolving a language in and for the real world: C++ 19.","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_C_C_Development.png","alias":"cc-development"},"609":{"id":609,"title":".Net Development","description":" .NET Framework is a software framework developed by Microsoft that runs primarily on Microsoft Windows. It includes a large class library named Framework Class Library (FCL) and provides language interoperability (each language can use code written in other languages) across several programming languages. Programs written for .NET Framework execute in a software environment (in contrast to a hardware environment) named Common Language Runtime (CLR), an application virtual machine that provides services such as security, memory management, and exception handling. As such, computer code written using .NET Framework is called "managed code". FCL and CLR together constitute the .NET Framework.\r\nFCL provides user interface, data access, database connectivity, cryptography, web application development, numeric algorithms, and network communications. Programmers produce software by combining their source code with .NET Framework and other libraries. The framework is intended to be used by most new applications created for the Windows platform. Microsoft also produces an integrated development environment largely for .NET software called Visual Studio.\r\n.NET Framework began as proprietary software, although the firm worked to standardize the software stack almost immediately, even before its first release. Despite the standardization efforts, developers, mainly those in the free and open-source software communities, expressed their unease with the selected terms and the prospects of any free and open-source implementation, especially regarding software patents. Since then, Microsoft has changed .NET development to more closely follow a contemporary model of a community-developed software project, including issuing an update to its patent promising to address the concerns.\r\n.NET Framework led to a family of .NET platforms targeting mobile computing, embedded devices, alternative operating systems, and web browser plug-ins. A reduced version of the framework, .NET Compact Framework, is available on Windows CE platforms, including Windows Mobile devices such as smartphones. .NET Micro Framework is targeted at very resource-constrained embedded devices. Silverlight was available as a web browser plugin. Mono is available for many operating systems and is customized into popular smartphone operating systems (Android and iOS) and game engines. .NET Core targets the Universal Windows Platform (UWP), and cross-platform and cloud computing workloads.","materialsDescription":"When Microsoft formally introduced its .NET strategy in mid-2000, analysts were confused about how the company would pull off such a massive platform shift. Over two years later, they're still wondering. But .NET isn't vaporware, and it's not a pipe dream. In fact, .NET is happening today.\r\n<span style=\"font-weight: bold; \">What is .NET?</span>\r\nActually, .NET is many things, but primarily it's a marketing term for a set of products and technologies that Microsoft is creating to move personal and enterprise computing beyond the PC desktop and into a distributed Internet-based environment. So .NET--which was originally called Next Generation Windows Services (NGWS)--is also a platform, one that Microsoft sees as the successor to Windows. The .NET platform is based on Web services which are, in turn, defined by a language called XML.\r\n<span style=\"font-weight: bold; \">What is XML?</span>\r\nXML--the eXtensible Markup Language--is a self-descriptive, data definition language. It's structure is similar to HTML, the language of the Web, but it's far more powerful because it's not limited to a static list of language constructs ("tags") that the language's authors supply. Instead, XML is extensible and dynamic: Programmers can define new types of data using XML and then describe that data so that others will know how to use it.\r\n<span style=\"font-weight: bold; \">What are Web services?</span>\r\nWeb services are functions exposed by server-side applications. They are programmable units that other applications (and Web services) can access over the Internet.\r\n<span style=\"font-weight: bold; \">Does .NET require Windows?</span>\r\nTechnically, no, but realistically, yes. It's possible the .NET platform could be ported to other operating systems, such as Linux, FreeBSD, the Macintosh, or whatever, and indeed, some work is being done now in this area. However, .NET very much requires Windows today, on both the server and the client. One might say that .NET and Windows have a symbiotic relationship going forward.\r\n<span style=\"font-weight: bold; \">Is .NET is being ported to Linux?</span>\r\nYes. A company called Ximian is porting the standards-based parts of .NET to Linux as you read this, and the work is amazingly far along. Code-named Mono, this project seeks to bring the C# programming language, the Common Language Runtime (CLR, see below), and other .NET features to Linux.\r\nOn a related note, Microsoft has contracted Corel (makers of CorelDRAW and Word Perfect) to port .NET to FreeBSD.\r\n<span style=\"font-weight: bold; \">Isn't .NET just another name for COM, COM+, Windows DNA, or some other previous Windows technology?</span>\r\nActually, no. Microsoft spent considerable time and effort developing and promoting a set of Windows technologies that was at various times called OLE, COM, COM+, and Windows DNA (Distributed InterNet Architecture) but .NET is not the next iteration. Windows DNA, which was the final umbrella term for this set of technologies, was based around a concept where Windows-based software components could expose their services for other local and remote Windows software components. But though this sounds passingly similar to .NET, Windows DNA is very much based on proprietary Windows technologies. By comparison, .NET is based on open standards (XML and various related technologies), so it will be much easier for other vendors to adopt the platform and write compatible software. So we can eventually expect to see .NET clients and servers on platforms other than Windows.\r\n<span style=\"font-weight: bold; \">So what technologies are part of .NET?</span>\r\n.NET is comprised of several related technologies, including:\r\n<span style=\"font-style: italic; \"><span style=\"font-weight: bold; \">.NET Framework</span></span> - A runtime environment and set of standard services which .NET capable applications and services can utilize. Implemented as a code library, the .NET Framework includes the Common Language Runtime (CLR), the .NET run-time environment; ASP .NET, a Web applications platform; and ADO .NET, for data store access.\r\n<span style=\"font-style: italic; \"><span style=\"font-weight: bold; \">.NET Compact Framework</span></span> - A subset of the .NET Framework designed for Pocket PCs, Microsoft Smart Phones, and other Windows CE .NET-based mobile devices.\r\n<span style=\"font-style: italic; \"><span style=\"font-weight: bold; \">MSN consumer services</span></span> - Microsoft will use its consumer-oriented MSN online service to expose Web services to individuals. The current version, MSN 8, includes the .NET Passport's authentication services, email, address book, calendaring and tasks, and other similar services.\r\n<span style=\"font-style: italic; \"><span style=\"font-weight: bold; \">.NET Enterprise Servers</span></span> - An extensive set of Microsoft server software that runs on Windows servers, including Application Server, BizTalk Server, Exchange Server, Host Integration Server, Internet Security and Acceleration Server, SQL Server, and many others. Microsoft is currently shipping many such server products, but they are all based on Windows DNA currently, not .NET. Future server products--beginning with Windows .NET Server 2003, due in April 2003--will actually be based on .NET technologies for the first time.\r\n<span style=\"font-style: italic; \"><span style=\"font-weight: bold; \">Visual Studio .NET</span></span> - Microsoft's .NET development environment, with support for languages such as Visual Basic .NET, Visual C++ .NET, Visual C# .NET, and Visual J#, which all target the .NET Framework. Other vendors can add other language capabilities to Visual Studio .NET, and the suite can be used to target a wide range of applications and services, including .NET Web services, Windows applications, and Web applications. Note that Visual Studio .NET is not required to create .NET applications and services: Developers can download the .NET Framework for free; this download includes compilers for Visual Basic .NET, Visual C++ .NET and Visual C# .NET.\r\n<span style=\"font-weight: bold;\">OK, so what's the point? How does this make my life better?</span>\r\nWith apologies to Microsoft for stealing the term, .NET enables a better PC ecosystem. That is, by making life easier for everyone involved with PCs, the benefits are cross-pollinated. Here's how .NET makes life easier on various groups:\r\n<span style=\"font-style: italic;\"><span style=\"font-weight: bold;\">Programmers</span></span> - Because developers now have a consistent, language-neutral programming environment, they can create better applications and services more quickly. And because .NET encompasses such a wider range of functionality, those applications and services can be connected to back-end services via the Internet, offering better, and more exciting functionality.\r\n<span style=\"font-style: italic;\"><span style=\"font-weight: bold;\">IT administrators</span></span> - Because .NET applications and services do away with the "DLL Hell" found in previous Windows applications, they are amazingly easy to distribute and install.\r\n<span style=\"font-style: italic;\"><span style=\"font-weight: bold;\">End users</span></span> - For the reasons listed above, and many others, a new generation of .NET applications and services will provide new types of connected functionality. Access your email from anywhere. Pay for products online without typing in your credit card information. Access weather, traffic, music, and other personal information from a variety of devices, from anywhere in the world. The future is all connected, and .NET will get us there.","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_Net_Development.png","alias":"net-development"},"611":{"id":611,"title":"ObjectiveC Development","description":"Objective-C is a general-purpose, object-oriented programming language that adds Smalltalk-style messaging to the C programming language. It was the main programming language supported by Apple for the macOS, iOS and iPadOS operating systems, and their respective application programming interfaces (APIs) Cocoa and Cocoa Touch until the introduction of Swift in 2014.\r\nThe language was originally developed in the early 1980s. It was later selected as the main language used by NeXT for its NeXTSTEP operating system, from which macOS and iOS are derived. Portable Objective-C programs that do not use Apple libraries, or those using parts that may be ported or reimplemented for other systems, can also be compiled for any system supported by GNU Compiler Collection (GCC) or Clang.\r\nObjective-C source code 'implementation' program files usually have .m filename extensions, while Objective-C 'header/interface' files have .h extensions, the same as C header files. Objective-C++ files are denoted with a .mm file extension.\r\nObjective-C was invented in the early 1980s as a means to add Object-Oriented programming capabilities to C. The inventors, Brad Cox and Tom Love, thought that Smalltalk (an early OO language) could provide the tools needed for truly re-usable code and for creating development environments for systems developers.\r\nCox began by writing a pre-processor for C that allowed for the inclusion of Smalltalk-like code, which would then be rendered into compilable C. This turned into a fully-Object-Oriented C extension.\r\nObjective-C was eventually fully defined and described in the book Object-Oriented Programming: An Evolutionary Approach.\r\nNeXT licensed Objective-C in 1988 and developed several tools based on it. These tools eventually became (after several intermediate steps) the Cocoa development environment, which is used by several Apple systems: Mac OS X, iOS, Apple WatchOS.\r\nFor several years now, apps are written for one of these Apple operating systems needed to be written (or compiled to, or run on top of) Objective-C. That situation is changing now as Apple moves its platform to Swift.\r\nIn addition to Cocoa, Objective-C is also used in the GNUstep platform, which can run on Linux, Unix, BSD, and Windows environment, and which closely mirrors Cocoa.","materialsDescription":" <span style=\"font-weight: bold;\">What is Objective-C?</span>\r\nObjective-C is a general-purpose, object-oriented programming language that adds Smalltalk-style messaging to the C programming language. This is the main programming language used by Apple for the OS X and iOS operating systems and their respective APIs, Cocoa and Cocoa Touch. This reference will take you through a simple and practical approach while learning Objective-C Programming language.\r\n<span style=\"font-weight: bold;\">What is OOP?</span>\r\nOOP means Object Oriented Programming; it is a type of programming technique that helps to manage a set of objects in a system. With the help of various programming languages, this method helps to develop several computer programs and applications.\r\n<span style=\"font-weight: bold;\">What Objective-C program consists of?</span>\r\nThe objective-c program basically consists of:\r\n<ul><li>Preprocessor commands</li><li>Interface</li><li>Implementation</li><li>Method</li><li>Variables</li><li>Statements & Expressions</li><li>Comments</li></ul>","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_ObjectiveC_Development.png","alias":"objectivec-development"},"613":{"id":613,"title":"C# Development","description":" C#, (C-Sharp) is a programming language that combines object-oriented and aspect-oriented concepts. Developed in 1998–2001 by a group of engineers under the leadership of Anders Hejlsberg at Microsoft as the main language for developing applications for the Microsoft .NET platform. The compiler with C# is included in the standard installation of the .NET itself, so programs on it can be created and compiled even without tools like Visual Studio.\r\nC# refers to a family of languages with a C-like syntax, of which its syntax is closest to C++ and Java. The language has strict static typing, supports polymorphism, operator overloading, pointers to member functions of classes, attributes, events, properties, exceptions, comments in XML format. Having taken a lot from their predecessors - C++, Java, Delphi, Modula and Smalltalk - C#, based on the practice of using them, excludes some models that have proven to be problematic when developing software systems: thus, C # does not support multiple class inheritance (unlike C ++).\r\nC# was developed as an application level programming language for the CLR and, as such, depends primarily on the capabilities of the CLR itself. This concerns, first of all, the C # type system, which reflects FCL. The presence or absence of certain expressive features of the language is dictated by whether a particular language feature can be translated into the corresponding CLR constructs. So, with the development of the CLR from version 1.1 to 2.0, C # itself was significantly enriched; similar interaction should be expected in the future. (However, this pattern was broken with the release of C # 3.0, which are language extensions that do not rely on .NET platform extensions.) The CLR provides C #, like all other .NET-oriented languages, many of the features that the “classical” programming languages lack. For example, garbage collection is not implemented in C # itself, but the CLR is done for programs written in C # just like it is done for programs on VB.NET, J #, and others.","materialsDescription":"<span style=\"font-weight: bold;\"> Why is it necessary to study the C# programming language?</span>\r\n<span style=\"font-weight: bold;\">Reason # 1. Language program C# develops.</span>\r\nNew programming languages appear annually. And the main demand is expanding and progressing. Since the C# programming language was created and accompanied by Microsoft, this technological “hippopotamus” periodically makes improvable with the addition of useful functions in C #, and you can be sure that it will perform many, many iterations ... Also, billions of lines of code are written all over the world not only under Microsoft, so the work is foreseen to everyone who wants to learn the C # programming language.\r\n<span style=\"font-weight: bold;\">Reason # 2. Your bright future with C#.</span>\r\nThis item smoothly continues the previous one. According to the ratings of the domestic DOU, it is clear that the C# programming language in Ukraine is in 3rd place in 2018 among programming languages. And in the world charts on the 4th place by PYPL PopularitY of Programming Language is a rating using Google Trends.\r\n<span style=\"font-weight: bold;\">Reason # 3. The possibility of greater profits.</span>\r\nOf course, this statement should be evaluated relatively by comparison. Today they like to say: “A programmer’s working time is more expensive than additional memory or a more powerful computer processor. It is recommended to choose more modern tools that don’t over-brain a programmer.”\r\nOn the other hand, when they talk about C#, they always mean speed and large, valuable, serious projects, even Megaprojects. For example, in C#, the Linux kernel, Unix, libraries, environment, interpreters of many modern programming languages are written.\r\n<span style=\"font-weight: bold;\">Reason # 4. C# has a huge set of use cases.</span>\r\n<ul><li>The C # programming language is mainly used to create corporate software, financial projects, for example, for banks and stock exchanges, in particular, mobile applications, cloud services.</li><li>Compared to Java, C# interacts more easily with code written in other languages. And it is precisely in C# that extensions are often written for other programming languages used as a layer between the C # library and the language, the possibilities of which are planned to be extended for specific purposes.</li><li>A pretty popular blockchain in C#.</li><li>C# is widely used in developing games on Unity. Have you ever heard of Unity? Unity is a popular game engine. This means that hundreds of thousands of games, including the most popular, were created using C#.</li><li>C# is good for working with iron, the so-called embedded. Asking what is embedded technology? Embedded system - a specialized computer system or computing device designed to perform a limited number of functions, from Wikipedia: traffic lights, cash registers, vending machines, set-top boxes, test equipment, etc.</li><li>The popular C# programming language is equally good for IoT. Again, what is IoT? IoT (Internet of Things) is a concept of a comprehensive Internet, Internet connection of refrigerators, air conditioners, cars and even sneakers with the aim of providing its owner with greater comfort, and on the other hand increasing their retailers' profits, calculating the amount of what, how much and when availability in warehouses, obtaining certain information about a person and his habits, about the environment.</li><li>Science and its application, for example, conducting complex experimental calculations, cryptography, pattern recognition, and the like.</li></ul>\r\n<span style=\"font-weight: bold;\">Reason # 5. C# is strongly typed, so it is easier for them to master beginners</span>\r\nAs for the comparison of programming languages, it should be noted that the C# programming language is multi-level. This means that it is somewhat similar to English. The C# programming language has strong static typing, supports polymorphism, operator overloading, pointers to member functions of classes, attributes, events, properties, exceptions, comments in XML format. Having adopted a lot from their predecessors - C++, Delphi, Modula, Smalltalk - in C #, relying on the practice of using them, deliberately excluded some models that proved to be problematic when developing software systems in the above-mentioned programming languages.\r\nThe syntax is quite minimalistic - with manual memory management. This is inconvenient for many, but tracking the correctness of functions, understanding the transmission of arguments is closely related to the study of the C# programming language.\r\nSince the syntax of C# is close to C, C++ and Java, then, fluent in C #, you can later learn them in one breath.","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_C_Development.png","alias":"c-development"},"617":{"id":617,"title":"Joomla Development","description":"Joomla is a free and open-source content management system (CMS) for publishing web content, developed by Open Source Matters, Inc. It is built on a model–view–controller web application framework that can be used independently of the CMS.\r\nJoomla is written in PHP, uses object-oriented programming techniques (since version 1.5) and software design patterns, stores data in a MySQL, MS SQL (since version 2.5), or PostgreSQL (since version 3.0) database, and includes features such as page caching, RSS feeds, printable versions of pages, news flashes, blogs, search, and support for language internationalization.\r\nOver 8,000 free and commercial extensions are available from the official Joomla Extensions Directory, and more are available from other sources. As of 2019, it was estimated to be the fourth most used content management system on the Internet, after WordPress and Drupal.\r\nJoomla has thousands of verified third party extensions which can be found on the Joomla Extensions Directory - extensions.joomla.org. There are also thousands of high end templates available, many of which are free. Paid templates are also available and come with support. Many templates provide a graphical user interface which allow you to change colors, fonts, layouts and features. Joomla has SEO tools built in. Includes Metadata and Keywords, Mod_rewrite support for SEF URLs and Menu creation for clear and consistent sitemaps.\r\n<ul><li>Multilingual: Offering over 75 languages.</li><li>Search Engine Optimization: Out of the box SEO & SEF.</li><li>Flexible: Make a blog, business website, intranet, community website… From the simplest to the most complex website.</li><li>Free: Joomla is free to use under GPL.</li><li>Extendable: Extensions are available to extend website functionality.</li><li>User Management: Access Control Lists allow management of the users of a website, and different groups.</li><li>Menu management: Create as many menus and menu items as you need.</li><li>Cache management: Caching for performance.</li></ul>","materialsDescription":" <span style=\"font-weight: bold; \">What is Joomla?</span>\r\nJoomla has been on the web since 2005 and has gained a massive number of users; over 50 million downloads according to www.joomla.org. It makes this CMS (content management system) the second most popular after WordPress.\r\n<span style=\"font-weight: bold; \">What are the key features of Joomla?</span>\r\n<span style=\"font-style: italic; \"><span style=\"font-weight: bold; \">Responsive.</span></span> Responsiveness is a “must have” for any up-to-date website. You, as well as almost every other Internet user today, expect the website to scale gracefully to any screen resolution and that is what Joomla is totally capable of doing.\r\nMobile devices, desktops, tablets - your website is not going to look “broken” on any of them.\r\n<span style=\"font-style: italic; \"><span style=\"font-weight: bold; \">Multilingual.</span></span> Do you operate in a non-English market? No problemo. Localizing the Joomla engine to your language is easier than it is with most of its competitors in the CMS world.\r\nThere are almost 70 language packs in Joomla which are just several clicks away from being installed and used.\r\nEven if a theme you use has some words that aren’t translatable with the language pack, you can translate the rest of them in a language override tool. This is great because in some other popular CMSs you’d need to go to your server and operate in the theme’s files directly.\r\n<span style=\"font-style: italic; \"><span style=\"font-weight: bold; \">Easy to update.</span></span> Joomla is one of the most frequently updated engines and that’s a good thing because the Joomla developer’s team brings us new features and new useful functions each time.\r\nWhat is even better, you can apply the update in two-three clicks from your admin panel. I can’t stress this point enough!\r\n<span style=\"font-style: italic; \"><span style=\"font-weight: bold; \">Well Supported.</span></span> Joomla is an open-source platform, which enables anyone to contribute on a volunteer basis.\r\nThe downside to it is the fact that you can’t get on live chat or call someone from Joomla to get a free consultation for your site.\r\nLuckily, the Joomla team developed very detailed Joomla Documentation. If you’re more of a social type, you’ll enjoy Joomla User Forum.\r\n<span style=\"font-weight: bold; \">What makes Joomla stand out?</span>\r\n<span style=\"font-style: italic; \"><span style=\"font-weight: bold; \">Joomla Media Manager</span></span>\r\nJoomla Media Manager is a tool that allows you to operate your media files in your Joomla admin panel. Media Manager in Joomla is one of the most intuitive and easy to use among similar tools.\r\nUnlike other CMS systems, you can easily create new folders on your server and upload files there. It would require going to FTP or Cpanel in most other CMSs.\r\n<span style=\"font-style: italic; \"><span style=\"font-weight: bold; \">Joomla Contact Manager</span></span>\r\nJoomla is well prepared for being a corporate site that has numerous users with different roles and capabilities. Joomla contact manager enables you to create users in different departments and categories.\r\n<span style=\"font-style: italic; \"><span style=\"font-weight: bold; \">Joomla Content Management</span></span>\r\nEven though I’ve heard customers saying Joomla has a longer learning curve, compared to WordPress, it’s so worth it, because with Joomla comes greater flexibility and content combining possibilities.\r\n<span style=\"font-style: italic; \"><span style=\"font-weight: bold; \">Joomla Extensions (8000+)</span></span>\r\nJoomla has one of the most powerful extension databases among both CMS and eCommerce platforms.<br />You can find a plugin or module to do almost anything. What is remarkable regarding Joomla extensions - a lot of great plugins and modules are free, while most paid ones come with a free lite version and there is the possibility to upgrade to a premium version whenever you decide to do so.\r\n<span style=\"font-style: italic; \"><span style=\"font-weight: bold; \">Front-end Editing</span></span>\r\nI left it till the very end of the guide as it’s my favorite one. That’s what bugs me about WordPress and what cheers me up when working with Joomla - there is no need to go to the admin panel to edit some piece of content.\r\nIf you enabled front-end editing of your site, there will be a gear wheel next to any module and by clicking on it you’ll be able to make changes on the go. It’s a thrill in this bustling world in which we live.","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_Joomla_Development.png","alias":"joomla-development"},"619":{"id":619,"title":"Drupal Development","description":" Drupal is a content management software. It's used to make many of the websites and applications you use every day. Drupal has great standard features, like easy content authoring, reliable performance, and excellent security. But what sets it apart is its flexibility; modularity is one of its core principles. Its tools help you build the versatile, structured content that dynamic web experiences need.\r\nIt's also a great choice for creating integrated digital frameworks. You can extend it with anyone, or many, of thousands of add-ons. Modules expand Drupal's functionality. Themes let you customize your content's presentation. Distributions are packaged Drupal bundles you can use as starter-kits. Mix and match these components to enhance Drupal's core abilities. Or, integrate Drupal with external services and other applications in your infrastructure. No other content management software is this powerful and scalable.\r\nThe Drupal project is open source software. Anyone can download, use, work on, and share it with others. It's built on principles like collaboration, globalism, and innovation. It's distributed under the terms of the GNU General Public License (GPL). There are no licensing fees, ever. Drupal will always be free.","materialsDescription":" <span style=\"font-weight: bold;\">What can Drupal do? And why is it different from other CMS?</span>\r\nThere are many reasons why Drupal is the top three most used CMS, and why tons of small to big complex systems have made it their options. Here are those:\r\n<ul><li><span style=\"font-weight: bold;\">Reliability.</span> Drupal is one of the top three most popular content management systems in the world. It has a longstanding history. Though Drupal is a work in progress, it has been stable along the way. We have Drupal 7 now while Drupal 8 is going to be released. But you can be assured that you will be supported for Drupal previous version at least 5 years. Meanwhile, the resources will stay there for goods.</li><li><span style=\"font-weight: bold;\">Available resources.</span> Nearly anything you want to do with the system has been priorly created and done absolutely well by other people. Other great news is nearly all of the most useful modules (Drupal add-ons) are contributed to the Drupal community. This is invaluable because, in many CMS, you have to pay for important features. As a user, you have benefited greatly from someone’s efforts, and experience.</li><li><span style=\"font-weight: bold;\">A huge dedicated community.</span> The Drupal community is large, dynamic and has functioned well since 2001. As a newbie or a senior developer, Drupal.org is a must-have resource where you dig in for learning material, upcoming news, or ask for support from contributors, and specialists.</li><li><span style=\"font-weight: bold;\">Robust and convenience.</span> Be assured that the source code for building your Drupal sites has been precisely written, and designed by Drupal experts. When you have an intention to do more complex and advanced work, you will find it easy and convenient to modify the system. This grants users a great advantage over other CMS.</li><li><span style=\"font-weight: bold;\">Flexibility.</span> It’s not a chance that Drupal is considered the most flexible CMS. We have always thought that if you have an idea about any functions, contents, you can certainly create it with Drupal. Seriously. You can create any content on site. You can customize anything to fit your taste. You can create any website type that you want.</li><li><span style=\"font-weight: bold;\">Scalability.</span> By scalability, we mean that you can extend your Drupal core to a higher level with a variety of contributed Drupal modules. What’s great with the Drupal modules is that they integrate perfectly well with Drupal core. They also connect absolutely efficiently with the modules. This is regardless of the fact many modules are totally different. It is due to the natural structure & built-in system of Drupal. This thereby enhances the power of extending your Drupal website. It is also a core strength of Drupal compared with other CMS. Meanwhile, Drupal is an open source. So suppose the modules you want don’t exist, you can create one, edit an existing module, or hire someone to do the job.</li><li><span style=\"font-weight: bold;\">Security.</span> Drupal has been meticulously tested up to strict security rules by Drupal experts and contributors. Its built-in security is strong. Drupal will lock down whatever directory installed, rendering important data, configuration files unable to be accessed directly. No wonder that many big sites with extreme security are using Drupal, namely - whitehouse.org, commerce.gov, weforum.org,...</li></ul>\r\n<span style=\"font-weight: bold;\">What are the uses of Drupal?</span>\r\nAs stated, due to its flexibility and extensibility, Drupal is not limited to any kind. Browse these lists to see the wide range of things that Drupal can build:\r\n<ul><li>Personal or corporate Web sites</li><li>Community portal sites</li><li>Intranet/Corporate sites</li><li>Blogs, art, portfolio, music, multimedia sites</li><li>Forums</li><li>International sites (websites with multi languages)</li><li>E-commerce sites</li><li>Resource directories</li><li>Social networking sites</li></ul>\r\n<span style=\"font-weight: bold;\">When Drupal isn't right?</span>\r\nIf it is necessary to know about a system before we set our foot on, it’s never been less important to explore its cons. Here we bring some of our caveats for the system:\r\n<ul><li>There’s a little learning curve. You will not learn and work with Drupal in a few days. Accept this fact. It’s harder to start compared with other CMS like Wordpress. But once you learn some basic things, it’s easy, and the flow is smoother.</li><li>It is not for those who have insufficient time to educate themselves about this system, or little money to pay a Drupal developer to carry out the work.</li><li>Finding a good Drupal developer is harder to find than that of Wordpress or other systems. It’s not hard to guess this considering the number of Wordpress developers compared with Drupal.</li></ul>\r\nIt always takes some investments to learn about something. For a new user, it would be a huge opportunity cost - what you will gain and lose working with one system and leave others behind.\r\nBut after all the choice is always yours.We expect it would be worth. The CMS you will spend thousands hours working. The system through this you make a living. The option that yields energy and satisfaction.","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_Drupal_Development__1_.png","alias":"drupal-development"},"621":{"id":621,"title":"WordPress","description":"","materialsDescription":"","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_WordPress.png","alias":"wordpress"},"623":{"id":623,"title":"Magento Development","description":" Magento is an open-source e-commerce platform written in PHP. It is one of the most popular open e-commerce systems in the network. This software is created using the Zend Framework. Magento source code is distributed under an Open Source Initiative (OSI) approved by the Open Software License (OSL) v3.0, which is similar to the AGPL but not GPL compliant.\r\nThe software was originally developed by Varien, Inc, a US private company headquartered in Culver City, California, with assistance from volunteers.\r\nMore than 100,000 online stores have been created on this platform. The platform code has been downloaded more than 2.5 million times, and $155 billion worth of goods have been sold through Magento-based systems in 2019. Two years ago, Magento accounted for about 30% of the total market share.\r\nVarien published the first general-availability release of the software on March 31, 2008. Roy Rubin, the former CEO of Varien, later sold a share of the company to eBay, which eventually completely acquired and then sold the company to Permira; Permira later sold it to Adobe.\r\nOn November 17, 2015, Magento 2.0 was released. Among the features changed in V2 are the following: reduced table locking issues, improved page caching, enterprise-grade scalability, inbuilt rich snippets for structured data, new file structure with easier customization, CSS Preprocessing using LESS & CSS URL resolver, improved performance and a more structured code base. Magento employs the MySQL or MariaDB relational database management system, the PHP programming language, and elements of the Zend Framework. It applies the conventions of object-oriented programming and model–view–controller architecture. Magento also uses the entity–attribute–value model to store data. On top of that, Magento 2 introduced the Model-View-ViewModel pattern to its front-end code using the JavaScript library Knockout.js.","materialsDescription":" <span style=\"font-weight: bold;\">What is Magento? What is the benefit of choosing an Open Source platform?</span>\r\nMagento is an open-source eCommerce platform that enables the online business owners to control their online store and add powerful and flexible tools for marketing, catalog management, and search engine optimization.\r\nThe open-source platform offers much more innovation, customization, quality, support and agility at a very low cost. It enables the users to share and access the platform, add rich features according to the needs, thereby making changes more effective and easier.\r\n<span style=\"font-weight: bold;\">How can my Magento site be at par with the latest mobile trends and activities?</span>\r\nResponsive designs, device-specific applications have brought a great change in the business world over the past few years. Magento’s latest version includes a responsive template, and it offers great features that meet the needs of the mobile world both for the B2B and the B2C businesses.\r\n<span style=\"font-weight: bold;\">What should be included in my eCommerce Magento strategy?</span>\r\nBefore you plan to start with your Magento project, it is very important to write down the business goals of your website. This will help you to measure success. Once you are done with this, you can plan for the remaining strategies that include target audience, personalization, content plan, mobile strategy, third party add-ons and support services that you would require to keep your site running and performing.","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_Magento_Development.png","alias":"magento-development"},"625":{"id":625,"title":"Typo3 Development","description":" TYPO3 is a free and open-source Web content management system written in PHP. It is released under the GNU General Public License. It can run on several web servers, such as Apache or IIS, on top of many operating systems, among them Linux, Microsoft Windows, FreeBSD, macOS and OS/2.\r\nTYPO3 is, along with Drupal, Joomla! and WordPress, among the most popular content management systems worldwide, however it is more widespread in Europe than in other regions. The biggest market share can be found in German-speaking countries.\r\nTYPO3 is credited to be highly flexible, as code and content are operated separately. It can be extended by new functions without writing any program code. Also, the software is available in more than 50 languages and has a built-in localization system, therefore supports publishing content in multiple languages. Due to its features like editorial workplace and workflow, advanced frontend editing, scalability and maturity, TYPO3 is used to build and manage websites of different types and size ranges, from small sites for individuals or nonprofit organizations to multilingual enterprise solutions for large corporations. According to the ability to support a corporate environment, it classifies itself as an enterprise level content management system.\r\nTYPO3 was initially authored by the Dane Kasper Skårhøj in 1997. It is now developed by over 300 contributors under the lead of Benjamin Mack (Core team leader) and Mathias Schreiber (Product Owner).\r\nCalculations from the TYPO3 Association show that it is currently used in more than 500,000 installations. The number of installations detected by the public website "CMS Crawler" was around 384,000 by February 2017.","materialsDescription":" <span style=\"font-weight: bold; \">What is the official site of TYPO3?</span>\r\nhttps://typo3.org/ :: TYPO3 — the Professional, Flexible Content Management System. TYPO3 CMS is an Open Source Enterprise Content Management System with a large global community, backed by the approximately 900 members of the TYPO3 Association.\r\n<span style=\"font-weight: bold; \">Where did the name TYPO3 come from?</span>\r\nTYPO3 creator Kasper Skårhøj remembers it something like this:\r\nBack in the late 1990s, while still working on the initial version of his new CMS, he was looking for a name for the new software. At the time, the name “freestyle” appealed to him, but it posed some problems through its over-association with certain activities, products and trademarks. So the issue of naming stayed on the back burner for want of a better idea.\r\nThen, one Friday evening while he was alone in the office after hours coding, Kasper inadvertently typed an error into the command line of his Linux server and accidentally deleted a whole week work. He recalls that feeling you get of a cold rush through the body, when you realize something dreadful has happened. Slowly he got up, walked to the other end of the room and sat down in the couch looking back across the office at the laptop on his desk.\r\nHe stayed like this for a while, just staring out into the room. Then, after the initial shock had subsided, he walked back, sat down, and began to recreate the lost code. This went surprisingly quickly; as such things do when you have them fully worked out in your head. And it was during this new rush of adrenaline and the satisfaction that all was not actually lost, that he began to put the incident into perspective. The recreated programming was going smoothly and cleanly, which made him wonder how ironic it would be if a typo ended up actually improving the product! It was this thought that first brought up the expression “typo” as a possible name. It seemed to fit especially well because\r\n<ul><li>“typo”, as in typography, had something to do with layout and content and</li><li>“typo”, as in a typing mistake, now had a quirky share in the product’s history.</li></ul>\r\nThe newborn child now had a name.\r\nOriginally there were Typo versions 1, 2 and 2.5. But with the success of version 3, which had branded itself more or less by default, a “3” was eventually appended to the product title itself. Since the launch of “TYPO3 version 4”, TYPO3 has remained as the product name for all future versions. So, TYPO3 it is called … and TYPO3 it will continue to be.\r\n<span style=\"font-weight: bold; \">What is TYPO3?</span>\r\nTYPO3 is a free and open-source Web content management system written in PHP. It is released under the GNU General Public License. It can run on several web servers, such as Apache or IIS, on top of many operating systems, among them Linux, Microsoft Windows, FreeBSD, macOS and OS/2.\r\n<span style=\"font-weight: bold; \">Why use TYPO3?</span>\r\nBecause TYPO3 is the CMS for you! TYPO3 is an Enterprise Content Management System. If you need to create, manage and output any kind of digital content, TYPO3 is the right tool for you. You can start small and grow fast, but while your business case might change - you'll never need to change the Content Management System since TYPO3 adapts to your needs.\r\n<span style=\"font-weight: bold;\">What are the system requirements?</span>\r\n<ul><li>Operating System: Linux, Windows or Mac, or common cloud infrastructure setups</li><li>Webserver: Apache httpd, Nginx, Microsoft IIS, Caddy Server</li><li>PHP: PHP >= 7.2</li><li>Database: PostgreSQL //Microsoft SQL Server //MariaDB(>= 10.2) //MySQL(>= 5) //SQLite</li><li>Hardware: RAM >= 256 MB</li><li>Supported Browsers: Chrome (latest) //Firefox (latest) //Safari (latest) //Edge (latest) //Internet Explorer (>= 11)</li></ul>","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_Typo3_Development.png","alias":"typo3-development"},"627":{"id":627,"title":"CSS Development","description":" Cascading Style Sheets (CSS) is a style sheet language used for describing the presentation of a document written in a markup language like HTML. CSS is a cornerstone technology of the World Wide Web, alongside HTML and JavaScript.\r\nCSS is designed to enable the separation of presentation and content, including layout, colors, and fonts. This separation can improve content accessibility, provide more flexibility and control in the specification of presentation characteristics, enable multiple web pages to share formatting by specifying the relevant CSS in a separate .css file, and reduce complexity and repetition in the structural content.\r\nSeparation of formatting and content also makes it feasible to present the same markup page in different styles for different rendering methods, such as on-screen, in print, by voice (via speech-based browser or screen reader), and on Braille-based tactile devices. CSS also has rules for alternate formatting if the content is accessed on a mobile device.\r\nThe name cascading comes from the specified priority scheme to determine which style rule applies if more than one rule matches a particular element. This cascading priority scheme is predictable.\r\nThe CSS specifications are maintained by the World Wide Web Consortium (W3C). Internet media type (MIME type) text/css is registered for use with CSS by RFC 2318 (March 1998). The W3C operates a free CSS validation service for CSS documents.\r\nIn addition to HTML, other markup languages support the use of CSS including XHTML, plain XML, SVG, and XUL.\r\nBefore CSS, nearly all presentational attributes of HTML documents were contained within the HTML markup. All font colors, background styles, element alignments, borders and sizes had to be explicitly described, often repeatedly, within the HTML. CSS lets authors move much of that information to another file, the style sheet, resulting in considerably simpler HTML.","materialsDescription":" <span style=\"font-weight: bold;\">Which is better: plain HTML or HTML with CSS?</span>\r\nMany site developers wonder why you need CSS if you can use plain HTML. Most likely, they only know the development of the site and have a number of gaps in knowledge. The bottom line is that HTML is used to structure the content of a page. And CSS allows you to format this content, make it more attractive to users.\r\nWhen the World Wide Web was created, the developers used only one language - HTML. It was used as a means of outputting structured text. The author had scant functional at his disposal. The maximum that could be done - to designate the title, select the paragraph. Tags were not enough.\r\nIn connection with the development of the Internet, the base of HTML language tags was expanded to allow the appearance of documents to be adjusted. At the same time, the structure remained unchanged.\r\nStructuring tags, for example <table>, began to spread. It was they who were more often chosen to design the pages instead of the structure itself. Some browsers offered their own tags, which only they could reproduce.\r\nThus, users often stumbled upon the message: "To view a page, you need to use browser XXX."\r\nTo correct the situation and create a single database of tags for formatting was created CSS. He allowed refusing to bind tags to browsers.\r\nUsing HTML with CSS is more convenient than using plain HTML. CSS provides the following benefits:\r\n<ul><li>Designed to the smallest detail.</li><li>Using a single table, you can manage various documents.</li><li>You can customize the page display options for different devices: computer screen, smartphone screen, etc.</li></ul>\r\n<span style=\"font-weight: bold;\">Website Promotion with CSS</span>\r\nThe emergence and development of CSS have made the development of web resources more efficient and effective. Now it’s much easier and more convenient to control the design. Also, using CSS, we managed to reduce the code of the pages, their size. This had a positive impact on the download speed, the indexing also began to pass faster. The use of an adaptive approach allowed us to make a breakthrough in the field of mobile versions of Internet resources.\r\nTo improve the website promotion, experts recommend placing the CSS style sheets in a separate document so as not to increase the amount of code. You can create one or more such files.\r\nPreviously, search engines could not read style sheets, which made it possible to use them in black SEO, for example, to create invisible texts. Now it is better to abandon the use of CSS for other purposes.\r\nCSS has several advantages and allows you to improve the site, making it more attractive to visitors. However, it is important to correctly register all the elements.","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_CSS_Development.png","alias":"css-development"},"629":{"id":629,"title":"PHP Development","description":"PHP is a general-purpose programming language originally designed for web development. It was originally created by Rasmus Lerdorf in 1994; the PHP reference implementation is now produced by The PHP Group. PHP originally stood for Personal Home Page, but it now stands for the recursive initialism PHP: Hypertext Preprocessor.\r\nPHP code may be executed with a command line interface (CLI), embedded into HTML code, or used in combination with various web template systems, web content management systems, and web frameworks. PHP code is usually processed by a PHP interpreter implemented as a module in a web server or as a Common Gateway Interface (CGI) executable. The web server outputs the results of the interpreted and executed PHP code, which may be any type of data, such as generated HTML code or binary image data. PHP can be used for many programming tasks outside of the web context, such as standalone graphical applications and robotic drone control.\r\nThe standard PHP interpreter, powered by the Zend Engine, is free software released under the PHP License. PHP has been widely ported and can be deployed on most web servers on almost every operating system and platform, free of charge.\r\nThe PHP language evolved without a written formal specification or standard until 2014, with the original implementation acting as the de facto standard which other implementations aimed to follow. Since 2014, work has gone on to create a formal PHP specification.\r\nAs of September 2019, over 60% of sites on the web using PHP are still on discontinued/"EOLed" version 5.6 or older; versions prior to 7.2 are no longer officially supported by The PHP Development Team, but security support is provided by third parties, such as Debian.","materialsDescription":" <span style=\"font-weight: bold; \">What is PHP?</span>\r\nPHP stands for Hypertext Preprocessor. It is an open-source server-side scripting language that is widely used for web development. It supports many databases like MySQL, Oracle, Sybase, Solid, PostgreSQL, generic ODBC, etc.\r\n<span style=\"font-weight: bold; \">What is PEAR in PHP?</span>\r\nPEAR is a framework and repository for reusable PHP components. PEAR stands for PHP Extension and Application Repository. It contains all types of PHP code snippets and libraries. It also provides a command-line interface to install "packages" automatically.\r\n<span style=\"font-weight: bold; \">Who is known as the father of PHP?</span>\r\nRasmus Lerdorf.\r\n<span style=\"font-weight: bold; \">What was the old name of PHP?</span>\r\nThe old name of PHP was Personal Home Page.\r\n<span style=\"font-weight: bold; \">Explain the difference b/w static and dynamic websites?</span>\r\nIn static websites, content can't be changed after running the script. You can't change anything on the site. It is predefined.\r\nIn dynamic websites, the content of a script can be changed at the run time. Its content is regenerated every time a user visits or reload. Google, yahoo and every search engine is an example of a dynamic website.\r\n<span style=\"font-weight: bold; \">What is the name of the scripting engine in PHP?</span>\r\nThe scripting engine that powers PHP is called Zend Engine 2.","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_PHP_Development.png","alias":"php-development"},"631":{"id":631,"title":"CakePHP Development","description":" CakePHP is an open-source web framework. It follows the model–view–controller (MVC) approach and is written in PHP, modeled after the concepts of Ruby on Rails, and distributed under the MIT License.\r\nCakePHP uses well-known software engineering concepts and software design patterns, such as convention over configuration, model–view–controller, active record, association data mapping, and front controller.\r\nCakePHP started in April 2005, when a Polish programmer Michal Tatarynowicz wrote a minimal version of a rapid application development in PHP, dubbing it Cake. He published the framework under the MIT license, and opened it up to the online community of developers. In December 2005, L. Masters and G. J. Woodworth founded the Cake Software Foundation to promote development related to CakePHP. Version 1.0 was released on May 2006.\r\nOne of the project's inspirations was Ruby on Rails, using many of its concepts. The community has since grown and spawned several sub-projects.\r\nIn October 2009, project manager Woodworth and developer N. Abele resigned from the project to focus on their own projects, including the Lithium web framework (previously part of the CakePHP project). The remaining development team continued to focus on the original roadmap that was previously defined.","materialsDescription":" <span style=\"font-weight: bold;\">What is CakePHP? Why it’s Useful?</span>\r\nCakePHP is a free, open-source, rapid development framework for PHP. It’s a fundamental framework for developers to produce web applications.\r\nCakePHP has an active developer team and also the community, bringing terrific worth to the job. Along with maintaining you from wheel-reinventing, utilizing CakePHP suggests your application’s core is well examined as well as is being continuously boosted.\r\nBelow’s a quick listing of functions you’ll delight in when using CakePHP:\r\n<ul><li>Active, friendly community</li><li>Flexible licensing</li><li>Suitable with variations 4 and also 5 of PHP</li><li>Integrated CRUD for database Interaction</li><li>Application scaffolding</li><li>Code generation</li><li>MVC architecture</li><li>Request dispatcher with clean, customized URLs as well as routes</li><li>Integrated validation</li><li>Fast and also adaptable template (PHP phrase framework, with helpers)</li><li>Look for Helpers for AJAX, JavaScript, HTML Forms as well as a lot more</li><li>Email, Cookie, Security, Session, and also Request Handling Components</li><li>Flexible ACL</li><li>Data Sanitization</li><li>Flexible Caching</li><li>Localization</li><li>Works from any kind of web site directory site, with little to no Apache setup involved</li></ul>","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_CakePHP_Development.png","alias":"cakephp-development"},"633":{"id":633,"title":"Ruby on Rails Development","description":" Ruby on Rails, or Rails, is a server-side web application framework written in Ruby under the MIT License. Rails is a model–view–controller (MVC) framework, providing default structures for a database, a web service, and web pages. It encourages and facilitates the use of web standards such as JSON or XML for data transfer, HTML, CSS and JavaScript for user interfacing. In addition to MVC, Rails emphasizes the use of other well-known software engineering patterns and paradigms, including convention over configuration (CoC), don't repeat yourself (DRY), and the active record pattern.\r\nRuby on Rails' emergence in the 2000s greatly influenced web app development, through innovative features such as seamless database table creations, migrations, and scaffolding of views to enable rapid application development. Ruby on Rails' influence on other web frameworks remains apparent today, with many frameworks in other languages borrowing its ideas, including Django in Python, Catalyst in Perl, Laravel and CakePHP in PHP, Phoenix in Elixir, Play in Scala, and Sails.js in Node.js.\r\nRuby on Rails is intended to emphasize Convention over Configuration (CoC), and the Don't Repeat Yourself (DRY) principle.\r\n"Convention over Configuration" means a developer only needs to specify unconventional aspects of the application. For example, if there is a class Sale in the model, the corresponding table in the database is called sales by default. It is only if one deviates from this convention, such as calling the table "products sold", that the developer needs to write code regarding these names. Generally, Ruby on Rails conventions lead to less code and less repetition.\r\n"Don't repeat yourself" means that information is located in a single, unambiguous place. For example, using the ActiveRecord module of Rails, the developer does not need to specify database column names in class definitions. Instead, Ruby on Rails can retrieve this information from the database based on the class name.\r\n"Fat models, skinny controllers" means that most of the application logic should be placed within the model while leaving the controller as light as possible.","materialsDescription":" <span style=\"font-weight: bold;\">What is Ruby on Rails?</span>\r\nRails is a development tool that gives web developers a framework, providing structure for all the code they write. The Rails framework helps developers to build websites and applications because it abstracts and simplifies common repetitive tasks.\r\nRails are written in Ruby, the programming language which is also used alongside Rails. Ruby is to Rails as PHP is to Symfony and Zend, or as Python is to Django. The appeal of Ruby to developers lies in the elegance and terseness of the language.\r\nOne of the key principles of Ruby on Rails development (henceforth ‘Rails’) is convention over configuration. This means that the programmer does not have to spend a lot of time configuring files in order to get set up, Rails comes with a set of conventions which help speed up development.\r\nAnother characteristic of Rails is the emphasis on RESTful application design. REST (Representational State Transfer) is a style of software architecture based around the client-server relationship. It encourages a logical structure within applications, which means they can easily be exposed as an API (Application Programming Interface).\r\nFrom a project management point of view, the Ruby on Rails community advocate Agile web development – an iterative development method, that encourages collaborative and flexible approach, which is particularly well-suited for web application development with fast-changing requirements.\r\nOver the last few years Ruby on Rails has gained a large and enthusiastic following, but let’s consider the main arguments for and against Rails.\r\n<span style=\"font-weight: bold;\">Why is it necessary to use Ruby on Rails?</span>\r\n<ul><li>The process of programming is much faster than with other frameworks and languages, partly because of the object-oriented nature of Ruby and the vast collection of open source code available within the Rails community.</li><li>The Rails conventions also make it easy for developers to move between different Rails projects, as each project will tend to follow the same structure and coding practices.</li><li>Rails are good for rapid application development (RAD), as the framework makes it easy to accommodate changes.</li><li>Ruby code is very readable and mostly self-documenting. This increases productivity, as there is less need to write out separate documentation, making it easier for other developers to pick up existing projects.</li><li>Rails have developed a strong focus on testing and have good testing frameworks.</li><li>Rails and most of its libraries are open sources, so unlike other commercial development frameworks, there are no licensing costs involved.</li></ul>\r\n<span style=\"font-weight: bold;\">Potential Rails problems and limitations and how to overcome them:</span>\r\n<ul><li>Not all website hosts can support Rails</li><li>Java and PHP are more widely used, and there are more developers in these languages</li><li>Performance and Scalability</li></ul>","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_Ruby_on_Rails_Development.png","alias":"ruby-on-rails-development"},"635":{"id":635,"title":"Python Development","description":" Python is an interpreted, high-level, general-purpose programming language. Created by Guido van Rossum and first released in 1991, Python's design philosophy emphasizes code readability with its notable use of significant whitespace. Its language constructs and object-oriented approach aim to help programmers write clear, logical code for small and large-scale projects.\r\nPython is dynamically typed and garbage-collected. It supports multiple programming paradigms, including procedural, object-oriented, and functional programming. Python is often described as a "batteries included" language due to its comprehensive standard library.\r\nPython was conceived in the late 1980s as a successor to the ABC language. Python 2.0, released in 2000, introduced features like list comprehensions and a garbage collection system capable of collecting reference cycles. Python 3.0, released in 2008, was a major revision of the language that is not completely backward-compatible, and much Python 2 code does not run unmodified on Python 3.\r\nThe Python 2 language, i.e. Python 2.7.x, was officially discontinued on 1 January 2020 (first planned for 2015) after which security patches and other improvements will not be released for it. With Python 2's end-of-life, only Python 3.5.x and later are supported.\r\nPython interpreters are available for many operating systems. A global community of programmers develops and maintains CPython, an open source reference implementation. A non-profit organization, the Python Software Foundation, manages and directs resources for Python and CPython development.\r\nPython is a multi-paradigm programming language. Object-oriented programming and structured programming are fully supported, and many of its features support functional programming and aspect-oriented programming (including by metaprogramming and metaobjects (magic methods)). Many other paradigms are supported via extensions, including design by contract and logic programming.\r\nPython uses dynamic typing and a combination of reference counting and a cycle-detecting garbage collector for memory management. It also features dynamic name resolution (late binding), which binds method and variable names during program execution.\r\nPython's design offers some support for functional programming in the Lisp tradition. It has filter, map, and reduce functions; list comprehensions, dictionaries, sets, and generator expressions. The standard library has two modules (itertools and functools) that implement functional tools borrowed from Haskell and Standard ML.","materialsDescription":" <span style=\"font-weight: bold;\">What is Python?</span>\r\nPython is an interpreted, interactive, object-oriented programming language. It incorporates modules, exceptions, dynamic typing, very high level dynamic data types, and classes. Python combines remarkable power with very clear syntax. It has interfaces to many system calls and libraries, as well as to various window systems, and is extensible in C or C++. It is also usable as an extension language for applications that need a programmable interface. Finally, Python is portable: it runs on many Unix variants, on the Mac, and on Windows 2000 and later.\r\n<span style=\"font-weight: bold;\">What is the Python Software Foundation?</span>\r\nThe Python Software Foundation is an independent non-profit organization that holds the copyright on Python versions 2.1 and newer. The PSF’s mission is to advance open source technology related to the Python programming language and to publicize the use of Python. The PSF’s home page is at <link https://www.python.org/psf/.>https://www.python.org/psf/.</link>\r\n<span style=\"font-weight: bold;\">Are there copyright restrictions on the use of Python?</span>\r\nYou can do anything you want with the source, as long as you leave the copyrights in and display those copyrights in any documentation about Python that you produce. If you honor the copyright rules, it’s OK to use Python for commercial use, to sell copies of Python in source or binary form (modified or unmodified), or to sell products that incorporate Python in some form. We would still like to know about all commercial use of Python, of course.\r\n<span style=\"font-weight: bold;\">What is Python good for?</span>\r\nPython is a high-level general-purpose programming language that can be applied to many different classes of problems.\r\nThe language comes with a large standard library that covers areas such as string processing (regular expressions, Unicode, calculating differences between files), Internet protocols (HTTP, FTP, SMTP, XML-RPC, POP, IMAP, CGI programming), software engineering (unit testing, logging, profiling, parsing Python code), and operating system interfaces (system calls, filesystems, TCP/IP sockets). Look at the table of contents for The Python Standard Library to get an idea of what’s available. A wide variety of third-party extensions are also available. Consult the Python Package Index to find packages of interest to you.<br /><br />","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_Python_Development.png","alias":"python-development"},"637":{"id":637,"title":"eCommerce development","description":" Electronic commerce is an online transaction of buying and selling products through World Wide Web-based websites and mobile applications. The examples of eCommerce business include supply chain, funds transfer, banking and electronic data interchange (EDI) and others. The electronic transactions are carried out through many eCommerce software platforms and eCommerce applications that are integrated with online websites with the help of eCommerce developers. The eCommerce applications are linked with the payment gateways for a smooth transfer of credit from one entity to another one.\r\nAn eCommerce developer is a very important role in eCommerce app development and web services to realize the power of online sales and marketing in all domains of businesses. The eCommerce developers are normally the web developers with additional exposure to the eCommerce tools and platforms commonly used in online businesses. HTML, CSS, JavaScript, Python, PHP, Ruby on Rail and related technologies are the fundamental components of eCommerce developer skills. In addition to those skills, the knowledge of eCommerce software platforms and API integration is very important for a good eCommerce developer resume.\r\nA good eCommerce website should be highly professional looking with great features and intuitive interface for the checkout process. This is only possible with the help of professional eCommerce developers. You need to evaluate a lot of things before you decide to hire eCommerce developers such as the backend technologies of your website, type of eCommerce, a domain of business, type of database and many others. Once you have decided about all these things, you need to match the eCommerce web developer resume, which is under consideration, with those factors to find a good eCommerce developer.","materialsDescription":" <span style=\"font-weight: bold;\">Why is it important for business owners to create an eСommerce site?</span>\r\nToday, people have very less time to purchase items, by going to physical stores. They prefer to browse their mobile devices or PC and shop online. Having an e-commerce site for your business will help you to capture this market base and keep your customers informed about all your latest products and services.\r\n<span style=\"font-weight: bold;\">How can I choose the best platform for my eСommerce business website?</span>\r\nBefore getting started with your eСommerce web development, consider the few fundamentals that can help to choose the best platform. Always consider the items that you are selling. Some eСommerce platforms can handle inventory tracking and multiple product options while some others will not. Consider the design options, payment gateways, the security of the site, integration with other tools, features and pricing before finalizing on the platform.\r\n<span style=\"font-weight: bold;\">How should I promote my eСommerce site?</span>\r\nThere are various ways to do this and the first thing to do is to promote the site to all the customers. This will help to increase your customer base. Your website address should be present in every advertisement that your company invests in. Register with the search engines and optimize your website as this will affect the traffic of your site.\r\n<span style=\"font-weight: bold;\">What are the important things that can turn browsers into buyers?</span>\r\nCreate your site so that it is much more oriented towards sales rather than marketing. Let your visitors see your products immediately instead of hiding them behind lots of marketing copy. Make a page that reads the terms and conditions as it will offer a professional look. Provide your contact details and explain your return policies, security, encryption methods, and payment options.\r\n<span style=\"font-weight: bold;\">How to create an impressive website?</span>\r\nThe beauty of a site lies in the way it operates and how user-friendly it is. Ensure that your site is fast, easy to use, professional and attractive. Also, make sure that you are able to fulfill the orders very promptly without any delay. In case you are unable to offer the service, make sure that your customer is informed about it via email.\r\n<span style=\"font-weight: bold;\">What are the security risks that are involved with eСommerce sites?</span>\r\neCommerce website owners should always keep in mind the three dimensions of security - confidentiality, integrity, and availability. Business owners should develop a good strategy that can help to make the site and transactions secured. To avoid any hackers gain access to important confidential data, include encryption methods for any data transactions.\r\n<span style=\"font-weight: bold;\">Is there any limit on the size of my product or customer database?</span>\r\nNo, as such there are no limits on the size. The biggest benefit of having an online store is that you can add unlimited products and catalogs and at the same time you can grow your customer base as you require.","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_eCommerce_development.png","alias":"ecommerce-development"},"639":{"id":639,"title":"HTML Development","description":" Hypertext Markup Language (HTML) is the standard markup language for documents designed to be displayed in a web browser. It can be assisted by technologies such as Cascading Style Sheets (CSS) and scripting languages such as JavaScript.\r\nWeb browsers receive HTML documents from a web server or from local storage and render the documents into multimedia web pages. HTML describes the structure of a web page semantically and originally included cues for the appearance of the document.\r\nHTML elements are the building blocks of HTML pages. With HTML constructs, images and other objects such as interactive forms may be embedded into the rendered page. HTML provides a means to create structured documents by denoting structural semantics for text such as headings, paragraphs, lists, links, quotes and other items. HTML elements are delineated by tags, written using angle brackets. Tags such as <img /> and <input /> directly introduce content into the page. Other tags such as <p> surround and provide information about document text and may include other tags as sub-elements. Browsers do not display the HTML tags, but use them to interpret the content of the page.\r\nHTML can embed programs written in a scripting language such as JavaScript, which affects the behavior and content of web pages. Inclusion of CSS defines the look and layout of content. The World Wide Web Consortium (W3C), former maintainer of the HTML and current maintainer of the CSS standards, has encouraged the use of CSS over explicit presentational HTML since 1997.","materialsDescription":" <span style=\"font-weight: bold;\">What is HTML5?</span>\r\nHTML5 contains powerful capabilities for Web-based applications with more powerful interaction, video support, graphics, more styling effects, and a full set of APIs. HTML5 adapts to any device, whether desktop, mobile, tablet, or television. HTML5 is an open platform developed under royalty-free licensing terms.\r\nPeople use the term HTML5 in two ways:\r\n<ul><li>to refer to a set of technologies that together form the future Open Web Platform. These technologies include HTML5 specification, CSS3, SVG, MathML, Geolocation, XmlHttpRequest, Context 2D, Web Fonts (WOFF) and others. The boundary of this set of technologies is informal and changes over time;</li><li>to refer to the HTML5 specification, which is, of course, also part of the Open Web Platform.</li></ul>\r\nAlthough it would be great if people used one term to refer to the specification and another term to refer to a set of specifications, in practice people use the term both ways.\r\n<span style=\"font-weight: bold;\">HTML5 has been cited by many thought leaders as the future of the Web. Why is HTML5 generating this excitement?</span>\r\nThere is huge demand for open standards that allow the creation of rich internet applications. Watching videos, finding the nearest restaurant, accessing emails while being offline are just some of the powerful new capabilities enabled by the set of specifications in development at W3C.\r\nOne aspect that interests W3C, in particular, is enabling people to combine different technologies. W3C works to ensure not just interoperable support in the software of a single specification, but compatibility among specifications.\r\nEven though HTML5 is still a draft, browser vendors are deploying features and generating a lot of excitement in the IT industry. This experience, in turn, allows W3C to revise its drafts. In this way, the final standard can transparently inform implementers where they need to pay close attention to security and privacy issues.\r\n<span style=\"font-weight: bold;\">When can I use HTML5?</span>\r\nPeople can already use parts of the platform that interoperate, but W3C's mission is global interoperable, to ensure that the web is available to all. Not all elements are fully implemented yet and some of them provide builtin fallback mechanisms, such as <video> or <input>. One can use HTML5 today, knowing the existing limitations and ensuring proper fallbacks.\r\n<span style=\"font-weight: bold;\">Which Web Browsers support HTML5?</span>\r\nW3C encourages implementation and testing long before a specification becomes a standard to ensure that two people can read a specification independently and write interoperable software. Early adopters provide implementers and W3C with tremendously valuable feedback because they help identify where interoperability issues exist.\r\n<span style=\"font-weight: bold;\">Do you think that the benefits of HTML5, such as its neutrality, rich graphics, no need plug-ins, outweigh the security risk it carries?</span>\r\nNow entering its third decade, the Web has evolved from a Web of documents into a formidable platform for networked applications that let us share information and services over the Internet. In this highly connected environment, it is important that powerful Web applications be designed with sensitivity to user privacy and security needs. The risks associated with modern Web applications are familiar to the HTML5 community.\r\nHTML5 and related specifications are being developed in W3C's open standards process. This process allows an expert review of features along with their security and privacy implications. Rich functionality that was previously available only through proprietary plugins is now documented in an open specification for all experts to review and improve. We're pleased to see the HTML5 specifications subject to rigorous public review since that helps make the Web a more secure environment.\r\nSome security issues are not confined to HTML5. W3C and IETF are working closely to specify technologies and protocol extensions to mitigate some issues (such as cross-site request forgery and cross-site scripting).\r\n<span style=\"font-weight: bold;\">Will there be an HTML6?</span>\r\nNo work is currently happening on HTML6 but feature requests that are not planned to be addressed in HTML5 are available at listed under HTML.next.","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_HTML_Development.png","alias":"html-development"},"641":{"id":641,"title":"XML Development","description":"","materialsDescription":"","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_XML_Development.png","alias":"xml-development"},"643":{"id":643,"title":"AJAX Development","description":" Ajax (also AJAX; short for asynchronous JavaScript and XML) is a set of web development techniques using many web technologies on the client side to create asynchronous web applications. With Ajax, web applications can send and retrieve data from a server asynchronously (in the background) without interfering with the display and behavior of the existing page. By decoupling the data interchange layer from the presentation layer, Ajax allows web pages and, by extension, web applications, to change content dynamically without the need to reload the entire page. In practice, modern implementations commonly utilize JSON instead of XML.\r\nAjax is not a single technology, but rather a group of technologies. HTML and CSS can be used in combination to mark up and style information. The webpage can then be modified by JavaScript to dynamically display—and allow the user to interact with—the new information. The built-in XMLHttpRequest object within JavaScript is commonly used to execute Ajax on webpages allowing websites to load content onto the screen without refreshing the page. Ajax is not a new technology, or different language, just existing technologies used in new ways.\r\nThe term Ajax has come to represent a broad group of Web technologies that can be used to implement a Web application that communicates with a server in the background, without interfering with the current state of the page. In the article that coined the term Ajax, Jesse James Garrett explained that the following technologies are incorporated:\r\n<ul><li>HTML (or XHTML) and CSS for presentation</li><li>The Document Object Model (DOM) for dynamic display of and interaction with data</li><li>JSON or XML for the interchange of data, and XSLT for its manipulation</li><li>The XMLHttpRequest object for asynchronous communication</li><li>JavaScript to bring these technologies together</li></ul>\r\nSince then, however, there have been a number of developments in the technologies used in an Ajax application, and in the definition of the term Ajax itself. XML is no longer required for data interchange and, therefore, XSLT is no longer required for the manipulation of data. JavaScript Object Notation (JSON) is often used as an alternative format for data interchange, although other formats such as preformatted HTML or plain text can also be used. A variety of popular JavaScript libraries, including JQuery, include abstractions to assist in executing Ajax requests.\r\nAsynchronous HTML and HTTP (AHAH) involves using XMLHTTPRequest to retrieve (X)HTML fragments, which are then inserted directly into the Web page.","materialsDescription":" <span style=\"font-weight: bold;\">What Is AJAX?</span>\r\nAJAX is an acronym that stands for Asynchronous JavaScript and XML, and it describes a set of development techniques used for building websites and web applications. According to web developer and Skillcrush WordPress instructor Ann Cascarano, the best way to understand AJAX is to start with identifying its specific purpose in the web development process. AJAX’s core function is to update web content asynchronously (the “A” of AJAX), meaning a user’s web browser doesn’t need to reload an entire web page when only a small portion of content on the page needs to change.\r\nOne of the most ubiquitous examples of asynchronous updating is Google’s “Google Suggest” feature. When you enter a search query into Google’s search bar and the Google website automatically begins offering auto-complete options while you type, that’s AJAX in action. The content on the page changes (in this case, the auto-complete options in the search bar) without having to manually refresh the page (something that would make Google Suggest impractical to use). Features like Google Suggest are a fundamental part of contemporary web browsing, which points to how essential AJAX is in web development. In addition to Google Suggest, Cascarano says that AJAX is commonly used to update features like status and notification bars, online forms, comments sections, and surveys and polls. But what exactly are the “J” and “X” of AJAX and how do they make asynchronous updating possible?\r\n<span style=\"font-weight: bold;\">JavaScript and XML</span>\r\nAs mentioned above, the “J” in AJAX stands for JavaScript. JavaScript is a type of scripting language—coding languages used to automate website processes so web developers don’t have to individually program each instance of the process that appears on a page. In JavaScript’s case, it’s used specifically to create, add, and manage dynamic website content. In other words, after markup languages like HTML and CSS are used to build and display static web features (headers, fonts, paragraphs, etc.), JavaScript is then used to control features that require real time updates while a visitor is viewing a page (think interactive maps, animated graphics, scrolling video, jukeboxes, etc). Since JavaScript is in the business of updating page content without requiring viewers to manually reload entire pages, it’s a critical component for AJAX’s asynchronous updating.\r\nThe “X” in AJAX is XML (Extensible Markup Language). As its name suggests, XML is a markup language, which means it’s in the same family as languages like HTML and CSS. Markup languages are coding languages used to annotate parts of a web document that are intended to give web browsers instructions about how to understand, process, and display a web page, versus the actual text intended to be displayed on the page. While HTML and CSS focus on instructing how page content is displayed (paragraphs, headers, fonts, colors, etc.), XML is used to transfer data stored on the page to the browsers that view it. Individual computer systems are often incompatible with one another and can’t understand or interact with data formatted by a different system. XML allows developers to bypass this obstacle by storing data in plain text format between XML tags. By doing this, XML offers a way of storing, moving, and sharing data that isn’t dependent on a particular software or hardware system (something that’s crucial for the internet, where data needs to be available and understandable across all software and hardware platforms). RSS feeds—subscription web feeds that allow users to access content from blogs and news sources as they are updated in real time—are built with XML and are an example of the language’s practical data-sharing capabilities. But how does XML combine with JavaScript to form AJAX?\r\n<span style=\"font-weight: bold;\">How Does AJAX Work?</span>\r\nAccording to Cascarano, JavaScript and XML combine to make asynchronous updating happen through the use of something called an XMLHttpRequest object. When a user visits a web page designed to make use of AJAX and a prescribed event occurs (the user loads the page, clicks a button, fills out a form, etc.) JavaScript creates an XMLHttpRequest object, which then transfers data in an XML format between a web browser (the program being used to view the website) and a web server (the software or hardware where a website’s data is stored). The XMLHttpRequest object sends a request for updated page data to the web server, the server process the request, a response is created server-side and sent back to the browser, which then uses JavaScript to process the response and display it on the screen as updated content.\r\nTo recap: JavaScript automates the updating process, the request for updated content is formatted in XML to make it universally understandable, and JavaScript again kicks in to refresh the relevant content for the user viewing the page. Cascarano notes that the AJAX technique ignores extraneous page data and only handles requests for updated information and the updated information itself. This is really the heart of AJAX’s effectiveness, making websites and applications that use AJAX faster and more responsive for users.","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_AJAX_Development.png","alias":"ajax-development"},"645":{"id":645,"title":"JavaScript development","description":" JavaScript, often abbreviated as JS, is a high-level, just-in-time compiled, object-oriented programming language that conforms to the ECMAScript specification. JavaScript has curly-bracket syntax, dynamic typing, prototype-based object-orientation, and first-class functions.\r\nAlongside HTML and CSS, JavaScript is one of the core technologies of the World Wide Web. JavaScript enables interactive web pages and is an essential part of web applications. The vast majority of websites use it, and major web browsers have a dedicated JavaScript engine to execute it.\r\nAs a multi-paradigm language, JavaScript supports event-driven, functional, and imperative (including object-oriented and prototype-based) programming styles. It has APIs for working with text, arrays, dates, regular expressions, and the DOM, but the language itself does not include any I/O, such as networking, storage, or graphics facilities. It relies upon the host environment in which it is embedded to provide these features.\r\nInitially only implemented client-side in web browsers, JavaScript engines are now embedded in many other types of host software, including server-side in web servers and databases, and in non-web programs such as word processors and PDF software, and in runtime environments that make JavaScript available for writing mobile and desktop applications, including desktop widgets.\r\nThe terms Vanilla JavaScript and Vanilla JS refer to JavaScript not extended by any frameworks or additional libraries. Scripts written in Vanilla JS are plain JavaScript code.\r\nAlthough there are similarities between JavaScript and Java, including language name, syntax, and respective standard libraries, the two languages are distinct and differ greatly in design. JavaScript was influenced by programming languages such as Self and Scheme. The JSON serialization format, used to store data structures in files or transmit them across networks, is based on JavaScript.\r\n"JavaScript" is a trademark of Oracle Corporation in the United States. It is used under license for technology invented and implemented by Netscape Communications and current entities such as the Mozilla Foundation.","materialsDescription":" <span style=\"font-weight: bold;\">What is JavaScript?</span>\r\nJavaScript is a client-side as well as a server-side scripting language that can be inserted into HTML pages and is understood by web browsers. JavaScript is also an Object-based Programming language.\r\n<span style=\"font-weight: bold;\">What are the differences between Java and JavaScript?</span>\r\nJava is a complete programming language. In contrast, JavaScript is a coded program that can be introduced to HTML pages. These two languages are not at all inter-dependent and are designed for different intent. Java is an object-oriented programming (OOPS) or structured programming languages like C++ or C whereas JavaScript is a client-side scripting language.\r\n<span style=\"font-weight: bold;\">Do I have to buy JavaScript?</span>\r\nNo--there is nothing to buy. The JavaScript interpreter is included in all major Internet Browsers--so as long as you have an Internet Browser, you're all set. JavaScript source files are written using an ordinary text editor, such as Notepad.\r\n<span style=\"font-weight: bold;\">What is JScript?</span>\r\nJScript is Microsoft's version of Netscape's JavaScript. Each Internet Browser vendor creates their own version of what is collectively known as JavaScript---however, the latest versions of these browsers are moving towards the ECMA Script standard.\r\n<span style=\"font-weight: bold;\">Who 'owns' JavaScript?</span>\r\nECMA governs the standard features of JavaScript---however, each vendor writes the code for their own versions of JavaScript.\r\n<span style=\"font-weight: bold;\">What are the features of JavaScript?</span>\r\n<ul><li>JavaScript is a lightweight, interpreted programming language.</li><li>JavaScript is designed for creating network-centric applications.</li><li>JavaScript is complementary to and integrated with Java.</li><li>JavaScript is complementary to and integrated with HTML.</li><li>JavaScript is open and cross-platform.</li></ul>","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_JavaScript_development.png","alias":"javascript-development"},"649":{"id":649,"title":"QA - Quality assurance","description":" <span style=\"font-weight: bold; \">Quality Assurance (QA)</span> is defined as an activity to ensure that an organization is providing the best possible product or service to customers. QA focuses on improving the processes to deliver Quality Products to the customer. An organization has to ensure, that processes are efficient and effective as per the quality standards defined for software products. Quality Assurance is popularly known as <span style=\"font-weight: bold; \">QA Testing. </span>\r\nQA establishes and maintains set requirements for developing or manufacturing reliable products. A quality assurance system is meant to increase customer confidence and a company's credibility, while also improving work processes and efficiency, and it enables a company to better compete with others.\r\nQuality assurance helps a company create products and services that meet the needs, expectations and requirements of customers. It yields high-quality product offerings that build trust and loyalty with customers. The standards and procedures defined by a quality assurance program help prevent product defects before they arise.\r\n<span style=\"font-weight: bold; \">Quality assurance utilizes one of three methods:</span>\r\n<span style=\"font-weight: bold; \">Failure testing, </span>which continually tests a product to determine if it breaks or fails. For physical products that need to withstand stress, this could involve testing the product under heat, pressure or vibration. For software products, failure testing might involve placing the software under high usage or load conditions.\r\n<span style=\"font-weight: bold; \">Statistical process control (SPC),</span> a methodology based on objective data and analysis and developed by Walter Shewhart at Western Electric Company and Bell Telephone Laboratories in the 1920's and 1930's. This methodology uses statistical methods to manage and control the production of products.\r\n<span style=\"font-weight: bold; \">Total quality management (TQM),</span> which applies quantitative methods as the basis for continuous improvement. TQM relies on facts, data and analysis to support product planning and performance reviews.\r\n<span style=\"font-weight: bold; \">Quality assurance in software.</span> Software quality assurance management (SQA) systematically finds patterns and the actions needed to improve development cycles. Finding and fixing coding errors can carry unintended consequences; it is possible to fix one thing, yet break other features and functionality at the same time.\r\nSQA software has become important for developers as a means of avoiding errors before they occur, saving development time and expenses. Even with SQA processes in place, an update to software can break other features and cause defects - commonly known as bugs.\r\n\r\n","materialsDescription":"<h1 class=\"align-center\"> Differences between Software testing and SQA services</h1>\r\n<ul><li><span style=\"font-weight: bold; \">SQA tools</span></li></ul>\r\n- Is about engineering process that ensures quality\r\n- Involve activities related to the implementation of processes, procedures, and standards.\r\n- Process focused \r\n- Preventive technique\r\n- Proactive measure\r\n- The scope of software quality testing tools applied to all products that will be created by the organization\r\n<ul><li><span style=\"font-weight: bold; \">Software Testing</span></li></ul>\r\n- Software Testing is to test a product for problems before the product goes live\r\n- Involves actives concerning verification of product Example - Review Testing\r\n- Product focused\r\n - Corrective technique\r\n- Reactive measure\r\n- The scope of Software Testing applies to a particular product being tested\r\n<h1 class=\"align-center\">Manual QA testing services Vs Automated Quality Assurance Testing</h1>\r\nSoftware testing is a huge domain, but it can be broadly categorized into two areas: manual testing and automated testing. Both of them can be used to achieve the best results, but it is always worth knowing the difference between the two. Each testing type – manual and automated – comes with its own set of advantages and disadvantages. \r\nYou can choose between manual and quality assurance testing services based on a variety of factors. These include:\r\n- Project requirements\r\n- Timeline\r\n- Budget\r\n- Expertise\r\n- Suitability<br /> \r\n<ul><li><span style=\"font-weight: bold; \">Manual Testing </span></li></ul>\r\n<span style=\"font-weight: bold; \">Exploratory Testing:</span> This scenario requires a tester’s expertise, creativity, knowledge, analytical and logical reasoning skills. With poorly written specifications and short execution time, human skills are a must to test in this scenario.\r\n<span style=\"font-weight: bold; \">Ad-Hoc Testing:</span> It is an unplanned method of testing where the biggest difference maker is a tester’s insight that can work without a specific approach.\r\n<span style=\"font-weight: bold; \">Usability Testing:</span> Here you need to check the level of user-friendliness and check the software for convenience. Human observation is a must to make the end user’s experience convenient.\r\n<ul><li><span style=\"font-weight: bold; \">Quality Assurance automation tools</span></li></ul>\r\n<span style=\"font-weight: bold; \">Repeated Execution:</span> When you need to execute a use case repeatedly, automated testing is a better option.\r\n<span style=\"font-weight: bold; \">Regression Testing:</span> Automated automated QA software is better here because the code changes frequently and the regressions can be run in a timely manner\r\n<span style=\"font-weight: bold; \">Performance:</span> You need an automated QA testing software when thousands of concurrent users are simulated at the same time. Additionally, it is a better solution for load testing.\r\n\r\n","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_Quality_assurance.png","alias":"qa-quality-assurance"},"651":{"id":651,"title":"Interface Testing","description":"When an application or a software or a website is developed, then there are several components of it. Those components can be server, database etc. The connection which integrates and facilitates the communication between these components is termed as an <span style=\"font-weight: bold;\">Interface</span>.\r\n<span style=\"font-weight: bold;\">Interface Testing</span> is performed to evaluate whether systems or components pass data and control correctly to one another. It is to verify if all the interactions between these modules are working properly and errors are handled properly.\r\n<span style=\"font-weight: bold; \">Interface Testing - Checklist</span>\r\n<ul><li>Verify that communication between the systems are done correctly</li><li>Verify if all supported hardware/software has been tested</li><li>Verify if all linked documents be supported/opened on all platforms</li><li>Verify the security requirements or encryption while communication happens between systems</li><li>Check if a Solution can handle network failures between Web site and application server</li></ul>\r\n<span style=\"font-weight: bold; \">Phases of Interface Testing. </span>\r\nThere are 2 components involved in Interface testing: 1) web server and application server interface and 2) web server and database server interface.\r\nBasically, 3 phases are involved in the Interface testing which is mentioned below:\r\n<b>Configuration and Development. </b>After the configuration of the interface and the development initialization, the configuration is needed to be verified as per the requirement. In simple words, verification takes place.\r\n<p style=\" text-align: justify; \"><b>Validation. </b>After the configuration and development stage, validation of the interface is necessary.</p>\r\n<p style=\" text-align: justify; \"><b>Maintenance.</b> After the completion of the project, when the project reaches it’s working stage, the interface is set to be monitored for its performance.</p>\r\n<p style=\" text-align: justify; \"></p>\r\n<p style=\"text-align: justify; \"><a name=\"StepsinvolvedinInterfaceTesting\"></a></p>","materialsDescription":"<h1 class=\"align-center\">Types of Interface Testing </h1>\r\nDuring Interface Testing various types of testing done on the interface which may include:\r\n<span style=\"font-weight: bold; \">Workflow:</span> It ensures that the interface engine handles your standard workflows as expected.\r\n<span style=\"font-weight: bold; \">Edge cases -unexpected values:</span> This is considered when testing include date, month and day reversed.\r\n<span style=\"font-weight: bold; \">Performance, load, and network testing:</span> A high-volume interface may require more Load Testing than a low-volume interface, depending on the interface engine and connectivity infrastructure.\r\n<span style=\"font-weight: bold; \">Individual system interface testing:</span> This includes testing each system individually. For example, billing system and inventory management system for the retail store should be able to operate separately.\r\n<h1 class=\"align-center\">What is Graphic User Interface (GUI) Testing?</h1>\r\nGraphic User Interface Testing (GUI) testing is the process of ensuring proper functionality of the graphical user interface (GUI) for a specific application. This involves making sure it behaves in accordance with its requirements and works as expected across the range of supported platforms and devices.\r\n<p class=\"align-center\"><span style=\"font-weight: bold; \">GUI Testing Approaches</span></p>\r\n<p class=\"align-left\"><span style=\"font-weight: bold; \">Manual Based Testing: </span>Under this approach, the screens of the application are checked manually by testers. They are being confirmed with the requirements that are stated in the business requirements. The UI is also matched with the designs that are provided during the documentation phase of the application.</p>\r\n<p class=\"align-left\"><span style=\"font-weight: bold; \">Automation Based Testing:</span> Automated user interface testing approach is performed in 2 steps i.e, record and play. While doing this, the steps are captured/recorded with the help of the automation tool while performing the first round of testing. And during playback, that recorded steps script is run when the application is under test. If the position of any button or image changes that during the playback, it does not get tracked and the test fails.</p>\r\n<h1 class=\"align-center\">What Features Should I Look for in a GUI Testing Tool?</h1>\r\nObviously the first answer is to choose a tool that can automate the specific technologies you’re testing, otherwise your automation is doomed to fail. Secondly you should choose a tool that has some of the following characteristics:\r\n<ul><li>Good interface testing software that makes it easy for your automation engineers to write tests, make changes, find issues and be able to deploy the tests on all the environments you need to test.</li><li>A tool that is well supported by the manufacturer and is keeping up to date with new web browsers, operating systems and technologies that you will need to test in the future. </li><li>An object abstraction layer so that your test analysts can write the tests in the way most natural for them and your automation engineers can create objects that point to physical items in the application that will be robust and not change every time you resort a grid or add data to the system.</li><li>Support for data-driven testing since as we have discussed, one of the big benefits of automation is the ability to run the same test thousands of times with different sets of data.</li></ul>\r\n\r\n","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_Interface_Testing.png","alias":"interface-testing"},"669":{"id":669,"title":"MySQL Development","description":" MySQL is an open-source relational database management system (RDBMS). Its name is a combination of "My", the name of co-founder Michael Widenius's daughter, and "SQL", the abbreviation for Structured Query Language.\r\nMySQL is free and open-source software under the terms of the GNU General Public License, and is also available under a variety of proprietary licenses. MySQL was owned and sponsored by the Swedish company MySQL AB, which was bought by Sun Microsystems (now Oracle Corporation). In 2010, when Oracle acquired Sun, Widenius forked the open-source MySQL project to create MariaDB.\r\nMySQL is a component of the LAMP web application software stack (and others), which is an acronym for Linux, Apache, MySQL, Perl/PHP/Python. MySQL is used by many database-driven web applications, including Drupal, Joomla, phpBB, and WordPress. MySQL is also used by many popular websites, including Facebook, Flickr, MediaWiki, Twitter, and YouTube.\r\nMySQL is written in C and C++. Its SQL parser is written in yacc, but it uses a home-brewed lexical analyzer. MySQL works on many system platforms, including AIX, BSDi, FreeBSD, HP-UX, eComStation, i5/OS, IRIX, Linux, macOS, Microsoft Windows, NetBSD, Novell NetWare, OpenBSD, OpenSolaris, OS/2 Warp, QNX, Oracle Solaris, Symbian, SunOS, SCO OpenServer, SCO UnixWare, Sanos and Tru64. A port of MySQL to OpenVMS also exists.\r\nThe MySQL server software itself and the client libraries use dual-licensing distribution. They are offered under GPL version 2, or a proprietary license.\r\nSupport can be obtained from the official manual. Free support additionally is available in different IRC channels and forums. Oracle offers paid support via its MySQL Enterprise products. They differ in the scope of services and in price. Additionally, a number of third party organisations exist to provide support and services, including MariaDB and Percona.\r\nMySQL has received positive reviews, and reviewers noticed it "performs extremely well in the average case" and that the "developer interfaces are there, and the documentation (not to mention feedback in the real world via Web sites and the like) is very, very good". It has also been tested to be a "fast, stable and true multi-user, multi-threaded sql database server".","materialsDescription":" <span style=\"font-weight: bold; \">What is MySQL?</span>\r\n<span style=\"font-style: italic; \">MySQL is a database management system.</span>\r\nA database is a structured collection of data. It may be anything from a simple shopping list or a picture gallery or the vast amounts of information in a corporate network. To add, access, and process data stored in a computer database, you need a database management system such as MySQL Server. Since computers are very good at handling large amounts of data, database management plays a central role in computing, as stand-alone utilities, or as parts of other applications.\r\n<span style=\"font-style: italic; \">MySQL is a relational database management system.</span>\r\nA relational database stores data in separate tables rather than putting all the data in one big storeroom. This adds speed and flexibility. The tables are linked by defined relations making it possible to combine data from several tables on request. The SQL part of "MySQL" stands for "Structured Query Language" the most common standardised language used to access databases.\r\nMySQL, the most popular Open Source SQL database, is developed and provided by MySQL AB. The MySQL web site ( http://www.mysql.com ) provides the latest information about MySQL software and MySQL AB.\r\n<span style=\"font-weight: bold;\">Why do I need MySQL?</span>\r\nIf you have any information such as products, dates, customers, pictures, or any data that is not static, a database is an efficient way to manage that information. Sites that contain message boards, guest books, dynamic galleries, contact lists, or online product information can greatly benefit by storing their information on our fast, reliable and secure database server.","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_MySQL_Development.png","alias":"mysql-development"},"681":{"id":681,"title":"Software Architecture Design","description":" Software architecture refers to the fundamental structures of a software system and the discipline of creating such structures and systems. Each structure comprises software elements, relations among them, and properties of both elements and relations. The architecture of a software system is a metaphor, analogous to the architecture of a building. It functions as a blueprint for the system and the developing project, laying out the tasks necessary to be executed by the design teams.\r\nSoftware architecture is about making fundamental structural choices that are costly to change once implemented. Software architecture choices include specific structural options from possibilities in the design of the software. For example, the systems that controlled the Space Shuttle launch vehicle had the requirement of being very fast and very reliable. Therefore, an appropriate real-time computing language would need to be chosen. Additionally, to satisfy the need for reliability the choice could be made to have multiple redundant and independently produced copies of the program, and to run these copies on independent hardware while cross-checking results.\r\nDocumenting software architecture facilitates communication between stakeholders, captures early decisions about the high-level design, and allows the reuse of design components between projects.","materialsDescription":" <span style=\"font-weight: bold; \">What is the scope of software architecture?</span>\r\nOpinions vary as to the scope of software architectures:\r\n<ul><li>Macroscopic system structure: this refers to architecture as a higher-level abstraction of a software system that consists of a collection of computational components together with connectors that describe the interaction between these components.</li><li>The important stuff—whatever that is: this refers to the fact that software architects should concern themselves with those decisions that have a high impact on the system and its stakeholders.</li><li>That is fundamental to understanding a system in its environment.</li><li>Things that people perceive as hard to change: since designing the architecture takes place at the beginning of a software system's lifecycle, the architect should focus on decisions that "have to" be right the first time. Following this line of thought, architectural design issues may become non-architectural once their irreversibility can be overcome.</li><li>A set of architectural design decisions: software architecture should not be considered merely a set of models or structures, but should include the decisions that lead to these particular structures, and the rationale behind them. This insight has led to substantial research into software architecture knowledge management.</li></ul>\r\n<span style=\"font-weight: bold; \">What are the characteristics of software architecture?</span>\r\nSoftware architecture exhibits the following:\r\n<span style=\"font-weight: bold; \">A multitude of stakeholders:</span> software systems have to cater to a variety of stakeholders such as business managers, owners, users, and operators. These stakeholders all have their own concerns with respect to the system. Balancing these concerns and demonstrating that they are addressed is part of designing the system. This implies that architecture involves dealing with a broad variety of concerns and stakeholders, and has a multidisciplinary nature.\r\n<span style=\"font-weight: bold; \">Separation of concerns:</span> the established way for architects to reduce complexity is to separate the concerns that drive the design. Architecture documentation shows that all stakeholder concerns are addressed by modeling and describing the architecture from separate points of view associated with the various stakeholder concerns. These separate descriptions are called architectural views.\r\n<span style=\"font-weight: bold; \">Quality-driven:</span> classic software design approaches (e.g. Jackson Structured Programming) were driven by required functionality and the flow of data through the system, but the current insight is that the architecture of a software system is more closely related to its quality attributes such as fault-tolerance, backward compatibility, extensibility, reliability, maintainability, availability, security, usability, and other such –ilities. Stakeholder concerns often translate into requirements on these quality attributes, which are variously called non-functional requirements, extra-functional requirements, behavioral requirements, or quality attribute requirements.\r\n<span style=\"font-weight: bold; \">Recurring styles:</span> like building architecture, the software architecture discipline has developed standard ways to address recurring concerns. These "standard ways" are called by various names at various levels of abstraction. Common terms for recurring solutions are architectural style, tactic, reference architecture and architectural pattern.\r\n<span style=\"font-weight: bold; \">Conceptual integrity:</span> a term introduced by Fred Brooks in The Mythical Man-Month to denote the idea that the architecture of a software system represents an overall vision of what it should do and how it should do it. This vision should be separated from its implementation. The architect assumes the role of "keeper of the vision", making sure that additions to the system are in line with the architecture, hence preserving conceptual integrity.\r\n<span style=\"font-weight: bold; \">Cognitive constraints:</span> an observation first made in a 1967 paper by computer programmer Melvin Conway that organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations. As with conceptual integrity, it was Fred Brooks who introduced it to a wider audience when he cited the paper and the idea in his elegant classic The Mythical Man-Month, calling it "Conway's Law."\r\n<span style=\"font-weight: bold;\">What is the motivation of software architecture?</span>\r\nSoftware architecture is an "intellectually graspable" abstraction of a complex system. This abstraction provides a number of benefits:\r\n<ul><li><span style=\"font-style: italic;\">It gives a basis for an analysis of software systems' behavior before the system has been built.</span> The ability to verify that a future software system fulfills its stakeholders' needs without actually having to build it represents substantial cost-saving and risk-mitigation. A number of techniques have been developed to perform such analyses, such as ATAM.</li><li><span style=\"font-style: italic;\">It provides a basis for the re-use of elements and decisions.</span> A complete software architecture or parts of it, like individual architectural strategies and decisions, can be re-used across multiple systems whose stakeholders require similar quality attributes or functionality, saving design costs and mitigating the risk of design mistakes.</li><li><span style=\"font-style: italic;\">It supports early design decisions that impact a system's development, deployment, and maintenance life.</span> Getting the early, high-impact decisions right is important to prevent schedule and budget overruns.</li><li><span style=\"font-style: italic;\">It facilitates communication with stakeholders, contributing to a system that better fulfills their needs.</span> Communicating about complex systems from the point of view of stakeholders helps them understand the consequences of their stated requirements and the design decisions based on them. Architecture gives the ability to communicate about design decisions before the system is implemented when they are still relatively easy to adapt.</li><li><span style=\"font-style: italic;\">It helps in risk management.</span> Software architecture helps to reduce risks and the chance of failure.</li><li><span style=\"font-style: italic;\">It enables cost reduction.</span> Software architecture is a means to manage risk and costs in complex IT projects.</li></ul>","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_Software_Architecture_Design.png","alias":"software-architecture-design"},"685":{"id":685,"title":"Database Administration","description":" Database administration refers to the whole set of activities performed by a database administrator to ensure that a database is always available as needed. Other closely related tasks and roles are database security, database monitoring and troubleshooting, and planning for future growth.\r\nDatabase administration is an important function in any organization that is dependent on one or more databases.\r\nThe database administrator (DBA) is usually a dedicated role in the IT department for large organizations. However, many smaller companies that cannot afford a full-time DBA usually outsource or contract the role to a specialized vendor, or merge the role with another in the ICT department so that both are performed by one person.\r\nThe primary role of database administration is to ensure maximum up time for the database so that it is always available when needed. This will typically involve proactive periodic monitoring and troubleshooting. This in turn entails some technical skills on the part of the DBA. In addition to in-depth knowledge of the database in question, the DBA will also need knowledge and perhaps training in the platform (database engine and operating system) on which the database runs.\r\nA DBA is typically also responsible for other secondary, but still critically important, tasks and roles. Some of these include:\r\n<ul><li>Database Security: Ensuring that only authorized users have access to the database and fortifying it against any external, unauthorized access.</li><li>Database Tuning: Tweaking any of several parameters to optimize performance, such as server memory allocation, file fragmentation and disk usage.</li><li>Backup and Recovery: It is a DBA's role to ensure that the database has adequate backup and recovery procedures in place to recover from any accidental or deliberate loss of data.</li><li>Producing Reports from Queries: DBAs are frequently called upon to generate reports by writing queries, which are then run against the database.</li></ul>\r\nIt is clear from all the above that the database administration function requires technical training and years of experience. Some companies that offer commercial database products, such as Oracle DB and Microsoft's SQL Server, also offer certifications for their specific products. These industry certifications, such as Oracle Certified Professional (OCP) and Microsoft Certified Database Administrator (MCDBA), go a long way toward assuring organizations that a DBA is indeed thoroughly trained on the product in question. Because most relational database products today use the SQL language, knowledge of SQL commands and syntax is also a valuable asset for today's DBAs.","materialsDescription":" <span style=\"font-weight: bold;\">Data Resource Management</span>\r\nAccording to the Data Management Association (DAMA), data resource management is "the development and execution of architectures, policies, practices and procedures that properly manage the full data lifecycle needs of an enterprise". Data Resource management may be thought of as a managerial activity that applies information system and other data management tools to the task of managing an organization’s data resource to meet a company’s business needs, and the information they provide to their shareholders. From the perspective of database design, it refers to the development and maintenance of data models to facilitate data sharing between different systems, particularly in a corporate context. Data Resource Management is also concerned with both data quality and compatibility between data models.\r\nSince the beginning of the information age, businesses need all types of data on their business activity. With each data created, when a business transaction is made, need data is created. With these data, new direction is needed that focuses on managing data as a critical resource of the organization to directly support its business activities. The data resource must be managed with the same intensity and formality that other critical resources are managed. Organizations must emphasize the information aspect of information technology, determine the data needed to support the business, and then use appropriate technology to build and maintain a high-quality data resource that provides that support.\r\nData resource quality is a measure of how well the organization's data resource supports the current and the future business information demand of the organization. The data resource cannot support just the current business information demand while sacrificing the future business information demand. It must support both the current and the future business information demand. The ultimate data resource quality is stability across changing business needs and changing technology.\r\nA corporate data resource must be developed within single, organization-wide common data architecture. A data architecture is the science and method of designing and constructing a data resource that is business driven, based on real-world objects and events as perceived by the organization, and implemented into appropriate operating environments. It is the overall structure of a data resource that provides a consistent foundation across organizational boundaries to provide easily identifiable, readily available, high-quality data to support the business information demand.\r\nThe common data architecture is a formal, comprehensive data architecture that provides a common context within which all data at an organization's disposal are understood and integrated. It is subject oriented, meaning that it is built from data subjects that represent business objects and business events in the real world that are of interest to the organization and about which data are captured and maintained.","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_Database_Administration.png","alias":"database-administration"},"687":{"id":687,"title":"Network Administration","description":" Computer networks are critical parts of almost every organization. Network and computer systems administrators are responsible for the day-to-day operation of these networks. They organize, install, and support an organization’s computer systems, including local area networks (LANs), wide area networks (WANs), network segments, intranets, and other data communication systems. Administrators manage an organization’s servers and desktop and mobile equipment. They ensure that email and data storage networks work properly. They also make sure that employees’ workstations are working efficiently and stay connected to the central computer network. In some cases, administrators help network architects design and analyze network models. They also participate in decisions about buying future hardware or software to upgrade their organization’s network. Some administrators provide technical support to computer users, and they also may supervise computer support specialists who help solve users’ problems.\r\nAs with many technical roles, network administrator positions require a breadth of technical knowledge and the ability to learn the intricacies of new networking and server software packages quickly. Within smaller organizations, the more senior role of a network engineer is sometimes attached to the responsibilities of the network administrator. It is common for smaller organizations to outsource this function.\r\nA computer network is a telecommunications network that allows computers to exchange data. In computer networks, networked computing devices exchange data with each other along with network links (data connections). The connections between nodes are established using either cable media or wireless media. The best-known computer network is the Internet.\r\nNetwork computer devices that originate, route and terminate the data are called network nodes. Nodes can include hosts such as personal computers, mobile phones, servers as well as networking hardware. Two such devices can be said to be networked together when one device is able to exchange information with the other device, whether or not they have a direct connection to each other.\r\nComputer networks differ in the transmission media used to carry their signals, the communications protocols to organize network traffic, the network's size, topology, and organizational intent. In most cases, communications protocols are layered on (i.e. work using) other more specific or more general communications protocols, except for the physical layer that directly deals with the transmission media.\r\nComputer networks support an enormous number of applications such as access to the World Wide Web, video, digital audio, shared use of application and storage servers, printers, and fax machines, and use of email and instant messaging applications as well as many others.","materialsDescription":" <span style=\"font-weight: bold; \">What is a network administrator?</span>\r\nA network administrator is responsible for keeping an organization’s computer network up-to-date and operating as intended. Any company or organization that uses multiple computers or software platforms need a network admin to coordinate and connect the different systems. It seems simple enough—but there’s another common IT job title that may trip you up: systems administrator.\r\n<span style=\"font-weight: bold; \">Is a network administrator the same thing as a systems administrator?</span>\r\nIn short — not really. But the lines can blur depending on the work environment. Careers in IT can sometimes take a page from the rules of Whose Line Is It, Anyway? — “Where the titles don’t matter and the duties are made up!” While that’s clearly a bit of an exaggeration, in many smaller organizations, the terms “network administrator” and “systems administrator” are often interchangeable as they cover the same tasks. That being said, the differences between network and systems administrators become much clearer in large organizations. The best way to differentiate between the two is to examine the type of work they do.\r\n<span style=\"font-weight: bold; \">What are the job duties of network and systems administrators?</span>\r\nThe duties of a network administrator will vary considerably depending on the organization they work for. Some work as broad, jack-of-all-trades generalists who cover everything from hardware setup to troubleshooting servers while others have a much narrower focus.\r\nHere are some sample network and systems administrator job duties. In environments where the duties of network administrators and systems administrators are split and more clearly defined, the italicized duties align more with systems administrators:\r\n<ul><li>Configuring network hardware like servers, routers, and switches</li><li>Upgrading and repairing computer networks</li><li>Troubleshooting network issues</li><li>Assisting network architects with the design of network models</li><li>Deploying and updating software</li><li>Managing servers and their operating systems</li><li>Implementing security measures and basic testing</li><li>Managing cloud and physical network storage</li></ul>\r\n<span style=\"font-weight: bold;\">What skills or traits do the best network administrators possess?</span>\r\nObviously, network administration positions will require substantial technical competence, but there’s more to the job than just knowing your stuff. Here are a few of the most common nontechnical abilities that will benefit you as a network administrator:\r\n<span style=\"font-style: italic;\"><span style=\"font-weight: bold;\">Analyzing and critical thinking</span></span>\r\nNetwork admins need to explore and solve problems logically and consistently. “[The] ability to take the concepts you’ve learned in school and understand how they work and affect other concepts is the bread and butter of being a network administrator,” says Brad Meyer, systems administrator at TechnologyAdvice. Even if you don’t yet know the solution, he believes thinking critically will help you get there.\r\n<span style=\"font-style: italic;\"><span style=\"font-weight: bold;\">Time management</span></span>\r\nNetwork admins juggle several projects, people and problems simultaneously. This means it’s essential to be organized in the present and looking ahead to prepare for what’s coming next. It’s like spinning plates—with a little practice, a network admin can keep everything balanced.\r\n<span style=\"font-style: italic;\"><span style=\"font-weight: bold;\">Interpersonal skills</span></span>\r\nNetwork admins work with a range of people, from network engineers to help desk employees to end-users, explains IT consultant Eric Jeffery. He says bridging the gap between diverse groups of people requires patience and understanding.\r\n<span style=\"font-style: italic;\"><span style=\"font-weight: bold;\">A drive to learn more</span></span>\r\nThe IT field is no stranger to change—and new technologies can put even well-established network admins behind the eight balls. This means the best network admins have a passion for learning as they adapt to changing tech demands. This desire to learn more is also important for the more mundane day-to-day work—inevitably you’ll encounter issues you’ve never seen before and the only solution is to start researching potential answers.","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_Network_Administration.png","alias":"network-administration"},"703":{"id":703,"title":"Website Administration","description":"Web administration is the practice of keeping a website running efficiently and securely. Responsibility for the website is managed by the website administrator or webmaster, whose job is to perform the many daily tasks required to maintain a website. Website administrators plan and perform website enhancements and manage website content. They build web pages, fix bugs, and perform system upgrades. Website administration also involves managing user accounts, web software, web servers, web security, log analysis, content, and more.\r\nSecurity is probably the most important part of web administration. If your web server is not secure, it can become a source for hackers to use to attack your customers directly, or bring down your site, or take even more malicious actions against your business.","materialsDescription":" <span style=\"font-weight: bold;\">What Does a Website Administrator Do?</span>\r\nWebsite administrators, also known as webmasters, web developers or network and computer system administrators, are responsible for all aspects of keeping website content and design fresh, backed up, and fully functional. They typically work closely with clients to make sure they understand how they want their websites to look and function. Depending on their specific role, they may also be responsible for making sure local networks are functioning properly as well. The following chart provides an overview of the education, job outlook and average salaries in this field.\r\n<span style=\"font-weight: bold;\">What is a Website Administrator?</span>\r\nAlthough sometimes called upon to create websites, the main responsibility of administrators is to maintain, back up and update existing websites for organizations. A website administrator would be responsible for making sure the site's user interface is easy to understand and efficient. He would ensure that all websites are operating securely and at optimum speeds. Approval of the content and links within the website might be part of his job description, and he will be responsible for evaluating each website's analytics, such as user feedback and traffic.","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_Website_Administration.png","alias":"website-administration"},"707":{"id":707,"title":"Software Development Project Managements","description":" Software project management is an art and science of planning and leading software projects. It is a sub-discipline of project management in which software projects are planned, implemented, monitored and controlled.\r\nA software development process is concerned primarily with the production aspect of software development, as opposed to the technical aspect, such as software tools. These processes exist primarily for supporting the management of software development, and are generally skewed toward addressing business concerns. Many software development processes can be run in a similar way to general project management processes. Examples are:<br /><span style=\"font-style: italic;\">Interpersonal communication and conflict management and resolution.</span> Active, frequent and honest communication is the most important factor in increasing the likelihood of project success and mitigating problematic projects. The development team should seek end-user involvement and encourage user input in the development process. Not having users involved can lead to misinterpretation of requirements, insensitivity to changing customer needs, and unrealistic expectations on the part of the client. Software developers, users, project managers, customers and project sponsors need to communicate regularly and frequently. The information gained from these discussions allows the project team to analyze the strengths, weaknesses, opportunities and threats (SWOT) and to act on that information to benefit from opportunities and to minimize threats. Even bad news may be good if it is communicated relatively early, because problems can be mitigated if they are not discovered too late. For example, casual conversation with users, team members, and other stakeholders may often surface potential problems sooner than formal meetings. All communications need to be intellectually honest and authentic, and regular, frequent, high quality criticism of development work is necessary, as long as it is provided in a calm, respectful, constructive, non-accusatory, non-angry fashion. Frequent casual communications between developers and end-users, and between project managers and clients, are necessary to keep the project relevant, useful and effective for the end-users, and within the bounds of what can be completed. Effective interpersonal communication and conflict management and resolution are the key to software project management. No methodology or process improvement strategy can overcome serious problems in communication or mismanagement of interpersonal conflict. Moreover, outcomes associated with such methodologies and process improvement strategies are enhanced with better communication. The communication must focus on whether the team understands the project charter and whether the team is making progress towards that goal. End-users, software developers and project managers must frequently ask the elementary, simple questions that help identify problems before they fester into near-disasters. While end-user participation, effective communication and teamwork are not sufficient, they are necessary to ensure a good outcome, and their absence will almost surely lead to a bad outcome.<br /><span style=\"font-style: italic;\">Risk management</span> is the process of measuring or assessing risk and then developing strategies to manage the risk. In general, the strategies employed include transferring the risk to another party, avoiding the risk, reducing the negative effect of the risk, and accepting some or all of the consequences of a particular risk. Risk management in software project management begins with the business case for starting the project, which includes a cost-benefit analysis as well as a list of fallback options for project failure, called a contingency plan.<br /><span style=\"font-style: italic;\">Requirements management</span> is the process of identifying, eliciting, documenting, analyzing, tracing, prioritizing and agreeing on requirements and then controlling change and communicating to relevant stakeholders. New or altered computer system Requirements management, which includes Requirements analysis, is an important part of the software engineering process; whereby business analysts or software developers identify the needs or requirements of a client; having identified these requirements they are then in a position to design a solution.<br /><span style=\"font-style: italic;\">Change management</span> is the process of identifying, documenting, analyzing, prioritizing and agreeing on changes to scope (project management) and then controlling changes and communicating to relevant stakeholders. Change impact analysis of new or altered scope, which includes Requirements analysis at the change level, is an important part of the software engineering process; whereby business analysts or software developers identify the altered needs or requirements of a client; having identified these requirements they are then in a position to re-design or modify a solution. Theoretically, each change can impact the timeline and budget of a software project, and therefore by definition must include risk-benefit analysis before approval.<br /><span style=\"font-style: italic;\">Software configuration management</span> is the process of identifying, and documenting the scope itself, which is the software product underway, including all sub-products and changes and enabling communication of these to relevant stakeholders. In general, the processes employed include version control, naming convention (programming), and software archival agreements.<br /><span style=\"font-style: italic;\">Release management</span> is the process of identifying, documenting, prioritizing and agreeing on releases of software and then controlling the release schedule and communicating to relevant stakeholders. Most software projects have access to three software environments to which software can be released; Development, Test, and Production. In very large projects, where distributed teams need to integrate their work before releasing to users, there will often be more environments for testing, called unit testing, system testing, or integration testing, before release to User acceptance testing (UAT).\r\nAs a subdiscipline of project management, some regard the management of software development akin to the management of manufacturing, which can be performed by someone with management skills, but no programming skills. John C. Reynolds rebuts this view, and argues that software development is entirely design work, and compares a manager who cannot program to the managing editor of a newspaper who cannot write.","materialsDescription":" <span style=\"font-weight: bold;\">What is a software project?</span>\r\nA software development project is a complex undertaking by two or more persons within the boundaries of time, budget, and staff resources that produce new or enhanced computer code that adds significant business value to a new or existing business process.\r\n<span style=\"font-weight: bold;\">What does a software development project manager do?</span>\r\nA software project manager is the most important person inside a team who takes the overall responsibilities to manage the software projects and plays an important role in the successful completion of the projects. A project manager has to face many difficult situations to accomplish these works.","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_Software_Development_Project_Managements.png","alias":"software-development-project-managements"},"718":{"id":718,"title":"IT Consulting","description":" In management, information technology consulting (also called IT consulting, computer consultancy, business and technology services, computing consultancy, technology consulting, and IT advisory) as a field of activity focuses on advising organizations on how best to use information technology (IT) in achieving their business objectives.\r\nThe IT consulting industry can be viewed as a Four-tier system:\r\n<ul><li>Professional services firms which maintain large professional workforces and command high bill rates.</li><li>Staffing firms, which place technologists with businesses on a temporary basis, typically in response to employee absences, temporary skill shortages and technical projects.</li><li>Independent consultants, who are self-employed or who function as employees of staffing firms (for US tax purposes, employed on Form W-2), or as independent contractors in their own right (for US tax purposes, on "1099").</li><li>Information Technology security consultants</li></ul>\r\nThere are different reasons why consultants are called in:\r\n<ul><li>To gain external, objective advice and recommendations</li><li>To gain access to the consultants' specialized expertise</li><li>Temporary help during a one-time project where the hiring of a permanent employee(s) is not required or necessary</li><li>To outsource all or part of the IT services from a specific company.</li></ul>\r\nThere is a relatively unclear line between management consulting and IT consulting. There are sometimes overlaps between the two fields, but IT consultants often have degrees in computer science, electronics, technology, or management information systems while management consultants often have degrees in accounting, economics, Industrial Engineering, finance, or a generalized MBA (Masters in Business Administration).\r\nAccording to the Institute for Partner Education & Development, IT consultants' revenues come predominantly from design and planning based consulting with a mixture of IT and business consulting. This is different from a systems integrator in that you do not normally take title to product. Their value comes from their ability to integrate and support technologies as well as determining product and brands. ","materialsDescription":"<span style=\"font-weight: bold; \">Who is an information technology (IT) consultant?</span>\r\nAn information technology consultant is a third-party service provider who is qualified to advise clients on the best use of IT to meet specific business requirements. IT consultants may work with a professional IT consultancy firm or as independent contractors. They may conduct a business needs assessment and develop an information systems solution that meets the organization's objectives.\r\nSome information technology consultants emphasize technical issues while others help organizations use IT to manage business processes. Still others specialize in a specific IT area such as information security.\r\nIT consultants need a deep knowledge of both business and information technology. A bachelor's degree in management information systems, computer science, or information science is the typical path into a technical consultancy career. IT certifications supplement this foundation with specialized technical training. Information technology degree and certification programs are available online to accommodate working IT professionals.\r\n<span style=\"font-weight: bold; \">What are the prerequisites and major obstacles?</span>\r\nOnce a business owner defined the needs to take a business to the next level, a decision maker will define a scope, cost and a time-frame of the project. The role of the IT consultancy company is to support and nurture the company from the very beginning of the project until the end, and deliver the project not only in the scope, time and cost but also with complete customer satisfaction.\r\n<span style=\"font-style: italic; \"><span style=\"font-weight: bold; \">Project scoping and planning</span></span>\r\nThe usual problem is that a business owner doesn't know the detail of what the project is going to deliver until it starts the process. In many cases, the incremental effort in some projects can lead to significant financial loss.\r\n<span style=\"font-style: italic; \"><span style=\"font-weight: bold; \">Business process and system design</span></span>\r\nThe scope of a project is linked intimately to the proposed business processes and systems that the project is going to deliver. Regardless of whether the project is to launch a new product range or discontinue unprofitable parts of the business, the change will have some impact on business processes and systems. The documentation of your business processes and system requirements are as fundamental to project scoping as an architects plans would be to the costing and scoping of the construction of a building.\r\n<span style=\"font-style: italic; \"><span style=\"font-weight: bold; \">Project management support</span></span>\r\nThe most successful business projects are always those that are driven by an employee who has the authority, vision and influence to drive the required changes in a business. It is highly unlikely that a business owner (decision maker or similar) will realize the changes unless one has one of these people in the employment. However, the project leadership role typically requires significant experience and skills which are not usually found within a company focused on day-to-day operations. Due to this requirement within more significant business change projects/programs, outside expertise is often sought from firms which can bring this specific skill set to the company.\r\n<span style=\"font-weight: bold;\">What are the skills of IT-consulting?</span>\r\nAn IT consultant needs to possess the following skills:\r\n<ul><li>Advisory skills</li><li>Technical skills</li><li>Business skills</li><li>Communication skills</li><li>Management skills</li><li>Advisory language skills</li><li>Business and management language skills</li><li>Technical language skills</li></ul>","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_IT_Consulting.png","alias":"it-consulting"},"727":{"id":727,"title":"IT Security Audit","description":" A <span style=\"font-weight: bold; \">computer security audit</span> is a manual or systematic measurable technical assessment of a system or application. Manual assessments include interviewing staff, performing security vulnerability scans, reviewing application and operating system access controls, and analyzing physical access to the systems. Automated assessments, or CAAT's, include system generated audit reports or using software to monitor and report changes to files and settings on a system. Systems can include personal computers, servers, mainframes, network routers, switches.\r\nAt its root, an <span style=\"font-weight: bold; \">IT security audit</span> includes two different assessments. The manual assessment occurs when an internal or external IT security audit companies interview employees, reviews access controls, analyzes physical access to hardware, and performs vulnerability scans. \r\nAudit, performed by IT security audit services or IT security audit software, analyzes individual technical infrastructure components at a detailed level, ensuring that each is functioning in a manner that reinforces appropriate information security. The stakes are made higher with a number of regulatory compliance requirements mandating that IT audits be included in organizational due diligence efforts. These reviews should occur, at a minimum, annually. Some organizations, however, prefer to do them more frequently.\r\nOrganizations should also review system-generated reports. Automated assessments not only incorporate that data, but also respond to software monitoring reports and changes to server and file settings.\r\nSecurity audits, vulnerability assessments, and penetration testing are the <span style=\"font-weight: bold; \">three main types of security diagnostics. </span>Each of the three takes a different approach and may be best suited for a particular purpose. \r\n<span style=\"font-weight: bold; \">Security audits</span> measure an information system's performance against a list of criteria. \r\nA <span style=\"font-weight: bold; \">vulnerability assessment,</span> on the other hand, involves a comprehensive study of an entire information system, seeking potential security weaknesses. \r\n<span style=\"font-weight: bold; \">Penetration testing</span> is a covert operation, in which a security expert tries a number of attacks to ascertain whether or not a system could withstand the same types of attacks from a malicious hacker. In penetration testing, the feigned attack can include anything a real attacker might try, such as social engineering. Each of the approaches has inherent strengths, and using two or more of them in conjunction may be the most effective approach of all.\r\n\r\n\r\n","materialsDescription":"<h1 class=\"align-center\"> <span style=\"font-weight: bold;\">What is a security audit?</span></h1>\r\nA Security Audit is a process or event where the IT security policy or standards are used as a basis to determine the overall state of existing protection and to verify whether existing protection is being performed properly. It aims to determine whether the current environment is securely protected in accordance with the defined IT security policy.<br />Before performing a security assessment or audit, the organization should define the scope of the security audit, and the budget and duration allowed for the assessment/audit.\r\n<h1 class=\"align-center\"><span style=\"font-weight: bold;\">How often should a security audit be performed?</span></h1>\r\nA security audit only provides a snapshot of the vulnerabilities in a system at a particular point in time. As technology and the business environment changes, periodic and ongoing reviews will inevitably be required. Depending on the criticality of the business, a security audit might be conducted yearly, or every two years.\r\n<h1 class=\"align-center\"><span style=\"font-weight: bold;\">Who should perform a security audit?</span></h1>\r\nA security audit is a complex task requiring skilled and experienced personnel; it must be planned carefully. To perform the audit an independent and trusted third party is recommended. This third party can be another group of in-house staff or an external audit team, dependent on the skills of the internal staff and the criticality/sensitivity of the information being audited.","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_IT_Security_Audit.png","alias":"it-security-audit"},"731":{"id":731,"title":"IT Project Management","description":" IT project management is the process of planning, organizing and delineating responsibility for the completion of an organizations' specific information technology (IT) goals.\r\nIT project management includes overseeing projects for software development, hardware installations, network upgrades, cloud computing and virtualization rollouts, business analytics and data management projects and implementing IT services.\r\nIn addition to the normal problems that can cause a project to fail, factors that can negatively affect the success of an IT project include advances in technology during the project's execution, infrastructure changes that impact security and data management and unknown dependent relationships among hardware, software, network infrastructure and data. IT projects may also succumb to the first-time, first-use penalty which represents the total risk an organization assumes when implementing new technology for the first time. Because the technology hasn’t been implemented or used before in the organization, there are likely to be complications that will affect the project’s likelihood of success.","materialsDescription":" <span style=\"font-weight: bold;\">What is a Project?</span>\r\nA Project is an initiative launched to create a unique product or service. A Project has a defined start date and a defined end date. The start date represents when the project will be launched. The end date specifies when the project will be completed.\r\nA Project is not a reoccurring activity; but rather is a single effort to produce something new.\r\n<span style=\"font-weight: bold;\">What is Project Management?</span>\r\nProject Management is the collection and application of skills, knowledge, processes, and activities to meet a specific objective that may take the form of a product or service. Project Management is an integrated process of applying 5 major processes and their related activities throughout a project lifecycle: initiating, planning, executing, monitoring and Controlling, Closeout.\r\n<span style=\"font-weight: bold;\">What is a Project Management Methodology?</span>\r\nA Project Management Methodology is the overall approach (system) that will be followed to meet the project objectives.\r\n<span style=\"font-weight: bold;\">What are the characteristics of a project?</span>\r\nA Project has three characteristics:\r\n<ul><li>Temporal nature (Is not ongoing and has a definite start and end date.)</li><li>Unique Deliverable (Produces a new unique product or service that does not exist.)</li><li>Progressive (Actions follow a sequence or pattern and progress over time.)</li></ul>\r\n<span style=\"font-weight: bold;\">Who is responsible for the project?</span>\r\nThe Project Manager is directly responsible for the results of the project. He/She should use the necessary skills, knowledge, and tools to meet the project objectives. During the early phases of the project, the Project Manager, working with the project team, should be able to:\r\n<ul><li>Determine project goals and objectives</li><li>Determine assumptions and constraints</li><li>Define and validate product description</li><li>Determine project requirements</li><li>Define Project deliverables</li><li>Estimate and monitor project resource allocation</li></ul>","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_IT_Project_Management.png","alias":"it-project-management"},"769":{"id":769,"title":"Payments processing","description":" Processing - data processing when making payments. Processing is divided into card processing and electronic payment processing. Is the card working? Is there enough money on it to make a payment? Can the card accept the transfer? Processing answers to all these questions. The same data transfer process that allows you to make a payment.\r\nProcessing centers are engaged in processing. It is thanks to the processing that payments are generally made. Plastic card processing allows you to make card payments: when you, for example, pay with a card in the supermarket through a terminal, it is card processing that is responsible for transferring money from your account to the store account. The main processing centers are owned by Visa and Mastercard. These centers operate 24/7, responsible for making payments worldwide.\r\nAcquiring is the process of accepting bank payments. Acquiring is divided into two broad areas: simply acquiring and Internet acquiring. Acquiring and processing are related. Before the payment is processed, someone must accept the data on the payment participants and transfer them to the processing center. This is acquiring.\r\nInternet acquiring is the reception of your payment card data when paying online. Here is the very moment when paying for purchases on the site you are asked to enter data. For online acquiring, your full card number, card expiration date, CVV code (a three-digit security code located on the back of the card) is required. As a rule, this data is enough to make an online payment.","materialsDescription":" <span style=\"font-weight: bold;\">What is acquiring?</span>\r\nAcquiring is the activity of a financial organization (bank or payment provider) in the processing of bank credit or debit cards, which is a sequence of procedures for checking the data entered by the cardholder, debiting funds from his account and crediting funds to the merchant account of the payee organization. Also called merchant acquiring.\r\n<span style=\"font-weight: bold;\">What is internet acquiring?</span>\r\nInternet acquiring is the implementation by the Payment Processing Clearing House of a sequence of cash transactions similar to merchant acquiring, but without identifying the signature of the cardholder and, as a result, with the possibility of canceling the payment "on demand" of the owner.\r\n<span style=\"font-weight: bold;\">Acquiring: tariffs and factors influencing them</span>\r\nThere are two types of acquiring: trading acquiring using POS-terminals, when the card is physically present, and its owner puts a signature on the check (payment marker “Card present”), and Internet acquiring when the card is missing and it is impossible to establish a face making payment (marker "Card not present"). The presence of a card marker in electronic banking transactions is an essential element that determines what kind of acquiring, tariffs, processing rules and opportunities for appeal and cancellation are made.\r\nTo protect cardholders from fraud, the “Card not present” payment processing procedure introduced the possibility of a simplified payment cancellation (Chargeback). In many cases, for this, it is enough for the Cardholder to call his bank and say that the goods were not delivered or the service was not provided properly.\r\nTo minimize the cases of “chargebacks”, VISA, MasterCard and other card regulators imposed strict sanctions on Merchants, which provide poor-quality services, in the form of fines for each case of payment cancellation. And the traders themselves were divided into classes of activity depending on the level of risk of the “chargeback”. Tariff grids have been created that define the basic commission depending on the “Merchant class”. The maximum allowable chargeback levels were also determined - for example, for VISA credit cards this is ~ 2%, and for MasterCard ~ 1%. Moreover, the regulators set a limit on these percentages not for the trading enterprises themselves, but for banks.\r\nIn addition, VISA and MasterCard divided the planet into special zones - acquiring cards of European residents in American processing will cost the recipient more than paying through a European processing or bank. This commission is called the "Interchange rate". It is believed that it was created to “skim the cream” from online businesses that minimize costs through various offshore schemes.\r\n<span style=\"font-weight: bold;\">Internet acquiring and the issue of canceling payments</span>\r\nA strict restriction on the percentage of “chargebacks” led to the appearance of two types of payment processings specializing in reducing their number:\r\nThe first type is organizations that reduce the number of chargebacks by legal means. Such companies create call-centers for technical support, conduct site audits, logistics and business reorganization consulting. This type of processor is interesting when exceeding the maximum level of “chargebacks” is within 1%.\r\nThe second type is firms specializing in working with shadow businesses with high turnover and a return level of more than 4%. Working in tandem with banks, they arrange “carousels” of fake legal entities and, using delays in processing complaints, manage to withdraw money from accounts before the regulator prohibits transactions and blocks the held insurance interest “hold”. This is “black” acquiring, tariffs in such organizations, of course, are much higher.","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_Payments_processing.png","alias":"payments-processing"},"778":{"id":778,"title":"Logistics service","description":" Logistics services refer to the coordination of items as they’re distributed from warehouses to consumers, usually by truck or air.\r\nIn general, logistics simply means coordinating the movement of people and items so that everything flows smoothly, though by definition it can refer to a wide variety of things in a business context. However, the most common use of the word logistics in the business world today has to do with the movement of merchandise from one place to another. \r\nA business that sells products has to find a way to get those items to customers. Even if the items are sold online, they’ll still move from Point A to Point B, usually through a shipping service. If you’re a one-person operation, you may take each item to the post office, but over time you’ll want to upgrade to a shipping provider. Grow even further, and things will get a little complicated since you’ll deal with shipments using multiple carriers on a regular basis. That’s where logistics services providers come in. They specialize in managing the shipment process for business, coordinating things so that products end up where they need to be in as efficiently a manner possible.\r\nThere are several factors in the process of getting a product from the manufacturer to the customer. First, it may go to a warehouse, where it waits for an order to send it. Whether it spends time in the warehouse or not, though, the next step is a truck or plane, which takes it to a retailer or postal carrier so that it can get in the hands of customers. However, transportation can be tricky, especially if the weather disrupts the process. Logistics providers oversee all of this, coordinating transportation services to keep products rolling forward. If a client doesn’t have enough product to fill an entire truck, for instance, a logistics company may arrange to combine that customer’s shipments with another customer’s, strategically routing the truck picking both orders up to avoid delays.\r\nIn most states logistics companies work both locally and across state lines, with some even handling overseas shipments. Thankfully, providers now have the technology to help manage the process. Logistics software helps professionals in the field determine the best route, even handling the complications that come with combining multiple shipments into one truckload. Today’s solutions even make it easy to track overall productivity, thanks in large part to the sophisticated analytics now built in. As a result, analytics are becoming increasingly important as businesses search for a company that can give them an ongoing overview of their supply chain.<br /><br /><br />","materialsDescription":"<h1 class=\"align-center\"> <span style=\"font-weight: normal; \">What is work order management software?</span></h1>\r\nWork order management software is a solution that allows facilities managers to effectively track and manage all work order information through a single dashboard. This includes creating work orders, updating requests, and tracking work completion across multiple-facility enterprises.\r\nWork order software for repair and preventive maintenance makes it easy for location managers and centralized facilities management to place service requests, monitor real-time status updates, and leave feedback on work performed. A well-designed work order management system is intuitive and comprehensive, and makes it simple to create work orders, update requests, and track completion all through a single dashboard.\r\n<h1 class=\"align-center\"><span style=\"font-weight: normal; \">Benefits of using work order maintenance management software</span></h1>\r\nThe benefits of implementing work order maintenance software in your organization are numerous. The following are some of the advantages:\r\nThe benefits of implementing work order maintenance software in your organization are numerous. The following are some of the advantages:\r\n<ul><li> Increase availability and performance of equipment</li><li> Boost employee productivity</li><li> Reduce overtime</li><li> Improve customer service</li><li> Minimize paperwork</li><li> Reduce the maintenance backlog</li><li> Improve safety</li></ul>\r\nMaintenance is an essential activity that organizations should view as a profit center rather than a cost center. While companies can buy new equipment to replace failing equipment, it’s far more effective to maintain existing equipment and keep it in tip-top condition with work order maintenance software. Maintenance isn’t an added expense. Work order maintenance management software is an investment in a company’s future.<br /><br />\r\n\r\n\r\n","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_Logistics_service.png","alias":"logistics-service"},"786":{"id":786,"title":"IaaS - computing","description":"Cloud computing is the on demand availability of computer system resources, especially data storage and computing power, without direct active management by the user. The term is generally used to describe data centers available to many users over the Internet. Large clouds, predominant today, often have functions distributed over multiple locations from central servers. If the connection to the user is relatively close, it may be designated an edge server.\r\nInfrastructure as a service (IaaS) are online services that provide high-level APIs used to dereference various low-level details of underlying network infrastructure like physical computing resources, location, data partitioning, scaling, security, backup etc. A hypervisor, such as Xen, Oracle VirtualBox, Oracle VM, KVM, VMware ESX/ESXi, or Hyper-V, LXD, runs the virtual machines as guests. Pools of hypervisors within the cloud operational system can support large numbers of virtual machines and the ability to scale services up and down according to customers' varying requirements.\r\nTypically IaaS involve the use of a cloud orchestration technology like Open Stack, Apache Cloudstack or Open Nebula. This manages the creation of a virtual machine and decides on which hypervisor (i.e. physical host) to start it, enables VM migration features between hosts, allocates storage volumes and attaches them to VMs, usage information for billing and lots more.\r\nAn alternative to hypervisors are Linux containers, which run in isolated partitions of a single Linux kernel running directly on the physical hardware. Linux cgroups and namespaces are the underlying Linux kernel technologies used to isolate, secure and manage the containers. Containerisation offers higher performance than virtualization, because there is no hypervisor overhead. Also, container capacity auto-scales dynamically with computing load, which eliminates the problem of over-provisioning and enables usage-based billing.\r\nIaaS clouds often offer additional resources such as a virtual-machine disk-image library, raw block storage, file or object storage, firewalls, load balancers, IP addresses, virtual local area networks (VLANs), and software bundles.\r\nThe NIST's definition of cloud computing defines Infrastructure as a Service as:\r\n<ul><li>The capability provided to the consumer is to provision processing, storage, networks, and other fundamental computing resources where the consumer is able to deploy and run arbitrary software, which can include operating systems and applications.</li><li>The consumer does not manage or control the underlying cloud infrastructure but has control over operating systems, storage, and deployed applications; and possibly limited control of select networking components (e.g., host firewalls).</li></ul>\r\nAccording to the Internet Engineering Task Force (IETF), the most basic cloud-service model is that of providers offering IT infrastructure — virtual machines and other resources — as a service to subscribers.\r\nIaaS-cloud providers supply these resources on-demand from their large pools of equipment installed in data centers. For wide-area connectivity, customers can use either the Internet or carrier clouds (dedicated virtual private networks). To deploy their applications, cloud users install operating-system images and their application software on the cloud infrastructure. In this model, the cloud user patches and maintains the operating systems and the application software. Cloud providers typically bill IaaS services on a utility computing basis: cost reflects the amount of resources allocated and consumed.","materialsDescription":" <span style=\"font-weight: bold; \">Cloud Computing Basics</span>\r\nWhether you are running applications that share photos to millions of mobile users or you’re supporting the critical operations of your business, a cloud services platform provides rapid access to flexible and low cost IT resources. With cloud computing, you don’t need to make large upfront investments in hardware and spend a lot of time on the heavy lifting of managing that hardware. Instead, you can provision exactly the right type and size of computing resources you need to power your newest bright idea or operate your IT department. You can access as many resources as you need, almost instantly, and only pay for what you use.\r\n<span style=\"font-weight: bold; \">How Does Cloud Computing Work?</span>\r\nCloud computing provides a simple way to access servers, storage, databases and a broad set of application services over the Internet. A Cloud services platform such as Amazon Web Services owns and maintains the network-connected hardware required for these application services, while you provision and use what you need via a web application.\r\n<span style=\"font-weight: bold; \">Six Advantages and Benefits of Cloud Computing</span>\r\n<span style=\"font-weight: bold; \">Trade capital expense for variable expense</span>\r\nInstead of having to invest heavily in data centers and servers before you know how you’re going to use them, you can only pay when you consume computing resources, and only pay for how much you consume.\r\n<span style=\"font-weight: bold; \">Benefit from massive economies of scale</span>\r\nBy using cloud computing, you can achieve a lower variable cost than you can get on your own. Because usage from hundreds of thousands of customers are aggregated in the cloud, providers can achieve higher economies of scale which translates into lower pay as you go prices.\r\n<span style=\"font-weight: bold; \">Stop guessing capacity</span>\r\nEliminate guessing on your infrastructure capacity needs. When you make a capacity decision prior to deploying an application, you often either end up sitting on expensive idle resources or dealing with limited capacity. With cloud computing, these problems go away. You can access as much or as little as you need, and scale up and down as required with only a few minutes notice.\r\n<span style=\"font-weight: bold; \">Increase speed and agility</span>\r\nIn a cloud computing environment, new IT resources are only ever a click away, which means you reduce the time it takes to make those resources available to your developers from weeks to just minutes. This results in a dramatic increase in agility for the organization, since the cost and time it takes to experiment and develop is significantly lower.\r\n<span style=\"font-weight: bold; \">Stop spending money on running and maintaining data centers</span>\r\nFocus on projects that differentiate your business, not the infrastructure. Cloud computing lets you focus on your own customers, rather than on the heavy lifting of racking, stacking and powering servers.\r\n<span style=\"font-weight: bold; \">Go global in minutes</span>\r\nEasily deploy your application in multiple regions around the world with just a few clicks. This means you can provide a lower latency and better experience for your customers simply and at minimal cost.\r\n<span style=\"font-weight: bold;\">Types of Cloud Computing</span>\r\nCloud computing has three main types that are commonly referred to as Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Software as a Service (SaaS). Selecting the right type of cloud computing for your needs can help you strike the right balance of control and the avoidance of undifferentiated heavy lifting.","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_IaaS_computing.png","alias":"iaas-computing"},"789":{"id":789,"title":"IaaS - storage","description":"IaaS is an abbreviation that stands for Infrastructure as a Service (“infrastructure as a service”). This model provides for a cloud provider to provide the client with the necessary amount of computing resources - virtual servers, remote workstations, data warehouses, with or without the provision of software - and software deployment within the infrastructure remains the client's prerogative. In essence, IaaS is an alternative to renting physical servers, racks in the data center, operating systems; instead, the necessary resources are purchased with the ability to quickly scale them if necessary. In many cases, this model may be more profitable than the traditional purchase and installation of equipment, here are just a few examples:\r\n<ul><li>if the need for computing resources is not constant and can vary greatly depending on the period, and there is no desire to overpay for unused capacity;</li><li>when a company is just starting its way on the market and does not have working capital in order to buy all the necessary infrastructure - a frequent option among startups;</li><li>there is a rapid growth in business, and the network infrastructure must keep pace with it;</li><li>if you need to reduce the cost of purchasing and maintaining equipment;</li><li>when a new direction is launched, and it is necessary to test it without investing significant funds in resources.</li></ul>\r\nIaaS can be organized on the basis of a public or private cloud, as well as by combining two approaches - the so-called. “Hybrid cloud”, created using the appropriate software.","materialsDescription":" IaaS or Infrastructure as a service translated into Russian as “Infrastructure as a service”.\r\n"Infrastructure" in the case of IaaS, it can be virtual servers and networks, data warehouses, operating systems.\r\n“As a service” means that the cloud infrastructure components listed above are provided to you as a connected service.\r\nIaaS is a cloud infrastructure utilization model in which the computing power is provided to the client for independent management.\r\n<span style=\"font-weight: bold;\">What is the difference from PaaS and SaaS?</span>\r\nFrequently asked questions, what distinguishes IaaS, PaaS, SaaS from each other? What is the difference? Answering all questions, you decide to leave in the area of responsibility of its IT specialists. It requires only time and financial costs for your business.\r\n<span style=\"font-weight: bold;\">Who is responsible for what?</span>\r\nIn the case of using IaaS models, a company can independently use resources: install and run software, exercise control over systems, applications, and virtual storage systems.\r\nFor example, networks, servers, servers and servers. The IaaS service provider manages its own software and operating system, middleware and applications, is responsible for the infrastructure during the purchase, installation and configuration.\r\n<span style=\"font-weight: bold;\">Why do companies choose IaaS?</span>\r\nScaling capabilities. All users have access to resources, and you must use all the resources you need.\r\nCost savings. As a rule, the use of cloud services costs the company less than buying its own infrastructure.\r\nMobility. Ability to work with conventional applications.","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_IaaS_storage.png","alias":"iaas-storage"},"793":{"id":793,"title":"Web Application Vulnerability Scanner","description":" A <span style=\"font-weight: bold; \">web application vulnerability scanner,</span> also known as a <span style=\"font-weight: bold; \">web application security scanner,</span> is an automated security tool. It scans web applications for malware, vulnerabilities, and logical flaws. Web application scanner use black box tests, as these tests do not require access to the source code but instead launch external attacks to test for security vulnerabilities. These simulated attacks can detect path traversal, cross-site scripting(XSS), and command injection.\r\nWeb app scanners are categorized as <span style=\"font-weight: bold; \">Dynamic Application Security Testing (DAST) tools.</span> DAST tools provide insight into how your web applications behave while they are in production, enabling your business to address potential vulnerabilities before a hacker uses them to stage an attack. As your web applications evolve, DAST solutions continue to scan them so that your business can promptly identify and remediate emerging issues before they develop into serious risks.\r\nWeb app vulnerability scanner first crawls the entire website, analyzing in-depth each file it finds, and displaying the entire website structure. After this discovery stage, it performs an automatic audit for common security vulnerabilities by launching a series of Web attacks. Web application scanners check for vulnerabilities on the Web server, proxy server, Web application server and even on other Web services. Unlike source code scanners, web application scanners don't have access to the source code and therefore detect vulnerabilities by actually performing attacks.\r\nA web application vulnerability assessment is very different than a general vulnerability assessment where security focus on networks and hosts. App vulnerability scanner scans ports, connect to services, and use other techniques to gather information revealing the patch levels, configurations, and potential exposures of our infrastructure.\r\nAutomated web application scanning tools help the user making sure the whole website is properly crawled, and that no input or parameter is left unchecked. Automated web vulnerability scanners also help in finding a high percentage of the technical vulnerabilities, and give you a very good overview of the website’s structure, and security status. \r\nThe best way to identify web application security threats is to perform web application vulnerability assessment. The importance of these threats could leave your organization exposed if they are not properly identified and mitigated. Therefore, implementing a web app security scanner solution should be of paramount importance for your organizations security plans in the future. \r\n\r\n","materialsDescription":"<h1 class=\"align-center\">Why Web Application Vulnerability Scanning is important?</h1>\r\nWeb applications are the technological base of modern companies. That’s why more and more businesses are betting on the development of this type of digital platforms. They stand out because they allow to automate processes, simplify tasks, be more efficient and offer a better service to the customer.<br /><br />The objective of web applications is that the user completes a task, be it buying, making a bank transaction, accessing e-mail, editing photos, texts, among many other things. In fact, they are very useful for an endless number of services, hence their popularity. Their disadvantages are few, but there is one that requires special attention: vulnerabilities.\r\n<p class=\"align-center\"><span style=\"font-weight: bold; \">Main web application security risks</span></p>\r\nA web vulnerability scanner tools will help you keep your services protected. However, it is important to be aware of the major security risks that exist so that both developers and security professionals are always alert and can find the most appropriate solutions in a timely manner.\r\n<ul><li><span style=\"font-weight: bold; \">Injection</span></li></ul>\r\nThis is a vulnerability that affects the application databases. They occur when unreliable data is sent to an interpreter by means of a command or query. The attacker may inject malicious code to disrupt the normal operation of the application by making it access the data without authorization or execute involuntary commands.\r\n<ul><li><span style=\"font-weight: bold; \">Authentication failures</span></li></ul>\r\nIf a vulnerability scan in web applications finds a failure, it may be due to loss of authentication. This is a critical vulnerability, as it allows the attacker to impersonate another user. This can compromise important data such as usernames, passwords, session tokens, and more.\r\n<ul><li><span style=\"font-weight: bold; \">Sensitive data exposure</span></li></ul>\r\nA serious risk is the exposure of sensitive data especially financial information such as credit cards or account numbers, personal data such as place of residence, or health-related information. If an attacker scans for this type of vulnerability, he or she may modify or steal this data and use it fraudulently. Therefore, it is essential to use a web app scanning tools to find vulnerabilities in web applications.<br /><br /><br />","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_Web_Application_Vulnerability_Scanner.png","alias":"web-application-vulnerability-scanner"},"830":{"id":830,"title":"DRM - Digital Rights Management","description":"","materialsDescription":"","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_DRM.png","alias":"drm-digital-rights-management"},"842":{"id":842,"title":"Chatbot Development","description":"A chatbot is a piece of software that conducts a conversation via auditory or textual methods. Such programs are often designed to convincingly simulate how a human would behave as a conversational partner, although as of 2019, they are far short of being able to pass the Turing test. Chatbots are typically used in dialog systems for various practical purposes including customer service or information acquisition. Some chatbots use sophisticated natural language processing systems, but many simpler ones scan for keywords within the input, then pull a reply with the most matching keywords, or the most similar wording pattern, from a database.\r\nThe term "ChatterBot" was originally coined by Michael Mauldin (creator of the first Verbot, Julia) in 1994 to describe these conversational programs. Today, most chatbots are accessed via virtual assistants such as Google Assistant and Amazon Alexa, via messaging apps such as Facebook Messenger or WeChat, or via individual organizations' apps and websites. Chatbots can be classified into usage categories such as conversational commerce (e-commerce via chat), analytics, communication, customer support, design, developer tools, education, entertainment, finance, food, games, health, HR, marketing, news, personal, productivity, shopping, social, sports, travel and utilities.\r\nBeyond chatbots, Conversational AI refers to the use of messaging apps, speech-based assistants and chatbots to automate communication and create personalized customer experiences at scale.\r\nThe process of building, testing and deploying chatbots can be done on cloud-based chatbot development platforms offered by cloud Platform as a Service (PaaS) providers such as Oracle Cloud Platform SnatchBot and IBM Watson. These cloud platforms provide Natural Language Processing, Artificial Intelligence and Mobile Backend as a Service for chatbot development.\r\nSome Companies like Microsoft Azure and AARC are currently providing their Bot Engines through which chatbot Platforms or Software can be developed.","materialsDescription":"New tools designed to simplify the interaction between humans and computers have hit the market: Chatbots or Virtual Assistants. In banking, chatbots and virtual assistants are some of the industry’s newest tools designed to simplify the interaction between humans and computers.\r\n<span style=\"font-weight: bold;\">What is a chatbot?</span>\r\nA chatbot is artificial intelligence (AI) software that can simulate a conversation (or a chat) with a user in natural language through messaging applications, websites, mobile apps or through the telephone.\r\n<span style=\"font-weight: bold;\">Why are chatbots important?</span>\r\nA chatbot is often described as one of the most advanced and promising expressions of interaction between humans and machines. However, from a technological point of view, a chatbot only represents the natural evolution of a Question-Answering system leveraging Natural Language Processing (NLP). Formulating responses to questions in natural language is one of the most typical examples of Natural Language Processing applied in various enterprises’ end-use applications.\r\n<span style=\"font-weight: bold;\">How does a chatbot work?</span>\r\nThere are two different tasks at the core of a chatbot:\r\n<ol><li>user request analysis</li><li>returning the response</li></ol>\r\nUser request analysis: this is the first task that a chatbot performs. It analyzes the user’s request to identify the user intent and to extract relevant entities.\r\nThe ability to identify the user’s intent and extract data and relevant entities contained in the user’s request is the first condition and the most relevant step at the core of a chatbot: If you are not able to correctly understand the user’s request, you won’t be able to provide the correct answer.\r\nReturning the response: once the user’s intent has been identified, the chatbot must provide the most appropriate response for the user’s request. The answer may be:\r\n<ul><li>a generic and predefined text;</li><li>a text retrieved from a knowledge base that contains different answers;</li><li>a contextualized piece of information based on data the user has provided;</li><li>data stored in enterprise systems;</li><li>the result of an action that the chatbot performed by interacting with one or more backend application;</li><li>a disambiguating question that helps the chatbot to correctly understand the user’s request.</li></ul>\r\n<span style=\"font-weight: bold;\">In what is the benefit of chatbots?</span>\r\nChatbot applications streamline interactions between people and services, enhancing the customer experience. At the same time, they offer companies new opportunities to improve the customer's engagement process and operational efficiency by reducing the typical cost of customer service.\r\nTo be successful, a chatbot solution should be able to effectively perform both of these tasks. Human support plays a key role here: Regardless of the kind of approach and the platform, human intervention is crucial in configuring, training and optimizing the chatbot system.\r\n<span style=\"font-weight: bold;\">Which chatbot application is right for you?</span>\r\nThere are different approaches and tools that you can use to develop a chatbot. Depending on the use case you want to address, some chatbot technologies are more appropriate than others. In order to achieve the desired results, the combination of different AI forms such as natural language processing, machine learning, and semantic understanding may be the best option.","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_Chatbot_Development.png","alias":"chatbot-development"},"844":{"id":844,"title":"Data access","description":"Data access is a generic term referring to a process which has both an IT-specific meaning and other connotations involving access rights in a broader legal and/or political sense. Two fundamental categories of data access exist:\r\n<ul><li>sequential access (as in magnetic tape, for example)</li><li>random access (as in indexed media)</li></ul>\r\nThe <span style=\"font-weight: bold;\">sequential method</span> requires information to be moved within the disk using a seek operation until the data is located. Each segment of data has to be read one after another until the requested data is found. Reading data <span style=\"font-weight: bold;\">randomly </span>allows users to store or retrieve data anywhere on the disk, and the data is accessed in constant time.\r\nOftentimes when using random access, the data is split into multiple parts or pieces and located anywhere randomly on a disk. Sequential files are usually faster to load and retrieve because they require fewer seek operations.\r\nAccess data management crucially involves authorization to access different data repositories. Data access solutions can help distinguish the abilities of administrators and users. For example, administrators may have the ability to remove, edit and add data, while general users may not even have "read" rights if they lack access to particular information.\r\nA <span style=\"font-weight: bold;\">data access right</span> (DAR) is a permission that has been granted that allows a person or computer program to locate and read digital information at rest. Digital access rights play and important role in information security and compliance.\r\nIn compliance, DARs are often granted to data subjects by law. For example, under the General Data Protection Regulation (GDPR) in the European Union, a data subject has the right to access their own personal data and request a correction or erasure.\r\nTo avoid losing or corrupting corporate data, organizations should grant only the necessary required access to each user, a concept known as the <span style=\"font-weight: bold;\">principle of least privilege</span> (POLP). To ensure confidentiality, information should be used by authorized personnel only. To maintain data integrity, data should not be modified accidentally or voluntarily. Additionally, to provide data availability, the system should operate within the required levels of service.\r\nHistorically, each repository (including each different database, file system, etc.), might require the use of different methods and languages, and many of these repositories stored their content in different and incompatible formats.\r\nOver the years standardized languages, methods, and formats, have developed to serve as interfaces between the often proprietary, and always idiosyncratic, specific languages and methods. Such standards include SQL (1974- ), ODBC (ca 1990- ), JDBC, XQJ, ADO.NET, XML, XQuery, XPath (1999- ), and Web Services.\r\nSome of these standards enable translation of data from unstructured (such as HTML or free-text files) to structured (such as XML or SQL). Structures such as connection strings and DBURLs can attempt to standardise methods of connecting to databases.<br /><br /><br />","materialsDescription":"<h1 class=\"align-center\"><span style=\"font-weight: normal;\">What is a database?</span></h1>\r\nA database is a collection of related data which represents some aspect of the real world. A database system is designed to be built and populated with data for a certain task.\r\n<h1 class=\"align-center\"><span style=\"font-weight: normal;\">What is DBMS?</span></h1>\r\nDatabase Management System (also known as DBMS) is a access database software for storing and retrieving users' data by considering appropriate security measures. It allows users to create their own databases as per their requirement.\r\nIt consists of a group of programs which manipulate the database and provide an interface between the database. It includes the user of the database and other application programs.\r\nThe DBMS accepts the request for data from an application and instructs the operating system to provide the specific data. In large systems, a DBMS helps users and other third-party software to store and retrieve data.\r\n<h1 class=\"align-center\"><span style=\"font-weight: normal;\">What are the best data access rights practices?</span></h1>\r\nTo keep data access control issues from arising, the following practices are recommended:\r\n<ul><li>Company security policies should specify what employees can and cannot do on their computers. For example, will individual user data access to allow personal emails, file downloads, software installation, information ownership and authorized or unauthorized website access.</li><li>Data should be classified based on its degree of confidentiality (and the risks associated with being leaked) and criticality (the integrity and the risk of alteration or destruction).</li><li>Control to data should be established using required authorization or authentication and by employing traceability (which consists of tracking access to sensitive IT resources).</li><li>Regular detailed audits should be performed to help set up controls surrounding identity management, privileged users and access to resources.</li><li>The rights of users should be limited. For example, Windows 10 offers standard and administrator accounts, but most users should just have standard accounts to complete their daily tasks.</li></ul>\r\n\r\n","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon_Data_access.png","alias":"data-access"},"856":{"id":856,"title":"Secure Communications","description":" <span style=\"font-weight: bold;\">Secure communication</span> is when two entities are communicating and do not want a third party to listen in. For that, they need to communicate in a way not susceptible to eavesdropping or interception. Secure communication includes means by which people can share information with varying degrees of certainty that third parties cannot intercept what was said. Other than spoken face-to-face communication with no possible eavesdropper, it is probably safe to say that no communication is guaranteed secure in this sense, although practical obstacles such as legislation, resources, technical issues (interception and encryption), and the sheer volume of communication serve to limit surveillance.\r\nWith many communications taking place over long distances and mediated by technology, and increasing awareness of the importance of interception issues, technology, and its compromise are at the heart of this debate.\r\n<span style=\"font-style: italic;\"><span style=\"font-weight: bold;\">Encryption</span></span> is a method in which data is rendered hard to read by an unauthorized party. Since encryption methods are created to extremely hard to break, many communication methods either use deliberately weaker encryption than possible or have backdoors inserted to permit rapid decryption. In some cases, government authorities have required backdoors to be installed in secret. Many methods of encryption are also subject to "man in the middle" attack whereby a third party who can 'see' the establishment of the secure communication is made privy to the encryption method, this would apply for example to the interception of computer use at an ISP. Provided it is correctly programmed, sufficiently powerful, and the keys not intercepted, encryption would usually be considered secure.\r\nEncryption can be implemented in a way that requires the use of encryption, i.e. if encrypted communication is impossible then no traffic is sent, or opportunistically. Opportunistic encryption is a lower security method to generally increase the percentage of generic traffic which is encrypted. This is analogous to beginning every conversation with "Do you speak Navajo?" If the response is affirmative, then the conversation proceeds in Navajo, otherwise, it uses the common language of the two speakers. This method does not generally provide authentication or anonymity but it does protect the content of the conversation from eavesdropping.\r\nAn Information-theoretic security technique known as physical layer encryption ensures that a wireless communication link is provably secure with communications and coding techniques.\r\n<span style=\"font-style: italic;\"><span style=\"font-weight: bold;\">Steganography</span></span> ("hidden writing") is also the means by which data can be hidden within other more innocuous data. Thus a watermark proving ownership embedded in the data of a picture, in such a way it is hard to find or remove unless you know how to find it. Or, for communication, the hiding of important data (such as a telephone number) in apparently innocuous data (an MP3 music file). An advantage of steganography is plausible deniability, that is unless one can prove the data is there (which is usually not easy), it is deniable that the file contains any.\r\n<span style=\"font-style: italic;\"><span style=\"font-weight: bold;\">Identity-based networks</span></span> are one of the tools to obtain security. Unwanted or malicious behavior is possible on the web since the internet is inherently anonymous. True identity-based networks replace the ability to remain anonymous and are inherently more trustworthy since the identity of the sender and recipient are known. (The telephone system is an example of an identity-based network.)\r\nRecently, <span style=\"font-style: italic;\"><span style=\"font-weight: bold;\">anonymous networking</span></span> also has been used to secure communications. In principle, a large number of users running the same system can have communications routed between them in such a way that it is very hard to detect what the complete message is, which user sent it, and where it is ultimately coming from or going to. Examples are Crowds, Tor, I2P, Mixminion, various anonymous P2P networks, and others.\r\n<span style=\"font-style: italic;\"><span style=\"font-weight: bold;\">Anonymous communication devices</span></span> are also one of the tools to obtain security. In theory, an unknown device would not be noticed, since so many other devices are in use. This is not altogether the case in reality, due to the presence of systems such as Carnivore and Echelon, which can monitor communications over entire networks and the fact that the far end may be monitored as before. Examples include payphones, Internet cafes, etc.\r\nPrograms offering more security are <span style=\"font-weight: bold;\">secure instant messaging, VoIP, secure email, IRC and webchat,</span> and so on.","materialsDescription":" <span style=\"font-weight: bold; \">What are the types of security?</span>\r\nSecurity can be broadly categorized under the following headings, with examples:\r\n<span style=\"font-style: italic; \"><span style=\"font-weight: bold; \">1. Hiding the content or nature of a communication</span></span>\r\n<ul><li><span style=\"font-style: italic; \">Code</span> – a rule to convert a piece of information (for example, a letter, word, phrase, or gesture) into another form or representation (one sign into another sign), not necessarily of the same type. In communications and information processing, encoding is the process by which information from a source is converted into symbols to be communicated. Decoding is the reverse process, converting these code symbols back into information understandable by a receiver. One reason for coding is to enable communication in places where ordinary spoken or written language is difficult or impossible. For example, semaphore, where the configuration of flags held by a signaler or the arms of a semaphore tower encodes parts of the message, typically individual letters, and numbers. Another person standing a great distance away can interpret the flags and reproduce the words sent.</li><li><span style=\"font-style: italic; \">Encryption</span></li><li><span style=\"font-style: italic; \">Steganography</span></li><li><span style=\"font-style: italic; \">Identity-Based</span></li></ul>\r\n<span style=\"font-style: italic; \"><span style=\"font-weight: bold; \">2. Hiding the parties to a communication – preventing identification, promoting anonymity</span></span>\r\n<ul><li>"Crowds" and similar anonymous group structures – it is difficult to identify who said what when it comes from a "crowd"</li><li>Anonymous communication devices – unregistered cellphones, Internet cafes</li><li>Anonymous proxies</li><li>Hard to trace routing methods – through unauthorized third-party systems, or relays</li></ul>\r\n<span style=\"font-style: italic; \"><span style=\"font-weight: bold; \">3. Hiding the fact that communication takes place</span></span>\r\n<ul><li>"Security by obscurity" – similar to a needle in a haystack</li><li>Random traffic – creating random data flow to make the presence of genuine communication harder to detect and traffic analysis less reliable</li></ul>\r\nEach of the three is important, and depending on the circumstances any of these may be critical. For example, if a communication is not readily identifiable, then it is unlikely to attract attention for identification of parties, and the mere fact communication has taken place (regardless of content) is often enough by itself to establish an evidential link in legal prosecutions. It is also important with computers, to be sure where the security is applied, and what is covered.\r\n<span style=\"font-weight: bold; \">What are the methods used to "break" security?</span>\r\n<span style=\"font-style: italic; \"><span style=\"font-weight: bold; \">Bugging</span></span>\r\nThe placing covertly of monitoring and/or transmission devices either within the communication device, or in the premises concerned.\r\n<span style=\"font-style: italic; \"><span style=\"font-weight: bold; \">Computers (general)</span></span>\r\nAny security obtained from a computer is limited by the many ways it can be compromised – by hacking, keystroke logging, backdoors, or even in extreme cases by monitoring the tiny electrical signals given off by keyboard or monitors to reconstruct what is typed or seen (TEMPEST, which is quite complex).\r\n<span style=\"font-style: italic; \"><span style=\"font-weight: bold; \">Laser audio surveillance</span></span>\r\nSounds, including speech, inside rooms, can be sensed by bouncing a laser beam off a window of the room where a conversation is held and detecting and decoding the vibrations in the glass caused by the sound waves.\r\n<span style=\"font-weight: bold; \">What are the systems offering partial security?</span>\r\n<span style=\"font-weight: bold; \">Anonymous cellphones.</span> Cellphones can easily be obtained, but are also easily traced and "tapped". There is no (or only limited) encryption, the phones are traceable – often even when switched off – since the phone and SIM card broadcast their International Mobile Subscriber Identity (IMSI). It is possible for a cellphone company to turn on some cellphones when the user is unaware and use the microphone to listen in on you, and according to James Atkinson, a counter-surveillance specialist cited in the same source, "Security-conscious corporate executives routinely remove the batteries from their cell phones" since many phones' software can be used "as-is", or modified, to enable transmission without user awareness and the user can be located within a small distance using signal triangulation and now using built-in GPS features for newer models. Transceivers may also be defeated by jamming or Faraday cage.\r\nSome cellphones (Apple's iPhone, Google's Android) track and store users' position information so that movements for months or years can be determined by examining the phone.\r\n<span style=\"font-weight: bold; \">Landlines.</span> Analog landlines are not encrypted, it lends itself to being easily tapped. Such tapping requires physical access to the line which can be easily obtained from a number of places, e.g. the phone location, distribution points, cabinets and the exchange itself. Tapping a landline in this way can enable an attacker to make calls that appear to originate from the tapped line.\r\n<span style=\"font-weight: bold;\">Anonymous Internet.</span> Using a third-party system of any kind (payphone, Internet cafe) is often quite secure, however, if that system is used to access known locations (a known email account or 3rd party) then it may be tapped at the far end, or noted, and this will remove any security benefit obtained. Some countries also impose mandatory registration of Internet cafe users.\r\nAnonymous proxies are another common type of protection, which allows one to access the net via a third party (often in a different country) and make tracing difficult. Note that there is seldom any guarantee that the plaintext is not tappable, nor that the proxy does not keep its own records of users or entire dialogs. As a result, anonymous proxies are a generally useful tool but may not be as secure as other systems whose security can be better assured. Their most common use is to prevent a record of the originating IP, or address, being left on the target site's own records. Typical anonymous proxies are found at both regular websites such as Anonymizer.com and spynot.com, and on proxy sites which maintain up to date lists of large numbers of temporary proxies in operation.\r\nA recent development on this theme arises when wireless Internet connections ("Wi-Fi") are left in their unsecured state. The effect of this is that any person in range of the base unit can piggyback the connection – that is, use it without the owner being aware. Since many connections are left open in this manner, situations where piggybacking might arise (willful or unaware) have successfully led to a defense in some cases, since it makes it difficult to prove the owner of the connection was the downloader or had knowledge of the use to which unknown others might be putting their connection. An example of this was the Tammie Marson case, where neighbors and anyone else might have been the culprit in the sharing of copyright files. Conversely, in other cases, people deliberately seek out businesses and households with unsecured connections, for illicit and anonymous Internet usage, or simply to obtain free bandwidth.\r\n<span style=\"font-weight: bold;\">Programs offering more security.</span>\r\n<span style=\"font-weight: bold;\"><span style=\"font-style: italic;\">Secure instant messaging</span></span> – Some instant messaging clients use end-to-end encryption with forwarding secrecy to secure all instant messages to other users of the same software. Some instant messaging clients also offer end-to-end encrypted file transfer support and group messaging.\r\n<span style=\"font-style: italic;\"><span style=\"font-weight: bold;\">VoIP</span></span> – Some VoIP clients implement ZRTP and SRTP encryption for calls.\r\n<span style=\"font-style: italic;\"><span style=\"font-weight: bold;\">Secure email</span></span> – some email networks are designed to provide encrypted and/or anonymous communication. They authenticate and encrypt on the users own computer, to prevent transmission of plain text, and mask the sender and recipient. Mixminion and I2P-Bote provide a higher level of anonymity by using a network of anonymizing intermediaries, similar to how Tor works, but at a higher latency.\r\n<span style=\"font-style: italic;\"><span style=\"font-weight: bold;\">IRC and webchat</span></span> – Some IRC clients and systems use client-to-server encryption such as SSL/TLS. This is not standardized.","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/diseno-plano-de-icon.png","alias":"secure-communications"},"860":{"id":860,"title":"Payment Security","description":" Our shopping habits have changed. eCommerce comes with many benefits, but there are also new possibilities for cybercriminals, who steal our personal and banking details. As a merchant, you need to do everything within your power to make your customers sure that the transactions on your website are secure. Customers usually can’t choose their own payment gateway, so it’s up to you to make the best choice.\r\nJust look at the major data breaches that have occurred in the last few years alone. Even brands such as Sony, Target, and T.J. Maxx are not immune to cybersecurity issues. It is important that your company is proactive about cybersecurity rather than waiting for a crisis before taking action.\r\nThe average consumer doesn’t even think about the whole process that takes place when he/she pays for items at an online store. It is also important to understand that in the payment process there are many players, not just you and the customer(s). There are also card brands, acquirers, and issuing banks or other companies. Therefore, It is crucial to have the whole process under control and reduce the risk at every point possible. Making yours and your customers’ data secure is one of the most important issues for your online business.\r\nCredit card payments are still the most common type of payments, but unfortunately with the growing number of online payments, there are also more fraudsters. Data thieves have a huge amount of knowledge on how new technologies work, so they are always looking for the vulnerable points of payment processing.\r\nIt’s not easy, and almost impossible, to eliminate fraud, but there are many ways to secure your data and prevent it from being stolen. To ensure that payment processing on your website is secure you must know about SSL, PCI, tokenization, 3D Secure, anti-fraud tools, and so on.","materialsDescription":" <span style=\"font-weight: bold;\">How do you provide secure online payments?</span>\r\nIt’s your responsibility to have the purchasing process under control and reduce the risk of fraud at every step of checkout. Data thieves’ knowledge of how new technologies work is impressive. For that reason reducing the vulnerable points of payment processing is a crucial part of every eCommerce business. You need to know the payment security solutions.\r\n<span style=\"font-style: italic;\"><span style=\"font-weight: bold;\">SSL protocol</span></span>\r\nThe first thing you need to do for your payment security is ensuring that your website is secure. Are you using SSL protocol to encrypt information on your site?\r\nSSL certificates show your website is protected and will grow your online reputation as well. All information, such as credit card details and other sensitive data is protected. It also improves brand awareness and builds credibility with customers. The SSL is symbolized by a padlock icon in the URL bar and the web address begins with https. The SSL comes with many benefits for your online business, so make sure you’re using it to protect your customers well.\r\n<span style=\"font-style: italic;\"><span style=\"font-weight: bold;\">PCI Compliance</span></span>\r\nYou’ve probably heard about PCI Compliance if you process payments on your website or looked into implementing online payments in the future. Payment Card Industry Data Security Standards (PCI DSS) tell merchants how sensitive data used in payments should be secured. It requires data encryption to provide payments without using real card data that’s visible while processing. Note that PCI guidelines also consider tokenization in the future version.\r\nDoing business should be based on trust and PCI compliance helps improve security. You need to do everything to decrease the risk of payment and data fraud that could damage your brand’s reputation.\r\n<span style=\"font-style: italic;\"><span style=\"font-weight: bold;\">Tokenization</span></span>\r\nTokenization is the technology that makes it easier to improve payment security and provide a payment process without vulnerabilities. Tokenization makes customer authentication during the purchase possible without affecting the transaction’s security.\r\nIn short, a token is a random string of characters that replaces sensitive information, such as a 16-digit credit card number. The payment process involves sensitive data, so merchants need to understand where the vulnerabilities exist. With tokenization, the chances of a data breach are reduced. Even if a token number is stolen, it would be meaningless to the fraudsters.\r\n<span style=\"font-style: italic;\"><span style=\"font-weight: bold;\">3D Secure</span></span>\r\nMoreover, considering a payment solution with 3D Secure helps prevent fraud in online credit and debit card transactions. It gives extra protection to transactions and comes with many benefits. 3D Secure creates a secure password for the shopper’s credit card. Every transaction is then verified with the password, which adds an additional layer of security. It can decrease the number of fraudulent transactions and boost your revenue.\r\n<span style=\"font-style: italic;\"><span style=\"font-weight: bold;\">Address Verification Service</span></span>\r\nYou can also use an Address Verification Service, which requires customers to provide the billing address associated with their credit card. When the address on the card matches with the one in bank’s documents, the transaction will go through.\r\nMany companies have a problem determining the location and storage of their payment data, but 42% of companies claim that payment data is at the greatest risk when it is stored. A Global Study on the State of Payment Data Security shows that over 50% of organizations had a breach involving payment data within the past two years.\r\n<span style=\"font-weight: bold;\">How do you minimize the payment risk?</span>\r\nPayment risk is the risk of loss due to some “payment events”. Many companies, especially ones that handle a high volume of online payments, have been forced to drive their payment risk management strategies to avoid difficulties and harsh consequences. Keep in mind that every payment method involves risk and these could be fraud or operational risk (when the financial loss is due to human or technical errors).\r\nIt’s important to monitor your payments to predict the possibility of the risk. But, if you make a wrong decision, it could be costly. Sometimes it’s better to let a specialized company manage the payment risk on your behalf. You can also choose a payment gateway with fraud prevention tools to manage the risk.\r\nKnowing the risk helps you to reduce the likelihood it will occur. You need to consider what the potential threats are, how quickly it can be detected, and how much it could cost.","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/secure-payment-icon.png","alias":"payment-security"},"867":{"id":867,"title":"Network Visualization","description":"Network visualization — sometimes referred to as graph visualization or link analysis — is the practice of creating visual depictions of connected data. Network visualization is used to identify relationships between disparate data points on a network, which can improve root cause analysis, performance visibility, and make IT teams more efficient. In many cases, network visualization refers to mapping network topology to understand the physical layout and current status of the network. Network visualization can be performed at many scales, whether for in-office devices or for data centers across a continent. \r\nNetwork visualization can sometimes be used as a broad term and, besides referring to network mapping, in some cases may refer to the many methods of data correlation. In computer networking, visualization can refer to the process of aggregating data into visual charts and graphs to locate patterns, trends, and correlations between network data. These sorts of connections might otherwise go undetected in text-based formats. <br /><br />Network visualization solutions are a very useful tool that provide critical visibility into network infrastructure. Leveraging network visualizations can improve efficiency, help with troubleshooting, and offer IT teams flexibility in how they can manipulate what can sometimes be complex data points. \r\nCompared to spreadsheets, inventory lists, and text-based reports, network visualization — from graphs and charts to topology maps — is generally easier for both admins and those outside the IT team to use and understand. In addition, network visualization is important because it allows IT teams to obtain a more robust knowledge of their networks with real-time, at-a-glance insights into the infrastructure and current performance. If a node is down, the information is available visually, whether on a map or highlighted on a chart. Additionally, IT teams can make better sense of critical information by viewing node-link structures in a visual setting, as this can streamline network analysis and lead to better capacity planning. <br /><br />","materialsDescription":"<span style=\"font-weight: bold; \">What is network visualization?</span>\r\nNetwork visualization, graph visualization or link analysis is the process of visually presenting networks of connected entities as links and nodes.<br />Nodes represent data points and links represent the connections between them.<br />To look beyond your flat data model and understand connections in your data, you need powerful network visualization tools.<br /><br /><span style=\"font-weight: bold; \">Why visualize networks?</span>\r\n<span style=\"font-style: italic; \">It’s intuitive</span>\r\nExploring networks as node-link structures instantly makes sense, even to people who’ve never worked with connected data before.<br /><br /><span style=\"font-style: italic; \">It’s fast</span>\r\nOur brains are great at spotting patterns, but only when the info is in a tangible format. Network visualization helps you identify trends and outliers quickly.\r\n<span style=\"font-style: italic; \">It’s scalable</span>\r\nNetwork visualization lets you simplify complexity, see context and understand detail. With one chart, you can get an overview or dive into specific connections.<br /><br /><span style=\"font-style: italic; \">It’s insightful</span>\r\nThrough interactive data analysis, you gain deeper knowledge and understand context. That’s hard to achieve with a static, aggregated visualization.<br /><br /><span style=\"font-weight: bold; \">Who needs to visualize networks?</span>\r\n<span style=\"font-style: italic; \">Law enforcement & security</span>\r\nJoin the dots between people, places and events and filter out the noise that stops you seeing the connections and preventing crime.<br /><br /><span style=\"font-style: italic; \">Infrastructure management</span>\r\nCreate interactive visualizations that reveal bottlenecks and vulnerabilities in connected critical infrastructure.<br /><br /><span style=\"font-style: italic; \">Anti-fraud</span>\r\nUncover unusual activities to identify, predict and prevent all kinds of fraud: from insurance scams to VAT fraud.\r\n<span style=\"font-style: italic; \">Cyber security</span>\r\nMake sense of vast, complex and densely-connected data to uncover cyber security threats and help keep networks secure.","iconURL":"https://old.roi4cio.com/fileadmin/user_upload/icon-visualization.png","alias":"network-visualization"}},"companyUrl":"https://msolutionsdigital.com","countryCodes":["GBR","UKR"],"certifications":[],"isSeller":true,"isSupplier":true,"isVendor":false,"presenterCodeLng":"","seo":{"title":"M Solutions Digital","keywords":"","description":"M Solutions Digital is a global digital company headquartered in London and development offices in Eastern Europe.\r\nThe company specializes in providing digital services and innovate solutions for a wide range of industries. \r\nIn this connection, pays spe","og:title":"M Solutions Digital","og:description":"M Solutions Digital is a global digital company headquartered in London and development offices in Eastern Europe.\r\nThe company specializes in providing digital services and innovate solutions for a wide range of industries. \r\nIn this connection, pays spe","og:image":"https://old.roi4cio.com/uploads/roi/company/MsolutionsDigital_1.jpg"},"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":""}}