CoreLabs - Core Common Components

A significant portion of most application software development involves developing pieces of software that address the same old set of problems over and over again. Development of new software products involves building new subsystems from scratch as well as using reusable pieces of existing software. Component-based software development enables the construction of software artifacts by assembling prefabricated, configurable and independently evolving building blocks, called software components. CoreObjects has built a rich set of reusable components on various platforms. Product development organizations can greatly reduce their ramp-up time by reusing these components, thereby leveraging the many man years of experience and effort that has gone into building them.

C3 Logging

Logging is important for debugging and monitoring enterprise applications. It can be used during development and while the system is in production. C3 Logging provides APIs for logging various application statuses, errors, warnings and other diagnostic information. All the information generated by the tool is stored in application log files. In addition, all the application errors are logged into the System Event Log. These events can be picked up by external monitoring systems such as HP Open View to send pager or email alerts to the interested parties.

C3 Smart
Cache Caching information in memory has long been used to boost software performance. C3 Smart Cache is a sophisticated back-end module designed specifically for enhancing the performance of web-based enterprise applications. Application servers and web servers can leverage C3 Smart Cache to store and retrieve information several times faster than otherwise. This greatly improves the performance of the applications. C3 Smart Cache uses highly optimized LRU algorithms to clean up stale information in the Cache. Used effectively, C3 Smart Cache can boost the performance of a typical web application many fold.

C3 Email Processing Engine
Sending e-mail-based messages and alerts is an essential activity in most of today's web applications. C3 Email Processing Engine is a collection of components and services, exposed through an easy-to-use API. It can be used to provide personalized e-mail notifications, reminders and other automatic e-mail responses with very minimal effort. It uses XML technologies to provide for creation of custom e-mail templates. The engine has been designed to scale up to handle very large volumes of e-mail.

C3 AutoBuild
“Building” software is the generic term applied to the compilation or aggregation of sources into a usable utility or application. C3 AutoBuild is a tool that helps developers and build-engineers in establishing an automated repeatable process for building and deploying software. It is a set of scripts, components and services that work together to automate the otherwise time-consuming and error-prone build process. In addition to saving a lot of time, C3 AutoBuild can eliminate dependencies on specific individuals by providing a well-documented build framework. Some of the tasks typically performed by C3 AutoBuild are:

  • Retrieve and check out the latest source code
  • Perform automated builds
  • Register type libraries and components
  • Set project versions # Create installs
  • Initialize registry settings
  • Label the build # Send e-mail to notify of build success or failure
  • Log of all build activities
     

C3 Health Monitoring System (HMS)
C3 HMS is a service that is useful in monitoring the status of a production system infrastructure. Normally, production systems are deployed at the hosting service provider infrastructure at remote locations. Hence, it is necessary to have a mechanism to monitor the state of the production systems. C3 HMS connects with all the subsystems (like web servers, application servers, database servers, etc.), at regular intervals of time, to collect information relating to their functioning. For example, C3 HMS can find out whether a web server is up and running, and what its memory and CPU load is. It can then automatically report on a variety of important diagnostic information. If it senses anything wrong, it will send an alert to the administrator and log information to the system event log, which can be picked up by any external monitoring systems to send out alerts or escalate the problem. This is a very useful tool in ensuring high availability of production systems.

C3 Security Manager
The Internet is a hostile environment (Wild, Wild Web), so net-based applications must be designed specifically to withstand attacks. With the proliferation of the Internet, applications are becoming highly connected, which in turn increases the vulnerability of these applications to such attacks. Hence, the security of net-based applications is critically important. C3 Security Manager provides a rich set of APIs for services ranging from basic encryption, decryption, hashing & data signing to secure key generation and key management. Currently, it supports RSA & DES algorithms. But, the design is flexible enough to support other cryptographic protocols as well.

C3 Account Manager
Almost every Internet application needs the same basic features. These include registration, login/logoff, authentication, authorization, roles, privileges and session management, and there are many others. C3 Account Manager is a collection of related components that together provide APIs for various generic activities like user account creation, authentication, authorization, role & privilege management, session management and user activity logging. It also insulates the application from the data source that will be used for storing all the account-related information. The data source could be a simple DBMS like Oracle or SQL Server or a high end directory server like Netscape Directory Server.

C3 Search Manager Component
Searching is one of the most common features supported by Internet applications, and often search results can be very large and difficult to manage. Under such circumstances, it is critical to be able to handle large data sets and support pagination. Typically users do not go through all the results from a search, but simply browse though the first few pages. Therefore, it is inefficient to load all the search results into memory. Overall application performance improves when search results are loaded dynamically on demand. C3 Search Manager handles large searches by loading results on demand, and providing sophisticated pagination features.

C3 Scheduling Component
Scheduled services are an integral part of enterprise applications. These services need to be triggered at a specific time periodically. C3 Scheduled Service Manager can handle any number of services starting at different points in time and varying in frequency.

C3 Resource Pool
C3 Resource Pool handles pooling of precious system resources. A few examples of resources that can be pooled are database connections, network sockets, and object instances. The creation of such resources is costly and utilizes valuable system resources. By pooling such resources, the performance of applications can be improved dramatically.

C3 Data Access
Often, application software development involves accessing databases. The database query code typically takes up at least 10% of the application code. Abstracting the data access layer saves significant application development effort and time. Other benefits include higher reliability of database connections and no unclosed database cursors. The C3 Data Access abstraction component provides an XML-based framework for configuring queries and stored procedures that are executed by the application.

C3 Transaction Manager
Transaction management is a requirement of all database applications. Many commercially available application servers provide this feature out of the box, albeit at a very high cost. C3 Transaction Manager, along with the C3 Resource Pool and the C3 Data Access abstraction layer, provide transaction management features that are more robust than those provided by off-the-shelf application servers, and at no extra cost to CoreObjects clients.