Monday, October 5, 2009

“Just enough & in time” Enterprise Architecture - Oracle EA Framework

“The real value of Enterprise Architecture is not in making better architectures…it’s in making better enterprise.”— Gary Doucet, Chief Architect, Government of Canada Treasury Board of Canada Secretariat GC

"In the early days of computing, technology simply automated manual processes with greater efficiency. As technology evolved, new innovations enabled new capabilities and processes in the enterprise that were driven by IT. Gradually, IT changed the business but not necessarily in alignment with the business strategy. This lack of alignment resulted in significant waste of resources and missed opportunities, and placed the organization in a competitive disadvantage in the market."

"To align the strategies of business with IT, a new approach for managing IT has been developed called Enterprise Architecture. Just as architecture provides a blueprint for constructing a building, Enterprise Architecture provides a blueprint and roadmap for aligning business strategy with IT."

"Enterprise Architecture (EA) is a method and an organizing principle that aligns functional business objectives and strategies with an IT strategy and execution plan. The Enterprise Architecture provides a guide to direct the evolution and transformation of enterprises with technology. This in turn makes IT a more strategic asset for successfully implementing a modern business strategy."

"An Enterprise Architecture typically produces deliverables such as:

· Current-state Enterprise Architecture model
· Future-State Enterprise Architecture reference model that is needed to execute on the proposed business strategy
· Gap analysis that identifies the shortfalls of the current state in terms of its ability to support the objectives and strategies of the business
· Architecture Roadmap that defines the initiatives required to migrate from the current state into the future state."

"By taking an enterprisewide perspective across business services, business processes, information, applications, and technology, an EA ensures the enterprise goals and objectives are addressed in a holistic way across all IT projects."

"To be successful, an Enterprise Architecture needs to be woven into the enterprise’s culture, not treated as a closed-scope project. The value of an EA is greatly enhanced when it is organically embedded into the lifecycle of the organization, including capital planning, project management, asset management, resource allocation, and strategy formulation."

"Enterprise Architecture is a journey not a project. It evolves over time and needs to maintain the flexibility required to adjust to changing market conditions, strategy shifts, and new innovations in technology."

"A number of EA frameworks exist in the industry with the goal of addressing the basic challenge of assessing, aligning, and organizing business objectives with technical requirements and strategies. Examples include the Zachman Framework (IBM framework from 1980s), The Open Group Architecture Framework (TOGAF), OMB Federal Enterprise Architecture (FEA), The Gartner Methodology (formerly the Meta Framework), and the DoD Architecture Framework (DoDAF)."

"In an effort to provide effective framework to help customers align their IT and business strategies, Oracle extracted aspects from several industry frameworks, including TOGAF and FEA, to build a simple yet practical and prescriptive framework called the Oracle Enterprise Architecture Framework (OEAF). The OEAF is complementary to other EA frameworks, with clear mappings to TOGAF and FEA, such that customers can use the EA framework of their choice. The intent of building the OEAF was to leverage the strengths of the different industry frameworks and marry that with Oracle’s experience in developing enterprise solutions."

"Oracle emphasizes a “just enough” and “just in time” practical approach to Enterprise Architecture, which may be used standalone or as a complement a customer’s selected EA methodology."

So, what is "just enough" & "just in time", listen to this podcast.

