integrate (yourself) with the apache software foundation - open source day 2015
TRANSCRIPT
Integrate (Yourself) with the Apache Software Foundation
Krzysztof SobkowiakV.P. Apache ServiceMix & ASF Member
Who am I?➢ Member
➢ Apache ServiceMix Committer & PMC Chair (V.P. ServiceMix)
➢ Contributor @ Apache Karaf, Apache CXF, Apache ActiveMQ, Apache Camel
Apache Software FoundationApache Software Foundation
➢ Senior Solution Architect, Trainer
➢ Java enterprise solutions, system integrationCapgeminiCapgemini
➢ RoboCAP – programming & robot workshops for kids➢ OASP – Open Application Standard Patform
Other activitiesOther activities
Who am I?
DisclaimerDisclaimerViews in this presentation are my personal views and does not
necessarily reflect the views of Apache Software Foundation
Outline➢ What is it: Apache Software Foundation
➢ How does it work: Apache Way
➢ Who does the work: Apache Projects
➢ Apache ServiceMix
➢ How to start: Contributing
The ASF – What is it?
➢ Informal corporate structure
➢ 8 members
➢ Resumed work on NCSA httpd in Feb. 1995
➢ Chose permissive licensing
The Apache GroupThe Apache Group
➢ ASF = The Apache Software Foundation
➢ Non-profit corporation founded in 1999
➢ Initially 21 members
➢ Volunteer organization
➢ Virtual world-wide organization
The Apache Software FoundationThe Apache Software Foundation
Structure of the ASF
FoundationFoundation Top Level Projects (TLPs)Top Level Projects (TLPs)
➢ ASF Members
➢ Cross-project community
➢ Board
➢ Elected by ASF members annually
➢ Manage and oversee the corporation, its assets and resources
➢ Technical authority assigned to PMCs
➢ Officers
➢ Oversee the day-to-day affairs
➢ Elected by the board
➢ ASF Members
➢ Cross-project community
➢ Board
➢ Elected by ASF members annually
➢ Manage and oversee the corporation, its assets and resources
➢ Technical authority assigned to PMCs
➢ Officers
➢ Oversee the day-to-day affairs
➢ Elected by the board
➢ Users
➢ Contributors
➢ Committers
➢ Project Management Committee (PMC)
➢ Technical management
➢ Establish rules, report to board
➢ has a Chair appointed by the board (VP) - eyes and ears of the board (oversight only)
➢ Oversee legal aspects and community health
➢ Users
➢ Contributors
➢ Committers
➢ Project Management Committee (PMC)
➢ Technical management
➢ Establish rules, report to board
➢ has a Chair appointed by the board (VP) - eyes and ears of the board (oversight only)
➢ Oversee legal aspects and community health
The ASF's Mission
➢ Provide open source software to public free of charge
➢ Let the coders code – foundation exists to do the restWhat?What?
➢ Infrastructure for open source development
➢ Legal entity for donation purposes
➢ Shelter from law suits
➢ Protection of the Apache brand
How?How?
Apache's TaglineWe are more than a group of projects sharing a server, we are a community of developers and users.
http://people.apache.org/map.html
Challenges and advantages arise from this !!
Outline➢ What is it: Apache Software Foundation
➢ How does it work: Apache Way
➢ Who does the work: Apache Projects
➢ Apache ServiceMix
➢ How to start: Contributing
The Apache Way
MeritocracyThose who do,
decide
Peer-basedParticipate as
individuals
OversightResponsible and
independent
CollaborationPublic and
asynchronous
DecisionsMade by
consensus
Outline➢ What is it: Apache Software Foundation
➢ How does it work: Apache Way
➢ Who does the work: Apache Projects
➢ Apache ServiceMix
➢ How to start: Contributing
Apache Projects➢ Over 160 top-level projects (TLPs)
➢ Diversity ➢ Java, C, C++, Perl, …
➢ Leading technology ➢ Web servers, Java tools & stacks, search, cloud, big
data, build tools, CMS/web framework, databases, OSGi containers, integration frameworks, graphics, …
➢ And end user Office suites!➢ Over thirty projects currently in “pipeline”
https://projects-new.apache.org/
➢ It’s okay for projects to be in “same” space➢ Ant/Maven, Pig/Hive, Axis/CXF...
➢ “Competing” project technology is OK➢ If an active community following the Apache
Way wants to join, great!
Apache Projects➢ Apache does not pay for development
➢ Voluntary contributions only!➢ Many (not all!) developers are paid by a third-party to work on the
project➢ Foundation bears indirect support costs
➢ Infrastructure, publicity, etc.
Who pays?Who pays?
Outline➢ What is it: Apache Software Foundation
➢ How does it work: Apache Way
➢ Who does the work: Apache Projects
➢ Apache ServiceMix
➢ How to start: Contributing
ServiceMix
What is it?What is it? ➢ Flexible, open-source integration container
➢ Powered by OSGi
Main featuresMain features
➢ OSGi-based runtime powered by Apache Karaf
➢ Reliable messaging with Apache ActiveMQ
➢ Messaging, routing and EIP with Apache Camel
➢ SOAP/REST web services with Apache CXF
ServiceMix
The beginningThe beginning
➢ Started in 2005 to implement the Java Business Integration specification
➢ Decoupling of the components (business, technical) by using XML messages
➢ Define a model to package/deploy applications (SU/SA)
➢ Transport layer → Normalized Message Router
https://access.redhat.com/documentation/en-US/Red_Hat_JBoss_Fuse/6.1/html-single/JBI_Development_Guide/images/jbi_architecture.jpg
ServiceMix Kernel
Apache KarafApache Karaf
➢ Small OSGi based server
➢ Lightweight container where applications, components, routes, etc. can be deployed
➢ Modular system – install features you need
➢ Supported runtimes
➢ Apache Felix
➢ Eclipse Equinox
Application typesApplication types
➢ OSGi Blueprint, DS or plain bundles
➢ Spring DM bundles (legacy)
➢ Camel routes
➢ Business rules & processes
ServiceMix Kernel
FeaturesFeatures
➢ Hot deployment
➢ Dynamic configuration
➢ Logging system
➢ Provisioning system (features, OBR, KAR, EBA, ESA)
➢ Native OS integration
➢ Security integration (JAAS → ldap, jdbc, file, …)
➢ Managed instances
➢ Versioning
➢ Service Registry
➢ Clustering (Master/Slave with jdbc or file lock)
➢ ….
http://karaf.apache.org/images/karaf2.png
ServiceMix Kernel
AdministrationAdministration
➢ Extensible Shell Console (local, remote, ssh)
➢ JMX
➢ Web Console
➢ Hawt.io
Messging and Routing
Apache CamelApache Camel
➢ Open Source integration framework
➢ Implements EIP paterns (book by Gregor Hohpe)
➢ Provides word definition, grammar and language when when designing integration solutions
➢ Uses Domain Specific Languages – XML, Java, Scala,...
➢ Features:
➢ In memory bus ←→ Alternative to JBI using NMR
➢ Route objects → can be XML, File, Stream, Bytes, …
➢ Transactional architecture
➢ Sync/Async exchanges
➢ Error and exception handling
➢ ...
Messging and Routing➢ More than 50 EIPs implemented
Aggregator Channel Adapter
Channel Channel Purger
Command Message
Competing Consumers
Content Based
Content Filter
Control Bus Correlation ID
Content Enricher
Datatype Channel
Dead Letter Channel
Detour
Composed Message
Document Message
Durable Subscriber
Envelope Wrapper
Event-Driven Consumer
Event Message Message Filter
Guaranteed Delivery
Message Bus
Message Dispatcher
Message Endpoint
Message Message BranchInvalid Message
C
A B
D
!
E
http://camel.apache.org/enterprise-integration-patterns.html
Messging and Routing➢ Many data formatters
➢ Simplify data exchange between layers and applications
➢ Example: JAXB, Bindy,...
➢ Use marshaller (xml → object) and unmarshaller (object → xml)
http://camel.apache.org/data-format.html
Web Services
Apache CXFApache CXF
➢ Simplifies the creation and deployment of web services
➢ Java to WSDL
➢ WSDL to Java
➢ Supported standards
➢ JAX-WS → SOAP Services (SOAP/XML)
➢ JAX-RS → RESTfull Services (JSON)
➢ SOAP 1.1, 1.2, WSDL 1.1
➢ WS-Security – secures the client/server connection
➢ WS-Addressing – data exchange in SOAP header for the routing
➢ WS-RM – message delivery guarantee
➢ DOSGi – reference implementation of OSGi Remote Services specification
Reliable Messaging
Apache ActiveMQApache ActiveMQ
➢ A high performance, reliable message broker
➢ Persistence for messages
➢ Bridge between broker instances
➢ Languages for client – Java, C, C++, C#, Ruby, …
➢ Protocols – OpenWire, Stomp, AMQP, MQTT
➢ Publish/subscribe, point to point, request and reply
➢ Clustering and Fault Tolerance
➢ ...
https://access.redhat.com/documentation/en-US/Fuse_Message_Broker/5.4/html/Getting_Started/files/FuseMBStartedKeyJMS.html
Reliable Messaging
ArchitectureArchitecture
➢ Clients connect to the broker using connectors
➢ Topics and queues created dynamically
➢ File and jdbc message stores supported
➢ Network connectors control how the broker interacts with other brokers for discovery, replication, failover, clustering...
http://activemq.apache.org/images/BrokerDiagram.png
ServiceMix
Additional featuresAdditional features
➢ Business rule engine with Drools
➢ BPM engine with Activiti
➢ JPA support and XA transactions via Apache Aries
➢ JPA implementations – Apache OpenJPA, Hibernate
➢ Web support via Jetty and Pax Web
➢ IoC support via Apache Aries and Spring
➢ CDI support via Pax CDI
Clustering & Fault Tolerance
KernelKernel➢ Active/Passive mode with file/jdbc lock
➢ Bundles can be installed in Active/Passive mode
BrokerBroker➢ Master/Slave with shared file system, shared database, replicated LevelDB
store
➢ Network of brokers
Apache Karaf CellarApache Karaf Cellar
➢ Allows powerful synchronisation of multiple ServiceMix instances
➢ Leverage Hazelcast data distribution
➢ Easy to install and use: just a feature to install on each node
➢ No point of failure (each node embeds Hazelcast instance)
➢ Provides DOSGi implementation
https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQD7T4OSzA_2Vv-qJIEtiXp4PzIXki7Pq0W396k5z2Asfksh5sV
ServiceMix Tooling➢ Integration with InteliJ, Eclipse, Netbeans
➢ JBoss Tools Integration Stack
➢ JBoss Developer Studio
Outline➢ What is it: Apache Software Foundation
➢ How does it work: Apache Way
➢ Who does the work: Apache Projects
➢ Apache ServiceMix
➢ How to start: Contributing
Contributing to ASF – IndividualsWhy?Why? How?How?
➢ Better end easy recognition of work
➢ Publicly verifiable resume
➢ Work with best programmers, with the best programming practices
➢ No managers, no boss
➢ Work on what you like when you like
➢ Discuss technical designs and issues in writing
➢ Networking opportunities
➢ Build software used by millions around the world
➢ ApacheCon
➢ Better end easy recognition of work
➢ Publicly verifiable resume
➢ Work with best programmers, with the best programming practices
➢ No managers, no boss
➢ Work on what you like when you like
➢ Discuss technical designs and issues in writing
➢ Networking opportunities
➢ Build software used by millions around the world
➢ ApacheCon
➢ Apache wants voluntary contributions
➢ Documentation, Tutorials and Examples
➢ Helping others with queries and questions
➢ Issue / bug tracker triage
➢ Testing new fixes, helping reproduce problems
➢ Bug Fixes and New Features
➢ Writing add-ons and extensions
➢ Mentoring, volunteering for the Foundation
➢ Many different ways to get involved, all are important!
➢ Apache wants voluntary contributions
➢ Documentation, Tutorials and Examples
➢ Helping others with queries and questions
➢ Issue / bug tracker triage
➢ Testing new fixes, helping reproduce problems
➢ Bug Fixes and New Features
➢ Writing add-ons and extensions
➢ Mentoring, volunteering for the Foundation
➢ Many different ways to get involved, all are important!
Contributing to ASF – CompaniesWhy?Why? How?How?
➢ Recognition as company contributing to open source
➢ Attract better people to come and join
➢ Make sure the technologies you use sustain
➢ Contributing developers
➢ Having in-house expertise
➢ Making sure you can influence the directions
➢ Free training for your developers in all aspects of development, management, QA and maintenance
➢ Pooling the developers to work on a project important to the company
➢ Recognition as company contributing to open source
➢ Attract better people to come and join
➢ Make sure the technologies you use sustain
➢ Contributing developers
➢ Having in-house expertise
➢ Making sure you can influence the directions
➢ Free training for your developers in all aspects of development, management, QA and maintenance
➢ Pooling the developers to work on a project important to the company
➢ Provide testimonials about the OSS your enterprise uses
➢ Allow staff members to work on OSS libraries/applications used by your company
➢ Push changes to OSS back
➢ Host ASF club meetings on your premises
➢ Extract out and make open source the libraries/applications developed in-house
➢ Free up the paid software/services for OSS communities
➢ Contributing is easier than you think!
➢ Provide testimonials about the OSS your enterprise uses
➢ Allow staff members to work on OSS libraries/applications used by your company
➢ Push changes to OSS back
➢ Host ASF club meetings on your premises
➢ Extract out and make open source the libraries/applications developed in-house
➢ Free up the paid software/services for OSS communities
➢ Contributing is easier than you think!
My Journey➢ First PR to Apache Karaf – PR#8 17.01.2013 ➢ First discussion in Apache Karaf – 11.11.2013➢ First patch in Apache ServiceMix – SM-2219 30.12.2013 ➢ First discussion in Apache ServiceMix – 07.01.2014➢ Involvement in designs discussions, implementations, dev/user
mailing lists, fixing bugs➢ In the meantime getting elected as a committer – 04.2014 ➢ First commit in Apache ServiceMix – 11.04.2014
http://svn.apache.org/r1585169https://git1-us-west.apache.org/repos/asf?p=servicemix.git;a=commit;h=f7f0a603http://git-wip-us.apache.org/repos/asf/servicemix/commit/f9dd4365
➢ Being a release manager and getting elected into PMC – 07.2014➢ Nominated to be a PMC chair – 02.2015➢ Electing to be a member of ASF – 04.2015
Start contributing
Choosing the right projectChoosing the right project How do I start?How do I start?
➢ English
➢ A programming language
➢ Debugging
➢ Passion
➢ Perseverance
➢ Time
➢ Filter by your interest area
➢ Filter by language
➢ Something you use
➢ Something you want to learn
➢ Using the project is very important
➢ Choose your project
➢ Join the mailing list or forum
➢ Check out the code
➢ Download the binary and play with it
➢ Find open issues and feature requests
➢ Ask the developers on what you can work on
➢ Sign ICLA
RequirementsRequirements
Become a committer (and not only)
Invitation of commit accessInvitation of commit access
➢ Current PMC member nominates individual➢ Discussions on private@ list
➢ Key ?: Do we trust this individual?➢ PMCs free to set own bar
Beyond a committerBeyond a committer
➢ Once you are committer, you can then become a ➢ PMC member ➢ foundation member ➢ Director...➢ even President!
➢ You can nominate other foundation (or PMC) members; can serve as mentor for Incubating projects; vote for Board.
➢ Thank you! ➢ Any questions?
➢ @Ksobkowiak➢ ksobkowiak(at)apache.org➢ krzys.sobkowiak(at)gmail.com
That's it
Apache, the Apache feather logo, Apache ServiceMix, Apache Karaf, Apache Camel, Apache CXF, Apache ActiveMQ and other Apache project names mentioned in this presentation and their logos are trademarks of
The Apache Software Foundation in the United States and/or other countries.All other marks mentioned may be trademarks or registered trademarks of their respective owners.
➢ The Apache Software Foundation➢ http://apache.org➢ http://community.apache.org
➢ Apache ServiceMix➢ http://servicemix.apache.org➢ [email protected]➢ #apache-servicemix @ irc.freenode.net
References➢ Apache Karaf
➢ http://karaf.apache.org➢ Apache Camel
➢ http://camel.apache.org➢ Apache CXF
➢ http://cxf.apache.org➢ Apache ActiveMQ
➢ http://activemq.apache.org➢ Apache Aries
➢ http://aries.apache.org➢ Apache Felix
➢ http://felix.apache.org
➢ Past Apache Way slides by Jim Jagielski, Shane Curcuru, Justin Erenkrantz and Ross Gardler
➢ Past Apache ServiceMix and Apache Karaf slides by Jean-Baptiste Onofré, Gert Vanthienen and Charles Moulliard
Credits
This work is licensed under the Apache License, Version 2.0