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