To know more about OEAF, check out the Oracle EA whitepaper (http://www.oracle.com/technology/architect/entarch/pdf/oea_framework.pdf) from Oracle EA Center

Sunday, October 4, 2009

Not able to afford Oracle RAC - Scale out low end / cost DB with Open Source Technology Stack - Tungsten

Open-source middleware maker released a database scale-out stack called Tungsten, which support open-source databases like MySQL as well as proprietary ones from the likes of Oracle.

The stack's capabilities include a failure protection function that keeps extra database replicas in the event the master fails, and can automatically promote a slave to master status when needed. It also enables users to maintain and replicate database copies at a number of locations to aid disaster recovery.

Scale-out works by spreading data across multiple, independent database servers connected through a network. The model offers an incremental approach to solving the following database problems:

* Preventing data loss though up-to-date replica databases and coordinated backups
* Increasing overall application availability by providing rapid database failover
* Raising performance and through-put by dispatching read traffic to replicas
* Integrating data between heterogenous systems, for example to support scaling of commercial databases using low-cost open source databases.

Scale-out implementation involves a number of complexities, including creating and maintaining replicas, managing resources spread across many hosts, and working around important problems such as maintaining data consistency when databases are spread over multiple hosts.

Tungsten offers a set of components that address these problems in a systematic way.

Tungsten Replicator
Implements database-neutral, master/slave replication.

Tungsten Manager
Group-communication based framework for managing cluster resources.

Tungsten Connector
A proxy for MySQL and PostgreSQL client programs. The Connector serves as a "front door" to clustering logic implemented in JDBC drivers.

Tungsten SQL-Router
A JDBC wrapper that adds high-performance and transparent failover, load-balancing, and partitioning to native JDBC drivers.

Tungsten Monitor
A pluggable monitoring service that checks and broadcasts state of individual resources in the cluster.


Tungsten claimed it isn't trying to supplant high-end Oracle Real Application Clusters (RAC), but instead hopes to provide a potential incremental scale-out offering for customers using low-end databases and hardware that either can't afford or don't want to buy into the whole Oracle RAC architecture.

However, it did provide an alternative low end / cost open source RAC solution for potential Oracle RAC customer and attract some eyeballs over.

Some reflection is What if oracle or its well known competitor come out & buy over similar technology to bridge & guide the smooth transition from low end to high end. Who will be the winner in this arena?

Further readings:

What Is Tungsten

The Scale-Out Blog

Tuesday, September 8, 2009

Addressing Challenge, Design, Build & Provisioning Saas with Open Source Software Stack

Challenges & How to Address

When design & build SaaS application, there are some common technical challenges we have to address:

- Multi-tenancy
- Enable a unique user experience.
- Data isolation for SaaS application, either isolated DB or a shared DB, e.g. shared tables
- Security, authentication, authorization and access control of application users & application modules

Check out this demo and learn how IBM tackle them and you will have idea of how you can do it with IBM and other similar technologies.

Build SaaS application with Open Source Software Stack (OSSS)

This sample multi-tenant SaaS application run on a single instance of WAS (Community Edition), DB2 Express-C and openLDAP with a different look-and-feel and access control.

Check out this demo and learn how IBM people build it and you will have idea of how you can do it in your own way.

Provisioning SaaS with ANT & OSSS

This demo focuses on the ease of provisioning new tenant SaaS application through the use of Apache ANT scripts. A new virtual host and security realm are provisioned through ANT scripts invoked from a new service provider administrator portlet. A new openLDAP user database is created and new LDAP Data Interchange Format (LDIF) files imported through another ANT script. The portal for the new tenant application is customized through a tenant administrator portlet by modifying style sheets, providing tenant specific images and uploading and deploying these to the running application. Custom fields are added to other portlets which use XML columns defined in DB2® Express-C V9 through simple configuration steps in a tenant administrator portlet.

Resources

IBM SaaS Solutions & Demonstration Series

IBM Software as a Service (SaaS) Community

IBM SaaS Technical Library

SalesForce Online Training

Monday, August 24, 2009

How to Tackle the SaaS Integration Problem

This article is written by Loraine Lawson from itbusinessedge

"Integration Issues May Hinder SaaS Adoption," from CIOUpdate, reminds us of the integration problems created by buying "best of breed" applications in the 1980s and '90s. No doubt, you remember it well. And yet the same thing is now happening as companies opt for more software-as-a-service applications.

Just like with those proprietary best-of-breed solutions, this is code that you can't customize. How can you integrate SaaS offerings? Here's an abbreviated version of the options outlined in the article:


  • Use middleware, sold either as an appliance (Cast Iron Systems) or as an application integration platform, (e.g., Tibco).

  • Use Web services, which brings challenges with security, data models, business processes and workflow, according to the article.

  • Buy pre-integrated suites from one vendor. Microsoft, SAP and Salesforce.com are among those migrating to this approach, which relies on a "core" to provide integration for products from the vendor and its partners. For example, SAP's core is Netweaver platform. Oracle's is Fusion. Salesforce.com hopes to leverage AppExchange platform into its core. The article doesn't specify Microsoft's core, but my guess would be Sharepoint server. If you're thinking "Surely companies won't fall for that kind of lock-in," remember: This is what most companies opted to do in the '90s instead of integrating in-house applications.

  • Buy an EAI solution from a third-party.

Of course, SOA doesn't solve the underlying data definitions problem, as the piece points out. This is where Master Data Management comes into play.

The full article fleshes out the problem and the possible solutions, as well as issuing advice about what IT departments can do now to encourage vendor integration, (yeah, right), and what to do if that doesn't work out.

Here are three related resources to help you learn more:


  • SaaS integration is a problem that will impact all sizes of IT organizations. Small and mid-sized companies treated SaaS applications as silos from the start, according to integration and SOA consultant and columnist David Linthicum. See what he recommends these businesses do now to remedy the SaaS integration problem by reading "SMBs Need to Tackle SaaS Integration," from Intelligent Enterprise.

  • Informatica offers an integration solution for organizations using Salesforce.com. Its On Demand Data Replicator allows businesses to easily replicate SaaS-related data to their databases. Learn more by reading, "Service Integrates SaaS Data On Demand," on the blog THINK IT Services.

  • Find out what's driving Master Data Management adoption and learn how the two breeds of MDM solutions may begin to merge functionalities in our Executive Briefing, "What's Next for Master Data Management?"

Case Study & More:

Appirio’s eat-your-own-dogfood SaaS integration

Three Startups To Solve SaaS Integration Problems

SaaS integration without the lock-in

Building a Business on Virtual Infrastructure, Using Google and salesforce.com

Videos

There are list of videos available from YouTube regarding Saas integration, check out some of them at your spare time.

Cloud Computing , SaaS and Prospects

Cloud computing is a style of computing in which dynamically scalable and often virtualized resources are provided as a service over the Internet. Users need not have knowledge of, expertise in, or control over the technology infrastructure in the "cloud" that supports them.

The concept generally incorporates combinations of the following:
* infrastructure as a service (IaaS)
* platform as a service (PaaS)
* software as a service (SaaS)
* Other recent (ca. 2007–09) technologies that rely on the Internet to satisfy the computing needs of users.

Cloud computing services often provide common business applications online that are accessed from a web browser, while the software and data are stored on the servers.

The term cloud is used as a metaphor for the Internet, based on how the Internet is depicted in computer network diagrams and is an abstraction for the complex infrastructure it conceals.

Cloud computing users can avoid capital expenditure (CapEx) on hardware, software, and services when they pay a provider only for what they use. Consumption is usually billed on a utility (e.g. resources consumed, like electricity) or subscription (e.g. time based, like a newspaper) basis with little or no upfront cost. (from wikipedia)

Late 2008, market research group IDC surveyed IT professionals and concluded that 4% of enterprises already have implemented some form of cloud computing, although it's often in the form of software as a service (SaaS). That number will more than double by 2012, to 9% of enterprises, said Frank Gens, senior VP of IDC, as he opened the Cloud Computing Forum in San Francisco

Impact of cloud computing will far exceed those modest figures, he added. Applications designed to run in the cloud "will represent 25% of the net new growth in IT spending," versus spending for on-premises IT, he predicted. SaaS by itself is projected to nearly double from $9 billion to $17 billion in that time period, Gens said.

Joseph Tobolski, director of cloud computing at Accenture's Technology Labs, pointed out that "Achieving a 5% to 9% adoption rate through 2012 might be understating it", He said Accenture's cloud consulting services are growing, and it's even produced an enterprise service bus to make it easier for its clients to link their data centers to cloud services. IT managers should be trying to make their internal operations function more as an enterprise cloud. (from InformationWeek)

In current an uncertain economy, An AMI-Partners survey finds SMB are focusing more on software as a service (SAAS) and managed services solutions as IT budgets tighten.
The study’s focus was to analyze how the economy is impacting SMBs’ perceptions, usage and purchasing behaviors related to IT. Among key changes identified in the study was the drastic increase of SMBs worldwide now showing strong interest in managed services and SAAS and dramatic increases in midmarket companies’ plans to outsource specific IT needs such as storage, security and telecommunications.

The study, released this summer, found that most SMBs feel the economy is starting to stabilize, however, businesses are still seeking ways to significantly reduce costs and increase revenues. This includes exploring IT products and services that can directly and immediately help ease exaggerated pain points like restricted cash flow and limited access to credit. “Solutions like SAAS and managed services offer flexible payment options and usage-based models that are very attractive to SMBs right now, as they struggle to overcome the credit crunch and very tight IT budgets,” said AMI Vice President of Marketing Chad Thompson. (from eWeek)

A SaaS Summit 2009, organized in Bangalore has also echoed & presented the trends of SaaS adoption in the current uncertain economy.

"SaaS is the new reality, which enterprises are facing," said M S Krishnan, professor of Business Information Technology at the Ross School of Business, University of Michigan.

"Recession has taught a lesson for restructuring of businesses as the market becomes more and more competing and giving way for newer technologies like SaaS. The social demand for these models have increased which are going to transform the business models," he added.

Balka Baruah Aggarwal, Manager, Syndicated Research, Springboard Research said IT department in enterprises have begun to move to the back-end and the focus is turning on the large scale business goals.

"IT has become the secondary focus," she said. "SaaS plays a vital role in this fundamental shift of enterprises looking at their technology investments, as it allows them to keep the focus on their business without worrying about the technology as well as successfully tweaks into your business process."

The event witnessed the delivery of ERP on a SaaS model as the emerging trend. With no initial investment costs, affordable pricing models as well as flexibility to customization, ERP on SaaS was seen as the next innovative technology by the speakers of the Summit.

Highlighting as an example, A vice president from Indian metal products compay, said, "One of our purposes is not to have any IT team in our company, that is why we went for a web-hosted ERP model. We also realized that the model can be quickly implemented and also scale our future requirements without any huge investments." (from CIOL)

Resources

Grid Asia - 2009

Basic Introduction to Cloud Computing Applications & Systems

Developing a Cloud Ecosystem in Singapore - Singapore IDA's Approach

Cloud computing - WIKIPEDIA

Cloud Implementation To Double By 2012 - InformationWeek

Economy Ignites Interest in Managed Services and SAAS - eWeek

SaaS gaining grounds in downturn - CIOL

Getting Startedwith Cloud Computing - Sun

Tuesday, March 24, 2009

Microsoft Operations Framework

The goal of MOF is to provide guidance to IT organizations to help them create, operate, and support IT services while ensuring that the investment in IT delivers expected business value at an acceptable level of risk.

MOF’s purpose is to create an environment where business and IT can work together toward operational maturity, using a proactive model that defines processes and standard procedures to gain efficiency and effectiveness. MOF promotes a logical approach to decision-making and communication and to the planning, deployment, and support of IT services.

The MOF IT service lifecycle encompasses all of the activities and processes involved in managing an IT service: its conception, development, operation, maintenance, and—ultimately—its retirement. MOF organizes these activities and processes into Service Management Functions (SMFs), which are grouped together in lifecycle phases. Each SMF is anchored within a lifecycle phase and contains a unique set of goals and outcomes supporting the objectives of that phase. The SMFs can be used as stand-alone sets of processes, but it is when SMFs are used together that they are most effective in ensuring service delivery at the desired quality and risk levels.

MOF 4.0: it is designed to help IT professionals quickly access useful, relevant content. It contains practical guidance—not just theory—and its streamlined approach makes it possible to use either the entire framework or one process from a particular service management function (SMF).

MOF Job Aids: These templates, worksheets, and tools help IT pros apply MOF 4.0 guidance to specific scenarios and challenges.IT Pro Quick Start Kit. Save time and money by learning more about MOF 4.0.

The IT Pro Quick Start Kit: it gives an overview of MOF 4.0 and provides the tools to start using it today. The kit includes links to presentations and data sheets, information on MOF, compliance, and training and certification, ready-to-use graphics, and supporting materials.

To learn more, visit www.microsoft.com/MOF.

Further reading

ITIL vs. MOF:
Find the best IT framework option for the midmarket

Sunday, February 15, 2009

Product Lifecycle Management (PLM)

What is PLM? - (Excerpt from PLM Technology Guide)

Product lifecycle management or PLM is an all-encompassing approach for innovation, new product development and introduction (NPDI) and product information management from ideation to end of life. PLM Systems as an enabling technology for PLM integrate people, data, processes, and business systems and provide a product information backbone for companies and their extended enterprise.

Business Drivers

Innovation and new product development are essential for most companies to sustain future revenue growth. Customers demand more new products in shorter time intervals, often customized to their own needs. They want more attractive designs, better performance, better quality, lower prices, and instant availability. To meet these needs companies have to be able to collaborate closely within their own organization and with partners and suppliers located in various parts of the world. At the same time companies have to manage increasing product and manufacturing complexities due to a quickly growing number of environmental and regulatory rules and requirements.

The Problem

Accelerating innovation and increasing the number of successful new product introductions is a huge challenge for most organizations today because of their traditionally serial, fragmented, manual, and paper based processes. The result is that many companies suffer from NPDI practices that are slow, resource intensive, costly, inflexible, provide little visibility, and are difficult to manage and control.

The Solution – PLM

Through their ability to integrate all product related data and processes and to eliminate boundaries in the value chain, PLM Systems can significantly reduce non-value added activities and enable stakeholders to collaborate in real time using a consistent set of information throughout the entire product lifecycle.

As a result, productivity improvements of over 60% in NPDI-related activities have been achieved through PLM-enabled, enterprise-wide data and process optimization and integration that have allowed companies to:

  • Drive innovation
  • Accelerate Revenues
  • Increase Productivity
  • Reduce Costs
  • Improve Quality
  • Ensure Compliance
  • Shorten Time-to-Market

In today’s highly competitive, fast-paced and global business environment, well-designed and implemented PLM practices, processes and technologies that support an organization’s strategies for innovation and growth can afford companies a real competitive advantage.

Reference URLs:

PLM Technology Guide

10 Best Practices for Successful PLM Evaluations

PLM from Wikipedia


Oralce Accquire PLM Company



Monday, February 9, 2009

Unified Process vs Agile Process

What is UP? Definition from Wikipedia - IBM RUP
What is Agile? Definition from Wikipedia - Agile software development


Comparison of UP & Agile

"
Software development processes define a list of activities to undertake, what order the activities should proceed in, what the inputs and outputs of each activity should be, etc. What few software process specifies is when to stop. It’s often too easy to overuse a process, and continue to produce system designs, resulting in a heavyweight, document centric process. Essentially, process is followed for process sake, rather than adding value to the stakeholders of the project.

Although UP is iterative, it follows the general phases of inception, elaboration, construction, and transition in a more or less linear fashion. As the development proceeds less time is spent on requirements and analysis, and more time is spent on construction, testing, and transition.

Agile processes on the other hand, spend time on each activity in each iteration. During each iteration (usually 2-4 weeks) a little of all steps (requirements, analysis, design, development, test, etc.) are undertaken. The goal is to have stable software which could be shipped at the end of each iteration. At the beginning of each iteration, all stakeholders meet to reorganise requirements and their priorities, while at the end of the iteration, working software is demonstrated to the stakeholders. This ensures that customer value is being added at all times, and that progress is being made on what matters, working software.

UP and its relative the Rational Unified Process (RUP) are quire comprehensive, and were designed to be modified to suit the project being developed. This adds another layer of complexity to the development effort, as the process has first to be modified before being implemented. While this allows for the flexibility to use UP on any project, it requires teams to have access to UP experts to ensure that the process is being defined and used properly.

Agile on the other hand tends to be used for small to medium sized projects involving teams up to 10 closely knit developers. Once teams become bigger than this, agile methodologies begin to fail, as they don’t scale to large teams, or teams spread across geographies." - from chris blog

Which one is better and which one to use?

like what chris said in his blog "there is no silver bullet, or one size fits all approach. You need to tailor the process to the project and your individual circumstances. " Agile strike a good balance between process and productivity, but there is some project out there where agile may be an inappropriate process of choice. RUP is great, but you have to have experienced people doing RUP projects as you don't want to overload everyone with documentation, but also have to carefully look at what the customer wants.

One important difference (from dennis) between UP & Agile is that communication in UP is more through documents where as in Agile it's face to face communcation between the customer and the entire team.


SCRUM - What is SCRUM? Definition from Wikipedia - SCRUM

Scrum is an iterative incremental process of software development commonly used with agile software development.

Although Scrum was intended to be for management of software development projects, it can be used in running software maintenance teams, or as a program management approach.

Scrum is a process skeleton that includes a set of practices and predefined roles. The main roles in Scrum are the "ScrumMaster" who maintains the processes and works similarly to a project manager, the "Product Owner" who represents the stakeholders, and the "Team" which includes the developers.

During each "sprint", typically a 2–4 week period (length decided by the team), the team creates an increment of usable software. The set of features that go into a sprint come from the product "backlog", which is a prioritized set of high level requirements of work to be done.

Scrum enables the creation of self-organizing teams by encouraging co-location of all team members, and verbal communication across all team members and disciplines that are involved in the project.

A key principle of Scrum is its recognition that during a project the customers can change their minds about what they want and need (often called requirements churn), and that unpredicted challenges cannot be easily addressed in a traditional predictive or planned manner. As such, Scrum adopts an empirical approach—accepting that the problem cannot be fully understood or defined, focusing instead on maximizing the team's ability to deliver quickly and respond to emerging requirements.

There are several implementations of systems for managing the Scrum process which range from yellow stickers and whiteboards to software packages. One of Scrum's biggest advantages is that it is very easy to learn and requires little effort to start using.

Scrum Meetings

Daily Scrum
Each day during the sprint, a project status meeting occurs. This is called a "scrum", or "the daily standup". The scrum has specific guidelines:

* The meeting starts precisely on time. Often there are team-decided punishments for tardiness (e.g. money, push-ups, hanging a rubber chicken around your neck)
* All are welcome, but only "pigs" may speak
* The meeting is timeboxed at 15 minutes regardless of the team's size
* All attendees should stand (it helps to keep meeting short)
* The meeting should happen at the same location and same time every day

During the meeting, each team member answers three questions:

* What have you done since yesterday?
* What are you planning to do by today?
* Do you have any problems preventing you from accomplishing your goal? (It is the role of the ScrumMaster to remember these impediments.)

Sprint Planning Meeting
At the beginning of the sprint cycle (every 15–30 days), a "Sprint Planning Meeting" is held.

* Select what work is to be done
* Prepare the Sprint Backlog that details the time it will take to do that work
* 8 hour limit

Sprint Review Meeting
At the end of a sprint cycle, two meetings are held: the "Sprint Review Meeting" and the "Sprint Retrospective"

* Review the work that was completed and not completed
* Present the completed work to the stakeholders (a.k.a. "the demo")
* Incomplete work cannot be demonstrated
* 4 hour time limit

Sprint Retrospective

* All team members reflect on the past sprint.
* Make continuous process improvement.
* Two main questions are asked in the sprint retrospective: What went well during the sprint? What could be improved in the next sprint?
* 3 hour time limit

Please refer to wikipedia for more about role, artifaces in scrum

Scrum is kind of adaptive project management and here are some general practices of Scrum:

* Customers become a part of the development team (i.e. the customer must be genuinely interested in the output.)
* Scrum has frequent intermediate deliveries with working functionality, like all other forms of agile software processes. This enables the customer to get working software earlier and enables the project to change its requirements according to changing needs.
* Frequent risk and mitigation plans are developed by the development team itself—risk mitigation, monitoring and management (risk analysis) occurs at every stage and with commitment.
* Transparency in planning and module development—let everyone know who is accountable for what and by when.
* Frequent stakeholder meetings to monitor progress—balanced dashboard updates (delivery, customer, employee, process, stakeholders)
* There should be an advance warning mechanism, i.e. visibility to potential slippage or deviation ahead of time.
* No problems are swept under the carpet. No one is penalized for recognizing or describing any unforeseen problem.
* Workplaces and working hours must be energized—"Working more hours" does not necessarily mean "producing more output."



Reference URLs:

Agile Modeling and the Rational Unified Process (RUP)

Agile vs. RUP

Unified Process vs Agile Processes

Google Tech Talks - Srcum

Friday, February 6, 2009

EclipseLink

EclipseLink is an open source object-relational mapping package for Java developers. It provides a powerful and flexible framework for storing Java objects in a relational database or for converting Java objects to XML documents.

EclipseLink's original contribution came from the Oracle TopLink product in 2006.

EclipseLink supports several standard persistence related APIs including:

EclipseLink provides support for:

  • Object relational mapping (ORM)
  • Object XML mapping (OXM)
  • Object persistence to Enterprise Information Systems (EIS)
  • Database web services

Sun Microsystems has selected the EclipseLink project to be the reference implementation for JPA 2.0.[1]

Reference List:

Webnar: http://live.eclipse.org/node/490
Wikipedia: http://en.wikipedia.org/wiki/EclipseLink
Introduction of SDO
Introducing EclipseLink
EclipseLink Team Blog

EclipseLink/UserGuide

Monday, January 5, 2009

Java Optical Character Recognition

Optical character recognition, usually abbreviated to OCR, is the mechanical or electronic translation of images of handwritten, typewritten or printed text (usually captured by a scanner) into machine-editable text.

OCR is a field of research in pattern recognition, artificial intelligence and machine vision. Though academic research in the field continues, the focus on OCR has shifted to implementation of proven techniques. Optical character recognition (using optical techniques such as mirrors and lenses) and digital character recognition (using scanners and computer algorithms) were originally considered separate fields. Because very few applications survive that use true optical techniques, the OCR term has now been broadened to include digital image processing as well.

Early systems required training (the provision of known samples of each character) to read a specific font. "Intelligent" systems with a high degree of recognition accuracy for most fonts are now common. Some systems are even capable of reproducing formatted output that closely approximates the original scanned page including images, columns and other non-textual components. (excerpt from wikipedia)

My understanding for Java OCR implmentation so far is that there is no pure java implementation and most of implementation available in the market is a java porting / wrapper from existing implementation from other language (e.g. c / c++).

You can find list of available softwares from ocr page from wikipedia

Reference List:

Optical Character Recognition

Futurama: Using Java Technology to Build Robots That Can See, Hear Speak, and Move

Optical Character Recognition(OCR)

Java OCR

Java libraries to read and write PDF files

http://www.gnome.sk/

http://asprise.com/home/

http://www.sane-project.org/


JDesktop Integration Components (JDIC)

JDIC provides Java applications with access to functionalities and facilities provided by the native desktop. It consists of a collection of Java packages and tools. JDIC supports a variety of features such as embedding the native browser, launching the desktop applications, creating tray icons on the desktop, registering file type associations, creating JNLP installer packages, etc (the project supports features such as embedding the native HTML browser, programmatically opening the native mail tool, using registered file-type viewers, and packaging JNLP applications as RPM, SVR4, and MSI installer packages. As a bonus, an SDK for developing platform-independent screensavers is included).

Many new features are contributed as incubator projects from the community.


Reference urls:

JDesktop Integration Components (JDIC) project
Introducing JDIC
Multiple JDIC browsers integrated into Processing sketch

´