How to Choose the Best Ios Architectural Pattern for Your App Introduction

Total Page:16

File Type:pdf, Size:1020Kb

How to Choose the Best Ios Architectural Pattern for Your App Introduction WHITEPAPER How to choose the best iOS architectural pattern for your app Introduction: As software developers there projects they plan to start. is a moment when we have to Moreover, it is important to decide how to build a system. understand that architectural In this context, architectural patterns are not the solution to patterns are important all problems. to create a verifiable and compatible code structure They only solve and delineate that all developers can easily some of the essential cohesive understand. elements of a software architecture. Needless to say, it is difficult to choose the correct pattern to To make a fair comparison, we follow, in order to build a good will define three main features structured code that everyone that a good architecture must can work with. have, and we will evaluate the patterns based on this: In this article we will discuss three popular patterns for 1. Balanced distribution of iOS, how they work, and responsibilities among entities some of their advantages and with strict roles. disadvantages. 2. Testability of code. This will help iOS developers 3. Ease of use and a low choose the correct pattern for maintenance cost. page 2 www.belatrixsf.com | belatrixsf.com/blog We will examine: • Classic Model View Controller • Apple’s Model View Controller • Massive View Controller • Model View Presenter • Model View ViewModel page 3 www.belatrixsf.com | belatrixsf.com/blog Classic Model View Controller Let’s first discuss the classic Model View Controller (MVC) in a close way to the original interpretation. MVC appeared in the software world in the late 70’s and since then, there have been many different interpretations of it. MVC presents a clear division between responsibilities by constructing three components, Model, View and Controller. The Model is a representation of the information, it is responsible for managing the database and the business entities. It will usually authorize reading or writing requests that arrive from the Controller. Nevertheless, in classical MVC, the View has direct reading access to the Model. The View takes care of displaying everything in a correct format to the system’s user, like interfaces of mobile or web apps. The View should not directly change the state of the Model. And finally, the Controller that responds to external stimuli to perform some logic, including the change of the state of page 4 www.belatrixsf.com | belatrixsf.com/blog the Model and what the View should display. Figure 1. iOS Architecture Patterns by Bohdan Orlov In classical MVC, all three entities are tightly coupled, each entity knows about the other two. This reduces the reusability of each of them and it is hard to test. Apple encourages its users to use MVC as an architectural pattern. The files that manage the logic in xcode are called ViewControllers. Furthermore, many Cocoa technologies are based on MVC and require that your custom objects play one of the MVC roles. page 5 www.belatrixsf.com | belatrixsf.com/blog Apple’s Model View Controller In the Cocoa and CocoaTouch frameworks, the Controller is a mediator between the View and the Model, so the Model doesn’t know anything about the View. Figure 2. iOS Architecture Patterns by Bohdan Orlov This means that changes to one module don’t heavily impact other modules. This requirement is very important when it comes to testing because it allows you to test each component individually, with unit tests. The View handles events that are part of its logic, such as touch events or display data for the user. Then, it sends the action to the Controller to receive a response and perform the next action. page 6 www.belatrixsf.com | belatrixsf.com/blog The Controller processes the action, and, if necessary, changes the state of the Model and updates the data. If the state of the Model is changed, the Controller will be notified, and it has to decide how to handle these changes. Since the Controller is aware of the new values from the Model, it will perform some transformations of the data if required, and sends the new values to the View. page 7 www.belatrixsf.com | belatrixsf.com/blog Massive View Controller It is called Massive View Controller because, in Cocoa MVC, the View and the Controllers are strongly coupled. They are so involved in the Viewing life cycle that it’s hard to treat them as separate components. All the responsibility of the View is to send actions to the Controller. However, the View Controller ends up being a delegate and a data source of everything, and is usually responsible for dispatching and cancelling network requests. Figure 3. iOS Architecture Patterns by Bohdan Orlov page 8 www.belatrixsf.com | belatrixsf.com/blog Advantages • Support for asynchronous requests. MVC supports an asynchronous technique, which helps developers to develop an application that loads very fast. • Modification does not affect the entire model because the model part does not depend on the views part. Therefore, any changes in the Model will not affect the entire architecture. Disadvantages • The controller contains a part of the state of the view and almost all the logic of the view what makes it strongly coupled. • Since the controller is tightly coupled with the view, it becomes difficult to test. Features • Distribution . The View and the Model are separated, but the View and the Controller are tightly coupled. • Testability. It has a bad distribution, so it will be hard to test. • Ease of use . Requires the least amount of code among other patterns and it’s easily maintained. page 9 www.belatrixsf.com | belatrixsf.com/blog Model View Presenter MVP was introduced in the early 90’s and it is an extension of the classic MVC. They both have three main components, but the Controller is replaced by the Presenter in MVP. The view is responsible for rendering the user interface and reacting to user events. In the case of iOS, the view will consist of a Protocol that exposes the methods of the user’s events and a ViewController that is responsible for the view logic. In MVC, the View is tightly coupled with the Controller, while in MVP, the Presenter has nothing to do with the life cycle of the view controller, but it is responsible for updating the View with data and state. The Presenter works as a mediator, contains the UI business logic for the View and can change the state of a Model. Figure 4. iOS Architecture Patterns by Bohdan Orlov page 10 www.belatrixsf.com | belatrixsf.com/blog In this way, conducting the unit tests is easier than in MVC, since the Presenter can be tested separately from the view logic. MVP distributes responsibility well and makes unit tests less tedious. However, it reduces the speed of development, since the implementation of the Presenter and the link through the layers brings some additional work. Advantages • Because the View and the Presenter are separated, it’s easier to test. • Makes it easier to verify the correct functioning of each piece of software with unit test. • MVP is typically easier to learn than MVVM, which we examine later in this article. Disadvantages • Complex views may have multiple presenters. • Excess of code to communicate components. Features • Distribution . Most of the responsibilities are divided between the Presenter and the Model. • Testability . Most of the business logic can be easily tested due to the decoupling of page 11 www.belatrixsf.com | belatrixsf.com/blog components. • Ease of use . The amount of code is double compared to the MVC pattern. page 12 www.belatrixsf.com | belatrixsf.com/blog Model View ViewModel Model View ViewModel was created by John Gossman, one of Microsoft’s architects, in 2005. The purpose of the pattern is the separation of the user interface and business logic development. Each View on the screen will be backed by a View Model that represents the data for the view. This architectural pattern also consists of 3 components: Model, View, and ViewModel. In this case, the Model is essentially the same as it is in MVC, which means it represents the information and is composed of databases. and business entities. The View layer is composed of the view logic and the ViewController, and is responsible for everything the user is capable of seeing. The ViewModel is the mediator between the View and the Model and is responsible for processing the presentation logic. It also knows about the Model and can change its state. Furthermore, the ViewModel can transform the data from the Model into a format which is more convenient for the View. However, the ViewModel doesn’t know about the page 13 www.belatrixsf.com | belatrixsf.com/blog View and can interact with View only through the Data Binding mechanism. Figure 5. iOS Architecture Patterns by Bohdan Orlov There are many approaches to connect a view model to a view. The purpose is that the view must have a view model assigned to its DataContext property. We have two main options: • Use one of the KVO (Key-Value Observing) based binding libraries like SwiftBond, which provides a mechanism that allows objects to be notified of changes to specific properties of other objects. • Use one of the functional reactive programming frameworks: ReactiveCocoa, RxSwift or PromiseKit. Advantages • Reduces the amount of code for synchronizing the View with the ViewModel. • The ViewModel layer is completely independent of the View which means much easier testing and DataBinding page 14 www.belatrixsf.com | belatrixsf.com/blog usage. Disadvantages • It may require significant memory resources in DataBinding mechanisms. • It can be difficult to connect ViewModels to Views. Features • Distribution .
Recommended publications
  • Chapter 1. Origins of Mac OS X
    1 Chapter 1. Origins of Mac OS X "Most ideas come from previous ideas." Alan Curtis Kay The Mac OS X operating system represents a rather successful coming together of paradigms, ideologies, and technologies that have often resisted each other in the past. A good example is the cordial relationship that exists between the command-line and graphical interfaces in Mac OS X. The system is a result of the trials and tribulations of Apple and NeXT, as well as their user and developer communities. Mac OS X exemplifies how a capable system can result from the direct or indirect efforts of corporations, academic and research communities, the Open Source and Free Software movements, and, of course, individuals. Apple has been around since 1976, and many accounts of its history have been told. If the story of Apple as a company is fascinating, so is the technical history of Apple's operating systems. In this chapter,[1] we will trace the history of Mac OS X, discussing several technologies whose confluence eventually led to the modern-day Apple operating system. [1] This book's accompanying web site (www.osxbook.com) provides a more detailed technical history of all of Apple's operating systems. 1 2 2 1 1.1. Apple's Quest for the[2] Operating System [2] Whereas the word "the" is used here to designate prominence and desirability, it is an interesting coincidence that "THE" was the name of a multiprogramming system described by Edsger W. Dijkstra in a 1968 paper. It was March 1988. The Macintosh had been around for four years.
    [Show full text]
  • Rights Reserved. Permission to Make Digital Or Hard Copies of All Or Part Of
    Copyright © 1994, by the author(s). All rights reserved. Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission. MICROSOFT WINDOWS NT AND THE COMPETITION FOR DESKTOP COMPUTING by Brad Peters, William R. Bush, and A. Richard Newton Memorandum No. UCB/ERL M94/3 31 January 1994 MICROSOFT WINDOWS NT AND THE COMPETITION FOR DESKTOP COMPUTING by Brad Peters, William R. Bush, and A. Richard Newton Memorandum No. UCB/ERL M94/3 31 January 1994 MICROSOFT WINDOWS NT AND THE COMPETITION FOR DESKTOP COMPUTING by Brad Peters, William R. Bush, and A. Richard Newton Memorandum No. UCB/ERL M94/3 31 January 1994 ELECTRONICS RESEARCH LABORATORY College ofEngineering University ofCalifornia, Berkeley 94720 MICROSOFT WINDOWS NT AND THE COMPETITION FOR DESKTOP COMPUTING by Brad Peters, William R. Bush, and A. Richard Newton Memorandum No. UCB/ERL M94/3 31 January 1994 ELECTRONICS RESEARCH LABORATORY College ofEngineering University ofCalifornia, Berkeley 94720 Microsoft Windows NT And The Competition for Desktop Computing January 1994 Department ofElectrical Engineering and Computer Sciences University ofCalifornia Berkeley, California 94720 Abstract This report contains two papers, An Introduction to Microsoft Windows NT And Its Competitors, and The Status ofWindows NT and Its Competitors At The End of1993. The first paper, written in April 1993,presents an overview of the technology of Windows NT, and analyzes the competitors and competitive factors in the desktop operating system race.
    [Show full text]
  • Automatic Graph Drawing Lecture 15 Early HCI @Apple/Xerox
    Inf-GraphDraw: Automatic Graph Drawing Lecture 15 Early HCI @Apple/Xerox Reinhard von Hanxleden [email protected] 1 [Wikipedia] • One of the first highly successful mass- produced microcomputer products • 5–6 millions produced from 1977 to 1993 • Designed to look like a home appliance • It’s success caused IBM to build the PC • Influenced by Breakout • Visicalc, earliest spreadsheet, first ran on Apple IIe 1981: Xerox Star • Officially named Xerox 8010 Information System • First commercial system to incorporate various technologies that have since become standard in personal computers: • Bitmapped display, window-based graphical user interface • Icons, folders, mouse (two-button) • Ethernet networking, file servers, print servers, and e- mail. • Sold with software based on Lisp (early functional/AI language) and Smalltalk (early OO language) [Wikipedia, Fair Use] Xerox Star Evolution of “Document” Icon Shape [Wikipedia, CC BY-SA 3.0] 1983: Apple Lisa [Wikipedia, CC BY-SA 2.0 fr] Apple Lisa • One of the first personal computers with a graphical user interface (GUI) • In 1982, Steve Jobs (Cofounder of Apple, with Steve Wozniak) was forced out of Lisa project, moved on into existing Macintosh project, and redefined Mac as cheaper, more usable version of Lisa • Lisa was challenged by relatively high price, insufficient SW library, unreliable floppy disks, and immediate release of Macintosh • Sold just about 10,000 units in two years • Introduced several advanced features that would not reappear on Mac or PC for many years Lisa Office
    [Show full text]
  • This Is a Fairy Tale •.• NOT! a Primer on Moving SAS® Applications
    This is a Fairy Tale•.• NOT! A Primer on Moving SAS® Applications Across Graphical Operating Systems James Hefner, Entergy Corporation, Beaumont, TX lineup. The PowerPC's PowerOpen operating system should be ABSTRACT able to run Windows, Windows NT, OS/2, Macintosh, and UNIX applications unmodified (using SoftPC to run Windows & OS/2 Currently, most SAS Software application developers have on~ apps). Current plans are to offer these new machines at prices one or two graphical operating systems (such as Microsoft that are highly competitive with the current top-of-the-!ine WindowsTN, or OSFlMoti~ to support. However, the pending offerings by IBM PC manufacturerS and Apple, nol 10 mention release of the SAS System for the Apple® Macintosh®I and the UNIX workstations. This could mean a change in the platform you introduction of new hardware and software such as the PowerPC are currently using, as well as the ability (or need) to be able to and Wabi, means that application developers may have to use and write applications using any of the five operating support two or more graphical operating systems. systems. This paper is intended to assist application developers, both in New Graphical Operating Systems the teaching of the fundamentals of graphical operating systems, and in Ihe moving of SAS/Af® and SAS/EIS® applicalions from In addition to the platforms mentioned above, Apple and IBM are one operating system to another. currently working on the Taligent operating system, which will have an object-oriented, graphical front end. IBM is also INTRODUCTION discussing porling its object·orienled 0512 2.x Workplace Shell 10 a new ver.sion of PC DOS® and AIX®, IBM's version of UNIX (to If you are a SAS' application developer, you may currently be be called Workplace OS).
    [Show full text]
  • Volume 15, 1~L~Mber 2 April 1994
    ISSN 1035-7521 AUUG Inc. Newsletter Volume 15, 1~l~mber 2 April 1994 Registered by Australia Post, Publication Number NBG6524 The AUUG incorporated Newsletter Volume 15 Number 2 April 1994 CONTENTS AUUG General Information ...................... 3 Editorial ............................ 5 AUUG President’s Page ....................... 6 AUUG Corporate Sponsors - A New Level of Participation ............ 7 AUUG Institutional Members ..... : ............... 8 Letters to the Editor ........................ 11 Announcements AUUG Appoints New Business Manager ................ 15 AUUG Freephone Number .................... 16 McKusick does Oz T-shirt .................... 17 Call for Articles for the Australian .................. 18 AUUG & Zircon Systems Reach Agreement ............... 19 AUUG & the Express Book Store Reach Agreement ............ 20 AUUG Local Chapters AUUG Regional Contacts .................... 21 AUUG Inc. - Victorian Chapter ................... 22 Update on AU-tJG Inc. - Victorian Chapter Activities Stephen Prince . 23 From the Western Front Janet Jackson .... 24 WAUG - Meeting Reviews Adrian Booth .... 25 1994 Perth AUUG Summer Conference Overview Adrian Booth .... 26 Impressions of the 1994 Perth AUUG Summer Conference Janet Jackson .... 28 AUUG NSW Chapter Julian Dryden .... 30 AARNet Mail Affiliation., ...................... 31 Book Reviews .......................... 35 Prentice Hall Book Order Form ................... 41 WOodsLane Information ..................... 42 Open System Publications ...................... 43 !AUUGN
    [Show full text]
  • Michael J. Harper Standalone Code
    Michael J. Harper Standalone Code LLC 57195 Beaver Drive, PO Box 3846 (541) 362-1840 Sunriver OR 97707 [email protected] @doktahahpah, @standalonecode, www.github.com/mharper, www.standalonecode.com Summary I have been a software developer since 1982 and an independent contractor/consultant since 1992. For the past several years, I have focused on two areas of development: mobile development with iOS and Android and web development with Ruby on Rails. I conceived and implemented the TRX FORCE app — the 12-week conditioning program designed for the US Military — on both iOS and Android — which appeared in the Apple "Strength" commercial. In addition, I have collaborated on the Norton Online Backup iOS app and I built an app named “Circle 8” that helps tourists find their way around Sunriver, OR and its 33+ miles of bike paths. Another project was a trifecta of Rails, iOS, and Android development showcasing how to “Live Like a Local” when visiting the Hotel Monaco DC. I have also implemented Android versions of Circle 8, Analog Analytics, and PEAR Sports (Bluetooth LE heart-rate based real-time coaching). For Star Wars Celebration in Anaheim, CA in April 2015, I implemented an iBeacon-based "Scanner" app that displays "trading cards" for each character scanned. I have been working with iBeacon/AltBeacon technology on iOS, Android, and Linux for Radius Networks for the past year. I discovered Ruby on Rails via the Java Posse podcast when I was doing Java EE development for Symantec circa 2006. I have collaborated on numerous Rails apps since then including Norton Online Backup for Symantec and Hubbub Health for Regence.
    [Show full text]
  • Leveraging Object-Oriented Frameworks
    Leveraging Object-Oriented Frameworks Leveraging Object-Oriented Frameworks Table OF contents Introduction Software Development Approaches Procedural Programming Object-Oriented Programming Framework-Oriented Programming Applying Frameworks - An Overview Applying Application-Level Frameworks Applying System-Level Frameworks Key Advantages of Frameworks Taligent's Approach to Frameworks Taligent Frameworks - An Architectural Perspective Taligent Application-Level Frameworks Taligent System-Level Frameworks Taligent Development Environment Frameworks How Taligent is Changing the Programming Model Domain-Specific Frameworks Summary Next Steps Additional Reading Taligent White Papers INTRODUCTION Over the last two decades, software development has changed significantly. Its evolution has been motivated largely by the quest to help developers produce software 1 of 16 Leveraging Object-Oriented Frameworks faster and to deliver more value to end-users. Despite gains, the industry still faces long development cycles which produce software that usually doesn't address business problems adequately--pointing to the limitations of traditional programming and today's system software environments. These limitations have moved the software industry to embrace object-oriented technology (OOT) because of its potential to significantly increase developer productivity and encourage innovation. Taligent believes that OOT indeed has the potential to dramatically improve the software development process. However, we believe the focus should not only be on OOT, but on how this technology is delivered in order to fully realize the benefits that it has to offer. In our view, object-oriented frameworks--extensible sets of object-oriented classes that are integrated to execute well-defined sets of computing behavior--provide the necessary foundation for fully exploiting the promises of OOT. Which is why Taligent is building a new system software platform and integrated development environment based entirely on OOT and object-oriented frameworks.
    [Show full text]
  • 101 Ways to Save Apple by James Daly
    http://www.wired.com/wired/archive/5.06/apple_pr.html 101 Ways to Save Apple By James Daly An assessment of what can be done to fix a once-great company. Dear Apple, In the movie Independence Day, a PowerBook saves the earth from destruction. Now it's time to return the favor. Unfortunately, even devoted Mac addicts must admit that you look a little beleaguered these days: a confusing product line, little inspiration from the top, software developers fleeing. But who wants to live in a world without you? Not us. So we surveyed a cross section of hardcore Mac fans and came up with 101 ways to get you back on the path to salvation. We chose not to resort to time travel or regurgitate the same old shoulda/coulda/wouldas (you shoulda licensed your OS in 1987, for instance, or coulda upped your price/performance in 1993). We don't believe Apple is rotten to the core. Chrysler nearly went under in the late 1970s and came back to lead its industry. Here's a fresh assessment of what can be done to fix your once-great company using the material at hand. Don't wait for a miracle. You have the power to save the world - and yourself. Edited by James Daly 1. Admit it. You're out of the hardware game. Outsource your hardware production, or scrap it entirely, to compete more directly with Microsoft without the liability of manufacturing boxes. 2. License the Apple name/technology to appliance manufacturers and build GUIs for every possible device - from washing machines to telephones to WebTV.
    [Show full text]
  • Operating Systems, 1997., the Sixth Work
    Experience with the Development of a Microkernel-Based, Multiserver Operating System Freeman L. Rawson I11 IBM Austin Abstract and feel” of any operating system in the set while maintaining a single system image that shared as much code as possible among the During the first half the 1990s IBM developed a set . of of personalities operating system products called Worhplace OS that was bused . that offered full compatibility with all of the operating on the Mach 3.0 microkernel and Taligent’s object-oriented systems in the set and with DOSlWindows 3.1 TalOS. These products were intended to be scalable, portable + which offered the choice of a fully object-oriented and capable of concurrently running multiple operating system operating system including both object-oriented interfaces personalities while sharing as much code as possible. The and an object-oriented implementation operating system personalities were constructed out of a set of - which provided real time operation. user-level personality and personality-neutral servers and Since the technologies were modular, the project was libraries. While we made a number of important changes to structured as a set of related products so that customers could Mach 3.0, we maintained its fundamentals and the multi-server buy precisely the parts that they needed. The project as a design throughout our project. In evaluating the resulting system, whole was known as Workplace OS (WPOS) but was often a number ofproblems are apparent. There is no good way to referred to as the “microkemel-based” system because of the factor multiple existing systems into a set of functional servers central role played by the microkernel and because the without making them excessively large and complex.
    [Show full text]
  • MVP: Model-View-Presenter the Taligent Programming Model for C++ and Java
    (C) Copyright Taligent, Inc. 1996 - All Rights Reserved MVP: Model-View-Presenter The Taligent Programming Model for C++ and Java Mike Potel VP & CTO Taligent, Inc. Taligent, a wholly-owned subsidiary of IBM, is developing a next generation programming model for the C++ and Java programming languages, called Model-View-Presenter or MVP, based on a generalization of the classic MVC programming model of Smalltalk. MVP provides a powerful yet easy to understand design methodology for a broad range of application and component development tasks. Taligent’s framework-based implementation of these concepts adds great value to developer programs that employ MVP. MVP also is adaptable across multiple client/server and multi-tier application architectures. MVP will enable IBM to deliver a unified conceptual programming model across all its major object-oriented language environments. Smalltalk Programming Model The most familiar example of a programming model is the Model-View-Controller (MVC) model1 of Smalltalk developed at Xerox PARC in the late 1970’s. MVC is the fundamental design pattern used in Smalltalk for implementing graphical user interface (GUI) objects, and it has been reused and adopted to varying degrees in most other GUI class libraries and application frameworks since. Controller data gestures change & events notification Model View data access Smalltalk represents a GUI object such as a check box or text entry field using the three core abstractions of MVC. A model represents the data underlying the object, for example, the on-off state of a check box or the text string from a text entry field. The view accesses the data from the model and specifies how the data from the model is drawn on the screen, for example, an actual checked or unchecked check box, or a text entry box containing the string.
    [Show full text]
  • Can Apple Take Microsoft in the Battle for the Desktop?
    Search the web Search this site Search Search Amazon: Can Apple Take Microsoft in the Battle for the Desktop? Sunday, March 4, 2007 | | Del.icio.us | Technorati | About RDM | Forum : Feed | [email protected] ¿Puede Apple ganar a Microsoft la batalla de sobremesa? (en español) Some analysts are nostalgic for the days when they could appear intelligent merely by gushing about everything from Microsoft. They felt safe in recommending everything the company released, knowing that there were no real alternatives, and that anything the company could deliver would more or less have to be purchased. All their advice and analysis helped to create the general illusion that Microsoft was divinely fated to succeed, and that no rival could ever hope to challenge the company. That illusion helped to reinforce the real power wielded by Microsoft as the dominant vendor of PC desktop operating systems. Maintaining that illusion was as important to Microsoft as a properly running propaganda machine is to a banana republic dictator. As power begins to falter, maintaining an illusion of strength becomes increasingly important. Ironically, the desperate measures that are frequently taken to sustain such an illusion often serve to distract from the real problems that need to be fixed and subsequently cause greater damage. The Ghost of Past Failures Microsoft certainly isn't the first tech company to stumble in a grand way. Apple fell from its position as a leader in the tech industry in the 80s to being "hopelessly beleaguered" within a decade. In Apple's case, the company began making serious mistakes during a decade of limited competition leading up to 1995.
    [Show full text]
  • CYBERSECURITY When Will You Be Hacked?
    SUFFOLK ACADEMY OF LAW The Educational Arm of the Suffolk County Bar Association 560 Wheeler Road, Hauppauge, NY 11788 (631) 234-5588 CYBERSECURITY When Will You Be Hacked? FACULTY Victor John Yannacone, Jr., Esq. April 26, 2017 Suffolk County Bar Center, NY Cybersecurity Part I 12 May 2017 COURSE MATERIALS 1. A cybersecurity primer 3 – 1.1. Cybersecurity practices for law firms 5 – 1.2. Cybersecurity and the future of law firms 11 – 2. Information Security 14 – 2.1. An information security policy 33 – 2.2. Data Privacy & Cloud Computing 39 – 2.3. Encryption 47 – 3. Computer security 51 – 3.1. NIST Cybersecurity Framework 77 – 4. Cybersecurity chain of trust; third party vendors 113 – 5. Ransomware 117 – 5.1. Exploit kits 132 – 6. Botnets 137 – 7. BIOS 139 – 7.1. Universal Extensible Firmware Interface (UEFI) 154– 8. Operating Systems 172 – 8.1. Microsoft Windows 197 – 8.2. macOS 236– 8.3. Open source operating system comparison 263 – 9. Firmware 273 – 10. Endpoint Security Buyers Guide 278 – 11. Glossaries & Acronym Dictionaries 11.1. Common Computer Abbreviations 282 – 11.2. BABEL 285 – 11.3. Information Technology Acronymns 291 – 11.4. Glossary of Operating System Terms 372 – 2 Cyber Security Primer Network outages, hacking, computer viruses, and similar incidents affect our lives in ways that range from inconvenient to life-threatening. As the number of mobile users, digital applications, and data networks increase, so do the opportunities for exploitation. Cyber security, also referred to as information technology security, focuses on protecting computers, networks, programs, and data from unintended or unauthorized access, change, or destruction.
    [Show full text]