open source awareness

9 downloads 207558 Views 4MB Size Report
devices, add new features for advanced usersor bring Android to devices originally ...... Themes: https://wordpress.org/themes/ … http://tesseracttheme.com.
OPEN SOURCE AWARENESS DR. M. HOCHE

STRUCTURE CAPITAL, ASSESSMENT, COMPLIANCE AND MORE

IPR STATEMENT

Copyright 2016 by Michael Hoche and others. THIS MATERIAL IS FURNISHED ON AN "AS-IS" BASIS. NO WARRANTIES OF ANY KIND, AS TO ANY MATTER INCLUDING, BUT NOT LIMITED TO, WARRANTY OF FITNESS FOR PURPOSE OR MERCHANTABILITY, EXCLUSIVITY, OR RESULTS OBTAINED FROM USE OF THE MATERIAL. NO WARRANTY OF ANY KIND WITH RESPECT TO FREEDOM FROM PATENT, TRADEMARK, OR COPYRIGHT INFRINGEMENT. Use of any trademarks or copyrights in this report is not intended in any way to infringe on the rights of the holder. This work is licensed under 
 Creative Commons Attribution-ShareAlike 4.0 International License.

WHAT IS FREE AND OPEN SOURCE

GROWING USE

There is a growing use of commercial software products. Many systems comprise licensed software products as integral components.

ISO 12207:2008 - SOFTWARE ENGINEERING PROCESSES This International Standard establishes a framework for software processes; 
 terminology that can be referenced. It applies to the acquisition of systems and software products and services, to the supply, development, operation, maintenance, and disposal of software products and the software portion of a system, whether performed internally or externally to an organisation. Those aspects of system definition needed to provide the context for software products and services are included. Software includes the software portion of firmware.

Agreement Processes

The Acquisition Process is used to obtain a product or service in accordance with the acquirer‘s requirements
 An agreement to acquire a product or service according to defined acceptance criteria is established
 A product or service complying with the agreement is accepted The Supply Process is used to provide an acquirer with a product or service that meets agreed requirements
 An agreement to supply a product or service according to defined acceptance criteria is established
 A product or service conforming to the agreement is supplied according to agreed delivery procedures and conditions
 Responsibility for the acquired product or service, as directed by the agreement, is transferred agreement acknowledgement of terms and conditions under which a working relationship is conducted acquisition process of obtaining a system product or service supplier organisation that enters into an agreement for the supply of a product or service product result of a process

PRAGMATIC DELIBERATION

Change … Traditional Development Approach

Required COTS Approach

System Context Requirements

System Context Requirements

Architecture and Design

Implementation

Simultaneous Definition and Tradeoff Implementation

Reference: http://www.sei.cmu.edu/acquisition/tools/methods/cotshome.cfm Software Engineering Institute, Carnegie Mellon University

Architecture and Design

ISO/IEC 19770 - SOFTWARE ASSET MANAGEMENT This International Standard discloses best practice in Software Asset Management (SAM)*. It could be accomplished in multiple increments. Conformance at any of these increments correspond to natural levels of development and management priority. Recognition and reduction of technical debt is given through the ability to show conformance. When an organisation narrows the scope of SAM, certain factors should be considered so that all desired benefits and objectives can be achieved.

‣ The term SAM is intended to cover all software-related assets and reflects market usage. ‣ SAM has wide ranging benefits across other interrelated practices of managing software-related assets. ‣ Implementers of good SAM practices can expect to attain benefits beyond management of the software itself. *software asset management: effective management, control and protection of software assets within an organization, and the effective management, control and protection of information about related assets which are needed in order to manage software assets.

ISO/IEC 19770 - SOFTWARE ASSET MANAGEMENT

Software (License) Asset Management

ISO/IEC 19770-1

Standard provides organizing structure … Organizational Management Control Environment Governance

Roles and Responsibilities

Processes and Procedures

Competence

Planning and Implementation Planning

Implementation

Core Processes Inventory Asset Identification

Inventory Management

Asset Control

Licensing Compliance

Conformance Verification

Verification and Compliance Record Verification

INTELLECTUAL PROPERTY RIGHTS

trademarks™

Property Rights over creations artistic and commercial.

of the mind both

©®

copyrights

patents

Under intellectual property law, owners are granted certain exclusive rights to a variety of intangible assets, such as literary, and artistic works; ideas, discoveries and inventions; and words, phrases, symbols, and designs.

trade

secrets

THE MOST UNKNOWN FRAMEWORK

Licensing: INFORMATION RULES

grants use

Licensor enacts conditions

License Information (Channel)

Software

use

Licensee obeys conditions

DEFINITION

What is FOSS? EARLIER !!! FOSS = Free and Open Source Software

Free(Soft)ware is available for use at no monetary cost, but usually (although not necessarily) closed source with one or more restricted usage rights.

Open-source licenses assures freedom to redistribute and availability of source code. Derived works is authorized and Integrity of authors’ Source code is ensured by the license. There is no discrimination against persons or groups or fields or endeavor. The license is transparent, applying to all factors of the licensed items, not restricting other software and is technology neutral.

The non-profit Open Source Initiative (OSI) protects and promotes open source software, development and communities, championing software freedom in society through education, collaboration, and infrastructure, stewarding the Open Source Definition (OSD), and preventing abuse of the ideals and ethos inherent to the open source movement. See our about and history pages for more. Open source software is software that can be freely used, changed, and shared (in modified or unmodified form) by anyone. Open source software is made by many people, and distributed under licenses that comply with the Open Source Definition.

MANAGING THE SELECTION

Evaluation and selection of appropriate FOSS is essential Implies architecture that minimizes the impact of changing components while making them accessible. Requires understanding of license impacts and risks. Requires a flexible adaptation of requirements and architecture to market, component evolution, and lifecycle. Reference: http://www.sei.cmu.edu/reports/03tr017.pdf

Reference: http://www.sei.cmu.edu/reports/03tr017.pdf

ECONOMICS

License Conditions …

Compliance

Quality Defects Defective Title Non-compliant use

Characteristics

Compliant use Economic beneficial Suitable Quality Characteristics

BENEFITS AND RISKS

The presence of open source has become inevitable. FOSS occurs in acquired and supplied products. FOSS can affect value stream in positive and negative ways.

‣ The benefits are driven by confluence of Cost optimisation, Flexibility, Innovation and business model adaptation. ‣ The risks originate in quality defects, violated conditions, unlicensed use and interdependency. Deficits can result in retract of license, rework, losses due to warranty and liability claims, loss of reputation or even litigation. ‣ Major Categories comprise ‣ Quality defects (failures, errors, misfits, …) ‣ Compliant use (limitation in use, violations of conditions, non-compatibility, …) ‣ Application Domain Expectations (warranty and liability, loss of reputation, …)

ISO/IEC 19770 - SOFTWARE ASSET MANAGEMENT TIERS

Tier 1: Trustworthy Data … means knowing what you have so that you can manage it. Tier 2: Practical Management … means improving management controls and driving immediate benefits. In practice, management typically only starts to take ownership of issues related to SAM after the organisation has recognised the issues which result from not having trustworthy data. The organisation recognises the extent of the risks it faces as well as the opportunities for improvement and savings. This tier covers the basic management control environment, including policies, roles and responsibilities. It also includes targeting and delivering “quick wins” made obvious by the data of Tier 1. Tier 3: Operational Integration … means improving efficiency and effectiveness. Tier 4: Full ISO/IEC SAM conformance … means achieving strategic SAM. Addresses the more advanced and demanding aspects, including its full integration into strategic planning.

SOCIAL IMPACTS

CULTURE ACQUISITION AND SUPPLY

STAGES OF PARTICIPATION Consumption

Identification, curation, Process and Tools, Education on proper use

Compliance Directive, Compliance Education, Easy to use review process for consumption and contribution

Contribution

Influence, Signal, …, especially for strategic projects - the power of participation

Collaboration

Inner source, foundations, working groups, …

Culture and Competency

Recruitment and Retention, Removing Barriers to Participate, Developing FOSS Competency

Communicate

Position on FOSS, Evangelize, Part of a Community, Marketing Success, Transparent, Trustful

POLICY PRACTICE Some Experience ‣ Engineers need and use open source in their day-to-day work. ‣ They are willing to follow company's policy, ‣ but where they do not find the policy sensible beyond a point and hinders their productivity, ‣ they will find a workaround. ‣ The organisation may not like it and may even deem it as a risk, ‣ but the solution is not a stricter policy, it's a policy that works in practice. How to write an open source policy that works ‣ Best written and defined by those who are affected in the field ‣ Accept the reality of open source software and its use, and look at it as an enabler ‣ Avoid overly pessimistic view ‣ Recognise different uses for open source. Not all uses of open source software are equal. … components form critical pieces of solution architectures today, e.g. ‣ as tool ‣ as part of project deliverables, without modifications ‣ as part of project deliverables, with modifications ‣ … more will come

COMMUNITIES OF INTEREST CTO Office, Legal, Business Unit Engineering … should understand Open source policy ought to be geared towards the most common uses. While many customers are aware of open source software and encourage its use, they are also wary of intellectual property contamination. The policy can be tuned accordingly. Execution of policy is important. Having to explain again and again why we need a particular open source software program or tool to multiple teams is a pain. The folks who enforce the policy need to be made aware of open source basics. Routine policy workflow can be automated with a growing and self-learning infrastructure such as internal open source repository that automatically downloads, tracks, and distributes software internally. Empower and educate the people! No amount of policy wording can cover all cases. Hence, it is essential that the technical folks understand what they are doing. Line managers and tech leads need to be empowered to guide, make decisions, and act.

ORGANISATIONAL EMBEDDING

‣ ‣ ‣ ‣

Establish an Open Source Working Group with all stakeholders CTO Office, Legal, Business Unit Engineering Allocate responsibilities to that group – verification, assessment and consultancy Monitor performance and effects – used open source, enabled business, mitigated risk Analyse effects and create feedback and ink efforts to value

ROLES AND RESPONSIBILITY

Manager of an Organisational Component accountable for the risk and benefit responsible for invoking an FOSS assessment

FOSS User / Applicant responsible for evaluating and selecting FOSS items responsible for providing information for the assessment responsible for ensuring compliant use

FOSS Assessor responsible for providing consultancy responsible for indicating and reporting risks responsible for suggesting improvements

FOSS Legal Representative responsible for indicating the legal impact

Head of Engineering informed on the assessment / residual risks accountable for the assessment and consultancy services

FOSS Working Group responsible for responsible for implementation of the directive(s) responsible for Process improvement

MANAGING COMPLIANCE

Values and Services

‣ Accurate analysis ‣ Managed directives ‣ Guidance and consultancy makes compliance accurate and consistent. IP compliance has the following components

‣ ‣ ‣ ‣ ‣ ‣ ‣ ‣

Policy Creation Legal Guidance to Developers Technical Guidance to Developers Creating sound Bill of Materials Remediation of IP issues Production of compliance reports Assessment of economic impact Identification of emergent patterns

MAJOR BEHAVIOURAL PATTERNS

AWARENESS

Known 
 to OTHERS

NOT known 
 to OTHERS

Known to SELF

NOT Known to SELF

ARENA

BLIND SPOT

FACADE

UNKNOWN

TRENDS

A recent survey showed the percentage of companies using OSS had almost doubled. Why? It comes down to economic necessity. If nobody else would using open source, they could ignore it, but if others use it, they are getting something free and you are not, and they have an advantage. Larger companies get bogged down by their IPR portfolios. OSS is an easy way to pool intellectual property rights and even associated intellectual capital. New projects today seem to be open source by default, unless there are good reasons why they shouldn’t be. That’s a complete switch from the proprietary mindset of earlier days. Previously it was, we can’t work with our competitors. But now it’s, they are trying to solve problems we’ve already solved, and vice versa. We should work together for the benefit of both companies and the community at large. Open sourcing has become an default economic decision to share efforts and establish network markets. That is the wave of the future as developers take open source more and more seriously. Companies treating open source launches like product launches. They want to make a big splash, but they want to make sure there is support for the project after the launch.

COMMERCIAL SOFTWARE VS OPEN SOURCE

Commercial

Free and Open Source

