Actions

CitySDK

From Modelado Foundation

This page is where the CitiWeb chapter of the GCTC Transportation Supercluster Report will be written. For questions, comments, concerns or any other matters concerning this chapter of the GCTC report, please contact Daniel Frye (daniel.frye@urban.systems) or Nivedita Singhvi (niveditasinghvi@gmail.com). Any member of the GCTC Transportation SuperCluster is welcome to add or refine content in this report - just remember that your contributions will be edited by others over time as is normal in all crowd-sourced wiki material.

Note: This Blueprint was formerly titled CitySDK. We have broadened the focus to a CityWeb approach.

Document below:

___________________________________________________________________________________________________________________________________________________________

CityWeb - A Smart City Information-Sharing Platform and Urban Solutions Resource

Abstract

This Blueprint is a proposal for "CityWeb", an information-sharing platform and Open Data Portal for Smart Cities.



Introduction

Technology becomes more pervasive everyday, and cheaper, faster and easier to use. We expect more from it with every new generation. Two significant technology trends, namely Internet of Things (IoT) and open data, are promising innovation and change at an even greater pace than the usual rapid-fire deployment and adoption of technology. Increased funding in the Smart Cities, Transportation, Grid and Energy sectors, which seek to exploit these trends, are driving the need for greater software development. So are Federal Government initiatives requiring compliance. With IoT and open data, it is becoming increasingly possible to build complex, interoperable software ecosystems that provide us with a richer, more time-efficient, cost-efficient, more energy-efficient and human-friendly digital quality of life.

However, the cost to develop, deploy and maintain these complex technology projects isn't getting correspondingly cheaper or easier. The burden of achieving these goals is still difficult for those in the public sector, academia, or even commercial organizations who might not have deep emerging technology skills. Writing "Smart City" applications can be hard. Often, the software and tooling environment is proprietary and the resulting applications fail to interoperate with applications developed elsewhere. It can also be expensive due to a lack of in-house knowledge, skills and tools for such software.

There is an understandable hesitation in adopting closed, proprietary solutions or even APIs that are pushed forward by commercial vendors. Even if the API is open, the code supporting it often is not, and locks the consumer into the ecosystem of the commercial vendor, without the ability to interoperate with others. The vertical software stack supporting such alternatives only results in the use case or application sector getting siloed into fragmented ecosystems. There are significant cost and adoption advantages when APIs are not only open but backed by open source communities. Leveraging such available resources (or getting them to cooperate with each other) would be valuable. It would also align with the Federal initiative for a "City Web", which encourages the adoption of common and proven approaches to the Smart City mission.

The President's Council of Advisors on Science and Technology (PCAST) issued a report in 2016 on "Technology and the Future of Cities" [1], in which they identify the need for more effective approaches to data integration and sharing to solve problems in cities. They point out the:

  • Lack of universally accepted platforms and standards
  • City incentives that drive a focus on local issues
  • Incomplete awareness of available solutions
  • Lengthy procurement processes that are unsuitable for agile, iterative, technology-based solutions

and resulting:

  • Uneven distribution of solutions
  • Idiosyncratic implementations
  • Rarely re-usable software for other cities
  • Expensive implementations
  • Disadvantages to smaller cities with fewer resources, less capacity for innovation who fall further behind in the digital quality of life offered to their residents.

"There are few private and no public mechanisms today to distribute the new knowledge and data associated with innovations comprehensively across the nation's cities. There is no "app store" specific to city applications..."

Hence they recommend the concept of a comprehensive information infrastructure for cities to use and share, the notion of a "City Web", an information-sharing platform benefiting all cities, especially those with fewer resources. This would include information on solutions, best practices which have been tried and tested, and had the benefit of experience. "The goal of the City Web is to allow the accumulation and replication of urban solutions and associated data and technologies in ways that benefit cities with different sizes, different technological know-how, and different financial capabilities."

We use the above concept of a "City Web" from the PCAST report to build upon and address these issues and more. To that end, we thus propose the implementation of "CityWeb", an open data platform and smart city solutions resource. CityWeb can be built and implemented for any locality or Smart City, supplemented by collaboration amongst participants and cities, domain experts and users, and strong open source development communities working in the Smart City technology fields.


Scope and Description of Terms

Before we elaborate on the CityWeb proposal, some discussion of the concepts and terms used in this chapter follows. There is a wide variance in the way these terms are used, and it would help to clarify the meaning and scope of our use.

