cancel
Showing results for 
Search instead for 
Did you mean: 

ABAP + Plateform Independent

Former Member
0 Kudos

Hello Friends !

I was reading some artical and there was indication that ABAP is plateform independent like JAVA ! ?? TRUE

How ABAP program work?? as java program first convert to bytecodes and run then in JVM, some one pls explain me how the execution of ABAP program works or how ABAP is plateform independent ? would be great if some one point out any useful resource in this account !

Secondly, is there any resource out there which compare the two object oriented language ABAP and JAVA !, Pls identify for me !

Would be nice if experts point out some main Advantages of using ABAP over Java!

Many thanks!

Marek

Accepted Solutions (0)

Answers (3)

Answers (3)

RichHeilman
Developer Advocate
Developer Advocate
0 Kudos

I'm not sure that ABAP is platform independent, but the environment in which it runs is platform independent. Meaning, that WAS 6.40 can run on Linix, OS/400, Windows, etc.

I attended a class at SAP TechEd '04. It was called ABAP Objects for Java Developers. This class put ABAP Objects and Java side by side and explained the simularities as well as the differences. Here is the link.

https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/documents/a1-8-4/abap objects for java developers.abst

Regards,

Rich HEilman

Former Member
0 Kudos

Hi All,

Many thanks for the quick response!

Charles, thanks for searching such document, is it on SDN, I will try to search too

>Brought a little light in this question?

I am actually intrested how ABAP program behaves on different plateform such as its behaviour( execution ) on windows then on Linux, ( as I explained java execution )

,

Rich, thanks for the link, will revert to you after listing, what are u personal comments, to whom u prefer, would like to listen your comments !

Thanks

RichHeilman
Developer Advocate
Developer Advocate
0 Kudos

I think both langauges are equally powerful. Java is a fairly young language and does need to mature a bit, but still a very good language. Keep in mind ABAP is for the "business logic", java is more for the connectivity and frontend side.

Regards,

Rich Heilman

thomas_jung
Developer Advocate
Developer Advocate
0 Kudos

ABAP behaves very similar to Java. There is an ABAP Virtual machine in which the code is ran. This Virtual Machine is the WebAS Kernel.

I have two different system landscapes - one that runs on Oracle/Unix and one on MSSql/Windows. When I write ABAP programs I don't care which environment (or both for that matter) my programs will run on. Nothing for me as a program changes in execution, memory allocation, etc. This is really because you are alwasy running inside the framework of the WebAS.

As long as you stick to SAP's open SQL, you are database independent as well. If you follow the rules for the use of Logical File Names you can even have platform independent code for manipulating OS files.

Former Member
0 Kudos

Hi Rich,

very true, Java is young and more for connectivity and frontend side, but we should not neglet the power which EJB's provides ( they ofcourse encapsulate the business logic ) what corresponding technology we have in ABAP !?

In one artical I came across like

EJB's ~ BAPI

so we have only BAPI's in ABAP world to write business logic and BAPI's are no more then the functions written in ABAP, where is EJB's are more then just written program in java, I mean EJB's has full fledge support of container ( BMP and CMP ) .......... Any comments pls ?

Marek

RichHeilman
Developer Advocate
Developer Advocate
0 Kudos

Yes, BAPIs do "encapsulate" business logic on the ABAP side. I really can't intelligentlly comment further. Anyone?

Regards,

Rich Heilman

Former Member
0 Kudos

Hi Rich ,

Thanks any way for your comments and valuable link to this presentation!

if you know any more links or resources in this regard, would be great if you point out for me !

Thanks once again

Marek

thomas_jung
Developer Advocate
Developer Advocate
0 Kudos

> BAPIs are no more then the functions written in ABAP

That is true, but SAP Function Modules provide the possibility for a whole set of additional functionality (such as tRFC and qRFC - Transactionaly Serialization, Inbound and Outbound Queueing).

In short, the R/3 business application is written in ABAP. R/3 is the world's leading ERP solution. So therefore you can image that ABAP (and its underly framework) has plent of functionality for implementing business logic.

