Added notion of a general Store abstraction and wired it up in ClusterStore.
diff --git a/core/store/src/main/java/org/onlab/onos/store/common/StoreService.java b/core/store/src/main/java/org/onlab/onos/store/common/StoreService.java
new file mode 100644
index 0000000..490183f
--- /dev/null
+++ b/core/store/src/main/java/org/onlab/onos/store/common/StoreService.java
@@ -0,0 +1,36 @@
+package org.onlab.onos.store.common;
+
+import com.hazelcast.core.HazelcastInstance;
+
+/**
+ * Bootstrap service to get a handle on a share Hazelcast instance.
+ */
+public interface StoreService {
+
+ /**
+ * Returns the shared Hazelcast instance for use as a distributed store
+ * backing.
+ *
+ * @return shared Hazelcast instance
+ */
+ HazelcastInstance getHazelcastInstance();
+
+ /**
+ * Serializes the specified object into bytes using one of the
+ * pre-registered serializers.
+ *
+ * @param obj object to be serialized
+ * @return serialized bytes
+ */
+ public byte[] serialize(final Object obj);
+
+ /**
+ * Deserializes the specified bytes into an object using one of the
+ * pre-registered serializers.
+ *
+ * @param bytes bytes to be deserialized
+ * @return deserialized object
+ */
+ public <T> T deserialize(final byte[] bytes);
+
+}
diff --git a/core/store/src/main/java/org/onlab/onos/store/common/package-info.java b/core/store/src/main/java/org/onlab/onos/store/common/package-info.java
new file mode 100644
index 0000000..cf19812
--- /dev/null
+++ b/core/store/src/main/java/org/onlab/onos/store/common/package-info.java
@@ -0,0 +1,5 @@
+/**
+ * Common abstractions and facilities for implementing distributed store
+ * using Hazelcast.
+ */
+package org.onlab.onos.store.common;