Smart Cities

We'll start with clarifying the term "Smart Cities." "Smart Cities" is a somewhat fuzzy concept with no single, widely-held definition. As this Smart Cities Definitions paper describes, there are many definitions associated with the term which has been used since the 1990s. For our purposes, we consider the following three closely related descriptions:

  • "Harrison et al. (2010), in an IBM corporate document, stated that the term “smart city” denotes an “instrumented, interconnected and intelligent city.” “Instrumented” refers to the capability of capturing and integrating live real-world data through the use of sensors, meters, appliances, personal devices, and other similar sensors. “Interconnected” means the integration of these data into a computing platform that allows the communication of such information among the various city services. “Intelligent” refers to the inclusion of complex analytics, modelling, optimization, and visualization services to make better operational decisions (Harrison et al., 2010)."
  • "Smart city as a high-tech intensive and advanced city that connects people, information and city elements using new technologies in order to create a sustainable, greener city, competitive and innovative commerce, and an increased life quality (Bakici et. al., 2012)"
  • "A smart city is an urban development vision to integrate multiple information and communication technology (ICT) and Internet of things (IoT) solutions in a secure fashion to manage a city's assets – the city's assets include, but are not limited to, local departments' information systems, schools, libraries, transportation systems, hospitals, power plants, water supply networks, waste management, law enforcement, and other community services. The goal of building a smart city is to improve quality of life by using urban informatics and technology to improve the efficiency of services and meet residents' needs. ICT allows city officials to interact directly with the community and the city infrastructure and to monitor what is happening in the city, how the city is evolving, and how to enable a better quality of life." -- From Wikipedia ("Smart City").

So what would the scope of such a broad term be? For our purposes, we consider the following horizontal sectors or domains, although they are by no means restricted tightly to these:

  • Smart Transit
  • Smart Transportation
  • Smart Wellness
  • Smart Buildings
  • Smart Infrastructure
  • Smart Energy
  • The availability and deployment of environmental technologies and information
  • The availability and deployment of weather information
  • The availability and deployment of technologies for stronger communities and public interaction
  • The availability and deployment of technologies for a richer software ecosystem for commercial and non-commercial goals

IoT and Open Data

Just what are these explosively popular trends, and why are they so hard to work with? For a start, let's consider the IoT space. Web and other Internet applications are fairly mature technologies, but such software has so far resided in devices intended for computing (computers, laptops), or in industrial machines designed for specific, dedicated purposes. As open source software (e.g. Linux and middleware) has increasingly commoditized basic software, it's become cheaper and feasible to place computing software in embedded boards and components that live in everyday devices not normally designed for them (e.g. lights, doors, roads, roofs...).

The arrival and maturing of sensor technologies that give us powerful ways to measure and monitor our environment and objects has coalesced with the effort to share data of all sorts in the public domain and utilize it to improve our quality of life. Sensors and small embedded devices, however, are very different in their operating characteristics from typical computing devices. They are constrained by their size (very small), power characteristics (often running on battery, not electricity), and often need to be kept running with no downtime. There isn't sufficient memory or processing power available to run normal general-purpose software environments. There isn't a cooling unit available to ensure the device doesn't overheat. Hence IoT sensors, devices and other "constrained" hardware require specialized protocols and software to be able to operate in such environments(low power, low memory, slower processing, long use-case, less serviceability).

Solutions implementing such protocols for IoT are offered by Google, Apple, Samsung, GE, Microsoft, and many other commercial and open organizations. However, they all have their own standard and API and devices written to work in one environment will not work in another. This lack of interoperability of IoT devices and sensors is leading to a serious fragmentation of services and infrastructure across all industries and domains. Why this is a bad thing for consumers is most easily seen with examples in the Smart Home area. A GE oven could only talk to a GE controller, a Samsung refrigerator would require a Samsung controller, and a Phillips light bulb would need a Phillips controller. Ideally, homeowners would like to be able to use a single controller or app to talk to all their devices at home, otherwise they would be simply overwhelmed with the number of apps and controllers they would need. They would also be locked into buying that vendor's products. For instance, if one light bulb failed, as all the other bulbs and their controller was from GE, talking GE APIs, the homeowner would be forced to buy a GE bulb that could talk to the controller, or face replacing all the bulbs and controller at once.

