Talk:SORCER/Archive 4
This is an archive of past discussions about SORCER. Do not edit the contents of this page. If you wish to start a new discussion or revive an old one, please do so on the current talk page. |
Archive 1 | Archive 2 | Archive 3 | Archive 4 | Archive 5 |
notability and sourcing
Worthwhile reading — WP:42 is the answer to most questions about new articles, in the wikiverse (gratitude to TRPoD for this link). Summary of the sources-list below is basically....
- DoD, the multiyear multi-million-dollar supergrants by the USAF+NIST and NSFChina (plus hints of Ulyanovsk) ... and the classified weaponized-aerospace work these indicate. Such work is not useful as RS now, today, because WP:V demands the info be *published* aka available to the public... and wikiLeaks doesn't count as RS methinks... or does it? Hmmmm. Point is, this stuffwill be declassified someday. And it exists now, today. We cannot *use* it today, for sourcing the article, but that doesn't mean we have to pretend this set of classified sources, published-yet-top-secret, doesn't exist — when evaluating the public sources below, it can lend some perspective to what they don't say.
- UK, the 2007 U.Cranfield lit-review & industry-survey (a solid secondary source), plus the 2009 G.Goteng PhD from same place. WP:SOURCES sez, "academic peer-reviewed pub's are usu the most RS". WP:SCHOLARSHIP sez, "PhD [theses]...can be used but care should be exercised".
- RU, the 2007/YYYY/2013 newspaper articles in Russian (I've asked somebody who "can read a few words of Russian" to give us rough assessment of depth... anybody amongst us here know Cyrillic?)
- ZH, the 2010 PhD and 3+ peer-reviewed journal articles by Nan Li (most of the work in Chinese but that is no hindrance to wikiNotability though it is a barrier to gauging depth... Clover1991 of DUROMAC fame has offered to help us with translating the mandarin if kazumo is busy), plus the 2011 and 2013 Beijing Jiaotong University PhD (students of Nan methinks?); *maybe* the ZH edu-news section; additional evidence, tho not themselves RS, are the two Master's theses. Again WP:SOURCES and WP:SCHOLARSHIP
- US, the 2013 iosPress/AFRL papers (peer-reviewed by the 20 members of the conf-board and the 3 members of the editorial-subset which were mostly Aussies), plus the 2012 DaytonThesis PhD (which has a public-domain chapter on SORCER beginning on page 230... decent tone... might be the best place to start on the rewrite of mainspace?); additional evidence, tho not itself RS, is the WrightState Master's. SorcerDotCom in Poland, and SorcerSoftDotOrg at TTU in Texas, are the entities directly responsible for SORCER; the USAF and WPAFB are funding Prof.Sobolewski, U.Dayton, WrightSt.U, and various other stuff via the MSTC/AFRL folks in Ohio.
Meanwhile, as Tim and ScopeCreep and TRPoD and Garamond and others are analyzing whether this list of sources is bulletproof wikiNotability, safe from all future deletion-attempts, Pawelpacewicz and Martijn and Prubach and myself can try to start working on WP:TONE, and on clearly explaining the meaning of SORCER/nsh/exertions/mograms/SOOA/COLA/PEPSI/7UP/etc to the readership.
Fiddle Faddle's suggestion "that the first task is to show and prove notability though" ... there is one, and only one, way to prove wikiNotability. That is, namely, to find multiple independent Reliable Sources, which cover SORCER itself (specifically), in some amount of depth. Finding good sources, and proving wikiNotability, are the same thing. Nothing more is required, but also, nothing less is required. There is a difference between a *secondary* source, and an *independent* source. If anyone finds independent sources, fact-checked by an independent journalist's professional editorial board, or peer-reviewed by independent referees at some journal's science-board, please add them to the list below. Thanks for improving wikipedia. 74.192.84.101 (talk) 18:02, 30 December 2013 (UTC)
- The second AfD ended well, with a 'keep' rather than the wishy-washy 'no consensus' that we had the first time. That doesn't mean we are done organizing sources, however! It is important for wikipedia to reflect wat the wikiReliable Sources say, see WP:UNDUE. So please, keep adding sources to this listing, appropriately categorized, as you find them. Thanks for improving wikipedia, it's appreciated. 74.192.84.101 (talk) 19:24, 16 January 2014 (UTC)
PLEASE EDIT THESE SOURCE-EVALUATIONS DIRECTLY, TO FILL IN MISSING DETAILS. Thanks much. :-) 74.192.84.101 (talk) 18:27, 13 December 2013 (UTC)
some WP:ABOUTSELF sources
|
---|
Mwsobol#0
Mwsobol#1
|
AFRL / IOSPRESS x2 or x3
|
---|
Shortname == iosPress#1
Shortname == iosPress#2 (Mwsobol#2)
|
20th IPSE ICCE peer-reviewers
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
TBD sources which need sorting and filling
|
---|
Kazumo#12 / Mwsobol#3
Mwsobol#4
Kazumo#11
132
Kazumo#13 (this is a wiki methinks?) Pawelpacewicz#73
|
NAN LI x3 or x4 of Beijing
|
---|
Shortname == N.Li 2008. journal paper (Kozamo#1)
Shortname == N.Li 2009. PhD thesis (Kozamo#6)
Shortname == N.Li 2011_A. journal paper (Kozamo#3_A)
Shortname == N.Li 2011_B. journal paper (Kozamo#3_B)
Shortname == N.Li 2011_C. conference paper (Kozamo#9)
Shortname == ICDMA'11 aka N.Li 2011_D. Suggested as WP:RS to satisty WP:NOTE.
Shortname == N.Li 2012. journal paper (Kozamo#2)
|
U.Cranfield in the UK
|
---|
Shortname == Cranfield 2007. chapter (Beavercreekful#1)
|
RUSSIAN NEWSPAPERS x3
|
---|
Beavercreekful#3
Beavercreekful#4
Beavercreekful#9
|
CHINESE EDU NEWS x4
|
---|
Beavercreekful#5
Beavercreekful#6
Beavercreekful#7
Beavercreekful#8
|
PHD THESIS x4 (cf N.Li 2009 above)
|
---|
Shortname == G.Goteng 2009. PhD thesis (Beavercreekful#2)
Shortname == J.Yu 2010. PhD thesis (Kozamo#7)
Shortname == L.Kong 2013. PhD thesis (Kozamo#8)
Shortname == DaytonThesis. Ph.D. thesis (more than one?) from from University of Dayton
|
details of DaytonThesis w.r.t. SORCER/exertions/SOOA
|
---|
abstract == Nonlinear, high fidelity aerodynamic analysis methods are considered computationally expensive and impractical for use in the preliminary design environment. In lieu of nonlinear methods, linear aerodynamic methods are utilized in the execution of design tasks because of their computational efficiency. Linear codes are considered accurate in low Mach number flight regimes where aerodynamics is generally linear but are not accurate in transonic flight regime due to the simplified assumptions that are required by such codes. This investigation demonstrates that nonlinear aerodynamic analysis methods are necessary when performing design tasks in the presence of nonlinear phenomena. To reduce the cost of using nonlinear aerodynamic analysis, the velocity transpiration boundary condition was employed to simulate surface deformations and control surface deflections. Observations showed velocity transpiration offers significant computational savings when compared to mesh motion enabled codes. To improve turnaround, a distributed computing framework wasadopted to distribute workload and information storage across a network. A comparative design study was carried out comparing linear and nonlinear analysis tools in design. A rectangular wing's structural mass was optimized to perform both a roll and pull-up maneuver while subjected to rolleffectiveness and skin stress constraints. At a subsonic design point, the linear and nonlinear tools produced similar designs. However, at a transonic design point, the tools produced significantly different designs. The addition of aerodynamic shape variables to the design space at the transonic design point led to a further enhanced design. The results of this study reaffirm the notion that nonlinear high-fidelity aerodynamic analysis methods must be utilized when designing vehicles that will operate in nonlinear regimes. Further, several methods were demonstrated that could reduce the cost of using nonlinear analysis methods. SORCER-related technology is covered in reasonable depth: 3 pages in ch#4, 3 pages in ch#5, 6 pages in ap#G. which is a total of a dozen pages out of 243 pages of content, aka about 5% of the thesis. That said, sorcer played *the* key part, allowing the non-linear analysis to be computationally feasible. Exertions are mentioned on about 50% of those dozen pages (and are implicit in most of the rest of them), and services were mentioned in 80% of the dozen (and very implicit in all of them). Kolonay is on the thesis cmte, gets seven bibliography entries (out of 73 total aka ~10%), is credited as author of four SORCER-packages (plus helped write a bit of new code specifically for this thesis). Sobolewski is mentioned thrice: in the bibliography, as the creator of SORCER, plus credit for writing a few of the classes used in the thesis (perhaps specifically *for* this thesis project? unclear). selected entries of the 73-entry bibliography.
Appendix G, on printed-page 230-245, is half-a-dozen pages explaining how SORCER works, what service-oriented means, and what exertions are. Recommended, and as pub-domain, we can reuse it if we like. As for the aerospace-design portion of the thesis, SORCER is specifically covered in the chapters on efficient automated numerical optimization of the wing-shape during the design-phase, as well as in the conclusions (nonlinear optimization is made possible by the efficiency gains of SORCER's grid-computing network-parallelism... this is not especially helpful at Mach 0.50 speed, but it hands-down results in a better wing-design for transonic flight at Mach 0.89). chapter four, distributed design optimization, printedPage73==pdfPage90 ...a grid-computing environment... Within SORCER the numerical optimizer and the aeroelastic solvers were exposed as services on a network. SORCER reduced the computational expense of using nonlinear aerodynamic analysis method within the preliminary design environment by allowing the computational workload to be distributed across a network of computers. SORCER allowed for multiple copies of services to be available for use when executing a design study. This effectively reduced the computational expense of using a nonlinear aerodynamic method in the preliminary design environment. chapter four, distributed design optimization, printedPage75&76==pdfPage92&93 The numerical optimization code utilized in this investigation was Design Optimization Tools (DOT). It is developed and maintained by Vanderplaats R&D Inc. The strategy used to solve the optimization problem was constructed within SORCER. ...the code determines ... if [automated] design investigation has converged and if an optimal [wing] design has been discovered. chapter five, conclusions, printedPage111&112==pdfPage128&129 The last set of tasks performed in this investigation involved executing the transpiration enabled aeroelastic solver in the performance of preliminary design tasks. To further improve the computational effciency of the transpiration enabled nonlinear aeroelastic solver, a preliminary design environment was constructed in SORCER. SORCER grid-computing capabilities allowed for design problems to scale across the computation resources available on a network of computers. In the execution of multidisciplinary design optimization studies, the velocity transpiration enabled computational aeroelastic solver proved quite serviceable. The solver generated optimal structural designs at a subsonic design point of Mach 0.50 and transonic design point of Mach 0.89. The designs developed using the [SORCER-based] nonlinear aerodynamic method compared to design produced using [traditional] linear aerodynamics. At subsonic design point [Mach 0.50] the optimal designs produced by the linear and nonlinear methods were very similar there was only 14.69 slugs difference in structural mass. However, at transonic design point [Mach 0.89] the structural design were very different. The design generated using the linear aerodynamic method did not properly account for the presence of a shock wave... ...proof that linear design tools produced completely different designs than nonlinear tools in a nonlinear flight regime. ... If a designer chose to use the design obtained using linear aerodynamic analysis methods as the basis of a detailed design or prototype, the end result could be a costly redesign of the structure because the design failed to account shock wave effects. Through the performance of the design optimization study portion of this investigation, it was demonstrated how distributed computing can be used to accelerate computational analysis through coarse parallelization of computational effort. Analysis tools were deployed across a network of computers as services. Information was transported from analysis service to analysis service via web servers, network proxies. Data was passed within service context data structures. SORCER's framework allowed for analysis tasks to be executed concurrently or sequentially depending [on] data dependencies. The design process was accelerated through the exploitation of this parallelism. A unique aspect of this work was the fact that the optimization design strategy was implemented within the design framework. One programs the network as oppose to programming individual computer systems. The framework calculated exact sensitivities via finite difference directly, selecting the appropriate network services to dynamically compute a gradient or function evaluations. The framework permitted some failure recovery in the analysis. Code was implemented to check for corrupt output. Intermediate results were archived in Java objects. Through execution of this investigation several ideas could be implemented to improve computational efficiency of nonlinear CFD [computational fluid dynamics] in the preliminary design environment. page113... paraphrasing: explains how greater performance could be achieved, by rewriting the CFD and CSD apps (computational fluid & structural dynamics) to be more granular, which would permit SORCER to expose subcomponents thereof as services in a parallelized pipeline (finer-grained parallelism rather than the coarse-grained parallelism actually used in the thesis project) page113, quoting: SORCER could offer a computation advantage over the conventional analysis codes... for very large problems SORCER may offer computational advantage over the message-passing interface currently used by the CFD solver to parallelize analysis effort. |
MASTERS THESIS x3
|
---|
Shortname == A.Liu 2010. master's thesis (Kozamo#4)
Shortname == W.Wang 2011. master's thesis (Kozamo#5)
Shortname == WrightThesis.
|
SUPERGRANTS x3 or x4
|
---|
Shortname == NIST
Shortname == USAF Shortname == NSFC 2012. quad-year R&D grant (Kozamo#10)
Shortname == Ulanyovsk(sp) rumours |
how many source-code repos are there?
Questions about the number of forks/repos of the SORCER codebase (plus ancillary codebases surrounding it), which groups used what codebases (historically and recently), which groups contributed *code* as opposed to money/endusers/similar.
- SORCER is about grids of distributed algorithms, for concurrent-engineering design-disciplines
- SORCER is a huge computing environment, only a fraction of the results related to SORCER have been published
- This is partly because some of the apps are classified (military), and partly because some of the apps are proprietary (corporate trade-secrets)
- Still, there is a conceptual framework, and a reference architecture, which is what has been covered in the wikipedia article (to date).
- Mwsobol works full-time for AFRL/WPAFB (which maintains one? two? more? repos of the SORCER codebase... plus various USAF-proprietary libs/apps/etc).
- Mwsobol occasionally teachs SORCER, including in Russia (how many places? Ulyanovsk State University), and the Russians maintain their own SORCER repo (just one?)
- Mwsobol occasionally teachs SORCER, including in China (how many places? Beijing Jiaotong University), and the Chinese maintain their own SORCER repo (just one?)
- Cranfield University in the United Kingdom ... do they use SORCER, nowadays? When did they use it? What about UK military or British Airways or similar?
- Mwsobol occasionally does consulting work, and helps interested parties to get started with SORCER
- One such interested party was SorcerSoft.com, located in Poland, who got trained by Mwsobol during 2013
- SorcerSoft.com is now just starting to develop commercial GUI-tools for SORCER
- SorcerSoft.com's proprietary work is based on a private repo, an internal fork of the open-source codebase, is not available to the public,
- SorcerSoft.com's public work is based on the version developed at TTU (aka SORCER Labs), which is currently open-source
- Mwsobol occasionally teachs SORCER, including (in January 2014) in Poland at PJIIT, which is using an open-source version (different from SorcerSoft.com's? Different from SorcerSoft.org's repo, if any?)
- SorcerSoft.org ... which is not officially connected to SorcerSoft.com ... is the current home of Mwsobol's SORCER Lab (still at TTU? or now at AFRL? or maybe now at PJIIT? or maybe just spun-off to Mwsobol's private webhost? confusion!)
- The historical FIPER codebase, which was used at GE from the late 1990s (NIST-ATP-funded from 1999-2003 but Mwsobol first hired at GE GRC in 1996) for turbine-design.
- One of the small companies involved with FIPER was later acquired by Dassault, the EU corporation. Do they have an internal version of FIPER, or of SORCER?
- Is FIPER still being used by GE/Dassault/Stanford/OhioUniversities/others? If so, is the codebase (or are the codebases) available publically?
- Has GE used SORCER?
- Has Dassault used SORCER?
- Has Stanford used SORCER?
- Have OhioUniversities used SORCER? (yes, U.Dayton PhD + WrightStateU MEng) What about Ohio Aerospace Institute? What about BFGoodrich?
- During the transition from FIPER to SOCER-and-then-SORCER,
- some external links are redundant, already listed at http://sorcersoft.com
- one particular repo was developed at TTU, and is now maintained by sorcerSoft.com
- Github contributors page , https://github.com/sorcersoft/sorcer/graphs/contributors
- This particular github group is the maintainers of the version developed at SORCER Lab
- There are many maintainers of multiple repositories, not just that one
- the SORCER platform is implemented in many places.
- The MSTC/AFRL/WPAFB/USAF is using
and developingSORCER to ... [3] - but, in the 2012 DaytonThesis, Kolonay (director of MSTC) was specifically mentioned as implementing three or four major class-libraries(?)
- It is not fair to those who really contributed and are ignored.
- Unless all development sites are listed it is just misleading information
Note that wikipedia tends to just give one main "official link" ... is that SorcerSoft.org , nowadays ... right? As for the main subject of this talkpage section, anybody want to try and give me the overview of what groups were responsible for what code, when? Please start historically, so we can give a summary of the history of the project's code, in the article. Danke, it's appreciated. 74.192.84.101 (talk) 01:48, 1 January 2014 (UTC)
- "How many source-code repos there are, and who runs them, and what year(s) each repo was active." There are currently two maintained repos. There is one at the U.S. Air Forcer Research Lab(AFRL) which contains some new features and proprietary extensions - for example the whole Var-Oriented Modeling framework (see the latest papers). As far as I know this repo started around 2007/08 based on the one at TTU. The second one is the open source version maintained by my colleagues and myself at github.com/sorcersoft/ - it is a stripped down and mavenized version based on AFRL's version from mid 2013. Previously (2002-2009) SORCER was developed by Prof. Sobolewski and his students at Texas Tech University (TTU) but when he decided to quit TTU in May 2009 the lab was closed and the repo there was abandoned (I was his last student at TTU). Prof. Sobolewski doesn't keep SORCER to himself, he is open to invite others to use it and develop it but it is a rather complex technology and it is difficult to find people willing and competent enough to do it. Therefore, in the meantime there were several moments when the source code was given to students or researchers elsewhere (mostly China and Russia - the last attempt in May 2013 when Sobolewski was invited to run a workshop on SORCER to Ulyanovsk State University) but I don't believe that they still maintain and develop it, although of course one cannot be always sure what happend to those sources afterwards. Prubach (talk) 13:31, 16 January 2014 (UTC)
- So, there is SorcerSoftDotCom, repo#1_A which is an open-source repo at github, and repo#1_B which is a closed-source fork thereof for the proprietary GUI-tools. Next, there is repo#2 closed-source repo used inside AFRL. What is SorcerSoftDotOrg, does it not have a repo? Or is it the open-source-portion of the AFRL repo? Historically, there was repo#0 at TTU, the ancestor of all current SORCER-repos. Historically-or-maybe-currently, there was repo#3_A at Ulanyovsk, repo#3_B at Samara (or maybe they shared repo#3_A?). Historically-or-maybe-currently, there was repo#4_A in China (and maybe more than one repo?). However, notability is not temporary, we need to go further back in time to FIPER. There was a FIPER repo, call it repo#5, used at GE/GRC, right? Is it still in use? Have they upgraded to SORCER? What *do* they use nowadays, does anybody know? Goel was from NY... was he working with GE and with TTU, or just with TTU? Furthermore, this FIPER repo#5 was the ancestor of TTU repo#0, but FIPER was also the direct ancestor of Engenious repo#6_A, which became Dassault repo#6_B, which is now Simulia repo#6_C (munged in with Dassault's Abaqus product-line). Also there was C.D.Cera(FIPER?) + Nnanji(FIPER), what repo? In the UK, we have W.D.Li(FIPER) + G.Goteng(SORCER) — what repos did they use? 74.192.84.101 (talk) 19:24, 16 January 2014 (UTC)
technical question, about exertions versus federations
"An exertion as the service classifier is used in SORCER and so all federations such that the exertion can be bound to at runtime are instances of it." --Beavercreekful
- I do not understand the above sentence.
- I'm familiar theoretically with Self.
- I'm familiar with Javascript-style prototyping where there is no classdef; objects are just modified-clones of previous objects.
- An exertion is an nsh-shell-script, written in EOL or in Java.
- A running/executing exertion is a service (kinda-like a web service but-not-exactly-like).
- A federation is a compound-service (a wrapper around a set of services... and the wrapper itself can be treated as a service).
- If I have a file called myExertion.sorcer stored on my local PC, that file (or the associated config-file maybe) will give the pointers (names? network-locations? URLs?) to the federations it depends upon.
- When I use nsh to execute-slash-run myExertion.sorcer , the bindings of the actual underlying dependencies (local federations/services or remote federations/services or local Linux apps/datafiles) are bound-at-runtime.
What does the word "it" at the end of the confusing sentence, really mean? "...so all federations such that the exertion can be bound to at runtime are instances of it."
- If an exertion can be bound-at-runtime to a federation, those federations are instances/subclasses/interfaceImplementations of that exertion?
- Or, if an exertion can be bound-at-runtime to a federation, then that exertion must be an instance/subclass/interfaceImplementation of those federations?
- Or, something else entirely? :-)
Thanks. 74.192.84.101 (talk) 01:48, 1 January 2014 (UTC)
- Ad. 1) I do not understand the above sentence. — 74
Let's start with the UML definition of "classifier" with "exertions" added for my service-oriented class.
classifier. A collection of instances that have something in common. A classifier can have features that characterize its instances. Classifiers include interfaces, classes, datatypes, components, services (exertions).
If object a is an instance of a class A, A is the classifier of a.
And now it's important to understand the difference with interface types. An object a of class A that implements interface B is instance of interface B. In other words, the interface B is a classifier of a. By the interface type we can classify objects independently of the object implementation (class). SORCER uses interface types in exertion signatures to bind to network objects that implement the signature interfaces. Mwsobol (talk) 04:17, 1 January 2014 (UTC)
- Okay, that's much clearer, thanks. My understanding is that there are two (colloquial) types of exertions, as used in SORCER. There are the usual sort, the front-end exertions, coded up by a savvy aerospace-designer to automate some kind of wing-design-analysis procedure, or somesuch. These front-end exertions (FEEs) run locally, and can optionally rely on other FEEs, also running locally, but coded so as to implement specific interfaces. In addition to calling each other (possibly within the same JVM instance or possibly across multiple JVM instances running with different CPU affinities and/or security settings), FEEs can also call remote back-end-exertions across the network. Much like the FEEs, the BEEs are just exertions... but running on another box.
- For the sake of being concrete, we have a client-side aerospace-engineer-slash-programmer named Alyssa, who implements her own set of four FEEs on her local workstation, A1 A2 A3 A4. These are wrappers around her local command-line tools for the most part, and call each other (FEE to FEE) from time to time. These are simple FEEs which do not depend on any BEEs that are located across the network. However, there are also four BEEs, B5 B6 B7 B8, which are each running on their own back-end server-box, and exposing their interface-implementations via the SOS (in some handwavy fashion that I do not yet understand). The author of the BEEs was named Ben, who programmed and tested and installed and configured all four BEEs, then left for Hawaii.
- When, on the following Monday, our hero Alyssa goes into work and boots her workstation, she opens nsh and writes A9, an especially complicated FEE, which relies on all eight of our existing A1..A4 local-services and B5..B8 remote-services. When she is finished programming, Alyssa then executes A9, and the magic happens: when on line 111 the code of A9 calls the 'non-internal' Java-function foo(), nsh scans the SOOAverse looking for something which implements foo(), and discovers A1, then dynamically binds the FEE A9 with the FEE-acting-as-a-network-service-A1. Later, when on line 555 the code of A9 calls baz() nsh-slash-SOS discovers B5 implements that, and does the FMI thing to connect A9 into B5 across the network. Finally, when on line 666 (gasp!) the code of A9 calls qux() which is implemented by B6 there is a problem, the server-box B6 was running on just crashed, but luckily, C5 C6 C7 C8 C9 replicated online backup boxen are ready, so nsh-slash-SOS discovers that C6 can provide the implementation of qux() that A9 requires. Happy ending.
- At the end of the day, I understand (or believe I do — please correct as needed) the sentence now... but I don't think the sentence is necessary because I don't see what is special about the words.
An exertion A local nsh shell-script (aka FEE) as the service classifier calls Java-interfaces implemented in other scripts is used in SORCER which are discovered by nsh-slash-SOS and so when configured as SOS-visible service-providers. all federations All server-side nsh shell-scripts (aka BEEs) such that the exertion can be called by local nsh shell-scripts (FEEs) can be bound to with function-calls to methods defined in Java-interfaces at runtime dynamically bound at function-call-time (or at FEE launch?) by nsh-slash-SOS. are instances Speaking in terms of theoretical computer science, the FEE is an 'instance' of it (the federation). of the set of all BEEs (the network-visible 'federation') which is relies upon.
- Please correct my errors and/or misunderstandings. Because the goal is to explain SORCER in 100 words or less at the top of the article, and then describe the details of SORCER in 1000 words or less in the main body of the article (or perhaps summarize the key details is a better way to put it), my goal is to use as much Java-and-CPP-and-ALGOL-style concepts as possible, so that the casual reader who has some programming background will be able to understand what SORCER is/does/etc. Even if they only have six months of 9th-grade Intro to HTML and Intro to Javascript under their belt.
- For speed, I'll go ahead and reply to your other sections below, but if my assumptions in the table above are wrong, no doubt I'll be even more wrong in my answers below. Do not feel that you are required to respongd toeach reply of mine, or even read them, if you can already tell I'm off the true path. :-) Thanks for your assistance. — 74.192.84.101 (talk) 19:36, 4 January 2014 (UTC)
If an exertion with a service signature including a service type B (practically Java interface B in SORCER) matches the interface of a network object (service provider) that implements the interface B then this service provider is the instance of this exertion. Now if an exertions includes 5 signatures with 5 services types (Java interfaces) then five service providers in the network that implement these interfaces create the service federation for this exertion. This federation is an instance of the exertion. In that case we say that the exertion binds to the federation and matching (binding) is done by the SORCER OS. Take into account that there in no any static references to service providers in exertion signatures.
Service providers are replicated for reliability and load balancing. So, when you run the same exertion again you can get usually a different federation (a collection of matching providers based on the interface types only). Obviously another attributes can be used in SORCER as well if required but the basic concept of binding is based on service types. That federation concept does not exist in any other service-oriented platform. By the way provisioning in SORCER is based on the service type concept as well. For a set of signature the SORCER OS on-demand can create a corresponding federation or multiple federations (instances) of a given exertion. Mwsobol (talk) 04:17, 1 January 2014 (UTC)
- I understand the part where you say, "...then this service provider is the instance of this exertion". But what is the *value* of that factoid? Why does a reader (usually referred to as Randy From Boise hereabouts), need to know that exertions-are-classifiers-aka-parents-of-the-federations-which-implement-the-exertion's-client-side-function-calls-to-server-side-interface-implementations-and-thus-federations-can-be-seen-as-instances-of-said-exertions? Can we not just tell Randy, that exertions-make-function-calls-which-nsh-passes-across-the-network-to-server-side-federations-that-implement-the-function-bodies? If not, why not? Given an exertion-which-is-a-classifier-of-a-federation-aka-instance, can I subclass the exertion, or jscript-style-prototype the exertion, to programmatically generate a *new* and distinct federation-instance? Can I use server-side programmatic reflection to modify the client-side *exertion's* implementation at runtime without needing any access to Alyssa's workstation PC? Or maybe something else special.
- I'm going to skip asking how the load-balancing and replication work, specifically... because I suspect that is explained in the helpdocs. But I will note, in my understanding at present, that client-side FEEs are not configured to be load-balanced nor replicated by default, and that server-side BEEs *are* so configured (manually presumably by a sysadmin), but that otherwise there is little difference... both FEEs and BEEs are nsh-shell-scripts, implemented in Java (or Groovy or EOL perhaps). Is this correct? Is it possible for Alyssa in Asia to change her FEE A3 into a network-visible service-provider, that her fellow aerospace-engineer Carly is able to use across the LAN from the seventh floor of the same building in Hong Kong? Next, what about Dan in Denver, can *he* see the A3 nsh-shell-script that Alyssa wrote, and configured to be network-visible to Carly on the 7th floor? Obviously, our friend Dan can get on a plane to Hong Kong, or Dan could install VPN software to make his PC virtually "part" of the LAN in Hong Kong... but does nsh-slash-SOS provide network-visibility only on the LAN, or does it offer web-visibility in some fashion? What nodes are considered fair game, when it comes to replicating BEEs? How is data-storage replicated, if B6 depends on /home/ben/dataset.txt what happens when B6's dedicated node is offline, and the replication-node C6 is trying to take over implementation of qux() for all the FEEs? 74.192.84.101 (talk) 19:36, 4 January 2014 (UTC)
- Ad. 4) An exertion is an nsh-shell-script, written in EOL or in Java... — 74
see "How to explain SORCER conceptualizations?" An exertion is a front-end specification of a service federation and its collaborative behavior. A textual form of interpreted exertions are called "netlets", exertions as instances of Exertion interface (Created with SORCER API) are called "exertlets", and exertions created with GUIs are called "service diagrams". Thus, three forms of exertion languages exist: EOL for the network shel (nsh), Java API (no need for the shell), and a visual exertion programming with a GUI that creates a corresponding exertlet or netlet or both if the round trip editing is supported between service diagrams and netlets. Mwsobol (talk) 04:17, 1 January 2014 (UTC)
- Okay, so I would instead say, an exertion is an nsh-shell-script, written in EOL, or alternatively, a Java program which directly accesses the SOS API (bypassing nsh). But my understanding is that the "innards" of the server-side federations were *also* just a bunch of (server-side) nsh-shell-scripts-in-EOL, or alternatively (server-side) Java programs, which differed from client-side exertions only in that they were configured to be network-visible.
- Can a client-side exertion A4 implement an interface, and be configured to be locally-visible to other exertions on that PC, and then have another client-side exertion A9 which classifies the interface-implementation provided by A4? I think the answer is yes, but correct me if I'm wrong.
- Similarly, can a server-side
exertion'program" B7 implement an interface, and be configured to be locally-visible to otherexertions'programs' on that server, and then have another server-sideexertion'program' B8 which classifies the interface provided by B7? Again, I think the answer is yes, but correct me if I'm wrong.- Finally, the big new feature of SORCER-fka-FIPER is that client-side exertion A9 can magically dynamically classify server-side
exertion'service provider' B7, as long as B7 is configured to be network-visible in a way that A9 can see via nsh-slash-SOS (as opposed to B7 just being "locally-visible" to B8).
- As for netlets and exertlets (but not service-diagrams which merely are a means of creating those).... My assertion is that a netlet can be written and then run on Alyssa's workstation PC, but also that a netlet can be written and then run on Ben's app-server (or replicated server-farm of app-servers). Same assertion for exertlets. Am I wrong about these? Are service-providers not simply netlets/exertlets which have been configured so as to be network-visible, and optionally replicated? 74.192.84.101 (talk) 19:36, 4 January 2014 (UTC)
- Ad. 5) A running/executing exertion is a service (kinda-like a web service but-not-exactly-like). — 74
see "How to explain SORCER conceptualizations?" below.
Oh, No!!!
Web services are back-end services (deployed at the app servers) and the front-end client can invoke only one service per invocation with a static server end-point (URL). What the invoked service do later is another story. An exertion is the from-end service that invokes a collaborative federation in the network (as explained above). There is no app servers, no static end-points, service providers are small footprint independent services that can come and go as needed in the global network Mwsobol (talk) 04:17, 1 January 2014 (UTC)
- I agree with everything you say (except the "oh no" portion :-) ... but I was under the impression that a "collaborative federation" was in fact implemented with server-side exertions, written by server-sider programmers. When a client-side programmer writes a client-side exertion, nsh-slash-SOS hooks the client-side function-call up tothe server-side function-body. Incorrect? See the final sentence of Prubach's answer at 11:59 here,[4] "you're right about the possibility of dividing execution between the provider ((server-side
exertion'program')) and requestor ((client-side exertion)) - it cannot be done dynamically but needs only a reconfiguration of the provider". I understood that last bit to mean, that a server-side backend service provider, was merely an exertion installed on a server-box, with some special configuration to make it discoverable-on-the-network by the nsh-slash-SOS. 74.192.84.101 (talk) 19:36, 4 January 2014 (UTC)
- I agree with everything you say (except the "oh no" portion :-) ... but I was under the impression that a "collaborative federation" was in fact implemented with server-side exertions, written by server-sider programmers. When a client-side programmer writes a client-side exertion, nsh-slash-SOS hooks the client-side function-call up tothe server-side function-body. Incorrect? See the final sentence of Prubach's answer at 11:59 here,[4] "you're right about the possibility of dividing execution between the provider ((server-side
back-end-federated-programming
"I need to understand whether or not a locally-defined EOL-script, is visible (by default or just optionally or not at all) across the network?" - An EOL script contains the defintion of an exertion. (you can see an example here: [5]) - an EOL script by itself is just a script, and so just like any file you can put it on a web server etc. but it is not exposed by SORCER in anyway. However, when you execute this script using the network shell (NSH) then the tasks defined in it may run on remote machines - everything depends on where you started the Multiplier, Adder and Subtractor services. By default an EOL script (and this particular example as well) doesn't specify whether the exertion will run locally or remotely (although you can limit it to be executed only locally) - this will be determined at runtime dynamically. This is the Front-end federated programming.
Since the main goal of SORCER is to foster reuse, there is a possibility to easily (no coding, just configuration) create a service using an existing exertion - in that case you supply your script and you can start a new service that when called will execute the exertion specified in your EOL script - this is the Backend federated programming because it needs some deployment (configuration and starting of the service) - it is the equivalent of deploying a new BPEL process on a BPEL engine (the process will call other web services but it must be first deployed to be accessible to users).
- On the second half of this point, further clarification of the details of back-end-federated-programming please, concerning the typical way back-end-service-providers are created. Here is how I paraphrase/understand what you said. Back-end federated programming is easy: given an existing exertion-defining-scriptfile My.EOL, you can, without further programming, configure&start (aka deploy) a new service[provider], that when called, will execute that exertion (i.e. the one specified in My.EOL). You mention that the 'deploy' step is kinda like Business Process Execution Language process-deployment on a BPEL-engine... but BPEL is web-svcs-stuff, that means the BPEL-engine is a webserver. If I have an engineering-workstation, with AutoCAD and LibreOffice installed, and I'm doing my finite-elt-analysis on my wing-design with some local exertions My1.EOL / My2.EOL / My3.EOL and so on, aka pure front-end-federated-programing, how hard is it to "deploy" My2.EOL so that it becomes a LAN-visible service, that my buddy in the next office can call from *her* local EOL-scriptfiles?
X. Do I have to install a webserver on my workstation-PC, and install the 'backend' pieces of SOS, reconfigure my software firewall to open up a bunch of ports, login as admin to install some daemons, or something complicated like that? Y. Or, do I just open up some config-wizard, click the 'create new svc' button, browse to /home/alyssa/wing/My2.EOL in the wizard, and click 'OK' for a total "deploy" time of sixty seconds flat? Z. Or, something else, please specify.
- From your answer to my LAN-and-VPN-question (below), my assumption is that doing back-end-federated-programming is more like the install-a-bunch-of-server-side-junk-and-mess-with-firewalls description. Therefore, in typical practice, our engineer Alyssa would not be able to make My2.EOL into a LAN-visible service from her *own* workstation... instead, she would FTP/NFS/SMB/whatever the scriptfile to an already-configured-server-machine (w/ Apache River infrastructure already up and running!) elsewhere on the LAN, and then ask some friendly sysadmin of that server-machine to run the config-wizard to deploy My2.EOL on that server box. Is this correct?
gory details of SORCER's networking substrate
"Is SOS currently a LAN-slash-VPN-only solution, or whether it can function seamlessly-out-of-the-box through firewalls across the global internet?" The networking layer of SORCER is implemented using JINI/Apache River. Therefore, in this respect it functions just like JINI services themselves. In JINI there is a lookup service (called Reggie) that is used to discover and register existing services. Reggie supports multicasting and unicasting. Obviously, multicast works only in LAN and may be enabled via VPN but it may be rather impractical in this scenario - assuming the VPN has a limited bandwidth, it doesn't make sense to send all multicast requests via VPN when, for example, most of them will be of interest only within the main LAN. In that case you can bridge multiple JINI/SORCER installations using unicast - for that you need to configure the addresses of the remote Reggies in every Reggie. So in that case, multicast doesn't have to be enabled between all the SORCER services on both networks, however, the services must be able to communicate directly once they discover themselves via the Reggies, so firewalls and routers may make that difficult. Prubach (talk) 13:31, 16 January 2014 (UTC)
- Some techie-questions, see here.[6] Does SORCER use the JERI protocol under the hood, and if so, what substrate-transport(s) are supported out of the box? Apache folks say you can send packets as unencrypted-TCP, SSL-over-TCP, or Kerberos-over-TCP ... all these options are effectively LAN-only (because of firewalls in the wild). However, they also say you can send JERI packets over HTTP/HTTPS ... but from your answer to point#3 it sounds like SORCER does not do this. For performance reasons (e.g. is multicast only supported in some transports?), or code-complexity reasons, or historical reasons, or something else? Maybe under the hood SORCER is using JRMP-transport aka old-school RMI stuff? 74.192.84.101 (talk) 19:24, 16 January 2014 (UTC)
- River offers infrastructure for dynamic discovery (w/ a registry), and optionally, for on-demand-distribution-of-compiled-code (w/ a class-server). It sounds like SORCER use a River-based-registry aka Reggie, but does SORCER use a River-based-classServer? Or not, and if not, what *does* SORCER use for the distributed-computation-magic it offers? 74.192.84.101 (talk) 19:24, 16 January 2014 (UTC)
- You say: "services must be able to communicate directly". This is too abstract. How do they 'communicate directly' across the LAN? What are the specifics? By way of analogy, consider how you would explain FTP to me. There is an FTP client, an app on PC#1. There is an FTP server, a daemon on PC#2. They also "communicate directly" with each other. Specifically, FTP was based on NCP from 1971-1980, and since then on TCP. Active-mode means, the client on PC#1 must know the IP of PC#2 (or DNS-name if we assume PC#2 has a domain-name && PC#1 has a DNS-client), to create the control-channel, a socket from (any-un-priv) port 55555 on PC#1 to (standard) port 21 of PC#2 over LAN-or-internet. Next, the client sends a PORT 55556 command, and the server on PC#2 creates the data-channel from server-port-20 to client-port-55556. This assumes no firewalls in the way, either direction! Thus, in passive-mode, client sends PASV (not PORT 55556), and server replies on ctrl-chan w/ PORT 20, after which *client* creates data-channel from client-port-55556 to server-port-20. Thataway, firewalls only need to be properly configured to make the *server* aka PC#2 web-visible; client can be locked down against intruders. That is FTP, in a nutshell. We can also talk security, there is an optional login-name (or anonymous), plus there are several optional crypto mechanisms (explicit FTPS with AUTH TLS to server-port-21 / implicit FTPS to server-port-990 / "explicit" FTP-over-SSH-tunnelling to server-port-22 / "implicit" SFTP to server-port-22 / maybe others). What does SORCER work like? Feel free to just point me at the appropriate helpdoc for River-and-or-SORCER, if these gory details are already put in writing somewheres. 74.192.84.101 (talk) 19:24, 16 January 2014 (UTC)