Former Member
0 Kudos

hi Thomas,

thanks for the comments!

>In short, the R/3 business application is written in ABAP. R/3 is the world's leading ERP solution. So >therefore you can image that ABAP (and its underly framework) has plent of functionality for implementing business logic.

SAP R/3 does not only lies in ABAP, ERP is more to do with more customizing, but yes I do believe ABAP is a good programming language for business, and it would be great if you name for me corresponding technology for ABAP as we do have in Java EJB ?

Any more comments would be great:) thanks

thomas_jung
Developer Advocate
Developer Advocate
0 Kudos

I'm not expert on EJB (I did a little googling to try and get a better understading so that I could provide equivalants in ABAP). But here we go as I understand some of the key points of EJB:

First at its core I would say that the RFC mechanisms provide a similar foundation. Beyond basic remoting, the technology provides the ability to have Transaction Management, Serialization, and Queueing (all with a minimal amount of programming).

ABAP by the very nature of the WebAS architecture supports scalablity through the multiple application server model (Message Server, Enqueue Server, Dialog Server).

You of course can write the actual logic running in the RFCs as ABAP OO. This extends your abilities to create persistent and serializable objects.

I see online that with EJB 2.1 you can generate WebServices from EJBs. The same is true of ABAP Function Modules (as of WebAS 620).

I'm sure that I have probably missed some of the finner points of what EJBs are capable of. Actually much of what is compaired here doesn't have to do with programming languages as much as the frameworks they run in. Perhaps the better anaylsis would be to compare the WebAS ABAP vs. J2EE.

RichHeilman
Developer Advocate
Developer Advocate
0 Kudos

Good information in this thread! Isn't a EJB just another java class? Or is it a completly seperated java entity. If it is a java class, what makes it an EJB. Is it just the fact that it gives you an interface for some "business logic"?

Regards,

Rich Heilman

Former Member
0 Kudos

thanks for the comments and your time!

okey u are right, EJB's is not more then providing business logic in very nice way, but the main power of EJB's lies in the functionality which is provided by the container in which it is actually deployed. !

I am doing kind of comparion on things like

JSP ~ BSP

Java ~ ABAP etc

in one of your post u mentioned

"

We build a small business application (that was indicitive of the type of applications we wanted to build long term) in ABAP BSP, Java, and .Net. All the data we accessed resided in R/3. We used RFC, the Java Connector and the .Net Connector to access this data respective to the calling platform. We then measured several things such as the time it took to develop, the amount of research needed in each environment. We also measured scalability and performance using our actualy production hardware (not some massively suped up test machine that no one could actually aford anyway). We then found the solution that best matched the resources (technical and personnel) and requirements we had."

I had also created an application both in BSP and JSP, but cant meaure the things like scalibility, flexibility and etc, would be great and kind of you if you provide a conclusion of your test ! Highly appriciatable!

many thanks

Marek

thomas_jung
Developer Advocate
Developer Advocate
0 Kudos

I can tell you what we found out and how we measured it. Most of our conclusions are not so much a comment on the technologies themeselves. The whole exercise was more about what technology was the best fit for our current knowledge and infrastructure.

Given that my group's past experience was ABAP (and the ABAP WebAS), the outcome and correct fit for us wasn't very suprising (BSP).

We did start by building an application in each (and our infrastructure group setup each environment - ABAP WebAS, SAP J2EE WebAS, and .Net Server and the same hardware). At this point we stopped and recorded each groups' statisfaction with the tool up to this point. Of course this was quite subjective (but really that was what we wanted). We measured research time, comfort supporting, etc. I can tell you that for our group the SAP J2EE was the most unfamiliar and got the lowest marks. A similar situation occured from the programming side - ABAP was most favorable, followed by .Net and finally Java. Most of the concern over Java wasn't so much the programming lanuage, but the unfamiliarity with the J2EE environment, the maturaty of the SAP development tools, and the total lack of an equivalant to the ABAP Change and Transport system.

