New CN Interfaces http://mule1.dataone.org/ArchitectureDocs-current/apis/CN_APIs.html
--------------------------------------------------
org.dataone.service.cn.tier1.CNCore
org.dataone.service.cn.tier1.CNRead
org.dataone.service.cn.tier2.CNIdentity
org.dataone.service.cn.tier2.CNAuthorization
org.dataone.service.cn.tier2.CNRegister
org.dataone.service.cn.tier3.CNReplication (renamed from org.dataone.service.cn.tier4.Storage)
New MN Interfaces http://mule1.dataone.org/ArchitectureDocs-current/apis/MN_APIs.html
--------------------------------------------------
org.dataone.service.mn.tier1.MNCore
org.dataone.service.mn.tier1.MNRead
org.dataone.service.mn.tier2.MNAuthorization
org.dataone.service.mn.tier3.MNStorage
org.dataone.service.mn.tier4.MNReplication
Old Interfaces
--------------------
org.dataone.service.cn.CoordinatingNodeAuthentication
org.dataone.service.cn.CoordinatingNodeAuthorization
org.dataone.service.cn.CoordinatingNodeCrud
org.dataone.service.cn.CoordinatingNodeDataReplication
org.dataone.service.cn.CoordinatingNodeQuery
org.dataone.service.cn.CoordinatingNodeRegister
org.dataone.service.mn.MemberNodeAuthentication
org.dataone.service.mn.MemberNodeAuthorization
org.dataone.service.mn.MemberNodeCrud
org.dataone.service.mn.MemberNodeHealth
org.dataone.service.mn.MemberNodeReplication
1) Common Library d1_common_java
-----------------------
types (datatypes and exceptions)
interface defs
Jibx Extention Code
no implementation code
Constants
ObjectFormatService* (remove bcse already defined in CNCore)
2) Common Utility Library d1_util_java
---------------------------------
Helper Serializer/Deserializers (currently ServiceTypeUtil ?)
MimeMultipart implementations
StreamingUtil
EncodingUtilities
ObjectFormatServiceImpl* (eliminate, use CNCore instead)
3) Common CN Library d1_cn_common
-----------------------------
NodeId Generation (place this in the CN implementation of node registration)
MetadataPackageAccess
Libclient library
----------------------
4) d1_libapi_java
org.dataone.client.net
D1Url
RestClient
D1RestClient
org.dataone.client.serviceImpl
D1Node / MNode / CNode - implementations of service API
ObjectFormatServiceCache (implemented as part of CNode)
-
5) d1_libclient_java
D1 LIB CLIENT == BatchLibCLient
(refactor MNnode to remove D1Client dependency, MNode will depend upon CNode)
* Mnode dependency on CNode will be problematic for testing validity of a new member node
(the whole web-testing idea) - the CNode parameter passed in should be allowed to be null.
DataPackage
D1Object
D1Client
-
ITK Client Pkg
???
split libclient into two peices, shared lowlevel functionality.
Scenaros
--------------
* A. Products: 1, 2, 3, 4, 5
B. Products: 3, 1, (2, 4, 5)
C. Products: 3, 1, (2, 4), 5
D. Products: 3, 1, 2, (4, 5)
2 depends on 1 (serializers)
3 depends on (1,2), used by CN implementation only
4 depends on (1,2), used by CN, MN, ITK
5 depends on 4( depends on 1,2), used by ITK, MN, and perhaps CN
n.b.: method redundancy (serialization / deserialization) between TypeMarshaller and ServiceTypeUtils.
elephant in the room: D1_schemas is one namespace
-- need to refactor to limit cascading impacts of versioning
Type schemas were merged around 2010-11-18