The importance of APIs and software components that can talk to each other impacts open data as well. Open data as a concept has been around for several years, but of late has received greater attention and formal organizational support and definition. It has also been the focus of several Federal Government initiatives. What is open data? Here are some definitions and descriptions:

  • Wikipedia describes open data as the "...idea that some data should be freely available to everyone to use and republish as they wish, without restrictions from copyright, patents or other mechanisms of control."
  • The Open Data Institute defines open data simply as "data that anyone can access, use or share."
  • The Open Data Handbook, produced by the Open Knowledge Foundation, defines open data as "data that can be freely used, re-used and redistributed by anyone - subject only, at most, to the requirement to attribute and sharealike."
  • In the government sector, the 2013 Federal Government Open Data Policy requires newly-generated government data to be made available in open, machine-readable formats, while continuing to ensure privacy and security.

Why is open data so important? What the deployment of technology is achieving, whether via sensors, increased software solutions across all sectors, or enhanced traditional web applications, is the generation of a large amount of data. Utilities, for example, generate a great deal of data with respect to the consumption of power, water, etc. Transportation departments generate a large amount of data with respect to traffic, parking, public transport, etc. Whether it's data from sectors such as health, economy, community events, or data generated by innumerable other agencies and civic institutions, it can be put to valuable use. Data can be made available to third party developers by defining access to it via an open Application Programming Interface (API), allowing them to build rich smart city solutions for residents and other users. Examples of this type of effort include making public transport schedules and real-time information feeds available as open data via an accepted, industry-wide API standard (General Transport Feed Specification, or GTFS), and allowing application developers to write transit and traffic apps. Commuters benefit from being able to easily look up public transport schedules, routes, and real-time information, leading to more energy-efficient transportation choices and reducing automobile congestion on city roads.

CityWeb Proposal

We propose a "CityWeb" project, which has as its goal the implementation and definition of an integrated data management portal and information-sharing platform for Smart City solutions. It is both a resource for Smart City technology solutions as well as a locality-specific portal with links and and archives of information that are relevant to the community. A CityWeb instance can be implemented for each Smart City, with city-specific information. These CityWeb instances are intended to be bolstered by additional resources in the form of an open source software development community contributing to a Software Development Kit (a "CitySDK") for Smart City technologies.


Below are some key principles of a CityWeb as we envision it, namely:

  • Information Sharing and Community
    • Leveraging the experience and knowledge of previous projects and work done in this space as noted previously to benefit all.
  • Open Data Portal
    • Having data generated by Smart City infrastructure and participants be open and available to users and 3rd party developers
  • Privacy and Control
    • Adhering to "MyData" principles, giving users control over and information about the information that is collected about them, whom it is shared with, and how it is used, and being transparent about such activity
  • Smart Technology Solutions and Resources
    • Sensors and IoT solutions
    • A Software Development Kit for Smart City Solutions (CitySDK) and Open Source project for its development
  • Interoperability
    • Standards and APIs


CityWeb Element Details

Not all of the following elements of a CityWeb are required, but are certainly recommended. The needs of cities and communities vary, as do their resources and capacity to scale solutions.

Information and Knowledge Sharing

The collection, archiving and sharing of domain-specific expertise, best practices, lessons learned and project reports (especially those funded by the Federal Government) is a key goal for a CityWeb. Thus the infrastructure and processes of the CityWeb site implementation must enable the collection of such data and the sharing of such data. This seems trivial on the surface, but requires a thoughtful community and a highly interactive community, as well as the right storage and organization in order to maintain a useful and current archive. That includes mechanisms to make it as easy as possible for contributors to submit their knowledge whether it's sharing documents or editing wikis. It also is critical that continuing curation of the knowledge database and Portal be funded and maintained.

CityWeb Portal infrastructure

Our intended design of a CityWeb Portal functions as a Smart City dashboard of sorts, with real-time updates of civic information meaningful to the residents (e.g. transit schedules, community alerts). It also includes links to selected Smart City applications, websites, and resources. Should the site require user accounts and track user activity, then that data needs to be handled within the guidelines of the "MyData Initiative" [8].

CitySDK

One component of the CityWeb as we visualize it is an open source software development kit created and maintained by an open source development community. The primary goal of both would be to enable, assist and make more efficient the development of Smart City applications. Perhaps as important a goal is to promote interoperability of those applications, and thus the support and development of common open APIs and standards would also a key focus of the project. As noted earlier, writing Smart City applications can be hard. Having an open source software development kit that provides libraries, tools and common APIs would be valuable in addressing this problem. It would make it easier, cheaper and faster to develop, deploy and sustain Smart City applications worldwide. Having common APIs would make it cost-efficient and feasible to share and exploit open data in order to provide a richer, more user-friendly and more efficient digital experience.

