A Pragmatic Approach to Encouraging ICT Innovation in Canada
Submitted by andywarfield 2010–07–06 03:13:50 EDT
Theme(s): Building Digital Skills, Digital Infrastructure
Canada Research Chair in Computer Systems and Security
Department of Computer Science
University of British Columbia
Email: Andrew Warfield
Virtualization and Management Division
In "Improving Canada's Digital Advantage," the Government of Canada has done an excellent job of surveying the broad set of important issues that are introduced through the increasing importance of information and computing technologies in the lives of Canadians. The government's consultation paper describes a set of challenges that are too far reaching to effectively respond to in a single document. In this brief position statement I will attempt to summarize specific views around how the federal government can foster and support ICT–related innovation within Canada. In my view, the subject of supporting innovation is the most central issue to the consultation paper, as it has aspects which touch on almost all of the themes described.
Through a number of existing programs, the federal government has already done an excellent job of fostering ICT innovation within Canada. Canada's current level of ICT innovation and maturity stems not from a lack of specific effort, but from a lack of focus on how existing efforts can be combined to effectively support the end–to–end process that begins with incubating new ideas and continues through to their realization as large deployed systems. In evolving Canada's digital strategy, emphasis should be placed on understanding and supporting the entire lifecycle of ICT innovation. In some situations — such as that of supporting ICT–related education — entirely new programs may be required to ensure that early training is relevant and effective in the face of a rapidly changing technological landscape. Overall however, work is required to provide bridging and linkage between a large number of successful, but disconnected efforts.
In the remainder of this document, I will discuss a number of specific thoughts and examples associated with the themes in the consultation paper. I will approach the issue through a series of four specific goals that are intended to create an environment that encourages the creation of new software systems, and supports them through from infancy to full–scale deployment. Where possible, I will attempt to suggest concrete, actionable examples of how these ideas might be realized. In many cases, I believe that an end–to–end view of the innovation process may lead to realizing considerably greater value from programs where a great deal of government investment has already been made, and not require the establishment of entirely new initiatives.
The Challenge of Innovation
Information technology is a fascinating field, and has never been more central to the day–to–day lives of most Canadians. Canada, with a population of over 34 million people, collectively sent an average of 121.7 million text messages a day in December of last year1. Three in five Canadians (and more than 80% of Canadians aged 18 to 34) have profiles on the social networking site Facebook2. Information systems are pervasive, and involved in virtually all aspects of our daily lives, and it is critical that Canadians have both a broad, general level of ICT competence — in particular around the personal benefits and risks associated with modern information systems — and that we strengthen our ability to be world leaders in designing and building exciting new technologies.
Goal 1: Enable and encourage young Canadians to build real systems
There is no lack of interest in information and computing technology in Canada. However, to foster innovation within the country, we must start by empowering young Canadians with the skills to realize new technological ideas. By demonstrating to them as early as possible that they are personally capable of writing applications for their mobile devices, we can encourage them to engage in technology innovation. The tools and technologies that are used to develop web– and cloud–based software and the digital content that are associated with online systems change frequently: a well–maintained and engaging high school–level course that introduces students to state of the art tools and encourages them to build and deploy real systems is critical in encouraging ICT development, and enrolment in relevant post–secondary programs. This is not strictly about encouraging enrollment in computer science and electrical engineering: by demystifying the process by which online applications are designed and built early, students in other fields are more likely to take advantage of ICT in whatever field they choose to study.
In considering ICT education at the high school level, it seems most important that students are (a) presented with empowering opportunities that teach them that they can realize ideas as deployed systems, and (b) ensure that they understand the relatively new issues around security and privacy in an issue where large amounts of information, both about them and used by them will exist in a digital format and stored on computer systems around the world. In order for Canadians to be safe and effective in this new digital economy, they must have a clear understanding of both the technology and laws relating to the information that they use: from credit card numbers to digital media to Facebook profiles, students should be made aware of the issues and risks so that they may be effective users, and designers, of emerging ICT.
The challenge of maintaining a relevant curriculum that tracks current technologies, training teachers, and providing usable infrastructure on which students can build and deploy systems is daunting. It is almost certainly beyond the scope of individual school boards, and is likely an area where even provincial governments would benefit from greater resources. This said, the current level of high school education in computing in Canada is both inconsistent and inadequate. There is a clear opportunity for the federal government to assist provincial governments and school boards.
On a technical front, the government could do a number of things. First, while curriculum development is a provincial responsibility, the federal government could help drive competition and guide direction by providing national resources for school boards to take advantage of. The specific example that I will detail in the next section is that of centralized infrastructure upon which students can write and deploy new software. Another clear win would be to encourage the granting councils to support and encourage universities in engaging at the high school levels for interns and other training programs.
In terms of social development, the government could sponsor national high school–level essay competitions that encourage students to discuss broad issues related to technology and policy.
In short, to foster ICT innovation, and to ensure the safe and productive use of ICT in Canadian society, students at the high school level should be taught about issues including the security and privacy of digital data, and should be given the opportunity to build real systems.
Actionable Exemplar: Motivating support for ICT awareness and innovation in high schools.
The federal government should host a yearly contest for the development of interesting new Internet–based applications that have been developed by high school students. Submissions should be required to work, and be available for the general public to use and comment on. Systems should be open source, allowing others to learn from and understand the way they have been constructed. Finally, entrants should provide a clear description of how users data is stored and protected within the system — encouraging a public discussion around network security and privacy issues.
The winners of this contest should be provided with scholarship funding to pursue post–secondary education (possibly similar to the NSERC Canada Graduate Scholars program).
Broadening a program such as this to allow a second tier that invites applications from university students, and provides access to either graduate scholarships or venture funding would be very valuable.
Goal 2: Eliminate barriers to developing and deploying new systems
University Students and Startups Have Similar Needs
The requirements for encouraging ICT innovation at a high–school level change remarkably little in both post–secondary and entrepreneurial environments: To foster new technologies, we must teach people how to build safe and stable technologies, and we must remove as many barriers as possible that stand in the way of turning ideas into real systems. Beyond training, the single largest barrier to ICT innovation in this country is almost certainly the availability of technology infrastructure. Broadly speaking, this infrastructure can be viewed as an amalgam of three components: Cloud–based computational hosting of new online services, network connectivity, and the software tools required to build new systems.
Software Tools: For the most part, sufficient
The software tools to build new Internet–based software continue to evolve at a remarkable pace, but remain the least concerning of these three infrastructural requirements. As an example, UBC's first–year computer science courses see students developing web–based applications that are integrated with Google Maps within weeks of starting the program, and, as suggested above, the tools they use are easily accessible to younger students. At the level of graduate students doing research, there are a large number of interesting projects in our lab relating to topics such as cloud–based software development, multimedia delivery, online games, and so on. The barrier to transferring these technologies out of the research lab and deploying these systems to a wider audience, is specifically that lack of available computing resources to deploy and host such systems and the available and affordable connectivity for Canadians to use them.
Network Connectivity: Still our global disadvantage
Regarding network connectivity, Canada has made good steps forward in recent years. Federal incentives for rural development of network access, and moves by the CRTC to increase competition for wireless access have been well intended. However, the fact remains that Canada is more poorly connected, in terms of coverage, bandwidth, and consumer costs, than the US and much of Europe. To promote ICT innovation in Canada, Canadians must have affordable access to ICT. The government must continue to take agressive steps in working to encourage competition in industry and to improve network access in Canada. It would be great to see the government encouraging programs that "think outside the box" in this regard; as examples, the TEIR project3 at UC Berkeley has been investigating approaches to providing connectivity in challenging areas such as rural Africa. Developments in this project, and others like it, have led to interesting work in low–cost radio networks, and low–overhead software systems. Similarly, new startups such as Meraki4 are building large–area WiFi networks that allow ubiquitous wireless access without requiring potentially expensive 3G data access. Providing federal support to help cities build out free metropolitan WiFi networks would increase competition for cellular data providers and encourage them to both drop prices and add value by increasing coverage outside cities.
Network connectivity is a clear and present barrier to ICT innovation in Canada. In particular, the high costs of data connections on mobile devices and internet connections for small businesses actively discourage people from both using and building new technologies. If the federal government wants Canada to be innovative and competitive with ICT, very low–cost data access from home, business, and especially (young!) mobile users is a fundamental requirement.
Computing Infrastructure: An opportunity to give Canada a lead
Even with the ability to build great software systems, and a future, well–connected, Canadian population that can increasingly consume them, the hosting of ICT systems remains a challenge, and one that is about to become worse. Facebook, Google, Twitter, and the thousands of smaller, less successful Internet services like them all run on computers that are constantly connected to the network. For the high school students and University researchers that I've mentioned above to deliver such systems, there must be well–connected, continuously available computing services to host their software.
ICT–related startups face the same challenge. Hosting internet based software requires computers in datacenters, well–connected to the internet, with trained technical staff to support them. Based on discussions with a number of people in local startups, Canadian companies lease hosted, virtual systems to run their software. Increasingly, these startups are going to cloud providers such as Amazon's EC2 in place of more traditional hosting providers (such as Canada's RackForce or Peer1) because Amazon offers finer–grained management of hosting at lower prices with potentially better connectivity. With EC2, Amazon has placed other hosting providers in a "race to the bottom", in which it will use its economy of scale to drive prices down to levels that smaller hosting providers simply cannot compete with.
Amazon's EC2 offering is not intrinsically bad: it represents some incredible technologies and is changing the way that software is build and provided on the Internet. However, as Amazon is a private company and its datacenters are not physically located within Canada, there are a number of problems with Canadian systems moving to it, or other systems like it.
First, hosting software outside of Canada raises concerns regarding the privacy of Canadians' data. For instance, in BC the Freedom of Information and Protection of Privacy Act requires that service providers not store personal information (such as email addresses) outside of Canada without user consent. The specific terms of this act resulted in a Memorandum to faculty and staff at UBC to ensure that they were aware of these rules when collecting online research surveys using US–based sites such as SurveyMonkey. The memorandum was motivated by the fact that the Act aimed to protect an important aspect of personal privacy, but one that could easily be violated through a lack of technological understanding.
Second, there is an incredible opportunity to innovate within the cloud. Canadian hosting providers, such as RackForce and Peer1, have built efficient and complex systems to manage the software of many customers across large datacenters full of computers. These companies are core contributors to ICT innovation in Canada, and it would be a great loss for the talent and innovation within companies like these to go elsewhere. From a research perspective, while large cloud environments present great opportunities, they also limit the ability of researchers to develop new techniques for low–level services such as virtualization, storage, and networking, in ways that can be deployed at scale, as these contributions exist below the level of interfaces that cloud providers make available to their customers.
Actionable Exemplar: A public cloud for Canada
Fostering ICT innovation in Canada requires that it is as easy as possible to build and deploy real systems. The single largest barrier to this today is the ability of developers — be they high school students, university researchers, or new ICT startups — the ability to deploy these systems online. By encouraging and subsidizing the development of a large publicly accessible set of computing resources for Canadians, this barrier would be removed.
Such a system should not be viewed as a "Testbed." It should be possible to build and deploy real systems on it, and the expectations with regard to level of service, performance, connectivity and security, should all be similar to those of real hosted environments. However, the system should be available to incubate new developmental software as it is deployed into the wild.
There are a number of ways such a system could be realized: First, Canada's national research network, CANARIE, could be extended with the ability to provide computational hosting and the associated management. CANARIE has been incredibly successful at constructing a high–capacity fiber network, and would be a good basis on which to build a well–connected public cloud.
A complimentary approach might be to involve existing hosting providers as partners in the construction of such a system. By subsidizing the hosting of small systems these providers would have a natural path to helping successful projects grow out of the public cloud environment as they became self sufficient and their resource requirements increased. This would also represent a value–add for hosting providers, as they could work directly to help new ICT ventures scale up and out.
A publicly–supported platform for building and deploying new hosted software, and for studying the management of large–scale enterprise computing would allow interested young Canadians, small enterprises, and researchers, to realize new ideas without being distracted by the logistics and costs that presently impede them. However, it should be informed by a sense of the applications that might use it. In the next section, I attempt to discuss some example applications.
Goal 3: Base the design and deployment of infrastructure on concrete examples
Infrastructure alone is Not Enough
A public cloud in Canada, and for Canadians should not be viewed strictly as a "testbed" for the simple reason that research testbeds that I have seen in the past have often been founded on the assumption that providing a platform for technology is sufficient on its own to foster innovation. This "if you build it, they will come" approach has a number of problems, the largest being that it is very hard to design a useful system without understanding who your users will be. Fortunately, there are a number of immediately obvious consumers of such a public infrastructure that would benefit Canadians and drive the system's development.
The following examples are meant to sketch the sort of applications that might usefully guide the initial design of compute infrastructure for Canadians. As the motivation for this infrastructure is that of fostering innovation, this list is hardly intended to be comprehensive.
Example Service 1: Simple Business IT for SMEs
Industrial (Venture) Development for Industrial Consumers
The Digital Economy discussion document points out that Canadian companies are relatively slow to adopt new technologies, and that small to medium enterprises are particularly starved for effective ICT. One candidate application for the sort of public infrastructure that I have proposed above is to provide software and expertise to help these businesses.
A simple example in this space is to maintain a set of useful software tools and services that can be used to help bootstrap the IT concerns of especially small companies. As new companies grow, the challenges of building out capabilities around email, document management, shared access to data, and backup all present serious challenges and potentially formidable costs.
A solution to this problem would provide small businesses with the resources that they need to build out these sorts of applications quickly and easily. It might be approached in a number of ways: It could be constructed as a hosted suite of web–based applications, similar to Google Apps for Business5, but hosted in Canada and with attention raised to information privacy concerns. Alternatively, it could be implemented as a set of template virtual machine appliances that are easy for SMEs to install and configure, but that run on premises allowing a greater degree of control over operations and data. Such an approach could be built with either open–source or commercial software, and could be paired with additional services (such as backup, or disaster recovery) that continue to represent a value from the upstream infrastructure.
This example, in any of it's variants, could be approached as a start–up or as a new value–add service offered by an incumbent hosting provider or data carrier. It would provide a clear and immediate value to SMEs in Canada, who are starved for effective and supported early IT solutions, and it could ultimately be made available as a tool to assist new ventures get off the ground.
Example Service 2: Survey Design, Collection and Archiving for Research Scientists
Open–Source Development for Research Consumers
Researchers in both social and biological sciences increasingly take advantage of the Internet to do data collection during studies. Sites such as Surveymonkey are often used to collect results from participants in a study, especially in cases where those participants may be many in number, or geographically dispersed. Unfortunately, as mentioned earlier, the privacy concerns associated with personal data mean that researchers must take care when using these sites so as to either ensure that they have the consent of their participants or to avoid sending personal information, such as participant email addresses.
A centralized web–based service, in Canada, to aid researchers in the design and implementation of web–based survey data collection would be a valuable resource. It could also help address concerns about requirements for data archiving. This example could be undertaken as an open–source project, possibly beginning as an undergraduate course project or as something that stems from the high–school programming challenge suggestion in Goal 1. Being open source, and hosted on public infrastructure would allow a community to form among parties interested in tackling problems around survey–based data collection and result not only in technical contributions, but also useful social networks across Canadian institutions.
Example Service 3: A provenance–based government department
Research Development for Research / Public Consumers
A federal commitment to support this class of public ICT infrastructure also has the potential to spur interesting new research directions. One example of this involves the development of new systems for tracking the provenance of electronic information.
In modern systems, it is increasingly possible to track the lifetimes and relationships of data. As in word processing software, changes to documents can be tracked for revisions, but this support could be extended to follow information relating to documents as they are discussed through email or copied and pasted between different applications. In short, there is an enormous wealth of information embedded in how humans interact with ICT beyond the raw contents of documents and emails, and this information could be extended to help people work more efficiently and to enhance our ability to search for related information.
Systems that record interactions with software and the movement of data over the network is already being investigated both academically and in industrial research. A major challenge in this field though is to understand how these systems can be constructed in such a way as to provide valuable new functionalities (such as enhanced search, or assisting E–discovery) while still protecting the privacy of personal information. It is difficult to explore the issues in this space without a real user community to study. An approach to solve this problem would be to allow researchers to work with a smaller government department, for instance the National Archives, and move their IT systems into an environment that is hosted on public infrastructure as suggested in Example 1 above. This system could then be extended to track relationships between emails, the associated research in government archives, and documents resulting from that research.
Computer Science researchers would benefit by having a set of real users to study and work with. The Archives staff (for example) would benefit by having more detailed tools to record, audit, and track their own work. Finally, there would be a cost and environmental benefit, as with Example 1, to consolidating IT services.
Example Service 4: Green Infrastructure Management
Research / Industrial (Venture) Development for Industrial Consumers
A final example of how publicly–supported infrastructure would be of great benefit to new innovation is in the access that it would provide for both Canadian researchers and startups to innovate within the datacenter. As computing resources are consolidated into centralized public and private cloud environments, exciting challenges are emerging that are frustratingly difficult to innovate for practically. As an example, a major research theme and the problem tackled by a large number of Canadian (IRAP–supported) startups, is to provide automated management of computer systems to reduce power consumption. Approaches in this space include techniques such as automatically powering down idle desktops and servers, moving software to be close to lower–cost or renewable power sources, and time–shifting non–critical computation to avoid peak power.
Public infrastructure could provide these stakeholders with an opportunity to collect relevant power consumption data from real systems, and also to build and deploy new approaches to managing for power reductions. The use of virtualization, common in cloud environments can be extended to allow the safe, incremental deployments of new management services below production workloads.
The four example applications above are intended just as sketches to illustrate the potential synergies that publicly–supported computational infrastructure could catalyze. They are also intended to emphasize the need to focus on application concerns in the design of such a system.
The Canadian government has already spend considerable effort in supporting national network and compute infrastructure. In particular, the Compute Canada consortia of high–performance computing sites, and Canada's national optical data network, CANARIE. These platforms have a history of technical excellence and innovation, but have historically catered to a relatively small number of scientific computation–type consumers. These workloads, and the researchers that use these systems represent an incredible value to Canada but are also fundamentally different to the class of workload proposed in this document. High–performance computing typically requires very large numbers (i.e. thousands or more) of computers for relatively brief (i.e. days or weeks) periods of time in order to answer hard computational questions.
The infrastructure proposed here would be in support of smaller individual projects that run for long periods of time. The platform must enable the high school students described at the start of this document to build a new piece of software, say for instance an open–source version of Facebook that responds to privacy concerns, put it online, and share it with friends as it grows and matures over time.
While a public cloud should provide both inexpensive and simple to use access to networked compute and storage resources, it should balance the testbed–style requirement of encouraging people to experiment and try new things, while still providing sufficient stability and isolation for people to build and evolve applications for large numbers of users. The use of virtualization in commercial compute facilities such as Amazon's EC2 is a good demonstration of how this sort of balance can be realized in practice.
I strongly believe that existing government infrastructure projects, in particular CANARIE, present an excellent platform from which to build this class of infrastructure, and that by doing so Canadians would exponentiate the value that they garner from these investments.
Goal 4: Take an open and pervasive approach to security and privacy
A final, but important goal in considering Canada's strategy around encouraging new ICT projects, and the evolution of current systems are those of security and privacy. As the time from design and development into to production use for software systems is now shorter than ever, the opportunities to audit and ensure their safety and security are fewer than ever. Two approaches to addressing these concerns have been mentioned in the three preceding goals, but deserve specific discussion:
Canadians must be educated about security and privacy concerns associated with software systems
The level of discussion in the forums on Canada's digital economy strategy speak to the fact that there is a group of Canadians who are informed and engaged in a public discussion regarding the policies associated with digital information, the protection of private data, and the security of information systems. This is, unfortunately, a very small subset of our population.
In order to raise the level of discussion, and to avoid the potential damage from catastrophic failures associated with system compromises and the release of private information, the government should emphasize a focus on understanding issues around information privacy. This should be incorporated into high–school curriculum, but also presented in a way where it can be made available to the large portion of older Canadians who are less familiar with the issues associated with these new technologies.
Education must also be strengthened for the people who build these systems. As a University–level educator, I feel a strong personal need to ensure that our students understand that for the software that they build to be correct, that it must be stable and secure. However, while these students can be provided with the skills and tools to include security concerns in their design and development, there is an ongoing responsibility to check and ensure the security of deployed software.
Public infrastructure can improve software security
Security flaws in software often stem from either a lack of developer understanding and experience, or insufficient audit and test. These flaws can be exploited to compromise the protection of private data and to abuse the trust of a system's users.
A public platform for hosting new ICT projects has the potential to respond to security concerns in young and intuitively higher–risk software. Incubatory systems developed by students and startups suffer from challenges like developer inexperience and time–to–market concerns that may lead to the unintentional inclusion of vulnerabilities. Fortunately, this platform has the potential to provide a common space for the audit and protection of systems. It would, for instance, provide an environment within which Public Safety Canada's National Cyber Security Strategy Initiative could become involved in performing black–box security audit of hosted systems, and could work to both educate developers on how to secure their systems and could train highly–qualified personnel in issues around securing ICT systems.
From a research perspective, there are also excellent opportunities to use this platform to develop and deploy new programming tools that help build secure systems and protect user data. As a concrete example, systems that provide practical information flow control could be developed and deployed to allow sensitive data such as credit card numbers or email addresses to be tagged as such, and prevented from being transmitted over the network.
Researchers can help improve the security of public infrastructure
This approach need not be limited to the public cloud proposed above: It would be of great national value for government departments involved in the Cyber Security Strategy Initiative, and the departments, at all levels of government, who maintain critical infrastructure, to engage more directly with researchers in order to develop better tools to audit and protect the security of increasingly network–connected systems. In a country whose large natural resources sector depends increasingly on ICT, we should be working to develop tools, techniques, and skilled individuals to protect our systems.
I agree with the broad sentiment in the discussion document that there is the potential for great benefit to Canada through fostering ICT innovation. Through the four goals above, I believe that there is an opportunity to bolster innovation in Canada. We must work to improve education, especially prior to university, to ensure that young Canadians are empowered to play with technology and turn their ideas into real systems. We must work to remove barriers to developing interesting new systems, in particular by building out national infrastructure to allow Canadians to design and deploy new software in Canada. To be effective, the design of this infrastructure should be driven by the concerns of real candidate applications, but should also place an emphasis on being available for Canadians to use as quickly as possible, and evolving over time. Finally, we must take a detailed and end–end–to end approach to teaching Canadians about security and privacy issues, and ensuring that the systems we build preserve these properties.
I propose the development of an ICT innovation roadmap that provides a single point of exposition explaining the government–supported efforts to foster and assist innovation, and a strong emphasis on ensuring that the parties involved in each of these programs are aware of each other's activities. Since returning to Canada from my doctoral work in the UK in 2006, I have been continuously impressed by the energy, enthusiasm, and competence of individuals working in many aspects technology innovation in Canada: local startups in Vancouver, researchers and students that I have worked with at Universities across the country, CANARIE, the federal IRAP program, hosting providers such as RackForce, Vancouver's Advanced networks for higher education and research in British Columbia, and the staff at UBC's University–Industry Liaison Office. I have also been consistently surprised at how little each of these parties knows of each other's interests and activities. I believe that one of the strongest impacts that the government can have on improving ICT innovation in Canada is to take the wealth of existing programs, and work to bridge them into specific paths that stakeholders can follow to turn ideas into real systems. In the spirit of Metcalf's Law, I believe that the value of Canada's own capability for innovation in ICT increases exponentially as a function of its own connectedness.