The next step was an attempt to test the performance of the solution. We have a 3rd Party automated test tool (sorry I don't directly use it - so I don't even remember the name) that we ran against all three solutions. This tool measured number of simultanious users and response time per transaction. I don't have detailed numbers handy, but the following was the overall average. ABAP scaled about 5 times better than .Net. .Net in turn scaled about twice as good as Java. All tests were performed on indentical hardware. We had built separate images for each platform and restored them one at a time for the testing.

I should note once again that the results of this test have less to do with individual architectures and more to do with our team's ability to work with each environment. I'm sure that a team of .Net or Java experts could come in and wip something up that would give our ABAP BSP solution a little more run for its money. However I feel quite comfortable that there is very little overhead for improvement in our ABAP/BSP solution at this point. In the end, it was that very feeling that virtually made the decision for us.

Former Member
0 Kudos

Hi Thomas,

Many thanks for the overview of your test,

I am not surprised to read about this that ABAP/BSP is much faster then J2EE/JSP, the main reason is BSP natively support the SAP R/3 where as JSP has to use SAP JCo or JCA( Java Connector Arch. ) to connect the SAP, so its bottel neck here

Any expert comments, would be welcomed

Many thanks once again for short overview of your test!

Marek.

Former Member
0 Kudos

PS: would be great if you mention the name of the tool which u used to test the parameters such as performance, scalibility etc..... so that might be I can quot you in my diploma -:) ??

Thanks

thomas_jung
Developer Advocate
Developer Advocate
0 Kudos

SAP has done all things you mentioned. Although they haven't replace the ABAP workbench with Netweaver Development Studio (not yet at least ). We still use go old SE80 for ABAP development.

Now I will pose some questions that I don't necessarily have the answers to either:

1. How many business applications have SAP released written in Java and/or WebDynpro?

2. Was the decision to support Java completely made based upon technology (of course not)? Was market pressures and a matter of appearance (correct or not) a factor?

I think that SAP is very much on track to try and bring much of the ABAP functionality to Java. That may be why at times there seems to be a focus on Java only. However SAP has continued to improve ABAP as well. Some the latest additions come directly from the Java World (such as persistent and serializable classes). I see both Java and ABAP co-existing in the SAP environment for some time to come. I think that Java has a long way to go before it can complete with ABAP for backend business programming. As to WebDynpro (Java vs. ABAP) - I think there is more going on there than we know, but I won't touch it with a ten foot pole. Personally WebDynpro sounds nice and all, but I don't feel like I am missing much - I have BSP after all. I have a feeling that I will stil be using BSP long after WebDynpro ABAP is available.

Perhaps a little story is in order. For those you who might have been around SDN when it first started a year and half ago; there was a decidedly strong slant towards Java. In fact in the beginning (at least the beta test) there wasn't even an ABAP forum. Guess what. ABAP developers whined, complained and shouted at SAP that they didn't want ABAP left out. At TechEd that year, I know that I compained to anyone who would listen. SAP listened and now (acording to a recent survey and Weblog), ABAP reins supreme on SDN.

thomas_jung
Developer Advocate
Developer Advocate
0 Kudos

I will see if I can find out. Years ago I think it was called AutoTester. However it may have changed hands over the years.

Former Member
0 Kudos

Hi and once again thanks for your valuable comments!

>SAP has done all things you mentioned. Although they haven't replace the ABAP workbench with Netweaver Development Studio (not yet at least ). We still use go old SE80 for ABAP development

I have not said this from my side, the presentation which Rich as given in his post, I quoted this sentence from that presentation, the guy which is PM of ABAP development in SAP has made this statement, but I am not sure, what he mean by that, might be he more focus in web Dynpro ABAP development or what ever!

>How many business applications have SAP released written in Java and/or WebDynpro

Atleast they have added the J2EE engine in SAP web AS, is this J2EE engine is also written in ABAP ?? even though they follow the J2EE standards

>Was the decision to support Java completely made based upon technology (of course not)? Was market pressures and a matter of appearance (correct or not) a factor?

we can not eliminate the technology factor, I mean because of technology it has max market pressure and appearance.

