by Bhagvan Kommadi
Once purely academic, open source is now enterprise ready. We have begun to see many customers build enterprise-specific platforms by choosing open source components during the architectural design process. Such projects in telecom, banking, financial services and insurance have begun to demystify “the myth of reuse” by using open source components selectively.
As diagrammed below, in the infrastructure layer, enterprises are already choosing open source products in the areas of databases, OS, LDAP, NMS, etc. In the core platform layer, open source components are also frequently assembled in the technical layer of the enterprise specific platform. Open source development tools have simplified enterprise application development, not just from the cost perspective but from an improved productivity standpoint.
What’s next ?
In the layers above the technical and infrastructure layers, open source is in a nascent stage of adoption. Open source is beginning to be embraced in the market platform layer (e.g., analytics, reporting, CRM, ERP and wireless). The emergence of model-driven architecture (MDA) and domain-specific languages will step up open source to work in the vertical frameworks layers, too. While open source components are relatively new in these layers, the natural advantages of open source suggest they will gain acceptance gradually over time. This is partly true because new capabilities coming out of the “Web 2.0 and Mobile 2.0” movements show a natural preference for open source components.
Enterprise Web 2.0 & Mobile 2.0
Web 2.0 & Mobile 2.0 terms/technologies were initially consumer-centric, but now are more enterprise-focused, and open source tools and technologies are playing a prominent role. Enterprises will selectively choose some of these evolving technologies by evaluating the open source products in Web 2.0 & Mobile 2.0, cutting an orthogonal line across the infrastructure diagram, touching all four layers. Most of the new products/technologies/standards are implemented as open source components, even by traditionally proprietary product vendors (e.g., TIBCO/Nokia/Google). It is very evident that the open source community, which had members who were Time Tellers, now has new members who are Clock Builders.
Enterprise Specific Platform – Open Source
In the area of enterprise specific platform, enterprise IT is investing in office of chief technology who have enterprise architects, IT architects, Technical Architects and engineers to build their own enterprise specific platforms. The trend is to build the platform using open source components in the technology infrastructure layer. The various components are portal, bpm, esb, document management, caching, rules, scheduler and calendar frameworks.
A portal provides personalization, single sign-on, and content aggregation from different sources and hosts the presentation layer of information systems. Aggregation is the process of integrating content from different sources within a Webpage. A portal may have personalization features to provide customized content to users. Portal pages may have different sets of portlets creating content for different users. The key features for portal framework selection are look and Feel, Personalization, Performance, Scalability, Load balancing, Security, layout customization, portal security policy, single sign on, ease of development and deployment, Integration with third party software, Support and Licensing and Price.
Object relational mapping framework has the features like support for query language support on domain objects, configurable connection to different data sources, support for different databases. The framework has capabilities to have create/read/update/delete/getAll, check for duplicates, good exceptional handling, encrypted connection strings, timestamp conversion, common data type conversions ,parameter creation for execution, transaction management, soft deletes, activation, deactivation and canceling. Data access layer framework need to be designed for concurrency and integrated security with database. Batch data updates and cascade deletes are addressed in the framework. Vendor specific Data Types/PL/SQL Data types, Primary key generation, Error Code handling specific to vendor specific database, Configurable Connection Time outs, Distributed Transactions, Long running transactions, Configurable Transaction isolation levels are the key elements of ORM frameworks.
Business Process analysis includes Cycle time analysis, Manual processes identification, Cost & Transactions analysis. Accuracy, Compliance, Processes, Controls, Volume are part of the business process definition and validation. A typical enterprise business process operates in silos. Typical BPM Features are fully Integrated SOA, ESB and BPM, Proven enterprise scale deployment, Extensive modeling, simulation, BAM, system analysis, reporting, Rich user interface, best of breed rules engine, Simulation and Analyzer.
Enterprise Service Bus
Enterprise Service Bus is a message broker and an open standards-based distributed synchronous or asynchronous messaging middleware. The framework provides secure interoperability between enterprise applications via XML, Web services interfaces and standardized rules-based routing of documents. The data files are passed to and from their destinations based on pre-established and multiparty agreed guidelines. Information sharing ensures data integrity as it is routed. The multi-language and multi-platform design allows enterprises to process data between applications from various sources and networks.
The key features for ESB selection are support for general notification framework, supported Transports ( JMS , InVm, TCP/IP, email, database or file system), JMS and SQL transaction integration, seamless integration , BPM integration, WS-BPEL support, Web Services support, Improved deployment and configuration, Groovy support, Support for data transformations using xml, XSLT, Listeners and action model to support loose-coupling of interaction steps, Content based routing using rules or XPath, Support for registries, using JAX-R and jUDDI out-of-the-box, Gateways to allow non-ESB aware traffic to flow into the ESB, Graphical configuration editor and high performance & reliability.
Document Management Framework
A Document Management system (DMS) is used to track and store electronic documents and/or images of paper documents provide storage, versioning, metadata, security, as well as indexing and retrieval capabilities. It is a subset of Enterprise Content Management framework and is related to Digital Asset Management. The key features for document management framework are Look and Feel, Customization, Scalability, Ease of development and deployment, Integration with other software, Support and Licensing & Price
The key features of ETL are Job Designer, Transformation Mapper, Real-time Debugging, Business Modeler , Numerous Connectors (30+), Wizards , discovery test and preview of data sources/targets full documentation set generation. Multi-user metadata repository enables team development of data integration and ETL projects. Job Conductor provides event-based scheduling capabilities for real-time integration. Grid Conductor optimizes the scalability and availability by automatically distributing the jobs across the grid.
A caching framework speeds up dynamic web applications by providing a means to manage cached data of various dynamic natures. It is most useful for high read, low throughput applications. Dynamic content and reporting systems can benefit most. The framework provides features like HTTP Session Replication, Distributed Cache, POJO Clustering, and Application Coordination across cluster’s JVMs. A distributed cache speeds up dynamic web applications by providing a means to manage cached data of various dynamic natures. Distributed cache framework is most useful for high read, low throughput applications.
The idea of a rule engine is to externalize the business logic from the application. A rule engine is a sophisticated interpreter of if-then statements. The if-then statements are the rules. A rule is composed of two parts, a condition and an action: When the condition is met, the action is executed. The key features for rules engine selection are rules and language support, Look and feel, Event model, Backward Vs Forward Reasoning, Support and Licensing and Price. Rules engine provide capabilities for declarative Programming and is flexible enough to match the semantics of business problem domain with Domain Specific Languages, graphical editing tools, web based tools and developer productivity tools.
Scheduler features are the ability to run in different runtime environments like application servers, servlet containers, clusters of standalone programs and to schedule tasks for a specific time or at a specific time interval. One can also configure tasks not to run at a specific time. Scheduler allows you to organize triggers as groups in the scheduler and to associate multiple jobs with the same trigger. The framework includes event handlers to demarcate start and finish points of a triggered job. Scheduler has configuration to automatically re-trigger a job if it fails and jobs to participate in JTA transactions. One can store jobs and triggers in a database, file, or cache them in memory. Support is available for fail-over and load balancing. Framework provides listener support to monitor scheduled jobs from any application.
Calendar Server manages and coordinates appointments, events, tasks, and resources with an intuitive, Web-based interface. The framework has extensible collaboration platform for scheduling and managing events, tasks, and resources Task lists and task management features include reminders sent via email or Instant Messaging. Calendar Framework has group scheduling for meetings and events and information sharing through hyperlinks and attachments in events or tasks.
The key features for calendar framework selection are calendaring, group scheduling, event information sharing, task management, event and task search, and e-mail invitations, Event and task deadline reminders via e-mail and instant messaging with time zone localization, Multiple calendar views such as day, week, month, and overview with tasks and events, Multiple calendar client support (Web-based access and desktop clients such as Microsoft Outlook and Evolution through Sun Javaª System connectors), Mobile access via Java System Portal Server Mobile Access and other mobile solutions, Integration with the Java System Identity Server for provisioning and single sign-on, Enhanced security with SSL/TSL support, Enhanced high-availability solution through Sun Java System Cluster, Deployment flexibility with virtual domain support and distributed calendar server support, Open & extensible platform for branding, customization, and extension, search all of their calendars to locate events and tasks and ability to quickly locate appointments or tasks.