AWS Community Day CPH - Three problems of Terraform
Hans Petter Dahle: Programvareindustrien og fri programvare - erfaringer fra FoU-prosjekter
1. FAMILIER
Programvareindustrien og fri
programvare –
erfaringer fra FoU-prosjekter
16. april 2009
Hans Petter Dahle
Prosjektleder
IKT-Norge
Norges Forskningsråd støttet COSI og OSIRIS prosjektene
Eureka ∑! 2023 Programme, ITEA projects COSI and OSIRIS IKT Norge, 19.05.09 1
2. FAMILIER
Programvareindustrien og fri
programvare –
erfaringer fra FoU-prosjekter
Del 1
COSI prosjektet
Norges Forskningsråd støttet COSI og OSIRIS prosjektene
Eureka ∑! 2023 Programme, ITEA projects COSI and OSIRIS IKT Norge, 19.05.09 2
3. JL-3
ITEA if-04031
Co-development using inner & Open Source in
Software Intensive systems
Start: 1.1.2006 (i Norge)
Varighet 3 år
Norske aktiviteter:
Først og fremst rundt prosesser
4. JL-4
Prosjektet Norsk COSI
Start: 1.1.2006 (i Norge)
Varighet 3 år
Norske aktiviteter:
Fokus på prosesser, for distribuert utvikling
Nasjonale demonstratorer
COSI GoOpen 2009
4
5. JL-5
COSI Consortium
Sweden
Norway
the Netherlands
Finland
Spain
12 partners in 5 countries
unique: 7 subcontractors in Norway
COSI GoOpen 2009
5
6. JL-6
Commodification of software
technology
losing
differentiating intellectual
property
te
ch
no
lo
gy
basic for the business
lif
e
cy
cl
e
commodity
wasting valuable
intra inter open cooperation
engineering
resources company companies
COSI GoOpen 2009
6
7. JL-7
Problem statement
How to manage the complexity of heterogeneous
distributed development
Challenges
Larger groups working on the same software
Development groups get more distributed
Software shifts to commodity
3rd party software is … …
…
increasingly used
COSI addressed this issue …
WP1: Business & community models
WP2: Process models
WP3: Architecture
…
…
COSI GoOpen 2009
7
8. JL-8
COSI goals
1 distributed 2 agile 3 trust &
concurrent developments in understanding in
heterogeneous distributed open
development settings collaborations
outsourcing external
in house bounded
open
collaborations collaborations
company knowledge
control & & cost
ownership sharing
4 understand &
use the shift
software shift
COSI GoOpen 2009
8
9. JL-9
Leveraging OS opportunities
Open
process
repository
product
1 Practices 3 Using OSS
4 OSS products 5 Symbiotic
2 OS tools 4 Opening up relationship
process
repository
product
Closed
COSI GoOpen 2009
9
10. JL-10
Achieved COSI Goals
1 Introduced distributed concurrent heterogeneous
development
Partners moved to community-style collaboration
Applications architectures were restructured with OS
tools and OSS components
…
outsourcing external
in house bounded
open
collaborations collaborations
company knowledge
control & & cost
ownership sharing
software shift
COSI GoOpen 2009
10
11. JL-11
Achieved COSI Goals
2 Introduced agile developments in distributed
settings
Partners introduced inner-source and collaboration
oriented as their way of working
Partners integrated OS processes with SOA & MDD
…
outsourcing external
in house bounded
open
collaborations collaborations
company knowledge
control & & cost
ownership sharing
software shift
COSI GoOpen 2009
11
12. JL-12
Achieved COSI Goals
3 Improved trust and understanding of open
collaborations
We now know how to build attractive open applications
& collaborations
Corporate partners evaluated, introduced & influenced
OS tooling, e.g. subversion and GIT
…
outsourcing external
in house bounded
open
collaborations collaborations
company knowledge
control & & cost
ownership sharing
software shift
COSI GoOpen 2009
12
13. JL-13
Achieved COSI Goals
4 Understanding & strategic use of the software shift
Policies are established on ISS or OSS use
We learned how to contribute & influence communities
…
outsourcing external
in house bounded
open
collaborations collaborations
company knowledge
control & & cost
ownership sharing
software shift
COSI GoOpen 2009
13
14. JL-14
Case studies examples
ICT-Norway/eZ Systems eZ Publish
Improved community involvement for core product
Improved process in place, but not much experience
yet
ICT-Norway/Keymind KeyWatch
Selection of open source tools used in own
development
Going open source with own product
COSI GoOpen 2009
14
15. JL-15
Case studies examples
ICT-Norway/Linpro OSS component selection
Improved selection process
More structured, documented and transparent
Time and effort will be saved during component
evaluation and selection
ICT-Norway/Linpro Nomadic Version control
Because deltas are smaller, and limited in scope,
conflict resolution is easier to handle
Developers that used SVK are very satisfied with it
Problem concerning off-site development without
access to Linpro's Subversion server, was solved
COSI GoOpen 2009
15
16. JL-16
Developing with OS components
Selection, integration and life-
cycle issues
Keymind Computing
GoOpen 2009 Audun Jensvoll, Keymind Computing
16
17. JL-17
Develop with open source
components – the workflow
Find candidate components
Harvest Assessment
Select best candidate
Internal validation
Version control – snap shot
Prepare Integrate the component
- architecture wrapping
- domain adoption
Life cycle management
Consume - workaround / bug fix
- upgrade
Developer,
domain expert,
architect
GoOpen 2009 Audun Jensvoll, Keymind Computing
17
18. JL-18
Harvesting
Find candidates Short-listing check list:
• Open source host sites Potential showstoppers:
Licence ok ?
• Community mailing lists Architecture ok ?
Community health / trust:
• General ”googling” Committed industrial partner
Community diversity
Assessing components Project health:
Mailing lists
• Apply check list Bug tracking
Version control
• Smaller is better Documentation
• Low risk is better Component health
Documented use /references
Reputation ok
Domain scope
Architecture compliance
GoOpen 2009 Audun Jensvoll, Keymind Computing
18
19. JL-19
Prepare - Test
Test (usually only the chosen candidate component)
Goal: Verify that the component will work in our context
It is expensive to fail this selection
Dependent of component type
Small components:
make a small prototype and test most important
functionality
make a preliminary integration layer
(could be empty)
patch only if we must
timeframe: from a couple of hours to a day or two
comp system
GoOpen 2009 Audun Jensvoll, Keymind Computing
19
20. JL-20
Prepare - Integrate
Loose coupling:
- Bind to snapshot from available (stable) release
- Never depend on future releases
- Use as is
- Wrapping: glue, integration layer, anticorruption
layer, access layer
- 2 aspects of integration:
- Domain - adapt to application’s domain language
(adapt to domain model, wrap in service)
- Translator
- Service provider
- Architecture: Maintainability, scalability, security,
distribution, etc.
GoOpen 2009 Audun Jensvoll, Keymind Computing
20
21. JL-21
Consume
How to ”live with the component”
• Component included in development environment
• Preferably packed as library
• Under version control with source code and documentation
• Internal responsible, the component ”uncle”
• The developer who introduced the component, becomes
”internal responsible” (component uncle)
• Follow discussion and development
• Contribute to bug fix if relevant
• If patch is applied in our development, update documentation
appropriate
• Stay with the snapshot
• We don’t always need to upgrade to latest version (lazy
upgrading)
• Upgrade
• As bug fix
• Because of changed requirements to our application
GoOpen 2009 Audun Jensvoll, Keymind Computing
21
22. JL-22
Challenges / conclusions
• Process applicable for smaller components
Larger components (frameworks etc) has much more influence on
our application and requires more attention in all phases.
• Payback to the OSS communities
We get a lot of value from OSS
Respect licences
If not committers or core developers, at least contribute as active
users
• Main value: Availability
For us, availability is main the value of OSS
Appreciate openness about status, bugs, etc
• Organizational structure
Dependant of developer competence as “fisher men”
Each component gets an uncle – take responsibility for the included
components. Binds some resources
GoOpen 2009 Audun Jensvoll, Keymind Computing
22
23. JL-23
Revision-Controlled,
Distributed, and Nomadic
Development Using SVK
Linpro
GoOpen 2009 Martin T. Ranang, Linpro
23
24. JL-24
Linpro case study
Linpro wanted to make it easy for their
developers to perform nomadic, distributed,
and fine-grained revision-controlled
development through the introduction of a set
of guidelines and the open-source tool SVK
GoOpen 2009 Martin T. Ranang, Linpro
24
25. JL-25
Context: Revision Control
Serious software development, including OSS, use some
kind of version control
Also known as source code management (SCM) or software
configuration management (SCM)
Subversion has become the de-facto standard for revision
control for OSS projects
Great improvements over CVS include
atomic commit operations
full revision history for renamed/moved files
versioning of symbolic links
GoOpen 2009 Martin T. Ranang, Linpro
25
26. JL-26
Linpro Baseline Process
Almost all* of Linpro's development is placed under revision
control with Subversion (SVN)
Based on experience and reasoning, our developers have
found that fine-grained deltas, or commits with small
changes, reduce the effort needed to handle merge
conflicts, if they arise
Consequently, Linpro's developers prefer fine-grained
deltas
Linpro strives to keep an up-to-date repository of all non-
auto-generated material for every project on one of Linpro's
central servers
If a developer is working off-site, the developer will perform
commits over a secure network connection, using the
svn+ssh protocol
GoOpen 2009 Martin T. Ranang, Linpro
26
27. JL-27
Linpro Improved Process
Combining the use of the open-source tools Subversion
and SVK Linpro accommodated to nomadic, distributed,
revision-controlled development
This enabled Linpro's developers to continue doing fine-
grained revision controlled development, but without the
constraint of having to connection to Linpro's central
revision-control repository for every revision-control
operation
The improved process is documented in Linpro's
contribution to the COSI Library of Assets, “Revision-
controlled, Distributed, and Nomadic Development Using
SVK”
GoOpen 2009 Martin T. Ranang, Linpro
27
28. JL-28
Linpro Results
The problem concerning off-site development without access to
Linpro's Subversion server, described in the baseline process, was
solved
The developers that have used SVK are very satisfied with it
It was a bit difficult to grasp which parts and actions of SVK that
interact and are dependent on each other
There is still a risk of running into merge conflicts, but because the
deltas are smaller, and limited in scope, the conflict resolution is easier
to handle than when merging large commits
Understanding how SVK works was a bit confusing because SVK
introduces a conceptual layer “above” Subversion but still shares a lot
of functionality and command names with Subversion
A set of documented guidelines:
The guidelines are documented in Linpro's contribution to the
COSI Library of Assets
GoOpen 2009 Martin T. Ranang, Linpro
28
29. JL-29
Incubator process
• Incubator process addresses the main risk of the OSS projects
• Provides an environment to achieve a stable release and gather a
healthy community
• Roles (e.g. Sponsor, Champion, Mentor, etc.)
• Tool for support for the newborn projects
• Workflow with phases and responsible role
• Existing projects’ experience is useful to the nascent projects
• Some structures responsible of making decisions are useful to
guarantee the projects are “compatible” with ecosystem
• Focus on architecture issues
• Avoids duplicating efforts
COSI GoOpen 2009
29
30. JL-30
3 ways to use open source
Use Open Source software
Integrate open source software in products and
the development environment
Share own source in the open
Open own (commodity) software
Grow a community around it
Use external maintenance and improvements
Practices – inner source
Internal development with open source
practices
COSI GoOpen 2009
30
31. JL-31
OSS selection - learnings
OSS selection is an important issue for software
developers
Work with OSS evaluation and selection processes
resulted in different process models
This reflects two common trends in software
development:
More time is spent on assessing, tailoring and integrating
components
Commodification leads to general availability of OSS
components
Linpro established their own selection process
COSI GoOpen 2009
31
32. JL-32
OSS Selection – Case Studies Examples
Each company has addressed challenging
issues within their organizations, and
improved their process accordingly.
The selection processes differ with respect
to
Selection scope (see next slide)
The focus and purpose of the improvement to
the selection process
COSI GoOpen 2009
32
33. JL-33
OSS Selection – Case Studies Examples
Different scope:
Evaluation of single component vs. Selection from list of components
Selection for single use (product/project) vs. Selection for multiple use
(organizational reuse)
Selecting a component that will be part of a product vs. selecting a tool that
will be used in software development
Different phases are covered (from evaluation only to full lifecycle).
Evaluation criteria are linked to company opportunities and risks
COSI GoOpen 2009
33
34. JL-34
OSS selection – Results
Selecting an OSS component needs to address company’s
Requirements
Purpose
Goals
Identify critical selection criteria and collect information to
assess them
Understand licensing to avoid unwanted restrictions on a
product or service
Community assessment is a crucial criteria in most cases
Do not forget to assess the components functionality
COSI GoOpen 2009
34
35. JL-35
Journals.Conferences and workshops papers
22 conference papers and 12 workshop papers on
international conferences
Academic
• International Conference on Open Source Systems
• International Conference on Quality Software
• International Conference on Software Maintenance
• International Conference on Model Driven Engineering Languages
and Systems
• ….
Practitioners
• Eclipse Summit Europe
• Subversion Conference
• Linux Conf Europe
• ….
Journals (5)
IEEE Software (3)
IEEE Transactions on Software Engineering
International Journal of Business Innovation and Research
COSI GoOpen 2009
35
36. JL-36
Dissemination
Achievements:
More than 50 publications by COSI members
4 main events organised
Many more events attended
Significant internet based dissemination. Web site has
been maintained alive and full of contents
Web sites:
Library of assets hosted by Friprog
(Norwegian Open Source Competence Center)
• www.friprog.no/Laer-mer/Prosjekter/COSI-Library-of-Assets
External COSI website will be maintained during 3
more years
• www.itea-cosi.org
COSI GoOpen 2009
36
37. JL-37
Internet
Library of Assets
Collection of project results that are available for
the general public on the internet
Addresses inner and open source related topics
Contains
Process descriptions
Architecture designs
Papers on issues studied during COSI
Documented experiences from case studies
…
COSI GoOpen 2009
37
38. JL-38
Conclusions – goals reached
1 distributed 2 agile 3 trust &
concurrent developments in understanding in
heterogeneous distributed open
development settings collaborations
outsourcing external
in house bounded
open
collaborations collaborations
company knowledge
control & & cost
ownership sharing
4 understand &
use the shift
software shift
COSI GoOpen 2009
38
39. FAMILIER
Programvareindustrien og fri
programvare –
erfaringer fra FoU-prosjekter
Del 2
OSIRIS prosjektet
Norges Forskningsråd støttet COSI og OSIRIS prosjektene
Eureka ∑! 2023 Programme, ITEA projects COSI and OSIRIS IKT Norge, 19.05.09 39
40. FAMILIER
Prosjektet Norsk OSIRIS
• Open Source tjenesteplattform
• Start: 1.7.2005 (i Norge)
• Varighet 3 år
• Norske aktiviteter:
• Bidrag til felles tjenesteplattform
• Nasjonale demonstrator prosjekter
Norges Forskningsråd støttet COSI og OSIRIS prosjektene
Eureka ∑! 2023 Programme, ITEA projects COSI and OSIRIS IKT Norge, 19.05.09 40
41. FAMILIER
Open Source Infrastructure for Run-time Integration of Services
OSIRIS is an across-domain open source service platform that will
provide support for services provisioning, aggregation, delivery,
dynamic adaptation to the context and lifecycle management through
smooth integration of devices.
Domotic
Services
Service Surveillance
Provider
Internet
Home
Gateway Multimedia
Service/Content Services
Aggregator
Remote
Work
M
Ac obil e
ce
ss
GPS
Content
Provider
Management
Center
Norges Forskningsråd støttet COSI og OSIRIS prosjektene
Eureka ∑! 2023 Programme, ITEA projects COSI and OSIRIS IKT Norge, 19.05.09 41
42. FAMILIER
An OSIRIS scenario
Architecture: OSIRIS
Norges Forskningsråd støttet COSI og OSIRIS prosjektene
Eureka ∑! 2023 Programme, ITEA projects COSI and OSIRIS IKT Norge, 19.05.09 42
43. FAMILIER
OSGi
Norges Forskningsråd støttet COSI og OSIRIS prosjektene
Eureka ∑! 2023 Programme, ITEA projects COSI and OSIRIS IKT Norge, 19.05.09 43
44. FAMILIER
Osiris architecture in a nutshell
Norges Forskningsråd støttet COSI og OSIRIS prosjektene
Eureka ∑! 2023 Programme, ITEA projects COSI and OSIRIS IKT Norge, 19.05.09 44
45. FAMILIER
Demonstrators organisation
Business demonstrators
Financial services Mobile CRM Tax Services
Technology demonstrators
e2e demonstrator
Norges Forskningsråd støttet COSI og OSIRIS prosjektene
Eureka ∑! 2023 Programme, ITEA projects COSI and OSIRIS IKT Norge, 19.05.09 45
46. FAMILIER
What the CRM demonstrator does
• Contact and Diary information available on the
mobile
• Live replication of CRM data from the central
database
• Abstract of a number of the last interactions
between his company and a specific customer
• Smart adaptation of services used
• Map and route planner depending on price, bandwidth,
accuracy
Norges Forskningsråd, IKT programmet, OSIRIS prosjektet
Eureka ∑! 2023 Programme, ITEA project ip04040, OSIRIS IKT Norge, 19.05.09 46
48. FAMILIER
Mobile CRM service
TellU SuperOffice
CRM server
CRM Demo
Position
1
SMS
GSM
mobile 4
network MMS
Call 2 3
UMTS
Control
Firewall Firewall
GSN
Internet
SuperOffice CRM Client
Map provider
Norges Forskningsråd støttet COSI og OSIRIS prosjektene
Eureka ∑! 2023 Programme, ITEA projects COSI and OSIRIS IKT Norge, 19.05.09 48
49. FAMILIER
Tax Service
Mobile OSIRIS OSIRIS
phone Internet Internet
Tax Authority
(Light Connector ex. 1 Connector ex. 2
Weight Web Services
Service frame Web Service
node)
protocol Client
Digital TellU Forms distribution
interactive TV and parsing system.
(Light weight
node) OSIRIS Profile Extensions
OSIRIS Basic Node
OSGi
JVM
Norges Forskningsråd støttet COSI og OSIRIS prosjektene
Eureka ∑! 2023 Programme, ITEA projects COSI and OSIRIS IKT Norge, 19.05.09 49
50. FAMILIER
N y e r et ningslinjer for m obile og DTV
t jenest er
1. N av igasjon og
ar beids f y t
2. Feil
3. Søk og sp ør sm ål
4. Inp ut / out pu t -
t ek nik k er
5. Tid
6. Tek st og sp r åk
7. St em m e og ly d
8. Gr a fk k
9. Tall
Norges Forskningsråd, IKT programmet, OSIRIS prosjektet 10. Hjelp og sup p or t
Eureka ∑! 2023 Programme, ITEA project ip04040, OSIRIS IKT Norge, 19.05.09 50
51. FAMILIER
Utvikling
av skjemaer mobil Demonstrator
Skjema-
bygger • Skjema utvikles med skjemabygger
• Output format er XForms XML
• Skjema kan inneholde lyd og video
• Skjemaer lagres i en skjemabank
XForms
Skjema- • Skjemaer vises på mobil av Tellus
motor
skjemamotor i hht tilpasset Elmer
• Datafangst og validering utføres av
Tellus skjemamotor
• Resultat XML lagres i et passende
repository (Altinn)
Skjemamotor ligger dels på server og
dels på mobiltelefon eller Settop boks.
XForms
skjema- Det tar kort tid å utvikle et nytt skjema.
base Tiden er avhengig av kompleksiteten
på skjemaet.
Norges Forskningsråd støttet COSI og OSIRIS prosjektene
Eureka ∑! 2023 Programme, ITEA projects COSI and OSIRIS IKT Norge, 19.05.09 51
52. Exploration
• SuperOffice
• mobile client under development, feature
complete now
• TellU:
• Own product Actor Frame published as Open
Source
• Part of Telenor’s connected objects platform
• Forms engine used when building services
• Focus on universal design for user interface
Eureka ∑! 2023 Programme, ITEA project ip04040, OSIRIS ICT Norway 5/19/09 52