-
Notifications
You must be signed in to change notification settings - Fork 36
SWArch
atalla edited this page Feb 21, 2014
·
1 revision
The Figure illustrates the overall software architecture of the Jemma framework. Jemma is an OSGi based implementation which composites of several bundles and the interaction among these bundles are performed through providing and consuming services. Thus, the Jemma architecture is highly modular with clearly defined interfaces. The key bundles (include JavaGAL , ah.zigbee (Zigbee Network Manager), ah.hac (Home Automation Core), and Greenathome Appliance Broker) work together to implement the Energy@home specifications for energy monitoring and management application. In addition, the privacy protection is considered an important aspect of the Jemma which is managed through UserAdmin OSGi Standard service.
- Declarative Service (OSGI-INF)
1. EquinoxZgdCommandProvider
Used to extend the command lines for OSGi (ZigBee Gateway commands)
2. GatewayActivator
Manage and Register The GatewayInterface.
- Activator Services (registerService)
1. GatewayInterface
Endpoint for Interacting with the GAL device like Events, Nodes, Discovery.
- Referenced Services (ServiceTracker, getServiceReference or OSGI_INF)
1. Gateway Interface
2. iGAL
3. Configuration Parameters
1. PROP_ZGD_BIND_DEVICE_NAME = "it.telecomitalia.zgd.bind-device"
2. jgal.debug
3. zgd.port
4. GATEWAY_ROOT_URI
5. osgi.command.scope
6. GATEWAY_NAMESPACE = "it.telecomitalia.zgd.gateway-namespace"
7. REST_NAMESPACE = "it.telecomitalia.zgd.rest-namespace"
8. GATEWAY_NAMESPACE_PREFIX = "it.telecomitalia.zgd.gateway-prefix"
9. REST_NAMESPACE_PREFIX = "it.telecomitalia.zgd.rest-prefix"
10. GATEWAY_ROOT_URI = "it.telecomitalia.zgd.gateway-root"
11. NETWORK_RESOURCES_URI = "it.telecomitalia.zgd.network-resources"
12. LOCAL_PORT = "it.telecomitalia.zgd.local-port"
13. LOCAL_ADDRESS = "it.telecomitalia.zgd.local-address"
14. PUBLIC_ADDRESS_RESOLUTION = "it.telecomitalia.zgd.public-address-resolution"
15. USE_PUBLIC_ADDRESS_RESOLUTION = "it.telecomitalia.zgd.use-public-address-resolution"
16. FACTORY_IMPLEMENTATION_CLASS = "it.telecomitalia.zgd.factory-implementation-class"
17. ENABLE_RESTLET_CONSOLE = "it.telecomitalia.zgd.enable-restlet-console"
18. CONNECTION_TIMEOUT = "it.telecomitalia.zgd.connection-timeout"
- Declarative Service (OSGI-INF)
None
- Activator
1. ExecutorObject
is used to manage scheduled future Tasks
2. DateTimeObject
Is used to manage the system clock.
- Referenced Services (ServiceTracker, getServiceReference or OSGI_INF)
None
- Configuration Parameters
None
- Declarative Service (OSGI-INF)
None
- Activator
1. GatewayInterface
Endpoint for Interacting with the GAL device like Events, Nodes, Discovery.
2. GalExtenderProxyFactory
Is used to manage the system clock.
- Referenced Services (ServiceTracker, getServiceReference or OSGI_INF)
None
- Configuration Parameters
1. GatewayProperties.ZGD_DONGLE_URI_PROP_NAME
2. GatewayProperties.ZGD_DONGLE_SPEED_PROP_NAME
3. GatewayProperties.ZGD_DONGLE_TYPE_PROP_NAME
4. GATEWAY_NAMESPACE = "it.telecomitalia.zgd.gateway-namespace"
5. REST_NAMESPACE = "it.telecomitalia.zgd.rest-namespace"
6. GATEWAY_NAMESPACE_PREFIX = "it.telecomitalia.zgd.gateway-prefix"
7. REST_NAMESPACE_PREFIX = "it.telecomitalia.zgd.rest-prefix"
8. GATEWAY_ROOT_URI = "it.telecomitalia.zgd.gateway-root"
9. NETWORK_RESOURCES_URI = "it.telecomitalia.zgd.network-resources"
10. LOCAL_PORT = "it.telecomitalia.zgd.local-port"
11. LOCAL_ADDRESS = "it.telecomitalia.zgd.local-address"
12. PUBLIC_ADDRESS_RESOLUTION = "it.telecomitalia.zgd.public-address-resolution"
13. USE_PUBLIC_ADDRESS_RESOLUTION = "it.telecomitalia.zgd.use-public-address-resolution"
14. FACTORY_IMPLEMENTATION_CLASS = "it.telecomitalia.zgd.factory-implementation-class"
15. ENABLE_RESTLET_CONSOLE = "it.telecomitalia.zgd.enable-restlet-console"
16. CONNECTION_TIMEOUT = "it.telecomitalia.zgd.connection-timeout"
17. ZGD_DONGLE_URI_PROP_NAME = "zgd.dongle.uri"
18. ZGD_DONGLE_TYPE_PROP_NAME = "zgd.dongle.type"
19. ZGD_DONGLE_SPEED_PROP_NAME = "zgd.dongle.speed"
20. ZGD_DEBUG_PROP_NAME = "zgd.log.debug"
- Declarative Service (OSGI-INF)
None
- Activator
None
- Refrenced Services (ServiceTracker, getServiceReference or OSGI_INF)
- GatewayInterfaceFactoryTracker [ServiceTracker]
- Configuration Parameters
None
- Declarative Service (OSGI-INF)
- GalProcess
Spawn the gal process and control it
- Activator
- IGal
- Refrenced Services (ServiceTracker, getServiceReference or OSGI_INF)
- None
- Configuration Parameters
1. os.name
2. os.arch
3. ZGD_WSNC_URL_PROP_NAME = "zgd.wsnc.uri"
4. DEFAULT_ZGD_WSNC_URL_PROP = "http://163.162.180.176:8080";
5. ZGD_DONGLE_URI_PROP_NAME = "zgd.dongle.uri"
6. ZGD_DONGLE_TYPE_PROP_NAME = "zgd.dongle.type"
7. ZGD_DONGLE_SPEED_PROP_NAME = "zgd.dongle.speed"
8. ZGD_DEBUG_PROP_NAME = "zgd.log.debug"
9. ZGD_SECURITY_PROP_NAME = "zgd.security"
10. ZGD_SECURITY_WATCHDOG_TIME_NAME = "zgd.watchdog"
11. ZGD_WSNC_ID_PROP_NAME = "zgd.wsnc.id"
12. PROP_ZGD_PORT = "zgd.port"
13. PROP_ZGD_CHANNEL = "zgd.channel"
14. String PROP_ZGD_AUTODISCOVERY = "zgd.autodiscovery"
15. FRAGMENT_BUNDLES_PREFIX = "org.energy_home.jemma.osgi.zgd"
16. DEFAULT_ZGD_DONGLE_TYPE_PROP = "ezsp"
17. DEFAULT_ZGD_DONGLE_SPEED_PROP = 115200
18. DEFAULT_ZGD_SECURITY = true
19. DEFAULT_ZGD_AUTODISCOVERY = true
- Declarative Service (OSGI-INF)
- ZigBeeCommandProvider
The command lines for ZigBee Network Manager Service
- ZigBeeManagerImpl
The network manager for the Zigbee network and interacts with the GA
- Activator
- ZigBeeDevice
exposing APIs to interact with the device
- Refrenced Services (ServiceTracker, getServiceReference or OSGI_INF)
- setNetworkManager [OSGI_INF]
- org.eclipse.equinox.internal.util.timer.Timer [OSGI_INF]
- rg.energy_home.jemma.zgd.GatewayInterface
- Configuration Parameters
1. osgi.command.scope
2. GATEWAY_NAMESPACE = "usenvm"
3. network.type = ZigBee
4. it.telecomitalia.ah.zigbee.properties
5. osgi.instance.area
6. org.osgi.service.device.Constants.DEVICE_CATEGORY,
7. org.osgi.service.device.Constants.DEVICE_CATEGORY= "ZigBee"
8. org.osgi.service.device.Constants.DEVICE_SERIAL = ieeeAddr
9. org.osgi.framework.Constants.SERVICE_PID = ieeeAddr
10. "zigbee.device.ep.id"
11. "zigbee.device.profile.id"
12. "zigbee.device.device.id"
13. "zigbee.device.eps"
14. "zigbee.device.eps.number"
15. igbee.device.manufacturer.id"
- Declarative Service (OSGI-INF)
- None
- Activator
- None
- Refrenced Services (ServiceTracker, getServiceReference or OSGI_INF)
None
- Configuration Parameters
None
- Declarative Service (OSGI-INF)
- EnergyAtHome
a web interface to configure appliances and the entire system
- Activator
- None
- Refrenced Services (ServiceTracker, getServiceReference or OSGI_INF)
- HttpService
- UserAdmin
- Configuration Parameters
- service.exported.configs
- it.telecomitalia.ah.energyathome.auth
- it.telecomitalia.ah.energyathome.https
- Declarative Service (OSGI-INF)
- None
- Activator
- M2MDeviceConfigurator
- M2MCommandProvider
Command line for M2M Device Service
- M2MNetworkScl
- Refrenced Services (ServiceTracker, getServiceReference or OSGI_INF)
None
- Configuration Parameters
None
- Declarative Service (OSGI-INF)
- FlexGatewayButtons
state machine to properly handle FlexGateway's leds
- CedacIO
- CedacIOConsole
- Activator
None
- Refrenced Services (ServiceTracker, getServiceReference or OSGI_INF)
- EventAdmin [OSGI_INF]
- EventHandler [OSGI_INF]
- Configuration Parameters
- osgi.command.scope
- Declarative Service (OSGI-INF)
- HapServiceComponent
- HapProxy
- Activator
None
- Refrenced Services (ServiceTracker, getServiceReference or OSGI_INF)
- DateTimeService [OSGI_INF]
- IHapCoreService [OSGI_INF]
- HttpService [OSGI_INF]
- M2MNetworkScl [OSGI_INF]
- IAppliancesProxy [OSGI_INF]
- IM2MHapService [OSGI_INF]
- INetworkManager [OSGI_INF]
- Configuration Parameters
-
- Declarative Service (OSGI-INF)
- CmaCommandProvider
Commection Manager Admin Service , Home Automation Core Commands
- CedacIO
- CedacIOConsole
- Activator
None
- Refrenced Services (ServiceTracker, getServiceReference or OSGI_INF)
- IConnectionAdminService [OSGI_INF]
- EventHandler [OSGI_INF]
- Configuration Parameters
- osgi.command.scope
- osgi.command.descriptio
- Declarative Service (OSGI-INF)
- ESPApplication
- ESPCommandProvide
- ESPService
- ESPEventsDispatcher
- ESPServlet
- Activator
None
- Refrenced Services (ServiceTracker, getServiceReference or OSGI_INF)
- ExecutorService [OSGI_INF]
- HapService [OSGI_INF]
- IESPEventsDispatcher[OSGI_INF]
- EventAdmin
- HttpService
- ESPService (in the same Bundle)
- Configuration Parameters
- it.telecomitalia.ah.test.hap.client.startTime
- OSGI_INSTANCE_AREA = "osgi.instance.area"
- OSGI_CONFIGURATION_AREA = "osgi.configuration.area"
- ESP_CONFIG_FILENAME = "org.energy_home.jemma.ah.eh.esp.properties"
- SP_SYSTEM_PROPERTY_PREFIX = "org.energy_home.jemma.ah.eh.esp."
- CHECK_SUBSCRIPTIONS_ENABLED = "checkSubscriptionsEnabled"
- POWER_PROFILE_CLUSTER_ENABLED = "powerProfileClusterEnabled"
- REMOTE_HOST_ADDR = "remoteHostAddr"
- REMOTE_HOST_PORT = "remoteHostPort"
- INITIAL_TIME_PROPERTY_NAME = "initialTime"
- USE_LOCAL_CACHE_PROPERTY_NAME = "useLocalCache"
- CONTRACTUAL_POWER_THRESHOLD_PROPERTY_NAME = "contractualPowerThreshold"
- PEAK_PRODUCED_POWER_PROPERTY_NAME = "peakProducedPower"
- SMART_INFO_PID_PROPERTY_NAME = "smartInfoPid"
- Declarative Service (OSGI-INF)
- HacWebCommandProvider
- Activator
- Servlet
- Refrenced Services (ServiceTracker, getServiceReference or OSGI_INF)
- IAppliancesProxy [OSGI_INF]
- INetworkManager [OSGI_INF]
- Configuration Parameters
- felix.webconsole.label
- felix.webconsole.title
- Declarative Service (OSGI-INF)
- ESPApplication
- ESPCommandProvider
- ESPEventsDispatcher
- ESPServlet
- Activator
-
- Refrenced Services (ServiceTracker, getServiceReference or OSGI_INF)
- ExecutorService [OSGI_INF]
- HapService [OSGI_INF]
- IESPEventsDispatcher [OSGI_INF]
- ESPService [OSGI_INF]
- EventAdmin [OSGI_INF]
- HttpService [OSGI_INF]
- ESPService [OSGI_INF]
- Configuration Parameters
-
- Declarative Service (OSGI-INF)
- Configuratore
- Activator
-
- Refrenced Services (ServiceTracker, getServiceReference or OSGI_INF)
- IHacService [OSGI_INF]
- UserAdmin [OSGI_INF]
- DocumentBuilderFactory [OSGI_INF]
- ConnectionAdminService [OSGI_INF]
- Configuration Parameters
- org.energy_home.jemma.username
- org.energy_home.jemma.password
- Declarative Service (OSGI-INF)
- None
- Activator
- EnergyAtHomeApp
- Refrenced Services (ServiceTracker, getServiceReference or OSGI_INF)
-
- Configuration Parameters
- Declarative Service (OSGI-INF)
- None
- Activator
- EnergyAtHomeApp
- Refrenced Services (ServiceTracker, getServiceReference or OSGI_INF)
-
- Configuration Parameters -
- Declarative Service (OSGI-INF)
- HacUPnPDevice
- Activator
- UPnPDevice
- Refrenced Services (ServiceTracker, getServiceReference or OSGI_INF)
-
- Configuration Parameters
- DEVICE_CATEGORY
- UPnP.export
- PRESENTATION_URLS
- UPnPDevice.UDN
- UPnPDevice.TYPE
- UPnPDevice.FRIENDLY_NAME
- UPnPDevice.MANUFACTURER
- UPnPDevice.MANUFACTURER_URL
- UPnPDevice.MODEL_DESCRIPTION
- UPnPDevice.MODEL_NAME
- UPnPDevice.MODEL_NUMBER
- UPnPDevice.MODEL_URL
- UPnPDevice.UPC
- UPnPDevice.SERIAL_NUMBER
- org.osgi.service.device.Constants.DEVICE_CATEGORY
- UPnPDevice.UPNP_EXPORT
- Declarative Service (OSGI-INF)
- WebUIComponent
- Activator
-
- Refrenced Services (ServiceTracker, getServiceReference or OSGI_INF)
- HttpService [OSGI_INF]
- Configuration Parameters