|By Mahesh K Punjabi||
|October 11, 2011 12:00 PM EDT||
Object Relational Technologies form the backbone of most of the enterprise Java applications. Choosing the appropriate technology however is one of the most important decisions for an enterprise architect. More often than not, such a decision is either a hit or miss. Mistakes done in selecting the appropriate technology results in performance bottlenecks, lack of scalability, unreliable transaction handling etc.
More than the problem with the specific ORM technology, it's the suitability of that technology to the underlying business needs and non-functional requirements. This article aims to establish an objective architecture evaluation framework for evaluating which ORM technology best fits your project needs. Based on the requirements, one or the other technology may be appropriate.
For an ORM framework to be flexible, the following considerations are important
- Do multiple options exist to access and manipulate data
Should the project need multiple ways to access data. This would include object based way of querying data, using native SQL, using ORM specific natural query language. The architect must decide the importance of each of these methods and evaluate this parameter.
- Does the ORM tool supports extending the various default data types, with user defined data types
Project needs change and so there are requirements to add custom data types. The ORM tool must support this feature, should you envisage the changing needs of your project.
- Ability to invoke interceptors on the data before it is saved, accessed or deleted
Enterprise projects often need to add additional business validations or business logic over a period of time. Many of these changes need to be cross-functional. The ORM tool must have mechanism to intercept requests and inject such validations. This is an important factor if you foresee changes happening after the production deployment.
- Programmatic and Declarative Configurations
The ORM framework must provide multiple ways for it to be configured. This is important again from the perspective of how flexible the tool needs to be.
Ease of Development
- Ability to create domain model from the database tables
This is an important consideration if you already have database tables and you need to create domain model out of it through automatic code generation. The ORM framework must provide the appropriate utility for doing that.
- Ability to generate database tables from the domain model
This is an important factor when the domain model has already been created as part of MDD and database needs to be created. This would ensure that there are minimal errors during generation of database schema
- Ability to specify natural query language for retrieval
Typically ORM tools provide a criteria API to fire object oriented queries. However based on development experience, it is understood that this is not the best way of visualizing large and complex queries. If this is a criteria important for your project, you must ensure the availability of natural query language with the ORM tool. Support for native SQL is also important under this consideration
- Support for JTA transactions
An enterprise ORM framework must support JTA transactions. This support should be both declarative as well as programmatic. This is the most important consideration for evaluating the reliability of the platform as incorrect transaction handling would be catastrophic
- Support for Batch Processing
Looping through individual transactions for batch processing is a perfect way to crash your system. The ORM tool must support JDBC Batch updates for batch processing.
- Support for Caching
Caching is important both from scalability as well as reliability perspective. Support for integrating third party cache should be an important consideration for all enterprise projects. The cache support must be distributable across the cluster as well
Scalability and Performance
- Ability to use container or third party connection pools
Connection pools should provide ability to scale up to increased load
- Ability to support legacy code
If you need support for legacy code, the ORM tool must support native invocation of stored procedures
- Ability to optimize queries for performance
It is very difficult to optimize a two page query written using criteria API. Infact for many complex scenarios for an enterprise application, there is a need to fire native SQL queries. These queries are also easy to optimize especially by the DBAs. If performance is a critical requirement, this factor must be considered
- Ability to cache queries and query results
This is an important criterion for scalability
- Ability to modify domain model or DB model with minimal changes to underlying code
This is an important factor if you foresee such changes
- Ability to log the framework internals
During development as well as during production failures, there is an urgent need to debug to identify the issue. Many a times the issue may lie with the ORM framework itself. This is an important consideration for any enterprise application.
- Integration with JMX for runtime statistics
If instrumenting the application during production under consideration, this is a must have feature for your ORM tool.
- Ability to support multiple relationships
These would include one-to-many, many-to-many and many-to-one relationships
- Ability to support lazy loading
This is important when you need to eagerly load a chain of nested objects. This feature is useful when underlying data store is not huge.
- Ability to support sorting and pagination
These features are a must for search based applications
- Declarative security
Authorizing different users to execute different queries can easily be achieved using this framework.
- Support for Dynamic SQL
For any non-trivial application dynamic SQL is a must
An enterprise architect can use the above criteria to evaluate the most suitable ORM framework for his application. Each of the criteria should be judged with respect to the application requirements. A scoring model which gives weightage to respective parameters and computes the final scores for each of the applicable ORM tools is the right procedure to use the above architectural framework.
SYS-CON Events announced today that eCube Systems, the leading provider of modern development tools and best practices for Continuous Integration on OpenVMS, will exhibit at SYS-CON's @DevOpsSummit at Cloud Expo New York, which will take place on June 7-9, 2016, at the Javits Center in New York City, NY. eCube Systems offers a family of middleware products and development tools that maximize return on technology investment by leveraging existing technical equity to meet evolving business needs. ...
Oct. 21, 2016 07:00 AM EDT Reads: 4,359
Let's just nip the conflation of these terms in the bud, shall we?
"MIcro" is big these days. Both microservices and microsegmentation are having and will continue to have an impact on data center architecture, but not necessarily for the same reasons. There's a growing trend in which folks - particularly those with a network background - conflate the two and use them to mean the same thing.
They are not.
One is about the application. The other, the network. T...
Oct. 21, 2016 06:45 AM EDT Reads: 6,287
Without lifecycle traceability and visibility across the tool chain, stakeholders from Planning-to-Ops have limited insight and answers to who, what, when, why and how across the DevOps lifecycle. This impacts the ability to deliver high quality software at the needed velocity to drive positive business outcomes. In his general session at @DevOpsSummit at 19th Cloud Expo, Eric Robertson, General Manager at CollabNet, will discuss how customers are able to achieve a level of transparency that e...
Oct. 21, 2016 06:15 AM EDT Reads: 453
This is a no-hype, pragmatic post about why I think you should consider architecting your next project the way SOA and/or microservices suggest. No matter if it’s a greenfield approach or if you’re in dire need of refactoring. Please note: considering still keeps open the option of not taking that approach. After reading this, you will have a better idea about whether building multiple small components instead of a single, large component makes sense for your project. This post assumes that you...
Oct. 21, 2016 06:00 AM EDT Reads: 7,138
DevOps is speeding towards the IT world like a freight train and the hype around it is deafening. There is no reason to be afraid of this change as it is the natural reaction to the agile movement that revolutionized development just a few years ago. By definition, DevOps is the natural alignment of IT performance to business profitability. The relevance of this has yet to be quantified but it has been suggested that the route to the CEO’s chair will come from the IT leaders that successfully ma...
Oct. 21, 2016 04:30 AM EDT Reads: 16,196
@DevOpsSummit has been named the ‘Top DevOps Influencer' by iTrend. iTrend processes millions of conversations, tweets, interactions, news articles, press releases, blog posts - and extract meaning form them and analyzes mobile and desktop software platforms used to communicate, various metadata (such as geo location), and automation tools. In overall placement, @DevOpsSummit ranked as the number one ‘DevOps Influencer' followed by @CloudExpo at third, and @MicroservicesE at 24th.
Oct. 21, 2016 03:30 AM EDT Reads: 3,744
Without lifecycle traceability and visibility across the tool chain, stakeholders from Planning-to-Ops have limited insight and answers to who, what, when, why and how across the DevOps lifecycle. This impacts the ability to deliver high quality software at the needed velocity to drive positive business outcomes. In his session at @DevOpsSummit 19th Cloud Expo, Eric Robertson, General Manager at CollabNet, will show how customers are able to achieve a level of transparency that enables everyon...
Oct. 21, 2016 02:30 AM EDT Reads: 1,205
Explosive growth in connected devices. Enormous amounts of data for collection and analysis. Critical use of data for split-second decision making and actionable information. All three are factors in making the Internet of Things a reality. Yet, any one factor would have an IT organization pondering its infrastructure strategy. How should your organization enhance its IT framework to enable an Internet of Things implementation? In his session at @ThingsExpo, James Kirkland, Red Hat's Chief Arch...
Oct. 21, 2016 02:00 AM EDT Reads: 5,903
As software becomes more and more complex, we, as software developers, have been splitting up our code into smaller and smaller components. This is also true for the environment in which we run our code: going from bare metal, to VMs to the modern-day Cloud Native world of containers, schedulers and microservices. While we have figured out how to run containerized applications in the cloud using schedulers, we've yet to come up with a good solution to bridge the gap between getting your conta...
Oct. 21, 2016 01:30 AM EDT Reads: 1,349
DevOps theory promotes a culture of continuous improvement built on collaboration, empowerment, systems thinking, and feedback loops. But how do you collaborate effectively across the traditional silos? How can you make decisions without system-wide visibility? How can you see the whole system when it is spread across teams and locations? How do you close feedback loops across teams and activities delivering complex multi-tier, cloud, container, serverless, and/or API-based services?
Oct. 21, 2016 12:30 AM EDT Reads: 908
SYS-CON Events announced today that Super Micro Computer, Inc., a global leader in Embedded and IoT solutions, will exhibit at SYS-CON's 20th International Cloud Expo®, which will take place on June 7-9, 2017, at the Javits Center in New York City, NY. Supermicro (NASDAQ: SMCI), the leading innovator in high-performance, high-efficiency server technology, is a premier provider of advanced server Building Block Solutions® for Data Center, Cloud Computing, Enterprise IT, Hadoop/Big Data, HPC and ...
Oct. 21, 2016 12:15 AM EDT Reads: 3,458
SYS-CON Events announced today that LeaseWeb USA, a cloud Infrastructure-as-a-Service (IaaS) provider, will exhibit at the 19th International Cloud Expo, which will take place on November 1–3, 2016, at the Santa Clara Convention Center in Santa Clara, CA. LeaseWeb is one of the world's largest hosting brands. The company helps customers define, develop and deploy IT infrastructure tailored to their exact business needs, by combining various kinds cloud solutions.
Oct. 20, 2016 11:45 PM EDT Reads: 3,773
SYS-CON Events announced today that Enzu will exhibit at the 19th International Cloud Expo, which will take place on November 1–3, 2016, at the Santa Clara Convention Center in Santa Clara, CA. Enzu’s mission is to be the leading provider of enterprise cloud solutions worldwide. Enzu enables online businesses to use its IT infrastructure to their competitive advantage. By offering a suite of proven hosting and management services, Enzu wants companies to focus on the core of their online busine...
Oct. 20, 2016 09:30 PM EDT Reads: 1,165
Enterprise IT has been in the era of Hybrid Cloud for some time now. But it seems most conversations about Hybrid are focused on integrating AWS, Microsoft Azure, or Google ECM into existing on-premises systems. Where is all the Private Cloud? What do technology providers need to do to make their offerings more compelling? How should enterprise IT executives and buyers define their focus, needs, and roadmap, and communicate that clearly to the providers?
Oct. 20, 2016 09:15 PM EDT Reads: 2,424
A completely new computing platform is on the horizon. They’re called Microservers by some, ARM Servers by others, and sometimes even ARM-based Servers. No matter what you call them, Microservers will have a huge impact on the data center and on server computing in general. Although few people are familiar with Microservers today, their impact will be felt very soon. This is a new category of computing platform that is available today and is predicted to have triple-digit growth rates for some ...
Oct. 20, 2016 09:00 PM EDT Reads: 33,870
SYS-CON Events announced today that Sheng Liang to Keynote at SYS-CON's 19th Cloud Expo, which will take place on November 1-3, 2016 at the Santa Clara Convention Center in Santa Clara, California.
Oct. 20, 2016 08:00 PM EDT Reads: 1,641
DevOps is being widely accepted (if not fully adopted) as essential in enterprise IT. But as Enterprise DevOps gains maturity, expands scope, and increases velocity, the need for data-driven decisions across teams becomes more acute. DevOps teams in any modern business must wrangle the ‘digital exhaust’ from the delivery toolchain, "pervasive" and "cognitive" computing, APIs and services, mobile devices and applications, the Internet of Things, and now even blockchain. In this power panel at @...
Oct. 20, 2016 06:15 PM EDT Reads: 1,787
If you are within a stones throw of the DevOps marketplace you have undoubtably noticed the growing trend in Microservices. Whether you have been staying up to date with the latest articles and blogs or you just read the definition for the first time, these 5 Microservices Resources You Need In Your Life will guide you through the ins and outs of Microservices in today’s world.
Oct. 20, 2016 05:15 PM EDT Reads: 6,342
For those unfamiliar, as a developer working in marketing for an infrastructure automation company, I have tried to clarify the different versions of DevOps by capitalizing the part that benefits in a given DevOps scenario. In this case we’re talking about operations improvements. While devs – particularly those involved in automation or DevOps will find it interesting, it really talks to growing issues Operations are finding. The problem is right in front of us, we’re confronting it every day,...
Oct. 20, 2016 04:00 PM EDT Reads: 2,973
Virgil consists of an open-source encryption library, which implements Cryptographic Message Syntax (CMS) and Elliptic Curve Integrated Encryption Scheme (ECIES) (including RSA schema), a Key Management API, and a cloud-based Key Management Service (Virgil Keys). The Virgil Keys Service consists of a public key service and a private key escrow service.
Oct. 20, 2016 02:15 PM EDT Reads: 856