Conditions Restrictive Requires payments Enforces dependencies (lock in, release cycle, control of use, …)

Conditions Relaxed Requires recognition Stipulates open innovation No license fees Some complex conditions (incompatibility, deployment requirements, acknowledgements, restricted use of names, …)

Granted Use Restrictive Limited purpose (evaluation, internal use, non commercial use, development, test, … , distribution) Limited context (realm, business domain, term, location, …)

Granted Use Wide Generic purpose Reveals all properties Unlimited context Only few restrictions (on modification, distribution, …)

Standardized Guarantees (Promise) Warranty (assured quality) Liability (assurance for damage) Compliance (assured conformance to applicable regulations and law)

No Guarantees (no promises but) Exclusion of warranty and liability Freedom to inspect quality Community support and use

ORGANISATIONAL PATTERN

Any project has relationships with ‣ the organisation ‣ the business (or other entity) ‣ project-enabling structures Attributes and characteristics of use of FOSS have clearly to be identified comprising ‣ stage (development, operation, maintenance, ..) ‣ applicable life cycle model ‣ technical context ‣ business context

For the span of control the accountable manager has to ensure the sound fulfilment of agreements. An assessment verifies whether rights and restrictions associated with use of FOSS in the defined context are sufficient and whether the conditions are satisfied.

ORGANISATIONAL PATTERN

Recommendations Consider the Context Account for Uncertainty Conduct Comprehensive Evaluations Know that Evaluation Is Continuous Guided by Facts Follow a Defined Process Option: PECA Planning the evaluation Establishing the criteria Collecting the data Analysing the data Good evaluation process should be ‣ cost-effective, yielding results with reasonable effort ‣ iterative, to address the evolving nature of the marketplace ‣ inclusive of multiple criteria, so different aspects of products and systems can be addressed ‣ simple

ENVIRONMENTAL PATTERNS Scan engine analysis of source and binary files based on comparison with the contents of a compliance library. Source Code Matching search scan engine breaks a source code files into many individual searches (“snippets”) so that partial matches to open source pool can be identified License Analysis Files are scanned contained licenses, URIs, e-mails and copyright notices. Rules continuously increasing set of detection rules make analysis of scan results increasingly automated Request and approval Decision to use open source is the result of close collaboration early in the development The goal is to enable developers to request to use Open Source components during development, and receive authorisation, either automatically, or after review by the appropriate stakeholders.

JUDGMENT PATTERNS

▸ The Internet is a fast source of reason and argumentation ▸ There are foundations that provide helpful guidance ▸ OSS Licenses is an intermediate means for establishing holacratic structures that preserves common goods ▸ Free Software Licenses is an means to claim markets ▸ The industry shares the compliance challenge ▸ Trends of emerging governance show the path to a law of common goods

COMPONENTS AND ARCHITECTURE

EXCURSE ARCHITECTURE What Is Software Architecture? The software architecture of a computing system is

a presentation of the system

that aids in the understanding

of how the system will behave.

Software architecture serves as

‣ the blueprint for both the system and the project developing it,

‣ defining the work assignments to be carried out by design and implementation.

It is the primary carrier of qualities such as performance, modifiability, … and compliance, none of which can be achieved without a unifying architectural vision.

Architecture is an artefact for analysis to make sure that a design approach will yield an acceptable system.

By building effective architecture, you can identify design risks and mitigate them early in the development process.

Modern Trends http://resources.sei.cmu.edu/asset_files/Webinar/ 2015_018_101_438680.pdf

ASSESSING ARCHITECTURE

Quality Attribute Scenario •  •  • 

Source of stimulus. •  Stimulus. •  Environment. • 

Artifact. Response. Response measure.

10

Stimulus: use of a Source licensed item of Stimulus: … User, developer, community…

Artifact: information system parts: Source code, … Environment: Stage, business context, department …

5

Response: Conditions met?

0 1 2 3 4 5 6 7 8

Response Measure: Imposed risk

EXAMPLE DESCRIPTIONS

OPEN SYSTEM ENVIRONMENT REFERENCE MODEL

Operating system services (OS) Human/computer interface services (HCI) Data management services (DM) Data interchange services (DI) Software engineering services (SWE) Graphics services (GS) Network services (NS)

Software Engineering Vocabulary: https://pascal.computer.org/sev_display/index.action

EXAMPLE: OPERATING SYSTEM

An operating system is system software that manages computer hardware and software resources and provides common services for computer programs. [wiki] operating system. Collection of software, firmware, and hardware elements that controls the execution of computer programs and provides such services as computer resource allocation, job control, input/output control, and file management in a computer system. [ISO/IEC/IEEE 24765:2017]

FREQUENT CASES