Although a large number of "horizontals" or different industries and domains fall into the scope of Smart Cities, it's helpful to note that there is a great deal of commonality in their vertical stacks, i.e., their software implementation. Many of the building blocks and functions needed for these applications (e.g. sensor reading, IoT core frameworks, network communication, security, messaging, database and data management, cloud interfaces, etc.) are the same across horizontal domains. Industry-specific software components for Smart City applications (such as support for the transit API GTFS) are also considered for inclusion in the scope of the CitySDK, where practical.

The intended scope of the CitySDK is the entire vertical stack for an application, from the core IoT framework, including support of IoT sensors, devices and platforms, to data processing and analytics, cloud storage and client application development. The emphasis will be on providing help for emerging technologies which do not yet have an established suite of helper applications and SDKs nor adequate documentation or skills prevalent in the ecosystem.


Benefits of CityWeb

As described above, the CityWeb project is motivated by the need to assist and enable the development of Smart City solutions, with interoperability and information-sharing being key requirements. We also envision the following benefits arising out of a successful implementation of the CityWeb proposal:

  • The CityWeb project will act as a resource for the projects executed under the GCTC SAC Summit umbrella. As described in the PCAST report's CityWeb features [1], one of the CityWeb's goals will be to act as a central repository for information. The projects under the GCTC umbrella (indeed, any project funded by the US government related to Smart Cities) could archive their project reports, blueprints, other documentation, best practices and lessons learnt here. The availability of a central repository of Smart City knowledge and experience, code and tools will help newer projects and other cities get engaged quickly. It will also serve as a resource for the other SuperCluster Action Summits.
  • A large number of urban areas are engaging in Smart City development projects. Most, if not all, are performing their own investigation and research from scratch to determine what needs to be done, what can be done, what potential solutions are available and how to go about implementing them. At present, there does not exist a repository of information on what has been tried, what has worked, what has not worked. Nor is there a handy catalog that one can peruse to gather information on vendors, suppliers, products and solutions. Having such an easily accessible, central store of knowledge and experience would save time and get them going faster, and make available options that might not have been visible otherwise.
  • CityWeb, along with its software development toolkit project, is also enhanced by an open source development community, bringing together best practices and subject matter experts. Access to SMEs in the Smart Cities technology space will be a valuable asset.
  • One of the risks of selecting a vendor and solution is the uncertainty of the future of the technology, especially when no single standard or de-facto market leader is available. When a large number of competing and non-interoperable solutions are available, it's always a risk that the one selected will fail in the marketplace and eventually the technology will require replacement prematurely. The push for open APIs, industry-accepted standards and interoperability gains traction as the number of such cooperating organizations, cities and developers grow.
  • Having common APIs and standards makes it easier for public sector agencies and organizations to make their data public and consumable by 3rd party developers. It also makes it easier for commercial players to interact with each other and build solutions for Smart Cities that benefit their customers and residents.


Next Steps and Conclusions

The above proposal for a CityWeb Information Archive and Smart City Solutions Resource Project follows through on the ideas presented in the PCAST report [1] on the Future of Technology and Cities. It also tries to build upon the Smart City Initiative and GCTC SAC mission. In order to get started on this proposal, we list below the next steps to be taken.

  • Identify collaborators, contributors, users
    • Identify resources that would be valuable to a CityWeb instantiation (e.g. infrastructure, knowledge domains, state-of-the-art technology, etc.)
    • Identify collaborators who could provide resources to the CityWeb (documented experiences, best practices, resources, APIs, etc.)
    • Identify partners and the right skills who would be willing to contribute and participate in open source code development of a CitySDK subproject under the CityWeb
    • Define the infrastructure technology needed to implement the CityWeb instantiation (servers, hosting, portal, software, data management, ...)
  • Get buy-in from partners, collaborators on a plan for the project
    • Get support for a long-term, sustained effort to successfully build such a project and deliver value
  • Publish a plan to go forward with the project
    • Develop a plan to involve GCTC Supercluster projects as they go forward


References

Cited papers, talks, proposals, etc. that were major sources of inspiration