OSGi technology is becoming the preferred approach for creating highly modular and dynamically extensible applications. With open source framework implementations like Eclipse Equinox and Apache Felix readily available, there is no better time to move to OSGi technology. However, doing so requires to master the assembly, provisioning, and discovery of the components that make-up your system. Apache ACE, an Apache Incubator project, is a software distribution framework that allows to centrally manage and distribute software components, configuration data, and other artifacts to target systems. We will focus on building and managing OSGi deployments, showing you how to use Apache ACE to bootstrap a framework and deploy to remotely managed systems. Also, we will show how ACE can be used to deploy bundles to an Android based phone.
13. Apache ACE
• Started in incubator on April 24th 2009
• So4ware distribu9on framework
based on OSGi
• 12 commiers
• working codebase
• first official release imminent!
• hp://incubator.apache.org/ace/
15. Keeping the history
last year
!"#$%&'(! *%"+,'(!
last month
!"#$%&'(!
!"#$%&'() *%"+,'(!
last week
!"#$%&'(!
!"#$%&'() +%",-'(!
*%"+,'(-
*%"+,'() now
!"#$%&'(! +%",-'(!
!"#$%&'() +%",-'()
*%"+,'(-
!"#$%&'()
!"#$%&'(* +%",-'()
+%",-'(*
!"#$%&'(* +%",-'(*
16. Why?
• Automate deployment
• Insight into who uses what
• History of each system
• Consistent development, tes9ng, produc9on
• Basis for several possible extensions
21. Mapping them onto targets
• mapping distribu9ons to targets
• some9mes done by an external system
• data kept in “license repository”
!"#$%&$'($)*&"+*,-
."&+,"/01*% 23,4$+
28. Deployment Admin
• deployment packages
• versioned set of ar9facts
• transac9onal install/update
• fix packages provide deltas
• signing makes them secure
• extensible through resource processors
• AutoConfig defines configura9on admin data
29. From dependency to deployment
!"#$%&'%(#)*"#$+ 6*0%4)%&'%(#)*"#$+ 1%(9#+:%4"&'%(#)*"#$+
,$-./0" 5%/"3$% 1*)"$*23-#4
+ 1*)"$*23-#4 7/$8%"
= 7/$8%" ,$-./0"
37. ACE UI Extensions
/**
* Creates components for named extension points in the Vaadin UI. Extension factories
* are used throughout the UI to allow other bundles to contribute features.
*/
public interface UIExtensionFactory {
public static final String EXTENSION_POINT_KEY = "extension_point";
public static final Object EXTENSION_POINT_VALUE_ARTIFACT = "artifact";
public static final Object EXTENSION_POINT_VALUE_FEATURE = "feature";
public static final Object EXTENSION_POINT_VALUE_DISTRIBUTION = "distribution";
public static final Object EXTENSION_POINT_VALUE_TARGET = "target";
/**
* Creates a UI component for use in the extension point. The contents of the
* context are extension-point dependent.
*/
Component create(Map<String, Object> context);
}
38. Cloud Extension
• Currently supports one
target per node
• Uses jclouds.org
• Implementa9on for
Amazon EC-‐2
43. EZdroid
• Apache Felix on Android
• Apache ACE for provisioning
• OSGi integra9on for phones
• Luminis was the first to have OSGi running on
Android
45. Benefits of each model
!"#"$%&
&"+%,-
!** !** '"(#)*$ '"(#)*$
%& %&
cr
as
!** !**
h
!"#"$%&
!** !** '"(#)*$
%&
!**
.&/ .&/ .&/
'()& !"#$%&#
46. The Demo
• Apache Felix running on Android
• Apache ACE integrated management agent
• Centrally deploying applica9ons to a device
• Context based deployment
• Introduc9ng the bazaar: a marketplace
50. Vision
• Open Source and Standards-‐based
• Infrastructure Agnos9c
• Dynamic Elas9city
• End-‐to-‐end Monitoring
• Public, private or cloud burst
Cloud Software as a Service (SAAS)
Enablement
utilities,
Platform as a Service (PAAS)
services
and
software
infrastructure Infrastructure as a Service (IAAS)
51. PlaRorm
• Enabling Services:
• OSGi based infrastructure
• Mul9-‐tenant aware
Application Layer Services
• REST based
• Applica9on Layer Services:
• Cloud Provisioning
Enabling Services
• Seman9c Indexing and Search
• Authen9ca9on
• Open Social
• Scalable Storage