Saturday, July 8, 2017

Oracle SOA Suite 11g vs 12c

The reason is why Oracle SOA Suite 12c was developed: to simplify integration by unifying the disparate requirements for the latest integration challenges of mobile, cloud, and IoT into one unified and standards-based integration platform.

Oracle SOA Suite 12c speeds up your integration time-to-market with features like templates, cloud integration adapters, and mobile-ready integration. You will respond to new business requests more quickly thanks to the new seamless integration of Oracle Service Bus into Oracle SOA Suite, a new managed file transfer offering and significantly improved management capabilities. Your total costs for integration should be reduced as a result of many new productivity enhancements including a quick install capability, advanced new business activity monitoring features and more.




And here is the list of differences between the 11g and the 12c versions of Oracle SOA Suite technology stack.


Installation Experience:


  • The development environment is much lighter weight, can be installed very easily (you should be able to start from scratch and have your first composite application running within 30 minutes) and allows very short develop/run cycles (quickly try out any changes to the definition of the composite or the service).
  • Everything is in there now. An in-memory database (uses JavaDB for soainfra schema) and fully functional soa and bpm domain.

Development Experience:


  • The Integrated WebLogic Server in JDeveloper is configured in 12c to also run SOA Suite 12c applications. This means a SCA Composite can be run directly from within the IDE to the integrated server - instead of explicit deployment to a stand alone WebLogic Server with SOA Suite runtime and you can put breakpoints and step through your composite, in real time !!!
  • The IDEs for Service Bus and SCA Composites will be integrated in 12c in JDeveloper.
  • Templates will be available throughout the SOA Suite 12c IDE – allowing blue prints with placeholders for SCA Composites, Pipelines, BPEL processes to be prepared and reused when developing the real artifacts. The new SOA starter templates provide an easy way to package SOA composites, components or fragments of a BPEL process and distribute them to other departments, partners or customers
  • Debugging and refactoring support is available in the 12c IDE, for both Service Bus and SCA Composites.
  • Dependency Explorer: This allows to "visualize" the dependencies between various SOA composites as well as Service Bus projects which typically consist of fair number of artifacts that hang together in ways that are sometimes not so easy to track down. It will leverage all its built in knowledge about potential dependencies and it will visualize these dependencies.
  • Testing: Develop and test without having to go to EM. It is very simple to test the web services (SOAP and REST) exposed by SOA composites from the comfort of your own IDE. Using a simple right mouse click on the composite’s service interface (in the Application Server overview window), we can start the HTTP Analyzer for the service – with the right endpoint set, the WSDL (or WADL) loaded and the request message entry form ready to be filled in.
  • Property inspector window: Before release 12c, editing activities in a BPEL process was done in the wizard that could be activated by double clicking the activity or by selecting edit from the context menu on an activity. Alternatively, a developer could resort to the BPEL process source file to make changes to the definition of activities. In 12c, the property inspector has been extended to also support editing the properties of BPEL activities. When the property inspector window is available, it will synchronize with the currently selected activity in the BPEL editor.
  • Component and Property palette undergone a metamorphosis. In the Component palette the Components and adapters are now logically separated and it is possible to display the items in a list view.
  • The JDeveloper IDE acknowledges Folders as a construct that the developer needs control over. Until now, folders were visible in JDeveloper because they existed on the file system. They could not be manipulated from within the IDE. Now, in the 12c release, they can be created, from the New Gallery.
  • Enterprise Scheduler(ESS) SOA 12c comes with its own OOTB scheduler. It is integrated in EM and 
    • It provides the ability to schedule SOA components or services and manages the complete life cycle of a job definition: development, distribution, scheduling, and monitoring
    • Polling adapters can now be restricted to certain times of the day, for example outside of business hours, to avoid resource overload. Users can associate an inbound adapter for a SOA Service with ESS schedules to customize timings for processing of messages.
    • It is also used for bulk error recovery
  • Fault Policy Editor
    • Design and Edit Fault Policies.
    • Besides the already existed functionality a lot of new features are added.
      • Graphical editor for creating Fault policies, Alerts, Actions & Property Sets
      • New Default actions for invoking a WS and enqueue data (JMS).
      • Alerts can be defined to send fault to JMS, Email or Log file.
      • Alerts can be assigned to actions if type of Alert is desired to be triggered.
      • Fault Policies can be coupled, using the Composite Binding dialog, to different levels:
        • composite 
        • component 
        • reference binding and service binding
  • New Database Connection Types
    • SOA Suite 12c adds two new Database connection types when creating Database connections; JavaDB and JDE World. JavaDB (Derby) is used to run SOA Suite repository on that is used for the integrated server. With the JDE World connection you have easy access to the data in the JD Edwards database.

  • Continuous Integration
    • Continuous Integration brings agility to the systems development lifecycle (SDLC) by completing packaging, testing and deployment of every change to the code.
    • Oracle SOA Suite 12c provides a Maven plugin 
      • that allows development teams to use Maven to create, build, package and deploy SOA projects.
      • Through the SOA application and project archetypes, development teams can automate the instantiation of a developer's working environment.
      • Through the Maven plugin goals, a Continuous Integration server such as Hudson can be used to manage SOA projects through the complete lifecycle
  • File Based MDS: 
    • In addition to the existing run-time Meta Data Services Repository, Oracle SOA Suite 12c adds a file-based SOA Design-Time MDS Repository for use during design time. The repository is automatically created when you create a SOA composite application and will typically point to the version control system location.

