Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 4 years ago.
Improve this question
What is BPEL? I'm looking for some nice simple examples of BPEL usage. The wikipedia page isn't too enlightening. How about a "Hello world" in BPEL? A BPEL shell? A BPEL IDE?
BPEL is just a way to build centralized control of disparate but interdependent systems from a centralized place.
Users can create rules, workflows and other control structures to make sure everything plays nice.
For example, say you run a school district; in particular, a school districts information infrastructure. Over the years you have accumulated a motley assorted group of hardware and software. For each aspect of your district; grading, attendance, bus routes, nutrition, payroll, etc, etc, you have various distinct software written in different languages by different vendors. Well, you have some overlap in your data and different end users use the different pieces of software and they expect it all to agree with each other - you use your BPEL system to be sure all the data is where it is supposed to be when it is supposed to be there.
You also have some processes that absolutely have to run after the successful completion of another process on a different system. You use BPEL to make sure those are coordinated. BPEL is all about centralized coordination and you probably don't need it unless you are in a large organization and lots of different systems.
This BPEL tutorial covers on how to write a BPEL from scratch.
Writing a simple WS-BPEL process for WSO2 BPS and Apache ODE
This article covers the IDE based BPEL process development. Developing WS-BPEL Processes using WSO2 Carbon Studio
Have a look at the ActiveBPEL IDE. Also you can find a short 101 BPEL guide in Oracle. The demo is about Oracle's BPEL engine, but the source is general enough.
Background
I'll add a little bit to what has been said. BPEL is a procces orchestrator. You can use it to do any kind of serialised of parallel process automation.
For example: A customer buys something on the website of company 'AAA', this instigates a BPEL process in that companies service oriented architecture (SOA). Within this BPEL a series of BPEL components does their work on the payload generated by the consumers purchase. This payload can consist of all kinds of information regarding the buyer and the purchased item, such as <shippingAdress> and <itemId. An invoke BPEL component can be used to send information from the payload to another BPEL process or to another chained company through a webservice call in the composite wherin the BPEL lies. That company can be responsible for the shipping of the purchased item, another company can be responsible for the processing of the money. All of these companies dealings are automated through composite applications containing series of BPEL processes. All are communicating information across the web through (a)synchronous webservice calls.
The BPEL part is where the logic lies, where the true automation/orchestration of function resides.
Getting started
The Oracle documentation websites for soa suite 11g and 12c are quite extensive for those willing to read. If you like to do a tutorial from the basics and up you can use their suggested code to get started. It's a little bit trickier when it comes to applying their documentation to existing BPEL projects, but its still a good source for many basic questions and examples regarding SOA.
https://docs.oracle.com/cd/E12483_01/integrate.1013/b28981/async.htm
Also, a quick google search will lead you to some expert guides written by bloggers. Some of these are a bit more beginner friendly than the oracle documentation, but mostly lack details pertaining to your own project.
http://javaoraclesoa.blogspot.com/2016/02/asynchronous-interaction-in-oracle-bpel.html
You can also just youtube some videos about BPEL to get the gest of it :).
Good luck and have fun!
Related
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 8 years ago.
Improve this question
Someone told be about this Service Platform: http://particular.net/ for implementing SOA oriented applications.
I really find it a bit confusing at first glance, so i would like to ask some questions about it:
Services are SOAP or REST?
How are data contracts and service contracts specified?
Are this services externalizable to outside consumers via WSDL metadata endpoints?
A service not implemented in .net (java, ruby) can be inserted in the service bus?
Which is the protocol used for messaging?
What are your general thoughts about this service platform?
For full disclosure, I'm the founder of the Particular Service Platform, but I'll try to keep my answers as objective as possible:
Services are SOAP or REST?
While the platform allows the use of WCF to expose endpoints for consumption by 3rd parties, the focus is on queuing - MSMQ, RabbitMQ, etc.
How are data contracts and service contracts specified?
Contracts are message-oriented from a philosophical perspective, but in practice they're just regular POCO classes and interfaces.
Are this services externalizable to outside consumers via WSDL metadata endpoints?
See the WCF comment above.
A service not implemented in .net (java, ruby) can be inserted in the service bus?
Interop can be done via WCF but the preferred model would be to use either ActiveMQ, RabbitMQ, or WebSphereMQ.
Which is the protocol used for messaging?
I'm not entirely sure what you mean by "protocol" beyond the queues mentioned above, but we support XML, Binary, and JSON serialization out of the box and also enable you to plug in your own serialization mechanism.
What are your general thoughts about this service platform?
As one of the owners of this platform, I feel my necessarily biased answer wouldn't contribute much on this point.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 4 years ago.
Improve this question
Are there any cloud based private Twitter-like services out there?
I am working for a client who needs a service like this implemented, but we don't have the time or budget to create one from scratch.
I am looking for something with a REST api where I can create an account on it from the master server, set an account to follow another account, post updates for accounts, and then get a feed of posts (sorted by date) from accounts that another account is following (like a facebook wall, or twitter feed). It would be great if it could automatically scale out to hundreds of thousands of users, with perhaps 50 000 daily posts being made.
I had thought about implementing this myself, but it seems like there are some tricky areas when it comes to having an account following a few thousand other accounts, or being followed by 10s of thousands of accounts, and generating the feed in somewhat realtime as posts come in.
I have found some services such as http://www.ning.com/ and http://www.socialengine.com/ but I'm not sure if they can do what I need, and they seem to be very focussed on having a website. This is for a mobile app so that is not required.
There are a few open source projects out there, but they would all require setting up/maintaining hosting (not a huge problem) and I'm not certain how scalable they are (the client requires it scale up to at least 100k users).
I'm sorry for the late reply. I hope it will be useful to others looking at this.
I had pretty much the exact same need as you, and ended up creating a full-featured solution after finding no other resources. The service is called Collabinate (http://www.collabinate.com). It provides a RESTful API that focuses on simplicity and ease of use, and currently leaves the UI completely up to you. It uses a graph database and algorithms in the backend, and scales quite well for your situation.
Maybe private team inbox can fit in your solution too...
https://www.flowdock.com/
there is not a following feature in this but if this is an internal company need...
you can create chat rooms for departments and in general ... maybe the chat rooms can be the following feature for you
Looks like there isn't a good solution here.
I have found jaiku which looks incredibly complex and doesn't seem to run on the latest app engine sdk.
There is also diaspora which could be modified and run on your own server to do what is needed.
In the end, I have decided to just implement this myself on Google App Engine. It seems the best way to do what is needed. Using the fan-out pattern seems to be the best way. The Fantasm library seems to provide an easy to use way to do this, so I am going to try that.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 6 years ago.
Improve this question
I'm in the position where I may be creating a new web service from scratch - without much pre-existing infrastructure to have to contend with. What resources are there that talk about the architectural aspects of deploying a web service? [Clarification: I'm not talking about an Enterprise SOA orientation here - rather setting up one family of services for the public.]
A first list of topics that I'd like to see covered are:
SOAP vs. REST
JSON vs. XML
Relational Database Backed vs. SimpleDB backed vs. ?
Scaling
Availability
Models for restricting access
Models for throttling access
What would you recommend?
I would recommend Restful Web Services. It's weel written, very complete and vendor agnostic. Also it has a fairly good coverage of both REST (with comparison to SOAP/WS-*), HTTP scaling, resource formats (JSON, XHTML, Atom, XML), security and service modeling.
If you have any specific scaling needs, then you might also want to read Building Scalable Web Sites. It will teach you everything worth knowing about etags, proxies, caching, edge computing and so forth. However if you are just starting out, then the Rest book I mentioned earlier will properly cover most people needs.
If you decide to use Microsoft technology (WCF) then you could check out the Microsoft Patterns and Practices group's online library of guidance.
They have a library located here as part of MSDN which deals with Web Service security, Enterprise Buses (obviously not applicable to you scenario) and PAG's own Web Service Software Factory.
Their main page is located here.
Otherwise, assuming you choose WCF it might be worth checking out further reading such as Juval Lowy's book on WCF, although I fear it may cover the implementation more than the theory and design facets.
Do you know roughly what technology platform you'll be working from?
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 8 years ago.
Improve this question
We're developing a new web service that will be free for low-volume users and subscription-based for higher volume users. Most users will probably invoke it via a plugin for their cms or blog system, and some will use api toolkits for various programming languages. The web service, itself, is straightforward to expose to users, but a full-featured web application needed to configure and manage access to it using a subscription-based business model is more complicated.
We need to build, buy or find a solution that powers a self-service website which lets people:
sign up for free or paid accounts
select and configure service options
enter payment credentials
edit their account and billing profiles
review their service usage and billing history
suspend or cancel their accounts
From an admin perspective, we would also like the system to let us:
monitor and manage service status
log user activity and service consumption
review and manage user accounts
manage recurring billing, flag problem accounts
manage message templates for communicating with users
configure service packages, options and discount codes
perform other, similar administrative activities
This seems like standard stuff that any web-based, self-service subscription system might need. I'm wondering whether anyone out there knows of a package that provides most or all of these features? We're open to considering various programming languages and platforms, although it will be most convenient to deploy and run this on a linux system.
If there's not a solid, open-source solution out there, then we might be interested in sponsoring the creation of one. I'm looking forward to hearing insights form the community. Thanks!
Rick
Subscription management and billing operations are a pain to implement yourself. I would suggest checking out Zuora. Even though there's some cost there, they have a nice API for their cloud service.
Not sure if that would fit with the model you have in mind, but they do take away a headache.
Go with FastSpring , www.fastspring.com
It rocks it addresses all things you mentioned + more.
http://www.fastspring.com/features-subscription.php
METRO sounds like a suitable choice to me considering your preferred server OS:
https://metro.dev.java.net/
Wikipedia has a great comparison table for web service frameworks. This may be a good starting point: http://en.wikipedia.org/wiki/List_of_web_service_frameworks
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 7 years ago.
Improve this question
I am a programmer who writes a lot of code for desktop applications, now started considering cross-platform apps as an issue but at work I write C# apps and I come from C++ and CS background and of course, I wrote several things in QT/C++. But now I am kinda confused about web applications, I have done some work on PHP and I know how things go there, I was a gmail and google docs user for a lot of time and I have seen how much web applications were improved with new web 2.0 technology including Ajax, XML so on. And my confusion is that should I start looking forward for web application development? and continue exploring the power of web 2.0 or I have to just stick with my old world where I feel very comfortable on parallelism and other stuff? Because believe me I had too many offers to work as a web application developer but I didn't realize this opportunity and now I am kinda confused whether I must start writing web apps. Have you been writing desktop applications and switched to web? or have somebody experience in this scenario?
Thank you.
The boundaries between desktop and web applications have really blurred. Whilst once upon a time the nature of developing for the web was totally different to developing for the desktop, nowadays you find the same concepts (such as parallelism which you referred to) cropping up in both. Don't think of developing web applications as taking a huge step away from traditional software development as you'll employ just as many skills and concepts as you already use. You wouldn't need to learn a whole lot more to get involved in web development if you have C# experience, as you could code backends to web applications in a very similar way to how you currently work. If you wanted/needed to get involved in the UI side of things, there are new technologies you'd need to pick up, but they're not essential to get a job in web development (as long as you weren't looking for a frontend role obviously).
To follow up Dustman's comments about companies wanting to keep tight control of their data etc; bear in mind that not all "web applications" involve the use of the internet. Really all the term means is "applications developed on web-based technologies" and as well as being deployed publically on the web, they're commonly deployed on intranets and other closed-access environments. I work for a software company which develops "web applications" but a large number of systems are hosted by clients for use on their internal networks for the very reasons Dustman refers to - they want to keep tight control of their data. The beauty of web based technologies is that you can achieve this whilst still reaping the benefits of a centralised system, meaning there is no need to manage deployment across 100s of workstations, no need to worry too much about the specifications of client devices, the ability to access the system across different types of device (mobile etc), regular and easily deployed updates, and so I could continue.
It's all about what kind of programs you want to be writing. End-user apps already have already started a significant move to being web-oriented, because of the advantages that some companies find in outsourcing their data handling and IT infrastructure. Because this area of development is a new and growing sector, I have no doubt that you will be getting all kinds of offers, and hearing all about new startups and so forth that are centered on developing these kinds of applications.
That doesn't mean that desktop apps are going to go away. Some companies, and lots of private individuals like to have a sense of being in physical possession of their data, and see no monetary benefit in "renting" an online app or in outsourcing their data handling. These people are going to keep the desktop app market open in the foreseeable future, although perhaps not to the extent that we have seen previously.
So at this point, you needn't feel forced to make a move into the web game, but there are certainly opportunities there if you want them.
In the near future, the boundary between the web development and the desktop application development will go on erasing. For a professional programmer, learning new things is the real growth. learning web development for an experienced programmer is not a difficult task. you can obviously go ahead and learn the web development. You should recognize web well as it will certainly come to meet the desktop apps in the near future.