This post may shock you... the Java Rocker is going to talk about legacy iSeries and AS/400! Before you panic, and call it the end of the world, let me continue. This post is about running all of the cool new Web 2.0 things on your IBM hardware. Really! Even in Cincinnati! Many people, (myself included) thought the old IBM hardware was only for RPG and COBOL (shudders). It turns out that IBM has been adding functionality to run Linux on the box. That means Wikis, Ecommerce, blogs, and web applications are now there for iSeries-AS/400 people. The catch is that your iSeries needs to be up to date, which sadly for most organizations is not. My IT consulting colleagues at STAR BASE are good with taking your tired old hardware and doing the maintenance necessary for the modernization piece. They get your hardware and software cleaned up and ready, so I can help you with all of the cool new application development projects that I have been talking about.
Packaging Fun
How to Get the Financing You Need
1. Think TCO, not ROI
To the CFO, return on investment is how much money you’re going to give back to the company. Let’s face it. Most IT projects — no matter how compelling — don’t bring “return” to the organization like an additional sales person, a new marketing campaign, or a new product launch. Preach total cost of ownership (TCO); repeat it until you are blue in the face. Whether business application development, web application development, IT infrastructure investment; you can demonstrate “fiscal stewardship” through cost reduction or increasing customer satisfaction and loyalty.
2. Cloud Computing
CFOs like what they hear about cloud computing as a cost saver. Don’t fight them on it.
3. Green IT
Are you surprised when the CFO is not willing to pay a premium to keep the environment cleaner? The reality is that no green projects exist unless they have a better TCO. So whether to upgrade your IT infrastructure, better IT infrastructure cooling, or saving space for your IT infrastructure you can build a strong business case of the decreased TCO and community relations intangibles of being an “environmentally conscious” firm.
4, 5 and 6. Virtualize, Virtualize and VIRTUALIZE
“This subject takes up three spots because there are three key virtualization targets -- servers, desktop and storage. But again, the key here is how to justify and how now NOT to justify.” Again build your TCO case for virtualization, but be realistic in your cost savings estimates. Many times virtualization projects are viewed as unsuccessful because they did not meet the upfront cost estimates. Be sure to include high traffic times such as end-of-month close periods.
7. Adopt IT-Centric Business Continuity
Over the years responsibility for business continuity have been put on IT management. This needs to change. Organizations need to understand that there are three phases to a business continuity plan; event response, disaster recovery and business continuity. With the financial impact on the organization of disaster recovery and business continuity, business management must be involved and responsible for these areas. It should not be IT management’s responsibility to determine which business units are most important.
8. Align with the Big Picture
Along with TCO, build your requests showing how the request aligns with the business objectives and goals of the organization.
9. Proactive Cost Reduction
Boy does that sound like another way to say TCO to you? Take a proactive stance on reducing cost. The article showed how to reduce cost of document retention.
10. Reduce Data Center Costs
The organization’s data center is usually the center of the IT infrastructure, both in physical space and cost. Just as in application software development, modular building of a data center can cut cost of the IT infrastructure through avoiding construction cost, reduced cooling cost and reduced capital expenditures.
“While the relationship between CFO and CIO can sometimes have more debits than credits, it is definitely worth the investment in time and effort to highlight IT projects in terms the CFO will understand.”
Deploying JavaFX on Glassfish and Facebook
First, sorry for the tardiness of my posts. Between the holidays, coming back from the holidays, a cold, and a secret project (for now), I haven't had time to blog.. until now. My current focus has been a Facebook game application. Well it's still in the alpha phase, but I wanted to get the architecture up and running. There's nothing worse for an application development person than to finish your application, then find out you need to rewrite it (or worse) because of the architecture doesn't support it. Even without Zembly, setting up a Facebook application is pretty easy. Since I had most of the defaults already in, the only thing I need to do is to tell Facebook where my application resides. Since I don't have Zembly anymore, I have to put on my application development and network administrator hats on set up an application server.
My first test was to deploy the application into my local Tomcat. NetBeans does a great job of having the files available to you, but the thing you learn quickly is that there isn't a simple deployment piece. Tomcat needs a WAR file, so I tried to use the JAR command to WAR up the files in the dist folder. No dice. The war file needs a proper web.xml file to work properly. Rather than use workarounds on workarounds, I created a web application project in NetBeans, linked the jar file from my JavaFX project, and copied the JNLP and HTML files to my new project. I now have a WAR to deploy. Tomcat loves this file. I run and... “FILE NOT FOUND?” was heard all throughout Cincinnati. Your JNLP file that was created points to a servlet called internally by NetBeans. Make sure change the following lines:
<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" codebase="http://your server.com/app path/" href="SBWarsTest_browser.jnlp">
<information>
<title>SBWarsTest</title>
<vendor>STAR BASE </vendor>
<homepage href="http://your server.com/app path/"/>
Once I made the change to localhost, everything was fine. Now I wanted a real application server, so I downloaded and installed Glassfish V.2.1 on one of our servers, changed the JNLP file and we are in business. I tried to hit it from my machine, and no dice. After some extensive research, I found out the the Java 7 EA JRE does not play well with JavaFX. I uninstalled it (which reverted to JRE 1.6.18), and it works. In Facebook, you need to set the canvas callback URL to your host application path. The result is the pretty picture you see at the top of my post.
Open-source Security A Major Concern for 2010
According to ComputerWorld, web application development remains top dog by far in the top IT skills to have in 2010. Specifically, companies will look for developers with knowledge of .Net, Java, Web development, open source and portal technologies. The article goes on to suggest that combining web application development skills with business analysis or project management skills is a big plus. ComputerWorld lists the remaining skills to have for 2010 in its top six as: Help Desk/Technical Support, Networking, Project Management, Security and Business Intelligence.
I feel ComputerWorld did not put enough emphasis on Security; this without doubt will be the biggest challenge for IT executives in the coming years. Open-source software may be an innovative money saver, but IT professionals still have concerns that networks could be vulnerable to viruses, cyberattacks and other intrusions.
According to InfoWorld, a new survey from Forrester Research found that 58 percent of large companies have security concerns about open source. In addition, 57 percent of small and mid-sized businesses expressed concern that open-source software would be "complex and hard to adopt".
With the advent and increasing usage of open-source in the business world, expect to see demand for IT security related skills to grow. According to the FLOSS 2020 roadmap presented at the Open World Forum in Paris, 40 percent of jobs will be related in some way to open source by 2020. You can expect application development and security to comprise a great majority of these jobs.
Working with Magento
People outside of Cincinnati may be shocked to know that I work with languages OUTSIDE of Java! I don't know any application development person, especially one who does web application development who doesn't use several languages. I have recently been working on Magento. What is that you say? Magento is an Open Source PHP ECommerce application based on the Zend Framework. You don't need to download Zend, just the Magento PHP files. We actually have Magento internally setup with a LAMP package, but I already have MySQL and Apache on my local machine, so I thought I'd tackle and individual install. The verdict? Well after a couple of small hiccups (don't use the Windows install for PHP, just unzip, and localhost needs to be a virtual host), setup was a breeze! Fortunately, STAR BASE, Inc. has enough experience to over come these issues. Magento is easy to customize products and catalogs, and would be a good choice for organizations to create their own ECommerce site. Magento is easy enough to implement without an IT Consultant, but an experienced consultant can save you time and frustration.
Is the IIBA Buckling Down Too Hard?
I have been and continue to be a strong proponent for IT certifications. Even since I obtained my CBAP® certification last year the application process has changed. The exam itself is now based on version 2.0 of the Business Analysis Body of Knowledge (BABOK)®.
I have heard that CBAP® applicants are rejected due to the IIBA® reducing their documented hours for tasks or deliverables that do not qualify as business analysis work. Such reduction of hours left them short of the 7,500 hour requirement. Some applicants are unaware of the new 900 hour requirement in four of the six knowledge hours, again leaving them short of the requirement.
First of all I believe that the application process itself is more rigorous than the exam. It is part of the whole process of obtaining the certification. The IIBA® , by putting all applicants through a rigorous review process, protects the value of the certification. A couple of tips I can give you in applying for the CBAP® certification:
- Document more than the minimum 7,500 hours of business analysis work. This ensures that if your hours are reduced in the review process that you will still have enough hours to qualify to sit for the exam. This goes for total hours as well as hours in each of the knowledge areas. I personally documented 9,000 hours on my application.
- Put the language on your application in the wording of the BABOK®. By putting your work tasks and deliverables in the language of the profession it is less likely that the hours will be discounted in review.
Never Assume Anything
My client in Cincinnati is having issues with one of their Java based web applications. The application is throwing an out of memory error. One of the vendor's application development personnel traced it back to a local byte array object. He said "it can’t be the problem because it is created in a method. I don't have to null the object because it is garbage collected". In Java, you are taught that any variables created in a method call persist only for the life of that method call. When the method has completed, all objects are out of scope, so they are to be garbage collected. Java uses implicit object creation and destruction, so the application developer can focus on the problem. Like any rule though, there are exceptions. If your local variable is referencing an external object, and that reference is still live, your local object still persists in memory. Since the method has been garbage collected, the object will stay in memory and not be freed until you restart the server. The best example of this is creating a database connection object. If you don’t call the close method and null it, the object will persist until the JVM is shut down. This called a stale connection. Even though you may have created the connection in a method, the object doesn’t get collected. Look at the following code:
package test;
public class MemTest
{
private final int dataSize = (int) (Runtime.getRuntime().maxMemory() * 0.9);
public byte[] func()
{
byte[] data = new byte[dataSize];
System.out.println("func: byte array created in func");
System.out.println("func: Total Mem=" + Runtime.getRuntime().totalMemory()
+ " Free Mem=" + Runtime.getRuntime().freeMemory());
return data;
}
public static void test()
{
MemTest jmp = new MemTest();
System.out.println("Max Mem=" + Runtime.getRuntime().maxMemory()
+ " dataSize=" + jmp.dataSize);
System.out.println("Total Mem=" + Runtime.getRuntime().totalMemory()
+ " Free Mem=" + Runtime.getRuntime().freeMemory());
byte[] data1 = jmp.func();
System.out.println("byte array returned in jmp.func, size=" + data1.length);
System.out.println("Total Mem=" + Runtime.getRuntime().totalMemory()
+ " Free Mem=" + Runtime.getRuntime().freeMemory());
jmp = null; // this does not do anything as data1 still has a reference to the byte[] returned from jump.func()
// data1 = null; // if data1 is not set to null here to remove to the reference to the byte[], data2=jump2.func() will hit OutOfMemory exception
MemTest jmp2 = new MemTest();
byte[] data2 = jmp2.func();
System.out.println("byte array returned in jmp2.func, size=" + data2.length);
System.out.println("Total Mem=" + Runtime.getRuntime().totalMemory()
+ " Free Mem=" + Runtime.getRuntime().freeMemory());
}
public static void main(String[] args)
{
System.out.println("--test1--");
test();
System.out.println("--test2--");
test();
System.out.println("--test3--");
test();
System.out.println("--test4--");
test();
}
}
If you run this code, it will throw an out of memory exception. Uncomment the data1= null statement and run again. This application is the 1.4 JDK, and the newer JDKs are doing a better job at handling this situation. I also know that there are 2 things to remember in application development, don’t assume anything, and rules were meant to broken. I still have some testing to do, but I am sure my Cincinnati client will be happy.
What’s new at JavaOne Part 3 - The Sun Cloud and The End?
This is the last of a three part series; part one is here and part two is here. Many application development guys are wondering, what is the Cloud, and what is the Sun Cloud? Think of Cloud computing as a virtualized data center. In part one I talked about VirtualBox, which allows you to virtualize network components and resources. Think of VirtualBox working on the atomic level, taking small resources to create a virtualized network. Now Cloud computing takes all of the virtualized networks and utilizes them as resources in a virtualized data center. The Sun Cloud is a set of APIs to let you manage networks and storage areas as resources. You can cluster or categorize networks in any way you wish. You can manage user access to the resources, not unlike application development teams utilize in web applications.
What does all this mean to application development and management? It means that you can create a single network and copy or clone it. For example, you can create a single network instance with servers, storage areas databases, and clone the entire network for each region you manage. That means all networks are managed in one spot, and all regions are setup exactly the same. No application compatibility issues. You can, of course, add or remove components, but they are all have the same infrastructure. You can upgrade the virtual network, and pass the changes to the other regions. The electricity saved by running virtualized datacenters would be significant. You can connect to your partners’ virtualized networks to access their data. For application development teams, that would change how we design applications if we have access to external data and applications.
This was my fifth JavaOne conference. Since it is always at the Moscone center, I know pretty much every nook and cranny of JavaOne. Although smaller this year, I thought this was the best one yet. The people there were truly happy to be there, and combined with takeover news and a bad global economy, a bigger sense of cooperation. I would highly recommend coming to one if they still have one. Nobody, not even James Gosling (I was in a group of 20 who had a 45 minute meeting with him) knows if there will be one next year. The reason you come to JavaOne is not the presentations (they are great!), but the people. Meeting and befriending people who created your favorite blog, book, or technology is the reason to come. I remember meeting Craig McClanahan (co-creator of struts) in 2004, and saying "that’s Craig freaking McClanahan!" Last year, I was honored a share a picture of beer with him, Jarda Tulach (inventor of NetBeans), and Geertjan Wielenga (JavaLobby blogger extraordinaire). Application development people get to "network" with the best and brightest architects, technical press, and business owners. This year I got hang with the JUG leaders, NetBeans Dream Teamers, and the JavaFX guys. I wrote, and helped edit a YouTube video "pushing Java", and met more of my fellow Java music software developers. I literally have friends from all over the world (yes Cincinnati too), and I am considered an honorary Brazilian because of JavaOne. Larry Ellison, if you are reading this, please don’t stop JavaOne!
What’s new at JavaOne 2009 Part One – Open Solaris and VirtualBox
This is my third year at trying to boil down 4 days of experiences into an abbreviated post or presentation for application development teams and management of the Cincinnati and Dayton areas.
As mentioned previously, the major topics were Cloud computing and JavaFX, but a new item that I am impressed with is Open Solaris. Version 2009.06 was released at CommunityOne. I am not a Sun representative and I have not been a Solaris user, but there are some great features that I think are cool. Before I get into the new features, let me give you some background. Solaris was Sun's proprietary OS that has a reputation as a fast, enterprise operating system, using ZFS as their file system. Sun open sourced Solaris a couple of years ago. Application development teams who use Solaris will tell you about the worthiness of DTrace, a system debugging tool. It is the one thing that Linux engineers really want to integrate.
There is not a lot of Solaris usage in Cincinnati, and I don’t have a dedicated box for Solaris, so I never used it, but that may change. Like Linux, you can get a "live" version on a disc to try out. I am currently playing with VirtualBox, a open source virtualizer. Unlike VMware, both the player and recorder are free. To tell you how cool it is, I was running an Ubuntu VM on a live Solaris session with Windows as the host OS!
The other reason for my excitement is project Crossbow. Project Crossbow is a networking virtualization project aimed for usage in the cloud. Before my application development friends tune out due to buzzword overkill, let me explain. Project Crossbow can virtualize your entire network including your NICs and switches. The really cool part is that they have a cool GUI that allows you to drag and drop your network pieces. You need a firewall? Drop it into your network. It’s already configured and ready to use. Need another server? Just drop it in and connect it to your network. Since the network is virtualized, you can create your own network from virtualized pieces from any VM. That’s where the cloud comes in. Virtual networks and hardware can be added or removed at any time, if they were not virtualized by you. You could connect to your partner’s network, and if anything changes on their end, the changes would be reflected in their VM. I would strongly urge application development people who dislike/don't understand networking to use project Crossbow, and for free virtualization, use VirtualBox.
Swweeet!
Web application development is a must for Cincinnati and Dayton companies. We at STAR BASE, Inc. have written much lately about open source IT solutions. Since we have been on a roll with that, why stop now?
Another open source IT solution we have worked with is Sugar CRM. Sugar CRM falls in to a relatively new software category that I’m going to call Commercial Open Source or COS for short. (Remember you saw the TLA (three letter acronym) COS here first!) COS applications have a free version that you can download and implement and they also have a commercial version that can be licensed and supported like any other software application.
What we have found to be very effective; is to use the open source version and customize and tailor it to meet specific business needs. No need to re-invent the wheel. Swweeet!
Browser Wars Redux
Just when I thought the browser wars were pretty much a thing of the past, they are heating up again. Web application development is difficult enough without having to worry about what version of what browser a client may be using.
We just upgraded a couple of machines to IE 8 and guess what? IE 8 is not compatable with our web based CRM! IE 7 and FireFox 3 work fine, but in IE 8 the search fields are not input capable. IE 8 provides for a “compatablity mode”, but hey that doesn’t work either. I was wondering if Google Chrome would work, but in Chrome, the search fields don’t show up at all; the field labels are repeated.
I was thinking about trying Opera, but stopped because how many web browsers do I really need on my machine any way?
In order for web applications to continue to flourish and expand, there has got to be adherence to standards by both application developers and software companies. There are so many other applications that could be developed and expanded. But what do we do with IT solutions? Both vendors and developers shoot themselves in the foot by delivering applications and software that “stops working”.
What's the business impact?
- Increased support costs.
- Increased applications development and testing time
- Less confidence by the user community of “IT not being able to do anything right”.
- Less time and money to develop new applications.
As a reformed, application developer, maybe I should retitle this post “The Return of the Angry White Guy.” I think instead, I’m going outside and shouting, “I’m mad as hell and I’m not going to take it anymore”.
Can You Hear Me Now? Part Two
Business application development needs to accelerate faster. Some are still talking about getting IT solutions to the web. We should be talking about how to get IT business applications WAP enabled. As voice and data networks continue to converge, consumers are going to want new and different way to access IT solutions. Some have struggled with web application development and WAP is going to be a little trickier because the user interface is small and will probably need to be re-worked for the smaller display.
In part-one I shared that on this trip, the coverage on my new phone was very acceptable. In this post I will share some of the features I have used. One of my requirements was to have a handset that supported navigation. On the old phone I used Navigator that has a female voice, so I named her Suzy. My new phone has Nokia maps and has a male voice, so I will call him Coleman. Suzy has helped me many times and I have confidence in her, so it was up to Coleman to prove himself. While we were still in the mountains of Maryland, I programmed the final destination into both phones. It took a few minutes for the Nokia to find our location, but once it did, Coleman gave me turn by turn instructions, ETA and other things I expected. Even though I had cell coverage, Suzy was not able to connect at all until we were out of the mountains. I have had this problem before with Suzy before and it’s really quite annoying when you really need directions. The conference is at National Harbor which is been open less than a year. As we got close, I could see the Gaylord resort, but Coleman kept insisting we make a legal U turn. Nokia downloads map data to the phone and navigator send information through a data network. If there is no data network, no maps. The downside of the Nokia is it takes up phone memory. Right now I’m call this even. There are pros and cons to both.
My new phone is a smart phone, so there are two other options that I am aware of. Telenav is subscription service that is very similar to Navigator. I can also download a Google maps application as well.
Another requirement that I have is my contacts and calendar be synced to our server. The Nokia software does a great job at this. Another option that I need is to be able to tether the phone to my notebook for broadband internet connectivity. I have not been able to test this on my new phone yet.
One of the goals of the switch was to save some money. Because our new phones are smart phones, they need full data service and so I’m ending up at about the same cost. So the bottom line is we ended up with more capabilities for the same price. From what I see so far, integrating voice and data applications and having them work well together will be the next application development challenge.
And So It Begins…
As a JavaOne alum, today is very much about catching up with old friends. I am setting up lunches, dinners, and “networking” events. It is tough to go to the Thirsty Bear, but that’s what I do!
I will be giving daily updates as I can, so stay tuned!
Look Out
I have written several posts that have talked about various IT strategies. More often than not, we practice what we preach. Star Base, Inc has been around for almost 18 years, so we would fall into what I would call a “mature company” category.
I have always been determined not to be the cobbler’s children with no shoes, so we have invested in systems over the years. Our CRM system was starting to show its age and even though business is down, I decided to invest in a new system. Our new system is actually more than a CRM; it’s a fully integrated HRM (Human Resource Management) and accounting system as well.
We are still learning about all the capabilities, but a couple that I think are really powerful are resume parsing and email capture. Part of our business is IT staffing and that requires us to track a lot of resumes. Our new system automatically parses IT skills out and creates a profile for the person. It also monitors our email; any message received from someone in our system is automatically logged for that contact.
Cincinnati and Dayton tend to be more conservative than other parts of the country. Because of this, a lot of companies tend to have older IT solutions. Could new web application development give you a competitive advantage that would allow you to leapfrog?
Are You Ready?
The recent Swine Flu fears highlights what I think all application development team members already know, nearly all organizations are unprepared for any major disruption. Recently my boss blogged about this from a management perspective, but I think the technical side needs to be addressed.
First let me ask a question, how much work can you get done if your servers were down? Everyone, not just application development team members would answer "nothing". With that in mind, let me ask some other question about your preparedness. When was the last time you implement your disaster recovery plan? Where is the plan? When did you last review it? How many of your staff (not just application development) can work remotely. Can your system handle the increased remote traffic? It’s not just as easy as "send everyone home". If you have problems answering these questions, or you don’t have a plan in place, look for technical consultants to help. You may even have a great plan in place, but the recent economic downturn may have created big holes in your plan. Even if the Swine Flu doesn’t become a pandemic, the CDC reports that 36,000 people in the US die from the flu every year. It is also tornado season, a little review may be the difference between business survival and bankruptcy.
Using JPA
If you are long term Java application development person, you are probably familiar with Enterprise Java Bean (EJB) 2.0 . They have been notoriously difficult to use, so the popularity of Object relational mapping tools like hibernate became the standard use for enterprise application development. Sun had JDO, but it was little improvement. The key functionality of Hibernate was the use of Plain Old Java Objects (POJO) to handle the heavy lifting. The big issue with hibernate was that it was resource intensive, which left non-enterprise projects without this useful technology.
Sun worked with the ORM teams and the community to create Java Persistence Objects (JPA) to replace EJB, and to create single standard technology. The big advantage of JPA is application development teams can use it for both EE and SE projects. I have many database driven projects written in Swing. It is time consuming and boring to write boiler plate code to handle moving data to/from the database. JPA removes the plumbing part of my project, so I can focus on problem to solve. My IDE of choice is NetBeans, and has complete integration with JPA, so I can use tools to make my basic connections. Typically in Swing I would create a POJO that represents a row in the JTable. I would then create a custom table model object that uses an array list of row objects to populate the table. I wrote a method that reads from the database, creates rows objects, store the row objects in an array list, move the array list to model, and set the model to the table. With JPA and NetBeans I can bind the JTable to a database table, select which fields to display, and JPA entity classes are created for me. I just save 1 – 4 hours of design and implementation time! JPA uses annotations to specify the database, table and relationships (if connecting to multiple tables). I have a single object to do all of my connection, display, and CRUD functions. JPA uses Oracles toplink to help with the heavy lifting. For those of you application development guys who like to do it yourself, there are tutorials on the sun site.
The best part is that JPA is used in my JSF projects, so I use the same patterns for web application development and desktop application development. There is a learning curve, and Java 6 is needed, but it is well worth you time to learn JPA!
Linux, a Media Mogul?
I recently inherited a PC from a family member. Since I am already flush with boxen, I am doing what all application development guys do, create a cool home project. I was initially going to make it my Ubuntu play box, but a friend of mine clued me into Linux Media Center Edition. Linux MCE is based off of Ubuntu 7.10, and integrates several open source projects including MythTV, an open source DVR.
So what can Linux MCE do, you ask? Well I can use it as my DVR. I can rip all of my DVDs to it and watch them on any TVin my house. I can move my DVD to a from one TV to another. Linux MCE has full networking capabilities, so I can net enable my house. With special attachments I can operate my lights, curtains and thermostat from a remote or cell phone. I just wouldn’t want any application development guy to hack into my house and play with the controls. I can wirelessly stream audio to any part of the house.
I have currently downloaded the full DVD (7.04 GB) via a torrent. One piece of hardware I need is a TV tuner card. The web site has a list of hardware that will run with Linux MCE. Stay tuned as I get deeper into my new project.
We’re Tweeting Now (AKA WEB 2.0 TLA)
Time and IT solutions march forward. Most of you I’m sure have used or heard of the new generation of self-service web applications collectively known as WEB 2.0 apps. I have jumped in the water with both feet. Follow me on Twitter, Check me out on Facebook, Linked in or Plaxo. If all goes well this post should end up on all of them in some form courteous of Ping.fm.Why should I use a Framework?
A good framework relies on well researched design patterns like Model-View-Controller (MVC) to make it easier to apply coding techniques like Don't Repeat Yourself (DRY). While this can appear to make applications more complex, in practice a modular application based on an MVC framework will help maintain consistency of the application. If there is only one piece of code that calculates item prices, then wherever those prices are needed, they will always be calculated the same way. This may seem totally intuitive, but you would be surprised the number of applications I have seen where the same task is coded separately in each place it is needed. In fact that is how the monolithic programming style worked. Each program contained all of its code, and it was, usually, easy to see where that program needed to be changed to fix the pricing rule. Unfortunately, it was much harder to find all the programs that the pricing rule needed to be changed in.
A good framework will contain an abstraction layer to shield you from the nuances of your specific database. When the time comes to change database engines you won't be stuck with a major rewrite. Yea, I know you have used the XXX database forever, and will never change. And in Cincinnati, pigs can fly! Acquisitions, mergers, changing business requirements, and other things can cause your simple IT Infrastructure to become complicated beyond your ability to effectively manage it. Consolidation frequently involves choosing a database and porting everything else over to it.
A good framework has a thriving developer community behind it. This makes it easier to retain application developers, get training, and get questions answered. This also means that security threats are quickly addressed to keep your data safe in the brave world of the internet.
As a good IT strategy, choosing and using the right framework can boost the productivity of you application development staff, and make your applications more consistent and more secure.