Hi,
I am Jagadish and I am a Certified Oracle Fusion Middleware Consultant (I work on SOA, BPM, OSB & WebCenter) and Corporate Trainer as well.
This Blog refers to SOA Implementations and Its features.
With My Personal Experience on Oracle SOA Suite I'm just sharing to you all.
Well,
Oracle introduced its one of the Fusion Middleware Products as ORACLE SOA SUITE but after releasing the Oracle SOA Suite's 11g version into the Market, The word Suite really became as Sweet. Infact we should pronouns the Suite as Sweet.
Okay, Let me go with the subject first.
We have few popular Architectures in the Present IT Market.
One of them is SOA and It stands for Service Oriented Architecture.
* A service is a function that is well-defined, self-contained, and does not depend on the context or state of other services.
Let me give you an Idea for this and just have a look at bellow diagram
The above diagram represents the Orientation of Services. That diagram suggests that how the services are grouped together to provide a Business Logic.
For more clarification, I will take an Example of Google Services.
When the above diagram compares to Google Search,
Broker is GOOGLE
Service Provider is FACEBOOK (Just take it as an example)
Consumer is User or YOU.
Now please keep your attention over here,
let me think that I'm the Facebook owner and initially i have to provide/publish/deliver all of my services first in the form of URL to a Mediator such as Broker(Google).
So Google has got the URL of Facebook homepage.
The USER enters into the picture now,
Lets think that he doesn't know the Facebook's URL as he didn't ever open it. So he requests the Broker (Google) to FIND it (as shown in the above) and Broker will take you to the home page of Facebook with the provided information to it(Facebook has already published its URL to Google).
So finally you will be directly communicating with the Facebook (Service Provider).
Here you need to know that, all the services such as Provider, Consumer(Requester) and Broker are grouped together to develop a Business Logic.
All the Business Services are binding together for providing a better Business Logic.
Note: Please think that i am just sharing the general example.
So SOA is also follow the same thing as i said with general example.
Now go with Technical Aspect.
* SOA is one of the Middleware Components.
* SOA (service-oriented architecture) is essentially a collection of services. These services communicate with each other.
Well, SOA is strategy for developing and integrating the different business systems with mainly three features as follows
1. Interoperability (Providing Communication for more than one systems at a time and make them to work together)
2. Re-usability (You can reuse the developed service any time and any where)
3. Agility (flexible)
If you are searching for a complete, integrated and hot-pluggable SOA platform, then Oracle SOA Suite 11g is the ideal solution. This unified platform enables next-generation business applications by simplifying service access, integration, orchestration, Complex Event Processing (CEP), monitoring and management. Oracle SOA Suite 11g is 100 percent standards based allowing it to interoperate with existing IT investments, thus lowering upfront costs. Numerous benefits of this infrastructure include:
The bellow example can give you a clear idea as i said before.
The above diagram shows the SOA implementation with its Benefits as follows.
* Service-oriented architectures are not a new thing. The first service-oriented architecture for many people in the past was with the use DCOM or Object Request Brokers (ORBs) based on the CORBA specification.
* Reuse of functions across different business organizations.
* Providing Integration between different business systems at a time.
* Reaching the business changes through different functional implementation (you can do any kind of modifications by adding new to the existing program. so no need to change the service or program from beginning level)
* Not much of any Technology is needed for the Business implementation.
How SOA has Captured the IT market..?
CORBA carries big problems as follows.
Mainly CORBA provides Tightly Coupled Structure.
1. Contains Legacy systems. So they are not much flexible to make better integration.
2. Uses acute coding for developing and integrating.
3. Very Cost Effective
4. Takes long time for making communication between different business systems.
5. ROI (Return of Investment) is very less. It means the share value of any product will be less and it doesn't give much profit compare to your investments.
But SOA has overcome the above problems as its a LOOSELY Coupled System.
This shows as follows.
The above example will make you to realize the exact difference between Loosely and Tightly Coupling.
So SOA is provides best Business and Web Logic through this Loosely coupling implementation.
* SOA follows XML standers to convert every thing as WebService and this can be done through Web designing components such as XML, XSD, XSLT and WSDL.
These are the prerequisites of Learning and knowing SOA.
You can learn these web designing tools from the following pasted URLs
http://www.w3schools.com/schema/schema_editor.asp
http://www.w3schools.com/wsdl/wsdl_intro.asp
* SOA we need the services to be loosely coupled. A web service communicates using SOAP protocol which is XML based which is very loosely coupled. It answers the what part of the service.
Please refer the bellow Url for getting the idea of SOAP structure and uses.
http://publib.boulder.ibm.com/infocenter/cicsts/v3r1/index.jsp?topic=%2Fcom.ibm.cics.ts31.doc%2Fdfhws%2Fconcepts%2Fsoap%2Fdfhws_message.htm
* SOA services should be able to describe themselves.WSDL describes how we can access the service
Now We have different SO-Architectures for both IT and Business Systems.
They are as follows.
1. Oracle SOA Suite (Very popular one and It has captured the IT market with its amazing features from 11g version as It provides best Web Logic)
2. IBM SOA (It requires more perfection in JAVA EE concepts because IBM SOA contains acute Java fundamentals and working environment as well)
Note: IBM SOA was much popular one before Oracle SOA 11g came into the Market.
3. TIBCO SOA (Its very faster in Clustering mode)
4. Web Methods (It had shutdown all of its services as It was Migrated by IBM)
5. Java CAPS (It had adopted to Oracle Corp. as Sun Micro Systems was taken by Oracle itself)
These are the few popular Architectures which follows SOA principles.
Lets have look on Oracle SOA Suite 11g.
Oracle has Introduced a collection of Fusion Middleware Tools and we can call it as Oracle Fusion Middleware.
Fusion means it consists of everything such as Front End, Back End, Middlware, Services, Financial Applications(E-Business suite) and etc.
Few Oracle Fusion Middleware Tools:
0. AIA(Application Integration Architecture) is most advanced one for faster integration.
1. Oracle SOA Suite (contains components like BPEL, Human Workflow, BAM, Mediator and etc)
2. Oracle Service Bus (It was acquired by BEA and BEA was acquired by Oracle Corp)
3. Oracle B2B (Its for Electronic Data Interchanging)
4. Oracle BPM (for Business Processing)
5. Oracle UCM (Universal Content Manager)
these are the few Oracle Fusion Middleware tools which i have known completely.
Now We go with the Oracle SOA Suite 11g Architecture:
Architecture of Oracle SOA Suite 11g
This is the Architecture of Oracle SOA Suite-11g and it internally it has SCA.
* Service-component architecture (SCA) is a group of specifications intended for the development of applications based on service-oriented architecture (SOA), which defines how computing entities interact to perform work for each other.
Well, the Information flow of Oracle SOA is like bellow.
The above diagrams directly tells that the flow of information which is passing in Oracle SOA Suite.
1. Creating an XML file
2. Converting the XML into XSD for defining database
3. Generating a WSDL file in SOA Layer based on the XSD.
4. Providing a mapping transaction or function through XSLT then after the process will be vice versa.
So this is how the information can be flown into SCA of Oracle SOA.
Service Components in SOA:
We have few different Service Components which are mainly come into the picture of SOA.
They are
1. BPEL process: It is an Orchestration process of technology which builds the SOA Applications.
* BPEL has to be primarily used for orchestrating the services.
* Do not add complex business logic here. It should belong to the service layer.
2. Business Rules: A Business Rule is a software system that executes one or more Business rules in a run-time production environment.
3. Human Task: Human task or Human workflow is a piece of work done by a Human during Run-time.
4. Mediator: Mediator provides a lightweight framework to mediate or transmit the information between various components within a composite application.
To begin creating a new application and project, you will open the Create Application dialog. To open the dialog, in the Application Navigator, choose New Application.
If an application is open, choose New Application from the Applications dropdown list.
To follow along with the example, enter the values mentioned in the steps.
A JDeveloper application allows you to specify a predefined type of environment, based on prebuilt templates, depending on the type of application you want to create (web application, Java application, and so on). The template you select determines the initial project structure, and the named project folders within the application. You can alter existing templates or create new ones.
A JDeveloper project is used to logically group files that are related. A project keeps track of the source files, packages, classes, images, and other elements that your program may need. You can add multiple projects to your application to easily access, modify, and reuse your source code.
Projects manage environment variables such as the source and output paths used for compiling and running your program. Projects also maintain compiler, runtime, and debugging options so that you can customize the behavior of those tools per project.
In the Application Navigator, projects are displayed as the top level in the hierarchy.
When you create a project in the Create SOA Application Wizard, an SOA composite is automatically selected. SOA composite applications conform to the Service Component Architecture (SCA) assembly model. SCA provides the service details and their interdependencies to form composite applications. SCA enables you to represent business logic as reusable service components that can be easily integrated into any SCA-compliant application. The resulting application is known as an SOA composite application.
You also select the BPEL process service component to initially include in your project. A BPEL process service component enables you to integrate a series of business activities and services into an end-to-end process flow. The BPEL process service component provides process orchestration and storage of long running, asynchronous processes.
This invokes the Create BPEL Process dialog for defining the type of BPEL process to include in your SOA composite application (for example, synchronous, asynchronous, or one way).
You must install a database and configure it with the Oracle SOA Suite schema before creating an application server connection and deploying an SOA composite application.
Now
The following BPEL process service component files appear in the Application Navigator:
The Application Overview page guides you as you build a Fusion Web application, to create files and objects and view the status of them.
This invokes the Create Web Service dialog for creating a binding component service that provides a SOAP protocol entry point into the SOA composite application for the outside world. You create the WSDL file and port type for the service by selecting the Generate WSDL from schema(s) icon to invoke the Create WSDL dialog. This dialog enables you to create a standard WSDL file that describes service capabilities.
The web service WSDL file, receive.wsdl, displays in the Application Navigator and advertises the service capabilites to the outside world. The singleString.xsd file provides a schema XSD file for the web service.
You add a Mediator service component to an SOA composite application by dragging it from the Component Palette into the Components section of the SOA Composite Editor.
This invokes the Create Mediator dialog for defining the type of Mediator service component to create (for example, to route data synchronously, to route data asynchronously, or to define an interface at a later time).
Two Mediator files, SOAP2BPEL.componentType and SOAP2BPEL.mplan, appear in the Application Navigator. The .componentType file describes the services and references for the Mediator service component and the .mplan file contains Mediator component metadata.
To connect a binding component service to a Mediator service component, place the cursor over the right handle of the binding component service.
Drag the wire to the left handle of the Mediator service component.
To connect the Mediator service component to the BPEL process service component, place the cursor over the right handle of the Mediator service. Drag the wire to the left handle of the BPEL process service component.
The above scenario can be as follows
Double-click the Mediator service component and click the icon to the right of the Transform Using field.
In the Request Transformation Map dialog, you select to create a new transformation mapper file.
This action opens the XSLT Mapper. The XSLT Mapper enables you to create data transformations by mapping source schema elements to target schema elements. Transformations are saved in an XSL map file.
This file contains the source schema to target schema mapping you created in the XSLT Mapper
Select File New . In the New Gallery, select Connections in the Categories tree and Application Server Connection in the Items list. Then click OK.
Enter a name for the connection.
Specify a username and password to authenticate the connection.
Specify the host on which the application server is installed.
Click Test Connection to test that you have successfully created an application server connection.
The SOA node in the connection tree indicates that SOA has already been configured in this application server.
Accept all default settings in the Deploy myFirstComposite wizard, and click Finish . This creates revision 1.0 of your SOA composite application.
Click the Deployment tab. The message that displays should look like this:
Tool for Alerts, real time Dashboards, Reporting and monitoring
BAM: Business Activity Monitoring (BAM) is one of the Service Components of SOA and is mainly used for generating the reports. It is a collection of tools that allow you to manage aggregations, alerts, and profiles to monitor relevant business metrics.
* BAM uses its active data cache to display real-time dashboards.
Adapters:
Adapters are must needed because most systems do not provide Web services interfaces, thus adapters are still required in such cases.
* Adapters are just like bridges for existing systems. They act as Interfaces between different business systems.
SOA provides different Service Adapters which are as follows.
1. DB Adapter
2. File Adapter
3. JMS Adapter
4. AQ Adapter
5. MQ Adapter
6. BAM Adapter
7. FTP Adapter
8. Socket Adapter
9. Third party Adapter
and few services such as ADF-BC service, Web Service, B2B, EJB, Direct Binding, HTTP Binding.
One sample example for DB Adapter to retrieve the data from Database.
High level Requirement : Every Job
has a particular minimum and max salary offered , if the min salary for
any Job is more than 15000 , then that needs to be approved by the
finance officer , these approved Jobs are written in a database table,
in case when the salary is less than the specified 15000 then this is
simply written into a file system . Technical Requirement : A Mediator
Driven Process invokes 2 Services based on the Min salary, if its
greater than 15000 , it invokes a particular BPEL process which would
insert Job Data into HR Database after approval, if min salary is less
than 15000 then mediator invokes another BPEL process that writes the
Job data into file system, Yes there can be many other designs including
using Rules Engine to decide on salary and routing it to different
processes but that’s not considered in this example for simplicity
sake.
Design : BPEL Process 1 with Database Adapter and Human Task (This will be responsible for Sending Jobs Data to Database if Approved by Jobs Officer)
Design 2 : BPEL Process 2 with File Adapter and Rules Engine (This will be responsible for writing Jobs Data to a file based on some rules set by Rules Engine)
Design 3 : Mediator Driven Process Connecting BPEL Process 1 and 2 (This is the main mediator process that would be responsible for connecting Process 1 and Process 2 , routing and transforming data based on certain conditions set at Mediator)
Login to SOA WLS Admin Console at http://localhost:7001/console ,
Create a new data source by name “localhost-hr” and JNDI name as “jndi/localhost-hr”
Since our SOA is running on Admin Server , let the target be admin server
Its assumed that you are running Oracle XE database , and you have HR Schema installed , incase you dont have this schema installed you can aswell create the simple table as shown below
CREATE TABLE “HR”.”JOBS”
Give the required username password , test connection
Under deployments , go to DB adapter, create a Outbound connection pool. in the xADatasource give the value as “jndi/localhost-hr” which is our JNDI name , save and Update the DB Adapter plan .
We would need to have few users like
jcooper, cdoyle , jstein etc including their management chain , refer
the download link here http://download.oracle.com/docs/cd/E12839_01/integration.1111/e10226/appx_users.htm ,
download file is DemoCommunitySeedApp.zip , extract and
deploy SOATestDemoApp.ear file from the WLS Admin Console, this is
easier than running Ant script for the same file , once deployed in the
browser type in the following URL and hit Submit
http://localhost:7001/integration/SOADemoCommunity/DemoCommunitySeedServlet
Its important to get the XSD Schema right , Create a new SOA Application by Name “Grade1App” , choose the option composite with Bpel process, modify the schema as shown in the figure , that is change input to job_id, job_title, max_sal, min_sal
On the components create a Human Task , by name “GradeHT”
Enter General info , task owner is weblogic,
Data needs to be Process element of Grade1Proc.xsd ,
Approver , can be choosen as jcooper or can be picked up from the list
from the “Create Form” , Auto generate task flow ADF form , name it as “Grade1HTForm”
It would take some time to generate necessary ADF UI , you can modify this if required.
Edit the BPEL Process, add Human Task after receive input activity
Task flow parameters needs to be selected from XSD Process element
Click OK
Right click on the Grade1Proc Project, select Deploy to Server option
Select overwrite option , version number
Select the check boxes to include the ADF Human Task form, this can be one time operation , on sub-subsequent updation of BPEL you can deploy only that with out ADF HT UI
Choose Admin Server
Login to SOA EM Enterprise Manager http://localhost:7001/em Test the Process with proper input values
The Human task is invoked , login to BPM Worklist application as jcooper , http://localhost:7001/integration/worklistapp , you can go to Settings and select Developer mode to view XML details and process flow
Process flow can be viewed under Flow Tab
NOTE : It is important that do need to link up worklist app with Human Task ADF UI , to do this perform following steps go to “Component Matrix” under the BPEL Process, click on Human task , add URI
Application Name is : worklist
Host Name is : localhost
HTTP Port : 7001
URI : /workflow/Grade1HTForm/faces/adf.task-flow?_id=Grade1HT_TaskFlow&_document=WEB-INF/Grade1HT_TaskFlow.xml
/workflow/<your task form application name>/faces/adf.task-flow?_id=
On the composite , under External references add Database adapter
Give the name as “Hrjobsadapter”
choose a DB connection , ensure that JNDI name is “eis/DB/localhost-hr” this is same as what we had defined as a DB Adapter Outbound connection under WLS Admin console
Choose insert only
Select Jobs table
No need to select Sequence
Wire HR DB Adapter to Grad1Proc in the composite
Edit BPEL Process, Add invoke activity to connect to JobsDBAdapter
Just Ensure that this Invoke is under Accept Switch case after approval , so that only after approval , we invoke the DB adapter to write into table.
Add an assign activity before invoke jobs adapter , map the input parameters to database table inputs in the invoke
Save all and deploy the BPEL process
Login to EM
Send the required parameters
Login to worklist app as jcooper, Approve
Conclusion : The Jobs Data is sent for Approval , if Approved then the data is written into Database using DB Adapter
I hope this is a briefe Article which gives you an Idea about SOA.
This is just a sample one but we can have lot of examples on Service Components of Oracle SOA.
See- http://www.oracle.com/technetwork/testcontent/adapter-tutorial11-filedbintegratio-132061.pdf
for best practice, please refer to the Oracle site as follows
http://docs.oracle.com/cd/E12839_01/integration.1111/e10223/tutorial_build.htm
http://www.oracle.com/technetwork/middleware/soasuite/overview/index.html
Therefore This is the small article which i took from my personal experience.
Finally Thank you very much for spending valuable time on my article.
Note: Suggestions are Accepted. Feel free to contact me.
Best Regards,
Jagadish Challa
A Certified Oracle Fusion Middleware Specialist
Email: jagadeesh.ravi4@gmail.com
Skype: jagadeesh.ravi
I am Jagadish and I am a Certified Oracle Fusion Middleware Consultant (I work on SOA, BPM, OSB & WebCenter) and Corporate Trainer as well.
This Blog refers to SOA Implementations and Its features.
With My Personal Experience on Oracle SOA Suite I'm just sharing to you all.
Well,
Oracle introduced its one of the Fusion Middleware Products as ORACLE SOA SUITE but after releasing the Oracle SOA Suite's 11g version into the Market, The word Suite really became as Sweet. Infact we should pronouns the Suite as Sweet.
Okay, Let me go with the subject first.
We have few popular Architectures in the Present IT Market.
One of them is SOA and It stands for Service Oriented Architecture.
* A service is a function that is well-defined, self-contained, and does not depend on the context or state of other services.
Let me give you an Idea for this and just have a look at bellow diagram
The above diagram represents the Orientation of Services. That diagram suggests that how the services are grouped together to provide a Business Logic.
For more clarification, I will take an Example of Google Services.
When the above diagram compares to Google Search,
Broker is GOOGLE
Service Provider is FACEBOOK (Just take it as an example)
Consumer is User or YOU.
Now please keep your attention over here,
let me think that I'm the Facebook owner and initially i have to provide/publish/deliver all of my services first in the form of URL to a Mediator such as Broker(Google).
So Google has got the URL of Facebook homepage.
The USER enters into the picture now,
Lets think that he doesn't know the Facebook's URL as he didn't ever open it. So he requests the Broker (Google) to FIND it (as shown in the above) and Broker will take you to the home page of Facebook with the provided information to it(Facebook has already published its URL to Google).
So finally you will be directly communicating with the Facebook (Service Provider).
Here you need to know that, all the services such as Provider, Consumer(Requester) and Broker are grouped together to develop a Business Logic.
All the Business Services are binding together for providing a better Business Logic.
Note: Please think that i am just sharing the general example.
So SOA is also follow the same thing as i said with general example.
Now go with Technical Aspect.
What is SOA.?
* SOA is one of the Middleware Components.
* SOA (service-oriented architecture) is essentially a collection of services. These services communicate with each other.
Well, SOA is strategy for developing and integrating the different business systems with mainly three features as follows
1. Interoperability (Providing Communication for more than one systems at a time and make them to work together)
2. Re-usability (You can reuse the developed service any time and any where)
3. Agility (flexible)
If you are searching for a complete, integrated and hot-pluggable SOA platform, then Oracle SOA Suite 11g is the ideal solution. This unified platform enables next-generation business applications by simplifying service access, integration, orchestration, Complex Event Processing (CEP), monitoring and management. Oracle SOA Suite 11g is 100 percent standards based allowing it to interoperate with existing IT investments, thus lowering upfront costs. Numerous benefits of this infrastructure include:
- The integrated SCA-based designer improves developer efficiency and productivity via its intuitive drag-and-drop interface, allowing the rapid creation and deployment of business applications, while promoting asset re-use and fostering collaboration.
- Unified events and services allow the creation of highly flexible and responsive applications while also allowing end-to-end IT and business visibility into wide sweeping implementations, helping clients detect patterns and trends in real time.
- With its integration of event driven network and services capabilities, Oracle SOA Suite 11g enables the straight-forward development of event based applications utilizing built in asynchronous messaging protocols.
- Oracle SOA Suite 11g provides centralized support for human-centric, system-centric, and document-centric processes.
The bellow example can give you a clear idea as i said before.
The above diagram shows the SOA implementation with its Benefits as follows.
* Service-oriented architectures are not a new thing. The first service-oriented architecture for many people in the past was with the use DCOM or Object Request Brokers (ORBs) based on the CORBA specification.
Benefits of SOA:
* Reuse of functions across different business organizations.
* Providing Integration between different business systems at a time.
* Reaching the business changes through different functional implementation (you can do any kind of modifications by adding new to the existing program. so no need to change the service or program from beginning level)
* Not much of any Technology is needed for the Business implementation.
How SOA has Captured the IT market..?
Before SOA come into the picture, there was a middle-ware component called CORBA (Common Object Request Broker Architecture) used for Integrating the different business systems and also VSAM(Virtual storage access method) was used for updating operation.
Mainly CORBA provides Tightly Coupled Structure.
1. Contains Legacy systems. So they are not much flexible to make better integration.
2. Uses acute coding for developing and integrating.
3. Very Cost Effective
4. Takes long time for making communication between different business systems.
5. ROI (Return of Investment) is very less. It means the share value of any product will be less and it doesn't give much profit compare to your investments.
But SOA has overcome the above problems as its a LOOSELY Coupled System.
This shows as follows.
The above example will make you to realize the exact difference between Loosely and Tightly Coupling.
So SOA is provides best Business and Web Logic through this Loosely coupling implementation.
* SOA follows XML standers to convert every thing as WebService and this can be done through Web designing components such as XML, XSD, XSLT and WSDL.
These are the prerequisites of Learning and knowing SOA.
You can learn these web designing tools from the following pasted URLs
http://www.w3schools.com/schema/schema_editor.asp
http://www.w3schools.com/wsdl/wsdl_intro.asp
* SOA we need the services to be loosely coupled. A web service communicates using SOAP protocol which is XML based which is very loosely coupled. It answers the what part of the service.
Please refer the bellow Url for getting the idea of SOAP structure and uses.
http://publib.boulder.ibm.com/infocenter/cicsts/v3r1/index.jsp?topic=%2Fcom.ibm.cics.ts31.doc%2Fdfhws%2Fconcepts%2Fsoap%2Fdfhws_message.htm
* SOA services should be able to describe themselves.WSDL describes how we can access the service
How many SO-Architectures are presented right now:
Now We have different SO-Architectures for both IT and Business Systems.
They are as follows.
1. Oracle SOA Suite (Very popular one and It has captured the IT market with its amazing features from 11g version as It provides best Web Logic)
2. IBM SOA (It requires more perfection in JAVA EE concepts because IBM SOA contains acute Java fundamentals and working environment as well)
Note: IBM SOA was much popular one before Oracle SOA 11g came into the Market.
3. TIBCO SOA (Its very faster in Clustering mode)
4. Web Methods (It had shutdown all of its services as It was Migrated by IBM)
5. Java CAPS (It had adopted to Oracle Corp. as Sun Micro Systems was taken by Oracle itself)
These are the few popular Architectures which follows SOA principles.
Lets have look on Oracle SOA Suite 11g.
Oracle has Introduced a collection of Fusion Middleware Tools and we can call it as Oracle Fusion Middleware.
Fusion means it consists of everything such as Front End, Back End, Middlware, Services, Financial Applications(E-Business suite) and etc.
Few Oracle Fusion Middleware Tools:
0. AIA(Application Integration Architecture) is most advanced one for faster integration.
1. Oracle SOA Suite (contains components like BPEL, Human Workflow, BAM, Mediator and etc)
2. Oracle Service Bus (It was acquired by BEA and BEA was acquired by Oracle Corp)
3. Oracle B2B (Its for Electronic Data Interchanging)
4. Oracle BPM (for Business Processing)
5. Oracle UCM (Universal Content Manager)
these are the few Oracle Fusion Middleware tools which i have known completely.
Now We go with the Oracle SOA Suite 11g Architecture:
Architecture of Oracle SOA Suite 11g
This is the Architecture of Oracle SOA Suite-11g and it internally it has SCA.
* Service-component architecture (SCA) is a group of specifications intended for the development of applications based on service-oriented architecture (SOA), which defines how computing entities interact to perform work for each other.
- SCA helps you think about the business services not the technology
- SCA helps you construct services, and their teams, around a service view
- SCA gives you a management entity that fits with a service architecture not a technology architecture
- SCA destroys the dreadful layer marketectures that vendors push
So simply put SCA helps you build
better SOA by giving you more of a SOA view of the world. The way to build good
SCA is the way to build good architectures
- Think about your services
- Organise your teams around those services
- Work out the best way to build each service
- Delivery
- Operate
Well, the Information flow of Oracle SOA is like bellow.
The above diagrams directly tells that the flow of information which is passing in Oracle SOA Suite.
1. Creating an XML file
2. Converting the XML into XSD for defining database
3. Generating a WSDL file in SOA Layer based on the XSD.
4. Providing a mapping transaction or function through XSLT then after the process will be vice versa.
So this is how the information can be flown into SCA of Oracle SOA.
Service Components in SOA:
We have few different Service Components which are mainly come into the picture of SOA.
They are
1. BPEL process: It is an Orchestration process of technology which builds the SOA Applications.
* BPEL has to be primarily used for orchestrating the services.
* Do not add complex business logic here. It should belong to the service layer.
2. Business Rules: A Business Rule is a software system that executes one or more Business rules in a run-time production environment.
3. Human Task: Human task or Human workflow is a piece of work done by a Human during Run-time.
4. Mediator: Mediator provides a lightweight framework to mediate or transmit the information between various components within a composite application.
Design an SOA Composite Application:
You can easily create an application
and project in which to design a service-oriented architecture (SOA) composite
application. You then design the contents of the application to include binding
components that make the application accessible to the outside world and
service components that implement the business logic or processing rules of the
application. You connect these components together with wires to enable message
communication and create a transformation to map the message (payload) contents
from the source binding component to the target service component.
You must install a database and
configure it with the Oracle SOA Suite schema before creating an application
server connection and deploying an SOA composite application.
Create an Application and a Project: Use the Create SOA Application wizard to create an
application and a project with a business process execution language (BPEL)
service component. A BPEL process service component enables you to integrate a
series of business activities and services into an end-to-end process flow.
Add a Web Service Binding Component: Use the Create Web Service dialog to create a binding
component service that provides a SOAP protocol entry point into the SOA
composite application for the outside world.
Add a Mediator Service Component: Use the Create Mediator dialog to create a Mediator service
component for routing data through the SOA composite application.
Connect the Components: Connect the binding component service and service
components together with wires that enable message communication.
Pass the Payload: Use the Routing Rules panel, Request Transformation Map
dialog, and XSLT Mapper to create a transformation mapper file that maps the
message (payload) contents from the source web service WSDL file to the target
BPEL process WSDL file.
Create an Application Server
Connection: Use the Create Application Server
Connection wizard to create a connection to the application server to which to
deploy the SOA composite application.
Deploy the Application: Deploy the application to the application server in which
you created the connection. When prompted, accept all default settings on the
Revision ID dialog and the Deployment Plan dialog that display during the
deployment process.
Creating an Application and a Project
The JDeveloper application is the highest level in the organizational structure. It stores information about the objects you are working with, while you are creating your application. It keeps track of your projects and the environment settings while you are developing.To begin creating a new application and project, you will open the Create Application dialog. To open the dialog, in the Application Navigator, choose New Application.
If an application is open, choose New Application from the Applications dropdown list.
To follow along with the example, enter the values mentioned in the steps.
A JDeveloper application allows you to specify a predefined type of environment, based on prebuilt templates, depending on the type of application you want to create (web application, Java application, and so on). The template you select determines the initial project structure, and the named project folders within the application. You can alter existing templates or create new ones.
A JDeveloper project is used to logically group files that are related. A project keeps track of the source files, packages, classes, images, and other elements that your program may need. You can add multiple projects to your application to easily access, modify, and reuse your source code.
Projects manage environment variables such as the source and output paths used for compiling and running your program. Projects also maintain compiler, runtime, and debugging options so that you can customize the behavior of those tools per project.
In the Application Navigator, projects are displayed as the top level in the hierarchy.
When you create a project in the Create SOA Application Wizard, an SOA composite is automatically selected. SOA composite applications conform to the Service Component Architecture (SCA) assembly model. SCA provides the service details and their interdependencies to form composite applications. SCA enables you to represent business logic as reusable service components that can be easily integrated into any SCA-compliant application. The resulting application is known as an SOA composite application.
You also select the BPEL process service component to initially include in your project. A BPEL process service component enables you to integrate a series of business activities and services into an end-to-end process flow. The BPEL process service component provides process orchestration and storage of long running, asynchronous processes.
This invokes the Create BPEL Process dialog for defining the type of BPEL process to include in your SOA composite application (for example, synchronous, asynchronous, or one way).
You must install a database and configure it with the Oracle SOA Suite schema before creating an application server connection and deploying an SOA composite application.
Now
- Open the Create Application wizard [ file > new > applications > SOA application] .
- In the
Application Name
field, enter
SOA-first-composite
. - Select SOA Application in the Applica tion Template list, and click Next .
- In the
Project Name
field, enter
myFirstComposite
, and click Next . - In the Composi te Template list, select Composite With BPEL, and click Finish .
- In the Create BPEL Process dialog, enter
emptyBPEL
in the Name field. - From the Template list, select One Way BPEL Process.
- Deselect the E xpose as a SOAP Service checkbox.
- Click OK. The BPEL Process Designer appears.
- Close the BPEL Process Designer.
In the IDE
After you create your application and project, the Application Navigator and SOA Composite Editor should look like this:The following BPEL process service component files appear in the Application Navigator:
- emptyBPEL.xsd defines a default schema XSD file for the one-way BPEL process service component.
- composite.xml defines the components and attributes of the SOA composite application.
- emptyBPEL.bpel contains a minimal set of activities based upon the process type you selected (for this example, one-way BPEL process). You add syntax to this file when you add activities, create variables, create partner links, and so on.
- emptyBPEL.componentType describes the services and references for the BPEL process.
- emptyBPEL.monitor describes the meta data for the BPEL process monitors.
- emptyBPEL.wsdl defines the input and output messages for the BPEL process flow, the supported client interface and operations, and other features.
- monitor.config defines the deployment parameters for BPEL process monitors.
The Application Overview page guides you as you build a Fusion Web application, to create files and objects and view the status of them.
Adding a Web Service Binding Component
Binding components such as web services make SOA composite applications accessible to the outside world. There are two types of binding components in an SOA composite application: services and references.- Services advertise and provide an entry point for messages sent from the outside world to the SOA composite application. Services are created in the Exposed Services swimlane of the SOA Composite Editor.
- References enable messages to be sent from the SOA composite application to external services. References are created in the External References swimlane of the SOA Composite Editor.
- A Web Services Description Language (WSDL) file that describes service capabilities
- The binding connectivity that describes the protocols that can communicate with the service (a web service using the simple object access protocol (SOAP))
This invokes the Create Web Service dialog for creating a binding component service that provides a SOAP protocol entry point into the SOA composite application for the outside world. You create the WSDL file and port type for the service by selecting the Generate WSDL from schema(s) icon to invoke the Create WSDL dialog. This dialog enables you to create a standard WSDL file that describes service capabilities.
- In the Component Palette, select SOA from the dropdown list.
- Drag a Web Service component into the Exposed Services column of the SOA Composite Editor.
- In the Create Web Service dialog, enter
receive
in the Name field. - Click the Generate WSDL from schema(s) icon to the right of the WSDL URL field.
- In the Create WSDL dialog, accept all default values and click OK.
- Click OK.
In the IDE
After you create the binding component service, the SOA Composite Editor should look like this:The web service WSDL file, receive.wsdl, displays in the Application Navigator and advertises the service capabilites to the outside world. The singleString.xsd file provides a schema XSD file for the web service.
Adding a Mediator Service Component
Service components implement the business logic or processing rules of the SOA composite application. A Mediator service component routes data through an SOA composite application. Using the Mediator service component, you create routing services and rules for them. A routing service is the key component for moving a message from entry point to exit point in an application. The rules determine how a message instance processed by the routing service gets to its next destination.You add a Mediator service component to an SOA composite application by dragging it from the Component Palette into the Components section of the SOA Composite Editor.
This invokes the Create Mediator dialog for defining the type of Mediator service component to create (for example, to route data synchronously, to route data asynchronously, or to define an interface at a later time).
- In the Component Palette, select the Mediator component and drag it into the Components section of the SOA Composite Editor.
- In the Create Mediator dialog, enter
SOAP2BPEL
in the Name field. - Select Define Interface Later from the Template dropdown list, and click OK.
In the IDE
After creating the Mediator service component, the SOA Composite Editor should look like this:Two Mediator files, SOAP2BPEL.componentType and SOAP2BPEL.mplan, appear in the Application Navigator. The .componentType file describes the services and references for the Mediator service component and the .mplan file contains Mediator component metadata.
Connecting the Components
Wires enable you to connect binding component services, service components, and binding component references in an SOA composite application for message communication.To connect a binding component service to a Mediator service component, place the cursor over the right handle of the binding component service.
Drag the wire to the left handle of the Mediator service component.
To connect the Mediator service component to the BPEL process service component, place the cursor over the right handle of the Mediator service. Drag the wire to the left handle of the BPEL process service component.
The above scenario can be as follows
- Select the arrow on the right side of the receive web service.
- Drag the arrow to the arrow on the left side of the SOAP2BPEL Mediator service.
- Select the triangle on the right side of the SOAP2BPEL Mediator service.
- Drag the triangle to the arrow on the left side of the emptyBPEL BPEL process.
In the IDE
After you connect the binding component service, Mediator service component, and BPEL process component, the SOA Composite Editor should look like this:Passing the Payload
You must pass the incoming payload from the binding component service to the Mediator service component to the BPEL process service component. This requires you to create a transformation to map the payload contents from the source schema WSDL file of the web service to the target schema WSDL file of the BPEL process. The Mediator service component routes the payload between the two.Double-click the Mediator service component and click the icon to the right of the Transform Using field.
In the Request Transformation Map dialog, you select to create a new transformation mapper file.
This action opens the XSLT Mapper. The XSLT Mapper enables you to create data transformations by mapping source schema elements to target schema elements. Transformations are saved in an XSL map file.
- In SOA Composite Editor, double-click the SOAP2BPEL Mediator component.
- Click next to the Transform Using field.
- In the Request Transformation Map dialog, select Create New Mapper File .
- Accept the default name in the Create New Mapper File field, and click OK.
- In the XSLT Mapper, drag the inp1:input node in the source panel to the client:input node in the target panel.
- Click Save All.
- Close the XSLT Mapper.
- Close the SOAP2BPEL Mediator component.
In the IDE
Once created, the singleString_To_process.xsl file in the xsl folder of the Application Navigator should look like this:This file contains the source schema to target schema mapping you created in the XSLT Mapper
Creating an Application Server Connection
You must create a connection to an Oracle Application Server to which to deploy your SOA composite application. You must install a database and configure it with the Oracle SOA Suite schema before creating an application server connection.Select File New . In the New Gallery, select Connections in the Categories tree and Application Server Connection in the Items list. Then click OK.
Enter a name for the connection.
Specify a username and password to authenticate the connection.
Specify the host on which the application server is installed.
Click Test Connection to test that you have successfully created an application server connection.
In the IDE
After creating an application server connection, select View Application Server Navigator . The connection displays in the Application Server Navigator as a resource, and should look like this:The SOA node in the connection tree indicates that SOA has already been configured in this application server.
Deploying the Application
In order to test and monitor your SOA composite application, you deploy the application deployment profile to the Oracle WebLogic Server instance to which you created a connection. Select Deplo y m yFirstComposite .Accept all default settings in the Deploy myFirstComposite wizard, and click Finish . This creates revision 1.0 of your SOA composite application.
- Right-click myFirstComposite, and select Deplo y myFirstComposite .
- On the Deployment Action step of the Deploy myFirstComopsite wizard, select Deploy to Application Server, and click Next .
- On the Deploy Configuration step, accept the defaults, and click Next .
- On the Select Server step, select myConnection, and click Next .
- On the SOA Servers step, choose the target SOA server to which to deploy the archive, and click Finish .
- In the Log window that appears at the bottom, click the
SOA tab to display any SOA compilation errors. If deployment was successful, the words
BUILD SUCCESSFUL
display at the bottom. - Click the Deployment tab to display any generic deployment errors.
- Click Save All.
In the IDE
If deployment was successful, the message that displays in the Log window at the bottom of the designer should look like this:Click the Deployment tab. The message that displays should look like this:
Tool for Alerts, real time Dashboards, Reporting and monitoring
BAM: Business Activity Monitoring (BAM) is one of the Service Components of SOA and is mainly used for generating the reports. It is a collection of tools that allow you to manage aggregations, alerts, and profiles to monitor relevant business metrics.
* BAM uses its active data cache to display real-time dashboards.
Now let me describe the Service Adapters in Oracle SOA Suite:
Adapters:
Adapters are must needed because most systems do not provide Web services interfaces, thus adapters are still required in such cases.
* Adapters are just like bridges for existing systems. They act as Interfaces between different business systems.
SOA provides different Service Adapters which are as follows.
1. DB Adapter
2. File Adapter
3. JMS Adapter
4. AQ Adapter
5. MQ Adapter
6. BAM Adapter
7. FTP Adapter
8. Socket Adapter
9. Third party Adapter
and few services such as ADF-BC service, Web Service, B2B, EJB, Direct Binding, HTTP Binding.
One sample example for DB Adapter to retrieve the data from Database.
Oracle SOA 11g DB Adapter
Architecture and Requirement |
Design : BPEL Process 1 with Database Adapter and Human Task (This will be responsible for Sending Jobs Data to Database if Approved by Jobs Officer)
Design 2 : BPEL Process 2 with File Adapter and Rules Engine (This will be responsible for writing Jobs Data to a file based on some rules set by Rules Engine)
Design 3 : Mediator Driven Process Connecting BPEL Process 1 and 2 (This is the main mediator process that would be responsible for connecting Process 1 and Process 2 , routing and transforming data based on certain conditions set at Mediator)
Initial Setup Db Adapter Configuration on Console |
Create a new data source by name “localhost-hr” and JNDI name as “jndi/localhost-hr”
Since our SOA is running on Admin Server , let the target be admin server
Its assumed that you are running Oracle XE database , and you have HR Schema installed , incase you dont have this schema installed you can aswell create the simple table as shown below
CREATE TABLE “HR”.”JOBS”
( "JOB_ID" VARCHAR2(10 BYTE), "JOB_TITLE" VARCHAR2(35 BYTE) CONSTRAINT "JOB_TITLE_NN" NOT NULL ENABLE, "MIN_SALARY" NUMBER(6,0), "MAX_SALARY" NUMBER(6,0), CONSTRAINT "JOB_ID_PK" PRIMARY KEY ("JOB_ID") )
Give the required username password , test connection
Under deployments , go to DB adapter, create a Outbound connection pool. in the xADatasource give the value as “jndi/localhost-hr” which is our JNDI name , save and Update the DB Adapter plan .
Seeding Users such as Jcooper, Cdoyle etc |
http://localhost:7001/integration/SOADemoCommunity/DemoCommunitySeedServlet
Design 1 Details : Human Task |
Its important to get the XSD Schema right , Create a new SOA Application by Name “Grade1App” , choose the option composite with Bpel process, modify the schema as shown in the figure , that is change input to job_id, job_title, max_sal, min_sal
On the components create a Human Task , by name “GradeHT”
Enter General info , task owner is weblogic,
Data needs to be Process element of Grade1Proc.xsd ,
Approver , can be choosen as jcooper or can be picked up from the list
from the “Create Form” , Auto generate task flow ADF form , name it as “Grade1HTForm”
It would take some time to generate necessary ADF UI , you can modify this if required.
Edit the BPEL Process, add Human Task after receive input activity
Task flow parameters needs to be selected from XSD Process element
Click OK
Deploy n Test Human Task |
Right click on the Grade1Proc Project, select Deploy to Server option
Select overwrite option , version number
Select the check boxes to include the ADF Human Task form, this can be one time operation , on sub-subsequent updation of BPEL you can deploy only that with out ADF HT UI
Choose Admin Server
Login to SOA EM Enterprise Manager http://localhost:7001/em Test the Process with proper input values
The Human task is invoked , login to BPM Worklist application as jcooper , http://localhost:7001/integration/worklistapp , you can go to Settings and select Developer mode to view XML details and process flow
Process flow can be viewed under Flow Tab
NOTE : It is important that do need to link up worklist app with Human Task ADF UI , to do this perform following steps go to “Component Matrix” under the BPEL Process, click on Human task , add URI
Application Name is : worklist
Host Name is : localhost
HTTP Port : 7001
URI : /workflow/Grade1HTForm/faces/adf.task-flow?_id=Grade1HT_TaskFlow&_document=WEB-INF/Grade1HT_TaskFlow.xml
/workflow/<your task form application name>/faces/adf.task-flow?_id=
<human task component name in your composite>_TaskFlow&_document=WEB-INF/ <the .xml file you see in your task application's WEB-INF directory> Click on GradeHT refer : http://soaprofessional.blogspot.com/2011/06/details-not-available-for-this-task.html
DB Adapter |
Give the name as “Hrjobsadapter”
choose a DB connection , ensure that JNDI name is “eis/DB/localhost-hr” this is same as what we had defined as a DB Adapter Outbound connection under WLS Admin console
Choose insert only
Select Jobs table
No need to select Sequence
Wire HR DB Adapter to Grad1Proc in the composite
Edit BPEL Process, Add invoke activity to connect to JobsDBAdapter
Just Ensure that this Invoke is under Accept Switch case after approval , so that only after approval , we invoke the DB adapter to write into table.
Add an assign activity before invoke jobs adapter , map the input parameters to database table inputs in the invoke
Save all and deploy the BPEL process
Testing Application |
Send the required parameters
Login to worklist app as jcooper, Approve
Conclusion : The Jobs Data is sent for Approval , if Approved then the data is written into Database using DB Adapter
I hope this is a briefe Article which gives you an Idea about SOA.
This is just a sample one but we can have lot of examples on Service Components of Oracle SOA.
See- http://www.oracle.com/technetwork/testcontent/adapter-tutorial11-filedbintegratio-132061.pdf
for best practice, please refer to the Oracle site as follows
http://docs.oracle.com/cd/E12839_01/integration.1111/e10223/tutorial_build.htm
http://www.oracle.com/technetwork/middleware/soasuite/overview/index.html
Therefore This is the small article which i took from my personal experience.
Finally Thank you very much for spending valuable time on my article.
Note: Suggestions are Accepted. Feel free to contact me.
Best Regards,
Jagadish Challa
A Certified Oracle Fusion Middleware Specialist
Email: jagadeesh.ravi4@gmail.com
Skype: jagadeesh.ravi
Good explain about SOA for beginners. This is more helpful.
ReplyDeleteOracle SOA Training in Chennai
Oracle Training in Chennai
Thank you for feedback.
ReplyDeletethanks for explaining oracle in detail this points are very good and very useful for the begineers.
ReplyDeletewww.erptree.com/course/oracle-fusion-financials-training-in-ameerpet/
Thank you.
DeleteThank you for your appreciations.
ReplyDeletemy requirment is to create a webservice that get data from one database table and store this data to anohter database table .
ReplyDeletecan you guide ma at ashehzad612@gmail.com
This is very important and imformative blog,thanks for good info Oracle SOA Online Training Bangalore
ReplyDeleteGood Post! Thank you so much for sharing this pretty post, it was so good to read and useful to improve my knowledge as updated one, keep blogging…!!..Oracle SOA Online Training
ReplyDeleteThanks Admin for sharing such a useful post, I hope it’s useful to many individuals for developing their skill to get good career.
ReplyDeleteJava training in Chennai | Java training institute in Chennai | Java course in Chennai
Java training in Bangalore | Java training in Electronic city
Java training in Bangalore | Java training in Marathahalli
Java training in Bangalore | Java training in Btm layout
Thanks for your informative article, Your post helped me to understand the future and career prospects & Keep on updating your blog with such awesome article.
ReplyDeleteData Science training in chennai | Best Data Science training in chennai
Data Science training in OMR | Data science training in chennai
Data Science training in chennai | Best Data science Training in Chennai
Data science training in velachery | Data Science Training in Chennai
Data science training in tambaram | Data Science training in Chennai
Data Science training in anna nagar | Data science training in Chennai
ReplyDeleteHmm, it seems like your site ate my first comment (it was extremely long) so I guess I’ll just sum it up what I had written and say, I’m thoroughly enjoying your blog. I as well as an aspiring blog writer, but I’m still new to the whole thing. Do you have any recommendations for newbie blog writers? I’d appreciate it.
Top 250+AWS Interviews Questions and Answers 2019 [updated]
Learn Amazon Web Services Tutorials 2019 | AWS Tutorial For Beginners
Best AWS Interview questions and answers 2019 | Top 110+AWS Interview Question and Answers 2019
Best and Advanced AWS Training in Bangalore | Amazon Web Services Training in Bangalore
AWS Training in Pune | Best Amazon Web Services Training in Pune
AWS Online Training 2018 | Best Online AWS Certification Course 2018
Best Amazon Web Services Training in Pune | Best AWS Training in Pune
This is such a good post. One of the best posts that I\'ve read in my whole life. I am so happy that you chose this day to give me this. Please, continue to give me such valuable posts. Cheers!
ReplyDeleteangularjs Training in chennai
angularjs Training in chennai
angularjs-Training in tambaram
angularjs-Training in sholinganallur
angularjs-Training in velachery
angularjs-Training in pune
Amazing Article ! I have bookmarked this article page as i received good information from this. All the best for the upcoming articles. I will be waiting for your new articles. Thank You ! Kindly Visit Us @ Coimbatore Travels | Ooty Travels | Coimbatore Airport Taxi
ReplyDeleteGreat site you have got here.. It’s difficult to find high quality writing like yours these days. I truly appreciate individuals like you! Take care!!
ReplyDeleteYour Website is Very Impressive and Interesting , Thanks for your Kind of Articles to Gaining a more Knowledge About Computer Languages Do visit below for more about it.
ReplyDeletepython training in chennai | python training in annanagar | python training in omr | python training in porur | python training in tambaram | python training in velachery
The Blog is Really Very impressive. the contents are explained very Clearly. the concept should be arranged very Neatly in the manner.
ReplyDeleteData Science Training Course In Chennai | Data Science Training Course In Anna Nagar | Data Science Training Course In OMR | Data Science Training Course In Porur | Data Science Training Course In Tambaram | Data Science Training Course In Velachery
It’s great to come across a blog every once in a while that isn’t the same out of date rehashed material. wonderful post!!!
ReplyDeleteAndroid Training in Chennai
Android Online Training in Chennai
Android Training in Bangalore
Android Training in Hyderabad
Android Training in Coimbatore
Android Training
Android Online Training
ReplyDeleteThanks for sharing this great information I am impressed by the information that you have on this blog. Same as your blog i found another one Oracle ADF . Actually I was looking for the same information on internet for Oracle ADF and came across your blog. I am impressed by the information that you have on this blog. It shows how well you understand this subject, you can learn more aboutOracle ADF . By attending Oracle ADF Training .
Thanks for sharing this great information I am impressed by the information that you have on this blog. Same as your blog i found another one Oracle SOA Training
ReplyDelete. Actually, I was looking for the same information on internet for Oracle SOA Interview Questions and Answers
and came across your blog. I am impressed by the information that you have on this blog. It shows how well you understand this subject, you can learn more about Oracle SOA Tutorial also.
ReplyDeleteThanks for the nice blog here.I was searching this one for a long time.This blog is very helpful for my studies..I got another one site also,which is same as yours Oracle BPM.Check this one also Oracle Fusion HCM Sure it will be helpful for you too..Once more iam thanking you for your creative blog.
I feel really happy to have seen your webpage and look forward to so many more entertaining times reading here .Same as your blog i found another one Oracle Fusion HCM . Actually I was looking for the same information on internet for Oracle Fusion HCM and came across your blog. I am impressed by the information that you have on this blog. Thanks once more for all the details.
ReplyDeleteI really liked your blog post.Much thanks again. Awesome.
ReplyDeleteSOA Training in Hyderabad
SOA Online Training
Great post. Thanks for sharing.....
ReplyDeleteAngularjs Training in Bangalore
Angularjs classes in Pune
Birthday wishes are an excellent way to wish a buddy or best friend a Happy birthday! eventprofs Several messages and statements are created to assist you in finding the correctly phrased greetings to start your friend’s fantastic birthday festivities! A simple birthday message text may work as their birthday greeting for some folks. happy birthday wishes, have a wonderful weekend, cute things to say to your girlfriend, national son day quote, good morning love messages, happy saturday quote, good night my love, daughter birthday wishes quotes and skeleton puns
ReplyDeletetül perde modelleri
ReplyDeleteNumara onay
turkcell mobil ödeme bozdurma
nft nasil alınır
Ankara evden eve nakliyat
trafik sigortası
dedektor
SİTE KURMA
aşk kitapları
Smm panel
ReplyDeleteSmm panel
iş ilanları
instagram takipçi satın al
hirdavatciburada.com
beyazesyateknikservisi.com.tr
servis
jeton hile
tuzla arçelik klima servisi
ReplyDeleteçekmeköy samsung klima servisi
ataşehir samsung klima servisi
kartal mitsubishi klima servisi
ümraniye mitsubishi klima servisi
beykoz vestel klima servisi
üsküdar vestel klima servisi
çekmeköy alarko carrier klima servisi
çekmeköy daikin klima servisi
Thanks for shearing information. Angular Classes in Pune
ReplyDeleteThis was such an insightful read! Looking forward to reading more of your content!
ReplyDelete