What is SOA?
SOA (Service-Oriented Architecture) is an IT architecture strategy for business solution (and infrastructure solution) delivery based on the concept of service-orientation. It is a set of components which can be invoked, and whose interface descriptions can be published and discovered. It aims at building systems that are extensible, flexible and fit with legacy systems. It promotes the re-use of basic components called services.
Mention the SOA Principles?
These 8 principles are underlying to any good architecture that utilizes SOA design to build their products and services:
Standardized service contract: Services adhere to a communications agreement, as defined collectively by one or more service-description documents.
Service loose coupling: Services maintain a relationship that minimizes dependencies and only requires that they maintain an awareness of each other.
Service abstraction: Beyond descriptions in the service contract, services hide logic from the outside world.
Service re usability: Logic is divided into services with the intention of promoting reuse.
Service autonomy: Services have control over the logic they encapsulate.
Service statelessness: Services minimize resource consumption by deferring the management of state information when necessary
Service dis cover ability: Services are supplemented with communicative Meta data by which they can be effectively discovered and interpreted.
Service composability: Services are effective composition participants, regardless of the size and complexity of the composition.
What are the main benefits of SOA?
SOA helps create greater alignment between IT and line of business while generating more flexibility – IT flexibility to support greater business flexibility. Your business processes are changing faster and faster and global competition requires the flexibility that SOA can provide.
SOA can help you get better reuse out of your existing IT investments as well as the new services you’re developing today. SOA makes integration of your IT investments easier by making use of well-defined interfaces between services. SOA also provides an architectural model for integrating business partners’, customers’ and suppliers’ services into an enterprise’s business processes. This reduces cost and improves customer satisfaction.
Explain oracle 10g and 11g and 12c?
8i: Java, Materialized Views, RMAN, Splitting between Standard and Enterprise editions.
9i: RAC, Streams, Flashback, Data Guard, Oracle Managed Files
10g: Grid Computing, ASM, AWR/ADDM/ASH, ASMM, Data Pump, VPD
11g: Total Recall, RAT, Parallel Execute, Active Data Guard, ASO/TDE, Data Vault, Audit Vault, Invisible Indexes, Data Redaction, Data Masking
12c: Multi-Tenant, In-Memory, Edition-based Redefinition, Adaptive Optimizer
Oracle Database 10g
There are several hundred feature differences between the 9i and 10g versions, but the following offers and worth summary of the new features implemented on the Oracle 10g database version:
- SQL optimizer internals have been majorly altered
- Oracle grid computing
- RAC in Oracle 10g enhanced to enable dynamic scalability on server blades
- Oracle Enterprise Manager (OEM) in 10g completely redesigned
- The OEM performance pack now includes ASH and AWR tables, same as the Diagnostic Pack
- The imp utility on the Data Pump has been replaced with impdp
- SQLTuning Advisor
- Automatic Database Diagnostic Monitor (ADDM)
- SQLAccess Advisor
- The Stripe and Mirror Everywhere Standard (SAME) introduced Automatic Storage Management (ASM)
- Automatic Workload Repository introduced to replace the STATSPACK
- Automated Session History (ASH)able to materialize the Oracle Wait Interface in time
- Scheduling package dbms_job is replaced by the dbms_scheduler package
- Introduction of the OEM Partition Manager
- Provision for support of Multiple Temporary Tablespaces to decrease sorting stress in TEMP
- Introduction of backup compression by RMAN
Oracle Database 11g
One outstanding enhancement in Oracle 11g is its heavy investment towards self-tuning capabilities. The design implemented this through creation of automated storage, automated memory management and creation of intelligent tuning advisors. The loop ended through the provision of intelligent automation tools, resulting in a self-healing database. The most important enhancement in this is the SQL tuning advisor that is capable of tuning SQL statements automatically.
A list of enhancements in Oracle 11g is as outlined below:
- Automatic memory tuning
- Fully automated SQL Tuning through the SQL Performance Analyzer
- Automated load balancing in storage
- Automated Diagnostic Repository
- Enhancement of the Information Lifecycle Management (ILM) – 11g codified the approach to ILM
- CBO statistics refresh threshold with table-level control
- Tables interval partitioning
- File group repository
- Load balancing utilities
Oracle 12c:
Better upgrade experience : the process of upgrading is simpler and less prone to risks as much of the process uses Oracle’s automated Upgrade Assistants. A lot of resources on implementation and upgrades can also be available online.
Price differences :Oracle 12c still enjoys the uplift waive for Extended support, meaning that customers paying for the 11g support would also enjoy support for the new 12c improvements and features. An upgrade would therefore make better economic sense.
Awesome support : Oracle 12c has been on the market for over a year, and as with previous generations, comes with better user support than any of the previous versions.
What is the difference between cloud computing and grid computing?
Cloud computing and grid computing are very similar concepts that can be easily confused. Fortunately, there are a few key differences that set the two apart.
Grid computing is a loose network of computers that can be called into service for a large-scale processing task. This network is over the Internet, but only computers that have opted into the grid are called upon. Although distributed geographically, grid computing allows for parallel processing on a massive scale. In short, grid computing is what you want when you have a big processing job to tackle. Search for Extraterrestrial Intelligence (SETI), for example, uses a grid computing scheme to analyze radio frequency data, taking advantage of volunteers’ idle processing power.
Cloud computing, in contrast, usually involves accessing resources on an as-needed basis from clusters of servers. These clusters can handle large processing loads, but they are intended to provide scalable processing to users on a smaller scale. Instead of handling one huge task from a single user, cloud computing handles many smaller requests from multiple users. This allows the users to scale up their computer resources for a temporary processing spike without investing in actual servers, which may be recruited only rarely.
What is the difference between 10g and 11g?
SCA architecture was followed in 11g and not in 10g
In 11g you can put all your project SOA components in composite.xml file and deploy as a single deployment unit to single server, where in 10g you have to deploy each component to the respective server (i.e. ESB to ESB server, BPEL to BPEL Server)
Basically, all the SOA components like BPEL, ESB (Called Mediator in 11g), & OWSM are brought into one place in 11g using SCA composite concept.
The major difference between 10g & 11g would be the app server container. 10g by default runs onOC4J while 11g runs on Web logic Server.
- In 10g every BPEL is a separate project, but in 11g several components can make 1 project as SCA.
- In 10g consoles are separate for BPEL and ESB, but in 11g Enterprise Manager contains all.
- In 10g BAM and business rules are outside SOA Suite, but in 11g they are in SOA Suite.
What is SCA?
Service Component Architecture (SCA) provides a programming model for building applications and systems based on a Service Oriented Architecture. SCA is a model that aims to encompass a wide range of technologies for service components and for the access methods which are used to connect them.
What is Web service?
Web services are application components, which are self-contained and self-describing and provide services based on the open protocol communication (i.e SOAP UI, HTTP over the net).
What is Mediator?
The Mediator is in charge of interconnecting, within an SOA composite application, components that expose different interfaces. In addition, the Mediator can perform duties such as filtering and making routing decisions.
The composite editor in JDeveloper gives you the flexibility to define the interface now, to choose an existing interface, or to define the interface later as you wire components to the Mediator.
Transforming data from one representation to another is, along with routing, one of the key functions of the Mediator.
What is difference between ESB and Mediator?
In 10g for routing, separate router need to keep along with ESB for routing and filter expressions. Where as in 11g mediator contains routing rules and filter expressions itself.
What are the different design patterns in SOA?
- Synchronous
- Asynchronous Fire and Forget
- Asynchronous Delayed Response.
What is SOA Governance? What are Its Functions?
Service-Oriented Architecture (SOA) governance is a concept used for activities related to exercising control over services in an SOA.
Difference between URI and URL?
A URI is an identifier for some resource, but a URL gives you specific information as to obtain that resource. A URI is a URL and as one commenter pointed out, it is now considered incorrect to use URL when describing applications. Generally, if the URL describes both the location and name of a resource, the term to use is URI. Since this is generally the case most of us encounter every day, URI is the correct term.
What is Decision Service?
Oracle SOA Suite provides support for Decision components that support Oracle Business Rules. A Decision component is a mechanism for publishing rules and rule sets as a reusable service that can be invoked from multiple business processes. These rules can be changed without redeploying the code.
Why we use BPEL and OSB?
OSB is the light-weight service bus wherever there is not much business logic involves and there is need to just get the message routed between the systems OSB is used whereas when there is more business logic involves in the process, then BPEL will be used.
What is MDS?
MDS –Metadata Store WSDl and Schemas to be used in the process can be published to the MDS and get it used in the code by referring the artifacts from the MDS
Advantages:
- JAR (Deployment unit) size will be reduced.
- Duplication of the artifacts can be avoided between the services.
What is the difference between concrete and abstract WSDL?
Concrete: Besides the information about how to communicate to the web service, it the information on where the service exists. It has Bindings (Protocol the message should be sent) and Services (has endpoint for each bindings).
Abstract: It has information about how to communicate to the web service like types (Schema), Message (input and output messages service accepts), Operations (operation that can be performed on this service) and port Type.
What is HA File and FTP Adapters?
In the clustered environment, File and FTP adapters should be used as HA (High-Availability)
Inbound: It is controlled by Control Files and avoids the race between the manages servers in reading the files where the reference of the files read by the managed servers will be maintained in the control directory.
Outbound: It is controlled by DB Mutex table exist in the SOA dehydration store and this avoids duplicated been written to the same file when all the managed servers in the clusters process the same messages.
What is DB-Based MDS Repository?
Database-based repositories are used in production environments where robustness is needed. These repositories are created using the Repository Creation Utility (RCU) application from Oracle. This utility helps with the creation of a new database schema with its corresponding tables and objects. Repositories can later be registered or deregistered via the Oracle Enterprise Manager Fusion Middleware Control console.
How Can We Embed or Use A Java Code in BPEL?
Using JAVA embedding activity in BPEL, Java code can be embedded in BPEL and can be used.
How does pick activity differ from a receive activity?
Pick activity can act as a multiple receive activity in some business scenarios. If we have
two inbound operations and both can trigger the bpel process then we will go with pick activity as we can’t have two receive activity with create Instance box checked.
How can we make a partner link dynamic?
If we have to send the request to different service which has the same wsdl then dynamic partner link will be used and using addressing schema we can set the endpoint dynamic to send the request to the desired service.
What is a XA data source? How it differs from a non-XA data source?
An XA transaction involves a coordinating transaction manager, with one or more databases (or other resources, like JMS) all involved in a single global transaction. Non-XA transactions have no transaction coordinator, and a single resource is doing all its transaction work itself (this is sometimes called local transactions).
What is trigger file in File adapter?
When we choose “Trigger File” checkbox, file adapter will not poll/read the file/files from specified directory unless it sees trigger file in trigger file directory. Once trigger files is there in the trigger file directory, file adapter will start polling the files.
What is Dynamic Routing in Mediator?
A dynamic routing rule lets you externalize the routing logic to an Oracle Rules Dictionary, which in turn enables dynamic modification of the routing logic in a routing rule. When you choose to create dynamic routing rule then it creates a new business rule service component that is wired to the Oracle Mediator service component within the SOA composite of the Oracle Mediator service component. The business rule service component includes a rule dictionary. The rule dictionary is a metadata container for the rule engine artifacts, such as fact types, rulesets, rules, decision tables and so on.
What are dspMaxThread and recieverThread properties? Why are they important?
Receiver Threads property specifies the maximum number of MDBs that process Async across all domains. Whereas the dspMaxThread are the maximum number of MDBs that process Async and threads that operate across a domain. So, we need to ensure that the dspMaxThread value is not greater than Receiver Threads.
Is it possible to use MS SQL Server as dehydration store with SOA Suite? If yes how?
Yes, it is possible. To automatically maintain long-running asynchronous processes and their current state information in a database while they wait for asynchronous callbacks, you use a database as a dehydration store. Storing the process in a database preserves the process and prevents any loss of state or reliability if a system shuts down or a network problem occurs. This feature increases both BPEL process reliability and scalability. You can also use it to support clustering and failover.
What are DVM's and how are they helpful in SOA?
DVM-Domain Value Map is static mappings between a source and target system which can be used in transformations. The value can be changed via SOA composer.
What is the difference between XREF and DVM?
XREF- It is dynamic since the values to the XREF can be populated dynamically and it is stored in XREF_DATA table in SOA Dehydration store.
DVM- Domain Value Map is static mappings between a source and target system which can be used in transformations.
What is OSB?
An ESB is an architectural pattern, not a software product. Different software products can form an ESB. In some cases, companies use multiple products in different areas, leveraging specific functionality to meet their unique requirements. These different products can be federated together as the realization of the ESB pattern.
What is BPEL?
BPEL is used to standardize enterprise application integration as well as to extend the integration to previously isolated systems. Between enterprises, BPEL enables easier and more effective integration with business partners. BPEL stimulates enterprises to further define their business processes, which in turn leads to business process optimization, reengineering, and the selection of the most appropriate processes, thus further optimizing the organization. Definitions of business processes described in BPEL do not affect existing systems, thereby stimulating upgrades. BPEL is the key technology in environments where functionalities are already or will be exposed via Web services. With increases in the use of Web services, the importance of BPEL will increase as well.
What is orchestration? What does it mean to build composite applications? Why would anyone want to?
Existing systems are not going away. Yet enterprises need to build new applications that can leverage the functionality encapsulated in those existing systems. The notion of a composite application is based around the idea of building new applications by wiring together existing building blocks. Orchestration plays an important role in this picture because it is the glue that coordinates the execution of each discrete service. A good orchestration server needs to be reliable, scalable and render the BPEL process logic with very high fidelity.
What is Schematron Validation?
Schematron is an XML schema language, and it can be used to validate XML contents in an XML payload.
What is a flow activity? What is a flowN activity and how does it leverage the flow activity?
Flow activity is used, when parallel execution of the flow is needed and to use this property “non-blocking invoke should be set as true “at the partner link level and no. of execution of parallel flow is defined and static. Where as in Flown the no. of execution of parallel flow is not static and it is determined during run time.
What are two configuration settings for auditing?
Audit Level:
- Off – absolutely no logging performed whatsoever; may result in a slight performance boost for processing instances.
- Minimal – all events are logged; however, no audit details are logged.
- Production – all events are logged. The audit details for assign activities are not logged; the details for all other nodes are logged.
- Development – all events are logged; all audit details for all activities are logged.
AuditDetailThreshold:
The maximum size (in bytes) an audit trail details string can be before it is stored separately from the audit trail. If a details string is larger than the threshold it will not be immediately loaded when the audit trail is initially retrieved; a link will be displayed with the size of the details string. Typically, the details string will contain the contents of a BPEL variable. In cases where the variable is very large performance may be severely impacted by logging it to the audit trail. The default value is 50 kilobytes.
How can we improve the performance of an XSL file?
By avoiding use of various if statements and using choose and by using for-each group in place of for-each.
What is XML Schema?
An XML Schema describes the structure of an XML document.
Difference between Include and Import in context to XML schema?
The fundamental difference between include and import is that you must use import to refer to declarations or definitions that are in a different target namespace and you must use include to refer to declarations or definitions that are (or will be) in the same target namespace.
What is target Namespace’s function?
<schemaxmlns=”http://www.w3.org/2001/SchemaXML targetNamespace=”http://www.example.com/name” xmlns:target=”http://www.example.com/name”>
The targetNamespace declares a namespace for other xml and xsd documents to refer to this schema. The target prefix in this case refers to the same namespace and you would use it within this schema definition to reference other elements, attributes, types, etc. also defined in this same schema definition.
What is WSDL?
WSDL stands for Web Services Description Language
WSDL is a document written in XML. The document describes a Web service. It specifies the location of the service and the operations (or methods) the service exposes.
What is SOAP?
SOAP is a simple XML-based protocol to let applications exchange information over HTTP.
Or more simply: SOAP is a protocol for accessing a Web Service.
How to Deploy an XSl File without Deployment of Bpel Process?
We will directly deploy the XSLT, Using ANT script by file replacement in TMP folder.
By creating a folder in BPEL PM Installation folder and specifying its location in our BPEL code with http call and replacing our xslt to that location.
When you will go for Sync process?
Whenever the services return the response in few seconds, it is recommended to go for synchronous BPEL process if not the BPEL process should be Asynchronous the reason is calling application can’t proceed further in case of synchronous process.
What is a nonBlockingAll property?
Non- blocking invoke is used when Parallel flow needs to be executed where new thread will be created for each invoke a activity and which will execute simultaneously.