Miami-Dade Water and Sewer Department (MDWASD) provides high-quality drinking water and waste water services, promote water conservation and work to safeguard public health and the environment. Miami-Dade County maintains more than 8,500 miles of underground water lines, as well as approximately 4,100 miles of sewer lines, serving some 2.3 million residents and thousands of visitors.
The multi-year Capital Improvement Program ensures high quality drinking water and wastewater services are in compliance with all regulatory requirements. Water conservation efforts help protect this important natural resources while also educating future generations on the importance of smart water use.
· In the process of designing new features, MDWASD found themselves needing a common architecture as a template for new features.
· MDWASD needed this new feature solution to have the following capabilities:
· Centralize all business logic within the CCB framework.
· Cross reference this process with existing CCB objects.
· Self-contained entity with its own lifecycle that can be further exposed for web service used.
The Process and Solution
MDWASD was presented with options:
· Customized Framework Entity – MDWASD can create their own custom entity. There were 2 ways to do this:
Java-Metadata Custom Entity
· This is how custom objects were created prior to Configuration Tools.
· This was done by creating custom tables, and metadata, and then writing maintenance programs using Java.
· This was also previously done using COBOL.
· PROS – Relatively simple to design and implement, team needed no additional training.
CONS – Upgrade issues(possible deprecation), requires builds, deployments, and downtime
· This is a more recent implementation, using Configuration tools.
· Configuration Tools is a more front-end-leaning way to develop customizations, aimed towards business users.
· All business logic is created via configuration instead of compiled java code.
· PROS – Upgrade-proof, greatly flexible, no downtime required.
· CONS – Complex implementation, very high learning curve.
Use Case Functionality –Oracle CCB can create simpler objects with a more rigid structure than custom entities.
· Cases were meant to be used to encapsulate business processes and give them “physical” form in the framework.
· Cases allowed the creation of objects that followed a configurable lifecycle, via states and plugin points for custom code within these states.
· PROS – Not as simple to implement as Java Entities, but with proper leadership, team can implement this with little training.
· CONS – Challenging to design, as constant communication, or a strong agreement between developers and business users are needed.
· MDWASD Opted to use Cases: Deciding factors were a CCB upgrade soon (meaning deprecation was a problem) and learning curve meant time to train new developers.
· MDWASD already had a few developers being trained, but mostly on simpler development. Cogent led Case Design and Development since its inception.