Software Engineering

Software Engineering is a core competency of SemanticBits, where we actively engineer clinical trials and biomedical informatics solutions for the health sciences domain. We apply industry standard development practices and combine open source and commercial technologies to deliver production ready, enterprise scalable software products.

Custom Application Development

We specialize in the design, development, and enhancement of custom web and client applications. We work closely with our stakeholders to understand their requirements, and by leveraging our extensive background and knowledge of the bioinformatics and life sciences domain, design and implement a solution tailored specifically to their needs. In alignment with these goals, we leverage the following principles and technologies to deliver timely, state-of-the-art software solutions:

  • Object Oriented Analysis and Design: we utilize a domain-driven approach to software development, in which we believe strongly that complex domain designs should be based on a model and that the primary focus should be on the domain and domain logic (as opposed to a particular technology used to implement the system).  In this manner, we work closely with stakeholders to model the domain using the Unified Modeling Language (UML) from which we derive a system that closely meets user requirements.
  • Agile Software Development: we implement an iterative, incremental development process modeled on the unified process whereby we tackle requirements iteratively and produce executable systems on a monthly basis.  This provides us the flexibility to change priorities rapidly while maintaining a steady rythm of stakeholder involvement.  In this type of test-driven development environment, we focus on quickly producing a system that is usable and then incrementally enhacing it based on user feedback and acceptance testing.
  • Web 2.0: all of our web-based software development leverages Web 2.0 technologies and principles, where the focus is a user-centric design that facilitates ease of use while delivering information and functionality in an intuitive way.  We leverage technologie such as AJAX and Direct Web Remoting (DWR) to develop interfaces that are interactive rather than reactive
  • Database Development: we are well versed in designing and implementing relational database solutions using the most popular industry grade database platforms, including Oracle, PostgresSQL, and MySQL.  While our domain-driven approach is begun by mapping the domain, the ultimate result is a highly performant, normalized relational database structure that can easily be maintained as an enterprise grows.  Furthermore, should the requirements dictate that a data warehouse be needed, we have expertise in designing, deploying, and migrating legacy systems into N-dimensional data warehouses and data marts.
  • Open Source: as a company, we are dedicated to leveraging and contributing to open source technologies.  In virtually all of our projects, we leverage industry standard open source technologies, and we are well versed in developing open source software.  We have experience contributing open source libraries, software tools, and full software solutions back to the community, and we are accustomed to the scrutiny that our projects get when the source code is shared in an open source setting.

Enterprise Architecture

SemanticBits feels it's important to understand a company's existing goals, standards, and infrastructure before starting development. This allows us to develop applications and systems that not only integrate into an existing environment, but also move the company closer to their goals.  When starting a project, we always depict the organization both as it is today and as it is envisioned in the future. We also map the various views (both business-oriented and technical) representing the architecture to one another. This work allows us to determine the best way to integrate something new into the architecture, take advantage of the existing infrastructure, make enhancements where possible, and ensure our development does not adversely affect existing systems.  When architecting enterprise solutions, we leverage the following concepts:

  • Open Standards: we believe strongly in the Open Standards movement whereby systems comply to industry standard specification in order to be both interoperable upon inception and easily integrated as an enterprise grows.  SemanticBits has a deep understanding of the WS-* (web service) specifications and leverages them not simply because they are the standard, but to meet specific enterprise goals.
  • Industry Standard Technologies: SemanticBits has a long track record of leveraging industry standard technologies to architect durable solutions that will meet the high security, performance, and reliability standards of a large enterprise.  We select technologies from a wide array of open source and commercial solutions, including Tomcat, JBoss, Oracle 9/10i/11g, Oracle Business Intelligence, Zope, Plone, and many others.

Enterprise Integration

SemanaticBits has extensive expertise in data integration, process integration, vendor independence, and common façade areas. We've used several Enterprise Service Busses in our projects, including ServiceMix for message acceptance, transformation, translation, routing, and message delivery and the JBI component, for the development of several services. This expertise has allowed us to seamlessly make multiple applications integrated and interoperable.  While Enterprise Integration has many facets, we keep the following in mind when designing virtually all integration solutions:

  • Service Oriented Architecture (SOA): SOA provides us a set of principles for governing concepts and system changes to provide a clear path for systems development and integration.  We apply SOA not for the sake of leveraging specific technologies or concepts but with a specific design goal in mind to integrate existing and new systems in the most efficient, maintainable manner possible.  Keeping this in mind, we select from a set of technologies that we have built a deep expertise on, including web services, grid service, Enterprise JavaBeans (EJBs), RESTful services, and other technologies.
  • Portal Development: while a Service Oriented Architecture provides us a framework for system-to-system interoperabilities, Portal Solution provide us a mechanism to integrate components into a common view, providing users with a unified experience even when systems are deployed in disparate positions within an Enterprise.  We have successfully developed and deployed a number of Enterprise Integration Solutions based upon Portal Frameworks, leveraging open standards such as JSR-127, JSR-170, and JSR-286.

Information Security

Information Security is a critical aspect of any enterprise software development solution, but this is especially true in the life sciences domain where sensitive patient data is often exchanged and research data is considered valuable intellectual capital.  SemanticBits has extensive experience designing, implementing, and integrating enteprise security solutions based on industry standards such as the Public Key Infrastructure (PKI).  Furthermore, we have designed solutions to meet HIPAA and 21 CFR Part 11 concerns.  When implementing or integrating a security solution, we keep the following concepts firmly in mind:

  • Authentication: We have experience integrating systems with a variety of authentication solutions, the goal being that users can login to systems using their standard organizationally assigned username and password.  We have integrated with a variety of Identity Providers, including LDAP and Windows NT 4.0.
  • Authorization: SemanticBits has experience designing, implementing, and integrating a variety of authorization schemes that range from coarse grained role-based authorization to fine-grained entity-level authorization.
  • Trust: it is critical to establish a trust fabric in a federated environment where different security components are interacting to provide the foundational security infrastructure.  SemanticBits has experience designing and implementing trust fabrics whereby different components within the enterprise are identified through PKI by certificates and trust is chained amongst certificate authorities (CA).  This type of architecture is ideal for large, multi-dimensial organizations and multi-institutional interactions.
  • Single Sign-on (SSO): SemanticBits has designed single sign-on architectures for federated environments, as well as portal solutions.  This allows our users to authenticate once and move between our applications and other systems already deployed at an organization.

Tools & Technologies

The following is a representative set of many of the technologies that we employ in our software solutions:

Web 2.0
Database
SOA
Business Processes
Web Analytics
Testing
AJAX
Oracle
Axis
UML
JfreeCharts
Junit
DWR 2.0 Postgres Servicemix Drools
POI Hudson
Javascript MySQL Castor
Itext easy mock
Prototype Hibernate jBPM
Google Analytics
DB unit
Scriptaculous Groovy Globus


Selenium
YUI Bering caGrid


check style
Extreme Components

XML, XSLT


Cobertura
Spring MVC




Clover
Spring-Web flow




Sitemesh