Thursday, February 10, 2011
What is SOA?
When I started learning Oracle fusion middleware my main focus was to understand SOA(Service Oriented Architecture) which I feel is quite interesting concept,So let me tell you what actually SOA is by mentioning some points:
*It is not a technology or product like Oracle DBs or Applications but it is mainly based on a design methodology.
*It is the Exposure of product functionaliy as services and these services are orchestrated(these services are arrange or control to achieve a desired overall effect) .
SOA involves 2 major technologies:
It also comprises of some other technologies also like:
Let me discuss each one of them in a precise maner so that concept of SOA becomes more clear.
ESB stands for Enterprise service Bus consists of service which communicate to all the services.
*It is a technology which is used to connect different systems(This system might be mainframe or any other non oracle systems).DB Adapters,JMS Adapters,AQ Adapters and Data Transformator which actually constitute ESB.
Eg: We can make use of ESB and we can talk to mainframe system and Oracle system.
BPEL stands for Business Processing and Execution language.It is a technology which create a program that will help in invoking web services.
*It presents a very intuitive flow-chart type representation that can be easily understood and modified.
*It is a markup language like XML,HTML which help in composing a set of discrete services into end-to-end process flow but we do it manually instead we use design approach by orchestrating various service.
*BPEl process use a special type of file called as WSDL(Web service Development Language) file.
Eg: A very good example will be our internet banking system where we do lot of activities like accounts checking,funds transfer,Credit card status.By using BPEL mechanism we can create various services and we can orchestrate them so that it function in a proper manner.
*BAM which stands for Business Activity Monitoring is used for Business Analysis & Monitoring purpose.This particular Application is used for creating Dashboards & User Interfaces.Using BAM we can monitor our data on a real time basis.
Eg: A good example is Purchase order monitoring where we keep track of purchase flow and sales graph.
*owsm stands for Oracle Web service Manager.This enable us to secure web services and call web services which are secure.
*This also helps in applying the security on top of my business layer(Business layer is nothing but application layer where my business logic is stored).
*ODI stands for Oracle Data Integrator.This application is useful in processing large amount of data.
*It works on the principle of Estraction,Loading and Transformation(ELT) unlike ETL tools where we have extract transform and load.
*In short ODI can be called as 'ELT tool of SOA'
*OBR stands for Oracle Business Rules is a tool for writing the Business rules seperately from the code.
*This becomes very vital when you want to understand the Business rules and code of development separately.
*We can see Business rules with the help of User Interface provided by this tool.
*SR stands for Service Registry.It is used to keep track of all the services that are present in my portfolio(Which consists of past,present and future services).
*As the name says it stands for Oracle Java Developer where you integrate Oracle,java,web,web services and XML services.
*Oracle JDeveloper integrates development features for Java, SOA, Web 2.0,Database, XML and Web services into a single development tool.
*Oracle JDeveloper integrates the full set of features needed for developing composite applications with specific features that address the technologies like Database,java,web,web services and XML.
*Oracle JDeveloper integrates the full set of features needed for developing composite applications with specific features that address the technologies like Database,java,web,web services and XML
*Oracle JDeveloper is the development environment for Oracle SOA Suite and the Oracle WebCenter Suite.
Hope it helps in understanding SOA in a better way.