"Service Oriented Architecture (SOA) is a software design and software architecture design pattern based on structured collections of discrete software modules, known as services, which collectively provide the complete functionality of a large software application. The purpose of SOA is to allow easy cooperation of a large number of computers and applications that are connected over a network." – Cloud Computing: A Practical Approach
Over time, an organization may evolve into having a heterogeneous technology footprint including: UNIX, Windows, and Mainframes. Additionally, organizations acquire third party software packages, invest in custom built solutions, and are required to continue to support legacy applications. As each application and platform is integrated into the organization's infrastructure it is wired to communicate with each disparate system. In the short term, this approach is a quick fix and life in Information Technology moves on. However, as more systems are added to the infrastructure, this approach becomes increasingly complex. Eventually the complexity becomes overwhelming resulting in a fragile infrastructure, unbearable total cost of ownership, and a lack of agility causing an inability to meet the business needs of the organization.
Service Oriented Architecture (SOA) is a methodology for delivering software solutions that are reusable, agile, and align the Information Technology assets with the organizations business model. When fully mature and implemented properly, SOA, provides the benefits of improved business process execution, quicker time to market, and enablement of new business growth. It also provides a shift in Information Technology culture from new development to reuse, and a decrease in the total cost of development and maintenance. SOA is realized through the creation of Services which are autonomous, self-describing, discoverable, and inherently interoperable containers of business logic.
Benefits of SOA implementation include:
Phidiax partners with you to implement a custom built architecture. This architecture provides you with a platform to support development of enterprise solutions which achieve organizational goals. Rather than engaging to solve a single technology challenge, Phidiax collaborates with you to engineer an architecture which solves a comprehensive set of technology hurdles by providing a solution which includes Consistent and Repeatable components. We specialize in bringing Agility into the enterprise by implementing a Governance program based on Service Oriented Principles.
Phidiax delivers tailored architectures based on your organizational vision and requirements. We focus on your existing technology footprint, maturity level, as well as the social and political readiness of your enterprise; both business and information technology.
We assist you in expeditiously selecting and implementing the proper architecture for the identified problem set. This approach results in the development of a platform which will enable you to easily construct future solutions. It will also function as a Solution Delivery Platform equipped to design, construct, and host enterprise-grade applications.
Phidiax works with you to determine whether SOA is the proper architectural approach for your organization. Phidiax then assists you in determining the best approach given the current product roadmaps and political-social climate.
Phidiax works with you to architect the technology infrastructure required to support the SOA. This includes a comprehensive review of existing software, identification of gaps in existing technology infrastructure, and provisioning of necessary identified hardware or software resources. This architecture will serve as the governing blueprint which identifies usage of tools and platforms during implementation of a solution designed upon the SOA.
Phidiax works with you to determine the scope of the SOA. We identify and architect service layers, model candidate services and candidate methods. We identify short term “wins” that will exhibit immediate Return on Investment (ROI), which are based upon the overarching candidate solution. The stages following Service Oriented Analysis are iterative, we attempt to identify all needed services in the first pass of Service Oriented Analysis, and break the delivery into stages that align with other ongoing business initiatives. We generally avoid attempting to deliver a fully complete SOA solution in a single iteration. This allows us to build services which provide immediate ROI in the short-term, while remaining in sync with the business vision and stakeholder sponsorship.
Phidiax works with you to organize a schedule for the design, coding, testing, documentation and deployment of the SOA. This is managed in a phased approach which enables the ability to deliver the SOA while strategically implementing several SOA projects which may already be defined and funded.
Phidiax works with you to define the schemas, method signatures, and interdependencies between services and disparate systems. Each identified Service from the SOA Analysis phase is fully defined in the application architecture design document. Service Oriented Design is a heavily standards-driven phase that incorporates industry conventions and service-orientation principles into the service design process.
Phidiax works with you to design, code, test, document, and deploy services, user interfaces, portals, databases, applications, systems, exception management subsystems, business intelligence, etc. in support of the enterprise architecture and Service Oriented Design. Execution also includes the architecture, acquisition, installation, configuration, and testing of any hardware or software required to support the SOA.
Governance commences during Strategic Assessment, and is further developed throughout each stage of the process. Phidiax works with you to define and record how each type of potential solution shall be constructed. This includes but is not limited to implementation tools, design patterns, utilization of best practice guidance, automation tools, use of source control, security architecture, platform utilization per application, disaster recovery, and documentation.