>I am missing much - I have BSP after all. I have a feeling that I will stil be using BSP long after WebDynpro ABAP is available.

Again, If BSP is doing what ever web Dynpro is doing, then why they release a new model ( web dynpro) so there must be something which web dynpro is doing more, and moreover, SAP AG has announced not to support BSP programming model in near future ( may be in next release ( I have seen some comments on SDN fourms) ?? any comments!

I am still puzzled thourgh SAP stretigy, I mean okey if Java has a number of developers, and they are giving this support ( JAVA support in WAS ) mainly due to this reason, for me it does not make sence ( might be I am pre-mature to understand this fact) but there is millions of lines of code written in ABAP and they are providing and improving ABAP at the same time as well, they why JAVA support too ? kind of thing which I really need to know

Thanks:)

Marek

thomas_jung
Developer Advocate
Developer Advocate
0 Kudos

> Atleast they have added the J2EE engine in SAP web

> AS, is this J2EE engine is also written in ABAP ??

> even though they follow the J2EE standards

No it is not written in ABAP (althought that would have been interesting ). There are two different Personalities to the WebAS (ABAP and Java). In 640 you have three different installation options - ABAP only, J2EE only, and ABAPJ2EE add-in. Even in the ABAPJ2EE, execution runs quite separated.

> we can not eliminate the technology factor, I mean

> because of technology it has max market pressure and

> appearance.

I can't disagree with you there. However I might add that the 'market' is generally unaware of ABAP as whole, because it has never left the safe confines of the SAP ecosystem. Perhaps that alone is the answer to the question.

> Again, If BSP is doing what ever web Dynpro is doing,

> then why they release a new model ( web dynpro) so

> there must be something which web dynpro is doing

> more, and moreover, SAP AG has announced not to

