integrate (yourself) with the apache software foundation - open source day 2015

43
Integrate (Yourself) with the Apache Software Foundation Krzysztof Sobkowiak V.P. Apache ServiceMix & ASF Member

Upload: krzysztof-sobkowiak

Post on 18-Jul-2015

346 views

Category:

Technology


0 download

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 by Numbers

9 Board Members

ASF

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?

Apache Projects

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 Architecture

SMX

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➢ More than 100 components

http://camel.apache.org/components.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

Messging and Routing

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

Federated SOA with Apache ServiceMix

Java Magazin 7.2014

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