A BRMS or business rule management system is a software system used to define, deploy, execute, monitor and maintain the variety and complexity of decision logic that is used by operational systems within an organization 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. == Overview == A BRMS includes, at minimum: A repository, allowing decision logic to be externalized from core application code Tools, allowing both technical developers and business experts to define and manage decision logic A runtime environment, allowing applications to invoke decision logic managed within the BRMS and execute it using a business rules engine The top benefits of a BRMS include: Reduced or removed reliance on IT departments for changes in live systems. Although, QA and Rules testing would still be needed in any enterprise system. Increased control over implemented decision logic for compliance and better business management including audit logs, impact simulation and edit controls. The ability to express decision logic with increased precision, using a business vocabulary syntax and graphical rule representations (decision tables, decision models, trees, scorecards and flows) Improved efficiency of processes through increased decision automation. Some disadvantages of the BRMS include: Extensive subject matter expertise can be required for vendor specific products. In addition to appropriate design practices (such as Decision Modeling), technical developers must know how to write rules and integrate software with existing systems Poor rule harvesting approaches can lead to long development cycles, though this can be mitigated with modern approaches like the Decision Model and Notation (DMN) standard. Integration with existing systems is still required and a BRMS may add additional security constraints. Reduced IT department reliance may never be a reality due to continued introduction to new business rule considerations or object model perturbations The coupling of a BRMS vendor application to the business application may be too tight to replace with another BRMS vendor application. This can lead to cost to benefits issues. The emergence of the DMN standard has mitigated this to some degree. Most BRMS vendors have evolved from rule engine vendors to provide business-usable software development lifecycle solutions, based on declarative definitions of business rules executed in their own rule engine. BRMSs are increasingly evolving into broader digital decisioning platforms that also incorporate decision intelligence and machine learning capabilities. However, some vendors come from a different approach (for example, they map decision trees or graphs to executable code). Rules in the repository are generally mapped to decision services that are naturally fully compliant with the latest SOA, Web Services, or other software architecture trends. == Related software approaches == In a BRMS, a representation of business rules maps to a software system for execution. A BRMS therefore relates to model-driven engineering, such as the model-driven architecture (MDA) of the Object Management Group (OMG). It is no coincidence that many of the related standards come under the OMG banner. A BRMS is a critical component for Enterprise Decision Management as it allows for the transparent and agile management of the decision-making logic required in systems developed using this approach. == Associated standards == The OMG Decision Model and Notation standard is designed to standardize elements of business rules development, specially decision table representations. There is also a standard for a Java Runtime API for rule engines JSR-94. OMG Business Motivation Model (BMM): A model of how strategies, processes, rules, etc. fit together for business modeling OMG SBVR: Targets business constraints as opposed to automating business behavior OMG Production Rule Representation (PRR): Represents rules for production rule systems that make up most BRMS' execution targets OMG Decision Model and Notation (DMN): Represents models of decisions, which are typically managed by a BRMS RuleML provides a family of rule mark-up languages that could be used in a BRMS and with W3C RIF it provides a family of related rule languages for rule interchange in the W3C Semantic Web stack Many standards, such as domain-specific languages, define their own representation of rules, requiring translations to generic rule engines or their own custom engines. Other domains, such as PMML, also define rules.
Client-side persistent data
Client-side persistent data or CSPD is a term used in computing for storing data required by web applications to complete internet tasks on the client-side as needed rather than exclusively on the server. As a framework it is one solution to the needs of Occasionally connected computing or OCC. A major challenge for HTTP as a stateless protocol has been asynchronous tasks. The AJAX pattern using XMLHttpRequest was first introduced by Microsoft in the context of the Outlook e-mail product. The first CSPD were the 'cookies' introduced by the Netscape Navigator. ActiveX components which have entries in the Windows registry can also be viewed as a form of client-side persistence.
Democratization of technology
Democratization of technology is the process by which access to technology rapidly extends to an ever-broader audience, especially from a select group of people to the average public. New technologies and improved user experiences have empowered those outside of the technical industry to access and use technological products and services. At an increasing scale, consumers have greater access to use and purchase technologically sophisticated products, as well as to participate meaningfully in the development of these products. Industry innovation and user demand have been associated with more affordable, user-friendly products. This is an ongoing process, beginning with the development of mass production and increasing dramatically as digitization became commonplace. Thomas Friedman argued that the era of globalization has been characterized by the democratization of technology, democratization of finance, and democratization of information. Technology has been critical in the latter two processes, facilitating the rapid expansion of access to specialized knowledge and tools, as well as changing the way that people view and demand such access. A counter argument is that this is just a process of 'massification' - more people can use banks, technology, have access to information, but it does not mean there is any more democratic influence over its production, or that this massification promotes Democracy. == History == Scholars and social critics often cite the invention of the printing press as a major invention that changed the course of history. The force of the printing press rested not in its impact on the printing industry or inventors, but on its ability to transmit information to a broader public by way of mass production. This event is so widely recognized because of its social impact – as a democratizing force. The printing press is often seen as the historical counterpart to the Internet. After the development of the Internet in 1969, its use remained limited to communications between scientists and within government, although use of email and boards gained popularity among those with access. It did not become a popular means of communication until the 1990s. In 1993 the US federal government opened the Internet to commerce and the creation of HTML formed the basis for universal accessibility. === Major innovations === The Internet has played a critical role in modern life as a typical feature of most Western households, and has been key in the democratization of knowledge. It not only constitutes arguably the most critical innovation in this trend thus far; it has also allowed users to gain knowledge of and access to other technologies. Users can learn of new developments more quickly, and purchase high-tech products otherwise only actively marketed to recognized experts. Social media has also empowered and emboldened users to become contributors and critics of technological developments. Some have argued that cloud computing is having a major effect by allowing users greater access through mobility and pay-as-you-use capacity. The open-source model allows users to participate directly in development of software, rather than indirect participation, through contributing opinions. By being shaped by the user, development is directly responsive to user demand and can be obtained for free or at a low cost. In a comparable trend, arduino and littleBits have made electronics more accessible to users of all backgrounds and ages. The development of 3D printers has the potential to increasingly democratize production. Generative artificial intelligence tools have the potential to democratize the process of innovation by improving the ability of individuals to specify and visualize ideas. The democratization of artificial intelligence refers to the transition from AI as a high-cost, specialized field to one accessible to non-experts and smaller organizations. This process is driven by the release of open-weights models, the availability of cloud computing for model training, and the emergence of no-code development platforms. While early AI development was concentrated within Big Tech firms and elite research universities, the 2020s saw a proliferation of public tools like ChatGPT and repositories such as Hugging Face, which lowered the technical barriers to entry. However, the trend has faced criticism as the "illusion of democratization," as the underlying GPU hardware remains concentrated among a few global providers. == Cultural impact == This trend is linked to the spread of knowledge of and ability to perform high-tech tasks, challenging previous conceptions of expertise. Widespread access to technology, including lower costs, was critical to the transition to the new economy. Similarly, democratization of technology was also fuelled by this economic transition, which produced demands for technological innovation and optimism in technology-driven progress. Since the 1980s, a spreading constructivist conception of technology has emphasized that the social and technical domains are critically intertwined. Scholars have argued that technology is non-neutral, defined contextually and locally by a certain relationship with society. Andrew Feenberg, a central thinker in the philosophy of technology, argued that democratizing technology means expanding technological design to include alternative interests and values. When successful in doing so, this can be a tool for increasing inclusiveness. This also suggests an important participatory role for consumers if technology is to be truly democratic. Feenberg asserts that this must be achieved by consumer intervention in a liberated design process. Improved access to specialized knowledge and tools has been associated with an increase in the "do it yourself" (DIY) trend. This has also been associated with consumerization, whereby personal or privately owned devices and software are also used for business purposes. Some have argued that this is linked to reduced dependence on traditional information technology departments. Astra Taylor, the author of the book The People's Platform: Taking Back Power and Culture in the Digital Age, argues, "The promotion of Internet-enabled amateurism is a lazy substitute for real equality of opportunity." === Industry impact === In some ways, democratization of technology has strengthened this industry. Markets have broadened and diversified. Consumer feedback and input is available at a very low or no cost. However, related industries are experiencing decreased demand for qualified professionals as consumers are able to fill more of their demands themselves. Users of a range of types and status have access to increasingly similar technology. Because of the decreased costs and expertise necessary to use products and software, professionals (e.g. in the audio industry) may experience loss of work. In some cases, technology is accessible but sufficiently complex that most users without specialized training are able to operate it without necessarily understanding how it works. Additionally, the process of consumerization has led to an influx in the number of devices in businesses and accessing private networks that IT departments cannot control or access. While this can lead to lowered operating costs and increased innovation, it is also associated with security concerns that most businesses are unable to address at the pace of the spread of technology. === Political impact === Some scholars have argued that technological change will bring about a third wave of democracy. The Internet has been recognized for its role in promoting increased citizen advocacy and government transparency. Jesse Chen, a leading thinker in democratic engagement technologies, distinguishes the democratizing effects of technology from democracy itself. Chen has argued that, while the Internet may have democratizing effects, the Internet alone cannot deliver democracy at all levels of society unless technologies are purposely designed for the nuances of democracy, specifically the engagement of large groups of people in between elections in and beyond government. The spread of the Internet and other forms of technology has led to increased global connectivity. Many scholars believe that it has been associated in the developing world not only with increased Western influence, but also with the spread of democracy through increased communication, efficiency, and access to information. Scholars have drawn associations between the level of technological connectedness and democracy in many nations. Technology can enhance democracy in the developed world as well. In addition to increased communication and transparency, some electorates have implemented online voting to accommodate an increased number of citizens.
Active networking
Active networking is a communication pattern that allows packets flowing through a telecommunications network to dynamically modify the operation of the network. Active network architecture is composed of execution environments (similar to a unix shell that can execute active packets), a node operating system capable of supporting one or more execution environments. It also consists of active hardware, capable of routing or switching as well as executing code within active packets. This differs from the traditional network architecture which seeks robustness and stability by attempting to remove complexity and the ability to change its fundamental operation from underlying network components. Network processors are one means of implementing active networking concepts. Active networks have also been implemented as overlay networks. == What does it offer? == Active networking allows the possibility of highly tailored and rapid "real-time" changes to the underlying network operation. This enables such ideas as sending code along with packets of information allowing the data to change its form (code) to match the channel characteristics. The smallest program that can generate a sequence of data can be found in the definition of Kolmogorov complexity. The use of real-time genetic algorithms within the network to compose network services is also enabled by active networking. == How it relates to other networking paradigms == Active networking relates to other networking paradigms primarily based upon how computing and communication are partitioned in the architecture. === Active networking and software-defined networking === Active networking is an approach to network architecture with in-network programmability. The name derives from a comparison with network approaches advocating minimization of in-network processing, based on design advice such as the "end-to-end argument". Two major approaches were conceived: programmable network elements ("switches") and capsules, a programmability approach that places computation within packets traveling through the network. Treating packets as programs later became known as "active packets". Software-defined networking decouples the system that makes decisions about where traffic is sent (the control plane) from the underlying systems that forward traffic to the selected destination (the data plane). The concept of a programmable control plane originated at the University of Cambridge in the Systems Research Group, where (using virtual circuit identifiers available in Asynchronous Transfer Mode switches) multiple virtual control planes were made available on a single physical switch. Control Plane Technologies (CPT) was founded to commercialize this concept. == Fundamental challenges == Active network research addresses the nature of how best to incorporate extremely dynamic capability within networks. In order to do this, active network research must address the problem of optimally allocating computation versus communication within communication networks. A similar problem related to the compression of code as a measure of complexity is addressed via algorithmic information theory. One of the challenges of active networking has been the inability of information theory to mathematically model the active network paradigm and enable active network engineering. This is due to the active nature of the network in which communication packets contain code that dynamically change the operation of the network. Fundamental advances in information theory are required in order to understand such networks. == Nanoscale active networks == As the limit in reduction of transistor size is reached with current technology, active networking concepts are being explored as a more efficient means accomplishing computation and communication. More on this can be found in nanoscale networking.
Contact center telephony
In marketing, contact center telephony is the communication and collaboration system used by businesses to either manage high volumes of inbound queries or outbound telephone calls keeping their workforce or agents productive and in control to serve or acquire customers. This business communication system is an extension of computer telephony integration (CTI). == Overview == The interactions between callers and customer service representatives are supported by the collective system of computers, telephones and the Internet. The shift from CTI to contact center telephony is marked by the sheer change in the customer’s behavior when it comes to communication. Means customers are no longer confined only to voice-based communication i.e. phone to connect with their customer service departments. In addition, they are making use of email, SMS, chat, social media, and other virtual contact channels. This is also the reason for the shift in nomenclature from "call centers" to "contact centers", "contact" being a wider term than "call". Respecting the trend, contact center owners need to adopt unified communication or multi-channel approach to let customers get in touch with them via their preferred communication mediums, either voice or non-voice (data). Cloud-based phone system is a further advancement in the direction as it allows operators to access all the features and benefits of call center telephony over the Web against an affordable & flexible pay-as-you-go subscription model. Thus, in-house infrastructure deployment to manage public switched telephone networks, storage, communication applications, and collaboration servers is no more an obligation. Neither is the need to invest resources for their upgrade, repair, maintenance and security as cloud vendor would be responsible for the same. == India == India, a popular call center business process outsourcing destination, often uses a cloud-based phone system in order to cut operational expenses and downtime, and increase connectivity. == Promotion == Businesses can rely on contact center telephony services to respond to their customers’ queries over phone, email, chat, fax, etc. Integrating it with their customer relationship management tools, entire contact details of customers and their interaction sessions with different customer service representatives can be found at one place. The combination can manage not just sales and marketing but also deliver excellent post-sales customer service or technical support to allow customers derive the most from their products or services. Hence, it’s becoming instrumental in increasing customer satisfaction and loyalty and most of the call center services in India are taking refuge from it. The entire contact center telephony service can be availed by professionals over a browser. Hence, businesses can leverage the concept of BYOD (bring your own device) and mobility and serve their customers well using mobile applications. According to market analysts, BYOD increases satisfaction among workforce, and hence their individual and collective productivity as well. BYOD programme significantly reduces the TCO (total cost of ownership) as professionals prefer to work with their own devices rather than using company-provisioned devices. Next, they tend to be more caring towards such devices and can even shell out money to update and upgrade those when required. Integration of IM, along with audio and video conferencing services helps call center or contact center representatives to get real time assistance from their peers or seniors to resolve any complex issues. They can internally exchange information and knowledge articles as and when required. Real-time call monitoring/barging system can be used by quality assessment team to provide important guidelines to agents to maintain the standard of the service as per industry norms. Integrated recording feature is helpful for internal training and quality purposes to improve productivity and customer satisfaction in equal measures. It also helps in getting business insights and improving products or services to gain deeper penetration into the market.
Flok (company)
Flok (formerly Loyalblocks) was an American tech startup based in New York City that provides marketing services such as chatbots/AI, customer loyalty programs, mobile apps and CRM services to local businesses. In January 2017, the company was acquired by Wix.com. Around March 2017, Flok ceased regular communication. At some point in 2019 Flok communicated to its customers that it would shut down in March 2020. == Background == Flok was founded in 2011 by Ido Gaver and Eran Kirshenboim and has offices in Tel Aviv, Israel. In May 2013, Flok secured a $9 million Series A Round from General Catalyst Partners with participation from Founder Collective and existing investor Gemini Israel Ventures. In total, Flok has raised over $18 million in venture capital in three rounds. In May 2014, Flok announced a self-service loyalty platform for SMBs to build their own programs with beacon integration. At that time, approximately 40,000 businesses were using the service. In 2016, Flok released a turnkey chatbot service for local businesses, and was featured in AdWeek for developing the first weed bot chatbot for a California cannabis business. == Services == Flok offered an eponymous customer-facing app, that consumers use to receive rewards and deals from partner businesses, and a Flok business app for merchants to manage the platform.
Dynamic web page
A dynamic web page is a web page constructed at runtime (during software execution), as opposed to a static web page, delivered as it is stored. A server-side dynamic web page is a web page whose construction is controlled by an application server processing server-side scripts. In server-side scripting, parameters determine how the assembly of every new web page proceeds, and including the setting up of more client-side processing. A client-side dynamic web page processes the web page using JavaScript running in the browser as it loads. JavaScript can interact with the page via Document Object Model (DOM), to query page state and modify it. Even though a web page can be dynamic on the client-side, it can still be hosted on a static hosting service such as GitHub Pages or Amazon S3 as long as there is not any server-side code included. A dynamic web page is then reloaded by the user or by a computer program to change some variable content. The updating information could come from the server, or from changes made to that page's DOM. This may or may not truncate the browsing history or create a saved version to go back to, but a dynamic web page update using AJAX technologies will neither create a page to go back to, nor truncate the web browsing history forward of the displayed page. Using AJAX, the end user gets one dynamic page managed as a single page in the web browser while the actual web content rendered on that page can vary. The AJAX engine sits only on the browser requesting parts of its DOM, the DOM, for its client, from an application server. A particular application server could offer a standardized REST style interface to offer services to the web application. DHTML is the umbrella term for technologies and methods used to create web pages that are not static web pages, though it has fallen out of common use since the popularization of AJAX, a term which is now itself rarely used. Client-side-scripting, server-side scripting, or a combination of these make for the dynamic web experience in a browser. == Basic concepts == Classical hypertext navigation, with HTML or XHTML alone, provides "static" content, meaning that the user requests a web page and simply views the page and the information on that page. However, a web page can also provide a "live", "dynamic", or "interactive" user experience. Content (text, images, form fields, etc.) on a web page can change, in response to different contexts or conditions. There are two ways to create this kind of effect: Using client-side scripting to change interface behaviors within a specific web page, in response to mouse or keyboard actions, data received from a web API, websocket or at specified timing events. In this case the dynamic behavior occurs within the presentation. Using server-side scripting to change the supplied page source code between pages, adjusting the sequence or reload of the web pages or web content supplied to the browser. Server responses may be determined by such conditions as data in a posted HTML form, parameters in the URL, the type of browser being used, the passage of time, or a database or server state. Web pages that use client-side scripting must use presentation technology broadly called rich interfaced pages. Client-side scripting languages like JavaScript or ActionScript, used for Dynamic HTML (DHTML) and Flash technologies respectively, are frequently used to orchestrate media types (sound, animations, changing text, etc.) of the presentation. The scripting also allows use of remote scripting, a technique by which the DHTML page requests additional information from a server, using a hidden Frame, XMLHttpRequests, or a web service. It is also possible to use a web framework to create a web API, which the client, via the use of JavaScript, uses to obtain data and alter its appearance or behavior dynamically depending on the data. Web pages that use server-side scripting are often created with the help of server-side languages such as PHP, Perl, ASP, JSP, ColdFusion and other languages. These server-side languages typically use the Common Gateway Interface (CGI) to produce dynamic web pages. These kinds of pages can also use, on the client-side, the first kind (DHTML, etc.). == History == It is difficult to be precise about "dynamic web page beginnings" or chronology because the precise concept makes sense only after the "widespread development of web pages". HTTP has existed since 1989, HTML, publicly standardized since 1996. The web browser's rise in popularity started with Mosaic in 1993. Between 1995 and 1996, multiple dynamic web products were introduced to the market, including Coldfusion, WebObjects, PHP, and Active Server Pages. The introduction of JavaScript (then known as LiveScript) enabled the production of client-side dynamic web pages, with JavaScript code executed in the client's browser. The letter "J" in the term AJAX originally indicated the use of JavaScript, as well as XML. With the rise of server side JavaScript processing, for example, Node.js, originally developed in 2009, JavaScript is also used to dynamically create pages on the server that are sent fully formed to clients. MediaWiki, the content management system that powers Wikipedia, is an example for an originally server-side dynamic web page, interacted with through form submissions and URL parameters. Throughout time, progressively enhancing extensions such as the visual editor have also added elements that are dynamic on the client side, while the original dynamic server-side elements such as the classic edit form remain available to be fallen back on (graceful degradation) in case of error or incompatibility. == Server-side scripting == A program running on a web server is used to generate the web content on various web pages, manage user sessions, and control workflow. Server responses may be determined by such conditions as data in a posted HTML form, parameters in the URL, the type of browser being used, the passage of time, or a database or server state. Such web pages are often created with the help of server-side languages such as ASP, ColdFusion, Java, JavaScript, Perl, PHP, Ruby, Python, and other languages, by a support server that can run on the same hardware as the web server. These server-side languages often use the Common Gateway Interface (CGI) to produce dynamic web pages. Two notable exceptions are ASP.NET, and JSP, which reuse CGI concepts in their APIs but actually dispatch all web requests into a shared virtual machine. The server-side languages are used to embed tags or markers within the source file of the web page on the web server. When a user on a client computer requests that web page, the web server interprets these tags or markers to perform actions on the server. For example, the server may be instructed to insert information from a database or information such as the current date. Dynamic web pages are often cached when there are few or no changes expected and the page is anticipated to receive considerable amount of web traffic that would wastefully strain the server and slow down page loading if it had to generate the pages on the fly for each request. == Client-side scripting == Client-side scripting is changing interface behaviors within a specific web page in response to input device actions, or at specified timing events. In this case, the dynamic behavior occurs within the presentation. The client-side content is generated on the user's local computer system. Such web pages use presentation technology called rich interfaced pages. Client-side scripting languages like JavaScript or ActionScript, used for Dynamic HTML (DHTML) and Flash technologies respectively, are frequently used to orchestrate media types (sound, animations, changing text, etc.) of the presentation. Client-side scripting also allows the use of remote scripting, a technique by which the DHTML page requests additional information from a server, using a hidden frame, XMLHttpRequests, or a Web service. The first public use of JavaScript was in 1995, when the language was implemented in Netscape Navigator 2, standardized as ECMAScript two years later. Example The client-side content is generated on the client's computer. The web browser retrieves a page from the server, then processes the code embedded in the page (typically written in JavaScript) and displays the retrieved page's content to the user. The innerHTML property (or write command) can illustrate the client-side dynamic page generation: two distinct pages, A and B, can be regenerated (by an "event response dynamic") as document.innerHTML = A and document.innerHTML = B; or "on load dynamic" by document.write(A) and document.write(B). == Combination technologies == All of the client and server components that collectively build a dynamic web page are called a web application. Web applications manage user interactions, state, security, and performance. Ajax uses a combination of both client-side script