> support BSP programming model in near future ( may be

> in next release ( I have seen some comments on SDN

> fourms) ?? any comments!

Really SAP has announced not to support BSP in the near future? That's news to me. BSP is fully supported in WebAS 640. 640 has mainstream maintenance until 3/31/2010 and extended maintenance until 3/31/2013. I would be very suprised if we didn't see BSP support in release 7.0 (or whatever it is going to be called).

> I am still puzzled thourgh SAP stretigy, I mean okey

> if Java has a number of developers, and they are

> giving this support ( JAVA support in WAS ) mainly

> due to this reason, for me it does not make sence (

> might be I am pre-mature to understand this fact) but

> there is millions of lines of code written in ABAP

> and they are providing and improving ABAP at the same

> time as well, they why JAVA support too ? kind of

> thing which I really need to know

Join the club! At the end of the day I hope that it is SAP's intention to offer robust long term support for both languages. Then customers can choose which one best fits their needs and skill sets.

Former Member
0 Kudos

Yes from very reliable source I come to know that there will be no futher support for BSP in future, but thanks for providing the date for BSP maintence in was 6.40.

Regards,

Marek

PS Brian makes these comments in one of the thread "BSP going to be obsolete?

"

"

Web Dynpro ABAP has exactly the same meta model as Web Dynpro Java. Only it is integrated in workbench (se80). From programming it should be similar. We are still working to make it faster than Java! (Just don't tell them.:)

"

So I really dont know why the guy in presentation said, ABAP workbench is replaced by NWDS -:)

Message was edited by: Marek Jöricke

thomas_jung
Developer Advocate
Developer Advocate
0 Kudos

I find thought of lack of support for BSP suprising. I would like to quote a posting in the BSP forum by Dirk Feeken. I would not take this as an Official SAP statement (eventhough Dirk is listed as an SAP employee). I post it here because I believe his argument is sound (and the very reason it would be silly for SAP to drop BSP support even once WebDynpro is around).

<i>BSPs will be supported as long as there are ABAP based applications and as long as there's the web (measure it in decades).

There's no plan to "replace" BSPs with Web Dynpro and there won't be migration tools. There won't even be the need to migrate from BSPs to Web Dynpro.

Both will fullfill their need in the future. BSPs are perfectly suited for typical customer's projects, where flexibility regarding the UI is needed. Think of a public web site (catalogue, shop, customer data update sheet, whatever) that has to integrate into the existing public web site of a company by using existing HTML templates, given stylesheets and pictures etc...

Even if you use the HTMLB tags you can enhance your pages with everything that's possible in the web up to the most weird JavaScript.

But this flexibility is not necessary perfect for the development of standard applications by SAP itself, which have to provide consistent UIs over thousands of screens and have not only to run in all major browsers but should also work in UI paradigms which might show up in the future. A drawback of the BSP's flexibility (nothing is for free) is that the whole model is hard bound to the web. Even for a simple BSP the developer has to know what a HTTP request is, how the request and response cycle between browser and server works. Realistic scenarios require knowledge about cookies, session lifetime, JavaScript, browser differences and things like ( what I never fully understood): what does the back button mean for my application?

But in principle, all what the developer should care about is the UI: number of input fields, where to place them, which variable and data type is bound to it, which event should be triggered if a button is pressed, etc. And this UI defining information should be stored independendly of the used UI technolgy. Here lies the investment, and we don't want to throw this away if another UI technology appears in teh future. Which fields are required for my adress form doesn't depend of the fact if my application runs in a browser or in a smart client.

And here Web Dynpro (for Java, later also ABAP) enters the scene. The whole UI is defined (declarative without coding, but this is not the only point) independently of the used UI technolgy.

The rendering is done independently, currently there are different rendering possibilities for the web (complex client side JavaScript and just deltas sent between server and browser, or complete server side rendering) but also other rendering methods that run the same unchanged Web Dynpro applications in completely different smart clients are possible and thinkable.

On the other hand it doesn't has the flexibilty of BSPs. No chance to include your own HTML or JavaScript or to interrupt the HTTP requests or fiddle around with HTTP headers in the response. </i>

Former Member
0 Kudos

Hi,

Thanks once again for your post !

Have u did JCo coding, ?? just for my information, is there is something which u could do in BSP but not with JSP/JCo ??

I mean JCo only access the BAPI's so I cant imagine that every functionality of SAP is also avaiable through Remote enable functions, there must be something which is special to BSP which cant be done by JSP/JCo,

Any comments

thomas_jung
Developer Advocate
Developer Advocate
0 Kudos

That is true about JCo. I'm sure if you did a lot of development with JCo you will find yourself writting a lot of your own RFCs. There are plenty of BAPIs (well over 1000), but that doesn't begin to cover the complete scope of business functionality available in SAP.

With BSP you have direct access to any local ABAP code or classes (and of course can still call RFCs from other systems). The data types will match and even in a plain WebAS system you still have many of the business element data definitions with their language dependent descriptions. For instance you have the data element MATNR (material) and its description for any languages you have loaded. The integration of the ABAP data dictionary (along with conversion exits, value lists, and descriptions) is a huge plus.

You have ABAP method of dealing with Arrays (internal Tables). For someone who has worked in several programming languages - I really like the SAP implementation of internal tables.

You have direct access to system utilities such as the ABAP XML parser, ZIP classes, PDF generator, etc.

You have access to the server Print and File Access architecture.

The ABAP Debugger - You can even debug in the same tool all the way through RFC calls to remote systems.

These are a few of the things that come to mind. I'm sure when I sleep on it tonight, I will think of a few more.

Former Member
0 Kudos

Hi Thomas,

Many thanks for pointing out such good advantages, to whom I am in search for long time, as I came from non-abap world.

Then I am awating what comes next when u get up fresh ??

Really looking forward to read those functionalities which only BSP application enjoy while JSP/JCo can't.

With Regards,

Marek

Former Member
0 Kudos

Hi,

Just in case you want to compare the 3 Titans (WebAS, J2EE and .Net), take a look at https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/documents/a1-8-4/clash of the titans iii.pdf.

Hope it helps.

Regards

Former Member
0 Kudos

Salam Khan Sahab,

Thanks for the reply, if you know some more documents regarding Java and ABAP world comparision, would be great if you point out link for me!

Many thanks,

Marek

thomas_jung
Developer Advocate
Developer Advocate
0 Kudos

> These are a few of the things that come to mind. I'm

> sure when I sleep on it tonight, I will think of a

> few more.

I knew last night that there was at least one more major item that I was forgetting - Authorization and Authentication.

BSP obviously shares the same authorization model. If you have already invested heavily in your R/3 authorizations, this can be a big plus. Of course BAPIs have built in authorizations, but with BSP you can perform the same authorization checks as in regular ABAP.

Add to that the ability to use Trusted RFC to have transparent RFC calls to other ABAP based systems. And BSP has built in capabilities to process the SAP SSO2 Ticket for authentication.

Former Member
0 Kudos

Hi Thomas,

Thanks for you reply,

yes these are good advantages of using BSP,

Is there any resourece or weblog out there, which compiles a few advantages of BSP, I mean I went through the BSP weblogs but did not came accross any weblog provides the advantages .

Have u heard about something that, SAP has provided libs of JSTL (Java Server TAG lib) with WAS 6.20 or 6.40, came accross to any such thing ?

With Regards,

Marek

thomas_jung
Developer Advocate
Developer Advocate
0 Kudos

No particular weblogs that I could point you to that you haven't already read it sounds like.

For JSP pages in the SAP J2EE they did have a library called HTMLB. There is some documentation available on SDN for it. I'm not really sure what the future of that particular offering is nor have I ever used it. I'm sure the same question in the Java Forum might have better results.

I can tell you that in BSP we have something very similar. They are called BSP Extensions (I heard that there was some legal reason why they couldn't be called Tag Libraries). SAP has several core Extensions (HTMLB, XHTMLB, and PHTMLB). You can find lots of weblogs on the subject of use of Extensions and creation of your own.

Former Member
0 Kudos

thanks for the reply,

can we do window programming using ABAP ? I guess yes ( because SAP is a desktop application, is it called screen programming

In java its called swing / and awt

With Regards,

Former Member
0 Kudos

Haider, waalaikum assalam

You asked: "can we do window programming using ABAP?". The answer certainly is YES and it is called SCREEN PROGRAMMING, DIALOG PROGRAMMING, and sometimes TRANSACTION PROGRAMMING. Screens in ABAP are called dynpros (for dynamic programs) as these cater for a lot of screen validation/input issues on the basis of element definition in dictionary as well as in programs.

As far as comparison between ABAP and JAVA world are concerned, you can perhaps take a look at the Events section of SDN and specifically at https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/documents/a1-8-4/abap objects for java developers.pdf .

Additionally, you can take a look at the NetWeaver Developer Guide (https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/documents/a1-8-4/sap netweaver developers guide.booklet) --> Application Development --> ABAP vs. JAVA.

Hope this help.

Regards

Message was edited by: Shehryar Khan

Message was edited by: Shehryar Khan

thomas_jung
Developer Advocate
Developer Advocate
0 Kudos

Don't forget that as of release 46, we have the addition of controls programming inbedded in dialog programs (you might see this in documentation refered to as EnjoySAP). These are activeX or java bean (depending upon the flavor of the SAPGui) user controls that SAP delivers. They have proxy ABAP OO classes for manipulation and eventing. I remember a time of R/3 without the textedit control or the ALV Grid. Believe me I never want to go back to those days.

Message was edited by: Thomas Jung

christian_wohlfahrt
Active Contributor
0 Kudos

Hi!

Somehow you are mixing up some things.

Runtime environment for ABAP is whole SAP-installation. No one installs SAP, if he needs just one application. But SAP is available for several platforms, true.

With ABAP you have direct access to SAP - with JAVA you need external interfaces of SAP.

But for JAVA you have a small runtime environment, which is installed by millions of users.

Brought a little light in this question?

Christian

Former Member
0 Kudos

SAP can run on different hardware platforms and with different database managers.

There is a document comparing ABAP with JAVA, I will have to look around for the link.