70 likes | 186 Views
iRODS-E : Differentiation vs. Effort Lower effort with less differentiation vs. more effort and higher levels of differentiation. Packaging & Installation – Increased UX Documentation In-Place - Hardening In-Place - Refactoring Branch & Merge – Hardening / Refactoring
E N D
iRODS-E : Differentiation vs. EffortLower effort with less differentiation vs. more effort and higher levels of differentiation • Packaging & Installation – Increased UX • Documentation • In-Place - Hardening • In-Place - Refactoring • Branch & Merge – Hardening / Refactoring • Branch & Merge - Componentize & Rewrite • Wholesale Rewrite / New Product
Packaging & Install Scripts Address iRODS installation issues • Current iRODS installation is a hands on the keyboard effort and requires building code • Provide binary packages for supported platforms • Ubuntu, CentOS / RHEL, OSX, Solaris for now • Include OS level dependency support for database installation & configuration • Provide more intuitive options for advanced configuration options such as DBR / DBO, remote iCAT • Future GUI front end for configuration & administration
Documentation iRODS knowledge is scattered about the irods.org wiki & irods-chat mailing list. Providing a comprehensive set of documentation would be an important differentiator for RENCI’s iRODS-E, such as: • Installation Guide • Data Grid Administrator Cook Book for various tested data management solutions • Data Grid Administration Manual
In-Place Hardening & Refactoring Work closely with the DICE developers to improve the iRODS code base within the Community Code Repository : iRODS-E then becomes a RENCI tested & certified release of the Community Repository • Requires fewer RENCI resources • No need to work to keep bug fixes & features in sync across iRODS-E & iRODS-C repositories • Testing of iRODS-C increases considerably, provides direct community value • Better practices such as SA & Code Coverage analysis have already been adopted by the DICE developers • Code Hardening & Refactoring moves much more slowly due to required social engineering of DICE developers, sending patches for application to the repository • Value of Enterprise release could be viewed as more minimal, differentiation will need be focused elsewhere
Branch & Merge – Hardening & Refactoring A iRODS-C 3.0 Branch has been created in G-Forge, Current hardening & testing efforts currently focus on this code base. • More freedom in development, no social engineering required to include changes • More claim to differentiation from iRODS-C releases • Code divergence, porting bug fixes or new feature code • Requires more development resources • Less hands-on testing, reliance mostly on automated testing grid
Branch & Merge - Componentize & Rewrite Break iRODS code along interface boundaries, re-writing significant sections while maintaining backward compatibility. Early targets would be: • Refactor toward an Object Oriented Design & Patterns • Network Layer – move to boost::asio, add SSL • Migrate Client/Server API to Apache Thrift for RPC • iCAT Database Component – move to DAO pattern, refactor out cross API call DB Transactions, Provide support for horizontal partitioning
Wholesale Rewrite or a Whole New Product Using existing Open Source libraries and other modern tools, RENCI could reproduce iRODS functionality, targeted other primary use cases, ‘Big Data’, etc. For example: • Apache Thrift for Client / Server RPC • Embed Python/Lua/etc as the Rules Language • Many and Varied Boost Libraries • The RENCI solution could also very well talk to iRODS servers as well.