LINUX Linux is a computer operating system assembled under the model of free and open-source software development and distribution. The defining component of Linux is the Linux kernel,[ an operating system kernel first released in1991 by Linus Torvalds. The Free Software Foundation uses the name GNU/Linux to describe the operating system. Linux was originally developed for personal computers based on the Intel x86 architecture, but has since been ported to more platforms. Because of the dominance of Android on smartphones, Linux has the largest installed base of all general-purpose operating systems. Linux is also the leading operating system on servers and other big iron systems, but is used on only around 3% of desktop computers. Linux also runs on embedded systems, which are devices whose operating system is typically built into the firmware and is highly tailored to the system; this includes smartphones and tablet computers, TiVo and similar DVR devices, network routers, facility automation controls, televisions,, video game consoles and smartwatches. The development of Linux is one of the most prominent examples of free and open-source software collaboration. The underlying source code may be used, modified and distributed— commercially or noncommercially— by anyone under the terms of its respective licenses, such as the GNU General Public License. Typically, Linux is packaged in a form known as a Linux distribution or distro for short. Some of the most popular mainstream Linux distributions are Arch Linux, CentOS, Debian, Fedora, Gentoo Linux, Linux Mint, Mageia, openSUSE and Ubuntu, together with commercial distributions such as Red Hat Enterprise Linux and SUSE Linux Enterprise Server. Distributions include the Linux kernel, supporting utilities and libraries, many of which are provided by the GNU Project, and usually a large amount of application software to fulfil the distribution's intended use. Desktop Linux distributions include a windowing system, such as X11, Mir or a Wayland implementation, and an accompanying desktop environment such as GNOME or the KDE Software Compilation. Because Linux is freely redistributable, anyone may create a distribution for any intended use.

LINUX: DISTRIBUTION

LINUX: DISTRIBUTION

LINUX: COMMON LICENSE (RELAXED) 1. You may [run] copy and distribute verbatim copies of the Program's source code as you receive it, … ‣ publish on each copy an appropriate copyright notice and disclaimer of warranty … ‣ keep intact all the notices … ‣ give any other recipients of the Program a copy of this License along with the Program … You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1… ‣ You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. ‣ You must cause any work … that … contains or is derived from the Program …, to be licensed as a whole at no charge to all third parties under the terms of this License. ‣ If the modified program normally reads commands interactively .., display an announcement including an appropriate copyright notice and a notice that there is no warranty … … If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Guide: https://www.gnu.org/licenses/quick-guide-gplv3.html

LINUX: COMMON LICENSE (RELAXED) 3. You may copy and distribute the Program … in object code or executable form under the terms … [optionally] ‣ Accompany it with the complete corresponding machine-readable source code ‣ Accompany it with a written offer to give the source code any third party ‣ Accompany it with the information you received as to the offer to distribute corresponding source code. (only for noncommercial distribution …) The source code for a work means the preferred form of the work for making modifications to it. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. Parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License.…However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. By modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License … 6…. The recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License.

LINUX: COMMON LICENSE (RELAXED) 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason, conditions are imposed on you that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all… 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. … If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY NO LIABILITY License: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html

SCENARIO

DRIVER / KERNEL MODE OPERATING SYSTEM DRIVER COMPUTER HARDWARE

OPERATING SYSTEM SOURCES DRIVER SOURCE

GIVE AWAY, NOTE THAT THE BUNDLING CAN BE CONSIDERED AS INDEPENDENT WORK, HENCE LICENSED CAN BE SOLED OR LICENSED

SCENARIO

DRIVER / KERNEL MODE ▸ Development of driver for a specific hardware ▸ All Constraints must be fulfilled ▸ Must be licensed under GNU Public License 2.0

▸ Additionally incorporation of third party software might lead to compatibility issues, see https://www.gnu.org/ licenses/license-list.en.html

SCENARIO

APPLICATION IN USER MODE CAN BE ARBITRARILY LICENSED APPLICATION OPERATING SYSTEM

LIBRARIES

NOTICE ON USE, PARTS PROVISIONED AS IS

OPERATING SYSTEM SOURCES

LIBRARIES SOURCES

SCENARIO

APPLICATION / USER MODE ▸ Development of application for a specific function for an end user that uses operating system services ▸ What services are used: standard libs and other run time libraries ▸ What implementation technology is used: GCC, … ▸ All Constraints must be fulfilled: prominent notice; reason for independent work ▸ The important exception: https://www.gnu.org/licenses/gccexception-3.1.html ▸ Additionally incorporation of third party software might lead to compatibility issues: https://www.gnu.org/licenses/license-list.en.html

LIBRARIES: COMMON LICENSE (RELAXED) 0. Library means a collection of software functions ..to be conveniently linked with application programs to form executables. Work based on the Library means either the Library or any derivative work under copyright law … Source code means the preferred form of the work for making modifications to it.

1. You may copy and distribute copies of the Library's complete source code as you receive it, provided that ‣ you publish on each copy an appropriate copyright notice and disclaimer of warranty ‣ keep intact all the notices that refer to this License and to the absence of any warranty ‣ distribute a copy of this License along with the Library. You may charge a fee for transferring a copy, and you may at your option offer warranty protection. 2. You may modify your copy of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1, if ‣ The modified work must itself be a software library. ‣ You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change. ‣ You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License. If a facility in the modified Library refers to a function to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function, the facility still operates, and performs whatever part of its purpose remains meaningful. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.

LIBRARIES: COMMON LICENSE (RELAXED) 3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. … This option is useful when you wish to copy part of the code of the Library into a program that is not a library. 4. You may copy and distribute the Library in object code or executable form provided that you accompany it with the complete corresponding machine-readable source code, … If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code. 5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License. Linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library, rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables. When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law. If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself.

APPLICATION AND LIBRARIES

SHARED OBJECTS / DYNAMIC BINDING APPLICATION SOURCE HERDER SOURCE

compile

APPLICATION OBJECT CALLS

HERDER SOURCE LIBRARY OBJECT LIBRARY SOURCE

APPLICATION AND LIBRARIES

STATIC BINDING APPLICATION SOURCE HERDER SOURCE

LIB PART compile

APPLICATION OBJECT LIB PART

LIBRARY SOURCE

LIB PART

LIBRARIES: COMMON LICENSE (RELAXED) 6. As an exception, you may also combine or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications. You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these ‣ Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work; and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. ‣ Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that uses at run time a copy of the library already present on the user's computer system, rather than copying library functions into the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as long as the modified version is interface-compatible with the version that the work was made with. ‣ Accompany the work with a written offer to give the same user the materials … ‣ If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place. ‣ Verify that the user has already received a copy of these materials For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the materials to be distributed need not include anything that is normally distributed with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute.

LIBRARIES: COMMON LICENSE (RELAXED) 7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things: ‣ Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above. ‣ Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 9. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it. 10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties with this License. 11. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason, conditions are imposed on you that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all.

LIBRARIES: COMMON LICENSE (RELAXED) 12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 13. The Free Software Foundation may publish revised and/or new versions of the Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation. 14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. The decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY NO LIABILITY License: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html

ANDROID Android is a mobile operating system developed by Google, based on the Linux kernel and designed primarily for touchscreen mobile devices such as smartphones and tablets. Android's user interface is mainly based on direct manipulation, using touch gestures that loosely correspond to real-world actions, such as swiping, tapping and pinching, to manipulate on-screen objects, along with a virtual keyboard for text input. In addition to touchscreen devices, Google has further developed Android TV for televisions, Android Auto for cars, and Android Wear for wrist watches, each with a specialised user interface. Variants of Android are also used on notebooks, game consoles, digital cameras, and other electronics. Android has the largest installed base of all operating systems of any kind and on smartphones it is dominant by any metric. Initially developed by Android, Inc., which Google bought in 2005, Android was unveiled in 2007 along with the founding of the Open Handset Alliance – a consortium of hardware, software, and telecommunication companies devoted to advancing open standards for mobile devices. Android's source code is released by Google under open source licenses, although most Android devices ultimately ship with a combination of open source and proprietary software, including proprietary software required for accessing Google services. Android is popular with technology companies that require a ready-made, low-cost and customisable operating system for high-tech devices. Its open nature has encouraged a large community of developers and enthusiasts to use the open-source code as a foundation for community-driven projects, which deliver updates to older devices, add new features for advanced users or bring Android to devices originally shipped with other operating systems. The success of Android has made it a target for patent (and copyright) litigation as part of the so-called "smartphone wars" between technology companies.

ANDROID

The preferred license for the Android Open Source Project is the Apache Software License, Version 2.0

Licensing: https://source.android.com/source/licenses.html

ANDROID: COMMON LICENSE (RELAXED) 1. Definitions. License shall mean the terms and conditions for use, reproduction, and distribution … Licensor shall mean the copyright owner or entity authorised by the copyright owner that is granting the License. Source form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. Object form shall mean any form resulting from mechanical transformation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. Work shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice. Derivative Works shall mean any work, whether in Source or Object form, that is based on or derived from the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. Contribution shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorised to submit on behalf of the copyright owner. Contributor shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.

ANDROID: COMMON LICENSE (RELAXED)

3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works, with or without modifications, and in Source or Object form, provided that You meet the following conditions ‣ You must give any other recipients of the Work or Derivative Works a copy of this License ‣ You must cause any modified files to carry prominent notices stating that You changed the files ‣ You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and ‣ If the Work includes a NOTICE text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, … You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. ‣ You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works.

ANDROID: COMMON LICENSE (RELAXED)

5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. Disclaimer of Warranty Limitation of Liability. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. License: http://apache.org/licenses/LICENSE-2.0.html

SCENARIO

APP DEVELOPMENT ‣ Android apps are written in the Java programming language. ‣ The Android SDK tools compile code along with any resources into an Android application package. ‣Each Android app lives in its own security sandbox • The Android operating system is a multi-user Linux system in which each app is a different user. • By default, the system assigns each app a unique Linux user ID. The system sets permissions. • Each process has its own virtual machine, so an app's code runs in isolation from other apps. • By default, every app runs in its own Linux process. The Android system implements the principle of least privilege. That is, each app, by default, has access only to the components that it requires to do its work and no more. This creates a very secure environment in which an app cannot access parts of the system for which it is not given permission. However, there are ways for an app to share data with other apps and for an app to access system services. App components are the essential building blocks of an Android app. Each component is an entry point through which the system or a user can enter your app. Some components depend on others. There are four different types of app components: • Activities. … is the entry point for interacting with the user. It represents a single screen with a user interface. • Services. … is a general-purpose entry point for keeping an app running in the background for all kinds of reasons. • Content providers. … manages a shared set of app data that you can store in the file system, in a SQLite database, on the web, or on any other persistent storage location. • Broadcast receivers. … is a component that enables the system to deliver events to the app outside of a regular user flow, allowing the app to respond to system-wide broadcast announcements

SCENARIO

APP DEVELOPMENT Android Runtime (ART) is an application runtime environment used by the Android operating system. Dalvik is a discontinued process virtual machine in Google's Android operating system that executes applications written for Android. Dalvik is an integral part of the Android software stack. Ahead-of-time (AOT) compilation is the act of compiling a high-level programming language, or an intermediate language such as Java bytecode, into a native (system-dependent) machine code with the intention of executing the resulting binary file natively.

SCENARIO

APP DEVELOPMENT ENVIRONMENT Android Studio is the official integrated development environment for Android platform development.

‣ freely available under the Apache License 2.0 ‣ Functions comprise code editing, debugging, performance tooling, a build system, and an instant build/deploy system See features at https://developer.android.com/studio/index.html

SCENARIO

APP

USUALLY KEPT SECRET FOR INFORMATION ADVANTAGE

CAN BE ARBITRARILY LICENSED

ANDROID APPLICATION PACKAGE

APPLICATION SOURCES

ANDROID

FRAMEWORKS

DEVELOPMENT INFRASTRUCTURE

ANDROID MOBILE HARDWARE

NOTICE ON USE, PROVISIONED AS IS MOSTLY UNDER APACHE 2.0, LINUX LICENSES ARE “HIDDEN”

PROVIDED BY DIFFERENT PARTIES, NOTE THE GUARANTEES NOT MADE

SCENARIO

APP DEVELOPMENT ▸ Development of specific function running on Android ▸ All Constraints must be fulfilled ▸ Can be freely licensed ▸ Note the quality guarantees

▸ Additionally incorporation of third party software might lead to compatibility issues, see https://www.gnu.org/licenses/licenselist.en.html

SCENARIO

STORES ▸ Development of structured stores are versatile ▸ All Constraints must be fulfilled ▸ Note the license ▸ Note the quality guarantees

▸ Additionally incorporation of third party software might lead to compatibility issues …

DATABASES A database is an organised collection of data. It is the collection of schemas, tables, queries, reports, views, and other objects. The data are typically organised to model aspects of reality in a way that supports processes requiring information. A database management system (DBMS) is an application platform that interacts with the user, other applications, and the database itself to capture, retrieve and analyse data. A general-purpose DBMS is designed to allow the definition, creation, querying, update, and administration of databases. Well-known DBMSs include MySQL, PostgreSQL, MongoDB, Microsoft SQL Server, Oracle, Sybase, SAP HANA, and IBM DB2. A database is not generally portable across different DBMSs, but different DBMS can interoperate by using standards such as SQL and ODBC or JDBC to allow a single application to work with more than one DBMS. Database management systems are often classified according to the database model that they support. Query languages are computer languages used to make queries in databases and information systems.

SQLITE DATABASE

WebSite: https://sqlite.org License: https://sqlite.org/copyright.html SQLite Application Cases ‣ Embedded devices and the internet of things ‣ Application file format ‣ Websites ‣ Data analysis ‣ Cache for enterprise data ‣ Server-side database ‣ File archives ‣ Replacement for ad hoc disk files ‣ Internal or temporary databases ‣ Stand-in for an enterprise database during demos or testing ‣ Education and Training ‣ Experimental SQL language extensions

SQLITE DATABASE SQLite Is Public Domain

‣ All of the code and documentation in SQLite has been dedicated to the public domain by the authors. ‣ All code authors, and representatives of the companies they work for, have signed affidavits dedicating their contributions to the public domain and originals of those signed affidavits are stored in a firesafe at the main offices of Hwaci. ‣ Anyone is free to copy, modify, publish, use, compile, sell, or distribute the original SQLite code, either in source code form or as a compiled binary, for any purpose, commercial or non-commercial, and by any means. ‣ The previous paragraph applies to the deliverable code and documentation in SQLite those parts of the SQLite library that you actually bundle and ship with a larger application. Some scripts used as part of the build process (for example the "configure" scripts generated by autoconf) might fall under other open-source licenses. ‣ Nothing from these build scripts ever reaches the final deliverable SQLite library, however, and so the licenses associated with those scripts should not be a factor in assessing your rights to copy and use the SQLite library. ‣ All of the deliverable code in SQLite has been written from scratch. No code has been taken from other projects or from the open internet. Every line of code can be traced back to its original author, and all of those authors have public domain dedications on file. So the SQLite code base is clean and is uncontaminated with licensed code from other projects.

SQLITE DATABASE

Obtaining An License

‣ Even though SQLite is in the public domain and does not require a license, some users want to obtain a license anyway. Some reasons for obtaining a license include: • Your company desires warranty of title and/or indemnity against claims of copyright infringement. • You are using SQLite in a jurisdiction that does not recognise the public domain. • You are using SQLite in a jurisdiction that does not recognise the right of an author to dedicate their work to the public domain. • You want to hold a tangible legal document as evidence that you have the legal right to use and distribute SQLite. • Your legal department tells you that you have to purchase a license. ‣ If you feel like you really need to purchase a license for SQLite, Hwaci, the company that employs all the developers of SQLite, will sell you one. All proceeds from the sale of SQLite licenses are used to fund continuing improvement and support of SQLite.

SQLITE DATABASE Contributed Code

‣ In order to keep SQLite completely free and unencumbered by copyright, all new contributors to the SQLite code base are asked to dedicate their contributions to the public domain. If you want to send a patch or enhancement for possible inclusion in the SQLite source tree, please accompany the patch with the following statement: ‣ The author or authors of this code dedicate any and all copyright interest in this code to the public domain. We make this dedication for the benefit of the public at large and to the detriment of our heirs and successors. We intend this dedication to be an overt act of relinquishment in perpetuity of all present and future rights to this code under copyright law. ‣ We are not able to accept patches or changes to SQLite that are not accompanied by a statement such as the above. ‣ In addition, if you make changes or enhancements as an employee, then a simple statement such as the above is insufficient. You must also send by surface mail a copyright release signed by a company officer. A signed original of the copyright release should be mailed to: Hwaci 6200 Maple Cove Lane Charlotte, NC 28269 USA ‣ A template copyright release is available in PDF or HTML. You can use this release to make future changes.

MYSQL DATABASE

WebSite: https://www.mysql.com A nice interpretation of the OSS Licensing: https://www.xaprb.com/blog/2009/02/17/when-are-you-requiredto-have-a-commercial-mysql-license/ MySql Features ‣ Embedded devices and the internet of things ‣ High Availability with MySQL Group Replication ‣ Elasticity ‣ Failure Detection ‣ Fault Tolerance ‣ Self-Healing ‣ MonitoringCache for enterprise data

MySQL Enterprise Edition MySQL Standard Edition MySQL Classic Edition MySQL Cluster CGE MySQL Embedded (OEM/ISV) MySQL Community Edition

MYSQL DATABASE

Oracle provides its MySQL database server and MySQL Client Libraries under a dual license model designed to meet the development and distribution needs of both commercial distributors and open source projects. http://www.mysql.com/about/legal/ http://dev.mysql.com/downloads/mysql/ FOSS License Exception https://www.mysql.com/about/legal/licensing/foss-exception/ Oracle’s Free and Open Source Software ("FOSS") License Exception allows developers of FOSS applications to include Oracle's MySQL Client Libraries (also referred to as "MySQL Drivers" or "MySQL Connectors") with their FOSS applications. MySQL Client Libraries are typically licensed pursuant to version 2 of the General Public License ("GPL"), but this exception permits distribution of certain MySQL Client Libraries with a developer’s FOSS applications licensed under the terms of another FOSS license listed below, even though such other FOSS license may be incompatible with the GPL.

MYSQL DATABASE

Oracle’s FOSS License Exception Terms and Conditions Derivative Work means a derivative work, as defined under applicable copyright law, formed entirely from the Program and one or more FOSS Applications. FOSS Application means a free and open source software application distributed subject to a license listed in the section below titled "FOSS License List." FOSS Notice means a notice placed by Oracle or MySQL in a copy of the MySQL Client Libraries stating that such copy of the MySQL Client Libraries may be distributed under Oracle's or MySQL’s FOSS (or FLOSS) License Exception. Independent Work means portions of the Derivative Work that are not derived from the Program and can reasonably be considered independent and separate works. Program means a copy of Oracle’s MySQL Client Libraries that contains a FOSS Notice. A FOSS application developer ("you" or "your") may distribute a Derivative Work provided that you and the Derivative Work meet all of the following conditions: a You obey the GPL in all respects for the Program and all portions (including modifications) of the Program included in the Derivative Work (provided that this condition does not apply to Independent Works); b The Derivative Work does not include any work licensed under the GPL other than the Program; c You distribute Independent Works subject to a license listed … d You distribute Independent Works in object code or executable form with the complete corresponding machine-readable source code on the same medium and under the same FOSS license applying to the object code or executable forms; e All works that are aggregated with the Program or the Derivative Work on a medium or volume of storage are not derivative works of the Program, Derivative Work or FOSS Application, and must reasonably be considered independent and separate works. Oracle reserves all rights not expressly granted in these terms and conditions. If all of the above conditions are not met, then this FOSS License Exception does not apply to you or your Derivative Work.

POSTGRESQL DATABASE WebSite: https://www.postgresql.org

PostgreSQL is a powerful, open source object-relational database system. It has now two decades of development and a proven architecture that has earned it a strong reputation for reliability, data integrity, and correctness. ‣ It runs on all major operating systems. It is fully ACID compliant, has full support for foreign keys, joins, views, triggers, and stored procedures (in multiple languages). ‣ It includes most SQL:2008 data types and supports storage of binary large objects, including pictures, sounds, or video. It has native programming interfaces for C/C++, Java, .Net, Perl, Python, Ruby, Tcl, ODBC, among others. ‣ PostgreSQL boasts sophisticated features such as Multi-Version Concurrency Control, point in time recovery, table spaces, asynchronous replication, nested transactions (save points), online/hot backups, a sophisticated query planner/ optimiser, and write ahead logging for fault tolerance. It supports international character sets, multibyte character encodings, Unicode, and it is locale-aware for sorting, case-sensitivity, and formatting. It is highly scalable both in the sheer quantity of data it can manage and in the number of concurrent users it can accommodate. PostgreSQL's source code is available under a liberal open source license. This license gives you the freedom to use, modify and distribute PostgreSQL in any form you like, open or closed source. PostgreSQL is not only a powerful database system capable of running the enterprise, it is a development platform upon which to develop in-house, web, or commercial software products that require a capable RDBMS.

POSTGRESQL DATABASE

License: https://www.postgresql.org/about/licence/ PostgreSQL is released under the PostgreSQL License, a liberal Open Source license, similar to the BSD or MIT licenses. Portions Copyright (c) 1996-2016, The PostgreSQL Global Development Group Portions Copyright (c) 1994, The Regents of the University of California Permission to use, copy, modify, and distribute this software and its documentation for any purpose, without fee, and without a written agreement is hereby granted, provided that the above copyright notice and this paragraph and the following two paragraphs appear in all copies. IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.

POSTGRESQL DATABASE EXTENSIONS

Generalized Search Tree (GIST) GiST indexing is an advanced system which comprises different sorting and searching algorithms including B-tree, B+-tree, R-tree, partial sum trees, ranked B+-trees and many others. It also provides an interface which allows both the creation of custom data types as well as extensible query methods with which to search them. GiST offers the flexibility to specify what you store, how you store it, and the ability to define new ways to search through it, that far exceed those offered by standard B-tree, R-tree and other generalised search algorithms. GiST serves as a foundation for many public projects that use PostgreSQL such as OpenFTS and PostGIS. OpenFTS (Open Source Full Text Search engine) provides online indexing of data and relevance ranking for database searching. PostGIS is a project which adds support for geographic objects in PostgreSQL, allowing it to be used as a spatial database for geographic information systems (GIS), much like ESRI's SDE or Oracle's Spatial extension.

SCENARIO

STRUCTURAL EXTENSIONS ▸ Development of special structured stores are versatile ▸ All Constraints must be fulfilled ▸ Note the license ▸ Note the quality guarantees

▸ Additionally incorporation of third party software might lead to compatibility issues …

EXTENSION SCENARIO PostGIS ‣ PostGIS adds support for geographic objects to the PostgreSQL object-relational database. ‣ PostGIS "spatially enables" the PostgreSQL server, allowing it to be used as a backend spatial database for geographic information systems (GIS) ‣ It is like ESRI's SDE or Oracle's Spatial extension. ‣ PostGIS follows the OpenGIS "Simple Features Specification for SQL" and has been certified as compliant with the "Types and Functions" profile. ‣ PostGIS development was started by Refractions Research as a project in open source spatial database technology. ‣ PostGIS is released under the GNU General Public License. ‣ PostGIS continues to be developed by a group of contributors led by a Project Steering Committee and new features continue to be added.

In computing, a plug-in (or plugin, add-in, addin, add-on, addon, or extension) is a software component that adds a specific feature to an existing computer program. When a program supports plug-ins, it enables customisation. The common examples are the plug-ins used in web browsers to add new features such as search-engines, virus scanners, or the ability to use a new file type such as a new video format. Wellknown browser plug-ins include the Adobe Flash Player, the QuickTime Player, and the Java plug-in, which can launch a user-activated Java applet on a web page to its execution on a local Java virtual machine.

EXTENSION SCENARIO GNU General Public License version 2 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.

PLATFORMS

Computing platform means in general sense, where any piece of software is executed. It may be the hardware or OS, even a web browser as long as the code is executed in it. The term computing platform can refer to different abstraction levels, including a certain hardware architecture, an operating system (OS), and runtime libraries. In total it can be said to be the stage on which computer programs can run. A platform can be seen both as a constraint on the application development process, in that different platforms provide different functionality and restrictions; and as an assistance to the development process, in that they provide low-level functionality ready-made.

SCENARIO

PLATFORM BASED DEVELOPMENT ▸ Eases development and deployment of applications ▸ All Constraints must be fulfilled ▸ Note the license ▸ Note the quality guarantees

▸ Additionally incorporation of third party software might lead to compatibility issues …

JAVA PLATFORM Oracle Java Web Site: https://www.oracle.com/java/index.html

‣ Java is a general-purpose computer programming language that is concurrent, class-based, object-oriented, and designed to have few implementation dependencies. ‣ It is intended to let application developers "write once, run anywhere", meaning that compiled Java code can run on all platforms that support Java without the need for recompilation. ‣ Java applications are typically compiled to bytecode that can run on any Java virtual machine (JVM) regardless of computer architecture. As of 2016, Java is one of the most popular programming languages in use, particularly for client-server web applications. ‣ Java was originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. ‣ The original and reference implementation Java compilers, virtual machines, and class libraries were originally released under proprietary licences. ‣ As of 2007, in compliance with the specifications of the Java Community Process, Sun relicensed most of its Java technologies under the GNU General Public License. Others have also developed alternative implementations of these technologies. ‣ The latest version is Java 8 supported for free by Oracle, although earlier versions are supported both by Oracle and other companies on a commercial basis.

JAVA PLATFORM

All software downloads at the oracle web site are free, and most come with a Developer License that allows you to use full versions of the products at no charge while developing and prototyping your applications, or for strictly self-educational purposes. Unless otherwise specified, there will be no technical support like phone support, or updates to you for the programs licensed under this agreement. You can buy products with full-use licenses at any time from the online Store or from your sales representative. Most operating systems have Java Runtime Environments and there is a license for the Java SE Platform.

EXTENSION SCENARIO Oracle Technology Network License Agreement Oracle is willing to authorise Your access to software associated with this License Agreement only upon the condition that You accept that this Agreement governs Your use of the software. By selecting the “Accept License Agreement” button or box or installing or using the Programs You indicate Your acceptance of this Agreement and Your agreement, as an authorised representative of Your company or organisation or as an individual, to comply with the license terms that apply to the software that You wish to download and access. Oracle refers to Oracle America, Inc. You refers to (a) an entity accessing the Programs; or (b) an individual accessing the Programs. Contractors refers to Your agents and contractors. Program(s) refers to software provided by Oracle pursuant to this Agreement and any updates, error corrections, and/or Program Documentation. Program Documentation refers to Program user manuals and Program installation manuals. Separate Terms refers to license terms that are specified in the Program Documentation that apply to Separately Licensed Third Party Technology. License Rights and Restrictions Oracle grants You a nonexclusive, nontransferable, limited license to internally use the Programs, subject to the restrictions stated in this Agreement, only for the purpose of developing, testing, prototyping, and demonstrating Your application and only as long as Your application has not been used for any data processing, business, commercial, or production purposes, and not for any other purpose. You may allow Your Contractor(s) to use the Programs, provided they are acting on Your behalf to exercise license rights granted in this Agreement and further provided that You are responsible for their compliance with this Agreement in such use. You will have a written agreement with Your Contractor(s) that strictly limits their right to use the Programs and that otherwise protects Oracle’s intellectual property rights to the same extent as this Agreement. You may make copies of the Programs to the extent reasonably necessary to exercise the license rights granted in this Agreement. You may make one copy of the Programs for backup purposes. You may not: ‣ remove or modify any Program markings or any notice of Oracle’s or a licensor’s proprietary rights; ‣ make the Programs available in any manner to any third party (other than Contractors acting on Your behalf as set forth in this Agreement); ‣ use the Programs to provide third party training; ‣ assign this Agreement or distribute, give, or transfer the Programs or an interest in them to any third party, except as expressly permitted in this Agreement for Contractors (the foregoing shall not be construed to limit the rights You may otherwise have with respect to Separately Licensed Third Party Technology); ‣ cause or permit reverse engineering (unless required by law for interoperability), disassembly or decompilation of the Programs; and ‣ disclose results of any Program benchmark tests without Oracle’s prior consent. The Programs may contain source code that, unless expressly licensed in this Agreement for other purposes, is provided solely for reference purposes pursuant to the terms of this Agreement and may not be modified. All rights not expressly granted in this Agreement are reserved by Oracle. If You want to use the Programs or Your application for any purpose other than as expressly permitted under this Agreement, You must obtain from Oracle or an Oracle reseller a valid Programs license under a separate agreement permitting such use. However, You acknowledge that the Programs may not be intended for production use and/or Oracle may not make a version of the Programs available for production or other purposes; any development or other work You undertake with the Programs is at Your sole risk.

EXTENSION SCENARIO Ownership Oracle or its licensors retain all ownership and intellectual property rights to the Programs. Third-Party Technology The Programs may contain or require the use of third party technology that is provided with the Programs. Oracle may provide certain notices to You in Program Documentation, readmes or notice files in connection with such third party technology. Third party technology will be licensed to You either under the terms of this Agreement or, if specified in the Program Documentation, readmes or notice files, under Separate Terms. Your rights to use Separately Licensed Third Party Technology under Separate Terms are not restricted in any way by this Agreement. However, for clarity, notwithstanding the existence of a notice, third party technology that is not Separately Licensed Third Party Technology shall be deemed part of the Programs and is licensed to You under the terms of this Agreement. Source Code for Open Source Software For software that you receive from Oracle in binary form that is licensed under an open source license that gives you the right to receive the source code for that binary, you can obtain a copy of the applicable source code from https://oss.oracle.com/sources/ or http://www.oracle.com/goto/opensourcecode. If the source code for such software was not provided to you with the binary, you can also receive a copy of the source code on physical media by submitting a written request pursuant to the instructions in the "Written Offer for Source Code" section of the latter website. Export Controls Export laws and regulations of the United States and any other relevant local export laws and regulations apply to the Programs . You agree that such export control laws govern Your use of the Programs (including technical data) and any services deliverables provided under this agreement, and You agree to comply with all such export laws and regulations (including "deemed export" and "deemed re-export" regulations). You agree that no data, information, program and/or materials resulting from Programs or services (or direct products thereof) will be exported, directly or indirectly, in violation of these laws, or will be used for any purpose prohibited by these laws including, without limitation, nuclear, chemical, or biological weapons proliferation, or development of missile technology. You confirm: ‣ You will not download, provide, make available or otherwise export or re-export the Programs, directly or indirectly, to countries prohibited by applicable laws and regulations nor to citizens, nationals or residents of those countries. ‣ You are not listed on the United States Department of Treasury lists of Specially Designated Nationals and Blocked Persons, Specially Designated Terrorists, and Specially Designated Narcotic Traffickers, nor are You listed on the United States Department of Commerce Table of Denial Orders. ‣ You will not download or otherwise export or re-export the Programs, directly or indirectly, to persons on the above mentioned lists. ‣ You will not use the Programs for, and will not allow the Programs to be used for, any purposes prohibited by applicable law, including, without limitation, for the development, design, manufacture or production of nuclear, chemical or biological weapons of mass destruction. Information Collection The Programs’ installation and/or auto-update processes, if any, may transmit a limited amount of data to Oracle or its service provider about those processes to help Oracle understand and optimise them. Oracle does not associate the data with personally identifiable information. Refer to Oracle’s Privacy Policy at www.oracle.com/privacy.

EXTENSION SCENARIO Disclaimer of Warranties; Limitation of Liability THE PROGRAMS ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. ORACLE FURTHER DISCLAIMS ALL WARRANTIES, EXPRESS AND IMPLIED, INCLUDING WITHOUT LIMITATION, ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NONINFRINGEMENT . IN NO EVENT WILL ORACLE BE LIABLE FOR ANY INDIRECT, INCIDENTAL, SPECIAL, PUNITIVE OR CONSEQUENTIAL DAMAGES, OR DAMAGES FOR LOSS OF PROFITS, REVENUE, DATA OR DATA USE, INCURRED BY YOU OR ANY THIRD PARTY, WHETHER IN AN ACTION IN CONTRACT OR TORT, EVEN IF ORACLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. ORACLE’S ENTIRE LIABILITY FOR DAMAGES UNDER THIS AGREEMENT SHALL IN NO EVENT EXCEED ONE THOUSAND DOLLARS (U.S. $1,000) . No Technical Support Unless Oracle support for the Programs, if any, is expressly included in a separate, current support agreement between You and Oracle, Oracle’s technical support organisation will not provide technical support, phone support, or updates to You for the Programs provided under this Agreement. Audit; Termination Oracle may audit Your use of the Programs. You may terminate this Agreement by destroying all copies of the Programs. This Agreement shall automatically terminate without notice if You fail to comply with any of the terms of this Agreement, in which case You shall promptly destroy all copies of the Programs. Relationship Between the Parties Oracle is an independent contractor and we agree that no partnership, joint venture, or agency relationship exists between us. We each will be responsible for paying our own employees, including employment related taxes and insurance.. Nothing in this agreement shall be construed to limit either party's right to independently develop or distribute software that is functionally similar to the other party's products, so long as proprietary information of the other party is not included in such software. Entire Agreement; Governing Law You agree that this Agreement is the complete agreement for the Programs and this Agreement supersedes all prior or contemporaneous agreements or representations, including any clickwrap, shrink-wrap or similar licenses, or license agreements for prior versions of the Programs. This Agreement may not be modified and the rights and restrictions may not be altered or waived except in a writing signed by authorised representatives of You and of Oracle. If any term of this Agreement is found to be invalid or unenforceable, the remaining provisions will remain effective. This Agreement is governed by the substantive and procedural laws of the State of California, USA, and You and Oracle agree to submit to the exclusive jurisdiction of, and venue in, the courts of San Francisco or Santa Clara counties in California in any dispute arising out of or relating to this Agreement. Notices Should you have any questions concerning this License Agreement, or if you desire to contact Oracle for any reason, please write: Oracle America, Inc. 500 Oracle Parkway Redwood City, CA 94065 Oracle Employees Under no circumstances are Oracle Employees authorised to download software for the purpose of distributing it to customers. Oracle products are available to employees for internal use or demonstration purposes only. In keeping with Oracle's trade compliance obligations under U.S. and applicable multilateral law, failure to comply with this policy could result in disciplinary action up to and including termination.

JAVA SE PLATFORM Oracle Binary Code License Agreement for the Java SE Platform Products and JavaFX ORACLE AMERICA, INC. ("ORACLE"), FOR AND ON BEHALF OF ITSELF AND ITS SUBSIDIARIES AND AFFILIATES UNDER COMMON CONTROL, IS WILLING TO LICENSE THE SOFTWARE TO YOU ONLY UPON THE CONDITION THAT YOU ACCEPT ALL OF THE TERMS CONTAINED IN THIS BINARY CODE LICENSE AGREEMENT AND SUPPLEMENTAL LICENSE TERMS (COLLECTIVELY "AGREEMENT"). PLEASE READ THE AGREEMENT CAREFULLY. BY SELECTING THE "ACCEPT LICENSE AGREEMENT" (OR THE EQUIVALENT) BUTTON AND/OR BY USING THE SOFTWARE YOU ACKNOWLEDGE THAT YOU HAVE READ THE TERMS AND AGREE TO THEM. IF YOU ARE AGREEING TO THESE TERMS ON BEHALF OF A COMPANY OR OTHER LEGAL ENTITY, YOU REPRESENT THAT YOU HAVE THE LEGAL AUTHORITY TO BIND THE LEGAL ENTITY TO THESE TERMS. IF YOU DO NOT HAVE SUCH AUTHORITY, OR IF YOU DO NOT WISH TO BE BOUND BY THE TERMS, THEN SELECT THE "DECLINE LICENSE AGREEMENT" (OR THE EQUIVALENT) BUTTON AND YOU MUST NOT USE THE SOFTWARE ON THIS SITE OR ANY OTHER MEDIA ON WHICH THE SOFTWARE IS CONTAINED. 1. DEFINITIONS. "Software" means the software identified above in binary form that you selected for download, install or use (in the version You selected for download, install or use) from Oracle or its authorised licensees, any other machine readable materials (including, but not limited to, libraries, source files, header files, and data files), any updates or error corrections provided by Oracle, and any user manuals, programming guides and other documentation provided to you by Oracle under this Agreement. "General Purpose Desktop Computers and Servers" means computers, including desktop and laptop computers, or servers, used for general computing functions under end user control (such as but not specifically limited to email, general purpose Internet browsing, and office suite productivity tools). The use of Software in systems and solutions that provide dedicated functionality (other than as mentioned above) or designed for use in embedded or function-specific software applications, for example but not limited to: Software embedded in or bundled with industrial control systems, wireless mobile telephones, wireless handheld devices, kiosks, TV/STB, Blu-ray Disc devices, telematics and network control switching equipment, printers and storage management systems, and other related systems are excluded from this definition and not licensed under this Agreement. "Programs" means (a) Java technology applets and applications intended to run on the Java Platform, Standard Edition platform on Java-enabled General Purpose Desktop Computers and Servers; and (b) JavaFX technology applications intended to run on the JavaFX Runtime on JavaFX-enabled General Purpose Desktop Computers and Servers. “Commercial Features” means those features identified in Table 1-1 (Commercial Features In Java SE Product Editions) of the Java SE documentation accessible at http://www.oracle.com/technetwork/java/javase/ documentation/index.html. “README File” means the README file for the Software accessible at http:// www.oracle.com/technetwork/java/javase/documentation/index.html.

JAVA SE PLATFORM

2. LICENSE TO USE. Subject to the terms and conditions of this Agreement including, but not limited to, the Java Technology Restrictions of the Supplemental License Terms, Oracle grants you a non-exclusive, non-transferable, limited license without license fees to reproduce and use internally the Software complete and unmodified for the sole purpose of running Programs. THE LICENSE SET FORTH IN THIS SECTION 2 DOES NOT EXTEND TO THE COMMERCIAL FEATURES. YOUR RIGHTS AND OBLIGATIONS RELATED TO THE COMMERCIAL FEATURES ARE AS SET FORTH IN THE SUPPLEMENTAL TERMS ALONG WITH ADDITIONAL LICENSES FOR DEVELOPERS AND PUBLISHERS. 3. RESTRICTIONS. Software is copyrighted. Title to Software and all associated intellectual property rights is retained by Oracle and/or its licensors. Unless enforcement is prohibited by applicable law, you may not modify, decompile, or reverse engineer Software. You acknowledge that the Software is developed for general use in a variety of information management applications; it is not developed or intended for use in any inherently dangerous applications, including applications that may create a risk of personal injury. If you use the Software in dangerous applications, then you shall be responsible to take all appropriate fail-safe, backup, redundancy, and other measures to ensure its safe use. Oracle disclaims any express or implied warranty of fitness for such uses. No right, title or interest in or to any trademark, service mark, logo or trade name of Oracle or its licensors is granted under this Agreement. Additional restrictions for developers and/or publishers licenses are set forth in the Supplemental License Terms.

JAVA SE PLATFORM

4. DISCLAIMER OF WARRANTY. THE SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. ORACLE FURTHER DISCLAIMS ALL WARRANTIES, EXPRESS AND IMPLIED, INCLUDING WITHOUT LIMITATION, ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT. 5. LIMITATION OF LIABILITY. IN NO EVENT SHALL ORACLE BE LIABLE FOR ANY INDIRECT, INCIDENTAL, SPECIAL, PUNITIVE OR CONSEQUENTIAL DAMAGES, OR DAMAGES FOR LOSS OF PROFITS, REVENUE, DATA OR DATA USE, INCURRED BY YOU OR ANY THIRD PARTY, WHETHER IN AN ACTION IN CONTRACT OR TORT, EVEN IF ORACLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. ORACLE'S ENTIRE LIABILITY FOR DAMAGES HEREUNDER SHALL IN NO EVENT EXCEED ONE THOUSAND DOLLARS (U.S. $1,000). 6. TERMINATION. This Agreement is effective until terminated. You may terminate this Agreement at any time by destroying all copies of Software. This Agreement will terminate immediately without notice from Oracle if you fail to comply with any provision of this Agreement. Either party may terminate this Agreement immediately should any Software become, or in either party's opinion be likely to become, the subject of a claim of infringement of any intellectual property right. Upon termination, you must destroy all copies of Software.

JAVA SE PLATFORM 7. EXPORT REGULATIONS. You agree that U.S. export control laws and other applicable export and import laws govern your use of the Software, including technical data; additional information can be found on Oracle's Global Trade Compliance web site (http://www.oracle.com/us/products/export). You agree that neither the Software nor any direct product thereof will be exported, directly, or indirectly, in violation of these laws, or will be used for any purpose prohibited by these laws including, without limitation, nuclear, chemical, or biological weapons proliferation. 8. TRADEMARKS AND LOGOS. You acknowledge and agree as between you and Oracle that Oracle owns the ORACLE and JAVA trademarks and all ORACLE- and JAVA-related trademarks, service marks, logos and other brand designations ("Oracle Marks"), and you agree to comply with the Third Party Usage Guidelines for Oracle Trademarks currently located at http://www.oracle.com/us/legal/third-party-trademarks/ index.html . Any use you make of the Oracle Marks inures to Oracle's benefit. 9. U.S. GOVERNMENT LICENSE RIGHTS. If Software is being acquired by or on behalf of the U.S. Government or by a U.S. Government prime contractor or subcontractor (at any tier), then the Government's rights in Software and accompanying documentation shall be only those set forth in this Agreement. 10. GOVERNING LAW. This agreement is governed by the substantive and procedural laws of California. You and Oracle agree to submit to the exclusive jurisdiction of, and venue in, the courts of San Francisco, or Santa Clara counties in California in any dispute arising out of or relating to this agreement. 11. SEVERABILITY. If any provision of this Agreement is held to be unenforceable, this Agreement will remain in effect with the provision omitted, unless omission would frustrate the intent of the parties, in which case this Agreement will immediately terminate. 12. INTEGRATION. This Agreement is the entire agreement between you and Oracle relating to its subject matter. It supersedes all prior or contemporaneous oral or written communications, proposals, representations and warranties and prevails over any conflicting or additional terms of any quote, order, acknowledgment, or other communication between the parties relating to its subject matter during the term of this Agreement. No modification of this Agreement will be binding, unless in writing and signed by an authorised representative of each party.

JAVA SE PLATFORM SUPPLEMENTAL LICENSE TERMS These Supplemental License Terms add to or modify the terms of the Binary Code License Agreement. Capitalized terms not defined in these Supplemental Terms shall have the same meanings ascribed to them in the Binary Code License Agreement. These Supplemental Terms shall supersede any inconsistent or conflicting terms in the Binary Code License Agreement, or in any license contained within the Software. (a) COMMERCIAL FEATURES. You may not use the Commercial Features for running Programs, Java applets or applications in your internal business operations or for any commercial or production purpose, or for any purpose other than as set forth in Sections B, C, D and E of these Supplemental Terms. If You want to use the Commercial Features for any purpose other than as permitted in this Agreement, You must obtain a separate license from Oracle. (b) SOFTWARE INTERNAL USE FOR DEVELOPMENT LICENSE GRANT. Subject to the terms and conditions of this Agreement and restrictions and exceptions set forth in the README File incorporated herein by reference, including, but not limited to the Java Technology Restrictions of these Supplemental Terms, Oracle grants you a non-exclusive, non-transferable, limited license without fees to reproduce internally and use internally the Software complete and unmodified for the purpose of designing, developing, and testing your Programs. (c) LICENSE TO DISTRIBUTE SOFTWARE. Subject to the terms and conditions of this Agreement and restrictions and exceptions set forth in the README File, including, but not limited to the Java Technology Restrictions and Limitations on Redistribution of these Supplemental Terms, Oracle grants you a non-exclusive, non-transferable, limited license without fees to reproduce and distribute the Software, provided that (i) you distribute the Software complete and unmodified and only bundled as part of, and for the sole purpose of running, your Programs, (ii) the Programs add significant and primary functionality to the Software, (iii) you do not distribute additional software intended to replace any component(s) of the Software, (iv) you do not remove or alter any proprietary legends or notices contained in the Software, (v) you only distribute the Software subject to a license agreement that: (a) is a complete, unmodified reproduction of this Agreement; or (b) protects Oracle's interests consistent with the terms contained in this Agreement and that includes the notice set forth in Section H, and (vi) you agree to defend and indemnify Oracle and its licensors from and against any damages, costs, liabilities, settlement amounts and/or expenses (including attorneys' fees) incurred in connection with any claim, lawsuit or action by any third party that arises or results from the use or distribution of any and all Programs and/or Software.