BPEL:


  • An in-line sub process has been introduced. 
    • An in-line sub process can best be thought of as a callable scope. It is a scope that is not part of the normal process flow, but rather a unit of encapsulated logic that can be called zero, one or multiple times from anywhere within the BPEL process – even recursively from within itself. It is in effect very similar to a private member function in a Java Class or a procedure in the body of a PL/SQL package.
  • A stand-alone Sub Process has been introduced. 
    • These are defined in a separate file (with extension .sbpel) and appear as components in their own right in the composite overview. They can be called from multiple other BPEL components (but only from BPEL components)
  • Encrypt/Decrypt Personally-Identifiable Information (PII): It assists in Protecting sensitive data from appearing in the Admin consoles in clear text. 
    • For example a Social Security Number or Credit card Number. Specific Fields in a message can be encrypted when entering the SOA composite application in the service binding component, and decrypted while exiting the application in the reference binding component. It is available for services and adapters in both SOA (SCA Composite) and Service Bus. The PII policy is attached to the SCA Composite. The credentials/encryption to use is configured on WLS and is stored using the Credential Store framework (CSF).
  • Updated XSLT mapper:
    • Better support for complex stylesheets
    • You can see the XSLT execution sequence using Execution View
      • Execution View shows the order of execution of templates (both named and matched) as they would be executed by the processor.
      • You can see the overall flow of a complex XSLT process and provides a means to troubleshoot problems in template creation before executing the XSLT.
      • In addition, the user can use the execution view to navigate to any section of the stylesheet by clicking on the desired node in the execution view dialog
    • The XSLT View provides a graphical view of all XSLT statements that can highlight context nodes for the selected template rule allow the immediate error detection when creating multiple templates
  • New XQuery support (including own mapper): 
    • BPEL has a dedicated activity to use XQuery in your BPEL code for transformations. The XQuery mapper has support for XPath 2.0 and user defined functions. The mapper is really user friendly and it’s made consistent with the XSLT mapper interface. The mapper also has an integrated Test framework and is build for reuse in both SOA & Service Bus
  • Use nXSD anywhere: 
    • nXSD translation is a first class citizen within a BPEL process, Service Bus and Mediator. Now messages can be translated anywhere within the integration flow, not only on the edges.
  • Sensors can be defined at runtime: 
    • In SOA Suite 11g sensors had to be defined at design time. In the SOA Suite 12c it also will be possible to define or change them at runtime: Design Time at Run Time (DT@RT). This functionality is added to the existing ‘SOA Composer’ application, which is already used to change other runtime metrics like the Rule Engine and Domain Values Maps (DVMs).

