Jun 8, 2017

ESB

The central concept is that the ESB provides the middleware and interfaces that allow businesses to connect their applications without writing code.

This could include mediation to reconcile incompatible protocols, data, and interaction .

An ESB is a any technology that you can insert into an SOA (Service-Oriented Architecture), allowing you to connect disparate systems together.

An ESB is basically a MOM (message oriented middleware) with an added data model and structure definition management. You have a common data definition for all applications and adapters on that bus (could be XML with a shared XSD). An Enterprise Service Bus (ESB) is fundamentally an architecture. It is a set of rules and principles for integrating numerous applications together over a bus-like infrastructure.•

The "bus" concept decouples applications from each other. This is usually acheived using a messaging server like JMS or AMQP.

• The data that travels on the bus is a canonical format and is almost always XML.
• There is an "adapter" between the application and the bus that marshals data between the two parties.

ESB are similar to other untyped/typed choices:

•REST vs. SOAP
•unvalidated XML vs. XML validated with an XSD
•Groovy vs. Java
•interpreted language vs. compiled language

An ESB is used for service virtualization, typically manage a much larger set of services, and is positioned inside the Intranet.A general rule of thumb to note is that when services are exposed to the outside world, an API gateway is a tool to be considered. It is positioned outside of the Intranet

Jan 3, 2017

Oracle ADF - Part1

ADF framework knowledge

Everybody on the team will need basic knowledge of the ADF framework. This includes project managers, testers, graphics designers, and usability experts too. Having a common understanding of what the framework can and cannot do will make communication within the team much easier.

The programmers will, of course, need a deeper understanding of the framework, but not everybody has to be an expert. An experienced programmer should just need a basic one-week training class and a couple of weeks work under experienced supervision in order to be productive with ADF.

Finally, you need at least one person with a deep understanding of how ADF works. This person will define project standards and provide guidelines for how to use ADF effectively. The same functionality can be implemented in many ways in ADF. It is the task of the ADF expert to ensure that you use the framework as much as possible and do not code things that ADF can handle declaratively.

XML

The ADF framework is meta-data driven. This means that most of the application is not actually programmed in a programming language like Java, but is instead defined through JDeveloper. These definitions are stored in the form of XML files. You will notice that, for example, business components have a Source tab, allowing you to see the raw XML file.
You do not have to write XML files to use ADF, but it will be an advantage to know a little bit about XML so you can read the files JDeveloper builds.

The ADF framework is meta-data driven. This means that most of the application is not actually programmed in a programming language like Java, but is instead defined through JDeveloper. These definitions are stored in the form of XML files. You will notice that, for example, business components have a Source tab, allowing you to see the raw XML file.
You do not have to write XML files to use ADF, but it will be an advantage to know a little bit about XML so you can read the files JDeveloper builds.

Web technologies

When your ADF application is running. the end user is interacting with a web page in a browser. This means that your application must use the web technologies the browser understands: HTML. Cascading Style Sheets (CSS), and JavaScript. The ADF framework takes care of most of the details for you. but it is good to have someone on your team that understands these technologies. That person can both help you understand any limitations you might encounter and how to work around them.


Regular expressions

JDeveloper allows you to use regular expressions to define validation rules. Regular expressions are arcane. almost magical constructs that can express complex requirements in very compact form. For example, the following regular expression can be used to validate an e-mail address:
[A-Z0-9. -]+@[A-Z0-9.-]+\.[A-Z](2,4}



Dec 30, 2016

Oracle ADF


Oracle ADF Enterprise Application Development - Made Simple: Successfully


As such from the Oracle Certified Associate, Java SE 7 Programmer I certification exam topics, in my honest opinion ADF developers need to know *all* of the following topics:

  • Java Basics
  • Working with Java Data Types
  • Using Operators and Decision Constructs
  • Creating and Using Arrays
  • Using Loop Constructs
  • Working with Methods and Encapsulation
  • Working with Inheritance
  • Handling Exceptions
I might have a few people argue with me on the list above, particularly inheritance and exceptions. But in my experience ADF developers who don't know about inheritance and in particular type casting, as well as exception handling in general will struggle.  In reality all of the topics above are Java basics taught to first year IT undergraduates, so nobody should be surprised by the list.
When we move to the Java SE 7 Programmer II exam topics, the list is as follows.  You'll note the numbers next to each topic, 1 being mandatory, 2 not mandatory but knowledge in this area will certainly help most projects, and 3 not required.
  • 1- Java Class Design
  • 1- Java Advanced Class Design
  • 1 -Object-Oriented Principles
  • 2 - String Processing
  • 1 - Exceptions
  • 3 - Assertions
  • 2 - Java I/O Fundamentals
  • 2 - Java File I/O
  • 1 - Building Database Applications with JDBC
  • * - Threads
  • * - Concurrency
  • * - Localization
In the #1 list there's no surprises but maybe JDBC. From my own personal experience even though ADF BC & EJB/JPA abstracts away from knowing the language of the database, at customer sites frequently I've had to build solutions that need to interface with legacy database PL/SQL using JDBC. Your site might not have this requirement, but the next site you work at probably will.
The #2 list is more interesting. String processing is useful because without some internal knowledge of the standard Java APIs you can write some poorly performing code . Java I/O is not an uncommon requirement, being able to read/write uploaded/downloaded files to WLS.
 

As for the #3 list, assertions simply don't work in the Java EE world that ADF runs.

Finally the topics marked with stars require special explanation. First localization, often called internationalization really depends on the requirements of your project. For me sitting down in Australia, I've never worked on a system that requires any type of localization support besides some daylight saving calculations. For you, this requirement might be totally the opposite if you sit in Europe, so as a requirement it depends.
 

Then the topics of threading and concurrency. Threading and concurrency are useful topics only because there "be demons in thar" (best said in a pirate voice) for future Java projects. ADF actually isolates programmers from the issues of threading and concurrency. This isolation is risky as it may give ADF programmers a false belief they can code anything Java. You'll quickly find issues of thread safety and collection classes that support concurrency are a prime concern for none-ADF Java solutions.


So do you need to be an expert Java programmer for ADF? The answer is no. But a reasonable level of Java is required. And this can be capped off with the more Java you know, of course this will be beneficial, and not just for your ADF project!



Dev OPS








Aug 12, 2016

Lists the arguments of procedures & functions

In ALL_ARGUMENTS table lists the arguments of the procedures and functions that are accessible to the current user


In DBA_ARGUMENTS table lists the arguments of the procedures and functions that are available in the database.


In USER_ARGUMENTS  table lists the arguments of the procedures and functions that are owned by the current user. This view does not display the OWNER column.


select distinct owner , package_name,object_name,   argument_name, data_type, in_out, data_length,
character_set_name, type_owner, type_name, type_subname,  pls_type, char_length, char_used from all_arguments