JAVA SE PLATFORM

SUPPLEMENTAL LICENSE TERMS D. LICENSE TO DISTRIBUTE REDISTRIBUTABLES. Subject to the terms and conditions of this Agreement and restrictions and exceptions set forth in the README File, including but not limited to the Java Technology Restrictions and Limitations on Redistribution of these Supplemental Terms, Oracle grants you a non-exclusive, non-transferable, limited license without fees to reproduce and distribute those files specifically identified as redistributable in the README File ("Redistributables") provided that: (i) you distribute the Redistributables complete and unmodified, and only bundled as part of Programs, (ii) the Programs add significant and primary functionality to the Redistributables, (iii) you do not distribute additional software intended to supersede any component(s) of the Redistributables (unless otherwise specified in the applicable README File), (iv) you do not remove or alter any proprietary legends or notices contained in or on the Redistributables, (v) you only distribute the Redistributables pursuant to a license agreement that: (a) is a complete, unmodified reproduction of this Agreement; or (b) protects Oracle's interests consistent with the terms contained in the Agreement and includes the notice set forth in Section H, (vi) (vi) you agree to defend and indemnify Oracle and its licensors from and against any damages, costs, liabilities, settlement amounts and/or expenses (including attorneys' fees) incurred in connection with any claim, lawsuit or action by any third party that arises or results from the use or distribution of any and all Programs and/or Software.