Adapters:


  • SOA Suite 12c will have an adapter for Coherence - allowing information to be put on or read from a Coherence grid – doing with the in memory Coherence grid what the database adapter does with persistent data in a relational datatabase. This JCA adapter makes it easy for a Service Bus business service or a SOA composite application to interact with a Coherence memory grid. Fully declaratively and with very little trouble, data can be put on a Coherence grid (aka cache) and read from that cache. The cache is accessed like a big map: using a key, an object is saved to and retrieved from the cache. The cache is accessible across service executions and process instances, as well as across cluster nodes.
  • Cloud adapter: Oracle SOA Suite 12c simplifies cloud integration. The recently released Oracle Cloud Adapters simplify the integration of cloud applications with your existing infrastructure to allow, for example, your field sales teams to have real-time access to all of your on-premise applications. 
    • Adapters to connect to SalesForce has been provided. More are in pipeline like for RightNow (Oracle Service Cloud), Oracle Sales Cloud, Eloqua (Oracle Marketing Cloud) and Big Machines (Oracle CPQ Cloud). 
    • An SDK is also being provided to create custom integrations into the cloud. 
    • Simple to use. 
      • The adapters have the usual look and feel of Oracle adapters. 
      • The cloud adapter configuration wizard engages users with an extremely simplified view of the business object catalog from the SaaS application from where they could browse and select one or more objects of interest for executing CRUD style interactions.
  • A REST binding has been introduced within JDeveloper to simplify mobile enablement by exposing traditional SOAP services, Enterprise Java Beans (EJBs), JCA adapters connecting backend applications or just about any other underlying implementation through REST/JSON. The REST binding is available for SOA composites and Oracle Service Bus services and allows the configuration of REST interactions as exposed services or proxy services. It also allows the invocation of externally available REST services.
  • LDAP adapter: The LDAP adapters has support for inbound and outbound integration. With this adapter you can access you LDAP directory i.g. check if a certain user has the required privileges to execute the called operation. You can perform CRUD operations on target directory servers.
  • UMS Adapter: 
    • The UMS adapter already exists in 11g, but in the 12c release of SOA Suite this adapter has gotten a major update. In 11g the UMS adapter only supports Email, but in 12c it also support SMS and IM for inbound and outbound integration. Besides that the adapter now has a new outbound operation type to get the status of a send message. 
    • For SMS (SMPP) and IM (XMPP) the configuration is done through the driver configuration pages in the EM. There you specify the gateways that are used when sending/receiving messages.  The UMS adapter in JDeveloper has two new notification types to support the new drivers; SMS and IM. When choosing SMS instead of composing an email you enter the from and to telephone# and when choosing IM you enter the jammer account to send the message to.
  • MFT Adapter: 
    • New Technology Adapter: MFTFor integrating Managed File Transfer (MFT) with SOA Suite there is a MFT adapter available and can be used for inbound and outbound transactions. With the inbound operation a SCA Composite can receive files or file references from MFT. The MFT adapter uses an own WSDL that can also be used for other technologies i.g. Java. With the outbound operation you can send files to a MFT server (Web service endpoint of a MFT source) to be processed further.
  • MQ Adapter to integrate with IBM WebSphere MQ
  • MSMQ Adapter to integrate with Microsoft Message Queuing: 
    • Microsoft Message Queueing (MSMQ) is a message infrastructure and a development platform for creating distributed, loosely-coupled messaging applications for the Microsoft Windows operating system. Applications that use MSMQ create/locate a queue, connect to the queue, navigate the queue, send/receive messages from a queue and use the MSMQ queue properties to define the behavior of the queue where applicable and needed.
  • Oracle Adapter for SAP R/3
    • This provides native bidirectional integration with SAP R/3. It supports invocation of BAPI/RFC and IDOCs to send and receive data from the SAP R/3 application. The Adapter is natively integrated into JDeveloper and communicates with the SAP Business Object Repository to provide a graphical browser of the objects in SAP for the user to discover, search and select for the integration. In addition to browsing the objects in the repository, the adapter design-time allows searching for the objects by name or wild card expressions
  • The Web Service Adapter is renamed to SOAP Adapter

OSB:


  • The IDEs for Service Bus and SCA Composites will be integrated in 12c in JDeveloper. For Service Bus development, this means that no longer OEPE (Eclipse) is used, In fact the development of Service Bus services looks very much like the development of SCA Composites – even with a visual overview of an SB project with its Proxy services, its pipelines and its business services – very similar to an SCA Composite with its Services, Components and References.
  • For Service Bus 12c, the pipeline is a first class object – along with Proxy, Split Join and Business Service. Multiple proxy services can share a pipeline, and one pipeline can call another one.
  • Templates: Just like SOA Suite’s SCA Composites the SB also supports the use of templates. But it works a little different. Templates are Pipeline-based, this means that you can select a template when creating a new Pipeline. There are two types of templates; Unlinked, which is a copy of the template, and Linked, Pipeline stays connected to template. In the template you can use Placeholders so permit changes to that part of the Pipeline. If the Pipeline is linked to a template and the template is changed the linked Pipeline will inherent these changes. You create a template pipeline, instead of a normal Pipeline and place it in a centralized project or in the MDS for re-use.
  • Splitting Proxy from Pipeline: Because a SB project is more like a SCA Composite (same overview) the Proxy is split from the Pipeline. This means that the Proxy and the Pipeline are two individual things. With this concept multiple Proxies can be wired to one Pipeline.
  • MDS support for importing shared resources (limited): Service Bus has now Design-Time support for MDS (MetaData Services). You can select resources from the MDS that you want to import into your SB project. Service Bus can’t connect to a Remote MDS on runtime. This choice is made, because SB can be installed separate from SOA and SB doesn’t have there own DB repository for saving MDS artifacts.
  • Dynamic Validation Activity: SB 12c updates the Validation Activity. It is now possible to Dynamically validate a variable. Using Expressions you should return a fully qualified type or element reference (i.g. {http://www.example.com}inventoryRequest). Besides the Dynamic validation you also have the option to save the validation result to a variable or to raise an error (behavior in 11g).
  • Disable Activities: In SB 12c it is possible to disable activities. This can be handy if you want to skip activities, but do not want to remove them. Every activity can be disabled in Design-Time, but also on Run-Time using the Service Bus composer.
  • Test expressions on Design-Time: It is now possibile to test expression on Design-Time. In the Expression Builder you can click on the Test Expression icon to test the expression. JDeveloper will deploy a small artifact to the Design-Time environment of SB and start a small browser window where you can test the expression.
  • SB Debugger: Just like SOA (SCA Composite) Service Bus has a debugger. It works the same as the SOA debugger.
  • Enterprise Manager instead of SBConsole: The Service Bus console has found a new home with the switch to JDeveloper. Most functionality is moved to the Enterprise manager.
  • Using Domain Value Map (DVM) in Service Bus projects
  • For mobile integration, you can expose a Pipeline as a REST service. When doing it creates a REST binding just like in a SCA Composite.
  • Mediator-like re-sequencer now available in OSB: Business transactions often span multiple technical transactions and require groups of messages to be processed in exactly the right order. Sometimes, these messages already arrive in the correct order and need to be prevented from getting out of order, or they arrive in random order and need to be re-sequenced. The re-sequencer in Oracle Service Bus orders messages based on sequential or chronological information, and then sends the messages to the target services in an orderly manner. The sequencing is performed based on the sequencing strategy selected

Mediator:


  • Translate from Native action: At the level of the Java callout an extra action Translate from Native is added. With this action you can transfrom a CSV/JSON/String element of the request to XML using a NXSD transformation. The transformed output can then be used in the routing rules of the Mediator. This action can be done on operation level, but also on a specific routing rule for that operation.
  • Override Using action: With this action you can override routing rule options using a DVM or Business Rules. Based on a element value of the request you can change the routing rule option dynamically. With the key value you have the possibility to override the XSLT transformation file, Filter expression, Execution Type, Syntax Validation (XSD), Semantic Validation (Schematron) file instead of creating a bunch of static routing rule.
  • New graphical editor for Assign action: The graphical editor for the Assign action is the same as BPEL uses. You can create multiple copy rules by using drag and drop functionality.

B2B:


  • A new facility in SOA Suite 12c will be Managed File Transfer that provides an implementation of the claim check pattern to handle large files. MFT brings an internal (S)FTP server to the SOA Suite platform. Files can be uploaded to this server and automated operations – such as decrypt, decompress and start an SCA Composite passing it the meta-data and a reference for the file – can be configured. This allows customers to load data securely into Oracle Cloud applications as well as third-party cloud or partner applications.
  • Streaming support for large payloads
  • For enhanced management and monitoring B2B is also integrated with the SOA Error Hospital. It is very simple to track messages end to end by adding direct links to Enterprise Manager Fusion Middleware Control from B2B Reports and vice versa
  • Support for Local Policy Attachment for Web Services security configuration have also been added

Business Rules:


  • The use of business phrases in 12c will allow the definition of conditions and expressions labeled with meaningful names that can subsequently be used and reused to compose rule conditions and actions.
  • Enhanced SOA Composer for Business Rules.
  • Rule editing has been greatly improved
  • One can also export to Excel and edit the rules there

Oracle Event Processing:


  • Oracle Event Processing, part of Oracle SOA Suite, can handle up to a million messages per second at extremely low latencies when running on Oracle engineered systems(1), making it the ideal solution to perform real-time filtering, geo-location, and pattern matching on the massive streams of data generated by IoT "smart" devices.
  • Just like SB, OEP leaves it previous IDE Eclipse behind and is now fully integrated in JDeveloper.
  • New to Oracle Event Processing 12c is the shared use of the Oracle SOA Suite user interface, providing companies the ability to seamlessly integrate filtered and correlated big data into actionable enterprise processes for corrective action
  • Two new adapters, one for CSV (in-/outbound) and EDN (in-/outbound).
  • Extensions added to support Hadoop and Oracle NoSQL for use as a source just like the TABLE component
  • Extension for invoking/receiving Remote Method Invocation (RMI) calls.

BAM:


  • BAM has been enhanced to enable rapid and flexible assessment of key performance indicators (KPIs) by storing the data in the industry standard star schema format.
  • Multi-browser support including Mobile support, so your dashboard will look and act the same on different devices and browsers.
  • In the near future BAM will get a native App (IOS and Android).
  • BAM implements a more advanced Security model using OPSS (Oracle Platform Security Services) to secure the data it collects.
  • BAM now support a hybrid integration of CQL and SQL, these both query languages can be used together to collect data from different sources.
  • It uses Coherence for report and metadata cache.
  • It has better integration with SOA Suite and BPM Suite because both use the same Uniform Star Schema and can export the data during the execution of processes to BI to allow continuous monitoring.
  • BAM now support a Active-Active High Availability modes so can run on a cluster.
  • Continuous monitoring can be done in three ways, Real Time, One Time and Scheduled.
  • It can also correlates Business Events that are streamed using OEP.
  • BAM supports a side-by-side analysis between historical BI data ans operation data.
  • There is even a special BAM dashboard that can be embedded into WebCenter Pages.
  • The new dashboards comes more richer out-of-the-box and there is a more extensive catalog with Metrics i.g. SOA/BPM process performance and Human Workflow / Task performance.
  • The new dashboards have updated geomap, tree map, watch list, shatter chart and bubble chart components

Monitoring Experience:


  • SOA-Infra Dashboard:
    • SOA Error Hospital - used to aggregate flow instances that have generated faults and be able to perform actions on instances with common faults collectively. The aggregations can be based on various criteria based on fault types, names or composite level aggregations
    • In the SOA-Infra dashboard (recoverable) faults are visual using a chart
    • The flow instances tab shows faults that can be recovered, click on Error Hospital to recover them
    • In Error Hospital tab faults can be recovered, with option to Bulk Recover
    • During the recover attempt the number decreases
    • Recovered Faults are shown in Green
    • On the SOA-Infra Dashboard page you can search for instances and create/save searches.
    • In the past, retrieval of large amounts of data has caused performance problems. In order to improve this, searches have been enhanced to allow for finer grained queries, including composite sensor values, to track specific business cases. Searches can also be saved and bookmarked for quicker access.
    • Deployed Composites are show with status and can easily be started and stopped:
    • Composite Sensor values are shown directly in the EM dashboard when you click on a instance. You can also search on these Composite Sensors
    • Fault Notification Alerts: While dashboards provide an overview of the system and application health, administrators need to be alerted automatically when something goes wrong in the system. Fault alerts can be routed to communication channels such as email, SMS and IM, while at the same time being posted to the dashboards
  • SOA Composite Dashboard:
    • Composite Dashboard shows only components and services
    • The Composite definition can be visually displayed. This is the image of the composite as we see in JDev.
    • By default no flow instances are show to give page a much needed performance boost
    • When selecting a flow instance more details are show about faults
    • Easy to see instance sensor values
    • Easy to see Composite dependencies
    • The instance flow trace shows adapters in gray and SB integration
    • Diagnosability reports for all adapter binding components for SOA applications. These reports provide real-time visibility into availability and message exchange statistics with the Application or endpoint. The three new report types are Configuration Reports, Monitoring Reports and Snapshot Reports.

Performance & Optimization:


  • Modularity:
    • The runtime and footprint of the product have been optimized at every level (memory, disk, database) to support mission critical enterprise-wide deployments and web-scale performance, further enabling customers to process increasingly massive workloads. 12c is much lighter and faster then 11g. In 11g the installation and start up times were high and it has a high memory foorprint. SOA Suite 12c changes the game with faster start up times and optimized memory usage. The main reason for this is that 12c is build in a modular way and it uses lazy loading of components.
    • Not all SOA components may be used/needed by a customer with this in mind 12c is build in a modular way. First of all 12c has improved start up times and memory footprint with modularity profiles enabling only required components. By default the SOA_FOUNDATION profile is configured after new installation. This can then be altered in EM.
    • The profiles listed below are arranged in decreasing order of (memory) footprint
      • SOA CLASSIC ~ SOA Foundation with B2B + BPM Modules
      • SOA FOUNDATION WITH HEALTHCARE ~ SOA Foundation with B2B + Healthcare UI
      • SOA FOUNDATION WITH B2B ~ SOA Foundation Enterprise + B2B
      • SOA FOUNDATION ENTERPRISE ~ SOA Foundation + Full Adapter Set
      • SOA FOUNDATION ~ Orchestration + Mediator + Rules + Partial Adapter set
      • ORCHESTRATION ~ BPEL-Only + HWF + Partial Adapter set
      • BPEL-ONLY ~ BPEL Components + SOA Common Infrastructure + Partial Adapter set
    • The partial Adapter set consist of the FileAdapter, FTPAdapter, DBAdapter, JMSAdapter, AqAdapter, MQSeriesAdapter, OracleAppsAdapter and the UMSAdapter. The full adapter sets add the rest, SocketAdapter, LdapAdapter, CoherenceAdapter, MSMQAdapter, JDEWorldAdapter and the SAP Adapter.

  • Composite Lazy Loading: 
    • 12c introduces a different approach to loading Composites. Lazy loading is a staggered loading of composite artifacts which spreads out bootstrap cost. The composite loading time is itself a fixed number, but this approach delays the loading of some resources (Schemas, WSDL, XSLTs, etc) till it receives its first time request. With this the initial time for server startup is improved and the cost across for individual composites is spread out based on their demand. It reduces overhead from composites which are rarely used and retired composites.
  • Work Managers: 
    • The self tuning threading model is implemented using Work Managers. WLS leverages work managers across SOA Suite, eliminating the need to perform manual configurations to tune for performance. The required resource management and scheduling is delegated to WLS. The Event Delivery Network (EDN) and adapters do not use work managers for all their processing, but have a separate resource model.
  • DB Tuning out-of-the-box: 
    • When running RCU to create the initial DB schemas you can choose between several DB profiles; small, medium and large. When selecting a profile in RCU it enables the appropriate OOTB performance features. The medium/large profiles automatically configure DB partitioning and Global hash indexes. The latter helps with faster querying and helps with EM responsiveness and instance tracking performance. The global hash indexes also avoids full table scans and coupled with auto purge feature which keeps the overheads low and recreating of indexes periodically helps with performance.
  • Purge/Partitioning Improvements: 
    • More efficient dehydration store management (like auto-purging). Purging of instance data is an important part of SOA Suite maintenance. In 12c Auto purge of SOA DB is enabled by default for new installations. Purging of the SOA DB can now be scheduled through the enterprise manager, which uses Oracle DB schedular. There is improved performance due to the new DB schemas which consolidate Audit and Flow instance data and eliminates orphaned instances. 12c supports Interval Partitioning which accelerates purging by targeting tables/instances within a time range.

Additional Features(Introduced in 12.2.1):


  • Patching Running Composite Instances:
    • Composite Instance Patching, which enables you to patch running instances of a composite and recover faulted instances after patching the runtime. You can only include those fixes in the patch that are compatible with Composite Instance Patching. Use the SOA Patch Developer role in Oracle JDeveloper to make the fixes and create the patch.
    • Composite Instance Patching enables you to deliver urgent composite fixes that can be picked up by long running instances. You can make compatible/allowed changes without aborting in-flight instances. If a patched running instance comes across a business process that has been fixed by the patch, say a BPEL transformation, then it picks up the fixes applied to the business process.
  • In-Memory SOA to Improve System Performance:
    • In-memory SOA enables short-running processes to live in memory. The process state gets written to the database only when faulted, or at regular, deferred intervals using a write-behind thread. The BPEL state information is dehydrated and rehydrated to/from the Coherence cache.

  • Debugging the XSLT Map:
    • Debug your XSLT maps using the SOA Debugger. You can add breakpoints at strategic locations in the XSLT map. When debugging, the debugger halts execution at the breakpoints, enabling you to verify the data and output.
  • End-to-End JSON and JavaScript Support:
    • SOA composites can use end-to-end JSON. This means that the REST service can receive the REST request and route it to the BPEL engine without translating it to XML. The BPEL component can use the JavaScript action, and also use JavaScript in conditional and iterative constructs, to work on JSON objects directly. The REST reference can receive the REST message from the BPEL engine and route it to an external REST endpoint without translation.

Monday, May 8, 2017

Linux: MySQL and Tomcat(for J2EE) and Setup

Recently, I configured Tomcat and MySQL on Oracle Linux 7 to fix issues reported in a legacy application developed in JSP & Servlets.

Here are the steps, I followed.

======================================================================

MySQL 5.1.71: 

  • Download following RPM packages for Linux x64 platform
    • MySQL-server-community-5.1.71-1.rhel5.x86_64.rpm
    • MySQL-client-community-5.1.71-1.rhel5.x86_64.rpm
    • MySQL-devel-community-5.1.71-1.rhel5.x86_64.rpm
  • Login as root and check for existing setup of MySQL --> rpm -qa | grep -i mysql
  • If not exists, install MySQL server and client packages as shown below
    • rpm -ivh MySQL-server-community-5.1.71-1.rhel5.x86_64.rpm MySQL-client-community-5.1.71-1.rhel5.x86_64.rpm
  • Install the Header and Libraries , which are part of MySQL-devl package
    • rpm -ivh MySQL-devel-community-5.1.71-1.rhel5.x86_64.rpm

MySQL Configuration:

  • Set password for root user in MySQL DB:
    • /usr/bin/mysqladmin -u root password 'password'
  • Run mysql_secure_installation script (/usr/bin/mysql_secure_installation) that will take care of all the typical security related items. On a high level this does the following items:
    • Change the root password
    • Remove the anonymous user
    • Disallow root login from remote machines
    • Remove the default sample test database        
  • Verify the MySQL setup --> mysql -V
  • Connect to the MySQL database using the root user and make sure the connection is successful.
    • mysql -u root -p
  • Follows the steps below to check status, stop and start MySQL.
    • Check status --> service mysql status
    • Stop DB --> service mysql stop
    • Start DB --> service mysql start
======================================================================

JDK 1.7.0_80:

  • Download archive binary file(jdk-7u80-linux-x64.tar.tz) for Linux x64 platform
  • Go to installation folder --> cd /home/lkakarla/java
  • Uncompress archive file --> tar zxvf jdk-7u80-linux-x64.tar.tz
  • Copy JDK & JRE paths
    • JDK --> /home/lkakarla/java/jdk1.7.0_80/bin
    • JRE  --> /home/lkakarla/java/jdk1.7.0_80/jre/bin
======================================================================

Tomcat 6.0.44:

  • Download archive binary file (apache-tomcat-6.0.44.tar.gz) for Linux x64 platform
  • Go to installation folder --> cd /home/lkakarla/tomcat
  • Uncompress archive file --> tar zxvf apache-tomcat-6.0.44.tar.gz
  • Copy Tomcat home directory path --> /home/lkakarla/tomcat/apache-tomcat-6.0.44

Tomcat Configuration:

  • Open file  /etc/environment as a root user and set CATALINA_HOME variable 
    • CATALINA_HOME=/home/lkakarla/tomcat/apache-tomcat-6.0.44
  • Set JAVA_HOME --> Create a file named setenv.sh in $CATALINA_HOME/bin folder and add below lines.
    • JAVA_HOME=/home/lkakarla/java/jdk1.7.0_80
    • JRE_HOME=/home/lkakarla/java/jdk1.7.0_80/jre
    • CATALINA_PID="$CATALINA_BASE/tomcat.pid"
  • Backup existing tomcat-users.xml file in $CATALINA_HOME/conf folder --> $CATALINA_HOME/conf/tomcat-users.xml. 
  • Edit ‘tomcat-users.xml’ file and following lines at EOF :
    • <user username="tomcat" password="tomcat" roles="tomcat,standard,manager"/>
  • Download and place MySQL JDBC driver(mysql-connector-java-5.1.36-bin.jar) in $CATALINA_HOME/lib folder
  • Configure JDBC -->  $CATALINA_HOME/conf/context.xml. 
    • <Resource name="jdbc/automationDB" auth="Container" type="javax.sql.DataSource"
                         maxActive="100" maxIdle="30" maxWait="10000"
                                        username="root" password="password" driverClassName="com.mysql.jdbc.Driver"
                                                       url="jdbc:mysql://localhost:3306/<databasename>"/>
  • Start Tomcat --> $CATALINA_HOME/bin/startup.sh
  • Tomcat test URL --> http://localhost:8080
  • Tomcat Manager URL --> http://localhost:8080/manager/status  -- tomcat/tomcat

  • Shutdown Tomcat --> $CATALINA_HOME/bin/shutdown.sh
======================================================================

Sunday, May 7, 2017

Virtual Box: Mount Host Shared Folders in Guest

I installed Oracle VM Virtual Box v 5.1.14 on Windows 7 Professional (64 bit) PC and installed Oracle Linux (OEL) 7.2 as a guest OS.

However, I was not able to share folders between host & guest. I received following error in Guest OS, when I clicked on shared folder mount.

Error: "The folder contents could not be displayed. You do not have the permissions necessary to view the contents of sf_temp."

I followed below steps to resolve the issue and mount shared folder in Guest OS.
  • Download and Install Oracle VM Virtual Box Extension Pack
  • Restart Virtual Machine
  • Install Guest Additions. Go to Devices > Insert Guest Additions CD image...
  • Restart Virtual Machine
  • Add the shared folder to the virtual machine using Virtual Box graphical interface. Make sure to select 'Auto-mount' and 'Make Permanent'
  • Restart Virtual Machine
Try to access /media/sf_your_shared_folder_name. If you still don't have access, that means you don't belong to the vboxsf group.
  • Login to the virtual machine using a root account
  • Check vboxsf group exists
          ~$ grep vboxsf /etc/group
          vboxsf:x:983:
  • Check user is not already in vboxsf group
          ~$ id lkakarla
          uid=1000(lkakarla) gid=1000(lkakarla) groups=1000(lkakarla)
  • Add user lkakarla to vboxsf group
          ~$ sudo usermod -a -G vboxsf lkakarla
  • Check again user groups
          ~$ id lkakarla
          uid=1000(lkakarla) gid=1000(lkakarla) groups=1000(lkakarla),983(vboxsf)
  • Restart Virtual Machine and login as lkakarla
  • Shared folder is now accessible in desktop and /media/sf_temp (temp is the name I gave to the share)

Click Here for more info.

Saturday, February 18, 2017

OPSS: syncKeyStores

Applies to Weblogic 12c

The OPSS Keystore Service (specifically in Weblogic 12c) meant to provide a single location for Keystores and Trust stores for all applications running within the Weblogic domain. This provides administrators an easier way to generate, sign, and manage their certificates. Also these actions can be managed/automated through WLST as well. The only pre-requisite for using the OPSS service is that the JRF templates have been applied to your domain.

Recently I came across new command 'syncKeyStores', which allows to synchronize keystores from the OPSS security store to the local repository. This synchronization is a one-way procedure, in which key data is read from the central security store and synchronized in the local file keystore.

Why to Synchronize:

All Oracle Fusion Middleware components keep keys and certificates in a central security store. However, because certain infrastructure components must be started before the security store is available, some components use a local file keystore instance instead.

When to Synchronize the Keystores:

  • If the keystore (or) truststore being updated belongs to WebLogic Server, then call the synchronization command for WebLogic Server.
  • No need synchronize the keystores, if any application accesses their key material from the central OPSS security store directly.

Steps to Synchronize the Keystores:

We can perform this activity in 3 different ways.

Option 1: Reboot Weblogic domain

Option 2: via WLST command line:

Use wlst.sh of the domain and connect to Admin Server and execute below command.

Syntax: syncKeyStores(appStripe='<application_stripe>', keystoreFormat='exported_file_format')

Ex: syncKeyStores(appStripe='system', keystoreFormat='KSS')

This command accesses the 'system' stripe in the central security store and downloads its contents into a file named keystores.xml in 'DOMAIN_HOME/config/fmwconfig' on the local system.

Option 3: via Enterprise Manager:

  • In FMW Control, Go to Weblogic Domain > System MBean Browser. Search for Operation 'syncKeyStores'
  • In the search results, click the 'syncKeyStores' link (which takes two parameters) 
  • For p1, enter 'system'; for p2, enter 'KSS'. 
  • Click 'Invoke' button.



Thursday, February 16, 2017

OHS: Host Header Injection

Recently we identified an issue with one of our application URL's. Issue is that, URL is vulnerable to Host Header Injection i.e. by supplying a malicious host header, its possible to modify the links generated in application or any other components(mail etc).

For example, if your application URL is 'abc.xyz.com', a hacker can alter the HOST parameter in the client request header to 'hack.url.com'.

Fix: To avoid this, add RewriteCond & RewriteRule conditions inside VirtualHost as mentioned below to reject anything that doesn't match the target domain.

httpd.conf:

<VirtualHost *:7004>
    ServerName abc.xyz.com
    ServerAlias abc.xyz.com
    RewriteEngine on
    RewriteOptions inherit
    RewriteCond %{HTTP_HOST} ^abc.xyz.com
    RewriteRule ^(.*)$ - [F,L]
</VirtualHost>

Friday, January 27, 2017

VirtualBox: VERR_INTNET_FLT_IF_NOT_FOUND

Environment:
VirtualBox 5.1.14-112924
Vagrant 1.9.1
Guest OS: Ubuntu 14.04
Host OS  : Windows 7

Today, when I tried to boot up Ubuntu VM via vagrant command line, I faced below mentioned error.

Error:
==> workstation: Booting VM...
There was an error while executing `VBoxManage`, a CLI used by Vagrant
for controlling VirtualBox. The command and stderr is shown below.

Command: ["startvm", "42d481dc-5dc9-4edd-ab81-0575e8c935ff", "--type", "headless"]

Stderr: VBoxManage.exe: error: Failed to open/create the internal network 'HostInterfaceNetworking-VirtualBox Host-Only Ethernet Adapter #2' (VERR_INTNET_FLT_IF_NOT_
FOUND).
VBoxManage.exe: error: Failed to attach the network LUN (VERR_INTNET_FLT_IF_NOT_FOUND)
VBoxManage.exe: error: Details: code E_FAIL (0x80004005), component ConsoleWrap, interface IConsole


Fix:
You need to try out two options

Option 1:
Go to Control Panel --> Network and Sharing Center --> Manage Adapter Settings --> Right click on 'VirtualBox Host-Only Network' and click Properties.

Make sure that item “VirtualBox NDIS6 Bridged Networking Drive” is checked. 

Option 2: 
The NDIS6 driver is default for Windows Vista and later. Reinstall VirtualBox with NDIS5 host network filters drivers during the installation. 

VirtualBox-5.1.14-112924-Win.exe -msiparams NETWORKTYPE=NDIS5