JAVA SE PLATFORM SUPPLEMENTAL LICENSE TERMS E. DISTRIBUTION BY PUBLISHERS. This section pertains to your distribution of the JavaTM SE Development Kit Software (“JDK”) with your printed book or magazine (as those terms are commonly used in the industry) relating to Java technology ("Publication"). Subject to and conditioned upon your compliance with the restrictions and obligations contained in the Agreement, Oracle hereby grants to you a non-exclusive, nontransferable limited right to reproduce complete and unmodified copies of the JDK on electronic media (the "Media") for the sole purpose of inclusion and distribution with your Publication(s), subject to the following terms: (i) You may not distribute the JDK on a stand-alone basis; it must be distributed with your Publication(s); (ii) You are responsible for downloading the JDK from the applicable Oracle web site; (iii) You must refer to the JDK as JavaTM SE Development Kit; (iv) The JDK must be reproduced in its entirety and without any modification whatsoever (including with respect to all proprietary notices) and distributed with your Publication subject to a license agreement that is a complete, unmodified reproduction of this Agreement; (v) The Media label shall include the following information: “Copyright [YEAR], Oracle America, Inc. All rights reserved. Use is subject to license terms. ORACLE and JAVA trademarks and all ORACLE- and JAVArelated trademarks, service marks, logos and other brand designations are trademarks or registered trademarks of Oracle in the U.S. and other countries.” [YEAR] is the year of Oracle's release of the Software; the year information can typically be found in the Software’s “About” box or screen. This information must be placed on the Media label in such a manner as to only apply to the JDK; (vi) You must clearly identify the JDK as Oracle's product on the Media holder or Media label, and you may not state or imply that Oracle is responsible for any third-party software contained on the Media; (vii)You may not include any third party software on the Media which is intended to be a replacement or substitute for the JDK; (viii) You agree to defend and indemnify Oracle and its licensors from and against any damages, costs, liabilities, settlement amounts and/or expenses (including attorneys' fees) incurred in connection with any claim, lawsuit or action by any third party that arises or results from the use or distribution of the JDK and/or the Publication; and (viii)You shall provide Oracle with a written notice for each Publication; such notice shall include the following information: (1) title of Publication, (2) author(s), (3) date of Publication, and (4) ISBN or ISSN numbers. Such notice shall be sent to Oracle America, Inc., 500 Oracle Parkway, Redwood Shores, California 94065 U.S.A , Attention: General Counsel.

JAVA SE PLATFORM

SUPPLEMENTAL LICENSE TERMS F. JAVA TECHNOLOGY RESTRICTIONS. You may not create, modify, or change the behavior of, or authorize your licensees to create, modify, or change the behavior of, classes, interfaces, or subpackages that are in any way identified as "java", "javax", "sun", “oracle” or similar convention as specified by Oracle in any naming convention designation. G. LIMITATIONS ON REDISTRIBUTION. You may not redistribute or otherwise transfer patches, bug fixes or updates made available by Oracle through Oracle Premier Support, including those made available under Oracle's Java SE Support program. H. COMMERCIAL FEATURES NOTICE. For purpose of complying with Supplemental Term Section C.(v)(b) and D.(v) (b), your license agreement shall include the following notice, where the notice is displayed in a manner that anyone using the Software will see the notice: Use of the Commercial Features for any commercial or production purpose requires a separate license from Oracle. “Commercial Features” means those features identified Table 1-1 (Commercial Features In Java SE Product Editions) of the Java SE documentation accessible at http://www.oracle.com/technetwork/java/javase/documentation/index.html

JAVA SE PLATFORM

SUPPLEMENTAL LICENSE TERMS I. SOURCE CODE. Software may contain source code that, unless expressly licensed for other purposes, is provided solely for reference purposes pursuant to the terms of this Agreement. Source code may not be redistributed unless expressly provided for in this Agreement. J. THIRD PARTY CODE. Additional copyright notices and license terms applicable to portions of the Software are set forth in the THIRDPARTYLICENSEREADME file accessible at http://www.oracle.com/technetwork/java/javase/ documentation/index.html. In addition to any terms and conditions of any third party opensource/freeware license identified in the THIRDPARTYLICENSEREADME file, the disclaimer of warranty and limitation of liability provisions in paragraphs 4 and 5 of the Binary Code License Agreement shall apply to all Software in this distribution. K. TERMINATION FOR INFRINGEMENT. Either party may terminate this Agreement immediately should any Software become, or in either party's opinion be likely to become, the subject of a claim of infringement of any intellectual property right. L. INSTALLATION AND AUTO-UPDATE. The Software's installation and auto-update processes transmit a limited amount of data to Oracle (or its service provider) about those specific processes to help Oracle understand and optimise them. Oracle does not associate the data with personally identifiable information. You can find more information about the data Oracle collects as a result of your Software download at http://www.oracle.com/technetwork/ java/javase/documentation/index.html.

PYTHON PLATFORM

Web Site: https://www.python.org

‣ Python is a widely used high-level, general-purpose, interpreted, 
 dynamic programming language. ‣ Its design philosophy emphasises code readability, and its syntax
 allows programmers to express concepts in fewer lines of code than possible in languages such as C++ or Java.The language provides constructs intended to enable writing clear programs on both a small and large scale. ‣ Python supports multiple programming paradigms, including object-oriented, imperative, functional programming, and procedural styles. It features a dynamic type system and automatic memory management and has a large and comprehensive standard library. ‣ Python interpreters are available for many operating systems, allowing Python code to run on a wide variety of systems. ‣ CPython, the reference implementation of Python, is open source software[ and has a community-based development model, as do nearly all of its variant implementations. CPython is managed by the non-profit Python Software Foundation. ‣ The Python Software Foundation License is a BSD-style, permissive free software license which is compatible with the GNU General Public License. Its primary use is for distribution of the Python project software and allows modified versions to be distributed without source code.

PYTHON PLATFORM PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2 1. This LICENSE AGREEMENT is between the Python Software Foundation ("PSF"), and the Individual or Organization ("Licensee") accessing and otherwise using this software ("Python") in source or binary form and its associated documentation. 2. Subject to the terms and conditions of this License Agreement, PSF hereby grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce, analyze, test, perform and/or display publicly, prepare derivative works, distribute, and otherwise use Python alone or in any derivative version, provided, however, that PSF’s License Agreement and PSF's notice of copyright, i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006 Python Software Foundation; All Rights Reserved" are retained in Python alone or in any derivative version prepared by Licensee. 3. In the event Licensee prepares a derivative work that is based on or incorporates Python or any part thereof, and wants to make the derivative work available to others as provided herein, then Licensee hereby agrees to include in any such work a brief summary of the changes made to Python. 4. PSF is making Python available to Licensee on an "AS IS” basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT INFRINGE ANY THIRD PARTY RIGHTS. 5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON, OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. 6. This License Agreement will automatically terminate upon a material breach of its terms and conditions. 7. Nothing in this License Agreement shall be deemed to create any relationship of agency, partnership, or joint venture between PSF and Licensee. This License Agreement does not grant permission to use PSF trademarks or trade name in a trademark sense to endorse or promote products or services of Licensee, or any third party. 8. By copying, installing or otherwise using Python, Licensee agrees to be bound by the terms and conditions of this License Agreement.

INFORMATION PROVISIONING A website is a collection of related web pages, including multimedia content, typically identified with a common domain name, and published on web servers. A website may be accessible via Internet Protocol on the Internet or a private local area network, by referencing a uniform resource indicator that identifies the site. Websites have many functions and are used in various fashions: personal or commercial. They are typically dedicated to a particular topic or purpose, ranging from entertainment and social networking to providing news and education. All publicly accessible websites collectively constitute the World Wide Web. Web pages are the building blocks of websites, are documents, typically composed in plain text interspersed with formatting instructions of Hypertext Markup Language. They may incorporate elements from other websites by markup anchors. Web pages are accessed and transported with the Hypertext Transfer Protocol, which may optionally employ encryption. The user's application, often a web browser, renders the page content according to its markup instructions onto a display terminal. Hyperlinking between web pages conveys to the reader the referenceing structure and guides the navigation. Users can access websites on a range of devices, including desktop and laptop computers, tablet computers, smartphones and smart TVs.

SCENARIO

WEB SITE CONSUMER TECHNOLOGY

PROVIDER TECHNOLOGY

MODULES

PROVIDED INFORMATION

WEB SERVER CONNECTORS

OPERATING SYSTEM

DATABASE

HOST HARDWARE

WEBSITE RESORCES

WEB CLIENT PLUGINS OPERATING SYSTEM

CLIENT HARDWARE

CONSUMED INFORMATION

PRESENTED RESOURCES

SCENARIO

INFORMATION PROVISIONING ▸ Standardises development and deployment of information and spawns an information system ▸ Technology is usually provided by a service provider (sometimes at the users’ premises ▸ Resources usually provided by a content provider (sometimes by users) ▸ Resources usually can be considered as independent , record evidence, investigate dependencies ▸ Most applications can reasonably considered as independent work; keep an eye on copy left license ▸ Note the quality guarantees

▸ Additionally incorporation of third party software might lead to compatibility issues …

WEBSERVER

Web Site: https://httpd.apache.org About Apache http: https://httpd.apache.org/ABOUT_APACHE.html The Apache HTTP Server is the world's most used web server software. Originally based on the NCSA server, development of Apache began in early 1995. Apache played a key role in the initial growth of the World Wide Web as the dominant HTTP server, and has remained most popular since 1996. In 2009, it became the first web server software to serve more than 100 million websites. Apache is developed and maintained by an open community of developers under the auspices of the Apache Software Foundation. Most commonly used on a Unix-like system (usually Linux), the software is available for a variety of operating systems besides Unix. Released under the Apache License, Apache is free and open-source software. As of July 2016, Apache was estimated to serve 46.41% of all active websites. Instead of implementing a monolith, Apache provides a variety of MultiProcessing Modules (MPMs), which allow Apache to run in a process-based, hybrid (process and thread) or event-hybrid mode, to match the demands of each particular infrastructure. This implies that the choice of correct MPM and the correct configuration is important. The design of Apache is to reduce latency and increase throughput, relative to simply handling more requests, thus ensuring consistent and reliable processing of requests within reasonable time-frames.

APACHE HTTP Apache License Version 2.0, January 2004 1. Definitions. License shall mean the terms and conditions for use, reproduction, and distribution … Licensor shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. Legal Entity shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. You (or Your) shall mean an individual or Legal Entity exercising permissions granted by this License. Source form shall mean the preferred form for making modifications … Object form shall mean any form resulting from mechanical transformation or translation of a Source form … Work shall mean the work of authorship, whether in Source or Object form, made available under the License … Derivative Works shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. Contribution shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorised to submit on behalf of the copyright owner … Contributor shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.

APACHE HTTP 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: a You must give any other recipients of the Work or Derivative Works a copy of this License; and b You must cause any modified files to carry prominent notices stating that You changed the files; and c You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and d If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. 
 
 You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.

APACHE HTTP 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NONINFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.

SCENARIO

WEB APPLICATION PROVIDER FUNCTIONALITY WEB SERVER CONTAINERS

PROVIDED INFORMATION

APPLICATION SERVER CONNECTORS OPERATING SYSTEM

DATABASE

HOST HARDWARE

RESORCES

CONSUMER TECHNOLOGY

WEB CLIENT PLUGINS OPERATING SYSTEM

CLIENT HARDWARE

PROVIDED / CONSUMED INFORMATION

PRESENTED RESOURCES

SCENARIO

PLATFORM BASED DEVELOPMENT ▸ Eases development and deployment of information intense applications ▸ All Constraints must be fulfilled ▸ Note the license ▸ Note the quality guarantees

▸ Additionally incorporation of third party software might lead to compatibility issues …

WEB APPLICATIONS

An application server is a software framework that provides both facilities to create web applications and a server environment to run them. Application Server Frameworks contain a comprehensive service layer model. An application server acts as a set of components accessible to the software developer through an API defined by the platform itself. For Web applications, these components are usually performed in the same running environment as their web server(s), and their main job is to support the construction of dynamic pages. However, many application servers target much more than just Web page generation: they implement services like clustering, fail-over, and load-balancing. In the case of Java application servers, the server behaves like an extended virtual machine for running applications, transparently handling connections to the database on one side, and, often, connections to the Web client on the other.

APPLICATION SERVERS Glassfish is an open-source application server for Java EE provided by Oracle. It is available under a dual-license: the Common Development and Distribution License and the GNU General Public License with the classpath exception. Oracle no longer provides commercial support for GlassFish Server. JBoss Enterprise Application Platform is available under the GNU Lesser General Public License Java EE-based application server runtime platform used for building, deploying, and hosting highly transactional Java applications and services. Wildfly, better known as JBoss AS is an application server created by JBoss, but now under continuous development by Red Hat. WildFly is available under the GNU Lesser General Public License. Apache Tomcat is an open source software implementation of the Java Servlet and JavaServer Pages technologies and was developed in an open and participatory environment and released under the Apache License version 2 and developed by the Apache Software Foundation (ASF). Apache Tomcat implements several Java EE specifications including Java Servlet, JavaServer Pages (JSP), Java EL, and WebSocket, and provides a “pure Java” HTTP web server environment for Java code to run in. Apache TomEE is the Java Enterprise Edition of Apache Tomcat which combines several projects. It Web Profile can deliver Servlets, JSP, JSF, JTA, JPA, CDI, Bean Validation and EJB Lite and also delivers JAX-RS (RESTfull Services) plus EJB Full, Java EE Connector Architecture, JMS (Java Message Service) and JAX-WS (Web Services) and includes Mojarra and EclipseLink support. Apache Geronimo is an open source application server developed by the Apache Software Foundation and distributed under the Apache license. It is compatible with the Java EE 6 specification supports various technologies such as JMS, Enterprise JavaBeans, Connectors, servlets, JSP, JSF, Unified Expression Language and JavaMail. The development of Apache Geronimo has now largely been almost ceased. Jetty is a Java based HTTP server and Java Servlet container and is developed as a free and open source project as part of the Eclipse Foundation. The web server is relatively popular and is used in products such as Apache ActiveMQ, Alfresco, Apache Geronimo, Apache Maven, Apache Spark, Google App Engine,  Eclipse, Twitter’s Streaming API  and also supports the latest Java Servlet API (with JSP support) as well as AJP, JASPI, JMX, JNDI, OSGi, SPDY and WebSocket.

CASE GLASSFISH COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0 1. https://glassfish.java.net/public/CDDLv1.0.html 1. Definitions Contributor means each individual or entity that creates or contributes to the creation of Modifications. Contributor Version means the combination of the Original Software, prior Modifications … Covered Software means (a) the Original Software, or (b) Modifications, or (c) the combination of files containing Original Software with files containing Modifications, in each case including portions thereof. Executable means the Covered Software in any form other than Source Code. Initial Developer means the individual or entity that first makes Original Software available under this License. Larger Work means a work which combines Covered Software or portions thereof with code not governed by the terms of this License. Licensable means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein. Modifications means the Source Code and Executable form of any of the following: A. Any file that results from an addition to, deletion from or modification of the contents of a file containing Original Software or previous Modifications; B. Any new file that contains any part of the Original Software or previous Modification; or C. Any new file that is contributed or otherwise made available under the terms of this License. Original Software means the Source Code and Executable form of computer software code that is originally released under this License. Patent Claims means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor. Source Code means (a) the common form of computer software code in which modifications are made and (b) associated documentation included in or with such code. You (or Your) means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License. For legal entities, You includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, control means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity.

CASE GLASSFISH 2. License Grants. 2.1 The Initial Developer Grant. Conditioned upon Your compliance with Section 3.1 below and subject to third party intellectual property claims, the Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license: (a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer, to use, reproduce, modify, display, perform, sublicense and distribute the Original Software (or portions thereof), with or without Modifications, and/or as part of a Larger Work; and (b) under Patent Claims infringed by the making, using or selling of Original Software, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Software (or portions thereof); (c) The licenses granted in Sections 2.1(a) and (b) are effective on the date Initial Developer first distributes or otherwise makes the Original Software available to a third party under the terms of this License; (d) Notwithstanding Section 2.1(b) above, no patent license is granted: 
 (1) for code that You delete from the Original Software, or 
 (2) for infringements caused by: (i) the modification of the Original Software, or (ii) the combination of the Original Software with other software or devices. 2.2. Contributor Grant. Conditioned upon Your compliance with Section 3.1 below and subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license: (a) under intellectual property rights (other than patent or trademark) Licensable by Contributor to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof), either on an unmodified basis, with other Modifications, as Covered Software and/or as part of a Larger Work; and (b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/ or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of:
 (1) Modifications made by that Contributor (or portions thereof); and
 (2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination). (c) The licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first distributes or otherwise makes the Modifications available to a third party. (d) Notwithstanding Section 2.2(b) above, no patent license is granted: 
 (1) for any code that Contributor has deleted from the Contributor Version; 
 (2) for infringements caused by: (i) third party modifications of Contributor Version, or (ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or 
 (3) under Patent Claims infringed by Covered Software in the absence of Modifications made by that Contributor.

CASE GLASSFISH 3. Distribution Obligations. 3.1. Availability of Source Code. Any Covered Software that You distribute or otherwise make available in Executable form must also be made available in Source Code form and that Source Code form must be distributed only under the terms of this License. You must include a copy of this License with every copy of the Source Code form of the Covered Software You distribute or otherwise make available. You must inform recipients of any such Covered Software in Executable form as to how they can obtain such Covered Software in Source Code form in a reasonable manner on or through a medium customarily used for software exchange. 3.2. Modifications. The Modifications that You create or to which You contribute are governed by the terms of this License. You represent that You believe Your Modifications are Your original creation(s) and/or You have sufficient rights to grant the rights conveyed by this License. 3.3. Required Notices. You must include a notice in each of Your Modifications that identifies You as the Contributor of the Modification. You may not remove or alter any copyright, patent or trademark notices contained within the Covered Software, or any notices of licensing or any descriptive text giving attribution to any Contributor or the Initial Developer. 3.4. Application of Additional Terms. You may not offer or impose any terms on any Covered Software in Source Code form that alters or restricts the applicable version of this License or the recipients rights hereunder. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Software. However, you may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear that any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer. 3.5. Distribution of Executable Versions. You may distribute the Executable form of the Covered Software under the terms of this License or under the terms of a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable form does not attempt to limit or alter the recipients rights in the Source Code form from the rights set forth in this License. If You distribute the Covered Software in Executable form under a different license, You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer or Contributor. You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of any such terms You offer. 3.6. Larger Works. You may create a Larger Work by combining Covered Software with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Software.

CASE GLASSFISH

4. Versions of the License. 4.1. New Versions. Sun Microsystems, Inc. is the initial license steward and may publish revised and/or new versions of this License from time to time. Each version will be given a distinguishing version number. Except as provided in Section 4.3, no one other than the license steward has the right to modify this License. 4.2. Effect of New Versions. You may always continue to use, distribute or otherwise make the Covered Software available under the terms of the version of the License under which You originally received the Covered Software. If the Initial Developer includes a notice in the Original Software prohibiting it from being distributed or otherwise made available under any subsequent version of the License, You must distribute and make the Covered Software available under the terms of the version of the License under which You originally received the Covered Software. Otherwise, You may also choose to use, distribute or otherwise make the Covered Software available under the terms of any subsequent version of the License published by the license steward. 4.3. Modified Versions. When You are an Initial Developer and You want to create a new license for Your Original Software, You may create and use a modified version of this License if You: (a) rename the license and remove any references to the name of the license steward (except to note that the license differs from this License); and (b) otherwise make it clear that the license contains terms which differ from this License. 5. DISCLAIMER OF WARRANTY. COVERED SOFTWARE IS PROVIDED UNDER THIS LICENSE ON AN AS IS BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED SOFTWARE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED SOFTWARE IS WITH YOU. SHOULD ANY COVERED SOFTWARE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.

CASE GLASSFISH 6. TERMINATION. 6.1. This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. 6.2. If You assert a patent infringement claim (excluding declaratory judgment actions) against Initial Developer or a Contributor (the Initial Developer or Contributor against whom You assert such claim is referred to as Participant) alleging that the Participant Software (meaning the Contributor Version where the Participant is a Contributor or the Original Software where the Participant is the Initial Developer) directly or indirectly infringes any patent, then any and all rights granted directly or indirectly to You by such Participant, the Initial Developer (if the Initial Developer is not the Participant) and all Contributors under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively and automatically at the expiration of such 60 day notice period, unless if within such 60 day period You withdraw Your claim with respect to the Participant Software against such Participant either unilaterally or pursuant to a written agreement with Participant. 6.3. In the event of termination under Sections 6.1 or 6.2 above, all end user licenses that have been validly granted by You or any distributor hereunder prior to termination (excluding licenses granted to You by any distributor) shall survive termination. 7. LIMITATION OF LIABILITY. UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED SOFTWARE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOST PROFITS, LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTYS NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU.

CASE GLASSFISH 8. U.S. GOVERNMENT END USERS. The Covered Software is a commercial item, as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of commercial computer software (as that term is defined at 48 C.F.R.  252.227-7014(a)(1)) and commercial computer software documentation as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Software with only those rights set forth herein. This U.S. Government Rights clause is in lieu of, and supersedes, any other FAR, DFAR, or other clause or provision that addresses Government rights in computer software under this License. 9. MISCELLANEOUS. This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by the law of the jurisdiction specified in a notice contained within the Original Software (except to the extent applicable law, if any, provides otherwise), excluding such jurisdictions conflict-of-law provisions. Any litigation relating to this License shall be subject to the jurisdiction of the courts located in the jurisdiction and venue specified in a notice contained within the Original Software, with the losing party responsible for costs, including, without limitation, court costs and reasonable attorneys fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. You agree that You alone are responsible for compliance with the United States export administration regulations (and the export control laws and regulation of any other countries) when You use, distribute or otherwise make available any Covered Software. 10. RESPONSIBILITY FOR CLAIMS. As between Initial Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability. NOTICE PURSUANT TO SECTION 9 OF THE COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) The code released under the CDDL shall be governed by the laws of the State of California (excluding conflict-of-law provisions). Any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California and the state courts of the State of California, with venue lying in Santa Clara County, California.

SCENARIO

CONTENT MANAGEMENT PROVIDER FUNCTIONALITY

WEB SERVER

CONSUMER TECHNOLOGY THEMES

CONTENT MANAGEMENT SYSTEM PLUGINS CONNECTORS OPERATING SYSTEM

DATABASE

HOST HARDWARE

PROVIDED INFORMATION

RESORCES

WEB CLIENT

OPERATING SYSTEM

CLIENT HARDWARE

PROVIDED / CONSUMED INFORMATION

PRESENTED RESOURCES

SCENARIO

CONTENT MANAGEMENT ▸ Eases maintenance of content for information dissemination ▸ Usually part of the technology stack ▸ Note the licenses of content, structure and presentation ▸ Note the quality guarantees

▸ Additionally incorporation of third party software might lead to compatibility issues …

CONTENT MANAGEMENT SYSTEM A content management system (CMS) is a computer application that supports the creation and modification of digital content. It is often used to support multiple users working in a collaborative environment. Most CMSs include Web-based publishing, format management, history editing and version control, indexing, search, and retrieval. By their nature, content management systems support the separation of content and presentation. A web content management system is a CMS designed to support the management of the content of Web pages. Web content includes text and embedded graphics, photos, video, audio, maps, and code (e.g., for applications) that 
 displays content or interacts with the user. Such a content management system (CMS) typically has two major components: • A content management application is the front-end user 
 interface that allows a user, even with limited expertise, 
 to add, modify and remove content from a Web site 
 without the intervention of a webmaster. • A content delivery application compiles that information 
 and updates the Web site. Digital asset management systems are another type of CMS. They manage things such as documents, movies, pictures, phone numbers and scientific data. CMSs can also be used for storing, controlling, revising, and publishing documentation. Based on marketshare statistics, the most popular content management system is WordPress Other popular content management systems include Joomla and Drupal.

APPLICATION SERVERS Web Site: https://de.wordpress.com About: https://wordpress.org/about/ WordPress is a free and open-source content management system based on PHP and MySQL. WordPress is installed on a web server, which either is part of an Internet hosting service or is a network host itself; the first case may be on a service like WordPress.com, for example, and the second case is a computer running the software package WordPress.org.[ Features include a plugin architecture and a template system. WordPress was used by more than 26.4% of the top 10 million websites as of April 2016. WordPress is reportedly the easiest and most popular website management or blogging system in use on the Web, supporting more than 60 million websites.

WordPress software is released under GPLv2 (or later). A copy of the license is included with every copy of WordPress, but you can also read the text of the license here. Part of this license outlines requirements for derivative works, such as plugins or themes. Derivatives of WordPress code inherit the GPL license. Drupal, which has the same GPL license as WordPress, has an excellent page on licensing as it applies to themes and modules (their word for plugins). There is some legal grey area regarding what is considered a derivative work, but I think that plugins and themes are derivative work and thus inherit the GPL license. If you disagree, you might want to consider a non-GPL platform such as Serendipity (BSD license) or Habari (Apache license) instead.

APPLICATION SERVERS Web Site: https://www.drupal.org About: https://www.drupal.org/about Drupal /ˈdruːpəl/ is a free and open source content-management framework written in PHP and distributed under the GNU General Public License. It provides a back-end framework for at least 2.2% of all Web sites worldwide[ – ranging from personal blogs to corporate, political, and government sites. Systems also use Drupal for knowledge management and for business collaboration. The standard release of Drupal, known as Drupal core, contains basic features common to content-management systems. These include user account registration and maintenance, menu management, RSS feeds, taxonomy, page layout customisation, and system administration. The Drupal core installation can serve as a simple Web site, a single- or multi-user blog, an Internet forum, or a community Web site providing for user-generated content. The Drupal Overview describes it as a content management framework. Drupal also describes itself as a Web application framework. As of November 2016 the Drupal community is composed of more than one million members. Including 104,200 users actively contributing. Resulting in more than 35,800 free modules that extend and customise Drupal functionality, over 2,300 free themes that change the look and feel of Drupal,[15] and at least 1,050 free distributions that allow you to quickly and easily set up a complex, use-specific Drupal in fewer steps. Although Drupal offers a sophisticated API for developers, basic Web-site installation and administration of the framework require no programming skills.

APPLICATION SERVERS Web Site: https://www.joomla.org About: https://www.joomla.org/about-joomla.html Joomla is a free and open-source content management system for publishing web content. It is built on a model–view–controller web application framework that can be used independently of the CMS. Joomla is written in PHP, uses object-oriented programming (OOP) techniques and software design patterns, stores data in a MySQL, MS SQL, or PostgreSQL and includes features such as page caching, RSS feeds, printable versions of pages, news flashes, blogs, search, and support for language internationalization. As of November 2016, Joomla! has been downloaded over 78 million times. Over 7,800 free and commercial extensions are available from the official Joomla! Extension Directory, and more are available from other sources. It is estimated to be the second most used content management system on the Internet, after WordPress.

SCENARIO

APPLICATION DEVELOPMENT PLATTFORM

APPLICATION WITH FUNCTIONALITY

SHARED FUNCTIONALITY

DEVELOPMENT PLATFORM CONNECTORS OPERATING SYSTEM

DATABASE MODELS

HOST HARDWARE

SPECIAL FUNCTIONALITY

FAT (RITCH) CLIENT MODELS OPERATING SYSTEM

CLIENT HARDWARE

ECLIPSE Documentation: http://help.eclipse.org/kepler/index.jsp? topic=%2Forg.eclipse.platform.doc.isv%2Fguide%2Farch.htm Community: http://www.eclipse.org Licensing: https://www.eclipse.org/legal/ Eclipse is an integrated development environment used in computer programming, and is the most widely used Java IDE. It contains a base workspace and an extensible plug-in system for customising the environment. Eclipse is written mostly in Java and its primary use is for developing Java applications, but it may also be used to develop applications in other programming languages. Development environments include the Eclipse Java development tools (JDT) for Java and Scala, Eclipse CDT for C/C++ and Eclipse PDT for PHP, among others. The initial codebase originated from IBM VisualAge. The Eclipse software development kit (SDK), which includes the Java development tools, is meant for Java developers. Users can extend its abilities by installing plugins written for the Eclipse Platform, such as development toolkits for other programming languages, and can write and contribute their own plug-in modules. Since Equinox, plug-ins can be plugged/stopped dynamically and are known as (OSGI) bundles. Released under the terms of the Eclipse Public License, Eclipse SDK is free and open-source software, although it is incompatible with the GNU General Public License.

BEYOND SOFTWARE

WEB SITE RESOURCES

A word on resources … Most designers are aware on copyright law. They use a lot of public material mostly supplied via the Internet … Some Resource Types:

‣ Text: https://en.wikipedia.org/wiki/Software_architecture under https:// en.wikipedia.org/wiki/Wikipedia:Text_of_Creative_Commons_AttributionShareAlike_3.0_Unported_License ‣ Pictures: https://www.flickr.com under https://policies.yahoo.com/ie/de/yahoo/ terms/utos/index.htm or unsplash.com under https://unsplash.com/license ‣ Icons: logomakr.com ‣ Themes: https://wordpress.org/themes/ … http://tesseracttheme.com ‣ Plugins: https://wordpress.org/plugins/ ‣ Videos: https://support.google.com/youtube/answer/2797468?hl=en ‣ Services: https://www.google.com/policies/terms/

SCENARIO

MACHINE LEARNING ▸ Data determines Function …. with all consequences ▸ Requires access to training data … e.g. as cross licensing contract ▸ Training is computational and knowledge intense ▸ Variability of solution and variance of solution is challenging ▸ Intellectual Property Right Law is neither adequate nor relevant

FUTURE SCENARIO

DEVELOPMENT FRAMEWORK (TENSORFLOW) INTELLIGENCE

PROVISIONED MOSTLY UNDER APACHE 2.0 RUNS “EVERYWHERE”

APPLICATION MACHINE LEARNING FRAMEWORK

SECRET ASSET

ALGORITHMS

EVALUATION FRAMEWORK ALGORITHMS MODELS OPERATING SYSTEM

OPERATING SYSTEM

MODELS

HARDWARE

STORE TRAINING AND VALIDATION DATA

HARDWARE

LICENSE SPECTRUM AND INTENTS

SUMMARY

A Very Fast View on Open Source Licenses After you learn a lot about a topic … here’s a cheat sheet with some practical tips I use the terms proprietary or commercial with specific meanings. Commercial means an application that isn’t opensource and you sell copies of it for money. Proprietary includes commercial but also includes software that is only used internally. Berkley Software Distribution or Massachusetts Institute of Technology/X11 Licenses / Academic Technically it’s the “revised” BSD license, but it’s been around so long that it’s just the BSD license now. It’s pretty much equivalent to the MIT/X11 license. These are considered to be the least restrictive, do-anything-you-want licenses as long as you keep the original notice on the code, display the copyright notice in your program, and don’t infer the author is endorsing your product. Also, it has a disclaimer saying they’re not responsible for anything you do with it. You can use this code in proprietary software, and you can use it is GPL-compatible. Apache The Apache 2.0 license is similar in use to the BSD license, but it adds a patent grant. That is, it specifically states that if the authors hold any patents that cover the code, you can still use this code and be safe from that. You can use it in proprietary software, and it is GPL-compatible, but only with version 3 of the GPL. Mozilla Public License and the Common Development and Distribution License CDDL 1.0 was based on the MPL 1.1.These are your “weak copyleft” licenses, copyleft meaning some part of the derived work also has to be released under the same license. What it means is that you can use this code in a proprietary application, but if you make any changes to the code you included, you have to release that code publicly (but not the code of your entire work). The CDDL defines the boundary at the source file, so if you change one of the original files, you have to release that back. These are not compatible with the GPL.

SUMMARY

A Very Fast View on Open Source Licenses GNU Public License Your strong copyleft. The GPL is the one everyone loves to hate, but it’s also popular and many/most of the tools of the Linux community are GPL-based. Unlike the previous licenses, if you take any code from a GPL licensed program and include it in your own project, you’re making a derived work and you must agree to release your entire derived work under the same license (or a later version if the author specifically says you can). That means you can’t use GPL licensed code in your commercial application, but you can use it in internal applications. The reason some programmers are so annoyed by it is that they’re googling for some code to solve their problem, realise someone has written an open source library to do exactly what they want and they get all excited. Then they check the license and their heart drops because it’s GPL and they can’t use it. A small minority go as far as to send hate mail to the author. If you email the author, they’d probably be willing to sell you a commercial license for the code so you could use it in your program. Lesser GNU Public License The weak copyleft version. The “L” stood for library, but now it stands for lesser. It kind of works like the CDDL, but it defines the boundary at the library rather than the source file. It basically says you can use this library, even in a commercial application, but if you make any changes to it, you must release your new version of the library under the same (or newer…) license. It also adds a restriction that some people overlook – you must also provide the users of your application the ability to replace the LGPL’d library with a newer or modified version of that library. Usually this means providing the binaries and compilation instructions. Consider the difficulty of meeting this obligation if your derived work is firmware on an embedded device. The other thing you have to worry about is copying code. If you copy any code from the library into your main project, then your project becomes a derived work, and you’re essentially forced to release your whole application under the LGPL. Programmers don’t worry about this too much, but legal departments do

SUMMARY

A Very Fast View on Open Source Licenses GNU Affero Public License You can take GPL licensed code, run it on a server as a web application, make all the changes you want, and never release your code because you’re not “distributing” the derived work, and distribution is what triggers the GPL. E.g. Google has it’s own version of Linux that it never had to release because it only uses it internally. Hence some came up with the AGPL. This changes the triggering clause, so if you are using the AGPL licensed code in a website, you have to make any changes public.